牛顿迭代法求一元三次方程c语言,C++一元三次方程求解算法 - 小众知识

C++一元三次方程求解算法

2013年01月27日 14:18:05

阅读:1118

x = z - b/3a,

代入可得

z^3 + pz + q = 0,

对上面化简的方程,有求根公式:

x = (-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ (1 / 2)) ^ (1 / 3) + (-q / 2 - (q ^ 2 / 4 + p ^ 3 / 27) ^ (1 / 2)) ^ (1 / 3),

x = w (-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ (1 / 2)) ^ (1 / 3) + w ^ 2 (-q / 2 - (q ^ 2 / 4 + p ^ 3 / 27) ^ (1 / 2)) ^ (1 / 3),

x = w ^ 2 (-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ (1 / 2)) ^ (1 / 3) + w (-q / 2 - (q ^ 2 / 4 + p ^ 3 / 27) ^ (1 / 2)) ^ (1 / 3).

其中w是三次本原单位根

w = ( i√3 - 1 ) / 2.

4.用牛顿迭代法比较好(特别是解高阶方程的时候),比如用牛顿迭代法求方程

2x3-4x2+3x-6=0   在1.5附近根。 代码如下:

#include   

main()

{

float   x,x0,f,f1;   

你可能感兴趣的:(牛顿迭代法求一元三次方程c语言)