如何解决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 举报,一经查实,本站将立刻删除。