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

Σχετικά έγγραφα
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Β ΜΕΡΟΣ: ΕΦΑΡΜΟΓΗ ΤΟΥ MATLAB ΣΤΗΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ

Επαναληπτικές μέθοδοι

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

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

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

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

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

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

8 ΕΠΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚΩΝ ΕΞΙΣΩΣΕΩΝ

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

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

Θεώρημα Bolzano. Γεωμετρική Ερμηνεία του θ.bolzano. Θ. Bolzano και ύπαρξη ρίζας

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

Προγραμματισμός I (Θ)

ΘΕΩΡΗΜΑ ROLLE. τέτοιο ώστε. στο οποίο η εφαπτομένη είναι παράλληλη στον άξονα χχ. της γραφικής παράστασης της f x με. Κατηγορίες Ασκήσεων

<Πεδία ορισμού ισότητα πράξεις σύνθεση>

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 3: ΣΥΝΑΡΤΗΣΗ 1-1 ΑΝΤΙΣΤΡΟΦΗ ΣΥΝΑΡΤΗΣΗ

Αξιοποίηση Η/Υ και Πληροφορικής στην Μηχανική

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΑΛΓΕΒΡΑΣ B ΛΥΚΕΙΟΥ

Μελετήστε την θεωρία που αφορά Επαναληπτικές Μεθόδους Επίλυσης Γραμμικών Συστημάτων.

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

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

Εισαγωγή στην Αριθμητική Ανάλυση

METΡΗΣΗ ΤΗΣ ΕΠΙΤΑΧΥΝΣΗΣ ΤΗΣ ΒΑΡΥΤΗΤΑΣ ΜΕ ΤΟ ΑΠΛΟ ΕΚΚΡΕΜΕΣ

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

Προγραμματισμός ΙI (Θ)

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΒΑΣΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. Να βρείτε τις ασύμπτωτες της γραφικής παράστασης της συνάρτησης f με τύπο

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Διάλεξη 04: Παραδείγματα Ανάλυσης

Όλες οι συναρτήσεις στο Matlab εκκινούν με την εξής γραμμή: Παράδειγμα συνάρτησης υπολογισμού της τιμής ενός πολυωνύμου εντός κάποιου διαστήματος

Συστήματα Αναμονής (Queuing Systems)

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

Non Linear Equations (2)

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

Νέο υλικό. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ.

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. 2x 1. είναι Τότε έχουμε: » τον χρησιμοποιούμε κυρίως σε θεωρητικές ασκήσεις.

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

1 η δεκάδα θεµάτων επανάληψης

Προσεγγιστική λύση Γραμμικών Συστημάτων με την μέθοδο Gauss-Seidel. Δημιουργία κώδικα στο Matlab

ΚΕΦΑΛΑΙΟ 3ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 5: ΘΕΩΡΗΜΑ ROLLE [Θεώρημα Rolle του κεφ.2.5 Μέρος Β του σχολικού βιβλίου]. ΠΑΡΑΔΕΙΓΜΑΤΑ

( ) ( ) ( ) ( ) ενώ η εξίσωση της παραβολής είναι η

Επαναληπτικό Διαγώνισμα Άλγεβρας Β Λυκείου. Θέματα. A. Να διατυπώσετε τον ορισμό μιας γνησίως αύξουσας συνάρτησης. (5 μονάδες)

ΜΕΛΕΤΗ ΚΑΙ ΧΑΡΑΞΗ ΓΡΑΦΙΚΗΣ ΠΑΡΑΣΤΑΣΗΣ ΣΥΝΑΡΤΗΣΗΣ

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

Αριθμητική Λύση Μη Γραμμικών Εξισώσεων Η ΜΕΘΟ ΟΣ ΤΗΣ ΙΧΟΤΟΜΙΣΗΣ 01/25/05 ΜΜΕ 203 ΙΑΛ 2 1

1η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 1 (Θεωρία)

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον και Μαθηματικά: Μια αλγοριθμική προσέγγιση του θεωρήματος Bolzano

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

1 Σύντομη επανάληψη βασικών εννοιών

Διδάσκων: Παναγιώτης Ανδρέου

2.6 ΣΥΝΕΠΕΙΕΣ ΤΟΥ ΘΕΩΡΗΜΑΤΟΣ ΜΕΣΗΣ ΤΙΜΗΣ

Αλγόριθµοι και Πολυπλοκότητα

Πληροφορική. Ενότητα 6: Α. Αριθμητικές μέθοδοι επίλυσης προβλημάτων. Β. Προεκτάσεις, Προγραμματισμός χωρίς δομές

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

17. Εισαγωγή σε αριθμητικές μεθόδους για μηχανικούς και αλγορίθμους

ΚΕΦΑΛΑΙΟ 3ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 8: ΜΟΝΟΤΟΝΙΑ ΣΥΝΑΡΤΗΣΗΣ [Ενότητα Μονοτονία Συνάρτησης του κεφ.2.6 Μέρος Β του σχολικού βιβλίου].

1 ο Διαγώνισμα περιόδου στις Συναρτήσεις και τα Όρια

