While evaluating some Fourier cosine transforms, I recognized that (for 
instance) the integral

 -- integrate(cos(x*y)/sqrt(x),x=0..%plusInfinity)

gives a wrong value: 

           +---+
          \|%pi
   (1)  ----------
             +---+
         +-+ |2 y
        \|2  |---
            \|%pi
                  Type: Union(f1: 
OrderedCompletion(Expression(Integer)),...)

instead of


                                   sqrt(%pi)
(%o16)                          ---------------
                                sqrt(2) sqrt(y)


Eventually, I tracked it down to a wrong limit of the cosine Fresnel 
function fresnelC:

(24) -> limit(fresnelC(x),x=%plusInfinity)

          +---+
         \|%pi
   (24)  ------
            +-+
         2 \|2
                      Type: 
Union(OrderedCompletion(Expression(Integer)),...)


which actually should evaluate to *1/2* !!!
The definition seems to be ok, so I guess the error must be somewhere in the 
limit operation. Unfortunately I was unable to find a clue.

Ref. (Vol I, page 8) 
Tables of Integral Transforms [Volumes I & II] 

Bateman, Harry (1954) *Tables of Integral Transforms [Volumes I & II].* 
Vol.I & II. McGraw-Hill Book Company , New York. ISBN 07-019549-8. 
http://resolver.caltech.edu/CaltechAUTHORS:20140123-101456353

Maxima also provides the correct result.

Another question is, why is FriCAS unable to compute


I2:=integrate(cos(x*y)/(x^2+a^2),x=0..%plusInfinity,"noPole")
   Ei
   [- a y + x y %i]

   (1)  "failed"
                                                Type: Union(fail: 
failed,...)

while other systems apparently have no problem computing this elementary 
integral?


----

I:=integrate(cos(x*y)/sqrt(x),x=0..%plusInfinity,"noPole")

           +---+
          \|%pi
   (1)  ----------
             +---+
         +-+ |2 y
        \|2  |---
            \|%pi
                  Type: Union(f1: 
OrderedCompletion(Expression(Integer)),...)



I1:=integrate(cos(x*y)/sqrt(x),x=eps..%plusInfinity,"noPole")

                                +---+
             +-+          +---+ |2 y      +---+
        - 2 \|2 fresnelC(\|eps  |--- ) + \|%pi
                               \|%pi
   (8)  ---------------------------------------
                            +---+
                        +-+ |2 y
                       \|2  |---
                           \|%pi
                  Type: Union(f1: 
OrderedCompletion(Expression(Integer)),...)


 limit(I1,eps=0)

                                                       +---+
                                                      \|%pi
   (9)  [leftHandLimit = "failed", rightHandLimit = ----------]
                                                         +---+
                                                     +-+ |2 y
                                                    \|2  |---
                                                        \|%pi
Type: Union(Record(leftHandLimit: 
Union(OrderedCompletion(Expression(Integer)),"failed"),rightHandLimit: 
Union(OrderedCompletion(Expression(Integer)),"failed")),...)


Maxima:
(%i15) I:integrate(cos(x*y)/sqrt(x),x,0,inf);
Is y positive, negative or zero?

pos;
                                    %i %pi    %i %pi
                                  - ------    ------
                                      4         2
                      sqrt(%pi) %e         (%e       + 1)
(%o15)                -----------------------------------
                                   2 sqrt(y)


(%i16) trigsimp(%);

                                   sqrt(%pi)
(%o16)                          ---------------
                                sqrt(2) sqrt(y)




----
(20) ->  I1:=integrate(cos(x*y)/sqrt(x),x=0..M,"noPole")

                         +---+
                     +-+ |2 y
         2 fresnelC(\|M  |--- )
                        \|%pi
   (20)  ----------------------
                  +---+
                  |2 y
                  |---
                 \|%pi
                  Type: Union(f1: 
OrderedCompletion(Expression(Integer)),...)
(21) -> limit(I1,M=%plusInfinity)

            +---+
           \|%pi
   (21)  ----------
              +---+
          +-+ |2 y
         \|2  |---
             \|%pi
                      Type: 
Union(OrderedCompletion(Expression(Integer)),...)
(22) ->

---



=== 

I2:=integrate(cos(x*y)/(x^2+a^2),x=0..%plusInfinity,"noPole")
   Ei
   [- a y + x y %i]

   (1)  "failed"
                                                Type: Union(fail: 
failed,...)


(%i14) I2:integrate(cos(x*y)/(x^2+a^2),x,0,inf);
Is y positive, negative or zero?

pos;
Is a positive, negative or zero?

pos;
                                        - a y
                                  %pi %e
(%o14)                            -----------
                                      2 a





<http://resolver.caltech.edu/CaltechAUTHORS:20140123-101456353>

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to