220 likes | 344 Views
20 -27 Νοέμβρη 2002. Περιεχόμενα. Γιατί Λύνουμε Εξισώσεις ; Ελαχιστοποίηση & Μεγιστοποίηση Συμβολική Επίλυση Εξισώσεων Αριθμητική Επίλυση Εξισώσεων Μέθοδοι Αριθμητικής Επίλυσης Εύρεση Ριζών με την Μέθοδο της Διχοτόμου Ο Αλγόριθμος της Διχοτόμου στην Maple
E N D
Περιεχόμενα • Γιατί Λύνουμε Εξισώσεις; • Ελαχιστοποίηση & Μεγιστοποίηση • Συμβολική Επίλυση Εξισώσεων • Αριθμητική Επίλυση Εξισώσεων • Μέθοδοι Αριθμητικής Επίλυσης • Εύρεση Ριζών με την Μέθοδο της Διχοτόμου • Ο Αλγόριθμος της Διχοτόμου στην Maple • Εύρεση Ριζών Μέσω ενός Μοντέλου της Συνάρτησης • Μοντέλο 1ου Βαθμού – Επαναλήψεις N-R • N-R στην Maple • Πότε Συγκλίνει N-R; • Η Μέθοδος της Χορδής • Η Μέθοδος της Χορδής-Περιορισμού • Άλλες Μέθοδοι • Τρόποι Επιλογής Μεθόδου • Ρυθμός Σύγκλισης της Χορδής • Ρυθμός Σύγκλισης και Ακρίβεια • Πλεονεκτήματα Υπερ-Γραμμικής Σύγκλισης
Εισαγωγή Θα εξετάσουμε τρόπους επίλυση εξισώσεων με χρήση υπολογιστή – συμβολικά ή αριθμητικά. Υπάρχουν πολλά είδη εξισώσεων: • Εξισώσεις μιας μεταβλητής, με μοναδική ή όχι λύση. • Συστήματα εξισώσεων πολλών μεταβλητών. • Εξισώσεις με ακέραιες ή μιγαδικές μεταβλητές. • Διαφορικές εξισώσεις, εξισώσεις με ολοκληρώματα, ... Θα επικεντρωθούμε σε εξισώσεις μια πραγματικής μεταβλητής. Θα γράφουμε τις εξισώσεις μας αυτές στην μορφή f(x)=0, οπότε θα μπορούμε να δούμε το πρόβλημά μας σαν πρόβλημα εύρεσης ριζών.
Γιατί Λύνουμε Εξισώσεις; Η επίλυση εξισώσεων είναι συχνά απαραίτητη τόσο για θεωρητικές όσο και για πρακτικές εφαρμογές. Μερικά παραδείγματα: • Θεωρήστε την κίνηση του βραχίονα ενός ρομπότ, με γωνίες άρθρωσης θ και φ τις οποίες μπορούμε να ελέγξουμε. Τα άκρα του βραχίονα είναι στα σημεία x=a cos(θ)+b cos(θ+φ) υ =a sin(θ)+b sin(θ+φ) Για να θέσουμε τον βραχίονα σε κάποια θέση (x,y) πρέπει να λύσουμε τις εξισώσεις αυτές ως προς θ και φ. • Έστω ότιέχουμε ένα μοντέλο του πώς θα αλλάξει ο πληθυσμός και η διαθέσιμη τροφή του πλανήτη στο μέλλον. Τότε μπορούμε να καθορίσουμε πότε η παραγωγή τροφής θα υπολείπεται της ζήτησης λύνοντας απλά μια εξίσωση.
Ελαχιστοποίηση & Μεγιστοποίηση Προβλήματα εύρεσης ακρότατων μιας ομαλής συνάρτησης μπορούν να επιλυθούν υπολογίζοντας τις ρίζες της παραγώγου της. Για να βρούμε το x που μεγιστοποιεί την f(x), βρίσκουμε τις λύσεις της f’(x)=0, από τις οποίες επιλέγουμε αυτές που δίνουν f’’(x)<0. Αυτά είναι τα τοπικά μέγιστα. Προβλήματα εύρεσης ακρότατων πηγάζουν από πολλές εφαρμογές: • Μια εταιρεία που έχει ένα μοντέλο για τους πελάτες, τους ανταγωνιστές και το κόστος παραγωγής θα μπορούσε να λύσει για την βέλτιστη τιμή (μεγιστοποιεί το κέρδος) του προϊόντος.
Συμβολική Επίλυση Εξισώσεων Μερικές (λίγες) φορές μπορούμε να λύσουμε εξισώσεις συμβολικά με το χέρι, ή με ένα σύστημα σαν την Maple. > solve(x^2+x1=0,x); 1/2 1/2 1/2 + 1/2 5 , 1/2 1/2 5 > solve(sin(x+1)=1,x); 1/2 Pi 1 > solve({x+2*y=1,y+1=x^2},{x,y}); {x = 1, y = 0}, {y = 5/4, x = 3/2} Αλλά αυτό δεν συμβαίνει πάντα > solve(x^3+sin(1+x)=0,x); Η σιωπή της Maple σημαίνει ότι δεν μπόρεσε να βρει λύσει παρόλο που υπάρχει!
Αριθμητική Επίλυση Εξισώσεων Όταν αποτύχουμε στην συμβολική επίλυση, μπορούμε να χρησιμοποιήσουμε μια μέθοδο που θα μας δώσει μια αριθμητική απάντηση. Η Maple το κάνει αυτό με την fsolve: > fsolve(x^3+sin(1+x)=0,x); .6800575892 Εδώ, η αριθμητική λύση χρησιμοποιείται για την εύρεση του μεγίστου > y:=x^4+10*x^2+20*x; 4 2 y := x + 10 x + 20 x > fsolve(diff(y,x)=0,x); 2.627365085 > subs(x='',diff(y,x$2)); 62.83656748 Μια και η δεύτερη παράγωγος είναι αρνητική, το σημείο στο οποίο η πρώτη παράγωγος είναι μηδέν είμαι μέγιστο.
Μέθοδοι Αριθμητικής Επίλυσης Υπάρχουν πολλές αριθμητικές μέθοδοι επίλυσης. Θα εξετάσουμε τις εξής: • Μέθοδος Διχοτόμου – Μια απλή και εύρωστη, αλλά απελπιστικά αργή μέθοδος. • Επαναλήψεις Newton-Raphson (N-R)– Μια πολύ πιο γρήγορη μέθοδος, όταν δουλεύει. • Μέθοδος της Χορδής – Μια πιο εύρωστη, από την N-R, μέθοδος αλλά όχι τόσο γρήγορη. Καμία από τις παραπάνω μεθόδους δεν είναι τέλεια. Γενικά είναι πολύ δύσκολο να εγγυηθούμε ότι κάποια αριθμητική μέθοδος θα μας βρει πάντα όλες τις ρίζες.
Εύρεση Ριζών με την Μέθοδο της Διχοτόμου Υποθέστε ότι η είναι συνεχής και ότι έχουμε βρει τιμές των a και b τέτοιες ώστε f(a)<0, f(b)>0. Τότε είμαστε σίγουροι ότι η f έχει μια ρίζα μεταξύ των a και b. Μπορούμε να βρούμε μια τέτοια ρίζα διχοτομώντας το διάστημα [a,b], μέχρι να ικανοποιηθούμε: Είναι μια πολύ εύρωστη μέθοδος – τίποτε δεν την σταματά. Όμως θα μας δώσει μόνον μία ρίζα! Μπορεί να υπάρχουν και άλλες. Επίσης είναι και πολύ αργή
Ο Αλγόριθμος της Διχοτόμου στην Maple bisection := proc(f,x,rng,tolerance) local lx, hx, mx, lf, hf, mf; lx := evalf(op(1,rng)); hx := evalf(op(2,rng)); lf := evalf(eval(subs(x=lx,f))); hf := evalf(eval(subs(x=hx,f))); if lf=0 then RETURN(lx) fi; if hf=0 then RETURN(hx) fi; do mx := (lx+hx) / 2; if abs(mxlx)<tolerance or abs(mxhx)<tolerance then RETURN(mx); fi; mf := evalf(eval(subs(x=mx,f))); if mf=0 then RETURN(mx); fi; if mf>0 and lf>0 or mf<0 and lf<0 then lx := mx; else hx := mx; fi; od; end;
Εύρεση Ριζών Μέσω ενός Μοντέλου της Συνάρτησης Πώς μπορούμε να βελτιώσουμε την διχοτόμου; Ένας τρόπος: • Κατασκεύασε ένα “μοντέλο” της συνάρτησης, με βάση τα σημεία στα οποία ξέρεις την τιμή της. • Υπολόγισε την ρίζα της συνάρτησης μοντέλου, και χρησιμοποίησέ την σαν προσέγγιση της ρίζας της αρχικής συνάρτησης. • Υπολόγισε την τιμή της αρχικής συνάρτησης στο σημείο αυτό και επέστρεψε στο 1ο βήμα. Η κατασκευή του μοντέλου είναι λίγο πολύ σαν την προσέγγιση της συνάρτησης με πολυώνυμα ή με κάποια άλλη παρεμβάλουσά της.
Μοντέλο 1ου Βαθμού – Επαναλήψεις N-R Μπορούμε να κατασκευάσουμε ένα μοντέλο 1ου βαθμού μιας συνάρτησης χρησιμοποιώντας την τιμή της και την τιμή της παραγώγου της σε κάποιο σημείο. Επαναλαμβάνοντας την διαδικασία αυτήν, κατασκευάζοντας ένα μοντέλο, βασιζόμενοι στο σημείο (ρίζα) που βρήκαμε προηγουμένως, έχουμε την επαναληπτική μέθοδο N-R. Παίρνουμε την επόμενη προσέγγιση, xi+1, από την προηγούμενη, xi, ως εξής xi+1 = xi - f(xi)/f’(xi)
N-R στην Maple newton := proc(f,x,start,tolerance,maxi) local df, z, zf, zd, oz, i; if tolerance!=0 then ERROR(`H 4h parametros prepei na einai thetikh`); fi; if not type(maxi,integer) or maxi<=0 then ERROR(`H 5h parametros parista megisto plithos epanalipsevn `); fi; df := diff(f,x); z := evalf(start); for i from 1 to maxi do oz := z; zf := evalf(subs(x=z,f)); zd := evalf(subs(x=z,df)); z := z zf/zd; if abs(zoz)<tolerance then RETURN(z); fi; od; ERROR(`Den vrethike I riza meta apo oles tis epanalipseis`); end;
Πότε Συγκλίνει N-R; Οι επαναλήψεις N-R απαιτούν η συνάρτηση να είναι διαφορίσιμη (και να μπορούμε φυσικά να υπολογίσουμε τις παραγώγους της). Δυστυχώς, οι προσεγγίσεις N-R μπορεί να μην συγκλίνουν ακόμα και εάν οι παράγωγοι υπάρχουν. Για παράδειγμα: Εάν όμως ξεκινήσουμε πολύ κοντά στην προς υπολογισμό ρίζα, για το συγκεκριμένο παράδειγμα, έχουμε σύγκλιση! Ενδεχομένως να έχουμε προβλήματα εάν και η παράγωγος είναι μηδέν στην προς υπολογισμό ρίζα.
Η Μέθοδος της Χορδής Τι θα κάνουμε εάν δεν ξέρουμε πώς να υπολογίσουμε τις παραγώγους; Η μέθοδος της χορδής κατασκευάζει ένα μοντέλο 1ου βαθμού της συνάρτησης χρησιμοποιώντας τις δυο τελευταίες τιμές της. Ξεκινώντας από τις τιμές x0και x1, η μέθοδος της χορδής συνεχίζει επαναληπτικά ως εξής: Δεν είναι όσο ταχύς είναι η N-R αλλά πολύ ταχύτερη από την διχοτόμο. Δυστυχώς, μπορεί να αποκλίνει όπως ακριβώς και η N-R.
Η Μέθοδος της Χορδής-Περιορισμού Υποθέστε ότι, όπως και στην μέθοδο της διχοτόμου, έχουμε ένα αρχικό διάστημα στο οποίο υπάρχει μια ρίζα. Πώς μπορούμε να βελτιώσουμε την διχοτόμο και ταυτόχρονα να εγγυηθούμε την σύγκλιση; Η μέθοδος Χορδής-Περιορισμού κατασκευάζει ένα μοντέλο 1ου βαθμού βασιζόμενη στα δύο αρχικά σημεία: Δυστυχώς δεν συγκλίνει τόσο γρήγορα όσο η χορδή.
Άλλες Μέθοδοι Υπάρχει μια μεγάλη γκάμα άλλων μεθόδων, που βασιζόμενες σε διάφορες πληροφορίες, χρησιμοποιούν υψηλού βαθμού μοντέλα της συνάρτησης. Για παράδειγμα: • Κατασκευή δευτεροβάθμιου μοντέλου που βασίζετε στις 3 προηγούμενες τιμές της συνάρτησης (μέθοδος του Muller). • Κατασκευή δευτεροβάθμιου μοντέλου που βασίζετεστηντιμή της συνάρτησης και των 2 πρώτων παραγώγων της στο προηγούμενο σημείο. • Κατασκευή τριτοβάθμιου μοντέλου που βασίζετεστηντιμή της συνάρτησης και της παραγώγου της στα προηγούμενα 3 σημεία.
Τρόποι Επιλογής Μεθόδου Για να επιλέξουμε ποια μέθοδο θα χρησιμοποιήσουμε πρέπει να εξετάσουμε 3 πράγματα: • Την πληροφορία που απαιτεί η χρήση της μεθόδου. Μόνον τιμές της συνάρτησης, ή και παραγώγων της; Ένα σημείο εκκίνησης ή δύο (που να περιέχουν ρίζα); • Πόσο ρωμαλέα είναι η μέθοδος; Δηλ. Αποτυγχάνει μερικές φορές να βρει ρίζα που υπάρχει; • Πόσο γρήγορα βρίσκει την ρίζα; Συνήθως χρησιμοποιούνται υβριδικές μέθοδοι που προσπαθούν να εκμεταλλευτούν τα προσόντα διάφορων μεθόδων ταυτόχρονα.
Ρυθμός Σύγκλισης της Χορδής Πόσο ακριβής είναι το αποτέλεσμα της διχοτόμου μετά από n επαναλήψεις; Έστω ότι ξεκινάμε με ένα διάστημα μήκους I που περιέχει μια ρίζα. Εάν επιλέξουμε σαν προσέγγιση της ρίζας το μέσο του διαστήματος και δεν συνεχίζαμε τις επαναλήψεις τότε το σφάλμα μας θα ήταν μικρότερο του ε0 = I/2 Κάθε επανάληψη υποδιπλασιάζει το μήκος του διαστήματος, οπότε εi+1= εi /2 Μετά από n επαναλήψεις, το σφάλμα θα είναι μικρότερο από εn= 2-n(I /2)
Ρυθμός Σύγκλισης και ΑκρίβειαΨηφίων Μπορούμε να μεταφράσουμε το σφάλμα μετά από n επαναλήψεις σε πλήθος σωστών ψηφίων μετά από n επαναλήψεις. Απλά παίρνουμε λογάριθμους (βάσης 10). Σφάλμα μικρότερο του εn σημαίνει ότι το αποτέλεσμα είναι ακριβές σε περίπου –log(εn) ψηφία μετά την υποδιαστολή. Πχ: Εάν το σφάλμα είναι μικρότερο απο 0.0001, το αποτέλεσμα είναι ακριβές σε –log(0.0001)=4 δεκαδικά ψηφία. Για την διχοτόμο: –log(εn) = –log(I/2) + n log(2) Το πλήθος των σωστών ψηφίων αυξάνει γραμμικά με το n.
Ρυθμός Σύγκλισης της N-R Έστω ότι μετά από i επαναλήψεις N-R βρήκαμε το σημείο xi, που είναι αρκετά κοντά στην ακριβή λύση x*. Ορίζουμε το σφάλμαεi=|xi-x*|. Πόσο θα είναι το σφάλμα αυτό εάν εκτελέσουμε μια ακόμα επανάληψη; Χρησιμοποιούμε το θεώρημα του Taylor για κάποιο c μεταξύ xi και x*.Μια και f(x*)=0, έχουμε Το αριστερό μέρος είναι ίσο με xi+1-x*. Οπότε έχουμε Εάν η f έχει συνεχή 2η παράγωγο, η παραπάνω σταθερά δεν θα μεταβάλλεται πολύ όσο το xi είναι κοντά στο x*. Συνεπώς το σφάλμα ελαττώνεται τετραγωνικά.
Πλεονεκτήματα Υπερ-Γραμμικής Σύγκλισης Για την διχοτόμο: εi+1 = C εi Για τις επαναλήψεις: εi+1 = C εi2 Για κάποιες άλλες επαναλήψεις: εi+1 = C εip, p μεταξύ 1 και 2. Πόσα σωστά ψηφία μετά από n επαναλήψεις; Εάν εi+1 = C εip,τότε Το οποίο μπορεί να γραφθεί σαν Di+1 = K + pDi. Για p=1, το πλήθος των σωστών ψηφίων αυξάνει γραμμικά. Για p=2, το πλήθος των σωστών ψηφίων σχεδόν διπλασιάζεται σε κάθε επανάληψη (για μεγάλο i). Για κάθε p>1, το πλήθος των επαναλήψεων για να πάρουμε D σωστά ψηφία είναι ανάλογο του log(D) για αρκετά μεγάλο D.