擅长:python、mysql、java
<p>与其硬编码残差的计算,不如尝试将残差包装为一个函数,该函数是数据值与要最小化的函数之间的差:</p>
<p>以高斯函数为例:</p>
<pre><code>M = np.array(data) # your data as a Nx2 Matrix of (x, y) data points
initials = [3,2,1] # just some initial guess values
def gaussian(x, p):
return p[0]*np.exp((-(x-p[1])**2.0)/p[2]**2.0) # definition of the function
def residuals(p, y, x):
return y - gaussian(x, p) # definition of the residual
cnsts = leastsq(residuals, initials, args=(M[:,1], M[:,0]))[0] # outputs optimized initials
</code></pre>