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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

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

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

Μαθηματικά. Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

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

Θεωρία Πιθανοτήτων & Στατιστική

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Στατιστική Επιχειρήσεων

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Μαθηματικά Ενότητα 11: Θεώρημα Μέσης Τιμής Μονοτονία Συνάρτησης

Μοντελοποίηση Λογικών Κυκλωμάτων

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 3: Αποκατάσταση Εικόνας.

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Αριθμητική Ανάλυση. Ενότητα 1: Εισαγωγή Βασικές Έννοιες. Φραγκίσκος Κουτελιέρης Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Θεωρία Πιθανοτήτων & Στατιστική

Διαδικαστικός Προγραμματισμός

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

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

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Μαθηματικά. Ενότητα 12: Ακρότατα Συνάρτησης Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Επιχειρησιακή Έρευνα

Ιόνιο Πανεπιστήμιο - Τμήμα Πληροφορικής

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

Μαθηματικά. Ενότητα 13: Κυρτότητα Συνάρτησης Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Υπολογιστικά & Διακριτά Μαθηματικά

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Λογισμός ΙΙ. Χρήστος Θ. Αναστασίου Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΣΥΝΑΡΤΗΣΕΙΣ ΠΟΛΛΩΝ ΜΕΤΑΒΛΗΤΩΝ- ΜΕΘΟΔΟΣ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Υπολογιστικά & Διακριτά Μαθηματικά

9 η ΕΝΟΤΗΤΑ Συμβολικές πράξεις, ολοκληρώματα, παράγωγοι, διαφορικές εξισώσεις

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΤΕΧΝΟΛΟΓΙΑ, ΚΑΙΝΟΤΟΜΙΑ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ 9 Ο εξάμηνο Χημικών Μηχανικών

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Λογισμός 3 Ασκήσεις. Μιχάλης Μαριάς Τμήμα Α.Π.Θ.

Υπολογιστικά & Διακριτά Μαθηματικά

Μαθηματικά και Φυσική με Υπολογιστές

Λογική Δημήτρης Πλεξουσάκης Ασκήσεις στον Κατηγορηματικό Λογισμό Τμήμα Επιστήμης Υπολογιστών

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Transcript:

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς ΒΙΟΜΗΧΑΝΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Κεντρικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους ΒΙΟΜΗΧΑΝΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 3

Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 5) Δρ Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 1 / 29

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Σκοπός του εργαστηρίου είναι η γνωριμία του φοιτητή με την έννοια της αριθμητικής επίλυσης εξισώσεων και ειδικότερα με την μέθοδο Διχοτόμησης, η οποία υλοποιείται προγραμματιστικά σε Matlab Ειδικότερα, ο φοιτητής θα ασχοληθεί με τα παρακάτω αντικείμενα 1 Αριθμητική Επίλυση Εξισώσεων Μέθοδος Διχοτόμησης Μέθοδος Διχοτόμησης - Αλγόριθμος Μέθοδος Διχοτόμησης - Υλοποίηση Μέθοδος Διχοτόμησης - Βελτίωση προγράμματος Μέθοδος Διχοτόμησης - Παραδείγματα Πλήθος Επαναλήψεων - Ακρίβεια Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 2 / 29

Μέθοδος Διχοτόμησης Υπολογισμός μιας ρίζας της εξίσωσης f(x) = 0 στο διάστημα [a, b] οπού ισχύει f(a) f(b) < 0 Είσοδος Η συνάρτηση f Το διάστημα [a, b] Η ακρίβεια σε δεκαδικά ψηφία (tol) Ο μέγιστος αριθμός επαναλήψεων Έξοδος Η προσεγγιστική ρίζα Μήνυμα αποτυχίας Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 3 / 29

Μέθοδος Διχοτόμησης - Αλγόριθμος ΕΙΣΟΔΟΣ: f(x), a, b, tol, n ΒΗΜΑ 1 Θέσε i = 1 ΒΗΜΑ 2 Όταν i <= n εκτέλεσε τα βήματα 3 6 ΒΗΜΑ 3 Θέσε x = a + b 2 ΒΗΜΑ 4 Αν f(x) = 0 ή b a < tol τότε 2 ΕΞΟΔΟΣ: το x είναι η λύση, τερμάτισε ΒΗΜΑ 5 Αν f(a) f(x) > 0 τότε Θέσε a = x Διαφορετικά Θέσε b = x ΒΗΜΑ 6 Θέσε i = i + 1 ΒΗΜΑ 7 ΕΞΟΔΟΣ: Η μέθοδος εξάντλησε όλες τις επαναλήψεις, τερμάτισε Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 4 / 29

