離散フーリエ変換への道 (3) 離散時間フーリエ変換
広義Runge–Kutta法の数値安定性
数値解法の安定性とは
(大雑把に言えば)どのくらい刻み幅が大きくなると計算が明らかにおかしくなるか、ということである。
A-stabilityとは
数値解法の安定性を評価する指標の一つである。
次の常微分方程式を考える。
これをとして解析的に解けば
このとき、ならば
である。
ある数値解法で(1)式を解いたとき、刻み幅にかかわらず式(2)を満たすならば、その解法はA-stableであるという。
安定領域とは
上の係数と、刻み幅の積がを満たすの領域である。
広義Runge–Kutta法においてはこの領域は容易に求められる。
広義Runge–Kutta法において次の式が成り立つ。
ここで、である。であり、はの初期値である。
また、は各解法で固有な関数で、安定関数とよばれる。
安定領域は、なる領域である。
ある解法がA-stableであるには、安定領域がなる領域を含んでいればよい。
各解法の安定領域
今までこのブログで書いてきた各解法(すべて広義Runge–Kutta法である)について、その安定領域を調べる。
陽的Euler法
陽的オイラー法の式は
これに、を代入して、
よって、安定関数は
ゆえに、安定領域は
(以後の安定関数の計算も全て同様の方法である)
(縦軸:虚軸() 横軸:実軸() 以後の画像も同様)
台形法
台形法の式は
安定関数は
ゆえに、安定領域は
変形して、
この解法はA-stableである。
陽的中点法
陽的中点法の式は
安定関数は
陰的中点法
陰的中点法の式は
安定関数は
これは台形法と同じ安定関数なので、安定領域は
(図省略)
陽的化した台形法 (Heun法)
陽的化した台形法の式は
安定関数は
これは陽的中点法と同じ安定関数である。
その他
一般に陰的解法はA-stableである。
また、広義Runge–Kutta法は次数が上がるほど安定領域が広がる傾向があるようだ。
最小二乗法(8) 重み付き多項式フィッティング
前:最小二乗法(7) 項の欠けた線形近似 - equal_l2’s blog
次:なし
最小二乗法(1)~(7)で行ってきたフィッティングは、各がすべて同じ誤差を持つものとして行ってきた。
しかし、時には各にそれぞれ違う誤差を付けたい気分の日もあるだろう。
このとき、最小にするのはもはや残差の二乗和ではなく、
である。
方法論は同じで、全てのパラメータについて、
となるようなを求めればよい。
実際に偏微分すると、
変形すれば、正規方程式は
となる。
各パラメータの誤差は、誤差の伝播式より、
となる。
ここで、モデル関数として多項式
を用いて、
とおけば、解くべき正規方程式は
となり、(項の中身が変わったことを除けば)重みをすべて同じにした場合と変わらない。
次回は、一応についての結果を述べておこう。
Qiitaに登録してみた
C++でちょっと気付いたこととかをブログに書くのはなんだか気が引けるので、Qiitaに登録してみた。
EqualL2 - Qiita
Tipsみたいなものはこっちに書いていこうと思う。
シリーズ物は引き続きこっちで。
常微分方程式の数値解法(3) 中点法
今回も引き続き次のような式の解法を考える。
中点法の準備
Euler法の導出と同様のことを、中央差分で行うと、
添字からマイナスの項を消せば、
この式は代数的に処理しての式にすることはできない。
を、近似などでで表される式にしなければならない。
図的イメージ
高さ、幅の矩形の面積を足し合わせる。
誤差がいい具合に消しあうことが多いらしく、精度はオイラー法よりも良い傾向がある。
常微分方程式の数値解法(2) Euler法
実際に1次の常微分方程式を解く。
基本
次のような1次の常微分方程式を考える。
このような常微分方程式に対して、ある種の数値解法の公式は漸化式の形で表される。
いま、次のような記法を導入する。
ここで、は一般には整数であるが、便宜上は非整数を使ってもよい。
陽的Euler法
前進差分による微分の近似は、
これと、
より、
ゆえに、
陰的Euler法
後退差分で、上と同様のことを行うと、
マイナスがあるのが嫌なので、とすれば、
この式は、を求めるのに、の引数としてが使われている。
がに陽に依存する場合は、実際にの式を代入して、についての式に整理しなければならない。
このように、実際に個々のを代入しないとに関する式が得られないものを陰解法 (implicit method)という。
対して、どのようなについても同じようにが得られるものを、陽解法(explicit method)という。
面倒な陰解法が何の役に立つのかというと、陽解法に比べて安定性が高いのである。
安定性が高いとは、刻み幅が大きいときでも解析解との乖離が小さいという意味である。
安定性については別の機会に詳しく説明する。
台形法
上の2つの方法の式を辺々足す。つまり、
辺々を2で割れば
これも陰解法である。他の2法に比べて精度が良い。