常用插值法
- 线性插值
对一直的值求出线性方程,通过接触的线性方程得到缺失值。
- 多项式插值
多项式插值是利用已知的数据拟合出一个多项式,使得现有的数据满足这个多项式,再利用多项式求解缺失值。常见多项式插值有拉格朗日插值和牛顿插值。
- 样条插值
以可变样条做出一条进过一系列点的光滑曲线的插值方法。插值样条由一些多项式组成,每个多项式都由相邻两个数据点决定,这样可以保证两个相邻多项式及其倒数在连接处连续。
线性插值
import numpy as np
from scipy.interpolate import interpld
x = np.array([1,2,3,4,5,8,9,10]) # 创建自变量x
y1 = np.array([2,8,18,32,50,128,162,200]) # 创建因变量y1
y2 = np.array([3,5,7,9,11,17,19,21]) # 创建因变量y2
LinearInsValue1 = interpld(x, y1, kind='linear') # 线性插值拟合x, y1
LinearInsValue2 = interpld(x, y2, kind='linear') # 线性插值拟合x, y2
print('当x为6,7时,使用线性插值y1为:', LinearInsValue([6,7]))
print('当x为6,7时,使用线性插值y2为', LinearInsValue([6,7]))
多项式插值
# 拉格朗日插值
from scipy.interpolate import lagrange
LaInsValue1 = lagrange(x, y1)
LaInsValue2 = lagrange(x, y2)
print('拉格朗日插值', LaInsValue1([6,7]))
print('拉格朗日插值', LaInsValue2([6,7]))
样条插值
from scipy.interpolate import spline
# 样条插值拟合x, y1
SplineInsValue1 = spline(x, y1, xnew=np.array([6,7]))
# 样条插值拟合x, y2
SplineInsValue2 = spline(x, y2, xnew=np.array([6,7]))
print(SplineInsValue1)
网友评论