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

📄 3_1.cpp

📁 实现牛顿插值的一次二次差值
💻 CPP
字号:
#include<iostream>
#include<cmath>
double X=0.3367;
double x[]={0.32,0.34,0.36};
double y[]={0.314567,0.333487,0.352274};
using namespace std;
int  main()
{
    double R1,R2;
	double L1,L2;
	//double sin(X);
	void Calculate1(double&);
	void Calculate2(double&);

	cout<<"sin("<<X<<")="<<sin(X)<<endl;
	Calculate1(L1);
	//R1=0.3335*(X-x[0])*(X-x[1])/2;
	R1=fabs(sin(X)-L1);
	cout<<"一次截断误差是:R1="<<R1<<endl;
	
	Calculate2(L2);
	//R2=0.828*(X-x[0])*(X-x[1])*(X-x[2])/6;
	R2=fabs(sin(X)-L2);
	cout<<"二次截断误差是:R2="<<R2<<endl;
	return 0;
}

void Calculate1(double &L1)
{
	
	//double L1;
	cout<<"Please enter X:"<<endl;
	//cin>>X;
	//cout<<"X="<<X<<endl;
	L1=(X-x[1])*y[0]/(x[0]-x[1])+((X-x[0])*y[1]/(x[1]-x[0]));
	cout<<"一次插值结果是:L1="<<L1<<endl;
}


void Calculate2(double &L2)
{
	//float L2;
	//cout<<"Please enter X:"<<endl;
	//cin>>X;
	//cout<<"X="<<X<<endl;
	L2=(X-x[1])*(X-x[2])*y[0]/((x[0]-x[1])*(x[0]-x[2]))+((X-x[0])*(X-x[2])*
		y[1]/((x[1]-x[0])*(x[1]-x[2]))+(X-x[0])*(X-x[1])*y[2]/((x[2]-x[0])*(x[2]-x[1])));
	cout<<"二次插值结果是:L2="<<L2<<endl;
}


	





⌨️ 快捷键说明

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