绘制:`S = sum(1 / x * x表示范围在(1,n)中的x)与`n`

时间:2018-06-28 19:20:51

标签: python numpy

方程式

对于n = 10,

S=sum(1.0 / (x * x) for x in range(1, 11))

对于n = 100,

S=sum(1.0 / (x * x) for x in range(1, 101))

对于n = 1000,

S=sum(1.0 / (x * x) for x in range(1, 1001))

是否有一种方便的方法来绘制/表达nS

import numpy as np
n = np.arange(1,1000, step=1)

1 个答案:

答案 0 :(得分:3)

您可以为该系列使用汇总功能。对于求和系列,numpy函数np.add.accumulatenp.cumsum将起作用:

import numpy as np
n = np.arange(1, 1000)
one_over_n_squared = 1 / n**2  # element-wise calculation of the factors
series = np.add.accumulate(one_over_n_squared)  # accumulate

这样一来,您不必为要绘制的每个点重新计算所有因子。如果您想绘制或计算更多的值,那可能很重要。

然后使用matplotlibs plot function进行绘制:

import matplotlib.pyplot as plt
plt.plot(n, series)

enter image description here

或者,如果您想要它(带标签和x轴对数的(微型)位发烧友):

import matplotlib.pyplot as plt
plt.plot(n, series)
plt.xlabel('n')
plt.xscale('log')
plt.ylabel('Series')

enter image description here