newton.cpp

来自「Newton法」· C++ 代码 · 共 55 行

CPP
55
字号
//Newton求非线性方程的一个根

#include<iostream.h>
#include<math.h>
#include<stdlib.h>

double fun(double x)
{
	double y;
	y=x*x*x-3*x+1;
	return y;
}

double dfun(double x)
{
	double y;
	y=3*x*x-3;
	return y;
}


int newton(double &x0,int n,double pe)
{
	double x;
	x=x0-fun(x0)/dfun(x0);
	int flag=1,k=1;
	while(fabs(x-x0)>pe&&k<n)
	{
		k++;
		x0=x;
		x=x0-fun(x0)/dfun(x0);
	}
	if(k>n) flag=0;
	if(flag==1) x0=x;
	return flag;
}

void main()
{
	cout<<"Newton求非线性方程的根:\n";
	int n,flag;
	double pe,x0;
	cout<<"请输入初始解x0:\n";
	cin>>x0;
	cout<<"请输入最大迭代次数n:\n";
	cin>>n;
	cout<<"请输入精度要求:\n";
	cin>>pe;

	flag=newton(x0,n,pe);
	if(flag==1)
		cout<<"解为:\n"<<"x="<<x0<<endl;
	else
		cout<<"无解\n";
}

⌨️ 快捷键说明

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