Biraz doğrusal cebir arka planı olanlar için, meydan okuma bu kadar basittir: belirli bir karmaşık 2x2 matrisinin özdeğerlerini ve özvektörlerini belirleyin . G / Ç Mücadelesi ayrıntıları vb. İçin atlayabilirsiniz. Özsistemlerde biraz tazelenmeye ihtiyaç duyanlar için okumaya devam edin.
Arka fon
Karakteristik denklem , bir matris A tarafından tanımlanır
det| A - λI | = 0
burada λ karmaşık (skaler) bir parametredir, ben kimlik matrisi ve det | ... | olduğu belirleyici . Sol taraf, λ cinsinden bir polinomu , karakteristik polinomu , 2x2 matrislerinde kuadratik olarak değerlendirir. Bu karakteristik denklemin çözeltilerdir özdeğerler ve A biz ifade edecektir, λ 1 ve λ 2 .
Şimdi özvektörler v i arasında bir Tatmin
A vi = λi vi
Her λ i için , bu size iki bilinmeyenli iki denklemden oluşan bir sistem verir ( v i'nin bileşenleri ), ki bu kolayca çözülebilir. Sistemin gerçekten az belirtildiğini ve özvektörlerin büyüklüğünün denklemlerle belirlenmediğini fark edeceksiniz. Genellikle özvektörlerin normalleştirilmesini isteriz, yani √ (| x | 2 + | y | 2 ) = 1 , burada x ve y vektör bileşenleri, | x | 2 , karmaşık konjugatı ile x çarpılır.
Not özdeğerler dejenere olabilir, yani, λ 1 = λ 2 . Bu durumda, doğrusal olarak bağımsız iki özvektör ile tek denklem sistemini tatmin edebilir veya edemeyebilirsiniz.
Meydan okuma
Karmaşık elementlere sahip 2x2'lik bir matris verildiğinde, iki (muhtemelen özdeş) özdeğerlerini ve her özdeğer için normalize edilmiş bir özvektörü belirleyin. Ortaya çıkan sayılar en az 3 (ondalık) anlamlı basamağa kadar doğru olmalıdır. Herhangi bir matris elemanının gerçek ve hayali kısımlarının [-1,1] aralığında olduğunu varsayabilirsiniz .
STDIN, komut satırı bağımsız değişkeni, bilgi istemi veya işlev bağımsız değişkeni ile girdi alarak bir işlev veya program yazabilirsiniz. Sonucu STDOUT, bir iletişim kutusu veya işlev dönüş değeri olarak çıktılayabilirsiniz.
Giriş ve çıkış için uygun (ancak kesin olmayan) bir dize veya liste biçimi kullanabilirsiniz. Bireysel sayıları temsil etmek için şamandıra çiftleri veya karmaşık tipler arasında seçim yapabilirsiniz.
Özsistemleri (Mathematica Eigenvectors
veya benzeri Eigensystem
) veya denklem çözücüleri çözmek için yerleşik işlevleri kullanmamalısınız .
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.
Örnekler
Her örnek üç satırdır: giriş, özdeğerler ve karşılık gelen özvektörler aynı sırayla. Özvektörlerin sadece fazlarına kadar belirlendiğine ve dejenere özdeğerler söz konusu olduğunda, özvektörlerin gerçekten keyfi olabileceğine dikkat edin (ilk örnekte olduğu gibi).
[[1.0, 0.0], [0.0, 1.0]]
[1.0, 1.0]
[[1.0, 0.0], [0.0, 1.0]]
[[0.0, 0.4], [-0.1, -0.4]]
[-0.2, -0.2]
[[0.894427, -0.447214], [0.894427, -0.447214]]
[[0.3, 0.1], [0.4, -0.9]]
[-0.932456, 0.332456]
[[-0.0808731, 0.996724], [0.951158, 0.308703]]
[[0.5, -1.0], [0.8, -0.5]]
[0.74162i, - 0.74162i]
[[0.745356, 0.372678 - 0.552771i], [0.745356, 0.372678 + 0.552771i]]
[[-0.0539222 + 0.654836i, -0.016102 + 0.221334i], [0.739514 - 0.17735i, -0.0849216 + 0.77977i]]
[0.238781 + 0.984333i, -0.377625 + 0.450273i]
[[0.313668 + 0.322289i, 0.893164], [-0.236405 - 0.442194i, 0.865204]]
[[-0.703107 - 0.331792i, 0.286719 - 0.587305i], [-0.418476 + 0.396347i, -0.885934 + 0.50534i]]
[-1.13654 - 0.32678i, -0.4525 + 0.500329i]
[[0.833367, -0.248208 - 0.493855i], [-0.441133 - 0.408236i, 0.799215]]
[[-0.156312 + 0.788441i, 0.045056 - 0.579167i], [0.130741 - 0.97017i, 0.049183 - 0.590768i]]
[-0.181759 + 1.11738i, 0.0746298 - 0.919707i]
[[0.86955, -0.493846 + 0.000213145i], [0.318856 - 0.0181135i, 0.94763]]