dポイントプレゼントキャンペーン実施中!

c++で陽的オイラー法の書き方について質問です。
例えば2体問題のように加速度が位置に依るような場合,
x=x+v(x)*dt;
v(x)=v(x)+a(x)*dt;

のように書いてしまうと代入された後のxがvのほうに代入されてしまうと思います。どのようにすれば解決できますか?一応画像のように書いてはみたのですが…

「c++で陽的オイラー法の書き方について質」の質問画像

A 回答 (2件)

例えば「次の x の値」を記憶する変数 nextx を作って


nextx = x + v(x)*dt;
v(x) += a(x)*dt;
x = nextx;
とすれば, v(x) を計算する時点では x は前の値のままだよね.

あと, インデントはなんとかしよう.
    • good
    • 1
この回答へのお礼

ありがとうございます。参考にさせていただきます。書いては消して,書いては消してを繰り返していたので途中から気にしていませんでした。以後気をつけます。

お礼日時:2021/01/24 04:01

x を直接変更しなければいい.

    • good
    • 0
この回答へのお礼

回答ありがとうございます。つまり具体的にはどのようにすれば良いのでしょうか?新しい変数を増やすということですか?

お礼日時:2021/01/24 03:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!