📄 拉格朗日插值.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 + -