Κεφάλαιο 4: Διαφορικός Λογισμός

Άσκηση εφαρμογής της μεθόδου Newton Raphson

Κεφάλαιο 2. Πραγματικές ρίζες μη γραμμικών συναρτήσεων

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 2: ΜΟΝΟΤΟΝΙΑ ΣΥΝΑΡΤΗΣΗΣ ΑΚΡΟΤΑΤΑ ΣΥΝΑΡΤΗΣΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ.

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

II. Συναρτήσεις. math-gr

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 9 ο Εργαστήριο. Απαλοιφή Gauss με μερική οδήγηση - Παρεμβολη

Transcript:

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

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

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

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

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

Μέθοδος Διχοτόμησης - Αλγόριθμος Τον παραπάνω αλγόριθμο αν τον εφαρμόσουμε σε διάστημα με 3 ή 5 ρίζες (γενικά περιττό αριθμό ριζών) θα βρει μια από όλες τις ρίζες Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 6 / 33

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

Μέθοδος Διχοτόμησης - Υλοποίηση 12 end 13 if f(a)*f(x)>0 14 a=x; 15 else 16 b=x; 17 end 18 i = i + 1; 19 end Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 8 / 33

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

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

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

Μέθοδος Διχοτόμησης - Υλοποίηση 27 out=[k', a(k)', b(k)', x(k)', f(x(k))']; Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 12 / 33

Μέθοδος Διχοτόμησης - Παράδειγμα 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 13 / 33

Μέθοδος Διχοτόμησης - Παράδειγμα 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 14 / 33

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

Μέθοδος Διχοτόμησης - Παράδειγμα 1 Καλέστε την συνάρτηση με ακρίβεια 8 δεκαδικών ψηφίων Καλέστε την συνάρτηση με διάστημα [ 30, 30] Καλέστε την συνάρτηση με διάστημα [10, 30] Τι παρατηρείτε για τις παραπάνω κλήσεις της συνάρτησης bisect; Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 16 / 33

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

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

Μέθοδος Διχοτόμησης - Παράδειγμα 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 19 / 33

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

Πλήθος Επαναλήψεων - Ακρίβεια Για υπολογίσουμε το πλήθος των επαναλήψεων (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 21 / 33

Πλήθος Επαναλήψεων - Ακρίβεια Ενώ, για υπολογίσουμε την ακρίβεια των δεκαδικών ψηφίων (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 22 / 33

Πλήθος Επαναλήψεων - Παράδειγμα Να βρεθεί το πλήθος των επαναλήψεων που θα εκτελέσει η μέθοδος Διχοτόμησης στο διάστημα [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 23 / 33

Ακρίβεια - Παράδειγμα Να βρεθεί η ακρίβεια των δεκαδικών ψηφίων της μεθόδου Διχοτόμησης αν εκτελεστούν 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 24 / 33

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

Άσκηση - Λύση Να βρεθεί η ρίζα της συνάρτησης f(x) = e x 5x + 1 με τη μέθοδο Διχοτόμησης, στο διάστημα [0, 4] με ακρίβεια 6 δεκαδικών ψηφίων και με μέγιστο αριθμό επαναλήψεων 50 Απάντηση: Στο Command Window έχουμε >> f=inline('exp(x)+5*x-10') f = Inline function: f(x) = exp(x)+5*x-10 >> out=bisect(f, 0, 4, 1/2*10^-6, 50) out = 1 0 4 2 738905609893065 2 0 2 1-228171817154095 3 1 2 15 198168907033806 4 1 15 125-0259657042538159 5 125 15 1375 0830076722920577 6 125 1375 13125 0277950737941104 7 125 13125 128125 000738833627217517 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 26 / 33

Άσκηση - Λύση 8 125 128125 1265625-0126567138776458 9 1265625 128125 12734375-00596984445940976 10 12734375 128125 127734375-00261824215879454 11 127734375 128125 1279296875-000940389788415175 12 1279296875 128125 12802734375-000100949628660274 13 12802734375 128125 128076171875 000318899091319835 14 12802734375 128076171875 1280517578125 000108964006958701 15 12802734375 1280517578125 12803955078125 4004508383737e-005 16 12802734375 12803955078125 128033447265625-0000484732302886925 17 128033447265625 12803955078125 128036499023438-0000222345284953462 18 128036499023438 12803955078125 128038024902344-911505194203244e-005 19 128038024902344 12803955078125 128038787841797-25552822508601e-005 20 128038787841797 12803955078125 128039169311523 724610448443741e-006 21 128038787841797 128039169311523 12803897857666-915336555706858e-006 22 12803897857666 128039169311523 128039073944092-953632170563878e-007 23 128039073944092 128039169311523 128039121627808 314623574837469e-006 Η λύση είναι το x 23 = 128039121627808 Δρ Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 5) Σεπτέμβριος 2015 27 / 33

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

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

Άσκηση - Λύση Να βρεθεί η ακρίβεια σε δεκαδικά ψηφία που έχουν οι τιμές x 10 και x 20 Απάντηση: Στο Command Window έχουμε για x 10 και 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 30 / 33

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

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

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