来自「收集的C语言算法程序」· 代码 · 共 25 行

TXT
25
字号
非线性方程求根的不动点迭代法2007-07-16 18:51#include<iostream>
using namespace std;
#define g(x) ((x)*(x)+2*(x)+10)      //要首先把f(x)=0化成x=g(x)的形式,此处不拟提供自动转化函数
#define n 50                           //最大迭代次数
#include<math.h>
#define err 0.00001                       //最大允许误差

void main()
{
double x[n];
int i;
cout<<"Please input the initialized x0:\n";
cin>>x[0];


for(i=0;i<n;i++)
{
x[i+1]=20/g(x[i]);                      //预先已经求得的迭代格式
     if(fabs(x[i+1]-x[i])<err) {cout<<"The root of the equation is:\n"<<x[i+1]<<"\n";break;}
}

}

 

⌨️ 快捷键说明

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