You are on page 1of 6

Sistem Persamaan Linear

Nama : Rio Natanael Wijaya


NIM : 10208075
Asisten : Mario/10207003
Tanggal Praktikum : 5 Oktober 2010
Tanggal Pengumpulan : 10 Oktober 2010

1. Tujuan
a. Membentuk sistem persamaan linear dari peristiwa fisis.
b. Memecahkan sistem persamaan linear dengan metode dekomposisi matriks.
c. Membuat program pemecahan persamaan linear sederhana.

2. Teori Dasar
Metode dekomposisi matriks adalah metode pemecahan sistem matriks
menjadi sebuah bentuk yang kanonik. Metode ini melibatkan permisalan dari
perkalian matriks. Berikut ini adalah penurunannya.
Misalkan tiga buah matriks A(4,4,), B(4,1), dan X(4,1) dengan X adalah matriks
yang tidak diketahui. Persamaan berikut ini adalah persamaan yang akan
dipecahkan.
AX=B
Kita dapat memisalkan A sebagai perkalian dari dua buah matriks L(4,4) dan
U(4,4). Sehingga
LUX=B
Dari persamaan ini, kita dapat menentukan komponen-komponen dari matriks L
dan U dengan memberikan nilai kepada beberapa komponennya sebagai berikut:
11 22 33 44
11 11
12 12
13 13
14 14
1 l l l l
u a
u a
u a
u a
= = = =
=
=
=
=

12 13 14 23 24 34
21 31 41 32 42 43
0
0
l l l l l l
u u u u u u
= = = = = =
= = = = = =

Misalkan UX adalah sebuah matriks Y(4,1), sehingga persamaan di atas berubah
menjadi
LY=B
Dari persamaan ini, kita dapat mencari matriks Y untuk kemudian digunakan
untuk menghitung matriks X dengan cara yang sama pada persamaan ini:
UX=Y
Dengan mengetahui matriks X, kita telah mendapatkan komponen-komponen dari
matriks X yang merupakan solusi dari sistem persaman linear.

3. Data dan Pengolahan
Pada percobaan kali ini persamaan linear yang akan dipecahkan adalah:
( )
( )
( )
( )
1 1 1 5 6 2 6 4 5
2 2 2 6 7 1 6 3 7
3 3 3 7 8 2 7 4 8
4 4 4 5 8 1 5 3 8
V I R R R I R I R
V I R R R I R I R
V I R R R I R I R
V I R R R I R I R
= + +

= + +

