METODE MULTIGRID UNTUK MENYELESAIKAN PERSAMAAN POISSON DUA DIMENSI DENGAN METODE BEDA HINGGA M. Taufik1∗ , Syamsudhuha2 , Zulkarnain2 1 Mahasiswa Program Studi S1 Matematika 2 Dosen Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Riau Kampus Binawidya Pekanbaru (28293), Indonesia ∗ [email protected] ABSTRACT This article discusses the application of multigrid method to solve systems of linear equations obtained from two-dimensional Poisson equation in the discretization by finite difference method. This multigrid method is used another iteration method, that is the method of Gauss-Seidel iteration which acts as a smoothing operator. Keywords: System of linear equation, finite difference method, Gauss-Seidel method, multigrid method ABSTRAK Artikel ini membahas penerapan metode multigrid untuk menyelesaikan sistem persamaan linear yang diperoleh dari persamaan Poisson dua dimensi yang didiskritisasi dengan metode beda hingga (finite difference). Dalam metode multigrid ini digunakan metode iterasi lainnya yaitu metode iterasi Gauss-Seidel yang berperan sebagai operator penghalusan. Kata kunci: Sistem persamaan linear, metode beda hingga, metode Gauss-Seidel, metode multigrid 1. PENDAHULUAN Metode multigrid adalah salah satu metode iterasi yang digunakan untuk menyelesaikan sistem persamaan linear. Braess [3] menuliskan tentang sejarah metode ini, bahwa multigrid ditemukan pertama kali oleh Fedorenko yang merumuskan metode dua grid pada tahun 1961, kemudian berikutnya adalah metode multigrid pada tahun 1964. Bachvalov [2] kemudian mempelajarinya untuk persamaan diferensial. Brandt [4] menyatakan bahwa metode multigrid sangat baik sekali dibandingakan dengan metode iterasi lainnya, seperti metode Jacobi, metode Gauss-Saidel, metode succesive over relaxation, dan lain-lain. Repository FMIPA Universitas Riau 1 Kriteria sebuah metode iterasi dikatakan baik yaitu jika kekonvergenan dapat dengan cepat diperoleh dan error yang dihasilkan cukup kecil. Menurut Jespersen [7], metode multigrid dapat memenuhi itu semua, disamping masih terdapat satu lagi kelebihannya, yaitu mampu menyelesaikan sistem persamaan linear yang ukurannya besar. Dalam artikel ini, sistem persamaan linear yang akan diselesaikan berasal dari persamaan Poisson dua dimensi, [ ] ∂ 2u ∂ 2u 2 2 2 2 2 2 (x, y) + 2 (x, y) = −2 (1 − 6x )y (1 − y ) + (1 − 6y )x (1 − x ) , (1) ∂x2 ∂y dalam domain segiempat R = [(x, y)|0 < x < 1, 0 < y < 1] dengan syarat batas u(0, yj ) = u(1, yj ) = u(xi , 0) = u(xi , 1) = 0, i, j = 0, 1, 2, · · · , N. Solusi eksak dari persamaan (1) adalah u(x, y) = (x2 − x4 )(y 4 − y 2 ). (2) Persamaan Poisson tersebut didiskritisasi dengan metode beda hingga (finite difference) yang menghasilkan sistem persamaan linear Au = f. (3) Matriks koefisien pada sistem persamaan linear tersebut memiliki struktur yang khas berupa matriks tridiagonal yang akan mempermudah pengerjaan metode multigrid ini. Ini yang menjadi alasan sistem persamaan linear yang diambil berasal dari diskritisasi persamaan Poisson dua dimensi. Salah satu yang mempunyai peranan dalam memperoleh solusi pendekatan yang baik adalah metode iterasi yang digunakan sebagai operator penghalusan. Kualitas dari operator tersebut menentukan kualitas solusi pendekatan dari metode multigrid secara keseluruhan. Pada artikel ini, metode iterasi yang digunakan sebagai operator penghalusan adalah metode iterasi Gauss-Saidel. 2. ALJABAR LINEAR DAN METODE BEDA HINGGA ∑ Definisi 1 (Sistem Persamaan Linear) [1, h. 1] Bentuk persamaan nj=1 aj uj = f disebut persamaan linear dimana aj dan f adalah konstanta dan uj variabel yang tidak diketahui nilainya. Sekumpulan nilai ∑ dari uj disebut solusi dari persamaan linear apabila nilai-nilai dari uj memenuhi nj=1 aj uj = f . Selanjutnya perhatikan susunan m buah persamaan linear dengan n buah variabel yang tidak diketahui berikut: a11 u1 +a12 u2 + · · · +a1n un = f1 a21 u1 +a22 u2 + · · · +a2n un = f2 (4) .. . . = .. am1 u1 +am2 u2 + · · · +amn un = fm , Repository FMIPA Universitas Riau 2 sistem persamaan linear (4) dapat ditulis: m ∑ n ∑ ai,j uj = fi , i=1 j=1 atau jika ditulis dalam bentuk a11 a12 · · · a21 a22 · · · A = .. .. .. . . . am1 am2 · · · matriks Au = f menjadi: a1n u1 u2 a2n , u = dan f = .. .. . . un amn f1 f2 .. . . fm Matriks A disebut matriks koefisien berukuran m×n, u dan f merupakan vektorvektor kolom n × 1 dan m × 1. Teorema 2 (Teorema Taylor Dua Variabel)[9, h. 577] Misalkan f (x, y) terdiferensialkan secara kontinu hingga orde n + 1 untuk semua (x, y) di lingkungan D = {(x0 , y0 )}. Maka untuk setiap (x, y) ∈ D terdapat titik (r, s) pada segmen garis yang menghubungkan titik (x, y) dan (x0 , y0 ) dengan [ ] ∂f (x0 , y0 ) ∂f (x0 , y0 ) f (x, y) =f (x0 , y0 ) + (x − x0 ) + (y − y0 ) ∂x ∂y [ 2 2 (x − x0 ) ∂ f (x0 , y0 ) ∂f (x0 , y0 ) + + (x − x0 )(y − y0 ) 2 2 ∂x ∂x∂y ] 2 2 (y − y0 ) ∂ f (x0 , y0 ) + + ··· 2 ∂y 2 [ ∑ ] n ( ) n 1 n n−i i ∂ f (x0 , y0 ) + (x − x0 ) (y − y0 ) n! i=0 i ∂xn−z ∂y z [∑ ) ] n+1 ( n+1 n+1 1 f (r, s) n+1−i i∂ + (x − x0 ) (y − y0 ) (n + 1)! i=0 i ∂xn+1−i ∂y i r=x0 +τ (x−x0 ) s=y0 +τ (y−y0 ) untuk semua 0 ≤ τ (x, y) ≤ 1. Bukti: Dapat dilihat pada [9, h. 577]. Pencarian solusi persamaan diferensial melalui pendekatan numerik dilakukan dengan memanfaatkan polinomial Taylor sehingga taksiran central difference turunan kedua berordo O(h2 ) pada langkah ke i dalam x dan y konstan untuk u(xi + h, yj ) disekitar u(xi , yj ) diperoleh sebagai berikut: u(xi − h, yj ) − 2u(xi , yj ) + u(xi + h, yj ) ∂2u (xi , yj ) ≈ . (5) 2 ∂x h2 Selanjutnya pada langkah ke j dalam y dengan x konstan maka untuk u(xi , yj +h) disekitar u(xi , yj ) diperoleh sebagai berikut: u(xi , yj − h) − 2u(xi , yj ) + u(xi , yj + h) ∂2u (xi , yj ) ≈ . 2 ∂y h2 Repository FMIPA Universitas Riau (6) 3 Untuk menyelesaikan persamaan Poisson dengan metode beda hingga (finite difference) seperti persamaan (1), subtitusikan persamaan (5) dan (6) ke persamaan (1) sehingga diperoleh ) ( ) ( vi,j−1 − 2vi,j + vi,j+1 vi−1,j − 2vi,j + vi+1,j + = −fi,j , h2 h2 atau 4vi,j − (vi+1,j + vi−1,j ) − (vi,j+1 + vi,j−1 ) = fi,j , (7) h2 dengan vi,j = u(xi , yj ), fi,j = f (xi , yj ), vi,0 = vi,N = v0,j = vN,j = 0, dan 0 ≤ i, j ≤ N . Persamaan (7) merupakan persamaan metode beda hingga (finite difference) untuk menyelesaikan persamaan Poisson. Pandanglah sistem persamaan linear Av = f dengan matriks A adalah matriks tak singular dan semua elemen diagonalnya tidak ada yang nol. Matriks A dipisahkan menjadi A = D − L − U, dengan D adalah matriks diagonal, L adalah matriks segitiga bawah dan U adalah matriks segitiga atas sehingga sistem persamaan linear Av = f dapat ditulis (D − L − U )v = f atau (D − L)v − U v = f, (8) proses iterasi untuk persamaan (8) dinyatakan dengan (D − L)v(k) = U v(k−1) + f atau v(k) = (D − L)−1 U v(k−1) + (D − L)−1 f, (9) (D − L)−1 U dinamakan matriks Gauss-Seidel. Persamaan (9) dijabarkan dengan seluruh elemen matriksnya, sehingga diperoleh bentuk umum metode Gauss-Seidel sebagai berikut: [ i−1 ] n ∑ ∑ 1 (k) (k) (k−1) vi = − aij vj − aij vj + fi , i = 1, 2, · · · , n. aii j=1 j=i+1 Adapun algoritma metode Gauss-Seidel adalah sebagai berikut: Algoritma 1 Algoritma Metode Gauss-Seidel INPUT : Elemen matriks A, Elemen vektor f, nilai awal v0 , dan jumlah iterasi k OUTPUT : Nilai vektor v sebagai solusi hampiran dari persamaan Av = f Hitung D = diag(diag(A)); U = -(triu(A) − D); dan L = -(tril(A) − D) for i = 0 to k do v(k) = (D − L)−1 U v(k−1) + (D − L)−1 f end for Repository FMIPA Universitas Riau 4 3. METODE MULTIGRID UNTUK MENYELESAIKAN PERSAMAAN POISSON DUA DIMENSI DENGAN METODE BEDA HINGGA Definisi 3 (Grid Halus)[8, h. 8] Perhitungan grid dinyatakan sebagai berikut: { } 1 h Ω = (xi , yj ) ∈ R : xi = ih; yj = jh; i, j = 0, 1, 2, · · · , N ; h = , N grid ini juga dinamakan grid halus dan v(xi , yj ) dinamakan titik grid. Definisi 4 (Grid Kasar)[8, h. 8] Perhitungan grid kasar dinyatakan sebagai berikut: { } N 1 2h Ω = (xi , yj ) ∈ R : xi = 2ih; yj = 2ih; i, j = 0, 1, 2, · · · , ; h = . 2 N Definisi 5 (Restriksi)[5, h. 36] Operator restriksi Ih2h : Ωh → Ω2h dinyatakan sebagai berikut: v2h = Ih2h vh , dengan vij2h [ 1 h h h h v = + v2i−1,2j+1 + v2i+1,2j−1 + v2i+1,2j+1 16 ( 2i−1,2j−1 ) h h h h +2 v2i,2j−1 + v + v + v 2i,2j+1 2i−1,2j 2i+1,2j ] N h − 1. +4v2i,2j , 1 ≤ i, j ≤ 2 h : Ω2h → Ωh dinyatakan Definisi 6 (Prolongasi)[5, h. 35] Operator prolongasi I2h sebagai berikut: h 2h vh = I2h v , dengan h v2i,2j = vij2h 1 2h h = (vij2h + vi+1,j ) v2i+1,2j 2 1 h 2h ) v2i,2j+1 = (vij2h + vi,j+1 2 1 h 2h 2h 2h v2i+1,2j+1 = (vij2h + vi+1,j + vi,j+1 + vi+1,j+1 ), 4 0 ≤ i, j ≤ N − 1. 2 Algoritma untuk metode dua grid dan metode multigrid disajikan pada Algoritma 2 dan 3 berikut: Repository FMIPA Universitas Riau 5 Algoritma 2 Algoritma Dua Grid: vh ← T W OGRID(Ah , vh , fh ) INPUT : Elemen matriks A, Elemen vektor f, nilai awal v0 , dan jumlah iterasi k OUTPUT : Nilai vektor v sebagai solusi pendekatan dari persamaan Av = f 1. Selesaikan Ah uh = fh pada Ωh menggunakan iterasi Gauss-Seidel sebanyak k iterasi dengan tebakan awal vh0 sembarang sehingga diperoleh vh . 2. Hitung residu rh = fh − Ah vh . 3. Hitung r2h = Ih2h rh . (restriksi rh ) 4. Selesaikan A2h e2h = r2h pada Ω2h menggunakan iterasi Gauss-Seidel se2h banyak n iterasi dengan tebakan awal e2h 0 = 0 diperoleh solusi e . h 2h 5. Hitung eh = I2h e . (prolongasi e2h ) 6. Update vh ← vh + eh . 7. Selesaikan Ah uh = fh pada Ωh menggunakan iterasi Gauss-Seidel sebanyak k iterasi dengan tebakan awal vh sembarang sehingga diperoleh vh . Algoritma 3 Algoritma Multigrid V-cycle: vh ← M GV (Ah , vh , fh ) INPUT : Elemen matriks A, Elemen vektor f, nilai awal v0 , dan jumlah iterasi k OUTPUT : Nilai vektor v sebagai solusi pendekatan dari persamaan Au = f 1. Selesaikan Ah uh = fh pada Ωh menggunakan iterasi Gauss-Seidel sebanyak k iterasi dengan tebakan awal vh . 2. if Ωh grid terkasar then lanjut ke langkah (4). else f2h ← Ih2h (fh − Ah vh ), v2h ← 0, v2h ← M GV (A2h , v2h , f2h ). endif 2 2h 3. Update vh = vh + I2h v . 4. Selesaikan Ah uh = fh pada Ωh menggunakan iterasi Gauss-Seidel sebanyak k iterasi dengan tebakan awal vh . Repository FMIPA Universitas Riau 6 4. UJI KOMPUTASI Pada bagian ini akan ditentukan solusi pendekatan dari sistem persamaan linear seperti persamaan (3) yang diperoleh dari diskritisasi persamaan Poisson dua dimensi seperti persamaan (1) dengan solusi eksak seperti persamaan (2) menggunakan metode beda hingga (finite difference) untuk N = 4, 8, 16 dan 32, tebakan awal v0 = 0 dan nilai toleransi 1e−6. Solusi hampiran sistem persamaan linear tersebut diselesaikan dengan 3 metode iterasi, yaitu metode Gauss-Seidel dengan Algoritma 1, metode dua grid dengan Algoritma 2 dan metode multigrid dengan Algoritma 3 menggunakan Notebook dengan Intel Core i3 Processor dan RAM 2048 MB dengan program Matlab 8.1 R2013a. Hasil perhitungan dari ketiga metode tersebut disajikan pada Tabel 1. Tabel 1: Hasil Komputasi Metode Gauss-Seidel, Dua Grid dan Multigrid N 4 8 16 32 Ukuran Matriks A 9×9 49 × 49 225 × 225 961 × 961 k 17 58 195 628 Gauss-Seidel ∥e∥∞ t (s) 5.656e-07 0.077 9.634e-07 0.069 9.656e-07 0.716 9.917e-07 76.582 k 6 16 50 162 Dua Grid ∥e∥∞ 2.705e-07 7.507e-07 8.535e-07 9.577e-07 t (s) 0.138 0.094 0.468 40.902 k 6 10 14 20 Multigrid ∥e∥∞ 2.705e-07 5.920e-07 8.805e-07 6.452e-07 t (s) 0.094 0.123 0.224 5.530 Pada Tabel 1 dapat dilihat bahwa metode multigrid lebih cepat memperoleh solusi dibandingkan dengan metode dua grid dan metode Gauss-Seidel baik untuk N = 4, 8, 16 maupun 32. Hal ini dapat terlihat jelas untuk N = 32 pada iterasi ke-20 metode multigrid telah memperoleh solusi, sedangkan metode dua grid memperoleh solusi pada iterasi ke-162 dan metode Gauss-Seidel pada iterasi ke-628. Dengan kata lain, untuk N = 32 jumlah iterasi pada metode multigrid 31 kali lebih cepat daripada metode Gauss-Seidel dan 8 kali lebih cepat daripada metode dua grid. Hal ini terjadi karena kriteria pemberhentian telah terpenuhi yaitu ∥e∥∞ =vk − v(k−1) ∞ dengan k adalah jumlah iterasi sudah lebih kecil dari toleransi yang diberikan yaitu 1e−6. Kemudian jika dilihat dari pengaruh besarnya ukuran matriks A terhadap jumlah iterasi, maka terlihat bahwa jumlah iterasi pada metode Gauss-Seidel sangat dipengaruhi oleh ukuran matriks A dan pengaruhnya sangat signifikan, kemudian jumlah iterasi pada metode dua grid masih dipengaruhi oleh ukuran matriks A walaupun tidak begitu signifikan lagi, sedangkan jumlah iterasi pada metode multigrid tidak begitu dipengaruhi oleh ukuran matriks A. Hal ini terlihat untuk N = 2L dan ukuran matriks A = (N − 1)2 × (N − 1)2 , pada metode Gauss-Seidel jumlah iterasi untuk N = 2L lebih dari 3 kali lipat jumlah iterasi untuk N = 2(L−1) , begitu juga pada metode dua grid kecuali untuk N = 8, sedangkan pada metode multigrid jumlah iterasi untuk N = 2L tidak sampai 2 kali lipat dari jumlah iterasi untuk N = 2(L−1) . Kemudian untuk N = 32, lakukan iterasi Gauss-Seidel, dua grid dan multigrid sebanyak 20 iterasi untuk melihat nilai error dari masing-masing metode iterasi. Repository FMIPA Universitas Riau 7 0.01 0 0 0 −0.01 −0.01 −0.01 −0.01 −0.02 −0.02 −0.02 −0.02 −0.03 −0.04 −0.03 −0.04 −0.03 −0.04 −0.05 −0.05 −0.05 −0.06 −0.06 −0.06 −0.07 0 0.2 0.4 0.6 0.8 1 −0.07 0 0.2 y 0.4 0.6 0.8 −0.07 1 0.01 Nilai Solusi (u) 0.01 0 Nilai Solusi (v) 0.01 Nilai Solusi (v) Nilai Solusi (v) Pada Gambar 1 disajikan grafik solusi pendekatan dari masing-masing metode iterasi serta solusi eksak. −0.04 −0.05 −0.06 0 0.2 0.4 y (a) −0.03 0.6 0.8 1 y (b) −0.07 0 0.2 0.4 0.6 0.8 1 y (c) (d) Gambar 1: Grafik Solusi Pendekatan (a) Gauss-Seidel, (b) Dua Grid (c) Multigrid dan (d) Solusi Eksak Untuk lebih jelas, disajikan grafik perbandingan solusi untuk masing-masing iterasi dengan solusi eksak untuk x = 0.5 sebagai berikut: Nilai Solusi Pendekatan dan Solusi Eksak 0.01 0 −0.01 −0.02 −0.03 Gauss−Seidel Dua Grid Multigrid Solusi Eksak −0.04 −0.05 0 0.2 0.4 0.6 0.8 1 y Gambar 2: Perbandingan Nilai Solusi Metode Gauss-Seidel, Dua Grid dan Multigrid dengan Solusi Eksak 0.035 Gauss−Seidel Dua Grid Multigrid 0.03 Nilai Error 0.025 0.02 0.015 0.01 0.005 0 0 5 10 Jumlah Iterasi 15 20 Gambar 3: Perbandingan Nilai Error Metode Gauss-Seidel, Dua Grid dan Multigrid Repository FMIPA Universitas Riau 8 Pada Gambar 3 terlihat bahwa nilai error pada metode multigrid lebih kecil dibandingkan dengan nilai error pada metode Gauss-Seidel dan dua Grid. Sehingga dapat dikatakan bahwa jika dilihat dari nilai error yang dihasilkan untuk menyelesaikan persamaan Poisson seperti persamaan (1), maka metode multigrid lebih baik daripada metode Gauss-Seidel dan dua grid karena nilai errornya lebih kecil. Ucapan Terimakasih Penulis mengucapkan terimakasih dan penghargaan kepada Dr. M.D.H. Gamal, M.Sc. yang telah memberikan arahan dan bimbingan dalam penulisan artikel ini. DAFTAR PUSTAKA [1] Anton, H. 1981. Elementary Linear Algebra. John Wiley & Sons, Inc., New York. [2] Bachvalov, N. S. 1966. On the Convergence of a Relaxation Method with Natural Constraints on the Elliptic Operator. USSR Computational Mathematics and Mathematical Physics, 6: 101-135 [3] Braess, D. 1997. Finite Elements: Theory, Fast Solver and Application in Solid Mechanics. Cambridge University Press, New York. [4] Brandt, A. 1977. Multi-level Adaptive Solutions to Boundary-Value Problems. Mathematics of Computation, 31: 333-390 [5] Briggs, W. L. 2000. A Multigrid Tutorial, Second Edition. SIAM, Philadelphia. [6] Burden, R. L. & J. D. Faires. 2010. Numerical Analysis, Ninth Edition. Brooks Cole, Boston. [7] Jespersen, T. J. 1984. Multigrid Methods for Partial Differential Equations. Studies in Numerical Analysis, 24: 270-318. [8] Oosterlee, C. W. Trottenberg, U. & A. Schuller. 2001. Multigrid. Academic Press, San Diego. [9] Patel V. A. 1994. Numerical Analysis. Harcourt Brace College Publishers, Florida. Repository FMIPA Universitas Riau 9