牛顿迭代法.cpp

来自「牛顿送代算法,一个数值分析中的算法,大家先看看哦」· C++ 代码 · 共 51 行

CPP
51
字号
# include <iostream.h>
# include <math.h>
double f (double x)
{
	double x1=exp(x)*x-1;
	return x1;
}
double f1 (double x1)
{
	double n=exp(x1)+x1*exp(x1);
	return n;
}
void main ()
{
	double x0,e,x1;
	int N,k=0,i=1;
	cout<<"请输入初值,误差限,迭代次数:\n";
	cin>>x0>>e>>N;
	while (i)
	{
		if (f1(x0)==0)
		{
			i=2;
			break;
		}
		else
		{
			x1=x0-f(x0)/f1(x0);
	    	if ((x0-x1)<e && (x1-x0)<e)
			{
    			i=0;
    			break;
			}
    		else if (k==N)
			        break;
    	    	else
				{
	    			cout<<x1<<"    "<<x0<<endl;
	        		k++;
	        		x0=x1;
				}
		}
	}
	if (i==0)
		cout<<"方程的解为:\n"<<x1<<endl;
	if (i==1)
		cout<<"迭代失败!\n";
	if(i==2)
		cout<<"此方程不能用此种迭代法方法!\n";
}

⌨️ 快捷键说明

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