Anda di halaman 1dari 11

Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (1/1)

Modul 3:

Sol usi SPAL dengan Tekni k Dekomposi si LU



A. Prinsip Dekomposisi LU dan Identitas

Matriks [A] dari SPAL didekomposisi (difaktorisasis) menjadi
matriks-matrik segitiga bawah (L) dan segitiga atas (U)
sedemikian rupa sehingga identitasnya adalah:
[A] = [L][U] atau A = LU

B. Notasi Matriks LU berdasarkan Metode Doolittle

Notasi matriks L seperti di atas dituliskan sbb:
L =
1
1
1
1
1
1
1
]
1

+ + +
1
0
0 1
0 0 1
0 0 0 1
, 2 , 1 ,
, 1 2 , 1 1 , 1
2 , 1 ,
1 , 2
L l L l l
M O M M M
L l L l l
L L l l
M M O M M
L L l
L L
i n n n
i i i i
i i

Perhatikan, bahwa semua elemen diagonal dari matriks L di
atas berharga 1 (satu) !

Notasi matriks U dituliskan sbb:
U =
1
1
1
1
1
1
1
]
1

+ +

n n
n i n i
n i n i
n n
n n i
u
u u
u u
u u u
u u u u u
,
, 1 1 , 1
, 1 ,
, 2 1 , 2 2 , 2
, 1 1 , 1 , 1 2 , 1 1 , 1
0 0 0
0 0
0 0
0
L L
M M O M M
O
M M M M
L L
L

Perhatikan, bahwa semua elemen yang terletak di bawah
Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (2/2)
diagonal dari matriks U di atas (= u
1,1
u
n,n
) berharga 0 (nol) !

C. Notasi Matriks LU berdasarkan Metode Crout

Notasi matriks L seperti di atas dituliskan sbb:
L =
1
1
1
1
1
1
1
]
1

+ + +
n n i n n n
i i i i
i i i i
, , 2 , 1 ,
, 1 2 , 1 1 , 1
, 2 , 1 ,
2 , 2 1 , 2
1 , 1
0
0
0 0
0 0 0
l L l L l l
M M M M
L l L l l
L l L l l
M O M M M
L L l l
L L l

Perhatikan, bahwa semua elemen diagonal dari matriks L di
atas tidak harus berharga 1 (satu), sedangkan, elemen-elemen
di atas diagonal semuanya berharga 0 (nol) !

Notasi matriks U dituliskan sbb:
U =
1
1
1
1
1
1
1
]
1

+ +

1 0 0 0
0 0
0 0
1 0
1
, 1 1 , 1
, 1 ,
, 2 1 , 2
, 1 1 , 1 , 1 2 , 1
L L
M M M M
O
M M O M M
L L
L
n i n i
n i n i
n n
n n i
u u
u u
u u
u u u u

Perhatikan, bahwa semua elemen diagonal (= u
1,1
u
n,n
)
berharga 1 (satu), sedangkan yang terletak di bawahnya
berharga 0 (nol) !

D. Notasi Matriks A dan LU dalam SPAL

Notasi Matriks LU sebagai dekomposan matriks A dapat
dituliskan dalam SPAL sbb:

[A] [x] = [L][U][x] = [b]

Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (3/3)
Sehingga, dalam notasi Metode Doolittle dapat dituliskan:
1
1
1
]
1

n n n
n
n
a a
a a a
a a a
, 1 ,
, 2 2 , 2 1 , 2
, 1 2 , 1 1 , 1
L L
M M
L
L
=
1
1
1
]
1

1
0
0 0 1
2 , 1 ,
1 , 2
L l l
M M
L L l
L
n n

1
1
1
1
]
1

n n
n
n
u
a
u u u
,
, 2
, 1 2 , 1 1 , 1
0 0
0
L
M M
L L
L


Sedangkan, dalam notasi Metode Crout dapat dituliskan:
1
1
1
]
1

n n n
n
n
a a
a a a
a a a
, 1 ,
, 2 2 , 2 1 , 2
, 1 2 , 1 1 , 1
L L
M M
L
L
=
1
1
1
]
1

n n n n , 2 , 1 ,
1 , 2
1 , 1
0
0 0
l L l l
M O M
L O l
L l

