5 Εξίσωση θερμότητας: Πεπερασμένες διαφορές

5.3 Μέθοδος των Crank-Nicolson

Μια άλλη μέθοδος προκύπτει αν αντί για τις προσεγγίσεις δk+ ή δk- της ut που θεωρήσαμε προηγουμένως, θεωρήσουμε τη δkc. Όπως και πριν θα θέσουμε U0j=UN+1j=0 για j=0,,M, και Ui0=g(xi) και θα κατασκευάσουμε τώρα προσεγγίσεις Uij, i=1,,N, j=1,,M, των τιμών u(xi,tj) της ακριβούς λύσης του (5.1), μεγαλύτερης τάξης ακρίβειας.

Λόγω του Λήμματος 2.1 και της εξίσωσης (5.1) έχουμε για x=1,,N,

u(xi,tj)-u(xi,tj-1)k=ut(xi,tj-k2)+η^ij=uxx(xi,tj-k2)+η^ij,j=1,,M (5.37)

όπου

|η^ij|k26maxt[0,T]|uttt(xi,t)| (5.38)

Επειδή τα σημεία (xi,tj-k2) δεν αποτελούν μέρος του διαμερισμού που έχουμε θεωρήσει, προσεγγίζουμε την uxx(xi,tj-k2), i=1,,N, j=1,,M, στην (5.37) με τον μέσο όρο της uxx στα (xi,tj) και (xi,tj-1). Έτσι, είναι απλό να δούμε με τη βοήθεια αναπτυγμάτων Taylor ότι

uxx(xi,tj-k2)=12(uxx(xi,tj)+uxx(xi,tj-1))-k22uxxtt(xi,ξj), (5.39)

με ξj(tj-1,tj). Επομένως, συνδυάζοντας αυτή τη σχέση με την (5.37), έχουμε για j=1,,M,

u(xi,tj)-u(xi,tj-1)k=12(uxx(xi,tj)+uxx(xi,tj-1))+η¯ij+η^ij, (5.40)

με

|η¯ij|k26maxt[0,T]|uxxtt(xi,t)|. (5.41)

Στη συνέχεια, για την προσέγγιση των uxx(xi,tj), j=1,,M, στην (5.40) εφαρμόζουμε τη δh,2cu(xi,tj) που θεωρήσαμε στην (2.8). Έτσι, αν υποθέσουμε ότι 4x4u(x,t)C([a,b]×[0,T]), λόγω της (2.9), η (5.40) γίνεται για i=1,,N, και j=1,,M,

u(xi,tj)-u(xi,tj-1)k=12u(xi+1,tj)-2u(xi,tj)+u(xi-1,tj)h2+12u(xi+1,tj-1)-2u(xi,tj-1)+u(xi-1,tj-1)h2+η^ij+η¯ij+η~ij, (5.42)

όπου η η~ij φράσσεται όπως στην (5.7). Συνεπώς, για ηij=η^ij+η¯ij+η~ij, η (5.42) δίνει για i=1,,N, και j=1,,M,

δhcu(xi,tj-k2)-12(δh,2cu(xi,tj)+δh,2cu(xi,tj-1))=ηij, (5.43)

και λόγω των (5.38), (5.41) και (5.7) εύκολα βλέπουμε ότι ισχύει το ακόλουθο λήμμα.

Λήμμα 5.3.

Έστω u η λύση του (5.1) με 4x4u,utt,uttxxC([0,L]×[0,T]). Τότε για την ηij που δίνεται στην (5.43) έχουμε ότι υπάρχει σταθερά C ανεξάρτητη των k και h, τέτοια ώστε

max1jMmax1iN|ηij|C(k2+h2). (5.44)

Για να κατασκευάσουμε, λοιπόν, προσεγγίσεις Uij των u(xi,tj), i=1,,N, j=0,,M, θεωρούμε την ακόλουθη μέθοδο

