- 締切済み
ルンゲクッタに外乱を導入したいのですが・・・
ある微分方程式 dn/dt=f(n) (nは時間tの関数) で表される現象があるとします。 nの時間変化を4次のルンゲクッタ法で求めたいのですが、もし外乱(雑音)がある場合どのように扱えばいいいのですか? 外乱は時間ごとに乱数で与えられると考えています。 f(n)は定常運動に収束する関数で、もし外乱がある時定常運動がどれほど歪むかを調べています。 説明が雑ですみません。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
#2 でいわれる通り x(t) は外乱を表す項なので, あなたが想定している外乱を入れてください. ただし, 4次のルンゲクッタで微分方程式 dn/dt = f(t, n) を解くときには同じ t に対して f(t, n) を複数回評価する必要があります. いいかえると「同じ t に対して x(t) を複数回評価する必要がある」わけで, いかなる外乱であっても同じ t なら x(t) は常に等しい値に評価されなければなりません.
- Interest
- ベストアンサー率31% (207/659)
微分方程式 dn/dt=f(n)を数値計算できるようにするには、この式を Δn(t) = f(n)・Δt としますよね。これに外乱項として例えば g(t) を加えて Δn(t) = f(n)・Δt + g(t) としてはどうでしょうか。g(t)はホワイトノイズでも正規分布したノイズでも何でもいいですよね。 dn/dt = f(n) + g(t) としてもやることは一緒だと思います。
- Tacosan
- ベストアンサー率23% (3656/15482)
微分方程式が dn/dt = f(n) + x(t) (x(t) は外乱) となるだけ, だったりして. ただし, ルンゲクッタを使う関係上「外乱を使うたびに乱数で設定してはいけない」とは言えます.
補足
「外乱を使うたびに乱数で設定してはいけない」とはどういうことでしょうか? またこの場合x(t)をどのように定義すればいいのでしょうか?
補足
どうしてもわからないので実際にプログラムがどのようになるか教えていただけませんか。