• 締切済み

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

ndfireの回答

  • ndfire
  • ベストアンサー率0% (0/0)
回答No.3

すべて教えるとなると、 改良オイラー法を説明し、プログラムを載せ、実行結果を載せる、 ということになりますが、スペースの都合上無理ですね。 こういうのは、例えば改良オイラー法の意味がわからないとか、 こういう方法でやろうとしたらこうつまずいた、とかいったことを 明確に示すべきです。わからない場所をはっきりとしましょう。 全く同じ問題が、次の文献にのっています。 解答は略されていますが、改良オイラー法の説明があります。 理工系の数学入門コース8「数値計算」川上一郎著 問題6ー2 実際に微分方程式を解くと、y=tan(x)になりますよね。 改良オイラー法の式は、この本の(6.25)式を参照してください。

関連するQ&A

  • 常微分方程式の数値計算

    実験で常微分方程式の数値計算をしました y'(x)=2xy,y(0)=1.0(解はy=ex2)←eのx二乗の微分方程式できざみ幅h=0.1、区間〔0,2〕の条件で オイラー法と改良オイラー法とルンゲクッタ法を使って 表計算ソフトを使って求めよとあるのですが、 表計算で近似値のy座標とか Δt後のxの変化分K1とか求めるのですが、全然意味がわからなくて、 何かいい方法はないでしょうか?

  • オイラー法の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を求めるのでしょうか。 ここから先に進めないのでどなたかわかる方がいらっしゃれば教えて頂けるとうれしいです。 よろしくお願いします。

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

    常微分方程式の初期値問題 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 となったのですが 両方の値が等しくならず困っています どなたか計算確認していただけないでしょうか?

  • 数値解析についての質問です。お願いします

    以下の問題をプログラム、あるいはエクセルを用いて解きたいのですがどのように解いたらよいのかわかりません。お願いします dx/dt=1/2(1-x),x(0)=0.1の解を以下の方法で求めよ 1、オイラー法を用いて求めよ。時間刻みhを0.5、時間範囲を0<=t<=20とする。解析値、解析解、相対誤差を表にまとめよ。数値解、解析解の時間的変化をグラフで示せ(解析解)= 1/1+9e^-0.5t 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 でやったら、解答はどのようになるのでしょうか?

  • 常微分方程式の問題で。

    常微分方程式の問題で オイラー法、ルンゲ・クッタ法、ルンゲ・クッタ・ギル法、ミルン法、アダムス法より2つの方法を用いて解け。 y''+y'/x+y=0 初期条件y'/x=-1/2 0<=x<=4 h=0.4 という問題なのですが、基本的に解き方がわかりません。 二階微分なので連立ルンゲ・クッタで解くのかな?っと思ったのですが 結局それからどうすればいいのかわかりません。 2つの方法とありますが、これはどの方法でも解けるものなのでしょうか? 本当はC言語のプログラムを組まなければいけないのですが、 この理論がわからないのでおねがいします。

  • 数値解析法

    このHeun法のプログラムをRunge-Kutta法にするにはどうしたらいいですか? #include <stdio.h> #include <math.h> double f1(double y) { return y; } double f2(double y) { return -4*y; } int main(){ double a=0; double b; int m=10; int n; double h; double x,y; int k; double e; double f; double k1,k2; printf("Heun法計算例:y=e^x, y=1/e^4x\n\n"); // y = e^x b = 1; for(n=100;n<=10000;n*=100){ h = (b-a)/n; printf("y' = y: h(=dx) = %.1e (y=e^x)\n",h); x = a; y = 1; for(k=0;k<=n;k++) { x = k*h; if(k%(n/m)==0) { f = exp(x); e = fabs(y-f); printf("x=%.2f, y=%f, e^x=%f er=%.0e\n",x,y,f,e); } // Heun's method k1 = h*f1(y); k2 = h*f1(y+k1); y += (k1+k2)/2; } }

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

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

  • ベクトル解析の問題だと思いますが

    ベクトル解析について困っています。問題で スカラー場 φ(x,y,z) ベクトル場A(x,y,z)を次の定義で表します。 φ(x,y,z)=x2乗+y2乗+z2乗、A(x,y,z)=(-y,x,z) でgradφ、rotA、divAを求めたいんです。 そして自分の中で合っているか分かりませんが gradφ=( ∂/∂x, ∂/∂y, ∂/∂z ) ここまでは分かったのですがこれから先の答えが x2乗+y2乗+z2乗の部分など分からなく困っています。

  • 偏微分方程式の数値解析

    お忙しいところすみません. 現在,FDTD法による数値解析を行っています. FDTD法は空間及び時間微分に対して中心差分を行っていますがこれを4次のルンゲクッタ法で行うことは出来るのでしょうか?ある参考書に以下のような「連立1階微分方程式」を4次のルンゲ-クッタ法で解くというのがありました. dy/dt=f(t,y,z) dz/dt=g(t,y,z) これを4次のルンゲ-クッタ法で解くと y(n+1)=y(n)+1/6*(k1+2*k2+2*k3+k4) z(n+1)=z(n)+1/6*(j1+2*j2+2*j3+j4) ここで k1=Δt*f(t(n),y(n),z(n)) j1=Δt*g(t(n),y(n),z(n)) k2=Δt*f(t(n)+Δt/2,y(n))+k1/2,z(n)+j1/2) j2=Δt*g(t(n)+Δt/2,y(n))+k1/2,z(n)+j1/2) k3=Δt*f(t(n)+Δt/2,y(n))+k2/2,z(n)+j2/2) j3=Δt*g(t(n)+Δt/2,y(n))+k2/2,z(n)+j2/2) k4=Δt*f(t(n)+Δt,y(n)+k3,z(n)+j3) j4=Δt*g(t(n)+Δt,y(n)+k3,z(n)+j3) これをマクスウェルの方程式に対応させ ε∂E(t,x,y,z)/∂t=f(t,H)=∇×H μ∂H/∂t=g(t,E)=-∇×E として出来ないこともない気がするのですが. なぜこの方法を試みようとした理由は現在,通常のFDTD定式化により数値解析を行っていますが ・プログラムは正しい ・始めの部分は正常に計算出来ている ・途中から凹凸が出始め,それが成長して発散している という事態になり,数値的不安定の可能性が強いと思ったからです.オイラー法やルンゲ-クッタ法ではこのような異常振動は進み幅を小さくすれば止まる(ということが数学的に証明されている)ようです. 何卒回答の方,よろしくお願い致します.