• ベストアンサー

オイラー法による微分方程式の数値解法

dy/dx=-2xy^2 y(0)=1 でx=1での値の近似値をオイラーの方法で、求めよ(n=10) という問題ですが、ウェブでオイラーの方法についてあらかた調べたのですが、記述が複雑うまく理解できませんでした。まず増やしていく幅のhは自由に設定していいのでしょうか? オイラーの方法による解き方をやさしく教えていただけたら嬉しいです。 よろしくお願いします。

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

  • ベストアンサー
noname#154783
noname#154783
回答No.3

1階の常微分方程式 dy/dx = f(x, y) の解 y = y(x) に対して,初期条件 y0 = y(x0) が与えられているなら,十分小さいhに対して, y(x0 + h) ≒ y(x0) + y'(x0) h = y0 + f(x0, y0) h が成り立ちます(1次近似). # この1次近似がオイラー法の根本的な原理であり,これが解らなければ,オイラー法が解っていないというよりも,微分という考え方がまだ理解できていないと思われますので,もしそうなら,1次近似について復習してください. そこで, x1 = x0 + h と置くと, y(x1) ≒ y0 + f(x0, y0) h = y1 と表せます. この式で求められるy1は飽くまで近似値なので,真の解のグラフが点(x1, y1)を通るとは限らないのですが,当たらずとも遠からずってとこでしょうから,点(x1, y1)が真の解のグラフ上にあるものとみなし,この点で同じ近似を行います: y(x2) ≒ y(x1) + y'(x1) h = y1 + f(x1, y1) h = y2 同じようにして,逐次近似を行っていくと,一連の近似値が得られます: y1 = y0 + f(x0, y0) h, y2 = y1 + f(x1, y1) h, y3 = y2 + f(x2, y2) h, y4 = y3 + f(x3, y3) h, ... そこで,xにおける解の値y(x)の近似値が欲しければ,区間[x0, x]をn等分し(本当は等分でなくてもいいのですが,簡単のためそうします),それぞれの分点に x0, x1, x2, ..., x[n-1], xn = x と名前を付けると, y1 = y0 + f(x0, y0) h, y2 = y1 + f(x1, y1) h, ... y[n-1] = y[n-2] + f(x[n-2], y[n-2]) h, yn = y[n-1] + f(x[n-1], y[n-1]) h. これがオイラー法です. このやり方は素朴で分かりやすいのですが,誤差が蓄積しますので,精度はあまり良くありません. で,今回の微分方程式 dy/dx = -2x y^2, y(0) = 1 ですが,VBSで簡単なコードを書いてみました: 'Euler法 Option explicit Function f(x, y) f = -2*x*y^2 End Function Dim x, xn, y, h Dim n, i '初期条件 x = 0 y = 1 xn = 1 '評価点 n = 10 '分割数 h = (xn - x)/n '幅 For i = 1 To n y = y + h*f(x, y) x = x + h Next MsgBox "y(" & xn & ") = " & y これをメモ帳でも何でもいいからテキストエディタで拡張子.vbsのテキトーなファイル名で保存し,アイコンをダブルクリックすると, y(1) = 0.503641976039014 とか値が出力されます. この微分方程式は,ANo.2さんが回答してくださっているように解析的に解けるのですが(変数分離形),真の解は y(1) = 0.5 なので,確かに「当たらずとも遠からず」って感じです.

その他の回答 (2)

  • muturajcp
  • ベストアンサー率78% (505/644)
回答No.2

dy/dx=-2xy^2 ∫y^{-2}dy=∫-2xdx -y^{-1}=-x^2+c -1=c -y^{-1}=-x^2-1 y=1/(x^2+1) y(1)=1/2

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

問題の最後にある「(n=10)」の n って何?

