ここでは、RINPn の特徴的な機能の一つである、スクリプトの実行を行ってみましょう!
RINPn では、手続き的な自動計算やアルゴリズム的な計算、またはその他の複雑な処理を行いたい場合のために、 「 Vnano 」 という言語で記述したスクリプト(簡易プログラム)を実行する事もできます。
Vnano は、C言語系の文法を持つ、ソフトウェア内組み込み用のスクリプト言語&エンジンです。 具体的な書き方については、Vnano 公式サイト内の 「 言語としてのVnano 」 のページをご参照ください。 Vnano のスクリプトを作成するには、好きなエディタで拡張子「 .vnano 」で終わる名前のテキストファイルを作成し、その中にコードを書くだけでOKです。 文字コードは標準では UTF-8 で読まれます。
記述例として、RINPn のフォルダ直下に以下のスクリプトファイル「 Example.vnano 」が同梱されています。 このスクリプトは、cos(x) の 0 から 1 までの数値積分値を計算する内容になっています:
上記コード内容の詳しい解説については、こちらをご参照ください: https://www.vcssl.org/ja-jp/code/archive/0001/7800-vnano-integral-output/
GUIモードでスクリプトを実行するには、次の2通りの方法があります:
どちらでも好みの方法で実行してください。
例として、上で見たサンプルスクリプト「 Example.vnano 」を実行してみましょう:
このように、「 OUTPUT 」欄にスクリプトの出力値が表示されます。 この出力値「 0.8414709848 」は、cos(x) の 0 から 1 までの積分の理論値である sin(1) とよく一致しており、 サンプルスクリプトの内容が正しく解釈・実行された事がわかります。
なお、Microsoft® Windows® をご使用の場合は、 Shiftキーを押しながらスクリプトファイルを右クリックすると、メニューからパスをコピーできるので、 RINPn の INPUT 欄にスクリプトのパスを入力する際に便利です。
CUIモードでも、計算式の代わりにスクリプトファイルを指定する事で、そのスクリプトを実行できます。
コマンドライン入力端末のカレントディレクトリ内にあるスクリプトファイルは、 以下のように、rinpn コマンドの引数にファイル名のみを指定して実行可能です:
また、カレントディレクトリを基準とする相対パス でスクリプトファイルを指定する事もできます。 これは、カレントディレクトリ内には無いものの、 近い場所(すぐ上や下の階層など)にあるスクリプトファイルを実行したい場合に便利です:
加えて、以下のように絶対パスでスクリプトファイルを指定する事も可能です:
以上の通り、CUIモードでは3通りの方法でスクリプトファイルの指定が可能です。 場面に応じて、便利に思える指定方法を使い分けてください。
ところで、スクリプトの実行処理が重い場合は、 「 Settings.txt 」内で「 acceleratorOptimizationLevel 」として設定されている最適化レベルの値を上げると、処理が速くなります。
最適化レベルを最低の 0 に設定しても、恐らく一般的な電卓の用途としては十分な性能が得られるため、標準では安定性を優先し、最適化レベルは 0 に設定されています。 ただ、RINPN で数値計算プログラムを頻繁に実行される方には、標準の最適化レベルではややパフォーマンスが不足気味かもしれません。
スクリプトは、もちろん自分で書くこともできますが、VCSSL/Vnano公式サイト内の、下記コードアーカイブでも配信しています:
コード内容の解説記事も掲載していますので、別のスクリプトを書く際の参考や、改造/流用のベースとしても使えます。ぜひご活用ください!
ローレンツ方程式を数値的に解くスクリプト |
|
|
ローレンツ方程式を4次ルンゲ=クッタ法によって解き、グラフ描画用のデータを出力するスクリプトです。 |
積分値のグラフ描画用データを出力するスクリプト |
|
|
数値的に積分を行い、結果の関数をグラフに描くためのデータを出力するスクリプトです。 |
積分値を求めるスクリプト (数値積分) |
|
|
矩形法/台形法/シンプソン法を用いて、積分の値を数値的に求めるスクリプトです。 |