Re: Dr. Lynchs book Dynamical Systems with Applications using Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg125377] Re: Dr. Lynchs book Dynamical Systems with Applications using Mathematica
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Sat, 10 Mar 2012 06:17:58 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Equations must use Equal ( == ) rather than Set ( = ). Further, in
order to use NDSolve, C5 must be given a numerical value.
Alternatively, you can DSolve and let C5 be a parameter.
ode1 is the solution of the differential equation for the given
initial values (t = 0)
ode1[x0_, y0_, C5_: 1] =
DSolve[{x'[t] == C5 2 x[t] + y[t], y'[t] == C5 x[t] + 2 y[t], x[0] == C5 x0,
y[0] == C5 y0}, {x[t], y[t]}, t][[1]] // FullSimplify
{x[t] -> (1/Sqrt[1 + (-1 + C5)*C5])*(C5*E^(t + C5*t)*
(Sqrt[1 + (-1 + C5)*C5]*x0*Cosh[Sqrt[1 + (-1 + C5)*C5]*t] +
((-1 + C5)*x0 + y0)*Sinh[Sqrt[1 + (-1 + C5)*C5]*t])),
y[t] -> (1/Sqrt[1 + (-1 + C5)*C5])*(C5*E^(t + C5*t)*
(Sqrt[1 + (-1 + C5)*C5]*y0*Cosh[Sqrt[1 + (-1 + C5)*C5]*t] +
(C5*(x0 - y0) + y0)*Sinh[Sqrt[1 + (-1 + C5)*C5]*t]))}
The default value of 1 for C5 is chosen to provide a simple form.
ode1[x0, y0]
{x[t] -> E^(2 t) (x0 Cosh[t] + y0 Sinh[t]),
y[t] -> E^(2 t) (y0 Cosh[t] + x0 Sinh[t])}
sol[1] = ode1[1, 1]; sol[2] = ode1[1, -1]; sol[3] = ode1[-1, -1];
sol[4] = ode1[-1, 1]; sol[5] = ode1[3, 1]; sol[6] = ode1[1, 3];
sol[7] = ode1[-1, -3]; sol[8] = ode1[-3, -1];
These merely store in sol[k] specific solutions for the specified
initial conditions.
?? sol
Bob Hanlon
On Fri, Mar 9, 2012 at 6:11 AM, <pennsylvaniajake at gmail.com> wrote:
> Could some one please explain the code?
>
> The line starts with sol[1] and ends with ode1[-3,-4];
>
> I have looked through all my books on Mathematica and cannot find
> anything like it.
>
> p1=VectorPlot[{2x+y,x+2y},{x,-3,3},{y,-3,3}] ;
> ode1[x0_,y0_]:=NDSolve[{x'[t]=C5 2x[t]+y[t],y'[t]=C5 x[t]+2y[t],x[0]=C5 x0,y[0]=C5 y0},{x[t],y[t]},{t,-3,3}];
>
> sol[1]=ode1[1,1];sol[2]=ode1[1,-1];sol[3]=ode1[-1,-1];sol[4]=ode1[-1,1];sol[5]=ode1[3,1];sol[6]=ode1[1,3];sol[7]=ode1[-1,-3];sol[8]=ode1[-3,-1];
>
> p2=ParametricPlot[Evaluate[Table[{x[t],y[t]}/.sol[i],{i,8}]],{t,-3,3},
> PlotRange=C2=AE{{-3,3},{-3,3}},PlotPoints=C2=AE100,AxesLabel=C2=AE{"x","y"}];
>
> Show[{p1,p2},PlotRange=C2=AE{{-3,3},{-3,3}},AxesLabel=C2=AE{"x","y"},Axes=C2==AETrue]