Script Backward-Difference dengan Eliminasi Gauss

9.6. PDP PARABOLIK 163 Hasilnya menunjukkan bahwa kinerja metode backward-difference lebih baik dibanding metode forward-difference, ini ditunjukkan dari selisih yang relatif kecil antara solusi numerik dan solusi analitik, sebagaimana bisa terlihat dari kolom ke-4 pada tabel berikut Tabel 9.5: Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi dengan metode backward- difference dimana k = 0, 01 x i ux i , 0.5 w i,50 |ux i , 0.5 − w i,50 | 0,0 0,1 0,00222241 0,00289802 6, 756 × 10 − 4 0,2 0,00422728 0,00551236 1, 285 × 10 − 3 0,3 0,00581836 0,00758711 1, 769 × 10 − 3 0,4 0,00683989 0,00891918 2, 079 × 10 − 3 0,5 0,00719188 0,00937818 2, 186 × 10 − 3 0,6 0,00683989 0,00891918 2, 079 × 10 − 3 0,7 0,00581836 0,00758711 1, 769 × 10 − 3 0,8 0,00422728 0,00551236 1, 285 × 10 − 3 0,9 0,00222241 0,00289802 6, 756 × 10 − 4 1,0

9.6.4 Metode Crank-Nicolson

Metode ini dimunculkan disini karena metode ini memiliki performa yang lebih unggul dari dua metode sebelumnya. Namun begitu pondasi metode Crank-Nicolson terdiri atas metode Forward-Difference dan metode Backward-Difference. Mari kita ulang lagi pelajaran yang sudah kita lewati. Formula Forward-Difference adalah w i,j+1 − w i,j k − α 2 w i+1,j − 2w i,j + w i−1,j h 2 = 0 sedangkan Backward-Difference adalah w i,j − w i,j−1 k − α 2 w i+1,j − 2w i,j + w i−1,j h 2 = 0 Ketika Backward-Difference berada pada iterasi ke j + 1, maka w i,j+1 − w i,j k − α 2 w i+1,j+1 − 2w i,j+1 + w i−1,j+1 h 2 = 0 9.58 Jika formula ini dijumlahkan dengan formula forward-difference, kemudian hasilnya dibagi 2, maka akan diperoleh w i,j+1 − w i,j k − α 2 2 w i+1,j − 2w i,j + w i−1,j h 2 + w i+1,j+1 − 2w i,j+1 + w i−1,j+1 h 2 = 0 9.59 164 BAB 9. DIFERENSIAL NUMERIK inilah formula Crank-Nicolson. Adapun λ tetap dinyatakan sebagai λ = α 2 k h 2 maka w i,j+1 − w i,j − λ 2 [w i+1,j − 2w i,j + w i−1,j + w i+1,j+1 − 2w i,j+1 + w i−1,j+1 ] = 0 w i,j+1 − w i,j − λ 2 w i+1,j + λw i,j − λ 2 w i−1,j − λ 2 w i+1,j+1 + λw i,j+1 − λ 2 w i−1,j+1 = 0 − λ 2 w i−1,j+1 + w i,j+1 + λw i,j+1 − λ 2 w i+1,j+1 − λ 2 w i−1,j − w i,j + λw i,j − λ 2 w i+1,j = 0 − λ 2 w i−1,j+1 + w i,j+1 + λw i,j+1 − λ 2 w i+1,j+1 = λ 2 w i−1,j + w i,j − λw i,j + λ 2 w i+1,j dan akhirnya − λ 2 w i−1,j+1 + 1 + λw i,j+1 − λ 2 w i+1,j+1 = λ 2 w i−1,j + 1 − λw i,j + λ 2 w i+1,j 9.60 Dalam bentuk persamaan matrik dinyatakan sebagai Aw j+1 = Bw j , untuk j = 0, 1, 2, ... 9.61 Dengan menggunakan contoh soal yang sama, yang sebelumnya telah diselesaikan dengan metode Forward-Difference dan Backward-Difference, maka penyelesaian soal tersebut dengan metode Crank-Nicolson juga akan didemonstrasikan di sini. Dengan nilai k = 0, 01; h = 0, 1; λ = 1 dan berdasarkan persamaan 9.60 diperoleh −0, 5w i−1,j+1 + 2w i,j+1 − 0, 5w i+1,j+1 = 0, 5w i−1,j + 0w i,j + 0, 5w i+1,j Script Matlab untuk menyelesaikan persamaan ini adalah 1 clear all 2 clc 3 4 n=9; 5 iterasi=50; 6 alpha=1.0; 7 k=0.01; 8 h=0.1; 9 lambda=alpha2kh2; 10 11 Kondisi awal 12 for i=1:n 13 suhui=sinpii0.1; 14 end 15 16 Mengcopy kondisi awal ke w 17 for i=1:n 18 w0i,1=suhui; 9.6. PDP PARABOLIK 165 19 end 20 21 AA=[1+lambda -lambda2 0 0 0 0 0 0 0; 22 -lambda2 1+lambda -lambda2 0 0 0 0 0 0; 23 0 -lambda2 1+lambda -lambda2 0 0 0 0 0; 24 0 0 -lambda2 1+lambda -lambda2 0 0 0 0; 25 0 0 0 -lambda2 1+lambda -lambda2 0 0 0; 26 0 0 0 0 -lambda2 1+lambda -lambda2 0 0; 27 0 0 0 0 0 -lambda2 1+lambda -lambda2 0; 28 0 0 0 0 0 0 -lambda2 1+lambda -lambda2; 29 0 0 0 0 0 0 0 -lambda2 1+lambda]; 30 31 B=[1-lambda lambda2 0 0 0 0 0 0 0; 32 lambda2 1-lambda lambda2 0 0 0 0 0 0; 33 0 lambda2 1-lambda lambda2 0 0 0 0 0; 34 0 0 lambda2 1-lambda lambda2 0 0 0 0; 35 0 0 0 lambda2 1-lambda lambda2 0 0 0; 36 0 0 0 0 lambda2 1-lambda lambda2 0 0; 37 0 0 0 0 0 lambda2 1-lambda lambda2 0; 38 0 0 0 0 0 0 lambda2 1-lambda lambda2; 39 0 0 0 0 0 0 0 lambda2 1-lambda]; 40 41 iterasi=50; 42 for iter=1:iterasi 43 44 ===perkalian matriks=================== 45 for i=1:n 46 bi,1=0.0; 47 end 48 for i=1:n 49 for j=1:n 50 bi,1=bi,1+Bi,jw0j,1; 51 end 52 end 53 ====================================== 54 55 Proses Eliminasi Gauss 56 A=AA; Matriks Backward Difference dicopy supaya fix 57 58 for i=1:n 59 Ai,n+1=bi,1; 60 end 61 62 ---------Proses Triangularisasi----------- 63 for j=1:n-1 64 65 ----mulai proses pivot--- 66 if Aj,j==0 67 for p=1:n+1 68 u=Aj,p; 69 v=Aj+1,p; 70 Aj+1,p=u; 71 Aj,p=v; 72 end 73 end 74 ----akhir proses pivot--- 75 jj=j+1; 76 for i=jj:n 77 m=Ai,jAj,j;