20 -27 Νοέμβρη 2002

22
Μαθηματικοί Υπολογισμοί Μαθηματικοί Υπολογισμοί Χειμερινό Εξάμηνο 2002-2003 8η Διάλεξη 8η Διάλεξη Επίλυση Εξισώσεων Επίλυση Εξισώσεων http://www.math.uoc.gr/~mav/my 20-27 Νοέμβρη 2002

description

20 -27 Νοέμβρη 2002. Περιεχόμενα. Γιατί Λύνουμε Εξισώσεις ; Ελαχιστοποίηση & Μεγιστοποίηση Συμβολική Επίλυση Εξισώσεων Αριθμητική Επίλυση Εξισώσεων Μέθοδοι Αριθμητικής Επίλυσης Εύρεση Ριζών με την Μέθοδο της Διχοτόμου Ο Αλγόριθμος της Διχοτόμου στην Maple - PowerPoint PPT Presentation

Transcript of 20 -27 Νοέμβρη 2002

Page 1: 20 -27 Νοέμβρη 2002

Μαθηματικοί ΥπολογισμοίΜαθηματικοί ΥπολογισμοίΧειμερινό Εξάμηνο 2002-2003

8η Διάλεξη8η Διάλεξη

Επίλυση ΕξισώσεωνΕπίλυση Εξισώσεων

http://www.math.uoc.gr/~mav/my

20-27 Νοέμβρη 2002

Page 2: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

2

Περιεχόμενα Γιατί Λύνουμε Εξισώσεις; Ελαχιστοποίηση & Μεγιστοποίηση Συμβολική Επίλυση Εξισώσεων Αριθμητική Επίλυση Εξισώσεων Μέθοδοι Αριθμητικής Επίλυσης Εύρεση Ριζών με την Μέθοδο της Διχοτόμου

Ο Αλγόριθμος της Διχοτόμου στην Maple Εύρεση Ριζών Μέσω ενός Μοντέλου της Συνάρτησης

Μοντέλο 1ου Βαθμού – Επαναλήψεις N-R N-R στην Maple Πότε Συγκλίνει N-R;

Η Μέθοδος της Χορδής Η Μέθοδος της Χορδής-Περιορισμού Άλλες Μέθοδοι Τρόποι Επιλογής Μεθόδου Ρυθμός Σύγκλισης της Χορδής Ρυθμός Σύγκλισης και Ακρίβεια Πλεονεκτήματα Υπερ-Γραμμικής Σύγκλισης

Page 3: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

3

Εισαγωγή

Θα εξετάσουμε τρόπους επίλυση εξισώσεων με χρήση υπολογιστή – συμβολικά ή αριθμητικά.

Υπάρχουν πολλά είδη εξισώσεων: Εξισώσεις μιας μεταβλητής, με μοναδική ή όχι

λύση. Συστήματα εξισώσεων πολλών μεταβλητών. Εξισώσεις με ακέραιες ή μιγαδικές μεταβλητές. Διαφορικές εξισώσεις, εξισώσεις με

ολοκληρώματα, ...

Θα επικεντρωθούμε σε εξισώσεις μια πραγματικής μεταβλητής. Θα γράφουμε τις εξισώσεις μας αυτές στην μορφή f(x)=0, οπότε θα μπορούμε να δούμε το πρόβλημά μας σαν πρόβλημα εύρεσης ριζών.

Page 4: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

4

Γιατί Λύνουμε Εξισώσεις;

Η επίλυση εξισώσεων είναι συχνά απαραίτητη τόσο για θεωρητικές όσο και για πρακτικές εφαρμογές. Μερικά παραδείγματα:

Θεωρήστε την κίνηση του βραχίονα ενός ρομπότ, με γωνίες άρθρωσης θ και φ τις οποίες μπορούμε να ελέγξουμε. Τα άκρα του βραχίονα είναι στα σημεία

x = a cos(θ) + b cos(θ+φ)

υ = a sin(θ) + b sin(θ+φ)

Για να θέσουμε τον βραχίονα σε κάποια θέση (x,y) πρέπει να λύσουμε τις εξισώσεις αυτές ως προς θ και φ.

