8
任何人都可以提供一个例子,提供一个雅可比语为least squares functionscipy
?scipy中的最小二乘函数雅可比方法签名
我找不到他们想要的方法签名 - 他们说它应该是一个函数,但很难弄清楚这个函数应该接受什么顺序的输入参数。
任何人都可以提供一个例子,提供一个雅可比语为least squares functionscipy
?scipy中的最小二乘函数雅可比方法签名
我找不到他们想要的方法签名 - 他们说它应该是一个函数,但很难弄清楚这个函数应该接受什么顺序的输入参数。
这里的指数衰减拟合,我得到这个工作:
import numpy as np
from scipy.optimize import leastsq
def f(var,xs):
return var[0]*np.exp(-var[1]*xs)+var[2]
def func(var, xs, ys):
return f(var,xs) - ys
def dfunc(var,xs,ys):
v = np.exp(-var[1]*xs)
return [v,-var[0]*xs*v,np.ones(len(xs))]
xs = np.linspace(0,4,50)
ys = f([2.5,1.3,0.5],xs)
yn = ys + 0.2*np.random.normal(size=len(xs))
fit = leastsq(func,[10,10,10],args=(xs,yn),Dfun=dfunc,col_deriv=1)
如果我想用col_deriv=0
,我认为我会基本上采取的是我与dfunc返回转置。你说的很对:关于这方面的文档并不是很好。
它的工作,但讽刺的是仍然未能从我刚才的问题的例子:P好吧,我也许应该选择一些其他的方法 – 2010-10-19 06:43:50
,因为你P0有错误标志... – tillsten 2010-10-20 01:44:23
是的,正如tillsten说。基本上,这是指数衰减拟合和指数增长之间的区别。这是一个很大的区别。我认为你必须尝试一些其他的方法,当你猜错了开始的标志时,使用二阶导数有可能解决这个问题。它可能还需要额外的动力术语。 – 2010-10-20 01:56:01