       Re: Plot3D with NDSolve

• To: mathgroup at smc.vnet.net
• Subject: [mg81665] Re: Plot3D with NDSolve
• From: Szabolcs Horvát <szhorvat at gmail.com>
• Date: Mon, 1 Oct 2007 04:43:14 -0400 (EDT)
• References: <fdnlg5\$klu\$1@smc.vnet.net>

```sean_incali wrote:
> Hello group,
>
> Let's say I can solve the following DE that depends on 2 paparmeters a
> and b, and plot it accordingly.
>
> eqn = y'[x] == b/(a y[x])
> par = {a -> 1, b -> 1}
>
> solution = NDSolve[{eqn /. par, y == 0.1}, y, {x, 0.1, 5}];
>
> Plot[y[x] /. solution, {x, 0.1, 5}];
>
> Above shows a 2d graph in x and y axes.
>
>
> What I want to do is now use one of the parameter as z axis.
>
> So I need to solve the DE while varying a from 1 to 5 for instance.
>
> Then I want to graph the solutions as a 3D object. with x. y and a
> axis (where a will be the new z axis.)
>
> I guess I can use Table to iterate the whole procedure, but I wanted
> to see how others would approach it.
>

I would use Table too:

sol = Join @@ Table[y /. NDSolve[{y'[x] == 1/(a*y[x]), y == 0.1},
y, {x, 0.1, 5}], {a, 1, 5, 0.1}];

mat = Through[sol[Range[0.1, 5, 0.1]]];

ListPlot3D[mat]

> For instance, if I use
>
> eqn = y'[x] == b/(a y[x])
> par = {b -> 1}
>
> solution = Table[NDSolve[{eqn /. par, y == 0.1}, y, {x, 0.1, 5}],
> {a, 1, 5}];
>
> Plot[Evaluate[y[x] /. solution], {x, 0.1, 5}];
>
> It will shows all the solutions in one 2D graph. I want to see them in
> 3D.
>
> On the side note.. Why does the Plot require the "Evaluate" in the
> second code I posted and not in the first code???
>

This is because (in Mathematica <= 5.2) if Plot gets a single expression
as its first argument (instead of a list), it expects it to evaluate to
a single number (not a list of numbers).  But here I would use
Evaluate[] in the first case too to avoid evaluating ReplaceAll for each
point.

> If someone can explain that that will be great also.
>
> Thanks in advance as usual.
>
> sean
>
>

--
Szabolcs

```

• Prev by Date: Re: 3D graphics resize unintentionally when rotated
• Next by Date: Re: create a list with x,y,z coordinates
• Previous by thread: Changing the shortcut keys for applying styles
• Next by thread: Re: Plot3D with NDSolve