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行列とユニタリー行列
    • H^*=Hであるような(n次)正方行列を(n次)Hermite行列という
    • TT^*=1_nであるようなn次ユニタリー行列という
  • 定理2.1. n次Hermite行列Hに対してn次ユニタリー行列Tとn個の実数\lambda_iを取ってTHT^{-1}=diag[\lambda_1,\lambda_2,...,\lambda_n]とすることができる。この\lambda_iの集合(取り方)はTの取り方によらずHに対して定まる
    • この\lambdaのセットは固有値全体である
    • 複素数正方行列Aを用いてH=A^*Aとすると(大概の場合)HはHermite行列になり、それを固有値分解してH=T^*diag[\lambda_i]Tとすることで\lambda_i > 0であり、Tはユニタリー行列(T^*T=I_nである
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の固有値がすべて正であることが必要かつ十分である。ただし、正値定符号であるとは、x \neq 0であるようなn次元複素成分タテベクトルについてx^*Hx=\sum_{i=1}^n \sum_{j=1}^n h_{ij}\bar{x_i}x_jが常に正であることを言う。ここでx^*HxをHermite形式と呼ぶ
  • 定理2.3. n次正値定符号Hermite行列の全体をP_nとすると、Hとその正の整数乗H^mP_nの要素であってHH^mとは1対1対応する(mが正の整数でなくてもよさそうだが…まだ、行列の正のs整数乗以外の話が出てきていないので、ここでは正の整数にしているのだろうか)
  • 定理2.4. 一般線形群に属するA(A\in GL_n(\mathbf{C}))は、任意のn次正値定符号Hermite行列Hに対してA^*HA\in P_n
  • 定理2.5. n次正値定符号Hermite行列H=(h_{ij})\in P_nに対して、常にdet{H} \le \prod_{i}^n h_{ii}
  • 定理2.6. n次正方行列A=[a_{ij}]\in M_n(\mathbf{C})ならば、常に(det{A})^2 \le \prod_{j}^n \sum_{i=1}^n |a_{ij}|^2
    • n次元平行体の体積は、全ベクトルが相互に直交するときに最大となることを(も)示している
  • 線形代数群・環・体
    • 群Gの部分集合AとGの要素xについて、xA=\{xa | a \in A\}とし、Ax,xAyなども同様に定める
    • 群G,G'がありGからG'への写像\phiがあり、x,y\in Gに対して\phi(xy)=\phi(x)\phi(y)であるとき、\phiをGからG'への準同型写像(homomorphism)と呼ぶ
    • \phiがG'の単位元へと移すGの元を\phiカーネルと言う。Ker(\psi)=\{x \in G | \psi(x) = e'\}
    • \phiカーネルはGの部分群となる。
    • Ker(\phi)=\{1\}ならば、\phiはGからG'への同型写像(isomorphism)と言い、Gは\phiによって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)))