1-1 起動と終了

起動

PrimMathを起動するには次の2種類の方法があります。 それぞれ設定されるパスが異なります。

(1)デスクトップのショートカットやWindowsメニューから起動した場合
パスにはPrimMath.exeが置かれているフォルダが設定されます。
(2)スクリプトファイルやデータファイルを実行した場合
パスにはファイルが置かれているフォルダが設定されます。

パスはファイル指定でフルパスを指定しない場合の基点になります。 また、ファイルダイアログの最初のフォルダにもなります。

終了

PrimMathを終了するには次の3種類の方法があります。

(1)メニューから終了
[メイン・メニュー]→[アプリケーション]→[終了]
(2)ウィンドウを閉じる
メイン・ウィンドウ右上隅の×をクリック
(3)スクリプトで終了
コマンド・ウィンドウで「:exit」を実行

いずれの場合も終了を確認するダイアログが表示されます。

スクリプトファイル、テーブルデータ、ログリストの自動保存はありません。 終了前に必要なものは保存して下さい。

終了時に、各ウィンドウの位置は保存されます。

処理の中断

処理の実行中にメイン・ウィンドウ右上の [中断]ボタンをクリックすると処理を中断することが出来ます。

1-2 計算と変数

計算

コマンド・ウィンドウに式を入力すると計算します。

1.23+4.56*7.89^(0.12-0.03)
>  6.72163637440404

exp(π*ι)
>  -1

変数

変数名には英数字、_(アンダースコア)、漢字、ひらがな、カタカナが使えます。

平均値 = (1.2+2.3+3.4)/3
!  平均値 は新規変数です。
>  2.3

平均値^2
!  平均値=2.3; 
>  5.29

変数名の前に数字が付くと省略乗算になります。

var2 = 2; 
var = 3;

var2
!  var2=2; 
>  2
2var
!  var=3; 
>  6

データ・ウィンドウの値をD[x][y]として、2次元配列の変数のように扱えます。

D[0][i+1] = 5
!  i=2; 
>  5

2*D[0][3]
>  10

数式自然表記

数式を自然表記する機能があります。
[コマンド・ウィンドウ]→[ツール]→[数式自然表記]

例えば、次のように表示します。

1/sqrt 2π * exp(-x^2/2)

PrimMathExpression1

一行数式は、書くときには便利ですが、後で見たときに分かり難かったりしますので、 そのようなときに活用できます。

2-1 y = f(x) のグラフ

y = x/(1+x^2)

[コマンド・ウィンドウ]→[編集]→[書式入力]→[2Dグラフ]を選んで、次のように入力します。

Dialog

[始点]と[終点]の[自動]にチェックしておくことがポイントです。

実行すると次のようなグラフがグラフ・ウィンドウに表示されます。

Graph

最初の表示領域はX軸、Y軸とも±1です。 グラフの全体の形が見たいときには、グラフ・ウィンドウにクリックして フォーカスをグラフ・ウィンドウに移してから、 「W」キーや「X」キー、「Y」キーを押してスケールを拡大します。 また、縮小するには「Shift+W」キーや「Shift+X」キー、「Shift+Y」キーを押します。 グラフの一部を拡大したいときには、「Ctrl+W」を押してマウスで領域を指定します。

ここで、[書式入力]で[始点]と[終点]に[自動]を設定しておくと、 グラフは表示領域に合わせて表示されます。 [始点]と[終点]に[自動]を設定できるのは、[X=] もしくは[Y=]に[変数]の値が指定されたときです。

上のグラフのスケールを適当に調整すると次のように全体の形が分かります。

Graph

2-2 x = f(t), y = f(t) のグラフ

x = (8+cos 8t) cos t, y = (8+cos 8t) sin t

[コマンド・ウィンドウ]→[編集]→[書式入力]→[2Dグラフ]を選んで、次のように入力します。

Dialog

[X=]もしくは[Y=]が[変数]の値ではないので、[始点]と[終点]には値を設定します。

実行すると、表示領域が合ってないために グラフ・ウィンドウには何も表示されないかもしれません。 こういうときは、グラフ・ウィンドウにクリックして フォーカスをグラフ・ウィンドウに移してから、「F」キーを押します。 「F」キーは、[始点]と[終点]に[自動]を設定していないときに、 グラフの表示領域をグラフのサイズに合わせます。

