Message Boards Message Boards

Numerically evaluate an equation with no closed solution

Posted 4 years ago

I have this equation:

InverseFourierTransform[(
 E^(-2 I \[Pi] Sqrt[-k^2 + 1/\[Lambda]^2] - (
   2 d^2 \[Pi] + 2 d f k \[Lambda] + I f k^2 s^2 \[Lambda])/(
   4 \[Pi] s^2 + 2 I f \[Lambda])) (1 + E^((2 d f k \[Lambda])/(
    2 \[Pi] s^2 + I f \[Lambda]))))/Sqrt[
 1/s^2 - (2 I \[Pi])/(f \[Lambda])], k, y]

There could be that there isn't a closed analytic solution to this integral, at least Mathematica isn't able to find one, but I would nevertheless like to render this solution with arbitrary precision, filling in the values for all constants and keeping y as my free variable - is it possible to do this using Mathematica?

I have tried

\[Lambda] = 4/10000
d = 10
f = 1
s = 1/10
numericalPropagated = 
 NInverseFourierTransform[(E^(-2 I \[Pi] Sqrt[-k^2 + 1/\[Lambda]^2] - (
   2 d^2 \[Pi] + 2 d f k \[Lambda] + I f k^2 s^2 \[Lambda])/(
   4 \[Pi] s^2 + 2 I f \[Lambda])) (1 + E^((2 d f k \[Lambda])/(
    2 \[Pi] s^2 + I f \[Lambda]))))/Sqrt[1/s^2 - (2 I \[Pi])/(
  f \[Lambda])], k, 0, MinRecursion -> 10, 
  AccuracyGoal -> 30, MaxRecursion -> 100, WorkingPrecision -> 1000]

But I get

NIntegrate::slwcon: Numerical integration converging too slowly; suspect one of the following: singularity, value of the integration is 0, highly oscillatory integrand, or WorkingPrecision too small.

The global error of the strategy GlobalAdaptive has increased more than 400 times. The global error is expected to decrease monotonically after a number of integrand evaluations. Suspect one of the following: the working precision is insufficient for the specified precision goal; the integrand is highly oscillatory or it is not a (piecewise) smooth function; or the true value of the integral is 0. Increasing the value of the GlobalAdaptive option MaxErrorIncreases might lead to a convergent numerical integration. NIntegrate obtained -2.194521430849186388106960300167831712321656005097014136598164230620152482497568008903710737080064678*10^21581602+2.315255951449441733955934494621527376791964813510528643731674712989992384232880778960670746059290244*10^21581602 I and 6.086001836783462573004332527070854458677008985942473942086809177261804346350708280403304973080363529`100.*^21581603 for the integral and error estimates.

I have also tried looking near zero (put 1/1000 there), but even though I had more than 17GB remaining RAM, It eventually stopped with

Throw::sysexc: Uncaught SystemException returned to top level. Can be caught with Catch[\[Ellipsis], _SystemException].

Any recommendations? Also, is there a way of numerically evaluating this expression on a range with given steps?

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

Group Abstract Group Abstract