NormalMatrixQ

NormalMatrixQ[m]

m が明示的に正規行列であればTrueを,その他の場合はFalseを返す.

詳細とオプション

  • m.ConjugateTranspose[m]ConjugateTranspose[m].m のとき,行列 m は正規行列である.
  • NormalMatrixQは,記号行列にも数値行列と同じように使うことができる.
  • 使用可能なオプション
  • SameTest Automatic式の等価性を検定する関数
    ToleranceAutomatic近似数の許容範囲
  • 厳密行列あるいは記号行列の場合,オプションSameTest->f は,f[aij,bij]Trueを返す場合は2つの項 aijおよび bijが等しいと解釈できることを示す.ただし,a=m.mかつ b=m.m である.
  • 近似行列の場合は,オプションTolerance->t を使って,γt γを満足するノルム γ=m.m-m.mがゼロであると考えられることを示すことができる.ただし,γは行列 m の無限ノルムである.

例題

すべて開くすべて閉じる

  (2)

2×2数値行列が正規行列かどうかの検定を行う:

3×3記号行列が正規行列かどうかの検定を行う:

条件 m.ConjugateTranspose[m]ConjugateTranspose[m].m を手動で確認する:

スコープ  (10)

基本的な用法  (6)

機械精度の実行列が正規行列かどうかの検定を行う:

任意の実行列の対称部分は正規行列である:

複素行列が正規行列かどうかの検定を行う:

任意の複素行列のエルミート部分は正規行列である:

厳密行列が正規行列かどうかの検定を行う:

結果を確かめる:

NormalMatrixQを任意精度の行列に使う:

ランダム行列は,通常は,正規行列ではない:

NormalMatrixQを記号行列に使う:

c=TemplateBox[{b}, Conjugate] の虚部が0のとき,その行列は正規行列である:

NormalMatrixQは大きい数値行列に効率的に作用する:

特殊行列  (4)

NormalMatrixQを疎な行列に使う:

NormalMatrixQを構造化行列に使う:

QuantityArrayを構造化行列に使う:

恒等行列は正規行列である:

HilbertMatrixは正規行列である:

オプション  (2)

SameTest  (1)

この行列は正の実数 については正規行列であるが,NormalMatrixQFalseを返す:

オプションSameTestを使って正しい答を得る:

Tolerance  (1)

次数のランダムな摂動がある正規複素行列を生成する:

m.m-m.mは,主対角の外では厳密にゼロではない:

行列を正規行列として許容するように,オプションToleranceを調節する:

Toleranceは次の値に適用される:

アプリケーション  (5)

正規行列は は対角行列で はユニタリ行列)のようにユニタリ対角化可能な最も一般的な種類の行列である.すべてのエルミート行列 は等式の両辺が単純に なので正規行列である:

同様に,すべての反エルミート行列は等式の両辺が単純に なので正規行列である:

ユニタリ行列は,定義 TemplateBox[{u}, ConjugateTranspose]=TemplateBox[{u}, Inverse]に代入すると両辺が恒等行列になるので,正規行列である:

次の行列が正規行列であることを示し,次にこれを対角化する:

NormalMatrixQを使って確認する:

のような正規行列はEigensystemを使ってユニタリ対角化可能である:

対角成分は任意の複素数でよい:

固有ベクトルを正規化して列に置くとユニタリ行列になる:

対角化 n=u.d.TemplateBox[{u}, ConjugateTranspose]を確認する:

任意の正規行列は p.d.TemplateBox[{p}, ConjugateTranspose] はユニタリ行列, は対角行列)という形で表現可能であるという事実を使って,与えられた固有値の集合から正規行列を生成する:

一般に,行列はエルミート行列,反エルミート行列あるいはユニタリ行列ではない:

行列を生成するのに使われた固有値が実数なら,生成された行列はエルミート行列である:

固有値が純粋な虚数なら,生成された行列は反エルミート行列である:

固有値が単位円上にあるなら,生成された行列はユニタリ行列である:

ユニタリかつ反エルミートである行列を作る:

