用 FFT 逼近不正确的积分

计算科学 matlab 傅里叶变换 一体化
2021-12-01 07:37:21

在 d'Halluin 等人中。(2005) ( http://imajna.oxfordjournals.org/content/25/1/87.short ) 作者声称相关积分

I(x)=V(x+y)f(y)dy
可以用 FFT 方法近似为
Ik=IFFT((FFT(V)k)(FFT(f))k)
在哪里(.)表示复共轭。

我试图在 Matlab 中用V=max(90eyK,0)f是正态分布的概率密度函数,其中\ μ=0.1σ=0.2通过分析,我得到结果I(0)=8.783,但无论我尝试 FFT 近似,结果都远不及此。

我的数学背景非常薄弱,我对 FFT 方法没有任何直觉或知识。V()f()计算了一组值(2 的幂) f(),对两个向量的 FFT 进行了元素乘法和矩阵乘法,并检查了 IFFT 的实部,但我从来没有得到想要的结果。

我究竟做错了什么?有人可以告诉我如何得到结果吗?

这是我这样做的一种方式的代码:

S = 90;
K = 100;           
mu = 0.1;
sig = 0.2;
AA = 2.5;
N = 255;             
x = (linspace(-AA,AA,N+1))';

V = max(S.*exp(x) - K,0);
ffff = normpdf(x,mu,sig);

I_k = real(ifft(fft(V).*conj(fft(ffff))));
1个回答

尽管这是一个严格的要求,但作者明确提到的空间中是等距的他们也在伪代码中以这种方式生成它。在这种情况下我认为你不满足这一点。而且在论文中,也是概率密度。这只是提前警告。xlog(S)V¯(logS)=V(S)f¯

它们沿非等间距插值的分辨率出现在稍后阶段,在该阶段它们将结果的离散值显式插值到原始网格上。S

因此,理论上,该方程是一个改变的互相关,其中不是复共轭。那么在这种情况下,公式是正确的(不是近似值) - 当然是定期进行边界处理。f