3

次のプロット (赤い点) を Python の Zipf 配布 PDF F~x^(-a)に合わせようとしました。を選択a=0.56してプロットしただけy = x^(-0.56)で、以下に示す曲線が得られました。

曲線は明らかに間違っています。カーブフィッティングのやり方がわかりません。

ここに画像の説明を入力

4

1 に答える 1

6

正確に何を探しているのかわかりませんが、モデル (関数) をデータに適合させたい場合は、次を使用しますscipy.optimize.curve_fit

from scipy.optimize import curve_fit
from scipy.special import zetac


def f(x, a):
    return (x**-a)/zetac(a)


result = curve_fit(f, x, y, p0=[0.56])
p = result[0]

print p

正規化が信頼できない場合は、2 番目のパラメーターbを追加して、それも適合させます。

于 2012-08-20T12:59:34.230 に答える