newton下山法

来源:互联网 发布:淘宝微商代理能挣钱吗? 编辑:程序博客网 时间:2024/05/01 01:26

课本27页例2———8

#include<iostream>  #include<math.h>  using namespace std;  int main()  {      cout<<"请输入初始值X:"<<endl;      double x0,x1,F0,F1,F2,F3;      cin>>x0;      F0=x0*x0*x0-1-x0;      F1=3*x0*x0-1;            int i,j;  double  t=1.0;    for( i=0;i<50;i++)      {          if(F1==0)              break; for(t=1;;)       {   x1=x0-1.0/t*(F0/F1);        if(abs(x1*x1*x1-x1-1)<abs(x0*x0*x0-x0-1))      break;   else   {   if(t==1)   t++;   else   t=t+2;   }  }   // cout<< x1*x1*x1-x1-1   <<"  "<<x0*x0*x0-x0-1<<endl;        F2= x1*x1*x1-x1-1;          F3= x1*x1*3-1;          if(abs(x1-x0)<10e-7)              {                  cout<<x1<<endl;                  break;              }          else              {                  x0=x1;                  F0= F2;                  F1=F3;              } cout<<t<<endl;    }      if(i==50)          cout<<"超出最大迭代次数"<<endl;      else          cout<<"迭代次数为:"<<i<<endl;     return 0;    }  


原创粉丝点击