返回首页
当前位置: 主页 > 编程语言 > Matlab教程 >

Aitken加速迭代公式

时间:2014-09-25 23:15来源:电脑教程学习网 www.etwiki.cn 编辑:admin

/*求方程x^3-3x+1=0在(0,1)内的根;
Aitken加速迭代公式*/
#include<iostream.h>
#include<math.h>
double fai(double x)
{
double f;
f=(pow(x,3)+1)/3;
return f;
}
void main()
{
double x0;
double c;
double x_h;
double x_b;
double x;
int tap=0;
cout<<"演示Aitken加速迭代公式"<<endl<<"求方程x^3-3x+1=0在(0,1)内的根,初值x0=0.5,c=0.000005"<<endl;
cout<<"Please input x0,c:"<<endl;
cin>>x0>>c;//x0=0.5,c=0.5*10^(-5)
x=x0;
do
{
x0=x;
x_h=fai(x0);
x_b=fai(x_h);
x=x_b-pow((x_b-x_h),2)/(x_b-2*x_h+x0);
tap++;
}while(fabs(x-x0)>c);
cout<<"Aitken加速迭代公式的迭代步数是:"<<tap<<endl;
cout<<"Aitken加速迭代公式的结果是:x_b="<<x_b<<endl;
}
/*
Aitken加速公式
x_h(k+1)=fai(x(k))
x_b(k+1)=fai(x_h)
x(k+1)=x_b-(x_b-x_h)^2/(x_b-2*x_h+x(k));
*/

------分隔线----------------------------
标签(Tag):Aitken加速迭代公式
------分隔线----------------------------
推荐内容
猜你感兴趣