1.4 Αριθμητική υπολογιστών και σφάλματα

Σχετικά έγγραφα
Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Σφάλματα (errors) Σε κάθε υπολογισμό μιας πραγματικής ποσότητας υπάρχει σφάλμα

Επιστημονικός Υπολογισμός (set3) Δρ. Γιώργος Τσιρογιάννης

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

1. Το σύστημα κινητής υποδιαστολής 2. Αναπαράσταση πραγματικών δυαδικών αριθμών 3. Το πρότυπο 754 της ΙΕΕΕ

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης ΤΕΙ ΧΑΛΚΙΔΑΣ

Αριθμητική Ανάλυση & Εφαρμογές

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Νεκτάριος Κοζύρης ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ

Σύστημα Πλεονάσματος. Αναπαράσταση Πραγματικών Αριθμών. Αριθμητικές Πράξεις σε Αριθμούς Κινητής Υποδιαστολής

ΑΡΙΘΜΗΤΙΚΗ ΓΙΑ ΥΠΟΛΟΓΙΣΤΕΣ

Αριθµητικές Μέθοδοι και Προγραµµατισµός Αριθµητική Ανάλυση (ή Επιστηµονικοί Υπολογισµοί)

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ - ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ

HY213. ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΥΠΟΛΟΓΙΣΜΟΙ ΚΑΙ ΣΦΑΛΜΑΤΑ ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

Αρχιτεκτονικές Υπολογιστών

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Αριθμητική Κινητής Υποδιαστολής Πρόσθεση Αριθμών Κινητής Υποδιαστολής

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Εισαγωγή στην επιστήμη των υπολογιστών

Πράξεις με δυαδικούς αριθμούς

ΣΦΑΛΜΑΤΑ ΑΡΙΘΜΗΤΙΚΩΝ ΥΠΟΛΟΓΙΣΜΩΝ

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Εφαρμοσμένα Μαθηματικά

Δυαδικη παρασταση αριθμων και συμβολων

Ψηφιακά Κυκλώματα Ι. Μάθημα 1: Δυαδικά συστήματα - Κώδικες. Λευτέρης Καπετανάκης

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αριθµητική Ανάλυση. Τµήµα Α ( Αρτιοι) : Καθηγητής Ν.Μισυρλής,Τµήµα Β (Περιττοί) : Επίκ. Αριθµητική Καθηγητής Ανάλυση Φ.Τζαφέρης

Ελίνα Μακρή

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

1.1. Με τι ασχολείται η Αριθμητική Ανάλυση

