Was sind diese Schwingungen?

8

Ich habe eine numerisch definierte Funktion die zwischen einem Gaußschen und einem Lorentzschen liegt. Es zerfällt viel langsamer als ein Gaußscher, aber immer noch schneller als eine einfache inverse Kraft.G(x)

Geben Sie hier die Bildbeschreibung ein

Ich muss seine Fourier-Transformation für großes berechnen . Da Funktionsaufrufe von rechenintensiv sind, definiere ich eine Interpolation von - nenne es - für einen großen Bereich von , , und benutze das für mein Integral.t g ( x ) g ( x ) g int ( x ) x - 40 < x < 40f(t)F.[G(x)]](t)tG(x)G(x)Gint(x)x- -40<x<40

f(t)=- -cos(tx)G(x)dx- -L.L.cos(tx)Gint(x)dx

Wenn ich jedoch eine Annäherung an die Fourier-Transformation berechne, erhalte ich einige merkwürdige Schwingungen, die ich zunächst nicht erwarten würde.

Geben Sie hier die Bildbeschreibung ein

Wie ich im obigen Bild angegeben habe, haben die Schwingungen eine "Periode" von ungefähr 15,7. Meine erste Vermutung wäre, dass dies ein Artefakt der alternierenden Natur der Aufhebung des Integrals sein könnte, aber das würde die beobachtete "Periode" von 15,7 nicht erklären.

T.vermuten=2πL.0,157

Das ist genau ein Faktor von 100, der sich von dem unterscheidet, was ich beobachte (ja, ich habe überprüft, ob ich meine Integrale und horizontalen Achsen richtig definiert habe). Wie konnte das sein?


Edit # 1: Interpolationsdetails

Ich interpoliere mit Mathematicas integriertem InterpolationElement, das zwischen aufeinanderfolgenden Punkten mit einer kubischen Kurve interpoliert (also wird an jedem Punkt bis zur Ableitung 2 definiert). Ich interpoliere spezifisch die Funktion über den Bereich in Schritten von .ndG(x)- -40<x<40dx=40/.100=0,4

In der Tat, jetzt, wo ich das schreibe, ist mir klar, dass es sehr gut ein Artefakt meiner endlichen Stichprobe sein könnte, weil:

T.Vermutung # 2=2πdx=2π0,4=15.7

Ich würde mich über weitere Hilfe freuen, insbesondere über einen guten Weg, um dieses Problem zu lösen.


Edit # 2: Die Funktion G(x)

h[x_?NumericQ, En_?NumericQ, pz_?NumericQ] := 
 1./(En^2 + pz^2 + 0.24^2)*
  NIntegrate[((Sqrt[
      0.316/(1. + 
         1.2*((k4 + 0.5*En)^2 + kp + (x*pz)^2))^1.*0.316/(1. + 
         1.2*((k4 - 0.5*En)^2 + kp + ((1. - x)*pz)^2))^1.])*((1. - 
         x)*0.316/(1. + 1.2*((k4 + 0.5*En)^2 + kp + (x*pz)^2))^1. + 
      x*0.316/(1. + 
         1.2*((k4 - 0.5*En)^2 + kp + ((1. - x)*pz)^2))^1.))/(((k4 + 
        0.5*En)^2 + 
      kp + (x*pz)^2 + (0.316/(1. + 
         1.2*((k4 + 0.5*En)^2 + kp + (x*pz)^2))^1.)^2)*((k4 - 
        0.5*En)^2 + 
      kp + ((1. - x)*
        pz)^2 + (0.316/(1. + 
         1.2*((k4 - 0.5*En)^2 + 
            kp + ((1. - x)*
              pz)^2))^1.)^2)), {k4, -\[Infinity], \[Infinity]}, {kp, 
    0, \[Infinity]}, Method -> "LocalAdaptive", 
   MaxRecursion -> 
    100]; (*LocalAdaptive seems to work slightly faster *)

g[x_]:=h[0.5,x,2.]; (*this is the function*)
Arturo don Juan
quelle
Welche Art von Interpolation verwenden Sie? Es ist eigentlich nicht die einfachste Funktion, auf einer so großen Domäne genau zu interpolieren.
Anton Menshov
@AntonMenshov Siehe meine letzte Bearbeitung.
Arturo Don Juan
4
Ich möchte darauf hinweisen, dass jede numerische Integrationsmethode im Wesentlichen einen Interpolanten Ihrer Funktion erstellt und diesen genau integriert. Wenn Sie also die Funktion zuerst selbst interpolieren, ersetzen Sie Integratetatsächlich die adaptive Konstruktion von Interpolanten (und all den Gedanken, der in ihre Funktion eingeflossen ist) Design) mit Ihrem eigenen, was wahrscheinlich eine schlechte Idee ist.
Kirill
2
GLogG(x)[- -L.,L.]]Module[{n=32,L=10},Exp[InterpolatingPolynomial[Table[{x,Log[g[x]]},{x,-L Cos[(π N@Range[1,2n-1,2])/(2n)]}],x]]]
1
Ich denke auch, dass es hilfreich wäre, den Integranden ( gist.github.com/ikirill/931dbf6fb3581f7d66353b74c4743cd3 ) zu kompilieren , unabhängig von all den schwierigeren Problemen, die es für mich um den Faktor ~ 8 beschleunigt.
Kirill

Antworten:

5

- -- -L.L.

L.cos(tx)G(x)dx=1tSünde(tx)G(x)|L.- -L.SündetxtG'(x)dx=- -1L.G(L.)Sünde(tL.)+asymptotisch kleinere Begriffe.
G'G

G(L.)G(L.)

Kirill
quelle