5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Modified-Euler法の精度

5
Last updated at Posted at 2017-12-09

はじめに

近似計算法であるModified-Euler法は、Euler法よりも近似精度が高いと言われています。今回は、その精度について確認していきます。
なお、ここでは微分方程式

\dfrac{dx}{dt}=f(t_n,x_n)

の近似を行うとします。

Euler法の精度

Euler法

Euler法は次の式で表されます。

x_{n+1} = x_n + h f(t_n,x_n)

Euler法の精度

まず、時間発展の出発時刻$t_0=0$とし、$^\forall n\in\{0,1,2,\cdots\}$に対して$t_n-t_{n-1}=h$としましょう。このとき、

t_n-t_{n-1}=h\\
t_{n-1}-t_{n-2}=h\\
\vdots\\
t_{1}-t_{0}=h\\

ですから、両辺足して

t_n-t_0=nh

ここで、$t_0=0$から

t_n=nh

が成立することに注意しておきます。
さて、$x(t_{n+1})$について、$t_n$点を中心にTaylor展開すると

x(t_{n+1}) = x(t_n) + x'(t_n)(t_{n+1}-t_n)+O(h^2)

ここで、$x(t_{n})=x_n,\quad x'(t_n)=f(t_n,x_n)$とすると

x_{n+1}=x_n+hf(t_n,x_n)+O(h^2)

となります。すなわち、Euler法の局所誤差は$h^2$程度となります。
毎回の計算で生じうる誤差、局所誤差に対し、Euler法で計算を繰り返してプログラムの実行が完了した時点で、蓄積された誤差は$t_n=nh$で表現されることから

(誤差)\sim (局所誤差)\times n = O(h^2)\times \dfrac{t_n}{h}=O(h)

となります。つまり、Euler法を実行して計算した結果に含まれる誤差は$h$程度ということになります。

Modified-Euler法の精度

Modified-Euler法

Modified-Euler法は次の式で表現されます。

x_{n+1}=x_n+\dfrac{h}{2}\{f(t_n,x_n)+f(t_{n+1},x_n+hf(t_n,x_n))\}

Modified-Euler法の精度

まず、

\left\{\begin{array}{rl}
k_1 &= hf(t_n,x_n)\\
k_2 &= hf(t_{n+1},x_n+k_1)\\
x_{n+1}&=x_n+\dfrac{1}{2}(k_1+k_2)
\end{array}\right.

とする。$k_2$について$(t_n,x_n)$を中心にTaylor展開すると

\begin{align*}
k_2&=h\{f(t_n,x_n)+f_t(t_n,x_n)(t_{n+1}-t_n)+f_x(t_n,x_n)(x_{n+1}-x_n)+O(h^2)\}\\
&=hf(t_n,x_t)+h^2f_t(t_n,x_n)+hf_x(t_n,x_n)k_1+O(h^3)\\
&=hf(t_n,x_t)+h^2\{f_t(t_n,x_n)+f_x(t_n,x_n)f(t_n,x_n)\}+O(h^3)\\
&=h\dfrac{dx}{dt}+h^2\left\{\dfrac{\partial f}{\partial t}+\dfrac{\partial f}{\partial x}f\right\}+O(h^3)\\
&=h\dfrac{dx}{dt}+h^2\dfrac{d^2x}{dt^2}+O(h^3)
\end{align*}

となる。ただし、途中で$t_{n+1}-t_n=h$やEuler法$x_{n+1}=x_n+k_1$を用いている。
さて、この結果を用いると

\begin{align*}
x_{n+1}&=x_n+\dfrac{1}{2}\{(k_1+k_2)\}\\
&=x_n+\dfrac{1}{2}\left\{hf(t_n,x_n)+hf(t_n,x_n)+h^2f'(t_n,x_n)+O(h^3)\right\}\\
&=x_n+hf(t_n,x_n)+h^2f'(t_n,x_n)+O(h^3)
\end{align*}

となります。すなわち、Modified-Euler法の局所誤差はどんな$h^3$程度となります。
Euler法のときと同様に蓄積される誤差を計算すると

(誤差) = (局所誤差) \times n = O(h^3)\times \dfrac{t_n}{h}=O(h^2)

となります。すなわち、Modified-Euler法で計算を実行した際に含まれる誤差は$h^2$程度となります。

まとめ

*Euler法の近似誤差はh程度
*Modified-Euler法の近似誤差はh^2程度

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?