2009-06-09 11 views
5

में सांख्यिकी और मैट्रिक्स बीजगणित मुझे रूबी और वेक्टर में मैट्रिक्स गुणा द्वारा एक भिन्नता-कॉन्वर्सिस मैट्रिक्स को उलटा करने की आवश्यकता है। मुझे किस संख्यात्मक रूबी लाइब्रेरी/जेम का उपयोग करना चाहिए?रुबी

उत्तर

1

'मैट्रिक्स' लाइब्रेरी का उपयोग कर प्रयास करें: पैकेज के साथ एक Cholesky decomposition उपयोग करने के लिए प्रत्यक्ष उलट से

http://www.ruby-doc.org/stdlib/libdoc/matrix/rdoc/index.html 
3

एक संख्यानुसार अधिक स्थिर संभावना है आप here लगता है:

require 'Cholesky.rb' 
require 'pp' 
# m is the covariance matrix you want to invert (it is positive semidefinite) 
l = m.cholesky 
li = l.inverse 
lit = li.transpose 
# lit*li is approximately the inverse and the next line shows this 
pp lit*li*m 

inverting एल की तुलना में बेहतर उपरोक्त लिंक किए गए विकिपीडिया लेख में वर्णित विधि का उपयोग करना है।

अगर आपकी समस्या संख्यानुसार भी अस्थिर है तो Singular Value Decomposition पर विचार है, लेकिन मैं इसके लिए कोड की जरूरत नहीं है।

3

आप कोड को संकलित कर सकते हैं, माणिक GSL

gem install gsl

उलटा LU मॉड्यूल

inverse=GSL::Linalg::LU.invert(matrix)

0

वहाँ NMatrix है का उपयोग कर प्राप्त किया जा सकता का उपयोग करें। बीएलएएस और लैपैक (एटीएलएएस का उपयोग करके) सहित कुछ संचालन के लिए समर्थन है।