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



Σχετικά έγγραφα
ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ ΣΤΗ MATLAB

10 ΑΡΙΘΜΗΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 19/10/2017. Ακριβείς Διαφορικές Εξισώσεις-Ολοκληρωτικοί Παράγοντες. Η πρώτης τάξης διαφορική εξίσωση

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

y 1 (x) f(x) W (y 1, y 2 )(x) dx,

Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 09/11/2017. Άσκηση 1. Να βρεθεί η γενική λύση της διαφορικής εξίσωσης. dy dx = 2y + x 2 y 2 2x

Πεπερασμένες Διαφορές.

Εφαρµόζοντας τη µέθοδο αριθµητικής ολοκλήρωσης Euler και Runge-Kutta 2 ης, συστηµατική σύγκριση των πέντε µεθόδων. Η επιλογή των σταθερών

Κεφάλαιο 0: Εισαγωγή

Βασικά στοιχεία στο Matlab

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

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

1.1. Διαφορική Εξίσωση και λύση αυτής

α. y = y x 2 β. x + 5x = e x γ. xy (xy + y) = 2y 2 δ. y (4) + xy + e x = 0 η. x 2 (y ) 4 + xy + y 5 = 0 θ. y + ln y + x 2 y 3 = 0 d 3 y dy + 5y

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

Εισαγωγή στο Πρόγραμμα Maxima

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

Διαφορικές Εξισώσεις.

Παραδείγματα (1 ο σετ) Διανυσματικοί Χώροι

1.1 Βασικές Έννοιες των Διαφορικών Εξισώσεων

Παραδείγματα (2) Διανυσματικοί Χώροι

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

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

f f 2 0 B f f 0 1 B 10.3 Ακρότατα υπό συνθήκες Πολλαπλασιαστές του Lagrange

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

Kεφάλαιο 4. Συστήματα διαφορικών εξισώσεων. F : : F = F r, όπου r xy

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75


Introduction Ν. Παπαδάκης 21 Οκτωβρίου 2015 Ν. Παπαδάκης Introduction 21 Οκτωβρίου / 47

Project 1: Principle Component Analysis

Κεφαλαιο 7: Η ΜΠΣ για ελλειπτικά προβλήματα με μη-ομαλές λύσεις

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. 21 Μαίου Γράψτε το ονοµατεπώνυµο και αριθµό ταυτότητάς σας στο πάνω µέρος της αυτής της σελίδας.

Στη MATLAB τα πολυώνυμα αναπαριστώνται από διανύσματα που περιέχουν τους συντελεστές τους σε κατιούσα διάταξη. Για παράδειγμα το πολυώνυμο

ΜΑΘΗΜΑΤΙΚΑ ΙΙ ιδάσκων : Ε. Στεφανόπουλος 12 ιουνιου 2017

ΠΑΡΑΔΕΙΓΜΑ 14 ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ, , 5 Ο ΕΞΑΜΗΝΟ ΕΡΓΑΣΙΑ #1: ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΠΡΟΒΛΗΜΑΤΑ ΑΡΧΙΚΩΝ ΤΙΜΩΝ

Μερικές Διαφορικές Εξισώσεις

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

Εφαρμοσμένα Μαθηματικά ΙΙ Τελική Εξέταση Ι. Λυχναρόπουλος

ΕΝΟΤΗΤΑ 1: ΟΡΙΣΜΟΣ ΠΕΔΙΟ ΟΡΙΣΜΟΥ ΠΡΑΞΕΙΣ ΣΥΝΑΡΤΗΣΕΩΝ ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΒΑΣΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΛΥΜΕΝΑ ΘΕΜΑΤΑ ΘΕΜΑ Α

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

lnx ln x ln l x 1. = (0,1) (1,7].

V S C V C -10. V t C dv c dt

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ

Θέματα Εξετάσεων Σεπτεμβρίου 2012:

Πρόβλημα δύο σημείων. Κεφάλαιο Διακριτοποίηση

Σήματα και Συστήματα. Διάλεξη 13: Μελέτη ΓΧΑ Συστημάτων με τον Μετασχηματισμό Laplace. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

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

Η διατήρηση μάζας σε ένα σύστημα τριών αντιδραστήρων περιγράφεται από το παρακάτω σύστημα συνήθων διαφορικών εξισώσεων:

2. Η μέθοδος του Euler

