4.4. MATRIK DAN ELIMINASI GAUSS DALAM PYTHON
57
15
~~~~~~menggabungkan matrik A dan vektor b kedalam matrik augment C~~~~~
16
n=lenA
17
C=zerosn,n+1
18
for i in range0,n:
19
for j in range0,n:
20
C[i,j]=A[i,j]
21
for i in range0,lenA:
22
C[i,n]=b[i,0]
23
print C
Ya.. apa boleh buat, dalam source code ini saya terpaksa mengganti nama matrik augment yang semula bernama A sebagaimana pada source-code yang sudah-sudah menjadi C. Sehingga
keseluruhan source code eliminasi gauss ditulis sebagai berikut
1
from numpy import array, zeros
2 3
~~~~~~inisialisasi matrik A~~~~~
4
A = array[[1.,1.,0.,3.],\
5
[2.,1.,-1.,1.],\
6
[3.,-1.,-1.,2.],\
7
[-1.,2.,3.,-1.]]
8
~~~~~~inisialisasi vektor b~~~~~
9
b = array[[4.],\
10
[1],\
11
[-3],\
12
[4]]
13
~~~~~~menggabungkan matrik A dan vektor b kedalam matrik augment C~~~~~
14
n=lenA
15
C=zerosn,n+1
16
for i in range0,n:
17
for j in range0,n:
18
C[i,j]=A[i,j]
19
for i in range0,n:
20
C[i,n]=b[i,0]
21 22
~~~~~~proses triangularisasi~~~~~~~~~~
23
for k in range0,n-1:
24
-----proses pivot dari sini----------
25
if C[k][k]==0:
26
for s in range0,n+1:
27
v=C[k,s]
28
u=C[k+1,s]
29
C[k,s]=u
30
C[k+1,s]=v
31
-----proses pivot sampai sini----------
32
for j in rangek+1,n:
33
m=C[j,k]C[k,k]
34
for i in range0,n+1:
35
C[j,i]=C[j,i]-mC[k,i]
36 37
~~~~~~proses substitusi-mundur~~~~~~~~
38
X = zerosn,1
39 40
X[n-1,0]=C[n-1,n]C[n-1,n-1]
41
for j in rangen-2,-1,-1:
42
S=0
43
for i in rangej+1,n:
58
BAB 4. METODE ELIMINASI GAUSS
44
S=S+C[j,i]X[i,0]
45
X[j,0]=C[j,n]-SC[j,j]
46 47
print X
4.4.9 Function eliminasi gauss
Pendefinisian function eliminasi gauss merupakan langkah paling akhir dari proses pembuatan source code ini. Berdasarkan source code di atas, function eliminasi gauss bisa dimulai dari baris
ke-14 hingga baris ke-45. Berikut ini adalah cara pendefinisiannya
1
def eliminasi_gaussA,b:
2
n=lenA
3
C=zerosn,n+1
4
for i in range0,n:
5
for j in range0,n:
6
C[i,j]=A[i,j]
7
for i in range0,n:
8
C[i,n]=b[i,0]
9 10
for k in range0,n-1:
11
if C[k,k]==0:
12
for s in range0,n+1:
13
v=C[k,s]
14
u=C[k+1,s]
15
C[k,s]=u
16
C[k+1,s]=v
17
for j in rangek+1,n:
18
m=C[j,k]C[k,k]
19
for i in range0,n+1:
20
C[j,i]=C[j,i]-mC[k,i]
21
X = zerosn,1
22
X[n-1,0]=C[n-1,n]C[n-1,n-1]
23
for j in rangen-2,-1,-1:
24
S=0
25
for i in rangej+1,n:
26
S=S+C[j,i]X[i,0]
27
X[j,0]=C[j,n]-SC[j,j]
28
return X
Dengan adanya function eliminasi_gauss
4
, maka source-code untuk menyelesaikan sistem per- samaan linear dengan metode eliminasi gauss dapat ditulis secara sangat sederhana. Berikut
ini contohnya..
1
from numpy import array
2
from komputasi import eliminasi_gauss
3 4
~~~~~~inisialisasi matrik A~~~~~
5
A = array[[1.,1.,0.,3.],\
6
[2.,1.,-1.,1.],\
7
[3.,-1.,-1.,2.],\
8
[-1.,2.,3.,-1.]]
4
Function ini saya letakkan di dalam modul komputasi. Modul ini adalah mudul bikinan sendiri. Saya kira anda mampu membuat modul yang sama seperti saya jika anda telah memahami bab-bab sebelumnya.
4.5. CONTOH APLIKASI
59
9
~~~~~~inisialisasi vektor b~~~~~
10
b = array[[4.],\
11
[1],\
12
[-3],\
13
[4]]
14
~~~~~~mencari solusi sistem persamaan linear~~~~~
15
print eliminasi_gaussA,b
4.5 Contoh aplikasi
4.5.1 Menghitung arus listrik
Gunakan metode Eliminasi Gauss untuk menentukan arus i
1
, i
2
dan i
3
yang mengalir pada rangkaian berikut ini
jawab: Berdasarkan Hukum Kirchhoff:
I
1
+ I
2
= I
3
10 − 6I
1
− 2I
3
= 0 −14 + 6I
1
− 10 − 4I
2
= 0 Lalu kita susun ulang ketiga persamaan di atas menjadi seperti ini:
I
1
+ I
2
− I
3
= 0 6I
1
+ 2I
3
= 10 6I
1
− 4I
2
= 24