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