Άσκηση Έχουµε να επιλύσουµε την εξίσωση κύµατος ης τάξης (υπερβολική εξίσωση) u t + cu = 0 () Θα χρησιµοποιήσουµε τις ακόλουθες µεθόδους: α) Μέθοδος FTBS (Πρόδροµη στο χρόνο, ανάδροµη στο χώρο) Το σχήµα αυτό είναι ρητό και η εξίσωση () γίνεται: ( ) u = u ν u u () n n n όπου ν = β) Μέθοδος Mac Cormack Και αυτό το σχήµα είναι ρητό και η εξίσωση () δίνει τις δύο ακόλουθες εξισώσεις πεπερασµένων διαφορών: n = ν ( + ) u u u u / n n (3) και n n n / n / n u + u u + ν ( u + + / = + u ). (4) όπου ν = Για να υπολογίσουµε τα σφάλµατα των ανωτέρω µεθόδων θα υπολογίσουµε την αναλυτική λύση καθώς και την αριθµητική αναλυτική λύση της (). Έστω c = 0.8. Τότε έχουµε: Πεδίο ορισµού R : t > 0, 0 Στη περίπτωση αυτή ο κυµαταριθµός k µε αρχική συνθήκη ( 0, ) sn( u π ) =. = π. Εργαζόµενοι σε ένα υπολογιστικό πλέγµα, έστω µε t = 0.0 και = 0.0 (0 κόµβοι), προκύπτει ν = = 0.4 και β = k = 0.0π Για την αναλυτική λύση έχουµε: ξ Α = και
( )( ) ϕ = kc t = βν = 0.0π 0.4 = 0.0537 Α Για την αριθµητική αναλυτική λύση έχουµε: ( ) ( ) ξ = ν + ν cos β + νsn β = 0.99956303 και ( ) ( ) Im ξ νsn β ϕ = arctan = arctan 0.0530756 Re ξ = ν + νcosβ Με βάση τα παραπάνω η αναλυτική και η αριθµητική λύση µετά από ένα χρονικό βήµα είναι ( 00 ) = [ π ϕ ] = π( 04 00) = π( 0008) u Α., sn Α sn.. sn. και ( 00 ) = ξ π( 04 00) + ( ϕ ϕ) u., sn.. Α = ( ) = 0.99956303sn π 0. 008 0. 00000 Τη χρονική στιγµή t = N t, δηλαδή µετά από N χρονικά βήµατα οι δύο λύσεις θα έχουν εξελιχθεί ως εξής: ( 00 ) [ π ϕ ] π( 04 00) uα N., = sn N Α = sn N.. = ( 0 008) = sn π N. u( N 00.,) = ( ξ ) N sn π( N 04. 00. ) + N ( ϕα ϕ) = N ( ) π ( ) = 0.99956303 sn N 0. 008 N 0. 00000 Το πρόγραµµα που επιλύει την () είναι το ακόλουθο: Program FTBS_ MacCormack mplct none doubleprecson,allocatable::u(:),uold(:),temp(:),(:),u0(:),t(:),t(:) nteger::n,,j,k,m,status,tma,done,method doubleprecson::d,dt,n,c,p,t,analt,ar_an n=00 allocate(u(),uold(),temp(),(),u0(),t(),t()) f (status/=0) Stop 'Not enough memor' c=0.8 dt=0.0 d=./n n=c*dt/d p=3.459654
do =, ()=(-)*d open(,fle='res_all.tt',recl=0000) Wrte(,'(a3,4)') 'Í= ', Wrte(,'(a3,f8.5)') 'c= ',c Wrte(,'(a3,f8.5)') 'dt= ',dt Wrte(,'(a3,f8.5)') 'd= ',d Wrte(,'(a3,f8.5)') 'í= ',n do tma =,0 t=tma*dt do method=,!=ftbs = Mac Cormack f (method==) then!=ftbs do =, u()=sn(p * ()) do m=,tma uold=u do =, f (==) then u()= uold()*(.-n)+n*uold(n) else u()= uold()*(.-n)+n*uold(-) end f!prnt*, u(:) t=u elsef ( method==) then! Mac Cormack do =, u()=sn(p*()) do m=,tma uold=u do =, f (==) then u0()= uold()-n*(uold()-uold()) else u0()= uold()-n*(uold(+)-uold()) end f do =, f (==) then u()=0.5*(uold()+u0()-n*(u0()-u0(n))) else u()=0.5*(uold()+u0()-n*(u0()-u0(-))) end f t=u end f 3
Wrte(,*) '----------------------------- N= ',tma,' -----------------------------' Wrte(,*) ' FTBS McCommarc analtkh ar_analt ErrFTBS ErrMc ErrFTBS ErrMc' Wrte(,*) '==================================================================================' do =,,0 analt=sn(p*(()-c*t)) ar_an=(0.999563)**tma*sn(p*(()-c*t)-tma*0.00000) Wrte(,'(3,f0.,8f0.5)'),(),t(), t(),analt, ar_an,abs(analtt()),abs(analt-t()),abs(ar_an-t()),abs(ar_an-t()) prnt*, 'Done' end program Στους επόµενους πίνακες παρουσιάζουµε το αποτέλεσµα του προγράµµατος για πλέγµα 0 κόµβων µε c = 0.8, t = 0.0, = 0.0 και v = 0.4 Για λόγους συντοµίας παρουσιάζουµε επιλεκτικά τις τιµές 0 κόµβων σε κάθε χρονικό βήµα. Οι στήλες, από αριστερά προς δεξιά, δείχνουν: το αριθµό του κόµβου, την τιµή της απόστασης, την τιµή του σχήµατος FTBS, την τιµή του σχήµατος Mac Cormack, την αναλυτική τιµή, την αριθµητική αναλυτική τιµή, το απόλυτο σφάλµα της FTBS από την αναλυτική τιµή, το απόλυτο σφάλµα του McComarc από την αναλυτική τιµή, και τέλος το απόλυτο σφάλµα της FTBS από την αριθµητική αναλυτική τιµή. Χρονικό Βήµα Ν= 0.00-0.05-0.05-0.053-0.05 0.0000 0.0000 0.00000 0.0 0.56700 0.5678 0.5677 0.56700 0.0007 0.0000 0.00000 0.40 0.9454 0.9499 0.9499 0.9454 0.00045 0.00000 0.00000 3 0.60 0.95807 0.9585 0.9585 0.95807 0.00045 0.00000 0.00000 4 0.80 0.60764 0.6079 0.60793 0.60764 0.0009 0.0000 0.00000 5.00 0.05 0.05 0.053 0.05 0.0000 0.0000 0.00000 6.0-0.56700-0.5678-0.5677-0.56700 0.0007 0.0000 0.00000 7.40-0.9454-0.9499-0.9499-0.9454 0.00045 0.00000 0.00000 8.60-0.95807-0.9585-0.9585-0.95807 0.00045 0.00000 0.00000 9.80-0.60764-0.6079-0.60793-0.60764 0.0009 0.0000 0.00000 0.00-0.05-0.05-0.053-0.05 0.0000 0.0000 0.00000 Χρονικό Βήµα Ν= 0.00-0.0509-0.050-0.0504-0.0500 0.00005 0.00003 0.0000 0.0 0.54588 0.5464 0.54639 0.54587 0.0005 0.0000 0.0000 0.40 0.93345 0.93434 0.93433 0.93344 0.00088 0.0000 0.00000 3 0.60 0.96447 0.96537 0.96538 0.96447 0.0009 0.0000 0.00000 4 0.80 0.6709 0.6767 0.6769 0.670 0.00060 0.0000 0.0000 5.00 0.0509 0.050 0.0504 0.0500 0.00005 0.00003 0.0000 6.0-0.54588-0.5464-0.54639-0.54587 0.0005 0.0000 0.0000 7.40-0.93345-0.93434-0.93433-0.93344 0.00088 0.0000 0.00000 8.60-0.96447-0.96537-0.96538-0.96447 0.0009 0.0000 0.00000 9.80-0.6709-0.6767-0.6769-0.670 0.00060 0.0000 0.0000 0.00-0.0509-0.050-0.0504-0.0500 0.00005 0.00003 0.0000 4
Χρονικό Βήµα Ν=3 0.00-0.075-0.0759-0.07533-0.0753 0.000 0.00004 0.0000 0.0 0.5443 0.55 0.557 0.544 0.00074 0.00004 0.0000 0.40 0.9377 0.9509 0.9508 0.9376 0.003 0.0000 0.00000 3 0.60 0.9705 0.976 0.9763 0.9705 0.0038 0.0000 0.00000 4 0.80 0.6463 0.6470 0.64706 0.6464 0.0009 0.00003 0.0000 5.00 0.075 0.0759 0.07533 0.0753 0.000 0.00004 0.0000 6.0-0.5443-0.55-0.557-0.544 0.00074 0.00004 0.0000 7.40-0.9377-0.9509-0.9508-0.9376 0.003 0.0000 0.00000 8.60-0.9705-0.976-0.9763-0.9705 0.0038 0.0000 0.00000 9.80-0.6463-0.6470-0.64706-0.6464 0.0009 0.00003 0.0000 0.00-0.075-0.0758-0.07533-0.0753 0.000 0.00004 0.0000 Χρονικό Βήµα Ν=4 0.00-0.006-0.003-0.0036-0.008 0.0000 0.00006 0.0000 0.0 0.5068 0.50367 0.5036 0.5066 0.00095 0.00005 0.0000 0.40 0.935 0.956 0.954 0.935 0.0073 0.0000 0.0000 3 0.60 0.9754 0.9776 0.9777 0.9754 0.0085 0.0000 0.00000 4 0.80 0.66474 0.66597 0.6660 0.66476 0.007 0.00004 0.0000 5.00 0.006 0.003 0.0036 0.008 0.0000 0.00006 0.0000 6.0-0.5068-0.50367-0.5036-0.5066 0.00095 0.00005 0.0000 7.40-0.935-0.956-0.954-0.935 0.0073 0.0000 0.0000 8.60-0.9754-0.9776-0.9777-0.9754 0.0085 0.0000 0.00000 9.80-0.66474-0.66597-0.6660-0.66476 0.007 0.00004 0.0000 0.00-0.006-0.003-0.0036-0.008 0.0000 0.00006 0.0000 Χρονικό Βήµα Ν=5 0.00-0.503-0.56-0.533-0.505 0.0003 0.00007 0.0000 0.0 0.4806 0.488 0.4875 0.4806 0.003 0.00006 0.0000 0.40 0.9069 0.90486 0.90483 0.9068 0.004 0.00003 0.0000 3 0.60 0.97996 0.987 0.989 0.97996 0.0033 0.0000 0.00000 4 0.80 0.689 0.68450 0.68455 0.6893 0.0063 0.00005 0.0000 5.00 0.503 0.56 0.533 0.505 0.0003 0.00007 0.0000 6.0-0.4806-0.488-0.4875-0.4806 0.003 0.00006 0.0000 7.40-0.9069-0.90486-0.90483-0.9068 0.004 0.00003 0.0000 8.60-0.97996-0.987-0.989-0.97996 0.0033 0.0000 0.00000 9.80-0.689-0.68450-0.68455-0.6893 0.0063 0.00005 0.0000 0.00-0.503-0.56-0.533-0.505 0.0003 0.00007 0.0000 Χρονικό Βήµα Ν=6 0.00-0.4979-0.504-0.503-0.498 0.00044 0.00008 0.0000 0.0 0.4589 0.45965 0.45958 0.4586 0.009 0.00007 0.0000 0.40 0.893 0.89388 0.89384 0.8930 0.0053 0.00004 0.0000 3 0.60 0.98388 0.98667 0.98669 0.98389 0.0080 0.0000 0.00000 4 0.80 0.70065 0.7059 0.7065 0.70066 0.0000 0.00006 0.0000 5.00 0.4979 0.504 0.503 0.498 0.00044 0.00008 0.0000 6.0-0.4589-0.45965-0.45958-0.4586 0.009 0.00007 0.0000 7.40-0.893-0.89388-0.89384-0.8930 0.0053 0.00004 0.0000 8.60-0.98388-0.98667-0.98669-0.98389 0.0080 0.0000 0.00000 9.80-0.70065-0.7059-0.7065-0.70066 0.0000 0.00006 0.0000 0.00-0.4979-0.504-0.503-0.498 0.00044 0.00008 0.0000 5
Χρονικό Βήµα Ν=7 0.00-0.7443-0.7493-0.750-0.7446 0.00059 0.0000 0.00003 0.0 0.43568 0.4370 0.437 0.43566 0.0043 0.00009 0.0000 0.40 0.87938 0.8834 0.889 0.87936 0.009 0.00004 0.0000 3 0.60 0.9878 0.99045 0.99046 0.9878 0.0038 0.0000 0.00000 4 0.80 0.779 0.704 0.703 0.7793 0.0039 0.00007 0.0000 5.00 0.7443 0.7493 0.750 0.7446 0.00059 0.0000 0.00003 6.0-0.43568-0.4370-0.437-0.43566 0.0043 0.00009 0.0000 7.40-0.87938-0.8834-0.889-0.87936 0.009 0.00004 0.0000 8.60-0.9878-0.99045-0.99046-0.9878 0.0038 0.0000 0.00000 9.80-0.779-0.704-0.703-0.7793 0.0039 0.00007 0.0000 0.00-0.7443-0.7493-0.750-0.7446 0.00059 0.0000 0.00003 Χρονικό Βήµα Ν=8 0.00-0.9894-0.9960-0.997-0.9897 0.00077 0.000 0.00003 0.0 0.48 0.4448 0.4438 0.479 0.0055 0.0000 0.00003 0.40 0.86690 0.8704 0.8708 0.86688 0.0038 0.00005 0.0000 3 0.60 0.98985 0.99360 0.9936 0.98985 0.00376 0.0000 0.00000 4 0.80 0.7347 0.73744 0.7375 0.73473 0.0080 0.00008 0.0000 5.00 0.9894 0.9960 0.997 0.9897 0.00077 0.000 0.00003 6.0-0.48-0.4448-0.4438-0.479 0.0055 0.0000 0.00003 7.40-0.86690-0.8704-0.8708-0.86688 0.0038 0.00005 0.0000 8.60-0.98985-0.99360-0.9936-0.98985 0.00376 0.0000 0.00000 9.80-0.7347-0.73744-0.7375-0.73473 0.0080 0.00008 0.0000 0.00-0.9894-0.9960-0.997-0.9897 0.00077 0.000 0.00003 Χρονικό Βήµα Ν=9 0.00-0.330-0.45-0.47-0.333 0.00097 0.000 0.00004 0.0 0.3897 0.3949 0.3937 0.38969 0.0065 0.000 0.00003 0.40 0.85389 0.85759 0.85753 0.85387 0.00364 0.00006 0.0000 3 0.60 0.9989 0.996 0.9963 0.9990 0.0044 0.0000 0.00000 4 0.80 0.7503 0.7547 0.7545 0.7505 0.003 0.00008 0.0000 5.00 0.330 0.45 0.47 0.333 0.00097 0.000 0.00003 6.0-0.3897-0.3949-0.3937-0.38969 0.0065 0.000 0.00003 7.40-0.85389-0.85759-0.85753-0.85387 0.00364 0.00006 0.0000 8.60-0.9989-0.996-0.9963-0.9990 0.0044 0.0000 0.00000 9.80-0.7503-0.7547-0.7545-0.7505 0.003 0.00008 0.0000 0.00-0.330-0.45-0.47-0.333 0.00097 0.000 0.00003 Χρονικό Βήµα Ν=0 0.00-0.4750-0.4855-0.4869-0.4753 0.009 0.0004 0.00004 0.0 0.36640 0.3685 0.368 0.36637 0.007 0.0003 0.00004 0.40 0.84035 0.84440 0.84433 0.84033 0.00398 0.00007 0.0000 3 0.60 0.9933 0.9980 0.99803 0.9933 0.0047 0.0000 0.00000 4 0.80 0.76686 0.7704 0.7705 0.76688 0.00365 0.00009 0.00003 5.00 0.4750 0.4855 0.4869 0.4753 0.009 0.0004 0.00004 6.0-0.36640-0.3685-0.368-0.36637 0.007 0.0003 0.00004 7.40-0.84035-0.84440-0.84433-0.84033 0.00398 0.00007 0.0000 8.60-0.9933-0.9980-0.99803-0.9933 0.0047 0.0000 0.00000 9.80-0.76686-0.7704-0.7705-0.76688 0.00365 0.00009 0.00003 0.00-0.4750-0.4855-0.4869-0.4753 0.009 0.0004 0.00004 6
Άσκηση Η µέθοδος La Wendroff για την επίλυση της εξίσωσης κύµατος δίδεται από την εξίσωση πεπερασµένων διαφορών c t c t u = u u u + u u + u ( + ) ( + ) n n n n n n. Αποδείξτε ότι η τροποποιηµένη εξίσωση πεπερασµένων διαφορών είναι: 3 ut + cu = c ( v ) u c v( v ) u +... 6 8 Παρουσιάζεται η µαθηµατική επεξεργασία διατύπωσης µόνο του πρώτου όρου στο δεξιό τµήµα της τροποποιηµένης εξίσωσης. Η επέκταση της µεθοδολογίας για την διατύπωση και του δεύτερου όρου θεωρείται προφανής. 3 n n n t n t n 4 u + = u + tut + u tt + u ttt + O t! 3! 3 n n n n n 4 u± = u ± u + u ± u + O! 3! Αντικαθιστούµε στη εξίσωση πεπερασµένων διαφορών 3 3 n t n t n 4 t n n 5 tut + u tt + u ttt + O t c u u O! 3! = + + + 3! n 4 ( u O ) c t + + 3 t t 3 c 4 c t ut + cu = utt uttt O t u O u O t 6 + + 6 3 Λαµβάνοντας υπόψη ότι utt = cut = c u και uttt = c ut = c u βρίσκουµε την τροποποιηµένη εξίσωση 3 4 t ( ) u + cu = c v u + O t + O + O t 6 Σχολιάστε το ζήτηµα της αριθµητικής διάχυσης και διασποράς και να γίνει σύγκριση µε άλλα αριθµητικά σχήµατα. Το σχήµα La-Wendroff δεν έχει αριθµητική απόσβεση αλλά µόνο αριθµητική διασπορά. 7
Άσκηση 3 Εφαρµόστε ένα σχήµα πεπερασµένων διαφορών στην δυσδιάστατη εξίσωση κύµατος: u u u + c + = 0 t. Εφαρµόζεται το ρητό σχήµα πρόδροµης παραγώγισης στο χρόνο και ανάδροµης στο χώρο: u = u u u u u ή ( ) ( ) n n n n n, j, j, j, j, j, j ( ) ν ( ) u = u ν u u u u n n n n n, j, j, j, j, j, j όπου ν = και ν = Στη συνέχεια εξετάζεται η ευστάθεια του προτεινόµενου αριθµητικού σχήµατος µε τη µέθοδο Von Neumann. αk ( ) ( ) k e ν e α Ψ =Ψ ν Ψ Ψ n n n Ψ ξ = = ν ν ν cosβ ν cosβ α ν snβ ν snβ n + + Ψ β = και β = kh όπου kh. Εποµένως Ψ ξ = = ν ν ν cosβ ν cosβ ν snβ ν sn n + + + β Ψ από όπου προκύπτει ότι ξ <, µόνο όταν ν ν + <., 8