?? steffensen加速迭代法.txt
字號:
#include<iostream.h>//Steffensen加速迭代法
#include<cmath>
double f(double x);
double g(double x);
double ABS(double x);
double power(double x,int n);
void main()
{
double x,y;
cout<<"請輸入初始值x0=";
cin>>x;
int n=1;
while(1)
{
y=x-power(g(x)-x,2)/(g(g(x))-2*g(x)+x);
if(ABS(y-x)<=1e-5)
{
cout<<"求得f(x)=0的根為:"<<"x"<<n-1<<"="<<y<<endl;
cout<<"在計算精度為10^(-5)的條件下,迭代次數為:"<<n<<endl;
break;
}
else
{
x=y;
n++;
}
}
}
double power(double x,int n)
{
double val=1;
while(n--)
val*=x;
return val;
}
double ABS(double x)
{
if(x>=0)
x=x;
else
x=-x;
return x;
}
double f(double x)
{
double y;
y=power(x,3)-x-1;
return y;
}
double g(double x)
{
double y;
y=power(x,3)-1;
return y;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -