• Tidak ada hasil yang ditemukan

Sistem persamaan Aljabar Linear (Metode Gauss Jordan)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Sistem persamaan Aljabar Linear (Metode Gauss Jordan)"

Copied!
29
0
0

Teks penuh

(1)

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 Non-Linier (SPANL), solusi Persamaan Diferensial Biasa (PDB), solusi persamaan Diferensial Parsial (PDP), Regresi Linier dan Non-Linier, 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 materi-materi 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

(2)

bilangan kompleks (C, complex) yang daripadanya dapat dilakukan sembarang operasi aritmatika/aljabar secara linier, seperti: penambahan (adisi), pengurangan (substraksi), perkalian

(multiplikasi), pembagian (divisi), perpangkatan (eksponen), dsb.

Dalam prakteknya, besaran skalar dapat dibagi atas 2 bagian besar dalam domain bilangan, yaitu:

k = R, suatu skalar dalam bidang bilangan nyata, z = C, suatu skalar dalam bidang bilangan kompleks.

(b). Vektor atau ‘ruang vektor V’ adalah suatu set (sekumpulan) obyek berupa skalar (berdimensi satu) yang kepadanya dapat dilakukan operasi-operasi skalar spesifik berupa ‘penambahan vektor’ (vector addition) dan ‘perkalian skalar’ (scalar multiplication). Operasi-operasi tersebut harus memenuhi aturan-aturan baku, berupa: asosiatif, komutatif, dan distributif.

V = Rn, suatu set skalar dalam bidang bilangan nyata dengan jumlah anggota sebanyak n buah, atau

V =

   

 

   

 

n

v v v

M

2 1

, merupakan ‘vektor horizontal’, sedangkan

H =

[

h1 h2 L hn

]

, merupakan ‘vektor horisontal’,

ΖΖ = Cn, suatu set skalar dalam bidang bilangan kompleks dengan jumlah anggota sebanyak n buah.

(3)

A =

Dalam sistem linier, pada umumnya hanya digunakan matriks-matrik bujur-sangkar sehingga secara sederhana: order matriks identik dengan jumlah persamaan. Lambang matriks selalu dituliskan dalam huruf besar (capital), sedangkan elemen-elemennya 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 variabel-variabelnya berpangkat tunggal (linier) dengan notasi berikut:

sedemikian rupa sehingga persamaan di atas dapat dituliskan dalam notasi berikut:

(4)

Koefisien-koefisien xi,j, (x1,1 . . . xn,n) merupakan konstanta (diketahui), demikian juga bi (b1 . . . bn) yang dikenal sebagai vektor ruas

kanan (VRK).

Menurut konvensi : indeks pertama dari elemen ai,j menyatakan baris (= i) sedangkan indeks kedua menyatakan kolom (= j). Agar solusi SPAL di atas dapat diperoleh, maka persayaratan (teorema) berikut harus dipenuhi:

1. A x = b mempunyai jawab unik x ∈ V untuk setiap b ∈ V, 2. A x = b hanya mempunyai satu solusi x ∈ V untuk setiap b

∈ V,

3. Jika A x = 0, berarti x = 0,

4. A-1 atau inversi dari matriks A ada, 5. Determinan(A) ≠ 0,

6. Rank(A) = n, atau matriks A berorder n.

Seperti telah dijelaskan di atas, matriks A merupakan matriks bujur sangkar. Bila teorema di atas tak terpenuhi, maka akan terjadi kombinasi linier (akan mengakibatkan persamaan aljabar di atas bersifat SINGULAR).

Kombinasi Linier :

ð per baris, cukup hanya 2 baris yang menyebabkannya, ð per kolom, bila semua baris yang menyebabkanya.

B. Solusi SPAL secara numeris

(5)

ð ada beberapa persamaan yang mendekati kombinasi linier, akibat adanya “round off error” dari mesin penghitung pada suatu tahap perhitungan

ð adanya akumulasi “round off error” pada proses komputasi akan berakibat domain bilangan nyata (fixed point) dalam perhitungan akan terlampaui (overflow), biasanya akibat dari jumlah persamaan yang terlalu besar

