「非線形だって解ける」のスプレッドシートを公開!! [ひとこと言わねば]
だから、いつになくお得なスプレッドシートになっていると思うケロ。
この計算法を舐めてもらっては困るにゃ。
ネムネコの表計算ソフトの計算結果↓
今日のアニソン、「対魔忍アサギ」から『無限連歌』 [今日のアニソン]
実写版まで作られているそうだから。
非線形の微分方程式だって解けるケロ(差分の基礎編) [数値解析]
非線形の微分方程式だって解けるケロ
差分法を用いた、次の非線形微分方程式の初期値問題について考える。
前進差分を用いて(1)を差分方程式に近似すると次のようになる。
これから、
という漸化式を得ることができ、x₀=0におけるyの値y₀を計算の出発点にし、前進的にの値を次々に求めることができる。
これに対して、後退差分を用いると、(1)の微分方程式に関する差分方程式は
となり、次の2次方程式を得ることができる。
この2次方程式を解くと、
という漸化式が得られ、(3)式を用いて前進的にの値を次々に求めることができる。
(1)の場合、後退差分は2次方程式を解く必要があるんだケロよ。2次方程式を解くというひと手間が加わるだけではなく、(2)と(3)を比較すればわかるように、漸化式が複雑になる。
だったら、3次方程式を解かないといけない。3次方程式ならば解の公式があるので代数的に解けないことはないけれど、n≧5のとき
この式から得られる
というのn(≧5)次方程式を代数的に解くことは一般にできないので、ニュートン法などを用いてを解く必要がある。
ということで、後退差分(陰解法?)は前進差分(陽解法?)とは違って難しいんだケロよ。だから、常微分方程式の初期値問題で後退差分を用いた解法(陰解法?)は一般に使われない。
陰解法が威力を発揮するのは、
といった偏微分方程式の数値解法なんだケロよ。
ではありますが、Δx=0.1とし、(2)式と(3)式を使って、(1)の初期値問題を解いた結果は次のとおり。
微分方程式(1)の(厳密)解は簡単に求まりそうに見えるだろうが、これはリッカチ形の微分方程式で、この解は三角関数、指数関数、対数関数を用いて表すことができない、つまり、解けないんだケロ。
なので、比較参考のために、4次のルンゲ・クッタ法を用いてΔx=0.1で計算した値を厳密解のかわりにあわせて図示している。
この計算結果を見ると、陽解法による計算結果は厳密解よりも小さく、陰解法による数値計算結果は厳密解よりも大きいこと、そして、厳密解がこの間に位置していることがわかる。
ということで、陽解法による計算結果を陰解法による数値計算結果を足して2で割る、つまり、両者の平均をとると、厳密解とかなりよく一致することがわかる。
このことは、数値計算結果の絶対誤差を図示したグラフを見るとよくわかると思う。
前回に引き続き、陽解法と陰解法の計算結果を足して2で割ると、誤差のプラスマイナスが互いに消し合って、誤差が小さくなって、厳密解に近い値が出るようになるのであった。
Δx=0.1のときに、誤差がおよそ1/10になっており、また、陽解法、陰解法の誤差の程度がO((Δx)²)であるので、この解法の誤差はO((Δx)³)と推測される。だから、修正オイラー法、2次のルンゲ・クッタ法と誤差のオーダーと同じであるに違いない。
より進んだ解法は、
①と②の両辺を足しあわせて、両辺を2で割ると、
となるにゃ。
についての2次方程式(4)を解き、こうして新たに得られた漸化式を用いて計算してみるといい。
(4)を使った計算結果は、(2)と(3)を使って求めた値の平均値と同じ値になると思うかもしれないけれど、これが一致しないんだね〜。
(4)を使ったもののほうが精度はさらに向上するはずなんだよね〜。
嘘だと思うならば、の2次方程式(4)を解き、の漸化式を求め、その漸化式で計算してみな。
というか、お前ら、これくらいはやれよな。
何故、(4)式は、(2)や(3)より精度よく計算できるのかについては、尤もらしい説明をすることはできなくはない。
というのは、との中点をと表すことにし、それに対応するyの値をで表し、
③と④は、それぞれ、
となる。
⑤と⑥を足すと、が消えて、(4)式になる。
③は、Δxより小さいΔx/2という分割幅で仮想のの値を求めるいることを意味し、④式はこうして求められたを元にΔxよりも小さい分割幅でを求めることを意味している。
分割幅を小さくすると一般に計算精度が向上する。
また、仮想の点とそれに対応するyの値を考慮に入れると、(4)の左辺のはにおける中心差分とみなすこともできる。
したがって、(4)は、(2)や(3)よりも高精度に計算できる・・・。
感覚的にこう理解すればいいのではないか。
これにテーラー展開の話を交え、「(2)や(3)の誤差の程度がO(h²)であるのに対し(4)式はO(h³)で修正オイラー法、2次のルンゲ・クッタと誤差の程度が同オーダーである」なんて尤もらしい説明もできるけれど、かなり胡散臭い話だから、ここではしないにゃ。
(2)、(3)、(4)式は、0≦φ≦1である重みφを使うと、
と、1つの式で表すことができる。
φ=0のときは陽解法、φ=1/2のときは半陰解法、φ=1のときは純陰解法と分類分けすることも可能。
そして、プログラムを作ってこの問題を解く場合、0≦φ≦1のすべてのφについて解けるものを作った方がいいにゃ。それが賢い方法だにゃ。
天才と梅毒…シューベルトもゴッホもニーチェも、神を感じる傑作創作時は梅毒だった Bisiness Journal [今日のクラシック]
天才と梅毒…シューベルトもゴッホもニーチェも、神を感じる傑作創作時は梅毒だった
●独特な世界観を生みだしたシューベルト
さて、コロンブスの時代から約300年後の1800年代ヨーロッパ。あるひとりの作曲家が梅毒にかかりました。彼の名前は「シューベルト」。歌曲『魔王』や『野ばら』『未完成交響曲』で有名な作曲家です。彼が梅毒に感染したのは1818年といわれていますが、潜伏期があるので、実際に梅毒の診断を受けたのは、1822年です。
(中略)
僕は、小学生の時に初めて聴いた時から、そして実際に指揮するようになってからも、毎回、この交響曲に接するたびに、自分が不思議な感覚を持つことに気づいていました。なんだか精神が浮遊しているような、幻の世界の中に音が鳴っているような不思議な感覚です。これは、それ以前のシューベルト作品では感じられない不可思議な感覚であり、『未完成交響曲』最大の魅力でもあります。
あっ、そうですか・・・。
梅毒になる、はるか以前から、この作曲家はぶっ飛んでいて凡人の理解を寄せ付けないんだケロ。そもそも最初から常識がまったく通用しない得意な存在なんだから、晩年間近にかかった梅毒とこの作曲家の天才ぶりを結びつけるのはあまりに安易だと思うね。説得力がなさすぎるにゃ。