1
1
1
]
1

1 0 0
1 0
1
, 2
, 1 2 , 1
L
M O M
L
L
n
n
a
u u


E. Deskripsi Tahapan dan Strategi Dekomposisi

Notasi A = LU dalam Metode Doolittle seperti di atas dapat
diuraikan dalam operasi perkalian matriks (sebagai contoh:
matriks n x n) sbb:
Baris 1 (i = 1):
n i a u
u a
u a
u a
i i
n n
, , 1 ;
, 1 , 1
, 1 , 1
2 , 1 2 , 1
1 , 1 1 , 1
K
M M



Baris 2 (i = 2):
a
2,1
= l
2,1
u
1,1

a
2,2
= l
2,1
u
1,2
+ u
2,2

a
2,3
= l
2,1
u
1,3
+ u
2,3

M M
a
2,n
= l
2,1
u
1,n
+ u
2,n


Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (4/4)

Baris 3 (i = 3):
a
3,1
= l
3,1
u
1,1

a
3,2
= l
3,1
u
1,2
+ l
32
u
2,2

a
3,3
= l
3,1
u
1,3
+ l
32
u
2,3
+ u
3,3

M M
a
3,n
= l
3,1
u
1,n
+ l
32
u
2,n
+ u
3,n


Baris n (i = n):
a
n,1
= l
n,1
u
1,1

a
n,2
= l
n,1
u
1,2
+ l
n,2
u
2,2

a
n,3
= l
n,1
u
1,3
+ l
n,2
u
2,3
+ l
n,3
u
3,3

M M
a
n,n-1
= l
n,1
u
1,n-1
+ l
n,2
u
2,n-1
+ l
n,3
u
3,n-1
+ + l
n,n-1
u
n-1,n-1

a
n,n
= l
n,1
u
1,n
+ l
n,2
u
2,n
+ l
n,3
u
3,n
+ + + u
n,n


# Dari operasi-operasi perkalian matriks LU seperti di atas,
dapat disimpulkan beberapa hal berikut:
(1). Mekanisme proses dekomposisi dilakukan dengan cara
mengisi terlebih dahulu baris pertama matriks U.
Selanjutnya, mengisi matriks L pada baris terendah
terlebih dulu (mulai baris ke-2), dan kemudian diikuti
pengisian matriks U pada baris yang sama, demikian
seterusnya sampai baris terakhir (ke-n).
(2). Harga-harga dari semua elemen matriks U pada baris 1
identik dengan elemen-elemen matriks A (matriks asal),
(3). Harga-harga elemen pada kolom 1 untuk matriks L, dapat
dihitung menggunakan persamaan berikut:
l
i,1
= a
i,1
/ u
1,1
; i = 2,,n
(4). Jumlah maksimum operasi penjumlahan per elemen
matriks A sesuai dengan jumlah/posisi baris,
(5). Pada baris rendah, langkah/iterasi pengisian matriks U
lebih banyak dibandingkan dengan matriks L, dan
sebaliknya.
Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (5/5)

Tugas/Latihan:
Lakukan hal yang sama seperti di atas untuk konfigurasi
matriks LU yang disusun dengan Metode Crout !

F. Algoritma Dekomposisi dan Komputasi Praktis

(a). Algoritma solusi numerik dengan Metode Doolittle:
Baris 1:
n i a u
i i
, , 1 ;
, 1 , 1
L
Baris 2:
Pengisian matriks L:
1 , 1
1 , 2
1 , 2
u
a
l
Pengisian matriks U:
2 , 1 1 , 2 2 , 2 2 , 2
u a u l
3 , 1 1 , 2 3 , 2 3 , 2
u a u l
4 , 1 1 , 2 4 , 2 4 , 2
u a u l
M
n n n n
u a u
, 1 , 2 , 2 , 2
l
Baris 3:
Pengisian matriks L:
1 , 1
1 , 3
1 , 3
u
a
l
( )
2 , 2
2 , 1 1 , 3 2 , 3
2 , 3
u
u a