Metode-metode solusi numerik yang banyak dipakai, dapat diklasifikasikan sebagai:

a. Metode Langsung

ð Eliminasi Gauss (EGAUSS), prinsipnya: merupakan operasi eliminasi dan substitusi variabel-variabelnya sedemikian rupa sehingga dapat terbentuk matriks segitiga atas, dan akhirnya solusinya diselesaikan menggunakan teknik substitusi balik (backsubstitution). Metode Eliminasi Gauss ini secara ringkas dibahas pada Paragraf C.

ð Eliminasi Gauss-Jordan (EGJ), prinsipnya: mirip sekali dengan metode EG, namun dalam metode ini jumlah operasi numerik yang dilakukan jauh lebih besar, karena matriks A

mengalami inversi terlebih dahulu untuk mendapatkan matriks identitas (I). Karena kendala tersebut, maka metode ini sangat jarang dipakai, namun sangat bermanfaat untuk menginversikan matriks. Metode ini tidak dibahas lebih lanjut dalam pelajaran ini.

(6)

ð Solusi sistem TRIDIAGONAL (S3DIAG), prinsipnya merupakan solusi SPAL dengan bentuk matrik pita (satu diagonal bawah, satu diagonal utama, dan satu diagonal atas) pada matriks A. Metode ini akan dibahas lebih lanjut pada Paragraf K.

b. Metode Tak-Langsung (Metode Iteratif)

ð Metode Jacobi, prinsipnya: merupakan metode iteratif yang melakuakn perbaharuan nilai x yang diperoleh tiap iterasi (mirip metode substitusi berurutan, successive substitution), ð Metode Gauss-Seidel, prinsipnya: mirip metode Jacobi,

namun melibatkan perhitungan implisit,

ð Metode Successive Over Relaxation (SOR), prinsipnya: merupakan perbaikan secara langsung dari Metode Gauss-Seidel 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 CPU-time) yang jauh lebih besar dari metode langsung. Metode ini dapat dilihat dan dipelajari pada buku-buku numerik yang ada di perpustakaan atau toko buku.

C. Algoritma Solusi SPAL dengan Metode Eliminasi Gauss

ð Langkah #1: Pilih harga a1(1,1) sedemikian rupa yang tidak berharga nol. Tentukan ‘pengali baris’ sebagai berikut:

) 1 (

1 , 1 ) 1 (

1 , 1

, a a

mi = i ; i = 2,3,…,n

Kemudian, konstanta-konstanta pengali baris (m) di atas digunakan untuk melakukan ‘eliminasi’ term-term x1 pada

(7)

)

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:

Proses eliminasi dilanjutkan untuk kolom-kolom 2, 3 sampai ke-n, 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 term-term x1,x2,K,xk−1 telah tereliminasi pada tahap sebelumnya,

sehingga matriks A(k) sekarang memiliki bentuk sebagai berikut:

(8)

Pilih harga a1(1,1) sedemikian rupa yang tidak berharga nol. Tentukan ‘pengali baris’ sebagai berikut:

)

Kemudian, gunakan konstanta-konstanta di atas untuk mengeliminasi term-term xk pada persamaan-persamaan k+1

sampai ke-n, seperti berikut:

)

Baris-baris terdahulu, dari 1 sampai k, tidak boleh diganggu, dan harga-harga nol dimasukkan pada kolom k di bawah diagonal.

Dengan mengikuti langkah-langkah seperti di atas, setelah langkah ke n-1 akan diperoleh suatu matriks dengan susunan seperti berikut:

Perhatikan, bahwa matriks A di atas sekarang telah berubah menjadi matriks segitiga atas (= matriks U), sehingga:

U·x = b(n)

(9)

yang disebut sebagai substitusi balik (back substitution), yang dimulai dengan:

) (

, )

( n

n n n n

n b a

x =

kemudian, diikuti dengan:

  

⋅ ∑

− =

+

= j

n

k j

k j k k

k k

k k

k b a x

a x

1 ) (

, )

