लिए Iterative "सॉल्वर"


9

मैं कल्पना नहीं कर सकता कि मैं निम्नलिखित समस्या के बारे में सोचने वाला पहला व्यक्ति हूं, इसलिए मैं एक संदर्भ से संतुष्ट हो जाऊंगा (लेकिन एक पूर्ण, विस्तृत उत्तर की हमेशा सराहना की जाती है):

मान लें कि आपके पास एक सममितीय सकारात्मक निश्चित । को बहुत बड़ा माना जाता है, इसलिए स्मृति में को पकड़ना असंभव है। हालाँकि, आप किसी भी लिए, मूल्यांकन कर सकते हैं । कुछ को देखते हुए , आप खोजना चाहेंगे ।Σ∈Rn×nnΣΣxx∈Rnx∈RnxtΣ−1x

दिमाग में आता है कि पहला समाधान का उपयोग करना है (कहते हैं) संयुग्म ढाल। हालांकि, यह कुछ हद तक बेकार लगता है - आप एक स्केलर की तलाश करते हैं और इस प्रक्रिया में आप में एक विशाल वेक्टर पाते हैं । ऐसा लगता है कि सीधे स्केलर की गणना करने के लिए एक विधि के साथ आने के लिए और अधिक समझ में आता है (यानी से गुजरने के बिना )। मैं इस तरह की विधि की तलाश में हूं।Σ−1xRnΣ−1x


2
क्या आपका मैट्रिक्स से कुछ" शॉर्ट एंड वाइड "आयताकार लिए उत्पन्न होता है ? Σ=ATAA
— जियोमैट 22

@ GeoMatt22 दुर्भाग्य से नहीं। लेकिन मान लें कि यह करता है - आप उस मामले में क्या सुझाव देंगे?
— यार डॉन

1
यार, मैं बस सोच रहा था कि अगर कुछ छोटे मैट्रिक्स के साथ काम करना है ... निश्चित रूप से यह किसी भी तरह से मदद नहीं करेगा। क्या आपने "मैट्रिक्स मुक्त महालनोबिस दूरी" या इसी तरह की कोशिश की है? ज्यादा मदद नहीं करने के लिए क्षमा करें!
— जियोमैट 22

धन्यवाद @ GeoMatt22, मैं ऑनलाइन कुछ भी खोजने में सक्षम नहीं था।
— यार डॉन

जवाबों:


2

मुझे नहीं लगता कि मैंने ऐसी किसी विधि के बारे में सुना है जो वास्तव में हल किए बिना आप चाहती है ।y=Σ−1x

एकमात्र विकल्प जो मैं पेश कर सकता हूं, यदि आप आइगेनवेक्टर्स और -वेल्यूज़ के बारे में कुछ जानते थे । आप जानते थे कि वे कर रहे हैं का कहना है कि , तो आप का प्रतिनिधित्व कर सकते जहां के स्तंभों कर रहे हैं , और विकर्ण पर eigenvalues के साथ एक विकर्ण मैट्रिक्स है। नतीजतन, आपके पास उस और आपको वह यह निश्चित रूप से आप सभी eigenvalues, यानी, एक पूर्ण मैट्रिक्स स्टोर करने की आवश्यकता होगी । लेकिन, अगर आप को पता है कि केवल के कुछ eigenvalues ​​हैΣλi,viΣ=VTLVVviLΣ−1=VTL−1V

xTΣ−1x=xTVTL−1Vx=∑iλi−1(viTx)2.
VΣ छोटे हैं, पहला कहें , और बाकी इतना बड़ा है कि आप सभी शर्तों को के साथ लिए कर सकते हैं, फिर आप को अनुमानित कर सकते हैं। इसके बाद आपको केवल सभी eigenvectors के बजाय vectors को स्टोर करना होगा ।mλi−1i>m
xTΣ−1x=∑i=1nλi−1(viTx)2≈∑i=1mλi−1(viTx)2.
mn

बेशक, व्यवहार में यह अक्सर समान रूप से या अधिक मुश्किल होता है eigenvalues ​​और eigenvectors की गणना करना, बस कई बार हल करने की तुलना में ।y=Σ−1x


लेकिन तब आप को खोजने का कार्य के साथ छोड़ दिया रहे एक मैट्रिक्स की सबसे छोटी eigenvalues है, जो एक आसान काम नहीं है ...m
— येर Daon

सही बात। लेकिन कई बार अगर आपको का मूल्यांकन करने की आवश्यकता होती है, तो यह इसके लायक हो सकता है । xTΣ−1x
— वोल्फगैंग बंगर्थ

क्या आप एक तरीका सुझा सकते हैं?
— यार डॉन

चारों ओर बहुत सारे या विरल eigenvalue solvers हैं। ARPACK और PETSc- आधारित SLEPc संभवतः सबसे अधिक उपयोग किए जाने वाले हैं।
— वोल्फगैंग बैंगर्थ

Bangreth संदर्भ के लिए धन्यवाद। मैंने SLEPc की जाँच की (हालांकि बहुत अच्छी तरह से नहीं) और ऐसा लगता है कि जिस तरह से eigenpairs पाए जाते हैं वह (शायद संशोधित) Lanczos पुनरावृत्ति है। यदि कोई सबसे छोटा eigenpairs मांगता है, तो किसी को सभी eigenpairs को स्मृति में ढूंढना और संग्रहीत करना होगा। यह आमतौर पर मैट्रिक्स मुक्त समस्याओं के लिए संभव नहीं है - यह एक मैट्रिक्स के भंडारण के रूप में अधिक मेमोरी लेता है । यदि कोई उलटा पुनरावृत्ति का उपयोग करना चाहता है - कोई भी गारंटी नहीं मिली है जो ईजीनपेयर (ओं) के आदेश के लिए है। क्या मैं कुछ भूल रहा हूँ? mn×n
— यार डॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.