Parametric Plot Again
- To: mathgroup at smc.vnet.net
- Subject: [mg27096] Parametric Plot Again
- From: Winston Garira <uceswga at ucl.ac.uk>
- Date: Sun, 4 Feb 2001 02:58:22 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Allan, Thank for replying to my request. I have tried to make the change that you recommended by making the following changes: xd[t_] = x1[t] /. pend[[1]]; xdd[t_]= x1'[t] /. pend[[2]]; xr[t_] = x2[t] /. pend[[3]]; xrd[t_]= x2'[t] /. pend[[4]]; But still the ParametricPlot[{xd[t], xdd[t]}, {t,0,100}]; does not work. Could it be that I misunderstood the change that you recommended? Winston > > I am trying to solve a system of two coupled pendulums using the NDSolve. > > command. If I replace the Plot[{xd[t],xr[t]},{t,0,100}] with > > ParametricPlot[{xd[t],xr[t]},{t,0,100}] it does not work. Can someone tell > > me why the ParametricPlot command does not work in this case. I need to > > make parametric plots for this system. > > > > Thanking you in annticipation > > > > Winston > > > > > > Pends[init1_, init2_, time_, k_, {c_, w_, p_}]:= > > Module[{}, > > pend=NDSolve[{x1''[t]+ c x1'[t]+ p Sin[x1[t]]==k(x2[t]-x1[t]), > > x2''[t]+ c x2'[t]+ p Sin[x2[t]]==k(x1[t]-x2[t]), > > x1[0]==init1[[1]], x1'[0]==init1[[2]], > > x2[0]==init2[[1]], x2'[0]==init2[[2]]}, > > {x1, x2}, > > {t,0,time}, MaxSteps->200000]; > > xd[t_] := Evaluate[x1[t] /. pend]; > > xdd[t_]:= Evaluate[x1'[t] /. pend]; > > xr[t_] := Evaluate[x2[t] /. pend]; > > xrd[t_]:= Evaluate[x2'[t] /. pend]; > > ]; > > > > > > c=0.1; w=0.5; p=1.9; > > > > Pends[{1.57,0}, {-1.57,0}, 5000,0.6, {c,w,p}]; > > Plot[{xd[t],xr[t]},{t,0,100}, > > PlotStyle\[Rule]{RGBColor[1,0,0.3],RGBColor[0,0.5,1]}]; > > > > > > > > W.GARIRA > > E-mail: w.garira at ucl.ac.uk > > phone : +44-(0)20-7679-2521 > > ___________________________________________________ > > > > > > > > > > Winston, > You are getting listed values like > > xd[4] > > {1.24463} > > Plot lets us get away with this (it flattens the input), but ParametricPlot > assumes that {{x1[t]},{x2[t]}} is an error for something like > {{x1[t]`y1[t]},{x2[t], y2[t]}} . > > One way out is to replace > > xd[t_] := Evaluate[x1[t] /. pend]; > etc > > with > > xd[t_] = x1[t] /. pend[[1]]; > > etc > > (the Evaluate is unnecessary if we use = instead of :=) > > -- > Allan > --------------------- > Allan Hayes > Mathematica Training and Consulting > Leicester UK > www.haystack.demon.co.uk > hay at haystack.demon.co.uk > Voice: +44 (0)116 271 4198 > Fax: +44 (0)870 164 0565