如何在 MATLAB 中进行 Weierstrass 变换?

计算科学 matlab 计算物理学 离散化 量子力学
2021-12-26 23:02:07

我有一个对角化问题。我有正确的特征态,我想对它们进行高斯涂抹(Weierstrass 变换)。所以我有波函数()和连续方程:Ψ

ζ(x)=dxgσx(xx)|Ψ(x)|2,

其中是正态分布。gσx

我不知道如何使用 MATLAB 中的离散向量来做到这一点,即|Ψ|2,ζCn

1个回答

你想要的是两个函数之间的卷积。f=|Ψ|2g=gσx(x)h=(fg)(x)

您可以计算的傅里叶变换,得到h

F{h}=F{f}F{g},

然后,只需计算傅里叶逆变换即可获得您想要的

h=F1{F{f}F{g}}.

要在 MATLAB 中执行此操作,您需要在域中对函数进行采样,并改用快速傅里叶变换。也许,MATLAB 已经有类似fftconvolve.