Professional Documents
Culture Documents
26Mar
Pengertian
Eliminasi Gauss adalah suatu metode untuk mengoperasikan nilai-nilai di dalam matriks
sehingga menjadi matriks yang lebih sederhana lagi. Dengan melakukan operasi baris
sehingga matriks tersebut menjadi matriks yang baris. Ini dapat digunakan sebagai salah
satu metode penyelesaian persamaan linear dengan menggunakan matriks. Caranya
dengan mengubah persamaan linear tersebut ke dalam matriks teraugmentasi dan
mengoperasikannya. Setelah menjadi matriks baris, lakukan substitusi balik untuk
mendapatkan nilai dari variabel-variabel tersebut.
Kelebihan dan Kekurangan
Metode ini digunakan dalam analisis numerik untuk meminimalkan mengisi selama
eliminasi, dengan beberapa tahap
Keuntungan :
kelemahan :
Implementasinya di Matlab
PROGRAM ELIMINASI GAUSS PADA MATLAB
%Program Eliminasi Gauss
function x = GAUSS(n, A, b)
% fungsi untuk melakukan eliminasi Gauss
% untuk menyelesaikan SPL Ax = b
% n = dimensi matriks
% A = matriks koefisien
% b = vektor ruas kanan
n=input(masukkan dimensi matriks: )
A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2 10];
b=[7.85;-19.3;71.4];
vb = (1:n);
for i=1:n-1
% proses vipoting
ib = vb(i);
maxi = abs(A(ib,i));
bar = i;
ibx = ib;
for bars=i+1:n
ib=vb(bars);
if (abs(A(ib,i))) > maxi
maxi = abs(A(ib,i));
bar = bars;
ibx = ib;
end
end
ib = vb(i);
vb(i) = ibx;
vb(bar) = ib;
% proses eliminasi
ib = vb(i);
for j=i+1:n
ibx = vb(j);
m = -A(ibx,i) / A(ib,i);
for k=i:n
A(ibx,k) = A(ibx,k) + m*A(ib,k);
end
b(ibx) = b(ibx) + m*b(ib);
end
end
%subsitusi balik
ib = vb(n);
x(n) = b(ib)/A(n,n);
for i=n-1:-1:1
ib = vb(i);
sum = b(ib);
for j=i+1:n
sum = sum A(ib,j)*x(j);
end
x(i) = sum /A(ib,i);
end
return
Selain itu, dimungkinkan pula membuat pernyataan if di dalam pernyataan yang lain (disebut
nested-if), misalkan :
Catatan : jangan keliru menuliskan elseif dan else if , karena keduanya berbeda. Yang pertama
untuk menguji kondisi setelah kondisi di if terdahulu tak dipenuhi, tetapi yang kedua nested-if.
Statement switch .case
Sebagai alternatif dari statement ifelseifelseend, kita bisa menggunakan statement
switch. Sintaknya ialah :
Statement forend
Statement ini digunakan untuk loop/perhitungan berulang. Sintak yg digunakan dalam MATLAB
ialah :
Adapun sintaks yang digunakan untuk membatasi loop mirip dengan yang kita pakai untuk
membuat deret. Misalakan untuk menampilkan bilangan kelipatan 3 dari 30 sampai 100.
Hasilnya ialah :
Sementara untuk nilai inkremen = 1, cukup dituliskan nilai awal dan akhir. Misalkan untuk
mendaftar bilangan bulat dari -10 hingga 10 dan menyimpannya dalam satu vektor.
Menghasilkan :
Menghasilkan :
Perhatikan bahwa setiap selesai satu loop, variable (dalam contoh diatas adalah i) akan otomatis
mengalami inkremen. Demikian seterusnya hingga nilai_akhir ( yaitu lenght (A) ) tercapai dan
program dilanjutkan ke baris selanjutnya.
Statement whileend
Alternatif dari sintaks loop ialah berikut ini.
Menghasilkan :
Apabila N tidak perrnah habis dibagi oleh 2,3,4,, N/2 (sampai loop selesai), maka N pasti
bilangan prima. Selanjutnya kita tampilkan dilayar dan progam selesai.
Untuk mengetahui apakah N habis terbagi atau tidak, kita bisa menggunakan fungsi
rem(N,Pembagi).
Perlu di ingat bahwa fungsi apakah_prima.m di atas tidak memiliki arguman keluaran, karena
hasil perhitungan langsung kita tampilkkan di layar menggunakan disp, sehingga hasil tersebut
tidak bisa disimpan dalam variable.
Statement Continue
Statement continue digunakan untuk memaksa program untuk langsung menuju iterasi
berikutnya dari suatu loop, tanpa mengeksekusi command yang masih ada di bawahnnya.
Sebagai contoh kita akan membuat fungsi untuk mengumpulkan billangan tak nol dari suatu
vektor.
Command Window
Menggunakan M file :
Caranya : Click file -> pilih New -> pilih Blank M-file .
Suwun Dulur
http://w3function.com/blog/index.php?p=det&idn=64