Diffusion Mathematics: Difference between revisions

From bradwiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:


<syntaxhighlight lang="matlab" line start="1" highlight="1" enclose="div">
<syntaxhighlight lang="matlab" line start="1" highlight="1" enclose="div">
%% MATLAB CODE %%
Ndots = 100; Nsteps = Ndots;
Ndots = 100; Nsteps = Ndots;
D = .5;                    % Diffusion Rate
D = .5;                    % Diffusion Rate
dm = 2;                    % dimensions
dm = 2;                    % dimensions
Line 12: Line 12:


for t = 1:Nsteps
for t = 1:Nsteps
   [xyds] = GENSTEP(Ndots, k);
   xyds = (k * randn(2,Ndots));
  [xyl] = ADDSTEP(Ndots, xyds, xyl);
end
%===========================================================%
function [xyds] = GENSTEP(Ndots, k)
    xyds = (k * randn(2,Ndots));
end
 
function [xyl] = ADDSTEP(Ndots, xyds, xyl)
   for j = 1:Ndots
   for j = 1:Ndots
     xyl(:,j) = xyl(:,j)+xyds(:,j);
     xyl(:,j) = xyl(:,j)+xyds(:,j);

Revision as of 14:43, 3 November 2013

In no particular order, here are some common mathematical concepts often found in diffusion modeling. To simulate and quantify simple diffusion (e.g. 2D Brownian Motion) only requires a working knowledge of basic statistics and trigonometry. Modeling complex forms of diffusion requires the use of vector calculus and differential geometry. There is a thin boundary between simple and complex diffusion and the math becomes dense very quickly. For example, using just a few lines of code, one can easily simulate stochastic diffusion on a flat 2D surface:

%% MATLAB CODE %%
Ndots = 100; Nsteps = Ndots;
D = .5;                     % Diffusion Rate
dm = 2;                     % dimensions
tau = 1;                    % time step
k = sqrt(dm*D*tau);         % stdev of D's step size distribution
xyl = ones(2,Ndots); xyds = xyl;

for t = 1:Nsteps
   xyds = (k * randn(2,Ndots));
   for j = 1:Ndots
     xyl(:,j) = xyl(:,j)+xyds(:,j);
   end
   gscatter(xyl(1,:),xyl(2,:));
end




Common Mathematical Concepts in Diffusion

Laplace operator


In mathematics the Laplace operator or Laplacian is a differential operator given by the divergence of the gradient of a function on Euclidean space. It is usually denoted by the symbols ∇·∇, ∇2 or ∆. The Laplacian ∆f(p) of a function f at a point p, up to a constant depending on the dimension, is the rate at which the average value of f over spheres centered at p, deviates from f(p) as the radius of the sphere grows.