RE: plot thousands(?) of trajectories in single graph.
- To: mathgroup at smc.vnet.net
- Subject: [mg50507] RE: [mg50489] plot thousands(?) of trajectories in single graph.
- From: sean kim <sean_incali at yahoo.com>
- Date: Wed, 8 Sep 2004 05:15:25 -0400 (EDT)
- Reply-to: sean_incali at yahoo.com
- Sender: owner-wri-mathgroup at wolfram.com
Hi David, I was wondering... I understand thye With part in the code. but What stumps me is the use of ndsolution[] part. it is a function defined within a function(KimMultiplot)? how come? is it so that when you call it using... Table[Draw[Evaluate[var[tt] /. ndsolution[]], {tt, 0, 250}], {i, 1, number}] you would get each iteration to use the current ndsolution? ( as opposed to the solution from previous iteration) your packages are great. I really appreciate them. thanks in adavnce for any insights. sean --- David Park <djmp at earthlink.net> wrote: > Sean, > > With DrawGraphics I would do it the following way. I > don't think it would > look good to have all the functions plotted on the > same graph because the > way they spread out they would cover each other up. > > Needs["DrawGraphics`DrawingMaster`"] > > Clear[KimMultiplot]; > KimMultiplot[label_, number_, color_, title_] := > Module[{ndsolution}, ndsolution[] := > With[{k1 = Random[Real, {1/10, 5/10}], > k2 = Random[Real, {1/20, 5/20}]}, > NDSolve[{Derivative[1][a][t] == > (-k1)*a[t]*x[t], > Derivative[1][b][t] == (-k2)*b[t]*y[t], > Derivative[1][x][t] == > (-k1)*a[t]*x[t] + k2*b[t]*y[t], > Derivative[1][y][t] == > k1*a[t]*x[t] - k2*b[t]*y[t], a[0] == 1, > b[0] == 1, x[0] == 1, > y[0] == 0}, {a, b, x, y}, {t, 0, > 250}][[1]]]; > Draw2D[{color, Table[Draw[Evaluate[label[tt] /. > ndsolution[]], > {tt, 0, 250}], {i, 1, number}]}, PlotRange > -> All, > Frame -> True, PlotLabel -> title, Background > -> Linen, > ImageSize -> 450]]; > > KimMultiplot[a, 100, Black, "100 evaluations of > a[t]"]; > > KimMultiplot[b, 100, Red, "100 evaluations of > b[t]"]; > > KimMultiplot[x, 100, ForestGreen, "100 evaluations > of x[t]"]; > > KimMultiplot[y, 100, Blue, "100 evaluations of > y[t]"]; > > David Park > djmp at earthlink.net > http://home.earthlink.net/~djmp/ > > > > > From: sean kim [mailto:sean_incali at yahoo.com] To: mathgroup at smc.vnet.net > > hello group, > > I have a routein that solves a system of odes over a > parameter space thousands of times while randomly > varying the values. > > What I would like to do is take a variable and the > resulting solutions(however many routine has > generated > over the course of evaluation) and plot them on > single > graph. > > So you will get rather messy graph, but nonetheless > shows possible trajectories given system can yield. > > How do I go about doing this? > > I thought i could save the interpolating functions > and > then evaluate thousands at the end of a routine and > show together. But How do I save the interpolating > function? > > or do I plot with inside the module with > DisplayFunction-> Identity and then save the plot > and > DisplayTogether the thousands of graphs at the end > of > the routine. > > if doing thousands isn't possible, is it possible to > show hundreds of trajectories? > > thanks in advance for any insights. > > > sean > > code below is a example skeletal code for running > hundred random solutions of an ode system. > > > Do[ > Module[{}, > k1 = Random[Real, {1/10, 5/10}]; > k2 = Random[Real, {1/20, 5/20}]; > ndsolution = > NDSolve[{a'[t] == -k1 a[t] x[t], b'[t] == -k2 b[t] > y[t], x'[t] == -k1 a[t] x[t] + k2 b[t] y[t], y'[t] > == > k1 a[t] x[t] - k2 b[t] y[t], a[0] == 1, b[0] == 1, > x[0] == 1, y[0] == 0},{a, b, x, y}, {t, 0, > 250}][[1]]; > Plot[Evaluate[{a[t], b[t], x[t], y[t]} /. > ndsolution], > {t, 0, 250}, PlotRange -> All, PlotStyle -> > {{AbsoluteThickness[2], RGBColor[0, 0, 0]}, > {AbsoluteThickness[2], RGBColor[.7, 0, 0]}, > {AbsoluteThickness[2], RGBColor[0, .7, 0]}, > {AbsoluteThickness[2], RGBColor[0, 0, .7]}}, Axes -> > False, Frame -> True, PlotLabel -> StyleForm[A > StyleForm[" B", FontColor -> RGBColor[.7, 0, 0]] > StyleForm[" X", FontColor -> RGBColor[0, .7, > 0]]StyleForm[" Y", FontColor -> RGBColor[0, 0, .7]], > FontFamily -> "Helvetica", FontWeight -> "Bold"]]; > ] > ,{i, 100}] > > > > > > _______________________________ > Do you Yahoo!? > Win 1 of 4,000 free domain names from Yahoo! Enter > now. > http://promotions.yahoo.com/goldrush > > > > __________________________________ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail