三次方程的根式求解(通俗版本)
By 苏剑林 | 2009-07-19 | 66603位读者 |(说明:由于本文章含有较多的根号,推荐使用IE直接阅读,或者使用IE+MathPlayer。火狐浏览器对根号的显示是相当的差。)
大家知道,1到4次的代数方程都有求根公式(尽管未必是最简单的方法),对于1次和2次方程的求根,大家可能滚瓜烂熟了。但是你了解三次方程的解法吗?
ax3+bx2+cx+d=0(a≠0)
网上有不少关于这方面的资料,但是却有着两个缺点:一是缺乏描述专业数学公式的相关程序(很多网站都是这样);二是语言过于专业,不能大众化(如维基百科)。
要了解三次方程的求根公式,首先要知道,一般地,n次代数方程有n个根。而对于最基本的三次方程x3+p=0,我们有:
x1=−3√p
同时根据韦达定理,我们有x1+x2+x3=0,x1⋅x2⋅x3=−p,我们已经知道x1=−3√p,现在就变成了关于x2,x3的二次方程组,可以求解(i2=−1,虚数单位):
x2=−12(−1+√3i)3√p,x3=−12(−1−√3i)3√p
特别地,一般会将12(−1+√3i)写成ω,于是
x2=−3√pω,x3=−3√pω2
下面进入一般的三次方程的求解:
对于一道三次方程ax3+bx2+cx+d=0(a≠0),我们有可以用换元法,设y=x+b3a,将原方程变为关于y的三次方程:
y3+py+q=0⇔y3+py=−q
其中
y=x+b3ap=ca−b23a2q=2b327a3−bc3a2+da
(卡丹的证明)由于(A−B)3+3AB(A−B)=A3−B3,所以3AB=p,A3−B3=−q,y=A−B,于是变成关于A,B的六次方程组,而这一道六次方程组很简单,通过换元法,就变成了一道二次方程组,可以求解。最后我们得到的结果为:
A=3√−q2+√(q2)2+(p3)3,B=3√q2+√(q2)2+(p3)3
接下来就很容易得出原方程的解了。
最终,我们得出关于方程y3+px+q=0的求根公式为
x1=3√−q2+√(q2)2+(p3)3+3√−q2−√(q2)2+(p3)3x2=ω3√−q2+√(q2)2+(p3)3+ω23√−q2−√(q2)2+(p3)3x3=ω23√−q2+√(q2)2+(p3)3+ω3√−q2−√(q2)2+(p3)3ω=12(−1+√3i)
看到这里,如果想挑战自己的你,请写出ax3+bx2+cx+d=0(a≠0)的一般求根公式吧^_^
至于四次方程,有时间也会写一下。
参考资料:
http://zh.wikipedia.org/w/index.php?title=%E4%B8%89%E6%AC%A1%E6%96%B9%E7%A8%8B&variant=zh-cn
http://baike.baidu.com/view/521598.htm
http://baike.baidu.com/view/1315076.htm
http://www.oursci.org/archive/magazine/200112/011208.htm
转载到请包括本文地址:https://spaces.ac.cn/archives/26
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Jul. 19, 2009). 《三次方程的根式求解(通俗版本) 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/26
@online{kexuefm-26,
title={三次方程的根式求解(通俗版本)},
author={苏剑林},
year={2009},
month={Jul},
url={\url{https://spaces.ac.cn/archives/26}},
}
July 19th, 2009
很好,的确很通俗的讲解。相比二次方程,三次方程的求根公式麻烦多了,计算也很复杂!关于ax3+bx2+cx+d=0(a!=0)的通用求根公式,我也挑战下我自己^_^
July 15th, 2018
站长好,那个,我觉得q=2b3/27a3−bc/3a2+d/a2应该改为q=2b327a3−bc3a2+da哟~~~
BTW,塔塔利亚和卡丹的图片为什么是小孔成像和折反射的图片呢~~~
已经更正了部分错误,感谢提出。主要是早期数据迁移时导致的不兼容问题了。
November 27th, 2019
站长好,x2=3√pω,x3=3√pω2不应该是x2=−3√pω,x3=−3√pω2吗?
June 20th, 2022
x^3 + p = 0的解有错误
已经修正,谢谢。