已知一组自变量和因变量,求某一个自变量对应的值,可以使用拉格朗日插值法。
c++代码如下:
#include <stdio.h>
using namespace std;
int main(void) {
float x[20], y[20], p, t, s;
int n, i, k;
printf("请输入节点个数n+1\n");
scanf("%d", &n);
printf("请输入n+1个节点数据\n");
for (k = 0; k <= n; k++){
scanf("%f %f", &x[k], &y[k]);
}
printf("请输入插值点t\n");
scanf("%f", &t);
p = 0;
for (k = 0; k <= n; k++){
s = 1;
for (i = 0; i <= n; i++){
if (i != k) s *= (t - x[i]) / (x[k] - x[i]);
}
p += s*y[k];
}
printf("p=%f\n", p);
return 0;
}