Re: Varying a constant in an ODE to Manipulate solution

• To: mathgroup at smc.vnet.net
• Subject: [mg126970] Re: Varying a constant in an ODE to Manipulate solution
• From: Narasimham <mathma18 at hotmail.com>
• Date: Thu, 21 Jun 2012 05:18:08 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <201206130857.EAA03730@smc.vnet.net> <jreout\$nqu\$1@smc.vnet.net> <jrlfnb\$c2q\$1@smc.vnet.net>

```On Jun 18, 1:46 am, Narasimham <mathm... at hotmail.com> wrote:
> On Jun 15, 12:41 pm, Murray Eisenberg <mur... at math.umass.edu> wrote:
>
> > It's not clear to me what you want to do.
>
> I hope this reply clarifies, and my broader question too.
>
> > Do you want to create 3D-parametric plot of the trajectory in space --
> > possibly as a dynamic with the time t as dynamic parameter?
>
> Yes. I can get this plot OK simply as:
>
> Manipulate[ParametricPlot3D[Evaluate[sol[c][[1]]], {t, -3, 3},
> PlotStyle ->  {Red, Thick},
> AspectRatio ->  Automatic, PlotRange ->  {{-3, 3}, {-10, 10}}], {c,
> -0.5, 2, 0.2}]
>
> Also I have asked in a separate but related question now under
> clearance by moderators
> regarding Clairaut's Equation_
>
> How to include traces of these lines in the plot and not have them
> flying in the 3space
> on the Manipulate command. Call them t parameter lines as t is
> continuous and c is discrete.
>
> > And/or do one of those same things but do it just in 2D, selecting some
> > pair of the 3 components of the solution function?
>
> Yes, that was my query. Bob Hanlon pointed out my error. (Evaluating
> together was needed).
>
> > Or a 3D-parametric plot of the trajectory over a fixed-duration time in=
=
>
> terval, but dynamic
>
> > with c as control variable?
>
> Yes, in fact that is going to be my next question now, and thanks that
> you have foreseen it !
>
> Call these lines c parameter lines as c would be the continuous
> control variable and t's would be discrete.
>
> In this case, each time dot is extruded or curvilinearly dragged
> across the surface, cutting the
>
> t lines. Bringing together action of control variables t and c, we
> have a surface sol[c_,t_] which
>
> can be computed and plotted. t and c are two parameters for this
> patch.
>
> How can this be done? I am almost sure this is doable. I shall try for
> Clairaut's 2D problem and send result when done.
>
> Regards
>
> Narasimham

> > On 6/13/12 4:57 AM, Narasimham wrote:
> > > Same topic is continued. Thanks to Murray Eisenberg and Bob Hanlon
>
> > > All variables or a single variable are easily pocked out from sol[c_]
> > > list for plotting.
> > > But how to pick out two out of them for ParametricPlot  ( 2D) ?
>
> > > sol[c_] := {x[t], y[t], z[t]} /.
> > >    First[NDSolve[{y''[t] + Sin[y[t]/c] == 0, y'[0] == 0,
> > >       y[0] == 1/(1 + c), x'[t] == t, x[0] == c^2,
> > >       z'[t] == 2 c x[t] - y[t], z[0] == 2}, {x, y, z}, =
{t=
> , -3, 3}]]
> > > Manipulate[
> > >   Plot[Evaluate[sol[c]], {t, -3, 3}, PlotStyle ->  {Red, Thick},
> > >    AspectRatio ->  Automatic,
> > >    PlotRange ->  {{-3, 3}, {-10, 10}}], {c, -0.5, 2, 0.2}]
> > > Manipulate[
> > >   Plot[Evaluate[sol[c][[1]]], {t, -3, 3}, PlotStyle ->  {Red, Thi=
ck=
> },
> > >    AspectRatio ->  Automatic,
> > >    PlotRange ->  {{-3, 3}, {-10, 10}}], {c, -0.5, 2, 0.2}]
> > > " 2 parameter Dynamic manipulation not OK"
> > > Manipulate[
> > >   Plot[{Evaluate[sol[c][[1]]], Evaluate[sol[c][[1]]]}, {t, -3, 3},
> > >    PlotStyle ->  {Green, Thick}, AspectRatio ->  Automatic,
> > >    PlotRange ->  {{-3, 3}, {-10, 10}}], {c, -0.5, 2, 0.2}]
>
> > --
> > Murray Eisenberg                     murrayeisenb..=
.@=
> gmail.com
> > 80 Fearing Street                    phone 413 549-=
10=
> 20 (H)
> > Amherst, MA 01002-1912

With some conviction I make the following suggestion.

{ a Cos[t], a Sin[t] } with perturbation of a gives an annular ring.
Boyles Law P*V = const for given const temp T becomes generalised to
gas law P V / T = const. when T is varied. The  general form is more
value in scientific work.

The same case illustrates my point.

c=1 ;
CL1=Manipulate[ParametricPlot3D[{c Cos[t],0.6 t,c Sin[t]},{t,
0,Pi},PlotStyle->{Red,Thick},PlotRange->{{-1.5,1.5},{0,2},{0,1.5}}],{c,
1,1.5,.1}]
CL2=ParametricPlot3D[{c Cos[t],0.6 t,c Sin[t]},{t,0,Pi},{c,1,1.5},Mesh-
>{15,4}]
sol[c_]:={x[t],y[t],z[t]}/.First[NDSolve[{y''[t]+Sin[y[t]/
c]==0,y'[0]==0,y[0]==1/(1+c),x'[t]==t,x[0]==c^2,z'[t]=
==2 c x[ t]-
y[t],z[0]==2},{x,y,z},{t,-3,3}]];

DIFF1=
Manipulate[ ParametricPlot3D[Evaluate[{sol[c][[1]]  ,sol[c][[2]] ,
sol[c][[3]] }],{t,-2,2},PlotStyle->{Red,Thick},AspectRatio-
>Automatic,PlotRange->{{0,5},{-2.5,2.5},  {-2.5,2.5}},PlotRange-
>{{0,5},{-2.5,2.5}, {-2.5,2.5}},PlotLabel->Style[Framed[ "c PARAMETRIC
LINES EXIST BUT INVISIBLE"] ]],{c,-0.5,2,0.2}]

DIFF2=
ParametricPlot3D[Evaluate[{sol[c][[1]]  ,sol[c][[2]] , sol[c][[3]] }],
{t,-2,2},{c,-0.5,2,0.2}, PlotStyle->{Red,Thick},AspectRatio-
>Automatic,PlotRange->{{0,5},{-2.5,2.5},  {-2.5,2.5}},PlotRange-
>{{0,5},{-2.5,2.5}, {-2.5,2.5}}]
(* the [% ] above would certainly produce error diagnostics as of
now!! *)

Is it  possible to push up or upgrade a constant  (along with a chosen
domain) into a variable, from state X1 ( with one independent variable
t  ) to CL2 ( with two independent variables  t and c) thereby
spreading/dragging/extruding a line  into a surface?

It is possible to generalize both in closed form (analytically
definable functions )and in differential form (for  smooth continuous
manifolds ) with automatically generated boundary conditions added ,
from surfaces to solids/volumes and  further on to 4D objects .. by
proper assembly or stacking  into 3- space objects.

It is possible to implement a form in CL2 for every form CL1 to
accommodate c seeding among determining differential equations as well
as in Boundary Conditions as an add-on/ generalization function by
variation of parameter c, sharing same boundary conditions between
them.

The manner of range specification  in code available to the user is to
put c and t ranges simply together inside square bracket rather than
on either side of the closing square bracket.

So I tend to suggest/ request for making a provision, incorporating
whatever it takes to realize it, to enable plot of DIFF2  without
error diagnostics and output the same DIFF1 as DIFF2 but now as a
surface .

The logic is the same, to me at least, in such a result depiction. The
DIFF2 should show _a surface_ just as CL2 does.

This may seem too long drawn out, A request for its acceptance or
implementation in further Mathematica development  may look a tall
order, I took liberty to make the comment. Please comment about your
view and problems involved in what looks as a crass generalization. Or
a simple code to make it routinely available be please indicated.

Regards
Narasimham

sol[c_]:={x[t],y[t],z[t]}/.First[NDSolve[{y''[t]+Sin[y[t]/
c]==0,y'[0]==0,y[0]==1/(1+c),x'[t]==t,x[0]==c^2,z'[t]=
==2 c x[ t]-
y[t],z[0]==2},{x,y,z},{t,-3,3}]];
DIFF1=
Manipulate[ ParametricPlot3D[Evaluate[{sol[c][[1]]  ,sol[c][[2]] ,
sol[c][[3]] }],{t,-2,2},PlotStyle->{Red,Thick},AspectRatio-
>Automatic,PlotRange->{{0,5},{-2.5,2.5},  {-2.5,2.5}},PlotRange-
>{{0,5},{-2.5,2.5}, {-2.5,2.5}},PlotLabel->Style[Framed[ "c PARAMETRIC
LINES EXIST BUT INVISIBLE"] ]],{c,-0.5,2,0.2}]

DIFF2=
ParametricPlot3D[Evaluate[{sol[c][[1]]  ,sol[c][[2]] , sol[c][[3]] }],
{t,-2,2},{c,-0.5,2,0.2}, PlotStyle->{Red,Thick},AspectRatio-
>Automatic,PlotRange->{{0,5},{-2.5,2.5},  {-2.5,2.5}},PlotRange-
>{{0,5},{-2.5,2.5}, {-2.5,2.5}}]
(* the % would certainly produce error diagnostics!! *)

```

• Prev by Date: Re: plot legend with filling
• Next by Date: Re: Mathematica freezes?
• Previous by thread: Re: Varying a constant in an ODE to Manipulate solution
• Next by thread: Re: Varying a constant in an ODE to Manipulate solution