SSブログ

ネムネコは、隠さないにゃ [ひとこと言わねば]

知識を商売、武器とするものは、その武器を失わないように、自分を偉く見せるために、その知識の最も重要、核心的なところはを隠すのが賢明。
なのですが、ネムネコは隠さないにゃ。数値計算の記事で使用したプログラムや表計算ソフトのスプレッドシートは全て公開するにゃ。
そして、このポリシーに従って、今日もスプレッドシートを2つ公開したにゃ。
オモチャみたいなものですが、すこしでもお前らの便益につながるように公開したにゃ。

微分積分などの難しい計算をすることなく、表計算ソフトや電卓などを使うだけで、微分方程式の初期値問題を解けてしまう、というところが味噌なんだにゃ。そして、解くためのスプレッドシートを自分で簡単に作れてしまうというのが最も重要なところ。

自分で作らなくても、微分方程式と初期値などを入力するだけで、数値解を求めてくれるサイトはあるよ。たとえば、計算機メーカーのカシオの高精度(計算)サイトがそれだ。
https://goo.gl/eTqu83


のルンゲクッタ法(4次)を選択すると次のような画面が現れる。


と入力し、計算ボタンをクリックすれば、次のような計算結果を返してくれる。


非常に便利なサイトだ。
でも、こんなものをいくら利用したところで、こんなものは数値計算の勉強には役に立たない。ブラックボックス化されているので、実際にどのように計算しているのかがわからないからだにゃ。
数値計算の勉強をするときに最も重要なことは、最終的な計算結果ではなく、計算法の仕組みを理解し、そして、その計算法を使って計算できるようになることだから。

てなわけで、どれもこれもオモチャみたいなものではあるが、実際にどのように計算しているかがわかるように、スプレッドシートやプログラムを公開しているんだケロよ。


ウソだにゃ。


このためにやっているにゃ。


このブログは、ネムネコを称えるためにあるんだから。


欲を言えば、最初の1、2行目くらいまでは、表計算フフとを使わずに、電卓を使って手で計算して欲しい。すると、計算の仕組みがよくわかるにゃ。このひと手間を惜しんではないけない。


だって、コンピュータが生み出される前は、こういう計算はみんな手で計算していたんだから。手で計算することを前提に作られた方法だから、自分の手を使った計算との相性が抜群にいいんだにゃ。
ネムネコの手は猫の手なので猫パンチを繰り出すのには適しているけれど、手計算には向かないから、仕方なくコンピュータを使って計算するけれど(^^)


nice!(1)  コメント(0) 
共通テーマ:音楽

今日のアニソン、「七星のスバル」から『360°星のオーケストラ』 [今日のアニソン]

今日のアニソンは、アニメ「七星のスバル」から『360°星のオーケストラ』です。


最近、新作アニメを見ていないから、これがどのような作品なのかわからないにゃ。


世界的に人気のあったMMORPGがどうたらこうたらというアニメらしいけれど、この手の作品はもう見飽きたにゃ。


このアニメに迫る内容ならば見たいと思うけれど、どうせ、水戸黄門と同じようなマンネリ作品に決まっているにゃ。だから、見る気にはならないケロよ。


nice!(2)  コメント(0) 
共通テーマ:音楽

課題の解答例 [数値解析]

課題の解答例

 

 

sasuga-nemunekodany.png課題 中心差分を用いて次の微分方程式の初期値問題を解く方法を考えなさい。

  

その方法を用い、Δx=0.1としてx=1まで計算し、厳密解と数値解とを比較しなさい。

【解答例】

  

の両辺を微分すると、

  

①式を用いて②式からを消去すると、

  

①式がx=0においても成立するとすると、

  

したがって、この初期値問題は

  

となり、

差分法を用いた微分方程式の初期値問題の解法の計算結果を流用できる\(^o^)

(解答例終)

 

一階の微分方程式のままだと中心差分はうまく使えないので、中心差分を使えるように、この微分方程式を微分し2階の微分方程式にすればいいと言うわけなんですよ(^^)

 

shusei-Euler-hikaku-graph.png修正オイラー法の計算結果は右図のとおり。

修正オイラー方を用いたほうが精度よく計算できる。

 

修正オイラー法の誤差の挙動が面白いね。

x=1.8の付近で最小値をとったあと、誤差が上昇しているからね。

何故、こうなるかについてはわからない(^^

 

これで終わってもいいのですが、クランク・ニコルソン法をヒントに、差分法を用いた一階常微分方程式の初期値問題の新しい(?)解法を思いついたので紹介するにゃ。

 

微分方程式

  

を前進差分を用いて近似すると、

  

後退差分を用いて近似すると、

  

(1)と(2)を足すと、

  

これをについて解くと、

  

という漸化式が得られる。

x₀=0におけるyの値y₀=0を計算の起点にし、漸化式(4)を用いて前進的に微分方程式(1)の数値解を求めることができる。

なお、

   

ね。

 

この解法の誤差の程度はたぶんO(h³)で、修正オイラー法や2次のルンゲ・法と同程度の誤差をもっているものと推定される。

(4)式を用いて計算した結果は次のとおり。

 

 

誤差の点で修正オイラー法に劣るものの、グラフにしてしまえば厳密解と新しい数値解は重なっており、良好な結果が得られていることがわかる。

また、2階常微分方程式直して解いたものの最大誤差が0.0047746874であり、新しい解法のそれは0.0013790814と精度的にも向上していることがわかる。

 

数値解、厳密解と、その誤差の挙動が一致しているあたり、なかなかオシャレだと思うにゃ。素性がいいね、この解法は。

 

この記事の計算で使用したスプレッドシートはコチラ。

 

オイラー法、修正オイラー法との比較

 エクセル版

https://docs.google.com/spreadsheets/d/e/2PACX-1vT1j7vf2wW2HO3eslnAn62vPcaK6xTAk8aURX-l9uNftI5eyZ_iNQG11KTv6awSo94xASAi77uiok5l/pub?output=xlsx

 Web版

https://docs.google.com/spreadsheets/d/e/2PACX-1vT1j7vf2wW2HO3eslnAn62vPcaK6xTAk8aURX-l9uNftI5eyZ_iNQG11KTv6awSo94xASAi77uiok5l/pubhtml

 

新しい解法(?)

 エクセル版

https://docs.google.com/spreadsheets/d/e/2PACX-1vQ1vdBDctxnH7HcVeb2xkI3_rBS5Ao5Ul1ahJeAHqewHKWATImRg2bMyEWUPaAARCbimoU6AbdjuE8o/pub?output=xlsx

 Web版

https://docs.google.com/spreadsheets/d/e/2PACX-1vQ1vdBDctxnH7HcVeb2xkI3_rBS5Ao5Ul1ahJeAHqewHKWATImRg2bMyEWUPaAARCbimoU6AbdjuE8o/pubhtml

 


nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。