KT = 450; KP = 6; KY = 80; steps = 2*KT*KP; T = KT*KP; dt = T / steps; h = 1; D_a = 0.01; D_b = 0.3; D_c = 0.002; r_a = 0.08; r_b = 0; r_c = 0.01; b_a = 0.01; b_b = 0.08; b_c = 0; s_a = 0.1; s_b = 0; s_c = 1; G_a = 1; G_b = 1; G_c = 1; % FIXME: this works only because G_* is 1 a = ones(steps/KP, KY); b = ones(steps/KP, KY); c = ones(steps/KP, KY); dt = 1; h = 1; na = zeros(1, KY); nb = zeros(1, KY); nc = zeros(1, KY); s = r_a * (1 + 0.1 * (rand(1,KY)-0.5)); for n=1:steps/KP for k=1:KP oa = a(n,:); ob = b(n,:); oc = c(n,:); for j=1:KY ooa = oa(j); oob = ob(j); ooc = oc(j); if j == 1 j_links = j; else j_links = j - 1; end if j == KY j_rechts = j; else j_rechts = j + 1; end dra = 1 - dt * r_a - 2 * dt * D_a; drb = 1 - dt * r_b - 2 * dt * D_b; drc = 1 - dt * r_c - 2 * dt * D_c; aq = s(j) * oob * ((ooa^2 + b_a) / (1 + s_a * ooa^2)) / (s_b + s_c * ooc); olddecaydiffA = dra * ooa + dt * D_a * (oa(j_links) + oa(j_rechts)); olddecaydiffB = drb * oob + dt * D_b * (ob(j_links) + ob(j_rechts)); olddecaydiffC = drc * ooc + dt * D_c * (oc(j_links) + oc(j_rechts)); na(j) = olddecaydiffA + dt * aq; nb(j) = olddecaydiffB - dt * aq + dt * b_b; nc(j) = olddecaydiffC + dt * r_c * ooa; end a(n,:) = na; b(n,:) = nb; c(n,:) = nc; end a(n+1,:) = na; b(n+1,:) = nb; c(n+1,:) = nc; end subplot(1,3,1), imagesc(a); subplot(1,3,2), imagesc(b); subplot(1,3,3), imagesc(c); function y = makecolor(x) % makecolor: return a vector containing 64 steps of the actual color percentage if (x == 0) y = zeros(64,1); else y = [0:x/63:x]'; end end colormap([makecolor(0.1), makecolor(0.7), makecolor(1)])