次のグラフは「F」キーを押したあとに「W」キーを押して適当な大きさに表示したものです。

Graph

2-3 f(x, y) = 0 のグラフ

x^3 - 3*x*y + y^3 = 0

[コマンド・ウィンドウ]→[編集]→[書式入力]→[2D条件グラフ]を選んで、 次のように入力します。

Dialog

実行すると、次のようなグラフが得られます。

Graph

2-4 データ・ウィンドウのグラフ

まず、データを用意します。 データ・ウィンドウに手入力で編集するか、CSV形式などのファイルを読み込みます。

Data

[コマンド・ウィンドウ]→[編集]→[書式入力]→[2Dグラフ]を選んで、次のように入力します。

Doalog

指定した先頭セルが文字列の場合、軸の名前が設定されます。

ここでも、グラフ・ウィンドウにクリックしてフォーカスをグラフ・ウィンドウに移してから、 「F」キーを押すと全体が表示されます。

次のグラフは縦軸を調整してあります。

Graph

2-5 グラフの計測

計測したいプロットを選択して、[グラフ・ウィンドウ]→[ツール]→[計測]の ダイアログから各種計測が行えます。

Dialog

Graph

次の項目が計測できます。

POINTS_AT_X指定した x の値から該当する点の情報を求めます。
POINTS_AT_Y指定した y の値から該当する点の情報を求めます。
POINTS_AT_dY/dX指定した dy/dx の値から該当する点の情報を求めます。
POINTS_OF_INTERSECTION指定したプロット G[gn][pn] との交点の情報を求めます。
POINTS_OF_PY_PEAKY の正のピーク点の情報を求めます。
POINTS_OF_NY_PEAKY の負のピーク点の情報を求めます。
POINTS_OF_PX_PEAKX の正のピーク点の情報を求めます。
POINTS_OF_NX_PEAKX の負のピーク点の情報を求めます。
INTERVAL_OF_X指定した x1 から x2 までの区間の情報を求めます。
INTERVAL_OF_Y指定した y1 から y2 までの区間の情報を求めます。

点の情報

XX 座標の値。
YY 座標の値。
{媒介変数名}媒介変数があればその値。
dY/dX1階微分の値。
d2Y/dX22階微分の値。

区間の情報

Condition区間の条件。
YminY 座標の最小値。
YmaxY 座標の最大値。
YavgY 座標の平均値。
SYdX Y 座標の積分値。
BaseLength区間内に値が存在する範囲の合計。
PlotLength区間内のプロットの全長。

求まる値の精度はプロットの間隔に依存します。

2-6 グラフの演算

演算したいプロットを選択して、 [グラフ・ウィンドウ]→[ツール]→[演算]のダイアログから各種演算が行えます。

Dialog

Graph

x軸と y軸で独立に演算が行えます。

まず、次の変換ができます。

ln y, ln x 対数にします。
exp y, exp x 指数にします。
dy/dx, dx/dy 微分します。
∫ydx, ∫xdy プロットの始点から積分します。

次に、以下の演算ができます。

定数もしくは他のプロットと加算します。
定数もしくは他のプロットと減算します。
× 定数もしくは他のプロットと乗算します。
÷ 定数もしくは他のプロットと割算します。
定数もしくは他のプロットと累乗します。

2-7 グラフの変換

変換したいプロットを選択して、 [グラフ・ウィンドウ]→[ツール]→[変換]のダイアログから変換が行えます。

次の例は、放物線を 45°回転させる変換を行ったものです。

Dialog

Graph

2-8 グラフのモデル化

モデル化したいプロットを選択して、 [グラフ・ウィンドウ]→[ツール]→[モデル化]のダイアログから実行できます。

次の例は、5次式でモデル化した結果です。

Dialog

Graph

2-9 フーリエ変換

フーリエ変換したいプロットを選択して、 [グラフ・ウィンドウ]→[ツール]→[フーリエ変換]のダイアログからフーリエ変換が行えます。

Graph

窓関数には矩形窓かハニング窓が選択できます。 結果表示グラフに G[-1] を指定すると新規グラフになります。

Dialog

Graph

2-10 フィルタ

フィルタを掛けたいプロットを選択して、 [グラフ・ウィンドウ]→[ツール]→[フィルタ]のダイアログからフィルタ処理が行えます。

