logo

行列の内積(フロベニウス内積) 📂行列代数

行列の内積(フロベニウス内積)

定義

2つのm×nm \times n行列X=[xij]X = [x_{ij}]Y=[Y]ijY=[Y]_{ij}内積inner productまたはドット積dot productは次のように定義する。

XY=X,Y=i=1mj=1nxijyij X \cdot Y = \braket{X, Y} = \sum_{i=1}^{m}\sum\limits_{j=1}^{n} x_{ij}y_{ij}

成分が複素数である複素行列の場合には次のようになる。

XY=X,Y=i=1mj=1nxijyij X \cdot Y = \braket{X, Y} = \sum_{i=1}^{m}\sum\limits_{j=1}^{n} \overline{x}_{ij}y_{ij}

x\overline{x}共役複素数である。

説明

ベクトルの内積(ドット積)が「2つのベクトルの各成分を互いに掛けて、すべて足すこと」なので、行列の内積をこのように定義するとベクトルの内積に対する自然な一般化になる。これを下記のように表記し、フロベニウス内積Frobenius inner productとも呼ぶが、特に意味があるわけではなく、ただの人名である。

X,YF \braket{X, Y}_{F}

非常にメジャーに使われているほどではなく、単に表記法の好みの問題とみなせる。XXYYが行列であることを強調したいときに使われると考えればよい。

ノルム

内積があればノルムを自然に定義できるので、行列の(フロベニウス)ノルムを次のように定義する。

XF:=X,XF=i,j(xij)2=Tr(XTX) \| X \|_{F} := \sqrt{\braket{X, X}_{F}} = \sqrt{\sum\limits_{i,j} (x_{ij})^{2}} = \sqrt{\Tr (X^{\mathsf{T}}X)}

上記で説明したように下付きのF_{F}を表記しない場合も多い。最後の等式は以下の公式によって成立する。

基本性質

複素行列XXYYZZと複素数α,β\alpha, \betaに対して、

  • 線形性:
    • αX,βY=αβX,Y\braket{\alpha X, \beta Y} = \overline{\alpha}\beta \braket{X, Y}
    • X+Y,Z=X,Z+Y,Z\braket{X + Y, Z} = \braket{X, Z} + \braket{Y, Z}
    • X,Y+Z=X,Y+X,Z\braket{X, Y + Z} = \braket{X, Y} + \braket{X, Z}
  • 共役対称性: X,Y=Y,X\braket{X, Y} = \overline{\braket{Y, X}}

公式

(1)(1) 次が成立する。 XY=i,jxijyij=Tr(XYT)=Tr(XTY) X \cdot Y = \sum_{i, j} x_{ij}y_{ij} = \Tr (X Y^{\mathsf{T}}) = \Tr (X^{\mathsf{T}}Y) 複素行列の場合は XY=i,jxijyij=Tr(XY)=Tr(XY) X \cdot Y = \sum_{i, j} \overline{x}_{ij}y_{ij} = \Tr (X Y^{\ast}) = \Tr (X^{\ast}Y) ^{\ast}共役転置である。

証明

(1)(1)

インデックスiiに対して開いてみると、

i=1mj=1nxijyij=j=1nx1jy1j+j=1nx2jy2j++j=1nxnjynj \sum_{i=1}^{m}\sum\limits_{j=1}^{n} x_{ij}y_{ij} = \sum\limits_{j=1}^{n} x_{1j}y_{1j} + \sum\limits_{j=1}^{n} x_{2j}y_{2j} + \cdots + \sum\limits_{j=1}^{n} x_{nj}y_{nj}

第一項はXYTXY^{\mathsf{T}}11行、11列成分である。

行列の累乗形

[ABT]ij=[kaikbjk] [AB^{\mathsf{T}}]_{ij} = \left[ \sum_{k} a_{ik}b_{jk}\right]

第二項は[XYT]22[XY^{\mathsf{T}}]_{22}ii番目の項は[XYT]ii[XY^{\mathsf{T}}]_{ii}である。したがって整理すると、

i=1mj=1nxijyij=i[XYT]ii \sum_{i=1}^{m}\sum\limits_{j=1}^{n} x_{ij}y_{ij} = \sum\limits_{i} [XY^{\mathsf{T}}]_{ii}

これはトレースの定義と同じである。Tr(A)=Tr(AT)\Tr(A) = \Tr(A^{\mathsf{T}})により、最終的に次を得る。

XY=X,Y=i,jxijyij=Tr(XYT)=Tr(XTY) X \cdot Y = \braket{X, Y} = \sum_{i, j} x_{ij}y_{ij} = \Tr (X Y^{\mathsf{T}}) = \Tr (X^{\mathsf{T}}Y)