`
= + +

= + +
)

dengan V dan R adalah konstanta dan I adalah empat variabel yang akan dicari.
Kemudian representasi matriksnya adalah:

1 5 6 6 5 1 1
6 2 6 7 7 2 2
7 3 7 8 8 3 3
5 8 4 5 8 4 4
0
0
0
0
X B
A
R R R R R I V
R R R R R I V
R R R R R I V
R R R R R I V
+ + | || | | |
| | |
+ +
| | |
=
| | |
+ +
| | |
| | |
+ +
\ \ \


Dengan memberi nama A, X, dan B pada ketiga matriks tersebut, kita akan
mendapatkan persamaan yang sama dengan dasar teori. Metode penguraian
matriks kemudian dapat dilakukan secara analitik untuk menemukan persamaan
kanonik sehingga persamaan linear dapat diselesaikan secara numerik. Berikut ini
adalah persamaan kanonik yang ditemukan dari hasil analitik:
Untuk matriks L:
1 1 2 2
...
ij i j i j in nj
ij
jj jj jj jj
a l u l u l u
l
u u u u
= dengan n=j-1
dan jika i=jl
ij
=1
jika i<jl
ij
=0

Untuk matriks U:
1 1 2 2
...
ij i j i j in nj
ij
ii ii ii ii
a l u l u l u
u
l l l l
= dengan n=i-1
dan jika i>jl
ij
=0

Untuk matriks Y:
1 1 11 2 21 1
1
...
p p p pn n
p
pp pp pp pp
v l y l y l y
y
l l l l
= dengan n=p-1

Untuk matriks X (matriks yang berisi solusi dari persamaan linear):
( ) ( ) 1 1 1 1 1 1
1
...
q n n q qn n qm m
q
qq qq qq qq
u x
y u x u x
x
u u u u

=
dengan
m=q+1
n=jumlah baris matriks x, atau nilai maksimum dari q.
R
1
R
2
R
3
R
4
R
5
R
6
R
7
R
8
V
1
V
2
V
3
V
4
I
1

1 1 1 1 1 1 1 1 1 1 1 1 1
100 100 100 100 20 20 20 20 5 5 5 5 0,05
1000 12 14 15 32 42 12 12 1 23 14 51 0,05
10
4
1 1 1 1 1 1 1 1 1 1 1 0,00

4. Analisis
Metode penguraian matriks ini memerlukan proses analitik yang panjang. Untuk
matriks-matriks sederhana, metode ini tidaklah efisien. Untuk matriks dengan
orde tinggi, metode ini sangatlah berguna dan bila diaplikasikan ke pemrograman,
sangat praktis untuk digunakan. Pencarian rumus kanonik dapat dilakukan pada
matriks sederhana seperti 3x3 atau 4x4, kemudian diaplikasikan untuk matriks
yang lebih kompleks seperti 5x5 atau nxn. Semakin tinggi orde dari matriks,
semakin membutuhkan ketelitian dan ketekunan yang tinggi.
Pada rumus kanonik untuk matriks U dan L, kita dapat melihat bahwa penggunaan
komponen matriks U dan L dilakukan per komponen matriks. Artinya, kita tidak
bisa memperoleh seluruh komponen matriks L tanpa menghitung matriks U, dan
sebaliknya. Dapat kita katakan bahwa formulasi kanonik untuk matriks U dan L
saling bergantung satu sama lain, sehingga pencarian komponennya pun harus
secara simultan. Berbeda dengan pencarian matriks Y dan X yang tidak saling
bergantung sehingga kita dapat mencari matriks Y terlebih dahulu untuk
menemukan solusi yang terkandung pada matriks X.
Untuk nilai hambatan dan tegangan. Kita mendapatkan bahwa arus di hambatan
satu akan mendekati nol ketika hambatan diperbesar.

5. Kesimpulan
Metode numerik yang digunakan untuk menyelsaikan sistem persamaan linear
sangatlah bermanfaat untuk diaplikasikan ke matriks orde tinggi. Hal ini karena
persamaan kanonik berlaku umum untuk semua orde n matriks. Selama matriks
yang digunakan memenuhi sistem persamaan linear, maka metode penguraian
matriks dapat digunakan.
Secara fisis, hambatan yang besar akan menghambat arus.

6. Source Code
#include<iostream>
#include<conio.h>
#include<math.h>
#include<fstream>
using namespace std;

int main()
{
float i[4],r[8],v[4];
float a[4][4];
cout <<"Masukkan nilai variabel:" <<endl;

//Input resistor
for(int ii=0;ii<8;ii++)
{
cout <<"R" <<ii+1 <<": ";
cin >>r[ii];
}
cout <<endl;

//Input tegangan
for(int jj=0;jj<4;jj++)
{
cout <<"V" <<jj+1 <<": ";
cin >>v[jj];
}
cout <<endl;

//Tes keluaran resistor dan tegangan
/*
for(int k=0;k<8;k++)
{
printf("%.0f ",r[k]);
}
cout <<endl;
for(int l=0;l<4;l++)
{
printf("%.0f ",v[l]);
}
*/
//Matriks A
a[0][0]=r[0]+r[5]+r[4];
a[0][1]=-r[5];
a[0][2]=0;
a[0][3]=-r[4];
a[1][0]=-r[5];
a[1][1]=r[1]+r[5]+r[6];
a[1][2]=-r[6];
a[1][3]=0;
a[2][0]=0;
a[2][1]=-r[6];
a[2][2]=r[2]+r[6]+r[7];
a[2][3]=-r[7];
a[3][0]=-r[4];
a[3][1]=0;
a[3][2]=-r[7];
a[3][3]=r[3]+r[4]+r[7];

cout <<"Matriks A:" <<endl;
for(int x=0;x<4;x++)

printf("|%.2f\t%.2f\t%.2f\t%.2f|\n",a[x][0],a[x][1],a[x][2],a[x][3]);
cout <<endl <<endl;

//Matriks L dan U
float l[4][4],u[4][4];
l[0][0]=1;
l[1][1]=1;
l[2][2]=1;
l[3][3]=1;


for(int p=0;p<4;p++)
{
for(int q=0;q<4;q++)
{
//Syarat untuk matriks L
if(p==q)
{
l[p][q]=1;
}
else if(p<q)
{
l[p][q]=0;
}
else
{
l[p][q]=a[p][q]/u[q][q];
for(int r=0;r<q;r++)
{
l[p][q]=l[p][q]-(l[p][r]*u[r][q]/u[q][q]);
}
}

//Syarat untuk matriks U
if(p>q)
{
u[p][q]=0;
}
else
{
u[p][q]=a[p][q]/l[p][p];
for(int s=0;s<p;s++)
{
u[p][q]=u[p][q]-(l[p][s]*u[s][q]/l[p][p]);
}
}
}
}

//Output
cout <<"Matriks L:" <<endl;
for(int z=0;z<4;z++)

printf("|%.2f\t%.2f\t%.2f\t%.2f|\n",l[z][0],l[z][1],l[z][2],l[z][3]);
cout <<endl <<endl;

cout <<"Matriks U:" <<endl;
for(int w=0;w<4;w++)

printf("|%.2f\t%.2f\t%.2f\t%.2f|\n",u[w][0],u[w][1],u[w][2],u[w][3]);
cout <<endl <<endl;

//Menghitung matriks Y
float y[4];
for(int g=0;g<4;g++)
{
y[g]=v[g]/l[g][g];
for(int h=0;h<g;h++)
{
y[g]=y[g]-l[g][h]*y[h]/l[g][g];
}
}

//Tampilan matriks Y
cout <<"Matriks Y:" <<endl;
for(int gg=0;gg<4;gg++)
printf("|%.2f|\n",y[gg]);
cout <<endl <<endl;

//Menghitung matriks X
for(int t=0;t<4;t++)
{
i[3-t]=y[3-t]/u[3-t][3-t];
for(int f=0;f<t;f++)
{
i[3-t]=i[3-t]-u[3-t][3-f]*i[3-f]/u[3-t][3-t];
}
}

//Tampilan matriks X
cout <<"Matriks X:" <<endl;
for(int tt=0;tt<4;tt++)
printf("|%.2f|\n",i[tt]);
cout <<endl <<endl;

getch();
return 0;
}

You might also like