( ) (

, 1

; k = n-1,n-2,…,1

D. Teknik Pivoting dalam Metode Eliminasi Gauss

Dalam beberapa kasus, terutama bila dijumpai matriks-matrik yang bersifat ‘singular’ karena adanya ‘kombinasi linier’, solusi secara langsung menggunakan algoritma metode eliminasi Gauss tidak memberikan hasil dan ketelitian yang baik, bahkan seringkali memberikan hasil yang meleset jauh dari yang diharapkan.

Untuk menghindari fenomena tersebut, diperlukan modifikasi dari algoritma eliminasi Gauss. Pada prinsipnya, modifikasi tersebut dilakukan dengan memperhatikan hal-hal berikut:

ð

Harga pivot diambil yang terbesar dari setiap baris dan kolom yang sesuai, yaitu komponen aii,

ð

Pemilihan pivot dilakukan berdasarkan ‘pembandingan harga terbesar (maksimum)’ dari setiap elemen ajiji,

(10)

E. Contoh Solusi SPAL dengan Eliminasi Gauss

Diberikan SPAL berikut:

31 17

4 2

28 10

3 4

11 3

2

3 2

1

3 2

1

3 2

1

= +

+

= +

+

= +

+

x x

x

x x

x

x x

x

Maka, solusinya adalah sebagai berikut:

Ü

Tahap I : Triangularisasi

ð

Eliminasi x1 dari persamaan kedua dan ketiga (dalam hal ini :

persamaan pertama disebut “persamaan pivotal”, sedangkan

koefisien pertama dari persamaan kedua disebut “pivot”)

ð

Persamaan pertama dikalikan dengan 2 untuk mengeliminasi

1

x pada persamaan kedua ; Persamaan pertama dikalikan

dengan 2 untuk mengeliminasi x1 pada persamaan ketiga :

20 14

3

6 4

11 3

2

3 2

3 2

3 2

1

= +

= +

= +

+

x x

x x

x x

x

ð

Eliminasi x2 dari persamaan ketiga (dalam hal ini : persamaan kedua menjadi “persamaan pivotal”, sedangkan koefisien x2 dari persamaan ketiga disebut

pivot”)

ð

Persamaan kedua dikalikan dengan 3 untuk

mengeliminasi x2 pada persamaan kedua :

2 2

6 4

11 3

2

3 3 2

3 2

1

= = +

= +

+

x x x

x x

x

(11)

ð

Dimulai dari baris ketiga (baris terakhir, baris ke n), langsung dapat dihitung bahwa : xn

=

bn an,n

ð

Baris lainnya, dimulai dari beris ke n-1 sampai baris pertama dihitung menggunakan algoritma :

i i n

i j

j j i i

i

a

x a b

x

, 1

,

  

∑ ⋅

= = + ; i = n−1,n−2,K,1

Ü

Perolehan : vektor jawab yang dihasilkan adalah

[ ]

  

 

  

  =   

 

  

  =

1 2 3

3 2 1

x x x x

(a). Listing Program Eliminasi Gauss (tanpa Pivoting)

C PROGRAM Solusi Sistem Persamaan Aljabar Linier (SPAL) atau C atau Persamaan Aljabar Linier Simultan

C Deklarasi Jenis dan Variabel: C --- IMPLICIT NONE

INTEGER iarg

PARAMETER (iarg = 7) INTEGER i,j,k,neq REAL*8 A(iarg,iarg) REAL*8 b(iarg),x(iarg) CALL system('clear')

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

DO i = 1,neq DO j = 1,neq

WRITE(*,20) 'A(',i,',',j,') : ' READ(*,*) A(i,j)

ENDDO

WRITE(*,30) 'b(',i,') : ' READ(*,*) b(i)

ENDDO

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

(12)

DO i = 1,neq

WRITE(*,40) 'x(',i,') = ',x(i) ENDDO

10 FORMAT (3X,A,$)

20 FORMAT (3X,A,I1,A1,I1,A,$) 30 FORMAT (5X,A,I1,A,$) 40 FORMAT (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 Deklarasi Variabel:

C --- INTEGER n

REAL*8 A(7,7),b(n),x(n) INTEGER i,j,k

REAL*8 PIVOT,MULT,TOP

C Proses solusi: (a) Substitusi dan Eliminasi C --- DO j = 1,n-1

PIVOT = A(j,j) DO i = j+1,n

MULT = A(i,j)/PIVOT DO k = j+1,n

A(i,k) = A(i,k) - MULT*A(j,k) ENDDO

b(i) = b(i) - MULT*b(j) ENDDO

ENDDO

C Proses solusi: (b) Substitusi Balik C --- x(n) = b(n)/A(n,n)

DO i = n-1,1,-1 TOP = b(i) DO k = i+1,n

TOP = TOP - A(i,k)*x(k) ENDDO

x(i) = TOP/A(i,i) ENDDO

RETURN END

(13)

(b). Listing Program Eliminasi Gauss (dengan Pivoting)

SUBROUTINE PGAUSS(n,A,x,b)

C --- C SUBPROGRAM ELIMINASI GAUSS dengan TEKNIK PIVOTING | C --- C Deklarasi Variabel:

C --- 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 Proses solusi: (a) Substitusi dan Eliminasi C --- DO i = 1,n

ipos(i) = i ENDDO

DO j = 1,n-1

C Mencari PIVOT terbesar: C --- 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

C Akhir pencarian PIVOT terbesar: C --- C 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 Proses solusi: (b) Substitusi Balik C --- x(n) = b(ipos(n))/A(ipos(n),n) DO i = n-1,1,-1

itemp = ipos(i) TOP = b(itemp) DO k = i+1,n

TOP = TOP - A(itemp,k)*x(k) ENDDO

x(i) = TOP/A(itemp,i) ENDDO

(14)

F. Prinsip Dekomposisi LU dan Matriks 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 = L·U

F1. Notasi Matriks LU berdasarkan Metode Doolittle

Notasi matriks L seperti di atas dituliskan sbb:

L =

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

Notasi matriks U dituliskan sbb:

(15)

Perhatikan, bahwa semua elemen yang terletak di bawah

diagonal dari matriks U di atas (= u1,1un,n) berharga 0 (nol) !

F2. Notasi Matriks LU berdasarkan Metode Crout

Notasi matriks L seperti di atas dituliskan sbb:

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:

(16)

F3. 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]

Sehingga, dalam notasi Metode Doolittle dapat dituliskan:

Sedangkan, dalam notasi Metode Crout dapat dituliskan:

G. Deskripsi Tahapan dan Strategi Dekomposisi

(17)

Baris 2 (i = 2):

a2,1 = l2,1·u1,1

a2,2 = l2,1·u1,2 + u2,2 a2,3 = l2,1·u1,3 + u2,3 M M

a2,n = l2,1·u1,n + u2,n

Baris 3 (i = 3):

a3,1 = l3,1·u1,1

a3,2 = l3,1·u1,2 + l32·u2,2

a3,3 = l3,1·u1,3 + l32·u2,3 + u3,3

M M

a3,n = l3,1·u1,n + l32·u2,n + u3,n

Baris n (i =n):

an,1 = ln,1·u1,1

an,2 = ln,1·u1,2 + ln,2·u2,2

an,3 = ln,1·u1,3 + ln,2·u2,3 + ln,3·u3,3

M M

an,n-1 = ln,1·u1,n-1 + ln,2·u2,n-1 + ln,3·u3,n-1 + … + ln,n-1·un-1,n-1 an,n = ln,1·u1,n + ln,2·u2,n + ln,3·u3,n + … + … + un,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).

