お知らせ
2025.03.12 「v60.4.0 リリース」 New!
- ヒアドキュメント <<EOS ... EOS
- X-Z ⇔ Y-Z の切り替えをボタン
2025.02.28 「v60.3.0 リリース」 New!
- 行列とテーブルの生成関数 ::matrix、::table
- グラフにゼロ基点目盛 :setGraphAxisZeroBased
- :dir でのウィンドウ位置指定は (PIXEL|PERCENT) が指定可能
- チュートリアルのフォルダを新規作成
2025.02.14 「v60.2.0 リリース」 New!
- エディタウィンドウの制御コマンド追加 :wndEditorOpenFile、:wndEditorOpenText、:wndEditorClose、:wndEditorSelectText
- 最後にオープンしたウィンドウの番号 @wnd
- アプリモードでのデータ・ウィンドウのマウスイベント設定コマンド追加 :appDataMouse
- データウィンドウのセルの文字列をデータマークに変換するコマンド追加 :setDataCellStrToMark
2025.02.09 「v60.1.0 リリース」 New!
- 画像の輪郭を取得する関数を追加 ::imgcontour
- ポイントを囲む矩形を求める関数を追加 ::ptrect
- 画像の変換行列を求める関数を追加 ::pttransmat
- 画像を変換する関数を追加 ::imgwarp
- テーブルの行を生成する関数を追加 ::line_tbl
- 2Dグラフの軸を反転するコマンドを追加 :setGraphAxisFlip
- グラフ図形に折線・多角形を描画するコマンドを追加 :setGraphLines、:setGraphPolygon
- 拡張ライブラリの ImageFile の画像データをテーブルから行列 m.image に変更
- :setGraphBeziers、:setGraphClosedBeziers のポイントをベクトルから行列 t.point に変更
2025.02.02 「v60.0.0 リリース」 New!
- PCデバイスによる画像入力コマンドを追加 :deviceImageInput
- PCデバイスのプロパティ値を取得するコマンドを追加 :getValDeviceProp
- コマンドの参照変数をできるだけ内部変数に変更
- コマンドの参照変数が、コマンドにより出力されるかユーザが入力するか、 内部変数か外部変数かをヘルプとポップアップヒントに明記
2025.01.17 「v59.0.0 リリース」 New!
- PCデバイスによるサウンド入出力コマンドを追加
:deviceSoundInput、:deviceSoundOutput
2025.01.05 「v58.3.0 リリース」 New!
- サンプルに「政治・経済」のカテゴリを追加
- グラフマージンの不具合修正
2024.12.15 「v58.2.1 リリース」 New!
- アプリ二重起動の不具合を修正
2024.12.01 「v58.2.0 リリース」 New!
- 3Dグラフの中心線の表示
- :draw2DGraphVectorFunc、:draw3DGraphVectorFunc にベクトル式を可能に
2024.11.26 「v58.1.0 リリース」 New!
- :startApp を :appStart に、:endApp を :appEnd に名称変更
- アプリケーションモードでのマウスイベントコマンド :appGraphMouse
- アプリケーションモードでのタイマーイベントコマンド :appIntervalTimer
2024.11.17 「v58.0.1 リリース」 New!
- 3Dグラフ描画を高速化
2024.11.11 「v58.0.0 リリース」 New!
- 並列処理コマンドを試験的に追加 :parallel
- 並列処理のためにコア部分を大幅に改造
- サンプルの整理
2024.10.11 「v57.0.0 リリース」 New!
- アプリモードを新規導入
- アプリモード関連コマンドを追加
:startApp、:endApp、:appWindowPos、:setAppCtrl - コントロールの追加
:checkCtrl、:listCtrl、:editCtrl、:textCtrl - 最後に作成したコントロールの番号を保持する特殊変数を追加 @ctrl
- :dir コマンドにアプリコントロールの位置指定を追加
- ディスプレイの情報を取得するコマンドを追加 :display
- コマンドウィンドウで選択部分を実行するメニュー追加 Alt+Enter
2024.09.27 「v56.3.0 リリース」 New!
- グラフ図形に機能図形を追加 円メーター、棒メーター、日本地図
- 値によりグラデーションを持つ色コードを作成 ::gradation
- && と等価な∩、∧、また、|| と等価な∪、∨を導入
2024.09.21 「v56.2.0 リリース」 New!
- 論理否定の優先順位を上位に変更
- 論理式を真理値表に変換 ::fnc_to_truth_table
- 真理値表を論理式に変換 ::truth_table_to_fnc
- 論理式の簡単化 ::simplify
2024.09.15 「v56.1.0 リリース」 New!
- データウィンドウの空白や文字列を数字として読むときに警告を出す
- 警告をエラーにするオプションを追加
:env STRICT_ERROR, (FALSE|TRUE) - コマンドウィンドウのメニュー[ツール]に環境設定を追加
- コマンドでのデータウィンドウの位置指定でDを使っているところをLに全面修正
2024.09.06 「v56.0.0 リリース」 New!
- 環境を設定するコマンドを追加 :env
- 数式処理の数式変形で複素数の厳格化オプションを追加
:env MATH_PROC_STRICT_COMPLEX, (FALSE|TRUE) - 3次元スカラ場グラフの位置揺らぎを追加
- 数式自然表記から MathML と MathJax で .htm 出力を追加
- 0 による除算をこれまで NaN としていたが、IEEE-754 に合わせて∞と定義する
- 無限は+∞とー∞のみとし、虚部が∞の場合は NaN とする
2024.08.26 「v55.6.0 リリース」 New!
- ヘルプに目的別一覧を追加
- ::roots を改善
- 不具合の修正
2024.08.18 「v55.5.3 リリース」 New!
- 不具合の修正
2024.08.16 「v55.5.2 リリース」 New!
- 不具合の修正
2024.08.08 「v55.5.1 リリース」 New!
- 不具合の修正
2024.08.05 「v55.5.0 リリース」 New!
- ::getat[] をパック変数にも対応
- ファンクションの多項式係数を得る関数を追加 ::fncpoly
- 各種不具合を修正
2024.08.01 「v55.4.0 リリース」 New!
- ファンクションの演算結果を標準形式に統一
- グラフ図形の矢印で両端に矢じりを付けるオプション追加
- ポップアップヒントの不具合修正
2024.07.30 「v55.3.0 リリース」 New!
- データマークの指定方法を拡充
2024.07.29 「v55.2.0 リリース」 New!
- グラフの計測にスクロールバーを追加
- グラフのフーリエ変換の不具合を修正
2024.07.23 「v55.1.0 リリース」 New!
- 3Dグラフの設定コマンド追加 :setGraph3DBox、:setGraph3DWall
- 設定コマンドのオプション追加 :setPlot、:setGraph
- 1変数ファンクションの関数の引数省略 ::roots、::diff、::inte、::var_trans
- ファンクションの評価 ::eval
2024.07.18 「v55.0.0 リリース」 New!
- 最後に描画したプロットの各種設定コマンド :setPlot
- グラフの各種設定コマンド :setGraph
- グラフ軸の各種設定コマンド :setAxis
- データセルの各種設定コマンド :setCell
- グラフマーカーの表示コマンド :setGraphMarker
- コマンド廃止 :set2DPlot、:setGraphPoint
2024.07.11 「v54.2.0 リリース」 New!
- グラフ図形に点を追加 :setGraphPoint
- グラフ図形で座標が RV のときに軸を指定できるように各コマンドを変更
2024.07.04 「v54.1.0 リリース」 New!
- 選択肢変数を追加 o.name
- 選択肢定数設定コマンドを追加 :enum
- 選択肢実行コマンドを追加 :match
- EPS を Eps に変更
- 物理定数更新
2024.06.18 「v54.0.1 リリース」 New!
- 各種不具合の修正
2024.06.14 「v54.0.0 リリース」 New!
- マウスホバーヒントを全面的に導入
- デバッグコマンドを追加 :debug
2024.06.10 「v53.4.0 リリース」 New!
- 範囲が与えられた根の解法コマンドを追加 :getValSearchRoot
- 関数積分 :getValFuncInte に計算精度のオプションを追加
- 各種不具合の修正
2024.06.06 「v53.3.0 リリース」 New!
- 初期値問題を解くコマンドを追加 :storeDataInitValProblem
- 中心差分を求める関数を追加 ::cdiff[v.u, dx, order]
- テンソルを回転する関数を追加 ::roll[z.a, shift, axis]
- 数式処理の ::roots を性能向上
2024.06.02 「v53.2.0 リリース」 New!
- 3Dグラフに平面を描画するコマンドを追加 :setGraph3DPlane
- :storeDataFluidDynamics に :dir でプログレスバーを追加可能に
- グラフ描画の形式を追加
:draw3DGraphZTable x0, y0, x1, y1, m.z
:draw2DGraphVectorData x0, y0, x1, y1, t.vector
:draw3DGraphVectorData x0, y0, z0, x1, y1, z1, t.vector
:draw3DGraphScalarData x0, y0, z0, x1, y1, z1, t.scalar
2024.05.29 「v53.1.0 リリース」 New!
- ナビエ-ストークス方程式を解くコマンドを追加 :storeDataFluidDynamics
2024.05.21 「v53.0.0 リリース」 New!
- ラグランジュ方程式に関するスクリプトライブラリを追加
- 連立常微分方程式を解いてデータウィンドウに格納するコマンドを追加 :storeDataSimulDiffEq
- 発展例題を拡充
- 各種不具合の修正
2024.05.12 「v52.3.1 リリース」 New!
- 発展例題の電子軌道の式に間違いがあり修正
2024.05.10 「v52.3.0 リリース」 New!
- サンプルに発展例題を追加
- 各種不具合の修正
2024.03.30 「v52.2.0 リリース」 New!
- テーブル、ファンクション、パックに等価、不等価演算子
- テンソルの要素演算子
- グラフウィンドウに他アプリケーションからの画像の貼付け
2024.03.25 「v52.1.0 リリース」 New!
- テンソルの要素演算子を拡充
- テンソルの ::equal、==、!=
- 物理定数を改正
2024.03.15 「v52.0.1 リリース」 New!
- 各種不具合の修正
2024.03.07 「v52.0.0 リリース」 New!
- 多項式の計算関数を各種追加
::polymul、::polydiv、::polydiff、::polyinte、::polyfnc、::polycalc - 数式処理で式の根を求める関数を追加 ::roots
- 任意の底の対数関数を追加 logn[b, x]
2024.02.27 「v51.5.2 リリース」 New!
- 数式処理の不具合を修正
2024.02.24 「v51.5.1 リリース」 New!
- 数式処理での積分を性能向上
2024.02.20 「v51.5.0 リリース」 New!
- ファンクションの簡単な式の積分を追加 ::inte
- グラフ描画の基本単位を設定可能に変更
2024.02.09 「v51.4.0 リリース」 New!
- ファンクションの引数の個数を返す関数を追加 ::narg
- 数式処理の性能向上
2024.01.29 「v51.3.0 リリース」 New!
- 数式を展開する関数を追加 ::expand
- 数式処理を書式入力に追加
- ::standard の性能向上
2024.01.24 「v51.2.1 リリース」 New!
- システム不具合を修正
- :measTIme の表示を変更
2024.01.22 「v51.2.0 リリース」 New!
- :setGraphExpression 数値、行列、ベクトルの表示方法を変更
- マルチモニターでモニターごとの倍率に対応
2024.01.18 「v51.1.0 リリース」 New!
- ファンクション変数の演算を追加
- ファンクション変数の多価関数での比較関数を追加
v.e = ::equal_branch[n_branch, n_prec, eps, f.a, f.b, arg, ...]
v.e = ::equal_branch[n_branch, n_prec, eps, val, f.b, arg, ...]
v.e = ::equal_branch[n_branch, n_prec, eps, "", f.b, arg, ...] - ファンクション変数の変数変換関数を追加
f.c = ::var_trans[f.a, $var, f.b]
f.c = f.a:>var_trans[$var, f.b]
2024.01.14 「v51.0.0 リリース」 New!
- 数式処理の機能を追加
- - ファンクション変数の直値による生成
- 例:f.a = F.[x, y]{x^2+y^2}
- - 式の標準形式への変換
- f.s = ::standard[f.a] f.s = f.a:>standard[]
- - 式の微分
- f.d = ::diff[f.a, $var] f.d = f.a:>diff[$var]
- - 式の多価関数への変換
- f.b = ::branch[f.a] f.b = f.a:>branch[]
- - 式の文字列への変換
- $str = ::fnc_to_str[f.a] $str = f.a:>fnc_to_str[]
- :foreach コマンドを全ての変数の型に対応とパック変数の展開
2023.12.18 「v50.4.0 リリース」 New!
- グラフのグループでの設定項目を拡大
- グラフウィンドウへの数式やベクトル、行列を描画するコマンドを追加
:setGraphExpression
2023.11.28 「v50.3.0 リリース」 New!
- Internet の拡張ライブラリに base64 のエンコード関数とデコード関数を追加
- :exec コマンドにウィンドウを表示するか非表示にするかのオプションを追加
2023.11.17 「v50.2.0 リリース」 New!
- 一行に複数文の記述が可能
2023.11.09 「v50.1.0 リリース」 New!
- スクリプトエディタに行番号を付けるメニュー
2023.11.02 「v50.0.0 リリース」 New!
- データ型に「ファンクション」を追加
- 接頭辞は f.
- 生成 f.a = F.userFuncName
- 実行 ::f.a[arg0, ...] or arg0:>f.a[arg1, ...]
- パック変数から実行すると、p.@ が設定される
::p.a{func}[arg0, ...] or arg0:>p.a{func}[arg1, ...]
この場合、p.a が呼び出し先の p.@ に設定される - 一行のコマンドブロックは ' : ' で区切って一行で記述可能
- データウィンドウの保存で文字列にダブルクォーテーションを付けないオプション
2023.10.24 「v49.1.0 リリース」 New!
- パック変数に追加機能
- p.a:=append_key[$v.name]
- index p.a:>key[$name]
- $v.name p.a:>key[]
- p.a[i], p.a{name}, p.a{name}[index]... で参照可能
- :setVarPackRefNamed p.a, $v.name, \var1, \var2, ...
- :checkHash p.a - 行列の列ベクトルを取得する関数を追加
v.col ::getat_t[m.a, col] - システムコマンドとシステム関数のエイリアスを付けるコマンドを追加
:alias 'newName', 'orgName'
:alias 'newName*', 'orgName*' - スクリプトライブラリに Alias を追加
- スクリプトエディタで定義に移動した場合に元の編集位置に戻るメニューを追加
- コード分析の強化
- 拡張ライブラリの関数追加
TextFile::closeAllTextFile、BinaryFile::closeAllBinaryFile
2023.10.12 「v49.0.0 リリース」 New!
- データ型に「パック」を追加
- 接頭辞は p.
- データウィンドウの読取り、書出しはなし
- 関数とコマンドへはテンソルと同じく参照渡し
- 生成 p.a = [var0, ...]
- 代入 [var0, ...] = p.a
- 連結 p.c = p.a + p.b、p.a += p.b
- 参照 :setVarPackRef p.a, var0, ...
変数はパック内の変数の参照
ブロック内で実行すると自動的にローカル変数
- 関数 ::size p.a、::shape p.a - 次の関数の戻り値をパックに変更
::sec_to_day、::sec_to_hour、::sec_to_minute、::eigen、::svd - FileCommand::fileGetMTime の戻り値を文字列のみに変更
- ::eigen 対象行列でないときの固有値の順序は不同に変更
- テンソル関数の追加
z.c = ::shrink_slice[z.a, axis, index]
z.a:=embed[z.c, axis, index]
z.a:>select_get[v.key0, v.key1, ...]
z.a:=select_set[v.a, v.key0, v.key1, ...]
z.a:=select_add[v.a, v.key0, v.key1, ...]
z.a:=select_sub[v.a, v.key0, v.key1, ...] - 文字列関数の追加
$c ::getat[$str, pos] - ニューラルネットワークのサンプルを拡充
2023.09.22 「v48.4.0 リリース」 New!
- 行列の特異値分解を実行する関数を追加 ::svd
- ::trace と ::diag 関数は正方行列でなくても実行可能に変更
2023.09.02 「v48.3.1 リリース」 New!
- 2次元陰関数グラフの不具合を修正
2023.08.21 「v48.3.0 リリース」 New!
- データマークの位置指定を改正
- V{...}[..] は縦、H{...}[..] は横に統一
- H{...}[?][?] の位置は V{...}[?]{?] と統一 - データウィンドウで数値を整列するオプションを追加
- グラフのマーク :setGraphMark
- テーブル変数に行を追加する関数 ::append_line
- テーブルで未登録の新規項目は警告
2023.08.11 「v48.2.0 リリース」 New!
- データウィンドウの「新規」のインターフェイスをグラフウィンドウに合わせる
- 関数、コマンドのドロップダウンリストが出ているときに Ctrl+Tab を押すと補完
- 3次元ベクトル場とスカラ場の計測 :getValFrom3DVecSca
- 3次元ベクトル場とスカラ場の演算 :draw3DGraphVecScaCalc
- 3次元ベクトル場とスカラ場の変換 :draw3DGraphVectorTrans、:draw3DGraphScalarTrans
- 3次元グラフのスライスを表示 :set3DPlotSlice
2023.08.04 「v48.1.1 リリース」 New!
- 不具合の修正
2023.08.03 「v48.1.0 リリース」 New!
- 3次元ベクトル場とスカラー場の変換 :draw3DGraphFrom3DVS
- 3次元スカラー場のレンジを設定 :setPlotScalarRange
- データウィンドウの列幅自動調整
2023.07.28 「v48.0.0 リリース」 New!
- 特殊変数 EPS を導入。絶対値が EPS 未満の数値の「表示」を 0_ にする
- グラフプロットのデータをデータウィンドウに保管するときの抽出率を廃止
:storeDataFrom2DGraph、:storeDataFrom2DVector、:storeDataFrom3DGraph - コマンド名変更 :set2DPlotVectorSize → :setPlotVectorSize
- ::equal 関数の修正
- isfinite 関数を追加
- コマンドウィンドウで文字列出力にはダブルクォーテーションを付けて出力
- データウィンドウで "’" (全角)による文字列入力
- データウィンドウの列幅をマウスで変更可能
- 2Dプロットの不連続点で線を引くかどうかのコマンド追加
:set2DPlotLineDiscontinuity - _zeta 特殊関数を追加
- 3次元ベクトル場グラフ
:draw3DGraphVectorFunc、:draw3DGraphVectorData、:storeDataFrom3DVector - 3次元スカラ場グラフ
:draw3DGraphScalarFunc、:draw3DGraphScalarData、:storeDataFrom3DScalar
2023.07.12 「v47.2.0 リリース」 New!
- データウィンドウで UTF-8 の読込、書込
- 三角形ポリゴンデータによる3Dグラフ :draw3DGraphDataPolygon
- グラフウィンドウで相似を保持してスケール自動調整
- 3Dグラフの法線ベクトルの計算を修正
2023.07.06 「v47.1.0 リリース」 New!
- データウィンドウで[現在位置に挿入読込][テキストとして保存][切り取り削除][挿入貼り付け][テキストとしてコピー][形式を指定して貼付け]を追加
- 三次元グラフのモデル化を追加
- 三次元グラフでの移動、片側スケール変更を向きに関係なく操作可能
- スクリプトライブラリに GraphFigure を追加
2023.06.23 「v47.0.0 リリース」 New!
- グラフウィンドウのコピー、貼り付けをクリップボードに変更
- 数式の自然表記をポップアップ
- 誤差範囲付き2Dグラフのデータ転送
2023.06.16 「v46.2.0 リリース」 New!
- ベクトル解析 :draw3DGraphFrom2DV
- ベクトル場の表示に格子優先 :setPlotNumPts
- ベクトル場のデータ転送 :storeDataFrom2DVector
- ベクトル場の計測 :getValFrom2DVector
- ベクトル場の演算 :draw2DGraphVectorCalc
- ベクトル場の変換 :draw2DGraphVectorTrans
2023.06.02 「v46.1.1 リリース」 New!
- 不具合の修正
2023.06.02 「v46.1.0 リリース」 New!
- グラフ動画の保存形式を追加
2023.05.19 「v46.0.0 リリース」 New!
- 2個以上デフォルト値があるコマンド引数では "名前:値" による指定が可能に変更
- グラフ画像の保存形式に WebP を追加
- 3Dグラフでの光源の方向の計算方法を修正
- :set3DPlotColoringFree コマンドで変数の値を捕えるオプションを追加
2023.05.07 「v45.3.1 リリース」 New!
- 不具合の修正
2023.05.02 「v45.3.0 リリース」 New!
- 動画の出力に WebP フォーマットを追加
- 1D凡例をマウスで移動可能に修正
- 次のコマンドを追加
- :setGraphVideo
- :set1DPlotLegend
2023.03.18 「v45.2.0 リリース」 New!
- 選択したグラフ図形を一括設定する機能を追加
2023.02.25 「v45.1.0 リリース」 New!
- グラフにクリップボードの貼り付け機能を追加
- 関数呼び出しの高速化
2023.02.04 「v45.0.0 リリース」
- Graph1D として、円グラフと帯グラフを追加
- フォーカスされているグラフのプロットを指定する方法として GP[pn] を追加
- 同様に、フォーカスされているグラフの図形を指定する方法として GF[fign] を追加
- フォーカスグラフを指定する :setGraphFocus コマンドを追加
- グラフ図形に扇形を追加
- グラフ図形の変形ポインタを改良
- グラフの余白を変更するメニューを追加
2023.01.14 「v44.0.0 リリース」
-
データ型にテンソルを追加
- 接頭辞は z
- 任意の階数の数値を扱う
- 自動拡張はなし
- サイズの変更には :=create 関数を使う
- 関数とコマンドへは参照渡し
PrimMathとは?
PrimMath(プライム・マス)は、グラフ作成、データ解析、数値計算を実行できます。 また、独自スクリプト言語によるプログラミングも行うことができます。
グラフのスケールは拡大、縮小、移動が簡単に行え、グラフの計測、変換も様々に実行できるなど、グラフ表示に重点を置いていることが特徴です。 書式入力フォームに必要な情報を入力するだけでグラフとして表示します。 グラフを見てからデータウィンドウに値を移すことができます。 もちろん、データウィンドウからグラフ表示を行うこともできます。

