• 検索結果がありません。

● 前回の講義のまとめ

N/A
N/A
Protected

Academic year: 2021

シェア "● 前回の講義のまとめ"

Copied!
7
0
0

読み込み中.... (全文を見る)

全文

(1)

● 前回の講義のまとめ

常微分方程式の初期値問題

x(t) =f(t, x(t)), x(0) =x0

(1)

の数値解を構成する計算スキームを考える. 以下では, f(t, p)は滑らかであると仮定する.

【後退オイラー法】

1. 差分化を

dx

dt(tk)←→ xk−xk+1

−h と後退微分で置き換えると,

xk+1=xk+hf(tk+1, xk+1)

によって{xk}を与える計算スキームを得ることができる. これを後退オイラー法と呼ぶ.

2. 後退オイラー法に対しても,pに関するリプシッツ条件 ∂f∂t, ∂f∂p の有界性があれば,局所離散 化誤差ek と,大域的離散化誤差Ek =|x(tk)−xk|

ek=O(h2), Ek =O(h) をみたす.

【テイラー展開法】

1. オイラー法よりも高次の近似を実現する計算スキームとして, xk+1=xk+hf(tk, xk) +h2

2!F2(tk, xk) +· · ·+hp

p!Fp(tk, xk)

によって{xk} を与えるテイラー法を考えることができる. ここで, Fj(t, x) は, ddtj−1j f(t, x(t)) x(t)などに, 微分方程式の条件x =f(t, x)を代入したものである.

2. テイラー法は,x(t)のテイラー展開

x(tk+1) =x(tk) +hx(tk) +h2

2!x(tk) +· · ·hp

p!x(p)(t) +O(hp+1)

を利用した近似スキームである. (オイラー法は,テイラー法のp= 1に相当するスキームであ る.)したがって,f(t, p)に必要なだけの滑らかさがあれば,

ek =O(hp+1), Ek =O(hp) が成り立つ.

3. しかし,テイラー法を実際に適用するには f(t, p)の高次導関数を計算する必要があるため, 用上は用いられない.

(2)

【修正オイラー法】

1. オイラー法で用いた x(t)の近似である前進差分

x(tk) x(tk+1)−x(tk) h だけでなく,後退差分

x(tk) x(tk−1)−x(tk)

−h を組み合わせた中心差分(中点則)

x(tk)∼x(tk+1)−x(tk−1) 2h

を用いることを考える. これは,以下のように考えることができる.

x(tk+1) =x(tk) +hx(tk) +h2

2 x(tk) +h3

3!x(3)(tk) +O(h4), x(tk−1) =x(tk)−hx(tk) +h2

2 x(tk)−h3

3!x(3)(tk) +O(h4), の上の式から下を引けば,

x(tk+1)−x(tk−1) = 2hx(tk) +h3

3 x(3)(tk) +O(h5) となる. このh3以上の項を無視すれば,

xk+1=xk−1+ 2hf(tk, xk) というスキームを得る. これを修正オイラー法と呼ぶ.

2. 修正オイラー法は,初期値x0 だけではなく,x1 (出発値と呼ぶ)を必要とする. 通常はx1 求めるためにオイラー法を用いる.

3. 修正オイラー法に関しては,

ek =O(h3), Ek=O(h2) が成り立つ.

4. いま,最も安定と考えられる方程式

x(t) =−x(t), x(0) =x0

(2) に対して修正オイラー法を適用しよう. このとき,修正オイラー法のスキームは,3項間漸化式

xk+1=xk−12hxk (3)

と等しい. いま, (3) の一般項は, (3) の特性方程式

t2+ 2ht1 = 0 の2つの解

η1=−h+ h2+ 1, η2=−h−

h2+ 1

ex08.tex,v 1.1 2007-05-27 16:19:24+09 naito Exp

(3)

を用いて,

xk =c1ηk1+c2ηk2 (4)

と書くことができる. いま, η2 <−1 より, c2 = 0 ならば, |xk| → ∞ となり, (1) の解の挙動 x(t)→0 とは大きく異なることになる.

ここで, 初期条件x0と出発値x1 を用いて, c1,c2 c2=x1−x0

η2−η1 = x0−x1

2 h2+ 1, c1=x0−c1

と書ける. したがって, x0=x1 であるかぎりは,任意のh >0 に対してc2= 0である.

5. 修正オイラー法を用いて(3) の数値解を構成すると, 真の解とは全く異なる振動しながら「発 散」する解があらわれる. このような現象を数値的不安定性と呼び,本来「安定」な数学的対象 を「離散化」または「数値化」したことにより発生する不安定性である. 最も安定な対象である と思われるx(t) =−x(t)でさえも不安定となってしまうため,修正オイラー法も実用上は用い られない.

(4)

● 講義資料

x(t) =λx(t), x(0) =x0, λ= 0. (5)

x(t) = (1−x(t)2), x(0) = 0. (6)

