2017-05-10 7 views
0

私は8つの惑星(太陽が(0,0)にある)のorbiteシミュレーションのコードを開始しました 私はXとYで加速度を得ました。 XとYのスピード、まずオイラーを使い、次にRK4を使い、私は立ち往生した。私はどこから始めるべきか分からない。 numpyによって提供されるようにEuler/RK4 pythonのOrbiteシミュレーション

enter image description here

enter image description here

+2

適切な書式を使用して、スクリーンショットではなく、質問自体にコードを含めてください。詳細については、[質問の際にSOのコードイメージをアップロードしないでください。](https://meta.stackoverflow.com/a/285557/113848)を参照してください。 – legoscia

+1

また、最小限の例では、ボディ数を3に減らします。これは、多くの重要でないデータ/コードに含めることなく、すべての問題を表示する必要があります。 – LutzL

答えて

0

あなたが実際にベクトル演算を使用する必要があります。ここに私のコードです。

パラメータ配列を構成する方法を統一する必要があります。位置と速度を区別する明確な理由はありません。おそらく、リストを拡張する手順add_body(m,x,y,vx,vy)を専用にすることさえできます。

あなたの加速計算が間違っていたため、あなたは1体の加速を計算するコードを書き始めましたが、パラメータの不一致を生成するすべての本体の加速リストを計算するように切り替えました。あなたはゼロ除算のエラーを得ているはずです。

オイラー法は定性的誤差を非常に速く生成しますが、それによって落胆することはありません。

関連する問題