Multiple Executions of .nb file part2
- To: mathgroup at smc.vnet.net
 - Subject: [mg90484] Multiple Executions of .nb file part2
 - From: "Dave" <david.fourie at ncl.ac.uk>
 - Date: Thu, 10 Jul 2008 06:38:43 -0400 (EDT)
 - Organization: Newcastle University
 
Hi,
I think I maybe over simplified my situation. My project uses a series of 
nested differential equations. These run over a given time and then print 
either a graph or the plot points or both (depending on my needs).
An example of the code is:
****************************
Off[General::spell]
time = 500;
SmV = -80;
PD2mnax0[PD2u_] := 1/(1 + Exp[-(PD2u + 24.7)/5.29]);
PD2hnax0[PD2u_] := 1/(1 + Exp[(PD2u + 48.9)/5.18]);
PD2mk10x[PD2u_] := 1/(1 + Exp[-(PD2u + 14.2)/11.8]);
PD2taumnax[PD2u_] := 1.32 - 1.26/(1 + Exp[-(PD2u + 120)/25]);
PD2tauhnax[PD2u_] := (0.67/(1 + Exp[-(PD2u + 62.9)/10]))*(1.5 + 1/(1 + Exp[(
PD2u + 34.9)/3.6]));
PD2taumk1[PD2u_] := 7.2 - 6.4/(1 + Exp[-(PD2u + 28.3)/19.2]);
solution = NDSolve[{
PD2mnax'[t] == (PD2mnax0[PD2z[t]] - PD2mnax[t])*(1/
PD2taumnax[PD2z[t]]), PD2mnax[0] == PD2mnax0[-80]*(1/
PD2taumnax[-80]), PD2hnax'[t] == (PD2hnax0[PD2z[t]] - PD2hnax[
t])*(1/PD2tauhnax[PD2z[
t]]), PD2hnax[
0] == PD2hnax0[-80]*(1/PD2tauhnax[-80]),
PD2mkx'[t] == (PD2mk10x[PD2z[t]] - \
PD2mkx[t])*(1/PD2taumk1[PD2z[t]]),
PD2mkx[0] == PD2mk10x[-80]*(1/PD2taumk1[-80]), PD2z'[t] == (-1*(0
+ 1*1100*(PD2mnax[t]^3)*PD2hnax[t]*(PD2z[t] - 50)
+ 1*150*(PD2mkx[t]^4)*(PD2z[t] + 80)
+ 1*0.00081*(PD2z[t] + 50)
)
*(1/6)),
PD2z[0] == SmV
},
{PD2z, PD2mnax,
PD2hnax, PD2mkx}, {t, 0, time}, Method -> Automatic, MaxSteps -> \
Infinity];
ParametricPlot[Evaluate[{t, PD2z[
t]} /. solution], {t, 0, time},
PlotPoints -> time, PlotRange -> {-80, 50}, PlotLabel -> "PD Axon"];
(*
mkw = Table[0, {time-1}];
For[w=1,w<(time),mkw[[w]]=PD2z[w]/.solution;w++];
mkw
*)
*******************************
This produces what looks like a flat line on a graph.
I need to run this file several times changing the variable SmV. Can I 
encapsulate the whole thing in a function? I have tried but it doesn't work.
fun[]:= (SmV;
***code***
)
fun[-80]
out- fun[-80]
Thank you
David Fourie