题目要求:
设计程序完成利用牛顿法解方程 xe^x-1=0
分析:
在设计程序之前,我们需要了解一下牛顿法的基本原理。设存在方程f(x)=0,已知方程的近似根为x(k),函数f(x)可展开,得到迭代公式
下面提供牛顿法解方程的代码:
#include<iostream>
#include<cmath>
using namespace std;
double newtonF(double x){
return x-(x-exp(-x))/(x+1);
}
double getResult(double x,double accuracy)
{
double y=0.0;
y=newtonF(x);
while(fabs(y-x)>=accuracy){
x=y;
y=newtonF(x);
}
return y;
}
int main()
{
double x,accuracy;
cout<<"请输入迭代初始值:"<<endl;
cin>>x;
cout<<"请输入精确度:"<<endl;
cin>>accuracy;
cout<<"方程解为:"<<endl;
cout<<getResult(x,accuracy)<<endl;
return 0;
}
以上选自《妙趣横生的算法》