Program Matlab Persamaan Transport 2 Dimensi jika diketahui koefisien afeksi (laju) dan Koefisien difusi pada arah x dan y
clc;
clear;
disp('----------------------------------------------------')
disp('Program Persamaan Transport 2 Dimensi non-dimesional')
disp(' dengan koefisien afeksi(laju) dan koefisien difusi')
disp('----------------------------------------------------')
disp('syarat awal : f(x)=sin(x)*cos(y)')
disp('syarat batas : u(x,0,t)= 0')
disp(' u(x,1,t)= 0')
disp(' u(0,y,t)= 0')
disp(' u(1,y,t)= 1')
disp(' ')
%% Definisi variabel Non-Dimensional
X=1; %panjang arah x
Y=1; %lebar arah y
T=1; %waktu akhir
%% Input Nilai Konstanta dan Banyaknya Segmen
disp('Input nilai koefisien afeksi dan koefisien difusi')
flag=0;
while flag==0
alpha_x=input('Masukkan koefisien afeksi(laju) alpha(x) = ');
if alpha_x<=0
disp('Koefisien alpha(x) harus positif')
else
break
end
end
while flag==0
alpha_y=input('Masukkan koefisien afeksi(laju) alpha(y) = ');
if alpha_y<=0
disp('Koefisien alpha(y) harus positif')
else
break
end
end
while flag==0
beta_x=input('Masukkan koefisien difusi beta(x) = ');
if beta_x<=0
disp('Koefisien beta(x) harus positif')
else
break
end
end
while flag==0
beta_y=input('Masukkan koefisien difusi beta(y) = ');
if beta_y<=0
disp('Koefisien beta(y) harus positif')
else
break
end
end
disp(' ')
disp('Input banyaknya segmen')
while flag==0
k=input('Masukkan banyaknya segmen pada x dan y = ');
if k<=0 || ceil(k)-k>0
disp('Banyaknya segmen harus bulat positif')
else
break
end
end
while flag==0
maxn=input('Masukkan banyaknya segmen waktu = ');
if maxn<=0 || ceil(maxn)-maxn>0
disp('Banyaknya segmen waktu harus bulat positif')
else
break
end
end
dx=X/k;
dy=Y/k;
dt=T/maxn;
%% Syarat Kestabilan
P=beta_x*dt/dx^2;
Q=beta_y*dt/dy^2;
R=alpha_x*dt/dx;
S=alpha_y*dt/dy;
disp(' ')
if P+Q+R+S<=1/2
disp('Kondisi Kestabilan : Stabil')
else
disp('Kondisi Kestabilan : Tidak stabil')
end
%% Grid Komputasi
for j=1:k+1
y(j)=(j-1)*dy;
for i=1:k+1
x(i)=(i-1)*dx;
u(i,j,1)=sin(pi*x(i))*cos(pi*y(j)); %syarat awal
end
end
for n=1:maxn+1;
waktu(n)=(n-1)*dt;
for j=1:k+1
for i=1:k+1
u(1,j,n)=0; %syarat batas
u(i,1,n)=0;
u(i,k+1,n)=0;
u(k+1,j,n)=1;
end
end
end
%% Penyelesaian dengan metode FTCS
for n=1:maxn
for j=2:k
for i=2:k
u(i,j,n+1)=(P+R)*u(i+1,j,n)+(Q+S)*u(i,j+1,n)+P*u(i-1,j,n)+Q*u(i,j-1,n)+(1-2*P-2*Q-R-S)*u(i,j,n);
end
end
end
%% output plot tiga dimensi keadaan panas pada akhir waktu
mesh(x,y,u(:,:,maxn)')
xlabel('Panjang')
ylabel('Lebar')
zlabel('Suhu')
title('Grafik Penyebaran Panas Persamaan Transport 2 Dimensi')

0 komentar:
Post a Comment