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

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

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

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

基本步骤:

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

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

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

下面给出代码:

#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;
}
下面给出测试结果:



  • 21
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值