scipy中最小二乘函数的雅可比行列式的方法签名

时间:2010-10-19 04:48:03

标签: python numpy scipy least-squares

任何人都可以提供一个向scipy中的least squares function提供雅可比行列的示例吗?

我无法弄清楚他们想要的方法签名 - 他们说它应该是一个函数,但很难找出这个函数应该接受的输入参数。

1 个答案:

答案 0 :(得分:12)

这是我使用的指数衰减拟合:

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返回的转置。你说得对:关于这方面的文件并不是那么好。