Chapter 3. Αριθμητική Υπολογιστών. Όγδοη (8 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

Οργάνωση Υπολογιστών

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών

Εισαγωγή στην πληροφορική

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21

Αριθµητική υπολογιστών

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

ΚΑΝΕΝΑ ΑΡΙΘΜΗΤΙΚΟ ΣΥΣΤΗΜΑ ΕΝ ΜΠΟΡΕΙ ΝΑ ΑΠΕΙΚΟΝΙΣΕΙ ΟΛΟΥΣ ΤΟΥΣ ΠΡΑΓΜΑΤΙΚΟΥΣ ΑΡΙΘΜΟΥΣ, ΙΟΤΙ ΕΧΟΥΜΕ ΠΕΡΙΟΡΙΣΜΕΝΟ ΕΥΡΟΣ ΑΚΡΙΒΕΙΑΣ.

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

ΜΕΜ251 Αριθμητική Ανάλυση

ΑΛΓΕΒΡΑ Α ΓΥΜΝΑΣΙΟΥ ΘΕΤΙΚΟΙ ΚΑΙ ΑΡΝΗΤΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΧΑΛΑΤΖΙΑΝ ΠΑΥΛΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος

1. ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ. α i. (α i β i ) (1.3) όπου: η= το πλήθος ακεραίων ψηφίων του αριθμού Ν. n-1

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 3 : Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Αναπαράσταση εδοµένων σε Επεξεργαστές Ψ.Ε.Σ

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 7 και 8: Αναπαραστάσεις. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Εισαγωγή στην επιστήμη των υπολογιστών. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ και Μετατροπές Αριθμών

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα

Αριθµητική Ανάλυση. Ενότητα 1 Σφάλµατα στους Αριθµητικούς Υπολογισµούς. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Αριθμητικά Συστήματα = 3 x x x x 10 0

Κεφάλαιο 2 Η έννοια και η παράσταση της πληροφορίας στον ΗΥ. Εφ. Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος 1

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

Εισαγωγή στην Επιστήμη των Υπολογιστών

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Παράδειγμα #1 ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΕΠΙΜΕΛΕΙΑ: Ι. Λυχναρόπουλος

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

Τμήμα Μαθηματικών, ΕΚΠΑ. Ακαδ. έτος

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις

Αριθμητικά Συστήματα

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

Ελίνα Μακρή

1ο. Η αριθµητική του υπολογιστή

Αριθμητικά Συστήματα

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Κεφάλαιο 1. Συστήματα αρίθμησης και αναπαράστασης

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Θερμοδυναμική - Εργαστήριο

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Αριθμητικά Συστήματα. Επιμέλεια Διαφανειών: Δ.

Transcript:

Γ. Γεωργίου, Αριθμητική Ανάλυση 1.4 Αριθμητική υπολογιστών και σφάλματα Στην παράγραφο αυτή καλύπτουμε πρώτα γενικά το θέμα της αριθμητικής υπολογιστών και στην συνέχεια διαπραγματευόμαστε την έννοια του σφάλματος τόσο γενικά όσο και ειδικά στα πλαίσια της MATLAB. 1.4.1 Αριθμητική υπολογιστών Διακρίνουμε δύο τρόπους παράστασης αριθμών: 1) Την αριθμητική σταθερής υποδιαστολής (fixed-point arithmetic). Αυτή είναι παρόμοια με την αριθμητική στο χέρι και δεν θα μας απασχολήσει. 2) Την αριθμητική κινητής υποδιαστολής (floating-point arithmetic). Αυτή χρησιμοποιείται στους υπολογιστές και είναι πιο σημαντική. Στην αριθμητική κινητής υποδιαστολής μετακινούμε την υποδιαστολή πριν από το πρώτο μη μηδενικό ψηφίο και πολλαπλασιάζουμε με τη βάση του αριθμητικού συστήματος υψωμένη σε κατάλληλο εκθέτη. Για παράδειγμα, στο δεκαδικό σύστημα, ο αριθμός -(0.0005928) 10 με αριθμητική κινητής υποδιαστολής γράφεται ως εξής: Παρομοίως στο δυαδικό σύστημα ο αριθμός -.598 10-3 (111.001) 2 με αριθμητική κινητής υποδιαστολής γράφεται ως εξής:.111001 2 3 Σ ένα αριθμητικό σύστημα με βάση (base or radix) το β, ένας αριθμός κινητής υποδιαστολής έχει τη γενική μορφή x = σ (. a 1 a 2 a 3 ) β β e (1) όπου σ το πρόσημο του αριθμού, με μόνες πιθανές τιμές τα +1 και -1. η κλασματική υποδιαστολή (radix point) α i, i=1,2,3, τα ψηφία του αριθμού για τα οποία ισχύει α 1 0 (κανονικοποιημένη normalized- παράσταση κινητής υποδιαστολής) και 0 α i β 1 e o εκθέτης ο οποίος μπορεί να είναι οποιοσδήποτε ακέραιος αριθμός Με την κανονικοποίηση (normalization) η αναπαράσταση ενός αριθμού είναι μοναδική και δεν διατίθενται άσκοπα θέσεις μνήμης σε αχρείαστα μηδενικά. Επιπλέον, στα δυαδικά συστήματα, το α 1 (που αναγκαστικά είναι 1) δεν χρειάζεται να αποθηκευτεί. Στον υπολογιστή δεν είναι εφικτό να αποθηκεύσουμε κάθε πραγματικό αριθμό αφού υπάρχουν περιορισμοί στο πλήθος των ψηφίων που μπορούν να αποθηκευθούν και στο μέγεθος του εκθέτη. Το πλήθος t των σημαντικών ψηφίων που αποθηκεύει το σύστημα καθορίζει την ακρίβεια (precision) του συστήματος. Επίσης το σύστημα διαθέτει πεπερασμένο πλήθος θέσεων μνήμης για να αποθηκεύσει τον εκθέτη e. Έτσι ισχύει

