ΚΕΦΑΛΑΙΟ 8 Εξίσωση Διάχυσης 8.1 Εισαγωγή Η εξίσωση διάχυσης είναι στενά συνδεδεμένη με τη διαδρομή ενός τυχαίου περιπατητή (random walker). Ας υποθέσουμε ότι μελετάμε την κίνηση ενός τέτοιου σωματίου πάνω στην ευθεία ( μία διάσταση ). Η διαδικασία της κίνησης είναι στοχαστική και η συνάρτηση ( πυρήνας ) K(x, x 0 ; t) (8.1) ερμηνεύεται ως η πυκνότητα πιθανότητας τη χρονική στιγμή t να παρατηρηθεί το σωμάτιο στη θέση x αν τη χρονική στιγμή t = 0 το σωμάτιο βρίσκεται στη θέση x 0. Η εξίσωση που καθορίζει το K(x, x 0 ; t) είναι η K(x, x 0 ; t) t = D 2 K(x, x 0 ; t) x 2, (8.2) που είναι η εξίσωση διάχυσης. Ο συντελεστής διάχυσης D μπορεί να καθοριστεί από τις λεπτομέρειες του συστήματος που μελετάμε. Για την κίνηση Brown ενός σωματιδίου σκόνης μέσα σε ένα υγρό, το οποίο κινείται με την επίδραση των τυχαίων θερμικών κρούσεων με τα μόρια του υγρού παίρνουμε D = kt /γ, όπου T είναι η απόλυτη θερμοκρασία του υγρού, γ ο συντελεστής τριβής¹ του σωματιδίου μέσα στο υγρό και k είναι η σταθερά του Boltzmann. Συνήθως επιλέγουμε για αρχικές συνθήκες (t = 0) το σωμάτιο να είναι εντοπισμένο σε ένα σημείο x 0, δηλ.² K(x, x 0 ; 0) = δ(x x 0 ) (8.3) ¹Για ένα σφαιρικό σωμάτιο ακτίνας R μέσα σε ένα Νευτώνειο υγρό με ιξώδες η έχουμε ότι γ = 6πηR. ²Θυμίζουμε ότι δ(x x 0 ) είναι το περίφημο δέλτα του Dirac. Ορίζεται από την 375
376 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ Η ερμηνεία της K(x, x 0 ; t) ως συνάρτηση πυκνότητας πιθανότητας συνεπάγεται ότι για κάθε t θα πρέπει να έχουμε³ + K(x, x 0 ; t) dx = 1. (8.4) Αυτή η σχέση δεν είναι προφανές ότι μπορεί να ισχύει για κάθε χρονική στιγμή. Ακόμα και αν την επιβάλλουμε για t = 0, η χρονική εξέλιξη που καθορίζεται από την (8.2) μπορεί να την αλλάξει σε μεγαλύτερους χρόνους. Αυτό είναι εύκολο να αναλυθεί. Αν επιβάλλουμε την (8.4) όταν t = 0, η συνθήκη θα ισχύει για κάθε χρονική στιγμή αν d dt Λαμβάνοντας υπόψη ότι d K(x,x 0 ;t) t = D 2 K(x,x 0 ;t) x 2 d + dt + dt παίρνουμε K(x, x 0 ; t)dx = 0. (8.5) + K(x, x 0; t)dx = + + K(x, x 0 ; t)dx = D x x = D K(x, x 0; t) x D K(x, x 0; t) x + x K(x,x 0 ;t) dx και ότι t ( ) K(x, x0 ; t) dx. (8.6) x Η παραπάνω σχέση μας λέει πως για συναρτήσεις που το δεξί μέλος μηδενίζεται, η συνθήκη κανονικοποίησης μπορεί να επιβληθεί για όλες τις χρονικές στιγμές t > 0. Η προσεκτική ανάλυση της εξίσωσης (8.2) δίνει ότι, για μικρούς χρόνους, η ασυμπτωτική συμπεριφορά του K(x, x 0 ; t) είναι x x 0 2 K(x, x 0 ; t) e 4Dt t d/2 a i (x, x 0 )t i. (8.7) i=0 Η σχέση αυτή δείχνει πως η διάχυση είναι ισότροπη (ίδια προς όλες τις κατευθύνσεις) και η πιθανότητα ανίχνευσης ελαττώνεται δραστικά απαίτηση για κάθε συνάρτηση f(x) να έχουμε + f(x)δ(x x 0) dx = f(x 0 ). Προφανώς τότε έχουμε ότι + δ(x x 0) dx = 1. Μπορεί κανείς να το φανταστεί σαν μια συνάρτηση που είναι πρακτικά μηδέν παντού, εκτός από μια απειροστή περιοχή γύρω από το x 0. ³Εναλλακτικά, αν η K(x, x 0 ; t) δίνει λ.χ. την πυκνότητα μάζας μιας σταγόνας μελανιού μάζας m ink που διαχέεται μέσα σε ένα διαφανές υγρό, θα έχουμε + K(x, x 0; t) dx = m ink και K(x, x 0 ; 0) = m ink δ(x x 0 ).
8.2. ΑΠΑΓΩΓΗ ΘΕΡΜΟΤΗΤΑΣ 377 με την απόσταση από την αρχική θέση του σωματιδίου. Αυτή η σχέση δεν μπορεί να ισχύει για πάντα, αφού για αρκετά μεγάλους χρόνους το σωμάτιο κατανέμεται ομοιόμορφα μέσα στο χώρο⁴. Η πιθανότητα επιστροφής του σωματιδίου στην αρχική του θέση ορίζεται να είναι P R (t) = K(x 0, x 0 ; t) 1 t d/2 a i (x 0, x 0 )t i (8.8) που ορίζει τη φασματική διάσταση d του χώρου. Στην περίπτωση που μελετάμε d = 1. Η μέση τιμή του τετραγώνου της απόστασης από την αρχή των αξόνων που βρίσκεται το σωματίδιο σε χρόνο t είναι εύκολο να υπολογιστεί⁵ r 2 = (x x 0 ) 2 (t) = + i=0 (x x 0 ) 2 K(x, x 0 ; t) dx 2Dt. (8.9) Η τελευταία σχέση είναι πολύ σημαντική. Μας λέει πως η κίνηση του τυχαίου περιπατητή (κίνηση Brown) δεν μπορεί να έχει κλασική περιγραφή αλλά μόνο στοχαστική: Για ένα κλασικό σωμάτιο που κινείται πάνω σε μια ομαλή τροχιά x x 0 vt άρα r 2 t 2. Στα επόμενα κεφάλαια, για απλότητα παίρνουμε⁶ D = 1 και ορίζουμε u(x, t) K(x x 0, x 0 ; t). (8.10) 8.2 Απαγωγή Θερμότητας Έστω μια λεπτή ευθύγραμμη ράβδος μήκους L και T (x, t) η κατανομή της θερμοκρασίας της τη χρονική στιγμή t, και έστω ότι τα άκρα της τα κρατάμε σε σταθερή θερμοκρασία T (0, t) = T (L, t) = T 0. Αν η αρχική κατανομή της θερμοκρασίας είναι T (x, 0), η θερμοκρασία σε κάθε άλλη χρονική στιγμή προσδιορίζεται από την εξίσωση διάχυσης T (x, t) t = α 2 T (x, t) x 2 (8.11) όπου α = k/(c p ρ) ο θερμικός συντελεστής διάχυσης (thermal diffusivity), k η θερμική αγωγιμότητα, ρ η πυκνότητα και c p η ειδική θερμότητα της ράβδου. ⁴Θυμηθείτε την αναλογία με τη σταγόνα μελανιού που διαχέεται μέσα σε ένα ποτήρι νερό και μετά από αρκετό χρόνο έχει διαχυθεί ομοιόμορφα μέσα στο νερό. ⁵ dr r n e r2 /4Dt = 2 n Γ( n+1 n+1 0 2 )(Dt) 2. ⁶Αυτό σύμφωνα με την (8.2) αντιστοιχεί στο να πάρουμε t Dt.
378 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ Ορίζουμε L2 T (xl, α u(x, t) = t) T 0, (8.12) T 0 όπου x [0, 1]. Με τον ορισμό αυτό, η συνάρτηση u(x, t) είναι καθαρός αριθμός (αδιάστατη) και εκφράζει το κλάσμα της διαφοράς θερμοκρασίας σε σχέση με αυτής των άκρων της ράβδου και 0 u(0, t) = u(1, t) = 0. (8.13) Αυτές λέγονται συνοριακές συνθήκες τύπου Dirichlet⁷ Η (8.11) γίνεται u(x, t) = 2 u(x, t) (8.14) t x 2 Η σχέση (8.6) γίνεται d 1 u(x, t)dx = u dt x u x=1 x (8.15) x=0 Η παραπάνω σχέση δεν μπορεί να δίνει πάντα 0 λόγω των συνοριακών συνθηκών (8.13). Αυτό μπορούμε να το δούμε με ένα παράδειγμα. Έστω u(x, 0) = sin(πx), (8.16) τότε μπορείτε εύκολα να επιβεβαιώσετε ότι ικανοποιούνται οι απαιτούμενες συνοριακές συνθήκες και ότι η συνάρτηση u(x, t) = sin(πx)e π2t, (8.17) είναι η ζητούμενη λύση της εξίσωσης διάχυσης που ικανοποιεί επίσης τις συνοριακές συνθήκες. Είναι εύκολο να διαπιστώσετε ότι το 1 0 u(x, t)dx = 2 π e π2 t τείνει εκθετικά γρήγορα στο μηδέν με το χρόνο και ότι d dt 1 0 u(x, t)dx = 2πe π2t, σε συμφωνία με τις σχέσεις (8.15). Η εκθετική πτώση του μέτρου της u(x, t) είναι σε συμφωνία με την φυσική απαίτηση ότι η ράβδος σε αρκετά μεγάλο χρόνο θα έχει ομοιόμορφη θερμοκρασία, ίση με αυτή που επιβάλαμε στα άκρα της (lim t + u(x, t) = 0). ⁷Αν προσδιορίζαμε τις παραγώγους u/ x στα άκρα (λ.χ. ταλάντωση ελεύθερης ράβδου), θα είχαμε συνοριακές συνθήκες τύπου Neumann.
8.3. ΔΙΑΚΡΙΤΟΠΟΙΗΣΗ 379 8.3 Διακριτοποίηση Η αριθμητική λύση της εξίσωσης (8.14) θα αναζητηθεί στο διάστημα x [0, 1] και t [0, t f ]. Το πρόβλημα πρέπει να οριστεί πάνω σε ένα διακριτό πλέγμα και η διαφορική εξίσωση να προσεγγιστεί από αλγεβρικές εξισώσεις πεπερασμένων διαφορών. Το πλέγμα ορίζεται από N x χωρικά σημεία x i [0, 1] x i = 0 + (i 1) x i = 1,..., N x, (8.18) όπου τα N x 1 διαστήματα έχουν σταθερό πλάτος και από N t χρονικά πλεγματικά σημεία t j [0, t f ] x = 1 0 N x 1, (8.19) t j = 0 + (j 1) t j = 1,..., N t, (8.20) όπου τα N t 1 διαστήματα έχουν σταθερό πλάτος t = t f 0 N t 1. (8.21) Σημειώνουμε ότι τα άκρα των διαστημάτων αντιστοιχούν στα x 1 = 0, x Nx = 1, t 1 = 0, t Nt = t f. (8.22) Η συνάρτηση u(x, t) προσεγγίζεται από τις τιμές της πάνω στο διακριτό N x N t πλέγμα u i,j u(x i, t j ). (8.23) Οι παράγωγοι διακριτοποιούνται σύμφωνα με τις σχέσεις u(x, t) t u(x i, t j + t) u(x i, t j ) t 1 t (u i,j+1 u i,j ), (8.24) 2 u(x, t) u(x i + x, t j ) 2u(x i, t j ) + u(x i x, t j ) x 2 ( x) 2 1 ( x) (u 2 i+1,j 2u i,j + u i 1,j ). (8.25) Εξισώνοντας τα δύο μέλη των παραπάνω σχέσεων σύμφωνα με την (8.14), παίρνουμε τη δυναμική εξέλιξη της u i,j στο χρόνο u i,j+1 = u i,j + t ( x) 2 (u i+1,j 2u i,j + u i 1,j ). (8.26)
380 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ Αυτή είναι μια επαγωγική σχέση ενός βήματος ως προς το χρόνο. Αυτό είναι πολύ σημαντικό γιατί δε χρειάζεται στο πρόγραμμα να αποθηκεύσουμε στη μνήμη τις τιμές u i,j για κάθε j. Ο δεύτερος όρος της δεύτερης παραγώγου στην (8.26) περιέχει μόνο τους πλησιέστερους γείτονες u i±1,j κάθε πλεγματικού σημείου u i,j μιας χρονικής φέτας t j του πλέγματος, άρα μπορεί να χρησιμοποιηθεί για κάθε i = 2,..., N x 1. Για τα σημεία i = 1 και i = N x δε χρειάζεται να χρησιμοποιηθούν οι σχέσεις (8.26), αφού κρατάμε τις τιμές u 1,j = u Nx,j = 0 αμετάβλητες. Τέλος, η παράμετρος t ( x) 2 (8.27) είναι αυτή που καθορίζει τη χρονική εξέλιξη στον αλγόριθμο. Ονομάζεται παράμετρος του Courant και για να έχουμε χρονική εξέλιξη χωρίς να παρουσιάζονται γρήγορα αστάθειες, θα πρέπει t ( x) 2 < 1 2. (8.28) Αυτό είναι κάτι που εμείς θα το ελέγξουμε εμπειρικά με την αριθμητική ανάλυση που θα κάνουμε. 8.4 Το Πρόγραμμα Τα μόνα σημεία που τονίζουμε σχετικά με το σχεδιασμό του προγράμματος είναι ότι η σχέση (8.26) είναι μια επαγωγική σχέση ενός βήματος ως προς το χρόνο. Άρα, σε κάθε χρονικό βήμα αρκεί να αποθηκεύσουμε σε ένα array τις τιμές του δεύτερου όρου (τη δεύτερη παράγωγο ) και να το χρησιμοποιήσουμε για να ενημερώσουμε τις νέες τιμές της συνάρτησης u i,j. Άρα, στην επαναλαμβανόμενη διαδικασία (8.26) υπολογισμού της u i,j+1 από την u i,j αρκεί να χρησιμοποιήσουμε μονάχα ένα array u i, i = 1,..., N x και ένα ( 2 u/ x 2 ) i, i = 1,..., N x που δίνουν τις αντίστοιχες τιμές της u i,j και t/( x) 2 (u i+1,j 2u i,j + u i 1,j ) τη χρονική στιγμή t j αντίστοιχα. Στο παρακάτω πρόγραμμα αυτά κωδικοποιούνται στα arrays u(p) και d2udx2(p). Τα χρήσιμα δεδομένα βρίσκονται στις θέσεις u(1)... u(nx) d2udx2(1)... d2udx2(nx) και η παράμετρος P επιλέγεται αρκετά μεγάλη, ώστε οι τιμές του Nx που θα μελετηθούν να είναι πάντα μικρότερες. Ο χρήστης δίνει στην είσοδο τις τιμές N x = Nx, N t =Nt, t f =tf. Οι τιμές x, t και t/ x 2 = courant υπολογίζονται στα αρχικά στάδια του προγράμματος.
8.4. ΤΟ ΠΡΟΓΡΑΜΜΑ 381 Στην έξοδο παίρνουμε το αρχείο d.dat που περιέχει σε στήλες τις τιμές (t j, x i, u i,j ). Όταν τελειώνει μια χρονική φέτα t j, το πρόγραμμα τυπώνει μια κενή γραμμή, έτσι ώστε το gnuplot να κάνει αμέσως την τρισδιάστατη γραφική παράσταση. Το πρόγραμμα μπορεί να βρεθεί στο αρχείο diffusion.f90 στο συνοδευτικό λογισμικό και ο κώδικας που περιέχει δίνεται παρακάτω:! =======================================================! 1 dimensional D i f f u s i o n Equation with simple! D i r i c h l e t boundary c o n d i t i o n s u(0, t )=u ( 1, t )=0! 0<= x <= 1 and 0<= t <= t f!! We s e t i n i t i a l condition u( x, t =0) t h a t s a t i s f i e s! the given boundary c o n d i t i o n s.! Nx i s the number of points in s p a t i a l l a t t i c e :! x = 0 + ( j 1) *dx, j = 1,..., Nx and dx = (1 0) / ( Nx 1)! Nt i s the number of points in temporal l a t t i c e :! t = 0 + ( j 1) * dt, j = 1,..., Nt and dt = ( t f 0) / ( Nt 1)!! u( x, 0 ) = s i n ( pi * x ) t e s t e d a g a i n s t a n a l y t i c a l s o l u t i o n! u( x, t ) = s i n ( pi * x ) * exp( pi * pi * t )!! ======================================================= program diffusion_1d i m p l i c i t none i n t e g e r, parameter : : P =100000! Max no of points r e a l (8), parameter : : PI=3.1415926535897932D0 r e a l (8), dimension ( P ) : : u, d2udx2 r e a l (8) : : t, x, dx, dt, tf, courant i n t e g e r Nx, Nt, i, j! Input : p r i n t *, # Enter : Nx, Nt, t f : (P=, P, Nx must be < P) read *, Nx, Nt, tf i f ( Nx. ge. P ) stop Nx >= P i f ( Nx. le. 3) stop Nx <= 3 i f ( Nt. le. 2) stop Nt <= 2! I n i t i a l i z e : dx = 1.0 D0 / ( Nx 1) dt = tf / ( Nt 1) courant = dt / dx **2 p r i n t *, # 1d D i f f u s i o n Equation : 0<=x <=1, 0<=t <= t f p r i n t *, # dx=, dx, dt=, dt, t f =, tf p r i n t *, # Nx=, Nx, Nt=, Nt p r i n t *, # Courant Number=, courant i f ( courant. gt. 0.5 D0 ) p r i n t *, # WARNING: courant > 0.5 open ( unit =11, f i l e = d. dat )! data f i l e! I n i t i a l condition a t t =0
382 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ! u( x, 0 ) = s i n ( pi x ) do i= 1, Nx x = ( i 1) * dx u ( i ) = s i n ( PI * x ) enddo u ( 1 ) = 0.0 d0 u ( Nx ) = 0.0 d0 do i= 1, Nx x = ( i 1) * dx write ( 1 1, * ) 0.0 D0, x, u ( i ) enddo write ( 1 1, * )!! C a l c u l a t e time evolution : do j=2,nt t = ( j 1) * dt! second d e r i v a t i v e : do i=2,nx 1 d2udx2 ( i ) = courant * ( u ( i+1) 2.0D0 * u ( i )+u ( i 1) ) enddo! update : do i=2,nx 1 u ( i ) = u ( i ) + d2udx2 ( i ) enddo do i =1, Nx x = ( i 1) * dx write ( 1 1, * ) t, x, u ( i ) enddo write ( 1 1, * ) enddo! do j =2,Nt c l o s e ( 1 1 ) end program diffusion_1d 8.5 Αποτελέσματα Αρχικά γίνεται η μεταγλώττιση και το τρέξιμο του προγράμματος > g f o r t r a n diffusion. f90 o d > echo 10 100 0.4. / d # Enter : Nx, Nt, t f : ( P= 100000 Nx must be < P) # 1d D i f f u s i o n Equation : 0<=x <=1, 0<=t <= t f # dx= 0.11111111111111110 dt= 4.04040404040404040E 3 t f = 0.4 # Nx= 10 Nt= 100 # Courant Number= 0.32727272727272733
8.5. ΑΠΟΤΕΛΕΣΜΑΤΑ 383 Στη δεύτερη σειρά, εισάγουμε στο stdin του προγράμματος τις τιμές Nx=10, Nt=100, tf= 0.4 από το stdout της εντολής echo. Οι επόμενες γραμμές είναι το output του προγράμματος. Στη συνέχεια, μπορούμε να κάνουμε μια τρισδιάστατη γραφική αναπαράσταση της u(x, t) με τη βοήθεια του gnuplot: gnuplot> s e t pm3d gnuplot > s e t hidden3d gnuplot> s p l o t d. dat with lines gnuplot > unset pm3d Σχήμα 8.1: Η συνάρτηση u(x, t) για Nx=10, Nt=100, tf= 0.4. Στη συνέχεια, θέλουμε να δούμε τη συνάρτηση u(x, t) ως συνάρτηση του x για δεδομένες τιμές του χρόνου. Παρατηρούμε ότι ο χρόνος αλλάζει κάθε φορά που συναντάμε μια κενή γραμμή στο αρχείο d.dat. Το παρακάτω πρόγραμμα awk μετράει τις κενές γραμμές και τυπώνει μόνο εκείνη που εμείς επιθυμούμε. Ο μετρητής n=0, 1,..., Nt-1 μπορεί να καθορίσει την τιμή του t j = t n 1. Τα αποτελέσματα τα σώζουμε σε ένα αρχείο tj το οποίο μπορούμε να το δούμε με το gnuplot. Επαναλαμβάνουμε όσες φορές χρειάζεται: > awk NF<3{n++}n==3 { p r i n t } d. dat > tj gnuplot> p l o t t j using 2:3 with lines Την παραπάνω εργασία μπορούμε να την κάνουμε χωρίς τη δημιουργία ενδιάμεσων αρχείων tj χρησιμοποιώντας το φίλτρο της awk μέσα από
384 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ το gnuplot. Έτσι, για παράδειγμα, οι εντολές gnuplot >! echo 10 800 2. / d gnuplot> plot <awk NF<3{n++}n==3 { p r i n t } d. dat u 2:3 w l gnuplot> replot <awk NF<3{n++}n==6 { p r i n t } d. dat u 2:3 w l gnuplot> replot <awk NF<3{n++}n==10 { p r i n t } d. dat u 2:3 w l gnuplot> replot <awk NF<3{n++}n==20 { p r i n t } d. dat u 2:3 w l gnuplot> replot <awk NF<3{n++}n==30 { p r i n t } d. dat u 2:3 w l gnuplot> replot <awk NF<3{n++}n==50 { p r i n t } d. dat u 2:3 w l gnuplot> replot <awk NF<3{n++}n==100{ p r i n t } d. dat u 2:3 w l τρέχουν το πρόγραμμα για Nx=10, Nt=800, tf= 2 και παράγουν το σχήμα 8.2 Σχήμα 8.2: Η συνάρτηση u(x, t) για Nx=10, Nt=800, tf= 2 για διαφορετικές σταθερές τιμές του χρόνου t j. Εδώ j = 4, 7, 11, 21, 31, 51, 101 όπου η u(x, t) φθίνει όταν αυξάνει το j. Στη συνέχεια είναι ενδιαφέρον να συγκρίνει κανείς τα αποτελέσματα του με την ακριβή λύση u(x, t) = sin(πx)e π2t. Ένας τρόπος να γίνει είναι να ορίσουμε το σχετικό σφάλμα u i,j u(x i, t j ) u i,j, και να το υπολογίσουμε ορίζοντας τη σχετική συνάρτηση μέσα στο gnuplot:
8.6. ΔΙΑΧΥΣΗ ΠΑΝΩ ΣΤΟΝ ΚΥΚΛΟ. 385 gnuplot> du ( x, y, z ) = ( z s i n ( pi * x ) * exp( pi * pi * y ) ) / z gnuplot> p l o t <awk NF<3{n++}n==2 d. dat u 2 : ( du ( $2, $1, $3 ) ) gnuplot> p l o t <awk NF<3{n++}n==6 d. dat u 2 : ( du ( $2, $1, $3 ) ) gnuplot> p l o t <awk NF<3{n++}n==20 d. dat u 2 : ( du ( $2, $1, $3 ) ) gnuplot> p l o t <awk NF<3{n++}n==200 d. dat u 2 : ( du ( $2, $1, $3 ) ) gnuplot> p l o t <awk NF<3{n++}n==600 d. dat u 2 : ( du ( $2, $1, $3 ) ) gnuplot> p l o t <awk NF<3{n++}n==780 d. dat u 2 : ( du ( $2, $1, $3 ) ) Σχήμα 8.3: H απόλυτη τιμή του σχετικού σφάλματος του αριθμητικού υπολογισμού για Nx=10, Nt=800, tf= 2 για διαφορετικές σταθερές τιμές του χρόνου t j. Εδώ j = 3, 7, 21, 201, 601, 781 και το σχετικό σφάλμα αυξάνει με το j. Τα αποτελέσματα μπορούμε να τα δούμε στο σχήμα 8.3. 8.6 Διάχυση Πάνω στον Κύκλο. Για να μελετήσουμε τον πυρήνα K(x, x 0 ; t) στο πρόβλημα της διάχυσης ή των τυχαίων διαδρομών, πρέπει να επιβάλλουμε τη συνθήκη κανονικοποίησης (8.4) για κάθε χρονική στιγμή. Στην περίπτωση της u(x, t) ορισμένης για x [0, 1] η σχέση γίνεται 1 0 u(x, t) dx = 1, (8.29) η οποία για να ισχύει για κάθε χρονική στιγμή είναι αναγκαίο το δεξί μέλος της (8.15) να είναι 0. Ένας τρόπος να επιβάλλουμε αυτή τη συνθήκη
386 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ είναι να θεωρήσουμε το πρόβλημα της διάχυσης πάνω στον κύκλο. Αν παραμετροποιήσουμε τα σημεία του κύκλου με τη μεταβλητή x [0, 1], τότε τα σημεία x = 0 και x = 1 ταυτίζονται και έχουμε u(0, t) = u(1, t), u(0, t) x = u(1, t) x. (8.30) Η δεύτερη από τις παραπάνω σχέσεις μηδενίζει το δεξί μέλος της (8.15) με αποτέλεσμα, αν θέσουμε 1 u(x, 0) dx = 1, να έχουμε 1 u(x, t) dx = 1, 0 0 t > 0. Με τις παραπάνω παραδοχές, η διακριτοποίηση της διαφορικής εξίσωσης γίνεται ακριβώς όπως και στο πρόβλημα της απαγωγής της θερμότητας. Αντί τώρα να κρατάμε τις τιμές u(0, t) = u(1, t) = 0 σταθερές, θα εφαρμόσουμε την εξίσωση δυναμικής εξέλιξης (8.26) και για τα σημεία x 1, x Nx αφού πάνω στον κύκλο αυτά τα σημεία δεν ξεχωρίζουν από τα υπόλοιπα. Για να λάβουμε υπόψη την κυκλική τοπολογία αρκεί να πάρουμε και u 1,j+1 = u 1,j + u Nx,j+1 = u i,j + t ( x) 2 (u 2,j 2u 1,j + u Nx,j), (8.31) t ( x) 2 (u 1,j 2u Nx,j + u Nx 1,j), (8.32) αφού ο γείτονας εκ δεξιών του σημείου x Nx είναι το σημείο x 1 και ο γείτονας εξ αριστερών του σημείου x 1 είναι το σημείο x Nx. Για τα υπόλοιπα σημεία i = 2,..., N x 1 η σχέση (8.26) εφαρμόζεται κανονικά. Το πρόγραμμα που κωδικοποιεί το παραπάνω πρόβλημα δίνεται παρακάτω και βρίσκεται στο αρχείο diffusions1.f90. H επιβολή των συνοριακών συνθηκών (8.30) γίνεται στις γραμμές nnr = i+1 i f ( nnr. gt. Nx ) nnr = 1 nnl = i 1 i f ( nnl. lt. 1 ) nnl = Nx d2udx2 ( i ) = courant * ( u ( nnr ) 2.0D0 * u ( i )+u ( nnl ) ) Οι αρχικές συνθήκες τη χρονική στιγμή t = 0 επιλέγονται έτσι, ώστε να είναι το σωμάτιο στη θέση x Nx /2. Σε κάθε χρονική στιγμή γίνονται μετρήσεις με σκοπό να επαληθευτούν οι εξισώσεις (8.4), (8.9) και το γεγονός ότι lim t + u(x, t) = σταθ. Η μεταβλητή prob = N x i=1 u i,j και ελέγχεται αν διατηρεί την αρχική της τιμή που είναι ίση με 1.
8.6. ΔΙΑΧΥΣΗ ΠΑΝΩ ΣΤΟΝ ΚΥΚΛΟ. 387 Η μεταβλητή r2 = N x i=1 (x i x Nx /2) 2 u i,j είναι η διακριτή εκτίμηση της μέσης τιμής του τετραγώνου της απόστασης από την αρχική θέση η οποία για αρκετά μικρούς χρόνους θα πρέπει να ακολουθεί το νόμο που δίνει η εξίσωση (8.9). Οι παραπάνω μεταβλητές αποθηκεύονται στο αρχείο e.dat μαζί με τις τιμές u Nx /2,j, u Nx /4,j και u 1,j. Οι τελευταίες ελέγχονται αν μετά από αρκετά μεγάλο χρόνο αποκτούν την ίδια σταθερή τιμή, σύμφωνα με το αναμενόμενο αποτέλεσμα lim t + u(x, t) = σταθ. Όλος ο πηγαίος κώδικας είναι:! =======================================================! 1 dimensional D i f f u s i o n Equation with! p e r i o d i c boundary c o n d i t i o n s u(0, t )=u ( 1, t )! 0<= x <= 1 and 0<= t <= t f!! We s e t i n i t i a l condition u( x, t =0) t h a t s a t i s f i e s! the given boundary c o n d i t i o n s.! Nx i s the number of points in s p a t i a l l a t t i c e :! x = 0 + ( j 1) *dx, j = 1,..., Nx and dx = (1 0) / ( Nx 1)! Nt i s the number of points in temporal l a t t i c e :! t = 0 + ( j 1) * dt, j = 1,..., Nt and dt = ( t f 0) / ( Nt 1)!! u( x, 0 ) = \ d e l t a _ {x, 0. 5 }!! ======================================================= program diffusion_1d i m p l i c i t none i n t e g e r, parameter : : P =100000! Max no of points r e a l (8), parameter : : PI=3.1415926535897932D0 r e a l (8), dimension ( P ) : : u, d2udx2 r e a l (8) : : t, x, dx, dt, tf, courant, prob, r2, x0 i n t e g e r Nx, Nt, i, j, nnl, nnr! Input : p r i n t *, # Enter : Nx, Nt, t f : (P=, P, Nx must be < P) read *, Nx, Nt, tf i f ( Nx. ge. P ) stop Nx >= P i f ( Nx. le. 3) stop Nx <= 3 i f ( Nt. le. 2) stop Nt <= 2! I n i t i a l i z e : dx = 1.0 D0 / ( Nx 1) dt = tf / ( Nt 1) courant = dt / dx **2 p r i n t *, # 1d D i f f u s i o n Equation on S1 : 0<=x <=1, 0<=t <= t f p r i n t *, # dx=, dx, dt=, dt, t f =, tf p r i n t *, # Nx=, Nx, Nt=, Nt p r i n t *, # Courant Number=, courant
388 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ i f ( courant. gt. 0.5 D0 ) p r i n t *, # WARNING: courant > 0.5 open ( unit =11, f i l e = d. dat )! data f i l e open ( unit =12, f i l e = e. dat )! data f i l e! I n i t i a l condition a t t =0 do i= 1, Nx x = ( i 1) * dx u ( i ) = 0.0 D0 enddo u ( Nx / 2 ) = 1.0 D0 do i= 1, Nx x = ( i 1) * dx write ( 1 1, * ) 0.0 D0, x, u ( i ) enddo write ( 1 1, * )!! C a l c u l a t e time evolution : do j=2,nt t = ( j 1) * dt! second d e r i v a t i v e : do i =1, Nx nnr = i+1 i f ( nnr. gt. Nx ) nnr = 1 nnl = i 1 i f ( nnl. lt. 1 ) nnl = Nx d2udx2 ( i ) = courant * ( u ( nnr ) 2.0D0 * u ( i )+u ( nnl ) ) enddo! update : prob = 0.0 D0 r2 = 0.0 D0 x0 = ( ( Nx / 2 ) 1) * dx! o r i g i n a l p o s i t i o n do i =1, Nx x = ( i 1) * dx u ( i ) = u ( i ) + d2udx2 ( i ) prob = prob + u ( i ) r2 = r2 + u ( i ) * ( x x0 ) * ( x x0 ) enddo do i =1, Nx x = ( i 1) * dx write ( 1 1, * ) t, x, u ( i ) enddo write ( 1 1, * ) write ( 1 2, * ) pu, t, prob, r2, u ( Nx / 2 ), u ( Nx / 4 ), u ( 1 ) enddo! do j =2,Nt c l o s e ( 1 1 ) end program diffusion_1d
8.7. ΑΝΑΛΥΣΗ 389 8.7 Ανάλυση Το πρόγραμμα αποθηκεύει στο αρχείο e.dat για κάθε χρονική στιγμή τις ποσότητες N x U j = u i,j (8.33) i=1 που είναι ο διακριτός εκτιμητής της (8.29) και περιμένουμε να παίρνουμε U j = 1 για κάθε τιμή του j, N x r 2 j = u i,j (x i x Nx /2) 2 (8.34) i=1 που είναι ο διακριτός εκτιμητής της (8.9) και περιμένουμε για μικρούς χρόνους να ισχύει r 2 j 2t j, (8.35) καθώς και τις τιμές u Nx/2,j, u Nx/4,j, u 1,j. Οι τιμές t j, U j, r 2 j, u Nx /2,j, u Nx /4,j, u 1,j βρίσκονται αντίστοιχα στις στήλες 2, 3, 4, 5, 6 και 7 του αρχείου e.dat. Ξεκινάμε το gnuplot και μέσα από αυτό δίνουμε τις εντολές gnuplot >! gfortran diffusions1. f90 o d gnuplot >! echo 10 100 0. 4. / d που ορίζουν τις τιμές N x = 10, N t = 100, t f 4.0404, t/ x 2 0.327. Με τις εντολές = 0.4, x 0.111, t gnuplot> p l o t e. dat u 2:5 w l gnuplot> r e p l o t e. dat u 2:6 w l gnuplot> r e p l o t e. dat u 2:7 w l φτιάχνουμε το σχήμα 8.4 από όπου βλέπουμε την ομοιόμορφη κατανομή της διάχυσης για αρκετά μεγάλους χρόνους. Η σχέση U j = 1 επιβεβαιώνεται με απλό κοίταγμα στο αρχείο e.dat. Η ασυμπτωτική σχέση r 2 j 2t j επιβεβαιώνεται με τις εντολές gnuplot> p l o t [ : ] [ : 0. 1 1 ] e. dat u 2 : 4, 2 * x που μας δίνει το σχήμα 8.5. Τέλος, κάνουμε μια επισκόπηση της συνάρτησης u(x, t) με τις εντολές
390 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ Σχήμα 8.4: Οι συναρτήσεις u Nx /2,j, u Nx /4,j, u 1,j ως συνάρτηση του t j για N x = 10, N t = 100, t f = 0.4. Για μεγάλο χρόνο τείνουν προς μια σταθερή τιμή που αντιστοιχεί στην ομοιόμορφη διάχυση. gnuplot >! echo 10 100 0. 16. / d gnuplot> s e t pm3d gnuplot> s p l o t [ 0 : 0. 1 6 ] [ 0 : 1 ] [ 0 : 1] d. dat w l gnuplot> s p l o t [ 0 : 0. 1 6 ] [ 0 : 1 ] [ 0 :. 2 ] d. dat w l και το αποτέλεσμα φαίνεται στο σχήμα 8.6.
8.7. ΑΝΑΛΥΣΗ 391 Σχήμα 8.5: Η μέση τιμή r 2 j ως συνάρτηση του t j για N x = 10, N t = 100, t f = 0.4. Για μικρές τιμές του t j ισχύει r 2 j 2t j το οποίο συγκρίνεται με την ευθεία 2t.
392 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ Σχήμα 8.6: Η συνάρτηση u(x, t) για N x = 10, N t = 100, t f = 0.16. Στο δεύτερο σχήμα αλλάζουμε μόνο την κλίμακα του άξονα z ώστε να φανούν οι λεπτομέρειες της διάχυσης μακρυά από το σημείο x 0 x Nx/2 = x 5.
8.8. ΑΣΚΗΣΕΙΣ 393 8.8 Ασκήσεις 8.1 Να αναπαράγετε τα αποτελέσματα του σχήματος 8.3. 8.2 Η κατανομή της θερμοκρασίας u(x, t) σε μία λεπτή ράβδο ικανοποιεί την εξίσωση (8.14) μαζί με τις συνοριακές συνθήκες (8.13) στα άκρα της ράβδου x = 0, 1. Η κατανομή της θερμοκρασίας, όταν t = 0, δίνεται από τη συνάρτηση u(x, 0) = { 0.5 x [x1, x 2 ] 0.3 x / [x 1, x 2 ], όπου x 1 = 0.25 και x 2 = 0.75. (αʹ) Υπολογίστε την κατανομή της θερμοκρασίας u(x, t f ) όταν t f = 0.0001, 0.001, 0.01, 0.05. Να πάρετε N x = 100 και N t = 1000. Να κάνετε το ίδιο για t f = 0.1 παίρνοντας κατάλληλο N x και κρατώντας N t = 1000. Να κάνετε τις γραφικές παραστάσεις των u(x, t f ) στο ίδιο διάγραμμα. (βʹ) Υπολογίστε γραφικά τη μέγιστη τιμή της θερμοκρασίας για t f = 0.0001, 0.001, 0.01, 0.05, 0.1, 0.15, 0.25. Να πάρετε N x = 100 και να επιλέξετε κατάλληλη τιμή για τα N t. (γʹ) Υπολογίστε τη χρονική στιγμή κατά την οποία η θερμοκρασία στη ράβδο είναι παντού μικρότερη από 0.1. Υπόδειξη: Να κάνετε το πρόγραμμά σας να τυπώνει μόνο την τελική κατανομή της θερμοκρασίας u(x, t f ). 8.3 Η κατανομή της θερμοκρασίας u(x, t) σε μία λεπτή ράβδο ικανοποιεί την εξίσωση u t = u α 2 x. 2 Η θερμοκρασία στα άκρα της ράβδου u(0, t) = u(1, t) = 0, ενώ όταν t = 0 { [ ( 0.5 1 cos 2πx )] 0 x < b u(x, 0) = b 0 b x 1. (αʹ) Να υπολογίσετε την κατανομή θερμοκρασίας u(x, t f ) όταν α = 0.5, b = 0.09 και για t f = 0.0001, 0.001, 0.01, παίρνοντας N x = 300, N t = 1000. Να κάνετε το ίδιο για t f = 0.05 επιλέγοντας κατάλληλο N x. Να κάνετε τις γραφικές παραστάσεις της u(x, t f ) στο ίδιο διάγραμμα.
394 ΚΕΦΑΛΑΙΟ 8. ΕΞΙΣΩΣΗ ΔΙΑΧΥΣΗΣ (βʹ) Για τις ίδιες παραμέτρους, να υπολογίσετε τη χρονική εξέλιξη της θερμοκρασίας στα σημεία x 1 = 0.05, x 2 = 0.50 και x 3 = 0.95 για 0 t 0.05. Να κάνετε τις γραφικές παραστάσεις της u(x 1,2,3, t) στο ίδιο διάγραμμα. (γʹ) Να υπολογίσετε την κατανομή θερμοκρασίας u(x, t f ) για b = 0.09 για τρεις τιμές του α = 5, 2, 1 για t f = 0.001. Να κάνετε τις γραφικές παραστάσεις της u(x, t f ) στο ίδιο διάγραμμα. Να σχολιάσετε την επίδραση της παραμέτρου α στα αποτελέσματά σας. 8.4 Η κατανομή της θερμοκρασίας u(x, t) σε μία λεπτή ράβδο μήκους L ικανοποιεί την εξίσωση u t = u D(x) 2 x 4 2 L D(x) u x, όπου D(x) = ae 4x/L είναι η μεταβλητή παράμετρος θερμοδιάχυσης (thermal diffusivity) της οποίας η τιμή εξαρτάται από τη θέση x. Η θερμοκρασία της ράβδου στα άκρα της είναι τέτοια, ώστε u(0, t) = u(l, t) = 0, ενώ τη χρονική στιγμή t = 0, η κατανομή της θερμοκρασίας κατά μήκος της ράβδου είναι u(x, 0) = Ce (x L/2)2 /σ 2. (αʹ) Να γράψετε πρόγραμμα που στην είσοδο θα ζητάει από το χρήστη τις παραμέτρους L, a, C, σ, N x, N t και t f. Στην έξοδο θα υπολογίζει την u(x, t f ) και θα τυπώνει σε ένα αρχείο d.dat τα σημεία (x i, u(x i, t f )) σε δύο στήλες. (βʹ) Να εκτελέσετε το πρόγραμμα για L = 4, a = 0.2, C = 1, σ = 1/2, N x = 400, N t = 20000 και να υπολογίσετε την u(x, t f ) για t f = 0.05, 1.0, 5.0. Να κάνετε τις γραφικές παραστάσεις της u(x, t f ) στο ίδιο διάγραμμα. (γʹ) Για τις ίδιες παραμέτρους, να υπολογίσετε τη χρονική εξέλιξη της θερμοκρασίας στα σημεία x 1 = 1 και x 2 = 2 για 0 t 5. Να κάνετε τις γραφικές παραστάσεις της u(x 1,2, t) στο ίδιο διάγραμμα. 8.5 Να αναπαράγετε τα αποτελέσματα που δείχνονται στα σχήματα 8.4 και 8.5.
ΒΙΒΛΙΟΓΡΑΦΙΑ [Συγγράμματα] [1] www.physics.ntua.gr/ konstant/computationalphysics/ Ο ιστότοπος του βιβλίου. Εκεί θα βρείτε το συνοδευτικό λογισμικό και συμπληρωματικό υλικό. [2] H. Gould, J. Tobochnik and H. Christian, Computer Simulation Methods, Application to Physical Systems, Third Edition, Addison Wesley (2007). Ένα εξαιρετικό εισαγωγικό βιβλίο στην υπολογιστική φυσική. Ο προγραμματισμός γίνεται σε περιβάλλον Java. Το λογισμικό δίνεται με άδεια ανοιχτού λογισμικού και μπορεί να ανακτηθεί από τη διεύθυνση opensourcephysics.org [3] R. Landau, M. J. Páez and C. C. Bordeianu, Computational Physics: Problem Solving with Computers, Wiley-VCH, 2 ed. (2007). [4] M. E. J. Newman and G. T. Barkema, Monte Carlo Methods in Statistical Physics, Clarendon Press, Oxford (2002). Εξαιρετικό βιβλίο για ένα εισαγωγικό, αλλά και πιο προχωρημένο, μάθημα στις μεθόδους Μόντε Κάρλο στη φυσική. [5] B. A. Berg, Markov Chain Monte Carlo Simulations and Their Statistical Analysis. With Web-Based Fortran Code, World Scientific, 2004. Μόντε Κάρλο για ένα μεταπτυχιακό μάθημα από έναν από τους κορυφαίους του πεδίου. Διδάσκει πολλές από τις πιο προχωρημένες μεθόδους. [6] D. P. Landau and K. Binder, A Guide to Monte Carlo Simulations in Statistical Physics, Cambridge University Press, 3rd Edition, 2009. [7] K. Binder and D. W. Heermann, Monte Carlo Simulation in Statistical Physics, Fifth Edition, Springer (2010). 683
684 ΒΙΒΛΙΟΓΡΑΦΙΑ [8] W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flanney, Numerical Recipes, The Art of Scientific Computing, Third Edition, Cambridge University Press (2007), www.nr.com Το απόλυτα απαραίτητο εγχειρίδιο για κάθε επιστήμονα, με συνταγές για τις πιο βασικές αριθμητικές μεθόδους. [Κεφάλαιο 1] [9] M. Metcalf, J. Reid, M. Cohen, Modern Fortran Explained, 4th Edition, OUP Oxford (2011). [10] J. C. Adams, W. S. Brainerd, R. A. Hendrickson, R. E. Maine, J. T. Martin and B. T. Smith, The Fortran 2003 Handbook: The Complete Syntax, Features and Procedures, Springer (2009). [11] T. M. R. Ellis, I. R. Philips and T. M. Lahey, Fortran 90 Programming, Addison-Wesley (1994). [12] C. G. Page, Professional Programmer s Guide to Fortran77, http://www.star.le.ac.uk/ cgp/prof77.html [13] Gnuplot official site http://gnuplot.info/ [14] P. K. Janert, Gnuplot in Action: Understanding Data with Graphs, Manning Publications (2009). [15] tcsh homepage: http://www.tcsh.org/home [16] P. DuBois, Using csh & tcsh, O Reilly and Associates (1995), www.kitebird.com/csh-tcsh-book/ [17] M. J. Currie, C-shell Cookbook, http://www.astro.soton.ac.uk/unixtut/sc4.pdf [18] Wiki book: C Shell Scripting, http://en.wikibooks.org/wiki/c_shell_scripting [19] G. Anderson and P. Anderson, The Unix C Shell Field Guide, Prentice Hall (1986). [Κεφάλαιο 3] [20] R. M. May, Simple Mathematical Models with Very Complicated Dynamics, Nature 261 (1976) 459.
ΒΙΒΛΙΟΓΡΑΦΙΑ 685 [21] C. Efthimiou, Introduction to Functional Equations: Theory and Problem-Solving Strategies for Mathematical Competitions and Beyond, MSRI Mathematical Circles Library (2010). Δείτε την ενότητα 16.7. [22] P. Cvitanović, R. Artuso, R. Mainieri, G. Tanner and G. Vattay, Chaos: Classical and Quantum, ChaosBook.org, Niels Bohr Institute (2012). [23] L. Smith, Chaos: A Very Short Introduction, Oxford University Press (2007). [24] M. Schroeder, Fractals, Chaos, Power Laws: Minutes from an Infinite Paradise, W.H. Freeman (1991). [25] S. H. Strogatz, Non Linear Dynamics and Chaos, Addison-Wesley (1994). [26] Wikipedia: Chaos Theory, Logistic Map, Bifurcation Diagram, Liapunov Exponents, Fractal Dimension, Feigenbaum constants. [27] Wikipedia: List of chaotic maps. [28] Wikipedia: Newton s method. [29] M. Jakobson, Absolutely continuous invariant measures for oneparameter families of one-dimensional maps, Commun. Math. Phys. 81 (1981) 39. [Κεφάλαιο 4] [30] W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flanney, Numerical Recipes, The Art of Scientific Computing, Third Edition, Cambridge University Press (2007), www.nr.com Δείτε τα κεφάλαια πάνω στις μεθόδους Runge Kutta. [31] E. W. Weisstein, Runge-Kutta Method, from MathWorld A Wolfram Web Resource. http://mathworld.wolfram.com/runge-kuttamethod.html [32] J. H. E. Cartwright and O. Piro, The dynamics of Runge-Kutta methods, Int. J. Bifurcation and Chaos 2, (1992) 427-449. [33] J. H. Mathews and K. Fink, Numerical Methods Using Matlab, Prentice Hall (2003), Chapter 9.
686 ΒΙΒΛΙΟΓΡΑΦΙΑ [34] J. H. Mathews, Numerical Analysis - Numerical Methods Project, http://math.fullerton.edu/mathews/numerical.html [35] I. Percival and D. Richards, Introduction to Dynamics, Cambridge University Press (1982). Δείτε επίσης την [37]. [36] J. B. McLaughlin, Period Doubling bifurcations and chaotic motion for a parametrically forced pendulum, J. Stat. Phys. 24 (1981) 375 388. [Κεφάλαιο 5] [37] J. V. José and E. J. Saletan, Classical Dynamics, a Contemporary Approach, Cambridge University Press, 1998. [Κεφάλαιο 6] [38] R. W. Brankin, I. Gladwell, and L. F. Shampine, RKSUITE: a suite of Runge-Kutta codes for the initial value problem for ODEs, Softreport 92-S1, Department of Mathematics, Southern Methodist University, Dallas, Texas, U.S.A (1992). Διαθέσιμο από τη διεύθυνση www.netlib.org/ode/rksuite και από το συνοδευτικό λογισμικό του βιβλίου. [Κεφάλαιο 9] [39] See the Mathematica Notebooks of Peter West http://young.physics.ucsc.edu/115/ [40] U. Wolff, B. Bunk, F. Knechtli, Computational Physics I, http://www.physik.hu-berlin.de/com/ teachingandseminars/previous_cpi_cpii [41] F. T. Hioe and E. W. Montroll, Quantum theory of anharmonic oscillators. I. Energy levels of oscillators with positive quartic anharmonicity, J. Math. Phys. 16 (1975) 1945, http://dx.doi.org/10.1063/1.522747 [Κεφάλαιο 11] [42] L. Kadanoff, Statistical Physics Statics, Dynamics and Renormalization, World Scientific (2000). [43] J. Ambjørn, B. Durhuus and T. Jonsson, Quantum Geometry, Cambridge Monographs on Mathematical Physics, Cambridge University Press (1997).
ΒΙΒΛΙΟΓΡΑΦΙΑ 687 [44] C. Itzykson and J. M. Drouffe, Statistical Field Theory, Volume 1, Cambridge Monographs on Mathematical Physics, Cambridge University Press (1989). [45] D. E. Knuth, Seminumerical Algorithms, Vol. 2 of The Art of Computer Programming, Addison-Wesley (1981). [46] M. Lüscher, Comput. Phys. Commun. 79 (1994) 100; F. James, Comput. Phys. Commun. 79 (1994) 111; Erratum 97 (1996) 357. Το πρόγραμμα είναι διαθέσιμο στις διευθύνσεις http://cpc.cs.qub.ac.uk/summaries/acpr_v1_0.html http://wwwasd.web.cern.ch/wwwasd/cernlib/ download/2001_wnt/src/mathlib/gen/v/ranlux.f [47] L. Schrage, A More Portable Fortran Random Number Generator, ACM Transactions on Mathematical Software, 5 (1979) 132-138; P. Bratley, B. L. Fox and L. Schrage, A Guide to Simulation, Springer- Verlag, 1983. [48] G. Marsaglia and A. Zaman, Ann. Appl. Prob. 1 (1991) 462. [49] B. Li, N. Madras and A. D. Sokal, Critical Exponents, Hyperscaling and Universal Amplitude Ratios for Two- and Three-Dimensional Self-Avoiding Walks, J.Statist.Phys. 80 (1995) 661-754 [arxiv:heplat/9409003]; G. Slade, The self-avoiding walk: A brief survey, Surveys in Stochastic Processes, pp. 181-199, eds. J. Blath, P. Imkeller and S. Roelly, European Mathematical Society, Zurich, (2011), http://www.math.ubc.ca/ slade/spa_proceedings.pdf [Κεφάλαιο 12] [50] J. J. Binney, N. J. Dowrick, A. J. Fisher and M. E. J. Newman, The Theory of Critical Phenomena, Clarenton Press (1992). [51] R. K. Pathria and P. D. Beale, Statistical Mechanics, Third Edition, Elsevier (2011). [52] F. Mandl, Statistical Physics, Second Edition, Wiley (1988). [53] R. J. Baxter, Exactly Solved Models in Statistical Mechanics, Dover Publications (2008). [Κεφάλαιο 13]
688 ΒΙΒΛΙΟΓΡΑΦΙΑ [54] E. Ising, Beitrag zur Theorie des Ferromagnetizmus, Z. Phys. 31 (1925) 253 258. [55] L. Onsager, Crystal Statistics. I. A Two Dimensional Model with an Order Disorder Transition, Phys. Rev. 65 (1944) 117 119. [56] K. Huang, Statistical Mechanics, John Wiley & Sons, New York, (1987). Λεπτομερής παρουσίαση της λύσης Onsager. [57] C. N. Yang, The Spontaneous Magnetization of a Two-Dimensional Ising Model, Phys. Rev. 85 (1952) 809. [58] N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller and E. J. Teller, Perspective on Equation of state calculations by fast computing machines, Chem. Phys. 21 (1953) 1087. [59] M. P. Nightingale and H. W. J. Blöte, Dynamic Exponent of the Two-Dimensional Ising Model and Monte Carlo Computation of the Subdominant Eigenvalue of the Stochastic Matrix, Phys. Rev. Lett. 76 (1996) 4548. [60] H. Müller-Krumbhaar and K. Binder, Dynamic properties of the Monte Carlo method in statistical mechanics, J. Stat. Phys. 8 (1973) 1. [61] B. Efron, Computers and the Theory of Statistics: Thinking the Unthinkable, SIAM Review 21 (1979) 460; Bootstrap Methods: Another Look at the Jackknife, Ann. Statist. 7 (1979) 1; B. Efron and R. Tibshirani, Bootstrap Methods for Standard Errors, Confidence Intervals, and Other Measures of Statistical Accuracy, Statistical Science 1 (1986) 54. Ελεύθερα διαθέσιμο από το projecteuclid.org [Κεφάλαιο 14] [62] R. H. Swendsen and J.-S. Wang, Nonuniversal critical dynamics in Monte Carlo simulations, Phys. Rev. Lett. 58 (1987) 86. [63] U. Wolff, Collective Monte Carlo Updating for Spin Systems, Phys. Rev. Lett. 62 (1989) 361. [64] A. Pelisseto and E. Vicari, Critical Phenomena and Renormalization Group Theory, Phys. Reports 368 (2002) 549. [65] F. Y. Wu, The Potts Model, Rev. Mod. Phys. 54 (1982) 235.
ΒΙΒΛΙΟΓΡΑΦΙΑ 689 [66] P. D. Coddington and C. F. Baillie, Empirical relations between static and dynamic exponents for Ising model cluster algorithms, Phys. Rev. Lett. 68 (1992) 962. [67] H. Rieger, Critical behavior of the three-dimensional random-field Ising model: Two-exponent scaling and discontinuous transition, Phys. Rev. B 52 (1995) 6659. [68] M. E. J. Newman and G. T. Barkema, Monte Carlo study of the random-field Ising model, Phys. Rev. E 53 (1996) 393. [69] A. E. Ferdinand and M. E. Fisher, Bounded and Inhomogeneous Ising Models. I. Specific-Heat Anomaly of a Finite Lattice, Phys. Rev. 185 (1969) 832; N. Sh. Izmailian and C. -K. Hu, Exact amplitude ratio and finite-size corrections for the M N square lattice Ising model, Phys. Rev. E 65 (2002) 036103; J. Salas, Exact finite-size-scaling corrections to the critical two-dimensional Ising model on a torus: II. Triangular and hexagonal lattices, J. Phys. A 34 (2001) 1311; W. Janke and R. Kenna, Exact finite-size scaling with corrections in the two-dimensional Ising model with special boundary conditions, Nucl. Phys. (Proc. Suppl.) 106 (2002) 929. [70] J. Ambjørn and K. N. Anagnostopoulos, Quantum geometry of 2D gravity coupled to unitary matter, Nucl. Phys. B 497 (1997) 445. [71] K. Binder, Critical Properties from Monte Carlo Coarse Graining and Renormalization, Phys. Rev. Lett. 47 (1981) 693. [72] K. Binder, Finite size scaling analysis of ising model block distribution functions, Z. Phys. B 43 (1981) 119; G. Kamieniarz and H. W. J. Blöte, Universal ratio of magnetization moments in two-dimensional Ising models, J. Phys. A 26 (1993) 201. [73] J. Cardy, Scaling and Renormalization in Statistical Physics, 1st Edition, Cambridge University Press (1996). [74] A. M. Ferrenberg and D. P. Landau, Critical behavior of the threedimensional Ising model: A high-resolution Monte Carlo study, Phys. Rev. B44 (1991) 5081. [75] M. S. S. Challa, D. P. Landau and K. Binder, Finite-size effects at temperature-driven first-order transitions, Phys. Rev. B34 (1986) 1841.
690 ΒΙΒΛΙΟΓΡΑΦΙΑ [76] H. E. Stanley, Introduction to Phase Transitions and Critical Phenomena, Oxford (1971). [77] R. Creswick and S.-Y. Kim, Critical exponents of the four-state Potts model, J. Phys. A: Math.Gen. 30 (1997) 8785. [78] C. Holm and W. Janke, Critical exponents of the classical threedimensional Heisenberg model: A single-cluster Monte Carlo study, Phys. Rev. B 48 (1993) 936 [arxiv:hep-lat/9301002]. [79] M. Hasenbusch and S. Meyer, Critical exponents of the 3D XY model from cluster update Monte Carlo, Phys. Lett. B 241 (1990) 238. [80] M. Kolesik and M. Suzuki, Accurate estimates of 3D Ising critical exponents using the coherent-anomaly method, Physica A 215 (1995) 138. [81] M. Kolesik and M. Suzuki, Critical exponents of the 3D antiferromagnetic three-state Potts model using the coherent-anomaly method, Physica A 216 (1995) 469.