对于解方程,代数学家希望能够从理论上证明解的存在性以及解的求法,所以就有了1到4次方程的求根公式、5次及以上的代数方程没有根式可解等重要理论;然而,通常的学者(如物理学家、天文学家)都不需要这些内容,他们只关心如何尽可能快地求出指定方程的根(尤其是实数根),所以他们通常关注的是方程的数值算法,当然,如果能有一个相对简单的求根公式,也是他们所希望的。而接下来所要介绍的内容,则是满足了这一需要的三次方程的求根公式,其中用到的相当一部分的理论,是与三角函数相关的。

储备 #

2tan2A=1tanAtanA
2sin2A=1tanA+tanA
cos(3A)=4cos3A3cosA

思路 #

在这里我们只是讨论三次方程x3+ax2+bx=c的解法,原因在于这种三次方程在实际应用中更具有代表性。任意的这样的一道三次方程可以通过变换变成y3+mx=n的形式,接着变成z3±3z=p的形式,z3±3z=p能够有相对简单的解法,所以就把三次方程的根相对简单地解出来(记住,这里一直强调“相对”,因为三次方程的解法再简单也不可能比二次方程的求根公式简单...

变换 #

一、x3+ax2+bx=cy3+mx=n

其实很简单,只要设x=ya/3,代入原方程,得到:
y3+(ba23)y=c+ab32a327
对比y3+mx=n,不难发现:
m=ba23,n=c+ab32a327
变换完成。

二、y3+mx=nz3±3z=p

这里的“±”与m的符号相同。令y=λz,代入并整理,得到z3+mλ2=nλ3,对比z3±3z=p,就可以得到:
mλ2=±3,nλ3=pλ=|m/3|(1/2),p=n|3m|(3/2)
变换完成。

解答 #

现在问题集中到解z3±3z=p类型的方程上了,我们需要分开来讨论。

x^3+3x的图像

x^3+3x的图像

首先考虑z3+3z=p,令z=A1A,代入方程后整理得到A3A3=p,通过换元可以将其变为一元二次方程。但我们不这样做,令A3=tanB,利用“知识储备”的公式(1),变成2tan2B=1tanBtanB=p,即tan2B=2p,反推得A=(tanarctan2p2)(1/3)。至此,解答完毕。从图像可以看出,对于所有的p,该方程都有且只有一个实数根。

接着考虑z33z=p,令z=A1+A,代入方程后整理得到A3+A3=p,同样通过换元可以将其变为一元二次方程。而我们模仿上述做法,令A3=tanB,利用“知识储备”的公式(2),变成2sin2B=1tanB+tanB=p,即sin2B=2p,反推得A=(tanarcsin2p2)(1/3)

x^3-3x的图像

x^3-3x的图像

也许有朋友认为到此已经解答完成了。然而我们注意到,上一步中的A表达式中有一项是arcsin2p,这仅仅对|p|>2奏效。但从图像可以看出,当|p|2时,该方程并非无实数根,而是有2~3个实数根。这样就需要我们寻找另一种方法来解决这个特殊情况。这一次,我们利用到了知识储备中的公式(3)。方程z33z=p可以改写成4(z/2)23(z/2)=p/2,这样每一项的系数都与公式(3)对应,这样我们就有cos3A=p/2,2cosA=z,反推得到z=2cos(arccos(p/2)+2kπ3),(k=0,1,2),这样就得到了三个实数根了。至此,三次方程的求解基本完成。

汇总 #

在这里把上面的过程整理一下:

对于一般的三次方程x3+ax2+bx=c,先做以下计算
m=ba23,n=c+ab32a327,p=n|3m|(3/2)

m是正数或0表明该方程只有1个实数根,执行第(I)步;m是负数,且p>2则说明该方程的有1个实数根,p=2则说明该方程有2个实数根,p<2说明该方程有3个实数根,执行第(II)步;当m=0时候,该方程有1个实数根,执行第(III)步

(I).(m>0)
A=(tanarctan2p2)(1/3),z=A1Ax=|m/3|(1/2)za/3

(II).1.(m<0,|p|>2)
A=(tanarcsin2p2)(1/3),z=A1+Ax=|m/3|(1/2)za/3

(II).2.(m<0,|p|<2)
z=2cos(arccos(p/2)+2kπ3),(k=0,1,2)x=|m/3|(1/2)za/3

(III).(m=0)
x=3na3

结论 #

经过上述变换和求解,我们可以发现,任何实系数三次方程都可以变换成z3±3z=p的形式(p是实数),而z3±3z=p总有一个实数根,也就是说我们藉此也证明了任何三次方程都有不少于一个实数根

也许有人问,我想求出非实数根要怎样做呢?这其实可以利用韦达定理,对于三次方程x3+ax2+bx=c的三个根,有以下关系:
x1x2x3=c;x1+x2+x3=a
如果已经知道一个实数根,那么上式就成为了一个二元二次方程组,可以轻松地求出。在此不再详述。

把三角函数与三次方程求根相结合,这思路来源已久,只是一直未能将其一般化。通过研究《天体力学引论》,我得到了灵感,并且通过网络,我找到了相关公式,把这些搜寻到的资料整理起来,就得到了眼前的这一套求三次方程根的解法。由于所用到的公式之中,没有任何一条是我自己“独创”的,因此不敢狂妄地称“自创”了新解法。灵感也只是来源于对解方程的执着以及网络以及书籍的帮助,所以实在不值一提。但是仍然希望读者阅读或转载时能够链接一下科学空间,让更多的人认识科学空间^_^。

转载到请包括本文地址:https://spaces.ac.cn/archives/831

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Aug. 08, 2010). 《三次方程的三角函数解法 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/831

@online{kexuefm-831,
        title={三次方程的三角函数解法},
        author={苏剑林},
        year={2010},
        month={Aug},
        url={\url{https://spaces.ac.cn/archives/831}},
}