Transfer Panas Di Matlab: All All
Transfer Panas Di Matlab: All All
%------------------------------------------------------------------------
%--- Heat Equation di 2D-------------------------------------
%--- Solves Ut=alpha*(Uxx+Uyy)-------------------------------------------
%------------------------------------------------------------------------
clc;
close all;
clear all;
%--dimensi...........................................................
N = 51;
DX=0.1; % ukuran langkah
DY=0.1;
Nx=5;
Ny=5;
X=0:DX:Nx;
Y=0:DY:Ny;
alpha=5;
%--batas kondisi----------------------------------------------------
U(1:N,1:N) = 0 ;
U(1,1:N) = 100;
U(N,1:N) = 0;
U(1:N,1) = 0;
U(1:N,N) = 0;
%--kondisi awal------------------------------------------------------
Umax=max(max(U));
%-------------------------------------------------------------------------
fram=0;
Ncount=0;
loop=1;
while loop==1;
ERR=0;
U_old = U;
for i = 2:N-1
for j = 2:N-1
Residue=(DT*((U_old(i+1,j)-2*U_old(i,j)+U_old(i-1,j))/DX^2 ...
+ (U_old(i,j+1)-2*U_old(i,j)+U_old(i,j-1))/DY^2) ...
+ U_old(i,j))-U(i,j);
ERR=ERR+abs(Residue);
U(i,j)=U(i,j)+Residue;
end
end
if(Ncount>M)
loop=0;
disp(['solusi tidak mencapai kondisi mapan ',num2str(M),...
'time steps'])
end
else
loop=0;
disp(['solusi mencapai kondisi mapan di ',num2str(Ncount) ,'time steps'])
end
end
%------------------------------------------------------------------------
%--menampilkan film difusi panas------------------------------------
movie(F,fram,1)
%------END---------------------------------------------------------------
Schrodinger di Matlab
dpsi=dpsidt(psi,dx);
k1=dt*dpsi;
dpsi2=dpsidt(psi+k1/2,dx);
k2=dt*dpsi2;
dpsi3=dpsidt(psi+k2/2,dx);
k3=dt*dpsi3;
psi=psi+(1/6)*k1+(2/3)*k2+(1/6)*k3;
% Simulation
if rem(i,10/dx)==0 || i==1
box2=plot(x,real(psi),'r');
pemodelan gelombang 2D
subplot(2,1,2)
p2 = surf(X,Y,E(:,:,j));
title(sprintf('Absolute error at t = %1.2f',t(j)),'Fontsize',11);
xlabel('x','Fontsize',11); ylabel('y','Fontsize',11);
zlabel(sprintf('E(x,y,t = %1.2f)',t(j)),'Fontsize',11);
axis ([0 1 0 1 0 max_e]);
pause(0.001);
hold on;
if(j~=length(t))
delete(p1);
delete(p2);
end
end