Group Abstract Group Abstract

Message Boards Message Boards

1
|
10.8K Views
|
20 Replies
|
7 Total Likes
View groups...
Share
Share this post:

Determine inverse Laplace transforms of these expressions?

Posted 4 years ago

Hi, I have a new problem with determining inverse Laplace transforms. The following code generates a series expansion of a certain expression, and then attempts to calculate inverse Laplace transforms of the successive series coeffcients. The coefficients are functions of the Laplace variable s that appear rather hard (for me) to be expressed by any recursive formula, so that I do not see a way to represent them in an alternative way. The problem is that the InverseLaplaceTransform[] command manages to invert only the first three coefficients, and I need at least 40. I believe all these inverses should contain the DawsonF[] function. Application of Apart[] makes things even worse, and diminishes the number of inverted coefficients. Is there any other method that could be applied to rearrange the expressions in some systematic way so that the inverses can be obtained? Leslaw. The code:

    nmax=5;
    F[s_]:=(((1+s)^2+3*s^(3/2)*(1+s)^(1/2)*th-4*s*(1+s)*th+3*s^(1/2)*(1+s)^(3/2)*th+s^2*th^2))/
            (8 (s^(3/2)*(1+s)^(1/2)*((1+s)^(1/2)+s^(1/2)*th)^3));
    ser0=Simplify[Series[F[s],{th,0,nmax}]];
    coeffs0=Table[SeriesCoefficient[ser0,n],{n,0,nmax}];
    coeffs1=InverseLaplaceTransform[coeffs0,s,t]
POSTED BY: Leslaw Bieniasz
20 Replies

Many thanks, this is an extremely helpful result. Leslaw

POSTED BY: Leslaw Bieniasz

Hi, a year ago, within this thread, Mariusz Iwaniuk posted a code combining Laplace and Mellin transforms, that effectively obtained the inverse Laplace transform of a certain complicated function that I considered. I am hopelessly trying to apply the same code to one more similar function, namely:

F[s_]:=((Sqrt[s] - Sqrt[s+1])^2)/((th*Sqrt[s] + Sqrt[s+1])^3)/s

where th>0 is a parameter and s is a Laplace variable. The program produces some output, seemingly without error messages, but the result appears incorrect, so that I must be doing something wrong. Unfortunately, I am unable to make meaningful interactive tests, as I have only access to Mathematica 12 in batch mode. Mariusz: if you still read these messages, may I ask you to try to apply your program to the above function? I would be happy to learn what I do wrong. Leslaw

POSTED BY: Leslaw Bieniasz

See attached file.

Regards.

Attachments:
POSTED BY: Mariusz Iwaniuk

I have tried to run the code posted by Mariusz (once again many thanks, the results generated by the code are extremely useful for me), but it does not want to run under MATHEMATICA 11. There are lots of error/warning messages, and at some point the program appears to stop doing anything. Therefore I am unable to try out the same approach for calculating the inverse transform of the another function that I need:

F[s_]=(1+s+s*th)/(2*s*((Sqrt[1+s]+Sqrt[s]*th)^2))

where again th > 0. May I ask Mariusz or someone else to make a run and generate analogous results for this function? Leslaw

POSTED BY: Leslaw Bieniasz

I tried many methods(tricks) and failed to solve your problem.If I can solve the problem, I will let you know.

POSTED BY: Mariusz Iwaniuk

I have found only:

HoldForm[InverseLaplaceTransform[(1 + s + s th)/(
   2 s (Sqrt[1 + s] + Sqrt[s] th)^2), s, t] == 
  Integrate[(
   E^-x (-2 th Sqrt[x] + 
      E^(th^2 x)
        Sqrt[\[Pi]] (1 + 2 th^2 x) Erfc[
        th Sqrt[x]]) ((1 + th) Hypergeometric0F1[1, -t x] + 
      t Hypergeometric0F1[2, -t x]))/(
   2 Sqrt[\[Pi]]), {x, 0, Infinity}] == 
  Sum[1/2 (-1)^n (1 + n) th^
    n ((1 + th) Hypergeometric1F1[1 + n/2, 1, -t] + 
      t Hypergeometric1F1[1 + n/2, 2, -t]), {n, 0, Infinity}]]

for: Integral: -1 < th < Infinity

for: Sum: -1< th <1

Probably no-closed form solution.

POSTED BY: Mariusz Iwaniuk

" But I am afraid it is out of my reach to understand what you have done"

An simple example:

 InverseLaplaceTransform[1/(s^2 + s), s, t]
 (*1 - E^-t*)
 InverseMellinTransform[
 InverseLaplaceTransform[MellinTransform[1/(s^2 + A*s), A, q], s, t],q, A] /. A -> 1
 (*1 - E^-t*)

Different methods the same result.

" Is this a 100% exact result, or a very accurate approximation "

Yes it's a 100% exect result, no approximation.

"why the InverseLaplaceTransform[] command is not able to derive such a result directly from F[s]"

Mathematica is not a magic box that'll spit out a solution to any problem.Mathematica need a litle a Human assistance to solve any problem.It does not yet have artificial intelligence.

