] [
] [
]
Dengan substitusi didapatkan nilai elemen-elemen matriks L dan U, yaitu:
Secara umum untuk matriks A yang berordo n akan difaktorkan menjadi matriks segitiga
bawah L = [m
jk
] dengan semua diagonal utamanya bernilai satu, dan matriks segitiga
bawah L = [u
jk
].
Persamaan linearsecara simultan dimodelkan bentuk matriksnya sebagai Ax = B. setelah
matriks koefisien A difaktorkan menjadi LU, maka model tersebut berubah menjadi
LUx=B. Urut-urutannya setelah faktorisasi yaitu:
Halaman|2
1. Mencari vektor y sebagai penyelesaian Ly=B
2. Mencari penyelesaian akhir x dari Ux=y.
2. Metode Crout
Untuk metode ini tetap hampir sama seperti metode Doolittle, namun perbedaannya
yaitu kalau Doolittle diagonal matriks segitiga bawah L yang bernilai satu semuanya,
sedangkan untuk metide crout yang bernilai satu semua adalah diagonal matriks segitiga
atas U.
Jika diberikan matriks A berordo 3x3, maka:
[
] [
] [
]
Kemudian perhitungan tersebut dikenakan dengan rumus seperti Doolittle namun dengan
sedikit perubahan.
Untuk selanjutnya sama seperti metode Doolittle.
Analisis Data
Pada percobaan kali ini akan diterjemahkan instruksi program di bawah ini menjadi sebuah
source code program di Scilab, instruksinya:
1. Persiapkan matriks A dan vektor B dari persamaan linier yang akan dihitung.
2. Mulai menghitung matriks L dan U untuk metode bersangkutan sesuai rumus yang
diberikan pada landasan teori
3. Hitung vektor y sebagai penyelesaian dari Ly = B. Gunakan cara mudah yaitu dengan
pembagian kiri.
4. Hitung penyelesaian akhir x sebagai penyelesaian dari Ux = y.
Buatlah program di atas sebagai fungsi doolittle(A,B) dan crout(A,B) dan menghasilkan keluaran
berupa vektor x.
Ujilah kedua program tersebut untuk menghitung penyelesaian dari persamaan linier simultan
yang disajikan di bawah ini.
a. b. c.
6
23 2 3 10
12 3
z y x
z y x
z y x
0 10 6
0 3 8
0 6 2
z y x
z y x
z y x
3 2 9
18 6 2 2
9 3
z y x
z y x
z y x
Bandingkan hasilnya dengan menggunakan pembagian kiri (\), dan tunjukkan bahwa untuk
persamaan (b) adalah trivial atau penyelesaian nol, dan persamaan (c) tidak mempunyai
penyelesaian layak.
Dengan langkah-langkah di atas, maka source code program untuk masing-masing metode
adalah:
Halaman|3
1. Metode Doolittle
//fungsi doolittle
function [x]=doolitlle(a,b)
n=size(a,1)
l=eye(n,n)
u=zeros(n,n)
for i=1:n,
u(1,i)=a(1,i);
end
for i=2:n,
l(i,1)=a(i,1)/u(1,1);
end
for j=2:n-1,
for k=j:n,
y=0;
for s=1:j-1,
y=y+l(j,s)*u(s,k);
end
u(j,k)=a(j,k)-y;
for q=j:n-1,
z=0;
for p=q+1:n,
z=z+l(p,s)*u(s,q);
l(p,q)=1/u(q,q)*(a(p,q)-z);
end
end
end
end
w=0;
for s=1:n-1,
w=w+l(n,s)*u(s,n);
end
u(n,n)=a(n,n)-w;
y=l\b;
x=u\y;
endfunction
2. Metode Crout
//fungsi crout
function [x]=crout(a,b)
n=size(a,1)
l=zeros(n,n)
u=eye(n,n)
for i=1:n,
l(i,1)=a(i,1);
end
for i=2:n,
u(1,i)=a(1,i)/l(1,1);
Halaman|4
end
for k=2:n-1,
for j=k:n,
y=0;
for s=1:k-1,
y=y+l(j,s)*u(s,k);
end
l(j,k)=a(j,k)-y;
for p=k:n-1,
z=0;
for q=p+1:n,
z=z+l(p,s)*u(s,q);
u(p,q)=1/l(p,p)*(a(p,q)-z);
end
end
end
end
w=0;
for s=1:n-1,
w=w+l(n,s)*u(s,n);
end
l(n,n)=a(n,n)-w;
y=l\b;
x=u\y;
endfunction
Kemudian file tersebut disimpan dalam ekstensi sci. Setelah disimpan pada direktori yang sama
di mana Scilab sedang berjalan, file di-load ke Scilab dengan perintah:
-->getd
Kemudian fungsi tinggal dipanggil tetapi sebelumnya harus dilakukan pendefinisian variabel
yang dibutuhkan. Contoh cara pemanggilan fungsi:
-->doolittle(a,b)
Perhitungan dan pembahasan tiap-tiap nomor:
1. Soal nomor satu
Pertama-tama definisi dari variabel a dan b dengan sintaksis:
-->a = [ 3 -1 1;10 3 -2; 1 1 -1];
-->b = [12; -23; 6];
Kemudian nilai x dihitung dengan fungsi Doolittle atau crout yang sudah dibuat, dengan
cara memanggil fungsi tersebut. Sehingga ditemukan penyelesaiannya.
Dengan bentuk matriks persamaan tersebut bisa ditulis:
[
] [
] [
]
Halaman|5
Setelah dilakukan faktorisasi LU, matriks berubah menjadi:
[
] [
] [
] [
]
Kemudian dari persamaan matriks di atas, bentuk Ux=y :
[
] [
] [
]
Sehingga didapatkan nilai dari x adalah:
[
]
Jika nilai x dari fungsi LU dibandingkan dengan pembagian kiri:
-->x = a\b
x =
4.5
- 71.
- 72.5
Terbukti memiliki hasil yang sama.
2. Soal nomor dua
Pertama-tama definisi dari variabel a dan b dengan sintaksis:
-->a = [2 6 -1; 1 -8 3;1 6 -10];
-->b = [0;0;0];
Kemudian nilai x dihitung dengan fungsi Doolittle atau crout yang sudah dibuat, dengan
cara memanggil fungsi tersebut. Sehingga ditemukan penyelesaiannya.
Dengan bentuk matriks persamaan tersebut bisa ditulis:
[
] [
] [
]
Halaman|6
Setelah dilakukan faktorisasi LU, matriks berubah menjadi:
[
] [
] [
] [
]
Kemudian dari persamaan matriks di atas, bentuk Ux=y :
[
] [
] [
]
Sehingga didapatkan nilai dari x adalah:
[
]
Karena penyelesaian dari persamaan tersebut adalah 0, persamaan tersebut
dinamakan persamaan trivial.
Jika hasil tersebut dibandingkan dengan pembagian kiri:
-->x = a\b
x =
0.
0.
0.
Diperoleh nilai x yang sama, yaitu nol. Maka terbukti nilai dari pembagian kiri
sama dengan nilai dari fungsi.
3. Soal nomor tiga
Pertama-tama definisi dari variabel a dan b dengan sintaksis:
-->a = [1 1 -3; 2 2 -6 ; 1 -9 2];
-->b = [9 ; 18 ; 3];
Kemudian nilai x dihitung dengan fungsi Doolittle atau crout yang sudah dibuat, dengan
cara memanggil fungsi tersebut. Sehingga ditemukan penyelesaiannya.
Dengan bentuk matriks persamaan tersebut bisa ditulis:
[
] [
] [
]
Halaman|7
Namun pada saat pemfaktoran, terjadi pembagian dengan nol, sehingga
persamaan ketiga ini tidak mempunyai penyelesaian layak.
Tetapi jika dilakukan pembagian kiri:
-->x = a\b
Warning :
matrix is close to singular or badly scaled. rcond =
0.0000D+00
computing least squares solution. (see lsq).
x =
0.
- 1.08
- 3.36
Dapat dihitung nilai keluaran tetapi terdapat pesan peringatan, karena nilai matriks
terlalu kecil. Jadi nilai keluaran dari fungsi tidak sama dengan nilai keluaran dari
pembagian kiri.
Kesimpulan
1. Untuk mencari penyelesaian dari persamaan linear bisa digunakan matriks selain dengan
cara substitusi atau eliminasi.
2. Prosedur untuk menyelesaikan persamaan matriks Ax=B:
Matriks A difaktorkan, sehingga A = LU,
Kemudian substitusikan ke persamaan pertama, sehingga LUx = B,
Ubah persamaan menjadi Ly = B, sehingga dapat diketahui matriks y,
Nilai penyelesaian (vektor x) bisa dicari dengan menyelesaikan persamaan Ux=y.
3. Persamaan linier disebut persamaan trivial jika semua solusi persamaan tersebut adalah nol.
Halaman|8
Hasil
-->exec doolittle.sci
-->exec crout.sci
Nomor 1 :
-->a = [ 3 -1 1;10 3 -2; 1 1 -1]
a =
3. - 1. 1.
10. 3. - 2.
1. 1. - 1.
-->b = [12; -23; 6]
b =
12.
- 23.
6.
-->doolittle(a,b)
ans =
4.5
- 71.
- 72.5
-->crout(a,b)
ans =
4.5
- 71.
- 72.5
-->x = a\b
x =
4.5
- 71.
- 72.5
Nomor 2
-->a = [2 6 -1; 1 -8 3;1 6 -10]
a =
2. 6. - 1.
1. - 8. 3.
1. 6. - 10.
-->b = [0;0;0]
b =
0.
0.
0.
-->doolittle(a,b)
ans =
0.
0.
0.
-->crout(a,b)
ans =
0.
0.
0.
-->x = a\b
x =
0.
0.
0.
Halaman|9
Nomor 3:
-->a = [1 1 -3; 2 2 -6 ; 1 -9 2]
a =
1. 1. - 3.
2. 2. - 6.
1. - 9. 2.
-->b = [9 ; 18 ; 3]
b =
9.
18.
3.
-->doolittle(a,b)
!--error 27
Division by zero...
at line 25 of function doolittle called by :
doolittle(a,b)
-->crout(a,b)
!--error 27
Division by zero...
at line 25 of function crout called by :
crout(a,b)
-->x = a\b
Warning :
matrix is close to singular or badly scaled. rcond = 0.0000D+00
computing least squares solution. (see lsq).
x =
0.
- 1.08
- 3.36