L e U (2) όπου L και U αντίστοιχα το κάτω και το άνω φράγμα του εκθέτη. Γενικά ισχύει, L U + 1. Συνοψίζοντας, ο υπολογιστής αποθηκεύει αριθμούς της μορφής x = σ (. a 1 a 2 a t ) β β e (3) με τους περιορισμούς που αναφέραμε για τον εκθέτη e. Η παράσταση (. a 1 a 2 a t ) β καλείται κλασματικό μέρος (mantissa) του αριθμού. Οι αριθμοί που μπορούν να γραφούν στην μορφή (3) καθορίζονται από τέσσερις ακέραιους αριθμούς, τους β, t, L και U, οι οποίοι χαρακτηρίζουν μια μηχανή. Στη μηχανή είναι αποδεκτοί μόνο αριθμοί της μορφής (3) καθώς και το 0, οι οποίοι καλούνται αριθμοί μηχανής (machine number). Θα συμβολίζουμε το σύνολο των αριθμών μηχανής με Μ = Μ(β, t, L, U) Παρατηρήσεις (1) Είναι φανερό ότι το Μ είναι ένα πεπερασμένο υποσύνολο των ρητών αριθμών. (2) Θέτοντας e=u και α 1 = α 2 = = α t = (β 1) παίρνουμε το κατ απόλυτη τιμή μέγιστο στοιχείο του Μ x max = (. (β 1)(β 1) (β 1)) β β U (4) Έτσι στο δυαδικό σύστημα (β=2) ο μέγιστος αριθμός μηχανής είναι ο x max = (. 11 1) 2 2 U ενώ στο οκταδικό σύστημα (β=8) ο μέγιστος αριθμός είναι ο x max = (. 77 7) 8 8 U (3) Για οποιαδήποτε βάση β, ο κατ απόλυτη τιμή ελάχιστος αριθμός μηχανής είναι ο x min = (. 100 0) β β L (5) (4) Η απόσταση μεταξύ δύο διαδοχικών στοιχείων του Μ δεν είναι σταθερή αλλά εξαρτάται από την τιμή του εκθέτη e. Γενικά, αν x 1 = (. a 1 a 2 a t ) β β e είναι ένας οποιοσδήποτε θετικός αριθμός μηχανής, ο αμέσως μεγαλύτερός του αριθμός μηχανής είναι ο x 2 = (. a 1 a 2 a t + β t ) β β e = (. a 1 a 2 a t ) β β e + β e t = x 1 + β e t x 2 x 1 = β e t (6) Παρατηρούμε ότι η απόσταση αυξάνει με τον εκθέτη e (η ακρίβεια t είναι σταθερά της μηχανής). Αν πάρουμε μια δεκαδική μηχανή (β=10) με t=5, ο αμέσως επόμενος αριθμός μηχανής μετά τον x 1 = (. 23012) 10 2 είναι ο x 2 = (. 23013) 10 2, οπότε x 2 x 1 = (. 00001) 10 2 = 10 3 Αν x 1 = (. 23113) 10 3 τότε x 2 = (. 23114) 10 3, και έτσι 2

