📄 newtonplus.cpp
字号:
//Newton法求根程序
#include <math.h>
#include <iostream.h>
//Function
double f(double x)
{
double y1,y2,y3;
y1=x*exp(x)-1;
y2=x*x*x-x-1;
y3=(x-1)*(x-1)*(2*x-1);
return(y3);
}
double fd(double x)
{
double y1,y2,y3;
y1=exp(x)+x*exp(x);
y2=3*x*x-1;
y3=2*(x-1)*(2*x-1)+2*(x-1)*(x-1);
return(y3);
}
void main()
{
double x0,x1;
double root;
double e1,e2;
int N,k;
cout<<"欢迎使Newton加速求根法程序"<<endl;
l1: cout<<"请输入初始值--->x0"<<endl;
cin>>x0;
cout<<"请输入限制奇异标志--->e1"<<endl;
cin>>e1;
cout<<"请输入计算精度--->e2"<<endl;
cin>>e2;
cout<<"请输入限制跌代次数--->N"<<endl;
cin>>N;
for(k=1;k<=N;k++)
{
cout<<x0<<endl;
if(fd(x0)<e1)
cout<<"ERROR,奇异方程,无法求解,难道是传说中的XX在世,本程序无法处理"<<endl;
x1=x0-(2*f(x0))/fd(x0);
if(fabs(x1-x0)<e2)
goto l2;
x0=x1;
}
if(k>N)
{cout<<"FAILED:选择初始值错误请重新选择初始值"<<endl;
goto l1;
}
l2: root=x1;
cout<<"ROOT="<<root<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -