我正在使用NDSolve []整合轨道轨迹(与ExplicitRungeKutta结合)。 Mathematica给了我
{{x[t]->InterpolatingFunction[{{0.,2000.}},<>][t],
y[t]->InterpolatingFunction[{{0.,2000.}},<>][t]}}
我的问题是如何将其放入原始数据表中,其中t = 0,1,2 ... 2000?
我试过了:
path = Table[Solved, {t, 0, tmax}];
但是我得到了大量这样的东西:
{{{x[0] -> -0.523998, y[0] -> 0.866025}}, {{x[1] -> -0.522714,
y[1] -> 0.886848}}, {{x[2] -> -0.480023,
y[2] -> 0.951249}}, {{x[3] -> -0.369611, y[3] -> 1.02642}}
我想要类似的东西:
{{{-0.523998, 0.866025}}, {{-0.522714, 0.886848}}, etc
我没有很多使用这些插值函数的经验,将不胜感激。
最佳答案
您将获得规则,而不是直接发挥作用。为了访问插值函数本身,您需要进行规则替换。
代替
Table[Solved, {t, 0, tmax}]
你需要
Table[Evaluate[{x[t], y[t]} /. Solved], {t, 0, tmax}];
Solved
(我假设是NDSolve
的输出)只是一个规则列表,这些规则允许将表达式x[t]
和y[t]
替换为相应的插值函数,然后对其进行求值。有关更多示例,请查看F1帮助中的
NDSolve
。关于wolfram-mathematica - 如何从2D Mathematica插值函数中获取离散数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12448196/