- ベストアンサー
オイラー法による微分方程式の数値解法
- みんなの回答 (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 なので,確かに「当たらずとも遠からず」って感じです.
関連するQ&A
- オイラー法の解法(数値計算)
オイラー法で dy/dx=x+y , 0<=x<=1 y(0)=0 を解け。ただし、刻み幅をh=0.1とする。 大学のレポートに出たんですけど、よく分かりませんでした。 どうか教えて下さい。 よろしくお願いします。
- 締切済み
- 数学・算数
- 微分方程式の解法について
微分方程式の解法について X^3-3xy+y^3=0 ならば、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 = ~ とし一般解を求めようと努力したのですが、どうしても途中で詰まってしまいます。 どなたか、お力をお貸しください。 また、最後に見難い記述しか出来ないことと、一方的な要望となってしまっていることをお詫び申し上げます
- ベストアンサー
- 数学・算数
- 微分方程式の解法
この数日間、色々試してみたのですが、途中でつまづいてしまいました…。分かる方がいたら、是非教えてください。 (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が分けきれてない…。 …と、ここで詰まってしまいました。 ヒントだけでも結構ですので、分かる方がいたら、是非教えてください。長々と失礼しました。
- ベストアンサー
- 数学・算数
- 微分方程式についてです
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 は分割が小さくなっただけのような気がするんですけど.
- 締切済み
- 数学・算数