#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
const double esp = 1e-8;//误差限;
//f(x)=x^3+10x-20; //函数
double diedai(double Xn) //迭代求Xn+1;
{
//double Xn1;
//Xn1=Xn-(pow(Xn,3)+10*Xn-20)/(3*Xn*Xn+10);
//return Xn1;
return Xn-(pow(Xn,3)+10*Xn-20)/(3*Xn*Xn+10);
}
int main()
{
double X0,Xn;
X0=1.5;
for(int i=1;;i++)
{
Xn=diedai(X0);
printf("Case %d: %.16f\n",i,Xn);
printf("%.16f\n",Xn-X0); //相相邻两次插值;
if(abs(Xn-X0)<esp)
{
break;
}
X0=Xn;
}
return 0;
}
Newton Method
最新推荐文章于 2022-11-29 10:09:32 发布