Re: How to interpret this integral?
- To: mathgroup at smc.vnet.net
- Subject: [mg112610] Re: How to interpret this integral?
- From: Leonid Shifrin <lshifr at gmail.com>
- Date: Thu, 23 Sep 2010 04:20:30 -0400 (EDT)
Hi Julian,
Here is your expression:
In[137]:= expr = Integrate[(aV*t+v0)*Cos[(aW*t^2)/2+th0+t*w0],{t,0,Ts}]
Out[137]=
(1/(aW^(3/2)))(Sqrt[\[Pi]] (-aW v0+aV w0) Cos[th0-w0^2/(2 aW)]
FresnelC[w0/(Sqrt[aW] Sqrt[\[Pi]])]+Sqrt[\[Pi]] (aW v0-aV w0)
Cos[th0-w0^2/(2 aW)] FresnelC[(aW Ts+w0)/(Sqrt[aW] Sqrt[\[Pi]])]+aV Sqrt[aW]
(-Sin[th0]+Sin[th0+(aW Ts^2)/2+Ts w0])+Sqrt[\[Pi]] (aW v0-aV w0)
(FresnelS[w0/(Sqrt[aW] Sqrt[\[Pi]])]-FresnelS[(aW Ts+w0)/(Sqrt[aW]
Sqrt[\[Pi]])]) Sin[th0-w0^2/(2 aW)])
If you want to treat the point aW = 0 specially, the simplest is to put it
to zero right when the integral
is computed:
In[138]:= exprAt0 = Integrate[(aV*t+v0)*Cos[th0+t*w0],{t,0,Ts}]
Out[138]= (-aV Cos[th0]+aV Cos[th0+Ts w0]-v0 w0 Sin[th0]+(aV Ts+v0) w0
Sin[th0+Ts w0])/w0^2
Alternatively, you can extract it from the full expression, but it st a
little more involved. One way
is to change variable as t = 1/aW, then expand in t around t=Infinity, then
take the limit t->Infinity of the
resulting expression. One subtlety here that you will need to expand to the
second order in t, to
get the correct result:
In[140]:= exprAt0Alt = Limit[Normal@Series
[expr/.aW->1/t,{t,Infinity,2}],t->Infinity]
Out[140]= (-aV Cos[th0]+aV Cos[th0+Ts w0]+w0 (-v0 Sin[th0]+aV Ts Sin[th0+Ts
w0]+v0 Sin[th0+Ts w0]))/w0^2
You can check that the results are the same:
In[141]:= FullSimplify[exprAt0-exprAt0Alt]
Out[141]= 0
Hope this helps.
Regards,
Leonid
On Wed, Sep 22, 2010 at 9:57 AM, Julian <julian.stoev at gmail.com> wrote:
> Hello All,
>
> After long interruption with symbolic computing, I am struggling how
> to make a useful result out of this integral.
>
> Integrate[(aV*t + v0)*Cos[(aW*t^2)/2 + th0 + t*w0, {t, 0, Ts}]
>
> It comes from the differential equations describing the motion of a
> wheeled robot. aV and aW are accelerations and v0, w0, th0 are initial
> conditions. The numerical solution clearly exists for different real
> accelerations, including positive, negative and zero.
>
> However the symbolic solution of Mathematica is:
> (Sqrt[Pi]*(-(aW*v0) + aV*w0)*Cos[th0 - w0^2/(2*aW)]*
> FresnelC[w0/(Sqrt[aW]*Sqrt[Pi])] + Sqrt[Pi]*(aW*v0 - aV*w0)*
> Cos[th0 - w0^2/(2*aW)]*FresnelC[(aW*Ts + w0)/(Sqrt[aW]*Sqrt[Pi])]
> +
> aV*Sqrt[aW]*(-Sin[th0] + Sin[th0 + (aW*Ts^2)/2 + Ts*w0]) +
> Sqrt[Pi]*(aW*v0 - aV*w0)*(FresnelS[w0/(Sqrt[aW]*Sqrt[Pi])] -
> FresnelS[(aW*Ts + w0)/(Sqrt[aW]*Sqrt[Pi])])*Sin[th0 - w0^2/
> (2*aW)])/
> aW^(3/2)
>
> Note that aW can be found inside a Sqrt function and also in the
> denominator. While I can see that FresnelS[Infinity] is well defined,
> so aW==0 should not be a real problem, it is still very problematic
> how to use this result at this particular point. The case of negative
> aW is also interesting, because it will require a complex FresnelS and
> FresnelC. I somehow managed to remove this problem using
> ComplexExpand, but I am not sure this is the good solution.
>
> I tried to give Assumptions -> Element[{aW, aV, w0, v0, Ts, th0},
> Reals] to the integral, but there is no change in the solution.
>
> While I understand that the solution of Mathematica is correct in the
> strict mathematical sense, I have to use the result to generate a C-
> code, which will be evaluated numerically and the solution I have now
> is not working for this.
>
> Can some experienced user give a good advice how use get a solution of
> the problem?
>
> Thank you in advance!
>
> --JS
>
>