関連するQ&A

  • オイラー法の解法(数値計算)

    オイラー法で dy/dx=x+y , 0<=x<=1 y(0)=0 を解け。ただし、刻み幅をh=0.1とする。 大学のレポートに出たんですけど、よく分かりませんでした。 どうか教えて下さい。 よろしくお願いします。

  • 微分方程式の解法について

    微分方程式の解法について X^3-3xy+y^3=0    ならば、dy/dxはいくつになるか どうやったら、いいんでしょうか。 解法を教えてください。

  • 微分方程式がわかりません

    2xy^2*dy/dx+y+y^3=2(1+y^2)dy/dx がわかりません。 どうか解き方を教えてください

  • 微分方程式の解法について・・・

     一次微分方程式では「y=ux」とおき、一般解などを求めていくものが多いように感じられるのですが、 以下のような問題を解くためにはどのように進めていけばいいのでしょうか? 以下の微分方程式の一般解を求めよ。また、u = 2y^2-6yとおくこと。    dy/dx = -(2y^2-6y+4)/x(2y-3) 自分なりに du/dx = du/dy * dy/dx = ~ とし一般解を求めようと努力したのですが、どうしても途中で詰まってしまいます。 どなたか、お力をお貸しください。 また、最後に見難い記述しか出来ないことと、一方的な要望となってしまっていることをお詫び申し上げます

  • 微分方程式の解法について・・・・

     一次微分方程式では「y=ux」とおき、一般解などを求めていくものが多いように感じられるのですが、 以下のような問題を解くためにはどのように進めていけばいいのでしょうか? 以下の微分方程式の一般解を求めよ。また、u = 2y^2-6yとおくこと。    dy/dx = -(2y^2-6y+4)/x(2y-3) 自分なりに du/dx = du/dy * dy/dx = ~ とし一般解を求めようと努力したのですが、どうしても途中で詰まってしまいます。 どなたか、お力をお貸しください。 また、最後に見難い記述しか出来ないことと、一方的な要望となってしまっていることをお詫び申し上げます

  • 微分方程式の問題

    y^2dx+(xy-1)dy=0  解 xy=logy+c の解き方なのですが、同次形で解いていったところ . y=xv (dy/dx=v+xdv/dx)とする。  y^2dx+(xy-1)dy=0 ⇔y^2+(xy-1)dy/dx=0  ←両辺にdxをかける ⇔(y/x)^2+(y/x-1/x^2)dy/dx=0 ←両辺に1/x^2をかける ⇔v^2+(v-1/x^2)(v+xdv/dx)=0  ←y=xv,dy/dxを代入 ここからxとvについてうまくまとめられません。 どなたか教えてください。

  • 微分方程式の解法

    この数日間、色々試してみたのですが、途中でつまづいてしまいました…。分かる方がいたら、是非教えてください。 (1)x^2-y^2+2xy*dy/dx=0 [初期条件x=1,y=2]  以下、私がつまづいたところまで解いてみます。  1-y^2/x^2+2y/x*dy/dx=0 u=y/x,y=uxとすると、dy/dx=u+xdu/dx 1-u^2+2u(u+xdu/dx)=0 1+u^2+2ux*du/dx=0 2ux*du/dx=-u^2-1 2uxdu=(-u^2-1)dx 2u/(-u^2-1)*du=1/x*dx -∫2u/(u^2+1)*du=∫1/x*dx  -log【u^2+1】=log【x】+C ※【 】は絶対値です。  log【u^2+1】+log【x】=-C log【u^2+1】*【x】=-C  log【u^2+1】*【x】=loge^-C 【u^2+1】*【x】=e^-C  (u^2+1)x=±e^-C  b=±e^-Cとすると  (u^2+1)x=b (y^2/x^2+1)x=b ここで、初期条件x=1,y=2を代入すると  b=5  (y^2/x^2+1)x=5 y^2+x^2=5x …なぜかここで詰まりました。    最後はy=…の形にするんですよね?  この後はどうしたらよいのでしょうか?  あるいは、途中で間違っているのでしょうか?   (2)x*dy/dx+y=y^2logx [初期条件x=1,y-1/2] dy/dx+y/x=y^2/x*logx dy/dx=y/x*ylogx-1) dx/y=dx/x*(ylogx-1) ∫1/y*dy=∫1/x*(ylogx-1)dx log【y】= … xとyが分けきれてない…。    …と、ここで詰まってしまいました。    ヒントだけでも結構ですので、分かる方がいたら、是非教えてください。長々と失礼しました。

  • 複雑な微分方程式

    常微分方程式: xy・d²y/dx² + (x・dy/dx - 2y)・dy/dx = 0 をz = y・dy/dx とおく以外で解く方法があれば教えてください。

  • 微分方程式

    微分方程式の問題 (xy-x+y-1)dx-(xy+x-y-1)dy=0  dy/dx=(xy-x+y-1)/(xy+x-y-1) =(y-1+(y/x)-(1/x))/(y+1-(y/x)-(1/x)) t=y/xとして y'=t+xt' dy/dx=(tx-1+t-(1/x))/(tx+1-t-(1/x)) で途中までやったのですが この問題が解けません。ヒントください

  • 微分方程式についてです

    dy/dx = -y の微分方程式で ,x=10tと置いた場合. dx/dt = 10 ∴dt/dx = 1/10 を使って, dy/dx = (dy/dt)(dt/dx) から, -y =(dy/dt)(1/10) ∴dy/dt = -10y とするのはいいのでしょうか. 1次近似なので,x=10t は分割が小さくなっただけのような気がするんですけど.