Anda di halaman 1dari 21

Sistem Persamaan Aljabar Linier

a11 x1  a12 x2  .....  a1n xn  b1  a11 a12 ... a1n   x1   b1 


a21 x1  a22 x2  .....  a2 n xn  b2 a a22 ... a2 n   x2  b2 
 21 *    
...  ... ... 
...  ...   ... 
 
an1 x1  an 2 x2  .....  ann xn  bn an1 an 2 ... ann   xn  bn 

Dimana:
aij = koefisien konstanta; xj = ‘unknown’;
bj = konstanta; n = banyaknya persamaan

Metode-Metode untuk menyelesaikan Sistem Persamaan Aljabar Linier:

1. Metode Eliminasi : Eliminasi Gauss; Gauss Jordan


2. Metode Iterasi : Iterasi Jacobi; Gauss Siedel
3. Metode Dekomposisi : Dekomposisi L-U; Cholesky.
MATRIK

Kolom - j
Operasi Matrik
 a11 a12 ... a1n 
a a22 ... a2 n  • Penjumlahan / Pengurangan
baris-i  21 • Perkalian
 ... ... aij ...  • Transpose
  • Invers Matrik
am1 am 2 ... amn 
• Determinan
mxn
Jenis-jenis Matrik

• Matrik Bujur Sangkar


Contoh :
• Matrik Diagonal
• Matrik Identitas
3 1 
  5 9  • Matrik Segitiga Atas / Bawah
A  8 6; B    • Matrik Simetri
 7 2  • Vektor Baris
0 4
• Vektor Kolom
Penyelesaian: Ada, Tunggal Penyelesaian: Ada, Kondisi buruk
(well condition) (ill condition)
x2 3x1 + 2x2 = 18 x2 - ½ x1 + x 2 = 1
-x1 + 2x2 = 2 -2.3/5 x1 + x2 = 1.1
 3 2  x1  18  1 1  x1   1 
  1 2 *  x    2   2 *    
   2   2.3
 5 1  x2  1.1
 
x1 x1
Det = 3*2 - (-1)*2 = 8 Det = -1/2 *1 - (-2.3/5)*1 = -0.04

Penyelesaian: Tak ada Penyelesaian: Tak berhingga

x2 -½ x1 + x2 = 1 x2 -½ x1 + x2 = 1
-½ x1 + x2 = ½ -1 x1 + 2x2 = 2
 1 1  x   1   1 1   x1  1 
 2 * 1  1   2 *    
 1 2 1  x2   2    1 2  x2  2

x1 x1

Det = -1/2 *1 - (-1/2)*1 = 0 Det = -1/2 *2 - (-1)*1 = 0


Eliminasi Gauss

 a11 a12 a13   x1  b1  .......E1


a    
 21 a22 a23  *  x2   b2  .......E2
a31 a32 a33   x3  b3  .......E3

Forward Elimination

a11 a12 a13   x1  b1 


0 '     '

'
a22 a23  *  x2   b2 
 0 0 ''
a33   x3  b3'' 

Back Substitution

x3  b3'' / a33
''

x2  (b2'  a23 ' '


x3 ) / a22
x1  (b1  a12 x2  a13 x3 ) / a11
Proses Forward Elimination :

1. Eliminasikan x1 dari E2 dan E3


Hitung: m21 = a21/a11 a11 a12 a13   x1  b1  .......E1
0 '     '
E’2 = E2 - m21*E1 
'
a22 a23  *  x 2   b2  .......E '
2
Hitung: m31 = a31/a11  0 '
a32 a33   x3  b3'  .......E3'
'

E’3 = E3 – m31*E1
a11 a12 a13   x1  b1  .......E1
2. Eliminasikan x2 dari E’3 0 '     '
Hitung: m32 = a’32/a’22 
'
a22 a23  *  x 2   b2  .......E '
2

E’’3 = E’3 – m32*E’2  0 0 a33   x3  b3  .......E3''


'' ' '

Proses Back Substitution :


bnn 1
xn  n 1
1. x3 = b’’3 / a’’3 ann n
bi
i 1
  ij x j
a i 1

j i 1
xi  i 1
a ii
2. x2 = (b’2 – a’23*x3) / a’22
Untuk i = n-1, n-2, … , 1
Algoritma Eliminasi Gauss
Pivoting:
i_pivot = k
Forward Elimination: big = |a(k,k)|
for k=1…n-1 for ii = k+1…n
for i=k+1…n dumy = |a(ii,k)|
pivot = A(i,k)/A(k,k) if ( dumy>big )
for j=k…n big = dumy
A(i,j) = A(i,j) - pivot * A(k,j) i_pivot = ii
end end if
B(i) = B(i) - pivot * B(k) end
end
end if (i_pivot ~= k)
for jj = k…n
Back Substitution: dummy = A(pivot,jj)
X(n) = B(n)/A(n,n); bnn 1 A(i_pivot,jj)=A(k,jj)
for i=n-1…1 step-1 xn  n 1 A(k,jj)=dummy;
sum = 0 ann end
for j=i+1…n dummy = C(i_pivot)
sum = sum + A(I,j)*X(j) n
C(i_pivot) = C(k)
end b i
i 1
  ij x j
