這個問題是關於scipy.integrate模塊中的odeint函數的。提高odeint的速度:重力積分
我正在模擬基於以下原理的相互作用星系:我讓兩個原子核在開普勒軌道上移動,然後我把星系中的每顆星都沒有質量。
我在1個星系的參考系中工作,所以我使用兩個經典的牛頓重力+1離心力。
所有這些都與odeint(scipy.integrate模塊)集成在一起,這很好用。我的速度有問題odeint正在整合我的星星壽星: 每個恆星需要大約10-15秒才能整合大約100個時間步(約10億年),但這等於幾個小時來整合總計1000顆星。據我的教授說,HIS程序運行大約5分鐘,做這些星星。我甚至不知道如何提高這個速度,因爲我無法改變方程式,而odeint真的佔用了99%的運行時間。
那麼長久以來的故事,我如何才能提高我的odeint計算時間?
感謝
你不妨看看另一件事情是實際力評價。整合僅爲O(N),但典型實現中的力評估爲O(N^2)。 'odeint'必須在某個時候稱你的部隊評估,這將是非常昂貴的。 –