2010-06-26 19 views
7

मुझे एक (स्पैस) मैट्रिक्स के सबसे बड़े eigenvalue की गणना करने की आवश्यकता है। मैंने पावर इटरेशन विधि लागू की है, लेकिन यह अभिसरण करने में बहुत धीमी है, इसलिए मैं इसके लिए एक पैकेज का उपयोग करना चाहता हूं। क्या किसी की सिफारिश है?मैट्रिक्स के सबसे बड़े eigenvalue की गणना करने के लिए सबसे अच्छा छोटा सी ++ पैकेज क्या है?

सबसे अच्छा सी ++ eigenvalue गणना पैकेज क्या है? अधिमानतः एक छोटा और संकलित करने में आसान है।

उत्तर

0

कम से कम अगर स्मृति सेवा करता है, तो एक संभावना Boost::uBlas होगी। जबकि पूरी तरह से बूस्ट काफी बड़ा है, uBlas स्वयं ही थोड़ा अधिक उचित है। इसके अलावा, अगर स्मृति यह एक हेडर-केवल लाइब्रेरी है, तो इसका उपयोग करना बहुत आसान है (आपको पहले लाइब्रेरी बनाने की ज़रूरत नहीं है, लिंकर के लिए कुछ भी सेट अप करें, आदि)

संपादित करें: मुझे यह जोड़ना चाहिए सामान्य रूप से कंप्यूटिंग Eigenvalues ​​/ वैक्टर काफी धीमी है, यहां तक ​​कि काफी अनुकूलित कोड के साथ भी। आप जो भी कर रहे हैं उसके आधार पर, अक्सर उन तरीकों को देखने के लिए सार्थक है जो (एक उदाहरण के लिए) आपको मैट्रिक्स के केवल एक उप-समूह (उदाहरण के लिए, Landmark Multidimensional Scaling) की Eigenvalue की गणना करने के साथ मिलते हैं।

+0

धन्यवाद, लेकिन यह सबसे बड़ा eigenvalue वापस जाने के लिए एक समारोह है? मैंने इसे दस्तावेज़ीकरण में नहीं देखा। – Erin

+0

सबसे बड़ा eigenvalue वापस करने के लिए कोई LAPACK फ़ंक्शन नहीं है। आप एक ब्रूट फोर्स मैट्रिक्स विकर्णकरण कर सकते हैं जो आपको सभी eigenvalues ​​देता है, लेकिन यदि आप विशेष Lanzos solvers का उपयोग करना चाहते हैं तो यह बहुत तेज हो जाएगा। –

2

मैं आपको कोई विवरण नहीं दे सकता क्योंकि मैंने इसे स्वयं नहीं उपयोग किया है, लेकिन मुझे लगता है कि एआरपीएक्स मदद की जा सकती है, और विशेष रूप से एआरपीएक्स ++ जो सी ++ अनुकूलन है क्योंकि मूल पैकेज फोरट्रान 77 में है। मुझे लगता है कि MATLAB फ़ंक्शन eigs() सबसे महान eigenvalue (और संबंधित eigenvector) खोजने के लिए इसका उपयोग करता है। मैं जो सुनता हूं उससे टीटी एसटीएल के साथ इंटरफेस करने में सक्षम होना चाहिए।

MATLAB फोरट्रान 77 दिनचर्या डीएसएयूपीडी, डीएसईयूपीडी, डीएनएयूपीडी, डीएनईयूपीडी, जेएनएनयूपीडी, और जेएनईयूपीडी का उपयोग करता है। वे ARPACK ++ में देखने वालों की तरह लगते हैं।

Check it out here.

+0

दरअसल, एआरपीएक्स वहां सबसे अच्छे लोगों में से एक है (+1)। यद्यपि इसके सी ++ इंटरफेस के लिए vouch नहीं कर सकते हैं। –

संबंधित मुद्दे

 संबंधित मुद्दे