| MATLAB Function Reference | ![]() |
Convert complex diagonal form to real block diagonal form
Syntax
[V,D] = cdf2rdf(V,D)
Description
If the eigensystem [V,D] = eig(X) has complex eigenvalues appearing in complex-conjugate pairs, cdf2rdf transforms the system so D is in real diagonal form, with 2-by-2 real blocks along the diagonal replacing the complex pairs originally there. The eigenvectors are transformed so that
X = V*D/V
continues to hold. The individual columns of V are no longer eigenvectors, but each pair of vectors associated with a 2-by-2 block in D spans the corresponding invariant vectors.
Examples
X =
1 2 3
0 4 5
0 -5 4
has a pair of complex eigenvalues.
[V,D] = eig(X)
V =
1.0000 -0.0191 - 0.4002i -0.0191 + 0.4002i
0 0 - 0.6479i 0 + 0.6479i
0 0.6479 0.6479
D =
1.0000 0 0
0 4.0000 + 5.0000i 0
0 0 4.0000 - 5.0000i
Converting this to real block diagonal form produces
[V,D] = cdf2rdf(V,D)
V =
1.0000 -0.0191 -0.4002
0 0 -0.6479
0 0.6479 0
D =
1.0000 0 0
0 4.0000 5.0000
0 -5.0000 4.0000
Algorithm
The real diagonal form for the eigenvalues is obtained from the complex form using a specially constructed similarity transformation.
See Also
| cd | ceil | ![]() |