# Inverse Laplace Transform of Hypergeometric function

Any tips how to massage the following to get computed by Mathematica for $$p>1$$? I suspect the result should be expressible in terms of exponential integral

InverseLaplaceTransform[Hypergeometric2F1[1, 1/p, 1 + 1/p, s], s, t]


The following equality was obtained using "guess-and-check"

LaplaceTransform[ -ExpIntegralE[1/p, -x]/p, x, s] ==
Hypergeometric2F1[1, 1/p, 1 + 1/p, s]  (* True *)

• Given that the code won't work even for a fixed value such as $p=2$, I think this cannot work in the general case. Perhaps try forming the explicit transform integral. Might work. May 18 at 2:05
• @DavidG.Stork In this particular way there's a convoluted indirect way of getting from domain-specific knowledge (LaplaceTransform[(d^(1 - p) ExpIntegralE[1/p, -a d^-p t])/p, t, s]), but was curious about a general technique for this May 18 at 2:09
• Check for the quotient to be a constant. Equality can fail for many reasons. May 18 at 13:48

Maybe:

FullSimplify[InverseMellinTransform[InverseLaplaceTransform[
MellinTransform[Hypergeometric2F1[1, 1/p, 1 + 1/p, s/a], a, q] //
FunctionExpand, s, x], q, a] /. a -> 1]

(*-(ExpIntegralE[1/p, -x]/p) *)


Edited 20.07.2023:

InverseLaplaceTransform[Hypergeometric2F1[1, 1/p, 1 + 1/p, s], s, t] ==
InverseLaplaceTransform[FoxHReduce[Hypergeometric2F1[1, 1/p, 1 + 1/p, s], s], s, t] == (
Gamma[1 + 1/p] Inactive[
FoxH][{{{0, 1}, {(-1 + p)/p, 1}}, {}}, {{{0, 1}}, {{-(1/p),
1}, {1, -1}}}, -(1/t)])/(
t Gamma[1/p]) == ((-(1/t))^(-1/p) Gamma[(-1 + p)/p, -t])/(
p t) == -(ExpIntegralE[1/p, -t]/p)


. Inverse Laplace Transform of FoxH function I use formula from book on page:51

TL;DR: Convert to a MeijerG function using MeijerGReduce and apply the general formula found at : https://functions.wolfram.com/HypergeometricFunctions/MeijerG/22/03/0001/ using the identities found at https://functions.wolfram.com/HypergeometricFunctions/MeijerG/16/01/01/

Hypergeometric2F1[1, 1/p, 1 + 1/p, s] can be written as a MeijerG function using MeijerGReduce. Then, with some extra work, one can apply the formula for the Laplace transform of a MeijerG function found at https://functions.wolfram.com/HypergeometricFunctions/MeijerG/22/03/0001/. That said, the notation kp+l for the number of arguments on the right-hand side does not seem coherent with the number of arguments shown. I will consider that a mistake and that it should be kp instead. It is unclear to me what some of the extra variables that appear in the condition are or what the $$c^*$$ is. I will assume they can be ignored in the case at hand where, as we will see, $$l=k=\alpha=1$$ in that formula.

First, the MeijerG representation of Hypergeometric2F1[1, 1/p, 1 + 1/p, s] :

