第1个回答 2009-07-20
#include <iostream>
#include <cmath>
using namespace std;
static k=0;
static int count=1;
double f(double x)
{
return (x*exp(x)-1);//返回f(x)=xe^x-1的值
}
int main()
{
double x0,x1,x2;
double e=0.00001;//精度
cout<<"请输入任意两个数作为初值,X0<X1"<<endl;
cin>>x0>>x1;
x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));
while(x2-x1>e||x1-x2>e)
{
x0=x1;
x1=x2;
x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));
count+=1;
}
cout<<"方程的根为:"<<x2<<endl;
cout<<"迭代的次数为:"<<count<<endl;
return 0;
}
可以输入任意两个数作为初值,X1>X0
原理,只有一条: x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));
我相信您书上已经说得很清楚本回答被提问者采纳