POSTED BY: Mariusz Iwaniuk
POSTED BY: Leslaw Bieniasz
POSTED BY: Leslaw Bieniasz

Many thanks, the proposal of Hrach seems to work like a charm. If only I could understand what this ILT function actually does! Do I understand correctly that it does a sort of a parsing of the input expression into addends and addends into products of constant coefficients and s-dependent functions, and then applies InverseLaplaceTransform to the s-dependent functions, with the exception of the particular function from the table of Laplace transforms, for which the inverse is directly provided?

I also have another problem related to my F[s] function, but I put it into a separate question. Leslaw

POSTED BY: Leslaw Bieniasz
Attachments:
POSTED BY: Mariusz Iwaniuk

Hi Leslaw,

-Do I understand correctly that it does a sort of a parsing of the input expression into addends and addends into products of constant coefficients and s-dependent functions, and then applies InverseLaplaceTransform to the s-dependent functions, with the exception of the particular function from the table of Laplace transforms, for which the inverse is directly provided?

Yes, that is exactly what ILT function is doing.

Basically it is just the InverseLaplaceTransform function augmented with the particular table look-up function that I have mentioned in my previous reply.

Hrach

I tried your code formulation, but it produces only the inverses of the first two expansion terms, so it is worse than my original code. I am not sure which version of MATHEMATICA I have access to; it is probably 10.2.0. Is there any other approach? Leslaw

POSTED BY: Leslaw Bieniasz
Posted 4 years ago

If you do the transformation for each coefficient separately, Mathematica seems to work with Apart[].

Take

f[s_] :=(((1 + s)^2 + 3*s^(3/2)*(1 + s)^(1/2)*th - 4*s*(1 + s)*th + 3*s^(1/2)*(1 + s)^(3/2)*th + s^2*th^2))/(8 (s^(3/2)*(1 + s)^(1/2)*((1 + s)^(1/2) + s^(1/2)*th)^3));
fCoeff = Table[Expand[SeriesCoefficient[f[s], {th, 0, k}]], {k, 0, 40, 1}];

which is a list of 41 coefficients with respect to "th". Then

InverseLaplaceTransform[Apart[fCoeff[[k]]], s, t]

gives the k-th coefficient.

Honestly, the computation time for some coefficients is quite long. So if you are brave, you can do something like

Table[InverseLaplaceTransform[Apart[fCoeff[[k]]], s, t], {k, 1, 10}]

which still works pretty well on my computer. This list contains the coefficients with respect to your variable th.

POSTED BY: lara wag

ff is not what I need, because ff involves an expansion into powers of 1/s, whereas I need Laplace transforms (symbolic formulae) of the successive terms of the expansion into powers of parameter th. Please see my code. Each term is a certain function of s, and I need inverses of 40 of these terms. Unfortunately MATHEMATICA produces the formulae for the inverses of only the first three terms, and fails for further terms. My question was how can one rearrange the expressions for the terms, so that the Inverses can be obtained symbolically. Using Apart[] sometimes helps, but apparently not in this case. I think it is unlikely that the inverses do not exist, so that it is a technical problem only, how to make the task easier for MATHEMATICA. In fact, I tried to rearrange the fourth term manually, and I managed to obtain something invertible, although the inverse contained the Erfi[] function instead of the DawsonF[] function (which is still another problem). But it must be a horrible task to manually rearrange all 40 terms. In my opinion it would be highly desirable to improve the InverseLaplaceTransform[] command so that it can look for inverses in a more robust way - some extensive symbolic preprocessing appears to be lacking. Leslaw.

POSTED BY: Leslaw Bieniasz
InverseLaplaceTransform[Expand[Apart[Asymptotic[f, {th, 0, 10}], s]], s, t](*10 terms*)

The computation time is quite long.

POSTED BY: Mariusz Iwaniuk

Thank you for a response, but I am afraid this is not a response to my question. I do not have a series expansion around s=Infinity, but an expansion around th=0 where th is a parameter in F[s]. Numerical inversion is also not an option for me in this case, as I need analytical expressions for the inverses of the successive series expansion terms. Leslaw.

POSTED BY: Leslaw Bieniasz

function ff is analytical expressions for the inverses of the successive series expansion terms ?

POSTED BY: Mariusz Iwaniuk
f = (((1 + s)^2 + 3*s^(3/2)*(1 + s)^(1/2)*th - 4*s*(1 + s)*th + 
      3*s^(1/2)*(1 + s)^(3/2)*th + 
      s^2*th^2))/(8 (s^(3/2)*(1 + s)^(1/2)*((1 + s)^(1/2) + 
          s^(1/2)*th)^3));
ff = InverseLaplaceTransform[Series[f, {s, Infinity, 20}] // Normal, 
   s, t];(*With 20 terms*)
N[ff /. t -> 1 /. th -> 1, 20](*for th=1, t=1*)
(*0.065780620406027739102*)

We can now compute InverseLaplaceTransfrom numerically in Mathematica 12.2.0:

InverseLaplaceTransform[f /. th -> 1, s, 1.0, WorkingPrecision -> 20](*for th=1, t=1*)
(*0.065780620406027739079*)

We can see 18 correct digits with 20 terms.

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