(18)

(3). Harga-harga elemen pada kolom 1 untuk matriks L, dapat dihitung menggunakan persamaan berikut:

li,1 = ai,1 / u1,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.

Tugas/Latihan:

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

H. Algoritma Dekomposisi dan Komputasi Praktis

(a). Algoritma solusi numerik dengan Metode Doolittle:

Baris 1:

n i

a

u1,i = 1,i; =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 a u

u = −l ⋅

3 , 1 1 , 2 3 , 2 3

,

2 a u

u = −l ⋅

4 , 1 1 , 2 4 , 2 4

,

2 a u

u = −l ⋅

M

n n n

n a u

(19)

Baris 3:

(b). Algoritma solusi numerik dengan Metode Crout:

(20)

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

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 DO j = 1,neq

WRITE(*,20) 'A(',i,',',j,') : ' READ(*,*) A(i,j)

ENDDO ENDDO

C Proses Pemanggilan Subprogram Eliminasi Gauss: 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,i,j,k

(21)

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

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

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

I. 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].

(22)

Bentuk umum SPAL yang menggunakan matriks [A] yang identik, seperti disebutkan di atas, dapat dituliskan sbb:

[A] ·

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!

J. 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 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: C --- CALL DECOLU(neq,LU)

CALL SOLVLU(neq,LU,x,b)

