Önemli not : Bu meydan okuma sadece kare matrisler için geçerli olduğundan, "matris" terimini her kullandığımda, bir kare matrise atıfta bulunduğum varsayılmaktadır. Ben kısaca aşk için "kare" açıklamasını bırakıyorum.
Arka fon
Determinantın hesaplanması, doğrusal bir sistemin çözülmesi veya skaler değerli fonksiyonların matrislere genişletilmesi gibi matrisle ilgili birçok işlem, benzer bir diyagonal matris (ana diyagonal üzerinde olmayan elemanları 0 olan) kullanılarak daha kolay hale getirilir orijinal matrise (giriş matrisi için anlamı A
ve diyagonal matris D
, bir ters çevrilebilir bir temel matris P
bu şekilde D = P^(-1) * A * P
, aynı zamanda, D
ve A
özdeğerler, belirleyici ve iz gibi bazı önemli özelliklere paylaşan). Ayrı öz değerleri ile matrislerin (çözme tarafından verilen matris karakteristik polinom, köklerden için det(A-λI) = 0
için λ
, I
aynı boyutlarda olarak kimlik matrisidir A
), Diyagonalleştirme basittir:D
ana köşegen üzerinde özdeğerleri P
olan bir matristir ve bu özdeğerlere karşılık gelen özvektörlerden (aynı sırayla) oluşan bir matristir. Bu işleme öz-derleme denir .
Bununla birlikte, tekrarlanan özdeğerleri olan matrisler bu şekilde köşegenleştirilemez. Neyse ki, herhangi bir matrisin Ürdün normal formu oldukça kolay hesaplanabilir ve normal bir diyagonal matristen çalışmak çok daha zor değildir. Ayrıca, eğer özdeğerler benzersizse, Ürdün ayrışmasının öz-bileşim ile özdeş olması hoş bir özelliğe sahiptir.
Ürdün ayrışması açıklandı
A
Özdeğerlerinin tümü geometrik çokluğu 1 olan bir kare matris için Ürdün ayrıştırma işlemi şu şekilde tarif edilebilir:
- Izin vermek art arda tekrarlanan özdeğerleri ile, çokluk ile
λ = {λ_1, λ_2, ... λ_n}
özdeğerlerinin listesi olsunA
. J
Öğeleriλ
aynı sırayla öğeleri olan çapraz bir matris oluşturun .- Çoğulluğu 1'den büyük olan her bir özdeğer için
1
, özdeğerin tekrarlarının her birinin sağınaJ
, sonuncusu hariç ana köşegenine yerleştirin .
Ortaya çıkan matris J
Ürdün normal formudur A
(belirli bir matris için özdeğerlerin sırasına bağlı olarak birden fazla Ürdün normal formu olabilir).
Çalışan bir örnek
Izin vermek A
aşağıdaki matris olmak:
A
Çokluk ile özdeğerleridir λ = {1, 2, 4, 4}
. Bunları köşegen bir matrise koyarak bu sonucu elde ederiz:
Sonra, 1
s'yi tekrarlanan özdeğerlerin her biri hariç her birinin sağına yerleştiririz. Yana 4
sadece tekrarlanan özdeğeridir, biz tek yerleştirmek 1
ilk 4'e sonraki:
Bu Ürdün normal formudur A
(tek bir matris potansiyel olarak birkaç geçerli Ürdün normal formuna sahip olabilir, ancak açıklama amacıyla bu ayrıntıyı inceliyorum).
Görev
A
Girdi olarak bir kare matris verildiğinde , geçerli bir Ürdün normal formunun çıktısını alın A
.
- Giriş ve çıkış herhangi bir makul formatta olabilir (2B dizi / liste / her neyse, liste / dizi / sütun veya satır vektörleri, yerleşik matris veri türü, vb.).
- Öğelerinin öğeleri ve özdeğerleri
A
her zaman aralıkta tamsayılar olacaktır[-200, 200]
. - Basitlik adına, tüm özdeğerlerin geometrik çokluğu 1 olacaktır (ve dolayısıyla yukarıdaki süreç geçerlidir).
A
en fazla 10x10 matris ve en az 2x2 matris olacaktır.- Özdeğerleri ve / veya özvektörleri hesaplayan veya özdepozisyon, Ürdün ayrışması veya başka herhangi bir tür ayrışma / köşegenleştirme gerçekleştiren yapılara izin verilmez. Matris aritmetiği, matris inversiyonu ve diğer matris yerleşiklerine izin verilir.
Test senaryoları
[[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@#&
? Yoksa aldatıyor mu?