2016-09-21 30 views
2

有關於指數的曲線的一個問題,但我沒有找到如何建立一個功率曲線擬合,像這樣的任何材料:如何在Python中進行功率曲線擬合?

y = a*x^b 

有一種方法在Excel中做到這一點,但它可能在Python?

+0

這裏有一些很好的示例代碼:: http://scikit-learn.org/stable/auto_examples/linear_model/plot_polynomial_interpolation.html – kpie

+0

你提供的示例是多項式的,而不是功率,不完全是我正在尋找的東西對於。 –

回答

2

如果你做了一個簡單的轉換,你可以應用通常的最小二乘迴歸。

代替此方程:

y = a*x^b 

取兩側的自然對數:

ln(y) = ln(a*x^b) = ln(a) + ln(x^b) = ln(a) + b*ln(x) 

這是[ln(x), ln(y)]線性方程與斜率b和截距ln(a)

您可以使用適用於轉換數據的開箱即用最小二乘法。

+0

不錯,現在我明白了,我應該將原始方程修改爲線性方程。這就說得通了! –

2

只要採取對數:

y = ax^b 
log(y) = log(a) + b*log(x) 

並使用一個線性擬合的一對log(x)log(y)。這將導致斜線b和截距log(a),只需取指數即可獲得參數a

+0

對不起,我想duffymo是第一個。你的答案雖然有效。 –