#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
double f(double x)
{
return x+exp(x)-2;
}
double df(double x)
{
return 1+exp(x);
}
int main()
{
double x0,x1,sec;
int i,n,flag=0;
scanf("%lf%lf%d",&x0,&sec,&n);
for( i=1;i<=n;i++)
{
if(fabs(df(x0)<1e-5))
{
flag=1;
break;
}
x1 = x0 - f(x0)/df(x0);
if(fabs(x1-x0)<sec)
{
//printf("x1:%lf,x0:%lf,sec:%lf",x1,x0,sec);
flag=2;
break;
}
x0=x1;
}
if(flag==2)
printf("%lf %lf %.10lf %d",x1,x0,f(x1),i);
return 0;
}
【牛顿迭代法】C++实现
猜你喜欢
转载自blog.csdn.net/qq_41514794/article/details/89632878
今日推荐
周排行