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

📄 拉格朗日插值.cpp

📁 计算拉格朗日插值。控制台输入用于插值的数据x
💻 CPP
字号:
/*拉格朗日插值*/

#include <iostream>
#include <iomanip>
using namespace std; 

int main()
{
	int i, j, k, n; 
	char c; 
	cout<<"选项: x坐标(x) or y坐标(y)\noption="; 
	cin>>c; 
	cout<<"次数:n="; 
	cin>>n; 
	n++; 
	double *x = new double[n+1]; 
	double *y = new double[n+1]; 
	x[0] = 0; 
	y[0] = 0;
	double tmp;  
	cout<<"请输入插值节点的坐标(x, y):"<<'\n';  
	for(i = 1; i <= n; i++)
	{
		cout<<"x"<<i<<"="; 
		cin>>x[i]; 
		cout<<"y"<<i<<"="; 
		cin>>y[i]; 
	}
	if(c == 'y')
	{
		cout<<"请输入插值点的坐标:y="; 
		cin>>y[0];
		for(i = 0; i <= n; i++)
		{
			tmp = x[i]; 
			x[i] = y[i]; 
			y[i] = tmp; 
		}
	}
	else
	{
		cout<<"请输入插值点的坐标:x="; 
		cin>>x[0];
	}
	double l; 
	for(j = 1; j <= n; j++)
	{
		l = 1; 
		for(k = 1; k <= n; k++)
		{
			if(k != j)
				l *= (x[0] - x[k]) / (x[j] - x[k]); 
		}
		l *= y[j]; 
		y[0] += l; 
	}
	cout<<"L("<<x[0]<<") = "<<setiosflags(ios::scientific)<<y[0]<<'\n'; 
	return 0; 
}



⌨️ 快捷键说明

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