Friday, March 12, 2010

program Determinan matrik dengan reduksi baris (MATLAB)

Berikut program untuk mencari determinan matrik dengan reduksi baris. yang hampir serupa dengan program invers pada postingan sebelumnya.
karena memakai metode yang sama, maka secara umum algoritmanya hampir sama. dan juga belum bisa untuk mendeteksi matrik singular. untuk bisa mendeteksi matrik singular perlu ditambahkan kondisi-kondisi yang menentukan matrik singular.

clear all;
clc;
disp('program determinan matrik menggunakan reduksi baris')
disp('oleh Nadzor')
awal=input('masukkan matrik :"[....]"');
s=size(awal);
disp('matrik yang Anda Masukkan adalah berikut:')
awal
determinan=1;
for h=1:s
d=awal(1,:);
if awal(1,1)==0
awal(1,:)=awal(h+1,:);
awal(h+1,:)=d;
disp('terjadi penukaran baris')
determinan=-1
else
awal=awal;
end;
end;
for k=1:s
f=awal(k,k);
a=1/f*[awal(k,:)];
determinan=determinan*f;
for n=1:s
if n>k
awal(n,:)=[awal(n,:)]-a.*awal(n,k);
else
awal(n,:)=a;
end;
end;
a
determinan
end;

invers matrik reduksi baris dengan MATLAB

Contoh program sederhana invers matrik dengan metode reduksi baris ecelon menggunakan MATLAB,

Program ini akan melakukan reduksi baris yang meliputi: Pertukaran baris atau pertukaran vector bila anda lebih suka menyebut matrik barisnya sebagai vector. Ini berujuan untuk mendapatkan vector pertama leading 1 . operasi pengurangan atau penjumahan antar vector yang intinya untuk menghasilkan sebuah matrik Identitas dari matrik asal yang Anda inputkan.

sebuah matrik identitas dibangkitkan, sebagai ganti dari bentuk augmented dari matrik input. Dan dilakukan operasi yang sama persis dengan matrik inputan untuk vector-vektor yang bersesuaian. Pada ahir iterasi, yaitu saat matrik awal menjadi identitas, maka matrik hasil adalah invers dari matrik awal yang kita inputkan. Ini bias kita cek dengan code ‘inv(nama matrik)’ pada command window MATLAB.

Program ini masih sangat sederhana kemampuannya. Karena dia tidak bisa mengidentifikasi matrik yang berisi vector-vektor nonlinearly independent. Seperti kita tahu sebuah matrik agar mempunyai invers maka harus berisi vector-vektor yg tak bisa dinyatakan dengan vector lainnya dalam matrik tersebut dengan perbandingan bilangan bulat,’integer’, atau yang biasa disebut dengan vector linearly independent. Karena itu program ini akan terus nylonong saja kalo kita beri makanan vector-vector yang diantaranya bukan linearly independent.

Selain itu, skrip-nya juga bisa diperpendek jika Anda tahu lebih banyak bahasa pemrograman MATLAB. Setidaknya, sebagai bahan latihan untuk memahami algoritmanya.

berikut kodenya:

clear all;

clc;

disp('program invers matrik menggunakan reduksi baris')

disp('oleh Nadzor')

awal=input('masukkan matrik :"[....]" ');

s=size(awal);

hasil=eye(s);

disp('matrik yang Anda Masukkan adalah berikut:')

awal

for h=1:s

d=awal(1,:);

p=hasil(1,:);

if awal(1,1)==0

awal(1,:)=awal(h+1,:);

awal(h+1,:)=d;

hasil(1,:)=hasil(h+1,:);

hasil(h+1,:)=p;

disp('terjadi penukaran baris')

else

awal=awal;

end;

end;

for k=1:s

f=awal(k,k);

a=1/f*[awal(k,:)];

b=1/f*[hasil(k,:)];

for n=1:s

if n~=k

g=awal(n,k);

awal(n,:)=[awal(n,:)]-a.*awal(n,k);

hasil(n,:)=[hasil(n,:)]-[b.*g];

else

awal(n,:)=a;

hasil(n,:)=b;

end;

end;

awal

hasil

end;