Mathematical Modeling: laboratory exercises

Εργαστηριακές ασκήσεις

  1. Γλώσσες προγραμματισμού
  2. Χημικός δεσμός: Μοντέλο Lennard-Jones
  3. Δυναμική φορτίων: (α) Κίνηση φορτίου σε ηλεκτρικό και μαγνητικό πεδίο.
  4. Δυναμική δινών: (α) Δίνη σε εξωτερικό πεδίο.
  5. Πληθυσμιακά μοντέλα για ένα είδος: (α) Απλό μοντέλο ανάπτυξης (διακριτό), (α) Απλό μοντέλο ανάπτυξης, (β) Μοντέλο λογιστικής ανάπτυξης.
  6. Πληθυσμιακά μοντέλα κυνηγού-θηράματος: Μοντέλο Lotka-Volterra.
  7. Πληθυσμιακά μοντέλα ανταγωνισμού ειδών: Μοντέλο ανταγωνισμού δύο ειδών.
  8. Διάδοση επιδημίας: Μοντέλο SIR.
  9. Χώρος φάσεων, γραμμικά συστήματα: (α) συνήθη σημεία ισορροπίας, (β) εκφυλισμένα σημεία ισορροπίας, (γ) χρήση πρώτου ολοκληρώματος.
  10. Μακροοικονομία: (α) Basic growth model, (β) Μοντέλο εθνικής οικονομίας I-C-G.
  11. Χώρος φάσεων, μη-γραμμικά συστήματα: (α) Απλό εκκρεμές. (β) Αναρμονικές ταλαντώσεις.
  12. Βιβλιογραφία.

Κατάλογος εργαστηρίων (εαρινό εξάμηνο 2016)

Γλώσσες προγραμματισμού

Εισαγωγή στο matlab: μεταβλητές, συναρτήσεις, γραφικές παραστάσεις.

(α) Εκχώριση τιμής σε μεταβλητή. Ορισμός πίνακα, τιμές πίνακα. Εκτύπωση στην οθόνη. Πράξεις με μεταβλητές. Πράξεις με πίνακες.
(β) Γραφική παράσταση. Εκτύπωση γραφικής παράστασης.
(γ) Κώδικας σε ξεχωριστό αρχείο. Ορισμός συνάρτησης.


Εισαγωγή στο matlab: διαφορικές εξισώσεις

(α) Αριθμητική επίλυση διαφορικών εξισώσεων.

Ερωτήσεις:

Εισαγωγή στην python

(α) Εκχώριση τιμής σε μεταβλητή. Εκτύπωση στην οθόνη.
(β) Γραφική παράσταση.
(γ) Ορισμός συνάρτησης.

Χημικός δεσμός

Άσκηση (Δυναμικό Lennard-Jones)
θεωρήστε το δυναμικό Lennard-Jones το οποίο περιγράφει χημικό δεσμό μεταξύ δύο ατόμων: \[ V(r) = D\left(\frac{R}{r}\right)^{12} - 2 \left(\frac{R}{r}\right)^6. \] (α) Σχεδιάστε το δυναμικό (επιλέξτε τιμές για τις παραμέτρους) καθώς και την αρμονική του προσέγγιση γύρω από το ελάχιστο. (β) Γράψτε κώδικα ο οποίος να βρίσκει τη ζώνη κίνησης για δεδομένη τιμή της ενέργειας. (γ) Υπολογίστε την περίοδο της κίνησης (για κάθε τιμή της ενέργειας). Δώστε τα παραπάνω αποτελέσματα σε γραφική παράσταση και συγκρίνετε με την περίοδο ταλάντωσης στην αρμονική προσέγγιση.