a i 1

j i 1
C(k) = dummy
X(i) = (B(i)-sum) / A(i,i) xi  i 1
End if
end a ii
Contoh-1

Selesaikan sistem persamaan linier dengan metode


Eliminasi Gauss. gunakan 6 angka signifikan.
(Solusi eksak : x1 = 3, x2 = -2.5, x3 = 7 )

3 x1 – 0.1 x2 – 0.2 x3 = 7.85


0.1 x1 + 7 x2 – 0.3 x3 = -19.3
0.3 x1 – 0.2 x2 + 10 x3 = 71.4

Penyelesaian:
x1 = 3, x2 = -2.5, x3 = 7.00003

Chek hasil:
3 * (3) – 0.1 * (-2.5) – 0.2 * (7.00003) = 7.84999
0.1 * (3) + 7 * (-2.5) – 0.3 * (7.00003) = -19.300
0.3 * (3) – 0.2 * (-2.5) + 10 * (7.00003) = 71.4003
Masalah dalam Metode Eliminasi

• Pembagian dengan NOL 2x2 + 3x3 = 8


4x1 + 6x2 + 7x3 = -3
2x1 + x2 + 6x3 = -5
• Kesalahan dalam pembulatan
(contoh-1)

• Sistem ILL Condition

x1 + 2x2 = 10 x1 = 4
1.1 x1 + 2x2 = 10.4 x2 = 3

x1 + 2x2 = 10 x1 = 8 (8) + 2*(1) = 10


1.05 x1 + 2x2 = 10.4 x2 = 1 1.1*(8) + 2(1) = 10.8 ≈≈ 10.4
Solusi :

1. Penggunaan angka signifikan LEBIH BANYAK


2. Pivoting
Pertukarkan baris-baris sehingga elemen pivot adalah
elemen terbesar

Contoh-2.
0.0003 x1 + 3.0000 x2 = 2.0001 1.0000 x1 + 1.0000 x2 = 1.0000
1.0000 x1 + 1.0000 x2 = 1.0000 0.0003 x1 + 3.0000 x2 = 2.0001
x2 = 2/3 x2 = 2/3
x1 = 2.0001 – 3*(2/3) x1 = 1 – (2/3)
0.0003 1
Angka Sig. X2 X1 Angka Sig. X2 X1
3 0.667 -3.33 3 0.667 0.333
4 0.6667 0.0000 4 0.6667 0.3333
5 0.66667 0.30000 5 0.66667 0.33333
6 0.666667 0.330000 6 0.666667 0.333333
7 0.6666667 0.3300000 7 0.6666667 0.3333333
3. Penskalaan
Koefisien Maksimun dalam setiap baris adalah 1
(dilakukan jika ada persamaan yang mempunyai koefisien
terlalu besar relatif terhadap persamaan lainya)

Contoh-2. Tentukan penyelesaian sistem pers. linier dibawah ini


dengan eliminasi gauss (solusi eksak : x1=1,00002 x2=0,99998)
2 x1 + 100000 x2 = 100000
x1 + x2 = 2
• Dengan Penskalaan:
0,00002 x1 + x2 = 1
• Tanpa Penskalaan: x 1 + x2 = 2
2 x1 + 100000 x2 = 100000 x1 + x2 = 2
x1 + x2 = 2 0,00002 x1 + x2 = 1

2 x1 + 100000 x2 = 100000 x1 + x2 = 2
-49999 x2 = -49998 0.99998x2 = 0,99996
x2 = 1,00 x2 = 1,00
x1 = 0,00 x1 = 1,00
Eliminasi Gauss-Jordan Invers Matrik

 a11 a12 a13   x1   b1   a11 a12 a13 1 0 0


a      
 21 a22 a23  *  x2   b2  a21 a22 a23 0 1 0
 a31 a32 a33   x3  b3   a31
 a32 a33 0 0 1
[A] [I]
Forward Elimination
Forward Elimination
1 0 0  x1  b 
*
1
0 1 0 *  x   b * 
   2  2  1 0 0 a111 a121 a131 
0 0 1  x3  b *   1 1 1 
3  0 1 0 a21 a22 a23 
0 0 1 a 1 1
a32 1 
a33 
NO Back Substitution
 31

