📜  Python程序求解二次方程(1)

📅  最后修改于: 2023-12-03 15:04:41.323000             🧑  作者: Mango

Python程序求解二次方程

本文介绍如何使用Python编写一个程序来求解二次方程。二次方程是形如$ax^2+bx+c=0$的方程,其中$a,b,c$为实数,且$a\neq 0$。求解二次方程的一般公式为:

$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$

下面我们将使用Python编写一个程序来实现该公式。

代码实现
import math

def solve_quadratic_equation(a, b, c):
    """求解二次方程ax^2+bx+c=0的根"""

    # 计算判别式
    delta = b ** 2 - 4 * a * c

    # 判断方程是否有实数根
    if delta < 0:
        return None, None
    elif delta == 0:
        x = -b / (2 * a)
        return x, x
    else:
        x1 = (-b + math.sqrt(delta)) / (2 * a)
        x2 = (-b - math.sqrt(delta)) / (2 * a)
        return x1, x2

代码中我们定义了一个名为solve_quadratic_equation()的函数,该函数接收三个参数$a, b, c$,分别为二次方程$ax^2+bx+c=0$中的系数。在函数中,我们先计算出方程的判别式$\Delta=b^2-4ac$,然后根据判别式的值来判断方程是否有实数根:

  • 当$\Delta<0$时,方程无实数根,函数返回(None, None)
  • 当$\Delta=0$时,方程有一个实数根$x=-\frac{b}{2a}$,函数返回(x, x)
  • 当$\Delta>0$时,方程有两个实数根$x_1=\frac{-b+\sqrt{\Delta}}{2a}$和$x_2=\frac{-b-\sqrt{\Delta}}{2a}$,函数返回(x1, x2)

在函数体开头,我们导入了Python的math模块,以使用该模块下的平方根函数sqrt()

范例

我们可以给出一个使用该函数的范例:

a = 1
b = 2
c = 1

x1, x2 = solve_quadratic_equation(a, b, c)

if x1 is None:
    print("该方程无实数根")
elif x1 == x2:
    print("该方程有一个实数根:x={}".format(x1))
else:
    print("该方程有两个实数根:x1={}, x2={}".format(x1, x2))

在该例子中,我们输入了一个二次方程$x^2+2x+1=0$,即$a=1,b=2,c=1$。程序输出结果为:

该方程有一个实数根:x=-1.0
总结

本文介绍了如何使用Python编写一个程序来求解二次方程。这个程序使用了Python的数学库,定义了一个函数,在函数中根据输入的系数求解方程的根,并输出结果。这个程序是一个非常简单的例子,但它展示了Python作为科学计算语言的一般用法。