您的位置:首页 > 其它

用牛顿迭代法求下面方程在1.5附近的根:2x^3-4x^2+3x-6=0

2017-04-27 20:07 2016 查看
用牛顿迭代法求下面方程在1.5附近的根:2x^3-4x^2+3x-6=0

关于牛顿迭代法,在计算方法课程中讲到,简单解释下,基本公式为:

Xn+1=Xn-f(Xn)/f
*(Xn)
其中Xn+1为第n+1次迭代结果,Xn为第n次迭代结果,f *(Xn)f (Xn))的导函数值。

基本步骤:

第一步把方程改写为多项式f(x)=2x^3-4x^2+3x-6,给定初值X0;

第二步将Xn带入迭代公式Xn+1=Xn-f(Xn)/f *(Xn),求出Xn+1

第三步判断精度fabs([b]Xn+1-Xn)[/b]是否达到要求满足则输出,否则返回上一步;

下面给出代码:

#include<stdio.h>
#include<math.h>
int main()
{
int i=0;
double x1=1.5,x2=0;//迭代初值
while (fabs(x2-x1)>=1e-5)
{
x1=x1-(2*x1*x1*x1-4*x1*x1+3*x1-6)/(6*x1*x1-8*x1+3);
x2=x1-(2*x1*x1*x1-4*x1*x1+3*x1-6)/(6*x1*x1-8*x1+3);

i++;
printf("第%d次迭代 x1=%9.8f\tx2=%9.8f\n",i,x1,x2);
}
printf("\nx=%9.8f\t共迭代:%d次\n",x2,i);
return 0;
}下面给出测试结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