Μέθοδος Διχοτόμησης - Υλοποίηση Υλοποίηση της μεθόδου Διχοτόμησης σε συνάρτηση Matlab με while και break 1 function bisection(f,a,b,tol,n) 2 i = 1; 3 while i<=n 4 x=(a+b)/2; 5 if f(x)==0 (b-a)/2<tol 6 disp('the solution found') 7 disp(x) 8 break; 9 end 10 if f(a)*f(x)>0 11 a=x; 12 else Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 5 / 29

Μέθοδος Διχοτόμησης - Υλοποίηση 13 b=x; 14 end 15 i = i + 1; 16 end Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 6 / 29

Μέθοδος Διχοτόμησης - Βελτίωση προγράμματος Είσοδος παραμέτρων από τον χρήστη - Δημιουργία συνάρτησης function out=bisect(f, a, b, tol, n) χρήση μεταβλητών - πινάκων Η συνάρτηση f(x) Το διάστημα [a, b] Η ακρίβεια σε δεκαδικά ψηφία (tol) Ο μέγιστος αριθμός επαναλήψεων (n) Περισσότερες πληροφορίες στην έξοδο Αριθμό βημάτων Νέο διάστημα σε κάθε βήμα Τιμή της ρίζας και της συνάρτησης f(x) σε κάθε βήμα Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 7 / 29

Μέθοδος Διχοτόμησης - Υλοποίηση Υλοποίηση της μεθόδου Διχοτόμησης σε συνάρτηση Matlab 1 function out=bisect(f, a, b, tol, n) 2 a(1)=a; 3 b(1)=b; 4 i=1; 5 while i<=n 6 x(i)=(a(i)+b(i))/2; 7 if f(x(i))==0 (b(i)-a(i))/2<tol 8 break; 9 end 10 if f(a(i))*f(x(i))>0 11 a(i+1)=x(i); 12 b(i+1)=b(i); Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 8 / 29

