Re: Varying a constant in an ODE to Manipulate solution
- To: mathgroup at smc.vnet.net
- Subject: [mg127133] Re: Varying a constant in an ODE to Manipulate solution
- From: Narasimham <mathma18 at hotmail.com>
- Date: Mon, 2 Jul 2012 05:23:55 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201206130857.EAA03730@smc.vnet.net> <jreout$nqu$1@smc.vnet.net>
On Jul 1, 11:14 am, Narasimham <mathm... at hotmail.com> wrote: > On Jun 23, 1:26 pm, Narasimham <mathm... at hotmail.com> wrote:> On Jun 21, = 2:20 pm, Narasimham <mathm... at hotmail.com> wrote: > > > > 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 spa= ce-- > > > > > 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, selectin= g one > > > > > pair of the 3 components of the solution function? > > > > > Yes, that was my query. Bob Hanlon pointed out my error. (Evaluatin= g > > > > together was needed). > > > > > > Or a 3D-parametric plot of the trajectory over a fixed-duration t= ime in > > > > > terval, but dynamic > > > > > > with c as control variable? > > > > > Yes, in fact that is going to be my next question now, and thanks t= hat > > > > 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 Han= lon > > > > > > > All variables or a single variable are easily pocked out from s= ol[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, Th= ick}, > > > > > > AspectRatio -> Automatic, > > > > > > PlotRange -> {{-3, 3}, {-10, 10}}], {c, -0.5, 2, 0.2}= ] > > > > > > Manipulate[ > > > > > > Plot[Evaluate[sol[c][[1]]], {t, -3, 3}, PlotStyle -> {Re= d, Thick}, > > > > > > 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 -> Automa= ti= > c, > > > > > > PlotRange -> {{-3, 3}, {-10, 10}}], {c, -0.5, 2, 0.2}= ] > > > > > > -- > > > > > Murray Eisenberg murrayei= se= > nb= > > ..= > > > .@= > > > > gmail.com > > > > > 80 Fearing Street phone 41= 3 = > 54= > > 9-= > > > 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 t= o > > > gas law P V / T = const. when T is varied. The general form is m= or= > e > > > 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},M= es= > h-= > > >{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= ,P= > lo= > > > tRange->{{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->Automati= c,= > Pl= > > > otRange->{{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 c= ho= > se= > > n > > > domain) into a variable, from state X1 ( with one independent variabl= e > > > 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 continuo= us > > > 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 wel= l > > > 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= t= > o > > > 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. Th= e > > > 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. O= r > > > 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= ,P= > lo= > > > tRange->{{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->Automati= c,= > Pl= > > > otRange->{{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!! *)tRange->{{0,5}= ,{= > -2= > > > .5,2.5}, {-2.5,2.5}},PlotRange-> >{{0,5},{-2.5,2.5}, {-2.5,2.5}},Plo= tL= > > abel->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->Automati= c,= > Pl= > > > = > > > otRange->{{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!! *) > > > If DIFF2 cannot work without error diagnostics (regarding pushing > > domain of c inclusively into square brackets together with domain of > > t), please indicate a dynamic adapter code module lines that may be > > appended so that one need not write own code lines with Tooltip or > > whatever it takes to compute/display the generalized function [t,c]. > > > Took liberty to suggest this as the prospect of computing and > > viewing generalized functions (numerically at least to begin with) > > whereby multiple constants can get embedded into 3-space and > > even into a muti-dimensional spaces by the power of functional > > definition flexibility and graphical depiction in Mathematica, is > > is indeed exciting. > > > Regards > > Narasimham > > The suggestion actually is for solid modeling,could not express it > earlier. > > To appreciate the invariantly fixing up any one among three variables > and making the > three component surfaces which can be morphed/ Manipulated/ clubbed > back/integrated > in 3D solid modelling,I have written this code ( fwiw, instructional) > in mathematical solid > parametric 3D modeling thus: > > c = 1.2; " 3 PARAM DECOMPN THICK CYL Solid modelling " > " Take two out of 3 parameters {a,t,v } at a time for surface \ > generation and > one out three parameters at a time for single generating parameter = \ > line. " > Clear[a, t, v] ; > " vary v & t. It makes a cylinder surface, Dilatation of each cyl \ > surface at a =1 generates a solid. " > a = 1.; > aa = ParametricPlot3D[ {a Cos[t + v], c t , a Sin[t + v] }, {t, 0, > 2 Pi}, { v, 0, 2 Pi}, Mesh -> {18, 4}] ; > at = ParametricPlot3D[ {a Cos[t + 2.5], c t , a Sin[t + 2.5] }, {t, > 0, 2 Pi}, PlotStyle -> {Orange, Thick}] ; > Clear[a, t, v] ; > " vary a & t. It makes a helical fin surface, entire fin rigid body > \ > Rotation at v = Pi /2 generates a solid. " > v = Pi/2. ; > vv = ParametricPlot3D[ {a Cos[t + v], c t , a Sin[t + v] }, {t, 0, > 2 Pi}, { a, 1, 1.6}, Mesh -> {18, 4}] ; > va = ParametricPlot3D[ {a Cos[4 + v], c 4. , a Sin[4 + v] }, {= a, > 1, 1.6}, PlotStyle -> {Orange, Thick}] ; > Clear[a, t, v] ; > " vary v & a. It makes an annulus surface , entire annulus \ > Translation at t = Pi generates a solid. " > t = Pi ; > tt = ParametricPlot3D[ {a Cos[t + v], c t , a Sin[t + v] }, { v, 0, > 2 Pi}, {a, 1, 1.6}, Mesh -> {18, 4}] ; > tv = ParametricPlot3D[ {1.25 Cos[t + v], c t , > 1.25 Sin[t + v] }, { v, 0, 2 Pi}, PlotStyle -> {Orange, Thick}= ] ; > Surfs = Show[{aa, vv, tt}, PlotRange -> All, Axes -> None, > Boxed -> False] > Lines = Show[{at, va, tv}, PlotRange -> All, Axes -> None, > Boxed -> False] > Show[Surfs, Lines] > > I hope the need for development of general command in solid > modeling is clearer from above closed parametric form example. > > Regards > Narasimham I imagined a 3 parameter inclusive command like :) : Manipulate[ ParametricSolid[ { f[x[u, v, w], y[u, v, w], z[u, v, w]] }, {u, 0.1, 3}, {v, .8, 1.2}, {| w, -3, 3, .2 |},Mesh -> {20, 20, 5}, PlotRange -> {{-0, 20}, {-10, 10}, {-10, 10}}], Appearance -> "Labeled", ControlPlacement -> Left] where domain of w may be indicated with a special symbol to indicate its discrete character, u and v being continuous. Narasimham