[I] [A]-1
x1  b1*
x2  b2* A*x=b
x3  b3* x = A-1 * b
Algorithma Gauss-Jordan Algorithma Invers-Matrik
( dengan Gauss-Jordan )
Forward Elimination: Forward Elimination:

for k=1…n for k=1…n


dummy = A(k,k) dummy = A(k,k)
for j=1…n+1 for j=1…2*n
A(k,j) = A(k,j)/dummy A(k,j) = A(k,j)/dummy
end end

for i=1…n for i=1…n


if (i<>k) if (i<>k)
dummy = A(i,k) dummy = A(i,k)
for j=1…n+1 for j=1…2*n
A(i,j) = A(i,j) – dummy * A(k,j) A(i,j) = A(i,j) – dummy * A(k,j)
end end
end if end if
end end
end end
Dekomposisi LU
Cara Menyelesaikan Sistem Pers. Linier dengan merubah Matrik sistem A
menjadi Matrik Segitiga Bawah L dan Matrik Segitiga Atas U

 a11 a12 a13   x1  b1  A * x = b


a    
 21 a22 a23  *  x2   b2  Proses Dekomposisi
a31 a32 a33   x3  b3  Untuk memperoleh U dan L

A * x = b L*U*x=b

l11 0 0  1 u12 u13   x1   b1  Proses Subs. Maju


l     L*z=b
 21 l22 0  * 0 1 u23  *  x2   b2  Untuk memperoleh z

l31 l32 l33  0 0 1   x3  b3 

L * U * x = b
Proses Subs. Mundur
U*x=z Untuk memperoleh x
Dekomposisi LU : Naif
Diturunkan dari proses Eliminasi Gauss, dimana
L : Elemen Pengali mij dalam proses eliminasi
U : Matrik Segitiga Atas hasil dari proses eliminasi

 a11 a12 a13   x1   b1 


a    
 21 a22 a23  *  x2   b2 
 a31 a32 a33   x3  b3 

A * x = b

Proses Eliminasi Gauss

 1 0 0 a11 a12 a13 


L  m21 1 0 U   0 '
a22 ' 
a23 
 m31 m32 1  0 0 a33 
''
Dekomposisi LU : Crout

Matrik L dan U dicari dengan menyelesaikan persamaan L*U=A


l11 0 0 0  1 u12 u13 u14   a11 a12 a13 a14 
l 0 0  0 1 u23 u24  a21 a22 a24 
 21 l22 * 
a23
l31 l32 l33 0  0 0 1 u34  a31 a32 a43 a34 
     
l41 l42 l43 l44  0 0 0 1  a41 a42 a43 a44 

l11=a11, l21=a21, l31=a31, l41=a41 . . . . . . li1= ai1, utk i = 1,..,n

l11*u12 = a12, l11*u13 = a13, l11*u14 = a14


u12 = a12/l11, u13 = a13/l11, u14 = a14/l11 . . . . . u1j = a1j/l11, utk j = 2,..,n

li2 = ai2-li1u12, utk i = 2,..,n u2j = (a2j-l21u1j)/l22, utk j = 3,..,n

li3 = ai3-li1u13-li2u23, utk i = 3,..,n u3j = (a3j-l31u1j-l32u2j)/l33, utk j = 4,..,n

li4 = ai4-li1u14-li2u24-li3u34, utk i = 4,..,n


Algorithma Crout for j=2…n
a(i,j) = a(i,j)/a(1,1)
end
li1= ai1, utk i = 1,..,n for j=2…n-1
for i=j…n
u1j = a1j/l11, utk j = 2,..,n sum = 0
for k=1…j-1
sum = sum + a(i,k)*a(k,j)
utk j = 2,3,…n-1 end
a(i,j) = a(i,j)-sum
j 1 end
lij  aij   lik u kj utk i = j, j+1,…,n for k=j+1…n
k 1 sum=0
j 1 for i=1..j-1
aki   l ji uik sum = sum + a(j,i)*a(i,k)
end
u jk  k 1
utk k = j+1, j+2…,n a(j,k) = (a(j,k) – sum)/a(j,j)
l jj end
end
sum = 0
n 1 for k=1…n-1
lnn  ann   lnk ukn sum = sum + a(n,k)*a(k,n)
k 1 end
a(n,n) = a(n,n) - sum
Dekomposisi LU : Choleski
Digunakan jika Matrik Sistem A adalah matrik Simetri, yaitu A = AT
Matrik Simetri A bisa didekomposisi menjadi : L * LT = A
l11 0 0 0  l11 l21 l31 l41   a11 a21 a31 a41 
l 0 0   0 l22 l32 l42  a21 a42 
 21 l22 * 
a22 a32
l31 l32 l33 0   0 0 l33 l43   a31 a32 a43 a43 
     
l41 l42 l43 l44   0 0 0 l44  a41 a42 a43 a44 

