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

牛顿迭代法(用c语言实现)

2009-10-16 10:43 190 查看
#include<stdio.h>
#include<math.h>
double f(double x)
{
double fx;
fx=cos(x)-x;
return fx;
}
double Df(double x)
{
double fx;
fx=-sin(x)-1;
return fx;
}
main()
{
double epsilon1,epsilon2,alpha;
int N,n;
double root;
double x0,x1,F,DF,tol,k;
printf("请输入初值alpha:");
scanf("%lf",&alpha);
printf("请输入精度epsilon1:");
scanf("%lf",&epsilon1);
printf("请输入精度epsilon2:");
scanf("%lf",&epsilon2);
printf("请输入最大迭代次数N:");
scanf("%d",&N);
x0=alpha;
for(n=1;n<=N;n++)
{
F=f(x0);
DF=Df(x0);
if(abs(F-x0)<epsilon1)
{
printf("%lf",&x0);
goto end;
}
else if(abs(DF)<epsilon2)
{
printf("失败!");
goto end;
}
else
{
x1==x0-F/DF;
tol=abs(x1-x0);
if(tol<epsilon1)
{
printf("%lf",&x1);
goto end;
}
}
x0=x1;
k=k+1;
}
end:
printf("结束!");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息