Group Abstract Group Abstract

Message Boards Message Boards

Issue with Inverse Fourier transforms of Hypergeometric functions?

Posted 4 years ago

I was trying to compute the Hilbert Transform (HT) of Exp[-x^4]
using the well-known formula:

f[w_] := InverseFourierTransform[ I Sgn[x] FourierTransform[g[y], 
           y, x,  FourierParameters -> {1, -1}], 
           x, w,  FourierParameters -> {1, -1}] 

Oddly, this gave wrong results.
The first direct Fourier transform step was neatly solved:

FourierTransform[Exp[-x^4], x, w, FourierParameters -> {1, -1}] 

yielding:

2 Gamma[5/4] HypergeometricPFQ[{}, {1/2, 3/4}, w^4/256] - 
 1/4 w^2 Gamma[3/4] HypergeometricPFQ[{}, {5/4, 3/2}, w^4/256]

Then the inverse Fourier transform step:

I InverseFourierTransform[ % Sign[w], w, x, 
  Assumptions -> Element[w,  Reals], FourierParameters -> {1, -1}]

gave results with unexpected complex imaginary parts:

(1/(2 Pi Abs[x]))(-1)^(
 3/4) E^x^4 x (Gamma[1/4] Gamma[3/4, x^4] - 
   I Sqrt[2] Pi ((-1 - I) + GammaRegularized[1/4, x^4]))

as testifies the shocking:

% /. x -> 1 // N
-0.261089 - 2.27256 I

Hard as I could try to work this out, I am at a loss what to think. My tentative guess is that there may be a glitch in Inverse Fourier Transform algos. Attached is the notebook. Any idea out there for a workaround?

Notes:

  1. For Exp[-x^2] the process outlined above worked and gave the right result (- 2 DawsonF[x]/Sqrt[Pi]), identical to principal value integration of the convolution with 1/x on the real axis.
  2. For Exp[-x ^4], the HT was not fount by direct symbolic integration
Attachments:
POSTED BY: Fab Nicol
6 Replies
POSTED BY: Mariusz Iwaniuk

Another workaround:

 ClearAll["`*"]

 ML = MellinTransform[1/Pi*Exp[-\[Tau]^4]/(t - \[Tau]), t, s]
 INT = Integrate[ML, {\[Tau], -Infinity, Infinity}, 
    Assumptions -> {s > 0}] // ExpandAll
  InverseMellinTransform[INT, s, t](*Hilbert Transfrom Solution:*)

 (*(-MeijerG[{{0, 1/4, 1/2, 3/4}, {}}, {{0, 0, 1/4, 1/2, 3/4}, {}}, -t, 
    1/4] + MeijerG[{{0, 1/4, 1/2, 3/4}, {}}, {{0, 0, 1/4, 1/2, 3/
     4}, {}}, t, 1/4])/(8 \[Pi]^4)*)

  % /. t -> 1 // N(*For t=1,Only Real part is True*)

   (*0.81944 + 0.367879 I*)
POSTED BY: Mariusz Iwaniuk
Posted 4 years ago
POSTED BY: Fab Nicol

I wrote: "Real part is True".

I fond another solution expressed by MeijerG function:

 MeijerG[{{0, 1/4, 1/2, 3/4}, {}}, {{0, 0, 1/4, 1/2, 3/4}, {}}, t^4]/(
    8 \[Pi]^4) - 
    MeijerG[{{0, 1/4, 1/2, 3/4}, {1/8, 3/8, 5/8, 7/8}}, {{0, 0, 1/4, 1/
       2, 3/4}, {1/8, 3/8, 5/8, 7/8}}, t^4] /. t -> 1 // N

(*0.81944 + 1.27204*10^-17 I*)
POSTED BY: Mariusz Iwaniuk
Posted 4 years ago

I consider the Mellin transform result * not * a workaround though, since it gives a numerically significant erroneous imaginary part... Rather, this looks like an instantiation of the same Wolfram algo bug. In itself, it is not more (or less) reliable than the initial InverseFourier-based post.

POSTED BY: Fab Nicol
Posted 4 years ago

Thanks Markus, this at least gives a possible idea of the Mathematica bug (I am running Mathematica 13.0).
I am grateful for this workaround. I could replicate it step by step. Running:

FullSimplify[InverseLaplaceTransform[(t (Sqrt[s] + t^2))/(Sqrt[2] s^(3/4) (s + t^4)), 
             s, a,  Assumptions -> t \[Element] Reals && t > 0] /. a -> 1 , 
                    Assumptions -> t \[Element] Reals && t > 0] 

I arrived at:

 HT =  (E^-t^4 (-4 I \[Pi] - 2 t^3 ExpIntegralE[1/4, -t^4] Gamma[1/4] - 
  2 t ExpIntegralE[3/4, -t^4] Gamma[3/4]))/(4 \[Pi])

and:

  % /. t -> 1 // N
  (* 0.81944 + 2.60013*10^-17 I *)

Which established replication. The fact that the imaginary part is not numerically significant is established by:

Mean[Im[Table[HT]^2, {t, 1, 5, 0.1}]]]
 (* 2.66728*10^-18 *)

There still remains to understand where this imaginary part comes from.

POSTED BY: Fab Nicol
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard