Main Content

cdf2rdf

複素対角型行列を実数対角ブロック型に変換

説明

[Vnew,Dnew] = cdf2rdf(V,D) は、実数行列 X[V,D] = eig(X) または [V,D] = eigs(X,___) の出力を複素対角型から実数対角型に変換します。この操作により X の固有値が D で表されるように変換され、X*Vnew = Vnew*Dnew となるように V が変換されます。

  • "複素対角型" では、D は、主対角上の固有値の複素共役対を持つ対角行列です。

    [λ1a+biabic+dicdi]

    対角上の固有値の一部は実数の場合がありますが、複素共役固有値の組は隣接していると仮定されます。

  • "実数対角型" では、Dnew は、対角要素に実固有値を持ち、複素固有値は主対角に沿った 2 行 2 列の実数のブロックとして表されます。

    [λ1abbacddc]

すべて折りたたむ

実数行列の固有値と固有ベクトルを計算し、複素共役固有値の組を実数ブロックに変換します。

実数行列の固有値と固有ベクトルを求めます。

X = [1   1   1   1   1 
     0   4   5   1   1 
     0  -5   4   1   1 
     0   0   2   3   1
     0   0  -3  -2   1];
[V,D] = eig(X)
V = 5×5 complex

   1.0000 + 0.0000i  -0.0179 - 0.1351i  -0.0179 + 0.1351i   0.1593 - 0.4031i   0.1593 + 0.4031i
   0.0000 + 0.0000i   0.0130 - 0.6214i   0.0130 + 0.6214i   0.0704 - 0.0267i   0.0704 + 0.0267i
   0.0000 + 0.0000i   0.6363 + 0.0000i   0.6363 + 0.0000i  -0.1261 + 0.1032i  -0.1261 - 0.1032i
   0.0000 + 0.0000i   0.1045 - 0.2087i   0.1045 + 0.2087i  -0.2279 - 0.4161i  -0.2279 + 0.4161i
   0.0000 + 0.0000i  -0.1156 + 0.3497i  -0.1156 - 0.3497i   0.7449 + 0.0000i   0.7449 + 0.0000i

D = 5×5 complex

   1.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   3.8801 + 5.1046i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   3.8801 - 5.1046i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   2.1199 + 0.7018i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   2.1199 - 0.7018i

D は 1 つの実数固有値と 2 組の複素共役固有値を含みます。

Dnew を実数ブロック対角型にし、VnewX*Vnew = Vnew*Dnew を満たすように VD を変換します。

[Vnew,Dnew] = cdf2rdf(V,D)
Vnew = 5×5

    1.0000   -0.0253   -0.1911    0.2253   -0.5701
         0    0.0184   -0.8789    0.0996   -0.0378
         0    0.8999         0   -0.1784    0.1459
         0    0.1478   -0.2951   -0.3222   -0.5885
         0   -0.1634    0.4946    1.0534         0

Dnew = 5×5

    1.0000         0         0         0         0
         0    3.8801    5.1046         0         0
         0   -5.1046    3.8801         0         0
         0         0         0    2.1199    0.7018
         0         0         0   -0.7018    2.1199

Dnew にも実数固有値が含まれますが、複素共役固有値は、2 行 2 列のブロックで置き換えられます。

入力引数

すべて折りたたむ

右固有ベクトル行列。[V,D] = eig(X) または [V,D] = eigs(X,___) により返される行列として指定します。

データ型: single | double
複素数のサポート: あり

対角固有値の行列。[V,D] = eig(X) または [V,D] = eigs(X,___) により返される行列として指定します。D の対角上の固有値の一部は実数の場合がありますが、複素共役固有値の組は隣接していると仮定されます。

eigs は固有値と固有ベクトルのサブセットを返し、要求された固有値の数には、複素共役対の半分が含まれる可能性があります。cdf2rdf は、D 入力に不完全な複素共役対が含まれる場合エラーを返します。

データ型: single | double
複素数のサポート: あり

出力引数

すべて折りたたむ

変換された右固有ベクトル行列。行列として返されます。V の固有ベクトルは、X*Vnew = Vnew*Dnew で保持されるように変換されます。入力固有ベクトル行列 V がユニタリの場合、Vnew も同じくユニタリです。Vnew の個々の列は X の固有ベクトルではなくなりますが、Dnew の 2 行 2 列のブロックに関係付けられる Vnew のベクトルの各組は、対応する不変ベクトルになります。

変換された対角固有値の行列。ブロック対角実数行列として返されます。D の複素共役固有値の組は、Dnew の対角に沿った 2 行 2 列の実数ブロックに置き換えらえます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

参考

| |