Julia(SymPy)で行列の核、像、線形空間の基底と次元を求める方法

どうも、木村(@kimu3_slime)です。

今回は、Julia(SymPy)で行列の核、像、線形空間の基底と次元を求める方法を紹介します。

前提知識:線形写像の核、像の定義:部分空間となることの証明

 



準備

SymPyを使うので、持っていなければインストールしておきましょう。

準備として、以下のコードを実行しておきます。

 

行列の核、像、線形空間の基底と次元を求める方法

「行列.columnspace()」で行列の像(列空間 column space)の基底の集まりを求められます。

\[ \begin{aligned}\left[ \begin{array}{r}1\\3\end{array}\right]\end{aligned} \]

\[ \begin{aligned}\left[ \begin{array}{r}2\\4\end{array}\right]\end{aligned} \]

像空間の結果は横向きの表示になっていて少しわかりにくいですが、各成分を参照すればきちんと表示されます。

columnspaceの結果が像空間の基底で、\((1,3),(2,4)\)が基底です。

 

「行列.nullspace」で核(ゼロ空間)の基底が求められます。

「Any[]」は結果が空であること、つまり核が空集合\(\ker B = \varnothing\)であることを意味しています。

 

lengthで要素の個数を数えることができます。基底の個数が線形空間の次元なので、これによって像と核の次元を求めてみましょう。

\[ \begin{aligned}2\end{aligned} \]

\[ \begin{aligned}0\end{aligned} \]

 

回転行列について、文字を含んでいても同様の計算ができます。

\[ \begin{aligned}\left[ \begin{array}{rr}\cos{\left(α \right)}&- \sin{\left(α \right)}\\\sin{\left(α \right)}&\cos{\left(α \right)}\end{array}\right]\end{aligned} \]

 

次の4つのベクトルによって定まる行列の像、核を求めてみましょう。

\[ \begin{aligned}b_1,b_2,b_3,b_4 =\begin{pmatrix} 2\\ 0 \\-3 \\-4\end{pmatrix},\begin{pmatrix} 0\\ 3 \\1 \\ 2\end{pmatrix}, \begin{pmatrix} 1\\ 2 \\1 \\ 0 \end{pmatrix} , \begin{pmatrix} 0\\ -1 \\-4 \\ -2 \end{pmatrix}\end{aligned} \]

\[ \begin{aligned}\left[ \begin{array}{rrrr}2&0&1&0\\0&3&2&-1\\-3&1&1&-4\\-4&2&0&-2\end{array}\right]\end{aligned} \]

この像は、4つのベクトルが生成する空間に等しいです。4つベクトルはありますが、その基底は3つ(3次元)です。

\[ \begin{aligned}3\end{aligned} \]

\[ \begin{aligned}1\end{aligned} \]

 

一般論として、像の次元とランクは等しく\(\dim A(\mathbb{R}^n)= \operatorname{rank} A\)、像と核の次元の間には次元定理\(\dim A(\mathbb{R}^n)+\dim (\ker A)= n\)が成り立ちます。

今回の例で、計算して確かめてみましょう。

\[ \begin{aligned}3\end{aligned} \]

\[ \begin{aligned}1\end{aligned} \]

結果は確かに一致していますね。

 

次の行列によって定まる線形方程式\(Ax=0\)の解空間を求めてみましょう。

\[ \begin{aligned}\left[ \begin{array}{rrrr}2&0&1&0\\0&3&2&-1\\-2&3&1&-1\\2&3&3&-1\end{array}\right]\end{aligned} \]

\[ \begin{aligned}2\end{aligned} \]

解空間の基底は基本解と呼ばれますが、それが求められています。\(Ax=0\)を満たす0でない解が、2次元分あることがわかりますね。

 

以上、Julia(SymPy)で行列の核、像、線形空間の基底と次元を求める方法を紹介してきました。

ランクを求める方法と違って、基底が具体的に得られるのが嬉しいですね。

木村すらいむ(@kimu3_slime)でした。ではでは。

 

1から始める Juliaプログラミング
進藤 裕之(著), 佐藤 建太(著)
コロナ社 (2020-03-26T00:00:01Z)
5つ星のうち4.5
¥7,353 (コレクター商品)

 

こちらもおすすめ

線形写像の核、像の定義:部分空間となることの証明

回転行列とは? 導出と例、性質を紹介

実数空間、線形結合、線形部分空間、次元とは何か:2次元を例に

線形方程式と線形写像の像、次元とランクの関係

線形方程式の解空間とは:基底・基本解、次元の求め方