1 / 22

3 Οκτώβρη 2002

3 Οκτώβρη 2002. Περιεχόμενα. Παράσταση ακεραίων Συμβολικές παραστάσεις Παραστάσεις κινητής και σταθερής-υποδιαστολής Υπερεκχείλιση και υποεκχείλιση Πρότυπο κινητής-υποδιαστολής του ΙΕΕΕ Το σύστημα κινητής-υποδιαστολής του Maple Ποια παράσταση είναι πιο κατάλληλη για ...

zizi
Download Presentation

3 Οκτώβρη 2002

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3 Οκτώβρη 2002

  2. Περιεχόμενα • Παράσταση ακεραίων • Συμβολικές παραστάσεις • Παραστάσεις κινητής και σταθερής-υποδιαστολής • Υπερεκχείλιση και υποεκχείλιση • Πρότυπο κινητής-υποδιαστολής του ΙΕΕΕ • Το σύστημα κινητής-υποδιαστολής του Maple • Ποια παράσταση είναι πιο κατάλληλη για ... • Αριθμητική με Ανακριβείς Αριθμούς • Σφάλμα Στρογγύλευσης Αριθμητικής Υποδιαστολής • Μαθηματικές Ιδιότητες Αριθμητικής Κινητής-Υποδιαστολής • Παραδείγματα Καταστροφικών Υπολογισμών • Πως μπορούμε να αποφύγουμε τα προβλήματα;

  3. Παράσταση Αριθμών Τα Μαθηματικά μοντέλα σχεδόν πάντα περιλαμβάνουν κάποιους αριθμούς. Όταν υλοποιούμε κάποιο μοντέλο, πρέπει να παραστήσουμε τους αριθμούς αυτούς στον υπολογιστή. Θα δούμε τρόπους παράστασης ακεραίων και πραγματικών αριθμών. Μπορούμε να κρίνουμε μια παράσταση με διάφορους τρόπους: • Ποιο είναι το εύρος των αριθμών που παριστά; • Πόσο ακριβής είναι η παράσταση; • Πόσο αποδοτική είναι η παράσταση όσον αφορά απαιτούμενο χρόνο και χρόνο; Η Maple μπορεί να παραστήσει αριθμούς με πολλούς τρόπους. Οι περισσότερες γλώσσες προγραμματισμού στην προσπάθειά τους για βέλτιστη αποδοτικότητα είναι ιδιαίτερα περιοριστικές.

  4. Παράσταση ακεραίων Τόσο ο ανθρώπινος νους όσο και οι υπολογιστές παραστούν τους θετικούς ακέραιους με χρησιμοποιώντας συμβολισμό σχετικής θέσης των ψηφίων και κάποια βάση b (=2 ή 10). Η ακολουθία των ακέραιων ψηφίων με παριστά την ποσότητα Το σχήμα αυτό μπορεί να επεκταθεί και για αρνητικούς ακέραιους αριθμούς με πολλούς τρόπους. Υπάρχουν και άλλα σχήματα αλλά δεν χρησιμοποιούνται συχνά.

  5. Ακέραιοι σταθερού ή αορίστου μεγέθους Σε όλες σχεδόν τις γλώσσες προγραμματισμού, υπάρχει σαφές όριο στο μέγεθος του ακέραιου που μπορεί να παρασταθεί – πχ, πόσα ψηφία (bits) επιτρέπονται. Κύριος λόγος είναι η αποδοτικότητα. Εάν προσπαθήσουμε να υπολογίσουμε μεγαλύτερους ακέραιους θα πάρουμε είτε ένα μήνυμα λάθους είτε εσφαλμένη απάντηση. Στην Maple, οι ακέραιοι μπορεί να είναι οσοδήποτε μεγάλοι. Ο μόνος περιορισμός είναι η διαθέσιμη μνήμη. > 2^1000; 1071508607186267320948425049060001810561\ 4048117055336074437503883703510511249\ 3612249319837881569585812759467291755\ 3146825187145285692314043598457757469\ 8574803934567774824230985421074605062\ 3711418779541821530464749835819412673\ 9876755916554394607706291457119647768\ 6542167660429831652624386837205668069\ 376

  6. Κλάσματα Έστω ότι πρέπει να παραστήσουμε έναν αριθμό που δεν είναι ακέραιος – πχ. 1/3 Στις περισσότερες γλώσσες προγραμματισμού, τέτοιοι αριθμοί συνήθως δεν μπορούν να παρασταθούν ακριβώς. Η Maple μπορεί, κάνει επίσης πράξεις με κλάσματα, όπως κάνουμε και εμείς με χαρτί και μολύβι: > 5/15; 1/3 > 1/3+1/4; 7/12 > 643432432 * (1/4324234 + 3/9567435834 + 434324/123432434234); 513440646811720847717711223424 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­-------------------- 212776077054644382876032271

  7. Άλλες συμβολικές παραστάσεις Η Maple μπορεί επίσης να παραστήσει αριθμούς συμβολικά με πολλούς διαφορετικούς τρόπους: > sqrt(4*5); > 1/sqrt(2); > sqrt(2)*sqrt(50); 10 > sin(Pi/8); Όλες οι παραπάνω παραστάσεις είναι ακριβείς. Το κόστος της ακρίβειας είναι ότι τέτοιες παραστάσεις μπορεί να γίνουν εύκολα περίπλοκες και δύσχρηστες.

  8. Προσεγγιστικές παραστάσεις Οι περισσότεροι αριθμητικοί υπολογισμοί γίνονται με προσεγγιστικές παραστάσεις αριθμών. Οι παραστάσεις αυτές παραμένουν απλές ακόμα και μετά από συνεχείς και πολύπλοκες πράξεις – μειώνεται όμως βαθμιαία η ακρίβειά τους. Δύο είναι τα βασικά σχήματα παράστασης που χρησιμοποιούνται στην πράξη, ξεχωρίζονται με βάση τύπο του επιτρεπόμενου σφάλματος: • Οι παραστάσεις σταθερής-υποδιαστολής έχουν σφάλματα προκαθορισμένου απόλυτου μεγέθους (πχ +- 0.0001). • Οι παραστάσεις κινητής-υποδιαστολής έχουν σφάλματα προκαθορισμένου σχετικού μεγέθους (πχ +- 1%). Και στις δύο περιπτώσεις, οι αριθμοί μπορούν να αποθηκευθούν σε θέσης μνήμης σταθερού μεγέθους και μπορεί να χρησιμοποιηθεί ειδικό ήλεκτρο-μηχανολογικό για να εκτελεσθούν πράξεις με αυτούς ταχύτατα.

  9. Παραστάσεις σταθερής-υποδιαστολής Η παράσταση σταθερής υποδιαστολής μας επιτρέπει να έχουμε μόνον αριθμούς το κλασματικό μέρος των οποίων μπορεί να γραφθεί με έναν προκαθορισμένο αριθμό ψηφίων (δεκαδικών ή δυαδικών). Για παράδειγμα, εάν επιτρέψουμε μόνον τρία ψηφία στο κλασματικό μέρος • Μπορούμε να παραστήσουμε ακριβώς αριθμούς όπως 0.138, -12.901, 8.900, 123456.003 • Δεν μπορούμε να παραστήσουμε ακριβώς αριθμούς όπως 3.1878, -8.87309 τους οποίους πρέπει να τους στρογγυλέψουμε σε 3.188, -8.873. Επιπρόσθετα, συνήθως υπάρχει ένα άνω όριο στο επιτρεπόμενο μέγεθος των αριθμών σταθερής υποδιαστολής. Οι παραστάσεις σταθερής υποδιαστολής μπορούν να θεωρηθούν σαν παραστάσεις σταθμισμένων-ακεραίων. Χρησιμοποιούμε τον ακέραιο i για να παραστήσουμε τον αριθμό ixS, όπου S κάποια παράμετρος στάθμισης (παραπάνω το S είναι 0.0001).

  10. Παραστάσεις κινητής-υποδιαστολής Η παράσταση κινητής υποδιαστολής μας επιτρέπει να έχουμε μόνον αριθμούς οι οποίοι μπορούν να γραφθούν με έναν προκαθορισμένο αριθμό ψηφίων (δεκαδικών ή δυαδικών) ανεξάρτητα εάν αυτά αφορούν το ακέραιο ή το κλασματικό μέρος. Για παράδειγμα, εάν επιτρέψουμε μόνον τρία ψηφία: • Μπορούμε να παραστήσουμε ακριβώς αριθμούς όπως 1.45, 0.00000781, 90400, -77.0 • Δεν μπορούμε να παραστήσουμε ακριβώς αριθμούς όπως 12.81, 0.09217, 79210 τους οποίους πρέπει να τους στρογγυλέψουμε σε 12.8, 0.0922, 79200. Ένας αριθμός σε μορφή κινητής υποδιαστολής μοιάζει με τους αριθμούς «επιστημονικού συμβολισμού». Με αυτόν τον συμβολισμό οι παραπάνω αριθμοί γράφονται ως εξής: Σημειώστε ότι το δεκαδικό μέρος (mantissa) είναι στο (0,1) και ο εκθέτης δηλώνει στην κλιμάκωση του αριθμού.

  11. Υπερεκχείλιση και υποεκχείλιση Οι αριθμοί κινητής-υποδιαστολής έχουν περιορισμένη ακρίβεια η οποία καθορίζεται από το μέγεθος της mantissa. Συνήθως, έχουν επίσης και περιορισμένο πεδίο, επειδή υπάρχει περιορισμός στο μέγεθος του εκθέτη. Υπερεκχείλιση, συμβαίνει όταν παρουσιασθεί ένας αριθμός με πολύ μεγάλο θετικό εκθέτη. Ανάλογα με την μηχανή και την γλώσσα προγραμματισμού που χρησιμοποιούμε, υπερεκχείλιση μπορεί είτε • Nα έχει σαν αποτέλεσμα τον τερματισμό της εκτέλεσης του προγράμματός μας, είτε • Να μας οδηγήσει σε έναν ειδικό αριθμό (Inf) Υποεκχείλιση, συμβαίνει όταν παρουσιασθεί ένας αριθμός με πολύ μεγάλο αρνητικό εκθέτη. Η υποεκχείλιση είναι λιγότερο προβληματική από την υπερεκχείλιση. Μια και ο αριθμός είναι πολύ μικρός μπορεί κανείς να τον αντικαταστήσει με το μηδέν. Κάτι τέτοιο όμως ίσως μας οδηγήσει σε ανεπιθύμητα αποτελέσματα μερικές φορές.

  12. Πρότυπο κινητής-υποδιαστολής του ΙΕΕΕ Παλαιότερα οι υπολογιστές χρησιμοποιούσαν πολλούς διαφορετικούς ο καθένας τρόπους παράστασης κινητής-υποδιαστολής. Εδώ και σχεδόν μια δεκαετία η συντριπτική πλειοψηφία τους χρησιμοποιεί το πρότυπο που όρισε το ΙΕΕΕ. Το πρότυπο αυτό καθορίζει δύο δυαδικές παραστάσεις. Για τους μονής ακρίβειας αριθμούς κινητής-υποδιαστολής, ο δυαδικός εκθέτης διακυμαίνεται από -126 έως +127, προσφέροντάς μας την δυνατότητα να παραστήσουμε αριθμούς περίπου έως . Η δυαδική mantissa έχει 24 bits (ένα αόρατο), δίνοντας μας την δυνατότητα ακρίβειας περίπου 6 δεκαδικών ψηφίων. Για τους διπλής ακρίβειας αριθμούς κινητής-υποδιαστολής, ο δυαδικός εκθέτης διακυμαίνεται από -1022 έως +1023, προσφέροντάς μας την δυνατότητα να παραστήσουμε αριθμούς περίπου έως . Η mantissa έχει 53 bits (ένα αόρατο), δίνοντας μας την δυνατότητα ακρίβειας περίπου 15 δεκαδικών ψηφίων. Η Maple χρησιμοποιείτο σύστημα κινητής-υποδιαστολής του υπολογιστή στον οποίο τρέχει, μόνον εάν της ζητηθεί (με χρήση της evalhf), ειδάλλως χρησιμοποιεί το δικό της σχήμα παράστασης αριθμών.

  13. Το σύστημα κινητής-υποδιαστολής του Maple Η Maple χρησιμοποιεί δεκαδικό σύστημα κινητής υποδιαστολής, η αριθμητική του οποίου γίνετε με χρήση λογισμικού. Αυτό συνεπάγεται ότι είναι πολύ πιο αργή, συγκριτικά με εάν η αριθμητική γινόταν με χρήση ήλεκτρο-μηχανολογικού, αλλά έχει και τα πλεονεκτήματά του. Η Maple επιτρέπει να αυξήσουμε τον εκθέτη (σχεδόν) όσο θέλουμε, και συνεπώς δεν έχουμε φαινόμενα εκχείλισης. Μπορούμε στην Maple να καθορίσουμε την ακρίβεια της αριθμητικής κινητής-υποδιαστολής δίνοντας την ανάλογη τιμή στην μεταβλητή της Digits. Πχ. > Digits:=5; Digits := 5 > evalf(Pi); 3.1416 > Digits:=30; Digits := 30 > evalf(Pi); 3.14159265358979323846264338328

  14. Παραστώντας Αριθμούς Ορίστε μια εικόνααριθμών που μπορούν να παρασταθούν σε σύστημα σταθερής-υποδιαστολής (με 2 κλασματικά ψηφία) και σε σύστημα κινητής-υποδιαστολής (με 2 συνολικά ψηφία) Το ποια παράσταση είναι καλλίτερη εξαρτάται από το αναμενόμενο μέγεθος των αριθμών, και τους επιτρεπόμενους τύπους σφαλμάτων. κινητής-υποδιαστολής σταθερής-υποδιαστολής

  15. Ποια παράσταση είναι πιο κατάλληλη για ... • Το πλήθος των παραπόνων των πελατών που λαμβάνει μια εταιρεία σε κάποιο χρονικό διάστημα. • Το ύψος μιας ομάδας παιδιών. • Ο πληθυσμός της γης σε διάφορες χρονικές στιγμές. • Η συγκέντρωση κάποιου ρυπαντή που παρατηρήθηκε ή προβλέφθηκε για την πόλη του Ηρακλείου. • Η κατεύθυνση (μοίρες δυτικά από βόρεια) την οποία ακολουθούν τα μεταναστευτικά πουλιά πάνω από την Κρήτη.

  16. Αριθμητική με Ανακριβείς Αριθμούς Τι θα συμβεί όταν προσπαθήσουμε να εκτελέσουμε πράξεις με αριθμούς μη ακριβής παράστασης κινητής ή σταθερής-υποδιαστολής; Συχνά, το αποτέλεσμα δεν μπορεί να παρασταθεί ακριβώς. Στην καλλίτερη περίπτωση θα έχουμε ένα στρογγυλεμένο αποτέλεσμα – τον πλησιέστερο, στο ακριβές αποτέλεσμα, αριθμό που μπορεί να παρασταθεί. Τέτοιο σφάλμα στρογγύλευσης μπορεί να συσσωρευτεί κατά την διάρκεια πολλών διαδοχικών υπολογισμών με σύνηθες αποτέλεσμα η τελική υπολογισθήσα απάντηση να μην έχει καμία απολύτως έννοια. Σφάλματα στρογγύλευσης μπορούν επίσης, πολύ εύκολα, να ακυρώσουν την ισχύ βασικών μαθηματικών ιδιοτήτων των πραγματικών αριθμών – πχ. Α+Β = Β+Α.

  17. Σφάλμα Στρογγύλευσης Αριθμητικής Σταθερής-Υποδιαστολής Η πρόσθεση και η αφαίρεση στην αριθμητική σταθερής-υποδιαστολής είναι ακριβείς (εάν δεν έχουμε εκχειλίσεις). Για παράδειγμα (με 2 κλασματικά ψηφία): 3.82+1.09 = 4.91, χωρίς σφάλμα στρογγύλευσης. Ο πολλαπλασιασμός και η διαίρεση δεν είναι ακριβείς Για παράδειγμα: 1.01x2.22=2.2422, που στρογγυλεύεται στο 2.24. Δεν ισχύουν όλες οι ιδιότητες που θα περιμένατε. Για παράδειγμα: 0.01 x (0.1 x 2000.00) = 0.20 αλλά (0.01 x 0.01) x 2000.00 = 0.00 0.01 x (0.4 + 0.3) = 0.01 αλλά0.01 x 0.4 + 0.01 x 0.3 = 0.00

  18. Σφάλμα Στρογγύλευσης Αριθμητικής Κινητής-Υποδιαστολής Η πρόσθεση και η αφαίρεση στην αριθμητική κινητής-υποδιαστολής δεν είναι ακριβείς. Για παράδειγμα (με 3 συνολικά ψηφία): 1.36 + 52.1 = 53.47 στρογγυλεύεται σε 53.5 3300 – 259 = 3041 στρογγυλεύεται σε 3040 380 + 1.2 = 381.2 στρογγυλεύεται σε 381 Ούτε ο πολλαπλασιασμός και η διαίρεση δεν είναι ακριβείς. Για παράδειγμα(με 2 συνολικά ψηφία): 1.1 x 2200 = 2320 στρογγυλεύεται σε 2300

  19. Μαθηματικές Ιδιότητες Αριθμητικής Κινητής-Υποδιαστολής Η Αριθμητική Κινητής-Υποδιαστολής υπακούει σε κάποιες από τις ιδιότητες των πραγματικών αριθμών: x + y = y + x x y = y x Εάν x<y c>0, τότε x+c < y+c Δεν υπακούει όμως σε άλλες ιδιότητες, όπως βλέπουμε παρακάτω (με ακρίβεια 2 ψηφίων): (10 + 0.4) + 0.4 = 10 αλλά 10 + (0.4 + 0.4) = 11 (99 + 10) – 10 = 100 (49 x 0.5) x 0.5 = 13 αλλά 49 x (0.5 + 0.5) = 12 (49 / 2) x 2 = 50 0.1 < 0.2 και 10 > 0 αλλά 0.1 + 10 ? 0.2 +10

  20. 2 περιπτώσεις καταστροφικού σφάλματος στρογγύλευσης Το φαινόμενο της ακύρωσης μπορεί να εμφανισθεί όταν αφαιρούμε δύο ποσότητες. Το αποτέλεσμα τότε έχει πολύ λιγότερα ψηφία ακρίβειας από τους τελεστές. Για παράδειγμα, με 9 ψηφία: 12345.6789 – 12345.6721 = 0.0068 Εάν οι τελεστές αυτοί έχουν προηγουμένως στρογγυλευθεί, η απάντηση θα έχει ακρίβεια μόνον 2 ψηφίων. Κορεσμός παρατηρείται όταν η πρόσθεση ενός μη-μηδενικού αριθμού δεν επιφέρει καμία αλλαγή. Για παράδειγμα, με 9 ψηφία: 1234567.89 + 0.004 = 1234567.89 Αυτό δεν είναι τόσο σημαντικό εάν συμβεί μόνον μια φορά, αλλά τι θα συμβεί εάν προσθέσουμε το 0.004 ένα εκατομμύριο φορές; Η ακριβής λύση θα είναι 1238567.89 ενώ το αποτέλεσμά μας θα είναι 1234567.89 – λάθος στο 4ο ψηφίο.

  21. Ένα Παράδειγμα Καταστροφικών Υπολογισμών Θέλουμε να υπολογίσουμε το κέρδος μιας εταιρείας κατά το παρελθόν έτος, με βάση τα μηνιαία έσοδα και έξοδα (σε εκ. ευρώ). Ας χρησιμοποιήσουμε αριθμητική κινητής υποδιαστολής με 3 ψηφία ... Digits := 3: > esoda := [ 81.9, 28.1, 13.9, 30.7, 22.1, 79.8, > 43.2, 31.0, 34.9, 88.1, 52.3, 67.3 ]: > eksoda:= [ 82.1, 27.8, 13.9, 30.2, 22.2, 79.5, > 43.0, 30.7, 35.2, 87.8, 52.1, 67.2 ]: > synolika—esoda := sum(esoda[i],i=1..12); synolika—esoda := 573. > synolika—eksoda:= sum(eksoda[i],i=1..12); synolika—eksoda := 572. > synolika—esoda ­ synolika—eksoda; 1. Η απάντηση: Συνολικό κέρδος 1 εκ. Ευρώ. Αυτό, όπως βλέπουμε παρακάτω, είναι πολύ λάθος: > sum(esoda[i]­ eksoda[i],i=1..12); 1.6

  22. Πως μπορούμε να αποφύγουμε τα προβλήματα; • Βρες μια εκτίμηση του πόσο μεγάλο μπορεί να γίνει το σφάλμα στρογγύλευσης και σιγουρέψου ότι κάτι τέτοιο είναι αποδεκτό (a-priori ανάλυση). Παράδειγμα: Το συνεπαγόμενο σφάλμα κατά την πρόσθεση Ν αριθμών κινητής-υποδιαστολής στο διάστημα (-1,1) με αριθμητική d ψηφίων πρέπει να είναι μικρότερο από όπου • Χρησιμοποίησε το σχήμα αριθμητικής διαστήματος, το οποίο χρησιμοποιεί τον υπολογιστή για να ελέγξει πόσο μεγάλο μπορεί να γίνει το σφάλμα. • Σε κάθε περίπτωση: • Προσοχή για πιθανές παγίδες. • Επαγρύπνηση για σημάδια που φανερώνουν πιθανά προβλήματα ακρίβειας. • Χρησιμοποίησε άφθονη ακρίβεια, εκτός και σε ενδιαφέρει πολύ η ταχύτητα εκτέλεσης.

More Related