Uij-Uij-1k=12Ui+1j-2Uij+Ui-1jh2+12Ui+1j-1-2Uij-1+Ui-1j-1h2, γιαi=1,,N,j=1,,M, (5.45)
{U0j=UN+1j=0,j=0,,M,Ui0=g(xi),i=1,,N. (5.46)

Το τοπικό σφάλμα διακριτοποίησης ηij της (5.45)–(5.46) δίνεται από την (5.43). Επίσης από το Λήμμα 5.3–(5.46) έχουμε ότι η ηij τείνει στο μηδέν, καθώς k και h τείνουν στο μηδέν. Επομένως, η μέθοδος (5.45)–(5.46) είναι συνεπής.

Αν συμβολίσουμε και πάλι με λ τον λόγο kh2, η (5.45) γράφεται ως

-12λUi+1j+(1+λ)Uij-12λUi-1j=12λUi+1j-1+(1-λ)Uij-1+12λUi-1j-1, (5.47)

με i=1,,N, j=1,,M. Όμοια όπως και στην πεπλεγμένη μέθοδο του Euler, (5.32), αν ξεκινήσουμε από το χρονικό επίπεδο t0=0, δεν μπορούμε άμεσα να υπολογίσουμε την προσέγγιση στο χρονικό επίπεδο t1 από την (5.47). Στο Σχήμα 5.6 φαίνεται ένα παράδειγμα πλέγματος όπου σημειώνουμε τις γνωστές ή άγνωστες τιμές της προσέγγισης σε κάθε βήμα με τη μέθοδο (5.47).

Επομένως, αν UjN το διάνυσμα με συνιστώσες U1j,,UNj, U=(U1j, , UNj)T, το σύστημα των εξισώσεων (5.47) μπορούμε να το γράψουμε ως

BUj=AUj-1,j=1,,M, με U0=G, (5.48)

όπου B και A είναι οι N×N πίνακες

B=(1+λ-λ/200-λ/21+λ-λ/2000-λ/21+λ-λ/2-λ/21+λ),
A=(1-λλ/200λ/21-λλ/2000λ/21-λλ/2λ/21-λ),

και G=(g(x1),,g(xN))T.

Σχήμα 5.6: Σημεία ενός πλέγματος για τον υπολογισμό της λύσης με τη μέθοδο των Crank-Nicolson. Με άσπρο σημειώνουμε τα σημεία που αντιστοιχούν σε άγνωστες τιμές της προσέγγισης και με μαύρο αυτά που αντιστοιχούν σε γνωστές τιμές.

Από την (5.45) έχουμε ότι η προσέγγιση U0 στο χρονικό επίπεδο t0 είναι γνωστή, οπότε για να υπολογίσουμε τη λύση στο χρονικό επίπεδο t1 αρκεί να λύσουμε το γραμμικό σύστημα BU1=AU0. Εύκολα βλέπουμε ότι ο B έχει αυστηρά κυριαρχική διαγώνιο, επομένως είναι αντιστρέψιμος και επειδή είναι τριδιαγώνιος μπορούμε να εφαρμόσουμε τον αλγόριθμο της Παραγράφου 3.2 για τον υπολογισμό της U1. Συνεχίζουμε με αυτό τον τρόπο και αν στο χρονικό επίπεδο tj-1 γνωρίζουμε την προσέγγιση Uj-1, λύνοντας το γραμμικό σύστημα (5.48), βρίσκουμε την προσέγγιση Uj στο χρονικό επίπεδο tj. Για τον ίδιο λόγο, όπως και για την πεπλεγμένη μέθοδο του Euler, η μέθοδος (5.45) είναι πεπλεγμένη ή έμμεση και καλείται μέθοδος των Crank–Nicolson.

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

Θεώρημα 5.5.

Έστω UjN, j=0,,M, η λύση του προβλήματος (5.47), με U0j=UN+1j=0, j=0,,M. Τότε, αν λ1, ισχύει η ακόλουθη ανισότητα

max0iN+1|Uij|max0iN+1|Ui0|,για j=0,1,2,,M. (5.49)
Proof.

Από τη σχέση (5.47) εύκολα παίρνουμε για i=1,,N, j=1,,M,

(1+λ)|Uij|λ2(|Ui+1j|+|Ui-1j|)+(1-λ)|Uij-1|+λ2(|Ui+1j-1|+|Ui-1j-1|).

Αν θέσουμε λοιπόν U¯j=max0iN+1|Uij|, j=0,,M, έχουμε

(1+λ)|Uij|λU¯j+U¯j-1,

και άρα

U¯jU¯j-1U¯0,

από όπου προκύπτει η ζητούμενη ανισότητα. ∎

Παρατηρούμε ότι για να δείξουμε το Θεώρημα 5.5, υποθέσαμε ότι λ1. Θα δούμε παρακάτω ότι αυτή η υπόθεση δεν είναι απαραίτητη για να δείξουμε την ευστάθεια von Neumann για τη μέθοδο των Crank-Nicolson, επομένως η υπόθεση λ1 στο Θεώρημα 5.5 δεν είναι ουσιαστική και γίνεται μόνο για να μπορέσουμε να αποδείξουμε το θεώρημα, ακολουθώντας τα βήματα που χρησιμοποιήσαμε στην αντίστοιχη απόδειξη.

Θεωρούμε και πάλι ότι οι Uij=wjerxiI ικανοποιούν την (5.47), οπότε

-λ2wjerxi+1I+(1+λ)wjerxiI-λ2wjerxi-1I=λ2wj-1erxi+1I+(1-λ)wj-1erxiI+λ2wj-1erxi-1I, (5.50)

για i=1,,N,j=1,,M. Χρησιμοποιούμε τώρα και πάλι τις ιδιότητες (5.23) και (5.20) και έχουμε

-2λwjerxiIcos(rh)+(1+λ)wjerxiI=2λwj-1erxiIcos(rh)+(1-λ)wj-1erxiI,

από την οποία προκύπτει

(1+4λsin2(rh2))wj=(1-4λsin2(rh2))wj-1.

Συνεπώς

wj=1-4λsin2(rh2)1+4λsin2(rh2)wj-1=κwj-1==κjw0. (5.51)

Είναι απλό να δούμε ότι σε αυτήν την περίπτωση ισχύει |κ|1 για κάθε λ και r. Συνεπώς, η απόλυτη τιμή της Uij είναι φραγμένη ανεξάρτητα της τιμής του λ, οπότε δεν είναι αναγκαία καμιά συνθήκη για στις παραμέτρους της διαμέρισης h και k, ώστε να είναι ευσταθής η μέθοδος Crank–Nicolson.

Θεώρημα 5.6.

Έστω ότι η λύση u του προβλήματος (5.1) είναι αρκετά ομαλή και Uij, i=0,,N+1, j=0,,M, η λύση της μεθόδου (5.47). Τότε, υπάρχει μια σταθερά C, ανεξάρτητη των k,h, τέτοια ώστε

max0jMmax0iN+1|Uij-u(xi,tj)|C(k2+h2). (5.52)
Proof.

Θέτουμε Eij=Uij-u(xi,tj), i=0,,N+1, j=0,,M, όπου λόγω των σχέσεων U0j=u(0,tj)=0 και UN+1j=u(L,tj)=0, έχουμε E0j=EN+1j=0. Αφαιρούμε τώρα κατά μέλη τις (5.45) και (5.42), οπότε παίρνουμε για i=1,,N, j=1,,M,

(1+λ)Eij=λ2(Ei+1j+Ei-1j)+(1-λ)Eij-1+λ2(Ei+1j-1+Ei-1j-1)+kηij.

Θέτουμε, στη συνέχεια, E¯j=max1iN|Eij|, η¯=max1iN,1jM|ηij| και έχουμε

(1+λ)EijλE¯j+(1-λ)E¯j-1+λE¯j-1+kη¯,

οπότε

E¯jE¯j-1+kη¯E¯0+jkη¯.

Από εδώ, επειδή jkT και λόγω του Λήμματος 5.3, προκύπτει η ζητούμενη εκτίμηση. ∎


Παράδειγμα 5.3.

Επαναλαμβάνουμε και εδώ το Παράδειγμα 5.1 όπου χρησιμοποιούμε τώρα τη μέθοδο των Crank-Nicolson. Στο Σχήμα 5.7 απεικονίζονται οι γραφικές παραστάσεις της u για t=0, καθώς και οι προσεγγίσεις για t=0.025, 0.05, 0.0625, με M=24,32,128. Επίσης, στον Πίνακα 5.3 βλέπουμε το μέγιστο σφάλμα στα χρονικά επίπεδα t=0.025,0.05,0.0625,0.075.

Σχήμα 5.7: Η ακριβής λύση u(x,t)=e-4π2tsin(2πx) του Παραδείγματος 5.1 και οι προσεγγίσεις της για N=23 και M=24,32,128, με τη μέθοδο των Crank-Nicolson για t=0,0.025,0.05 και 0.0625.

t=0.025 t=0.05 t=0.0625 t=0.075
M j E¯j j E¯j j E¯j j E¯j
24 6 0.0013 12 0.0010 15 0.0007 18 0.0005
32 8 0.0016 16 0.0012 20 0.0008 24 0.0007
128 32 0.0021 64 0.0015 80 0.0012 96 0.0009
Πίνακας 5.3: Το σφάλμα E¯j=max1iN|Uij-u(xi,tj)| στα χρονικά επίπεδα t=0.025,0.05 και 0.0625 0.075 του Παραδείγματος 5.3 για N=23 και M=24,32,128. Στη στήλη αριστερά του κάθε σφάλματος δίνεται το χρονικό βήμα j, τέτοιο ώστε t=jk, με k=1/M.

Παρατηρούμε από τα Παραδείγματα 5.2 και 5.3, ότι το σφάλμα σε κάθε χρονικό επίπεδο είναι μικρότερο στη μέθοδο Crank–Nicolson από ότι στη πεπλεγμένη μέθοδο του Euler. Αυτό οφείλεται στη μεγαλύτερη τάξη ως προς k που έχει το σφάλμα για τη μέθοδο Crank–Nicolson από το αντίστοιχο σφάλμα για τη πεπλεγμένη μέθοδο του Euler, βλ. Θεωρήματα 5.4 και 5.6. Στο επόμενο παράδειγμα παραθέτουμε ορισμένα αριθμητικά αποτελέσματα, όπου φαίνεται ότι τα σφάλματα που προκύπτουν με τη μέθοδο Crank–Nicolson έχουν τάξη ακρίβειας k2.

Παράδειγμα 5.4.

Αν οι παράμετροι k,h της διαμέρισης των [0,L]×[0,T] είναι ίσες, τότε το σφάλμα για την πεπλεγμένη μέθοδο του Euler σύμφωνα με το Θεώρημα 5.4, θα ικανοποιεί

max0jMmax0iN+1|Uij-u(xi,tj)|Ck, για k=h, και k μικρό,

και το σφάλμα για τη μέθοδο των Crank–Nicolson σύμφωνα με το Θεώρημα 5.6, θα ικανοποιεί

max0jMmax0iN+1|Uij-u(xi,tj)|Ck2, για k=h, και k μικρό.

Αν υποθέσουμε λοιπόν ότι το μέγιστο σφάλμα E¯=max0iN+1|UiM-u(xi,tM)|Ckp, στο χρονικό επίπεδο tM=T, μπορούμε να προσδιορίσουμε πειραματικά, με τη χρήση Η/Υ, τη δύναμη p, από τον λόγο p(log(E1/E2)/log(k1/k2)), όπου E1 είναι το σφάλμα που αντιστοιχεί στη διαμέριση με βήμα k1 και E2 το σφάλμα για τη διαμέριση με βήμα k2.

Αν θεωρήσουμε και πάλι το πρόβλημα των Παραδείγματων 5.1 και 5.2, μπορούμε να υπολογίσουμε κατά προσέγγιση την τάξη σύγκλισης για την πεπλεγμένη μέθοδο του Euler και τη μέθοδο των Crank–Nicolson για t=T=0.1. Στον Πίνακα 5.4, εμφανίζεται η κατά προσέγγιση δύναμη p και παρατηρούμε ότι για τη μέθοδο Euler είναι κατά προσέγγιση ένα, ενώ για τη μέθοδο Crank–Nicolson είναι δύο.

BE CN
k=h E¯BE p E¯CN p
1/20 0.095012 0.01918
1/40 0.045123 1.074 0.00592 1.69539
1/80 0.021160 1.092 0.00150 1.97976
1/160 0.010064 1.072 0.00037 1.99623
1/250 0.004876 1.045 0.00009 1.99912
Πίνακας 5.4: Τα σφάλματα των μεθόδων Euler και Crank–Nicolson στο χρονικό επίπεδo t=T=0.1, E¯BE και E¯CN, αντίστοιχα, στο Παράδειγμα 5.4 και η κατά προσέγγιση τάξη ακρίβειάς τους p, αν θεωρήσουμε k=h.