行列の高度な操作
行列の特異値とノルムを求める
行列
m の「特異値」は固有値
m.m*の平方根である.ここで
*はエルミート転置を表す.このような特異値の数は行列の小さい方の次元である.
SingularValueListは特異値を大きいものから順に並べる.非常に小さな特異値は通常数値的に無意味である.オプション設定
Tolerance->t とすると
SingularValueListは最大特異値の端数
t よりも小さな特異値は除去する.近似数値行列の許容率はデフォルトでゼロよりも若干大きくなっている.
n-次元の空間における単位球内の各点のベクトルに
m×
n 行列
m を掛けると
m-次元の楕円体が得られる.この楕円体の主軸の長さは
m の特異値で与えられる.
行列の「2ノルム」
Norm[m, 2]は楕円体の最大主軸であり,行列の最大特異値に等しい.これはまた任意の可能な単位ベクトル
v についての
m.v の最大の2ノルムの長さでもある.
行列の「
p-ノルム」
Norm[m, p]は一般に
m.v の
p-ノルムの達することができる最大の長さである.最もよく考慮されているのは
p=1,
p=2と
p=
の場合である.フロベーニウスのノルム
Norm[m, "Frobenius"]が考慮されることもある.これは
m.m*のトレースの平方根である.
正方行列の三角形への分解
LinearSolve[m]を使って
LinearSolveFunctionを作ると,これは行列
m を三角形に分解することで作用する.そのような形を明示的に得られると便利なことがある.
「LU分解」は任意の正方行列を下三角行列あるいは上三角行列に効果的に分解する.「コレスキー(Cholesky)分解」は任意のエルミートの正定値行列を下三角行列とエルミート共役の積に効果的に分解する.これは行列の平方根を求めることに例えることができる.
行列の直交分解
行列の逆行列の標準的な定義は,行列が正方行列あるいは特異行列ではない場合には成り立たない.しかし,行列
m の「擬似逆行列」
m (-1)はそれでも定義することができる.
m.m (-1)-I 中のすべての要素の平方の和を最小にすることで設定できる.ここで
I は単位行列である.擬似逆行列は一般化された逆行列あるいはムーア・ペンローズ(Moore-Penrose)型の逆行列ともいわれる.これは最小2乗フィットに関連した問題で特によく使われる.
「QR分解」は任意の行列
m を積
q*.r として表す.ここで
q は正規直交行列であり
*はエルミートの転置を表す.また
rは主対角線以下のすべての要素がゼロの三角行列である.
「特異値分解(SVD)」は多くの数値行列のアルゴリズムの根底にある要素のひとつである.この基本概念は行列
m を
u.s.v*という形式で書き表すことで,ここで
s は対角線上に
m の特異値を持つ行列,
u と
v は正規直交行列で,
v* は
v のエルミート型の転置である.
固有値問題に関連する関数
ほとんどの行列は相似変換としてその固有ベクトルの行列を適用することで固有値の対角行列に約すことができる.しかし,こうするのに十分な固有ベクトルがない場合でも,行列を対角線上に固有値とジョルダン(Jordan)ブロックの両方がある「ジョルダン(Jordan)型」に約すことができる.「ジョルダン(Jordan)分解」は一般に任意の正方行列を
s.j.s-1として書く.
これよりも数値的により安定しているのは「Schur分解」である.これは任意の正方行列
m を
q.t.q*として書く.ここで
q は正規直交行列であり
t はブロック上三角形である.これに関連するものとして,正方行列
m を
p.h.p* の形式で表記する「ヘッセンベルク(Hessenberg)分解」が挙げられる.ここで,
p は正規直交行列であり,
h は主対角の下の対角まで非零要素を持つことができる.