Senin, 25 Maret 2013

Tugas Pengganti Kuliah T. Komputasi (21 Maret 2013)_Eliminasi Gauss dan Implementasinya di MATLAB



Eliminasi Gauss dan Implementasinya di MATLAB
Metode Gauss                         
Metode Gauss-Seidel digunakan untuk menyelesaikan sistem persamaan linear (SPL) berukuran besar dan proporsi koefisien nolnya besar, seperti sistem-sistem yang banyak ditemukan dalam sistem persamaan diferensial. Metode iterasi Gauss-Seidel dikembangkan dari gagasan metode iterasi pada solusi persamaan tak linier.
Teknik iterasi jarang digunakan untuk menyelesaikan SPL berukuran kecil karena metode-metode langsung seperti metode eliminasi Gauss lebih efisien daripada metode iteratif. Akan tetapi, untuk SPL berukuran besar dengan persentase elemen nol pada matriks koefisien besar, teknik iterasi lebih efisien daripada metode langsung dalam hal penggunaan memori komputer maupun waktu komputasi. Dengan metode iterasi Gauss-Seidel sesatan pembulatan dapat diperkecil karena dapat meneruskan iterasi sampai solusinya seteliti mungkin sesuai dengan batas sesatan yang diperbolehkan.
Metode iterasi Gauss-Seidel untuk menyelesaikan sistem persamaan linear
Suatu sistem persamaan linier terdiri atas sejumlah berhingga persamaan linear dalam sejumlah berhingga variabel. Menyelesaikan suatu sistem persamaan linier adalah mencari nilai-nilai variabel yang belum diketahui yang memenuhi semua persamaan linier yang diberikan.
Rumus iterasi untuk hampiran ke-k pada metode iterasi Gauss-Seidel adalah sebagai berikut. Untuk i = 1, 2, …, n dan k = 1, 2, 3, …,

Algoritma Iterasi Gauss-Seidel
Untuk menyelesaikan sistem persamaan linier AX = b dengan A adalah matriks koefisien n × n , b vektor konstanta n × 1 , dan X vektor n × 1 yang perlu di cari.
INPUT : n, A, b dan hampiran awal Y = (y1 y2 y3 ...yn)T, batas toleransi T dan maksimum iterasi N.
OUTPUT : X = (x1 x2 x3 ...xn)T atau pesan "gagal".
LANGKAH-LANGKAH :
1. Set penghitung iterasi k = 1
2. WHILE k <= N DO
(a) FOR i = 1, 2, 3, ..., n, hitung :
(b) Set X = (x1 x2 x3 ...xn)T
(c) IF ||X - Y|| < T THEN STOP
(d) Tambah penghitung iterasi, k = k + 1
(e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) Set Y = (y1 y2 y3 ...yn)T
3. Tulis pesan "metode gagal setelah N iterasi"
4. STOP.
Implementasi dengan MATLAB
function [X1,g,H] = seidel(A,b,X0,T,N)
H = X0';
n = length(b);
X1 = X0 ;
for k=1:N,
for i=1:n,
S=b(i)-A(i,1:i-1)*X1(1:i-1)-A(i,i+1:n)*X0(i+1:n);
X1(i)=S/A(i,i);
end
g=abs(X1-X0);
err=norm(g);
relerr=err/(norm(X1)+eps);
X0=X1;
H=[H,X0'];
if(err<T)|(relerr<T),break,end
end
Contoh
Sebagai gambaran misalkan mencari penyelesaian SPL
10x1 - x2 +2x3=6
-x1+11x2-x3+3x4=25
2x1-x2+10x3-x4=-11
3x2-x3+8x4=15
Berikut pemakaian fungsi MATLAB seidel untuk penyelesaian soal di atas dan keluaran yang diperoleh :
>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8]
A =
   10    -1     2     0
   -1    11    -1     3
    2    -1    10    -1
    0     3    -1     8
>> b=[6;25;-11;15]
b =
    6
   25
  -11
   15
>> X0=[0;0;0;0]
X0 =
    0
    0
    0
    0
>> T=0.0001;N=25;
>> [X,g,H]=seidel(A,b,X0,T,N)
X =
   1.0000
   2.0000
  -1.0000
   1.0000
g =
 1.0e-004 *
   0.8292
   0.2017
   0.2840
   0.1111
H =
 Columns 1 through 5
        0         0         0         0    0.6000
 Columns 6 through 10
   2.3273   -0.9873    0.8789    1.0302    2.0369
 Columns 11 through 15
  -1.0145    0.9843    1.0066    2.0036   -1.0025
 Columns 16 through 20
   0.9984    1.0009    2.0003   -1.0003    0.9998
 Columns 21 through 25
   1.0001    2.0000   -1.0000    1.0000    1.0000
 Columns 26 through 28
   2.0       -1.0000    1.0000