Graph

ローパス・フィルタ

上のプロットにローパスフィルタを掛けます。

Dialog

Graph

ハイパス・フィルタ

同様に、上のプロットにハイパスフィルタを掛けます。

Dialog

Graph

2-11 複数グラフ

複数のグラフをグラフ・ウィンドウに表示することができます。

[グラフ・ウィンドウ]→[表示]→[グラフ・レイアウト] のダイアログからグラフの配置を設定できます。次の例は上下に2個のグラフを表示します。

Dialog

[グラフ・ウィンドウ]→[編集]→[グラフの設定]のダイアログから、 グラフ間での[スケールをリンク]、[フレームの表示]が設定できます。

次の例は他のグラフのフレームを表示します。

Dialog

プロットを別のグラフにコピーして拡大すると、その表示領域が示されます。

Graph

2-12 クリップボード

グラフを、Microsoft Office などに貼り付けるには、 [グラフ・ウィンドウ]→[編集]→[グラフ全体を図形としてコピー]を実行します。 貼り付けたいアプリケーションで「貼り付け」を実行します。

貼り付けたグラフの[図の編集]も行えます。


[グラフ・ウィンドウ]→[ファイル]→[グラフの画像保存]で、 拡張メタファイル(emf)形式での保存ができます。 そのファイルをアプリケーションに挿入することでも、グラフの[図の編集]が行えます。

3-1 方程式の解

[コマンド・ウィンドウ]→[編集]→[書式入力]→[方程式]を選択します。

書き方の例を次に示します。

例: 連立方程式 x^3 = y, x + 1 = y の解

Dialog

これを実行すると、コマンド・ウィンドウに結果が表示されます。

>  x = 1.324717957
>  y = 2.324717957

参考までに方程式のグラフを次に示します。

Graph

解が複数ある場合には、初期値によって求まる解が異なります。 グラフを表示してみて、解の近傍の値に変数を設定して実行することで、 それぞれの解が求められます。 ただし、必ずしも近傍の解が求まるとは限りませんので、 初期値を変えて繰り返す必要があるかもしれません。

3-2 数式の最適化

[コマンド・ウィンドウ]→[編集]→[書式入力]→[最適化]を選択します。

最適化は数式の値を最小もしくは最大にする変数の値を求めます。 書き方の例を次に示します。

例: (x+2)^2 + (y-3)^2 の最小値

Dialog

これを実行すると、コマンド・ウィンドウに結果が表示されます。

>  x = -2
>  y = 3
>  0

最後の値 0 が数式を最小化したときの値です。

3-3 微分・積分

[コマンド・ウィンドウ]→[編集]→[書式入力]→[微積分]を選択します。

1階微分

書き方の例を次に示します。

例: x^2 + 3x - 5 における x = 1.5 の微分係数

Dialog

これを実行すると、コマンド・ウィンドウに結果が表示されます。

!  ∂f/∂Im: sAns
>  6
!  ∂f/∂Re: Ans
>  6

解は虚数軸の微分値と実数軸の微分値を表示します。解析的であれば両方の値は一致します。

2階微分

2回微分も同様です。先ほどの例で実行すると、コマンド・ウィンドウに次のように結果が表示されます。

!  ∂2f/∂Im2: sAns
>  2
!  ∂2f/∂Re2: Ans
>  2

積分

書き方の例を次に示します。

例: x^2 + 3x - 5 における x = 0 から 1 までの定積分

Dialog

これを実行すると、コマンド・ウィンドウに結果が表示されます。

>  -3.166666667

3-4 常微分方程式

[コマンド・ウィンドウ]→[編集]→[書式入力]→[常微分方程式]を選択します。

Expr

例: y'' = -0.4y' - y + 1; 初期値: y = 0, y' = 0

Dialog

実行すると、グラフ・ウィンドウに次の結果が表示されます。

Graph

Dialog

例: x'' = -x/((x^2+y^2)^1.5), y'' = -y/((x^2+y^2)^1.5); 初期値: (x, y) = (1, -2), (x', y') = (0, 1)

Dialog

実行すると、グラフ・ウィンドウに次の結果が表示されます。

Graph

4-1 ベクトルと行列の範囲

ベクトル

次のベクトルを指定するときは V[0][1] です。

Dialog

