Admin akan menyempurnakan dan memindahkan artikel pada blog ini secara bertahap ke :
Key Word : Matlab Code, Random Wolk, Difusi, Partikel
Dibawah ini merupakan code matlab untuk simulasi difusi partikel dengan metode random wolk
Gambar hasil program
%program diffusi partikel dengan random walk untuk 1 sumber partikel
%berdasarkan metode montecarlo dengan persamaan difusi einstein
%pergerakan partikel hanya bergantung pada temperatur sistem dan
%konsentrasi partikel
%partikel dipantulkan ketika menumbuk dinding
clear
clc;
%% inisialisasi keadaaan partikel
p = 20; %panjang sb-x
l = 20; %lebar sb-y
T = 300; %Temperatur (K)
n = 100; %jumlah partikel
N = 100; %time step
h = sqrt ( T / n ); %koefisien difusi
p = p/2;
l = l/2;
%% inisialisasi posisi awal partikel
x = zeros(N,n);
y = zeros(N,n);
for i = 1 : N
%% keadaan partikel untuk setiap time step
x(i+1,:) = x(i,:) + h * randn (1,n,1); %mencari posisi x untuk time step berikutnya
y(i+1,:) = y(i,:) + h * randn (1,n,1); %mencari posisi y untuk time step berikutnya
%pengkondisian pada syarat batas
for j= 1 : n
if x(i+1,j)<-p
x(i+1,j) = p; %partikel diteruskan ke bonderi kanan
elseif x(i+1,j)>p
x(i+1,j) = -p; %partikel diteruskan ke bonderi kiri
elseif y(i+1,j)<-l
y(i+1,j) = y(i,j); %partikel dipantulkan kembali dari bonderi
elseif y(i+1,j)>l
y(i+1,j) = y(i,j); %partikel dipantulkan kembali dari bonderi
else
x(i+1,j) = x(i+1,j); %keadaan pada bagian tengah
y(i+1,j) = y(i+1,j); %keadaan pada bagian tengah
end
end
%% menampilkan figur
plot(x(i,:),y(i,:),'b*');
axis([-p p -l l])
getframe;
pause(0.1)
end
0 comments:
Post a Comment