x(t) +ax(t) +bx(t) =f(x), x(0) =x0, x(0) =v0. (7) x(t) + sin(x(t)) = 0, x(0) =x0, x(0) =v0. (8) x(t) + (x(t)21)x(t) +x(t) = 0, x(0) =x0, x(0) =v0. (9)

★ 改良オイラー法

x=x, x0= 1.0に対して, h= 0.5から順にh 1/2倍したときの数値解と,真の解との誤差.

1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8

0 0.2 0.4 0.6 0.8 1

"result_1.txt"

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08

0 0.2 0.4 0.6 0.8 1

"error_1.txt"

x=−x,x0= 1.0 に対して,h= 0.5から順にh1/2 倍したときの数値解と,真の解との誤差.

0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0 0.2 0.4 0.6 0.8 1

"result_3.txt"

0 0.5 1 1.5 2 2.5

0 0.2 0.4 0.6 0.8 1

"error_3.txt"

ex08.tex,v 1.1 2007-05-27 16:19:24+09 naito Exp

(5)

★ ルンゲクッタ型公式

x =x,前進オイラー法, 改良オイラー法,ホインの3次公式,ルンゲクッタ法で t= 1.0 での誤差を 示したもの.

1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1

10 100 1000 10000 100000 1e+06 1e+07

Euler Improved Euler Heun 3 Runge-Kutta

x = −x, 前進オイラー法, 改良オイラー法, ホインの3次公式, ルンゲクッタ法で t = 4π での (x(t))2+ (x(t))2 1.0との誤差を示したもの.

1e-16 1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1 100

10 100 1000 10000 100000 1e+06

Euler Improved Euler Heun 3 Runge-Kutta

(6)

x=sin(x), 前進オイラー法, 改良オイラー法, ホインの3次公式,ルンゲクッタ法でt= 4πでの

12(x(t))2cos(x(t)) 12(x(0))2cos(x(0))との誤差を示したもの.

1e-16 1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1

10 100 1000 10000 100000

Euler Improved Euler Heun 3 Runge-Kutta

x=−x, (x(t))2+ (x(t))2 の値の変化の様子. 前進オイラー法,改良オイラー法,ホインの3次公式, ルンゲクッタ法. (t= 0.01)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14

0 2 4 6 8 10 12 14

Euler

0 5e-07 1e-06 1.5e-06 2e-06 2.5e-06 3e-06 3.5e-06

0 2 4 6 8 10 12 14

i-Euler

前進オイラー法 改良オイラー法

-1.2e-06 -1e-06 -8e-07 -6e-07 -4e-07 -2e-07 0

0 2 4 6 8 10 12 14

Heun 3

-1.8e-11 -1.6e-11 -1.4e-11 -1.2e-11 -1e-11 -8e-12 -6e-12 -4e-12 -2e-12 0

0 2 4 6 8 10 12 14

Rk

ホインの3次公式 ルンゲクッタ

ex08.tex,v 1.1 2007-05-27 16:19:24+09 naito Exp

(7)

x=sin(x), 12(x(t))2cos(x(t))の値の変化の様子. 前進オイラー法,改良オイラー法,ホインの 3次公式,ルンゲクッタ法. (t= 0.01)

0 0.01 0.02 0.03 0.04 0.05 0.06

0 2 4 6 8 10 12 14

Euler

0 2e-07 4e-07 6e-07 8e-07 1e-06 1.2e-06 1.4e-06 1.6e-06 1.8e-06 2e-06

0 2 4 6 8 10 12 14

i-Euler

前進オイラー法 改良オイラー法

-3.5e-07 -3e-07 -2.5e-07 -2e-07 -1.5e-07 -1e-07 -5e-08 0

0 2 4 6 8 10 12 14

Heun 3

-1.5e-11 -1e-11 -5e-12 0 5e-12 1e-11

0 2 4 6 8 10 12 14

Rk

ホインの3次公式 ルンゲクッタ

● 実習内容

(5)から(8)を改良オイラー法,ホインの3次公式, ルンゲクッタ法を用いて解きなさい.

参照

関連したドキュメント

6回目資料の 1 から 9 の常微分方程式の初期値問題の数値解を, 改良オイラー法, ホインの

また, 解析解が分かるものに関しては, 時間刻み幅を変化させたとき, 解析解との誤 差がどうなるかを観察しなさい3. 時間刻み幅,

• 添付ファイルのファイル名は, zzzzzz-xx-y.c などと, 拡張子を適切につけ, 拡張子よりも前の 部分は,

(ともに中間的な点を つける可能性あり)また, これら Extra な問題の締め切りは2009年8月半ばとし,

• ニュートン法では, 「解 α の近似値を, 相対誤差 δ で求める」ために, いつ繰り返しを停止させるかは明 らかではない.. これを

反復法も Gauss-Seidel の反復法もともに収束する.. 収束の速度は

特に, 一般の行列の固有値 を有限回の代数的操作で求めることは不可能である... また,

(★★)整数係数の 4 × 4 行列に対して, それが正則か否かを判定し, もし正則であるときに は, 逆行列を有理数係数で求め,