トップウインドウは、コマンドウインドウ、データウインドウ、グラフウインドウの3ウィンドウに分割しており、 方程式の解を求めるとともにグラフで確認する、あるいは実測データの解析をグラフを見ながら行うなど、 数値計算やデータ分析において使いやすいソフトウエアです。
コマンドウィンドウでは、サブルーチンも作成できるコマンド入力形式を採用しており、スクリプトファイルによる実行も可能です。 スクリプトを書く場合でも、コマンド入力の補助機能をサポートしていますので、コマンドを覚える必要はありません。
データウィンドウでは、他のプログラムとの表データのカット・アンド・ペーストによるデータ交換、 あるいは、CSV形式、タブ区切りなど、任意の形式のファイルの読込、保存ができます。 コマンドウィンドウによるスクリプト処理を行うことで、強力なデータ処理ツールとしても活用できます。
グラフウィンドウでは、多様なグラフ作成はもちろん、図形を描画することもできます。 図形は、そのままスクリプトに変換したり、スクリプトから図形を描画することができ、作図ツールとしても便利です。 グラフ図面はコピーして他のアプリに貼り付けすることができます。 また、アプリ側で図の編集を行うこともできます。

PrimMathでは、簡単な問題でしたらGUIの操作だけで解くことが可能です。 また、難しい問題もスクリプトで簡単に解くことができます。
何が出来るのか?
活用方法
- データの分析
- CSV ファイルはもちろん、様々なデータを読込めます。
- すぐにグラフで確認ができます。
- 膨大なデータであっても、グラフ領域の拡大、縮小、移動により簡単に俯瞰できます。
- グラフで、フーリエ変換、フィルタ処理、モデル化、計測など自由に分析可能です。
- スクリプトで自動化が簡単です。
- 関数の確認
- 陽関数、陰関数、媒介変数形式など、様々な関数の形状を、2次元グラフ、3次元グラフで確認できます。
- グラフで、演算、変換、微分、積分も可能です。
- 方程式の解、関数の最大値、最小値を求めることも可能です。
- 数学の問題を解く
- 線形代数(行列式、逆行列、固有値問題、特異値分解)
- ベクトル解析(勾配、発散、回転)
- 複素関数(指数関数、対数関数、三角関数、ガンマ関数、ゼータ関数、など)
- 微積分(任意の階数の微分積分)
- 微分方程式(常微分方程式、偏微分方程式)
- 最適化(最大値、最小値、条件付)
- 統計学(検定、区間推定)
- ニューラルネットワーク(分類問題、生成系)
- 物理の問題を解く
- ラグランジュ方程式
- ラプラス方程式、拡散方程式、波動方程式
- ナビエ-ストークス方程式
- KdV方程式
- 時間依存シュレーディンガー方程式
- 煩雑な繰り返し処理を自動化
- 汎用性の高いスクリプト言語仕様のため、理数系の問題に限らず様々な処理を自動化できます。
- Excel のファイルでリストがあった場合でも、Excel から CSV ファイルに保存すれば PrimMath で処理可能です。
- 動画の作成
- スクリプトで動きを与えれば動画が作成可能です。
- どこにでもアップロードできる mp4 の形式をはじめ、avi、webm、webp の形式で作成できます。
基本機能
- 複素数による四則演算と関数計算
- 一部の特殊関数を除き、計算は複素数です。また、乗算記号を省略できます。
- 2次元グラフ、3次元グラフの描画
- 数式、もしくはデータウィンドウの値からグラフを描画します。2次元極座標、2次元領域グラフ、対数グラフ、陽関数、陰関数、ベクトル場のグラフなどあらゆるグラフを描画できます。
- 2次元グラフ、3次元グラフの解析
- グラフの演算、計測、トレース、フィルタリング、微分、積分を実行します。3次元グラフでは、スライス機能により見にくい3次元を見やすく表示します。
- 2次元グラフ、3次元グラフのデータのモデル化
- グラフの値から、非線形を含む任意の数式に最小二乗法で複数の変数の値を求めます。
- 2次元グラフのパワースペクトル
- グラフの値からフーリエ変換を実行しパワースペクトルを描画します。
- 2次元グラフの相関
- グラフの相関を計算して結果を描画します。
- 線形/非線形方程式の解
- 方程式を満たす変数の値を求めます。連立方程式も解けます。
- 数式の最小化、最大化
- 数式の値を最小、最大にする複数の変数の値を求めます。制約条件を付けることもできます。
- 微分、積分の計算
- 数式の微分値、積分値を計算します。
- 常微分方程式の解
- 常微分方程式を初期値から解いてグラフとして描画します。
- 偏微分方程式の解
- 拡散方程式、波動方程式、ラプラス方程式を解き、データウィンドウに格納します。
- 行列、ベクトル計算
- 逆行列、行列式、行列の階数、固有値、固有ベクトル、特異値分解を求めることができます。
- 統計計算
- データウィンドウの値から各種統計計算を行います。検定、区間推定もできます。
- 重回帰分析
- データウィンドウの値から線形/非線形の重回帰分析を行います。
- 主成分分析
- データウィンドウの値から主成分分析を行います。
- クラスタリング
- 任意次元のデータウィンドウの値を指定個数に分類します。
- パターン認識
- サポートベクトルマシン、ニューラルネットワークによる識別を行います。
- 特殊関数、分布関数
- ガンマ関数、ベータ関数、誤差関数、リーマンゼータ関数、また、正規分布、指数分布、χ2乗分布、t分布、F分布、ガンマ分布など、豊富に揃えています。
- テンソル計算
- CPU 処理では最速レベルに高速です。
- 10億行、10億列の領域を持つ表計算
- 実装メモリ量や実行速度からの限界はあります。
- 多彩な出力
- グラフは画像として、png、jpg、webp、gif、bmp、emf、svg 形式で保存可能です。また、他のアプリで編集可能な図形データとしてコピーが可能です。
- 数式処理
- 微分、積分、根を求める、変数置換など、数式で処理ができます。
グラフのサンプル






