Μέθοδος Διχοτόμησης - Υλοποίηση 13 else 14 a(i+1)=a(i); 15 b(i+1)=x(i); 16 end 17 i=i+1; 18 end 19 if i>n 20 k=1:n; 21 else 22 k=1:i; 23 end 24 out=[k', a(k)', b(k)', x(k)', f(x(k))']; Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 9 / 29

Μέθοδος Διχοτόμησης - Παράδειγμα 1 Να βρεθεί η ρίζα της συνάρτησης f(x) = x 3 2x 5 με τη μέθοδο Διχοτόμησης, στο διάστημα [1, 3] με ακρίβεια 4 δεκαδικών ψηφίων και με μέγιστο αριθμό επαναλήψεων 50 Σε Matlab θα έχουμε ορίζουμε την συνάρτηση f(x) f=inline('x^3-2*x-5') καλούμε την συνάρτηση bisect με τα κατάλληλα ορίσματα out=bisect(f, 1, 3, 1/2*10^-4, 50) Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 10 / 29

Μέθοδος Διχοτόμησης - Παράδειγμα 1 >> f=inline('x^3-2*x-5') f = Inline function: f(x) = x^3-2*x-5 >> out=bisect(f, 1, 3, 1/2*10^-4, 50) out = 1 1 3 2-1 2 2 3 25 5625 3 2 25 225 1890625 4 2 225 2125 0345703125 5 2 2125 20625-0351318359375 6 20625 2125 209375-0008941650390625 7 209375 2125 2109375 0166835784912109 8 209375 2109375 21015625 00785622596740723 9 209375 21015625 209765625 00347142815589905 10 209375 209765625 2095703125 00128623321652412 11 209375 2095703125 20947265625 000195434782654047 12 209375 20947265625 209423828125-000349514919798821 13 209423828125 20947265625 2094482421875-0000770775208366103 14 2094482421875 20947265625 20946044921875 0000591692672969657 15 2094482421875 20946044921875 209454345703125-895646760454838e-005 16 209454345703125 20946044921875 209457397460938 0000251058146290006 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 11 / 29

Μέθοδος Διχοτόμησης - Παράδειγμα 1 Από τον πίνακα out τον οποίο επιστρέφει η συνάρτηση bisect παρατηρούμε τα εξής: Για τον υπολογισμό της ρίζας εκτελέστηκαν 16 επαναλήψεις (πρώτη στήλη) Το αριστερό άκρο του διαστήματος a 16 = 209454345703125 (δεύτερη στήλη) Το δεξιό άκρο του διαστήματος b 16 = 20946044921875 (τρίτη στήλη) Η προσεγγιστική τιμή της ρίζας είναι x 16 = 209457397460938 (τέταρτη στήλη) Η τιμή της συνάρτησης είναι f(x 16 ) = 0000251058146290006 (πέμπτη στήλη) Επομένως, η λύση στο πρόβλημα είναι x 16 = 209457397460938 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 12 / 29

Μέθοδος Διχοτόμησης - Παράδειγμα 2 Να βρεθεί η ρίζα της συνάρτησης f(x) = x ln( x + 1) 2 με τη μέθοδο Διχοτόμησης, με ακρίβεια 4 δεκαδικών ψηφίων και με μέγιστο αριθμό επαναλήψεων 50 Για να βρούμε τη ρίζα της συνάρτησης θα πρέπει πρώτα να βρούμε ένα κατάλληλο διάστημα με την βοήθεια της γραφικής παράστασης της συνάρτησης Σχεδιάζουμε την την γραφική παράσταση της συνάρτησης στο διάστημα [ 10, 10] και επιλέγουμε το κατάλληλο διάστημα¹ Από την γραφική παράσταση της συνάρτησης επιλέγουμε το διάστημα [3, 4] ¹Στα πλαίσια του εργαστηρίου κατάλληλο διάστημα θα θεωρούμε το διάστημα [a, a + 1] με a Z Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 13 / 29

Μέθοδος Διχοτόμησης - Παράδειγμα 2 Σχήμα: Γραφική παράσταση της συνάρτησης f(x) = x ln( x + 1) 2 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 14 / 29

Μέθοδος Διχοτόμησης - Παράδειγμα 2 Σε Matlab θα έχουμε ορίζουμε την συνάρτηση f(x) f=inline('x-log(abs(x)+1)-2') σχεδιάζουμε την συνάρτηση f(x) και τον άξονα x x x=-10:0001:10; plot(x, f(x), x, zeros(1,length(x))) καλούμε την συνάρτηση bisect με τα κατάλληλα ορίσματα out=bisect(f, 3, 4, 1/2*10^-4, 50) η λύση είναι x 15 = 350521850585938 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 15 / 29

Πλήθος Επαναλήψεων - Ακρίβεια Το πλήθος των επαναλήψεων (n) της μεθόδου Διχοτόμησης συνδέεται με την ακρίβεια της λύσης σε δεκαδικά ψηφία (k) με τον τύπο b a 2 n < tol = b a 2 n < 1 2 10 k Επομένως, μπορούμε να βρούμε είτε το n γνωρίζοντας το k, είτε το k γνωρίζοντας το n Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 16 / 29

Πλήθος Επαναλήψεων - Ακρίβεια Για υπολογίσουμε το πλήθος των επαναλήψεων (n) της μεθόδου Διχοτόμησης με ακρίβεια k δεκαδικών ψηφίων στο διάστημα [a, b], λύνουμε ως προς n, επομένως έχουμε b a 2 n < 1 2 10 k = 2n b a > 2 10k = 2 n > (b a) 2 10 k = n > log 2 ( (b a) 2 10 k ) Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 17 / 29

Πλήθος Επαναλήψεων - Ακρίβεια Ενώ, για υπολογίσουμε την ακρίβεια των δεκαδικών ψηφίων (k) της μεθόδου Διχοτόμησης αν εκτελεστούν n επαναλήψεις στο διάστημα [a, b], λύνουμε ως προς k, επομένως έχουμε b a 2 n < 1 2 10 k = 2 10 k < 2n b a >= 10 k < 2 n 2 (b a) = ( ) 2 n k < log 2 (b a) Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 18 / 29

Πλήθος Επαναλήψεων - Παράδειγμα Να βρεθεί το πλήθος των επαναλήψεων που θα εκτελέσει η μέθοδος Διχοτόμησης στο διάστημα [1, 3] με ακρίβεια 4 δεκαδικών ψηφίων Σε Matlab θα έχουμε >> log2((3-1)*2*10^4) ans = 152877123795494 επειδή n > log 2 ( (b a) 2 10 k ) = log 2 ((3 1) 2 10 4 ) = 152877123795494 θα έχουμε n = 16 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 19 / 29

Ακρίβεια - Παράδειγμα Να βρεθεί η ακρίβεια των δεκαδικών ψηφίων της μεθόδου Διχοτόμησης αν εκτελεστούν 10 επαναλήψεις στο διάστημα [1, 3] Σε Matlab θα έχουμε >> log10(2^10/(2*(3-1))) ans = ( επειδή k < log θα έχουμε k = 2 240823996531185 2 n 2 (b a) ) ( = log 2 10 2 (3 1) ) = 240823996531185 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 20 / 29

Άσκηση Να βρεθεί η ρίζα της συνάρτησης f(x) = e x 5x + 1 με τη μέθοδο Διχοτόμησης, στο διάστημα [0, 4] με ακρίβεια 6 δεκαδικών ψηφίων και με μέγιστο αριθμό επαναλήψεων 50 Να βρεθεί το πλήθος των επαναλήψεων που θα εκτελέσει η μέθοδος Διχοτόμησης στο διάστημα [0, 4] με ακρίβεια 10 δεκαδικών ψηφίων Να βρεθεί η ακρίβεια των δεκαδικών ψηφίων της μεθόδου Διχοτόμησης αν εκτελεστούν 20 επαναλήψεις στο διάστημα [0, 4] Να βρεθεί η ακρίβεια σε δεκαδικά ψηφία που έχουν οι τιμές x 10 και x 20 Να βρεθεί η ακρίβεια σε σημαντικά ψηφία που έχουν οι τιμές x 10 και x 20 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 21 / 29

Άσκηση - Λύση Να βρεθεί η ρίζα της συνάρτησης f(x) = e x 5x + 1 με τη μέθοδο Διχοτόμησης, στο διάστημα [0, 4] με ακρίβεια 6 δεκαδικών ψηφίων και με μέγιστο αριθμό επαναλήψεων 50 Απάντηση: Στο Command Window έχουμε >> f=inline('exp(x)-5*x+1') f = Inline function: f(x) = exp(x)-5*x+1 >> out=bisect(f,0,4,1/2*10^-6,50) out = 1 0 4 2-161094390106935 2 0 2 1-128171817154095 3 0 1 05 0148721270700128 4 05 1 075-0632999983387325 5 05 075 0625-0256754042567778 6 05 0625 05625-00574453430397015 7 05 05625 053125 00448073018484008 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 22 / 29

Άσκηση - Λύση 8 053125 05625 0546875-000652994347283675 9 053125 0546875 05390625 00190863596205357 10 05390625 0546875 054296875 000626507703887991 11 054296875 0546875 0544921875-0000135722390487647 12 054296875 0544921875 05439453125 000306385583364355 13 05439453125 0544921875 054443359375 000146386124864795 14 054443359375 0544921875 0544677734375 0000664018048305737 15 0544677734375 0544921875 05447998046875 0000264134982147279 16 05447998046875 0544921875 054486083984375 642030839435037e-005 17 054486083984375 0544921875 0544891357421875-357604562681857e-005 18 054486083984375 0544891357421875 0544876098632813 142211130915726e-005 19 0544876098632813 0544891357421875 0544883728027344-107697217752722e-005 20 0544876098632813 0544883728027344 0544879913330078 172568311151977e-006 21 0544879913330078 0544883728027344 0544881820678711-452202246847833e-006 22 0544879913330078 0544881820678711 0544880867004395-139817046251878e-006 23 0544879913330078 0544880867004395 0544880390167236 163756128435111e-007 Η λύση είναι το x 23 = 0544880390167236 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 23 / 29

Άσκηση - Λύση Να βρεθεί το πλήθος των επαναλήψεων που θα εκτελέσει η μέθοδος Διχοτόμησης στο διάστημα [0, 4] με ακρίβεια 10 δεκαδικών ψηφίων Απάντηση: Στο Command Window έχουμε >> log2((4-0)*2*10^10) ans = 362192809488736 Άρα, n = 37 επαναλήψεις Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 24 / 29

Άσκηση - Λύση Να βρεθεί η ακρίβεια των δεκαδικών ψηφίων της μεθόδου Διχοτόμησης αν εκτελεστούν 20 επαναλήψεις στο διάστημα [0, 4] Απάντηση: Στο Command Window έχουμε >> log10(2^20/(2*(4-0))) ans = 152877123795494 Άρα, k = 15 η ακρίβεια των δεκαδικών ψηφίων Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 25 / 29

Άσκηση - Λύση Να βρεθεί η ακρίβεια σε δεκαδικά ψηφία που έχουν οι τιμές x 10 και x 20 Απάντηση: Στο Command Window έχουμε για x 15 και x 20 >> -log10(2*abs(out(10,4)-out(9,4))) ans = 210720996964787 >> -log10(2*abs(out(20,4)-out(19,4))) ans = 511750992628768 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 26 / 29

Άσκηση - Λύση Άρα, 2 και 5 δεκαδικά ψηφία αντίστοιχα Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 27 / 29

Άσκηση - Λύση Να βρεθεί η ακρίβεια σε σημαντικά ψηφία που έχουν οι τιμές x 10 και x 20 Απάντηση: Στο Command Window έχουμε για x 15 και x 20 >> -log10(2*abs((out(10,4)-out(9,4))/out(9,4)))+1 ans = 283884909073726 >> -log10(2*abs((out(20,4)-out(19,4))/out(19,4)))+1 ans = 585381376496174 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 28 / 29

Άσκηση - Λύση Άρα, 2 και 5 σημαντικά ψηφία αντίστοιχα Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 29 / 29