hoge hoge - LA Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

線形代数

!行列・ベクトル生成(MatrixVector)

線形代数の計算にはあらかじめ関数パッケージ(LinearAlgebra)を呼び出しておく.
<<<maple
> with(LinearAlgebra):
>>>


!!ベクトルの生成(Vector)
ベクトルの生成は,
<<<maple
> v1 := Vector([x, y]);
>>>
$$
{\it v1}\, := \, \left[ \begin {array}{c} x\\ y\end {array} \right]
$$
通常の方法では,縦(列)ベクトル(column)ができることに注意.横(行)ベクトル(row)を作るには,明示する必要あり.
<<<maple
> v2 := (Vector[row])([x, y, z]);
>>>
$$
{\it v2}\, := \, \left[ \begin {array}{ccc} x&y&z\end {array} \right]
$$
新聞の囲み記事(列)がcolumn,劇場の座席(行)はrow.


!!行列の生成(Matrix)
標準的な行列(Matrix)の生成は,
<<<maple
> A0 := Matrix([[1, 2, 3], [4, 5, 6]]); #res: 省略
>>>
リストリストからの変換は,
<<<maple
> LL1 := [[1, 2], [3, 4]]:
> A1 := Matrix(LL1);
>>>
$$
{\it A1}\, := \, \left[ \begin {array}{cc} 1&2\\ 3&4\end {array} \right]
$$
単位行列の生成は,
<<<maple
> E := IdentityMatrix(2);
>>>
$$
E\, := \, \left[ \begin {array}{cc} 1&0\\ 0&1\end {array} \right]
$$
対角行列を生成するDiagonalMatrixもある.同じことは以下のようにしても生成が可能.
<<<maple
> Matrix(2,2,shape=identity);
>>>
$$
\left[ \begin {array}{cc} 1&0\\ 0&1\end {array} \right]
$$


!!縦横ベクトル・行列の簡易作成法(MVShortcut)
かぎかっこ($<\cdots>$)を使って,ベクトルあるいは行列を直感的に作ることが可能.カンマで区切ると縦に積み,縦棒で区切ると横に積む.セミコロンで区切るとそこで次の行へ.
<<<maple
> v1:=<x,y>; #縦ベクトル,列
> v2:=<x|y|z>; #横ベクトル,行
> A1:=<1,2;3,4>; #2x2行列
> <A1|v1>; #2x3行列(拡大係数行列などの作成)
> ?MVShortcut; #res:参照
>>>
$$
{\it v1}\, := \, \left[ \begin {array}{c} x\\ y\end {array} \right] \notag \\
{\it v2}\, := \, \left[ \begin {array}{ccc} x&y&z\end {array} \right] \notag \\
{\it A1}\, := \, \left[ \begin {array}{cc} 1&2\\ 3&4\end {array} \right]  \notag \\
\left[ \begin {array}{ccc} 1&2&x\\ 3&4&y\end {array} \right] \notag
$$


!!行列,ベクトルの成分の抽出(MVextraction)
行列A1の1行2列の成分を取り出すには,
<<<maple
> A1[1,2]; #res: 2
>>>
行列の一部を行列として取り出すには
<<<maple
> A1[1..2,1..2];
>>>
$$
\left[ \begin {array}{cc} 1&2\\ 3&4\end {array} \right]
$$
2x2行列の2列目(行の長さに関係なく)でつくるベクトルは
<<<maple
> A1[..,2..2];
>>>
$$
\left[ \begin {array}{c} 2\\ 4\end {array} \right]
$$
同じことが,行(Row)あるいは列(Column)抽出関数でもできる.使い方は次の通り.
<<<maple
> Column(A1,2);
>>>
$$
\left[ \begin {array}{c} 2\\ 4\end {array} \right]
$$


#  次の行列,ベクトルを作れ.

(a)$  \left[ \begin {array}{ccc} 3&3&3\\ 3&3&3\end {array} \right] $,
(b)$  \left[ \begin {array}{ccc} 1&0&0\\ 0&1&0\end {array} \right] $,
(c)$  \left[ \begin {array}{ccc} 1&2&3\end {array} \right] $,
(d)$  \left[ \begin {array}{ccc} 1&0&0\\ 0&2&0\\ 0&0&3\end {array} \right] $,
(e)$  \left[ \begin {array}{cc} x&{x}^{2}\\ {x}^{2}&{x}^{3}\end {array} \right] $,
(f)$  \left[ \begin {array}{ccc} 1&2&3\\ 4&5&6\\ 7&8&9\end {array} \right] $



