|
[Date Index]
[Thread Index]
[Author Index]
Re: Table NDSolve Plot
- To: mathgroup at smc.vnet.net
- Subject: [mg121934] Re: Table NDSolve Plot
- From: "Dr. Wolfgang Hintze" <weh at snafu.de>
- Date: Fri, 7 Oct 2011 04:43:47 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j6jofa$m25$1@smc.vnet.net>
"Howard" <hcohl at nist.gov> schrieb im Newsbeitrag
news:j6jofa$m25$1 at smc.vnet.net...
> Hi. I know this is a basic question, but I am having difficulty
> finding how to do this in Mathematica.
>
> I want to make a plot with multiple solutions of an ordinary
> differential equation which I want to generate using NDSolve. For
> instance, let me take
>
> k=0.999
> h=0.0
> n=0.0
> s = NDSolve[{(1 - z^2) (1 - k^2 z^2) w''[z] - z (1 + k^2 - 2 k^2 z^2)
> w'[z] + (h - n (n + 1) k^2 z^2) w[z] == 0, w[2] == 1/2 Log[3], w'[2]
> == -1/3.}, w, {z, 11/10, 3}]
> Plot[Evaluate[w[z] /. s], {z, 11/10, 3}, PlotRange -> All]
>
> This shows the plot for this function.
>
> I would like to generate solutions for say 10 k's, for instance 10
> k's between .9 and 1.0 and put them all on the same plot. I'm
> guessing I can do this with Plot, NDSolve, Table, etc.
>
> Can you help me figure out the syntax?
>
> Thanks, Howard
>
The trick is to use DisplayFunction to create various plots "silently"
and then display them using Show.
Here is an example of how to combine just two plots
h = 0;
n = 0;
k = 0.25;
s = NDSolve[{(h - k^2*n*(1 + n)*z^2)*w[z] - z*(1 + k^2 -
2*k^2*z^2)*D[w[z], z] + (1 - z^2)*(1 - k^2*z^2)*D[w[z], {z, 2}] == 0,
w[2] == 1,
Derivative[1][w][2] == -1}, w[z], {z, 1.1, 3.}];
p[1] = Plot[Evaluate[w[z] /. s], {z, 1.1, 3.}, PlotStyle -> Automatic,
DisplayFunction -> Identity];
p[2] = Plot[(1/2)*Log[(z + 1)/(z - 1)], {z, 1.1, 3.}, PlotStyle ->
Automatic, DisplayFunction -> Identity];
Show[{p[1], p[2]}, DisplayFunction -> $DisplayFunction];
Wolfgang
Prev by Date:
Re: list equation
Next by Date:
Re: Re: simplification
Previous by thread:
Table NDSolve Plot
Next by thread:
Re: Table NDSolve Plot
|