この記事では、簡単に私が実際に計算を行った例をメモにしています。
インストールは簡単です。ウェブ上に大量に情報があります。OSはwindows,mac,linuxいづれもOKです。なお本家、開発元はフランス国立情報研究所INRIAです。
さて、数値積分の方法です。特段プログラミングは必要ありません。組み込み関数が用意されています。ただ、サイラボのヘルプをみてもとてもわかりにくいですので以下は参考になるはずです。
使う関数は、3種類ありますが、とりあえず簡単で応用がききそうなのは
integrate()
という組込み関数です。
4つ引数があり、順番に、自分で定義した関数、変数名、積分区間の下端、上端、となります。
関数の定義には変数や定数を自分で好きに設定できます。関数はサブルーチン的なものではなく、数式的な関数として扱えます。
なお、第一、二引数はアポストロフィで囲む必要があります。注意してください。
(' または " いづれでも大丈夫のようです)
以下に、私が実際にサイラボのコンソールに打ち込んで試したコマンドラインを載せました。
(この計算は太陽から出ている輻射エネルギーのうち、波長が360nmから800nmのエネルギー総量を計算したものです。プランクの法則をもちいた計算を行っています。)
計算に先立ちこれらの定数は先に打ち込んでおきます;
c=2.9979e+8;
h=6.6261e-34;
k=1.3806e-23;
-->T=6000;
-->integrate('2.0*%pi*h*c^2/x^5/(exp(h*c/x/k/T)-1.0)','x',0.36e-6,0.8e-6)
ans =
3.776D+07
なお計算の精度については、ステファンボルツマン定数を計算してみましたが、
-->T=1
T =
1.000D+00
-->integrate('2.0*%pi*h*c^2/x^5/(exp(h*c/x/k/T)-1.0)','x',0,0.02)
ans =
5.588D-08
のようになりました。
解析的な値は(5.670D-08)ですので、相対誤差は1.5%程度あります。
これ以上積分区間を広げるとエラーになるので、この程度が限界と思われます。高い精度が必要な場合はやはりC言語などで計算するのがよいようです。まぁでも楽してここまでの結果が得られるのですから間違いなく便利です。
最後に、
コマンドプロンプトに一行一行コマンドを打ち込んで使うのですが、めんどくさいので、スクリプトを作ると便利です。このためのエディタ(SciNote)がデフォルトで用意されており、ボタンひとつで起動できます(画面左上端の「ファイル」のすぐしたのボタン)。このエディタ上で実行ボタン(白い三角形のマーク)を押すとサイラボ本体で実行されるようになっています。
なお、以下の本が参考になります。大学の図書館で借りて読んでみましたが、内容が軽いので一冊目に向いています。数学の簡単な説明ものっていますので、数値計算に苦手意識を持って言いるひとでも読みきれると思います。リファレンスのような拾い読みでも使いやすいと構成です。ネットにも情報がありますが、分散しており若干不足気味です。数時間で体系的な理解ができるのでお勧めします。