ΣΥΣΤΗΜΑΤΑ. 6.1 ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ (Επαναλήψεις-Συμπληρώσεις)

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

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

Γραφική επίλυση γραμμικού συστήματος με δύο αγνώστους.

z=± Η εξίσωση αυτή μας λέει αμέσως ότι η συνάρτηση Green σε δύο διαστάσεις είναι

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

. Όλες οι συναρτήσεις δεν μπορούν να παρασταθούν στο καρτεσιανό επίπεδο όπως για παράδειγμα η συνάρτηση του Dirichlet:

ΣΥΝΑΡΤΗΣΕΙΣ ΔΥΟ ΜΕΤΑΒΛΗΤΩΝ

Μαθηματικά ΜΕΡΟΣ 3 ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

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

( ) Κλίση και επιφάνειες στάθµης µιας συνάρτησης. x + y + z = κ ορίζει την επιφάνεια µιας σφαίρας κέντρου ( ) κ > τότε η

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

Αριθμητικές Μέθοδοι για την επίλυση ΠΑΤ Δ.Ε.

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

Συνήθεις Διαφορικές Εξισώσεις Ι ΣΔΕ Bernoulli, Riccati, Ομογενείς. Διαφορικές Εξισώσεις Bernoulli, Riccati και Ομογενείς

MEM 253. Αριθμητική Λύση ΜΔΕ * * *

ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Κωνσταντίνος Ξ. Τσιόκας. Αν. Καθηγήτρια Α.Π.Θ.

ΜΑΣ 371: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ. 1. Να βρεθεί το πολυώνυμο Lagrange για τα σημεία (0, 1), (1, 2) και (4, 2).

1 of 79 ΘΕΜΑ 2. Δίνεται η συνάρτηση f(x) = x 2 4x + 5, x R

Κεφάλαιο 9. Αριθμητική επίλυση Διαφορικών Εξισώσεων

ΚΕΦΑΛΑΙΟ 4ο: ΟΛΟΚΛΗΡΩΤΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 4: ΕΜΒΑΔΟΝ ΕΠΙΠΕΔΟΥ ΧΩΡΙΟΥ [Κεφ.3.7 Μέρος Β του σχολικού βιβλίου]. ΑΣΚΗΣΕΙΣ

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

ΑΣΚΗΣΕΙΣ Β ΛΥΚΕΙΟΥ -- ΑΛΓΕΒΡΑ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

Εργασία 2. Παράδοση 20/1/08 Οι ασκήσεις είναι βαθμολογικά ισοδύναμες

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

Διαφορικές Εξισώσεις.

ΚΕΦΑΛΑΙΟ 3 Ο 3.2 Η ΕΝΝΟΙΑ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ Η. (Σ) όπου α, β, α, β, είναι οι

Τυπικές χρήσεις της Matlab

η απόσταση d γίνεται ελάχιστη. Τα αντίστοιχα σημεία των καμπυλών είναι: P, P, , P, P, ( 2) ,

Κεφάλαιο 6. Συντηρητικες Δυναμεις {Ανεξαρτησία του Εργου από τη Διαδρομή, Εννοια του Δυναμικού, Δυναμικό και Πεδίο Συντηρητικών Δυνάμεων}

ΣΗΜΕΙΩΣΕΙΣ 4. bt (γιατί;).

