sistem persamaan linear dan eliminasi gauss

advertisement
SISTEM PERSAMAAN LINEAR DAN
ELIMINASI GAUSS
Dr. Eng. Supriyanto, M.Sc
Lab. Komputer, Departemen Fisika, Universitas Indonesia
email: [email protected] atau [email protected]
5 Februari 2005
Abstract
Secara umum, catatan ini bermaksud menjelaskan tentang cara penyelesaian problem sistem persamaan linear dengan metode eliminasi gauss. Tapi intinya, catatan
ini mengulas konsep dasar metode eliminasi gauss dan algoritmanya serta dilengkapi
dengan scriptnya dalam Fortran.
1 Penyederhanaan
Secara umum, sistem persamaan linear dinyatakan sebagai berikut
Pn :
an1 x1 + an2 x2 + ... + ann xn = bn
(1)
dimana a dan b merupakan konstanta, x adalah variable, n = 1, 2, 3, ....
Contoh pertama
Misalnya ada sistem persamaan linear yang terdiri dari empat buah persamaan yaitu
P1 , P2 , P3 , dan P4 seperti berikut ini:
P1 :
x1
+
x2
+
3x4
=
4
P2 :
2x1
+
x2
−
x3
+
x4
=
1
P3 :
3x1
−
x2
−
x3
+
2x4
=
-3
P4 :
−x1
+
2x2
+
3x3
−
x4
=
4
1
Problem dari sistem persamaan linear adalah bagaimana mencari nilai pengganti bagi
variabel x1 , x2 , x3 , dan x4 sehingga semua persamaan diatas menjadi benar. Langkah awal
penyelesaian problem tersebut adalah dengan melakukan penyederhanaan sistem persamaan linear. Ada banyak jalan untuk mendapatkan bentuk yang lebih sederhana, namun
masalahnya, kita ingin mendapatkan sebuah algoritma program yang nantinya bisa berjalan di komputer, sedemikian rupa sehingga apapun persamaannya, bisa disederhanakan
oleh komputer. Kita akan berpatokan pada tiga buah aturan operasi untuk menyederhanakan sistem persamaan linear di atas, yaitu
• Persamaan Pi dapat dikalikan dengan sembarang konstanta λ, lalu hasilnya ditempatkan di posisi persamaan Pi . Simbol operasi ini adalah (λPi) → (Pi ).
• Persamaan Pj dapat dikalikan dengan sembarang konstanta λ kemudian dijumlahkan dengan persamaan Pi , lalu hasilnya ditempatkan di posisi persamaan P i .
Simbol operasi ini adalah (Pi + λPj ) → (Pi ).
• Persamaan Pi dan Pj dapat bertukar posisi. Simbol operasi ini adalah (P i ) ↔ (Pj ).
Maka dengan berpegang pada aturan-aturan tersebut, problem sistem persamaan linear di
atas akan diselesaikan dengan langkah-langkah berikut ini:
1. Gunakan persamaan P1 untuk menghilangkan variabel x1 dari persamaan P2 , P3
dan P4 dengan cara (P2 − 2P1 ) → (P2 ), (P3 − 3P1 ) → (P3 ) dan (P4 + P1 ) → (P4 ).
Hasilnya akan seperti ini
P1 :
x1 + x2 + 3x4 = 4,
P2 :
−x2 − x3 − 5x4 = −7,
P3 :
P4 :
−4x2 − x3 − 7x4 = −15,
3x2 + 3x3 + 2x4 = 8
2. Gunakan persamaan P2 untuk menghilangkan variabel x2 dari persamaan P3 dan
P4 dengan cara (P3 − 4P2 ) → (P3 ) dan (P4 + 3P2 ) → (P4 ). Hasilnya akan seperti
ini
P1 :
x1 + x2 + 3x4 = 4,
P2 :
−x2 − x3 − 5x4 = −7,
P3 :
3x3 + 13x4 = 13,
P4 :
−13x4 = −13
2
Kalau x3 masih ada di persamaan P4 , dibutuhkan satu operasi lagi untuk menghilangkannya. Namun hasil operasi pada langkah ke-2 ternyata sudah otomatis menghilangkan x3 . Bentuk akhir dari keempat persamaan di atas, dikenal sebagai bentuk
triangular.
Sampai dengan langkah ke-2 ini, kita berhasil mendapatkan sistem persamaan linear yang lebih sederhana. Apa yang dimaksud dengan sederhana dalam konteks ini?
Suatu sistem persamaan linear dikatakan sederhana bila kita bisa mendapatkan seluruh nilai pengganti variabelnya dengan cara yang lebih mudah atau dengan usaha
yang tidak memakan waktu lama dibandingkan sebelum disederhanakan. Sekali
kita mendapatkan nilai pengganti bagi variabel x 4 , maka x3 , x2 dan x1 akan diperoleh dengan mudah dan cepat, sebagaimana yang dijelaskan pada langkah berikutnya.
3. Selanjutnya kita jalankan proses backward-substitution. Melalui proses ini, yang
pertama kali didapat adalah nilai pengganti bagi variabel x 4 , kemudian x3 , lalu
diikuti x2 , dan akhirnya x1 .
P2 :
−13
= 1,
−13
1
1
(13 − 13) = 0,
x3 = (13 − 13x4 ) =
3
3
x2 = −(−7 + 5x4 + x3 ) = −(−7 + 5 + 0) = 2,
P1 :
x1 = 4 − 3x4 − x2 = 4 − 3 − 2 = −1
P4 :
P3 :
x4 =
Jadi solusinya adalah x1 = −1, x2 = 2, x3 = 0 dan x4 = 1. Coba sekarang anda
cek, apakah semua solusi ini cocok dan tepat bila dimasukan ke sistem persamaan
linear yang pertama, yaitu yang belum disederhanakan?
OK, mudah-mudahan ngerti ya... Kalau belum paham, coba diulangi bacanya sekali
lagi. Atau, sekarang kita beralih kecontoh yang lain.
3
Contoh kedua
Misalnya ada sistem persamaan linear, terdiri dari empat buah persamaan yaitu P 1 ,
P2 , P3 , dan P4 seperti berikut ini:
P1 :
x1
−
x2
+
2x3
−
x4
=
-8
P2 :
2x1
− 2x2
+
3x3
− 3x4
=
-20
P3 :
x1
+
x2
+
x3
=
-2
P4 :
x1
−
x2
+
4x3
=
4
+
3x4
Seperti contoh pertama, solusi sistem persamaan linear di atas akan dicari dengan
langkah-langkah berikut ini:
1. Gunakan persamaan P1 untuk menghilangkan x1 dari persamaan P2 , P3 dan P4 dengan cara (P2 − 2P1 ) → (P2 ), (P3 − P1 ) → (P3 ) dan (P4 − P1 ) → (P4 ). Hasilnya
akan seperti ini
P1 :
x1 − x2 + 2x3 − x4 = −8,
P2 :
−x3 − x4 = −4,
P3 :
2x2 − x3 + x4 = 6,
P4 :
2x3 + 4x4 = 12
Perhatikan persamaan P2 ! Akibat dari langkah yang pertama tadi, x2 hilang dari
persamaan P2 . Kondisi ini bisa menggagalkan proses triangularisasi. Untuk itu,
posisi P2 mesti ditukar dengan persamaan yang berada dibawahnya, yaitu P 3 atau
P4 . Supaya proses triangularisasi dilanjutkan kembali, maka yang paling cocok
adalah ditukar dengan P3 .
2. Tukar posisi persamaan P2 dengan persamaan P3 , (P2 ↔ P3 ). Hasilnya akan
seperti ini
P1 :
P2 :
x1 − x2 + 2x3 − x4 = −8,
2x2 − x3 + x4 = 6,
P3 :
−x3 − x4 = −4,
P4 :
2x3 + 4x4 = 12
4
3. Gunakan persamaan P3 untuk menghilangkan x3 dari persamaan P4 dengan cara
(P4 − 2P3 ) → (P4 ). Hasilnya akan seperti ini
P1 :
P2 :
x1 − x2 + 2x3 − x4 = −8,
2x2 − x3 + x4 = 6,
P3 :
−x3 − x4 = −4,
P4 :
2x4 = 4
Sampai disini proses triangularisasi telah selesai.
4. Selanjutnya adalah proses backward-substitution. Melalui proses ini, yang pertama
kali didapat solusinya adalah x4 , kemudian x3 , lalu diikuti x2 , dan akhirnya x1 .
P4 :
P3 :
P2 :
P1 :
4
2
−4 + x4
x3 =
−1
6 + x3 − x4
x2 =
2
x1 = −8 + x2 − 2x3 + x4
x4 =
= 2,
= 2,
= 3,
= −7
Jadi solusinya adalah x1 = −7, x2 = 3, x3 = 2 dan x4 = 2.
Berdasarkan kedua contoh di atas, untuk mendapatkan solusi sistem persamaan linear,
diperlukan operasi triangularisasi dan proses backward-substitution. Kata backwardsubstitution kalau diterjemahkan kedalam bahasa indonesia, menjadi substitusi-mundur.
Gabungan proses triangularisasi dan substitusi-mundur untuk menyelesaikan sistem persamaan linear dikenal sebagai metode eliminasi gauss.
2 Matrik dan Eliminasi Gauss
Sejumlah matrik bisa digunakan untuk menyatakan suatu sistem persamaan linear.
Sejenak, mari kita kembali lagi melihat sistem persamaan linear secara umum seperti
5
berikut ini:
a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2
............... = ...
............... = ...
an1 x1 + an2 x2 + . . . + ann xn = bn
Sementara, kalau dinyatakan dalam bentuk operasi matrik, maka akan seperti ini:
⎤⎡
⎤ ⎡
⎤
⎡
x1
b1
a11 a12 . . . a1n
⎥⎢
⎥ ⎢
⎥
⎢
⎢ a21 a22 . . . a2n ⎥ ⎢ x2 ⎥ ⎢ b2 ⎥
⎥⎢
⎥ ⎢
⎥
⎢
⎢ . ⎥=⎢ . ⎥
⎢ .
.. ⎥
..
.
.
⎢
⎢
⎥
⎥
⎢ ..
. ⎦⎣ . ⎦ ⎣ . ⎥
.
⎦
⎣
an1 an2 . . . ann
xn
bn
(2)
Dalam mencari solusi suatu sistem persamaan linear dengan metode eliminasi gauss,
bentuk operasi matrik di atas dimanipulasi menjadi matrik augment, yaitu suatu matrik
yang berukuran n x (n + 1) seperti berikut ini:
⎡
⎤ ⎡
a
. . . a1n
a11 a12 . . . a1n | b1
a
⎢
⎥ ⎢ 11 12
⎢ a21 a22 . . . a2n | b2 ⎥ ⎢ a21 a22 . . . a2n
⎢
⎥ ⎢
=⎢
⎢ .
.. ⎥
..
..
..
..
⎢ ..
⎥ ⎢ ...
.
.
|
.
.
.
⎣
⎦ ⎣
an1 an2 . . . ann | bn
an1 an2 . . . ann
| a1,n+1
| a2,n+1
..
.
|
| an,n+1
⎤
⎥
⎥
⎥
⎥
⎥
⎦
(3)
Berdasarkan contoh pertama yang ada dihalaman depan catatan ini, saya akan tunjukkan proses triangularisasi dan substitusi-mundur dalam operasi matrik terhadap sistem
persamaan linear yang terdiri dari empat persamaan matematika, yaitu (silakan lihat kembali contoh pertama):
⎡
1
1
0
3
⎢
⎢ 2
1 −1 1
⎢
⎢ 3 −1 −1 2
⎣
−1 2
3 −1
⎤⎡
x1
⎤
⎡
4
⎤
⎥ ⎢
⎥
⎥⎢
⎥ ⎢ x2 ⎥ ⎢ 1 ⎥
⎥ ⎢
⎥
⎥⎢
⎥ ⎢ x ⎥ = ⎢ −3 ⎥
⎦
⎦⎣ 3 ⎦ ⎣
x4
4
Lalu kita dapat membuat matrik augment sebagai berikut:
⎡
⎤
1
1
0
3 | 4
⎢
⎥
⎢ 2
⎥
1
−1
1
|
1
⎢
⎥
⎢ 3 −1 −1 2 | −3 ⎥
⎣
⎦
−1 2
3 −1 | 4
6
Kemudian kita lakukan operasi triangularisai terhadap matrik augment, dimulai dari kolom
pertama, yaitu
⎡
1
1
0
3
|
4
3
|
4
−5
|
⎤
⎢
⎥
⎢ 0 −1 −1 −5 | −7 ⎥
⎢
⎥
⎢ 0 −4 −1 −7 | −15 ⎥
⎣
⎦
0 3
3
2 | 8
lalu dilanjutkan ke kolom berikutnya
⎡
1 1
0
⎢
⎢ 0 −1 −1
⎢
⎢
3
⎣ 0 0
0
0
0
⎤
⎥
−7 ⎥
⎥
⎥
13 | 13 ⎦
−13 | −13
Sebelum dilanjutkan ke substitusi-mundur, saya ingin menegaskan peranan angka-angka
indeks dari masing-masing elemen matrik augment tersebut. Silakan perhatikan posisi
masing-masing elemen berikut ini:
⎡
1 1
0
3 | 4
⎢
⎢ 0 −1 −1 −5 | −7
⎢
⎢
3
13 | 13
⎣ 0 0
0
0
0
⎤
⎡
a11 a12 a13 a14 | a15
⎢
⎥
⎢
⎥
⎥ → ⎢ a21 a22 a23 a24 | a25
⎢
⎥
⎣ a31 a32 a33 a34 | a35
⎦
a41 a42 a43 a44 | a45
−13 | −13
⎤
⎥
⎥
⎥
⎥
⎦
Dengan memperhatikan angka-angka indeks pada matrik augment di atas, kita akan mencoba membuat rumusan proses substitusi-mundur untuk mendapatkan seluruh nilai pengganti variabel x. Dimulai dari x4 ,
x4 =
a45
−13
=1
=
a44
−13
ini dapat dinyatakan dalam rumus umum, yaitu
xn =
an,n+1
ann
lalu dilanjutkan dengan x3 , x2 , dan x1 .
a35 − a34 x4
13 − [(13)(1)]
=0
=
a33
3
a25 − (a23 x3 + a24 x4 )
(−7) − [(−1)(0) + (−5)(1)]
=2
x2 =
=
a22
(−1)
a15 − (a12 x2 + a13 x3 + a14 x4 )
4 − [(1)(2) + (0)(0) + (3)(1)]
x1 =
=
= −1
a11
1
x3 =
7
ini juga dapat dinyatakan dalam rumus umum yaitu:
ai,n+1 − nj=i+1 aij xj
xi =
aii
Proses triangularisasi dan substitusi-mundur dibakukan menjadi algoritma metode
eliminasi gauss yang dapat diterapkan dalam berbagai bahasa pemrograman komputer,
misalnya fortran, C, java, pascal, matlab, dan lain-lain.
3 Algoritma eliminasi Gauss
Secara umum, sistem persamaan linear adalah sebagai berikut:
a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2
.
..
..
.
= ..
.
an1 x1 + an2 x2 + . . . + ann xn = bn
Algoritma dasar metode eliminasi gauss, adalah sebagai berikut:
1. Ubahlah sistem persamaan linear tersebut menjadi matrik augment, yaitu suatu
matrik yang berukuran n x (n + 1) seperti berikut ini:
⎤ ⎡
⎡
a
. . . a1n | b1
a
. . . a1n
a
a
⎥ ⎢ 11 12
⎢ 11 12
⎢ a21 a22 . . . a2n | b2 ⎥ ⎢ a21 a22 . . . a2n
⎥ ⎢
⎢
⎥=⎢
⎢ .
.
.
..
.
..
.. | .. ⎥ ⎢ ...
..
⎢ ..
.
.
⎦ ⎣
⎣
an1 an2 . . . ann | bn
an1 an2 . . . ann
| a1,n+1
| a2,n+1
..
.
|
| an,n+1
⎤
⎥
⎥
⎥
⎥
⎥
⎦
(4)
Jelas terlihat bahwa elemen-elemen yang menempati kolom terakhir matrik augment adalah nilai dari bi ; yaitu ai,n+1 = bi dimana i = 1, 2, ..., n.
2. Periksalah elemen-elemen pivot. Apakah ada yang bernilai nol? Elemen-elemen
pivot adalah elemen-elemen yang menempati diagonal suatu matrik, yaitu a 11 , a22 ,
..., ann atau disingkat aii . Jika aii = 0, bisa dilanjutkan ke langkah no.3. Namun,
jika ada elemen diagonal yang bernilai nol, aii = 0, maka baris dimana elemen itu
berada harus ditukar posisinya dengan baris yang ada dibawahnya, (P i ) ↔ (Pj )
dimana j = i + 1, i + 2, ..., n, sampai elemen diagonal matrik menjadi tidak nol,
8
aii = 0. (Kalau kurang jelas, silakan lihat lagi contoh kedua yang ada dihalaman 3. Sebaiknya, walaupun elemen diagonalnya tidak nol, namun mendekati nol
(misalnya 0,03), maka proses pertukaran ini dilakukan juga).
3. Proses triangularisasi. Lakukanlah operasi berikut:
Pj −
dimana j = i + 1, i + 2, ..., n.
⎡
a11 a12
⎢
⎢ 0 a22
⎢
⎢
0
⎢ 0
⎢ .
..
⎢ ..
.
⎣
0
0
aji
Pi → Pj
aii
Maka matrik augment akan menjadi:
⎤
a13 . . . a1n | a1,n+1
⎥
a23 . . . a2n | a2,n+1 ⎥
⎥
⎥
a33 . . . a3n | a3,n+1 ⎥
⎥
..
..
.. . .
⎥
.
.
. |
.
⎦
0
0 ann | an,n+1
(5)
(6)
4. Hitunglah nilai xn dengan cara:
xn =
an,n+1
ann
(7)
5. Lakukanlah proses substitusi-mundur untuk memperoleh x n−1 , xn−2 , ..., x2 , x1 dengan cara:
xi =
ai,n+1 −
n
j=i+1 aij xj
aii
(8)
dimana i = n − 1, n − 2, ..., 2, 1.
Demikianlan algoritma dasar metode eliminasi gauss. Selanjutnya algoritma dasar tersebut perlu dirinci lagi sebelum dapat diterjemahkan kedalam bahasa pemrograman komputer.
3.1 Algoritma
Algoritma metode eliminasi gauss untuk menyelesaikan n x n sistem persamaan linear.
P1 :
a11 x1 + a12 x2 + . . . + a1n xn = b1
P2 :
..
.
a21 x1 + a22 x2 + . . . + a2n xn = b2
..
..
.
.
.
= ..
Pn :
an1 x1 + an2 x2 + . . . + ann xn = bn
9
INPUT: sejumlah persamaan linear dimana konstanta-konstanta-nya menjadi elemen-elemen
matrik augment A = (aij ), dengan 1 ≤ i ≤ n dan 1 ≤ j ≤ n + 1.
OUTPUT: solusi x1 , x2 , x3 , ..., xn atau pesan kesalahan yang mengatakan bahwa sistem
persamaan linear tidak memiliki solusi yang unik.
• Langkah 1: Inputkan konstanta-konstanta dari sistem persamaan linear kedalam
elemen-elemen matrik augment, yaitu suatu matrik yang berukuran n x (n + 1)
seperti berikut ini:
⎡
a
a
. . . a1n
⎢ 11 12
⎢ a
⎢ 21 a22 . . . a2n
⎢ .
..
..
⎢ ..
.
.
⎣
an1 an2 . . . ann
| b1
| b2
.
| ..
| bn
⎡
⎤
⎥ ⎢
⎥ ⎢
⎥ ⎢
⎥=⎢
⎥ ⎢
⎦ ⎣
a11 a12 . . . a1n | a1,n+1
a21 a22 . . . a2n | a2,n+1
..
..
..
..
.
.
. |
.
an1 an2 . . . ann | an,n+1
⎤
⎥
⎥
⎥
⎥
⎥
⎦
(9)
• Langkah 2: Untuk i = 1, ..., n − 1, lakukan Langkah 3 sampai Langkah 5.
• Langkah 3: Definisikan p sebagai integer dimana i ≤ p ≤ n. Lalu pastikan
bahwa api = 0. Jika ada elemen diagonal yang bernilai nol (aii = 0), maka
program harus mencari dan memeriksa elemen-elemen yang tidak bernilai nol
dalam kolom yang sama dengan kolom tempat elemen diagonal tersebut berada. Jadi saat proses ini berlangsung, integer i (indeks dari kolom) dibuat
konstan, sementara integer p (indeks dari baris) bergerak dari p = i sampai
p = n. Bila ternyata setelah mencapai elemen paling bawah dalam kolom
tersebut, yaitu saat p = n tetap didapat nilai a pi = 0, maka sebuah pesan
dimunculkan: sistem persamaan linear tidak memiliki solusi yang unik. Lalu
program berakhir: STOP.
• Langkah 4: Namun jika sebelum integer p mencapai nilai p = n sudah diperoleh elemen yang tidak nol (api = 0), maka bisa dipastikan p = i. Jika p = i
maka lakukan proses pertukaran (Pp ) ↔ (Pi ).
• Langkah 5: Untuk j = i + 1, .., n, lakukan Langkah 6 dan Langkah 7.
• Langkah 6: Tentukan mji ,
mji =
10
aji
aii
• Langkah 7: Lakukan proses triangularisasi,
(Pj − mji Pi ) → (Pj )
• Langkah 8: Setelah proses triangularisasi dilalui, periksalah ann . Jika ann = 0,
kirimkan pesan: sistem persamaan linear tidak memiliki solusi yang unik. Lalu
program berakhir: STOP.
• Langkah 9: Jika ann = 0, lakukan proses substitusi mundur, dimulai dengan
menentukan xn ,
xn =
an,n+1
ann
• Langkah 10: Untuk i = n − 1, ..., 1 tentukan xi ,
ai,n+1 − nj=i+1 aij xj
xi =
aii
• Langkah 11: Diperoleh solusi yaitu x1 , x2 , ..., xn . Algoritma telah dijalankan dengan sukses. STOP.
Saya telah membuat program sederhana dalam fortran untuk mewujudkan algoritma
eliminasi gauss. Saya berasumsi bahwa anda sudah menguasai dasar-dasar pemrograman dalam fortran. Program ini sudah dicoba di-compile dengan fortran77 under Linux
Debian dan visual-fortran under windows-XP.
Langkah-langkah yang tercantum pada program ini disesuaikan dengan langkah-langkah
yang tertulis di atas. Dalam program ini, ukuran maksimum matrik augment adalah 10 x
11, untuk mencari 10 variabel yang tidak diketahui. Jika anda bermaksud memperbesar
atau memperkecil ukuran matrik augment, silakan sesuaikan angka ukuran matrik yang
anda inginkan pada statemen pertama dari program ini, yaitu statemen DIMENSION.
Inilah programnya,
DIMENSION A(10,11), X(10)
REAL MJI
WRITE (*,*) ’=PROGRAM ELIMINASI GAUSS=’
WRITE (*,*)
C
LANGKAH 1: MEMASUKAN NILAI ELEMEN-ELEMEN MATRIK AUGMENT
WRITE (*,’(1X,A)’) ’JUMLAH PERSAMAAN ? ’
READ (*,*) N
11
WRITE (*,*)
WRITE (*,*) ’MASUKAN ELEMEN-ELEMEN MATRIK AUGMENT’
M = N + 1
DO 50 I = 1,N
DO 60 J = 1,M
WRITE (*,’(1X,A,I2,A,I2,A)’) ’A(’,I,’,’,J,’) = ’
READ (*,*) A(I,J)
60
50
CONTINUE
CONTINUE
WRITE (*,*)
C
MENAMPILKAN MATRIK AUGMENT
WRITE (*,’(1X,A)’) ’MATRIK AUGMENT:’
DO 110 I = 1,N
110
WRITE (*,’(1X,5(F14.8))’) (A(I,J),J=1,M)
CONTINUE
WRITE (*,*)
C
LANGKAH 2: MEMERIKSA ELEMEN-ELEMEN PIVOT DAN PROSES TUKAR POSISI
NN = N-1
DO 10 I=1,NN
C
LANGKAH 3: MENDEFINISIKAN P
P = I
100
IF (ABS(A(P,I)).GE.1.0E-20 .OR. P.GT.N) GOTO 200
P = P+1
GOTO 100
200
IF(P.EQ.N+1)THEN
C
MENAMPILKAN PESAN TIDAK UNIK
WRITE(*,5)
GOTO 400
END IF
C
LANGKAH 4: PROSES TUKAR POSISI
IF(P.NE.I) THEN
DO 20 JJ=1,M
C = A(I,JJ)
A(I,JJ) = A(P,JJ)
12
A(P,JJ) = C
20
CONTINUE
END IF
C
LANGKAH 5: PERSIAPAN PROSES TRIANGULARISASI
JJ = I+1
DO 30 J=JJ,N
C
LANGKAH 6: TENTUKAN MJI
MJI = A(J,I)/A(I,I)
C
LANGKAH 7: MELAKUKAN PROSES TRIANGULARISASI
DO 40 K=JJ,M
40
A(J,K) = A(J,K)-MJI*A(I,K)
CONTINUE
A(J,I) = 0
30
CONTINUE
10
CONTINUE
C
MENAMPILKAN HASIL TRIANGULARISASI
WRITE (*,’(1X,A)’) ’HASIL TRIANGULARISASI:’
DO 120 I = 1,N
WRITE (*,’(1X,5(F14.8))’) (A(I,J),J=1,M)
120
CONTINUE
C
LANGKAH 8: MEMERIKSA ELEMEN A(N,N)
IF(ABS(A(N,N)).LT.1.0E-20) THEN
C
MENAMPILKAN PESAN TIDAK UNIK
WRITE(*,5)
GOTO 400
END IF
C
LANGKAH 9: MENGHITUNG X(N)
X(N) = A(N,N+1)/A(N,N)
C
LANGKAH 10: PROSES SUBSTITUSI MUNDUR
L = N-1
DO 15 K=1,L
I = L-K+1
JJ = I+1
SUM = 0.0
13
DO 16 KK=JJ,N
SUM = SUM+A(I,KK)*X(KK)
CONTINUE
16
X(I) = (A(I,N+1)-SUM)/A(I,I)
15
CONTINUE
C
LANGKAH 11: MENAMPILKAN HASIL PERHITUNGAN
WRITE (*,*)
WRITE (*,7)
DO 18 I = 1,N
WRITE (*,’(1X,A,I2,A,F14.8)’) ’X(’,I,’) = ’,X(I)
18
CONTINUE
400
STOP
5
FORMAT(1X,’SISTEM LINEAR TIDAK MEMILIKI SOLUSI YANG UNIK’)
7
FORMAT(1X,’SOLUSI UNIK’)
END
4 Penutup
Silakan anda coba aplikasikan program di atas dengan berbagai sistem persamaan
linear yang pernah dijadikan contoh pada catatan terdahulu. Saya cukupkan sementara
sampai disini. Insya Allah akan saya sambung lagi dilain waktu. Kalau ada yang mau
didiskusikan, silakan hubungi saya melalui email yang tercantum di halaman paling depan.
References
[1] Burden, R.L., Faires, J.D., Numerical Analysis, 7-edition, Brooks/Cole, 2001
14
Download