Έστω ότι έχουμε ένα μοντέλο του πώς θα αλλάξει ο πληθυσμός και η διαθέσιμη τροφή του πλανήτη στο μέλλον. Τότε μπορούμε να καθορίσουμε πότε η παραγωγή τροφής θα υπολείπεται της ζήτησης λύνοντας απλά μια εξίσωση.

Page 5: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

5

Ελαχιστοποίηση & Μεγιστοποίηση

Προβλήματα εύρεσης ακρότατων μιας ομαλής συνάρτησης μπορούν να επιλυθούν υπολογίζοντας τις ρίζες της παραγώγου της.

Για να βρούμε το x που μεγιστοποιεί την f(x), βρίσκουμε τις λύσεις της f’(x)=0, από τις οποίες επιλέγουμε αυτές που δίνουν f’’(x)<0. Αυτά είναι τα τοπικά μέγιστα.

Προβλήματα εύρεσης ακρότατων πηγάζουν από πολλές εφαρμογές:

Μια εταιρεία που έχει ένα μοντέλο για τους πελάτες, τους ανταγωνιστές και το κόστος παραγωγής θα μπορούσε να λύσει για την βέλτιστη τιμή (μεγιστοποιεί το κέρδος) του προϊόντος.

Page 6: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

6

Συμβολική Επίλυση Εξισώσεων

Μερικές (λίγες) φορές μπορούμε να λύσουμε εξισώσεις συμβολικά με το χέρι, ή με ένα σύστημα σαν την Maple.

