编写程序,用牛顿法求方程x^3-x-1在1.5附近的根

编写程序,用牛顿法求方程在1.5附近的根

方案1:使用牛顿法并取x0=1.5

方案2:取x0=0,使用同样的公式

#include
#include
using namespace std;

double f(double x);   //f(x)为需要求解方程的对应函数
double f1(double x);   //f1(x)为f(x)的一阶导数

int main(void)
{
	double N;  //N为最大迭代次数;
	double x0, x1;    //x0为运用牛顿法时选取的初值;x1为迭代初值的下一次迭代值
	int count;  //count为当前迭代次数

	cout << "请输入迭代初值:";
	cin >> x0;
	
	cout << "请输入最大迭代次数:";
	cin >> N;

	count = 0;

	do
	{
		count++;   //迭代次数自增1

		if (count > N)
		{
			break;
		}

	
		else
		{
			x1 = x0 - f(x0) / f1(x0);

			cout << "第" << count << "次迭代,方程的近似根为:" << x1 << endl;

			//交换x0与1的值,便于进行下一次迭代
			double temp;
			temp = x1;
			x1 = x0;
			x0 = temp;
		}
	} while (1);
cout << "达到计算精度使f(x)=0的解为: " << x0 << endl;
	return 0;
}

double f(double x)   //原函数
{
	double result = x*x*x-x-1;
	return result;
}

double f1(double x)    //导函数
{
	double result = 3*x*x-1;
	return result;
}

你可能感兴趣的:(算法)