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