一元二次方程的求根公式

0x01 一般式:

ax2+bx+c=0ax^2+bx+c=0

0x02 计算过程

操作步骤 结果
开始 ax2+bx+c=0ax^2+bx+c=0
① 除以 a x2+bax+ca=0x^2+ \frac{b}ax +\frac{c}a=0
② 把 ca\frac{c}a 移到另一边 x2+bax=cax^2 + \frac{b}ax=-\frac{c}a
③ 每边加 (b2a)2(\frac{b}{2a})^2(一次项一半的平方) x2+bax+(b2a)2=ca+(b2a)2x^2 + \frac{b}ax + (\frac{b}{2a})^2 = -\frac{c}a + (\frac{b}{2a})^2
得到完全平方展开式
④ 配方 (x+b2a)2=ca+(b2a)2(x + \frac{b}{2a})^2 = -\frac{c}a + (\frac{b}{2a})^2
⑤ 开方 x+b2a=±b24ac4a2x+\frac{b}{2a} = \pm \sqrt{\frac{b^2-4ac}{4a^2}}
x+b2a=±b24ac2ax+\frac{b}{2a} = \pm \frac{\sqrt{b^2-4ac}}{2a}
⑥ 移项 x=b2a±b24ac2ax= - \frac{b}{2a} \pm \frac{\sqrt{b^2-4ac}}{2a}
x=b2a±b24ac2ax= - \frac{b}{2a} \pm \frac{\sqrt{b^2-4ac}}{2a}
得到求根公式 x=b±b24ac2ax= \frac{-b\pm\sqrt{b^2-4ac}}{2a}

0x03 求根公式:

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

0x04 技巧

配方:一次项系数一半的平方



0x05 程序实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import math


def quadratic(a, b, c):
result = []
d = b*b - 4 * a * c # discriminant
if d < 0:
pass
elif d == 0:
x = (-b + math.sqrt(d)) / (2 * a)
result.append(x)
else:
x1 = (-b + math.sqrt(d)) / (2 * a)
x2 = (-b - math.sqrt(d)) / (2 * a)
result.append(x1)
result.append(x2)
return result


print(quadratic(2, 3, 1))