x 2 x 1 = (. 00001) 10 3 = 10 8 (5) Σε μια δυαδική μηχανή (β=2), ο μέγιστος κατ απόλυτη τιμή αριθμός μηχανής είναι ο x max = (. 111 1) 2 U ενώ ο ελάχιστος κατ απόλυτη τιμή αριθμός μηχανής είναι ο x min = (. 100 0) 2 L Είναι εύκολο να παρατηρήσουμε ότι το σύνολο Μ δεν είναι κλειστό ως προς την πρόσθεση ή τον πολλαπλασιασμό, αφού και x max + x max Μ x min x min Μ Ας πάρουμε και ένα παράδειγμα στο δεκαδικό σύστημα (β=10) με t=7. Έστω x = (. 1000000) 10 1 και x = (. 1000000) 10 6. Παρατηρούμε ότι x + y = 1 + 0.0000001 = 1.0000001 Μ Όπως θα δούμε σε λίγο, όταν το αποτέλεσμα μιας πράξης δεν αντιστοιχεί σε αριθμό μηχανής, τότε η μηχανή θα τον προσεγγίσει με ένα γειτονικό αριθμό μηχανής. 1.4.2. Παράσταση αριθμού κινητής υποδιαστολής στους υπολογιστές Στην παράγραφο αυτή θα αναφερθούμε αποκλειστικά σε υπολογιστές που χρησιμοποιούν το δυαδικό σύστημα (β=2). Σύμφωνα με το πρότυπο της αριθμητικής του ANSI/IEEE 1 (Institute of Electrical Engineers) το μήκος ενός αριθμού μηχανής εκφράζεται σε δυαδικά ψηφία ή δυφία (binary digits or bits) 2. Το μήκος ενός αριθμού μηχανής δίνεται από την l = p + q + 1 (7) όπου p το μήκος του εκθέτη, q το μήκος του κλασματικού μέρους, ενώ μια θέση μνήμης διατίθεται για το πρόσημο του αριθμού. Η παράσταση ενός αριθμού μηχανής φαίνεται στο ακόλουθο σχήμα. 1 1 2 3 p 1 2 3 q Πρόσημο Εκθέτης Δυαδική υποδιαστολή Κλασματικό μέρος (mantissa) Στον Πίνακα 1.1 φαίνονται οι θέσεις μνήμης που χρησιμοποιούνται στην απλή, διπλή και τετραπλή ακρίβεια. Ισχύουν τα εξής: 1 Το πρότυπο ANSI/IEEE έχει επικρατήσει παγκόσμια στους ψηφιακούς υπολογιστές. 2 Ως γνωστό, 8bits=1byte. 3

και β U = 10 U U = Ulog 10 β β q+1 = 10 q q = (q + 1)log 10 β Πίνακας 1.1 Απλή ακρίβεια (single precision) Διπλή ακρίβεια (double precision) Τετραπλή ακρίβεια (quadruple precision) Πρόσημο 1 1 1 Εκθέτης, p 8 11 14 Κλασματικό μέρος*, q 23(+1) 52(+1) 112(+1) Μήκος, l 32 bits (4bytes) 64bits (8bytes) 128 bits (16bytes) L -126-1022 -16382 U 127 1023 16383 Δεκαδικό q 7.22 15.95 34.02 Δεκαδικό U 38.23 307.95 4931.77 *Σημείωση: οι αριθμοί στις παρενθέσεις αντιστοιχούν σε συστήματα που εξοικονομούν 1 θέση μνήμης με το να μην αποθηκεύουν το πρώτο κλασματικό ψηφίο που στο δυαδικό σύστημα είναι αναγκαστικά το 1. Σημειώνουμε ότι η μια από τις p θέσεις μνήμης που διατίθενται για τον εκθέτη περιέχει το πρόσημο τοθ εκθέτη. Έτσι, στην πραγματικότητα οι διαθέσιμες θέσεις μνήμης είναι p-1. Στη γενική περίπτωση η μέγιστη τιμή του εκθέτη είναι U = ((β 1)(β 1) (β 1)) β = βp 1 1 β 1 (8) Απλή ακρίβεια Παρατηρούμε ότι στην απλή ακρίβεια η μέγιστη τιμή του εκθέτη είναι Ισχύει U = (1111111) 2 = 27 1 2 1 = 127 126 e 127 Μπορούμε εύκολα να βρούμε τις τιμές των κατ απόλυτη τιμή ελάχιστων και μέγιστων αριθμών: x min = 2 1 2 L = 2 L 1 = 2 127 = 5.8875 10 39 x max = (.111 1) 1 2 U = 2 U = 2 127 = 1.7014 10 38 Διπλή ακρίβεια Ομοίως στη διπλή ακρίβεια βρίσκουμε ότι η μέγιστη τιμή του εκθέτη είναι η και Για τα x max και x min βρίσκουμε: U = (1111111111) 2 = 210 1 2 1 = 1023 1022 e 1023 4

