Python scipy中最小二乘函数雅可比矩阵的方法签名

Python scipy中最小二乘函数雅可比矩阵的方法签名,python,numpy,scipy,least-squares,Python,Numpy,Scipy,Least Squares,任何人都可以提供一个例子,向inscipy中的用户提供雅可比矩阵吗 我无法确定他们想要的方法签名-他们说它应该是一个函数,但很难确定这个函数应该接受什么样的输入参数和顺序。下面是我使用的指数衰减拟合: 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

任何人都可以提供一个例子,向in
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好吧,我可能应该选择其他方法。是的,正如蒂尔斯滕所说。基本上,这是指数衰减拟合和指数增长拟合之间的区别。这是一个很大的区别。我认为,当你猜错符号开始时,你必须尝试使用二阶导数的其他方法,以有机会解决问题。它可能也需要一个类似的附加动量项。谢谢,贾斯汀。2年后,仍然在帮助人们。