bambooflow Note

行列操作

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン


行列作成

3x3行列の定義(matrix)

3x3行列を作成して、変数Aに代入。
(%i1) A:matrix([a,b,c],[d,e,f],[f,g,h]);

(%o1) \begin{pmatrix}a&b&c\cr d&e&f\cr f&g&h\cr \end{pmatrix}

3x3行列を作成して、変数Bに代入。
(%i2) B:matrix([r,s,t],[u,v,w],[x,y,z]);

(%o2) \begin{pmatrix}r&s&t\cr u&v&w\cr x&y&z\cr \end{pmatrix}


単位行列を作成する(diagmatrix(n,1)もしくはident(n))


5行5列の単位行列を作成します。
(%i9) diagmatrix(5,1);

(%o9) \begin{pmatrix}1&0&0&0&0\cr 0&1&0&0&0\cr 0&0&1&0&0\cr 0&0&0&1&0\cr 0&0&0&0 &1\cr \end{pmatrix}
もしくは、
(%i10) ident(5);

(%o10) \begin{pmatrix}1&0&0&0&0\cr 0&1&0&0&0\cr 0&0&1&0&0\cr 0&0&0&1&0\cr 0&0&0&0 &1\cr \end{pmatrix}

m行n列の行列を生成する(ematrix)

ematrix(m,n,x,i,j)
m行n列を生成する。i行j列成分のみがxで他すべてゼロ。
(%i) ematrix(3,4,1,2,3);

(%o) \begin{pmatrix}0&0&0&0\cr 0&0&1&0\cr 0&0&0&0\cr \end{pmatrix}


配列から行列を生成する(genmatrix)

(%i) h[i,j]:=(i-1)*3+j;
(%i) genmatrix(h,3,3);

(%o) \begin{pmatrix}1&2&3\cr 4&5&6\cr 7&8&9\cr \end{pmatrix}

wxMaximaのGUIで生成する

EnterMatrixで行列を生成する

  • メニューバーの「Algebra」から「Enter matrix ...」を選択します。
  • 行と列の数を指定します。指定したらOKボタンを押します。
  • 行列の値を入れます。数字でも良いですし、変数でも良いです。
  • OKボタンを押すと、以下のように出力します。
(%o1) \begin{pmatrix}a&b&c\cr d&e&f\cr f&g&h\cr \end{pmatrix}


行列操作

行列を複製する(copymatrix)

(%i) C:copymatrix(A);

(%o) \begin{pmatrix}a&b&c\cr d&e&f\cr f&g&h\cr \end{pmatrix}
行列Aは行列Cにコピーされました。

行列から指定した列を取り出す(col)

(%i) col(A,2);

(%o) \begin{pmatrix}b\cr e\cr h\cr \end{pmatrix}

行列から指定した行を取り出す(row)

(%i) row(A,2);

(%o) \begin{pmatrix}d&e&f\cr \end{pmatrix}

行列から指定要素を取り出す

(%i) A[2,3];

(%o) g

行列の行の下にリストを追加する(addrow)

(%i) M:addrow(A,[i,i,i]);

(%o) \begin{pmatrix}a&b&c\cr d&e&f\cr g&h&i\cr i&i&i\cr \end{pmatrix}

行列の列の右にリストを追加する(addcol)

(%i) M:addcol(A,[i,i,i]);

(%o) \begin{pmatrix}a&b&c&i\cr d&e&n&i\cr g&h&i&i\cr \end{pmatrix}

行列の指定要素の置き換え(setelmx)

行列Aの2行3列を"n"に置き換える。

(%i) D:setelmx(n, 2, 3, A);

(%o) \begin{pmatrix}a&b&c\cr d&e&f\cr n&g&h\cr \end{pmatrix}

演算

行列同士の演算

行列Aと行列Bを加算します。
(%i3) A+B;

(%o3) \begin{pmatrix}r+a&s+b&t+c\cr u+d&v+e&w+f\cr x+f&y+g&z+h\cr \end{pmatrix}

(%i4) A*B;

(%o4) \begin{pmatrix}a\,r&b\,s&c\,t\cr d\,u&e\,v&f\,w\cr f\,x&g\,y&h\,z\cr \end{pmatrix}

行列Aと行列Bの積を求めます。
(%i5) A.B;

(%o5) \begin{pmatrix}c\,x+b\,u+a\,r&c\,y+b\,v+a\,s&c\,z+b\,w+a\,t\cr f\,x+e\,u+ d\,r&f\,y+e\,v+d\,s&f\,z+e\,w+d\,t\cr h\,x+g\,u+f\,r&h\,y+g\,v+f\,s& h\,z+g\,w+f\,t\cr \end{pmatrix}


転置行列(transpose)

行列Aの転置行列を求めます。
(%i6) transpose(A);

(%o6) \begin{pmatrix}a&d&f\cr b&e&g\cr c&f&h\cr \end{pmatrix}


行列式(determinant)

行列Aの行列式を求めます。
(%i7) determinant(A);

(%o7) a\,\left(e\,h-f\,g\right)-d\,\left(b\,h-c\,g\right)+f\,\left(b\,f-c \,e\right)


逆行列(^^-1)

行列Aの逆行列を求めます。
(%i8) A^^-1;

(%o8) \begin{pmatrix}{{e\,h-f\,g}\over{\left(a\,e-b\,d\right)\,h+\left(c\,d-a\, f\right)\,g+b\,f^2-c\,e\,f}}&-{{b\,h-c\,g}\over{\left(a\,e-b\,d \right)\,h+\left(c\,d-a\,f\right)\,g+b\,f^2-c\,e\,f}}&{{b\,f-c\,e }\over{\left(a\,e-b\,d\right)\,h+\left(c\,d-a\,f\right)\,g+b\,f^2-c \,e\,f}}\cr -{{d\,h-f^2}\over{\left(a\,e-b\,d\right)\,h+\left(c\,d-a \,f\right)\,g+b\,f^2-c\,e\,f}}&{{a\,h-c\,f}\over{\left(a\,e-b\,d \right)\,h+\left(c\,d-a\,f\right)\,g+b\,f^2-c\,e\,f}}&-{{a\,f-c\,d }\over{\left(a\,e-b\,d\right)\,h+\left(c\,d-a\,f\right)\,g+b\,f^2-c \,e\,f}}\cr {{d\,g-e\,f}\over{\left(a\,e-b\,d\right)\,h+\left(c\,d-a \,f\right)\,g+b\,f^2-c\,e\,f}}&-{{a\,g-b\,f}\over{\left(a\,e-b\,d \right)\,h+\left(c\,d-a\,f\right)\,g+b\,f^2-c\,e\,f}}&{{a\,e-b\,d }\over{\left(a\,e-b\,d\right)\,h+\left(c\,d-a\,f\right)\,g+b\,f^2-c \,e\,f}}\cr \end{pmatrix}



余因子行列を計算する(adjoint)

(%i) adjoint(A);

(%o) \begin{pmatrix}e\,i-f\,h&c\,h-b\,i&b\,f-c\,e\cr f\,g-d\,i&a\,i-c\,g&c\,d- a\,f\cr d\,h-e\,g&b\,g-a\,h&a\,e-b\,d\cr \end{pmatrix}


EIGENパッケージの関数

ロード(load)

EIGENを使用するための準備。
(%i) load(eigen);

タグ:

Maxima
記事メニュー
目安箱バナー