Βρίσκουμε ότι το δυναμικό έχει ελάχιστο στη θέση $r_0=R D^{1/6}$ και αυτό έχει την τιμή $V(r_0)=-1/D$.
Αν σύστημα έχει ενέργεια $E_0$ με $ -1/D < E_0 < 0$, το διάστημα επιτρεπτής κίνησης είναι $r_1 \leq r \leq r_2$ όπου \[ r_{1,2} = \frac{r_0}{\left( 1 \pm \sqrt{1+D E_0} \right)^{1/6}}. \] Στην περίπτωση που το σύστημα βρίσκεται πάντα κοντά στο ελάχιστο της $V(r)$, δηλαδή γύρω από το $r=r_0$, τότε η δυναμική ενέργεια προσεγγίζεται από την \[ V(r) \approx \frac{1}{2}\, k \xi^2,\qquad \xi = r-r_0,\quad k = \frac{72}{R^2 D^{4/3}}. \] Η συχνότητα ταλάντωσης για μικρές αποκλίσεις $|\xi|$ είναι $\omega=\sqrt{k/m}$ όπου $m$ η μάζα του συστήματος.

Δείτε τον κώδικα python ο οποίος (α) κάνει γραφική παράσταση του δυναμικού (β) υπολογίζει τα αποτελέσματα που δίνονται παραπάνω για δεδομένες τιμές των παραμέτρων και (γ) υπολογίζει αριθμητικά την περίοδο ταλάντωσης για οποιαδήποτε τιμή της ενέργειας $E_0$.

Δυναμική φορτίων

Άσκηση (Κίνηση φορτίου σε ηλεκτρικό και μαγνητικό πεδίο)
Κατασκευάστε αριθμητικό κώδικα στον οποίο θα δίνονται οι αρχικές συνθήκες και θα παράγεται η τροχιά ενός σωματίου με φορτίο $q$ και μάζα $m$ το οποίο βρίσκεται σε σταθερά και ομογενή ηλεκτρικό $\vec{E}=(E_x,E_y,0)$ και μαγνητικό πεδίο $\vec{B}=(0,0,B)$. Σχεδιάστε (α) την τροχιά του φορτίου και (β) τον οδηγό κίνησης. (γ) Εξετάστε ειδικές περιπτώσεις. [Υπόδειξη: Θεωρήστε την περίπτωση στην οποία το σωμάτιο παραμένει στο επίπεδο το κάθετο στο μαγνητικό πεδίο.]

Εξισώσεις κίνησης \begin{align*} \frac{d \upsilon_x}{d\tau} & = \upsilon_y + \frac{E_x}{B} \\ \frac{d \upsilon_y}{d\tau} & = -\upsilon_x + \frac{E_y}{B}. \end{align*} όπου ορίσαμε \[ \tau = \omega_c\,t,\qquad\qquad \omega_c = \frac{qB}{m}. \] Οι συνιστώσες του οδηγού κίνησης είναι \[ R_x \equiv x + \frac{\dot{y}}{\omega_c}\,, \qquad R_y \equiv y - \frac{\dot{x}}{\omega_c} \]

Δείτε τον κώδικα python ο οποίος λύνει το πρόβλημα αρχικών τιμών, (α) σχεδιάζει την τροχιά του φορτίου, (β) σχεδιάζει την τροχιά του οδηγού κίνησης. (Εδώ θα βρείτε και τον αντίστοιχο κώδικα matlab, προσέξτε όμως διότι είναι σχετικά περίπλοκος, οπότε συνιστάται να τον απλοποιήσετε πριν τον χρησιμοποιήσετε.)
Η γραφική παράσταση που παράγει:
charge in E-B fields

Δυναμική δινών

Άσκηση (Δίνη σε εξωτερικό πεδίο)
(α) Γράψτε τη (γενική) Λαγκρανζιανή για μία δίνη σε εξωτερικό πεδίο το οποίο δίνεται από δυναμικό.
(β) Γράψτε κώδικα ο οποίος να λύνει τις εξισώσεις κίνησης για ένα γενικό δυναμικό. Σχεδιάστε λύσεις για ένα δυναμικό της επιλογής σας.
[ Υπόδειξη: Προσθέσθε έναν νέο κατάλληλο όρο δυναμικού στην ενέργεια είτε στη Λαγκρανζιανή και εξαγάγετε τις νέες εξισώσεις κίνησης.]

(α) Ένα γενικό δυναμικό είναι συνάρτηση της μορφής $V=V(x,y)$, ώστε η Λαγκρανζιανή είναι \[ L = \frac{\gamma}{2}\, (x\dot{y} - y\dot{x}) - V(x,y). \] Εξισώσεις κίνησης \[ \gamma \dot{x} = -\partial V/\partial y \qquad \gamma \dot{y} = \partial V/\partial x. \]

Δείτε τον κώδικα python ο οποίος λύνει το πρόβλημα αρχικών τιμών και σχεδιάζει την τροχιά της δίνης.
Η γραφική παράσταση που παράγει:
vortex in external potential

Άσκηση (Κίνηση ζεύγους δινών)
Θεωρήστε ένα σύστημα δύο αλληλεπιδρουσών δινών $\gamma_1, \gamma_2$ με δυναμικό αλληλεπίδρασης \[ V=-\gamma_1 \gamma_2\,\ln|\vec{r}_2-\vec{r}_1|. \] (α) Γράψτε κώδικα ο οποίος να επιλύει το πρόβλημα αρχικών τιμών για το σύστημα των εξισώσεων. (β) Σχεδιάστε τις τροχιές του συστήματος για μία περίπτωση. (γ) Σχεδιάστε τις συντεταγμένες κάθε δίνης με τον χρόνο. (δ) Ελέγξτε ότι στον αριθμητικό σας υπολογισμό οι ποσότητες οι οποίες είναι θεωρητικά διατηρήσιμες, πραγματικά διατηρούνται.

Δείτε τον κώδικα python (και το αρχείο δεδομένων το οποίο διαβάζει).

Πληθυσμιακά μοντέλα

Άσκηση (Ανάπτυξη πληθυσμού)
Θεωρήστε ότι ένας πληθυσμός N ζώων ζουν σε ένα δάσος. Κάθε χρόνο το 5% των ζευγαριών αποκτούν ένα παιδί.
(α) Γράψτε ένα πρόγραμμα το οποίο να υπολογίζει τον αριθμό των ζώων κάθε χρόνο για τα επόμενα n χρόνια. Κάνετε γραφική παράσταση N=N(i), όπου i είναι το έτος.
Ακολούθως θεωρήστε ότι κάθε χρόνο πεθαίνουν 1.5% των ζώων.
(β) Γράψτε ένα πρόγραμμα το οποίο να υπολογίζει τον αριθμό των ζώων κάθε χρόνο για τα επόμενα n χρόνια. Κάνετε γραφική παράσταση.


Άσκηση (Απλό μοντέλο ανάπτυξης πληθυσμού)
Μελετήστε το απλό μοντέλο ανάπτυξης ενός πληθυσμού N(t): \[ \frac{dN}{dt} = -a N, \qquad a >0, \] (α) Λύστε αριθμητικά την εξίσωση για αρχική συνθήκη N(t=0)=N0 της επιλογής σας.
(β) Κάνετε γραφική παράσταση του πληθυσμού ως συνάρτηση του χρόνου N=N(t). (γ) Ποιά η αναλυτική λύση της εξίσωσης; Κάνετε σύγκριση με την αριθμητική λύση.

(α) Δείτε τον κώδικα matlab

(β,γ) Μπορείτε να βελτιώσετε το παραπάνω πρόγραμμα και την παραγόμενη γραφική παράσταση με τους εξής τρόπους:

Δείτε τον βελτιωμένο κώδικα matlab και τον αντίστοιχο κώδικα python.

Η γραφική παράσταση από τον βελτιωμένο κώδικα matlab:

simple growth model

Δείτε τη γραφική παράσταση των αποτελεσμάτων με το plot.ly εδώ.

Ερωτήσεις:

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


Άσκηση (Μοντέλο λογιστικής ανάπτυξης πληθυσμού)
Μελετήστε το μοντέλο λογιστικής ανάπτυξης ενός πληθυσμού N(t): \[ \frac{dN}{dt} = a \left( 1 - \frac{N}{K} \right) N, \] όπου a και K είναι θετικές σταθερές.
(α) Γράψτε την εξίσωση σε αδιάστατη μορφή.
(β) Λύστε αριθμητικά την εξίσωση για αρχική συνθήκη N(t=0)=N0 της επιλογής σας.
(γ) Σχεδιάστε τον πληθυσμό ως συνάρτηση του χρόνου N(t) και συγκρίνετε την αριθμητική με την ακριβή λύση.

(α) Ορίζουμε τις μεταβλητές τ=? και n=? και έχουμε
dn/dτ = (1-n) n

(β) Δείτε τον κώδικα matlab εδώ και την απαραίτητη function εδώ.

Παρατηρήσεις:

(γ) Η ακριβής λύση είναι: N(t) = [N0 K exp(at)]/[K + N0 (exp(at)-1)]
και στις αδιάστατες μεταβλητές είναι: n(τ) = [n0 exp(τ)]/[1 + n0 (exp(τ)-1)]

Η γραφική παράσταση από τον κώδικα matlab:

logistic growth model

Ερωτήσεις.

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


Άσκηση (Μοντέλο Lotka-Volterra)
Μελετήστε το μοντέλο Lotka-Volterra για τους πληθυσμούς δύο ειδών x, y: \begin{align} \dot{x} & = a x - c x y \\ \dot{y} & = -b y + d x y. \end{align} (α) Βρείτε το σημείο ισορροπίας του συστήματος (κάνετε μία δική σας επιλογή για τις σταθερές a, b, c, d > 0).
(β) Βρείτε αριθμητική λύση x(t), y(t) (για αρχική συνθήκη της επιλογής σας) και σχεδιάστε τους πληθυσμούς ως συναρτήσεις του χρόνου x=x(t), y=y(t).
(γ) Βρείτε αριθμητικές λύσεις και σχεδιάστε αρκετές καμπύλες στον χώρο των φάσεων (x, y).
(δ) Σχεδιάστε τις καμπύλες στο χώρο των φάσεων χρησιμοποιώντας το ολοκλήρωμα του συστήματος εξισώσεων.

(α) Θέτουμε \begin{align} a x - c x y = 0 \\ -b y + d x y = 0. \end{align} και βρίσκουμε ως λύση το σημείο $(x_0, y_0) = (b/d, a/c)$.

(β) Μπορείτε να βρείτε τον απαραίτητο κώδικα matlab στον ιστότοπο της Mathworks, εδώ.
Επίσης και στο [BF], σελ. 109.

Ο δικός μας κώδικας matlab βρίσκεται εδώ και η απαραίτητη function εδώ.
Ο δικός μας κώδικας python βρισκεται εδώ.

Προσέξτε τα ακόλουθα σημεία:

Ο κώδικας δίνει τις ακόλουθες γραφικές παραστάσεις (για δύο διαφορετικές αρχικές συνθήκες):
Lotka-Volterra solution       Lotka-Volterra solution

(γ) Επαναλαμβάνουμε τον αριθμητικό υπολογισμό για αρκετές αρχικές συνθήκες και σχεδιάζουμε καμπύλες στο επίπεδο (x, y). Η τακτική που ακολουθούμε για την επιλογή αρχικών συνθηκών και έλεγχο των αποτελεσμάτων είναι η εξής:

Ο κώδικας βρίσκεται εδώ.

Παίρνουμε το ακόλουθο αποτέλεσμα στον χώρο φάσεων:
Lotka-Volterra phase portrait


(δ) Για να σχεδιάσουμε το διάγραμμα φάσεων μπορούμε επίσης να χρησιμοποιήσουμε το ολοκλήρωμα το οποίο έχουμε βρει για το σύστημα Lotka-Volterra: \[ (c\,y - a \ln y) + (d\,x - b \ln x) = C. \] Πρέπει να σχεδιάσουμε ισοσταθμικές καμπύλες της συνάρτησης $H(x,y) = (c\,y - a \ln y) + (d\,x - b \ln x)$. Αυτό μπορούμε να το κάνουμε με το gnuplot, matlab, plot.ly.

Για παράδειγμα, στο gnuplot δίνουμε τις εντολές:
a=10; c = 4; b = 2; d = 1 # (δίνουμε τιμές στις παραμέτρους)
set contour; unset surface # (θα σχεδιάσουμε ισοσταθμικές και όχι επιφάνεια)
set isosamples 100,10 # (αριθμός σημείων κάθε γραμμής που σχεδιάζεται)
set xrange[0:7]; set yrange[0:7] # (όρια αξόνων)
set view 0,0 # (οπτική γωνία για τη γραφική παράσταση)
et cntrparam levels incremental 2,3,17 # (contour levels: 2,5,8,11,17)
splot c*y-a*log(y) + d*x - b*log(x) # (σχεδιάζουμε τις ισοσταθμικές)

Ερωτήσεις.

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

Άσκηση (Μοντέλο ανταγωνισμού δύο ειδών)
Μελετήστε το μοντέλο για τους πληθυσμούς δύο ειδών x, y τα οποία ανταγωνίζονται για το ίδιο είδος τροφής: \begin{align} \frac{d N_1}{dt} & = r_1 N_1\, \left(1 - \frac{N_1}{K_1} - b_{12} \frac{N_2}{K_1}\right) \\ \frac{d N_2}{dt} & = r_2 N_2\, \left(1 - \frac{N_2}{K_2} - b_{21} \frac{N_1}{K_2}\right), \nonumber \end{align} (α) Βρείτε τα σημεία ισορροπίας του συστήματος.
(β) Βρείτε αριθμητική λύση x(t), y(t) (για αρχική συνθήκη της επιλογής σας) και σχεδιάστε τους πληθυσμούς ως συναρτήσεις του χρόνου N1(t), N2(t).
(γ) Βρείτε αριθμητικές λύσεις και σχεδιάστε αρκετές καμπύλες στον χώρο των φάσεων (N1, N2).

(α) Κάνουμε αδιαστατοποίηση του συστήματος: \begin{align} \frac{d u_1}{dt} & = u_1\, \left(1 - u_1 - a_{12}\,u_2 \right) \\ \frac{d u_2}{dt} & = \rho u_2\, \left(1 - u_2 - a_{21}\,u_1\right), \nonumber \end{align} Έχουμε σημεία ισορροπίας: \[ (u_1, u_2) = (0,0), \quad (u_1, u_2) = (1,0),\quad (u_1, u_2) = (0,1), \] \[ (u_1, u_2) = \left( \frac{1-a_{12}}{1-a_{12} a_{21}}, \frac{1-a_{21}}{1-a_{12} a_{21}} \right). \]

(β) Δείτε έναν κώδικα matlab εδώ και την απαραίτητη function εδώ.

Προσέξτε τα ακόλουθα σημεία:

Ο κώδικας δίνει τις ακόλουθες γραφικές παραστάσεις (για δύο διαφορετικές αρχικές συνθήκες):
two-sppcies solution       two-species solution

(γ) Χρειάζεται να κάνουμε μία μικρή αλλαγή στους κώδικες του ερωτήματος (β)...

Ερωτήσεις.

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


Άσκηση (Μοντέλο επιδημιών SIR)
Μελετήστε το μοντέλο επιδημιών SIR.
(α) Βρείτε τα σημεία ισορροπίας του συστήματος (κάνετε μία δική σας επιλογή για τις σταθερές).
(β) Βρείτε αριθμητική λύση S(t), I(t) (για αρχική συνθήκη της επιλογής σας) και σχεδιάστε τους πληθυσμούς ως συναρτήσεις του χρόνου S(t), I(t).
(γ) Βρείτε αριθμητικές λύσεις και σχεδιάστε αρκετές καμπύλες στον χώρο των φάσεων (S, I).

(α)

(β)

(γ)

Ερωτήσεις.

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

Διαγράμματα φάσεων: γραμμικά συστήματα

Άσκηση (Γραμμικά συστήματα εξισώσεων)
Το γενικό γραμμικό σύστημα δύο εξισώσεων έχει τη μορφή \begin{align} \dot{x} & = a x + b y \\ \dot{y} & = c x + d y. \end{align} Επιλέξτε τιμές για τις σταθερές ώστε το σημείο ισορροπίας να είναι (α) σαγματικό σημείο (β) κόμβος ευσταθής ή ασταθής (γ) σπείρα ευσταθής είτε ασταθής, δεξιόστροφη είτε αριστερόστροφή (δ) κέντρο. Σχεδιάστε τα διαγράμματα φάσεων.
[Υπόδειξη: Δείτε έναν απλό
κώδικα matlab και την απαραίτητη function.]

(α) Το σύστημα \begin{align} \dot{x} & = -x - 3 y \\ \dot{y} & = 2 y \end{align} έχει ιδιοτιμές $\lambda_1=-1,\; \lambda_2 = 2$, άρα το σημείο ισορροπίας είναι σαγματικό. Τα ιδιοδιανύσματα του πίνακα του συστήματος είναι $\vec{v}_1=(1,0),\; \vec{v}_2=(1,-1)$.

Σχεδιάστε το διάγραμμα φάσεων.

(β) Το σύστημα \begin{align} \dot{x} & = x - 2 y \\ \dot{y} & = 3 x - 4 y \end{align} έχει ιδιοτιμές $\lambda_1=-1,\; \lambda_2 = -2$, άρα το σημείο ισορροπίας είναι ευσταθής κόμβος. Τα ιδιοδιανύσματα του πίνακα του συστήματος είναι $\vec{v}_1=(1,1),\; \vec{v}_2=(2,3)$.

Το πρόγραμμα matlab για λύση γραμμικού συστήματος βρίσκεται εδώ. Η function για το παραπάνω σύστημα βρίσκεται εδώ.

Ο κώδικας δίνει το ακόλουθο αποτέλεσμα:
node

(γ) Το σύστημα \begin{align} \dot{x} & = -x - 2 y \\ \dot{y} & = 2 x - y. \end{align} έχει ιδιοτιμές $\lambda_{1,2}=-1\pm 2i$, άρα το σημείο ισορροπίας είναι ευσταθής σπείρα.

Σχεδιάστε το διάγραμμα φάσεων.

(δ) Δείτε το σύστημα \begin{align} \dot{x} & = ay \\ \dot{y} & = -x \end{align} όπου a είναι σταθερά.

Ερωτήσεις.

Μαθησιακό αποτέλεσμα. Διαγράμματα φάσεων για όλες τις βασικές περιπτώσεις σημείων ισορροπίας.


Άσκηση (Ειδικές περιπτώσεις σημείων ισορροπίας)
Σχεδιάστε το διάγραμμα φάσεων για το γραμμικό σύστημα \begin{align} \dot{x} & = x + y \\ \dot{y} & = -x + 3 y. \end{align}

Οι ιδιοτιμές του πίνακα του συστήματος είναι ίσες και είναι λ = 2.

Σχεδιάστε το διάγραμμα φάσεων.

Μαθησιακό αποτέλεσμα. Εξοικείωση με ειδικές περιπτώσεις σημείων ισορροπίας.


Άσκηση (Διάγραμμα φάσεων για κέντρο)
Σχεδιάστε το διάγραμμα φάσεων για το σύστημα \begin{align} \dot{x} & = ay \\ \dot{y} & = -x \end{align} χρησιμοποιώντας το ολοκλήρωμα που μπορείτε να βρείτε. (Χρησιμοποιήστε τιμή για το a της επιλογής σας.)

Σημείο ισορροπίας (x,y) = (0,0).

Υπάρχει ολοκλήρωμα του συστήματος: \[ x^2 + a y^2 = C \] για κάθε $C > 0$.

Σχεδιάζουμε πρώτα τη συνάρτηση (ας επιλέξουμε a=2): \[ f(x,y) = x^2 + a y^2. \] Οι εντολές για το gnuplot βρίσκονται εδώ.

Ακολούθως, σχεδιάζουμε ισοσταθμικές για την παραπάνω συνάρτηση και αυτές μας δίνουν το διάγραμμα φάσεων του συστήματος. Οι εντολές για το gnuplot βρίσκονται εδώ.
Παρατηρήστε ότι C=0 στο σημείο ισορροπίας και C > 0 για κάθε άλλη καμπύλη του διαγράμματος φάσεων.

Ερωτήσεις.

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

Οικονομία

Άσκηση (Οικονομία: basic growth model)
Σε μία οικονομία έχουμε το εργατικό δυναμικό L και τις μηχανές M. Οι δύο αυτοί παράγοντες συμβάλουν στην παραγωγή O. Κάνουμε τις ακόλουθες τρεις υποθέσεις:
Υπόθεση 1: Σε χρόνο t η παραγωγή δίνεται από Ot = Ltβ Mt1-β, όπου β=1/2.
Υπόθεση 2: Η παραγωγή πηγαίνει στην κατανάλωση E και στις επενδύσεις I: Ot = Et + It και υποθέτουμε ότι έχει αποφασιστεί οι επενδύσεις να είναι ανάλογες της παραγωγής It = s Ot, όπου $0 \lt s \lt 1$.
Υπόθεση 3: Νέες μηχανές φτιάχνονται κάθε χρόνο (λόγω των επενδύσεων It) και επίσης μερικές φθείρονται (με ρυθμό d), ώστε ισχύει Mt+1 = Mt + It - d Mt, όπου $0 \lt d \lt 1$.
Γράψτε ένα πρόγραμμα το οποίο να υπολογίζει τις μεταβλητές του συστήματος για κάθε χρόνο t: Mt, Ot. [Θα πρέπει να θεωρήσετε τιμές για τις παραμέτρους και επίσης να δώσετε αρχικές συνθήκες στις μεταβλητές, οι οποίες να δίνουν ένα λογικό αποτέλεσμα.]

Πιθανόν να σας βοηθήσει το μάθημα Model thinking.


Άσκηση (Οικονομικό μοντέλο I-C-G)
Ένα απλό μοντέλο εθνικής οικονομίας είναι το ακόλουθο: \begin{equation} \dot{I} = I - \alpha C,\qquad \dot{C} = \beta\,(I-C-G), \end{equation} όπου I είναι το εθνικό εισόδημα, C η κατανάλωση και G τα κρατικά έξοδα, ενώ οι $\alpha, \beta$ είναι σταθερές με τιμές $\alpha > 1, \beta \geq 1$.
(α) Αν υποθέσουμε ότι ο ρυθμός κρατικών εξόδων είναι σταθερός $G=G_0$, βρείτε το σημείο ισορροπίας και κάνετε το διάγραμμα φάσεων.
(β) Ας υποθέσουμε ότι ο ρυθμός κρατικών εξόδων αυξάνεται με το εθνικό εισόδημα σύμφωνα με την $G=G_0+kI$, όπου $k>0$. Βρείτε το σημείο ισορροπίας, χαρακτηρίστε το και κάνετε το διάγραμμα φάσεων.

(α) Σημείο ισορροπίας: \begin{equation} (I^*, C^*) = \left( \frac{\alpha G_0}{\alpha-1}, \frac{G_0}{\alpha-1} \right). \end{equation} Αν οι ιδιοτιμές είναι πραγματικές τότε είναι ομόσημες και αρνητικές (για $\beta > 1$), οπότε θα έχουμε ευσταθή κόμβο. Αν οι ιδιοτιμές είναι μιγαδικές τότε έχουν αρνητικό πραγματικό μέρος (για $\beta > 1$), οπότε θα έχουμε ευσταθή σπείρα.
Το πρόγραμμα matlab για την κατασκευή διαγράμματος φάσεων βρίσκεται
εδώ. Η function για το παραπάνω σύστημα βρίσκεται εδώ.

(β) Σημείο ισορροπίας: \begin{equation} (I^*, C^*) = \left( \frac{\alpha G_0}{\alpha-\alpha k-1}, \frac{G_0}{\alpha-\alpha k-1} \right). \end{equation}

Ερωτήσεις.

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

Διαγράμματα φάσεων: μη-γραμμικά συστήματα

Άσκηση (απλό εκκρεμές) Σχεδιάστε το διάγραμμα στο χώρο φάσεων για το απλό εκκρεμές:
\[ \frac{d^2\theta}{dt^2} + a \sin(\theta) = 0. \]

Θέτουμε ω=dθ/dt, οπότε έχουμε το εξής σύστημα δύο εξισώσεων
dθ/dt=ω
dω/dt=-a sin(θ)

Σταθερά σημεία: θ=kπ, ω=0

Για να λύσουμε το σύστημα και να σχεδιάσουμε καμπύλες στο χώρο φάσεων χρησιμοποιούμε τον κώδικα matlab εδώ και την αντίστοιχη function εδώ.

Ο κώδικας δίνει το ακόλουθο αποτέλεσμα:
pendulum

2ος τρόπος για να σχεδιάσουμε καμπύλες χώρου φάσεων. Οι καμπύλες του χώρου φάσεων δίνονται από την
(dθ/dt)2 - a cos(θ) = E, (E:const.)
Μπορούμε να σχεδιάσουμε τις καμπύλες με εντολές ανάλογες με αυτές στην άσκηση για τον αναρμονικό ταλαντωτή είτε αυτές στην άσκηση για το κέντρο.

Ερωτήσεις.

Μαθησιακό αποτέλεσμα. Μη-γραμμικά δυναμικά συστήματα στη Μηχανική.


Exercise (Anharmonic oscillator)
(a) Plot the phase portrait for the anharmonic oscillator
d2x/dt2 = -x + a x3.
(b) Plot the stable and unstable manifolds for the linearized system around one of the saddle points.

(a) Set y=dx/dt, thus we have the system of equations
dx/dt=y
dy/dt=-x + a x3

Fixed Points:
(i) x=0, y=0
(ii) x=1/sqrt(a), y=0
(iii) x=-1/sqrt(a), y=0

Phase curves are given by
dy/dx = (-x + a x3)/y ==> y2/2 + x2/2 - a x4/4 = C

Let us define the function f(x,y)=y2/2 + x2/2 - a x4/4
and plot it. Choose, for example a=0.01, so that fixed points are (0,0), (10,0), (-10,0).
The graph of f(x,y) can be plotted using the gnuplot commands:

a=0.1
set xrange[-15:15]
set yrange[-10:10]
splot y**2/2.+x**2/2.-a*x**4/4. w l

Then, make a contour plot of f(x,y) which is equivalent to plotting the phase curves. [explain why.]
In gnuplot we may use
this script.
[Note that C=0 at the fixed point (0,0) while the curve with C=25 contains the points (+-10,0).]

Finally, to print your graphs you may use the following commands:

set term post
set output 'anharmonic_phaseportrait.eps'
replot

Here is the result:
Anharmonic oscillator - Phase portrait

(b)

Let us choose a=1. The linearized equations around the fixed point (1,0) are dξ/dt = y, dy/dt = 2ξ, where ξ=x-1. Example for code:

set xrange[0.5:1.5]; set yrange[-0.5:0.5]
set cntrparam levels incremental 0,0.125,0.5
set isosamples 100,100
set title 'Anharmonic oscillator: phase curves (solid), linearized eqns (dashed)' font "Helvetica,16"
splot x**2/2+y**2/2-x**4/4 w l, (x-1)**2/2-y**2/4 w l

Here is the result:
Anharmonic oscillator - Stable and unstable manifolds

Βιβλιογραφία