Anda di halaman 1dari 11

Musthafa Abdur Rosyied

14/363613/TK/41700

1. Direct Method

Source Code :

disp("=========================================
======================");
disp("Program Partial Differential Equation dengan Methode Direct
Method");
disp("
oleh:");
disp("
Musthafa Abdur Rosyied");
disp("
14/363613/TK/41700");
disp("=========================================
======================");
function [t]=directmethod(atas, bawah)
//mendefinisikan nilai samping kotak
sisiAtas = bawah; //mendefinisikan bahwa sisi atas adalah nim bawah
mahasiswa
sisiKiri = atas; //mendefinisikan bahwa sisi kiri adalah nim atas
mahasiswa
sisiBawah = 0;
sisiKanan = 50;
//Inisialisasi nilai samping pada kotak
for i=1:4,
t(1,i)=sisiAtas;
t(4,i)=sisiBawah;
t(i,1)=sisiKiri;
t(i,5)=sisiKanan;
end
x = -1.*[sisiKiri+sisiBawah ; sisiBawah ; sisiBawah + sisiKanan ; sisiKiri
+ sisiAtas ; sisiAtas ; sisiAtas+sisiKanan];
//mendefinisikan nilai T
T = [-4 1 0 1 0 0; 1 -4 1 0 1 0; 0 1 -4 0 0 1; 1 0 0 -4 1 0; 0 1 0 1 -4 1; 0 0 1
0 1 -4;]\x
n=6;
for j=2:3,
for k=4:-1:2,
t(j,k) = T(n);n=n-1;
end
end
x=linspace(0,25);
y=linspace(0,15);
plot(0,0,'*',0,5,'*',0,10,'*',0,15,'*',5,0,'*',10,0,'*',15,0,'*',20,0,'*',5,5,'*',5,10,
'*',5,15,'*',10,0,'*',10,5,'*',10,10,'*',10,15,'*',15,5,'*',15,10,'*',15,15,'*',20,5
,'*',20,10,'*',20,15,'*',25,0,'*',25,5,'*',25,10,'*',25,15,'*')

Musthafa Abdur Rosyied


14/363613/TK/41700

xnumb(0,0,t(4,1));xnumb(0,5,t(3,1));xnumb(0,10,t(2,1));xnumb(0,5,t(1,1))
;xnumb(5,0,t(4,2));xnumb(10,0,t(4,3));xnumb(15,0,t(4,4));xnumb(20,0,t(4,
5));xnumb(5,5,t(3,2));xnumb(5,10,t(2,2));xnumb(5,15,t(1,2));xnumb(10,5,t
(3,3));xnumb(10,10,t(2,3));xnumb(10,15,t(1,3));xnumb(15,5,t(3,4));xnumb
(15,10,t(2,4));xnumb(15,15,t(1,4));xnumb(20,5,t(3,5));xnumb(20,10,t(2,5)
);xnumb(20,15,t(1,5));
endfunction

Capture Hasil Eksekusi

Musthafa Abdur Rosyied


14/363613/TK/41700

Grafik 3D dan plot titik

Musthafa Abdur Rosyied


14/363613/TK/41700

2. Gauss Seidel

Source Code :

disp("=========================================
======================");
disp("Program Partial Differential Equation dengan Methode Gauss
Seidel");
disp("
oleh:");
disp("
Musthafa Abdur Rosyied");
disp("
14/363613/TK/41700");
disp("=========================================
======================");
function [t, n]=gaussSeidel(Atas, Bawah, galat)
sisiAtas = Bawah;
sisiKiri = Atas;
sisiBawah = 0;
sisiKanan = 50;
t = zeros(4,5); //inisialisasi kotak
iterasi = 0;

Musthafa Abdur Rosyied


14/363613/TK/41700

for i=1:4,
t(1,i)=sisiAtas; t(4,i)=sisiBawah; t(i,1)=sisiKiri; t(i,5)=sisiKanan;
end
galat_perkiraan = 100;
while galat_perkiraan > galat,
iterasi = iterasi+1;
galat_perkiraan = 0;
for i=3:-1:2,
for j=4:-1:2,
v = t(i,j);
t(i,j)=(t(i+1,j)+t(i-1,j)+t(i,j+1)+t(i,j-1))/4;
w = abs((t(i,j)-v)/t(i,j))*100;
if w > galat_perkiraan then
galat_perkiraan = w;
end
end
end
end
n=iterasi;
x=linspace(0,25);
y=linspace(0,15);
plot(0,0,'*',0,5,'*',0,10,'*',0,15,'*',5,0,'*',10,0,'*',15,0,'*',20,0,'*',5,5,'*',5,10,
'*',5,15,'*',10,0,'*',10,5,'*',10,10,'*',10,15,'*',15,5,'*',15,10,'*',15,15,'*',20,5
,'*',20,10,'*',20,15,'*',25,0,'*',25,5,'*',25,10,'*',25,15,'*')
xnumb(0,0,t(4,1));xnumb(0,5,t(3,1));xnumb(0,10,t(2,1));xnumb(0,5,t(1,1))
;xnumb(5,0,t(4,2));xnumb(10,0,t(4,3));xnumb(15,0,t(4,4));xnumb(20,0,t(4,
5));xnumb(5,5,t(3,2));xnumb(5,10,t(2,2));xnumb(5,15,t(1,2));xnumb(10,5,t
(3,3));xnumb(10,10,t(2,3));xnumb(10,15,t(1,3));xnumb(15,5,t(3,4));xnumb
(15,10,t(2,4));xnumb(15,15,t(1,4));xnumb(20,5,t(3,5));xnumb(20,10,t(2,5)
);xnumb(20,15,t(1,5));
endfunction

Capture Hasil Eksekusi

Musthafa Abdur Rosyied


14/363613/TK/41700

Grafik 3D dan plot titik

Musthafa Abdur Rosyied


14/363613/TK/41700

3. Lieberman

Source Code :

Musthafa Abdur Rosyied


14/363613/TK/41700

disp("=========================================
======================");
disp("Program Partial Differential Equation dengan Methode Lieberman");
disp("
oleh:");
disp("
Musthafa Abdur Rosyied");
disp("
14/363613/TK/41700");
disp("=========================================
======================");
function [t, n]=lieberman(Atas, Bawah, err)
sisiAtas = Bawah;
sisiKiri = Atas;
sisiBawah = 0;
sisiKanan = 50;
t = zeros(4,5); //inisialisasi kotak
iterasi = 0;
lamda = 1.5;
// Untuk inisialisasi samping kotak
for i=1:4,
t(1,i)=sisiAtas; t(4,i)=sisiBawah; t(i,1)=sisiKiri; t(i,5)=sisiKanan;
end
error_app = 100; // inisialisasi erro approximate awal = 100%
// Program akan terus berulang jika nilai error masih diatas dari
permintaan(err)
while error_app > err,
iterasi = iterasi+1; error_app = 0;
for i=3:-1:2,
for j=4:-1:2, v = t(i,j);
t(i,j)=(t(i+1,j)+t(i-1,j)+t(i,j+1)+t(i,j-1))/4;
t(i,j)= lamda*t(i,j)+(1-lamda)*v;
w = abs((t(i,j)-v)/t(i,j))*100;
if w > error_app then
error_app = w;
end
end
end
end
n= iterasi;
x=linspace(0,25);
y=linspace(0,15);
plot(0,0,'*',0,5,'*',0,10,'*',0,15,'*',5,0,'*',10,0,'*',15,0,'*',20,0,'*',5,5,'*',5,10,
'*',5,15,'*',10,0,'*',10,5,'*',10,10,'*',10,15,'*',15,5,'*',15,10,'*',15,15,'*',20,5
,'*',20,10,'*',20,15,'*',25,0,'*',25,5,'*',25,10,'*',25,15,'*')
xnumb(0,0,t(4,1));xnumb(0,5,t(3,1));xnumb(0,10,t(2,1));xnumb(0,5,t(1,1))
;xnumb(5,0,t(4,2));xnumb(10,0,t(4,3));xnumb(15,0,t(4,4));xnumb(20,0,t(4,
5));xnumb(5,5,t(3,2));xnumb(5,10,t(2,2));xnumb(5,15,t(1,2));xnumb(10,5,t

Musthafa Abdur Rosyied


14/363613/TK/41700

(3,3));xnumb(10,10,t(2,3));xnumb(10,15,t(1,3));xnumb(15,5,t(3,4));xnumb
(15,10,t(2,4));xnumb(15,15,t(1,4));xnumb(20,5,t(3,5));xnumb(20,10,t(2,5)
);xnumb(20,15,t(1,5));
endfunction

Capture Hasil Eksekusi

Grafik 3D dan plot titik

Musthafa Abdur Rosyied


14/363613/TK/41700

Musthafa Abdur Rosyied


14/363613/TK/41700

Anda mungkin juga menyukai