#
#
<<<maple
> Matrix([3,3,3],[3,3,3]]);
> Matrix(<3,3|3,3|3,3>);
>>>
$$
\left[ \begin {array}{ccc} 3&3&3\\ 3&3&3\end {array} \right]
$$
そのまま直打ちしてもいいが,少し賢い生成法も記しておく.詳しくはヘルプ参照.
<<<maple
> Matrix(2,3,3);
>>>
$$
\left[ \begin {array}{ccc} 3&3&3\\ 3&3&3\end {array} \right]
$$

#
<<<maple
> Matrix(2,3,shape=identity);
>>>
$$
\left[ \begin {array}{ccc} 1&0&0\\ 0&1&0\end {array} \right]
$$

#
<<<maple
> Vector[row]([1,2,3]);
> Vector(<1|2|3>):
>>>
$$
\left[ \begin {array}{ccc} 1&2&3\end {array} \right]
$$

#
<<<maple
> with(LinearAlgebra):
> V:=Vector[row]([1,2,3]);
> DiagonalMatrix(V);
>>>
$$
V\, := \, \left[ \begin {array}{ccc} 1&2&3\end {array} \right] \notag \\
\left[ \begin {array}{ccc} 1&0&0\\ 0&2&0\\ 0&0&3\end {array} \right] \notag
$$

#
<<<maple
> f:= (i,j) -> x^(i+j-1):
> Matrix(2,f);
>>>
$$
\left[ \begin {array}{cc} x&{x}^{2}\\ {x}^{2}&{x}^{3}\end {array} \right]
$$


#
<<<maple
> Matrix(3,[seq(i,i=1..9)]);
>>>
$$
\left[ \begin {array}{ccc} 1&2&3\\ 4&5&6\\ 7&8&9\end {array} \right]
$$

<<<maple
> n:=3:
> f:=(i,j)->(i-1)*n+j;
> Matrix(3,3,f);
>>>
$$
f\, := \,( {i,j} )\mapsto  \left( i-1 \right) n+j  \notag \\
\left[ \begin {array}{ccc} 1&2&3\\ 4&5&6\\ 7&8&9\end {array} \right] \notag
$$



!内積外積(DotProduct,CrossProduct)

線形代数の計算にはあらかじめ関数パッケージ(LinearAlgebra)を呼び出しておく.
<<<maple
> with(LinearAlgebra):
>>>


!!スカラーとのかけ算

<<<maple
> v1:=Vector([x, y]): 3*v1;
>>>
$$
\left[ \begin {array}{c} 3\,x\\ 3\,y\end {array} \right]
$$


!!行列,ベクトルの足し算,引き算
<<<maple
> LL1 := [[1, 2], [3, 4]]: A1 := Matrix(LL1): A2 := Matrix([[x, x], [y, y]]):
> 3*A1-4*A2;
>>>
$$
\left[ \begin {array}{cc} 3-4\,x&6-4\,x\\ 9-4\,y&12-4\,y\end {array} \right]
$$


!!内積(DotProduct, `.`)
<<<maple
> v1:=Vector([1,1,3]): v2:=Vector([1,2,-1]): v1.v2;
>>>
$$
0
$$

!!外積(CrossProduct, `\&x`)
<<<maple
> CrossProduct(v1, v2); v1 &x v2:
>>>
$$
\left[ \begin {array}{c} -7\\ 4\\ 1\end {array} \right]
$$


!!スカラー3重積
<<<maple
> v3 := Vector([-1,2,1]); CrossProduct(v1,v2).v3;
>>>
$$
{\it v3}\, := \, \left[ \begin {array}{c} -1\\ 2\\ 1\end {array} \right] \notag \\
16 \notag
$$


!!転置(Transpose, `\&T`)
<<<maple
> Transpose(A1);
>>>
$$
\left[ \begin {array}{cc} 1&3\\ 2&4\end {array} \right]
$$
また横ベクトルを縦ベクトル(あるいはその逆)にするのも同じ.
<<<maple
> Transpose(v1);
>>>
$$
\left[ \begin {array}{ccc} 1&1&3\end {array} \right]
$$


#  
行列$A= \left[ \begin {array}{cc} 1&2\\ 3&4\end {array} \right]$,
$B= \left[ \begin {array}{cc} 2&3\\ 4&5\end {array} \right]$,
およびベクトル$v= \left[ \begin {array}{c} 1\\ 2\end {array} \right] $を作り,
以下の計算を行い結果を観察せよ.

i) $A+3B$,
ii) $A-B$,
iii) $A+E$,
iv) $A.B$,
v) $B.A$,
vi) $A.v$,
vii) $v.A$,
viii) $v$の転置(Transpose)を
$A$に左側から掛けよ,
ix) $A^3$

