用Python解决幂律分布问题

时间:2016-04-27 14:21:29

标签: python numpy power-law

我的数据非常类似power law分布。使用Python,我希望通过以下形式求解两个方程来近似数据:

y是y轴数据。在Python中它将是data[i]。 x将是i + 1。由此得出,我们在第一个数据索引处得到两个具有两个未知变量的方程,并且在随机的"第二个在数据中的其他地方:


问题归结为只解决

由于数学简化。我不知道如何使用像numpy.linalg.solve这样的库来解决这样的等式。如何使用Python找到a的值?

1 个答案:

答案 0 :(得分: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