Modul 2
Modul 2
Modul 2:
Solusi Sistem Persamaan Aljabar Linier (SPAL)
dengan Metode Eliminasi Gauss dan variannya
Sistem Persamaan Aljabar Linier (SPAL) atau dikenal juga sebagai
Persamaan Aljabar Linier Serempak banyak sekali dijumpai
dalam perhitungan-perhitungan teknik kimia yang melibatkan
solusi numeris. Beberapa metode solusi yang melibatkan solusi
SPAL, di antaranya dalah: solusi Sisten Persamaan Aljabar NonLinier (SPANL), solusi Persamaan Diferensial Biasa (PDB), solusi
persamaan Diferensial Parsial (PDP), Regresi Linier dan NonLinier, dll.
Dalam modul ini, para mahasiswa S2 akan diajak terlebih dahulu
untuk membaca ulang (review) secara ringkas dan cepat tentang
beberapa pengertian dasar skalar, vektor, matriks, dan sistem
persamaan linier. Pengulangan ini sangat diperlukan mengingat
banyak di antara peserta ajar S2 yang sudah terlupa dengan materimateri kuliah matematik yang pernah diikutinya. Di samping itu
juga, para pembaca diajak untuk memahami secara praktis tentang
konsep-konsep pemahaman dalam aljabar linier yang
diimplementasikan dalam metode numerik.
Setelah pengulangan tentang aljabar numeris, para pembaca diajak
secara ringkas untuk memahami konsep-konsep perhitungan
numeris yang berhubungan dengan metode-metode Eliminasi
Gauss dan Pivot Gauss. Kemudian, lebih jauh lagi diajak untuk
melakukan analisis numerik dalam solusi-solusi Dekomposisi LU
dan Matriks Tri-Diagonal.
A. Skalar, Vektor, Matriks dan SPAL
(a). Skalar atau konstanta didefinisikan sebagai suatu obyek
tunggal (berdimensi nol), baik bilangan nyata (R, real) ataupun
Intellectual Property of DR. Ir. Setijo Bismo, DEA., TGP-FTUI
A = 2,1 2, 2
M
M
M
Dalam sistem linier, pada umumnya hanya digunakan matriksmatrik bujur-sangkar sehingga secara sederhana: order matriks
identik dengan jumlah persamaan. Lambang matriks selalu
dituliskan dalam huruf besar (capital), sedangkan elemenelemennya dituliskan dalam huruf kecil seperti dalam penulisan
matriks A di atas.
(d). Sistem persamaan linier, dalam modul ini digunakan istilah
SPAL (Sistem Persamaan Aljabar Linier) yang didefinisikan
sebagai suatu set persamaan-persamaan aljabar yang variabelvariabelnya berpangkat tunggal (linier) dengan notasi berikut:
a1,1 x1 + a1,2 x2 + ... + a1, n xn = b1
a2,1 x1 + a2,2 x2 + ... + a2, n xn = b2
a3,1 x1 + a3, 2 x2 + ... + a3, n xn = b3
... = ...
an,1 x1 + an,2 x2 + ... + an, n xn = bM
[ A] [ x ]
= [b]
atau
a1,1 a1,2
a2,1 a2, 2
...
...
an,1 an,2
... a1, n x1
b1
b
... a2,1
x
2 = 2
... ... ...
...
bn
... an, n xn
Solusi
merupakan perbaikan secara langsung dari Metode GaussSeidel dengan cara menggunakan faktor relaksasi (faktor
pembobot) pada setiap tahap/proses iterasi.
Metode-metode tak-langsung seperti di atas pada umunya
sangat tidak efisien dan time consuming (memerlukan CPUtime) yang jauh lebih besar dari metode langsung. Metode ini
dapat dilihat dan dipelajari pada buku-buku numerik yang ada
di perpustakaan atau toko buku.
Dalam hal ini, baris pertama dari matriks A dan vektor b tidak
boleh diganggu, sedangkan kolom pertama dari matriks A(1) di
bawah diagonal harus dibuat nol. Sistem A(2)x = b(2) akan
tampak seperti berikut:
a (1) a (1) L a (1) x1 b (1)
1, n
1,1 1(,22)
1( 2)
( 2)
0 a2,2 L a2,2 x2 b2
M =
M
M
M
M
0 a ( 2) L an( 2, n) xn bn( 2)
n, 2
Proses eliminasi dilanjutkan untuk kolom-kolom 2, 3 sampai ken, dan diungkapkan dalam langkah berikut.
Langkah k: menggunakan k untuk indeks iterasi, untuk rentang
harga: 1 k n-1.
Bila A(k)x = b(k) telah terbentuk, dan dengan anggapan termterm x1 , x2 ,K, xk 1 telah tereliminasi pada tahap sebelumnya,
sehingga matriks A(k) sekarang memiliki bentuk sebagai berikut:
A(k)
a (1) a (1)
a1(,1n)
1,1
1,1
(
2
)
(
2
)
0 a
a 2, n
2, 2
M
O
M
=
(k )
(k )
0
L 0 a k , k L ak , n
M
M
M
M
(
k
)
(
k
)
0
L 0 an, k L an, n
1
M
M
0 O
M
=
M
M
O M M
0 L L an( n, n) xn
bn( n )
1 (k )
(k )
;
b
a
x
j
k, j
(k ) k
j = k +1
ak , k
k = n-1,n-2,,1
Harga pivot diambil yang terbesar dari setiap baris dan kolom
yang sesuai, yaitu komponen aii ,
= 11
4 x1 + 3 x2 + 10 x3
= 28
2 x1 + 4 x2 + 17 x3
= 31
Tahap I : Triangularisasi
= 6
= 20
= 11
= 11
x2 + 4 x3
= 6
2 x3
= 2
bi ai, j x j
j = i +1
;
xi =
ai , i
i = n 1, n 2,K,1
[x ]
x1
3
= x2 = 2
x3
1
C
C
C
C
C
C
C
C
DO i = 1,neq
WRITE(*,40) 'x(',i,') = ',x(i)
ENDDO
10
20
30
40
FORMAT
FORMAT
FORMAT
FORMAT
(3X,A,$)
(3X,A,I1,A1,I1,A,$)
(5X,A,I1,A,$)
(5X,A,I1,A,G12.7)
STOP
END
SUBROUTINE EGAUSS(n,A,x,b)
C --------------------------------------------------------------------------C
SUBPROGRAM 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
A = matriks bujur sangkar n x n yang berisi koefisien persamaan,
|
C
x = vektor variabel persamaan yang akan dicari harga-harganya
|
C
b = vektor ruas kanan yang berisi harga-harga persamaan tunggal
|
C --------------------------------------------------------------------------C
C
Deklarasi Variabel:
------------------INTEGER n
REAL*8 A(7,7),b(n),x(n)
INTEGER i,j,k
REAL*8 PIVOT,MULT,TOP
C
C
C
C
Deklarasi Variabel:
------------------INTEGER n
REAL*8 A(7,7),b(n),x(n)
INTEGER i,j,k
REAL*8 PIVOT,PIVMAX,MULT,TOP
INTEGER KPOS,ipos(7),itemp
C
C
C
C
C
C
C
DO j = 1,n-1
Mencari PIVOT terbesar:
----------------------PIVMAX = ABS(A(j,j))
KPOS = j
DO i = j+1,n
IF (ABS(A(i,j)) .GT. PIVMAX) THEN
PIVMAX = ABS(A(i,j))
KPOS = i
ENDIF
ENDDO
IF (KPOS .NE. j) THEN
itemp = ipos(j)
ipos(j) = ipos(KPOS)
ipos(KPOS) = itemp
ENDIF
Akhir pencarian PIVOT terbesar:
------------------------------write(*,*) 'i-pos = ',ipos(j)
PIVOT = A(ipos(j),j)
DO i = j+1,n
itemp = ipos(i)
MULT = A(itemp,j)/PIVOT
DO k = j+1,n
A(itemp,k) = A(itemp,k) - MULT*A(ipos(j),k)
ENDDO
b(itemp) = b(itemp) - MULT*b(ipos(j))
ENDDO
ENDDO
C
C
atau
A = LU
L = l i,1 l i ,2
l
l
i +1,1 i +1,2
M
M
l n,1 l n,2
L l i +1, i
M
L l n, i
L 0
L 0
M
L 0
L 0
O M
L 1
M
M
U = 0 0
0
0
M
M
0
0
L u1, i
u1, n 1
L L
u 2, n 1
M
ui , n 1
ui +1, n 1
O
L L
u1, n
u 2, n
M
ui , n
ui +1, n
u n, n
L = l i ,1 l i , 2
l i +1,1 l i +1, 2
M
M
l
n,1 l n, 2
L
L
0
0
M
L l i ,i
L l i +1,i
M
L l n,i
L l n,n
L
L
O
L
L
0
0
M
0
0
M
U = 0 0
0 0
M M
0 0
u1, n 1 u1, n
u 2, n 1 u2, n
M
M
ui , n 1 ui , n
ui +1, n 1 ui +1, n
M
M
L L
0
1
L u1, i
L L
O
O
an,1 L L an,n
M M
M
l
L
1
n
,
1
n
,
2
0
0
L
u
n ,n
an,1 L L an,n
l 1,1 0
l 2,1 O
M
l n,1 l n, 2
L 0
L 0
O M
L l n ,n
1 u1, 2
0 1
M
0 0
L u1,n
L a 2 ,n
O M
L 1
u1, i = a1, i ;
i = 1, K , n
Baris 2 (i = 2):
a2,1 = l2,1u1,1
a2,2 = l2,1u1,2 + u2,2
a2,3 = l2,1u1,3 + u2,3
M
M
a2,n = l2,1u1,n + u2,n
Baris 3 (i = 3):
a3,1 = l3,1u1,1
a3,2 = l3,1u1,2 + l32u2,2
a3,3 = l3,1u1,3 + l32u2,3 + u3,3
M
M
a3,n = l3,1u1,n + l32u2,n + u3,n
Baris n (i = n):
an,1
an,2
an,3
M
an,n-1
an,n
= ln,1u1,1
= ln,1u1,2 + ln,2u2,2
= ln,1u1,3 + ln,2u2,3 + ln,3u3,3
M
= ln,1u1,n-1 + ln,2u2,n-1 + ln,3u3,n-1 + + ln,n-1un-1,n-1
= ln,1u1,n + ln,2u2,n + ln,3u3,n + + + un,n
a2,1
u1,1
Pengisian matriks U:
u 2, 2 = a2, 2 l 2,1 u1, 2
u 2,3 = a2,3 l 2,1 u1,3
u 2, 4 = a2, 4 l 2,1 u1, 4
l 2,1 =
M
u 2, n = a2, n l 2, n u1, n
Baris 3:
Pengisian matriks L:
a3,1
u1,1
(a l 3,1 u1,2 )
l 3, 2 = 3, 2
u 2, 2
Pengisian matriks U:
u3,3 = a3,3 l 3,1 u1,3 l 3, 2 u2,3
u3, 4 = a3, 4 l 3,1 u1, 4 l 3, 2 u2, 4
l 3,1 =
M
u3, n = a3, n l 3,1 u1, n l 3, 2 u 2, n
Baris n:
Pengisian matriks L:
an ,1
u1,1
(a l n,1 u1,2 )
= n, 2
u 2, 2
(a l n,1 u1,3 l n,2 u2,3 )
= n ,3
u3,3
l n,1 =
l n, 2
l n ,3
M
l n, n 1 =
Pengisian matriks U:
C
C
CALL system('clear')
C
C
C
C
C
C
10
20
30
40
40
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
(3X,A,$)
(3X,A,I1,A1,I1,A,$)
(/,1X,A)
(3X,F10.4,$)
(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
C
Deklarasi Variabel:
------------------INTEGER n,i,j,k
REAL*8 A(7,7),LU(7,7),sum
C
C
C
C
C
C
C
C
M
M
M
M
M
M
C
C
C
C
C
C
C
C
FORMAT
FORMAT
FORMAT
FORMAT
FORMAT
(3X,A,$)
(3X,A,I1,A1,I1,A,$)
(/,1X,A)
(3X,F10.4,$)
(5X,1H|,5X,A,I1,A,G10.4)
STOP
END
INCLUDE 'decoLU.sub'
SUBROUTINE SOLVLU(n,LU,x,b)
C --------------------------------------------------------------------------C
SUBPROGRAM ELIMINASI GAUSS:
|
C
Merupakan solusi Sistem Persamaan Aljabar Linier (SPAL) dengan
|
C
teknik dekomposisi LU untuk format persamaan: [A].[x] = [b],
|
C
dengan rincian sbb
|
C
n = jumlah persamaan aljabar linier (dimensi SPAL)
|
C
LU = matriks bujur sangkar n x n yang berisi koefisien persamaan, |
C
x = vektor variabel persamaan yang akan dicari harga-harganya
|
C
b = vektor ruas kanan yang berisi harga-harga persamaan tunggal
|
C --------------------------------------------------------------------------C
C
Deklarasi Variabel:
------------------INTEGER n
REAL*8 LU(7,7),b(n),x(n)
INTEGER i,j
C
C
C
C
Tugas !
Ujilah program di atas untuk SPAL berikut:
2 1 3 x1 11
4 3 10 x2 = 28
2
4
17
x3 31
x3
a3 d3 c3
O
O
O
M
an 1 d n 1 cn 1 xn 1
an
d n xn
b1
b
2
b3
=
b
n 1
bn
atau
[A]
[x] = [b]
d1 x1 c1 x2
a x d x c x
2
1
2
2
2
3
a3 x1 d3 x2 c3 x3
O
O
O
an 1 x1 d n 1 x2 cn 1 x3
an x1 d n x2
b1
b
2
b3
=
b
n 1
bn
a2
d1
d 2' x2 + c2 x3 = b2'
dengan,
d 2' = d 2 m1 c1
b2' = b2 m1 b1'
(b). Dengan cara yang sama, jika d 2' 0 , x2 dapat dieliminasi
dari persamaan ketiga sehingga dihasilkan persamaan
ketiga yang baru, sebagai berikut:
d3' x3 + c3 x4 = b3'
dengan,
m2 =
a3
d 2'
dan
d3' = d3 m2 c2
Intellectual Property of DR. Ir. Setijo Bismo, DEA., TGP-FTUI
b3' = b3 m2 b2'
di' +1 xi +1 + ci +1 xi + 2
= bi' +1
dengan,
mi =
ai +1
d i'
dan
di' +1 = di +1 mi ci
bi' +1 = bi +1 mi bi'
bn'
d n'
xi =
bn' ci xi +1
di'
C
C
C
C
C
C
C
C
SUBROUTINE S3DIAG(n,a,d,c,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
a = vektor koefisien pada diagonal bawah dengan dimensi n-1,
|
C
d = vektor koefisien pada diagonal utama dengan dimensi n,
|
C
c = vektor koefisien pada 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
C
Deklarasi Variabel:
------------------INTEGER n
REAL*8 a(n),d(n),c(n),b(n),x(n)
INTEGER i
REAL*8 PIVOT,MULT
C
C
C
C
L. Daftar Pustaka
Atkinson, Kendal E., An Introduction to Numerical Analysis,
John Wiley & Sons, Toronto, 1978.
Atkinson, L.V., Harley, P.J., An Introduction to Numerical
Methods with Pascal, Addison-Wesley Publishing Co.,
Tokyo, 1983.
Bismo, Setijo, Kumpulan Bahan Kuliah Metode Numerik,
Jurusan TGP-FTUI, 1999.
Hanna, O.T., Sandall, O.C., Computational Methods in
Chemical Engineering, Prentice-Hall International Inc.,
Englewood Cliffs, New Jersey, 1995.
Press, W.H., Flannery, B.P., Teukolsky, S.A., dan Vetterling,
W.T., Numerical Recipes, Cambridge Univ. Press, 1986.