指定したセルから下方向に連続した数値がベクトルになります。 つまり、ベクトルの区切りには空白セルか文字列のセルを入れる必要があります。

行列

次の行列を指定するときは M[0][1] です。

Dialog

指定したセルから下方向に連続した数値の個数の行と 指定したセルから右方向に連続した数値の個数の列をもつ行列になります。

4-2 逆行列と固有値

逆行列

[コマンド・ウィンドウ]→[編集]→[書式入力]→[行列/ベクトル]から逆行列が求められます。

次に例を示します。

Dialog

次のように、[行列×行列]を実行すると、逆行列の確認ができます。

Dialog

結果を以下に示します。

Dialog

固有値

[コマンド・ウィンドウ]→[編集]→[書式入力]→[行列/ベクトル]から 固有値と固有ベクトルが求められます。

次に例を示します。

Dialog

Dialog

結果を以下に示します。

Dialog

4-3 連立一次方程式の解

[コマンド・ウィンドウ]→[編集]→[書式入力]→[行列/ベクトル] から行列形式の連立一次方程式の解が求められます。

次に例を示します。

Dialog

次のように、[行列×ベクトル]を実行すると確認ができます。

Dialog

結果を以下に示します。

Dialog

4-4 ベクトル、行列の演算

ベクトルの演算

スカラとベクトルの乗算、ベクトルとベクトルの加減算が行えます。

V[2][1] = 2 * V[0][1];
V[4][1] = V[0][1] + V[2][1];

Dialog

V[0][1] のベクトルを 2倍して、加算しています。

行列の演算

スカラと行列の乗算、行列と行列の乗算、加減算が行えます。

M[0][5] = 2 * M[0][1];
M[0][9] = M[0][1] + M[0][5];

Dialog

M[0][1] の行列を 2倍して、加算しています。

5-1 一変数統計

[コマンド・ウィンドウ]→[編集]→[書式入力]→[統計計算]から 一変数の各種統計計算が実行できます。

Dialog

5-2 多変量解析

重回帰分析

[コマンド・ウィンドウ]→[編集]→[書式入力]→[重回帰分析]から重回帰分析を実行できます。

次に例を示します。

Dialog

結果の一部を以下に示します。

Dialog

共分散行列と相関係数行列、偏相関行列

[コマンド・ウィンドウ]→[編集]→[書式入力]→[多変量解析]から、 共分散行列と相関係数行列、偏相関行列を求めることができます。

次に例を示します。

Dialog

結果の一部を以下に示します。

Dialog

主成分分析

[コマンド・ウィンドウ]→[編集]→[書式入力]→[多変量解析]から、 主成分分析を実行することができます。

次に例を示します。

Dialog

結果の一部を以下に示します。

Dialog

6-1 スクリプトの概要

スクリプトの特徴

PrimMathのスクリプトは、コマンド毎に引数のタイプが異なり、 ブロックの書式もコマンドに固有です。 これは、できるだけ直感的に入力ができるようにしています。
次に例を示します。

:for i, 0, 5, 1, AS
{
	:print STD, ::format["i = %d", i]
}

:for コマンドの1番目の引数は変数名を指定します。 この変数に、2番目の数値から3番目の数値まで、 4番目の数値を加算して代入してブロックを実行します。 5番目の引数は選択肢であり、ここではASかGSを指定できます。 ASの場合は4番目の数値を加算、GSの場合は4番目の数値を乗算していきます。 このように、引数のタイプはコマンド固有に決められています。

コマンドウィンドウでコマンド名を入力した後にスペースを打つと 引数のリストがポップアップされますので、コマンドの引数を一々調べる必要はありません。

Dialog

最後のほうの引数に"="が付いていますが、これはこの引数が省略可能であることを示します。

次にブロックの書式が決まっているコマンドの例を示します。

:foreach  a, -2, -1, -0.5, 0.5, 1, 2
{
	:draw2DGraphFunc x, AUTO, AUTO, 1001
	[
		X = x
		Y = a*x^2
	]
}

ここで、:draw2DGraphFunc コマンドのブロックは1行目が X = f (var)、 2行目が Y = f (var)、という記述に決まっています。 ここでの等号は代入演算子ではありません。
引数リストは次のように表示されます。

Dialog

コマンドにカーソルがあるときに F1キーを押すと、 そのコマンドのヘルプが表示されます。