Επιστηµονικός Υπολογισµός ΙΙ Ε. Γαλλόπουλος 1 1 Τµήµα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πολυτεχνική Σχολή, Πανεπιστήµιο Πατρών 27/3/13
Μέθοδος ελαχίστου υπολοίπου (Minimum residual) Θέµα: Αν το µητρώο δεν είναι ΣΘΟ µπορεί σε κάποιο ϐήµα της Απότοµης Καθόδου να ισχύσει (r (j),ar (j) ) = 0 και να υπάρξει αστοχία. Ιδέα Πλαγιογώνια προβολή, µε L := AK, οπότε αν όπως πριν K = span{r (j) } τότε x (j+1) := x (j) + r (j) ((r (j) ) A Ar (j) ) 1 (r (j) ) A r (j) j = 0;r (0) = b Ax (0) ; while r (j) > ε do j = j + 1; α j = (Ar (j 1),r (j 1) )/(Ar (j 1),Ar (j 1) ) x (j) = x (j 1) + α j r (j 1) r (j) = r (j 1) α j p (j 1) end while := x (j) + r (j) (Ar (j),ar (j) ) 1 (Ar (j),r (j) )
Ιδιότητες Κάθε ϐήµα ελαχιστοποιεί το f(x) = b Ax (j) 2 2 στην διεύθυνση r. Παρατηρήσεις Αν το A + A είναι ΣΘΟ τότε ο αλγόριθµος συγκλίνει για κάθε αρχικό x (0). Τότε ) 1/2 r j+1 2 (1 µ2 r (j) 2 σ 2 όπου µ = λ min (A + A )/2 και σ = A 2.
Μέθοδοι υποχώρου Krylov Μέθοδοι υποχώρου Krylov Οι µέθοδοι προβολής κατασκευάζουν προσεγγίσεις x (m) στην λύση x ώστε x (m) x (0) +K m, r (m) := b Ax (m) L m. Στις µεθόδους του υποχώρου Krylov, εν συντοµία µεθόδους Krylov, λαµβάνουµε ως K m := K m (A,r (0) ) := span[r (0),Ar (0),...,A m 1 r (0) ]. Χρησιµοποιπούνται οι εξής επιλογές: L m = K m L m = AK m L m = K m (A,r (0) ).
Μέθοδοι υποχώρου Krylov Συζήτηση Εξ ορισµού x (m) = x (0) m 1 + j=0 γ j A j r (0) = x (0) + q m 1 (A) }{{} r (0), πολυώνυµο επανάληψης q m 1 Π m 1 και r (m) = r (0) m 1 A j=0 γ j A j r (0) = (I Aq m 1 (A))r (0) = p m (A) }{{} r (0), πολυώνυµο υπολοίπου p m Π m Στο ϐήµα m, K m = K m, και η διάσταση µεγαλώνει σε κάθε ϐήµα. Οι µέθοδοι Krylov λέγονται και πολυωνυµικές µέθοδοι.
Μέθοδοι υποχώρου Krylov Θεωρία A R n n, x R n, και «µονικό» πολυώνυµο p Π m ώστε p(a)x = 0 και αν q(a)x = 0 και deg(q) < deg(p) τότε q 0. Τότε το p αποκαλείται το ελάχιστο πολυώνυµο του A ως προς x και ο ϐαθµός του p αποκαλείται ϐαθµός (ή ϐαθµίδα) του x ως προς A. Από το ϑεώρηµα Caley-Hamilton έπεται ότι deg(p) n.
Μέθοδοι υποχώρου Krylov Αναλλοίωτοι υποχώροι Ορισµός Ενας διανυσµατικός υποχώρος S καλείται αναλλοίωτος ως προς A αν AS S. Για κάθε m n, dimk m 1 dimk m n. Επίσης, αν ο ϐαθµός του x ως προς A είναι M n, τότε για κάθε m n dimk m dimk M n. Αν ο ϐαθµός του x ως προς A είναι m τότε ο υποχώρος K m είναι αναλλοίωτος ως προς A, K m = K m για m m, και για κάθε d, dimk d = min(d,m,n). Ο χώρος Krylov K m (A,r) έχει διάσταση m αν και µόνο αν ο ϐαθµός του r ως προς A είναι µεγαλύτερος ή ίσος του m.
Μέθοδοι υποχώρου Krylov «Τµήµα» τελεστή Εστω διανυσµατικός υποχώρος X και η ΟΚ ϐάση V m και Q m := V m V m ο αντίστοιχος τελεστής ορθογώνιας προβολής επί του K m. Τότε V m V m AV my K m. Ο τελεστής Q m AQ m R m m αποκαλείται τµήµα του A στον K m. ( ρα επί του K m, το αποτέλεσµα ανήκει στο K m ) Παραδείγµατα Εστω A m := V m V m AV mv m. Εστω X = span{e 1,...,e m }. Τότε V m = {e 1,...,e m } και Q m = I m και A m = V m AV m = [a 1:m,1,...,a 1:m,m ]. Εστω X = span{x} και x x = 1. Τότε A m = x Ax.
Μέθοδοι υποχώρου Krylov Αναγωγή µητρώων µορφή Hessenberg Βασικό αποτέλεσµα Για κάθε A R n n υπάρχει ορθογώνιο Q τέτοιο ώστε Q AQ = H όπου H άνω Hessenberg. Το Q µπορεί να υπολογιστεί ως γινόµενο ανακλαστών Householder 1 Στη MATLAB Συνάρτηση hess.m Παρατηρήσεις Ο αλγόριθµος ορίζεται αναδροµικά για τετράγωνο µητρώο A R n n : Εστω ότι πριν την έναρξη του ϐήµατος k = 1,...,n 2 έχουµε ήδη µηδενίσει τα στοιχεία στις ϑέσεις (3 : n,1), (4 : n,2),..., (k + 1 : n,k 1) του A µε ανακλαστές H 1,...,H k 1 : A (k) = H k 1 H 1 AH 1 H k 1. Τότε στο ϐήµα k υπολογίζεται ο ανακλαστής H k που µηδενίζει τα στοιχεία (k + 2 : n,k) του A (k). Παρατηρούµε πως ο πολλαπλασιασµός (H k A (k) )H k αφήνει τα ήδη εισαχθέντα µηδενικά ανέπαφα, οπότε στο τέλος ϑα έχουµε πως A (n 2) είναι άνω Hessenberg. Κόστος Ω 10 3 n3 : 1 ϐλ. σύγγραµµα Laub ή σηµειώσεις Επιστηµονικού Υπολογισµού Ι.
Θέµατα: Θεώρηµα διαδικασίες για την ορθογωνιοποίηση και κανονικοποίηση υλοποιήσεις εφαρµογές: προβλήµατα ελαχίστων τετραγώνων, προβλήµατα ιδιοτιµών, διάσπαση σε ιδιάζουσες τιµές. Εστω A R m n και m n, τότε υπάρχει µητρείο Q R m n µε ορθοκανονικές (ΟΚ) στήλες και άνω τριγωνικό µητρείο R R n n ώστε A = QR. Αν m = n τότε το Q είναι µοναδιαίο αν το A είναι αντιστρέψιµο ή έχει γραµµικά ανεξάρτητες στήλες τότε το R µπορεί να επιλεχθεί έτσι ώστε να έχει ϑετικά στοιχεία στη διαγώνιο. Με αυτή την κανονικοποίηση τα Q,R ειναι µοναδικά. Οι στήλες του Q είναι ΟΚ ϐάση για το χώρο span{a 1,...,a n }. Η παραπάνω παραγοντοποίηση πολλές ϕορές αναφέρεται και σαν οικονοµική QR.
διανυσµάτων σε ακυ ιερεύνηση Θέµα ίδονται x,y R n και Ϲητούµε z span{x,y} ώστε z x = 0. Η λύση δίνεται από το Υλοποίηση: z = y P x y, P x := xx x x z = SAXPY {}}{ y x y x y }{{} x 2 DOTS Προβληµατισµός Ακόµα και αν (z, y) = Ο(ε), δεν είναι εξασφαλισµένο ότι cos(z,y) ϑα είναι µικρό, δηλ. ότι το z είναι κάθετο στο y. Προσέξτε (z,y) z y = cos(z,y) εποµένως υπάρχει κίνδυνος όταν το προκύπτον z 0. Π.χ. καταστροφική απαλοιφή αν x y και αυτά είναι αποτελέσµατα άλλων υπολογισµών.
Κλασικός αλγόριθµος Gram-Schmidt Παρουσιάζεται σε όλα τα ϐιβλία ΓΑ. Η γενική ιδέα είναι η εξής. Εστω ότι έχουµε ήδη κατασκευάσει ορθοκανονική ϐάση q 1,,q k 1 για τις στήλες a 1,...,a k 1 και ότι ϑέλουµε να υπολογίσουµε το ΟΚ διάνυσµα q k που είναι ορθογώνιο ως προς τα q 1,...,q k 1. Παρατηρούµε ότι αν από το a k αφαιρέσουµε την ορθ. προβολή του επί τα q 1,..,q k 1 τότε έχουµε διάνυσµα παράλληλο στο Ϲητούµενο q k. Αν P j = q jq j q j q j }{{} =1 συµβολίζει τον τελεστή προβολής επί του q j τότε q k = a k P 1 a k P 2 a 2 P k 1 a k q k = q k q k 2
ιαδοχικά, εφόσον ρ jj = q j 2 έχουµε q 1 = a 1 /ρ 11, q 2 = (I P 1 )a 2 /ρ 22... =... q k = (I P k 1 P 2 P 1 )a k /ρ kk... =... q n = (I P 1 P n 1 )a n /ρ nn Εκ κατασκευής τα διανύσµατα q k είναι µεταξύ τους ορθοκανονικά. Σηµειώστε ότι δεν ϑέλουµε να υπολογίσουµε τους τελεστές I P j αλλά µόνον την εφαρµογή τους σε διάνυσµα DOT {}}{ (I P j )x = x q j ( q j x ) }{{} SAXPY
function[q, R] = CGS(A) ρ 11 = a 1 q 1 = a 1 /ρ 11 for k = 1 : n for i = 1 : k 1 ρ ik = q i a k end q k = a k k 1 i=1 ρ ikq i ρ kk = q k q k = q k /ρ kk end
Παρατηρήσεις κόστος T CGS αρθ = 2mn2 + O(mn). Κάθε ϐήµα υλοποιείται µε πράξεις DOT και saxpy. Σε κάθε ϐήµα του εξωτερικού ϐρόγχου ο CGS υπολογίζει ϐαθµωτούς ρ jk (1 j k) ώστε a k = k j=1 ρ jk q k, 1 k n, δηλαδή την παραγοντοποίηση A = Q 1 R 1 όπου Q 1 = [q 1,...,q n ] και ρ 11...... ρ 1n. R 1 = 0.................... 0...... ρ nn
Αριθµητικά προβλήµατα κλασικής GS Ο αλγόριθµος χρησιµοποιεί τον τελεστή (I P 1 ) επί του a 1, µετά υπολογίζει τον P 2 ϐασιζόµενος στο αποτέλεσµα της εφαρµογής του (I P 1 )a 1, µετά υπολογίζει το (I P 1 P 2 )a 2 κ.ό.κ. Οι πράξεις ενέχουν κινδύνους (π.χ. το q 2 µπορεί να µην είναι ακριβώς ορθογώνιο στο q 1, το q 3 µπορεί να είναι λιγότερο ορθογώνιο στα q 2,q 1, κλπ.) Παράδειγµα 1 1 1 δ 0 0 A = 0 δ 0 0 0 δ όπου δ 2 < ε, ώστε fl(1 + δ 2 ) = 1. Π.χ. σε α.κ.υ. IEEE 64-bits, δ = 7.4506e 009.
Q CGS = 1 0 0 δ 0 2 2 0 0 2 2 2 0 2 2 2 Τότε q 2 q 3 0.5, άρα η ορθογωνιότητα έχει χαθεί, ενώ I Q CGS Q CGS F 0.7071 Αξίζει να σηµειωθεί ότι αν και οι στήλες του Q CGS δεν είναι ΟΚ, ισχύει ότι A Q CGS R CGS 0.
Εναλλακτική υλοποίηση Θα αποφύγουµε πράξεις του τύπου I P 1 P 2...; q k q j = 0 P k P j = 0 Αρα ισχύουν σχέσεις του τύπου I P 1 P 2 = (I P 2 )(I P 1 ) Τροποποιούµε τον αλγόριθµο να υπολογίζει µε τη σειρά q 1 = a 1 /ρ 11, =... q k = (I P k 1 ) (I P 2 )(I P 1 )a k /ρ kk... =... q n = (I P n 1 ) (I P 1 )a n /ρ nn Μαθηµατικά ισοδύναµη µε την κλασική Gram-Schmidt.
Τροποποιηµένος αλγόριθµος Gram-Schmidt function [Q,R] = MGS(A) Q = A for k = 1 : n ρ kk = q k q k = q k /ρ kk for j = k + 1 : n ρ kj = q k q j q j = q j ρ kj q k end end Τα εσωτερικά γινόµενα χρησιµοποιούν τις εν µέρει ορθοκανονικοποιηµένες στήλες και τα ρ ij υπολογίζονται ανά γραµµή. Το αριθµ. κόστος είναι ίδιο µε της κλασικής GS. Συγκριτικά µε την κλασική GS στο µοντέλο α.κ.υ., τα q j πληρούν καλύτερα τη (ϑεωρητική) ορθογωνιότητα. Στο προηγούµενο παράδειγµα: I Q MGS Q MGS F 6 10 9,
ιαδικασία Arnoldi Εξετάζουµε εξειδίκευση της διαδικασίας Gram-Schmidt για την κατασκευή ΟΚ ϐάσης για ένα χώρο Krylov. Φέρει το όνοµα Arnoldi (Ιταλός ερευνητής που την ανέδειξε.) Η διαδικασία Arnoldi παράγει ορθογώνιες ϐάσεις για τις οποίες, τα µητρώα V AV ή W AV που εµφανίζονται στις µεθόδους προβολής ϑα είναι Hessenberg ή και τριδιαγώνια.
Κατασκευή ΟΚ ϐάσεων για χώρους Krylov (Gram-Schmidt) Arnoldi CGS-Arnoldi v 1 := v/ v 2 for j = 1,...,m h ij = (Av j,v i ), i = 1,...,j w j := Av j j i=1 h ijv i h j+1,j = w j 2 if h j+1,j = 0 Stop v j+1 = w j /h j+1,j end Ο αλγόριθµος σταµατά µετά από m ϐήµατα ή όταν w j = 0. Ανά ϐήµα: 1 MV, 1 DOT και πράξεις SAXPY. Συνολικό κόστος Ω m j=1 [1 MV + (j + 1) DOT + j SAXPY]
Αν εφαρµόσουµε τον παραπάνω αλγόριθµο, για i > j ϑα ισχύει ότι v i {v 1,...,A j 1 v 1 } = span{v 1,...,v j }. Τότε V AV = v 1 Av 1 v 1 Av 2 v 1 Av m v 2 Av 1 v 2 Av...... 2 v 3 Av... 1...... v m Av 1... v m Av m 2 v m Av m 1 v m Av m Επειδή το V είναι ϐάση για το χώρο Krylov K m (A,v 1 ) τότε Av 1 K 2 (A,v 1 ) = span{v 1,Av 1 } = span{v 1,v 2 }, εποµένως αν i 3 τότε v i Av 1 = 0. Για τον ίδιο λόγο, Av 2 K 3 (A,v 1 ) = span{v 1,Av 1,A 2 v 1 } = span{v 1,v 2,v 3 }, εποµένως αν i 4 τότε v i Av 2 = 0 Γενικά ισχύει ότι αν i j + 2 τότε v i Av j = 0. Εποµένως, το µητρώο V AV είναι άνω Hessenberg.
Περίπτωση πλαγιογώνιας προβολής W AV = w 1 Av 1 w 1 Av 2 w 1 Av m w 2 Av 1 w 2 Av...... 2 w 3 Av... 1...... w m Av 1... w m Av m 2 w m Av m 1 w m Av m Το W είναι ΟΚ ϐάση για το AK = span{av 1,...,Av m }