थोड़ा रैखिक बीजगणित की पृष्ठभूमि वाले लोगों के लिए, चुनौती इस तरह से सरल है: किसी दिए गए जटिल 2x2 मैट्रिक्स के eigenvalues और eigenvectors को निर्धारित करें । आप I / O विवरण आदि के लिए चैलेंज को आगे छोड़ सकते हैं, उन लोगों के लिए जिन्हें आइगेंस सिस्टम पर थोड़ा रिफ्रेशर की आवश्यकता होती है, पर पढ़ें।
पृष्ठभूमि
विशेषता समीकरण एक मैट्रिक्स के एक से परिभाषित किया गया है
det| A - λI | = 0
जहां λ एक जटिल (स्केलर) पैरामीटर है, मैं पहचान मैट्रिक्स और det | ... | है निर्धारक । बाएं हाथ की ओर λ में एक बहुपद का मूल्यांकन करती है , विशेषता बहुपद , जो 2x2 मैट्रिसेस के मामले में द्विघात है। इस विशेषता समीकरण के समाधान ए के आइजेनवल हैं , जिन्हें हम λ 1 और λ 2 के रूप में निरूपित करेंगे ।
अब eigenvectors v मैं का एक संतुष्ट
A vi = λi vi
प्रत्येक λ i के लिए , यह आपको दो अज्ञात ( v i के घटकों ) में दो समीकरणों की एक प्रणाली प्रदान करता है , जिन्हें आसानी से हल किया जा सकता है। आप ध्यान देंगे कि प्रणाली वास्तव में अंडरसिज्ड है, और ईजेनवेक्टरों का परिमाण समीकरणों द्वारा निर्धारित नहीं किया गया है। हम आमतौर पर चाहते हैं कि आइजनवेक्टर को सामान्य किया जाए, यानी √ (| x | 2 + | y | 2 ) = 1 , जहाँ x और y वेक्टर घटक हैं, x | 2 है एक्स इसकी जटिल संयुग्म से गुणा।
ध्यान दें कि आइजनवेल्यूज पतित हो सकते हैं, अर्थात λ 1 = λ 2 । इस मामले में, आप दो रेखीय स्वतंत्र eigenvectors के साथ समीकरणों की एकल प्रणाली को संतुष्ट करने या करने में सक्षम नहीं हो सकते हैं।
चुनौती
जटिल तत्वों के साथ एक 2x2 मैट्रिक्स को देखते हुए, इसके दो (संभवतः समान) eigenvalues और प्रत्येक eigenvalue के लिए एक सामान्यीकृत eigenvector निर्धारित करें। परिणामी संख्या कम से कम 3 (दशमलव) महत्वपूर्ण अंकों के लिए सटीक होनी चाहिए। आप मान सकते हैं कि किसी भी मैट्रिक्स तत्व का वास्तविक और काल्पनिक भाग [-1,1] सीमा में है ।
आप एक फ़ंक्शन या प्रोग्राम लिख सकते हैं, STDIN, कमांड-लाइन तर्क, प्रॉम्प्ट या फ़ंक्शन तर्क के माध्यम से इनपुट ले सकते हैं। आप परिणाम को STDOUT, एक संवाद बॉक्स या फ़ंक्शन रिटर्न मान के रूप में आउटपुट कर सकते हैं।
आप इनपुट और आउटपुट के लिए किसी भी सुविधाजनक (लेकिन अस्पष्ट) स्ट्रिंग या सूची प्रारूप का उपयोग कर सकते हैं। आप व्यक्तिगत संख्याओं का प्रतिनिधित्व करने के लिए झांकियों या जटिल प्रकारों के जोड़े के बीच चयन कर सकते हैं।
आप eigensystems सुलझाने (मेथेमेटिका की तरह के लिए निर्मित उपयोग नहीं करना चाहिए कार्यों Eigenvectors
या Eigensystem
या समीकरण समाधानकर्ताओं)।
यह कोड गोल्फ है, इसलिए सबसे छोटा उत्तर (बाइट्स में) जीतता है।
उदाहरण
प्रत्येक उदाहरण तीन पंक्तियाँ हैं: इनपुट, आइजनवेल्यूज़ और इसी क्रम में एक ही eigenvectors। ध्यान दें कि eigenvectors केवल उनके चरण तक निर्धारित होते हैं, और यह कि पतित eigenvalues के मामले में, eigenvectors वास्तव में मनमाना हो सकता है (जैसा कि पहले उदाहरण में)।
[[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]]