NumPy 1.14 - numpy.linalg.eig()

numpy.linalg.eig




numpy

numpy.linalg.eig

numpy.linalg.eig(a) [source]

एक वर्ग सरणी के eigenvalues ​​और सही eigenvectors की गणना करें।

पैरामीटर:

a : (…, M, M) सरणी

मेट्रिसेस जिसके लिए आइजनवेल्स और राइट ईजेनवेक्टर्स की गणना की जाएगी

यह दिखाता है:

डब्ल्यू : (…, एम) सरणी

आइजनवेल्स, प्रत्येक को इसकी बहुलता के अनुसार दोहराया गया। जरूरी नहीं कि स्वदेशी का आदेश दिया जाए। परिणामी सरणी जटिल प्रकार की होगी, जब तक कि काल्पनिक भाग शून्य नहीं होता है, उस स्थिति में इसे वास्तविक प्रकार में डाला जाएगा। जब a वास्तविक होता है तो परिणामी प्रतिजन वास्तविक (0 काल्पनिक भाग) होंगे या संयुग्म युग्म में होंगे

v : (…, M, M) सरणी

सामान्यीकृत (यूनिट "लंबाई") eigenvectors, जैसे कि स्तंभ v[:,i] eigenvector w[i] अनुरूप है।

जन्म देती है:

LinAlgError

यदि आइजनवेल्यू अभिकलन अभिसरण नहीं करता है।

यह भी देखें

eigvals
एक गैर-सममित सरणी के eigenvalues।
eigh
सममित या हर्मिटियन (संयुग्म सममित) सरणी के eigenvalues ​​और eigenvectors।
eigvalsh
एक सममित या हर्मिटियन (संयुग्म सममित) सरणी के eigenvalues।

टिप्पणियाँ

संस्करण 1.8.0 में नया।

प्रसारण नियम लागू होते हैं, विवरण के लिए numpy.linalg प्रलेखन देखें।

यह _geev LAPACK रूटीन का उपयोग करके कार्यान्वित किया जाता है जो सामान्य वर्ग सरणियों के आइगेनवेल्यूज़ और eigenvectors की गणना करता है।

संख्या w एक आइगेनवैल्यू a अगर वहाँ एक वेक्टर v मौजूद है जैसे कि dot(a,v) = w * v । इस प्रकार, सरणियाँ a , w , और v समीकरणों को संतुष्ट करती हैं dot(a[:,:], v[:,i]) = w[i] * v[:,i] i \ in \ {0, ..., M-1 \}

Eigenvectors की सरणी v अधिकतम रैंक की नहीं हो सकती है, अर्थात्, कुछ कॉलम रैखिक रूप से निर्भर हो सकते हैं, हालांकि राउंड-ऑफ त्रुटि उस तथ्य को अस्पष्ट कर सकती है। यदि eigenvalues ​​सभी अलग हैं, तो सैद्धांतिक रूप से eigenvectors रैखिक रूप से स्वतंत्र हैं। इसी तरह, eigenvectors v का a जटिल (जटिल-मूल्यवान) मैट्रिक्स एकात्मक है यदि मैट्रिक्स सामान्य है, अर्थात, यदि dot(a, aH) = dot(aH, a) , जहां aH संयुग्मित संचलन का aH करता a

अंत में, इस बात पर जोर दिया जाता है कि v में दाईं ओर (दाएं हाथ की तरफ) a eigenvectors हैं। एक सदिश y संतोषजनक dot(yT, a) = z * yT कुछ संख्या z लिए a का बायाँ eigenvector कहा जाता है, और, सामान्य तौर पर, एक मैट्रिक्स के बाएँ और दाएँ eigenvectors आवश्यक नहीं हैं (शायद संयुग्म) अन्य।

संदर्भ

जी स्ट्रांग, रेखीय बीजगणित और इसके अनुप्रयोग , 2 डी एड।, ऑरलैंडो, एफएल, अकादमिक प्रेस, इंक।, 1980, विभिन्न पीपी।

उदाहरण

>>> from numpy import linalg as LA

(लगभग) वास्तविक ई-मूल्यों और ई-वैक्टर के साथ तुच्छ उदाहरण।

>>> w, v = LA.eig(np.diag((1, 2, 3)))
>>> w; v
array([ 1.,  2.,  3.])
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

जटिल ई-मान और ई-वैक्टर रखने वाले रियल मैट्रिक्स; ध्यान दें कि ई-मान एक दूसरे के जटिल संयुग्म हैं।

>>> w, v = LA.eig(np.array([[1, -1], [1, 1]]))
>>> w; v
array([ 1. + 1.j,  1. - 1.j])
array([[ 0.70710678+0.j        ,  0.70710678+0.j        ],
       [ 0.00000000-0.70710678j,  0.00000000+0.70710678j]])

वास्तविक ई-मूल्यों (लेकिन जटिल-मूल्यवान ई-वैक्टर) के साथ जटिल-मूल्यवान मैट्रिक्स; ध्यान दें कि a.conj ()। टी = ए, यानी, एक हर्मिटियन है।

>>> a = np.array([[1, 1j], [-1j, 1]])
>>> w, v = LA.eig(a)
>>> w; v
array([  2.00000000e+00+0.j,   5.98651912e-36+0.j]) # i.e., {2, 0}
array([[ 0.00000000+0.70710678j,  0.70710678+0.j        ],
       [ 0.70710678+0.j        ,  0.00000000+0.70710678j]])

राउंड-ऑफ त्रुटि के बारे में सावधान रहें!

>>> a = np.array([[1 + 1e-9, 0], [0, 1 - 1e-9]])
>>> # Theor. e-values are 1 +/- 1e-9
>>> w, v = LA.eig(a)
>>> w; v
array([ 1.,  1.])
array([[ 1.,  0.],
       [ 0.,  1.]])