11 Stimmen

Methodensignatur für den Jacobi einer Funktion der kleinsten Quadrate in Scipy

Kann jemand ein Beispiel für die Bereitstellung eines Jacobi für eine Kleinste-Quadrate-Funktion sur scipy ?

Ich kann nicht herausfinden, welche Methodensignatur sie wollen - sie sagen, es sollte eine Funktion sein, aber es ist sehr schwer herauszufinden, welche Eingabeparameter in welcher Reihenfolge diese Funktion akzeptieren sollte.

16voto

Justin Peel Punkte 46114

Hier ist die exponentielle Zerfallsanpassung, die ich für diese Arbeit verwendet habe:

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)

Wenn ich Folgendes verwenden wollte col_deriv=0 Ich denke, dass ich im Grunde die Transponierung dessen, was ich mit dfunc zurückbekomme, nehmen müsste. Sie haben allerdings recht: Die Dokumentation dazu ist nicht so toll.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X