【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

四元の半群

冪乗を求めるために作った行列を、四元の半群として考えてみます。

【注意】この記事は独自の調査に基づいており、一般的な内容ではありません。

シリーズの記事です。

  1. 行列の分割とケイリー・ハミルトンの定理
  2. 冪零行列を使って冪乗を求める
  3. 四元の半群 ← この記事

目次

生成

二次の非正則行列 BB と冪零行列 CC で生成される代数系を考えます。

BB の2乗はトレースを掛けることと同じで、CC の2乗は OO です。

B2=tr(B)B, C2=O B^2=\operatorname{tr}(B)B,\ C^2=O

冪零行列は非正則です。非正則行列同士の積は非正則となるため BCBCCBCB も非正則です。そのため BCBCCBCB の2乗もそれらのトレースを掛けるのと同じです。

(BC)2=tr(BC)BC, (CB)2=tr(CB)CB (BC)^2=\operatorname{tr}(BC)BC, \ (CB)^2=\operatorname{tr}(CB)CB

トレースの性質より tr(BC)=tr(CB)\operatorname{tr}(BC)=\operatorname{tr}(CB) です。表記の都合上1文字で置き換えます。

b=tr(B), c=tr(BC)=tr(CB)B2=bB, (BC)2=cBC, (CB)2=cCB b=\operatorname{tr}(B), \ c=\operatorname{tr}(BC)=\operatorname{tr}(CB) \\ B^2=bB,\ (BC)^2=cBC,\ (CB)^2=cCB

BCBCCBCB の2乗の中間に当たる BCBBCBCBCC BC も他とは区別されます。

そのため BBCC で生成される代数系は以下の6つの基底を持ちます。

B,C,BC,CB,BCB,CBC B,C,BC,CB,BCB,CBC

基底を減らす

BB を成分表示します。

B=(b1b2b3b4) B=\begin{pmatrix}b_1&b_2\\b_3&b_4\end{pmatrix}

BB は非正則のため次の関係が成り立ちます。

b1b4b2b3=0 b_1b_4-b_2b_3=0

CC を次のように取れば CBCC BCCC の定数倍となります。

C=(00c30)CB=(00c30)(b1b2b3b4)=c3(00b1b2)CBC=c3(00b1b2)(00c30)=c3(00b2c30)=b2c3tr(CB)C=cC \begin{aligned} C&=\begin{pmatrix}0&0\\c_3&0\end{pmatrix} \\ CB &=\begin{pmatrix}0&0\\c_3&0\end{pmatrix} \begin{pmatrix}b_1&b_2\\b_3&b_4\end{pmatrix} \\ &=c_3\begin{pmatrix}0&0\\b_1&b_2\end{pmatrix} \\ CBC &=c_3\begin{pmatrix}0&0\\b_1&b_2\end{pmatrix} \begin{pmatrix}0&0\\c_3&0\end{pmatrix} \\ &=c_3\begin{pmatrix}0&0\\b_2c_3&0\end{pmatrix} \\ &=\underbrace{b_2c_3}_{\operatorname{tr}(CB)}C \\ &=cC \end{aligned}

基底が少ない方が簡単になるため、CC はこの形を採用します。

c-cB+CB+C行列式になっています。

det(B+C)=b1b4b2(b3+c3)=b1b4b2b30b2c3=c \operatorname{det}(B+C)=b_1b_4-b_2(b_3+c_3)=\underbrace{b_1b_4-b_2b_3}_0-b_2c_3=-c

次に BCBBCB を確認します。

BC=(b1b2b3b4)(00c30)=c3(b20b40)BCB=c3(b20b40)(b1b2b3b4)=c3(b2b1b22b4b1b4b2)=c3(b2b1b22b2b3b1b4b2b3=0b4b2)=b2c3tr(BC)B=cB \begin{aligned} BC &=\begin{pmatrix}b_1&b_2\\b_3&b_4\end{pmatrix} \begin{pmatrix}0&0\\c_3&0\end{pmatrix} \\ &=c_3\begin{pmatrix}b_2&0\\b_4&0\end{pmatrix} \\ BCB &=c_3\begin{pmatrix}b_2&0\\b_4&0\end{pmatrix} \begin{pmatrix}b_1&b_2\\b_3&b_4\end{pmatrix} \\ &=c_3\begin{pmatrix}b_2b_1&b_2^2\\b_4b_1&b_4b_2\end{pmatrix} \\ &=c_3\begin{pmatrix}b_2b_1&b_2^2\\\underbrace{b_2b_3}_{b_1b_4-b_2b_3=0}&b_4b_2\end{pmatrix} \\ &=\underbrace{b_2c_3}_{\operatorname{tr}(BC)}B \\ &=cB \end{aligned}

