Materi
Matriks A berukuran n × n dapat didiagonalkan bila A = PDP⁻¹ untuk suatu matriks diagonal D dan matriks P yang punya invers; dengan kata lain, A serupa dengan matriks diagonal. Teorema diagonalisasi di Interactive Linear Algebra §5.4 menyatakan bahwa ini terjadi tepat ketika A punya n vektor eigen yang bebas linear. Kolom P adalah vektor-vektor eigen itu, dan unsur diagonal D adalah nilai eigen yang bersesuaian, dalam urutan yang sama.
Dua akibat memudahkan pemeriksaan. Bila A punya n nilai eigen yang berbeda, A pasti dapat didiagonalkan, karena vektor eigen untuk nilai eigen berbeda selalu bebas linear. Syarat ini cukup tetapi tidak perlu: matriks identitas punya satu nilai eigen berulang dan tetap diagonal. Syarat yang tepat adalah kelipatan geometri setiap nilai eigen sama dengan kelipatan aljabarnya; satu saja yang kurang membuat A tidak dapat didiagonalkan. [[1, 1], [0, 1]] adalah contoh terkecilnya.
Di numpy, np.linalg.eig mengembalikan nilai eigen dan matriks vektor eigen yang dapat langsung dipakai sebagai P. Untuk matriks yang tidak dapat didiagonalkan, eig tetap mengembalikan matriks, tetapi kolom-kolomnya hampir sejajar sehingga P hampir singular. Karena itu rank P diperiksa dengan toleransi, misalnya np.linalg.matrix_rank(P, tol=1e-8).
A = [[5, −2], [4, −1]]
λ² − 4λ + 3 = 0 → λ = 3 atau λ = 1
λ = 3: A − 3I = [[2, −2], [4, −4]] → v = (1, 1)
λ = 1: A − I = [[4, −2], [4, −2]] → v = (1, 2)
P = [[1, 1], [1, 2]], D = [[3, 0], [0, 1]]
periksa: AP = [[3, 1], [3, 2]] = PD ✓