Σφάλματα (errors) Σε κάθε υπολογισμό μιας πραγματικής ποσότητας υπάρχει σφάλμα Πηγές σφαλμάτων ανακριβής θεωρία ανακριβείς μετρήσεις παραμέτρων μεταβλητότητα παραμέτρων ανακριβής μέθοδος υπολογισμού (σφάλματα αποκοπής - truncation errors) ανακριβές εργαλείο υπολογισμού (σφάλματα στρογγύλευσης - round off errors) Διαχείριση σφαλμάτων (error handling) ταυτοποίηση ποσοτικοποίηση εκτίμηση έλεγχος ελαχιστοποίηση
ακρίβεια - vs- ακρίβεια (accuracy) (precision) Πόσο διαφέρει η προσέγγιση από την πραγματική τιμή Πόσο διαφέρουν οι προσεγγίσεις μεταξύ τους
Σφάλματα (ορισμοί) πραγματική τιμή = προσέγγιση + σφάλμα πραγματικό (true) σφάλμα, E t = πραγματική τιμή προσέγγιση συνήθως Εt : απόλυτο σφάλμα σχετικό πραγματικό σφάλμα = πραγματική τιμή προσέγγιση πραγματική τιμή σχετικό ποσοστιαίο πραγματικό σφάλμα, ε t = σχετικό πραγματικό σφάλμα x 100% Εκτίμηση σφάλματος σχετικό ποσοστιαίο σφάλμα προσέγγισης (approximation error), ε a = τρέχουσα προσέγγιση προηγούμενη προσέγγιση τρέχουσα προσέγγιση Συνήθως ε a a: approximation 100%
Παραδείγματα α) απόλυτο vs σχετικό σφάλμα Καρφί μήκους = 10 cm, Γέφυρα μήκους = 10000 cm Αν E t = 1 cm εr = 0,01 % για τη γέφυρα αλλά 10 % για το καρφί β) Σφάλμα προσέγγισης e x = 1 + x + x2 + x3 +... 2 3! +xn Σειρά Maclaurin (Taylor για x = 0) n! Ζητούμενο : υπολογισμός του e 0,5 Πραγματική τιμή : e 0,5 = 1,648721 Λύση: # όρων Εκτίμηση ε t (%) ε a (%) 1 1 39,3-2 1,5 9,02 33,3 3 1,625 1,44 7,69 4 1,645833 0,175 1,27 5 1,648437 0,0172 0,158 6 1,648697 0.00142 0,0158 Τερματισμός όταν : ε a < ε stop = 0,05 % (ενδ. τιμή)
Σφάλματα Στρογγύλευσης round-off errors Προέλευση Ψηφιακή αναπαράσταση αριθμών υπολογισμοί ευαίσθητοι σε σφάλματα Συστήματα αρίθμησης άνθρωπος: 0 9, δεκαδικό (base - 10) πχ: 6743,4 = 6 x 10 3 + 7 x 10 2 + 4 x 10 1 + 3 x 10 0 + 4 x 10-1 computer: 0 1, δυαδικό (binary, base-2) πχ: 101,1 = 1 x 2 2 + 0 x 2 1 + 1 x 2 0 + 1 x 2-1 = 4 + 0 + 1 +0,5= 5,5 (base -10) positional notation representation : αναπαράσταση με βάση τη θέση
ακέραιοι αριθμοί (integers) μέθοδος προσημασμένου μέτρου (signed magnitude representation method) 16 15 2 1 1 1 0 1 0 1 1 0 1 για 16-bit πρόσημο: 1 (-) 0 (+) μέτρο: 15 ψηφία μέγιστος αριθμός: 1x 2 14 +.. + 1x 2 0 = 2 15 1 = 32767 για υπολογιστή 16-bit : - 32767 έως +32767 αλλά επειδή υπάρχει (+0) και (-0) τότε έχουμε : -32768 έως + 32767 για n-bits: -2 n-1, έως 2 n-1-1
Αριθμοί Κινητής Υποδιαστολής (floating point numbers) Γενική μορφή: ± s x b e s: σημαντικά ψηφία (significant digits) mantissa b: βάση e: εκθέτης κανονικοποιημένη μορφή: 1 ψηφίο αριστερά της υποδιαστολής πχ 0,005321 0,005321 x 10 0 αλλά 5,321 x 10-3 Παράδειγμα: 5-bits, base 10 1 bit πρόσημο 2 bits εκθέτης s1 d1 d2 x 10 2 bits mantissa μέγιστος αριθμός: + 9,9 x 10 +9 se d0 αδυναμία αναπαράστασης του A. Avogadro, Ν Α = 6,022 x 10 23 μικρότερος θετικός αριθμός: + 1,0 x 10-9 αδυναμία αναπαράστασης της σταθεράς Planck, h = 6,626 x 10-34 J*s
χαρακτηριστικά αριθμών κινητής υποδιαστολής ο εκθέτης είναι καθοριστικός για το εύρος τα σημαντικά ψηφία για την ακρίβεια Παράδειγμα: αναπαράσταση (αποθήκευση) 2-5 = 0,03125 για 5-bits, base 10 αποθηκεύεται ως 3,1 x 10-2 = 0,031 εισαγωγή σφάλματος στρογγύλευσης ποσοτικοποίηση σφάλματος, εt = (0,03125-0,031)/0,03125 = 0,008 = 0,8 % διάστημα αναπαράστασης αριθμών κινητής υποδιαστολής για 5-bits, base 10 overflow 0 1,0 x 10-9 9,9 x 10 9 overflow -9,9 x 10 9-1,0 x 10-9 κενό στο (0)
Σύστημα ΙΕΕΕ754 (και εδώ τυποποίηση!) γενική μορφή : ±(1+F) x 2 e για base-2, 64-bit 1 11 52 πρόσημο προσημασμένος εκθέτης mantissa άσκηση: βρείτε το μεγαλύτερο και το μικρότερο θετικό αριθμό 52 bits e : - 1022 έως +1023 max: 1,11111... 1 x 2 1023 = (2-2 -52 ) x 2 1023 = 2 1024 = 1,7977 x 10 308 min positive: 1,000... 0 x 2-1022 = 2,2251 x 10-308 o επόμενος μεγαλύτερος του αριθμού (1) είναι μεγαλύτερος κατά 2-52 = 2,22 x 10-16 (epsilon)
πράξεις στο computer (1) πρόσθεση: α) μετατροπή ώστε να έχουν ίσους εκθέτες β) πρόσθεση των mantissas παράδειγμα: 1,557 + 0,04341 αν έχουμε σύστημα με 4 ψηφία για mantissa, 1 ψηφίο για εκθέτη 1,557 + 0,04341 1,557 x 10 0 + 0,04341x 10 0 = 1,600 41 x 10 0 απώλεια ψηφίων
πράξεις στο computer (2) αφαίρεση: α) αλλαγή πρόσημου του αφαιρέτη β) πρόσθεση παράδειγμα: 36,41 26,86 αν έχουμε σύστημα με 4 ψηφία για mantissa, 1 ψηφίο για εκθέτη 3,641 x 10 1-2,686 x 10 1 0,955 x 10 1 9,550 x 10 0 προσθήκη ψηφίου
πράξεις στο computer (3) αφαίρεση σχεδόν ίσων αριθμών: παράδειγμα: 764,2-764,1 7,642 x 10 2 7,641 x 10 2 προσθήκη ψηφίων 0,001 x 10 2 1,000 x 10-1 πρόσθεση μικρών και μεγάλων αριθμών παράδειγμα: 0,0010 + 4000 4,000 x 10 3 0,000001 x 10 3 4,000001 x 10 3 4,000 x 10 3!!!
συσσώρευση σφαλμάτων πολλοί, στο πλήθος, υπολογισμοί παράδειγμα: ακριβής αναπαράσταση στο δεκαδικό σύστημα 0,0001 ανακριβής αναπαράσταση στο δυαδικό σύστημα 10000 n=1 0,0001 = 0,9999....1 1.000!!!
αποφυγή συσσώρευσης σφαλμάτων προσθέσεις με κατάλληλη σειρά άθροισης (πχ σειρές Taylor, εσωτερικά γινόμενα) αποφυγή αφαίρεσης σχεδόν ίσων αριθμών