よって、以後は4つの基底で考えます。

B,C,BC,CB B,C,BC,CB
BCB=cB, CBC=cC BCB=cB,\ CBC=cC

c=1c=1 のときに擬似逆行列に似た関係になります。

乗積表

係数を別にすれば4つの基底は積で閉じています。

BB CC BCBC CBCB
BB bBb B BCBC bBCb BC cBc B
CC CBCB OO cCc C OO
BCBC cBc B OO cBCc BC OO
CBCB bCBb CB cCc C bcCbc C cCBc CB

16 種類の組み合わせのうち 4 種類が OO になります。

単位元はないため、可逆元もありません。結合的であるため半群です。

※ 未確認ですが、半群論を調べると似たようなものが出て来るのかもしれません。

乗積表を逆にして、積として得られる基底が何に由来するかをまとめます。

B=1b(B)(B)=1c(B)(CB)=1c(BC)(B)C=1c(C)(BC)=1c(CB)(C)=1c(CB)(BC)BC=(B)(C)=1b(B)(BC)=1c(BC)(BC)CB=(C)(B)=1b(CB)(B)=1c(CB)(CB) \begin{aligned} B&=\frac1b(B)(B)=\frac1c(B)(CB)=\frac1c(BC)(B) \\ C&=\frac1c(C)(BC)=\frac1c(CB)(C)=\frac1c(CB)(BC) \\ BC&=(B)(C)=\frac1b(B)(BC)=\frac1c(BC)(BC) \\ CB&=(C)(B)=\frac1b(CB)(B)=\frac1c(CB)(CB) \end{aligned}

係数を付けて積を計算します。

(a1B+a2C+a3BC+a4CB)(a1B+a2C+a3BC+a4CB)=a1B(a1B+a2C+a3BC+a4CB) +a2C(a1B+a2C+a3BC+a4CB) +a3BC(a1B+a2C+a3BC+a4CB) +a4CB(a1B+a2C+a3BC+a4CB)=a1a1bB+a1a2BC+a1a3bBC+a1a4cB +a2a1CB+0+a2a3cC+0 +a3a1cB+0+a3a3cBC+0 +a4a1bCB+a4a2CBC+a4a3bcC+a4a4cCB=(a1a1b+a1a4c+a3a1c)B +(a2a3+a4a2+a4a3b)cC +(a1a2+a1a3b+a3a3c)BC +(a2a1+a4a1b+a4a4c)CB \begin{aligned} &(a_1B+a_2C+a_3BC+a_4CB)(a'_1B+a'_2C+a'_3BC+a'_4CB) \\ &=a_1B(a'_1B+a'_2C+a'_3BC+a'_4CB) \\ &\ +a_2C(a'_1B+a'_2C+a'_3BC+a'_4CB) \\ &\ +a_3BC(a'_1B+a'_2C+a'_3BC+a'_4CB) \\ &\ +a_4CB(a'_1B+a'_2C+a'_3BC+a'_4CB) \\ &=a_1a'_1bB+a_1a'_2BC+a_1a'_3bBC+a_1a'_4cB \\ &\ +a_2a'_1CB+0+a_2a'_3cC+0 \\ &\ +a_3a'_1cB+0+a_3a'_3cBC+0 \\ &\ +a_4a'_1bCB+a_4a'_2CBC+a_4a'_3bcC+a_4a'_4cCB \\ &=(a_1a'_1b+a_1a'_4c+a_3a'_1c)B \\ &\ +(a_2a'_3+a_4a'_2+a_4a'_3b)cC \\ &\ +(a_1a'_2+a_1a'_3b+a_3a'_3c)BC \\ &\ +(a_2a'_1+a_4a'_1b+a_4a'_4c)CB \end{aligned}

係数の付き方に癖がありますが、項の分布は均一です。

漸化式

この代数系は、もともと二次の正則行列 AA の冪乗を求めるため、B+CB+C に分割する過程で見付かりました。

An=(B+C)n A^n=(B+C)^n

そのため B+CB+C を掛けることが重要で、その様子を見てみます。

