HY23. ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΥΠΟΛΟΓΙΣΜΟΙ ΚΑΙ ΣΦΑΛΜΑΤΑ ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ Π. ΤΣΟΜΠΑΝΟΠΟΥΛΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Επιστημονικοί Υπολογισμοί Τι είναι Επιστημονικοί Υπολογισμοί; Ο σχεδιασμός και η ανάλυση αλγορίθμων για την αριθμητική επίλυση μαθηματικών προβλημάτων. Θεωρητικό υπόβαθρο: Αριθμητική Ανάλυση. Διαφέρει από άλλες περιοχές της Επιστήμης Υπολογιστών: Χειρίζεται συνεχείς ποσότητες/συναρτήσεις. Μελετά τις συνέπειες και τα σφάλματα των προσεγγίσεων που χρησιμοποιεί για τους υπολογισμούς. 2
Ένα Απλό Παράδειγμα Υπολογισμός της επιφάνειας της γής με χρήση του τύπου Α = 4πr 2. Ο παραπάνω υπολογισμός περιέχει αρκετές προσεγγίσεις: Η Γη θεωρείται σφαίρα με λεία επιφάνεια. Η τιμή της ακτίνας (r = 6370km) είναι υπολογισμένη από εμπειρικές μετρήσεις και υπολογισμούς. Η τιμή του άρρητου π δίδεται από περιορισμένα ψηφία. Ο υπολογισμός σε υπολογιστή (προσωπικό ή χειρός) περιέχει στρογγυλοποιήσεις τόσο στα δεδομένα εισόδου, όσο και στο αποτέλεσμα του υπολογισμού. 3
Συστήματα για την Αναπαράσταση Αριθμών Σύστημα Βάση Ψηφία Δεκαδικό 0 0,,...,9 Δυαδικό 2 0, Οκταδικό 8 0,,...,7 Δεκαεξαδικό 6 0,,...,9, a, b, c, d, e, f 4
Αναπαράσταση Αριθμών Ο αριθμός α Ν α Ν-...α 0.α - α -2... στο δεκαδικό σύστημα είναι: a N 0 N a N N 0 2 0... a00 a 0 a20... Το ακέραιο μέρος υπολογίζεται σαν πολυώνυμο: N N p( x) an x an x... a0, x 0 Το κλασματικό σαν δυναμοσειρά: k a k x k, x 0 5
Αναπαράσταση Αριθμών (συνέχεια) Στην καθημερινή ζωή χρησιμοποιούμε το δεκαδικό σύστημα. Ο υπολογιστής χρησιμοποιεί διαφορετικό σύστημα (δυαδικό, οκταδικό ή δεκαεξαδικό). Τα εισερχόμενα στον υπολογιστή και εξερχόμενα δεδομένα είναι στο δεκαδικό. Η μετατροπή των αριθμών και η επεξεργασία τους στο σύστημα του υπολογιστή γίνεται εσωτερικά. 6
Μετατροπή Αριθμών σε Διαφορετικά Συστήματα Αναπαράστασης Μετατροπή ακεραίου από σύστημα με βάση το β στο δεκαδικό: Υπολογισμός πολυωνύμου(πολλαπλασιασμός). Με υπολογισμό δυνάμεων: ( 53473) 4 3 2 0 8 58 38 4 8 7 8 38 (2233) 0 Με σχήμα Horer: ( 53473) (((58 3) 8 4) 8 7) 8 3 (2233 8 ) 0 Ο αλγόριθμος Horer για τον υπολογισμό του N p( x) a x a a N N N x... 0 είναι: y α Ν για i=,...,n y y x+α N-i 7
Μετατροπή Αριθμών σε Διαφορετικά Συστήματα Αναπαράστασης (συνέχεια) Μετατροπή κλασματικού αριθμού από σύστημα με βάση το β στο δεκαδικό : Υπολογισμός δυναμοσειράς(πολλαπλασιασμός). (. 0) 2 3 2 2 0 2 2 (.625) 0 Μετατροπή ακέραιου αριθμού από το δεκαδικό σε σύστημα με βάση το β : Βασική πράξη η διαίρεση, στην κατάλληλη χρήση του υπόλοιπου και του πηλίκου. Ο αριθμός δ Ν δ Ν-...δ 0 στο δεκαδικό θα παρίσταται με α Μ α Μ-...α 0 στο οκταδικό δηλαδή: δ Ν δ Ν-...δ 0 = α 0 + 8 (α + 8 (...)). Δηλαδή το α 0 είναι το υπόλοιπο της διαίρεσης του δεκαδικού με το 8. Το α είναι το υπόλοιπο της διαίρεσης του προηγούμενου πηλίκου με το 8, κοκ. (24) 0 = (30) 8 = 0 8 0 + 3 8 8
Μετατροπή Αριθμών σε Διαφορετικά Συστήματα Αναπαράστασης (συνέχεια) Μετατροπή κλασματικού από το δεκαδικό σε σύστημα με βάση το β : Βασίζεται στον πολλαπλασιασμό: Αν x ένας κλασματικός αριθμός στο δεκαδικό και.α - α -2 α -3... η αναπαράσταση του στο β-δικό σύστημα τότε: β x = α -.α -2 α -3... Δηλαδή το α - είναι ακέραιο μέρος του πολλαπλασιασμού με β. (.372) 0 = (.α - α -2 α -3... ) 2 2 x = 0.744 α - = 0, υ = 0.744 2 υ =.488 α -2 =, υ 2 = 0.488 2 υ 2 = 0.976 α -3 = 0, υ 3 = 0.976 2 υ 3 =.952 α -4 =, υ 3 = 0.952 2 υ 4 =.904 α -4 =, υ 3 = 0.904... (.372) 0 = (.00...) 2 9
Μετατροπή Αριθμών σε Διαφορετικά Συστήματα Αναπαράστασης (συνέχεια) Οι ακέραιοι αριθμοί παραμένουν ακέραιοι με την μετατροπή σε διαφορετικό σύστημα. Οι κλασματικοί αριθμοί παραμένουν κλασματικοί σε οποιοδήποτε σύστημα. Το πλήθος των ψηφίων μετά την υποδιαστολή μπορεί από πεπερασμένο να γίνει άπειρο ή και το αντίθετο: π.χ. (.) 0 = (.0000000...) 2 0
Aριθμητική κινητής υποδιαστολής - Αριθμοί μηχανής Μορφή κινητής υποδιαστολής σε σύστημα με βάση το β, x = ±(.d d 2 d 3...)β e, d 0. -(302.7867) 0 = -(.3027867) x 0 4 (.000456) 8 = (.456) x 8-3 Tα ψηφία που χρησιμοποιεί ένας υπολογιστής είναι πεπερασμένα ( πεπερασμένη αριθμητική).
Aριθμητική κινητής υποδιαστολής - Αριθμοί μηχανής (συνέχεια) Οι αριθμοί στον υπολογιστή είναι ένα διακριτό (όχι συνεχές) σύνολο αριθμών σύνολο αριθμών μηχανής. Το παραπάνω σύνολο περιγράφεται από: β, τη βάση του συστήματος t, την ακρίβεια = το πλήθος των ψηφίων του κλάσματος των αριθμών L, U το κάτω και άνω φράγμα του εκθέτη e του β. (συνήθως L U) Αν x αριθμός μηχανής τότε x = ±(.d d 2 d 3... d t ) β e 2
Aριθμητική κινητής υποδιαστολής - Αριθμοί μηχανής (συνέχεια) Ο μικρότερος, κατά απόλυτη τιμή, αριθμός μηχανής είναι ο (.000...0) β L. Γιατί δεν είναι ο (.000...0) β L ή ο (.0000...) β L ; Ο μέγιστος, κατά απόλυτη τιμή, αριθμός μηχανής είναι ο (.dddd...d) β U, όπου d = β-. Το άθροισμα δύο αριθμών μηχανής δεν είναι απαραίτητα αριθμός μηχανής. Π.χ.: (.dddd...d) β U + (.dddd...d) β U δεν είναι αριθμός μηχανής. Γιατί; Το γινόμενο δύο αριθμών μηχανής δεν είναι απαραίτητα αριθμός μηχανής. Π.χ.: (.000...0) β L /2 δεν είναι αριθμός μηχανής. Γιατί; 3
Aριθμητική κινητής υποδιαστολής - Αριθμοί μηχανής (συνέχεια) Το «έψιλον» της μηχανής, ε, ο μικρότερος αριθμός τ.ω. fl(+ε)!=. Άσκηση: Υπολογίστε το ε της μηχανής χρησιμοποιώντας Matlab, με και χωρίς την αντίστοιχη εντολή. Δεν ισχύουν ορισμένες ιδιότητες των πράξεων: πρόσθεση προσεταιριστική: a+(b+c)!= (a+b)+c. Γιατί; 4
Aριθμητική κινητής υποδιαστολής - Αριθμοί μηχανής (συνέχεια) Σύστημα β t L U IEEE(απλή ακρίβεια) IEEE(διπλή ακρίβεια) 2 24-25 28 2 53-02 024 Cray 2 48-638 6384 HP(χειρός) 0 0-98 00 ΙΒΜ(απλή ακρίβεια) 6 6-64 63 5
Aριθμητική κινητής υποδιαστολής - Αριθμοί μηχανής (συνέχεια) Αν β = 2, t = 3, L = 0, U = 2 τότε: ο μέγιστος αριθμός σε αυτό τον υπολογιστή είναι: (.) 2 x 2 2 = (3.5) 0 O ελάχιστος αριθμός είναι: (.00) 2 x 2 0 = (.5) 0 Στο παρακάτω διάγραμμα φαίνεται το σύνολο των αριθμών της μηχανής(με το κόκκινο χρώμα). -4-3 -2-0 2 3 4 6
Aριθμητική κινητής υποδιαστολής - Αριθμοί μηχανής (συνέχεια) Αν x αριθμός μηχανής, x = (.d d 2 d 3... d t ) β k, και τότε ο επόμενος του είναι ο x = (.d d 2 d 3... d t +.000...) β k = x + β k-t Στους υπολογιστές τα άπειρα ψηφία του κλασματικού αριθμού, x, πρέπει να αναπαρασταθούν με πεπερασμένα, πλήθους t. Η αναπαράσταση, fl(x), αυτή γίνεται με δύο τρόπους με στρογγύλευση και με αποκοπή. Στρογγύλευση: αν x = (.d d 2 d 3... d t d t+ d t+2 d t+3...) β k Αν d t+ β/2 fl(x) = (.d d 2 d 3... d t +.000...) β k Αν d t+ < β/2 fl(x) = (.d d 2 d 3... d t ) β k Αποκοπή: αν x = (.d d 2 d 3... d t d t+ d t+2 d t+3...) β k fl(x) = (.d d 2 d 3... d t ) β k 7
Υπολογισμός σφάλματος προσέγγισης αριθμού με αποκοπή Αν x = (.d d 2 d 3... d t d t+ d t+2 d t+3...) β k τότε x = (.d d 2 d 3... d t ) β k και x = (.d d 2 d 3... d t +.000...) β k οι δύο διαδιχικοί αριθμοί μηχανής όπου x x x fl(x) = x fl(x) -x < x x = β k-t d β -.d.d d 2 d 3... d t d t+ d t+2 d t+3... < x = (.d d 2 d 3... d t d t+ d t+2 d t+3...) β k β - β k = β k- fl(x) -x k-t -k -t x β β β μοναδιαίο σφάλμα αποκοπής 8
Υπολογισμός σφάλματος προσέγγισης αριθμού με στρογγύλευση Αν x = (.d d 2 d 3... d t d t+ d t+2 d t+3...) β k τότε x = (.d d 2 d 3... d t ) β k και x = (.d d 2 d 3... d t +.000...) β k οι δύο διαδoχικοί αριθμοί μηχανής όπου x x x fl(x) = x ή fl(x) = x fl(x) -x x x / 2 = β k-t / 2 d β -.d.d d 2 d 3... d t d t+ d t+2 d t+3... < x = (.d d 2 d 3... d t d t+ d t+2 d t+3...) β k β - β k = β k- k-t fl(x) -x β -k -t x στρογγύλευσης 2 β 2 β, μοναδιαίο σφάλμα 9
Αν και πιο δύσκολη, η στρογγύλευση χρησιμοποιείται παντού... 20
Tύποι σφαλμάτων στις προσεγγίσεις Αν x ένας αριθμός και y η προσέγγιση του τότε: y-x = ε απόλυτο σφάλμα της προσέγγισης, x=y+ε y -x x = σχετικό σφάλμα της προσέγγισης. Επειδή συχνά το x μας είναι άγνωστο, υπολογίζουμε το σχετικό σφάλμα με βάση την προσέγγιση, δηλαδή y -x y 2
Επιρροή σφαλμάτων στρογγύλευσης στους υπολογισμούς Αν x,y δύο αριθμοί και μία πράξη (π.χ. πρόσθεση, πολλαπλασιασμός) τότε o x y αναπαρίσται στον υπολογιστή σαν fl( fl(x) fl(y) ) Γενικά fl(x y) fl( fl(x) fl(y) ) Παράδειγμα: β = 0, t = 5, U= -L =0, fl(.) από στρογγύλευση, πρόσθεση x = 589.26, y =.077344 fl(x) =.5893 x 0 4, fl(y) =.7734 x 0 - fl(x) + fl(y) =.58937734 x 0 4 fl( fl(x) + fl(y) ) =.5894 x 0 4 αποτέλεσμα του υπολογιστή x + y = 589.337344 fl(x+y) =.5893 x 0 4 22
Επιρροή σφαλμάτων στρογγύλευσης στους υπολογισμούς (συνέχεια) Αποδεικνύεται ότι: Πρόσθεση/Αφαίρεση: εδώ το σφάλμα εξαρτάται ισχυρά από τους αριθμούς!!!!! fl(fl(x) fl(y)) -(x y) 2u( x y ) x y x y Πολλαπλασιασμός: fl(fl(x) fl(y)) -(x x y y) 3u 4u 2 Διαίρεση: fl fl(x) fl(y) x y 3u O( u u = το μοναδιαίο σφάλμα της στρογγυλοποίησης - x y 2 ) 23
Χαρακτηριστικό παράδειγμα () β=0, t =5, U = -L = 0, x =.4542708, y = -.4535944 Ακριβές αποτέλεσμα : x+y =.6764 x 0-4 Προσέγγιση: z = fl( fl(x) + fl(y) ) = fl(.4543 -.4536) =.00007 =.70000 x 0-4 Σχετικό σφάλμα: z 5 ( x y).2330.340!!!!!!!!! 4 x y.67640 24
Χαρακτηριστικό παράδειγμα (2) β=0, t =0 στον ΗΡ33 και x = 7892, y = 789, τότε 7892.8883692926 0 789.888330079 0 2 2 x y? 7892 789.5628470000 0 2 7892 789 7892 789 7892 789 7892 789.776682300.5628468294 0 3 0 2 25
Σφάλματα στον υπολογισμό των αθροισμάτων Πολλές βασικές συναρτήσεις μέσα στον υπολογιστή υπολογίζονται με αθροίσματα/σειρές (π.χ., si, cos, exp, κλπ. ) Αρκετοί δικοί μας υπολογισμοί περιέχουν αθροίσματα (π.χ., προσέγγιση ολοκληρωμάτων, μέσης τιμής, διασποράς κλπ.) 26
Ένα Απλό Παράδειγμα Έστω ότι θέλουμε να υπολογίσουμε το άθροισμα: Επειδή ισχύει έχουμε: όπου παίρνουμε αρκετά καλές προσεγγίσεις: S 9 =.9, S 99 =.99, S 999 =.999, S 9999 =.9999 k k k S 2 2 k k k k a k 27 2... 3 2 2 S
Ένα Απλό Παράδειγμα (συνέχεια) Aν χρησιμοποιήσουμε την αναδρομική σχέση που μας δίνει τα S ως: S 0 =, S k = S k- + /(k(k+)) τότε Aν ξεκινήσουμε το άθροισμα από το τέλος δηλαδή: Š Ť 9.900000000.900000000 99.990000003.990000000 T T 0 k T 2 k ( k)( k, k ),..., 999.999000003.999000000 9999.999899972.999900000 T T 28
Ένα Απλό Παράδειγμα (συνέχεια) Αυτό συμβαίνει γιατί τα σφάλματα συσσωρεύονται στους μεγάλους όρους του αθροίσματος. π.χ.: Š 4 = S 4 + 3δ α + 3δ α 2 + 2δ 2 α 3 +δ 3 α 4 με δ i u, i=,2,3 και α >α 2 >α 3 >α 4. Το αντίθετο συμβαίνει στην περίπτωση των αθροισμάτων Τ, εκεί το σφάλμα συσσωρεύεται στους μικρότερους όρους του αθροίσματος, δηλ. Ť 4 = Τ 4 + 3δ α Ν + 3δ α Ν- + 2δ 2 α Ν-2 +δ 3 α Ν-3 όπου α Ν <α Ν- <α Ν-2 <α Ν-3 29
Παράδειγμα αναίρεσης Οι όροι στο άθροισμα αλλάζουν πρόσημο και να αυξάνονται κατά απόλυτη τιμή, δηλαδή α i =(-) i a i, a i < a i+, i=,2,... Εδώ ο ένας όρος αναιρεί τον προηγούμενο. Χαρακτηριστικό παράδειγμα είναι ο υπολογισμός της εκθετικής συνάρτησης με χρήση του αναπτύγματος Taylor, σε αρνητικά σημεία: e x ( ) 0! όπου ενώ για x=00, e -00 0 οι πρώτες προσεγγίσεις... x s N N ( ) x! 0 Ένας καλύτερος τρόπος είναι e -x = /e x και να υπολογίσουμε το e x με ανάπτυγμα Taylor. N e x. 2-99 S 3 490 4-6766 30
Eυστάθεια αλγορίθμων. Ένας αλγόριθμος λέγεται ασταθής, αν μικρά σφάλματα στην αναπαράσταση των αριθμών επιφέρουν μεγάλες μεταβολές στο τελικό αποτέλεσμα. Ένας αλγόριθμος λέγεται ευσταθής αν τα τελικά αποτελέσματα δεν επηρεάζονται από τα σφάλματα στρογγύλευσης. 3
Υπολογισμός του Με ολοκλήρωση κατά μέλη βλέπουμε ότι ισχύει: I = /e, I = -I -, =2,3,... I - = (-I )/ Ισχύει ότι Ι k > I k+, k=,2,3,... Αν υπολογίσουμε τα αθροίσματα με αύξουσα σειρά τότε: αλλά και Î =I +ε, Î = - Î -, =,2,... όπου το σφάλμα της προσέγγισης 32 ε ε I (- ) Iˆ -! ε I x 0 x e dx Î.367879 2.264242 3.207274 4.70904 5.45480 6.2720 7.060 8.8720 9 -.068480 0.68480-7.53280 2 2.39360 3-2747.680 4 38460.63520 5-576908.52800
Υπολογισμός του I 0 x e x dx Aν τα υπολογίσουμε με φθίνουσα σειρά: Î 20.0000000 9.0500000 Î m =I m +ε m, Î - = (- Î )/, =m,...,k+ 8.0500000 7.0527778 6.055790 ε m το σφάλμα της προσέγγισης για το 5.059076 οποίο ισχύει 4.0627322 3.0669477 ε ε - k -ε (- ) m-k / k k 2 k... 3 m ε m 2.077733.0773522 0.083877 9.09623 33
ΑΣΚΗΣΗ Αν β = 2, t = 2, L = -, U = τότε: Ποιος είναι ο μέγιστος αριθμός σε αυτό τον υπολογιστή; Ποιος είναι ο ελάχιστος αριθμός ;. Ποιο είναι το ε της μηχανής;. Κάντε ένα διάγραμμα φαίνεται με το σύνολο των αριθμών της μηχανής. -4-3 -2-0 2 3 4 34
Βιβλιογραφία Αριθμητικές Υπολογιστικές Μέθοδοι στην Επιστήμη και τη Μηχανική (C.Pozrikidis) Εισαγωγή στην Αριθμητική Ανάλυση (Γ. Ακρίβη, Β. Δουγαλή) Αριθμητική Ανάλυση I (Μ. Βραχάτης) Scietific Computig, A Itroductory Survey (M. Heath) 35
Ερωτήσεις Ιστοσελίδα μαθήματος: http://eclass.uth.gr/ http://if-server.if.uth.gr/courses/ce23/idex.html E-mail λίστα του μαθήματος: ce23@if-server.if.uth.gr http://eclass.uth.gr/ Π. Τσομπανοπούλου, Ε3-2, yota@uth.gr 36
Errors Τρίτη, 5 Μαΐου 205 0:00 πμ 5.05.05 Σελίδα
5.05.05 Σελίδα 2
5.05.05 Σελίδα 3 Overflow!!!