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