l
l
Pengisian matriks U:
3 , 2 2 , 3 3 , 1 1 , 3 3 , 3 3 , 3
u u a u l l
4 , 2 2 , 3 4 , 1 1 , 3 4 , 3 4 , 3
u u a u l l
M
n n n n
u u a u
, 2 2 , 3 , 1 1 , 3 , 3 , 3
l l
Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (6/6)
Baris n:
Pengisian matriks L:
1 , 1
1 ,
1 ,
u
a
n
n
l
( )
2 , 2
2 , 1 1 , 2 ,
2 ,
u
u a
n n
n

l
l
( )
3 , 3
3 , 2 2 , 3 , 1 1 , 3 ,
3 ,
u
u u a
n n n
n

l l
l
M
( )
1 , 1
1 , 1 1 , 1 , 2 2 , 1 , 1 1 , 1 ,
1 ,

n n
n n n n n n n n n n
n n
u
u u u a l L l l
l

Pengisian matriks U:
n n n n n n n n n n n n
u u u a u
, 1 1 , , 2 2 , , 1 1 , , ,
l L l l

(b). Algoritma solusi numerik dengan Metode Crout:
Sebaai latihan, coba saudara lakukan sendiri dengan cara
mengikuti langah-langkah untuk Metode Doolittle seperti di
atas dengan cermat dan seksama!

(c). Komputasi dengan Fortran-77 untuk Metode Doolittle:


MODEL VARIABEL MATRIKS (2-dimensi):

C PROGRAM Pengujian Dekomposisi LU

C Deklarasi Jenis dan Variabel:
C -----------------------------
IMPLICIT NONE
INTEGER iarg
PARAMETER (iarg = 7)
INTEGER i,j,neq
REAL*8 A(iarg,iarg),LU(iarg,iarg)
C LU(iarg,iarg)

CALL system('clear')

C Proses Pemasukan Harga Variabel:
C --------------------------------
WRITE(*,10) 'Jumlah Persamaan : '
READ(*,*) neq

DO i = 1,neq
Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (7/7)
DO j = 1,neq
WRITE(*,20) 'A(',i,',',j,') : '
READ(*,*) A(i,j)
ENDDO
ENDDO

C Proses Pemanggilan Subprogram Eliminasi Gauss-Jordan:
C -----------------------------------------------------
CALL DECOLU(neq,A,LU)

C Pemaparan/penyajian Hasil Perhitungan:
C --------------------------------------
WRITE(*,30) 'Matriks LU yang diperoleh:'
DO i = 1,neq
DO j = 1,neq
WRITE(*,40) LU(i,j)
ENDDO
WRITE(*,*)
ENDDO

10 FORMAT (3X,A,$)
20 FORMAT (3X,A,I1,A1,I1,A,$)
30 FORMAT (/,1X,A)
40 FORMAT (3X,F10.4,$)
C 40 FORMAT (3X,F10.4,3X,F10.4,3X,F10.4,3X,F10.4,3X,F10.4)

STOP
END


SUBROUTINE DECOLU(n,A,LU)
C ---------------------------------------------------------------------------
C SUBPROGRAM DEKOMPOSI LU: |
C Merupakan solusi DEKOMPOSISI Matriks A menjadi matriks-matriks L |
C dan U dengan format [A] = [L].[U] yang hasilnya disimpan dalam LU |
C n = dimensi matriks A (identik dengan jumlah PAL), |
C A = matriks bujur sangkar n x n yang berisi koefisien persamaan, |
C LU = matriks bujur sangkar tempat penyimpanan hasil dekomposisi |
C matrik A menjadi L dan U (yang disimpan sekaligus dalam LU). |
C ---------------------------------------------------------------------------

C Deklarasi Variabel:
C -------------------
INTEGER n
REAL*8 A(7,7),LU(7,7)
INTEGER i,j,k
REAL*8 sum

C Proses pengisian matriks L dan U (dalam matriks LU):
C ----------------------------------------------------

DO j = 1,n
C Proses pengisian matriks U pada baris pertama:
C ----------------------------------------------
LU(1,j) = A(1,j)
ENDDO

DO i = 2,n
C Proses pengisian matriks L:
C ---------------------------
LU(i,1) = A(i,1)/LU(1,1)
sum = 0.0D0
DO j = 2,i-1
DO k = 1,i-2
sum = sum + LU(i,k)*LU(k,j)
ENDDO
LU(i,j) = (A(i,j) - sum)/LU(j,j)

