Optimasi Matrik dan Eliminasi Gauss dalam Python
52
BAB 4. METODE ELIMINASI GAUSS
25 26
X[2,0]=A[2,4]-A[2,3]X[3,0]A[2,2]
27
X[1,0]=A[1,4]-A[1,2]X[2,0]+A[1,3]X[3,0]A[1,1]
28
X[0,0]=A[0,4]-A[0,1]X[1,0]+A[0,2]X[2,0]+A[0,3]X[3,0]A[0,0]
29 30
print X
Selanjutnya, saya memilih mulai dari baris statemen ke-28, dimana sedikit perubahan dilakukan padanya
~~~~~~proses substitusi-mundur~~~~~~~~ X = zeros4,1
X[n-1,0]=A[n-1,n]A[n-1,n-1] X[2,0]=A[2,4]-A[2,3]X[3,0]A[2,2]
X[1,0]=A[1,4]-A[1,2]X[2,0]+A[1,3]X[3,0]A[1,1] S=0
for i in range1,4: S=S+A[0,i]X[i,0]
X[0,0]=A[0,4]-SA[0,0] print X
Kemudian diikuti oleh perubahan dengan pola yang sama yang diterapakan pada baris state- men 27 dan 26
~~~~~~proses substitusi-mundur~~~~~~~~ X = zeros4,1
X[n-1,0]=A[n-1,n]A[n-1,n-1] S=0
for i in range3,4: S=S+A[2,i]X[i,0]
X[2,0]=A[2,4]-SA[2,2] S=0
for i in range2,4: S=S+A[1,i]X[i,0]
X[1,0]=A[1,4]-SA[1,1] S=0
for i in range1,4: S=S+A[0,i]X[i,0]
X[0,0]=A[0,4]-SA[0,0]
Sebelum dilanjut, semua angka 4 diganti oleh variabel n
~~~~~~proses substitusi-mundur~~~~~~~~ X = zerosn,1
4.4. MATRIK DAN ELIMINASI GAUSS DALAM PYTHON
53
X[n-1,0]=A[n-1,n]A[n-1,n-1] S=0
for i in range3,n: S=S+A[2,i]X[i,0]
X[2,0]=A[2,n]-SA[2,2] S=0
for i in range2,n: S=S+A[1,i]X[i,0]
X[1,0]=A[1,n]-SA[1,1] S=0
for i in range1,n: S=S+A[0,i]X[i,0]
X[0,0]=A[0,n]-SA[0,0]
Lalu kita nyatakan indeks j seperti ini
~~~~~~proses substitusi-mundur~~~~~~~~ X = zerosn,1
X[n-1,0]=A[n-1,n]A[n-1,n-1] j=2
S=0 for i in rangej+1,n:
S=S+A[j,i]X[i,0] X[j,0]=A[j,n]-SA[j,j]
j=1 S=0
for i in rangej+1,n: S=S+A[j,i]X[i,0]
X[j,0]=A[j,n]-SA[j,j] j=0
S=0 for i in rangej+1,n:
S=S+A[j,i]X[i,0] X[j,0]=A[j,n]-SA[j,j]
Inilah yang akhirnya dioptimasi menjadi
for j in range2,-1,-1: S=0
for i in rangej+1,n: S=S+A[j,i]X[i,0]
X[j,0]=A[j,n]-SA[j,j]
lalu dinyatakan dalam n
for j in rangen-2,-1,-1: S=0
54
BAB 4. METODE ELIMINASI GAUSS
for i in rangej+1,n: S=S+A[j,i]X[i,0]
X[j,0]=A[j,n]-SA[j,j]
Setelah melalui proses optimasi yang cukup melelahkan, source-code hasil akhir optimasi adalah seperti berikut ini
1
from numpy import array, zeros
2 3
~~~~~~inisialisasi matrik augment~~~~~
4
A = array[[1.,1.,0.,3.,4],\
5
[2.,1.,-1.,1.,1],\
6
[3.,-1.,-1.,2.,-3],\
7
[-1.,2.,3.,-1,4]]
8
print A
9 10
===== METODE ELIMINASI GAUSS =========
11
n=lenA
12
~~~~~~proses triangularisasi~~~~~~~~~~
13
for k in range0,n-1:
14
for i in rangek+1,n:
15
m=A[i,k]A[k,k]
16
for j in range0,n+1:
17
A[i,j]=A[i,j]-mA[k,j]
18 19
~~~~~~proses substitusi-mundur~~~~~~~~
20
X = zerosn,1
21
X[n-1,0]=A[n-1,n]A[n-1,n-1]
22
for j in rangen-2,-1,-1:
23
S=0
24
for i in rangej+1,n:
25
S=S+A[j,i]X[i,0]
26
X[j,0]=A[j,n]-SA[j,j]
27
======================================
28
print X
Fantastis Sekarang jumlah statemen baris-nya hanya 28. Padahal source-code dasarnya ter- diri dari 69 baris statemen.