ダウンロード
下のリンクをクリックしてファイルを保存して下さい。ファイルは ZIP形式の圧縮ファイルです。
解凍して setup.exe を実行すればインストールできます。
最新ヴァージョンは 60.4.0 です。
Microsoft Edge でダウンロードの警告が出る場合の対処法
[その他のアクション]→[保存]→[詳細表示]→[保持する]
の手順で保存されます。
Microsoft Defender がインストールの警告を出す場合の対処法
以下のような警告が出た場合には、左側にある[詳細情報]をクリックします。

すると、[実行]のボタンが現れるのでこれをクリックします。

動作環境
OS: Windows 10/11
問い合わせ
左記の掲示板リンクにてお願いします。
また、メールでの質問、要望も受け付けます。

ニューラルネットワークのサンプルが動かない
プロキシを経由していると、ファイルのダウンロードがうまく実行されていない可能性があります。
下のリンクをクリックして4つのファイルを保存して下さい。
保存したファイルを 「ドキュメント\PrimMath\MNIST」 のフォルダに格納して下さい。
train-images.idx3-ubyte
t10k-images.idx3-ubyte
train-labels.idx1-ubyte
t10k-labels.idx1-ubyte
プロットを描画したのに表示されない
描画領域があっていないのかもしれません。
グラフウィンドウで F キーを押して下さい。
それでも表示されない場合は、W キーをプロットが現れるまで何度か押して下さい。
プロットが現れたら、矢印キーと W, Shift+W で調整します。
データのプロットなど、プロット数が決まっている場合には F キーで表示されます。
関数のプロットで始点か終点に AUTO を指定している場合や陰関数のプロットの場合には、
W, Shift+W, 矢印キーで表示するようにします。
プロットのマーカーを消したい
サイズを 0 にすると表示しなくなります。
同様に線を消したい場合には、線幅を 0 にすると表示しなくなります。
終了時に編集中のスクリプトやデータの保存を促すダイアログが表示されない
使い捨てのことが多いので、そのような仕様にしています。
大切なスクリプトやデータは終了前に保存して下さい。
イプシロンによる切捨てを止めたい
コマンドウィンドウの「表示」メニューの「イプシロンによる切捨て」のチェックを外せば
イプシロンによる切捨てが解除されます。
また、始めから止めたいときには、次のファイルを作成して「ドキュメント\PrimMath」のフォルダに格納して下さい。
ファイル名:.init.pml
内容:
:loadScrFile $PATH + "\.init.pml"
Eps = 0;