猿问

galpy 中的轨道积分,无需指定时间步长数组

我刚刚发现了 galpy,并花了一整天的时间查看文档和示例,但我仍然对在不指定时间集的情况下整合轨道的可能性感到有点困惑。


文档中的一个简单示例如下:


from galpy import potential

import numpy

ts= numpy.linspace(0,100,10000)

o= Orbit([1.,0.1,1.1,0.,0.1,0.])

o.integrate(ts,potential.MWPotential2014)

但我问是否可以使用整合方法而不指定整个时间数组,而仅指定适当单位的时间量。例如:


t = 100

o.integrate(t, potential.MWPotential2014)

谢谢。


一只萌萌小番薯
浏览 82回答 1
1回答

料青山看我应如是

如果文档没有说存在这样的接口,您可能会认为它不存在,但快速查看代码可以证实这一点。无论如何,即使存在这样的捷径,积分器函数本身仍然需要一系列时间步长来积分,所以这只是一个捷径。即使您只想指定“一段时间”,您仍然需要提供一个时间步长,尽管您也可以有一个默认时间步长。您可以编写自己的快捷函数,例如:def integrate_orbit(orbit, pot, t, dt=0.01):    t = np.arange(0, t, dt)    return orbit.integrate(t, pot)
随时随地看视频慕课网APP

相关分类

Python
我要回答