(23)

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'

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 Deklarasi Variabel: C --- INTEGER n

REAL*8 LU(7,7),b(n),x(n) INTEGER i,j

C Proses solusi: (a) Substitusi dan Eliminasi C --- DO i = 2,n

DO j = 1,i-1

b(i) = b(i) - LU(i,j)*b(j) ENDDO

ENDDO

C Proses solusi: (b) Substitusi Balik C --- x(n) = b(n)/LU(n,n)

DO i = n-1,1,-1 DO j = i+1,n

b(i) = b(i) - LU(i,j)*x(j) ENDDO

x(i) = b(i)/LU(i,i) ENDDO

(24)

Tugas !

Ujilah program di atas untuk SPAL berikut:

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

K. Solusi Numerik SPAL dengan Matriks Tri-Diagonal

Solusi SPAL yang berbentuk matriks tri-diagonal seringkali dijumpai pada problem-problem yang berbentuk PDP (persamaan diferensial parsial) yang dominan secara diagonal (definit positif).

K1. Bentuk umum Matrik Tri-Diagonal

Secara spesifik, bentuk SPAL yang memiliki matriks tri-diagonal dapat disajikan sebagai berikut:

(25)

K2. Teorema Solusi matriks Tri-Diagonal

Jika matriks bujur-sangkar [A] di atas merupakan matriks yang dominan secara diagonal (atau definit :positif) dan membentuk matriks tri-diagonal, maka [A] memiliki suatu mentuk faktorisasi LU yang unik, dalam hal ini baik L maupun U hanya memiliki dua-diagonal: L adalah matriks bawah dengan struktur diagonal utama (dituliskan dalam lambang [dl]) dan diagonal bawah (dituliskan

dalam lambang [al]); sedangkan matriks U adalah matriks atas yang

berisi diagonal utama [du] dan diagonal atas [cu].

Langkah solusi yang digunakan adalah analogi dengan metode ELIMINASI GAUSS. Dalam hal ini jika penulisan SPAL di atas disusunulang menjadi:

Dapat dilihat dengan jelas, selain ketiga diagonal di atas matriks [A] hanya diisi oleh elemen 0 (nol), yang berarti bahwa matriks [A] di atas, tidak perlu disimpan dalam suatu variabel berbentuk matriks, melainkan cukup hanya dalam 3 buah ventor dengan panjang masing-masing (maksimum) sebesar n elemen.

(26)

penghematan usaha dan daya komputasi numerik” yang relatif sangat besar, bila dibandingkan dengan penghitungan melalui matriks penuh.

Selanjutnya, langkah algoritma penyelesaiannya adalah sebagai berikut:

(a). Jika d1 ≠ 0, maka x1 dapat dieliminasi dari persamaan kedua

dengan menghitung “faktor pengali” berikut:

1 2 1

d a m =

dan dihasilkan persamaan baru sebagai berikut:

' 2 3

2 2

'

2 x c x b

d + =

dengan,

1 1 2 '

2 d m c

d = −

' 1 1 2 '

2 b m b

b = −

(b). Dengan cara yang sama, jika d2' ≠ 0, x2 dapat dieliminasi dari persamaan ketiga sehingga dihasilkan persamaan ketiga yang baru, sebagai berikut:

' 3 4

3 3

'

3 x c x b

d + =

dengan,

' 2 3 2

d a m =

dan

2 2 3

'

3 d m c

(27)

' 2 2 3

'

3 b m b

b = −

