您的位置:首页 > 编程语言 > C语言/C++

牛顿迭代法

2017-11-20 22:57 120 查看
f(x)=x*x*x-3*x-1     迭代公式:x=x-(x*x*x-3*x-1)/(3*x*x-3)

#include <stdio.h>
#include <math.h>
#define maxrept 1000
double f(double x)
{
return (x-(x*x*x-3*x-1)/(3*x*x-3)); //迭代公式
}
void main()
{
int k=0;
double d;
double eps=0.00001;                       //输入精度
double x1=1.5,x2;
do
{
x2=f(x1);
d=fabs(x2-x1);
x1=x2;
k++;
printf("x=%.4lf\n",x2);
printf("k=%d\n",k); //打印迭代次数
}while((d>=eps)&(k<maxrept));
if(k<maxrept)
printf("此迭代公式收敛!\n");
else
printf("此迭代公式发散,迭代失败!\n"); //打印迭代敛散情况
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 牛顿迭代法