steffensen加速迭代法.txt

来自「用于求解函数值的加速迭代法!!!程序经过优化处理」· 文本 代码 · 共 56 行

TXT
56
字号
#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 + =
减小字号Ctrl + -
显示快捷键?