cdf2rdf
複素対角型行列を実数対角ブロック型に変換
説明
[ は、実数行列 Vnew,Dnew] = cdf2rdf(V,D)X の [V,D] = eig(X) または [V,D] = eigs(X,___) の出力を複素対角型から実数対角型に変換します。この操作により X の固有値が D で表されるように変換され、X*Vnew = Vnew*Dnew となるように V が変換されます。
"複素対角型" では、
Dは、主対角上の固有値の複素共役対を持つ対角行列です。対角上の固有値の一部は実数の場合がありますが、複素共役固有値の組は隣接していると仮定されます。
"実数対角型" では、
Dnewは、対角要素に実固有値を持ち、複素固有値は主対角に沿った 2 行 2 列の実数のブロックとして表されます。
例
実数行列の固有値と固有ベクトルを計算し、複素共役固有値の組を実数ブロックに変換します。
実数行列の固有値と固有ベクトルを求めます。
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 を実数ブロック対角型にし、Vnew が X*Vnew = Vnew*Dnew を満たすように V と D を変換します。
[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 列の実数ブロックに置き換えらえます。
拡張機能
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
cdf2rdf 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入すべての入力行列のアルゴリズムが改善され、計算時の浮動小数点の丸め誤差が小さくなりました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)