#  2次元平面上で原点の周りの角度tの回転行列は
<<<maple
> Ar:=t->Matrix([[cos(t),-sin(t)],[sin(t),cos(t)]]);
>>>
で定義できる.

i) Pi/6 回転させる行列を作り,単位ベクトル(1,0),(0,1)がどの点に移動するか確認せよ.

ii) Pi/6 回転させた後,続けてPi/4 回転させる操作を続けて行う回転行列を求めよ.また,角度を直接入力して要素を比較せよ.

#
行列$A= \left[ \begin {array}{ccc} 1&2&3\\ 4&5&6\\ 7&8&9\end {array} \right]$
について
$A+A^t$,
$A-A^t$
を求めて交代行列,対称行列を作れ.


#

<<<maple
> with(LinearAlgebra): A:=Matrix([[1,2],[3,4]]); B:=Matrix([[2,3],[4,5]]);
> v:=Vector([1,2]); E:=IdentityMatrix(2);
>>>
$$
A\, := \, \left[ \begin {array}{cc} 1&2\\ 3&4\end {array} \right] \notag \\
B\, := \, \left[ \begin {array}{cc} 2&3\\ 4&5\end {array} \right] \notag \\
v\, := \, \left[ \begin {array}{c} 1\\ 2\end {array} \right] \notag \\
E\, := \, \left[ \begin {array}{cc} 1&0\\ 0&1\end {array} \right] \notag
$$
i)--vi)
<<<maple
> A+3*B; A-B; A+E; A.B; B.A; A.v;
>>>
$$
\left[ \begin {array}{cc} 7&11\\ 15&19\end {array} \right] \notag \\
\left[ \begin {array}{cc} -1&-1\\ -1&-1\end {array} \right] \notag \\
\left[ \begin {array}{cc} 2&2\\ 3&5\end {array} \right] \notag \\
\left[ \begin {array}{cc} 10&13\\ 22&29\end {array} \right] \notag \\
\left[ \begin {array}{cc} 11&16\\ 19&28\end {array} \right] \notag \\
\left[ \begin {array}{c} 5\\ 11\end {array} \right] \notag
$$
vii)
<<<maple
> v.A;
>>>
<<<maple
Error, (in LinearAlgebra:-VectorMatrixMultiply) invalid input:
LinearAlgebra:-VectorMatrixMultiply expects its 1st argument, v, to be of type
Vector[row] but received Vector(2, {(1) = 1, (2) = 2})
>>>
v.Aは次元が合わないので計算できない.次元を合わすためには,vに転置(Transpose)をかけて横ベクトルにしておく必要がある.

viii)
<<<maple
> Transpose(v).A;
>>>
$$
\left[ \begin {array}{cc} 7&10\end {array} \right]
$$

ix)
<<<maple
> A^3;
>>>
$$
\left[ \begin {array}{cc} 37&54\\ 81&118\end {array} \right]
$$
#
i)
<<<maple
> with(LinearAlgebra): e1:=Vector([1,0]); e2:=Vector([0,1]);
> Ar:=t->Matrix([[cos(t),-sin(t)],[sin(t),cos(t)]]); Ar(Pi/6).e1; Ar(Pi/6).e2;
>>>
$$
{\it e1}\, := \, \left[ \begin {array}{c} 1\\ 0\end {array} \right] \notag \\
{\it e2}\, := \, \left[ \begin {array}{c} 0\\ 1\end {array} \right]  \notag \\
{\it Ar}\, := \,t\mapsto  \left[ \begin {array}{cc} \cos \left( t \right) &-\sin \left( t \right) \\ \sin \left( t \right) &\cos \left( t \right) \end {array} \right]  \notag \\
\left[ \begin {array}{c} 1/2\,\sqrt {3}\\ 1/2\end {array} \right] \notag \\
\left[ \begin {array}{c} -1/2\\ 1/2\,\sqrt {3}\end {array} \right]  \notag
$$

ii.) 2つの関数を別々に計算.
<<<maple
> Ar(Pi/4).Ar(Pi/6);
> Ar(Pi/6+Pi/4);
>>>
$$
\left[ \begin {array}{cc} 1/4\,\sqrt {2}\sqrt {3}-1/4\,\sqrt {2}&-1/4\,\sqrt {2}-1/4\,\sqrt {2}\sqrt {3}\\ 1/4\,\sqrt {2}\sqrt {3}+1/4\,\sqrt {2}&1/4\,\sqrt {2}\sqrt {3}-1/4\,\sqrt {2}\end {array} \right] \notag \\
\left[ \begin {array}{cc} \cos \left( {\frac {5}{12}}\,\pi  \right) &-\sin \left( {\frac {5}{12}}\,\pi  \right) \\ \sin \left( {\frac {5}{12}}\,\pi  \right) &\cos \left( {\frac {5}{12}}\,\pi  \right) \end {array} \right] \notag
$$

