MathGroup Archive 2010

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

Search the Archive

Re: How to interpret this integral?

Thanks Leonid,

I also had your first idea, but I am a little suspicious if this is a
good general approach.
If aW is a special point, shouldn't Mathematica provide a solution in
terms of If[] functions?
There must be some reason why it is not doing so.

And Mathematica is not the only software giving me an answer with this form...

Also I was not able to force it to take into account any assumptions,
like real variables, real Sqr,...
There must be some regular non-manual way of getting a solution?



On Wed, Sep 22, 2010 at 5:29 PM, Leonid Shifrin <lshifr at> wrote:
> 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> 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)]*
>> =C2  FresnelC[w0/(Sqrt[aW]*Sqrt[Pi])] + Sqrt[Pi]*(aW*v0 - aV*w0)*
>> =C2  Cos[th0 - w0^2/(2*aW)]*FresnelC[(aW*Ts + w0)/(Sqrt[aW]*Sqrt[Pi])]
>> +
>> =C2 aV*Sqrt[aW]*(-Sin[th0] + Sin[th0 + (aW*Ts^2)/2 + Ts*w0]) +
>> =C2 Sqrt[Pi]*(aW*v0 - aV*w0)*(FresnelS[w0/(Sqrt[aW]*Sqrt[Pi])] -
>> =C2  =C2 FresnelS[(aW*Ts + w0)/(Sqrt[aW]*Sqrt[Pi])])*Sin[th0 - w0^2/
>> (2*aW)])/
>> =C2 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 =C2 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

Julian Stoev, PhD.
Control Researcher

  • Prev by Date: Re: How to localize a symbol when using Manipulate?
  • Next by Date: Re: How to interpret this integral?
  • Previous by thread: Re: How to interpret this integral?
  • Next by thread: Re: How to interpret this integral?