galpy中的轨道积分而不指定时间步长数组

问题描述

我只是发现了galpy,并整日浏览了文档和示例,但对于在不指定时间范围的情况下整合轨道的可能性仍然有些困惑。

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

from galpy import potential
import numpy
ts= numpy.linspace(0,100,10000)
o= Orbit([1.,0.1,1.1,0.,0.])
o.integrate(ts,potential.MWPotential2014)

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

t = 100
o.integrate(t,potential.MWPotential2014)

谢谢。

解决方法

如果文档中没有说存在这样的接口,那么您可以假定它不存在,尽管快速浏览一下代码可以确认这一点。无论如何,即使存在这样的快捷方式,集成器功能本身仍然需要一系列时间步骤来进行集成,因此这仅仅是一个快捷方式。

即使您只是想指定“时间量”,您仍然需要提供一个时间步长,尽管您也可以使用默认的时间步长。您可以编写自己的快捷方式功能,例如:

def integrate_orbit(orbit,pot,t,dt=0.01):
    t = np.arange(0,dt)
    return orbit.integrate(t,pot)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...