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.

cond(A)
cond(T)