正規行列はユニタリ対角化可能なので,行列関数を計算することは特に簡単である.n=u.d.TemplateBox[{u}, ConjugateTranspose]なら f(n)=u.f(d).TemplateBox[{u}, ConjugateTranspose]であり,は単に各対角要素に を適用することで計算できる.次の正規行列について考える:

Eigensystem[n]を計算する:

この場合は固有ベクトルが正規化されるので u=TemplateBox[{v}, Transpose]であり, から構築された対角行列である:

を計算してMatrixPowerを使って確かめる:

を計算してMatrixExpを使って確かめる:

を計算してMatrixLogを使って確かめる:

を計算してをMatrixFunction使って確かめる:

CircularRealMatrixDistributionを含む多くの行列分布が正規行列を生成する:

CircularSymplecticMatrixDistribution

GaussianOrthogonalMatrixDistribution

GaussianUnitaryMatrixDistribution

正規行列についてのSchurDecompositionは,常にEigensystemに等しい:

三重行列tは,丸め誤差を含む場合があるが,事実上対角行列である:

tの対角外の要素は丸め誤差である:

tの対角についての固有値はソートされない:

特性と関係  (15)

NormalMatrixQ[m]は,事実上m.mm.mに等しい:

任意の実対称行列は正規行列である:

任意のエルミート行列もそうである:

任意の実反対称行列は正規行列である:

任意の反エルミート行列もそうである:

任意の実直交行列は正規行列である:

任意のユニタリ行列もそうである:

正規行列 について,すべてのベクトル についてTemplateBox[{{n, ., x}}, Norm]=TemplateBox[{{TemplateBox[{n}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], ., x}}, Norm]

2つの正規行列の積は正規行列である必要はない:

2つの正規行列が可換であるときかつそのときに限って積は正規行列である:

この場合は和も正規行列である:

行列のエルミート部分と反エルミート部分が可換であるときかつそのときに限ってその行列は正規行列である:

正規行列は常に対角化可能である:

たしかに,正規行列は常にEigensystemを使ってユニタリ対角化可能である:

固有ベクトルは直交である:

したがって,列に正規化された固有ベクトルを置くとユニタリ行列になる:

したがって,m=u.d.TemplateBox[{u}, ConjugateTranspose].ここで, は成分が固有値 の対角行列である:

正規行列 m について{s,j}=JordanDecomposition[m]を考える:

行列は常に対角行列である:

行列には直交ではあるが必ずしも正規直交ではない列がある:

このことは,NormalizedFalseと設定してUnitaryMatrixQを使うことでより迅速に確かめられる:

正規行列 について複素成分が許されるなら,SchurDecomposition[n] 行列は対角行列である:

対角成分が固有値なので,SchurDecompositionEigensystemと一致する:

実固有値を持つ正規行列はエルミート行列である:

HermitianMatrixQを使って確かめる:

純粋な複素固有値を持つ正規行列は反エルミート行列である:

AntihermitianMatrixQを使って確かめる:

固有値の絶対値がすべて1の正規行列はユニタリ行列である:

UnitaryMatrixQを使って確かめる:

任意の正規行列について.ここで, の固有値である:

正規行列の固有値の絶対値は行列の特異値に等しい:

Wolfram Research (2014), NormalMatrixQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/NormalMatrixQ.html.

テキスト

Wolfram Research (2014), NormalMatrixQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/NormalMatrixQ.html.

CMS

Wolfram Language. 2014. "NormalMatrixQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NormalMatrixQ.html.

APA

Wolfram Language. (2014). NormalMatrixQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NormalMatrixQ.html

BibTeX

@misc{reference.wolfram_2024_normalmatrixq, author="Wolfram Research", title="{NormalMatrixQ}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/NormalMatrixQ.html}", note=[Accessed: 25-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_normalmatrixq, organization={Wolfram Research}, title={NormalMatrixQ}, year={2014}, url={https://reference.wolfram.com/language/ref/NormalMatrixQ.html}, note=[Accessed: 25-November-2024 ]}