(a1B+a2C+a3BC+a4CB)(B+C)=a1B(B+C)+a2C(B+C)+a3BC(B+C)+a4CB(B+C)=a1bB+a1BC+a2CB+0+a3cB+0+a4bCB+a4cC=(a1b+a3c)B+a4cC+a1BC+(a2+a4b)CB \begin{aligned} &(a_1B+a_2C+a_3BC+a_4CB)(B+C) \\ &=a_1B(B+C)+a_2C(B+C)+a_3BC(B+C)+a_4CB(B+C) \\ &=a_1bB+a_1BC+a_2CB+0+a_3cB+0+a_4bCB+a_4cC \\ &=(a_1b+a_3c)B+a_4cC+a_1BC+(a_2+a_4b)CB \end{aligned}

冪乗の世代をコンマ付きの添え字で表すと、係数の漸化式が立てられます。

a1,1=1,a1,n=a1,n1b+a3,n1ca2,1=1,a2,n=a4,n1ca3,1=0,a3,n=a1,n1a4,1=0,a4,n=a2,n1+a4,n1b \begin{aligned} a_{1,1}&=1,&a_{1,n}&=a_{1,n-1}b+a_{3,n-1}c \\ a_{2,1}&=1,&a_{2,n}&=a_{4,n-1}c \\ a_{3,1}&=0,&a_{3,n}&=a_{1,n-1} \\ a_{4,1}&=0,&a_{4,n}&=a_{2,n-1}+a_{4,n-1}b \end{aligned}

漸化式の形にすると、a1,a3a_1,a_3a2,a4a_2,a_4 の2つの系列に分かれて、それらは混ざらないことが分かります。また、a2,a3a_2,a_3 は1世代前の a1,a4a_1,a_4 を引き継いでいるため、a1,a4a_1,a_4 は2世代前を指す漸化式が立てられます。

a1,1=1,a1,2=b,a1,n=a1,n2c+a1,n1ba4,1=0,a4,2=1,a4,n=a4,n2c+a4,n1b \begin{aligned} a_{1,1}&=1,&a_{1,2}&=b,&a_{1,n}&=a_{1,n-2}c+a_{1,n-1}b \\ a_{4,1}&=0,&a_{4,2}&=1,&a_{4,n}&=a_{4,n-2}c+a_{4,n-1}b \end{aligned}

a1a_1a4a_4 は初期値が違うだけで漸化式は同じです。a4,3a _ {4,3} を計算します。

a4,3=a4,1c+a4,2b=0c+1b=b a_{4,3}=a_{4,1}c+a_{4,2}b=0c+1b=b

これは a1a_1a4a_4 が1世代ずれていることを意味します。

a4,n=a1,n1 a_{4,n}=a_{1,n-1}

以上をまとめると、a1a_1フィボナッチ数列のように計算すれば良く、残りは付随して値が決まることが分かりました。便宜上、第0世代を導入します。

a1,0=0,a1,1=1,a1,n=a1,n2c+a1,n1ba2,1=1,a2,n=a1,n2ca3,n=a1,n1a4,n=a1,n1 \begin{aligned} a_{1,0}&=0,&a_{1,1}&=1,&a_{1,n}&=a_{1,n-2}c+a_{1,n-1}b \\ &&a_{2,1}&=1,&a_{2,n}&=a_{1,n-2}c \\ &&&&a_{3,n}&=a_{1,n-1} \\ &&&&a_{4,n}&=a_{1,n-1} \end{aligned}

det(A)=c\operatorname{det}(A)=-c より a1a_1 の漸化式はケイリー・ハミルトンの定理のものと同一です。

a3=a4a_3=a_4 より BC+CBBC+CB としてまとめられ、項が3つに減ります。

5乗までを展開してみます。

(B+C)2=bB+BC+CB(B+C)3=(b2+c)B+cC+b(BC+CB)(B+C)4=(b3+2bc)B+bcC+(b2+c)(BC+CB)(B+C)5=(b4+3b2c+c2)B+(b2c+c2)C+(b3+2bc)(BC+CB) \begin{aligned} (B+C)^2&=bB+BC+CB \\ (B+C)^3&=(b^2+c)B+cC+b(BC+CB) \\ (B+C)^4&=(b^3+2bc)B+bcC+(b^2+c)(BC+CB) \\ (B+C)^5&=(b^4+3b^2c+c^2)B+(b^2c+c^2)C+(b^3+2bc)(BC+CB) \end{aligned}

漸化式を利用することで、かなり簡単になりました。

応用

二次正方行列の冪乗を求める過程で見付かりました。しかしケイリー・ハミルトンの定理でも漸化式を使う方法があり、それに比べて特に有利な点はありません。

それ以外の応用は不明です。


🌟この記事は数式に KaTeX を使用しています。👉使用方法(基本拡張