8

で最小二乗関数にジャコビアンを提供する例を誰かが提供できますscipyか?

彼らが望むメソッドシグネチャを理解することはできません-彼らはそれが関数であるべきだと言っていますが、この関数がどのような順序でどの入力パラメータを受け入れるべきかを理解するのは非常に困難です。

4

1 に答える 1

13

これが私がこれで作業するようになった指数関数的減衰フィッティングです:

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で返すものを転置する必要があると思います。しかし、あなたはまったく正しいです:これに関するドキュメントはそれほど素晴らしいものではありません。

于 2010-10-19T05:15:06.937 に答える