2

私は 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

これらの補間関数を使用した経験はあまりありません。助けていただければ幸いです。

4

2 に答える 2

3

関数を直接取得するのではなく、 rulesを取得しています。補間関数自体にアクセスするには、ルールの置換を行う必要があります。

それ以外の

Table[Solved, {t, 0, tmax}]

あなたが必要

Table[Evaluate[{x[t], y[t]} /. Solved], {t, 0, tmax}];

Solved(これはの出力であると思います)は、式を許可し、対応する補間関数に置き換えられるNDSolveルールのリストにすぎません。これを評価します。x[t]y[t]

NDSolveその他の例 については、F1 ヘルプを参照してください。

于 2012-09-16T17:54:29.760 に答える