Proses iterasi dapat diulangi sampai tingkat keakuratan yang diinginkan tercapai, penyelesaian eksak contoh di atas adalah (1, 2, -1, 1).
 (Munir, R. 2003. Metode Numerik. Informatika. Bandung.)


Thanks,,,, :-)

Tugas Pengganti Kuliah T. Komputasi (21 Maret 2013)_Perulangan dan Percabangan di MATLAB



Perulangan dan Percabangan di MATLAB

                                         

*Perulangan pada MATLAB


perulangan itu adalah jenis pengontrol yang berguna untuk mengefisiensikan penulisan skrip program, khususnya untuk program2 yang membutuhkan proses berulang-ulang. Perulangan ini juga sering disebut sebagai iterasi atau looping.


for variabel = mulai:interval:akhir
perintah-perintah
end


% --------------------------------
% Program latihan 2
% Matlab Programming
% --------------------------------

clear all;
clc;

disp('---------------------');
disp('Program latihan');
disp('---------------------');

ndat = input ('batas iterasi = ');
for n= 1:ndat
for m=ndat:-1:1

a(a(n,m)=n^2+5*m)

end;

end;


setelah selesai mengetik program diatas, pastikan anda simpan di direktori mana saja, misalnya c:/latihanku, dengan nama latihan03.

setelah menyimpan file tersebut...sekarang anda kembali ke tampilan awal MATLAB...trus ketikkan diCOMMAND WINDOWnya MATLAB

*Struktur Kontrol dan Percabangan pada Matlab

1.   konditional percabangan
A. menggunakan if
(if...else if...else..end)
B. menggunakan switch
jika tidak ada pernyataan yang di eksekusi pada case 1-n maka di taruh pada otherwise.
contoh:

switch nama
case a
"pernyataan"
otherwise
"pernyataan"

2.   perulangan
A. (for..end)
contoh
for i=1:10
if rem(i,2)==0
disp(i)
end
end;
maka akan tampil
2
4
6
8
10
B. while
(while..end)
contoh
i=10
while (i>=1)
if rem(i,2)==1
disp(i)
end
i=i+1;
end;

maka akan tampil
9
7
5
3
1



Thanks,,,, :-)

Tugas Pengganti Kuliah T. Komputasi (21 Maret 2013)_Langkah-langkah Membuat Program di MATLAB P



Langkah – langkah Membuat Program di MATLAB
1. Siapkan perangkat yang diperlukan.
Ø  Siapkan PC/Laptop yang telah tersedia perangkat multimedia (SoundCard, Microphone, Headset, dan Speaker Active ).
Ø  Sistem Operasi Windows dan Perangkat Lunak MATLAB yang dilengkapi dengan tool box DSP.
2. Langkah Menggunakan MATLAB.
Ø  Memulai MATLAB
Perhatikan Desktop pada layar monitor PC/Laptop anda, kemudian cari dan double-click pada shortcut icon MATLAB.
Gambar : Icon MATLAB
Selanjutnya anda akan mendapati tampilan awal pada MATLAB.

Gambar : Tampilan awal MATLAB
3. Cara menggunakan atau membuat Program di MATLAB langsung dari Command Window dan M file editor.
·         Dari Command Window :
§  cocok untuk pemula.
§  Perintah di ketik perBaris,Enter, dan langsung di Eksekusi.
§  Gunakan tanda keatas (↑) dan  kebawah (↓) untuk melihat perintah yang telah diketikkan sebelumnya.
§  Jika telah selesai mengetikkan perintah, dan tidak diakhiri dengan tanda titik koma ( ; ) maka perintah tadi akan langsung di eksekusi atau langsung tampil (di assign ke variable ans),jika ada tanda titik koma ( ; ) maka perintah tadi tidak akan langsung di eksekusi atau di tampilkan.
§  Nilai yang digunakan adalah nilai terakhir pada variable.
Kelemahan :
» Sulit mengevaluasi perintah secara keseluruhan.
» jika ada perubahan nilai pada beberapa variabel.
Contoh Program dari Command Window :
Contoh Soal :
Hitung Luas persegi panjang berikut p= 20 dan l = 10 ?
Dalam command window dapat di tulis sebagai berikut.

• Menggunakan M file :
° Caranya : Click file -> pilih New -> pilih Blank M-file .

Gambar : Tampilan M file editor.
• Kemudian pada M file editor buat program yang di inginkan.

Hasil Program di Command Window seperti berikut.
 



Thanks,,,,:-)