ΜΕΜ251 Αριθμητική Ανάλυση Διάλεξη 02, 09 Φεβρουαρίου 2018 Μιχάλης Πλεξουσάκης Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών
Περιεχόμενα 1. Μη γραμμικές εξισώσεις 2. Η μέθοδος της διχοτόμησης 1
Μη γραμμικές εξισώσεις
Μη γραμμικές εξισώσεις Παράδειγμα. Ένα κανόνι εκτοξεύει βλήματα με ταχύτητα V 0 και ανύψωση θ. Αν y(t) είναι το ύψος του βλήματος τη χρονική στιγμή t τότε y (t) = g, y(0) = 0, y (0) = V 0 sin θ. Ολοκληρώνοντας την εξίσωση y (t) = g δύο φορές εύκολα βλέπουμε ότι y(t) = tv 0 sin θ 1 2 gt2, t 0. Το βλήμα θα χτυπήσει στο έδαφος τη χρονική στιγμή T = 2V 0 sin θ g έχοντας καλύψει απόσταση TV 0 cos θ. 2
Μη γραμμικές εξισώσεις Για να χτυπήσει ένα στόχο σε απόσταση d η ανύψωση θ πρέπει να ικανοποιεί την εξίσωση 2V 2 0 cos θ sin θ = d, g ή, ισοδύναμα, f(θ) 2V2 0 cos θ sin θ d = 0 g 3
Μη γραμμικές εξισώσεις Η εξίσωση f(θ) = 0 παρουσιάζει μερικά από τα τυπικά χαρακτηριστικά των μη γραμμικών εξισώσεων: Αποτελεί εξιδανίκευση, π.χ. δεν λάβαμε υπ οψιν την αντίσταση του αέρα Η εξίσωση μπορεί να μην έχει λύση. Αφού η συνάρτηση cos θ sin θ λαμβάνει μέγιστο ίσο με 1/2 για θ = π 4, η εξίσωση f(θ) = 0 δεν θα έχει λύση αν d > V2 0 g Αν υπάρχει λύση, τότε αυτή μπορεί να μην είναι μοναδική. Στο παράδειγμα μας, αν η εξίσωση f(θ) = 0 έχει μια λύση τότε έχει άπειρες λύσεις (επειδή οι συναρτήσεις sin θ και cos θ είναι περιοδικές) που αντιστοιχούν σε πλήρεις περιστροφές της κάννης του όπλου 4
Μη γραμμικές εξισώσεις Αν d < V 2 0 /g και θ είναι λύση, τότε π 2 θ είναι επίσης λύση. Στο παράδειγμά μας, η μία λύση ίσως είναι προτιμότερη από την άλλη 5
Μη γραμμικές εξισώσεις Η συνάρτηση f(θ) έχει παράγωγο για κάθε θ. Θα μπορούσαμε να χρησιμοποιήσουμε την μέθοδο του Newton για να βρούμε μια λύση της f(θ) = 0. Μια και 2 cos θ sin θ = sin 2θ μπορούμε να λύσουμε την εξίσωση f(θ) = 0 ακριβώς. Αυτό είναι σπάνιο αλλά πάντα πρέπει να εξαντλούμε τις πιθανές απλοποιήσεις του προβλήματος πριν καταφύγουμε στην αριθμητική λύση του. 6
Η μέθοδος της διχοτόμησης
Η μέθοδος της διχοτόμησης Θεώρημα. Έστω f συνεχής συνάρτηση στο διάστημα [a, b] και τέτοια ώστε f(a)f(b) 0. Τότε υπάρχει ξ [a, b] τέτοιο ώστε f(ξ) = 0. Απόδειξη. Αν f(a) = 0 ή f(b) = 0 τότε ξ = a ή ξ = b, αντίστοιχα. Αν f(a)f(b) < 0 τότε από το θεώρημα Ενδιάμεσης Τιμής υπάρχει ξ (a, b) τέτοιο ώστε f(ξ) = 0. Παρατήρηση 1. Το αντίστροφο δεν ισχύει. Για παράδειγμα, η συνάρτηση f(x) = x 2 1 έχει δύο ρίζες στο διάστημα [ 2, 2] αν και f( 2)f(2) = 9 > 0. Παρατήρηση 2. Η εύρεση ενός διαστήματος [a, b] με f(a)f(b) < 0 δεν είναι πάντα εύκολη... 7
Η μέθοδος της διχοτόμησης f(x) = 1 2 1 1 + M x 1.05, M 1 Οι δύο ρίζες της f(x) = 0, δηλαδή οι x 1,2 = 1.05 ± 1/M διαφέρουν κατά 2/M και ο εντοπισμός ενός διαστήματος που περιέχει τη μια από τις δύο ρίζες είναι υπολογιστικά δύσκολος. 8
Η μέθοδος της διχοτόμησης - Αλγόριθμος Έστω f C[a, b] τέτοια ώστε f(a)f(b) < 0. Τότε η f μηδενίζεται σε τουλάχιστον ένα σημείο του [a, b]. 1. Έστω c = (a + b)/2 το μέσον του [a, b]. Αν f(c) = 0, τότε to c είναι ρίζα της εξίσωσης f(x) = 0. 2. Διαφορετικά, αν f(a)f(c) < 0, τότε η f μηδενίζεται σε κάποιο σημείο του [a, c]. 3. Διαφορετικά, αν f(b)f(c) < 0, τότε η f μηδενίζεται σε κάποιο σημείο του [c, b]. 4. Επαναλαμβάνουμε τη διαδικασία για το διάστημα [a, c] ή το διάστημα [c, b]. 9
Η μέθοδος της διχοτόμησης - Αλγόριθμος Σε κάθε βήμα του αλγορίθμου εγκλωβίζουμε τη ρίζα της εξίσωσης σ ένα διάστημα που περιέχεται στο προγούμενό του και έχει το μισό μήκος. Ο αλγόριθμος είτε υπολογίζει μια ρίζα της f(x) = 0, αν τύχει να είναι το μέσον κάποιου διαστήματος που διχοτομείται, είτε εγκλωβίζει τη ρίζα σε ένα διάστημα του οποίου το μήκος είναι όσο μικρό θέλουμε. Ερώτηση. Αν η εξίσωση έχει περισσότερες από μια ρίζες στο [a, b], ποιά από αυτές προσεγγίζει η μέθοδος της διχοτόμησης; 10
Η μέθοδος της διχοτόμησης - Αλγόριθμος Για την υλοποίηση της μεθόδου της διχοτόμησης χρειαζόματε ένα διάστημα [a, b] για το οποίο ισχύει f(a)f(b) < 0 και ένα μέγιστο σφάλμα ϵ για τη προσέγγισης μιας ρίζας της εξίσωσης f(x) = 0. Κατά την έξοδό του ο αλγόριθμος έχει υπολογίσει είτε έναν αριθμό c που είναι ρίζα της εξίσωσης f(x) = 0 είτε ένα τελικό διάστημα [a, b] τέτοιο ώστε f(a)f(b) < 0 και (b a)/2 ϵ. Στη τελευταία περίπτωση υπάρχει ρίζα x [a, b], η προσέγγιση (a + b)/2 της οποίας ικανοποιεί x a + b 2 b a ϵ. 2 11
Η μέθοδος της διχοτόμησης - Αλγόριθμος και Υλοποίηση Έστω f(x) = x 3 x 1 και [a, b] = [1, 2]. Ο αλγόριθμος της διχοτόμησης δίνει τα αποτελέσματα def f(x): return x**3 - x - 1 k c a = 1; b = 2; tol = 0.0001 d = b - a k = 0 while True: d = d / 2 if d < tol: break c = a + d if f(a)*f(c) < 0: b = c else: a = c k = k + 1 0 1.500000 1 1.250000 2 1.375000 3 1.312500...... 10 1.324707 11 1.324951 12 1.324829 13 1.324768 12
Η μέθοδος της διχοτόμησης - Αλγόριθμος και Υλοποίηση Πρόταση. Έστω f C[a, b] με f(a)f(b) < 0 και (x n ) n 1 η ακολουθία προσεγγίσεων που παράγει η μέθοδος της διχοτόμησης. Τότε, είτε x N = x για κάποιο N, είτε x n x, n, όπου x (a, b) ρίζα της εξίσωσης f(x) = 0. Επιπλέον, x x n b a 2 n, n = 1, 2,... Η μέθοδος της διχοτόμησης συγκλίνει πάντα (υπό τις παραπάνω προϋποθέσεις) Γνωρίζουμε εκ των προτέρων των αριθμό των βημάτων για δεδομένη ακρίβεια Συγκλίνει πολύ αργά σε σχέση με άλλες μεθόδους 13