5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων http://ecourseschemengntuagr/courses/computational_methods_for_engineers/
Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων Γενικά: Σύστημα m γραμμικών αλγεβρικών εξισώσεων με n αγνώστους: a 11 1 + a 12 2 + + a 1n n = b 1 a 21 1 + a 22 2 + + a 2n n = b 2 n j1 ȧ m1 1 + a m2 2 + + a mn n = b m Αν: 1 m>n υπερπροσδιορισμένο ρ ρ [γενικά δεν έχει λύση] 2 m<n υπoπροσδιορισμένο [γενικά απειρία λύσεων] 3 m=n [γενικά μοναδική λύση]
Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων Έστω ένα σύστημα 2 γραμμικών αλγεβρικών εξισώσεων με 2 αγνώστους: a 11 1 + a 12 2 = b 1 a 21 1 + a 22 2 = b 2 κάθε εξίσωση περιγράφει μια ευθεία: 1 1 = a 12 /a 11 2 + b 1 /a 11 ευθεία 1 1 = a 22 /a 21 2 + b 2 /a 21 ευθεία 2 Λύση 3 περιπτώσεις: 1 Μία και μοναδική λύση 2 2 Άπειρες λύσεις 3 Καμία λύση
Σύστημα n γραμμικών αλγεβρικών εξισώσεων με n αγνώστους: αναπαράσταση με χρήση πινάκων: a 11 1 + a 12 2 + + a 1n n = b 1 a 21 1 + a 22 2 + + a 2n n = b 2 ȧa n1 1 + a m2 2 + + a nn n = b n A nn n1 = b n1 b το σύστημα έχει μοναδική λύση όταν: det[α] 0 Η λύση μπορεί να προσδιοριστεί βάσει του κανόνα Cramer i A A a11 1 a b i b n 11 a a 2 1i 2i a ni
n A a 1 i C 1 i i1 Αλγεβρικά συμπληρώματα του Α (Cofactor) : i j C ij ( 1) M ij Το κόστος υπολογισμού αυξάνει σημαντικά, όταν το n μεγαλώνει και χρειάζονται Ο(n!) πολλαπλασιασμοί για Α nn
παράδειγμα 1: Υπολογίστε τον Cofactor πίνακα του Α παράδειγμα 2: Υπολογίστε την ορίζουσα του πίνακα του Α
FLOPS http://enwikipediaorg/wiki/top500 1 petaflops = 10 15 FLoating point OPerations per Second MATLAB >>=rand(10000) % 1000010000 random numbers >>y=rand(10000) >>tic; *y *y; toc % χρόνος υπολογισμού 10 8 πολλαπλασιασμών
n A a 1 i C 1 i i1 Αλγεβρικά συμπληρώματα του Α (Cofactor) : i j C ij ( 1) M ij Το κόστος υπολογισμού αυξάνει σημαντικά, όταν το n μεγαλώνει και χρειάζονται Ο(n!) πολλαπλασιασμοί για Α nn [Δηλαδή για έναν 100100 πίνακα χρειάζονται 10 143 s =10 136 χρόνια στον γρηγορότερο υπολογιστή (petaflops)] 10!~36M 100!~10 Χρησιμοποίηση αριθμητικών μεθόδων, για την επίλυση με μικρότερο 158 υπολογιστικό κόστος άμεσες (direct) 2 κατηγορίες επαναληπτικές (iterative)
Άμεσες μέθοδοι: 1 Μετασχηματισμός αρχικού προβλήματος σε ισοδύναμο, που απλοποιεί τη λύση πχ Α L, U 2 Πεπερασμένος και συγκεκριμένος αριθμός πράξεων 3 Μόνο σφάλμα στρογγυλοποίησης Επαναληπτικές μέθοδοι: 1 Διαρκής βελτίωση αρχικής προσεγγιστικής λύσης 2 Επίτευξη λύσης με ικανοποιητική ακρίβεια 3 Σφάλματα αποκοπής και στρογγυλοποίησης
Απαλοιφή Gauss: Μέθοδος: 1 Γενικό σύστημα A=b μετατρέπεται σε άνω τριγωνικό U=b («προς τα εμπρός απαλοιφή») 2 Επίλυση U=b με «προς τα πίσω αντικατάσταση» a 11 1 + a 12 2 + + a 1n n = b 1 U 11 1 + U 12 2 + + U 1n n = b 1 a 21 1 + a 22 2 + + a 2n n = b 2 a n1 1 + a m2 2 + + a nn n = b n 1 Για να πραγματοποιηθεί, πρέπει οι οδηγοί (pivot) U 11,U 22, U nn 0 2 Ορίζουσα ρζ του A = U = U 11U 22 U nn 3 Κόστος υπολογισμού 2/3 n 3 + O(n 2 ) προς τα εμπρός απαλοιφή n 2 +O(n) προς τα πίσω αντικατάσταση + U 22 2 + + U 2n n = b 2 U nn n = b n
παράδειγμα 3: Απαλοιφή Gauss (22) Προς τα εμπρός απαλοιφή 1 +2 2 =3 3 1 + 2 =6 1 2 1 +2 2 =3 5 2 = 3 Προς τα πίσω αντικατάσταση 1 +2 2 =3 5 2 = 3 2 =3/5 1 =3 2 3/5=9/5
1 + 2 + 3 =1 0 2 + 3 =2 2 + 3 =1
Παράδειγμα: Partial Pivoting (Απαλοιφή Gauss + αντιμετάθεση γραμμών) 1 + 2 + 3 =1 1 +10001 2 +2 3 =2 1 + 2 2 +2 3 =1 1 + 2 + 3 =1 00001 2 + 3 =1 2 + 3 =0 Naive Gauss 1 + 2 + 3 =1 00001 2 + 3 =1 2 + 3 =0 Αντιμετάθεση γραμμής (εξίσωση) 2 με γραμμή (εξίσωση) 3, ο συντελεστής a 3,2 είναι μεγαλύτερος 1 + 2 + 3 =1 2 + 3 =0 00001 2 + 3 =1 1 + 2 + 3 =1 1 + 2 + 3 =1 2 + 3 =0 00001 2 + 3 =1 09999 3 =1 9999 3= 10000 4 σημαντικά ψηφία 4 σημαντικά ψηφία 5 σημαντικά ψηφία 1 =0, 2 =0, 3 =1 1 =10, 2 = 10, 3 =10001 1 =10, 2 = 10, 3 =10
2 Κλιμάκωση (scaling) Παράδειγμα: 2 1 +100000 2 =100000 1 + 2 =2 2 1 +100000 2 =100000 49999 2 = 49998 1 =100002, 2 =099998 4 σημαντικά ψηφία 2 1 +100000 2 =100000 50000 2 = 50000 1 =0, 2 =1 Κλιμάκωση: Μέγιστος συντελεστής σε κάθε εξίσωση με απόλυτη τιμή 1 Παράδειγμα: 000002 1 + 2 =1 [(2 1 +100000 2 =100000) /100000] 1 + 2 =2 Pivot 1 + 2 =2 1 + 2 =2 3 σημαντικά ψηφία 000002 1 + 2 =1 (1 000002) 2 =1 000004 1 =1 2 =1
Συστήματα κακής κατάστασης: (ill conditioned systems) Μικρές μεταβολές (συντελεστές/σταθερές) οδηγούν σε μεγάλες αποκλίσεις στη λύση Ενδογενής ευαισθησία της λύσης σε σφάλματα στρογγυλοποίησης (συντελεστών/σταθερών) 1 det[a] 0 1 det[a] ~ 0 Λύση Λύση 2 2 Η ορίζουσα δίνει κάποια ένδειξη όταν Det[A]0 ( Det[A] <<1) ill conditioned system Η ορίζουσα επηρεάζεται από την κλιμάκωση Μπορούμε να συγκρίνουμε δύο συστήματα, εάν υποστούν κλιμάκωση
Αριθμός κατάστασης: (Matri Condition Number) Εντοπισμός της ύπαρξης του φαινομένου της «κακής κατάστασης» Κριτήριο για την ακρίβεια της λύσης μέγεθος του A 1 ;
Norm Συνάρτηση που ποσοτικοποιεί το μέγεθος μια μαθηματικής οντότητας (πχ αριθμός, διάνυσμα, πίνακας, πολυώνυμο) 3 1 2
μέγιστο άθροισμα απόλυτων τιμών στοιχείων στήλης μέγιστο άθροισμα απόλυτων στοιχείων γραμμής ευκλείδεια Norm Frobenius ma eigenvalue του πίνακα Α Τ Α
Παράδειγμα:33 πίνακας Hilbert Υπολογίστε τον αριθμό κατάστασης με μετά από κλιμάκωση κλιμάκωση: [>>inv(h) ]
Ανάλυση με το γινόμενο LU (LU decomposition): Μέθοδος: 1 Ιδανική για προβλήματα που δίνουν συστήματα με ένα πίνακα Α και πολλά δεξιά μέλη b1, b2, 2 Βασική ιδέα: Να εκφραστεί ο Α ως LU L= l 11 l 22 l ij l nn κάτω τριγωνικός U= u 11 u 22 u ij u άνω τριγωνικός 3 Ορίζουμε: l 11,l 22, l 33, = 1 Μέθοδος Doolittle ή u 11, u 22, u 33, = 1 Μέθοδος Crout [τα υπόλοιπα στοιχεία μπορούν να προσδιοριστούν μονοσήμαντα] 4 Μέθοδος Doolittle: a) απαλοιφή Gauss καταλήγει στον πίνακα U b) οι πολλαπλασιαστές κατά την εμπρός απαλοιφή αντιστοιχούν στα στοιχεία του L c) L, U μπορούν να υπολογιστούν αν det[a] 0 d) κόστος O(n 3 /3) LU decomposition + O (n 2 ) για αντικατάσταση nn
Παράδειγμα:LU decomposition Μέθοδος Doolittle εφαρμόζουμε απαλοιφή Gauss στους συντελεστές του πίνακα Α μόνο (όχι στις σταθερές): η απαλοιφή Gauss (κόστος Ο(n 3 /3) δεν χρειάζεται να επαναληφθεί αν έχουμε πολλαπλά δεξιά μέλη 4 1 +3 2 3 =1 2 1 4 2 +5 3 =2 1 +2 2 +6 3 =3 4 1 +3 2 3 = 0 5/2 2 +9/2 3 = 0+5/4 2 +25/4 3 = 4 1 +3 2 3 = 0 5/2 2 +9/2 3 = 0+0+34/4 3 = A = L*U
Λύση του συστήματος για κάθε διάνυσμα b σταθερών : A =b ==> (L U) = b ==> L (U ) = b d Βήμα 1 ο : επίλυση L d =b με προς τα εμπρός αντικατάσταση Βήμα 2 ο : επίλυση U = d με προς τα πίσω αντικατάσταση
Επαναληπτικές μέθοδοι: 1 Διαρκής βελτίωση αρχικής προσεγγιστικής λύσης 2 Επίτευξη λύσης με ικανοποιητική ακρίβεια 3 Σφάλματα αποκοπής και στρογγυλοποίησης 4 Προτιμούνται για μεγάλα συστήματα που είναι διαγωνίως κυρίαρχα Μέθοδος Jacobi Έστω σύστημα n γραμμικών αλγεβρικών εξισώσεων με n αγνώστους: a 11 1 + a 12 2 + + a 1n n = b 1 a 21 1 + a 22 2 + + a 2n n = b 2 ȧ n1 1 + a m2 2 + + a nn n = b n Βήμα 1 ο : Επίλυση κάθε εξίσωσης ως προς έναν άγνωστο (a ii 0): ) 1 = (b 1 a 12 2 a 1n n )/a 11 2 = (b 2 a 21 1 a 2n n )/ a 22
Βήμα 2 ο : Αρχική εκτίμηση αγνώστων i : (0) = [0, 0, 0] Βήμα 3 ο : Αντικατάσταση στο δεξιό σκέλος των εξισώσεων του Βήματος 1: (1) a (0) (0) 1 = (b 1 12 2 a 1n n )/a 11 (1) 2 = (b 2 a 21 (0) 1 a 2n (0) n )/ a 22 Βήμα 4 ο : κ επαναλήψεις 1 (κ+1) = (b 1 a 12 2 (κ) a 1n n (κ) )/a 11 2 (κ+1) = (b 2 a 21 1 (κ) a 2n n (κ) )/ a 22 Τερματισμός: οι επαναλήψεις τερματίζονται όταν κάποιο κριτήριο τερματισμού ικανοποιηθεί Κριτήριο σύγκλισης: η μέθοδος συγκλίνει όταν ο Α είναι διαγωνίως κυρίαρχος
Μέθοδος Gauss Seidel Γρηγορότερη σύγκλιση μπορεί συνήθως να επιτευχθεί αν κατά τις επαναλήψεις χρησιμοποιούνται οι πιο πρόσφατες εκτιμήσεις των αγνώστων i υπολογιστικό κόστος O(n 2 ) [k n 2 ; όπου k ο αριθμός επαναλήψεων] Παράδειγμα: 4 1 + 2 + 3 =7 1 = 1/4 2 1/4 3 +7/4 4 1 8 2 + 3 = 21 2 =21/8+1/2 1 +1/8 3 2 1 + 2 +5 3 =15 3 =3+2/5 1 1/5 2 Αρχική εκτίμηση: 1 =0, 2 =0, 3 =0 1 η επανάληψη: Jacobi (1) 1 = 1/4 0 1/4 0+7/4 = 175 (1) 2 =21/8+1/2 0+1/8 0 = 2625 (1) =3+2/5 0 1/5 0 = 3 Gauss Seidel (1) 1 = 1/4 0 1/4 0+7/4 = 175 (1) 2 =21/8+1/2 175 +1/8 0 = 35 (1) =3+2/5 175 1/5 35 = 3 3 ( ) =3+2/5 0 1/5 0 = 3 3 (1) =3+2/5 175 1/5 35 = 3
2 η επανάληψη: Jacobi (2) 1 = 1/4 2625 1/4 3+7/4 = 1656 (2) 2 =21/8+1/2 175 +1/8 3 = 3875 (2) 3 =3+2/5 175 1/5 2625 = 3175 Gauss Seidel (2) 1 = 1/4 35 1/4 3+7/4 = 1875 (2) 2 =21/8+1/2 1875 +1/8 3 = 3937 (2) 3 =3+2/5 1875 1/5 3937 = 29625 έλεγχος για τερματισμό Jacobi (2) 1 (1) 1 = 1656 175 (2) 2 (1) 2 =3875 35 (2) 3 (1) 3 = 3175 3 ǁ (k+1) (k) ǁ 2 =04244 ǁ (k+1) (k) ǁ =0375 ή (2) = [1656, 3875, 3,175] T r (2) = b A (2) = [10752 02002 14376] T ǁr (2) ǁ 2 =1806 ǁr (2) ǁ =14376
Γενίκευση επαναληπτικών μεθόδων Το σύστημα Α (nn) * (n1) = b (n1) επιλύεται με επαναληπτικό σχήμα της μορφής: M (k+1) = N ( k) +b Ο πίνακας Α (nn) μπορεί να εκφραστεί ως το άθροισμα 3 πινάκων (άνω, κάτω τριγωνικού και διαγώνιου) παράδειγμα Α = L + D +U 1 3 4 0 0 0 1 0 0 0 3 4 Α= L= 3 0 0 3 2 4 D= U= 0 0 4 0 2 0 2 1 0 2 1 2 0 0 2 0 0 0 Α = b == > (L+D+U) =b == > D (k+1) = (L+U) (k) + b Jacobi (L+D) (k+1) = U (k) + b Gauss Seidel ένα γενικό κριτήριο σύγκλισης ǁΜ 1 Νǁ < 1