ΕΞΙΣΩΣΕΙΣ ΔΙΑΦΟΡΩΝ ΟΡΙΣΜΟΙ: διαφορές των αγνώστων συναρτήσεων. σύνολο τιμών. F(k,y k,y. =0, k=0,1,2, δείκτη των y k. =0 είναι 2 ης τάξης 1.

Συστήματα συντεταγμένων

Εφαρμοσμένα Μαθηματικά ΙΙ 2ο Σετ Ασκήσεων (Λύσεις) Διανυσματικές Συναρτήσεις Επιμέλεια: Ι. Λυχναρόπουλος

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

Πεπερασμένες διαφορές

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΣΤΑΤΙΣΤΙΚΗ ΤΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ. Κεφάλαιο 8. Συνεχείς Κατανομές Πιθανοτήτων

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 4 o Φροντιστήριο

Παραδείγματα Διανυσματικοί Χώροι Ι. Λυχναρόπουλος

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

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

Είναι γνωστό ότι η δύναμη που ασκείται σε ένα ελατήριο και ονομάζεται δύναμη επαναφοράς δίνεται από τη σχέση : F = kx (3.1)

KΕΦΑΛΑΙΟ 8 ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟ ΟΙ ΕΠΙΛΥΣΗΣ ΣΥΝΗΘΩΝ. Το τυπικό πρόβληµα αρχικών τιµών που θα µας απασχολήσει, είναι το ακόλουθο:

ΚΕΦΑΛΑΙΟ 3 ο ΣΥΝΑΡΤΗΣΕΙΣ, ΤΡΙΓΩΝΟΜΕΤΡΙΑ( FUNCTIONS,TRIGONOMETRY)

Πρόλογος Εισαγωγή στη δεύτερη έκδοση Εισαγωγή... 11

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

Θεώρημα Βolzano. Κατηγορία 1 η Δίνεται η συνάρτηση:

Transcript:

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ 11.1 Γενικά περί συνήθων διαφορικών εξισώσεων Μια συνήθης διαφορική εξίσωση (ΣΔΕ) 1 ης τάξης έχει τη μορφή dy d = f (, y()) όπου f(, y) γνωστή και y() άγνωστη συνάρτηση. Η πιο πάνω εξίσωση καλείται διαφορική γιατί περιέχει την παράγωγο μιας συνάρτησης. Καλείται συνήθης γιατί η παράγωγος είναι συνήθης (και όχι για μερική), και τέλος είναι 1 ης τάξης γιατί περιλαμβάνει μόνο την 1 η παράγωγο της άγνωστης συνάρτησης. Αν και μπορούμε να μιλήσουμε για ΣΔΕ 2 ης, 3 ης, τάξης, θα περιοριστούμε μόνο σε αυτές που είναι 1 ης τάξης γιατί οι υπόλοιπες μπορούν να εκφραστούν σαν ένα σύστημα ΣΔΕ 1 ης τάξης. Άρα είναι αρκετό να ξέρουμε πώς να λύνουμε συστήματα ΣΔΕ 1 ης τάξης στη MATLAB. Σημειώνουμε ότι στη ειδική περίπτωση που η συνάρτηση f εξαρτάται μόνο από το, τότε έχουμε dy f () y f() d d = = + C όπου C μια αυθαίρετη σταθερά, και έτσι παίρνουμε τη λύση αναλυτικά. (Για την ακρίβεια, παίρνουμε άπειρες λύσεις, μια για κάθε σταθερά.) Αν εκτός από την διαφορική εξίσωση μας δοθεί και μια αρχική συνθήκη, π.χ. y( 0) = y0, με τα 0, y0 δοσμένα, τότε η λύση της Σ.Δ.Ε. είναι μοναδική, με την προϋπόθεση ότι η συνάρτηση f(, y) ικανοποιεί κάποιες συνθήκες ομαλότητας. Σε αυτή την περίπτωση έχουμε ένα πρόβλημα αρχικών τιμών (ΠΑΤ): y () = f(, y()) y ( 0) = y0 Στο παρόν κεφάλαιο θα ασχοληθούμε με μεθόδους (αριθμητικής) επίλυσης ΠΑΤ χρησιμοποιώντας την MATLAB.

Γ. Γεωργίου & Χρ, Ξενοφώντος Παράδειγμα 11.1.1 Η μέθοδος του Euler Η πιο παλιά μέθοδος αριθμητικής επίλυσης του ΠΑΤ y () = f(, y()) y ( 0) = y0 είναι η λεγόμενη μέθοδος του Euler, με την οποία βρίσκουμε (διακριτές) προσεγγίσεις yi y( i), i = 0,1,2,... για κάποια i, i = 0,1,2,... που μας ενδιαφέρουν. Αν επιλέξουμε κάποιο h > 0 (το λεγόμενο βήμα) και ορίσουμε = i 1 + i h, i = 0,1,2,..., N + για κάποιο Ν, τότε μια και τα f, 0 και y 0 είναι γνωστά, μπορούμε να βρούμε τα yi y ( i), i= 0,1,2,..., T μέσω της λεγόμενης επανάληψης του Euler: y = i 1 y + + i hf( i, yi), i = 0,1,2,..., N Το πιο κάτω m-file υλοποιεί την πιο πάνω διαδικασία, παίρνοντας σαν δεδομένα εισόδου την συνάρτηση f, τις αρχικές τιμές y 0, 0, το Τ έτσι ώστε [ 0, T] και το βήμα h, και δίνει σαν δεδομένα εξόδου τα διανύσματα = [,,..., ], y = [ y, y,..., y ] έτσι ώστε y y ( ), i= 0,1,2,..., N. 0 1 N 0 1 funcion [y,] = euler(fun,y0,0,t,h) N [y,] = euler(fun,y0,0,t,h) - This funcion compues he soluion o he IVP y'() = fun(y,), y(0)= y0, for a given funcion "fun(,y)" using Euler's mehod. The funcion can be defined via he m-file fun.m, or as an anonymous funcion (or even using he "inline" command). y0 is he iniial value, T is he maximum value for, h is he sepsize and 0=iniial value for. The oupu is a vecor conaining he approximae soluion y_euler. y(1) = y0; (1) = 0; for i=1:ceil((t-0)/h) y(i+1) = y(i) + h*feval(fun,(i),y(i)); (i+1) = (i) + h; end; ='; y=y'; End of m-file euler.m Ας χρησιμοποιήσουμε το πιο πάνω m-file για το εξής ΠΑΤ: y () = y, y(1) = 4 i i 274

11. Συνήθεις διαφορικές εξισώσεις όπου το ανήκει στο διάστημα [1, 2], και ας επιλέξουμε αρχικά h = 0.1. >> f = @(,y) *sqr(y); >> [y,]=euler(f,4,1,2,0.1) y = = 4.0000 4.2000 4.4254 4.6779 4.9590 5.2708 5.6152 5.9943 6.4105 6.8663 7.3642 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 Παίρνουμε τη γραφική παράσταση της λύσης που πήραμε, ως >> plo(,y,'o-') >> xlabel('') >> ylabel('y') >> ile('soluion o y''()= sqr(y), in [1, 2], y(1)=4, via Eulers Mehod wih h=0.1') 7.5 Soluion o y'()= sqr(y), in [1, 2], y(1)=4, via Eulers Mehod wih h=0.1 7 6.5 6 y 5.5 5 4.5 4 1 1.2 1.4 1.6 1.8 2 2.2 2.4 275

Γ. Γεωργίου & Χρ, Ξενοφώντος 1 2 2 Η ακριβής λύση του πιο πάνω Π.Α.Τ. είναι yex () = ( + 7), και το πιο κάτω 16 γράφημα μα δείχνει ότι η λύση που πήραμε με την μέθοδο του Euler δεν είναι παρά μια προσέγγιση. >> yex=@() (1/16)*(.^2+7).^2; >> plo(,y,'o-',,yex()) >> xlabel('') >> ylabel('y') >> legend('y_{euler}()','y_{exac}()') 8 7.5 y Euler () y exac () 7 6.5 y 6 5.5 5 4.5 4 1 1.2 1.4 1.6 1.8 2 2.2 2.4 Αν χρησιμοποιήσουμε πιο μικρό βήμα h, τότε η προσέγγιση θα είναι καλύτερη. Αυτό φαίνεται πιο κάτω, όπου πήραμε h = 0.05. >> [y,]=euler(f,4,1,2,0.05); >> plo(,y,'o-',,yex()) >> xlabel('') >> ylabel('y') >> legend('y_{euler}()','y_{exac}()') 8 7.5 y Euler () y exac () 7 6.5 y 6 5.5 5 4.5 4 1 1.2 1.4 1.6 1.8 2 2.2 2.4 276

11. Συνήθεις διαφορικές εξισώσεις 11.2 Η εντολή ode 45 Η MATLAB διαθέτει αρκετές συναρτήσεις/εντολές βιβλιοθήκης για την επίλυση Π.Α.Τ., όπως οι ode23, ode45, ode113, ode15s, ode23s, ode23, ode23b. (Γράψτε doc ode23 για περισσότερες πληροφορίες.) Εμείς θα ασχοληθούμε μόνο με την ode45, η οποία λύνει το Π.Α.Τ. y () = f(, y()) y ( 0) = y0 και έχει την εξής δομή: [_ou,y_ou] = ode45(odefun, _span, y0) Τα δεδομένα εισόδου και εξόδου έχουν ως εξής: οdefun: η συνάρτηση f (, y ) (σαν m-file ή ανώνυμη συνάρτηση) _span: το διάνυσμα [, T] όπου ανήκει το αυτό πρέπει να δοθεί με αγκύλες 0 y0: η αρχική τιμή y0( = y ( 0)) _ou: το διάνυσμα με τα σημεία 0, 1, 2... y_ou: το διάνυσμα με τις προσεγγιστικές τιμές y0, y1, y 2... της λύσης Όπως βλέπετε, τα δεδομένα εισόδου και εξόδου είναι παρόμοια με αυτά που είχαμε στο m-file που γράψαμε για την μέθοδο του Euler. Η διαφορά έγκειται στο ότι για το m-file που γράψαμε, δίναμε και το βήμα h, ενώ στην ode45 δεν το δίνουμε. Η MATLAB επιλέγει της το βήμα με τέτοιο τρόπο ώστε η λύση που παίρνουμε να έχει (απόλυτη) ακρίβεια 10 6. Αυτό σημαίνει ότι το μέγεθος των διανυσμάτων και y δεν εξαρτάται από εμάς αλλά από τη MATLAB και ότι το διάνυσμα μπορεί να μην είναι ομοιόμορφα κατανεμημένο. Μπορούμε, αν θέλουμε, να αυξομειώσουμε την ακρίβεια στην εντολή ode45 με το να δώσουμε περισσότερα δεδομένα εξόδου. Για να δείτε πως γράψτε help ode45 στη MATLAB. Παράδειγμα 11.2.1 Θα βρούμε μια προσέγγιση για τη λύση του Π.Α.Τ. χρησιμοποιώντας την εντολή ode45. >> f = @(,y) y.*(2-y); >> [,y]=ode45(f,[0,1],3); y () = y(2 y), 0 1 y(0) = 3 Βάλαμε ; στο τέλος της εντολής για να μην δούμε τις τιμές που παίρνουμε μια και τα διανύσματα μπορεί να είναι αρκετά μεγάλα: >> lengh(y) ans = 41 Η γραφική παράσταση της λύσης που πήραμε δίνεται πιο κάτω: 277

Γ. Γεωργίου & Χρ, Ξενοφώντος >> plo(,y,'-rx') >> xlabel('') >> ylabel('y') >> ile('soluion o y''()=y(2-y), in [0, 1], y(0)=3') 3 Soluion o y'()=y(2-y), in [0, 1], y(0)=3 y 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 6 Η ακριβής λύση του πιο πάνω Π.ΑΤ είναι yex () =, και πιο κάτω δείχνουμε τη 2 3 e γραφική παράσταση του σφάλματος y () y () : >> yex=@() 6./(3-exp(-2*)); >> plo(,abs(y-yex()),'*r') >> plo(,abs(y-yex()),'*-r') >> xlabel('') >> ylabel(' y_{exac}-y ') >> ile('absolue Error') ex 5 x 10-6 Absolue Error 4.5 4 3.5 3 y exac -y 2.5 2 1.5 1 0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Πράγματι, έχουμε ακρίβεια της τάξης του 10 6. 278

11. Συνήθεις διαφορικές εξισώσεις 11.3 Συστήματα ΣΔΕ Εκτός από Π.Α.Τ., η εντολή ode45 μπορεί να χρησιμοποιηθεί και για συστήματα Σ.Δ.Ε., όπως για παράδειγμα το πιο κάτω 3 3 σύστημα αρχικών τιμών (Σ.ΑΤ): x 1() = f1(, x1, x2, x3) x2 () = f2(, x1, x2, x3) x3 () = f3(, x1, x2, x3) x ( ) = a, x ( ) = a, x ( ) = a 1 0 1 2 0 2 3 0 3 όπου οι συναρτήσεις fi (, x1, x2, x3), i= 1,2,3, το σημείο 0 και οι τιμές a i, i = 1, 2, 3 είναι δεδομένα, και θέλουμε να προσδιορίσουμε τις συναρτήσεις x1(), x2(), x3(). Αν γράψουμε το πιο πάνω σύστημα σε διανυσματική μορφή, τότε έχουμε d ( x () ) = [ F ] x () d x ( 0) = [ a1, a2, a3] που μοιάζει με το ΠΑΤ που μελετήσαμε προηγουμένως. Ας δούμε ένα παράδειγμα: 8 x1 () = x1() + x2() x3() 3 x2 () = 10 x2() + 10 x3() x 3() = x2() x1() + 28 x2() x3() x1(0) = 20, x2(0) = 5, x3(0) = 5 το οποίο γράφουμε σε διανυσματική μορφή ως εξής: 8 8 0 x2( ) 0 x2( ) x 1() 3 x1() 3 d x2( ) 0 10 10 x2( ) = ( x( ) ) = 0 10 10 x( ) d x 3() x2() 28 1 x3() x2() 28 1 [ F ] και x (0) = [20,5, 5]. Τώρα, για να χρησιμοποιήσουμε την εντολή ode45, θα πρέπει να ορίσουμε τον πίνακα [F], που ορίζει τις συναρτήσεις του δεξιού μέλους του συστήματος, σε ένα m- file (μια και δεν μπορούμε να τον ορίσουμε σαν μια ανώνυμη συνάρτηση). Για το παράδειγμα μας τον ορίζουμε στο m-file odefun.m, που φαίνεται πιο κάτω: funcion [xprime] = odefun(,x) [xprime] = odefun(,x) - This funcion corresponds o he RHS of he sysem of ODEs, in which x=[x(1), x(3), x(3)] represens he (vecor) of unknown funcions. xprime = [-8/3,0,x(2);0,-10,10;-x(2),28,-1]*x; End of m-file odefun.m 279

Γ. Γεωργίου & Χρ, Ξενοφώντος Η εντολή ode45 χρησιμοποιείται όπως και πριν [, x] = ode45(@odefun, _span, a) αλλά, τώρα, τα δεδομένα εισόδου και εξόδου έχουν ως εξής: οdefun: το όνομα του m-file που ορίζει τον πίνακα [F]. Παρατηρούμε ότι μια και δίνουμε ένα m-file σαν δεδομένο εισόδου, χρειάζεται να βάλουμε το @ πριν από το όνομα του m-file όταν καλούμε την ode45. _span: το διάνυσμα [, T] όπου ανήκει το αυτό πρέπει να δοθεί με αγκύλες a: το διάνυσμα [a 1, a 2, a 3 ] με τις αρχικές τιμές : το διάνυσμα με τα σημεία 0, 1, 2... 0 x: ένας πίνακας του οποίου η κάθε στήλη αντιστοιχεί στις προσεγγιστικές τιμές των λύσεων [ x1, x2, x 3] Για το παράδειγμα μας έχουμε 0 = 0, [a 1, a 2, a 3 ] = [20, 5, 5], και ας υποθέσουμε ότι το ανήκει στο διάστημα [0, 12]. Γράφουμε >> [,x] = ode45(@odefun,[0,12],[20,5,-5]); με ; στο τέλος για να μην τυπωθούν οι απαντήσεις στην οθόνη. Για να δούμε τις γραφικές παραστάσεις όλων των λύσεων (στους ίδιους άξονες) γράφουμε: >> plo(,x) >> xlabel('') >> ylabel('soluion funcions') >> legend('x_1()','x_2()','x_3()') 50 40 x 1 () x 2 () x 3 () 30 20 Soluion funcions 10 0-10 -20-30 0 2 4 6 8 10 12 Για να πάρουμε τη γραφική παράσταση μιας από τις λύσεις, π.χ. της x 2 (), γράφουμε >> plo(,x(:,2)) 280

11. Συνήθεις διαφορικές εξισώσεις Παράδειγμα 11.3.1 Θεωρούμε το εξής Σ.ΑΤ: x () = 2 x () 2 x () x () x () 2 2 x () x () = x x x x 1 1 1 2 1 1 1 2() = 1() 2() 2() x 2() x2() 1 x2() με αρχικές συνθήκες x1(0) = 1, x2(0) = 3, και [0,20]. Το m-file που ορίζει τον πίνακα του δεξιού μέλους έχει ως εξής: funcion [xprime] = odefun(,x) [xprime] = odefun(,x) - This funcion corresponds o he RHS of he sysem of ODEs, in which x=[x(1),x(2)] represens he (vecor) of unknown funcions. The funcion will be passed as inpu ino he ODE solver. xprime = [2, -2*x(1); x(2), -1]*x; End of m-file odefun.m Γράφουμε >> [,x] = ode45(@odefun,[0,12],[1,3]); >> plo(,x) >> legend('x_1()','x_2()') >> xlabel('') >> ylabel('soluion funcions') και παίρνουμε το γράφημα: 4.5 4 x 1 () x 2 () Soluion funcions 3.5 3 2.5 2 1.5 1 0.5 0 0 2 4 6 8 10 12 281

Γ. Γεωργίου & Χρ, Ξενοφώντος 11.4 Ασκήσεις 11.1 Θεωρούμε το εξής ΠΑΤ. y () = cos( + y), [0,3] y(0) = 0 του οποίου η ακριβής λύση είναι y () = + 2arcan(). Χρησιμοποιείστε το m-file euler.m που γράψαμε, με βήμα h = 0.1, για να βρείτε μια προσέγγιση της λύσης. Να κάνετε τη γραφική παράσταση της λύσης που πήρατε μαζί με την ακριβή λύση στους ίδιους άξονες οι οποίοι πρέπει να έχουν ετικέτες, τίτλο και λεζάντα. Επαναλάβετε με βήμα h = 0.05 και 0.01. 11.2 Για το ΠΑΤ της προηγούμενης άσκησης, χρησιμοποιείστε την εντολή βιβλιοθήκης ode45 για να βρείτε μια προσέγγιση της λύσης. Να κάνετε τη γραφική παράσταση της λύσης που πήρατε μαζί με την ακριβή λύση στους ίδιους άξονες οι οποίοι πρέπει να έχουν ετικέτες, τίτλο και λεζάντα. 11.3 Θεωρούμε το ΠΑΤ y ( x) = x y, y(0) = 0, x [0,1], του οποίου η ακριβής λύση είναι y(x) = e x + x 1. Ορίστε το δεξιό μέλος της ΣΔΕ σαν μια ανώνυμη συνάρτηση f, όπως επίσης και το διάνυσμα με τα εξής βήματα >> h=[0.2,0.1,0.05,0.01,0.005]; και τρέξτε το m-file euler.m που γράψαμε, μέσω του βρόχου >> for i=1:lengh(h) [y,x] = euler(f,0,0,1,h(i)); yex=exp(-x)+x-1; E(i) = max(abs(yex-y)); end για να υπολογίσετε την προσέγγιση της λύσης (y), την ακριβή λύση (yex) και το μέγιστο σφάλμα (E) μεταξύ της προσέγγισης και της ακριβής λύσης στα σημεία που δίνονται από το διάνυσμα x. Στη συνέχεια, κάντε τη γραφική παράσταση του σφάλματος έναντι του βήματος, σε λογαριθμική κλίμακα: >> loglog(h,e,'o-') Τι είναι η κλίση της ευθείας που παίρνετε; Σημείωση: Η πιο πάνω άσκηση μας δίνει την απάντηση στο ερώτημα Πόσο γρήγορα τείνει το σφάλμα στο μηδέν όταν το βήμα τείνει στο μηδέν; Η εξήγηση έχει ως εξής: Εύκολα μπορούμε να παρατηρήσουμε ότι όταν το h 0, έχουμε max Error 0. Έστω ότι E(h) := max Error ~ h p, για κάποιο p > 0 το οποίο 0 x 1 0 x 1 καθορίζει την ταχύτητα σύγκλισης της μεθόδου, δηλ. μας λέει πόσο γρήγορα τείνει το σφάλμα στο μηδέν όταν το βήμα τείνει στο μηδέν. Τότε, έχουμε p p Eh ( )~ h Eh ( ) Ch για κάποια σταθερά C (όταν το h είναι αρκετά μικρό). Παίρνοντας τον λογάριθμο, βρίσκουμε ln( Eh ( )) ln( Ch p ) ln( Eh ( )) ln( C) + pln( h) Αν θέσουμε Y = ln( E( h )), X = ln( h) και B = ln( C), τότε έχουμε την σχέση Y = px + B 282

11. Συνήθεις διαφορικές εξισώσεις άρα η γραφική παράσταση του X έναντι στο Y θα είναι ευθεία της οποίας η κλίση θα είναι το p. 11.4 Χρησιμοποιήστε την εντολή ode45 για να λύσετε τα πιο κάτω ΣΑΤ: (α) (β) (γ) dx1 d dx2 d dx1 d dx2 d = 3x 4 x ; x (0) = 1 1 2 1 = 2x 3 x ; x (0) = 1 1 2 2 = ( 0.1) xx ; x(0) = 10 1 2 1 = x ; x (0) = 15 1 2 dx = xz ; x(0) = 0 d dy = xz ; y(0) = 1 d dz = xy /2; z(0) = 1 d 283

Γ. Γεωργίου & Χρ, Ξενοφώντος 284