それにしてもこれはもう少し。。。
前回シュレディンガー方程式をルンゲクッタで解くという記事をかいた。調和振動子の(偶関数)第一励起状態のエネルギー固有値がe=2.541(正確な値は2.5)と出たが、この精度は少し改善したいものだ。
誤差はルンゲ・クッタからのものだと思いプログラムの詳細なチェックをしなかったが、検討すべきだったと思い始めている。そこでマスマティカのNDSolveの精度を調べてみたが、そんなに悪くないようだ。
mathematicaのヘルプでNDSolveの箇所を読むと、いろいろとoptionが用意されている。最も有効だと思えるのはMethodで、単純に丸め誤差をなくすためには、WorkingPrecisionを上げるだけで良いかもしれない。ヘルプには各ルンゲクッタなどの公式も列挙されており、mathematicaのヘルプ・メニューって相当充実しているんだなと実感した。そういえば、先日 Ver 6.0のmathematicaを見せてもらった。
相当雰囲気変わったなあという印象だ。私が使っているのはVer 4.2だったかな。そろそろ新しいものへグレードアップしたい。
話を元にもどして、精度をあげるために、optionをいじってみよう。後は波動関数の制御をどこで行うか、これも検討すべきだったか。mathematicaのルンゲ・クッタと比較するために、自分でNumerov法のプログラムも書いたのだが,mathematicaに適わないだろう。大体mathematicaに対抗するためはadaptiveにしないといけないだろうし、そうなると一日くらいつぶれてしまいそうだ。今は仕事が忙しいので、これは暇ができたときの課題としておこう。
誤差はルンゲ・クッタからのものだと思いプログラムの詳細なチェックをしなかったが、検討すべきだったと思い始めている。そこでマスマティカのNDSolveの精度を調べてみたが、そんなに悪くないようだ。
mathematicaのヘルプでNDSolveの箇所を読むと、いろいろとoptionが用意されている。最も有効だと思えるのはMethodで、単純に丸め誤差をなくすためには、WorkingPrecisionを上げるだけで良いかもしれない。ヘルプには各ルンゲクッタなどの公式も列挙されており、mathematicaのヘルプ・メニューって相当充実しているんだなと実感した。そういえば、先日 Ver 6.0のmathematicaを見せてもらった。
相当雰囲気変わったなあという印象だ。私が使っているのはVer 4.2だったかな。そろそろ新しいものへグレードアップしたい。
話を元にもどして、精度をあげるために、optionをいじってみよう。後は波動関数の制御をどこで行うか、これも検討すべきだったか。mathematicaのルンゲ・クッタと比較するために、自分でNumerov法のプログラムも書いたのだが,mathematicaに適わないだろう。大体mathematicaに対抗するためはadaptiveにしないといけないだろうし、そうなると一日くらいつぶれてしまいそうだ。今は仕事が忙しいので、これは暇ができたときの課題としておこう。
コメント
コメントの投稿
トラックバック
http://letsphysics.blog17.fc2.com/tb.php/319-024d1b04
