Python 最小二乘自然样条
我正在寻找一个数值计算的工具包,它可以拟合自然样条曲线,并且能够最小化加权最小二乘法。
在scipy这个工具包里,有一个功能可以满足我对非自然样条曲线的需求。
import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate, randn
x = np.arange(0,5,1.0/6)
xs = np.arange(0,5,1.0/500)
y = np.sin(x+1) + .2*np.random.rand(len(x)) -.1
knots = np.array([1,2,3,4])
tck = interpolate.splrep(x,y,s=0,k=3,t=knots,task=-1)
ys = interpolate.splev(xs,tck,der=0)
plt.figure()
plt.plot(xs,ys,x,y,'x')