回答編集履歴
2
記述微修正
answer
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
すなわち,右辺の関数の引数に `P(t)` や `Q(t)` が含まれている形に.
|
15
15
|
|
16
16
|
で,ルンゲクッタ法について考えてみます.
|
17
|
-
関数 `P(t)` の側に
|
17
|
+
関数 `P(t)` の側を例にすると,次の時刻での値 `P(t+dt)` を求めるために,
|
18
18
|
|
19
19
|
1. 時刻 `t` における勾配 `P'(t)` (: これは数式で与えられている)
|
20
20
|
2. 1.の勾配を用いて推定した区間中点での勾配 `P'(t+dt/2)`
|
@@ -39,7 +39,8 @@
|
|
39
39
|
すなわち,この値をどうにかして用いて `Q( t+dt/2, この値 )` の推定値を作る必要があるのだけど,どうするのか?っていう.
|
40
40
|
当然(?),ここでの `Q(t+dt/2)` もオイラー法的に{ `Q(t)`, `P(t)` と,この `P'(t+dt/2)` 推定値 }から作ればよいのだと思いますが,しかしながら素のオイラー法を考えると `P'(t+dt/2)` 推定値の出番がなくなってしまう^^
|
41
41
|
→なので,ここを「修正オイラー法な感じにすることで,こいつを使ってやるぜ!」とすればよいのではないかな,と考えました.すなわち,
|
42
|
+
`P'(t+dt/2) = -Q( t+dt/2, P(t+dt/2) )` の右辺にある `Q( t+dt/2, P(t+dt/2) )` の値を
|
42
|
-
`
|
43
|
+
`= Q(t) + 0.5*dt * ( Q'(t) + Q'(t+dt)推定値 )*0.5` として2つの勾配値から求めることとし,ここで `Q'(t+dt)推定値 = P(t+dt/2)推定値` として使用しています.
|
43
44
|
|
44
45
|
---
|
45
46
|
|
1
誤変換修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
正直,自
|
1
|
+
正直,自信はありませんが,以下の考えで実装してみたところ,それっぽい値が得られた感じです.
|
2
2
|
|
3
3
|

|
4
4
|
|