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

📄 insert.cpp

📁 C++实现的数值分析源程序
💻 CPP
字号:
//拉格朗日插值法
#include"Insert.h"
Lagrange::Lagrange(GivenPoint * inpoints,double inroot,int inlen)
 	{
 	 	points=inpoints;
 	 	root=inroot;
		len=inlen;
 	 	
 	 	cout<<"Construct completed!"<<endl;
 	}
double Lagrange::DoIt(void)
 	{
 	 	int length=len;//How to obtain an array's length?
 	 	double sum=0.0,temp=1.0;
 	 	
 	 	//Main cycle
 	 	for(int i=0;i<=length-1;i++)
 	 	{
 	 	 	for(int j=0;j<=length-1;j++)
 	 	 	{
 	 	 	 	if(i!=j)
 	 	 	 		temp *= (root-points[j].X)/(points[i].X-points[j].X);
 	 	 	}

 	 	 	temp *= points[i].Y;
 	 	 	sum += temp;

			temp = 1.0;
 	 	}
 	 	return sum;
 	}
//分段线性插值
void SepLinear::Separate(double * x,double * y,int len,double root)
{
	int i;

	if(root>x[len-1]||root<x[0])
	{
		cout<<"Root Overranged!"<<endl;
		return;
	}

	for(i=0;i<=len-2;i++)
	{
		if(root>=x[i]&&root<=x[i+1])
			break;
	}

	double result;
	result=y[i]+(y[i+1]-y[i])*(root-x[i])/(x[i+1]-x[i]);
	cout<<"Root:"<<root<<'\t'<<"Result:"<<result<<endl;
}

⌨️ 快捷键说明

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