阿.cpp

来自「Newton下山法」· C++ 代码 · 共 28 行

CPP
28
字号
#include<iostream.h>
double f(double x)
{return (x*x*x-x-1);}

double df(double x)
{return (3*x*x-1);}
 
double jdz(double x)
{if(x>=0)return x;
 else return (-x);
}
 
void main()
{double x0,x1,e1=0.00001,e2=0.00001,w=1;
 cin>>x0;
 x1=x0;
 while(jdz(f(x1))>=e1&&w>=e2)
 {x1=x0-(w*f(x0))/df(x0);    //x0--xk;x1--xk+1
  if(jdz(f(x0))<=jdz(f(x1)))
  {w=w/2;}
  //w=w/2;//加上就不对.0.6对应的解为15.0854
  x0=x1;
  cout<<x1<<endl;                  
 }
 //cout<<f(1.5)<<endl;
 //cout<<x1<<endl;
}
//本题试验的是x1=0.6.与原Newton法作比较。

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?