四次方程求根问题 C

来源:百度知道 编辑:UC知道 时间:2024/06/18 06:57:40
求一个可以解四次方程根的c程序

以前老用matlab,现在要专向c语言,才发现好多函数都需要自己编写。

给定四次方程的5个系数c1,c2,c3,c4,c5,求一元四次方程的根,在matlab中只需调用roots便解决了,现在c语言环境下,急需一个有类似可以求解一元四次方程根的功能的函数,

请大侠帮忙,毕设用,多谢多谢!!

将一般四次方程 ax4+bx3+cx2+dx+e=0

每项除a,得到:

x4+(b/a)x3+(c/a)x2+(d/a)x+(e/a)=0

移项,得到:

x4+(b/a)x3=-(c/a)x2-(d/a)x-(e/a)

在等式两端同时加上(bx/2a)2,进行配方。

(x^2+(bx)/(2a))^2=(b/(4a)-c)^2*x^2-dx-e

再在该式加上 (x^2+(bx)/(2a))*y+(y^2/4) (y是一个待定变量)

(x^2+bx/2+y/2)^2=(b^2/4a-c+y)*x^2+((by)/2-d)x+(y^2/4-e)

上式右端是一个关于x的二次三项式。适当选择y,使这个二次三项式也能写成完全平方式。只要y能满足下面的等式:

((by)/2-d)^2-4(b/(4a)-c+y)(y/4-e)=0

就可以,这是一个关于y的三次方程。

这样,四次方程的问题归为解一个三次方程和两个二次方程的问题。

数值求解之