拉格朗日.cpp

来自「拉格朗日算法」· C++ 代码 · 共 49 行

CPP
49
字号
//programm of Lagrange 
#include "iostream.h"
#include "iomanip.h"
void main()
{
	int i,j,k;//定义循环变量
	int n;
	double x;
	double y = 0;//初始化为零
	struct point   //使用结构体存储各节点值
	{
		double x1;
		double y1;
	};
	point poi[10];
    cout<<"请输入x的值:"<<endl;
	cin>>x;
	cout<<"请输入要插值的节点数n:"<<endl;
	cin>>n;
	cout<<"请输入各节点(xi,yi):"<<endl;
	for(i=0;i<n;i++)
	{
		cin>>poi[i].x1>>poi[i].y1;
	}
	for(k=0;k<n;k++)
	{
		double t = 1;
		for(j=0;j<n;j++)
		{
			if(j!=k)
				t = ((x - poi[j].x1)*t)/(poi[k].x1 - poi[j].x1);
				else continue;
		}
		
		y = y + t*poi[k].y1;
	}
	cout<<"我们可以得到拉格朗日插值结果为:";
	cout<<y;
	cout<<endl;
}
//一下是我用的一个小例子,下面是运行的过程,例子为求exp(115);
/*请输入x的值:
115
请输入要插值的节点数n:
3
请输入各节点(xi,yi):
100 10 121 11 144 12
我们可以得到拉格朗日插值结果为:10.7228
Press any key to continue*/

⌨️ 快捷键说明

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