% % hybrid Euler on the active fork with soma % function hefork(dt,Tfin,t1,t2,I0,pinc) a = 1e-4*[1 1 1]; % 1e-3*[1 1/2 2]; ell = 0.02*[1 1 1]; %[1 1 2]; dx = .01; %dx = 0.2; N = ell/dx; A3 = 2*pi*a(3)*dx; As = 4*pi*1e-6; rho = A3/As; R2 = 0.15; % 0.034; gL = 0.3; Cm = 1; tau = Cm/gL; lam = a/(2*R2*gL)/dx^2; % lammda^2 r = a/a(3); Hd = [2*lam(1)*ones(1,N(1)) 2*lam(2)*ones(1,N(2)) 2*lam(3)*ones(1,N(3)+1)]; Hd(1) = lam(1); Hd(N(1)+1) = lam(2); Hd(N(1)+N(2)+1) = lam*r'; Hd(end) = rho*lam(3); Hlen = length(Hd); Hu = [-lam(1)*ones(1,N(1)-1) 0 -lam(2)*ones(1,N(2)) -lam(3)*ones(1,N(3))]; Hl = [-lam(1)*ones(1,N(1)-1) 0 -lam(2)*ones(1,N(2)-1) -r(2)*lam(2) -lam(3)*ones(1,N(3))]; Hl(end) = rho*Hl(end); H = spdiags( [[Hl 0]' Hd' [0 Hu]'], -1:1, Hlen, Hlen); H(N(1)+N(2)+1,N(1)) = -r(1)*lam(1); H(N(1),N(1)+N(2)+1) = -lam(1); %I = speye(Hlen); %H = dt*H/tau; dH = diag(H); vK = -6; % mV vNa = 127; % mV vCl = 3; % mV GK = 36; % mS/(cm)^2 GNa = 120; % mS/(cm)^2 GL = 0.3; % mS/(cm)^2 GK = GK/GL; GNa = GNa/GL; %Bb = I+(I+H)*(dt/tau); %[L,U] = lu(Bb); %keyboard x3 = 0:dx:ell(3); x1 = ell(3):dx:ell(3)+ell(1); x2 = ell(3):dx:ell(3)+ell(2); v = zeros(Hlen,1); % initial conditions rhs = zeros(Hlen,1); e = ones(Hlen,1); n = 0.3177*e; m = 0.0529*e; h = 0.5961*e; t = 0; tcnt = 0; x = linspace(0,ell(3)+max(ell(1:2)),Hlen); %plot3(x,t*ones(Hlen,1),v) %hold on %stimloc = N(1)+N(2)+5; stimloc = round(N(1)/2); recs = round([N(1)/10 stimloc N(1)+N(2)/2 N(1)+1]); %vrecs(:,1) = v(recs); while (t <= Tfin) t = t + dt; Istim = I0*(t>t1)*(t