我正在使用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/

10-11 07:03