> solve(x^2+x 1=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 σημαίνει ότι δεν μπόρεσε να βρει λύσει παρόλο που υπάρχει!

Page 7: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

7

Αριθμητική Επίλυση ΕξισώσεωνΌταν αποτύχουμε στην συμβολική επίλυση, μπορούμε να

χρησιμοποιήσουμε μια μέθοδο που θα μας δώσει μια αριθμητική απάντηση. Η 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

Μια και η δεύτερη παράγωγος είναι αρνητική, το σημείο στο οποίο η πρώτη παράγωγος είναι μηδέν είμαι μέγιστο.

Page 8: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

8

Μέθοδοι Αριθμητικής Επίλυσης

Υπάρχουν πολλές αριθμητικές μέθοδοι επίλυσης. Θα εξετάσουμε τις εξής:

Μέθοδος Διχοτόμου – Μια απλή και εύρωστη, αλλά απελπιστικά αργή μέθοδος.

Επαναλήψεις Newton-Raphson (N-R) – Μια πολύ πιο γρήγορη μέθοδος, όταν δουλεύει.

Μέθοδος της Χορδής – Μια πιο εύρωστη, από την N-R, μέθοδος αλλά όχι τόσο γρήγορη.

Καμία από τις παραπάνω μεθόδους δεν είναι τέλεια.

Γενικά είναι πολύ δύσκολο να εγγυηθούμε ότι κάποια αριθμητική μέθοδος θα μας βρει πάντα όλες τις ρίζες.

Page 9: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

9

Εύρεση Ριζών με την Μέθοδο της Διχοτόμου

Υποθέστε ότι η είναι συνεχής και ότι έχουμε βρει τιμές των a και b τέτοιες ώστε f(a)<0, f(b)>0. Τότε είμαστε σίγουροι ότι η f έχει μια ρίζα μεταξύ των a και b.

Μπορούμε να βρούμε μια τέτοια ρίζα διχοτομώντας το διάστημα [a,b], μέχρι να ικανοποιηθούμε:

Είναι μια πολύ εύρωστη μέθοδος – τίποτε δεν την σταματά.

Όμως θα μας δώσει μόνον μία ρίζα! Μπορεί να υπάρχουν και άλλες. Επίσης είναι και πολύ αργή

Page 10: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

10

Ο Αλγόριθμος της Διχοτόμου στην Maplebisection := 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(mx lx)<tolerance or abs(mx hx)<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;

Page 11: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

11

Εύρεση Ριζών Μέσω ενός Μοντέλου της Συνάρτησης

Πώς μπορούμε να βελτιώσουμε την διχοτόμου; Ένας τρόπος:

1. Κατασκεύασε ένα “μοντέλο” της συνάρτησης, με βάση τα σημεία στα οποία ξέρεις την τιμή της.

2. Υπολόγισε την ρίζα της συνάρτησης μοντέλου, και χρησιμοποίησέ την σαν προσέγγιση της ρίζας της αρχικής συνάρτησης.

3. Υπολόγισε την τιμή της αρχικής συνάρτησης στο σημείο αυτό και επέστρεψε στο 1ο βήμα.

Η κατασκευή του μοντέλου είναι λίγο πολύ σαν την προσέγγιση της συνάρτησης με πολυώνυμα ή με κάποια άλλη παρεμβάλουσά της.

Page 12: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

12

Μοντέλο 1ου Βαθμού – Επαναλήψεις N-R

Μπορούμε να κατασκευάσουμε ένα μοντέλο 1ου βαθμού μιας συνάρτησης χρησιμοποιώντας την τιμή της και την τιμή της παραγώγου της σε κάποιο σημείο.

Επαναλαμβάνοντας την διαδικασία αυτήν, κατασκευάζοντας ένα μοντέλο, βασιζόμενοι στο σημείο (ρίζα) που βρήκαμε προηγουμένως, έχουμε την επαναληπτική μέθοδο N-R.

Παίρνουμε την επόμενη προσέγγιση, xi+1, από την προηγούμενη, xi, ως εξής xi+1 = xi - f(xi)/f’(xi)

Page 13: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

13

N-R στην Maplenewton := 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(z oz)<tolerance then

RETURN(z); fi;

od; ERROR(`Den vrethike I riza meta apo oles tis epanalipseis`); end;

Page 14: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

14

Πότε Συγκλίνει N-R;

Οι επαναλήψεις N-R απαιτούν η συνάρτηση να είναι διαφορίσιμη (και να μπορούμε φυσικά να υπολογίσουμε τις παραγώγους της).

Δυστυχώς, οι προσεγγίσεις N-R μπορεί να μην συγκλίνουν ακόμα και εάν οι παράγωγοι υπάρχουν. Για παράδειγμα:

Εάν όμως ξεκινήσουμε πολύ κοντά στην προς υπολογισμό ρίζα, για το συγκεκριμένο παράδειγμα, έχουμε σύγκλιση!

Ενδεχομένως να έχουμε προβλήματα εάν και η παράγωγος είναι μηδέν στην προς υπολογισμό ρίζα.

Page 15: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

15

Η Μέθοδος της Χορδής

Τι θα κάνουμε εάν δεν ξέρουμε πώς να υπολογίσουμε τις παραγώγους;

Η μέθοδος της χορδής κατασκευάζει ένα μοντέλο 1ου βαθμού της συνάρτησης χρησιμοποιώντας τις δυο τελευταίες τιμές της.

Ξεκινώντας από τις τιμές x0 και x1, η μέθοδος της χορδής συνεχίζει επαναληπτικά ως εξής:

Δεν είναι όσο ταχύς είναι η N-R αλλά πολύ ταχύτερη από την διχοτόμο.

Δυστυχώς, μπορεί να αποκλίνει όπως ακριβώς και η N-R.

Page 16: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

16

Η Μέθοδος της Χορδής-Περιορισμού

Υποθέστε ότι, όπως και στην μέθοδο της διχοτόμου, έχουμε ένα αρχικό διάστημα στο οποίο υπάρχει μια ρίζα. Πώς μπορούμε να βελτιώσουμε την διχοτόμο και ταυτόχρονα να εγγυηθούμε την σύγκλιση;

Η μέθοδος Χορδής-Περιορισμού κατασκευάζει ένα μοντέλο 1ου βαθμού βασιζόμενη στα δύο αρχικά σημεία:

Δυστυχώς δεν συγκλίνει τόσο γρήγορα όσο η χορδή.

Page 17: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

17

Άλλες Μέθοδοι

Υπάρχει μια μεγάλη γκάμα άλλων μεθόδων, που βασιζόμενες σε διάφορες πληροφορίες, χρησιμοποιούν υψηλού βαθμού μοντέλα της συνάρτησης. Για παράδειγμα:

Κατασκευή δευτεροβάθμιου μοντέλου που βασίζετε στις 3 προηγούμενες τιμές της συνάρτησης (μέθοδος του Muller).

Κατασκευή δευτεροβάθμιου μοντέλου που βασίζετε στην τιμή της συνάρτησης και των 2 πρώτων παραγώγων της στο προηγούμενο σημείο.

Κατασκευή τριτοβάθμιου μοντέλου που βασίζετε στην τιμή της συνάρτησης και της παραγώγου της στα προηγούμενα 3 σημεία.

Page 18: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

18

Τρόποι Επιλογής Μεθόδου

Για να επιλέξουμε ποια μέθοδο θα χρησιμοποιήσουμε πρέπει να εξετάσουμε 3 πράγματα:

Την πληροφορία που απαιτεί η χρήση της μεθόδου. Μόνον τιμές της συνάρτησης, ή και παραγώγων της; Ένα σημείο εκκίνησης ή δύο (που να περιέχουν ρίζα);

Πόσο ρωμαλέα είναι η μέθοδος; Δηλ. Αποτυγχάνει μερικές φορές να βρει ρίζα που υπάρχει;

Πόσο γρήγορα βρίσκει την ρίζα;

Συνήθως χρησιμοποιούνται υβριδικές μέθοδοι που προσπαθούν να εκμεταλλευτούν τα προσόντα διάφορων μεθόδων ταυτόχρονα.

Page 19: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

19

Ρυθμός Σύγκλισης της Χορδής

Πόσο ακριβής είναι το αποτέλεσμα της διχοτόμου μετά από n επαναλήψεις;

Έστω ότι ξεκινάμε με ένα διάστημα μήκους I που περιέχει μια ρίζα. Εάν επιλέξουμε σαν προσέγγιση της ρίζας το μέσο του διαστήματος και δεν συνεχίζαμε τις επαναλήψεις τότε το σφάλμα μας θα ήταν μικρότερο του

ε0 = I/2Κάθε επανάληψη υποδιπλασιάζει το μήκος του

διαστήματος, οπότε

εi+1= εi /2Μετά από n επαναλήψεις, το σφάλμα θα είναι

μικρότερο από

εn= 2-n(I /2)

Page 20: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

20

Ρυθμός Σύγκλισης και Ακρίβεια Ψηφίων

Μπορούμε να μεταφράσουμε το σφάλμα μετά από n επαναλήψεις σε πλήθος σωστών ψηφίων μετά από n επαναλήψεις.

Απλά παίρνουμε λογάριθμους (βάσης 10). Σφάλμα μικρότερο του εn σημαίνει ότι το αποτέλεσμα είναι ακριβές σε περίπου –log(εn) ψηφία μετά την υποδιαστολή.

Πχ: Εάν το σφάλμα είναι μικρότερο απο 0.0001, το αποτέλεσμα είναι ακριβές σε –log(0.0001)=4 δεκαδικά ψηφία.

Για την διχοτόμο:

–log(εn) = –log(I/2) + n log(2) Το πλήθος των σωστών ψηφίων αυξάνει γραμμικά

με το n.

Page 21: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

21

Ρυθμός Σύγκλισης της N-R

Έστω ότι μετά από i επαναλήψεις N-R βρήκαμε το σημείο xi, που είναι αρκετά κοντά στην ακριβή λύση x*. Ορίζουμε το σφάλμα εi=|xi-x*|. Πόσο θα είναι το σφάλμα αυτό εάν εκτελέσουμε μια ακόμα επανάληψη;

Χρησιμοποιούμε το θεώρημα του Taylor

για κάποιο c μεταξύ xi και x*.Μια και f(x*)=0, έχουμε

Το αριστερό μέρος είναι ίσο με xi+1-x*. Οπότε έχουμε

Εάν η f έχει συνεχή 2η παράγωγο, η παραπάνω σταθερά δεν θα μεταβάλλεται πολύ όσο το xi είναι κοντά στο x*. Συνεπώς το σφάλμα ελαττώνεται τετραγωνικά.

Page 22: 20 -27 Νοέμβρη 2002

Μα

θη

μα

τικ

οί

Υπολογισ

μοί

22

Πλεονεκτήματα Υπερ-Γραμμικής Σύγκλισης

Για την διχοτόμο: ε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.