teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

記述微修正

2022/07/13 08:24

投稿

fana
fana

スコア12229

answer CHANGED
@@ -14,7 +14,7 @@
14
14
  すなわち,右辺の関数の引数に `P(t)` や `Q(t)` が含まれている形に.
15
15
 
16
16
  で,ルンゲクッタ法について考えてみます.
17
- 関数 `P(t)` の側について,次の時刻での値 `P(t+dt)` を求めるために,
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
- `Q(t+dt/2) = Q(t) + 0.5*dt * ( Q'(t) + Q'(t+dt)推定値 )*0.5` として2つの勾配値から求めることとし,`Q'(t+dt)推定値 = P(t+dt/2)推定値` として使用しています.
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

誤変換修正

2022/07/13 08:18

投稿

fana
fana

スコア12229

answer CHANGED
@@ -1,4 +1,4 @@
1
- 正直,自はありませんが,以下の考えで実装してみたところ,それっぽい値が得られた感じです.
1
+ 正直,自はありませんが,以下の考えで実装してみたところ,それっぽい値が得られた感じです.
2
2
 
3
3
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-13/cd4dff35-9b23-4428-8554-e91b0bbe3793.png)
4
4