x min = 2 1 2 L = 2 L 1 = 2 1023 = 1.1125 10 308 x max = (.111 1) 2 2 U = 2 U = 2 1023 = 8.9885 10 307 1.4.3. Προσέγγιση πραγματικών αριθμών με αριθμούς μηχανής Θεωρούμε το σύνολο των αριθμών μηχανής M(β,t,L,U), δηλ. το σύνολο που περιλαμβάνει το 0 και τους αριθμούς της μορφής σ (. α 1 α 2 α t ) β β e όπου α 1 0 και L e U (9) Όπως έχουμε ήδη αναφέρει ο μέγιστος κατ απόλυτη τιμή αριθμός μηχανής είναι ο x max = (. (β 1)(β 1) (β 1)) β β U (10) ενώ ο ελάχιστος κατ απόλυτη τιμή αριθμός μηχανής είναι ο 3 x min = (. 100 0) β β L (11) Έστω τώρα ένας πραγματικός αριθμός ο οποίος στο β-δικό σύστημα γράφεται ως εξής x = σ (. α 1 α 2 α t α t+1 ) β β e όπου α 1 0 και e Z (12) και ο οποίος εμφανίζεται κατά τους υπολογισμούς ενός προγράμματος. Το ερώτημα που τίθεται είναι σε ποιον «κοντινό» αριθμό μηχανής, τον οποίο συμβολίζουμε με fl(x), θα αντιστοιχίσει η μηχανή τον αριθμό x R. Υπερχείλιση και υπεκχείλιση Στην περίπτωση που είναι x x max τότε λέμε ότι έχουμε υπερχείλιση (overflow) υπολογισμούς. Αν και ο υπολογιστής σταματά τους x x min λέμε ότι έχουμε υπεκχείλιση (underflow). Στην περίπτωση αυτή ο υπολογιστής θέτει fl(x) = 0 και συνεχίζει τους υπολογισμούς. Είναι φανερό ότι και στις δύο περιπτώσεις χάνεται κάθε πληροφορία για τον αριθμό x. Είναι επίσης φανερό ότι fl(0) = 0 Αποκοπή και στρογγύλευση Εξετάζουμε τώρα την περίπτωση όπου Αν ο x είναι ίσος με ένα αριθμό μηχανής τότε x min x x max fl(x) = x 3 Στη MATLAB μπορούμε να βρούμε τους x min και x max με τις συναρτήσεις realmin και realmax αντίστοιχα. 5

