計算天文学 I では、ルンゲ・クッタ(RK) 法とそのバリエーションを扱った。 ルンゲクッタ法とは、非常に一般的には以下のような形に書ける方法である。
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
(1) |
![]() |
(2) |
と、こう、式に書いてしまうとすぐにはわからないが、例えば の場合に
書き下してみると
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
(3) |
今日はとりあえず陽的な公式だけを考える。
形式的には、もっとも簡単な前進オイラー法もルンゲ・クッタ公式の一つとい
うことになるが、まあ、普通もっとも簡単なRK法というと、2次の公式
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
(4) |
普通は、RK法というといわゆる古典的 RK 公式
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
(5) |
のことをさす。これは、いろいろ良い性質をもつ。例えば
4次よりも高精度な公式というのも非常によく研究されていて無数にいろんな ものが知られている。ただし、4次よりも高い次数では、次数よりも必要な段 数が大きくなる。この2つの関係が一般にどうなるかは未解決の問題である。 というようなこともあるので、よほど変わったことをしたいというのでない限り、専門 家が作った公式を使うのが無難である。
Dormand と Prince は、最近、段数/次数のさまざまな組合せについて、 離散化誤差を非常に小さくした公式を求めた。これらは、
http://www.unige.ch/math/folks/hairer/software.htmlから入手できる (Fotran と C がある)。
普通の(というのがどういう意味かは今のところ明らかではないが)常微分方 程式を手軽に解くにはこれらのRK公式を使えば十分である。
実用的には、こちらが欲しい計算精度をどうやって達成するかという問題があ る。この問題を解決するためには、誤差を推定しながら積分の刻み幅を自動的 に調節する必要がある。これについては次回にちょっと触れる。