我有np.arange這個奇怪的問題。我想繪製一個基本上看起來像y = Ax^{ - 1/3}(1-Bx^{4/3})^ {1/2}的簡單公式從我提供的公式得到wolfram mathematica的質量圖,但我正努力在python中生成相同的圖!ValueError:超出的最大允許大小,變量範圍從0到3e33
import numpy as np
import matplotlib.pyplot as plt
import math
# evenly sampled time at 200ms intervals
x = np.arange(0., 10**33, 10**8.)
plt.plot(x**(-1/3)*(1.102*10**20)*(1-(x**(4/3)*2.424*10**(-45)))**(1/2))
plt.xlim(math.pow(10,31), 3*math.pow(10,33))
plt.ylim(5*math.pow(10,8), 2.5*math.pow(10,9))
plt.xlabel("M(g)", fontsize =13)
plt.ylabel("R(cm)", fontsize=13)
plt.show()
我的變量x應該從0到3e33,我希望看到無論是在直線和雙對數情節的情節,但我有與X系列內存問題,如果我設置一個較小的範圍內,我基本上根本沒有情節。我確信我在這裏做錯了事,我只是看不到它。感謝您的幫助。
爲什麼你需要繪製到3e33?這是不是有點過分。也可以使用較小的間隔來評估情節的性質。 –
您正在要求'arange'函數生成一個包含從0到10^33的均勻間隔值的ndarray,步長爲10^8。這是10^25分,不能存儲在所有的RAM中。 –
@Clock Slave原則上,繪製從0到3e33的函數與繪製從0到3的函數沒有什麼不同。它取決於您要在區間內繪製多少個點。 –