Важлива примітка : Оскільки цей виклик стосується лише квадратних матриць, щоразу, коли я використовую термін "матриця", передбачається, що я маю на увазі квадратну матрицю. Я залишаю "квадратний" опис заради стислості.
Фон
Багато операцій, пов’язаних з матрицею, такі як обчислення детермінанта, розв’язування лінійної системи або розширення скалярних функцій до матриць, полегшуються за допомогою діагональної матриці (тієї, елементи якої не знаходяться на головній діагоналі 0), що подібне з оригінальної матриці (тобто, для матриці вхідного Aі діагональної матриці D, існує деяка оборотна матриця Pтаким чином, що D = P^(-1) * A * P, крім того , Dі Aмають деякі важливі властивості, такі як власні, визначника і сліду). Для матриць з чіткими власними значеннями (корені до характерного многочлена матриці, заданого рішенням det(A-λI) = 0для λ, де Iматриця тотожності з тими ж розмірами, що і A), діагоналізація проста:Dє матрицею з власними значеннями на головній діагоналі і Pє матрицею, утвореною з власних векторів, що відповідають цим власним значенням (у тому ж порядку). Цей процес називається ейгендекомпозицією .
Однак матриці з повторними власними значеннями не можуть бути діагоналізовані таким чином. На щастя, нормальну форму Йорданії будь-якої матриці можна обчислити досить легко, і працювати з нею не набагато складніше, ніж із звичайною діагональною матрицею. Він також має приємну властивість, що, якщо власні значення є унікальними, то розкладання Йорданії є ідентичним ейгендекомпозиції.
Іорданське розкладання пояснили
Для квадратної матриці A, всі власні значення якої мають геометричну кратність 1, процес розкладання Йордану можна описати як такий:
- Нехай
λ = {λ_1, λ_2, ... λ_n}буде список власних значеньAмножинності з повторними власними значеннями, що з'являються послідовно. - Створіть діагональну матрицю
J, елементами якої є елементиλ, в одному порядку. - Для кожного власного значення, кратність якого перевищує 1, розмістіть a
1праворуч від кожного з повторів власного значення у головній діагоналіJ, крім останнього.
Отримана матриця Jє нормальною формою Йордану A(може бути кілька нормальних форм Йорданії для даної матриці, залежно від порядку власних значень).
Працюючий приклад
Нехай Aбуде наступна матриця:
Власні значення значень Aмножинності є λ = {1, 2, 4, 4}. Вкладаючи їх у діагональну матрицю, ми отримуємо такий результат:
Далі розміщуємо 1s праворуч від усіх, крім однієї з повторних власних значень. Оскільки 4це єдине власне значення, яке повторюється, ми розміщуємо одиницю 1поруч із першими 4:
Це нормальна форма Йорданії A(одна матриця потенційно може мати декілька дійсних нормальних форм Йорданії, але я розглядаю цю деталь для пояснення).
Завдання
Давши квадратну матрицю Aв якості введення, виведіть дійсну нормальну форму Йорданії A.
- Вхід і вихід можуть бути у будь-якому розумному форматі (2D масив / список / все, список / масив / незалежно від векторів стовпців чи рядків, тип вбудованої матриці даних тощо).
- Елементи та власні значення
Aзавжди будуть цілими числами в діапазоні[-200, 200]. - Для простоти всі власні величини матимуть геометричну кратність 1 (і таким чином вищезазначений процес має місце).
Aмаксимум буде матрицею 10х10 та принаймні матрицею 2х2.- Вбудовані, які обчислюють власні значення та / або власні вектори або виконують ейгендекомпозицію, розкладку Йорданії чи будь-який інший вид розкладання / діагоналізації, не допускаються. Допускається арифметика матриці, інверсія матриці та інші вбудовані матриці.
Тестові справи
[[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@#&? Або це обман?