使用interpolation
在给定的数组arr[]中,寻找x点,对应的区间,例如[xi,xi+1],据此进行多项式插值。例如:只利用xi,xi+1,yi,yi+1,两点进行线性插值。
如果在(X1, Y1)和(X2, Y2)之间插入N个点:
X和Y是存储插值的数组,那么:
# include<iostream>
using namespace std;
int main()
{
float X1, X2, Y1, Y2;
cin >> X1 >> X2 >> Y1 >> Y2;
int N;
cin >> N;
float *X = new float[N];
float *Y = new float[N];
for (int i = 1; i <= N; ++i)
{
X[i - 1] = (X2 * i + X1 * (N + 1 - i)) / (N + 1);
Y[i - 1] = (Y2 * i + Y1 * (N + 1 - i)) / (N + 1);
}
for (int i = 0; i < N; ++i)
{
cout << X[i] << " " ;
}
cout << endl;
for (int i = 0; i < N; ++i)
{
cout << Y[i] << " " ;
}
cout << endl;
//最后释放X和Y
delete[] X;
delete[] Y;
system("pause");
return 0;
}