三次方程的三角函数解法
By 苏剑林 | 2010-08-08 | 95398位读者 |对于解方程,代数学家希望能够从理论上证明解的存在性以及解的求法,所以就有了1到4次方程的求根公式、5次及以上的代数方程没有根式可解等重要理论;然而,通常的学者(如物理学家、天文学家)都不需要这些内容,他们只关心如何尽可能快地求出指定方程的根(尤其是实数根),所以他们通常关注的是方程的数值算法,当然,如果能有一个相对简单的求根公式,也是他们所希望的。而接下来所要介绍的内容,则是满足了这一需要的三次方程的求根公式,其中用到的相当一部分的理论,是与三角函数相关的。
储备 #
2tan2A=1tanA−tanA
2sin2A=1tanA+tanA
cos(3A)=4cos3A−3cosA
思路 #
在这里我们只是讨论三次方程x3+ax2+bx=c的解法,原因在于这种三次方程在实际应用中更具有代表性。任意的这样的一道三次方程可以通过变换变成y3+mx=n的形式,接着变成z3±3z=p的形式,z3±3z=p能够有相对简单的解法,所以就把三次方程的根相对简单地解出来(记住,这里一直强调“相对”,因为三次方程的解法再简单也不可能比二次方程的求根公式简单...)
变换 #
一、x3+ax2+bx=c→y3+mx=n
其实很简单,只要设x=y−a/3,代入原方程,得到:
y3+(b−a23)y=c+ab3−2a327
对比y3+mx=n,不难发现:
m=b−a23,n=c+ab3−2a327
变换完成。
二、y3+mx=n→z3±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类型的方程上了,我们需要分开来讨论。
首先考虑z3+3z=p,令z=A−1−A,代入方程后整理得到A−3−A3=p,通过换元可以将其变为一元二次方程。但我们不这样做,令A3=tanB,利用“知识储备”的公式(1),变成2tan2B=1tanB−tanB=p,即tan2B=2p,反推得A=(tanarctan2p2)(1/3)。至此,解答完毕。从图像可以看出,对于所有的p,该方程都有且只有一个实数根。
接着考虑z3−3z=p,令z=A−1+A,代入方程后整理得到A−3+A3=p,同样通过换元可以将其变为一元二次方程。而我们模仿上述做法,令A3=tanB,利用“知识储备”的公式(2),变成2sin2B=1tanB+tanB=p,即sin2B=2p,反推得A=(tanarcsin2p2)(1/3)。
也许有朋友认为到此已经解答完成了。然而我们注意到,上一步中的A表达式中有一项是arcsin2p,这仅仅对|p|>2奏效。但从图像可以看出,当|p|≤2时,该方程并非无实数根,而是有2~3个实数根。这样就需要我们寻找另一种方法来解决这个特殊情况。这一次,我们利用到了知识储备中的公式(3)。方程z3−3z=p可以改写成4(z/2)2−3(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=b−a23,n=c+ab3−2a327,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=A−1−Ax=|m/3|(1/2)z−a/3
(II).1.(m<0,|p|>2)
A=(tanarcsin2p2)(1/3),z=A−1+Ax=|m/3|(1/2)z−a/3
(II).2.(m<0,|p|<2)
z=2cos(arccos(p/2)+2kπ3),(k=0,1,2)x=|m/3|(1/2)z−a/3
(III).(m=0)
x=3√n−a3
结论 #
经过上述变换和求解,我们可以发现,任何实系数三次方程都可以变换成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}},
}
August 9th, 2010
强大,比我在数学手册这样的书上看到的简单多了
August 9th, 2010
先顶了。
August 9th, 2010
膜拜卡丹鼻祖
卡丹只不过是因为公开了三次方程的求根公式而出名,而创始人是塔塔利亚和费罗(塔塔利亚比费罗更深入),只不过因为那时候的坏风气,他们都秘而不宣。卡丹向塔塔利亚请教,并且违背诺言地公开了,并且注明了是塔塔利亚发现的。但是最终还是闹起了一场纷争,并且三次方程的求根公式最终却以“卡丹公式”命名。历史再次重演了“阿拉伯数字”的错误,应该叫“塔塔利亚公式”才对...
想不到你也知道哈。
我在数学演义上看到的。
June 27th, 2011
先顶一个
把两个三角万能公式变形一下 挺有新意
但是阁下百密一疏
那就是没有考虑到p=0的情况(非常简单的一个特例)
因为p=0时 tan2θ sin2θ都没有意义了
楼主再完善一下就更好了
谢谢指出,我的确疏忽了,不过p=0时可以用(II)公式吧?
June 27th, 2011
此外
顺便跟楼主提一下
我也研究过用三角函数解三次方程的方法
其实只需用一个公式(楼主的第三个公式 余弦三倍角公式)就可以概括任意一元三次方程
在第二步化简中,楼主正负号取舍与m值有关,其实大可不必,只要让λ在复数范围内取值,通通可以化为Z*Z*Z-3z=p的形式
然后通通用余弦三倍角公式
楼主考虑到cos3θ>1或cos3θ
提出这种方法就是为了避免出现复数运算,因为在相当多的情况下我们都只需要针对特定的方程求出实数的根。最直接的例子就是天体力学的二体问题中有一个抛物线轨道的方程,需要求解三次方程的。
July 7th, 2011
盛金公式好算
October 22nd, 2016
啥玩意 有个地方变换错了
November 28th, 2020
这位先生,请问sin2B=2/p会大于1吗?P小于2怎么办?什么角度正弦会大于一呀。
p可能小于2,本文后面已经写了p小于2怎么处理了
July 11th, 2023
写的挺好的。 对于平移变换、伸缩变换转化成z3±3z=p都挺好理解的,不太能理解的是z=A−1±A, 这个变换是怎么想到的。
确实我也没什么直觉的思路。事实上就当时那个年代而言,任何的事后解释都是马后炮了。
May 18th, 2024
直接沿用上次代数解方程的结果推导更简单:
基本思想:使用变量替换消除平方项,令x=y+α ,则得到
(y+α)3+b(y+α)2=⋯+3αy2+by2+⋯ 立即得到α=−b/(3a)
对于方程y3+py+q=0 ,重要的是使用三次展开式(使用A + B也可以)
(A−B)3=A3−3A2B+3AB2−B3
(A−B)3+3AB(A−B)−A3+B3=0
令y=A−B,p=3AB 和 −q=A3−B3
将B=p3A 代入方程−q=A3−B3 得到
A3−(p/3)3A3+q=0
令A=λy 代入得到
λ3y3−(p/3)3/λ3y3+q=0
令λ3=p3(3λ)3 则得到λ=±√p/3
当λ=√p/3 ,则有
(p/3)3/2(y3−y−3)=−q
y−3−y3=q(p/3)−3/2
令y3=tanθ 根据1/tanθ−tanθ=2/tan(2θ)
则2/tan(2θ)=q(p/3)−3/2
tan(2θ)=2(p/3)3/2/q