Αν τέλος ο x δεν είναι ίσος με αριθμό μηχανής τότε αυτός θα βρίσκεται ανάμεσα σε δύο αριθμούς μηχανής x x x, x, x M Είναι λογικό ότι ο fl(x) θα είναι ένας από τους x και x. Στην περίπτωση που ο x είναι θετικός x = (. α 1 α 2 α t ) β β e και x = (. α 1 α 2 α t + β t ) β β e Για την εύρεση του fl(x) υπάρχουν δύο τρόποι περικοπής: (α) αποκοπή (truncation, chopping) (β) στρογγύλευση (rounding). Στην αποκοπή, αποκόπτονται τα πλεονάζοντα ψηφία, δηλ. τα ψηφία δεξιά του α t, fl(x) = x = (. α 1 α 2 α t ) β β e Στη στρογγύλευση ο fl(x) είναι ο πλησιέστερος στον x αριθμός μηχανής. Ως γνωστό, για να στρογγυλεύσουμε ένα δεκαδικό αριθμό απορρίπτουμε τα πλεονάζοντα ψηφία αν το πρώτο από αυτά είναι κάποιο από τα 0, 1, 2, 3, 4 και αυξάνουμε το τελευταίο πριν την αποκοπή ψηφίο κατά 1 στις υπόλοιπες περιπτώσεις. Αν ο αριθμός είναι δυαδικός απορρίπτουμε τα πλεονάζοντα ψηφία αν το πρώτο από αυτά είναι 0 διαφορετικά αυξάνουμε το τελευταίο πριν την αποκοπή ψηφίο κατά 1 Παράδειγμα 1.4.1 Θεωρούμε αριθμούς δεκαδικής (β=10) μηχανής με 5 σημαντικά ψηφία (t=5). Έχουμε fl( 24.42695) αποκοπή.24426 10 2 fl( 24.42695) στρογγύλευση.24427 10 2 fl(0.0003462278) αποκοπή. 34622 10 3 fl(0.0003462278) στρογγύλευση. 34623 10 3 fl(46729162) αποκοπή. 46729 10 8 fl(46729162) στρογγύλευση. 46729 10 8 fl( 10.99961) αποκοπή. 10999 10 2 fl( 10.99961) στρογγύλευση. 11000 10 2 Παράδειγμα 1.4.2 Θεωρούμε αριθμούς δυαδικής (β=2) μηχανής με 5 σημαντικά ψηφία (t=5). Έχουμε 6

