版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cherish_CX/article/details/53038463
数值表是这样的
X:0.46,0.47,0.48,,,,,,,
Y:0.4846555,0.4937452,0.5027498,,,,,,
由于是二次插值法,只需要三组XY数据
代码如下:
#include "stdafx.h"
#include "iostream"
using namespace std;
void main(int argc, char* argv[])
{
double arr_x[3]={0.46,0.47,0.48};
double arr_y[3]={0.4846555,0.4937452,0.5027498};
double x=0.472;
float y=0;
for(int k=0;k<3;k++)
{
double t=1;
for(int j=0;j<3;j++)
{
if(k!=j)
{
t=t*((x-arr_x[j])/(arr_x[k]-arr_x[j]));
}
}
y=y+arr_y[k]*t;
}
cout<<"y is:"<<y<<endl;
}