Python最小二乘自然样条

Eld*_*ila 8 python spline scipy

我试图找到一个数字包,它将适合自然样条,最小化加权最小二乘法.

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')
Run Code Online (Sandbox Code Playgroud)

Jus*_*eel 6

默认情况下,此页面中此tar文件内的spline.py文件执行自然样条拟合.此页面上还有一些代码主要声称您想要的内容.所述pyD3D包还具有自然样条函数在其pyDataUtils模块.最后一个看起来对我最有希望.但是,似乎没有选择设置自己的结.也许如果你看一下你可以找到一种方法来纠正它.

此外,我在Scipy邮件列表上发现了这条消息,即使用s = 0.0(如在您给定的代码中),根据消息的编写者使用上述过程自然地拟合样条曲线.我确实发现这个splmake函数可以选择自然样条拟合,但是在查看源代码后我发现它还没有实现.

  • @Eldila - 您是否有机会分享您放在一起的代码? (2认同)