व्युत्क्रम मैट्रिक्स की गणना के लिए सबसे तेज़ एल्गोरिथम और सकारात्मक निश्चित सममित मैट्रिक्स के लिए इसका निर्धारक क्या है?


10

एक सकारात्मक निश्चित सममित मैट्रिक्स को देखते हुए, व्युत्क्रम मैट्रिक्स और इसके निर्धारक की गणना के लिए सबसे तेज़ एल्गोरिथम क्या है? जिन समस्याओं में मेरी दिलचस्पी है, उनके लिए मैट्रिक्स का आयाम 30 या उससे कम है।

  1. उच्च सटीकता और गति वास्तव में आवश्यक है। (लाखों मैट्रीक किए जाते हैं)
  2. निर्धारक आवश्यक है। प्रत्येक गणना में, iverse मैट्रिक्स के केवल एक तत्व की आवश्यकता होती है। धन्यवाद!

क्या आपको इस तरह के लाखों मैट्रिसेस को पलटना है? अन्यथा, गति एक मुद्दा नहीं होना चाहिए।
वोल्फगैंग बैंगर्थ

मैंने आपका शीर्षक और प्रश्न स्पष्टता के लिए संपादित किया। अगर मैंने कोई त्रुटि की है, तो कृपया मुझे बताएं।
ज्योफ ऑक्सबेरी

@ वोल्फगैंग बंगर्थ हां, गति पर विचार किया जाना चाहिए।
आदेश

1
क्या आप जानते हैं कि व्युत्क्रम मैट्रिक्स के किस तत्व की आवश्यकता है? या यह एक यादृच्छिक प्रविष्टि हो सकती है?
मेमोरियल

2
@ आपकी टिप्पणी और संपादन विरोधाभासी प्रतीत होते हैं: क्या आपको उलटा, या उन सभी के एक तत्व की आवश्यकता है?
फेडरिको पोलोनी

जवाबों:


12

जिन समस्याओं में मेरी दिलचस्पी है, उनके लिए मैट्रिक्स का आयाम 30 या उससे कम है।

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

एक सकारात्मक निश्चित सममित मैट्रिक्स को देखते हुए, व्युत्क्रम मैट्रिक्स और इसके निर्धारक की गणना के लिए सबसे तेज़ एल्गोरिथम क्या है?

यदि गति एक समस्या है, तो आपको निम्नलिखित प्रश्नों का उत्तर देना चाहिए:

  • क्या आपको वास्तव में पूरे व्युत्क्रम की आवश्यकता है? (कई अनुप्रयोगों को एक स्पष्ट उलटा बनाने की आवश्यकता नहीं है।)
  • क्या आपको वास्तव में निर्धारक की आवश्यकता है? (निर्धारक असामान्य हैं, लेकिन निश्चित रूप से कम्प्यूटेशनल विज्ञान में अनसुना नहीं हैं।)
  • क्या आपको या तो उच्च सटीकता की आवश्यकता है? (कम सटीकता वाले एल्गोरिदम अधिक तेज़ होते हैं।)
  • एक संभाव्य सन्निकटन पर्याप्त होगा? (संभावित एल्गोरिदम अधिक तेज़ होते हैं।)

एक छोटे, सकारात्मक निश्चित मैट्रिक्स को निष्क्रिय करने और इसके निर्धारक की गणना करने की आपकी समस्या के लिए मानक प्रतिक्रिया चोल्स्की अपघटन होगी। अगरA=LLT, फिर det(A)=i=1nlii2, और ।det(A1)=i=1nlii2

को द्वारा मान लिया जाए, चोल्स्की अपघटन की गणना लगभग फ्लॉप में की जा सकती है, जो कि LU अपघटन की लागत का लगभग आधा है। हालांकि, ऐसे एल्गोरिथ्म को "तेज" नहीं माना जाएगा। एक यादृच्छिक एलयू अपघटनAnnn3/3यह विचार करने के लिए एक तेज़ एल्गोरिथम हो सकता है कि क्या (1) आपके पास वास्तव में बड़ी संख्या में मेट्रिक्स फैक्टर करने के लिए है, (2) फैक्टरिज़ेशन वास्तव में आपके एप्लिकेशन में सीमित कदम है, और (3) यादृच्छिक रैंडम एल्गोरिथ्म का उपयोग करने में कोई त्रुटि। स्वीकार्य। आपके मैट्रिसेस संभवतः विरल एल्गोरिदम के लायक होने के लिए बहुत छोटे हैं, इसलिए तेज़ एल्गोरिदम के केवल अन्य अवसरों के लिए अतिरिक्त मैट्रिक्स संरचना (जैसे, बैंडेड), या समस्या संरचना का शोषण करना होगा (उदाहरण के लिए, शायद आप अपने एल्गोरिथ्म को चतुराई से पुनर्गठन कर सकते हैं: अब एक मैट्रिक्स व्युत्क्रम या इसके निर्धारक की गणना करने की आवश्यकता है)। कुशल निर्धारक एल्गोरिदम एक स्थिर कारक को हल करने की लागत है, एक स्थिर कारक के भीतर, इसलिए रैखिक प्रणालियों के लिए उपयोग किए जाने वाले समान तर्क, साथ ही साथ निर्धारक की गणना करने के लिए लागू होते हैं।


बस एक संक्षिप्त नोट: यदि , किसी एकल तत्व गणना करने के लिए, केवल के वें कॉलम की गणना करनी चाहिए । एक बार चोल्स्की फैक्टरिसेशन की गणना हो जाने के बाद, यह सभी शून्य के आरएच वेक्टर के संबंध में आगे और पीछे प्रतिस्थापन द्वारा किया जाता है और पंक्ति में केवल एक ही होता है । चूँकि गणना को रूप में जल्द से जल्द बाधित किया जा सकता है, सबसे अच्छा मामला सबसे खराब स्थिति है जहां पूर्ण पीठ की गणना की जाती है और आगे प्रतिस्थापन। B=A1bijjBjbijbnn=lnn2b11
स्टेफानो एम

@StefanoM और भी बेहतर, आप गणना की शुरुआत से पहले अपने मैट्रिक्स को अनुमति दे सकते हैं ताकि आप हमेशा सर्वश्रेष्ठ स्थिति में रहें।
फेडरिको पोलोनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.