对4个数据点x = [-1, 0, 2.0, 1.0],y = [1.0, 0.3, -0.5, 0.8]进行Rbf插值,插值中使用三种插值方法分别是multiquadric、gaussian、和linear(参见课件5,scipy_rbf.py),需要作图点(加密点)为np.linspace(-3, 4, 100)。
RBf插值代码如下:
#导入模块
import numpy as np
from scipy import interpolate
import pylab as pl
#给定x,y向量
x=np.array([-1, 0, 2.0, 1.0])
y=np.array([1.0, 0.3, -0.5, 0.8])
#新的x的步长
xnew=np.linspace(-3,4,100)
pl.plot(x,y,'ro')
#遍历输出多重二次曲面,高斯,线性插值
for kind in['multiquadric','gaussian','linear']:
f=interpolate.Rbf(x,y,kind=kind)
ynew=f(xnew)
pl.plot(xnew,ynew,label=str(kind))
pl.legend(loc='lower right')
pl.show()
打印结果: