一元三次方程的解法邵美悦2018年3月23日修改:2018年4月25日众所周知,一元二次方程的求根公式是中学代数课程必修知识,通常在初中阶段的数学教材中会进行介绍.一元三次方程和一元四次方程同样有求根公式,1而且其推导过程也是初等的.由于一元三次和四次方程的求解比起一元二次方程要困难得多,并且求根公式的具体形式也不是很实用,所以尽管在一些初等数学的书籍中有相关介绍,但大多数中学生对这些解法并不了解.本文将简要介绍一下一元三次方程的求解方法.1配方法一元二次方程ax 2+bx +c =0,(a =0)的解法一般会在在初中教材中进行介绍,通用的解法是配方法(配平方法),即利用a (x +b 2a )2=b 2−4ac 4a解出x =−b 2a ±√b 2−4ac 2a.当然,在初中教材中会要求a ,b ,c 都是实数,并且判别式b 2−4ac 必须非负.在高中教材引进复数之后,上述求根公式对复系数一元二次方程依然有效,开平方运算√b 2−4ac 也不再受到判别式符号的限制,只需要按照复数开方来理解.21值得注意的是,在代数学中可以证明,如果只用系数的有限次加,减,乘,除,以及开k 次方运算(其中k 是正整数),复系数一元五次(或更高次)方程没有求根公式.换句话说,不可能存在仅由系数的有限次加,减,乘,除,以及开k 次方运算构成的公式,使得每一个复系数一元五次方程都可以按该公式求解.这一结论通常称为Abel–Ruffini 定理.不少业余数学爱好者在没有修习过大学近世代数课程的情况下致力于推导高次方程的初等求根公式,这样的努力难免徒劳无功.2这里约定开方运算k √·只需要算出任意一个k 次方根即可.1一元二次方程的这一配方解法可以进行更细致地拆解.首先,我们可以将二次项系数归一化,只需要考虑x2+˜bx+˜c=0,其中˜b=b/a,˜c=c/a.然后引进新的变量y=x+˜b/2可以消去一次项得到二项方程y2=˜b24−˜c.最后开平方解出y=±√˜b2−4˜c2,再代入x=y−˜b/2即可算出x.一元二次方程实在太过简单,所以即使不像这样进行细致地拆解仍然可以很轻易地解出,这里拆解的目的只是为了简化记号,从而更容易看清楚每个步骤所起的作用.对于一元三次方程而言,为了避免不必要的麻烦,同样只需要考虑首项系数为1的方程x3+bx2+cx+d=0.类似于一元二次方程的配平方,这里很自然地首先尝试配立方的办法,引进变量y=x+b/3便可以消去二次项得到形如y3+py+q=0(1)的三项方程,3其中p和q的具体表达式留给读者自行推导.这样一来只要能够求解(1)就可以解出一般的一元三次方程.不过与一元二次方程不同的是,当p=0时(1)并不能直接开立方来求解,所以接下来我们需要进一步研究三项方程(1)的一般解法.2三倍角公式在中学教材的三角函数部分,三倍角公式远不如二倍角公式及半角公式重要,4不过三倍角公式和(1)的求解紧密相关.考虑三倍角余弦公式cos3θ=4cos3θ−3cosθ,(2)公式(2)的右端只含有cosθ而不含sinθ.如果令T3(x)=4x3−3x,那么cos3θ=T3(cosθ),也就是说cos3θ是cosθ的三次多项式.53另一种理解方式是,通过平移变换,我们总可以将一元三次方程的三根之和变为零.4通常来讲我们并不鼓励中学生去记忆三倍角公式,只要在需要使用的时候能够临时推导就足够了.5一般地,定义多项式序列T(x)=1,T1(x)=x,T n+2(x)=2xT n+1(x)−T n(x),(n∈N).2注意到在T 3(x )中的二次项系数为零,如果将T 3(x )与(1)的形式进行对比不难发现,当p =−3/4且−1/4≤q ≤1/4时,y 3−34y +q =0可以用代换q =−(cos 3θ)/4,y =cos θ来求解,得到y =cos (13arccos (−4q )+2kπ3),其中k ∈{0,1,2}.顺着这一思路,对于实数p <0,如果设y =r cos θ代入(1)就可以得到r 3cos 3θ+rp cos θ+q =0,当r 3/rp =−4/3时就可以凑成T 3(cos θ)的形式.于是我们取r =2√−p /3,就可以归结为4cos 3θ−3cos θ−4q r 3=0.只要−4q /r 3是绝对值不大于1的实数(等价于(p /3)3+(q /2)2≤0)仍然可以按上述三角解法来解.63Vieta 代换和Cardano 公式上一节中介绍的一元三次方程的三角解法由Vieta 提出,可以在p ,q 是实数并且(p /3)3+(q /2)2≤0的前提下求解(1)的三个实根.当然,在中学知识范围内这个解法对于p 和q 的取值范围有一定的要求,难以应用于一般的复系数一元三次方程.7另外,该方法需要引进三角函数和反三角函数,比起一元二次方程只需要用到四则运算和开方就能求解来讲要复杂一些.不过对这一三角解法进行适当推广很容易得到求解(1)的代数方法.如果z =cos θ+i sin θ,那么cos θ=12(z +1z),利用归纳法及和差化积公式容易验证cos nθ=T n (cos θ),这里的T n (x )称为n 次Chebyshev 多项式,也叫做第一类Cheby-shev 多项式.6如果引进双曲函数sinh θ=12(e θ−e −θ),cosh θ=12(e θ+e −θ),并利用双曲函数的三倍角公式sinh 3θ=4sinh 3θ+3sinh θ,cosh 3θ=4cosh 3θ−3cosh θ,则可解决三角解法中未曾顾及的p ,q 是实数但(p /3)3+(q /2)2>0的情况求出方程(1)的实根.7在大学的复分析课程中,余弦函数的定义域和值域都将会扩大到整个复平面,届时Vieta 的三角解法就可以作为一元三次方程的通用解法,尽管这不能算是纯粹的代数解法.3由此即可将左端的三角函数cos θ用右端关于z 的有理函数来代替,并且右端只需要z =0即有意义,而无需再受到原先|z |=1的约束,这样就可以把由三角函数的值域过小造成的约束放宽.对于代换y =r cos θ=rz 2+r 2z,如果再引进w =rz /2,便可以得到r 2z =r 24w =−p 3w,这里的最后一步用到了上一节中的选择r 2=−4p /3.有了上面的分析,我们就可以“过河拆桥”,在一开始求解(1)时就直接进行换元y =w −p 3w ,(w ∈C \{0}).(3)这一变量代换称为Vieta 代换.注意到对于任何复数y ,总存在两个复数w (有可能相同)使得y 与w 满足关系式(3),所以Vieta 代换总是可行的,并且不会遗漏(1)的解.将(3)代入(1)得到w 3−p 327w 3+q =0,通分得到关于w 3的二次方程w 6+qw 3−p 327=0,于是w 是w =3√−q 2+√(q 2)2+(p 3)3(4)的6个值(考虑重数)之一,这里的3√·和√·都表示复数开方的任何一个结果.只要得到了w ,再代入(3)便求出了y .记w 0为(4)中的任何一个结果,那么(1)的三个复根为y 1=w 0−p 3w 0,y 2=ζw 0−p 3ζw 0,y 3=ζ2w 0−p 3ζ2w 0,(5)其中ζ=−1+√3i 2.这一结果,即公式(4)和(5),称为Cardano 公式.需要指出的是,尽管w 0可以有6种取法(即w 0可以替换成ζw 0,ζ2w 0,−p /(3w 0),−ζp /(3w 0),−ζ2p /(3w 0)中的任何一个),但不论4哪一种取法,由(5)得到的三个解y 1,y 2,y 3总是相同的,至多仅有次序上的区别.另外,整个推导过程中并不要求p ,q 是实数,所有的运算都是复数运算,因此Cardano 公式对于p ,q 是复数的情况成立.4历史意义在16世纪早期,意大利数学家del Ferro 和Tartaglia 先后独立找到了一元三次方程的求解方法,这是欧洲文艺复兴时期在数学方面首次取得了超过古希腊数学成就的新成果,是数学史上重要的里程碑.Cardano 从Tartaglia 处学习到了一元三次方程的解法,并于1545年将其发表在著作Ars Magna 中,故一元三次方程的求根公式现在通常称为Cardano 公式.8在Cardano 所处的年代,负数的地位尚未得到正式认可,只有正数才可以进行运算(方程中系数小于零的项都需要移到等号的另一侧使系数变为正数).而Cardano 提出如果承认负数,并且允许对负数开平方,将会扩展方程可解的范围.9尽管复数被数学界所理解并广泛接受还经历了相当长的一段时间,但是复数的出现对于代数学和分析学都有着极为深远的影响.在Cardano 之后,法国数学家Vieta 和Lagrange 又相继提出了一元三次方程的其它解法.10其中Lagrange 的方法引进了置换的概念,统一了四次以内的一元多项式方程的解法,并断言一元五次方程不会有根式解.19世纪初,Lagrange 的思想为挪威数学家Abel 和法国数学家Galois 所发展,开创了近世代数(也叫抽象代数)这一新的数学分支,不仅完全解决了一元代数方程根式解的问题,也改变了整个数学科学的面貌.5练习题1.在复数域上解方程x 3−24x −32=0.2.在复数域上解方程x 3+5x 2−8x −28=0.3.在复数域上解方程x 3−3i x 2−(1−12i )x −25i =0.4.求3√39√69+324−3√39√69−324的值,其中√·和3√·表示通常实数的算术根.8Tartaglia 在Cardano 承诺保守秘密的情况下将一元三次方程的解法透漏给Cardano,然而后来Carnado 得知del Ferro 于Tartaglia 之前已经解出一元三次方程,并找到了del Ferro 的手稿,便觉得没有必要再遵守与Tartaglia 之间的约定,遂将一元三次方程的解法发表在其著作中(仍归功于del Ferro 和Tartaglia),一同发表的还有Cardano 的学生Ferrari 发现的一元四次方程的通用解法(称为Ferrari 解法).9可以证明,当p ,q 是实数且(p /3)3+(q /2)2<0时,方程(1)有三个实根.但是对于这种情况Cardano 公式不可避免地需要引进复数才能得到这三个实根.10本文的推导并未按照历史上的次序,而是反过来从Vieta 的三角解法引入Vieta 代换来得到Cardano 公式,以期读者可以更自然地理解其中的变量代换.读者也可以跳过三角解法直接从(3)开始推导Cardano 公式.55.若方程x3−3x+1=0的三个实根从小到大依次为x1,x2,x3,证明:x21−x23=x1−x2.6.若p,q是给定的实数,记∆=(p/3)3+(q/2)2.证明:•若∆>0,则(1)有三个不同的根,其中一个是实根,另外两个是一对共轭复根;•若∆=0,则(1)有三个实根,并且有重根;•若∆<0,则(1)有三个不同的实根.7.分别在实数域和在复数域上分解因式x3+y3+z3−3xyz,并由此推导Cardano公式.8.若p,q,r是给定的复数,在求解关于x的方程x4=px2+qx+r时,可以在两边同时加上2ux2+u2得到(x2+u)2=(p+2u)x2+qx+r+u2.为了使上述等式右端构成完全平方式,应该如何选取u?9.已知实数x,y,z满足x2+y2+z2=1,求xy+yz+3zx的最大值.10.证明:cos20◦是无理数.6。