2つの操作の差のevalfをとるとほぼ0,つまり一致していることが確認できる.
<<<maple
> evalf(Ar(Pi/6+Pi/4)-Ar(Pi/6).Ar(Pi/4));
>>>
$$
\left[ \begin {array}{cc} - 0.0000000002000000000& 0.0\\  0.0&- 0.0000000002000000000\end {array} \right]
$$

#

<<<maple
> A:=Matrix([[1,2,3],[4,5,6],[7,8,9]]); As:=A+Transpose(A); Aa:=A-Transpose(A);
>>>
$$
A\, := \, \left[ \begin {array}{ccc} 1&2&3\\ 4&5&6\\ 7&8&9\end {array} \right] \notag \\
{\it As}\, := \, \left[ \begin {array}{ccc} 2&6&10\\ 6&10&14\\ 10&14&18\end {array} \right] \notag \\
{\it Aa}\, := \, \left[ \begin {array}{ccc} 0&-2&-4\\ 2&0&-2\\ 4&2&0\end {array} \right] \notag
$$


!行列の基本操作,掃き出し(LUDecomposition)

線形代数の計算にはあらかじめ関数パッケージ(LinearAlgebra)を呼び出しておく.
<<<maple
> with(LinearAlgebra):
>>>


!!行列の基本操作
行列の掃き出しに必要となる行列の基本操作はRowOperation, ColumnOperationを参照.


!!掃き出し法,LU分解(LUDecomposition)
掃き出し法の計算は,LUDecompositionでおこなう.まず拡大係数行列を作る.
<<<maple
> A1:=<1,2;3,4>; b:=<2,3>; <A1|b>;
>>>
$$
{\it A1}\, := \, \left[ \begin {array}{cc} 1&2\\ 3&4\end {array} \right] \notag \\
b\, := \, \left[ \begin {array}{c} 2\\ 3\end {array} \right] \notag \\
\left[ \begin {array}{ccc} 1&2&2\\ 3&4&3\end {array} \right]  \notag
$$
これにLU分解をかける.それぞれP(permutation,置換), L(lower triangle,下三角), U(upper
triangle,上三角)行列に代入している.
<<<maple
> P,L,U:=LUDecomposition(<A1|b>);
>>>
$$
P,\,L,\,U\, := \, \left[ \begin {array}{cc} 1&0\\ 0&1\end {array} \right] ,\, \left[ \begin {array}{cc} 1&0\\ 3&1\end {array} \right] ,\, \left[ \begin {array}{ccc} 1&2&2\\ 0&-2&-3\end {array} \right]
$$
さらに被約階段行列(row reduced echelonmatrix;後退代入までおこなって,解まで求めた状態)を求めるには,output='R'を指定する.
<<<maple
> LUDecomposition(<A1|b>, output='R');
>>>
$$
\left[ \begin {array}{ccc} 1&0&-1\\ 0&1&3/2\end {array} \right]
$$


!!階数(Rank)
行列の性質の中でも特に重要な階数(Rank)は次のコマンドで求められる.
<<<maple
> Rank(A1);
>>>
$$
2
$$


#  行列$A= \left[ \begin {array}{ccc} 1&2&3\\  4&5&6\\  7&8&9\end {array} \right]$について,
RowOperationのヘルプを参照して,次の行基本操作をおこない,階数を求め,コマンドLUDecomposition, Rankの結果と比べよ.

i) 2行目から1行目の4倍を引く.

ii) 3行目から1行目の7倍を引く.

iii) 2行目を-1/3倍する.

iv) 3行目に2行目の6倍を足す.

RowOperationのコツは,最初はinplace=falseでやってみて,うまくいけばtrueにかえる.

#  
次の連立方程式の解を掃き出し法で求めよ.GenerateMatrixを使えば連立方程式から拡大係数行列を直接生成することも可能.

(i)

