信息化的本质分享 http://blog.sciencenet.cn/u/Babituo

博文

又发现“费拉里”法使用的一个错误

已有 6421 次阅读 2012-6-3 16:08 |个人分类:信息探索|系统分类:科研笔记| 一元四次方程

网上查到所谓的通用公式解法有“费拉里”法。
基本想法是将一元四次方程的表达式配成两个完全平方表达式的等式,为了实现这个目的,需要在此之前解一个一元三次方程,得到配方的系数。解法如下:
一般一元四次方程为:
x^4+c1x^3+c2x^2+c3x+c4=0
移项后:
x^4+c1x^3=-c2x^2-c3x-c4
两边同时加上(c1x/2)^2:
x^4+c1x^3+(c1x/2)^2 = -c2x^2-c3x-c4+(c1x/2)^2
整理为:
(x^2 + c1x/2)^2 = (c1^2/4-c2)x^2-c3x-c4
两边再同时加上 (x^2+c1x/2)y + (y/2)^2
(x^2 + c1x/2)^2 + (x^2+c1/2)y + (y/2)^2 = (c1^2/4-c2)x^2-c3x-c4 + (x^2+c1x/2)y + (y/2)^2
再整理:
((x^2+c1x/2)+ y/2)^2 = (c1^2/4-c2+y)x^2 + (c1y/2-c3)x +(y/2)^2-c4.....(1)
左边为一个完全平方式,右边为一个x的二次多项式(系数中含有y),
为了使右边也成为一个完全平方式,必须使其判别式为零,即:
DAT = [(c1y/2-c3)]^2 - 4 * [(c1^2/4-c2+y)] * [(y/2)^2-c4] = 0
于是,得到一个关于y的一元三次方程。
-y^3 + c2y^2 + (4c4-c1c3)y+c3^2+c4c1^2-4c4c2=0
 
只要解这个一元三次方程得到一个解y0,代入(1)右边,并令右边=0解出配方常量x0;
便可得到两边都为完全平方的方程,原一元四次方程被降为一元二次方程。可轻松求解。
((x^2+c1x/2)+ y0/2)^2 =(x-x0)^2
即:
(x^2+c1x/2)+ y0/2 = x-x0
(x^2+c1x/2)+ y0/2 = -x+x0
整理为:
x^2+(c1/2-1)x + y0/2 + x0 = 0
x^2 +(c1/2+1)x + y0/2 - x0 = 0
解这两个一元二次方程的解,即为一元四次方程的解。
 
以上是我使用费拉里法的过程,其中红色一行隐藏一个较难发现的错误。
右边原来是:
(c1^2/4-c2+y)x^2 + (c1y/2-c3)x +(y/2)^2-c4
当解出y=y0后代入,变为:
(c1^2/4-c2+y0)x^2 + (c1y0/2-c3)x +(y0/2)^2-c4
令其为零,解出x=x0后,完全平方的表达式,不能约简平方项的系数,变为(x-x0)^2,应保留原有系数。
令k=sqrt(c1^2/4-c2+y0)
完全平方式应写作:(kx-kx0)^2
这样,才能维持原1式表达式的左右相等。
 
该行及之下应更正为:
 
令k=sqrt(c1^2/4-c2+y0)
((x^2+c1x/2)+ y0/2)^2 =(kx-kx0)^2
即:
(x^2+c1x/2)+ y0/2 = kx-kx0
(x^2+c1x/2)+ y0/2 = -kx+kx0
整理为:
x^2+(c1/2-k)x + y0/2 + kx0 = 0
x^2 +(c1/2+k)x + y0/2 - kx0 = 0
解这两个一元二次方程的解,即为一元四次方程的解。
 
用修改后的程序进行测试解方程:
(x-1)*(x-2)*(x-3)*(x-4)= 0
即:
x^4-10x^3+35x^2-50x+24 =0
得到:
 
4+0i
3+0i
2+0i
1+0i
测试通过!
终于解决了一元四次方程的求解程序的问题,爽!
 


https://wap.sciencenet.cn/blog-33982-578116.html

上一篇:手工验算盛金公式
下一篇:彻底解决张学文时间胎精确模型的几何造型
收藏 IP: 218.13.224.*| 热度|

1 张学文

该博文允许注册用户评论 请点击登录 评论 (4 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-29 15:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部