ENDDO
Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (8/8)

C Proses pengisian matriks U:
C ---------------------------
DO j = i,n
sum = 0.0D0
DO k = 1,i-1
sum = sum + LU(i,k)*LU(k,j)
ENDDO
LU(i,j) = A(i,j) - sum
ENDDO
ENDDO

RETURN
END



MODEL VARIABEL VEKTOR (2-dimensi):

C PROGRAM Solusi Sistem Persamaan Aljabar Linier (SPAL) atau
C atau Persamaan Aljabar Linier Simultan dengan teknik TRIDIAGONAL
C yang terwakili (disimpan) dalam 1 vektor

C Deklarasi Jenis dan Variabel:
C -----------------------------
IMPLICIT NONE
INTEGER iarg
PARAMETER (iarg = 7)
INTEGER i,neq
REAL*8 b(iarg),d(3*iarg),x(iarg)

CALL system('clear')
OPEN (10,FILE='s3diag.dta')

C Proses Pemasukan Harga Variabel:
C --------------------------------
READ(10,*) neq
WRITE(*,*) 'Jumlah Persamaan : ',neq
READ(10,*) d(1+neq),d(1+2*neq),b(1)
DO i = 2,neq-1
READ(10,*) d(i),d(i+neq),d(i+2*neq),b(i)
ENDDO
READ(10,*) d(neq),d(neq+neq),b(neq)

C Proses Pemanggilan Subprogram Eliminasi Gauss-Jordan:
C -----------------------------------------------------
CALL V3DIAG(neq,d,x,b)

C Pemaparan/penyajian Hasil Perhitungan:
C --------------------------------------
WRITE(*,*) '--------HASIL---------'
DO i = 1,neq
WRITE(*,40) 'x(',i,') = ',x(i)
ENDDO

CLOSE(10)

20 FORMAT (3X,A,I1,A1,I1,A,G15.7)
30 FORMAT (5X,A,I1,A,G15.7)
40 FORMAT (5X,A,I1,A,G15.7)

STOP
END

INCLUDE 'v3diag.sub'



Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (9/9)

File v3diag.sub (dalam include):

SUBROUTINE V3DIAG(n,d,x,b)
C ---------------------------------------------------------------------------
C SUBPROGRAM SOLUSI MATRIKS TRI-DIAGONAL dengan ELIMINASI GAUSS |
C Merupakan solusi Sistem Persamaan Aljabar Linier (SPAL) dengan |
C format persamaan matriks: [A].[x] = [b], dengan rincian sbb |
C n = jumlah persamaan aljabar linier (dimensi SPAL) |
C d(2..n) = vektor koefisien diagonal bawah dengan dimensi n-1,|
C d(n+1..2n) = vektor koefisien diagonal utama dengan dimensi n, |
C d(2n+1..3n-1) = vektor koefisien diagonal atas dengan dimensi n-1, |
C x = vektor variabel persamaan yang akan dicari harga-harganya |
C b = vektor ruas kanan yang berisi harga-harga persamaan tunggal |
C ---------------------------------------------------------------------------

C Deklarasi Variabel:
C -------------------
INTEGER n
REAL*8 d(3*n),b(n),x(n)
INTEGER i,l,m
REAL*8 PIVOT,MULT

C Proses solusi: (a) Substitusi dan Eliminasi
C -------------------------------------------
DO i = 1,n-1
PIVOT = d(i+n)
MULT = d(i+1)/PIVOT
d(i+1) = MULT
d(i+n+1) = d(i+n+1) - MULT*d(i+2*n)
b(i+1) = b(i+1) - MULT*b(i)
ENDDO


C Proses solusi: (b) Substitusi Balik
C -----------------------------------
x(n) = b(n)/d(n+n)
DO i = n-1,1,-1
x(i) = (b(i) - d(i+2*n)*x(i+1))/d(i+n)
ENDDO

RETURN
END



(d). Untuk Pemahaman yang lebih mendalam, cobalah buat
program dalam bahasa Fortran-77 untuk Metode Crout!

G. Manfaat Dekomposisi LU untuk Solusi SPAL

