Python· 求解一元二次方程实根的函数

在Python中,求解一元二次方程 ( ax^2 + bx + c = 0 ) 的实根可以通过使用math模块中的sqrt函数来实现。这里提供一个简单的函数,它接受三个参数abc,然后返回方程的实根。

python 复制代码
import math

def solve_quadratic(a, b, c):
    # 计算判别式的值
    discriminant = b**2 - 4*a*c
    
    # 检查判别式的值
    if discriminant < 0:
        return None  # 没有实数解
    elif discriminant == 0:
        # 一个实数解
        return -b / (2 * a)
    else:
        # 两个实数解
        root1 = (-b + math.sqrt(discriminant)) / (2 * a)
        root2 = (-b - math.sqrt(discriminant)) / (2 * a)
        return root1, root2

# 使用函数
a = 1
b = -3
c = 2
roots = solve_quadratic(a, b, c)
if roots is None:
    print("No real roots.")
else:
    if isinstance(roots, tuple):
        print(f"The roots are {roots[0]} and {roots[1]}.")
    else:
        print(f"The root is {roots}.")

这个函数首先计算判别式Δ = b^2 - 4ac。根据判别式的值,可以确定方程的根:

  • 如果判别式小于0,方程没有实数解。
  • 如果判别式等于0,方程有一个实数解(重根)。
  • 如果判别式大于0,方程有两个不同的实数解。

请注意,这个函数返回的是一个实数或者一个包含两个实数的元组。如果方程没有实数解,函数返回None

相关推荐
丰锋ff14 小时前
3.1 Qt事件之事件处理器
开发语言·qt
多弗朗皮卡丘14 小时前
C语言梦开始的地方7:函数
c语言·开发语言
月华路14 小时前
G1 垃圾回收:脏卡队列、记忆集与并发精化线程机制
java·开发语言
XLYcmy15 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
虎头金猫15 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
从零开始学习人工智能15 小时前
WSL2部署CUDA12+cuDNN9踩坑实录:ONNX Runtime GPU推理环境搭建全流程
python
gugucoding15 小时前
47. 【Java】Java内存模型(JMM)与可见性
java·开发语言
m0_3807438715 小时前
从零调用 Claude 教程
开发语言·python·node.js
起床学FPGA15 小时前
AI回答问题之后,会自动跳到最下面的问题
开发语言·javascript·ecmascript
罗西的思考16 小时前
【Agent OS / AIOS】AOHP 深度解读:当 OS 开始为 Agent 而设计
人工智能·算法·机器学习