#include <bits/stdc++.h>
using namespace std;
#define MAXSIZE 100
int main(){
double x[MAXSIZE], y[MAXSIZE];
int n;
double m;
cout << "请输入插值节点个数:";
cin >> n;
for (int i = 0; i < n; ++i) {
printf("请输入插值节点x[%d], y[%d]:", i, i);
cin >> x[i] >> y[i];
}
cout << "请输入插值点:";
cin >> m;
double result = 0.0;
for (int i = 0; i < n; i++) {
double l = 1.0;
for (int j = 0; j < n; j++) {
if (j != i){
l *= (m-x[j])/(x[i]-x[j]);
}
}
result += l * y[i];
}
printf("插值点(x, y)=(%lf, %lf)\n",m, result);
}
c/c++|拉格朗日插值方法
最新推荐文章于 2024-04-10 10:59:46 发布