METODE MULTIGRID UNTUK MENYELESAIKAN PERSAMAAN

advertisement
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
Download