fl(101.11101) αποκοπή. 10111 2 3 fl(101.11101) στρογγύλευση. 11000 2 3 fl(11.1101) αποκοπή. 11110 2 3 fl(11.1101) στρογγύλευση. 11111 2 3 Ορισμός 1.4.1 Καλούμε μοναδιαίο σφάλμα στρογγύλευσης (roundoff unit) τον μικρότερο αριθμό u για τον οποίο ισχύει fl(1 + u) > 1 (13) To u καλείται επίσης μηδέν της μηχανής ή έψιλον της μηχανής (machine epsilon). Σε μερικά βιβλία βρίσκουμε εναλλακτικούς ορισμούς όπως τον πιο κάτω: Εναλλακτικός Ορισμός 1.4.1 Το έψιλον της μηχανής ή μονάδα στρογγύλευσης της μηχανής (machine rounding unit) είναι ο μεγαλύτερος αριθμός κινητής υποδιαστολής για τον οποίο ο υπολογιστής δεν μπορεί να διακρίνει τον x+1 από το 1: fl(x + 1) = 1 (14) Ορισμός 1.4.2 Έστω fl(x) ο αριθμός μηχανής που προσεγγίζει τον αριθμό x. Καλούμε σφάλμα στρογγύλευσης (αντ. αποκοπής) το x fl(x) Αν x 0, καλούμε επίσης σχετικό σφάλμα στρογγύλευσης (αντ. αποκοπής) το Παρατήρηση Για το σφάλμα στρογγύλευσης ισχύει x fl(x) x x fl(x) x y, y M (15) Στην περίπτωση σφάλματος αποκοπής το πιο πάνω δεν ισχύει πάντα για όλα τα y. Γιατί; Πρόταση 1.4.3 Για τα σχετικά σφάλματα στρογγύλευσης και αποκοπής ισχύει fl(x) x x 1 { 2 β1 t για στρογγύλευση β 1 t για αποκοπή όπου β η βάση του αριθμητικού συστήματος και t η ακρίβεια. (16) Απόδειξη 7

Θα αποδείξουμε την πρόταση μόνο για την περίπτωση στρογγύλευσης αφού η απόδειξη για αποκοπή είναι παρόμοια. Αν fl(x)=x, η (15) ισχύει αφού μηδενίζεται το αριστερό μέλος. Αν ο x δεν είναι αριθμός μηχανής, τότε αυτός θα βρίσκεται ανάμεσα σε δύο αριθμούς μηχανής Στην περίπτωση στρογγύλευσης x x x, x, x M fl(x) x 1 2 x x fl(x) x x 1 2 x x x (i) Χωρίς βλάβη της γενικότητας θεωρούμε ότι x>0 και x = (. α 1 α 2 α t α t+1 ) β β k Τότε x = (. α 1 α 2 α t ) β β k και x = (. α 1 α 2 α t + β t ) β β k οπότε x x = β k t Έχουμε ακόμα (ii) x = (. α 1 α 2 α t ) β β k (. α 1 )β κ 1 β βk Από τις (i), (ii) και (iii) έχουμε fl(x) x x x β k 1 1 2 β k t β k 1 = 1 2 β1 t (iii) Παρατήρηση Μπορούμε να πούμε ότι για το μοναδιαίο σφάλμα περικοπής (στρογγύλευσης ή αποκοπής) ή μηδέν ή έψιλον της μηχανής ισχύει Άρα, βάσει της Πρ. 1.4.3 ισχύει 1 u = { 2 β1 t για στρογγύλευση β 1 t για αποκοπή (17) fl(x) x u (18) x Πράξεις στον υπολογιστή Στον Μ δεν ισχύουν οι συνήθεις ιδιότητες του R. Για παράδειγμα, δεν ισχύουν η προσεταιριστική και η επιμεριστική ιδιότητα. Παράδειγμα 1.4.3 Θεωρούμε αριθμούς δεκαδικής (β=10) μηχανής με 5 σημαντικά ψηφία (t=5) και με U=-L=10. Θεωρούμε ότι οι αριθμοί μηχανής επιλέγονται με στρογγύλευση. Έτσι για τους x=5891.26 και y=0.0773411 8

έχουμε fl(x)=.58913 10 4 και fl(y)=.77341 10-1 Ενώ το ακριβές άθροισμα των πιο πάνω αριθμών μηχανής είναι το fl(x)+ fl(y)=.5891377341 10 4 στον υπολογιστή αποθηκεύεται ο αντίστοιχος αριθμός μηχανής: fl( fl(x)+ fl(y) )=.58914 10 4 Παράδειγμα 1.4.4 Όπως αναφέραμε πιο πάνω, η πρόσθεση σε μια μηχανή δεν είναι προσεταιριστική. Αυτό πολύ απλά σημαίνει ότι το αποτέλεσμα μπορεί να είναι διαφορετικό αν προσθέσουμε τρεις ή περισσότερους αριθμούς με διαφορετική σειρά. Θεωρούμε ξανά αριθμούς δεκαδικής (β=10) μηχανής με 5 σημαντικά ψηφία (t=5) και με U=-L=10. Θεωρούμε ότι οι αριθμοί μηχανής επιλέγονται με στρογγύλευση. Έτσι για τους έχουμε x=1, y=3 10-6 και z= 4 10-6 fl(x)=.1 10 1, fl(y)=.3 10-5 και fl(z)=.4 10-5 (Παρατηρούμε ότι οι τρεις αριθμοί που επιλέξαμε είναι αριθμοί μηχανής.) Θα βρούμε τα αποτελέσματα που βρίσκει η μηχανή αν προσθέσουμε τους τρεις αριθμούς με δύο διαφορετικούς τρόπους. α) (x+y)+z Η μηχανή υπολογίζει πρώτα το άθροισμα x+y: fl(x)+ fl(y)=.100003 10 1 fl( fl(x)+ fl(y) )=.10000 10 1 Στη συνέχεια η μηχανή προσθέτει το z: fl( fl(x)+ fl(y) ) + fl(z) =.100004 10 1 fl( fl( fl(x)+ fl(y) ) + fl(z) ) =.10000 10 1 β) x+(y+z) Η μηχανή υπολογίζει πρώτα το άθροισμα y+z: fl(y)+ fl(z)=.70000 10-5 fl( fl(y)+ fl(z) )=.70000 10-5 Στη συνέχεια η μηχανή προσθέτει το x: fl(x) + fl( fl(y)+ fl(z) ) =.100007 10 1 fl(fl(z) + fl( fl(y)+ fl(z) ) +) =.10001 10 1 Βλέπουμε λοιπόν ότι δεν ισχύει η προσεταιριστική ιδιότητα. Πάντως, αν η μηχανή περίκοπτε με αποκοπή το αποτέλεσμα στο συγκεκριμένο παράδειγμα θα ήταν το ίδιο 9