(c). Teruskan cara perhitungan di atas, sehingga dapat disimpulkan pada tahap-i, xi dapat dieliminasi dari persamaan i+1 (dengan asumsi di' ≠ 0) dan memberikan persamaan baru berikut:

' 1 2

1 1

'

1 + + + +

+ i + i i = i

i x c x b

d

dengan,

' 1

i i i

d a m = +

dan

i i i

i d m c

d'+1 = +1

' 1

'

1 i i i

i b m b

b+ = +

(d). Sekuens-sekuens dalam butir (c) di atas sebenarnya merupakan sesuatu yang beraturan, yaitu keberulangan dari i = 1, 2, … , n-1, sehingga sistem awalnya tertransformasi menjadi “matriks segitiga atas”

(e). Sebagai solusi akhirnya, yaitu “substitusi balik” yang juga mirip dengan “metode eliminasi Gauss”, yaitu dengan menganggap bahwa dn' ≠ 0, akan diperoleh:

' '

n n n

d b x =

(28)

' 1 '

i i i n i

d x c b

x = − +

Listing Program Matriks Tri-Diagonal:

C PROGRAM Solusi Sistem Persamaan Aljabar Linier (SPAL) atau C atau Persamaan Aljabar Linier Simultan dengan TEKNIK TRIDIAGONAL C Deklarasi Jenis dan Variabel:

C --- IMPLICIT NONE

INTEGER iarg

PARAMETER (iarg = 7) INTEGER i,neq

REAL*8 a(iarg),b(iarg),c(iarg),d(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),c(1),b(1)

DO i = 2,neq-1

READ(10,*) a(i),d(i),c(i),b(i) ENDDO

READ(10,*) a(neq),d(neq),b(neq)

C Proses Pemanggilan Subprogram Eliminasi Gauss-Jordan: C --- CALL S3DIAG(neq,a,d,c,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

SUBROUTINE S3DIAG(n,a,d,c,x,b)

(29)

C Deklarasi Variabel: C --- INTEGER n

REAL*8 a(n),d(n),c(n),b(n),x(n) INTEGER i

REAL*8 PIVOT,MULT

C Proses solusi: (a) Substitusi dan Eliminasi C --- DO i = 1,n-1

PIVOT = d(i)

MULT = a(i+1)/PIVOT a(i+1) = MULT

d(i+1) = d(i+1) - MULT*c(i) b(i+1) = b(i+1) - MULT*b(i) ENDDO

C Proses solusi: (b) Substitusi Balik C --- x(n) = b(n)/d(n)

DO i = n-1,1,-1

x(i) = (b(i) - c(i)*x(i+1))/d(i) ENDDO

RETURN END

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,

Referensi

Dokumen terkait

keadaan kesehatan hewan dalam waktu yang bersamaan dan dirancang untuk mengetahui keberadaan antibodi Brucellosis pada sampel serum sapi di Kabupaten Pinrang dan

Puji syukur kehadirat Allah SWT atas segala rahmat dan limpahan hidayah- Nya, penulis dapat menyelesaikan skripsi yang berjudul “Analisis Pengaruh Produk Wisata, Citra Destinasi

Uji disolusi invitro dilakukan untuk mengetahui profil disolusi zat aktif dari sediaan tablet sustained release natrium diklofenak yang dibuat dengan metode

Evaluasi tablet vitamin C sebelum penyimpanan pada puskesmas Kampung Bali, Alianyang dan Pal Tiga menunjukkan tablet vitamin C tidak memiliki kualitas yang baik

• Bagian potong bertanggung jawab memotong secara teliti agar bahan yang digunakan tidak banyak yang terbuang.. • Bagian finishing bertanggung jawab teliti dalam

Pengisian item dalam Risalah Pembahasan, Berita Acara Pembahasan Akhir Hasil Pemeriksaan, dan Ikhtisar Hasil Pembahasan Akhir telah sesuai dengan data Wajib Pajak atau

Dari uraian diatas, maka faktor inilah yang telah melatarbelakangi penulis untuk mengangkatnya menjadi topik pembahasan dalam penulisan skripsi dengan judul “PENEGAKAN

Setelah melihat sistem kerja di lapangan menunjukkan bahwa, untuk mengejar omset perusahaan dan memuaskan konsumen, karyawan sering kerja lembur 3 s.d 4 jam sehari tanpa