📜  二次方程中的判别式(1)

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

二次方程中的判别式

二次方程指的是一元二次方程,其一般形式为 $ax^2+bx+c=0$,其中 $a,b,c$ 是已知实数,$x$ 是未知实数。

二次方程的解可以使用公式 $\displaystyle x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$ 求得。公式中的 $\sqrt{b^2-4ac}$ 就是二次方程的判别式,通常用符号 $\Delta$ 表示,即

$$ \Delta=b^2-4ac $$

这个判别式 $\Delta$ 的值可以告诉我们二次方程有多少个解以及解的性质。下面分两种情况讨论。

1. $\Delta > 0$

当 $\Delta > 0$ 时,方程有两个实数解。此时,

$$ x_1=\frac{-b+\sqrt{b^2-4ac}}{2a},\quad x_2=\frac{-b-\sqrt{b^2-4ac}}{2a} $$

解的性质如下:

  • $x_1$ 和 $x_2$ 不相等。
  • $x_1$ 和 $x_2$ 的符号相反。
  • $x_1,x_2$ 的绝对值相等,即 $|x_1|=|x_2|=\frac{\sqrt{\Delta}}{2a}$。
  • $x_1$ 和 $x_2$ 的和等于 $-\frac{b}{a}$,即 $x_1+x_2=-\frac{b}{a}$。
  • $x_1$ 和 $x_2$ 的积等于 $\frac{c}{a}$,即 $x_1x_2=\frac{c}{a}$。

在程序实现二次方程求解的过程中,可以先计算出 $\Delta$ 的值,再根据 $\Delta$ 的正负情况判断方程的解,最后输出解的属性和具体值。

以下是 Python 实现的示例代码:

import math

def solve_quad_eq(a, b, c):
    delta = b * b - 4 * a * c
    if delta < 0:
        return "无实数解"
    elif delta == 0:
        x = -b / (2 * a)
        return f"方程有唯一解 x = {x}"
    else:
        x1 = (-b + math.sqrt(delta)) / (2 * a)
        x2 = (-b - math.sqrt(delta)) / (2 * a)
        return f"方程有两个实数解 x1 = {x1}, x2 = {x2}"

a, b, c = 1, -3, 2
print(solve_quad_eq(a, b, c))  # 方程有两个实数解 x1 = 2.0, x2 = 1.0
2. $\Delta \leqslant 0$

当 $\Delta \leqslant 0$ 时,方程没有实数解。此时,方程只有两种可能的解:

  • 无解(方程表示的曲线与 $x$ 轴没有交点);
  • 有一对共轭复数解(方程表示的曲线与 $x$ 轴相切)。

在程序实现二次方程求解的过程中,可以先计算出 $\Delta$ 的值,再根据 $\Delta$ 的正负情况判断方程的解。

以下是 Python 实现的示例代码:

import math

def solve_quad_eq(a, b, c):
    delta = b * b - 4 * a * c
    if delta < 0:
        return "无实数解"
    elif delta == 0:
        x = -b / (2 * a)
        return f"方程有唯一解 x = {x}"
    else:
        x1 = (-b + math.sqrt(delta)) / (2 * a)
        x2 = (-b - math.sqrt(delta)) / (2 * a)
        return f"方程有两个实数解 x1 = {x1}, x2 = {x2}"

a, b, c = 1, 2, 3
print(solve_quad_eq(a, b, c))  # 无实数解