Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to Scale and vary plot for a Differential Equation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127406] Re: How to Scale and vary plot for a Differential Equation
  • From: Bob Hanlon <hanlonr357 at gmail.com>
  • Date: Sun, 22 Jul 2012 04:33:46 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <20120720074852.62B9B685F@smc.vnet.net>

DSolve[{x''[t] + \[Mu] (x[t] x[t] - 1) x'[t] + x[t] == 0, x[0] == 1/2,
   x'[0] == 0}, x[t], t][[1]]

{x[t] + \[Mu]*(-1 + x[t]^2)*
         Derivative[1][x][t] +
       Derivative[2][x][t] == 0,
   x[0] == 1/2, Derivative[1][x][
       0] == 0}

In this case, DSolve did not solve the DE (returned unevaluated) so
NDSolve must be used.  To use NDSolve,  \[Mu] must have a numeric
value so the NDSolve must be inside of the Manipulate.

Manipulate[sol = NDSolve[
    {x''[t] + \[Mu] (x[t] x[t] - 1) x'[t] + x[t] == 0,
     x[0] == 1/2, x'[0] == 0}, x[t],
    {t, 0, 50}][[1]];
 ParametricPlot[Evaluate[
   {x[t] /. sol, Log[D[x[t] /. sol, t]]}],
  {t, 0, 50},
  Frame -> True,
  Axes -> False,
  FrameLabel -> {"x", Overscript["x", "."]}, AspectRatio -> 1,
  PlotRange -> {{0, 2.5}, {-6, 4.5}},
  PlotPoints -> 150],
 {{\[Mu], 1}, 1, 50, 0.1,
  Appearance -> "Labeled"}]


Bob Hanlon


On Sat, Jul 21, 2012 at 1:20 PM, Rahul Chakraborty
<rahul.6sept at gmail.com> wrote:
> Dear Bob,
>
>  Sir, I've tried the same code for another DE. Everything is same just
> changed the equations and initial conditions. Its giving an error, i
> couldn't debug it.
>
>  Clear[x];
> DSolve[{x''[t]+\[Mu]
> (x[t]x[t]-1)x'[t]+x[t]==0,x[0]==1/2,x'[0]==0},x[t],t][[1]]//Q=
uiet
> {x[t]->x[t]+\[Mu] (-1+x[t]^2)
> (x^\[Prime])[t]+(x^\[Prime]\[Prime])[t]==0,x[0]==1/2,x'[0]==0=
}
> Manipulate[Module[{sol},sol={x[t]->{x[t]+\[Mu] (-1+x[t]^2)
> (x^\[Prime])[t]+(x^\[Prime]\[Prime])[t]==0,x[0]==1/2,x'[0]==0=
}};ParametricPlot[Evaluate[{x[t]/.sol,Log[D[x[t]/.sol,t]]}],{t,0,50},Frame-=
>True,Axes->False,FrameLabel->{"x",Log[Overscript[x,"."]]},AspectRatio->1,P=
lotRange->{{0,10.1},{-6,10.1}}]],{{\[Mu],1},1,50,0.01,Appearance->"Labeled"=
}]
>
> ERROR: ParametricPlot::exclul: {Im[(x^\[Prime])[t]+2 x[t]
> (<<1>>^(<<1>>))[<<1>>]^2+(-1+Power[<<2>>])
> (x^\[Prime]\[Prime])[t]+(x^(3))[t]==0]-0} must be a list of equalitie=
s
> or real-valued functions. >>
>
> Kindly advice.
>
> Regards,
>
> rc
>
> On 7/21/12, Bob Hanlon <hanlonr357 at gmail.com> wrote:
>> It is not required. If you don't like it, don't use it. Adjust
>> PlotRange to taste.
>>
>>
>> Bob Hanlon
>>
>>
>> On Sat, Jul 21, 2012 at 12:57 AM, Rahul Chakraborty
>> <rahul.6sept at gmail.com> wrote:
>>> Dear Bob,
>>>
>>>  Thanks.
>>>
>>> But one query, why it is required to use Log   in " Log[D[x[t] /. sol,
>>> t]". Because in simple plot without Manipulate it is not required.
>>>
>>>
>>>  Regards,
>>>  rc
>>>
>>> On 7/21/12, Bob Hanlon <hanlonr357 at gmail.com> wrote:
>>>> You appear to be confusing the syntax of DSolve with that of NDSolve.
>>>> DSolve can be used to solve the DE once rather than repeatedly inside
>>>> the manipulate.
>>>>
>>>> DSolve[{x'[t] - r x[t] (1 - x[t]/K) == 0,
>>>>     x[0] == 1/2}, x[t], t][[1]] // Quiet
>>>>
>>>> {x[t] -> (E^(r*t)*K)/(-1 + E^(r*t) + 2*K)}
>>>>
>>>> Manipulate[
>>>>  Module[{sol},
>>>>   sol = {x[t] -> (E^(r*t)*K)/(-1 + E^(r*t) + 2*K)};
>>>>   ParametricPlot[
>>>>    Evaluate[{
>>>>      x[t] /. sol,
>>>>      Log[D[x[t] /. sol, t]]}],
>>>>    {t, 0, 50},
>>>>    Frame -> True,
>>>>    Axes -> False,
>>>>    FrameLabel -> {"x", Log[Overscript[x, "."]]},
>>>>    AspectRatio -> 1,
>>>>    PlotRange -> {{0, 5.1}, {-6, 2.1}}]],
>>>>  {{r, 1}, 1, 5, 0.01, Appearance -> "Labeled"},
>>>>  {{K, 1}, 1, 5, 0.01, Appearance -> "Labeled"}]
>>>>
>>>>
>>>> Bob Hanlon
>>>>
>>>>
>>>> On Fri, Jul 20, 2012 at 3:48 AM, Rahul Chakraborty
>>>> <rahul.6sept at gmail.com> wrote:
>>>>> Dear all,
>>>>>
>>>>> Kindly guide me for the above mentioned subject. I did try to code it
>>>>> but
>>>>> needs guidance.The code as below
>>>>>
>>>>> Clear[x];
>>>>> k[x_]=Manipulate[DynamicModule[{r:=1,K:=1},{Slider[Dynamic[r]],=
Slider[Dynamic[K]]},eqn=x'[t]-r
>>>>> x[t]
>>>>> (1-x[t]/K)==0//Quiet,sol=First@DSolve[{eqn,x[0]==1/2},x[t],=
{t,0,50}],[ParametricPlot[Evaluate[{x[t]/.sol,D[x[t]/.sol,t]}],{t,0,50},Fra=
me->True,AxesLabel->{"x",Overscript[x,"."]},AspectRatio->1],ImageSize->
>>>>> Scaled[r,K]],{r,1,5},{K,1,5},Initialization:>
>>>>> {r:=1,K:=1},SaveDefinitions-> True]]
>>>>>
>>>>> Regards,
>>>>> rahul
>>



  • Prev by Date: Constraining locators on a dynamically updated object
  • Next by Date: Re: can one make local symbol in a pure function?
  • Previous by thread: Re: How to Scale and vary plot for a Differential Equation
  • Next by thread: Re: How to Scale and vary plot for a Differential Equation