Re: How to interpret this integral?
- To: mathgroup at smc.vnet.net
- Subject: [mg112612] Re: How to interpret this integral?
- From: Julian Stoev / ÐÐÐÐÐ ÐÑÐÐÐ <julian.stoev at gmail.com>
- Date: Thu, 23 Sep 2010 04:20:52 -0400 (EDT)
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? Best! --JS On Wed, Sep 22, 2010 at 5:29 PM, Leonid Shifrin <lshifr at gmail.com> 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 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)]* >> =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