$$
\left\{
\begin{array}{cc}x +y -z &=2 \\
2 x -3 y +z &=4  \\
4 x -y +3 z &=1  
\end{array} \right.
$$

(ii)

$$
\left\{
\begin{array}{cl}2 x +4 y -3 z &=1   \\
3 x -8 y +6 z &=58   \\
x -2 y -9 z &=23   \\
\end{array} \right.
$$

(iii)

$$
\left\{
\begin{array}{cl}
1 x -10 y -3 z -7 u &=2   \\
2 x -4 y +3 z +4 u &=-3   \\
x -2 y +6 z +5 u &=-1   \\
x +8 y +9 z +3 u &=5
\end{array} \right.
$$
(iv)

$$
\left\{\begin{array}{cl}x +y +z &=a +b +c    \\
ax+by+cz &=ab +bc +ca   \\
bc\,x +ca\,y + ab\,z &=3\,abc
\end{array} \right.
$$

#  
次の連立方程式

$$
\left\{
\begin{array}{cc}
x _{1}+2 x _{2}-x _{3} & =0\\
x _{1}+x _{2}+3 x _{4}&=0    \\
x _{1}+5 x _{2}-2 x _{3}+3 x _{4}&=0  \\
x _{1}+3 x _{2}-2 x _{3}- 3 x _{4}&=0
\end{array}
\right.
$$
をsolveを使って,$x_1, x_2, x_3, x_4$について解け.
次にGenerateMatrixを使って,拡大係数行列にした後,LUDecompositionを用いて掃き出しを行い結果を比較せよ.


#
<<<maple
> A:=Matrix([[1,2,3],[4,5,6],[7,8,9]]); with(LinearAlgebra): ?RowOperation;
>>>
$$
A\, := \, \left[ \begin {array}{ccc} 1&2&3\\  4&5&6\\  7&8&9\end {array} \right]
$$
ヘルプに書かれてある例を見本にして,コマンドを記述.
<<<maple
> RowOperation(A,[2,1],-4);
>>>
$$
\left[ \begin {array}{ccc} 1&2&3\\  0&-3&-6\\  7&8&9\end {array} \right]
$$
結果を最初の引数(A)に上書きするoption(inplace=true)をつける.最初からではなく,うまくいったのを確認してからつけるのがコツ.
<<<maple
> RowOperation(A,[3,1],-7,inplace=true);
>>>
$$
\left[ \begin {array}{ccc} 1&2&3\\  0&-3&-6\\  0&-6&-12\end {array} \right]
$$
<<<maple
> RowOperation(A,2,-1/3,inplace=true);
>>>
$$
\left[ \begin {array}{ccc} 1&2&3\\  0&1&2\\  0&-6&-12\end {array} \right]
$$
<<<maple
> RowOperation(A,[3,2],6);
>>>
$$
\left[ \begin {array}{ccc} 1&2&3\\  0&1&2\\  0&0&0\end {array} \right]
$$
LUDecompositionによる結果と見比べる.
<<<maple
> A0:=Matrix([[1,2,3],[4,5,6],[7,8,9]]):
> LUDecomposition(A0);
>>>
$$
\left[ \begin {array}{ccc} 1&0&0\\  0&1&0\\  0&0&1\end {array} \right] ,\, \left[ \begin {array}{ccc} 1&0&0\\  4&1&0\\  7&2&1\end {array} \right] ,\, \left[ \begin {array}{ccc} 1&2&3\\  0&-3&-6\\  0&0&0\end {array} \right]
$$
最後の行がすべて0になっているので,階数は2となる.Rankにより確認.
<<<maple
> Rank(A);
>>>
$$
2
$$

#
i) GenerateMatrixによる係数行列と右辺のベクトルを生成する方法は以下のとおり.
<<<maple
> eqs:={x+y-z=2,2*x-3*y+z=4,4*x-y+3*z=1}; GenerateMatrix(eqs,{x,y,z});
>>>
$$
{\it eqs}\, := \, \left\{ x+y-z=2,2\,x-3\,y+z=4,4\,x-y+3\,z=1 \right\} \notag \\
\left[ \begin {array}{ccc} 1&1&-1\\  2&-3&1\\  4&-1&3\end {array} \right] ,\, \left[ \begin {array}{c} 2\\  4\\  1\end {array} \right] \notag
$$

i)
<<<maple
> A:= Matrix([[1,1,-1],[2,-3,1],[4,-1,3]]); b:=<2,4,1>;
> LUDecomposition(<A|b>,output='R');
>>>
$$
A\, := \, \left[ \begin {array}{ccc} 1&1&-1\\  2&-3&1\\  4&-1&3\end {array} \right]  \notag \\
b\, := \, \left[ \begin {array}{c} 2\\  4\\  1\end {array} \right]  \notag \\
\left[ \begin {array}{cccc} 1&0&0&{\frac {13}{10}}\\  0&1&0&-{\frac {21}{20}}\\  0&0&1&-7/4\end {array} \right]  \notag
$$

ii)
<<<maple
> A:= Matrix([[2,4,-3],[3,-8,6],[8,-2,-9]]); b:=<1,5,-23>;
> LUDecomposition(<A|b>,output='R');
>>>
$$
A\, := \, \left[ \begin {array}{ccc} 2&4&-3\\  3&-8&6\\  8&-2&-9\end {array} \right]  \notag \\
b\, := \, \left[ \begin {array}{c} 1\\  5\\  -23\end {array} \right]  \notag \\
\left[ \begin {array}{cccc} 1&0&0&1\\  0&1&0&2\\  0&0&1&3\end {array} \right]  \notag
$$

iii)
<<<maple
> A:= Matrix([[1,-10,-3,-7],[2,-4,3,4],[3,-2,6,5],[1,8,9,3]]); b:=<2,-3,-1,5>;
> LUDecomposition(<A|b>,output='R');
>>>
$$
A\, := \, \left[ \begin {array}{cccc} 1&-10&-3&-7\\  2&-4&3&4\\  3&-2&6&5\\  1&8&9&3\end {array} \right]  \notag \\
b\, := \, \left[ \begin {array}{c} 2\\  -3\\  -1\\  5\end {array} \right]   \notag \\
\left[ \begin {array}{ccccc} 1&0&0&0&1\\  0&1&0&0&1/2\\  0&0&1&0&1/3\\  0&0&0&1&-1\end {array} \right]  \notag
$$

iv)
<<<maple
> restart; with(LinearAlgebra): A:= Matrix([[1,1,1],[a,b,c],[b*c,c*a,a*b]]);
> bb:=<a+b+c,a*b+b*c+c*a,3*a*b*c>; RR:=LUDecomposition(<A|bb>,output='R');
>>>
$$
A\, := \, \left[ \begin {array}{ccc} 1&1&1\\  a&b&c\\  bc&ca&ab\end {array} \right]   \notag \\
{\it bb}\, := \, \left[ \begin {array}{c} a+b+c\\  ab+bc+ca\\  3\,abc\end {array} \right]   \notag \\
{\it RR}\, := \, \left[ \begin {array}{cccc} 1&0&0&-{\frac {a \left( {b}^{2}-2\,bc+{c}^{2} \right) }{ \left( a-b \right)  \left( a-c \right) }}\\  0&1&0&{\frac { \left( {a}^{2}-2\,ca+{c}^{2} \right) b}{ \left( b-c \right)  \left( a-b \right) }}\\  0&0&1&-{\frac {c \left( -2\,ab+{b}^{2}+{a}^{2} \right) }{ab-bc+{c}^{2}-ca}}\end {array} \right]   \notag
$$

