Code untuk metode volume hingga Lax-Freidrichs pada persamaan Code untuk metode beda hingga grid kolokasi, dengan hampiran beda

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