• ベストアンサー

2階微分方程式の解法

d^2y/dx^2+2*x*dy/dx=0 境界条件 x=0: y=1、x→∞: y→0 上記の微分方程式をルンゲクッタ法を使って数値的に解きたいのですが、どのように x→∞ : y→0 の境界条件をいれればいいかわかりません。どなたか教えて頂けないでしょうか。回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.3

一部誤りがありましたので訂正します。 解は減少関数の筈なので次の初期値で計算を始めてみて下さい。 y=1, y'=-1 x が大きくなった場合、yの値は0 に近づく筈ですね。 y=1, y'=-0.5; y=1, y'=-2; 等でも xが∞に近づく時に y=0 の解に近づきそうなので一意に解が得られるのか、 或いは一意に解が求まる為には、初期値や制約条件が不足しているのかも知れません。 何か考え落しがありそうに思えてきました。  以上のような考えを参考に、数値計算を続けて正しい答が得られるように頑張ってみてください。

seturi38
質問者

お礼

分かりました。頑張ってみます。ありがとうございました。

その他の回答 (2)

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.2

微分方程式の解の1次微分は次のようになります。 f = dy/dx = exp(-x^2); df/dx +2*x*f = -2x*exp(-x^2) +2*x*exp(-x^2) = 0; となるので上記のfが解の1次微分である事は確かです。 実際には境界条件を満たす為には、このfの定数倍となります。 fの積分(==Wikipedia:誤差関数:erf(x))の項が解に含まれている筈です。 結局 y = 1 - erf(x) が解となる筈です。 初期値=境界条件: y=1, y'=1, y''=0; at x=0 から計算をスタートさせてみて下さい。 計算範囲は0-10、0-20迄等適当に計算してみて下さい。 結果は一定の値:K=1に近づく筈です。 上のようにして計算した結果、Kの値が別の値になるのではないか等と少し確信が持てません。 別の値となった場合には初期値のy,y'を適切に変更してみてください。 なお質問は数学のカテゴリでされた方が良いのではと思われます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

そもそも「∞」はおきようがないから「非常に大きな x に対して y=0」とするしかないのでは?

seturi38
質問者

お礼

確かにそうですね。やってみます。