randomly chosen parameters fails NDSolvewith a large ode system
- To: mathgroup at smc.vnet.net
- Subject: [mg43387] randomly chosen parameters fails NDSolvewith a large ode system
- From: sean kim <shawn_s_kim at yahoo.com>
- Date: Fri, 29 Aug 2003 07:15:47 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
hello group. this post is kinda long. and the cell that is causing me whole lotta problems is copied and pasted below. Thi scell has everythign that is needed to do the analysis that i'm talking about in this post. also I can email the notebook to anyone who's interested in seeing it. Please let me know if this post doesn't make much sense. I have an ode system with 47 parameters and 23 differential equation. To study its behaviours, I'm randomy choosing parameters that are within the reasonable ranges(4 orders of magnitude for most) the initial conditions are derived from algebraic system that arise from the ode systems with assupmtions that some variables must be 0 in the initial system. Combined with the assumption that, at equilibrium, fact that you have the time derviatives == 0 allows for the reduction of the system and thus allows solving for the initial values of the remaining variables.( granted that the system is balanced, which is the problem I had with the last solve errors I posted about not so long ago. That problem is troubleshot by adding terms into the systems that allows for creation and destruction of the terms. I can describe in more detail if anyone wants to see it.) This initial condition must allow the system to reach the equilibrium. But obviously in my hands, this appears not to be the case. ( well not the equilibrium that i was expecting I was expecting smooth rises and falls) It seems to me the system has two odd behaviours after having picked thousands of random parameters sets and analyzed the system. First is that it gives lotta errors and doesn't give any plots. Second is that it seems to show plots of b[t] and few other variables oscillating wildly all the while the y axis doesn't change in the values. ( they could in theory and in real life oscillate but the oscillations that the system was giving was something that was unreasonable) and above two behavior is quite consistent which makes me think something isn't right. I have copied and pasted the problematic cell at the end of this message. Iteration is for 5 loops in this particular cell but i have done a lot more and the consistency of the errors and the weird oscillation is one thing that remains constant. The following message from Mathematica 4.0 is an example of the first kind of behvaiour. Although I have seen other errors as well regarding suspected singularity. These are the errors I would like to learn to get rid of and the question of this post... I'm sure there are ways to turn the error messages off, but the mathemtica will still go through the bad parametersets? how do change this so that the mathematica doesn't do the bad parameter sets? what am I missing here? I could implement a simulated annealing or gradient descent for this system, but i would like to make sure the system is behaving in reasonably relevant manner. and with all these errors and oscillations, it's kinda hard to believe the system is doing something correct... NDSolve::"ndcf": "Repeated convergence test failure at t == 0.; unable to continue." InterpolatingFunction::"dmval": "Input value ({0.004166666666666667`}lies outside the range of data in the interpolating function. Extrapolation will be used." InterpolatingFunction::"dmval": "Input value 4056.6991572915795`} lies \ outside the range of data in the interpolating function. Extrapolation will be used." InterpolatingFunction::"dmval": "Input value ({8480.87998593737`lies outside the range of data in the interpolating function. Extrapolation will be used." General::"stop": "Further output of (InterpolatingFunction :: \"dmval\"\ will be suppressed during this calculation." as always any helpful suggestion is welcome and appreciated. thanks much in advance. sean ------------ the input cell is copied and pasted below. \!\(\* RowBox[{ RowBox[{ RowBox[{"odes", " ", "=", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ SuperscriptBox["b", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v1 - d1\ b[t] - bi\ k1\ b[t] + k2\ c[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["c", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(bi\ k1\ b[t] - k2\ c[t] - k3\ c[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["d", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k3\ c[t] - k4\ d[t]\ e[t] + k5\ f[t] + k6\ f[t] - k7\ d[t]\ i[t] + k8\ j[t] - k12\ d[t]\ k[t] + k13\ l[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["f", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k4\ d[t]\ e[t] - k5\ f[t] - k6\ f[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["j", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k7\ d[t]\ i[t] - k8\ j[t] - k9\ j[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["p", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v2 - d2\ p[t] - k19\ o[t]\ p[t] + k20\ q[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["n", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v7 - d7\ n[t] - k17\ m[t]\ n[t] + k18\ o[t] - k23\ n[t]\ s[t] + k24\ t[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["t", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k23\ n[t]\ s[t] - k24\ t[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["h", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v6 - d6\ h[t] - k10\ h[t]\ i[t] + k11\ k[t] + k22\ q[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["k", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k10\ h[t]\ i[t] - k11\ k[t] - k12\ d[t]\ k[t] + k13\ l[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["l", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k12\ d[t]\ k[t] - k13\ l[t] - k14\ l[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["u", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v3 - d3\ u[t] - k25\ m[t]\ u[t] + k26\ v[t] + k27\ v[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["e", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v4 - d4\ e[t] - k15\ e[t] - k4\ d[t]\ e[t] + k5\ f[t] - k28\ e[t]\ i[t] + k16\ w[t] + k29\ x[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["w", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k15\ e[t] + k27\ v[t] - k16\ w[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["g", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k6\ f[t] - k15\ g[t] + k16\ m[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["m", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k15\ g[t] - k16\ m[t] - k17\ m[t]\ n[t] + k18\ o[t] - k25\ m[t]\ u[t] + k26\ v[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["o", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k17\ m[t]\ n[t] - k18\ o[t] - k19\ o[t]\ p[t] + k20\ q[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["q", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k19\ o[t]\ p[t] - k20\ q[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["v", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k25\ m[t]\ u[t] - k26\ v[t] - k27\ v[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["x", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k28\ e[t]\ i[t] - k29\ x[t] - k30\ x[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["s", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v8 - d8\ s[t] - k23\ n[t]\ s[t] + k24\ t[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["i", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(v5 - d5\ i[t] - k7\ d[t]\ i[t] - k28\ e[t]\ i[t] - k10\ h[t]\ i[t] + k8\ j[t] + k9\ j[t] + k11\ k[t] + k14\ l[t] + k29\ x[t] + k30\ x[t]\)}], ",", RowBox[{ RowBox[{ SuperscriptBox["r", "\[Prime]", MultilineFunction->None], "[", "t", "]"}], "==", \(k21\ q[t]\)}]}], "}"}]}], ";"}], "\[IndentingNewLine]", "\[IndentingNewLine]", \(ics\ = \ {b[0] == v1/d1, p[0] == v2/d2, u[0] == v3/d3, w[0] == \((d5\ k15\ \((k29 + k30)\)\ v4)\)/\((k16\ \((d4\ d5\ k29 + d4\ d5\ k30 + k28\ k30\ v5)\))\), t[0] == \(k23\ v7\ v8\)\/\(d7\ d8\ k24\), k[0] == \(k10\ v5\ v6\)\/\(d5\ d6\ k11\), x[0] == \(k28\ v4\ v5\)\/\(d4\ d5\ k29 + d4\ d5\ k30 + k28\ k30\ v5\ \), n[0] == v7\/d7, h[0] == v6\/d6, s[0] == v8\/d8, e[0] == \(d5\ \((k29 + k30)\)\ v4\)\/\(d4\ d5\ k29 + d4\ d5\ k30 + \ k28\ k30\ v5\), i[0] == v5\/d5, c[0] == 0, d[0] == 0, f[0] == 0, j[0] == 0, q[0] == 0, g[0] == 0, m[0] == 0, l[0] == 0, o[0] == 0, v[0] == 0, r[0] == 0};\), "\[IndentingNewLine]", "\[IndentingNewLine]", \(vars\ = \ {b[t], c[t], d[t], f[t], j[t], p[t], n[t], t[t], h[t], k[t], l[t], u[t], e[t], w[t], g[t], m[t], o[t], q[t], v[t], x[t], s[t], i[t], r[t]};\), "\[IndentingNewLine]", "\[IndentingNewLine]", \(For[\ ii\ = \ 1, \ ii < 5, \ \[IndentingNewLine]np = \ {k1 -> \ \((Random[ Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {4, \ 8}])\), k2\ -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-7\), \ \(-4\)}])\), \ \ \[IndentingNewLine]k3 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {1, \ 3}])\), \ k4 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[ Integer, \ {5, \ 8}])\), \ \[IndentingNewLine]k5 -> \ \((Random[ Real, \ {1, \ 10}])\)*10^\ \((Random[ Integer, \ {\(-4\), \ \(-1\)}])\), \ k6 -> \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[ Integer, \ {1, \ 2}])\)\ , \[IndentingNewLine]k7 -> \ \((Random[ Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {1, \ 3}])\)\ , \ k8 -> \ \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\((Random[ Integer, \ {\(-7\), \ \(-4\)}])\), \[IndentingNewLine]k9 \ -> \ \((Random[Real, \ {19, \ 10}])\)*\ 10^\((Random[Integer, \ {\(-6\), \ \(-3\)}])\), k10 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[ Integer, \ {1, \ 3}])\), \ \ \[IndentingNewLine]k11 -> \ \((Random[ Real, \ {1, \ 10}])\)\ *\ 10^\((Random[Integer, \ {\(-7\), \ \(-4\)}])\), k12 -> \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[ Integer, \ {1, \ 3}])\), \ \[IndentingNewLine]k13 -> \((Random[ Real, \ {1, \ 10}])\)\ *\ 10^\((Random[Integer, \ {\(-7\), \ \(-4\)}])\), k14 -> \ \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]k15 \ -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {\(-4\), \ \(-1\)}])\), \ k16 -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {\(-4\), \ \(-1\)}])\), \ k17 -> \ \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {2, \ 5}])\)\ , \ k18 -> \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[ Integer, \ {\(-7\), \ \(-4\)}])\)\ , \ \[IndentingNewLine]k19 -> \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {3, \ 6}])\)\ , \ k20 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\((Random[ Integer, \ {\(-8\), \ \(-5\)}])\)\ , \ \ \[IndentingNewLine]k21 -> \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {1, \ 3}])\), k22\ -> \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\((Random[ Integer, \ {1, \ 3}])\), \ \[IndentingNewLine]k23 -> \ \((Random[ Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {3, \ 6}])\)\ , \ k24 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {\(-7\), \ \(-4\)}])\)\ , \ k25 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {3, \ 6}])\), \ k26 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[ Integer, \ {\(-7\), \ \(-5\)}])\)\ , \ \ \[IndentingNewLine]k27 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {1, \ 4}])\)\ , \ k28 -> \ \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {1, \ 3}])\), \ k29 -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[Integer, \ {\(-7\), \ \(-4\)}])\), \ k30 -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {\(-6\), \ \(-3\)}])\), v1 -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {\(-12\), \ \(-9\)}])\), d1 -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]v2 \ -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {\(-10\), \ \(-8\)}])\), d2 -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]v3 \ -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\((Random[Integer, \ {\(-11\), \ \(-8\)}])\), \ d3 -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]v4 \ -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {\(-10\), \ \(-8\)}])\), d4 -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[Integer, \ {\(-6\), \ \(-3\)}])\), v5 -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\((Random[Integer, \ {\(-10\), \ \(-8\)}])\), d5 -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]v6 \ -> \((Random[Real, \ {1, \ 10}])\)*\ 10^\((Random[Integer, \ {\(-10\), \ \(-8\)}])\), d6 -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]v7 \ -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\((Random[Integer, \ {\(-10\), \ \(-8\)}])\), d7 -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]v8 \ -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\((Random[Integer, \ {\(-10\), \ \(-8\)}])\), \ d8 -> \ \((Random[Real, \ {1, \ 10}])\)*\ 10^\ \((Random[ Integer, \ {\(-6\), \ \(-3\)}])\), \[IndentingNewLine]bi \ -> \ \((Random[Real, \ {1, \ 10}])\)\ *\ 10^\ \((Random[ Integer, \ {\(-10\), \(-5\)}])\)}; \[IndentingNewLine]\ \[IndentingNewLine]nics\ = \ ics /. \ np; \[IndentingNewLine]nodes = \ odes /. \ np; \[IndentingNewLine]Join[nodes, \ nics]; \[IndentingNewLine]Print["\< iteration = \>", ii\ , \ np, \ nics\ ]; \[IndentingNewLine]\[IndentingNewLine]soln\ = \ NDSolve[\ Join[nodes, \ nics], \ vars, \ {t, \ 0, \ 100000}, MaxSteps -> 1000000]; \[IndentingNewLine]\[IndentingNewLine]pb = \ Plot[Evaluate[b[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> b, \ DisplayFunction -> Identity]; \[IndentingNewLine]pc\ = \ \ Plot[ Evaluate[c[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> c, DisplayFunction -> Identity]; \[IndentingNewLine]pd\ = \ Plot[Evaluate[c[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> d, DisplayFunction -> Identity]; \[IndentingNewLine]pf\ = \ Plot[Evaluate[f[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> f, DisplayFunction -> Identity]; \[IndentingNewLine]pj = \ Plot[Evaluate[j[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> j, DisplayFunction -> Identity]; \[IndentingNewLine]pp\ = \ Plot[Evaluate[p[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> p, DisplayFunction -> Identity]; \[IndentingNewLine]pn\ = \ Plot[Evaluate[n[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> n, DisplayFunction -> Identity]; \[IndentingNewLine]pt\ = \ Plot[Evaluate[t[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> t, DisplayFunction -> Identity]; \[IndentingNewLine]ph\ = \ Plot[Evaluate[h[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> h, DisplayFunction -> Identity]; \[IndentingNewLine]pk\ = \ Plot[Evaluate[k[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> k, DisplayFunction -> Identity]; \[IndentingNewLine]pl = \ Plot[Evaluate[l[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> l, DisplayFunction -> Identity]; \[IndentingNewLine]pu\ = \ Plot[Evaluate[u[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> u, DisplayFunction -> Identity]; \[IndentingNewLine]pe = \ Plot[Evaluate[e[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> e, DisplayFunction -> Identity]; \[IndentingNewLine]pw\ = \ Plot[Evaluate[w[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> w, DisplayFunction -> Identity]; \[IndentingNewLine]pg\ = \ Plot[Evaluate[g[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> g, DisplayFunction -> Identity]; \[IndentingNewLine]pm\ = \ Plot[Evaluate[m[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> m, DisplayFunction -> Identity]; \[IndentingNewLine]po\ = \ Plot[Evaluate[o[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> o, DisplayFunction -> Identity]; \[IndentingNewLine]pq\ = \ Plot[Evaluate[q[t] /. \ soln], {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> q, DisplayFunction -> Identity]; \[IndentingNewLine]pv\ = \ Plot[Evaluate[v[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> v, DisplayFunction -> Identity]; \[IndentingNewLine]px\ = \ Plot[Evaluate[x[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> x, DisplayFunction -> Identity]; \[IndentingNewLine]ps\ = \ Plot[Evaluate[s[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> s, DisplayFunction -> Identity]; \[IndentingNewLine]pi\ = \ Plot[Evaluate[i[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> i, DisplayFunction -> Identity]; \[IndentingNewLine]pr\ = \ Plot[Evaluate[r[t] /. \ soln], \ {t, \ 0, \ 100000}, \ PlotRange -> Automatic, \ PlotLabel -> r, \ DisplayFunction -> Identity]; \[IndentingNewLine]\[IndentingNewLine]Show[ GraphicsArray[{{pb, pc, \ pd, pf}, {\ pj, pp, pn, pt}, \ {ph, pk, pl, pu}, {pe\ , pw\ , \ pg, pm}, {po\ , pq\ , pv\ , \ px}\ , \ {ps, pi, \ pr\ }}, \ ImageSize -> \ 750]]; \[IndentingNewLine]\[IndentingNewLine]Share[]; \ \[IndentingNewLine]\(ii++\)]\)}]\) end of cell ------------ __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com