Re: plot thousands(?) of trajectories in single graph.
- To: mathgroup at smc.vnet.net
- Subject: [mg50505] Re: [mg50489] plot thousands(?) of trajectories in single graph.
- From: "David Park" <djmp at earthlink.net>
- Date: Wed, 8 Sep 2004 05:15:18 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
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