7.2 Eigenvalue Decomposition
Terms for complex matrices:
- adjoint or hermitian == transpose
- self-adjoint or hermitian == symmetric
- unitary == orthogonal
Key theory:
- EVD analytically simplifies to a polynomial root-finding problem based on the determinant
- Matrices are similar if they have the same eigenvalues
- Matrix powers are defined through powers of the eigenvalues
- Bauer-Fike theorem: eigenvalues can be perturbed by a factor of the the eigenvector matrix condition number more than the matrix perturbation
- introduces the concept of a normal matrix (condition number = 1)
- Numerically EVD beyond scope of book but related to matrix powers
Exercise 5.2.8
Eigenvalues of random matrices and their perturbations can be very interesting.
Define A and produce scatter plot in complex plane
A = randn(60,60);
lambda_A = eigvals(A);
scatter(real(lambda_A), imag(lambda_A), aspect_ratio=1,
color=:red, markershape=:diamond, leg=:none)
Let E by another random matrix to perturb A. Plot eigenvalues on top. Repeat for 100 values of E.
plt = scatter(real(lambda_A), imag(lambda_A), aspect_ratio=1,
color=:red, markershape=:diamond, leg=:none);
for i in 1:100
E = randn(60,60);
lambda_tmp = eigvals(A+0.05.*E);
scatter!(real(lambda_tmp),imag(lambda_tmp),m=1,color=:blue,
leg=:none)
end
plt
Let T be the upper triangle of A. Repeat with T.
T = triu(A);
lambda_T = eigvals(T);
plt = scatter(real(lambda_T), imag(lambda_T), aspect_ratio=1,
color=:red, markershape=:diamond, leg=:none)
for i in 1:100
E = randn(60,60);
lambda_tmp = eigvals(T+0.05.*E);
scatter!(real(lambda_tmp),imag(lambda_tmp),m=1,color=:blue,
leg=:none)
end
plt
Compute some condition numbers and apply Theorem 7.2.9.