2015-11-26 220 views
0

我試圖用曲線來我在Python數據,如下所示:擬合曲線 - 擬合參數

def func(p1,p2,p3,x): 
    return p1*((p2-x)/p2)^(-p3) 

我調用這個函數在其他功能,並試圖以適應:

f1 = func(p1,p2,p3,x) 
popt, pcov = curve_fit(f1, T, Susceptibility) 

但是Python不認爲p1,p2,p3作爲擬合參數,becouse我收到此錯誤信息: global name 'p1' is not defined

+0

請添加信息這是什麼庫。一般來說,你也應該逐字地發佈錯誤信息。請將這些信息編輯到您的帖子中。 – moooeeeep

回答

1

the docs更仔細,x應該是第一個參數。您還需要使用一個函數作爲輸入,而不是它的返回值

def func(x, p1, p2, p3): 
    return p1*((p2-x)/p2)^(-p3) 

popt, pcov = curve_fit(func, T, Susceptibility) 
+0

謝謝!我沒有注意到這個錯誤,但現在我也得到這個消息,但是用x代替了p1。 –

+0

@Alíz當然,這不是在其他地方發生?在上面的代碼中,唯一可以不確定的是'T'和'Susceptibility'。 – simonzack

+0

不幸的是我得到這個錯誤信息: 全局名稱'x'沒有被定義,但我不知道爲什麼。 –