Solusi SPAL [A] [x] = [b], melalui teknik dekomposisi matriks
[A], sangat bermanfaat untuk menyelesaikan problem-problem
ataupun model matematis yang membentuk SPAL dengan
matriks [A] yang sama untuk berbagai vektor jawab, [b].
Dengan teknik dekomposisi LU ini, penyelesaian akan menjadi
sangat efisien dan banyak menghemat waktu pada saat telah
Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (10/10)
diperoleh dekomposisi matriks [A], karena hasil dekomposisi
LU tersebut dapat dipakai untuk semua SPAL dengan matriks
[A] yang identik.
Bentuk umum SPAL yang menggunakan matriks [A] yang
identik, seperti disebutkan di atas, dapat dituliskan sbb:

[A]
1
1
1
1
]
1

n n n n
n
n
x x x
x x x
x x x
, , 2 , 1
2 , 2 , 2 2 , 1
1 , 1 , 2 1 , 1
L
M M M
L
L
=
1
1
1
1
]
1

n n n n
n
n
b b b
b b b
b b b
, , 2 , 1
2 , 2 , 2 2 , 1
1 , 1 , 2 1 , 1
L
M M M
L

Perhatikan, bahwa bentuk di atas sesungguhnya merupakan
perkalian 2 bentuk matriks, antara matriks bujur sangkar [A]
yang berdimensi n x n dengan matrik segi 4 yang berdimensi n
x m, dengan hasil matriks lain yang juga berdimensi n x m!

H. Solusi Numerik SPAL melalui Dekomposisi LU

Subprogram (SUBROUTINE) di bawah ini dapat digunakan
untuk solusi SPAL dengan bentuk normal: [A] [x] = [b],
menggunakan matriks LU sebagai hasil dekomposisi matriks
[A] dengan Metode Doolittle.


C PROGRAM Solusi SPAL dengan Dekomposisi LU

C Deklarasi Jenis dan Variabel:
C -----------------------------
IMPLICIT NONE
INTEGER iarg
PARAMETER (iarg = 7)
INTEGER i,j,neq
REAL*8 LU(iarg,iarg),b(iarg),x(iarg)

CALL system('clear')
OPEN (11,FILE='inputLU.dta')

C Proses Pemasukan Harga Variabel dari FILE:
C ------------------------------------------
READ(11,*) neq
DO i = 1,neq
READ(11,*) (LU(i,j), j=1,neq),b(i)
ENDDO

C Proses Pemanggilan Subprogram Eliminasi Gauss-Jordan:
C -----------------------------------------------------
CALL DECOLU(neq,LU)
CALL SOLVLU(neq,LU,x,b)


Seri Kuliah Metode Numerik (Modul 3: Solusi SPAL dengan Teknik Dekomposisi LU) (11/11)

C Pemaparan/penyajian Hasil Perhitungan:
C --------------------------------------
WRITE(*,30) 'Matriks LU dan vektor x yang diperoleh:'
DO i = 1,neq
DO j = 1,neq
WRITE(*,40) LU(i,j)
ENDDO
WRITE(*,50) 'x(',i,') = ',x(i)
ENDDO

CLOSE(11)

10 FORMAT (3X,A,$)
20 FORMAT (3X,A,I1,A1,I1,A,$)
30 FORMAT (/,1X,A)
40 FORMAT (3X,F10.4,$)
50 FORMAT (5X,1H|,5X,A,I1,A,G10.4)

STOP
END

INCLUDE 'decoLU.sub'
INCLUDE 'solvLU.sub'


Tugas !
Ujilah program di atas untuk SPAL berikut:

1
1
]
1

1
1
]
1

1
1
]
1

31
28
11
17 4 2
10 3 4
3 1 2
3
2
1
x
x
x


Perhatikan dengan seksama hasil dekomposisinya (matriks LU)
dan solusi vektor x-nya !


I. Daftar Pustaka

Atkinson, Kendal E., An Introduction to Numerical Analysis, John
Wiley & Sons, Toronto, pp. 33-39, 1978.
Atkinson, L.V., Harley, P.J., An Introduction to Numerical
Methods with Pascal, Addison-Wesley Publishing Co., Tokyo,
pp. 49-59, 1983.
Bismo, Setijo, Kumpulan Bahan Kuliah Metode Numerik, Jurusan
TGP-FTUI, 1999.