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

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

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

Δυναμική Μηχανών I. Διάλεξη 10. Χειμερινό Εξάμηνο 2013 Τμήμα Μηχανολόγων Μηχ., ΕΜΠ

Δυναμική Μηχανών I. Αριθμητική Επίλυση Δυναμικών Συστημάτων στο Περιβάλλον MATLAB και Simulink

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

METΡΗΣΗ ΤΗΣ ΕΠΙΤΑΧΥΝΣΗΣ ΤΗΣ ΒΑΡΥΤΗΤΑΣ ΜΕ ΤΟ ΑΠΛΟ ΕΚΚΡΕΜΕΣ

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

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ

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

Προσομoίωση Απόκρισης Συστήματος στο MATLAB

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

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

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

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

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

Θέματα Παγκύπριων Εξετάσεων

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

website:

Το ελαστικο κωνικο εκκρεμε ς

Άσκηση 3 Υπολογισμός του μέτρου της ταχύτητας και της επιτάχυνσης

1 Επίλυση Συνήθων ιαφορικών Εξισώσεων

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

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

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

ΕΝΩΣΗ ΚΥΠΡΙΩΝ ΦΥΣΙΚΩΝ

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Ευθύγραμμη Κίνηση

Ψευδοκώδικας. November 7, 2011

Μελετήστε την θεωρία που αφορά Επαναληπτικές Μεθόδους Επίλυσης Γραμμικών Συστημάτων.

Κεφάλαιο 11 ΣΥΝΤΗΡΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Επανεξέταση του αρμονικού ταλαντωτή

Δύναμη ελατηρίου και θετικές φορές

ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΚΙΝΗΣΗΣ ΤΩΝ ΣΩΜΑΤΩΝ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ. υ = σταθερη (1) - Με διάγραμμα :

M m l B r mglsin mlcos x ml 2 1) Να εισαχθεί το µοντέλο στο simulink ορίζοντας από πριν στο MATLAB τις µεταβλητές Μ,m,br

2.1 Τρέχοντα Κύματα. Ομάδα Ε.

Γ ΛΥΚΕΙΟΥ ΚΥΜΑΤΑ ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ. Επιμέλεια: ΑΓΚΑΝΑΚΗΣ A.ΠΑΝΑΓΙΩΤΗΣ, Φυσικός.

Δυναμική. Ομάδα Γ. Δυναμική Κατακόρυφη βολή και γραφικές παραστάσεις Κατακόρυφη βολή και κάποια συμπεράσματα.

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΦΥΣΙΚΗ ΚΑΤΕΥΘΥΝΣΗΣ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : OKTΩΒΡΙΟΣ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7

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

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

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

ΕΝΟΤΗΤΑ 1.1: ΠΕΡΙΟΔΙΚΟ ΦΑΙΝΟΜΕΝΟ ΑΠΛΗ ΑΡΜΟΝΙΚΗ ΤΑΛΑΝΤΩΣΗ (ΚΙΝΗΜΑΤΙΚΗ ΚΑΙ ΔΥΝΑΜΙΚΗ ΠΡΟΣΕΓΓΙΣΗ) 1ο σετ - Μέρος Β ΘΕΜΑ Β

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

. Πρόκειται για ένα σημαντικό βήμα, καθώς η παράμετρος χρόνος υποχρεωτικά μεταβάλλεται σε κάθε είδους κίνηση. Η επιλογή της χρονικής στιγμής t o

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

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

2.1 Τρέχοντα Κύματα. Ομάδα Δ.

ΥΔΡΟΚΙΝΗΤΗ ΔΙΑΤΑΞΗ ΓΟΥΔΙ ΓΙΑ TΟ ΑΛΕΣΜΑ ΤΟΥ ΡΥΖΙΟΥ

Συστήματα Αναμονής (Queuing Systems)

Το βαρυτικό πεδίο της Γης.

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη;

A2. Θεωρήστε ότι d << r. Να δώσετε μια προσεγγιστική έκφραση για τη δυναμική ενέργεια συναρτήσει του q,d, r και των θεμελιωδών σταθερών.

ΕΝΩΣΗ ΚΥΠΡΙΩΝ ΦΥΣΙΚΩΝ

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

2.1 Τρέχοντα Κύµατα. Οµάδα.

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

