优化和拟合演示¶
日期 | 2017-07-13(最后修改),2006-02-10(创建) |
---|
这是一个快速示例,展示如何从多个 贝塞尔函数 中创建数据并找到局部最大值,然后使用 scipy.interpolate 模块中的某些样条函数拟合曲线。 enthought.chaco 包和 wxpython 用于创建绘图。 PyCrust(随 wxpython 提供)用作 Python shell。
在 [ ]
from enthought.chaco.wx import plt
from scipy import arange, optimize, special
plt.figure()
plt.hold()
w = []
z = []
x = arange(0,10,.01)
for k in arange(1,5,.5):
y = special.jv(k,x)
plt.plot(x,y)
f = lambda x: -special.jv(k,x)
x_max = optimize.fminbound(f,0,6)
w.append(x_max)
z.append(special.jv(k,x_max))
plt.plot(w,z, 'ro')
from scipy import interpolate
t = interpolate.splrep(w, z, k=3)
s_fit3 = interpolate.splev(x,t)
plt.plot(x,s_fit3, 'g-')
t5 = interpolate.splrep(w, z, k=5)
s_fit5 = interpolate.splev(x,t5)
plt.plot(x,s_fit5, 'y-')
在 [ ]
#class left
# ![](files/../_static/items/attachments/OptimizationAndFitDemo1/chacoscreenshot.png)
Optimization Example
章节作者:SciPyDotOrg、Unknown[1]、Unknown[133]、PauliVirtanen、Christian Gagnon
附件