<<<maple
> factor(Column(RR,4)[1]);
>>>
などとすればさらに見やすく,変形される
$$
-{\frac {a \left( b-c \right) ^{2}}{ \left( a-b \right)  \left( a-c \right) }}
$$
3.
<<<maple
> eqs:={x1+2*x2-x3=0,x1+x2+3*x4=0,3*x1+5*x2-2*x3+3*x4=0,x1+3*x2-2*x3-3*x4=0};
> solve(eqs,{x1,x2,x3,x4});
>>>
$$
{\it eqs}\, := \, \left\{ {\it x1}+{\it x2}+3\,{\it x4}=0,{\it x1}+2\,{\it x2}-{\it x3}=0, \right. \notag \\
\left. {\it x1}+3\,{\it x2}-2\,{\it x3}-3\,{\it x4}=0,3\,{\it x1}+5\,{\it x2}-2\,{\it x3}+3\,{\it x4}=0 \right\} \notag \\
\left\{ {\it x1}=-6\,{\it x4}-{\it x3},{\it x2}=3\,{\it x4}+{\it x3},{\it x3}={\it x3},{\it x4}={\it x4} \right\} \notag
$$

<<<maple
> A1,b:=GenerateMatrix(eqs,[x1,x2,x3,x4]);
> LUDecomposition(<A1|b>,output='R');
>>>
$$
{\it A1},\,b\, := \, \left[ \begin {array}{cccc} 1&1&0&3\\  1&2&-1&0\\  1&3&-2&-3\\  3&5&-2&3\end {array} \right] ,\, \left[ \begin {array}{c} 0\\  0\\  0\\  0\end {array} \right]   \notag \\
\left[ \begin {array}{ccccc} 1&0&1&6&0\\  0&1&-1&-3&0\\  0&0&0&0&0\\  0&0&0&0&0\end {array} \right]   \notag
$$


!逆行列(MatrixInverse)

線形代数の計算にはあらかじめ関数パッケージ(LinearAlgebra)を呼び出しておく.
<<<maple
> with(LinearAlgebra):
>>>