l11*l11 = a11, l21*l11 = a21, l31*l11 = a31, l41*l11=a41


l11 = √a11, l21 = a21/l11, l31 = a31/l11, l41 =a41/l11

l21*l21 + l22*l22 = a22, l31*l21+ l32*l22 = a32, l41*l21 + l42*l22=a42


l22 = √ (a22-l21*l21), l32= (a32 -l31*l21)/l22 , l42 = (a42-l41*l21)/l22
i 1
k 1 aki   lij lkj
lkk  akk   l 2
kj lki 
j 1
untuk i=1,2,…,k-1
j 1
lii
Algorithma Choleski

for k=1…n
for i=1…k-1
sum = 0
for j=1…i-1 i 1
sum = sum + a(I,j)*a(k,j) aki   lij lkj
end j 1
a(k,i) = (a(k,i)-sum)/a(i,i) lki 
end
lii
untuk i=1,2,…,k-1
sum = 0
for j=1…k-1
sum = sum + (a(k,j))2
end k 1

a(k,k) = √ (a(k,k) - sum) lkk  akk   lkj2


end j 1
Iterasi Gauss-Seidel
Cara Menyelesaikan Sistem Pers. Linier yang dilakukan secara iteratif.
Biasanya digukanan untuk sistem yang besar (n =ratusan), dimana metode
eliminasi tak mampu lagi karena terlalu banyak pembulatan yang dilakukan.

b1  a12 x2  a13 x3  .....  a1n xn


a11 x1  a12 x2  .....  a1n xn  b1 x1 
a11
a21 x1  a22 x2  .....  a2 n xn  b2 b  a x  a x  .....  a2 n xn
... x2  2 21 1 23 3
a22
an1 x1  an 2 x2  .....  ann xn  bn ...
bn  an1 x1  an 2 x2  .....  an ,n 1 xn 1
xn 
ann

- Iterasi Pertama dimulai dengan terkaan awal X2,..,Xn = 0, dihitung nilai X1


Berikutnya dihitung X2, dengan X1 adalah hasil sebelumnya, dan X3,..,Xn = 0
Begitu seterusnya sampai dihitung Xn, dengan X1,…,Xn-1 adalah nilai-nilai
hasil perhitungan sebelumnya.
- Proses iterasi diteruskan sampai diperoleh nilai-nilai X yang konvergen.
Iterasi Jacobi
Mirip dengan Gauss-Seidel, hanya semua nilai-nilai yang diperoleh di iterasi
ke i, baru akan digunakan lagi pada iterasi ke i+1

- Iterasi Pertama dimulai dengan terkaan awal X2,..,Xn = 0, dihitung nilai X1


Berikutnya dihitung X2, dengan X1,X3,..,Xn = 0
Begitu seterusnya sampai dihitung Xn, dengan X1,…,Xn-1 = 0.

- Iterasi berikutnya dihitung berdasarkan nilai-nilai X yang diperoleh pada


iterasi sebelumnya.

- Proses iterasi diteruskan sampai diperoleh nilai-nilai X yang konvergen.


Forward Elimination: /* file name : gaus.c
for k=1…n-1 description : eliminasi gauss naif
for i=k+1…n */
pivot = A(i,k)/A(k,k) #include <stdio.h>
for j=k…n
A(i,j) = A(i,j) - pivot * A(k,j) int main()
end { X[n-1] = B[n-1]/A[n-1][n-1];
B(i) = B(i) - pivot * B(k) int n = 3; for (i=n-2;i>=0;i--) {
end int i, j, k; sum=0;
end float A[3][3] = { { 3, -0.1, -0.2}, for (j=i+1;j<n;j++) {
{ 0.1, 7, -0.3}, sum = sum + A[i]
Back Substitution: { 0.3, -0.2, 10} }; [j]*X[j];
X(n) = B(n)/A(n,n); float B[3] = { { 7.85}, {-19.3}, { 71.4}}; }
for i=n-1…1 step-1 float X[3]; X[i] = (B[i]-sum)/A[i][i];
sum = 0 float pivot,sum; }
for j=i+1…n
sum = sum + A(I,j)*X(j) clrscr(); printf("matrik A: \n");
end for (i=0;i<3;i++) {
X(i) = (B(i)-sum) / A(i,i) for (k=0; k<n-1; k++) { for (j=0;j<3;j++) {
end for (i=k+1; i<n; i++) { printf(" %f ", A[i][j]);
pivot = A[i][k] / A[k][k]; }
for (j=k; j<n; j++) { printf("\n");
A[i][j] = A[i][j] - pivot * A[k][j]; }
} printf("\nHasil X : \n");
B[i] = B[i] - pivot * B[k]; for (j=0;j<n;j++) {
} printf(" %f \n", X[j]);
} }
getch();
return 0;
}

Anda mungkin juga menyukai