LAMPIRAN
Berikut merupakan code program MATLAB untuk masing-masing simulasi numeris pada Bab III dan Bab IV.
1. Code untuk metode volume hingga Lax-Freidrichs pada persamaan
adveksi Gambar 3.3.
clc; clear all
; Nx = 400;
banyaknya langkah pada ruang x1 L = 5;
Dx = 2LNx; ukuran langkah pada ruang x
x1 = -L:Dx:L; membuat langkah pada ruang dengan dx adalah
jarak dari titik a ke b x = x11:Nx+Dx2;
membuat langkah pada ruang x1 sehingga jarak langkah semakin kecil
Dt = Dx; ukuran langkah waktu t
unew=zeros1,Nx; tempat penyimpanan perhitungan u
u0=0x; untuk penyimpanan nilai awal u
for i=1:Nx
if xi1
u0i=1; else
u0i=0; end
end plotx,u0
t=0; waktu awal
un=u0; untuk input iterasi metode volume hingga
ue=0u0; untuk penyimpanan data perhitungan solusi
eksak a=1;
nilai konstan a tstop=1.5;
waktu t berhenti while
ttstop-10eps for
n=1:Nx SOLUSI NUMERIS
unp1=0un; untuk penyimpanan data perhitungan
for i=2:Nx-1
Fkanan=0.5auni+1+auni-Dx2Dtuni+1- uni;
Fkiri=0.5auni+auni-1-Dx2Dtuni-uni-1; unp1i=uni-DtDxFkanan- Fkiri;
end
perbarui nilai batasnya unp11=0;
unp1Nx=0; end
t=t+Dt; update waktu
figure1 plotx,unp1,
LineWidth ,2
titlesprintf kecepatan numeris saat t=4.3f
,t ylim[0,1.2]
pause0.001 un=unp1 ;
end
2. Code untuk metode beda hingga grid kolokasi, dengan hampiran beda
pusat untuk diskritisasi ruang dan hampiran beda maju untuk diskritisasi waktu pada persamaan akustik Gambar 4.2.
close all
; clear all
; clc; Nx = 400;
banyaknya langkah pada ruang x1 L = 5;
Dx = 2LNx; ukuran langkah pada ruang x
x1 = -L:Dx:L; membuat langkah pada ruang dengan dx adalah
jarak dari titik a ke b x = x11:Nx+Dx2;
membuat langkah pada ruang x1 sehingga jarak langkah semakin kecil
Dt = 0.1Dx; ukuran langkah waktu t
rho=1; massa jenis fluida
c=1; kecepatan rambat gelombang
u0=0x; untuk penyimpanan nilai awal u
p0=0x; untuk penyimpanan nilai awal p
for i=1:Nx
if xi 0
u0i=0; p0i=1;
else u0i=0;
p0i=0.1; end
end plotx,p0;
plotx,u0; t=0;
waktu awal tstop=1.5;
u=u0; p=p0;
while ttstop-0.5Dt
for i=2:Nx-1
pnewi=pi-Dt2Dxrhoc2ui+1-ui-1; iterasi
Euler tekanan terhadap waktu unewi=ui-Dt2Dx1rhopi+1-pi-1;
iterasi Euler kecepatan terhadap waktu
end update nilai tekanan dan kecepatan yg baru
p = pnew; u = unew;
syarat batas p1 = 1;
u1 = 0; pNx = 0.1;
uNx = 0; update waktu
t = t + Dt; gambar hasil
figure1 subplot2,1,1
plotx,p, LineWidth
,2 titlesprintf
tekanan pada saat t=4.3f ,t
xlim[-L L] ylim[0 2]
subplot2,1,2 plotx,u,
LineWidth ,2
titlesprintf kecepatan pada saat t=4.3f
,t xlim[-L L]
ylim[0 2] pause0.01
end
3. Code untuk metode beda hingga grid kolokasi, dengan hampiran beda