Lưu ý quan trọng : Vì thử thách này chỉ áp dụng cho ma trận vuông, bất cứ khi nào tôi sử dụng thuật ngữ "ma trận", giả định rằng tôi đang đề cập đến một ma trận vuông. Tôi đang rời khỏi mô tả "hình vuông" vì lợi ích của sự ngắn gọn.
Lý lịch
Nhiều hoạt động liên quan đến ma trận, như tính toán định thức, giải hệ phương trình tuyến tính hoặc mở rộng các hàm có giá trị vô hướng thành ma trận được thực hiện dễ dàng hơn bằng cách sử dụng ma trận đường chéo (một phần tử không nằm trên đường chéo chính là 0) tương tự đối với ma trận gốc (nghĩa là đối với ma trận đầu vào A
và ma trận đường chéo D
, tồn tại một số ma trận khả nghịch P
như vậy D = P^(-1) * A * P
, đồng thời, D
và A
chia sẻ một số thuộc tính quan trọng, như giá trị riêng, định thức và dấu vết). Đối với các ma trận có giá trị riêng biệt (gốc của đa thức đặc trưng của ma trận, được đưa ra bằng cách giải det(A-λI) = 0
cho λ
, trong đó I
ma trận nhận dạng có cùng kích thước như A
), đường chéo là đơn giản:D
là một ma trận có các giá trị riêng trên đường chéo chính và P
là một ma trận được hình thành từ các hàm riêng tương ứng với các giá trị riêng đó (theo cùng một thứ tự). Quá trình này được gọi là eigendecro .
Tuy nhiên, ma trận với các giá trị riêng lặp đi lặp lại không thể được chéo theo cách này. May mắn thay, dạng bình thường của Jordan của bất kỳ ma trận nào có thể được tính toán khá dễ dàng và không khó để làm việc hơn so với ma trận đường chéo thông thường. Nó cũng có một đặc tính tốt là, nếu các giá trị riêng là duy nhất, thì phân tách Jordan giống hệt với phân tách.
Jordan phân tích giải thích
Đối với một ma trận vuông A
có giá trị riêng đều có bội số hình học là 1, quá trình phân tách Jordan có thể được mô tả như sau:
- Hãy
λ = {λ_1, λ_2, ... λ_n}
là danh sách các giá trị riêng củaA
, với bội số, với các giá trị riêng lặp đi lặp lại xuất hiện liên tiếp. - Tạo một ma trận đường chéo
J
có các phần tử là các phần tử củaλ
, theo cùng một thứ tự. - Đối với mỗi giá trị riêng có bội số lớn hơn 1, đặt a
1
bên phải của mỗi lần lặp lại của giá trị riêng trong đường chéo chính củaJ
, ngoại trừ cuối cùng.
Ma trận kết quả J
là một dạng bình thường của Jordan A
(có thể có nhiều dạng Jordan bình thường cho một ma trận nhất định, tùy thuộc vào thứ tự của các giá trị riêng).
Một ví dụ làm việc
Hãy A
là ma trận sau:
Các giá trị riêng của A
, với bội số, là λ = {1, 2, 4, 4}
. Bằng cách đặt chúng vào một ma trận đường chéo, chúng ta có được kết quả này:
Tiếp theo, chúng tôi đặt 1
s ở bên phải của tất cả, ngoại trừ một trong những giá trị riêng được lặp lại. Vì 4
là giá trị riêng lặp đi lặp lại duy nhất, chúng tôi đặt một cái duy nhất 1
bên cạnh 4 đầu tiên:
Đây là một dạng bình thường của Jordan A
(một ma trận đơn lẻ có khả năng có thể có một số dạng bình thường Jordan hợp lệ, nhưng tôi đang che đậy chi tiết đó cho mục đích giải thích).
Nhiệm vụ
Đưa ra một ma trận vuông A
làm đầu vào, xuất ra một dạng Jordan bình thường hợp lệ A
.
- Đầu vào và đầu ra có thể ở bất kỳ định dạng hợp lý nào (mảng 2D / danh sách / bất cứ thứ gì, danh sách / mảng / bất cứ thứ gì của vectơ cột hoặc hàng, kiểu dữ liệu ma trận dựng sẵn, v.v.).
- Các phần tử và giá trị riêng của
A
sẽ luôn là các số nguyên trong phạm vi[-200, 200]
. - Để đơn giản, tất cả các giá trị riêng sẽ có bội số hình học là 1 (và do đó quá trình trên giữ).
A
nhiều nhất sẽ là ma trận 10x10 và ít nhất là ma trận 2x2.- Không được phép xây dựng các phép tính toán giá trị riêng và / hoặc hàm riêng hoặc thực hiện phân tách, phân tách Jordan hoặc bất kỳ loại phân tách / đường chéo nào khác. Số học ma trận, đảo ngược ma trận và các nội dung ma trận khác được cho phép.
Các trường hợp thử nghiệm
[[1, 0], [0, 1]] -> [[1, 1], [0, 1]]
[[3, 0], [0, 3]] -> [[1, 1], [0, 1]]
[[4, 2, 2], [1, 2, 2],[0, 3, 3]] -> [[6, 0, 0], [0, 3, 0], [0, 0, 0]]
[[42, 48, 40, 64, 64], [41, 47, 31, 58, 42], [-55, -47, -27, -74, -46], [-46, -58, -46, -70, -68], [30, 20, 12, 34, 18]] -> [[10, 0, 0, 0, 0], [0, -18, 0, 0, 0], [0, 0, 6, 1, 0], [0, 0, 0, 6, 1], [0, 0, 0, 0, 6]]
Last@JordanDecomposition@#&
? Hay là gian lận?