方程式
对于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))
是否有一种方便的方法来绘制/表达n
与S
import numpy as np
n = np.arange(1,1000, step=1)
?
答案 0 :(得分:3)
您可以为该系列使用汇总功能。对于求和系列,numpy函数np.add.accumulate
或np.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)
或者,如果您想要它(带标签和x轴对数的(微型)位发烧友):
import matplotlib.pyplot as plt
plt.plot(n, series)
plt.xlabel('n')
plt.xscale('log')
plt.ylabel('Series')