Θερμοδυναμική - Εργαστήριο

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

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

1.1. Κινηματική Ομάδα Δ.

ΕΝΩΣΗ ΚΥΠΡΙΩΝ ΦΥΣΙΚΩΝ

2 Η ΠΡΟΟΔΟΣ. Ενδεικτικές λύσεις κάποιων προβλημάτων. Τα νούμερα στις ασκήσεις είναι ΤΥΧΑΙΑ και ΟΧΙ αυτά της εξέταση

Μηχανική Στερεού Ασκήσεις Εμπέδωσης

ΚΕΦΑΛΑΙΟ 2 Ο : ΚΥΜΑΤΑ ΕΝΟΤΗΤΑ 2: ΕΠΑΛΛΗΛΙΑ ΚΥΜΑΤΩΝ ΣΥΜΒΟΛΗ ΚΥΜΑΤΩΝ ΣΤΑΣΙΜΑ ΚΥΜΑΤΑ ΛΥΜΕΝΑ ΘΕΜΑΤΑ ΘΕΜΑ Β

papost/

ΕΡΩΤΗΣΕΙΣ ΑΝΟΙΧΤΟΥ ΤΥΠΟΥ

Απλή αρμονική ταλάντωση με χρήση Multilog

ΕΝΩΣΗ ΚΥΠΡΙΩΝ ΦΥΣΙΚΩΝ

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

Κεφάλαιο 1. Κίνηση σε μία διάσταση

Προσεγγιστική λύση Γραμμικών Συστημάτων με την μέθοδο Gauss-Seidel. Δημιουργία κώδικα στο Matlab

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

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ]

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

Ενότητα 2: Εντολές Επανάληψης

5ο ιαγώνισµα - Επαναληπτικό ΙΙ. Θέµα Α

Κεφάλαιο M2. Κίνηση σε μία διάσταση

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

f x και τέσσερα ζευγάρια σημείων

ΚΕΦΑΛΑΙΑ 3,4. Συστήµατα ενός Βαθµού ελευθερίας. k Για E 0, η (1) ισχύει για κάθε x. Άρα επιτρεπτή περιοχή είναι όλος ο άξονας

ΕΧΕΙ ΤΑΞΙΝΟΜΗΘΕΙ ΑΝΑ ΕΝΟΤΗΤΑ ΚΑΙ ΑΝΑ ΤΥΠΟ ΓΙΑ ΔΙΕΥΚΟΛΥΝΣΗ ΤΗΣ ΜΕΛΕΤΗΣ ΣΑΣ ΚΑΛΗ ΕΠΙΤΥΧΙΑ ΣΤΗ ΠΡΟΣΠΑΘΕΙΑ ΣΑΣ ΚΙ 2014

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

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

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

2.1 Τρέχοντα Κύματα. Ομάδα Δ.

Γεώργιος Ακρίβης. Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

4 Αρμονικές Ταλαντώσεις 1 γενικά 17/9/2014

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΦΥΣΙΚΗ ΚΑΤΕΥΘΥΝΣΗΣ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΙΑΝΟΥΑΡΙΟΣ 2016 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

ΦΥΕ 14 5η ΕΡΓΑΣΙΑ Παράδοση ( Οι ασκήσεις είναι βαθμολογικά ισοδύναμες) Άσκηση 1 : Aσκηση 2 :

Κεφάλαιο 6α. Περιστροφή στερεού σώματος γύρω από σταθερό άξονα

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

ΕΡΓΑΣΙΑ 3 η. Παράδοση Οι ασκήσεις είναι βαθμολογικά ισοδύναμες

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

Transcript:

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

