2009-01-20 12 views
34

मैंने न्यूम्पी के मैनुअल में पढ़ा है कि det(M) फ़ंक्शन है जो निर्धारक की गणना कर सकता है। हालांकि, मुझे Numpy में det() विधि नहीं मिल रही है।क्या मुझे नम्पी का उपयोग करके मैट्रिक्स निर्धारक मिल सकता है?

वैसे, मैं पायथन 2.5 का उपयोग करता हूं। Numpy के साथ कोई संगतता समस्या नहीं होनी चाहिए।

उत्तर

57

आप एक सरणी के निर्धारक गणना करने के लिए उपयोग कर सकते हैं numpy.linalg.det: जब numpy.linalg.det का उपयोग कर

In [1]: import numpy 

In [2]: M = [[1, 2], [3, 4]] 

In [3]: print numpy.linalg.det(M) 
Out[3]: -2.0000000000000004 
19

के लिए बड़े सरणियों अधःप्रवाह/अतिप्रवाह हो सकता है, या आप एक जवाब के रूप inf या -inf मिल सकता है।

इन मामलों में से कई में आप उपयोग कर सकते हैं numpy.linalg.slogdet (see documentation) है, जो देता है:

(sign, logdet) 

जहां sign संकेत और logdet निर्धारक के लघुगणक, है ऐसा है कि आप निर्धारक det कर की गणना कर सकते हैं:

det = np.exp(logdet) 
संबंधित मुद्दे