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.