Hypergeometric2F1[1, 1/p, 1 + 1/p, s] //
MeijerGReduce[#, s] & // FullSimplify

Inactive[MeijerG][{{0, (-1 + p)/p}, {}}, {{0}, {-(1/p)}}, -s]/p


The MeijerG function should look like the right-hand side from the link to apply the inverse Laplace transform. Using the identities found at https://functions.wolfram.com/HypergeometricFunctions/MeijerG/16/01/01/ one obtains an equivalent form:

(-1/s)*Inactive[MeijerG][{{0}, {1/p}}, {{0, 1/p - 1}, {}}, -(1/s)]/p


Check:

Inactive[MeijerG][{{0, (-1 + p)/p}, {}}, {{0}, {-(1/p)}}, -s]/
p == (-1/s)*
Inactive[MeijerG][{{0}, {1/p}}, {{0, 1/p - 1}, {}}, -(1/s)]/p //
Activate // FullSimplify

(* True *)


The general formula for the Laplace transform restricted to the case $$l=k=\alpha=1$$ shows that to obtain the inverse Laplace transform from (-1/s)*Inactive[MeijerG][{{0}, {1/p}}, {{0, 1/p - 1}, {}}, -(1/s)]/p, it is sufficient to :

• Multiply the overall expression by $$s^\alpha=s$$

• Change $$s$$ to $$1/s$$ in the argument of the MeijerG function

• Drop the $$1-\alpha=0$$

The inverse Laplace transform is then:

-Inactive[MeijerG][{{}, {1/p}}, {{0, -1 + 1/p}, {}}, -x]/p //
Activate // FullSimplify

(* -(ExpIntegralE[1/p, -x]/p) *)


I put together recipes provided by Mariusz Iwaniuk into standalone functions ilaplaceFeynmann and ilaplaceMellin. The Mellin transform approach seems to be the fastest

ClearAll["Global*"];
ilaplace[expr_] := InverseLaplaceTransform[expr, s, t];

(* Custom Laplace transforms from "Hypergeometric" post *)

(*Mariusz solution from \
https://mathematica.stackexchange.com/a/285338/217*)
augmentInv[expr_, var_] := Module[{a1, a2, a3, a4, expra},
expra = expr /. {
ArcTan[a1_] -> ArcTan[a1/var],
Log[a1_] -> Log[a1/var],
Hypergeometric2F1[a1_, a2_, a3_, a4_] ->
Hypergeometric2F1[a1, a2, a3, a4/var]
};
If[MemberQ[ReduceFreeVariables[expra], var], expra, expra/var]
];

ilaplaceMellin0[expr_] :=
Block[{expra, mellin, ilap, imellin, s, t, a},
expra = augmentInv[expr, a];
mellin = FunctionExpand@MellinTransform[expra, a, q];
ilap = InverseLaplaceTransform[mellin, s, t];
imellin = InverseMellinTransform[ilap, q, a] /. a -> 1;
FullSimplify@imellin
];

SetAttributes[ilaplaceMellin0, Listable];
ilaplaceMellin[expr_] :=
Block[{dummy},
Distribute@dummy@Expand[expr] /. dummy -> ilaplaceMellin0];

(* https://zackyzz.github.io/feynman.html *)
augment[expr_, var_] := Module[{a1, a2, a3, a4, expra},
expra = expr /. {
ArcTan[a1_] -> ArcTan[a1 var],
Log[a1_] -> Log[a1 var],
Hypergeometric2F1[a1_, a2_, a3_, a4_] ->
Hypergeometric2F1[a1, a2, a3, a4 var]
};
If[MemberQ[ReduceFreeVariables[expra], var], expra, var*expra]
];

ilaplaceFeynmann0[expr_] := Block[{repl, ilap, a1, a2, a3, a4, a},
expra = augment[expr, a];
ilap = InverseLaplaceTransform[D[expra, a] // Factor, s, t];
Assuming[{t > 0}, Integrate[ilap, {a, 0, 1}]]
];
SetAttributes[ilaplaceFeynmann0, Listable];
ilaplaceFeynmann[expr_] :=
Block[{dummy},
Distribute@dummy@Expand[expr] /. dummy -> ilaplaceFeynmann0];

expr1 = ArcTan[Sqrt[2]/Sqrt[s]]/(Sqrt[2] Sqrt[s]);
expr2 = Hypergeometric2F1[1, 1/3, 4/3, s];

results =
Outer[TimeConstrained[#1[#2], 60] &, {ilaplace, ilaplaceFeynmann,
ilaplaceMellin}, {expr1, expr2}];

TableForm[results,
TableHeadings -> {{"default", "Feynmann", "Mellin"}, {expr1, expr2}}]

`