Re: NDSolve solutions
- To: mathgroup at smc.vnet.net
- Subject: [mg125132] Re: NDSolve solutions
- From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
- Date: Thu, 23 Feb 2012 05:47:26 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
On Feb 20, 8:46 am, Niles <niels.martin... at gmail.com> wrote:
> Hi
>
> I have solved an ODE using NDSolve, and I plot the solution like this:
>
> ParametricPlot[{z[t], z'[t]} /. solution, {t, 0, 2 maxTime}, PlotRange
> -> {{0, 0.2}, {0, 450}}, AspectRatio -> 0.75]
>
> The curve shown (the velocity as a function of position) I want to use
> in a new mathematical expression. How can I do that? If I use z'[t],
> then it is as a function of time, which is no good to me.
>
> I appreciate your help.
>
> Best regards,
> Niles.
To clarify, what I have is a system of ODEs of the form
dx/dt = v
dv/dt = a = C*f(x),
where C denotes a constant and f(x) is some function of x. This system
is easy to solve using e.g.
NDSolve[x''[t] == -C*f(x), x[0] == 0, x'[0] == 0}, x, {t, 0, tMax}];
The solution x[t] (or rather, its derivative x'[t]) I need to use in
the following expression:
B(x) = A + v(x)
where A denotes a constant and v(x) is the velocity as a function of
position x. But please note that v is as a function of x, not t. What
should I do to achieve this?
Best regards,
Niles.
Hi, Niles,
The answer depends upon what are you going to do with B(x). But generally, you may want to operate with B in the parametric form. That is, the pair
{x(t), B(t)} defines the B(x) dependence. If you need to build plot B=B(x) than do it like in the example below:
eq1=x'[t]==v[t];
eq2=v'[t]==Sin[x[t]]-0.1*v[t];
ss=NDSolve[{eq1,eq2,x[0]==0.5,v[0]==0},{x,v},{t,0,20}]
{{x->InterpolatingFunction[{{0.,20.}},<>],v->InterpolatingFunction[{{0.,20.}},<>]}}
ParametricPlot[Evaluate[{x[t],v[t]}/.ss],{t,0,20}]
B[t_]:=1+v[t];
ParametricPlot[Evaluate[{x[t],B[t]}/.ss],{t,0,20},AxesLabel->{"x","B"}]
But you may also do anything else in the parametric form.
Have fun, Alexei
Alexei BOULBITCH, Dr., habil.
IEE S.A.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG
Office phone : +352-2454-2566
Office fax: +352-2454-3566
mobile phone: +49 151 52 40 66 44
e-mail: alexei.boulbitch at iee.lu<mailto:alexei.boulbitch at iee.lu>