微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。