2016-04-27 10 views
1

私は、power lawの分布によく似たデータを持っています。パイソンを使用して、私は形で二つの式を解くことによって、データを近似する:Pythonでの法則分布の解答

yは、y軸データです。 Pythonではdata[i]となります。 xはi + 1となります。ただ

解決まで


問題が来る:私たちが最初のデータのインデックスで、データでどこかに「ランダム」第二1で2つの未知の変数を持つ2つの方程式を得ることになります数学的簡略化のために

です。私はnumpy.linalg.solveのようなライブラリを使ってこのような方程式を解く方法を知らない。 Pythonを使用してaの値を見つけるにはどうすればよいですか?

+5

あなたはソルバー方程式を必要としない... '=(1/2)* math.log10(データ[99] /データが[0])' – gariepy

+0

はええ、で動作するように表示されます ' a = math.log(data [99]/data [0]、100) ' – BullyWiiPlaza

答えて

1

さて、私はそれを得ました。

import math 

def get_power_law_variables(data): 
    c = data[0] 
    middle_index = len(data)/2 
    division = float(data[middle_index])/c 
    logarithm_base = middle_index + 1 
    a = math.log(division, logarithm_base) 
    return c, a 

# Example usage 
data = range(50, 150) 
c, a = get_power_law_variables(data) 
print c, a 
+0

なぜあなたはログベースとしてmiddle_indexを使用しているのか説明できますか? – MARK

関連する問題