kl800.com省心范文网

一元三次方程求根公式及其Fortran代码


一元三次方程求根公式及其Fortran代码
一元三次方程的求解比一元二次方程困难,求根公式看起来也很复杂,中文维基百科上原先 的三角函数解公式有误,我已经修改过了。但是我觉得还有必要将这些公式简化一下,给出 具体的算法,以便编程使用。 首先需要明确,一元三次方程 f (x) =ax3 + bx2 + cx + d = 0, (a ≠ 0) 至少有一个实 根。这是由于 f (?∞) = ?∞, f (∞) = ∞ ,而 f (x) 在整个区间上连续,所以由微积分 的介值定理,必存在一点 x0 满足 f (x0 ) = 0 。直观上也很容易理解,曲线 f (x) 取值范 围为负无穷到正无穷,那么它与 x 轴至少有一个交点,这个交点就是方程的实根。这个结论 可以推广到所有奇数次的多项式方程。 对一元三次方程 f (x) =ax3 + bx2 + cx + d = 0, (a ≠ 0) ,首先化为

f (x)=

x3 +

3b 2 x 3a

+

6c x 6a

+

2d = 2a

x3 + 3b′ x2 + 6c′ x + 2d ′ =0 形式,为简便我们仍记 α2 ? β 3 , R1 = ? ? ? ? ? ? ? 3 ? √ α + √Δ , R2 = ? ? ? ? ? ? ? 3 ? √ α ? √Δ

作 f (x) =

x3 + 3bx2 + 6cx + 2d = 0 ,令 b2 ? 2c, Δ =

α = ?b3 + 3bc ? d, β=

,则方程的三个根可写作:

x1 = ?b + R1 + R2 x2 = ?b ? x3 = ?b ?
(R1 +R2 ) 2 (R1 +R2 ) 2

+ ?

√3(R1 ?R2 ) i 2 √3(R1 ?R2 ) i 2

其中 Δ 即为三次方程根的判别式,由其容易看出:
? ?

当 Δ > 0 时,方程有一个实根 x1 和两个共轭复根 x2 、x3
3 当 Δ = 0 时,有 R1 = R2 = √ α =R ,

? ?

?

若 R ≠ 0 ,方程有一个实根 x1 = ?b + 2R 和一个二重复根

x2 = x3 = ?b ? R
?

若 R= 0 ,方程只有一个三重复根 x1 = x2 = x3 = ?b
α ) β 3/2

?

当 Δ < 0 时,方程有三个不等实根,令 θ = arccos(

,则

x1 = ?b + 2√β cos( θ ) 3
π x2 = ?b + 2√β cos( θ+2 ) 3 π x3 = ?b + 2√β cos( θ?2 ) 3

很显然,Δ < 0 的情况最复杂,也很让人迷惑,因为实根必须借助于复数才能求得,这也是 最初要引入复数的原因。由于我没有学过复变函数,下面的说法可能有误,说出来只是为了 帮助大家理解。

3 ?= ? 当 Δ < 0 时,记 z = α + √|Δ| i, z α ? √|Δ|i, R1 = √ z, R2 = √z 3 3 ? ? ? ? ,则 R = R 3 ?1 ,记 R1 = R, R2 = ?= ?=? ,ω 为 √z z R √ 2

?? ?

?? ?

?1+√3i ? = ,ω 2

?1?√3i 2

个根可写作:

? x1 = ?b + R1 + R2 = ?b + R + R x2 = ?b ? x3 = ?b ?
很显然
(R1 +R2 ) 2 (R1 +R2 ) 2

+ ?

√3(R1 ?R2 ) i 2 √3(R1 ?R2 ) i 2

? ?R = ?b + ωR + ω ? ? R + ωR = ?b + ω

? kπ 3 ? 3 R(R) =R = z √ |z| cos( θ+2 ), k = 0, 1, ?1 √ 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = |z| √ = α2 + |Δ| √α2 ? = α2 + β 3 β 3/2 θ = arccos( |α ) = arccos( z|
π 旋转 23 的复数,所以 x 2 , x 3 并不能给出新的根。

x1 = ?b + 2R(R)

α ) β 3/2

由于复变函数的多值性,我们一下就得到了所有的三个根,正如上面所给出的。另外由于 ω 对应的正是

==============================J*e*r*k*w*i*n*@*g*m*a*i*l*.*c*o*m============================= 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30| 31| 32| 33| if(Delt>0.D0) then tht = Alph+sqrt(Delt); R1 = sign(abs(tht)**(1.D0/3.D0), tht) tht = Alph-sqrt(Delt); R2 = sign(abs(tht)**(1.D0/3.D0), tht) X(1) = -b+R1+R2 else if(Delt==0.D0) then R1 = sign(abs(Alph)**(1.D0/3.D0), Alph) if(R1==0.D0) then X(1) = -b else X(1) = -b+2.D0*R1 X(2) = -b-R1 end if else if(Delt<0.D0) then tht = acos(Alph/(sqrt(Beta)*Beta)) X(1) = -b+2.D0*sqrt(Beta)*cos(tht/3.D0) X(2) = -b+2.D0*sqrt(Beta)*cos((tht+TwoPi)/3.D0) X(3) = -b+2.D0*sqrt(Beta)*cos((tht-TwoPi)/3.D0) end if End Subroutine getCubicRoot Alph = -b*b*b + 3.D0*b*c -d Beta = b*b -2.D0*c X = 0.D0 a = P(1) b = P(2)/(3.D0*a) c = P(3)/(6.D0*a) d = P(4)/(2.D0*a) Subroutine getCubicRoot(P, X) real*8, parameter:: TwoPi = 8.D0*atan(1.D0) real*8 P(*), a, b, c, d, Alph, Beta, Delt, R1, R2, tht, X(3)

Delt = Alph*Alph-Beta*Beta*Beta

============================================================================================


一元三次方程求根公式及其Fortran代码.pdf

一元三次方程求根公式及其Fortran代码一元三次方程的求解比一元二次方程困难,

一元三次方程求根公式.pdf

暂无评价|0人阅读|0次下载 | 举报文档 一元三次方程求根公式_数学_自然科学_专业资料。经编写程序验证过的一元三次方程求根公式 一...

一元三次方程的求根公式及其推导.doc

一元三次方程求根公式及其推导 - 一元三次方程求根公式及其推导 由于任一个一般的一元 三次方程Ax3 ? Bx 2 ? Cx ? D ? 0均可经过移轴 B 3 B2 B...

一元三次方程求根公式.doc

一元三次方程求根公式 - 一元三次方程求根公式 一元三次方程 x ? px ?

一元三次方程的求根公式及其推导.doc

一元三次方程求根公式及其推导 - 一元三次方程求根公式及其推导 由于任一个一般的一元 三次方程Ax3 ? Bx 2 ? Cx ? D ? 0均可经过移轴 B 3 B2 B...

一元三次方程的求根公式及其推导.doc

一元三次方程求根公式及其推导 - 一元三次方程求根公式及其推导 由于任一个一般的一元 三次方程Ax3 ? Bx 2 ? Cx ? D ? 0均可经过移轴 B 3 B2 B...

一元三次方程的求根公式及其推导.doc

一元三次方程求根公式及其推导_理学_高等教育_教育专区。数学论文 一元三次方程求根公式及其推导三次方程 Ax 3 + Bx 2 + Cx + D = 0均可经过移轴 ...

一元三次方程求根公式完整推导过程.pdf

一元三次方程求根公式完整推导过程 - 一元三次方程 ax3 + bx 2 + c

一元三次方程的求解公式及其推导 阿迪力.doc

一元三次方程的求解公式及其推导 阿迪力 - 新疆大学毕业论文(设计) 题 目:

一元三次方程求根公式.doc

一元三次方程求根公式 - 一元三次方程求根公式 一元二次 ax^2 +bx+c=

一元三次方程求根程序.doc

一元三次方程求根程序_计算机软件应用_IT/计算机_专业资料。使用C语言编写的一个一元三次方程求根程序一元三次方程求根程序 算法如下: 算法来源: http://baike...

一元三次方程求根公式的解法.pdf

一元三次方程的求解公式的解法只能用归纳思维得到,即根据一元一次方程、一元二次 方

一元三次方程求根公式流程图.unkown

一元三次方程求根公式流程图 - 输入一元三次方程的 四个系数 判别式△ 的符号

一元三次方程求根公式.doc

一元三次方程求根公式 - 一元三次方程求根公式 目录 盛金公式 盛金判别法 盛金定理 传统解法 方程公式历史 一元三次方程求根公式 1. 卡尔丹公式的推导 2. ...

一元三次方程求根公式.doc

一元三次方程求根公式 - 一元三次方程求根公式 编辑词条 B 添加义项 ? 三次

一元三次方程的求根公式.doc

一元三次方程求根公式 - 一元三次方程求根公式称为“卡尔丹诺公式” 一元三次方程的一般形式是 x3+sx2+tx+u=0 如果作一个横坐标平移 y=x+s/3,那么...

一元三次方程有求根公式吗?_图文.pdf

一元三次方程求根公式吗? - 一元三次方程求根公式吗? 这是初等数学的 “最后问题” 。 三次四次方程求解是初等数学研究的最后的, 最具技巧性的问题,再...

一元三次方程求根计算.xls

一元三次方程求根计算_数学_自然科学_专业资料。本程序可计算任意一元三次方程的三

一元三次方程求根公式.txt

范盛金推导出一套直接用a、b、c、d表达的较简明形式的一元三次方程的一般式新求根公式,并建立了新判别法。 盛金公式(Shengjin's Formulas) 一元三次方程aX^3...

求实系数一元三次方程根的实用公式.doc

求实系数一元三次方程根的实用公式 - 求实系数一元三次方程根的实用公式 在数学书籍或数学手册中, 对一元三次方程求根公式的叙述都是沿 用“卡丹公式”,即:...