MEM 253 Αριθμητική Λύση ΜΔΕ * * * 1
Ένα πρόβλημα-μοντέλο Ροή θερμότητας σε ένα ομογενές μέσο. Ζητούμε μια συνάρτηση x [0, 1] και t 0 τέτοια ώστε u(x, t) ορισμένη για u t u(0, t) u(x, 0) = u xx, 0 < x < 1, 0 < t T, = u(1, t) = 0, t [0, T], = u 0 (x), 0 x 1 Για να προσεγγίσουμε τη λύση του παραπάνω προβλήματος εισάγουμε το υπολογιστικό πλέγμα ή διαμέριση του [0, 1] [0, T] x = Δx, = 0, 1,, J, = nδt, n = 0, 1,, N, t n όπου Δx = 1/J, J > 1 ακέραιος, και Δt = T/N, Ν > 1 ακέραιος, είναι τα βήματα της διαμέρισης στο χώρο και στον χρόνο, αντίστοιχα. 2
x = Δx, = 0, 1,, J, = nδt, n = 0, 1,, N, t n Δx = 1/J και αντίστοιχα. Δt = T/N τα βήματα της διαμέρισης στο χώρο και στον χρόνο, 3
Αναζητούμε προσεγγίσεις της ακριβούς λύσης στα σημεία αυτές τις προσεγγιστικές τιμές με x t n (, ). Θα συμβολίζουμε U n u( x, t n ) Για την παράγωγο ως προς τον χρόνο χρησιμοποιούμε την προσέγγιση v t v( x, t n+1 ) v( x, t n ) ( x, t n ) Δt Για την δεύτερη παράγωγο ως προς το χώρο θα χρησιμοποιήσουμε την προσέγγιση 2 v v( x +1, t n ) 2v( x, t n ) + v( x 1, t n ) v( x h, t n ) x 2 (Δx) 2 4
Από την u t ( x, t n ) = u xx ( x, t n ) έχουμε τη σχέση και τις παραπάνω προσεγγίσεις των παραγώγων U n+1 U n U n U n +1 U n = + μ ( 2 + ), = 1, J 1, n = 0, 1,, N, 1 όπου Δt μ =. (Δx) 2 Οι αρχικές και συνοριακές τιμές για τον πρόβλημα-μοντέλο μεταφράζονται στις σχέσεις U 0 = u 0 ( x ), = 1, 2,, J 1, U n 0 U n J = = 0, n = 0, 1,, N. 5
Η υλοποίηση της συγκεκριμένης μεθόδου, η οποία ονομάζεται η άμεση μέθοδος του Euler, είναι απλή: import numpy as np # Initial conditon def u0(x): return x*(1-x) # Grid parameters. N is the number of time levels J = 20; dx = 1.0 / J; x = np.linspace(0, 1, J+1) N = 10; T = 0.5; dt = T / N mu = dt / dx**2 # Initialize the solution array U = u0(x); U[0] = 0; U[J] = 0 V = np.zeros(j+1) # Compute solution at each time level for n in range(n): for in range(1,j): V[] = U[] + mu * ( U[+1] - 2*U[] + U[-1] ) for in range(1,j): U[] = V[] 6
Μας ενδιαφέρει να εκτιμήσουμε το σφάλμα e n = u( x, t n ) U n για = 0, 1,, J και 0 n N, και να δείξουμε ότι πηγαίνει στο μηδέν καθώς οι παράμετροι διακριτοποίησης Δx και Δt τείνουν στο μηδέν. Η απόδειξη της σύγκλισης της υπολογιστικής λύσης στην ακριβή λύση βασίζεται στις έννοιες της συνέπειας και της ευστάθειας. Συνέπεια. Κατ' αρχήν, συνέπεια + ευστάθεια σύγκλιση u( x, t n+1 ) u( x, t n ) Δt = u xx ( x, t n ) + η n, όπου Δt u tt ( x, t). η n 2 max t [0,T] 7
Επιπλέον, u( x +1, t n ) 2u( x, t n ) + u( x 1, t n ) u xx ( x, t n ) = +, (Δx) 2 θ n όπου (Δx) 2 4 u θ n max (x, t n ). 12 x [0,1] x 4 Λήμμα 3. Αν η λύση u του προβλήματος-μοντέλο είναι αρκετά ομαλή, τότε max 1 n N max 1 J 1 u( x, t n+1 ) u( x, t n ) Δt u( x +1, t n ) 2u( x, t n ) + u( x 1, t n ) (Δx) 2 C ( Δt + (Δx) 2 ), για κάποια σταθερά C ανεξάρτητη των Δx και Δt.
8
Η ποσότητα T n u( x, t n+1 ) u( x, t n ) = Δt u( x +1, t n ) 2u( x, t n ) + u( x 1, t n ) (Δx) 2 ονομάζεται τοπικό σφάλμα διακριτοποίησης της άμεσης μεθόδου του Euler. Παρατηρήσεις. Από το Λήμμα 3 βλέπουμε ότι 1. η τάξη ακρίβειας του τοπικού σφάλματος διακριτοποίησης είναι δύο ως προς Δx και ένα ως προς Δt. 2. το τοπικό σφάλμα διακριτοποίησης τείνει στο μηδεν καθώς τα βήματα Δx και Δt τείνουν στο μηδέν, δηλαδή η άμεση μέθοδος του Euler είναι συνεπής. 3. Η ακριβής λύση του προβλήματος-μοντέλο ικανοποιεί την υπολογιστική μέθοδο με σφάλμα τάξης ( Δt + (Δx ) 2 ). 9
Ευστάθεια. Λέμε ότι η αριθμητική λύση είναι ευσταθής (σε διαταραχές των αρχικών δεδομένων) αν μικρές διαταραχές των αρχικών δεδομένων επιφέρουν μικρές διαταραχές στη λύση. Λήμμα 4. Αν μ = Δt 1 (Δx) 2 2, τότε ισχύει η ανισότητα max 0 J Η απόδειξη είναι άμεση συνέπεια της σχέσης max U 0, n = 0, 1,, N. U n 0 J U n+1 μ ( + ) + (1 2μ), = 1,, J 1. U n U n +1 1 Παρατηρήστε ότι η ευστάθεια της άμεσης μεθόδου του Euler προϋποθέτει μια συνθήκη ανάμεσα στις παραμέτρους διακριτοποίησης Δx και Δt. Η συνθήκη αυτή είναι αναγκαία και δεν οφείλεται σε τυχόν αδυναμία στην απόδειξη του Λήμματος 4. U n 10
Σύγκλιση της άμεσης μεθόδου του Euler. Χρησιμοποιώντας την συνέπεια και την ευστάθεια της άμεσης μεθόδου του Euler έχουμε Θεώρημα 1. Έστω ότι η λύση του προβλήματος-μοντέλο είναι αρκετά ομαλή και μ 1. Τότε υπάρχει μια σταθερά C ανεξάρτητη των Δx και Δt, τέτοια ώστε 2 max 1 n N max 0 J u( x, t n ) C (Δt + (Δx) 2 ). U n Απόδειξη. Εύκολα βλέπουμε ότι το σφάλμα e n για = u( x, t n ) U n = 0, 1,, J και 0 n N ικανοποιεί = = 0, λόγω των συνοριακών συνθηκών, και e n+1 για. e n 0 e n J = μ + (1 2μ) + μ e n e n + Δt ( + ), +1 e n η n θ n 1 = 1,, J 1, n = 0, 1,, N 1 11
Η σχέση αυτή και το γεγονός ότι μ 1 2 δίνουν max 0 J e n+1 max + Δt max max ( + ), n 0 J e n 1 n N 0 J η n θ n για κάθε 0 n N 1. Ειδικώτερα, max 0 J e n+1 max + nδt max max ( + ). n 0 J e 0 1 n N 0 J Μια και nδt T, η απόδειξη του θεωρήματος προκύπτει από την παραπάνω σχέση και τις εκτιμήσεις των όρων και. η n θ n η n θ n 12
Παράδειγμα. Εύκολα βλέπει κανείς ότι αν e 4 t u 0 (x) = sin(2πx) τότε η u(x, t) = 2 π sin(2πx), ικανοποιεί την εξίσωση =, μηδενίζεται στα άκρα του διαστήματος [0, 1] και ικανοποιεί, φυσικά, την αρχική συνθήκη u(x, 0) = (x). Ο παρακάτω πίνακας εμφανίζει το σφάλμα E n = max 1 J 1 u( x, t n ) U n για J = 24, N = 24, 32, 128, T = 0.1, στις χρονικές στιγμές t = 0.025, 0.05, 0.0625 και 0.075. u t u xx u 0 N t 0.025 0.05 0.0625 0.075 24 0.0302 0.0216 0.0181 2.2244 32 0.0217 0.0157 0.1358 174.61 128 0.0036 0.0027 0.0020 0.0015 13
14