4. 四元数環の重要性 駆け足で読む『数学をいかに使うか』
# 複素数行列のDeterminantの計算用関数 detComplex<-function(M){ e.out<-eigen(M) prod(e.out[[1]]) } n<-2 # 基本要素 myI<-complex(real=0,imaginary=1) Ec<-diag(rep(1,n)) Ic<-matrix(c(myI,0,0,-myI),2,2) Jc<-matrix(c(0,-1,1,0),2,2) Kc<-matrix(c(0,myI,myI,0),2,2) Ec Ic Jc Kc # 四元数を2個の複素数から作る s<-complex(real=rnorm(1),imaginary=rnorm(1)) t<-complex(real=rnorm(1),imaginary=rnorm(1)) h<-matrix(c(s,t,-Conj(t),Conj(s)),ncol=2,byrow=TRUE) # h*を作る h2<-t(Conj(h)) # h%*%t(Conj(h)) # h=a + b i + c j + d k的な表現にする ms<-rep(0,n^2) ms[1]<-Re(s) ms[2]<-Im(s) ms[3]<-Re(t) ms[4]<-Im(t) ms[1]*Ec+ms[2]*Ic+ms[3]*Jc+ms[4]*Kc h # ノルムの自乗はDeterminantに一致する sum(ms^2) detComplex(h) # h=a + b i + c j + d k的な表現から2x2表現にする ms<-runif(4) ms[1]*Ec+ms[2]*Ic+ms[3]*Jc+ms[4]*Kc # 四元数の実数成分をゼロにするとx*==-xの関係にある ms[1]<-0 h3<-ms[1]*Ec+ms[2]*Ic+ms[3]*Jc+ms[4]*Kc h4<-t(Conj(h3)) # h3== -(h4) h3+h4 # |h|==1な四元数は2次の特殊ユニタリー群である # |h|==1な四元数を作る library(MCMCpack) rs<-c(rdirichlet(1,rep(1,4))) rs2<-sqrt(rs) h5<-rs2[1]*Ec+rs2[2]*Ic+rs2[3]*Jc+rs2[4]*Kc # ノルムの自乗 sum(rs2^2) detComplex(h5) # その共役転置を作る h6<-t(Conj(h5)) # それらはユニタリーの条件を満たしている h5%*%h6
補. 外積代数の進む先 駆け足で読む『数学をいかに使うか』
- この記事は、3. ベクトル積から外積代数まで 駆け足で読む『数学をいかに使うか』の補足
- ベクトル積を一般次元に拡張すると、外積代数になる
- 外積代数はベクトル解析につながっている
- 外積・微分形式・外微分…時空間軌道の解析から始まった「曲線」「曲面」「多様体」に関する話題の一端であるこの記事につながる
- 微分形式は、多様体上の「曲がり方」を表した関数の集まりのようなもの。多様体の特徴を座標軸のとりかたに依存せずに捉えることを可能にする。微分形式には複数のやりかたがあって、そのうちの一つが交代微分形式と呼ばれるものである。ここでは、とのように順序を入れ替えると符号が逆転するような仕組みで作られた微分形式であり、外積の仕組みになっている。外積代数のルールが用いられることで、すっきりとした表現ができることを特徴とするとともに、積分に正負が存在することも特徴とする
- 多様体の「曲がり方」は1次微分的な曲がり方、1次微分がさらにどう曲がるか…、のように、どんどん微分をしていける。そのときに「微分形式」を採用しつつ、次数を上げていけるが、その「次数を上げる多様体上の微分」の仕事を「外微分」と言う(ようだ)。また外微分の特徴は座標の取り方に独立なこと(こちら)
2. Hermite行列その他 駆け足で読む『数学をいかに使うか』
\bar{A} ^t(\bar{A})=\bar{^tA}=A^* \bar{AB}=\bar{A}\bar{B} (AB)^*=B^*A^*
n<-3 m<-4 A<-matrix(complex(real = rnorm(n*m), imaginary = rnorm(n*m)),ncol=n) Ac<-Conj(A) t(Ac) Conj(t(A)) t(Ac)-Conj(t(A)) B<-matrix(complex(real = rnorm(n*m), imaginary = rnorm(n*m)),ncol=n) Conj(A%*%t(B)) Conj(A)%*%Conj(t(B)) Conj(A%*%t(B))-Conj(A)%*%Conj(t(B)) # A^* はt(Conj(A)) t(Conj(A%*%t(B)))-t(Conj(t(B)))%*%t(Conj(A))
- Hermite行列とユニタリー行列
- であるような(n次)正方行列を(n次)Hermite行列という
- であるようなn次ユニタリー行列という
- 定理2.1. n次Hermite行列Hに対してn次ユニタリー行列Tとn個の実数を取ってとすることができる。このの集合(取り方)はTの取り方によらずHに対して定まる
n<-5 A<-matrix(complex(real = rdirichlet(1,rep(1,n^2)), imaginary = rdirichlet(1,rep(1,n^2))),ncol=n) AA<-t(Conj(A))%*%A e.out<-eigen(AA) e.out[[2]]%*%diag(e.out[[1]])%*%t(Conj(e.out[[2]]))-AA La<-e.out[[1]] B<-e.out[[2]] BB<-t(Conj(B))%*%B Lb<-eigen(BB)[[1]] Lb
- 定理2.2. n次Hermite行列Hが正値定符号(positive definite)であるためにはHの固有値がすべて正であることが必要かつ十分である。ただし、正値定符号であるとは、であるようなn次元複素成分タテベクトルについてが常に正であることを言う。ここでをHermite形式と呼ぶ
- 定理2.3. n次正値定符号Hermite行列の全体をとすると、とその正の整数乗はの要素であってととは1対1対応する(mが正の整数でなくてもよさそうだが…まだ、行列の正のs整数乗以外の話が出てきていないので、ここでは正の整数にしているのだろうか)
- 定理2.4. 一般線形群に属するA()は、任意のn次正値定符号Hermite行列Hに対して
- 定理2.5. n次正値定符号Hermite行列に対して、常に
- 定理2.6. n次正方行列ならば、常に
- n次元平行体の体積は、全ベクトルが相互に直交するときに最大となることを(も)示している
- 線形代数と群・環・体
- 群Gの部分集合AとGの要素xについて、とし、Ax,xAyなども同様に定める
- 群G,G'がありGからG'への写像があり、に対してであるとき、をGからG'への準同型写像(homomorphism)と呼ぶ
- がG'の単位元へと移すGの元をのカーネルと言う。
- のカーネルはGの部分群となる。
- ならば、はGからG'への同型写像(isomorphism)と言い、GはによってG'と同型であると言う
- Hermite行列の集合は一般線形群の部分群で、ユニタリー行列の集合は特殊線形群の部分群
- 行列操作は、ある形の行列をある形の行列に変化させる。その「移し具合」の特徴表現として、準同型・同型、正規部分・部分などが用いられる
H^*=H TT^*=1_n THT^{-1}=diag\[\lambda_1,\lambda_2,...,\lambda_n\] x^*Hx=\sum_{i=1}^n \sum_{j=1}^n h_{ij}\bar{x_i}x_j A\in GL_n(\mathbf{C}) det{H} \le \prod_{i}^n h_{ii}
- ランダムに複素正方行列を作成して、上述の定理が満足されていることを確認してみる
library(MCMCpack) n<-3 # 次数 Niter<-100 # 繰り返し回数 dets<-rep(0,Niter) # determinantを格納 dets2<-rep(1,Niter) # \prod_{j=1}^n \sum_{i=1}^n |a_{ij}|^2 # 複素正方行列Aにつき,A*Aが正値定符号であることを確認 # ただし、固有値がすべて正であることを持ってその判断とする seichiteihugou<-rep(TRUE,Niter) for(i in 1:Niter){ A<-matrix(complex(real = rdirichlet(1,rep(1,n^2)), imaginary = rdirichlet(1,rep(1,n^2))),ncol=n) # 固有値の積がdeterminant eigen.out<-eigen(t(Conj(A))%*%A) print(eigen.out[[1]]) seichiteihugou[i]<-prod(eigen.out[[1]]>0) dets[i]<-prod(eigen(A)[[1]]) dets2[i]<-prod(apply(abs(A)^2,2,sum)) } plot(dets2-abs(dets)^2) # Hermite形式(が実数になり)正であることの確認 herm<-rep(0,Niter) AA<-t(Conj(A))%*%A for(i in 1:Niter){ x<-c(rdirichlet(1,rep(1,n))) herm[i]<-t(Conj(x))%*%AA %*%x } range(sort(Re(herm)))
駆け足で読む『数学をいかに使うか』
- 作者: 志村五郎
- 出版社/メーカー: 筑摩書房
- 発売日: 2010/12/10
- メディア: 文庫
- 購入: 13人 クリック: 59回
- この商品を含むブログ (16件) を見る
- ここで「駆け足で読む」ことの目標
- どんな要素が「使うための数学」として取り上げられているかを俯瞰する
- てふの書き方を網羅的に確認する
- 数学的表現・数式を眺めずに「読み書きする」ことについて
- 数学的表現・数式は、「文字列」のようでもあり「絵」のようでもあります
- 大切なのは、それを「読める」こと、「書ける」こと
- ここで言う、「読める」、「書ける」とは、ある表現・式を見たときに「口に出して読める」、「手書きで・TeXを用いて書ける」ということ
- 「絵」として眺めると「どこから読む」かが定まらず、「全部を読んだ」かどうかが不明です
- 「口に出して読む」、「書く」という作業をすると、以下2点が担保されます。それが大事です
- 表現・式のすべてを網羅する
- 「すべて」に順番がつく
- この本の特徴
- いろいろとつながりのある概念を説明する
- 説明するにあたって、その概念が登場した経緯などが重要な場合もあるが、その点はゼロベースで査定しなおして、「現在」の視点で眺めたときに、何を取り上げ、何を取り上げないか、順番はどうするか、について心を砕いて書きたいと願って書いてある
- この本『数学をいかに使うか』の主張が6章に書かれているので引用する
- 線形代数と微積分の初歩に続くもの
- 目次
6. 複素解析、特に楕円関数 駆け足で読む『数学をいかに使うか』
- 駆け足で読む『数学をいかに使うか』の目次はこちら
- この本『数学をいかに使うか』の主張がこの章に書かれているので再度、引用する
- 複素関数論はどうして必要になったか
- 円が対象になるのは自然なこと。円を扱うことに便利な関数が三角関数。それを一般化していく過程で楕円積分。変数を実数から複素数にすることのよさが挿入される。偏微分・微分形式も使われる。楕円積分の性質を見ていくと、二重周期関数。到達した先(二重周期関数)そのものを対象と見ることで、視点が変わる。そして楕円関数。
- 複素関数が開く楕円関数は、その他の特殊関数(ガンマ関数など)の一つ。その楕円関数とそれと関連するテータ関数に関する話が、次章の中間まで続く
- 楕円関数はの中の格子を周期とする関数
0. 記号、特に行列について 駆け足で読む『数学をいかに使うか』
">|tex|"と"||<"とで囲む
- 集合とその元
- :xはAの要素
- :AとBとの結び
- :AとBの交わり
- :AはBの部分集合
x \in A A \cup B A \cap B A \subset B
-
- Rではsetsパッケージ
library(sets) A<-set("x","y","z") B<-set("x","w") is.element("x",A) set_union(A,B) set_intersection(A,B) C<-set("x","z") C<A
\mathbf{Z},\mathbf{Q},\mathbf{R},\mathbf{C}
\{x \in \mathbf{R} | -6 \le x <2\} \{z \in \mathbf{C} | 3z^2+6z=1\} \{x \in \mathbf{R} | x^2 = -7\}=\phi
examples(complex)
n \times m A= \[a_{i,j}\]_{i=1,...,n;j=1,...,m} = \begin{pmatrix} a_{i,j} \end{pmatrix} = \begin{pmatrix} a_{1,1} & a_{1,2} & ... & a_{1,m} \\ a_{2,1} & a_{2,2} & ... & a_{2,m} \\ \\ ... & ... & a_{i,j} & ... \\ a_{n,1} & a_{n,2} & ... & a_{n,m} \end{pmatrix} ^tA=\begin{pmatrix}a^t_{i,j} \end{pmatrix} a^t_{i,j} = a_{j,i} ^t(AB)=^tB ^tA det(A) det(AB)=det(A)det(B) tr(A+B)=tr(A)+tr(B)
-
- Rでは
n<-3 m<-4 elems<-1:(n*m) A<-matrix(elems,ncol=3) tA<-t(A) print(A) print(tA) B<-matrix(sample(elems),ncol=m) AB<-A%*%B t(AB)-t(B)%*%t(A) # 正方行列 A<-matrix(1:(n^2),ncol=n) B<-matrix(sample(1:(n^2)),ncol=n) print(A) print(B) print(AB) det(AB) det(A)*det(B) # traceは対角成分の和 sum(diag(A+B)) sum(diag(A))+sum(diag(B))
- 群・環・体(代数的構造)
- 体と
- 加減乗除ができる(数の)集合が体
- のうちは除(割り算)をすると答えがに含まれないことがあるので体ではない。それ以外は体
- 全行列環
- 体をとる(として体であるのうちのどれか一つを採用する)
- 体の元を成分とする正方行列をと書き、F上のn次の全行列環と呼ぶ
- は加減乗除のうち除を除く3演算ができる
- の要素がであるときとなるようなが存在して、である。ただしはの単位行列
- このようなをの逆行列と呼んでと書く
- を掛け算することはで割り算することに対応するから、であるの要素をすべて取り出してやると、それらは加減乗除のすべてができることになる
- においてでありである
- これをn次の一般線形群(general linear group of degree n over F)と言う
- 特に、に限定したはであって、n次の特殊線形群(special linear group of degree n over F)と言う
- 正方行列を対角に並べたもの
- 個の正方行列を対角線上に並べたものをと書くことにする。の次数がのときの次数はである
- 体と
M_n(F) det(A) \neq 0 AB=1_n,CA=1_n B\in M_n(F),C \in M_n(F) A^{-1} GL_n(F)=\{X \in M_n(F) | det(X) \neq 0 \} X,Y\in M_n(F) \Longrightarrow XY \in GL_n(F), X^{-1} \in GL_n(F) 1_n \in GL_n(F) SL_n(F)=\{X \in M_n(F) | det(X) =1 \} SL_n(F) \subset GL_n(F) X=diag\[X_1,X_2,...,X_r\]
10. フーリエ変換からメタプレクティック群へ 駆け足で読む『数学をいかに使うか』
- 駆け足で読む『数学をいかに使うか』の目次はこちら
- 斜交群(シンプレクティック群)(Wiki)
- フーリエ変換から、斜交行列(Wiki)が出て、それが表している斜交群が出てくる
- 理由はないけれど、シンプレククティック幾何・シンプレクティック多様体の生物学応用(が何かしらされているらしい)は面白うそうである
- Further readingはこちらへ
- メタプレクティックというのは
- "In differential geometry, a metaplectic structure is the symplectic analog of spin structure on orientable Riemannian manifolds."(Wiki)と説明されるが、これも。
3. ベクトル積から外積代数まで 駆け足で読む『数学をいかに使うか』
- 駆け足で読む『数学をいかに使うか』の目次はこちら
- 3次元ベクトル空間でのベクトル積(外積)は、に対して、 というのベクトル。
- 他方、内積は[tex:=\sum_{i=1}^3 a_i b_i]
- 内積の定義はn次元においてもそのまま通用するが、ベクトル積はそうはなっていない。その理由を含めて考えると、ベクトル積・外積代数というものが出てくる。それを以下に示す
- n次元のベクトル積
- n次元空間ベクトルがn-1個あったとき、そのベクトル積は、n次元ベクトルになる
- 今、n-1個のベクトルをとし、もう一つn次元ベクトルを置く
- を行ベクトルとする行列を考えると、そのDeterminant()が算出できる
- のベクトル積はn次元ベクトルであって、ととの内積はのDeterminantである([tex:
=det(X)])という関係にある
- それをRで書くと次のようになる
library(MCMCpack) # 複素数行列のDeterminantの計算用関数 detComplex<-function(M){ e.out<-eigen(M) prod(e.out[[1]]) } # 外積計算用関数 ExteriorProduct<-function(V){ ret<-rep(0,length(V[1,])) for(i in 1:length(ret)){ ret[i]<-(-1)^(i+1)*detComplex(V[,-i]) } ret } # 例えばn=7次でやってみる n<-7 # 適当に複素数を要素とする正方行列を作る X<-matrix(complex(real = rdirichlet(1,rep(1,n^2)), imaginary = rdirichlet(1,rep(1,n^2))),ncol=n) # Hermite化する X<-t(Conj(X))%*%X # Determinantを計算する detX<-detComplex(X) detX # n個のベクトルから適当にn-1個を選ぶ s<-sample(1:n,(n-1)) # 選ばれたn-1個のベクトルについて外積を計算する ep<-ExteriorProduct(X[s,]) # 外積は長さnのベクトルである ep # 選ばれなかったベクトルと、選ばれたn-1個のベクトルの外積との内積を計算すると # 選ばれなかったベクトルと選ばれたベクトルとが作る行列のDeterminantになっていることが以下の計算でわかる sum(X[-s,]*ep) detComplex(X) sum(X[-s,]*ep)-detComplex(X)
- 長さnのベクトルn-1本から、長さnのベクトルが1本できた。これは、n次元空間をとしてからへと写したもの
- ベクトル積を一般次元に拡張する
- ベクトル積はn次元ベクトルがn-1本集まったときに定義できた
- n次元ベクトルがr([tex:r
- それは、n-1個のベクトルが作る行列からn-2列を取り出したもの(n-1通りある)が作る行列のDeterminantに正負を考慮したものになっている
- このベクトル積様なものの個数は、「組み合わせ」で決まるので、べき集合の要素数(n次元ベクトルn本に対して考えれば、)になる
- この個の要素たちは「代数」的に完結するので、以下のように「外積代数」としてまとめられる(参考→こちら)
- 外積代数はベクトル解析につながっている
- 外積代数を用いて、微分形式・外微分などを用いることで積分に関する以下の公式がわかりやすくなる
- Gauss-Stokesの公式(こちら)、「ベクトル場の回転を曲面上で面積分したものが、元のベクトル場を曲面の境界で線積分したものに一致する」
\int_{\partial S} \omega = \int_S d\omega
- 自分なりに外積代数・微分形式・外微分・Gauss-Stokesの公式を書いてみる
- n次元空間には、n個の線形独立なベクトルがおける。簡単に考えるなら、n本のベクトルからなる正規直交基底を考える
- 外積代数
- 外積代数では、1,2,...,nを要素とする集合のべき集合の要素である部分集合に対応したものを考える
- そのような要素は個ある
- この個は、部分集合であるが、部分集合としての要素数が、0,1,2,...,nのいずれかであって、それぞれの要素数はとなっている
- それらは符号の取り方の工夫をすることで、あるルールづけがなされている
- 微分形式
- 外積代数では「単位ベクトル」を考えたが、こちらは微分なので、「微小ベクトル」を考える。微小ベクトルだが、方向については、「単位ベクトル」をそのままひきつぐ
- 外積代数と同様に種類あるそれぞれに、関数がある
- 外積代数では、対応する部分集合の要素数で0,1,...,n通りに分類できたが、この要素数rごとにのように(部分集合として要素数rの外積代数の一つ)に関して足し合わせたものをr次の微分形式と呼ぶ
- 外微分
- r次の微分形式の外微分を次のように定義する
- ここで外積代数の交代性が功を奏して、ぱたぱたと項が消える
- Gauss-Stokesの公式
- のやはこのようにして定めた微分形式と外微分であって、この表現法を使うと、r次の微分形式を境界に関して積分したものと、その外微分を領域全体について積分したものとが一致する、ということが導ける
- これは、空間が1次元のときには、外微分を領域(ここからここまで)について積分したものと、微分形式を境界(1次元線分の境界は2点)について向き・正負に注意して積分したものに一致することに対応する
- 外積代数の計算をRでやってみる
- 次元nのとき、要素数は、nからi個を取り出して、その順列になる(それ以外は、0になる)から、。それらが、の基本要素で張られる
- 以下のソースではelemListが基本要素、allElemがすべての要素。MはallElemの演算結果を基本要素数の長さのベクトルで表している。またM2は、基本要素のどれに相当するかを符号つきで表している
# 次元 n<-3 s<-1:n # 順列・置換に関して、その符号を計算するには、置換を表す行列のdeterminantが使える s2<-sample(s) M<-diag(rep(1,n))[s2,] det(M) # それを使って、演算を、要素の組(集合)と符号とで表すことにする # その関数 SignaturePermutation<-function(s){ n<-length(s) sig<-1 if(n>1){ s2<-order(s) M<-diag(rep(1,n))[s2,] sig<-det(M) } list(set=as.set(s),sign=sig) } # 二つの要素を演算処理するとき、要素の重複があれば0になるので、それをする関数を作る a<-sample(s,sample(0:n)) a SignaturePermutation(a) a2<-sample(s,sample(0:n)) a2 SignaturePermutation(a2) Zerocheck<-function(s1,s2){ ret<-TRUE if(length(set_intersection(as.set(s1),as.set(s2)))==0){ ret<-FALSE } ret } Zerocheck(a,a2) # 集合のパッケージ library(sets) library(gtools) t<-as.set(s) # 冪集合を作る # これは、基本要素のセットとなる pow.t<-set_power(t) # 2^n個の基本要素をリストにする # ID、要素数の等しいものごとに束ねたときの束内ID、集合 elemList<-list() cnt<-1 numcnt<-1 cntINnumcnt<-1 currentn<-0 elemList[[1]]<-list() for(i in pow.t){ n<-length(i) print(n) print(i) if(n>currentn){ cntINnumcnt<-1 numcnt<-numcnt+1 currentn<-n elemList[[numcnt]]<-list() } elemList[[numcnt]][[cntINnumcnt]]<-list(id=cnt,id2=cntINnumcnt,set=i,n=length(i)) cntINnumcnt<-cntINnumcnt+1 cnt<-cnt+1 } # 演算順を自由にした、すべてについての情報をリストにする allElem<-list() cnt<-1 v<-c() tmp<-SignaturePermutation(v) allElem[[cnt]]<-list(id=cnt,v=v,set=tmp$set,sign=tmp$sign) cnt<-cnt+1 for(i in 1:n){ tmpperm<-permutations(n,i) for(j in 1:length(tmpperm[,1])){ v<-tmpperm[j,] tmp<-SignaturePermutation(v) allElem[[cnt]]<-list(id=cnt,v=v,set=tmp$set,sign=tmp$sign) cnt<-cnt+1 } } allElem N<-length(allElem) M<-array(0,c(N,N,2^n)) M2<-matrix(0,N,N) for(i in 1:N){ for(j in 1:N){ vi<-allElem[[i]]$v vj<-allElem[[j]]$v #if(!(length(vi)==0 & length(vj)==0)){ if(!Zerocheck(vi,vj)){ tmpv<-c(vi,vj) tmpout<-SignaturePermutation(tmpv) print(tmpv) tmplen<-length(tmpv) for(k in 1:length(elemList[[tmplen+1]])){ if(tmpout$set==elemList[[tmplen+1]][[k]]$set){ print(elemList[[tmplen+1]][[k]]) print(M[i,j,]) M[i,j,elemList[[tmplen+1]][[k]]$id]<-tmpout$sign M2[i,j]<-elemList[[tmplen+1]][[k]]$id*tmpout$sign print(M[i,j,]) } } } #} } } M2
-
- n=3の場合
> M2 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [1,] 0 2 3 4 5 6 -5 7 -6 -7 8 -8 -8 8 8 -8 [2,] 2 0 5 6 0 0 0 8 0 -8 0 0 0 0 0 0 [3,] 3 -5 0 7 0 -8 0 0 8 0 0 0 0 0 0 0 [4,] 4 -6 -7 0 8 0 -8 0 0 0 0 0 0 0 0 0 [5,] 5 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 [6,] 6 0 -8 0 0 0 0 0 0 0 0 0 0 0 0 0 [7,] -5 0 0 -8 0 0 0 0 0 0 0 0 0 0 0 0 [8,] 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [9,] -6 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 [10,] -7 -8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [11,] 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [12,] -8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [13,] -8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [14,] 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [15,] 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [16,] -8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11. 代数で何を教えるべきか 駆け足で読む『数学をいかに使うか』
- 駆け足で読む『数学をいかに使うか』の目次はこちら
- (代数に限らず)成立過程で重要なことと、成立したり発展したりした後で重要なことは異なる。より見晴らしのよいところから、取捨選択して教える内容も定義するのが適当(実験して論文にするのも同じ)
1. 線形代数の使い方 駆け足で読む『数学をいかに使うか』
library(polynom) # y=0を通る点を指定 n<-5 xs<-sample(0:100,n) pc.out<-poly.calc(xs) summary(pc.out) plot(pc.out) abline(h=0,col=2) abline(v=xs,col=3) # (x,y)点を指定 xs<-sample(0:10,n) ys<-sample(0:10,n) pc.out2<-poly.calc(xs,ys) plot(pc.out2) abline(h=ys,col=2) abline(v=xs,col=3)
Ker(T)=\{x\in T | T(x)=0 \} T(V)=\{Tx| x \in V\} dim(T(V))+dim(Ker(T))=dim(V) Ker(T)=\{0\} \Longleftrightarrow T(V) = W
- ついでに連立方程式を行列で解くのをRで
# 4x+3y+z=2 # 3x+2y-3z=5 # x-3y-2z=-2 a <- matrix(c(4,3,1,3,2,-3,1,-3,-2), 3,3) b <- matrix(c(2,5,-2)) solve(a,b)
5. Clifford代数とスピン群 駆け足で読む『数学をいかに使うか』
- 駆け足で読む『数学をいかに使うか』の目次はこちら
- n次元線形空間Vにな関係を持たせる
- Vの2要素の関係を問題にしている(線形であることも、2要素の足し算の話)
- 要素のペアに関することは、行列で取り扱える
- 行列で扱えば、は対称行列として現れる
- Vを張る基ベクトルは次元の数nだけある
- Vの要素のペアが作る「世界〜環」を張る基ベクトルはになる
- これは、Vの基ベクトルn個を0からn個、重複なしで選ぶ選び方に相当する
- 選び方とするのは、交換してもよいから
- すると、交換してはいけない場合には基ベクトルの数は無限になるということか…
- このようにの基ベクトルを持つ代数がClifford 代数
- Clifford代数からClifford群へ話題は移って、そこから直交群(ノルムを変えない線形変換の行列がなす群)や特殊直交群(そのうちdeterminantが+1の方のみ)の話へ進み、いつの間にやら、Hermite行列のこととか、対角成分のの話とかになって行ってしまっている
- 幾何的には、ノルムを変えないということの他に対称性とかn-1次元超平面とかにつながって話が展開している
- また、「二重被覆」(被覆はこちら)とかでスピン群との関係が登場する