ガウス関数とローレンツ関数の中間の関数数値で定義しています。ガウス分布よりもはるかに遅く減衰しますが、単純な逆指数よりも高速です。
フーリエ変換を大きなに対して計算する必要があります。への関数呼び出しは計算コストが高いため、補間を定義します-これをと呼び -いくつかの巨大な範囲、、それを私の積分に使用します。T G (X )G (X )G INT(X )X - 40 < X < 40
しかし、フーリエ変換の近似を計算すると、最初は予期していなかった奇妙な振動が発生します。
上の図で示したように、振動の「周期」は約15.7です。私の最初の推測は、これは積分の相殺の交互の性質のアーティファクトであるかもしれないが、それは15.7の観察された「期間」を説明しないでしょう。
これは、私が観察するものとはまったく異なる100の因数です(はい、積分と水平軸を正しく定義したことを確認しました)。これはどうやってできるの?
編集#1:補間の詳細
私は、Mathematicaの組み込みInterpolation
で補間しています。これは、3次曲線で連続するポイント間を補間します(したがって、各ポイントで2導関数まで定義されます)。具体的には、関数を範囲でステップで補間しています。 G(X)-40<X<40DX=40 / 100=0.4
実際、私がそれを書いている今、私はそれが私の有限サンプリングの人工物である可能性が非常に高いことに気づきました。
私はこれについてさらに助けてくれれば幸いです、特にこの問題を克服する良い方法です。
編集#2:関数
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*)
Integrate
的にの内挿の適応構造(およびその中に入るすべての考え)を置き換えますデザイン)あなた自身のもので、これはおそらく悪い考えです。
Module[{n=32,L=10},Exp[InterpolatingPolynomial[Table[{x,Log[g[x]]},{x,-L Cos[(π N@Range[1,2n-1,2])/(2n)]}],x]]]