## Vì sao chéo hóa đáng giá Một ma trận **biến đổi tuyến tính** thường vừa xoay, vừa nghiêng, vừa co giãn mặt phẳng — nên việc áp dụng lặp lại có thể rối. Nhưng nếu tìm được các **vectơ riêng**, ta có những hướng đặc biệt: sau biến đổi, chúng chỉ đổi độ dài (và có thể đảo chiều), không đổi phương. Hệ các hướng này là cách nhìn “đúng tọa độ” cho phép biến đổi. Trong cơ sở riêng, phép biến đổi được biểu diễn bởi ma trận đường chéo. Khi đó, thay vì phải theo dõi sự pha trộn giữa các tọa độ, bạn chỉ cần nhân từng tọa độ với một số. Đây là lý do chéo hóa đặc biệt hữu ích khi tính `A²`, `Aⁿ` hoặc mô tả động lực lặp — tương tự việc tách một pipeline xử lý dữ liệu thành các kênh độc lập. <viz id="0"></viz> **Kéo các thanh trượt** để thay đổi ma trận, rồi **bật chế độ cơ sở riêng**. Hãy quan sát những mũi tên nào vẫn nằm trên cùng một đường thẳng sau biến đổi, và so sánh lưới ở hai chế độ. Một hướng riêng không nhất thiết giữ nguyên chiều dài: nó được nhân với **trị riêng** tương ứng. Trị riêng dương giữ chiều, trị riêng âm đảo chiều, còn độ lớn cho biết mức co giãn. Không phải ma trận nào cũng có đủ hướng riêng thực; tiêu chuẩn chính xác sẽ xuất hiện ở <ref slide="6">Khi nào chéo hóa được</ref>. **Hãy giữ trực giác này:** chéo hóa không làm thay đổi phép biến đổi; nó chọn một hệ tọa độ khiến cấu trúc của phép biến đổi lộ ra. ## Đích đến: `A = P D P^-1` Ví dụ dùng `A = [3 1; 0 2]`, với các cặp riêng `v1 = (1,0), lambda1 = 3` và `v2 = (1,-1), lambda2 = 2`. Theo thứ tự từ phải sang trái: `P^-1` đổi tọa độ sang cơ sở riêng, `D` co giãn từng tọa độ, rồi `P` đổi về hệ chuẩn. Luôn giữ cột thứ `i` của `P` đi với phần tử đường chéo thứ `i` của `D`; có thể kiểm bằng `AP = PD`. ## Tìm đa thức đặc trưng Để tìm trị riêng của `A`, ta tìm những `λ` khiến `A − λI` không khả nghịch. Điều đó tương đương với định thức bằng `0`, tạo ra **đa thức đặc trưng**: `det(A − λI) = 0`. Với `A = [[a, b], [c, d]]`, khai triển cho ta `det(A − λI) = (a − λ)(d − λ) − bc = λ² − (a + d)λ + (ad − bc)`. Hai phép kiểm rất mạnh, hầu như miễn phí, là: hệ số của `λ` phải bằng âm **vết** `−tr(A)`, còn hằng số phải bằng **định thức** `det(A)`. Chúng giống assertion trong chương trình: chạy ngay sau một phép biến đổi dễ lỗi để chặn bug lan xuống bước sau. <viz id="2"></viz> **Thay đổi các phần tử của ma trận** và **bấm kiểm tra nhanh**. Sau đó **bật lỗi dấu có chủ ý** để xem kiểm tra vết và định thức phát hiện hệ số sai ra sao. Hãy phân biệt dấu trừ trong `A − λI`: chỉ các phần tử trên đường chéo trở thành `a − λ` và `d − λ`; các phần tử ngoài đường chéo vẫn là `b` và `c`. Sau khi khai triển, việc sắp đa thức theo lũy thừa giảm dần của `λ` giúp bạn đọc nghiệm nhất quán. **Trước khi giải nghiệm, hãy luôn đối chiếu** vết và định thức. Bước nhỏ này bảo vệ mọi kết quả ở <ref slide="4">Đọc trị riêng từ nghiệm</ref>. ## Đọc trị riêng từ nghiệm Các **trị riêng** là nghiệm của đa thức đặc trưng. Với đa thức `λ² − tr(A)λ + det(A) = 0`, ta có `λ₁,₂ = [tr(A) ± √Δ] / 2`, với `Δ = tr(A)² − 4det(A)`. **Biệt thức** `Δ` nhanh chóng cho biết bức tranh nghiệm: - `Δ > 0`: hai trị riêng thực phân biệt; - `Δ = 0`: một trị riêng thực lặp; - `Δ < 0`: một cặp trị riêng phức liên hợp. Vết là tổng hai trị riêng, còn định thức là tích của chúng. Vì vậy, chúng không chỉ kiểm tra khai triển mà còn kiểm tra cả nghiệm bạn vừa tính. <viz id="3"></viz> **Kéo thanh trượt vết và định thức** để đi qua ranh giới `Δ = 0`. Hãy quan sát hai nghiệm thực tiến lại gần nhau, trùng nhau, rồi không còn là nghiệm thực. Hai trị riêng thực phân biệt của ma trận `2×2` luôn tạo hai vectơ riêng độc lập, nên ma trận chéo hóa được trên số thực. Trường hợp trị riêng lặp cần thận trọng hơn: nghiệm lặp không tự động bảo đảm có đủ hai hướng riêng. **Hãy kiểm tra cả tổng lẫn tích** của hai nghiệm với vết và định thức trước khi chuyển sang giải vectơ riêng tại <ref slide="5">Tìm vectơ riêng đúng</ref>. ## Tìm vectơ riêng đúng Sau khi có một trị riêng `λ`, ta tìm **vectơ riêng** khác vectơ không bằng cách giải hệ thuần nhất `(A − λI)v = 0`. Với ma trận `2×2`, hai hàng của hệ thường phụ thuộc khi `λ` thật sự là trị riêng. Bạn chỉ cần dùng một phương trình không tầm thường, đặt một ẩn tự do — chẳng hạn `y = t` — rồi biểu diễn ẩn còn lại theo `t`. Mọi bội khác `0` của một vectơ riêng vẫn là vectơ riêng, nên không có một đáp án số duy nhất. Quan trọng nhất là **thay ngược**: kiểm tra trực tiếp `Av = λv` theo từng tọa độ. Đây là unit test của bạn cho vectơ riêng. <viz id="4"></viz> **Chọn một hàng có phương trình hữu ích**, rồi **kéo tham số `t`** nhưng tránh giá trị `0`. **So sánh `Av` với `λv`** và kiểm tra rằng cả hai tọa độ đều trùng nhau. Nếu hai vế không khớp, nguyên nhân thường là sai dấu khi chuyển vế hoặc dùng một `λ` không phải nghiệm của đa thức đặc trưng. Nếu khớp, bạn có thể chuẩn hóa vectơ hoặc dùng một bội nguyên đơn giản hơn; lựa chọn đó không ảnh hưởng đến chéo hóa. Để lập `P`, bạn cần các vectơ riêng **độc lập tuyến tính**, không chỉ các vectơ riêng đúng. Điều kiện này quyết định được minh họa trong <ref slide="6">Khi nào chéo hóa được</ref>. ## Khi nào chéo hóa được Ma trận `n×n` **chéo hóa được** khi có `n` vectơ riêng độc lập tuyến tính. Với `2×2`, điều này nghĩa là cần hai hướng riêng độc lập để làm hai cột của `P`, khi đó `P` khả nghịch. Ba tình huống quan trọng: - Hai trị riêng phân biệt: luôn có hai vectơ riêng độc lập. - Trị riêng lặp nhưng có hai hướng riêng độc lập: vẫn chéo hóa được; ma trận đơn vị là ví dụ đơn giản. - Trị riêng lặp nhưng chỉ có một hướng riêng: không chéo hóa được; khối Jordan là mô hình điển hình. Nói chính xác hơn, với mỗi trị riêng, số vectơ riêng độc lập là **bội hình học** — số chiều của không gian nghiệm `(A − λI)v = 0`. Nó không được vượt quá **bội đại số**, tức số lần trị riêng lặp trong đa thức đặc trưng. <viz id="5"></viz> **Chọn lần lượt từng ma trận** và so sánh số hướng riêng. Với trường hợp khối Jordan, **kéo vectơ thử** để xem vì sao bạn không thể tạo cột thứ hai độc lập cho `P`. Đừng kết luận “trị riêng lặp thì không chéo hóa được”. Kết luận đúng là: trị riêng lặp buộc bạn phải đếm số chiều không gian riêng. Nếu tổng số chiều các không gian riêng là `2`, bạn có đủ cơ sở; nếu chỉ là `1`, phép đổi cơ sở bằng `P` không thể đảo ngược. **Hãy dùng tiêu chuẩn số vectơ riêng độc lập**, rồi mới bắt đầu lắp `P` và `D`. # Checklist chống lỗi dấu Slide này tổng kết quy trình chéo hóa ma trận 2×2 bằng các điểm kiểm tra ngắn: đối chiếu đa thức đặc trưng với vết và định thức, kiểm tra trị riêng và vectơ riêng, ghép đúng các cột của `P` với đường chéo của `D`, rồi xác nhận bằng `AP=PD`. Một lỗi dấu cố ý cho thấy vì sao cần kiểm tra hệ số trước khi giải tiếp. Xem lại <ref slide="3">Tìm đa thức đặc trưng</ref> khi cần ôn phần khai triển, và dùng kiểm tra cuối như cầu nối đến <ref slide="8">Thử chéo hóa một ma trận</ref>. ## Thử chéo hóa một ma trận Bạn sắp hoàn tất toàn bộ quy trình **chéo hóa ma trận** với \[ A=\begin{bmatrix}4&1\\2&3\end{bmatrix}. \] Điều quan trọng không chỉ là tìm đúng hai số: mỗi **trị riêng** phải đi cùng vectơ riêng của nó, rồi đi cùng đúng cột của \(P\) và đúng phần tử đường chéo của \(D\). Một đổi chỗ nhỏ ở cuối có thể làm hỏng đẳng thức \(AP=PD\), dù các phép tính trước đó đều đúng. <viz id="1"></viz> ### Hoàn thành thử thách **Đặt hai thanh trượt trị riêng** sao cho chúng vượt qua cả kiểm tra vết lẫn định thức. Với ma trận \(2\times2\), hai trị riêng phải thỏa \[ \lambda_1+\lambda_2=\operatorname{tr}(A),\qquad \lambda_1\lambda_2=\det(A). \] **Chọn một vectơ cho từng trị riêng** và dùng ý tưởng \(Av=\lambda v\) để quyết định. Sau đó **chọn thứ tự cột của \(P\) và thứ tự đường chéo của \(D\)**. Đích đến là thẻ cuối chuyển sang xanh: \(AP=PD\). Nếu thẻ đang đỏ, **sửa bước đang được viền sáng trước**. Phản hồi luôn dừng tại lỗi đầu tiên: ban đầu là dấu hoặc nghiệm của đa thức đặc trưng, tiếp theo là phép thay \(Av=\lambda v\), và cuối cùng là thứ tự ghép cặp. Cách làm có kiểm tra này chính là checklist ở <ref slide="7">Checklist chống lỗi dấu</ref>: tìm, kiểm tra, ghép cặp, rồi xác nhận.