📄 newton迭代法.cpp
字号:
//黄泳晞(2003402054529) Newton迭代法
//序用函数按照课本 P.240 例11 函数: (X*X*X)-X-1
#include <iostream.h>
#include <math.h>
#define F(x) (x*x*x)-x-1 // 原函数
#define Fd(x) 3*(x*x)-1 // 一次求导后的函数
class Newton{
int N,k;
double x,x1,DT,FF,FD,EPS;
public:
void Input();
void DoNewton();
};
//...................数据输入...........................
void Newton::Input(){
cout<<"输入Xo的值: "; cin>>x;
cout<<"输入最大迭代次数N的值:"; cin>>N;
cout<<"EPS的值:"; cin>>EPS;
};
//...................Newton迭代.........................
void Newton::DoNewton(){
k=1;
do{
FF=F(x);FD=Fd(x);
if (FD<EPS && FD>(-EPS)){
cout<<"Xo选取错误。"<<endl;
break;}
else{
x1=x-FF/FD;DT=fabs(x1-x);
if(DT<EPS){
cout<<"X("<<k<<")="<<x1<<endl<<endl;
cout<<"得出近似值 X= "<<x1<<endl;
cout<<"迭代次数 K= "<<k<<endl;
break;
}
else{
cout<<"X("<<k<<")="<<x1<<endl;
k++;x=x1;
}
}
}while (k<=N);
if (k>N)
cout<<endl<<"迭代次数已超过最大迭代次数。"<<endl;
};
main(){
Newton T;
T.Input();
T.DoNewton();
}
//End..............................................
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -