问题描述:

已知某多叶调节风阀,当叶片数n=3时,叶片与气流方向成x度,某局部阻力系数y值

x 0 15 20 45 60 75

y 0.25 0.7 2.8 6.5 20 60

当x=30时,求y的线性插值

问题分析:

线性插值公式:

线性插值公式_#include


其余代码里一切皆有

线性插值问题

输入

20 2.8 45 6.5
30
#include<cstdio>
#include<cmath>
void show(double a[]) {
 double m;
 scanf("%lf",&m);//待测值
 printf("线性插值公式:y = (x-%.2lf)/%.2lf*%.2lf + (x-%.2lf)/%.2lf*%.2lf\n",a[2],a[0]-a[2],a[1],a[0],a[2]-a[0],a[3]);//将数组a中数据代入线性插值公式
 printf("结果:%.2lf\n",1.*(m-a[2])/(a[0]-a[2])*a[1]+(m-a[0])/(a[2]-a[0])*a[3]);
}
int main() {
 double a[4];
 for(int i=0; i<4; ++i)
  scanf("%lf",a+i);//分别输入X0,Y0,X1,Y1
 show(a);
 return 0;
}

运行结果:

线 性 插 值 公 式 : y = (x-45.00)/-25.00*2.80 + (x-20.00)/25.00*6.50
结 果 : 4.28