我試圖在jupyter筆記本中重寫一些vpython腳本。到目前爲止,我還沒遇到很多問題,但是我嘗試重寫的最後一個問題變得非常慢。它在VIDLE中運行速度非常快。我用Python 3.5.0和Jupyter 4.1.0使用sierraOS。VPython在Jupyter中顯着較慢
該代碼創建一些對象,然後在while循環中更改它們的位置。 最初循環有visual.rate(5000)
,但我試圖將其減少到50無濟於事。我也嘗試將對象的數量減少到只有兩個,但仍然非常緩慢地工作。這裏是我的代碼的最簡單的版本:
from vpython import scene, sphere, color, curve, arrow, mag, vector, rate,canvas
scene = canvas(width=800, height=600)
obj0 = sphere(pos=vector(0,0,0), radius=5e11)
obj1 = sphere(pos=vector(5e12,0,0), radius=5e11)
trail1= curve()
#some initial value
G = 6.7E-11
obj0.mass = 2.0E30
obj0.momentum = vector(0,0,0)
obj1.mass = 1.0E26
obj1.momentum = vector(0,0,0)
dt=200000.
CrashFlag=0
while(CrashFlag==0):
rate(1000)
obj1.force= -G*(obj0.mass*obj1.mass*obj1.pos)/(mag(obj1.pos)**3)
obj1.momentum = obj1.momentum+ dt*(obj1.force)
obj1.pos = obj1.pos + dt*obj1.momentum/obj1.mass
trail1.append(pos=obj1.pos)
if (mag(obj1.pos)<2.e11) :
CrashFlag=1
你能找出任何可能導致這種情況是特別慢的Jupyter筆記本,還是建議周圍沒有任何辦法嗎?否則,是否有可能在VIDLE中輸出模擬而不是在Jupyter筆記本中內聯輸出(儘管代碼仍然會從Jupyter筆記本運行)