1.4.4 Ασκήσεις 1.4.1. Να συμπληρωθεί ο πίνακας Μισή ακρίβεια (half precision) Πρόσημο 1 Εκθέτης, p 5 Κλασματικό μέρος, q 10(+1) Μήκος, l 16 bits (2bytes) L U Δεκαδικό q Δεκαδικό U 1.4.2. Να συμπληρωθεί κατά το δυνατόν ο πίνακας Υπερυπολογιστής Αριθμομηχανή IBM mainframe CRAY HP Βάση, β 2 10 16 Πρόσημο 1 Εκθέτης, p Κλασματικό μέρος, q 48 12 6 Μήκος, l L -16383-499 -64 U 16384 499 63 Δεκαδικό q Δεκαδικό U Σημείωση: Είναι φανερό ότι έχουμε αρκετές αποκλίσεις από το πρότυπο ANSI/IEEE. 1.4.3 Σχεδιάστε στη MATLAB τα γραφήματα των και 7 6 5 4 3 2 y x x x x x x x 7 21 35 35 21 7 1 y ( x 1) για x=0.988:0.0001:1.012 και σχολιάστε τα αποτελέσματά σας. 1.4.4 Απαντήστε στα ερωτήματα Τι κάνει το πρόγραμμα; Πόσες γραμμές αποτελεσμάτων παράγει κάθε πρόγραμμα; Ποιες είναι οι τελευταίες δύο τιμές του x που τυπώνονται; (α) x=1; while 1+x>1 x=x/2 pause(.02) end (β) x=1; while x+x>x x=2*x 7 10

pause(.02) end (γ) x=1; while x+x>x x=x/2 pause(.02) end 1.4.5 Η δυναμοσειρά του sinx είναι η 3 5 7 x x x sin x x 3! 5! 7! Η συνάρτηση της MATLAB χρησιμοποιεί την πιο πάνω σειρά για τον υπολογισμό του ημιτόνου: function s=powersin(x) % Sxolia s=0; t=x; n=1; while s+t ~=s; s=s+t; t=-x.^2/((n+1)*(n+2)).*t; n=n+2; end (α) Τι προκαλεί τον τερματισμό του βρόχου while; (β) Για τα x=π/2, 11π/2, 21π/2 και 31π/2 Πόσο ακριβής είναι ο υπολογισμός; Πόσοι όροι απαιτούνται; Ποιος είναι ο μεγαλύτερος όρος της δυναμοσειράς; 1.4.6 Τροποποιήστε το πιο πάνω πρόγραμμα για τον υπολογισμό του 2 4 6 x x x cos x 1 2! 4! 6! Ποια είναι τα αποτελέσματα για x=0, π/3, π/4 και π/2; 11

1.5 Επιρροή των σφαλμάτων στρογγύλευσης στους υπολογισμούς Έστω οι x, y R και fl(x), fl(y) M οι αντίστοιχοι αριθμοί μηχανής. Θα χρησιμοποιήσουμε το σύμβολο * για οποιαδήποτε από τις συνήθεις πράξεις (πρόσθεση, αφαίρεση, πολλαπλασιασμός και διαίρεση). Υποθέτουμε ακόμα ότι ο αριθμός fl(x) fl(y) παριστάνεται από αριθμό μηχανής (δηλ. δεν έχουμε υπερχείλιση ούτε υπεκχείλιση) και σημειώνουμε ότι στον υπολογιστή η πράξη εκτελείται με ακρίβεια 2t ψηφίων. 12