Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών: Γενίκευση 1: Γενίκευση 2: Απαιτήσεις Αριθμητικής Μεθόδου Συμβατότητα, Ακρίβεια, Σταθερότητα, Απόδοση
Διαφορικές Εξισώσεις (πότε έχω λύση) Πρόβλημα αρχικών τιμών καλά δομημένο αν έχει ακριβώς μία λύση f(t,y) συνεχής [α,b] Συνθήκη Lipschitz π.χ. 1 t 2, 0 t 2, x
Διαφορικές Εξισώσεις Μέθοδος Euler Γενικά: Δημιουργώ διακριτό πλέγμα: {t0α , t1,t2,…, tN b} ti=α+iτ για i=0,1,2,…,N με βήμα τ = (b-α)/Ν Μέθοδος Euler w0=c wi+1=wi+τf(ti, wi) Εξίσωση διαφορών
Διαφορικές Εξισώσεις Μέθοδος Euler ΙΙ Παρατηρήσεις: Ακρίβεια πρώτης τάξης ως προς το χρόνο dy/dt δy/δt = [y(ti+1)-y(ti)]/δt (forward derivative) dy/dt δy/δt = [y(ti+1)-y(ti-1)]/2δt (centred derivative) Μέθοδος Euler Όχι προτιμηταία στην πράξη * Και για λόγους σταθερότητας
Διαφορικές Εξισώσεις Σφάλματα Αποδεικνύεται: με Παρατηρήσεις: (α) (β) Γραμμική εξάρτηση σφάλματος από τ
Διαφορικές Εξισώσεις Σφάλματα στρογγυλοποίησης Έστω: w0 =c + ε0 wi+1=wi+f(ti,wi) + ει με ει το σφάλμα στρογγυλοποίησης Τότε με ει ε προκύπτει : Παρατηρήσεις: (α) (β) Βέλτιστο
Διαφορικές Εξισώσεις Τοπικό Σφάλμα Τοπικό σφάλμα: Σφάλμα της μεθόδου που εξαρτάται από το συγκεκριμένο βήμα Για τη μέθοδο Euler: Θα θέλαμε ανώτερης τάξης εξάρτηση από το τ ! Γιατί δεν κάνουμε ανάπτυγμα ανώτερης τάξης; Γιατί απαιτεί τον αναλυτικό υπολογισμό των y’’(t) = f’ (t,y(t)) y’’’(t) = f’’(t,y(t)) κ.ο.κ
Διαφορικές Εξισώσεις Μέθοδοι Runge Kutta Όχι όμως, κατ’ ανάγκη! α=τ/2 b=τ/2 f(t,y) 2διάστατο ανάπτυγμα Taylor w0=c wi+1=wi+τf(ti+τ/2, wi+τ/2 f(ti,wi)) Μέθοδος Midpoint ή Runge Kutta 2ης τάξης
Διαφορικές Εξισώσεις Runge Kutta 4ης τάξης με και σφάλμα ~ τ4
Διαφορικές Εξισώσεις Runge Kutta 4ης τάξης II Double Precision Calculation Single Precision Calculation
Διαφορικές Εξισώσεις Σταθερότητα Για τη μέθοδο Euler: wn+1 = wn + f(wn,tn)τ Εισάγοντας τοπικό σφάλμα: wn+1 + εn+1 = wn + εn + τf(wn+εn,tn) Κάνοντας το ανάπτυγμα Taylor: f(wn+εn,tn) = f(wn,tn) + (f/w)εn +(ε2n) Προκύπτει: εn+1 = εn + (f/w)τεn Σταθερότητα : |g|1 f/w <0 Απόσβεση >0 Ενίσχυση i Ταλάντωση g=1+ (f/w)τ Παράγοντας Ενίσχυσης
Διαφορικές Εξισώσεις Σταθερότητα: Παράδειγμα 1 Έστω για παράδειγμα: dy/dt = -y/t0 f/w = -1/t0 g=1-τ/ t0 τ = 0.2 t0 τ = 1.0 t0 τ = 2.0 t0 τ = 2.1 t0 Η σταθερότητα επιτυγχάνεται λοιπόν για : τ 2t0
Διαφορικές Εξισώσεις Σταθερότητα: Παράδειγμα 2 Αρμονική κίνηση: d2x/dt2 +ω2x= 0 dx/dt - ωv= 0 dv/dt +ωx= 0 Θέτοντας u=x+iv du/dt +iωu= 0 g=1-iωτ |g|2= gg* = 1+ω2τ2 Η μέθοδος Euler δεν μπορεί να είναι σταθερή σε ταλαντωτικές Δ.Ε. για καμιά τιμή χρονικού βήματος
Διαφορικές Εξισώσεις Mέθοδος Leapfrog wi+1=wi-1+2τf(ti, wi) wi+2=wi +2τf(ti+1, wi+1) Στην περίπτωση αυτή προκύπτει: εn+1 = εn-1 + (f/w)2τεn g2=1+(f/w)2τg που είναι μια δευτεροβάθμια εξίσωση με δύο ρίζες, άπό τις οποίες μία είναι εν γέννει μεγαλύτερη της μονάδας Όμως για f/w=ib, g=ib(-b2+1) και gg* = 1 για b 1, δηλαδή για τ 1/ω
Διαφορικές Εξισώσεις Έμμεσες (Implicit) Mέθοδοι wi+1=wi+τ/2{f(ti, wi)+ f(ti+1, wi+1)} Μειονέκτημα: Επίλυση εξίσωσης g=1+(f/w)|nτ/2+(f/w)|n+1τ/2 g g=[1+(f/w)|nτ/2 ] / [1-(f/w)|n+1τ/2] Πλεονέκτημα: Σταθερότητα για κάθε βήμα
Διαφορικές Εξισώσεις επιδιώκοντας τη μέγιστη ακρίβεια wi+1=wi+τ/24{55f(ti, wi )-59f(ti-1, wi-1) +37f(ti-2, wi-2) -9f(ti-3, wi-3)} Μέθοδοι πολλαπλών βημάτων ή τιμών: Adams-Bashforth (άμεση / explicit) Adams-Moulton (έμμεση / implicit) wi+1=wi+τ/24{9f(ti+1, wi+1 )+19f(ti, wi) -5f(ti-1, wi-1) +f(ti-2, wi-2)} Μέθοδοι Predictor-Corrector Adams-Bashforth (Predictor) Adams-Moulton (Corrector) Μέθοδοι προσαρμοζόμενου βήματος Μέθοδοι προέκτασης