圏論の視点で線形代数学(LA)を見よう
このページはマス旅の一部です。
前回は圏論の視点で解析学を見ました。
今回が圏論の視点で、線形代数(LA)のビルをみます。
必要不可欠というわけではありませんが、線形代数の中身が気になる方はこちらをご覧ください。
https://www.geogebra.org/m/mrmfxu6x
線形代数のビルは、
1F(圏)「線形空間」:対象が「線形空間(ベクトル空間)」で、射が「線形写像(行列)」でした。
2F(ファンクター):1Fの箱「線形空間V」こわさずに持ち上げるコンテナ(線形作用素)が住んでます。
3F(自然変換):2Fの線形作用素の働きを検証、カップリングします。
さあ、このビルで起きることをくわしく観察してみよう。
今回も観察の視点は次の3つだ。
○ 中身ではなく振る舞いから識別する「圏論」視点
○ 一番無駄のない作りにする「普遍性」視点
○ 双対が表裏一体で共存する「対称性」視点
さあ、中身を捨てて抽象でLAを観察する旅に出かけよう。
LAはロスではりません。
LAはあなたの頭の中を整理するとみつかる線形代数という場所ですよ。
1.各階をみる
<1F 圏>
解析学のときは、関数を点と呼び、微分を線と呼びました。
でも、線形代数の線形空間は点と呼ぶには中身に構造があって大きいので、「箱」と呼びます。
箱から箱へ移す写像は、線と言えなくないので線、矢印、射とかでいいでしょう。
表記の確認から、
「線形空間」を基底を使って表したものを「ベクトル空間」といい、
「線形写像」を基底を使って表したものが「行列」だ。
あえて、強調する必要がないときは、「線形」は共通の属性として書くのを略します。
また、線形空間は数体Kの要素をn個ならべたK^nを要素をとして、それの定数倍と和について、
分配法則が成り立つ(f(a+b)=f(a)+f(b), kf(a)=f(ka))ものであります。
ゼロがどの箱にもあり、ゼロだけで箱{0}になります。線形空間になる
ということを線形空間という箱の中身を基本イメージとして持つことは必要ですね。
この箱の中身は忘れて、点のように見るというのが圏論の視点でしたね。
圏論の視点
圏論の1Fでは2点x、yがあると、積x×yと余積x⊕yがあることを論理的、集合論的に導いたね。
くわしくはこちら、https://www.geogebra.org/m/ddm5798j#material/f5yhuupn
なんと、線形空間のビルでは、「余積X⊕Yと積X×Yは同じ。」ということになる。
「箱」X,Yから、「箱」X×Yを(x, y)の形で作ります。これが積です。
ここで y= {0}と置けば (x, {0}) となり、箱Xだけ取り出せるので、積から別々にXだけ、Yだけを取り出せます。箱X,Yから、余積の箱X⊕YをX+Yの形で作ります。
どの要素も(x, {0}) + ({0}, y)と分解できるので、結局 (x, y)の形に書けるから積X×Yと同じになります。
どの箱にも「ゼロ」がある、ゼロの箱がある、という当たり前のことが役立ちますね。
余積も積も箱として存在して一意的に決まりました。「圏論の視点」が有効でしたね。
でも、「余積=積」というめずらしいことがおきましたね。これを強調して「双積」と呼びます。
余積(直和)は⊕を使い、次元はdim(X⊕Y)=dimX+dimYですが、意味は積ですが、名前は直和。
特に、直和W=X⊕Yで、XとYの共通部分が{0}だけのときは、XとYは互いに補空間といいます。
それぞれの成分で、w=x+yとすると、x、yはwの射影と言いますが、積の意味からは自然ないい方です。
対称性の視点
「和」があれば「差」を探したくなるのが人情です。
箱の内積が定義できたなら直交も決められます。Wが直交補空間に直和に分解X⊕Yできれば、XとYの共通部分は{0}だから、W=X+Yとなり、差X=W-Yを作ることができます。
内積を使わない、差の求め方はないでしょうか。
一般に、「箱の積=箱の和」から類推すると、箱の差は何でしょう。
箱の商です。「箱の商=箱の差」になります。
整数Zを3の倍数3Zを使うことで、0+3Z,1+3Z,2+3Zの3つに割った剰余類Z/3Zを作ることができました。この作業によって、3Zの部分の情報を消して、それとのズレ(余り)にできました。
箱Wを部分箱Nを使うことで、0+N、w1+N,w2+N, ....のように、Nをずらした箱の類W/Nを作ることができるでしょう。これが商空間(箱の商)です。箱Wのうち、箱Nの情報を消した残りだけが残ってますね。
dim(W/N)=dimW- dimNです。つまり、商によって、差を求めることができるのです。
普遍性の視点
では、「単純な和X+Y、X⊗Y」はどうなる。
箱Xと箱Yを本当に合体したいときは「X+Y」という、ただのたし算が使える。
XとYがかぶっていたら、X∩Yをけずる必要はあるけどね。これは集合と同じ視点のロジックだ。
箱V,Wに対するテンソル積「V⊗W」というのがあります。
箱Vを長さmのたて線につぶし、箱Wを長さnのよこ線につぶしてイメージしてみよう。
これにかこまれた場所は、長方形の箱イメージだ。dim(V⊗W)=dimV×dimW
長方形を適当なところでたてに切ると、切ったところの縦線は空間になる。
長方形を適当なところでよこに切ると、切ったところの横線は空間になる。
どっちも空間になる。だから、テンソル積V⊗Wという空間は双線形になっている。
そして、この2辺の点V×Wから長方形の点V⊗Wへの写像は1対1になる。
これが双線形写像だね。
テンソル積V⊗Wは、とても無駄なく、きれいな、論理的な存在ですね。
話は少しずれますが、「2つの線形空間の「テンソル積」」と「「2つのテンソル」の積」は違う。
「テンソルの積」の軸の数は軸の積にはならず、軸数の和になり、しかも、つぶれる軸数をひかなければならないからだ。くわしくはこちら、https://www.geogebra.org/m/twxxx3yq#material/dt4tvgms
私zenもひっかかりそうになったのでアラートを出しました。
あまりにもまぎらわしので、テンソル積V⊗Wにモノイダル積という別名もあるようだ。
<2F ファンクター>
1Fは圏(空間V,W,...とそれを移す写像f,g,......)だった。
2Fはファンクター
K上の箱V,Wがあり、V→Wの射(線形作用素)をぶち込んだ箱をHom_K(V,W)とかける。
これは圏論の書き方と同じだ。
dim Hom_K(V,W)= dimV× dimW. (次元だけみるとテンソル積と同じしくみになっている)
なぜか。
Vの基底とWの基底からHom_K(V,W)の基底は決まってしまう。
Vの各基底をWの各基底につなぐから、V*の基底数はV,Wの基底数の積になる。
超単純な射もある。Hom_K(V,V)は自分にうつす射だから、自己準同型射だ。
もっと、おもしろものがある。
対称性の視点
Hom_K(V,K)だ。 これをVの「双対空間V*」(または、V^{v})と名前をつけよう。
Vの基底がe1からenのn個あり、Vのベクトルの基底eiの成分(メモリ)がφiだする。
Vの基底集eとV*のメモリ集φは表裏一体の関係になるから、Vの基底個数とV*のメモリ個数は一致する。
そこで、V*のメモリ集をV*の基底集とすれば、基底数つまり次元はそのままになるね。
dimV*=dimV
これがわかると、dim {Hom_K(V,W)}= dimV*× dimW={dim V*⊗W}となり、
Hom_K(V,W)とV*⊗Wがピッタリ重なることまでわかる。
さて、
Vが矢の集まりだとしたら、V*はその矢で測ったメモリの集まりだ。
つまり、基底だけではなく、VとV*自体が表裏一体の箱になっていることがわかるね。
K上に箱がV,Wの2つあるなら、双対V*、W*と2つ作れる。
すると、
1Fにある射f:V→Wに対して、
そうすると、2Fの射f*:W*→V*が決まる。これが「双対写像」だ。
双対箱から双対射が決まってしまう。これが反変ファンクターだ。
1Fの表の箱Vと箱Wとつなぐ矢(行列A)に対して、
2Fは裏箱V*と裏箱W*を逆向きに矢(行列A*)ができる。これが双対写像のイメージだ。
〇 双対写像はもとの写像と入と出(たてよこ)が逆だから転置行列になる。A*=A^t
〇 fが単射ならVからどれからも1本矢がでているので、逆にたどるとW*からf*は全射になる。
〇 fはVの核箱を{0}につぶすから、W*の箱からf*で余核(つぶれない箱)にいく。
このように、双対空間で作る双対写像ともとの写像の関係は、
どこからても双対の美しいペアになっている。
<3F 自然変換>
ここで、2Fの反変ファンクターを箱入りにして、可換図式をつくりましょう。
普遍性の視点
VからV*を作るとき、Vの基底の取り方次第でV*の基底が変わってしまいます。
Vの基底つまり、ものさしを2倍サイズにすれば、対象の大きさのメモリは2分の1になります。
その2分の1というのが、V*の基底になってしまうわけです。Vの基底の取り方は自由ですから、V*の基底はそれに振り回されてしまいますね。
それをクリアすのが、双対写像の双対写像です。
反変の反変は共変になるのです。
(V*)*=V**の基底がメモリではなく、Vと同じくモノサシに戻ります。
(f*)*=f**はV→Wの反対向きの反対向き、転置行列の転置になりますから、同じ向きになるのです。
もちろんdim (V*)*=dim V*=dim Vなので、V**の次元はVと同じです。
同じサイズで、基底もVのものにもどるので、Vの基底の選び方をどうやっても関係なくなります。
これで、V**はV*とちがって、Vと同サイズだけでなく、構造が同型だといえるでしょう。
だから、1Fのfと3Fのf**の関係を翻訳する自然変換が決まるので図式は可換になるね。
対称性の視点
この自然変換は2回裏返してもとにもどる翻訳です。
1FのVの要素からV**への対応v→eval_vは自然な対応になります。
基底の選び方に無関係に同型になります。
もっとあります。
線形代数の対称性と言えば、随伴ペアだ。くわしくはこちら。
https://www.geogebra.org/m/ddm5798j#material/bgmzdduw
1F(圏)箱U,V,Wと射がある。
2F(ファンクター)
左はL(U)=U⊗Vのテンソル積を作るコンテナ。
右はR(W)=Hom(V,W)という射の集合を作るコンテナ。
3F(自然変換があれば随伴ペアと判定できる)
L(U)→ Wの射とU→R(W)の射に自然な対応ができるか。
つまり、Hom(U⊗V,W)とHom(U,Hom(V,W))が同型かということだ。
これは、
U,Vの箱の積(直積、テンソル積)からWへの写像は、
Uを入れておいて、VからWを返す写像と同じことで、同型だね。
いろんな、構造で現れる、カリー化だ。
IT関係に限らず線形代数でのあるというのは面白いですね。
2.解析学のコラボをしよう。
線形代数(LA)は、とても抽象的で面白い入れ物であることがわかったね。
そこで、LAビルに解析学を呼び込もう。
その前に大切な準備をしよう。
<座標変換(ものの見方の変更)>
対称性の視点
Vの2つの基底をE=[e1,e2],E'=[u1,u2]、
底の変換ができて、[u1,u2]=[e1,e2]P 行列Pによる変換式でかける。
VのベクトルX、Yを底Eで測った成分を(x1,x2),(y1,y2)とし、
VのベクトルX、Yを底E'で測った成分を(x1',x2'),(y1',y2')とし、
XをYに移す線形写像をf:V→Vとしよう。Y=AX
同じベクトルでも、モノサシと成分のペアで表示が変化するので、
X=[e1,e2]◦[x1,x2]=[u1,u2]◦[x1',x2']
一方で、[u1,u2]=[e1,e2]Pから[u1,u2]◦[x1',x2']=[e1,e2]P◦[x1',x2']
したがって、Xの表示は、X=[e1,e2]◦[x1,x2]=[e1,e2]P◦[x1',x2']となり、
結合法則から共通部分を取り去り、[x1,x2]=P◦[x1',x2']となる。
つまり、底の変換式はE'=E◦Pだったものが、座標変換式はX=P◦X’と
双対の順番になるので注意。
普遍性の視点
さらに、基底E'を変換Qで基底E''にしたら、
E''=(E'◦P)◦Q=E◦P◦Qとなり、E''=Eとすれば、P◦Q=Iとなるので、Q=P^(-1)となる。
だから、X'=P^(-1)◦X
ここで、射fを底E’で表現した行列をA’としよう。
A'の働きはE’に対して、次のようになる。
f(E')=E'◦A'=f(E◦A) = (f(E))◦P
= (E)A◦P=(E')P^(-1)◦A◦P
だから、A’=P^(-1)◦A◦P
これを「可換図式」で確認しよう。
A
X⇒⇒⇒⇒Y
↑ ↑
↑P ↑P
↑ ↑
X'⇒⇒⇒⇒Y'
A'
左下から右上に行くルートは2本あります。
上P右A、行列の積はPが先だから、「AP」です。
右A'上P、行列の積はA'が先だから、「PA'」です。
ここから
AP=PA'
両辺に左からP^(-1)をかければ、P^(-1)AP=A'となりますね。
このように底の変換によって、写像AがA’に変わるときはこれを定理として使えます。
AとA’は「相似行列」ともいいます。
行列の相似は同値関係になっているので、射を類別することができるね。
相似な行列では、ランク、トレース、行列式、固有値が一致します。
だから、行列を対角行列に直すことができるので、素晴らしく便利な道具となるのですね。
さあ、線形代数(LA)のビルに、解析学の住人を招待しよう。
曲面のように空間が曲がっていても、
ミクロな視点では平面のように線形で空間を線形でとらええることができるだろう。
解析学の世界では「点=関数」「射=微分演算子」だけど、そのミクロな局所空間(接空間)に降り立つと、そこには「矢(接ベクトル)」と「目盛り(微分形式)」という極上の住人たちが待っている。
<1F 圏>
まずは1Fで、空間を測る「基底(モノサシ)」と「成分(メモリ)」の動きを観察しよう。
Vの2つの基底をE=[e1,e2],E'=[u1,u2]が、[u1,u2]=[e1,e2]P 行列Pによる変換できるとする。
同じベクトルXがX=EX=E’X’=(EP)X'=EPX'とかけるから、X=PX'となり、X’=P^{-1}X
Vの基底(モノサシ)の目を2倍に伸ばす座標変換 x → 2x を行うと:
V*の成分(反変ベクトル)は、基底が伸びた分、成分の値は1/2に縮む。
基底の動きと「反対に変化する」から 反変(Contravariant)。上付きインデックス v^i で書く。
目盛りの成分(共変ベクトル)は、基底が伸びた分、引っかかる目盛りの値は 2 倍に増える。
基底の動きと「共に変化する」から 共変(Covariant)。下付きインデックス w_i で書く。
なお、一般には基底の数を2に限定しません。
座標軸にリンクした基底eN(e1,e2,...,en)という自然な基底(自然基底)を使って、
微小な2点を結ぶベクトルを
ds=dx^1*e_1+dx^2*e_2+.....+dx^n*e_n=Σdx^m*e_mとかき、これを線素といます。
また、基底変換行列Pは次にようにかけるでしょう。
u_j=ΣP_j^i e_i 下付きの基底が下付きの新基底に移る。
<2Fファンクター>
さて、
箱Vから双対箱V*を作ろう。
双対基底がE*=[e1*,e2*],E'*=[u1*,u2*]ができるね。そうすれば、ファンクターができる。転置行列P^{t}だ。
[u1,u2]=[e1,e2]Pに対して、
[u1*,u2*]P^{t}=[e1*,e2*]となる。
箱V「メモリ(微分形式)dx^i」から
双対な箱V*「矢(接ベクトル)d/dx^i」を作ります。
2次元でかくと、
[x1,x2]を[x,y]にして、[x'1,x'2]を[u,v]とかきかえると、
[dx,dy]と[∂/∂x,∂/∂y]が双対の関係、[du,dv]と[∂/∂u,∂/∂v]が双対の関係だということだ。
「上付き・下付きの添字のルール」は単なる記号の約束ではなく、「裏返しの世界(V^*)にいるかどうかの識別標識」だったことが見えてくる。
また、「微分形式の微小なメモリ」と「偏微分の矢」が表裏一体で双対ペアである必然性がわかるね。
<3F(自然変換・普遍性)>
矢と目盛りを自由に行き来させる「計量テンソル g_{ij}」
さらに、アインシュタイン記法にならってΣをはぶき添え字の上下を意識して線素を
ds=dx^m*e_mとかきましょう。
そして、この微小ベクトルのサイズ、微小距離ds(線素)を2乗してみよう。
ds^2=(dx^m*e_m)(d^xn*e_n)=(dx^m*dx^n) e_m・e_n=(dx^mdx^n) g_mn
内積 e_m・e_n=g_mnとおくと、内積の配列{g_mn}はm行n列の成分がg_mnとなる行列になりますね。
これを計量テンソルといいます。
gmn・gmn=δmn(対角成分が1で、他が0の単位行列)=diag(1,1,....,1)
上つきのA^mに対して、A^mg_mn=A_nのように、2つ下のテンソルをかけると、約分のように1つ消えて1つは下のままつきます。同様に、A_mg^mn=A^n。計量テンソルをかけると、かけられた量の添え字が上下するように書くことにします。
1F・2Fの段階では、「矢(接ベクトル)」と「目盛り(微分形式)」は全く別の箱の住人であり、直接足し算したり同一視したりすることはできなかった。
v_i = g_{ij} v^{j}という計算は、計量(内積の構造)というレンズを通すことで、反変の世界(矢(接ベクトル)から共変の世界(目盛り(双対ベクトル)へ成分を自然に引き渡す翻訳者(自然変換の同型射)なんですね。
たとえば、1つのベクトルを2種の直交基底で成分がどうなるかを調べてみよう。正規直交基底E=[e1,e2]と拡大直交基底E'=[e'1,e'2]を比較しよう。ベクトルXのもと成分系を(x1,x2),新成分系を(x'1,x'2) とすると、
臨時の記法「∂xa/b=∂xa/∂xb」使うことにすると、アインシュタイン記法により、
全微分は
まとめると、
dx'^n=∂x'n/m dx^m
dx'_n=∂x'm/n dx_m
まるで、微分の連鎖率(チェーンルール)のときに分数の約分がOKだったように、添え字の上つきと下付きの約分がOKになるというイメージの式ができる。
同様に、この座標変換する偏微分∂xa/b=∂xa/∂xbが並んだ行列を見たことがありませんか。
そうです。これは、ヤコビ行列ですよね。
ヤコビ行列によって、成分変換だけでなく、基底変換もかけます。ヤコビ行列は添え字を上下しません。
e'^n=∂x'n/m * e^m,
e'_n=∂x'n\m * e_m
このように、テンソルは逆行列で添え字が上下し、ヤコビ行列のように変換では添え字は上下しません。
<ヤコビ行列から不変量へ>
e_m・e_n=g_mnは言い換えると、計量テンソルは基底の内積だったね。
ところが、それぞれの基底は、ヤコビアンで変換した基底ともいえる。だから、 計量テンソル=基底・基底=ヤコビ別基底・ヤコビ別基底=ヤコビヤコビ別基底・別基底=ヤコビの積・別計量テンソルとなる。g_µ′ν′ = ∂m/µ′ ∂n/ν′ g_mn、
g_mn = ∂m\µ′ ∂n\ν′ g_µ′ν′
g_mn 、g^µν′ は添え字が2つあり、添え字ごとに下付き保存の共変的な変換を受けるということだね。
これらから、ヤコビ行列とその逆行列が綺麗に約分(相殺)し合い、
ds'^2=ds^2であることが証明できる。
つまり、線素の2乗は変換によって保存される不変量だとわかる。
以上の内容が単なる抽象論に終わらないために、数値化してみたい。
課題:線素の2乗が座標系によらないことを視覚化しよう。
#点Aの正規直交座標系の成分の初期値
A=(3,4)
#点Aの極座標系の成分
r=sqrt(x(A)^2+y(A)^2)
th=arctan(y(A)/x(A)
#直交座標系での微小変位
dx=0.01
dy=0.02
ds2=dx^2+dy^2 #0.0005
gmn={{1,0},{0,1}}
#斜交座標系での翻訳値
dr=x/r dx + y/r dy
dth= -y/r^2 dx + x/r^2 dy
polgmn={{1,0},{0,r^2}}
polds2=1^2 dr^2 + r^2 dth^2 #0.0005
"ds^2="+ds2+"="+pol_ds2+""
⚙マークを選びさらに、アプレット全体の⚙マークを選び設定で小数点以下10桁表示にします。
しかし、ds^2は0.0002=0.0002のままで何も変わりませんね。
点Aをつかんで動かしましょう。
Aの属性で表示するものを名前だけでなく名前と値にします。
Aの座標は動かすと、座標は目まぐるしく変わります。
数式ビューを見てください。
それに連動して、極座標r、thも、微小量dr、dthも目まぐるしく変わります。
しかし、polds2はそれらのすべての変化を吸収して、0.0002のままびくともしません。
この「手品のような不変性」が、他が動くからこそ、伝わりますね。
ベクトルへの座標系変化は
あてるモノサシを変えることで、読み取るメモリが連動して変わるだけだ。
だから、もとのベクトル(移動量dx、dy)の長さそのものは不動のはずだという、
計算する前からわかっていることでも、
計算して同じに落とし込めていることのすごさが感じられるね。