MaTX

作成、更新 2000-04-20


1)起動

2)基本演算

3)行列の演算

4)整式(方程式の解)


1)起動

立ち上げるとプロンプトが出て入力状態になります。

C:\app\matx\bin>matx

        MaTX Interpreter (matx)
        Windows95/NT(Visual C++) version 5.0.5
        last modified Fri Jan 28 18:28:19 JST 2000
        Copyright (C) 1989-2000, Masanobu Koga

        Send bugs and comments to matx@matx.org
        Type 'quit' to exit, 'help' for functions, 'demo' for demonstration.

2)基本演算

MaTX( )がプロンプトで、ここに

 MaTX (2) a=1

と書くと 

a = 1

となる。()の中の数字は履歴番号を表す。(BackSpaceで履歴が出る)
↑キーで履歴を一つ戻す。

文の終わりにセミコロンを付けるとエコーバックが出ない。

 MaTX (3) a=1;
 MaTX (4) 
変数だけを打つと、その変数の値が出力される。

 MaTX (4) a=1;b=2;
 MaTX (5) c=a+b;
 MaTX (6) c
c = 3

3)行列の演算

行列は

A=[ [1 , 2 ][ 3 , 4 ]]; とカンマで列の区切り、[]で行の区切りをあらわしますが


 MaTX (7) A=[[1 2 ]
            [3 4 ]]
             
って書いたほうが視覚上みやすい。(負号がある場合は,で区切らなければならない)

 === [A] : (  2,  2) ===
            (  1)           (  2)
 (  1) 1.00000000E+000 2.00000000E+000
 (  2) 3.00000000E+000 4.00000000E+000

 MaTX (7) A=[[ 1 2 ]
            [ 3 4 ]];

 MaTX (8) B=[[ 3 4 ]
            [ 5 6 ]];

//足し算 (//はコメント行になる)

 MaTX (9) A+B
 === [ans] : (  2,  2) ===
            (  1)           (  2)
 (  1) 4.00000000E+000 6.00000000E+000
 (  2) 8.00000000E+000 1.00000000E+001

//掛け算 

 MaTX (10) A*B
 === [ans] : (  2,  2) ===
            (  1)           (  2)
 (  1) 1.30000000E+001 1.60000000E+001
 (  2) 2.90000000E+001 3.60000000E+001

//要素毎の掛け算 
 MaTX (11) A.*B
 === [ans] : (  2,  2) ===
            (  1)           (  2)
 (  1) 3.00000000E+000 8.00000000E+000
 (  2) 1.50000000E+001 2.40000000E+001

//逆行列 
 MaTX (12) inv(A)
 === [ans] : (  2,  2) ===
            (  1)           (  2)
 (  1)-2.00000000E+000 1.00000000E+000
 (  2) 1.50000000E+000-5.00000000E-001

//行列式 
 MaTX (13) det(A)
ans = -2

4)整式
まずxを整式の変数として定義する。
 MaTX (21) x=Polynomial("x")
x = x
とすると、xが変数となって使えて


 MaTX (22) y=x^3+x^2+x+1
y = x^3 + x^2 + x + 1

という風に使える。
そこで y=0の方程式を解くと 

 MaTX (23) roots(y)
 === [ans] : (  3,  1) ===
        [ (  1)-Real      (  1)-Imag ]
 (  1) 2.22044605E-016 1.00000000E+000
 (  2) 2.22044605E-016-1.00000000E+000
 (  3)-1.00000000E+000 0.00000000E+000

計算誤差をとっぱらう為に round2z()をつけると
 MaTX (25) round2z(roots(y))
 === [ans] : (  3,  1) ===
        [ (  1)-Real      (  1)-Imag ]
 (  1) 0.00000000E+000 1.00000000E+000
 (  2) 0.00000000E+000-1.00000000E+000
 (  3)-1.00000000E+000 0.00000000E+000

となる。

(いずれ続く予定)