!!行列式(Determinant)
<<<maple
> A0 := Matrix([[x,y],[z,u]]); Determinant(A0);
>>>
$$
{\it A0}\, := \, \left[ \begin {array}{cc} x&y\\  z&u\end {array} \right] \notag \\
xu-yz \notag
$$


!!逆行列(MatrixInverse)
<<<maple
> A2:=MatrixInverse(A0); simplify(A0.A2);
>>>
$$
{\it A2}\, := \, \left[ \begin {array}{cc} {\frac {u}{xu-yz}}&-{\frac {y}{xu-yz}}\\  -{\frac {z}{xu-yz}}&{\frac {x}{xu-yz}}\end {array} \right]\notag \\
\left[ \begin {array}{cc} 1&0\\  0&1\end {array} \right]\notag
$$


!!その他の演算
随伴(Adjoint)などもコマンドだけで求まる.詳しくはヘルプ参照.


#
次の連立方程式の係数行列の行列式を求めよ.

(i)

$$
\left\{
\begin{array}{cc}x +y -z &=2 \\
2 x -3 y +z &=4  \\
4 x -y +3 z &=1  
\end{array} \right.
$$

(ii)

$$
\left\{
\begin{array}{cl}2 x +4 y -3 z &=1   \\
3 x -8 y +6 z &=58   \\
x -2 y -9 z &=23   \\
\end{array} \right.
$$

(iii)

$$
\left\{
\begin{array}{cl}
1 x -10 y -3 z -7 u &=2   \\
2 x -4 y +3 z +4 u &=-3   \\
x -2 y +6 z +5 u &=-1   \\
x +8 y +9 z +3 u &=5
\end{array} \right.
$$
(iv)

$$
\left\{\begin{array}{cl}x +y +z &=a +b +c    \\
ax+by+cz &=ab +bc +ca   \\
bc\,x +ca\,y + ab\,z &=3\,abc
\end{array} \right.
$$

#
上の連立方程式の係数行列の逆行列を求めよ.またベクトルbに作用して解を求めよ.


#
<<<maple
> with(LinearAlgebra): eqs:={x+y-z=2,2*x-3*y+z=4,4*x-y+3*z=1};
> A,b:=GenerateMatrix(eqs,{x,y,z}); Determinant(A);
>>>
$$
{\it eqs}\, := \, \left\{ x+y-z=2,2\,x-3\,y+z=4,4\,x-y+3\,z=1 \right\}  \notag \\
A,\,b\, := \, \left[ \begin {array}{ccc} 1&1&-1\\  2&-3&1\\  4&-1&3\end {array} \right] ,\, \left[ \begin {array}{c} 2\\  4\\  1\end {array} \right]\notag \\
-20\notag
$$

#
<<<maple
> MatrixInverse(A); simplify(MatrixInverse(A).b);
>>>
$$
\left[ \begin {array}{ccc} 2/5&1/10&1/10\\  1/10&-{\frac {7}{20}}&{\frac {3}{20}}\\  -1/2&-1/4&1/4\end {array} \right] \notag \\
\left[ \begin {array}{c} {\frac {13}{10}}\\  -{\frac {21}{20}}\\  -7/4\end {array} \right]\notag
$$


!固有値(EigenVectors)

線形代数の計算にはあらかじめ関数パッケージ(LinearAlgebra)を呼び出しておく.
<<<maple
> with(LinearAlgebra):
>>>


!!固有値(EigenVectors)
固有値(Eigenvalues)と固有ベクトルを共に求めるにはEigenvectorsを使う.下の例では,固有値と固有ベクトルを変数l,vに代入している.
<<<maple
> A0 := Matrix(2, 2, [[1,2], [2,1]]); l,v:=Eigenvectors(A0);
>>>
$$
{\it A0}\, := \, \left[ \begin {array}{cc} 1&2\\  2&1\end {array} \right] \notag \\
l,\,v\, := \, \left[ \begin {array}{c} -1\\  3\end {array} \right] ,\, \left[ \begin {array}{cc} -1&1\\  1&1\end {array} \right] \notag
$$

!!固有ベクトルの取り出し(Column)
行列の列を要素とするベクトル生成Columnを使って,一番目の固有値に対応する固有ベクトルを取り出す.
<<<maple
> Column(v,1);
>>>
$$
\left[ \begin {array}{c} -1\\  1\end {array} \right]
$$
これを使って,固有値(l)と固有ベクトル(v)の関係

$$
A_0.v=\lambda.v
$$
が確認できる.
<<<maple
> A0.Column(v,1); l[1]*Column(v,1);
>>>
$$
\left[ \begin {array}{c} 1\\  -1\end {array} \right] \notag \\
\left[ \begin {array}{c} 1\\  -1\end {array} \right] \notag
$$


!!固有ベクトルの規格化(Normalize)
用意されているコマンドが確かめられる.
<<<maple
> ?Normalize;
>>>
一般的な内積を使って長さを規格化するには,以下のコマンドを使う.
<<<maple
> Normalize(Column(v,1),Euclidean);
>>>
$$
\left[ \begin {array}{c} -1/2\,\sqrt {2}\\  1/2\,\sqrt {2}\end {array} \right]
$$


!!対角化
固有ベクトルを用いて,次のとおり行列は対角化される.
<<<maple
> MatrixInverse(v).A0.v;
>>>
$$
\left[ \begin {array}{cc} -1&0\\  0&3\end {array} \right]
$$
一見対角化されてない場合でも,simplifyを掛けて整理すると対角化されているのが確認できる.


!!その他の演算
対角和(Trace),ジョルダン標準形(JordanForm)などもコマンドだけで求まる.詳しくはヘルプ参照.


#
行列

$$
A= \left[ \begin {array}{ccc} 1&-2&1\\  -1&2&1\\  1&2&1\end {array} \right]
$$
の固有値を固有方程式

$$
\left| A-\lambda E \right| =0
$$
を解いて求めよ.EigenVectorsを用いて固有値と固有ベクトルを求めよ.固有値,固有ベクトルの関係

$$
A.v  =\lambda v
$$
を確認せよ.さらに,固有ベクトルを長さ1に規格化せよ.

#
行列

$$
A= \left[ \begin {array}{ccc} 2&0&1\\  0&3&0\\  1&0&2\end {array} \right]
$$
を対角化する変換行列Pを求め,対角化せよ.


#
<<<maple
> A:=Matrix([[1,-2,1],[-1,2,1],[1,2,1]]); E:=Matrix(3,3,shape=identity):
> eq:=Determinant(A-x*E); solve(eq,x);
>>>
$$
A\, := \, \left[ \begin {array}{ccc} 1&-2&1\\  -1&2&1\\  1&2&1\end {array} \right] \notag \\
{\it eq}\, := \,4\,{x}^{2}-{x}^{3}-8 \notag \\
2,\,1+ \sqrt{5},\,1- \sqrt{5} \notag
$$
<<<maple
> l,v:=Eigenvectors(A); v1:=Column(v,3); evalf(A.v1); evalf(l[3].v1);
> Normalize(v1,Euclidean); evalf(Normalize(v1,Euclidean));
>>>
$$
l,\,v\, := \, \left[ \begin {array}{c} \sqrt {5}+1\\  1-\sqrt {5}\\  2\end {array} \right] ,\, \left[ \begin {array}{ccc} {\frac { \left( \sqrt {5}-3 \right) \sqrt {5}}{-5+3\,\sqrt {5}}}&-{\frac { \left( -3-\sqrt {5} \right) \sqrt {5}}{-5-3\,\sqrt {5}}}&1\\  -{\frac {-5+\sqrt {5}}{-5+3\,\sqrt {5}}}&-{\frac {-5-\sqrt {5}}{-5-3\,\sqrt {5}}}&0\\  1&1&1\end {array} \right] \notag \\
{\it v1}\, := \, \left[ \begin {array}{c} 1\\  0\\  1\end {array} \right] \notag \\
\left[ \begin {array}{c}  2.0\\   0.0\\   2.0\end {array} \right] \notag \\
\left[ \begin {array}{c}  2.0\\   0.0\\   2.0\end {array} \right] \notag \\
\left[ \begin {array}{c} 1/2\,\sqrt {2}\\  0\\  1/2\,\sqrt {2}\end {array} \right] \notag \\
\left[ \begin {array}{c}  0.7071067810\\   0.0\\   0.7071067810\end {array} \right] \notag \\
$$

#
<<<maple
> A:=Matrix([[2,0,1],[0,3,0],[1,0,2]]); l,v:=Eigenvectors(A);
> MatrixInverse(v).A.v;
>>>
$$
A\, := \, \left[ \begin {array}{ccc} 2&0&1\\  0&3&0\\  1&0&2\end {array} \right] \notag \\
l,\,v\, := \, \left[ \begin {array}{c} 3\\  3\\  1\end {array} \right] ,\, \left[ \begin {array}{ccc} 1&0&-1\\  0&1&0\\  1&0&1\end {array} \right] \notag \\
\left[ \begin {array}{ccc} 3&0&0\\  0&3&0\\  0&0&1\end {array} \right] \notag
$$