Επιστηµονικός Υπολογισµός ΙΙ Ε. Γαλλόπουλος 1 1 Τµήµα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πολυτεχνική Σχολή, Πανεπιστήµιο Πατρών 24/4/13
Θέµατα αριθµητικής Οι παραπάνω µέθοδοι (FOM, GMRES) ϐασίστηκαν σε χρήση Arnoldi. Το ερώτηµα είναι πόσο µπορεί να επηρεάσει η απώλεια ΟΚ (δηλ. I ˆV m ˆVm 0) όπου ˆV δηλώνει το υπολογισµένο V. µέσω CGS Αποδεικνύεται ότι I ˆV m ˆVm κ 2 ([r (0),AV m ])u µέσω MGS Αποδεικνύεται ότι I V m V )m κ([r (0),AV m ])u Householder Arnoldi δείτε την εργασία του H. Walker. MGS µε επανορθογωνιοποίηση
Για τη GMRES έχει δειχθεί ότι: µέχρις ότου η γραµµική ανεξαρτησία των υπολογισµένων διανυσµάτων ϐάσης Ṽ m σχεδόν χαθεί, η νόρµα του διανύσµατος υπολοίπου της GMRES µε MGS είναι περίπου ίδια µε την αντίστοιχη νόρµα από την GMRES µε Householder. κ(a) I Ṽ j+1 Ṽ j+1 ζ 5 (m,j)u min y ṽ 1 AṼ j y Η τιµή min y ṽ 1 AṼ j y είναι περίπου η νόρµα του σχετικού υπολοίπου, r (j) /β, της GMRES.
... ϕαίνεται ότι αν ο δείκτης κατάστασης, κ(a), δεν είναι πολύ µεγάλος, η απώλεια ορθογωνιότητας συµβαδίζει µε τη νόρµα του διανύσµατος υπολοίπου, εποµένως, µπορεί να γίνει προβληµατική όταν το κατάλοιπο είναι πλέον τόσο µικρό που δεν ενοχλεί.... εποµένως η χρήση MGS αρκεί, εφόσον το κ(a) δεν είναι πάρα πολύ µεγάλο. Αυτό που έχει σηµασία δεν είναι τόσο η καθετότητα των υπολογισµένων διανυσµάτων Ṽ m αλλά η γραµµική τους ανεξαρτησία.
Παρατηρήσεις Σχετικά µε τη GMRES(m) Ενα µητρώο αποκαλείται positive real ή positive definite αν το το συµµετρικό του τµήµα, (A + A )/2, είναι ΣΘΟ. Τότε ισχύει x Ax > 0, x 0. Αν A + A είναι ΣΘΟ GMRES(m) συγκλίνει για κάθε m
Υλοποίηση σε MATLAB Από το help gmres: GMRES Generalized Minimum Residual Method. X = GMRES(A,B) attempts to solve the system of... linear equations A*X = B for X. The N-by -N coefficient matrix A must be... square and the right hand side column vector B must have length N. A may be a... function returning A* X. This uses the unrestarted method with MIN(N,10) total... iterations. GMRES(A,B, RESTART) restarts the method every... RESTART iterations. If RESTART is N or [] then GMRES uses the unrestarted method... as above. GMRES(A,B, RESTART, TOL) specifies the tolerance of... the method. If TOL is [] then GMRES uses the default, 1e-6.
Σχόλια Η υλοποίηση της Mathworks είναι «συντηρητική». Ο υπολογισµός του υπολοίπου γίνεται άµεσα, οπότε χρειάζονται περί τις 2MV ανά εσωτερική επανάληψη: 1 της Arnoldi και 1 για τον υπολογισµό r = b Ax. Το συνολικό κόστος, σε MV, είναι περίπου 1 + (outer 1)(2restart + 1) + 2inner + 1 όπου: α) outer είναι ο αριθµός των επανεκκινήσεων. ϐ) restart είναι το µέγιστο µέγεθος του υπόχωρου πριν την επανεκκίνηση, γ) inner είναι το µήκος του υπόχωρου που χρειάστηκε για σύγκλιση στην τελευταία επανεκκίνηση (δηλ. αν δεν είχαµε επανεκκίνηση, το µήκος του υπόχωρου για τη λύση). Μια πιο γρήγορη υλοποίηση, ϑα εφάρµοζε τον αναδροµικό τύπο για την νόρµα του υπολοίπου ως γ m+1 το κατάλοιπο ϑα µπορούσε να υπολογίζεται άµεσα µόνον πριν κάθε επανεκκίνηση,
Παραδείγµατα A = gallery('wilk',21); b = sum(a,2); tol = 1e -12;... maxit = 15; x = gmres(a,b,40,tol,maxit); gmres (40) converged at outer iteration 1 ( inner... iteration 11) to a solution with relative residual 9.2e -016...... with 24 MV x = gmres(a,b,11,tol,maxit); gmres (11) converged at outer iteration 1 ( inner... iteration 11) to a solution with relative residual 9.2e -016...... with 24 MV x = gmres(a,b,10,tol,maxit); gmres (10) converged at outer iteration 5 ( inner... iteration 1) to a solution with relative residual 7.8e -013......
x = gmres(a,b,9,tol,maxit); gmres (9) converged at outer iteration 5 ( inner... iteration 9) to a solution with relative residual 8e -013... with... 95 MV x = gmres(a,b,8,tol,maxit); gmres (8) converged at outer iteration 7 ( inner... iteration 1) to a solution with relative residual 7.5e -013...... with 106 MV x = gmres(a,b,7,tol,maxit); gmres (7) converged at outer iteration 10 ( inner... iteration 7) to a solution with relative residual 8.9e -013...... with 150 MV
x = gmres(a,b,6,tol,maxit); gmres (6) converged at outer iteration 13 ( inner... iteration 4) to a solution with relative residual 7e -013... with... 166 MV x = gmres(a,b,5,tol,maxit); gmres (5) converged at outer iteration 15 ( inner... iteration 2) to a solution with relative residual 8.7e -013...... with 160 MV x = gmres(a,b,4,tol,maxit); gmres (4) stopped at outer iteration 15 ( inner... iteration 4) without converging to the desired tolerance 1e -012 because the maximum number of iterations was reached. The iterate returned ( number 15(4)) has relative... residual 3e -006
x = gmres(a,b,4,tol,40); gmres (4) stopped at outer iteration 40 ( inner... iteration 4) without converging to the desired tolerance 1e -012 because the maximum number of iterations was reached. The iterate returned ( number 40(4)) has relative... residual 1.7e -012 x = gmres(a,b,4,tol,41); gmres (4) converged at outer iteration 41 ( inner... iteration 3) to a solution with relative residual 9.8e -013...... with 368 MV x = gmres(a,b,3,tol,74);
gmres (3) stopped at outer iteration 74 ( inner... iteration 3) without converging to the desired tolerance 1e -012 because the maximum number of iterations was reached. The iterate returned ( number 74(3)) has relative... residual 1.1e -012 x = gmres(a,b,3,tol,75); gmres (3) converged at outer iteration 75 ( inner... iteration 3) to a solution with relative residual 8.3e -013...... with 525 MV
x = gmres(a,b,2, tol,150); gmres (2) stopped at outer... iteration 150 ( inner iteration 2) without converging to the desired... tolerance 1e -012 because the maximum number of iterations was... reached. The iterate returned ( number 150(2)) has relative... residual 4.4e -008 x = gmres(a,b,2,tol,280); gmres (2) converged at outer iteration 280( inner... iteration 2) to a solution with relative residual 9.4e -013...... with 1400 MV
Προσοχή σχετικά µε τη δυσκολία σύγκλισης της gmres(2): min(eig((a+a )/2))= -1.125; max(eig((a+a )/2))=10.746; 10 5 gmres(11)=gmres( ) 10 5 gmres(10) 10 0 10 0 10 5 10 5 10 10 10 10 10 15 0 5 10 15 10 15 0 10 20 30 40 50 10 5 gmres(8) 10 5 gmres(3) 10 0 10 0 10 5 10 5 10 10 10 10 10 15 0 10 20 30 40 50 10 15 0 50 100 150 200 250
Προσοχή σχετικά µε τη δυσκολία σύγκλισης της gmres(2): min(eig((a+a )/2))= -1.125; max(eig((a+a )/2))=10.746; 10 5 gmres(11)=gmres( ) 10 5 gmres(10) 10 0 10 0 10 5 10 5 10 10 10 10 10 15 0 5 10 15 10 15 0 10 20 30 40 50 10 2 gmres(10) (detail) 10 0 gmres(10) (detail) 10 0 10 5 10 2 10 10 10 4 0 5 10 15 20 10 15 20 25 30 35 40
Μητρώο ελέγχου Matrix Market Μητρώο: SAYLR3 (Saylor s petroleum engineering/reservoir simulation matrices 3D reservoir, 10 10 10). 10 2 gmres(304)=gmres( ) 10 2 gmres(100) 10 0 10 0 10 2 10 2 10 4 10 4 10 6 0 100 200 300 400 10 6 0 200 400 600 10 2 gmres(50) 10 2 gmres(10) 10 0 10 0 10 2 10 2 10 4 10 4 10 6 0 500 1000 1500 10 6 0 1000 2000 3000 4000 5000 Matrix saylr3 from Matrix Market
Πορεία κατάλοιπα για διαφορετικές τιµές του m Μητρώο: SAYLR3 (Saylor s petroleum engineering/reservoir simulation matrices 3D reservoir, 10 10 10). 10 2 10 1 10 0 10 1 10 2 10 3 10 4 10 5 10 6 0 200 400 600 800 1000 1200 Matrix saylr3 from Matrix Market α) Μπλε : m =. ϐ) Πράσινο.: m = 100. γ) Ροζ : m = 50
Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα µέσω υπόχωρων Krylov ίδεται (µεγάλο και αραιό) A R n n, b R n και συνάρτηση φ(.) που είναι αναλυτική στις ιδιοτιµές του A και ϑέλουµε να υπολογίσουµε το φ(a)b. Παραδείγµατα ϱητό πολυώνυµο: φ(a)b = p n1 (A)(q n2 (A)) 1 b εκθετικό: exp(a)b = j=0 1 j! Aj b
Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα Υπενθυµίζουµε ότι κάθε συνάρτηση µητρώου µεγέθους n µπορεί να γραφτεί ως πολυώνυµο µητρώου ϐαθµού < n (πόρισµα ϑεωρήµατος Cayley-Hamilton). Θα προσπαθήσουµε να προσεγγίσουµε τα παραπάνω µέσω προβολών επί χώρου Krylov K m (A,b): εποµένως φ(a)b V m V m φ(a)b = βv m V m φ(a)v m e 1 = φ(a)b βv m (V m φ(a)v m )e 1
Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα Αν η φ µπορεί να προσεγγιστεί από πολυώνυµο φ(a)b p j (A)b := α 0 b + α 1 Ab + α j A j b K j+1 (A,b) µετά από Arnoldi V m p j(a)v m = α 0 I + α 1 H m + α j H j m εφόσον j m 1 (από επαγωγή): A j v 1 = V m H j m e 1 Επαγωγή: Σωστό για j = 0, αν σωστό ως και j 1 τότε A(A j 1 v 1 ) = AV m H j 1 m e 1 = (V m H m + h m+1,m v m+1 em)h j 1 m e 1 = V m H j m e 1. Προσοχή: Αυτό οφείλεται στη δοµή του H m που οδηγεί στη σχέση e m Hj 1 m e 1 = 0, j = 1,...,m 1.
Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα Χρησιµοποιώντας τα παραπάνω: V m p m(a)v m = α 0 I + α 1 H m + α j H j m εποµένως: φ(a)b V m φ(h m )(βe 1 ) Οπως και µε τη λύση συστήµατος, αναγάγαµε τον υπολογισµό του φ(a)b στον υπολογισµό της ϐάσης V m και του υπολογισµού του φ(h m )e 1, όπου το H m R m m και (ελπίζουµε) m n. Υπολογισµός e A b Μπορεί να προσεγγιστεί ως e A b βv m e H m e 1. όπου το e H m e 1 υπολογίζεται µε άλλη µέθοδο.
Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα Επίλυση µε µητρώα από διολίσθιση (1) Θέµα Σε πολλές περιπτώσεις πρέπει να λύσουµε συστήµατα της µορφής (A ζ j I)x j = b Προσέξτε Τα συστήµατα µοιράζονται το δεξιό µέλος και το «µητρώο γεννήτορα». Θέµα Ακόµα και για µικρά προβλήµατα, αν υπολογίσουµε την LU για το A ζ 1 I δεν υπάρχει οικονοµικός τρόπος να υπολογίσουµε την παραγοντοποίηση LU του A ζ 2 I επαναχρησιµοποιώντας στοιχεία από την προηγούµενη LU. Εποµένως ϕαίνεται να απαιτούνται O(n 3 ) πράξεις για κάθε παραγοντοποίηση.
Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα Επίλυση µε µητρώα από διολίσθιση (2) Περίπτωση µικρών µητρώων Αξιοποιούµε τα εξής: 1 Για κάθε A R n n υπάρχει ορθοµοναδιαίο Q τέτοιο ώστε Q AQ = H να είναι άνω Hessenberg. 2 Η παραγοντοποίηση και επίλυση H γίνεται σε O(n 2 ) πράξεις. Συνδυάζοντας τα (1) και (2) η επίλυση s συστηµάτων (A j I)x j = b µπορεί να γίνει σε γn 3 + βsn 2 + O(ns) πράξεις όπου γ,β είναι σταθερές. (ϐλ. ϐιβλίο Επιστ. Υπολ. Ι)
Υπολογισµός συναρτήσεων µητρώων επί διάνυσµα Υπόχωροι Krylov για µητρώα από διολίσθιση Υπενθύµιση Το ϐασικό υπολογιστικό κόστος στις µεθόδους Krylov είναι ο υπολογισµός της ϐάσης. Στοιχείο κλειδί Η διολίσθιση αφήνει έναν χώρο Krylov αµετάβλητο: K m (A;b) = K m (A ζi;b) Ιδέα: Χρησιµοποιούµε την ίδια ϐάση (µε Arnoldi) V m για όλα τα συστήµατα (A ζ j I)x j = b.