second.cpp

来自「newton迭代法通用程序(包括算例求解)」· C++ 代码 · 共 42 行

CPP
42
字号
# include <iostream.h>
# include <math.h>
double F1 (double x)//定义原函数
{
	return (x*x*x/3-x);
}
double F2 (double x)//原函数一阶导
{
	return (x*x-1);
}
double Newton(double x0, double e)//Newton迭代法
{
	double x1;
	int i=0;//迭代截断参数
	do{
		i++;
		x1=x0;
		x0=x1-F1(x1)/F2(x1);
	} while (fabs(x0)>e&&i<10000);
	if(i<10000) return x0;
	else return 0;
}
void main()
{
	double x0,x1;
	double e=10E-7;//容许误差
	 x0=-0.01;
	for(;;)
	{
		if(Newton(x0,e)!=0) x0=x0-0.001;
		else break;
	}
	x0=x0+0.001;//相当于-δ
	x1=0.01;
	for(;;)
	{
		if(Newton(x1,e)!=0) x1=x1+0.001;
		else break;
	}
	x1=x1-0.001;//相当于δ
	cout<<"其收敛区间(-δ,δ)为: ("<<x0<<","<<x1<<")"<<endl;
}

⌨️ 快捷键说明

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