• ベストアンサー

オイラー法のx1を求める方法

以下のような問題がありました。 問.次の初期値問題にオイラー法を適用せよ。h=0.2とし、y1,...,y5 を計算する。 y' = x + y, y(0) = 0 問題文からまず(x0,y0) = (0, 0)がわかります。 そしてオイラー法の公式に当てはめると y1 = y0 + 0.2(x0 + y0) からy1=0も求まります。 しかしここからがわかりません。 どのようにしてx1を求めるのでしょうか。 ここから先に進めないのでどなたかわかる方がいらっしゃれば教えて頂けるとうれしいです。 よろしくお願いします。

  • mist55
  • お礼率72% (180/247)

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (7998/17100)
回答No.1

x[n]=x[0]+nh としてください。つまりx[1]=x[0]+h=0.2です。

mist55
質問者

お礼

ありがとうございます。

関連するQ&A

  • オイラー法とホイン法の問題

    常微分方程式の初期値問題 dy/dx=xy を初期値x0=0 y(x0)=y0として解く xを分点、xi=ihにとるとき、 x2での真の解y(x2)の近似解Y2をオイラー法およびホイン法を用いて それぞれh,h^2のオーダーまで求めよ。 私の解答 ■オイラー法 f(x,y)=xy Y0=y0 Y1=Y0+hf(x0,y0)=y0+hxy0=(1+xh)y0 Y2=Y1+hf(x1,y1)=(1+xh)y0+h(1+xh)y0 ≒(1+h+xh)y0 ■ホイン法 Y1’=y0+hy0=(1+xh)y0 Y1*=y0+hY1\'=(1+h+xh^2)y0 Y1=(Y1\'+Y1*)/2=(2+h+xh+xh^2)y0/2 Y2’=Y1+hY1=(2+3h+xh+2xh^2+h^2)y0 Y2*=Y1+hY2\'=(2+3h+3h^2+2xh^2+xh)y0 Y2=(Y2\'+Y2*)/2=(2+3h+xh+2xh^2+2h^2)y0/2 となったのですが 両方の値が等しくならず困っています どなたか計算確認していただけないでしょうか?

  • オイラー法とホイン法の問題で質問があります

    質問させていただきます 常微分方程式の初期値問題 dy/dx=y を初期値x0=0 y(x0)=y0として解く xを分点、xi=ihにとるとき、 x2での真の解y(x2)の近似解Y2をオイラー法およびホイン法を用いて それぞれh,h^2のオーダーまで求めよ。 解答には ■オイラー法 f(x,y)=y Y0=y0 Y1=Y0+hf(x0,y0)=(1+h)y0 Y2=Y1+hf(x1,y1)=(1+h)y0+h(1+h)y0 ≒(1+2h)y0 ■ホイン法 Y1’=y0+hy0=(1+h)y0 Y1*=y0+hY1'=(1+h+h^2)y0 Y1=(Y1'+Y1*)/2=(2+2h+h^2)y0/2 Y2’=Y1+hY1=(1+h+h^2)Y1 Y2*=Y1+hY2'=(1+h+h^2)Y1 Y2=(Y2'+Y2*)/2=(2+2h+h^2)y0/4≒(1+2h+2h^2)y0 こう書かれているのですが オイラー法の (1+h)y0+h(1+h)y0 ≒(1+2h)y0 ホイン法の (2+2h+h^2)y0/4≒(1+2h+2h^2)y0が なぜこのように近似できるのか分かりません・・・・ あと dy/dx=xy でやったら、解答はどのようになるのでしょうか?

  • 微分方程式をオイラー法でときたい

    高階常微分方程式 y” =f(x、y) y(0)=yo y’(0)=y’o この式と初期値でオイラー法を使って解きたいのですが... オイラー法を二回使えばよい、一階の連立方程式に なおせばよい。という意味がいまいちつかめません。 教えていただけると助かります。お願いします。

  • 数値解析の問題がわかりません

    y'=1+y2 ←(yの2乗) 、y(0)=0 の初期値問題に改良オイラー法を適用せよ。 h=0.1 として5ステップだけ計算せよ。  この問題が分かりません。どなたか教えて下さい。

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

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

  • オイラー法、2次ルンゲクッタ法、4次ルンゲクッタ法のC言語プログラムに

    オイラー法、2次ルンゲクッタ法、4次ルンゲクッタ法のC言語プログラムについて教えてください! 課題なのですが、まったくわからず困ってます>< 1 常微分方程式 dy/dx=f(x,y),y(0)=1 の数値解をオイラー法を用いて計算するプログラムを作為せよ。ただし、f(x,y)=3-6x^2-4x+2xyとする。 2 α=1,β=1,γ=1/2,σ=1/2 の場合の2次ルンゲクッタ法を考える。1と同じ常微分方程式(f(x,y)も同じ)を考え、その数値解を求めるプログラムを作成せよ。また、オイラー法と2次ルンゲクッタ法の実行結果を示して、2つの近似精度を比較せよ。 3 1と同じ常微分方程式(f(x,y)も同じ)を考え、その数値解を4次ルンゲクッタ法を使って求めるプログラムを作成せよ。また、オイラー法、2次ルンゲクッタ法、4次ルンゲクッタ法の実行結果を示して、3つの近似精度を比較せよ。 以上の3つです。 休んでいた自分が悪いのですが、ネットで調べてもよくわからなくて… わかる方、よろしくおねがいします…

  • オイラー法

    区間[0,10]においてh=0.01としオイラー法を用いてとけ。また誤差も出せ。 y'=3x^2-x^3-x^6+(2x^3+1)y-y^2 y(0)=0.5 なんですけどa=3くらいから値がおかしくなりa=10の時には誤差ですぎます。誤差がでないようにするにはどこを直せばいいのか教えてください。 おねがいします。 #include<stdio.h> #include<math.h> double h=0.01; double x0=0.5; main(void) { int a; double euler(int a); double gosa; for(a=1;a<=10;a++) gosa=shin(a)-euler(a); printf("%d %f %f\n",a,euler(a),gosa); } double shin(double a) { double y; y=a*a*a+1.0/(1.0+exp(-a)); return y; } double f(double t,double x){ double y; y = 3.0*t*t-t*t*t-t*t*t*t*t*t+(2.0*t*t*t+1.0)*x-x*x; return y; } /* Euler Function */ double euler(int a){// x0:Initial Value double T,nx,x; // Initial Value x = x0; // Euler Method for(T = 0.0;T < a;T += h){ nx = x + h*f(T,x); x = nx; }

  • オイラーの公式 e^JKX=cosKX+JsinKXを利用して次の問い

    オイラーの公式 e^JKX=cosKX+JsinKXを利用して次の問いに答えなさい。 問「cos3X+cos2XをsinX、cosXの関数で表しなさい」という問題があります。 答えは3cos^2XsinX-sin^3X+cos^2X-sin^2Xです。 なのですが、どうやってこの答えに辿りつくのかわからないです。 途中の計算式とできればちょっとした解説も交えて教えてください。

  • オイラー法、ルンゲクッタ法について。

    オイラー法、ルンゲクッタ法について。 この2つについて分からない事があるので質問します。 まず、オイラーについてですが、yi+1=yi+hf(x,y)という式がテイラー展開によって求まると言われましたが、テイラー展開の2次以降の項は微少量として無視できるのは分かります。でもそもそもテイラー展開ってひとつ先の値を今の値から求まるみたいな展開でしたっけ??というのが一つ目の質問です。 2つ目は、オイラーの式の中のf(x,y)についてです。簡単なバネ・マス・ダンパ系を考えた時、運動方程式はm・d2x/dt2+c・dx/dt+kx=0となると思いますが、この場合のf(x,y)はどうやって求めるのでしょうか。 3つ目はルンゲクッタそもそもについてです。 ルンゲクッタとはK1K2K3K4という係数(?)に1221という重みをかけるとyi+1が求まるそうですが、この理由がどんなサイトや本を見ても納得出来ません。 何か分かりやすい本やサイトがあれば教えて頂けないでしょうか。 以上3つの質問、回答よろしくお願いします。

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

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