1 Επίλυση Συνήθων ιαφορικών Εξισώσεων Εξίσωση πρώτης τάξης µε συνθήκες αρχικών τιµών ΠΡΟΒΛΗΜΑ : Να ευρεθεί συνάρτηση y = y(x) η οποία για x [a, b] ικανοποιεί την εξίσωση y = f(x, y) υπό την αρχική συνθήκη y(x o ) = y o για δεδοµένα x o και y o. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ: Το διάστηµα [a, b] διαιρείται σε n υποδιαστήµατα µε άκρα τα n + 1 ισαπέχοντα σηµεία x o, x 1, x 2,...,x n και ϐήµα h = b a. Η συνάρτηση y = y(x) n προσεγγίζεται σ αυτά τα n + 1 σηµεία µε κάποια από τις παρακάτω µεθόδους: Ονοµα ιαδικασία Τάξη Σφάλµατος Μέθοδος 0. y o = y(x o ) Τοπικό: O(h 2 ) Euler Για k = 0, 1, 2..., n 1 1. y k+1 = y k + hf(x k, y k ) Ολικό: O(h) Βελτίωση 1: 0. y o = y(x o ) Τοπικό: O(h 3 ) Μεσαίου Για k = 0, 1, 2..., n 1 Σηµείου 1. x k+1/2 = x k + h/2 Ολικό:O(h 2 ) 2. y k+1/2 = y k + h f(x 2 k, y k ) 3. y k+1 = y k + hf(x k+1/2, y k+1/2 ) Βελτίωση 2: 0. y o = y(x o ) Τοπικό: O(h 3 ) Euler Για k = 0, 1, 2..., n 1 Cauchy 1. ŷ k+1 = y k + hf(x k, y k ) Ολικό: O(h 2 ) 2. y k+1 = y k + h [ f(x k, y k ) + f(x k+1, ŷ k+1 ) ] /2 Μέθοδος 0. y o = y(x o ) Τοπικό O(h 5 ) κλασσική Για k = 0, 1, 2,..., n 1 Runge 1. K 1 = hf(x k, y k ) Ολικό O(h 4 ) Kutta 2. K 2 = hf(x k + h/2, y k + K 1 /2) 3. K 3 = hf(x k + h/2, y k + K 2 /2) 4. K 4 = hf(x k + h, y k + K 3 ) 5. y k+1 = y k + [K 1 + 2K 2 + 2K 3 + K 4 ] /6 Σύστηµα εξισώσεων πρώτης τάξης µε συνθήκες αρχικών τιµών ΠΡΟΒΛΗΜΑ : Να ευρεθούν συναρτήσεις y 1 = y 1 (x), y 2 = y 2 (x),..., y m = y m (x) οι οποίες για x [a, b] ικανοποιούν τις εξισώσεις y 1 = f 1 (x, y 1, y 2,...,y m ) y 2 = f 2 (x, y 1, y 2,...,y m )... y m = f m(x, y 1, y 2,...,y m ) 1
υπό τις αρχικές συνθήκες y 1 (x o ) = y 1,0, y 2 (x o ) = y 2,0,..., y m (x o ) = y m,o για δεδοµένα x o και y 1,0, y 2,0,...,y m,o. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ: Το διάστηµα [a, b] διαιρείται σε n υποδιαστήµατα µε άκρα τα n + 1 ισαπέχοντα σηµεία x o, x 1, x 2,...,x n και ϐήµα h = b a n. Οι συναρτήσεις y 1 = y 1 (x), y 2 = y 2 (x),...,y m = y m (x) προσεγγίζεται σ αυτά τα n+1 σηµεία µε κάποια από τις παραπάνω µεθόδους. Τίποτα ουσιαστικό δεν αλλάζει. Απλώς οι εκφράσεις υπολογισµού του y k+1 εκτελούνται τώρα για τον υπολογισµό του κάθε y i,k+1 για i = 1, 2,..., m. Ονοµα ιαδικασία Μέθοδος 0. y i,o = y i (x o ), i = 1, 2,..., m Euler Για k = 0, 1, 2..., n 1 1. y i,k+1 = y i,k + hf i (x k, y 1,k,...,y m,k ), i Βελτίωση 1: 0. y i,o = y i (x o ), i = 1, 2,..., m Μεσαίου Για k = 0, 1, 2..., n 1 Σηµείου 1. x k+1/2 = x k + h/2 2. y i,k+1/2 = y i,k + hf 2 i(x k, y 1,k,...,y m,k ), i 3. y k+1 = y k + hf(x k+1/2, y k+1/2 ) Βελτίωση 2: 0. y i,o = y i (x o ), i = 1, 2,..., m Euler Για k = 0, 1, 2..., n 1 Cauchy 1. ŷ i,k+1 = y i,k + hf i (x k, y 1,k,...,y m,k ), i 2. y i,k+1 = y i,k + h [ f i (x k, y 1,k,...,y m,k ) + f i (x k+1, ŷ 1,k+1,...,ŷ m,k+1 ) ] /2, i Μέθοδος 0. y i,o = y i (x o ), i = 1, 2,..., m κλασσική Για k = 0, 1, 2,..., n 1 Runge 1. K i,1 = hf i (x k, y 1,k,...,y m,k ), i Kutta 2. K i,2 = hf i (x k + h/2, y 1,k + K 1,1 /2,...,y m,k + K m,1 /2), i 3. K i,3 = hf i (x k + h/2, y 1,k + K 1,2 /2,...,y m,k + K m,2 /2), i 4. K i,4 = hf i (x k + h, y 1,k + K 1,3,...,y m,k + K m,3 ), i 5. y i,k+1 = y i,k + [K i,1 + 2K i,2 + 2K i,3 + K i,4 ] /6, i Τα συστήµατα διαφορικών εξισώσεων πρώτης τάξης προέρχονται είτε αυτούσια από ε- ϕαρµογές είτε από την µετατροπή διαφορικών εξισώσεων υψηλότερης από την πρώτη τάξη σε εξισώσεις πρώτης τάξης. Κάθε διαφορική εξίσωση τάξης m > 1 y (m) = f(x, y, y, y, y (3),..., y (m 1) ) µπορεί να µετραπεί µέσω των αντικαταστάσεων y 1 = y, y 2 = y, y 3 = y (3),...,y m 1 = y (m 1) 2
σε ένα σύστηµα διαφορικών εξισώσεων πρώτης τάξης y = y 1 y 1 = y 2 y 2 = y 3... y m 1 = f(x, y 1, y 2, y 3,...,y m 1 ) και να επιλυθεί ως τέτοιο. 2 Παραδείγµατα 2.1 Πρώτο παράδειγµα Πρόβληµα: Να ευρεθεί η συνάρτηση y = y(x) που στο διάστηµα [0, 1] ικανοποιεί την εξίσωση y = y 2x µε αρχική συνθήκη y(0) = 1. Να υπολογισθεί στα ισαπέχοντα y σηµεία που αντιστοιχούν στο ϐήµα h = 0.2 Η συγκεκριµένη εξίσωση τυγχάνει αναλυτικής λύσης, την y = 2x + 1. Να συγκριθούν οι τιµές των αριθµητικών µεθόδων µε τις ακριβείς τιµές. Μέθοδος Euler 0. y o = 1 1. y k+1 = y k + hf(x k, y k ) = y k + h[y k 2x k y k ] για k = 0, 1,... k x k y k hf(x k, y k ) Ακριβής Τιµή 0 0 1 0.2 1 1 0.2 1.2 0.1733 1.1832 2 0.4 1.3733 0.1561 1.3416 3 0.6 1.5294 0.1492 1.4832 4 0.8 1.6786 0.1451 1.6124 5 1.0 1.8237 1.7330 Βελτίωση 1: Μέθοδος µεσαίου σηµείου 0. y o = 1 1. x k+1/2 = x k + h/2 2. y k+1/2 = y k + h 2 f(x k, y k ) = y k + h 2 [y k 2x k y k ] 3. y k+1 = y k + hf(x k+1/2, y k+1/2 ) = y k + h[y k+1/2 2x k+1/2 y k+1/2 ] 3
k x k y k h 2 k, y k ) x k+1/2 y k+1/2 hf(x k+1/2, y k+1/2 ) 0 0 1 0.1 0.1 1.1 0.1836 1 0.2 1.1836 0.0846 0.3 1.2682 0.1590 2 0.4 1.3426 0.0747 0.5 1.4173 0.1424 3 0.6 1.4850 0.0677 0.7 1.5527 0.1302 4 0.8 1.6152 0.0625 0.9 1.6777 0.1210 5 1.0 1.7362 Παρατηρούµε πράγµατι ϐελτίωση της ακρίβειας. Βελτίωση 2: Μέθοδος Euler Cauchy 0. y o = 1 1. ŷ k+1 = y k + hf(x k, y k ) = y k + h[y k 2x k y k ] 2. y k+1 = y k + h[f(x k, y k ) + f(x k+1, ŷ k+1 )]/2] k x k y k hf(x k, y k )/2 x k+1 ŷ k+1 hf(x k+1, ŷ k+1 )/2 0 0 1 0.1 0.2 1.2 0.0867 1 0.2 1.1867 0.0850 0.4 1.3566 0.0767 2 0.4 1.3484 0.0755 0.6 1.4993 0.0699 3 0.6 1.4938 0.0690 0.8 1.6180 0.0651 4 0.8 1.6272 0.0645 1.0 1.7569 0.0618 5 1.0 1.7542 Και εδώ παρατηρούµε ϐελτίωση της ακρίβειας σε σύγκριση µε την αρχική µέθοδο Euler. 2.2 εύτερο παράδειγµα Πρόβληµα: Να επιλυθεί η εξίσωση y = 0.25y 2 +x 2 για τις αρχικές συνθήκες y(0) = 1 στο διάστηµα [0, 0.5] λαµβάνοντας ως ϐήµα διαίρεσης του διαστήµατος το h = 0.1. Μέθοδος Runge Kutta k x k y k K i (i = 1, 2, 3, 4) [K 1 + 2K 2 + 2K 3 + K 4 ]/6 0 0-1 0.025 0.025 0.05-0.98750 0.024629 0.049258 0.05-0.98769 0.024638 0.049276 0.1-0.97536 0.024783 0.024783 0.02472 4
k x y K i (i = 1, 2, 3, 4) [K 1 + 2K 2 + 2K 3 + K 4 ]/6 1 0.1-0.97528 0.024779 0.024779 0.15-0.96289 0.025429 0.050858 0.15-0.96257 0.025413 0.050826 0.2-0.94987 0.026557 0.026557 0.02550 2 0.2-0.94978 0.026553 0.026553 0.25-0.93650 0.028176 0.056352 0.25-0.93569 0.028138 0.056276 0.3-0.92164 0.030236 0.030236 0.02824 3 0.3-0.92154 0.030231 0.030231 0.35-0.90642 0.032790 0.065580 0.35-0.90514 0.032732 0.065464 0.4-0.88881 0.035743 0.035749 0.03284 4 0.4-0.88870 0.035745 0.035745 0.45-0.87083 0.039209 0.078418 0.45-0.86910 0.039134 0.078268 0.5-0.84957 0.04307 0.043044 0.03925 5 0.5-0.84945 2.3 Τρίτο παράδειγµα Πρόβληµα: Να επιλυθεί µε την µέθοδο Runge Kutta για h = 0.1 η εξίσωση y 2y + 2y = e 2t sin(t) για t [0, 1] µε y(0) = 0.4 και y (0) = 0.6. Λύση: Παρατηρούµε ότι η εξίσωση είναι δευτέρας τάξης. Την µετατρέπουµε σε σύστηµα εξισώσεων πρώτης τάξης εισάγωντας u(t) = y (t): y (t) = u(t) u (t) = e 2t sin(t) 2y(t) + 2u(t) Εφαρµόζουµε την µέθοδο Runge Kutta σ αυτό το σύστηµα: y o = 0.4, u 0 = 0.6 K y1 = hu 0 = 0.06 K u1 = h[e 2to sin(t o ) 2y o + 2u o ] = 0.04 5
K y2 = h[u o + K y1 /2] = 0.062 K u2 = h[e 2(to+0.05) sin(t o + 0.05) 2(y o + K y1 /2) + 2(u o + K u1 /2)] = 0.032476448 K y3 = h[u o + K y2 /2] = 0.061628322 K u3 = h[e 2(to+0.05) sin(t o + 0.05) 2(y o + K y2 /2) + 2(u o + K u2 /2)] = 0.031524092 K y4 = h[y o + K y3 /2] = 0.063152409 K u4 = h[e 2(to+0.1) sin(t o + 0.1) 2(y o + K y3 ) + 2(u o + K u3 )] = 0.021786373 y 1 = y o + 1 6 [K y1 + 2K y2 + 2K y3 + K y4 ] = 0.46173334 u 1 = u o + 1 6 [K u1 + 2K u2 + 2K u3 + K u4 ] = 0.63163124 κ.ο.κ. 3 Ασκήσεις 1. Να εφαρµοσθεί η µέθοδος Runge Kutta στο πρώτο παράδειγµα. Σύγκρινε την ακρίβεια της µεθόδου τόσο µε τις αναλυτικές τιµές όσο και µε τις τιµές των άλλων τριών µεθόδων. 2. Εφάρµοσε την µέθοδο Euler και τις δύο ϐελτιωµένες εκδοχές της στο δεύτερο παράδειγµα. Σύγκρινε τ αποτελέσµατα µεταξύ τους και µε αυτά της µεθόδου Runge Kutta. 3. Στο τρίτο παράδειγµα, συνέχισε την µέθοδο Runge Kutta για τα σηµεία t 2 = 0.2 και t 3 = 0.3. [ ΑΠΑΝΤΗΣΗ: y 2 = 0.52555905, u 2 = 0.6401478, y 3 = 0.58860005 και u 3 = 0.6136630] 4. Πρόβληµα: Να επιλυθεί µε την µέθοδο Runge Kutta το σύστηµα διαφορικών εξισώσεων: x y z = 2x + 5z = (1 sin(t))x y + 3z = x + 2z για τις συναρτήσεις x = x(t), y = y(t), z = z(t) στο διάστηµα [0, 0.3] µε αρχικές συνθήκες x(0) = 2, y(0) = 1, z(0) = 1 και ϐήµα διαίρεσης του διαστήµατος h = 0.1. [ΑΠΑΝΤΗΣΗ: Στο t o = 0: x 0 = x(0) = 2, y o = y(0) = 1, z o = z(0) = 1, στο t 1 = 0.1: x 1 = 2.08984, y 1 = 1.00497, z 1 = 0.99500, στο t 2 = 0.2: x 2 = 2.15880, y 2 = 1.01953, z 2 = 0.98006, και στο t 3 = 0.3: x 3 = 2.20619, y 3 = 1.04266, z 3 = 0.95533] 5. Εφάρµοσε την µέθοδο Euler και τις δύο ϐελτιωµένες εκδοχές της στην τέταρτη άσκηση. Σύγκρινε τ αποτελέσµατα µεταξύ τους και µε αυτά της µεθόδου Runge Kutta 6