Σκοπός αυτού του εργαστηρίου είναι να δούμε πως μπορούμε να επιλύσουμε συστήματα διαφορικών εξισώσεων, με την χρήση του Matlab. Συστήματα διαφορικών εξισώσεων ης τάξης Ενα σύστημα Σ.Δ.Ε. γράφεται ως εξής: Εστω m N, f : [a, b] R m R m και y R m. Ζητείται συνάρτηση y : [a, b] R m που να ικανοποιεί { y (t) = f(t, y(t)), t [a, b], () y(a) = y. Ενα τέτοιο σύστημα λύνεται με αντίστοιχο τρόπο όπως στην περίπτωση των βαθμωτών συναρτήσεων, οπότε η μέθοδος Euler σε αυτή τη περίπτωση γράφεται: ) y n+ (k) = y(k) (t n + hf n, y(k) n, n =,,..., N, k =,,..., m, () όπου h = (b a)/n είναι το βήμα μας και y(k) n είναι η k-οστή συνιστώσα της προσέγγισής μας στην χρονική στιγμή t n, όπου t n = t + nh. Τέτοια συστήματα προκύπτουν πολλές φορές όταν προσπαθούμε να λύσουμε μια Σ.Δ.Ε. υψηλότερης τάξης την οποία γράφουμε ισοδύναμα ως ένα σύστημα ης τάξης. Ενα χαρακτηριστηκό παράδειγμα είναι το απλό εκκρεμές που θα δούμε παρακάτω. Μετατροπή δευτεροβάθμιας εξίσωσης σε σύστημα πρώτου βαθμού (εξίσωση για το απλό εκκρεμές). Ενα απλό εκκρεμές αποτελείται από σημειακή μάζα στο άκρο μιάς ράβδου μήκους L που στηρίζεται σε κάποιο καρφί (χωρίς τριβή). Αν η βαρύτητα είναι η μόνη δύναμη που ενεργεί τότε η ταλάντωση του εκκρεμούς διαμορφώνεται από την εξίσωση d θ dt = g sin(θ), (3) L όπου θ είναι η γωνιακή θέση της ράβδου, με θ = αν η ράβδος κρέμεται κάτω από το καρφί και θ = π αν η ράβδος ξεκινάει τη ταλάντωση ακριβώς πάνω από το καρφί. Πάρτε L = 5cm και g = 9.8m/s. Οι αρχικές συνθήκες είναι dθ θ() = θ, και () =. (4) dt Εάν η αρχική γωνία θ δεν είναι αρκετά μεγάλη, τότε η προσέγγιση sin(θ) = θ μπορεί να χρησιμοποιηθεί και οδηγεί στο γραμμικό μοντέλο του ταλαντωτή d θ dt = g θ, (5) L το οποίο λύνεται έυκολα και με τις αρχικές συνθήκες που έχουμε η ακριβής λύση είναι θ(t) = θ cos(t g/l). (6) Η εξίσωση (5) μπορεί να γραφτεί ως σύστημα ης τάξης κάνοντας την εξής αλλαγή μεταβλητών: y = θ και y = dθ οπότε και προκύπτει το σύστημα dt dy dt = y, dy dt = g (7) L y, ή αλλιως dy dt = Ay με y = ( y y ) και A = ( g L ). (8)

3 Υλοποίηση της μεθόδου Euler για συστήματα Παίρνοντας αφορμή από το παραπάνω παράδειγμα ας προσπαθήσουμε να υλοποιήσουμε με τη βοήθεια της MatLab τη μέθοδο Euler στο σύστημα (8). Ξεκινάμε φτιάχνοντας ένα αρχείο myeuler.m που θα περιέχει το κώδικα function [t,y]=myeuler(a,b,ya,n) h=(b-a)/n; 3 t=zeros(,n+); 4 y=zeros(,n+); 5 t()=a; 6 y(:,)=ya; 7 for i=:n 8 y(:,i+)=y(:,i)+h*f(t(i),y(:,i)); 9 t(i+)=t(i)+h; end Ας παρατηρήσουμε εδώ πως, σε αντίθεση με την συνάρτηση myeuler.m που υλοποιήσαμε στο προηγούμενο εργαστήριο, το y πλέον έχει διάσταση N, διάσταση την οποία πρέπει να έχει και η αρχική τιμή της εξίσωσης, ya. Στην γραμμή 6, αναθέτουμε το διάνυσμα αρχικών τιμών, στην πρώτη στήλη του y, χρησιμοποιώντας την σύνταξη y(:,)=ya; η οποία υποδηλώνει πως θα αντικαταστήσουμε ολόκληρη την πρώτη στήλη του y με το ya. Αντίστοιχα, μέσα στην επανάληψη και συγκεκριμένα στην γραμμή 8, δουλεύουμε με ολόκληρες τις στήλες i και i + του y. Μετά, θα δημιουργήσουμε ένα αρχείο f.m το οποίο θα περιέχει το δεξί μέλος του συστήματος, και θα περιγράφεται από τον εξής κώδικα: function [z]=f(t,y) L=.5; 3 g=9.8; 4 z = zeros(size(y)); 5 z()=y(); 6 z()=-(g/l)*y(); Επίσης, για την ακριβή λύση θα φτιάξουμε δύο αρχεία exact th.m και exact th t.m για την θ και την dθ dt αντίστοιχα. function [z]=exact th(t,th) L=.5; 3 g=9.8; 4 z=th*cos(sqrt(g/l)*t); function [z]=exact th t(t,th) L=.5; 3 g=9.8; 4 z=-th*sqrt(g/l)*sin(sqrt(g/l)*t); Για να υπολογίσουμε τις προσεγγίσεις y n εντολές: της y(t), εκτελούμε ένα μικρό script με τις παρακάτω clear all; th=pi/6; 3 y=[th,]; 4 T=.485; 5 t=.; 6 N=5; 7 [t,y]=myeuler(t,5*t,y,n); 8 plot(t,y(,:),t,exact th(t,th),'r') 9 legend('','') 3

οπότε και προκύπτει το παρακάτω γράφημα.5.5.5.5 3 4 5 6 7 8 Σχήμα : Προσσεγιστική λύση με τη μέθοδο του Euler (μπλέ γραμμή) και ακριβής λύση (κόκκινη γραμμή), για την εξίσωση (8), για N = 5. Να παρατηρήσουμε πως παρόλο που υποβαθμίσαμε την δεύτερης τάξης εξίσωση σε ένα σύστημα δύο εξισώσεων πρώτης τάξης, η λύση που ζητάμε είναι αυτό που αντιστοιχεί στην πρώτη στήλη του διανύσματος y ή, αντίστοιχα, το y όπως έχει δηλωθεί στο σύστημα (8). 4 Διάγραμμα φάσης Το διάγραμμα φάσης μπορεί να φτιαχτεί με τις εντολές >>plot(exact th(t,th),exact th t(t,th),'r') hold on 3 plot(y(,:),y(,:),'b') και βλέπουμε το αποτέλεσμά τους στο Σχήμα. Παρατηρούμε πως για την ακριβή λύση έχουμε μία μόνο τροχιά, ενώ το διάγραμμα φάσης για την προσεγγιστική μας λύση είναι μία σπείρα που εκτείνεται προς τα έξω. 6 4 4 6 Σχήμα : Διάγραμμα φάσης της λύσης με τη μέθοδο του Euler (μπλέ γραμμή) και της ακριβής λύση (κοκκινη γραμμή), για την εξίσωση (6), για N = 5. Το επόμενο βήμα μας είναι να χρησιμοποιήσουμε περισότερα σημεία για την προσέγγιση της λύσης μας και συγκεκριμένα χρησιμοποιούμε N = 496 σημεία. Τότε παρατηρούμε πως η σπείρα που περιγράφει το διάγραμμα φάσης της προσέγγισής μας είναι πιο συγκεντρωμένο. 4

.5.5.5.5.5.5 Σχήμα 3: Διάγραμμα φάσης της λύσης με τη μέθοδο του Euler (μπλέ γραμμή) και ακριβής λύση (κόκκινη γραμμή), για το σύστημα (8), για N = 496. 5 Οι συναρτήσεις ode3 και ode45 Η Matlab, και συγκεκριμένα το Ordinary Differential Equations Toolbox περιέχει ένα μεγάλο α- ριθμό από αλγορίθμους για την αριθμητική επίλυση συνήθων διαφορικών εξισώσεων. Σε αυτές τις σημειώσεις, θα μιλήσουμε για συγκεκριμένες μεθόδους, τις ode3 και ode45. Οι μέθοδοι αυτοί υ- λοποιούν δύο μεθόδους Runge-Kutta που προσαρμόζουν το βήμα τους ώστε να έχουν ένα επιθυμητό τοπικό και απόλυτο σφάλμα. Η ode3 εφαρμόζει μεθόδους R-K τάξης και 3, ενώ η ode45 τάξης 4 και 5. Η συνάρτηση ode45 χρησιμοποιείται πιο συχνά, ενώ η ode3 χρησιμοποιείται στην περίπτωση που προσπαθούμε να λύσουμε ένα άκαμπτο σύστημα. Αυτό γίνεται διότι λόγω της υψηλής τάξης των μεθόδων που χρησιμοποιεί η ode45, ο χρόνος υπολογισμού της λύσης ενός άκαμπτου συστήματος είναι πολύ μεγάλος. Εδώ θα δείξουμε ένα παράδειγμα για το πώς εκτελείται η συνάρτηση ode45. Ο τρόπος εκτέλεσης της ode3 είναι ακριβώς ο ίδιος (η μόνη διαφορά είναι η τάξη ακρίβειας των μεθόδων που χρησιμοποιούνται). Η ode45 λοιπόν καλείται ως >> [t,y] = ode45(odefun,tspan,y);, όπου odefun πρέπει να επιστρέφει ένα διάνυσμα στήλη με τιμές που αντιστοιχούν στην συνάρτηση f(t, y), ενώ tspan είναι το διάστημα στο οποίο υπολογίζουμε την προσέγγισή μας και y είναι η αρχική τιμή. Σε περίπτωση που θέλουμε να επιβάλουμε συγκεκριμένες τιμές για το απόλυτο και σχετικό σφάλμα, τότε μπορούμε να εκτελέσουμε την ode45 ως >> options = odeset( RelTol,e-4, AbsTol,[e-4 e-4]); >> [t,y] = ode45(odefun,tspan,y,options); Με την εντολή odeset ορίζουμε κάποιες ιδιότητες τις οποίες θέλουμε να ικανοποιούνται κατά την εκτέλεση της ode45. Για μία λίστα με όλες τις παραμέτρους που μπορούμε να αλλάξουμε, μπορείτε να συμβουλευτείτε τη βάση δεδομένων της Matlab για την συγκεκριμένη συνάρτηση, με την εντολή doc ode45. Οι προεπιλεγμένες τιμές για το σχετικό και απόλυτο σφάλμα των μεθόδων είναι 3 και 6 αντίστοιχα. Για να δοκιμάσουμε την συνάρτηση στο πρόβλημα που παρουσιάσαμε προηγουμένως, αρκεί να αλλάξουμε στην γραμμή 7 του script και να βάλουμε στη θέση της την γραμμή [t,y] = ode45(@f,[,5*t],y); Επίσης, επειδή η συνάρτηση ode45 επιστρέφει διανύσματα στήλες ενώ ο κώδικας για την μέθοδο Euler που υλοποιήσαμε πριν επιστρέφει διανύσματα γραμμές, πρέπει να τροποιποιήσουμε και την γραμμή που αντιστοιχεί στην εκτύπωση της γραφικής παράστασης, έτσι ώστε πλέον να σχεδιάζει την πρώτη στήλη του y και όχι την πρώτη γραμμή. Αυτό γίνεται απλά γράφοντας 5

plot(t,y(:,),t,exact th(t,th), r-- ) Τώρα, αν σχεδιάσουμε την προσεγγιστική και ακριβή λύση, όπως φαίνεται στο Σχήμα 4, βλέπουμε πως οι λύσεις συμπίπτουν ποιοτικά. Να τονίσουμε επίσης πως με την χρήση της ode45, χρειαστήκαμε μόνο 85 βήματα για να φτάσουμε στην λύση, ενώ όπως μπορούμε να δούμε και στο Σχήμα 3, η μέθοδος του Euler με 5 σημεία δεν προσεγγίζει την ακριβή λύση καθόλου καλά..6.4...4.6.8 3 4 5 6 7 8 Σχήμα 4: Προσσεγιστική λύση με τη μέθοδο ode45 (μπλέ γραμμή) και ακριβής λύση (κόκκινη γραμμή), για το σύστημα (8). Τέλος, αν δούμε το Σχήμα 5, είναι εμφανές πως η προσέγγισή μας είναι αρκετά καλή και όσον αφορά την πρώτη παράγωγο της λύσης μας, αφού τα διαγράμματα φάσης της προσεγγιστικής και ακριβούς λύσης μας συμπίπτουν ποιοτικά..5.5.5.5.5.5 Σχήμα 5: Διάγραμμα φάσης της λύσης με τη μέθοδο ode45 (μπλέ γραμμή) και ακριβής λύση (κόκκινη γραμμή), για το σύστημα (8). 6