📄 newton.cpp
字号:
//Newton求非线性方程的一个根
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
double fun(double x)
{
double y;
y=x*x*x-3*x+1;
return y;
}
double dfun(double x)
{
double y;
y=3*x*x-3;
return y;
}
int newton(double &x0,int n,double pe)
{
double x;
x=x0-fun(x0)/dfun(x0);
int flag=1,k=1;
while(fabs(x-x0)>pe&&k<n)
{
k++;
x0=x;
x=x0-fun(x0)/dfun(x0);
}
if(k>n) flag=0;
if(flag==1) x0=x;
return flag;
}
void main()
{
cout<<"Newton求非线性方程的根:\n";
int n,flag;
double pe,x0;
cout<<"请输入初始解x0:\n";
cin>>x0;
cout<<"请输入最大迭代次数n:\n";
cin>>n;
cout<<"请输入精度要求:\n";
cin>>pe;
flag=newton(x0,n,pe);
if(flag==1)
cout<<"解为:\n"<<"x="<<x0<<endl;
else
cout<<"无解\n";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -