Unprotect[ToString];
ToString[expr: _[__], StandardForm] := With[{view = MMAView[expr]}, ExportString[
StringReplace[
(view // ToBoxes) /. {RowBox->RowBoxFlatten} // ToString
, {"\[NoBreak]"->""}]
, "String"]];
Protect[ToString];Clear["Global`*"]Μια απλή Διαφορική Εξίσωση είναι η $x'=b(x,t)$ ή, κάνωντας χρήση διαφορικών, $dx=b(x,t)dt$. Αυτό μάς λέει με ποιον τρόπο μεταβάλλεται το $x$ μετά από κάποιο μικρό χρονικό διάστημα $dt$.
Στην πραγματική ζωή, όμως, τίποτα δεν είναι απόλυτα ντετερμινιστικό. Τουλάχιστον βάσει του επιπέδου γνώσης που έχουμε ή που μπορούμε να διαχειριστούμε. Έτσι, μια νότα τυχαιότητας στην παραπάνω Δ.Ε. θα έδινε ένα άρωμα ρεαλισμού εντονότερο από πριν. Μια ιδέα είναι να αυξομοιώνεται το αποτέλεσμα βάσει ενός τυχαίου μικρού άλματος $dW_t$ διεσταλμένο βάσει μιας συνάρτησης $\sigma(X_t, t)$. Έτσι έχουμε την παρακάτω Στοχαστική Διαφορική Εξίσωση και λέμε ότι η $X_t$ είναι μία διαδικασία Itô:
Στον παραπάνω τύπο το $W_t$ είναι μια διαδικασία Wiener (βλ. [2] σελ. 284 και [5] σελ. 290). Δηλαδή έχει τις κάτωθι ιδιότητες (βλ [3] σελ. 608):
Η διαδικασία Itô μπορεί να εκφραστεί και ως:
όπου το $x_0$ είναι η γνωστή αρχική τιμή της διαδικασίας (την αρχική τιμή τη γνωρίζουμε, δεν είναι τυχαία) και το $\int_0^t \sigma(X_s, s)dW_s$ είναι ένα στοχαστικό ολοκλήρωμα.
Αν μία φορά τα ολοκληρώματα οι Διαφορικές Εξισώσεις ήταν ζόρικα πεδία και απαιτούσαν ειδικά τεχνάσματα, τα στοχαστικά ολοκληρώματα και οι Στοχαστικές Διαφορικές Εξισώσεις είναι για να απελπίζεσαι. Έτσι, δεν θα δώσουμε εδώ μια γενική λύση της παραπάνω Σ.Δ.Ε., αλλά θα λύσουμε μόνο κάποιες υποπεριπτώσεις της, και στη γενικότερη περίπτωση θα αρκεστούμε στη γραφική της επίλυση χρησιμοποιώντας μια διακριτοποιημένη εκδοχή της διαδικασίας Itô (βλ. [5] σελ. 291):
όπου $\Delta X=X_{t+\Delta t}-X_t$ και $Z\sim N(0,1)$. Ενδεικτικά παρουσιάζουμε τη γραφική αναπαράσταση της Σ.Δ.Ε.:
EulerMaruyamaPlot[x0_, b_, sigma_, dt_, T_, n_, title_] :=
Module[{times, nSteps, data},
(* Δημιουργία του διακριτού χρονικού άξονα *)
times = Range[0, T, dt];
nSteps = Length[times] - 1;
(* Αν το T δεν είναι ακριβές πολλαπλάσιο του dt, το διορθώνουμε *)
If[Abs[times[[-1]] - T] > 10^-10,
times = Range[0, nSteps*dt, dt];
];
(* Προσομοίωση n ανεξάρτητων τροχιών *)
data = Table[
Module[{path},
path = FoldList[
#1 + b[#1, #2]*dt + sigma[#1, #2]*Sqrt[dt]*
RandomVariate[NormalDistribution[0, 1]] &,
x0,
Most[times]
];
Transpose[{times, path}]
],
{n}
];
(* Γραφική παράσταση με τις βελτιώσεις *)
ListLinePlot[data,
PlotRange -> All,
AxesLabel -> {"t", "X(t)"},
PlotLabel ->
title <> "\n(x0 = " <> ToString[x0] <> ", dt = " <> ToString[dt] <>
", T = " <> ToString[T] <> ", n = " <> ToString[n] <> ")",
Epilog -> {
(* Κόκκινη κουκκίδα στο σημείο (0, x0) *)
PointSize[Large],
Red,
Point[{0, x0}]
},
ImageSize -> Large,
PlotTheme -> "Scientific"
]
]b1[x_, t_] := 5 x+1.5*t;
sigma1[x_, t_] := 1.1 x+1-Exp[-t];
EulerMaruyamaPlot[100, b1, sigma1, 0.01, 1, 10, "Τροχιές Σ.Δ.Ε."]Σημαντικό για την επίλυση κάποιων Σ.Δ.Ε., αλλά και για τον υπολογισμό διαφόρων χαρακτηριστικών της $X_t$ είναι το λήμα Itô (βλ. [1] σελ. 383 και [5] σελ. 292), το οποίο δίνει το διαφορικό μιας συνάρτησης ($G$) των $X_t$ και $t$. Έτσι για την πραγματική συνάρτηση $G(x,t)$ με συνεχείς τις μερικές παραγώγους της ($\partial_t G$, $\partial_x G$ και $\partial_{xx}G$) έχουμε:
Στις ακόλουθες υποενότητες θα χρησιμοποιήσουμε το λήμμα Itô για να επανεξετάσουμε κάποιους κανόνες του γνωστού μας Διαφορικού Λογισμού.
Εχουμε ότι:
και άρα ότι:
Η τελευταία σχέση είναι η γνωστή μας παραγώγιση γινομένου και θα μάς χρησιμεύσει στην επίλυση της διαδικασίας Ornstein-Uhlenbeck. Ο αναγνώστης αξίζει να προσέξει ότι για την «επιβίωση» του γνωστού κανόνα παραγώγισης γινομένου έπρεπε ο ένας όρος (το $H(t)$) να είναι ντετερμινιστικός.
Όπως πριν, έχουμε ότι:
Άρα:
Εδώ βλέπουμε πως παύει πλέον να ισχύει ο κανόνας $d\left(H\left(G(X_t)\right)\right)=H'\left(G(X_t)\right)dG(X_t)$, εκτός κι αν η $H$ είναι γραμμική, οπότε $H''(G(X_t))=0$.
Σε κάθε στοχαστική διαδικασία επιχειρούμε να προσδιοίσουμε κάποια στατιστικά μεγέθη της, τα οποία θα συνοψίζαν την πιθανοκρατική συμπεριφορά της. Έτσι θα πράξουμε κι εδώ, δίνοντας γενικές οδηγίες περί του πώς μπορούμε να βρούμε:
μιας διαδικασίας Itô.
Δεδομένου ότι η $X_t$ και το απειροστό $dW_t$ είναι ανεξάρτητα, όπως και τα $dW_t$ μεταξύ τους, έχουμε από την $dX_t = b(X_t, t)dt+\sigma(X_t, t)dW_t$:
όπου η τελευταία ισότητα τεκμέρεται από το γεγονός $\mathbb{E}W_t=0$. Η σχέση $d\mathbb{E}X_t=\mathbb{E}b(X_t, t)dt$, που φτιάξαμε, δεν εμπεριέχει πουθενά στοιχεία Στοχαστικού Λογισμού. Είναι μια απλή Διαφορική Εξίσωση με άγνωστη συνάρτηση την $m(t)=\mathbb{E}X_t$. Ο αναγνώστης αξίζει να παρατηρήσει ότι πρόκειται για τη Διαφορική Εξίσωση που σχηματίζεται αν αγνωήσουμε τον όρο που προσδίδει πιθανοκρατική συμπεριφορά στην $X_t$, τον $\sigma(X_t, t)dW_t$ και κρατήσουμε μόνο το ντετερμινιστικό μέρος.
Για τον υπολογισμό της $\operatorname{Var}(X_t)$, λόγω της:
και δεδομένου ότι έχουμε βρει την $\mathbb{E}X_t$, δεν έχουμε, παρά να βρούμε την $\mathbb{E}X_t^2$. Έτσι, λόγω του λήμματος Itô (όπου $G(x,t)=x^2$) έχουμε:
Έτσι, όπως πριν:
Η $d\mathbb{E}X_t^2=\left(\mathbb{E}\left(2b(X_t,t)X_t\right)+\mathbb{E}\left(\sigma^2(X_t,t)\right)\right)dt$ μια φυσιολογική Διαφορική Εξίσωση που μάς φανερώνει τη συνάρτηση $sq(t)=\mathbb{E}X_t^2$, ήπερ είναι το τελευταίο ληθαράκι, για να βρούμε την $\operatorname{Var}(X_t)$.
Ας δούμε τα παραπάνω με ένα παράδειγμα μιας Σ.Δ.Ε. Σε πρώτη φάση ας ρίξουμε μια ματιά στη συνήθη Διαφορική Εξίσωση:
Η φυσική της σημασία είναι προφανής: Η μεταβλητή $x$ έχει την τάση να επιστρέφει στο $\mu$, διότι:
Με διαφορικά η εν λόγω εξίσωση γράφεται $dx=\alpha(\mu-x)dt$. Θέλοντας να κρατήσουμε την προαναφερθείσα συλλογιστική επαναφοράς, αλλά να τη διαταράξουμε με λίγη τυχαιότητα, τότε έχουμε την εξίσωση Langevin, η λύση της οποίας καλέιται διαδικασία Ornstein-Uhlenbeck (βλ. [5] σελ. 487-489):
Παρουσιάζουμε κάποιες εκδοχές της για επαλήθευση της συμπεριφοράς που οικοδομήσαμε να έχει:
bOU[x_, t_] := 2(3-x);
sigmaOU[x_, t_] := 0.2;
EulerMaruyamaPlot[1, bOU, sigmaOU, 0.01, 3, 10,"Τροχιές Ornstein-Uhlenbeck με θ=2, μ=3 και σ=0.2"]
EulerMaruyamaPlot[5, bOU, sigmaOU, 0.01, 3, 10,"Τροχιές Ornstein-Uhlenbeck με θ=2, μ=3 και σ=0.2"]Έχουμε, όπως πριν:
Θέτουμε $m(t)=\mathbb{E}X_t$, άρα έχουμε τη Διαφορική Εξίσωση:
με $m(0)=\mathbb{E}X_0=x_0$, την οποία και λύνουμε.
solEou = DSolve[{m'[t]==θ*(μ-m[t]),m[0]==x0},m[t],t]//Expand//Flatten;
solMou = m[t]/.solEouΒρήκαμε ότι:
Ένα πρώτο συμπέρασμα είναι ότι καθώς $t\to+\infty$ είναι $\mathbb{E}X_t\to \mu$. Το αν και η ίδια η $X_t$ συγκλίνει στη $\mu$ ή αν η τυχαιότητα την στέλνει σε όλα τα σημεία του ορίζοντα, αυτό θα μάς το απαντήσει η $\operatorname{Var}(X_t)$.
Για τη διακύμανση θα πάμε να υπολογίσουμε το $dX_t^2$, όπως είπαμε και στις γενικές οδηγίες. Λόγω του λήμματος Itô (όπου $G(x,t)=x^2$) έχουμε:
«Κοπανάμε» $\mathbb{E}$ και στις δύο μεριές της παραπάνω εξίσωσης, οπότε έχουμε:
Θέτοντας $sq(t)=\mathbb{E}X_t^2$ έχουμε τη συνήθη Διαφορική Εξίσωση:
την οποία και θα λύσουμε, θεωρώντας πάλι $sq(0)=\mathbb{E}X_0^2=x_0^2$.
solVarOU = DSolve[{sq'[t]==2θ*μ*(μ+E^(-θ*t)(x0-μ))-2θ sq[t]+σ^2,sq[0]==x0^2},sq[t],t][[1]]//Expand//Simplify;
solSQou = sq[t]/.solVarOUΛύνοντας την παραπάνω Διαφορική Εξίσωση βρήκαμε:
Άρα έχουμε:
solSQou-solMou^2//FullSimplifyΒλέπουμε ότι η $\operatorname{Var}(X_t)$:
Την φραγή της τυχαιότητας τη διαπιστώνουμε και από τη γραφική αναπαράσταση κάποιων Ornstein-Uhlenbeck, όπου είναι εμφανές ότι η διασπορά των τιμών αυξάνεται ναι μεν, αλλά όχι πέρα από κάποιο σημείο. Κάνοντας έτσι κάθε υλοποίηση της Ornstein-Uhlenbeck να γυροφέρνει την καμπύλη της μέσης τιμής χωρίς μεγάλες διαφοροποιήσεις.
bOU2[x_, t_] := 2(5-x);
sigmaOU2[x_, t_] := 0.7;
EulerMaruyamaPlot[1, bOU2, sigmaOU2, 0.01, 3, 10,"Τροχιές Ornstein-Uhlenbeck με θ=2, μ=5 και σ=0.7"]Δεδομένης της μη-επιλυσιμότητας της Σ.Δ.Ε. πολλάκις αρκούμαστε στο να βρούμε την κατανομή της $X_t$ κι όχι την $X_t$ την ίδια. Η συνάρτηση πυκνότητας πιθανότητας της $X_t$ (έστω $p(x,t)$) είναι λύση της κάτωθι Μερικής Διαφορικής Εξίσωσης (βλ. [1] σελ. 380 και 382), όπου ο αναγνώστης θα την βρει στη βιβλιογραφία είτε ως εξίσωση Fokker-Plank είτε ως εξίσωση Kolmogorov ορθής φοράς:
με:
Θα λύσουμε την εν λόγω Μερική Διαφορική Εξίσωση για την περίπτωση της Ornstein-Uhlenbeck.
Στην ενότητα αυτή θα παρουσιάσουμε διάφορα στοχαστικά μοντέλα κοινωνικών ή οικολογικών φαινομένων που να θεμελιώνονται με τη βοήθεια Σ.Δ.Ε. και θα προσπαθήσουμε να προσδιορίσουμε την ίδια τη $X_t$ κι όχι μόνο κάποιες στατιστικές μετρήσεις της, όπως η μέση τιμή και η διασπορά της.
Αντίστοιχα με τη στοχαστική παραγώγιση, έχουμε, όπως προαναφέραμε, και τη στοχαστική ολοκλήρωση. Δεν θα επεκταθούμε εδώ σε ορισμούς και εξηγήσεις, θα αναφέρουμε μόνο ότι ισχύουν οι βασικές ιδιότητες των ολοκληρωμάτων που ξέρουμε (προ Θ.Θ.Ο.Λ.), αλλά και η:
Σημαντική είναι και η κάτωθι ιδιότητα (βλ. [5] σελ. 308-309 και [1] σελ. 384):
Ο αναγνώστης αξίζει να παρατηρήσει τη διαφορά που έχει αυτή έναντι της γνωστής ντετερμινιστικής ολοκλήρωσης:
Σχεδόν από το λύκειο γνωρίζει κανείς το εκθετικό πληθυσμιακό μοντέλο, σύμφωνα με το οποίο η αύξηση ενός πληθυσμού είναι ανάλογη του μεγέθους του. Ένα απόλυτα λογικό μοντέλο, καθόσον, αν ο καθένας από εμάς τους $x$ Έλληνες κάνει από $2$ παιδιά, τότε η αύξηση του πληθυσμού μας (τα συνολικά παιδιά, δηλαδή) θα είναι $\Delta x=2x$. Σε μαθηματικό συμβολισμό έχουμε:
Ας βάλουμε λίγο θόρυβο στο μοντέλο αυτό. Συγκεκριμένα, ας θεωρήσουμε ότι το εύρος των τυχαίων κινήσεων είναι ανάλογο του ληθυσμού, μια εύλογη υπόθεση, αν θεωρήσουμε ότι οι τυχαίες διακυμάνσεις οφείλονται σε κάποιους τυχαίους παράγοντες που αφορούν το κάθε ένα άτομο. Έτσι έχουμε την κάτωθι Σ.Δ.Ε. (βλ. [1] σελ. 384-385), η οποία ακούς στο όνομα γεωμετρική κίνηση Brown.
Παρουσιάζουμε κάποιες εκδοχές της:
bGB[x_, t_] := 2x;
sigmaGB[x_, t_] := 0.1x;
EulerMaruyamaPlot[1, bGB, sigmaGB, 0.01, 3, 10,"Γεωμετρική κίνηση Brown με r=2 και c=0.1"]
bGB2[x_, t_] := 2x;
sigmaGB2[x_, t_] := 3x;
EulerMaruyamaPlot[1, bGB2, sigmaGB2, 0.01, 3, 10,"Γεωμετρική κίνηση Brown με r=2 και c=3"]Ο αναγνώστης αξίζει να παρατηρήσει τη διαφορά των παραπάνω μοντελοποιήσεων. Σύμφωνα με το [1] (σελ. 385):
Μια κατάσταση που δείχνει πώς ο παράγοντας τυχαιότητας μπορεί να καταστρέψει ένα ισχυρά αυξητικό μοντέλο, όπως το εκθετικό.
Για τον προσδιορισμό της $X_t$ θα εφαρμόσουμε το λήμμα Itô για $G(x,t)=\ln x$. Οπότε έχουμε:
Ολοκληρώνοντας τις δύο μεριές από $0$ έως $t$ έχουμε:
Άρα:
Εδώ θα εξετάσουμε το γνωστό μας λογιστικό πληθυσμιακό μοντέλο, αναδιαμορφωμένο ώστε να φιλοξενεί έναν παράγοντα τυχαιότητας (βλ. [1] σελ. 386-387):
bLOGISTIC[x_, t_] := 5*x(1-x/6);
sigmaLOGISTIC[x_, t_] := 0.5x;
EulerMaruyamaPlot[1, bLOGISTIC, sigmaLOGISTIC, 0.01, 6, 10, "Στοχαστικό Λογιστικό Μοντέλο με r=5, K=6 και c=0.5"]Η λύση που δίνει το [1] (σελ. 387) είναι η:
Αλλά, ας το εξαιτάσουμε καλύτερα.
Γνωρίσαμε τη διαδικασία Ornstein-Uhlenbeck σε προηγούμενη ενότητα, όπου βρήκαμε τη μέση τιμή και τη διασπορά της. Τώρα θα προσπαθήσουμε να βρούμε και την ίδια την $X_t$.
Για να τη λύσουμε, θα ακολουθήσουμε διαδικασία που μοιάζει με την παραγοντική ολοκλήρωση (βλ. [4] σελ. 139-140) και εφαρμόζεται γενικότερα στις Σ.Δ.Ε. της μορφής:
Αρχικά πολλαπλασιάζουμε και τις δύο μεριές της εξίσωσης με $e^{\theta t}$, οπότε έχουμε:
Ολοκληρώνοντας και τις δύο μεριές από $0$ έως $t$ έχουμε:
Άρα:
Η μελέτη μας θα γίνει σε ένα διάστημα:
Συγκεκριμένα, εν προκειμένω θα ασχοληθούμε με Σ.Δ.Ε. του τύπου:
Όπου $b, \sigma : I\to \mathbb{R}$ (βλ. [2] σελ. 329 και 342-343). Ο αναγνώστης ας παρατηρήσει ότι οι συναρτήσεις $b$ και $\sigma$ δεν έχουν πλέον δύο ορίσματα, αλλά ένα.
Θα μάς απασχολήσει ο χρόνος όπου η διαδικασία μας ($X_t$) χρειάζεται για να ξεφύγει εκτός του προκαθορισμένου διαστήματος $I$. Πιο φορμαλιστικά (βλ. [2] σελ. 343):
Αρχικά ορίζουμε (βλ. [2] σελ. 339) τη scale function:
με $c\in\mathbb{R}$ αυθαίρετη σταθερά και υπό τις συνθήκες (βλ. [2] σελ. 343):
Ακολούθως ορίζουμε (βλ. [2] σελ. 347):
Το τεστ Feller (βλ. [2] σελ. 348) μάς λέει αν είναι πιθανό να έχουμε έκρηξη (με την έννοια ότι βγαίνει η $X_t$ εκτός του $I$), δηλαδή αν η πιθανότητα $\mathbb{P}(S<+\infty)$ είναι μη-μηδενική. Έτσι, δεν έχουμε έκρηξη (ήτοι $\mathbb{P}(S<+\infty)=0$), όταν:
αλλιώς έχουμε έκρηξη.
Αλλά, ας το δούμε και με ένα παράδειγμα.