用牛顿迭代法求下面方程在1.5附近的根。
2x*x*x-4*x*x+3*x-6=0
解: f'(x0)=f(x0)/(x1-x0)
因此 x1=x0-f(x0)/f'(x0)
这就是牛顿迭代公式。可以利用它由x0求出x1,然后再由x1求出x2……
设 f(x)=2x*x*x-4*x*x+3*x-6
可以写成以下形式:
f(x)=((2*x-4)*x+3)*x-6
同样,f'(x)可写成:
f'(x)=6*x*x-8*x+3
程序如下
#include <math.h>
main()
{
float x,x0,f,f1;
x=1.5;
do
{
x0=x;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x=x0-f/f1;
}while(fabs(x-x0)>=1e-5);
printf("The root of equation is %5.2f/n");
}
谭浩强的牛顿迭代法程序
最新推荐文章于 2023-09-29 10:33:33 发布