⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 牛顿下山法.cpp

📁 数值分析(计算方法):欧拉方法、高斯-赛德尔迭代法、拉格朗日及分段线性插值、龙贝格算法、牛顿下山法、选主元高斯消去法
💻 CPP
字号:
#include<iostream>

#include<cmath>
using namespace std;

double f(double x)         
	{      
		return x*x*x-x-1;
	}



double fx(double x)           
	{
		return 3*x*x-1;
	}

void main()
{
	int h=0,k=0,m,n;
	double x0,e,x1,j=1;
	cout<<"输入 x0,n,m,e"<<endl;
	cin>>x0>>n>>m>>e;
	do
	{
		if(fx(x0)==0){
			cout<<"error!";
			break;
		}
		x1=x0-f(x0)/fx(x0);
	    while(fabs(f(x1))>fabs(f(x0)))
		{
			j=j/2;
		        x1=x0-j*f(x0)/fx(x0);
			h++;
			cout<<"下山次数 "<<h<<' '<<x1<<endl;
		}
		
		if(fabs(x1-x0)<e)
		{
			cout<<"下山结果: "<<x1<<endl;
			break;
		}
		x0=x1;
		k++;
	}while(k!=n);
	if(k>=n)cout<<"重新输入x0:"<<endl;
            cout<<"下山次数以及下山因子是:"<<h<<' '<<j<<endl;
}

⌨️ 快捷键说明

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