使用 MATLAB 我想实现某种光谱方法。这个想法如下(描述了一个有效的例子)。
Dirichlet(和 Neumann 和周期性)边界导致傅立叶空间中的特征值
k=n*pi/L
将傅立叶空间中的所有线性算子投影到离散化的 k 值:
例如
L = -D*(k.*k)
(仅用于扩散)将传播者及时定义为
P = exp( dt * L )
通过迭代计算时间演化
uh_{n+1} = uh_n * P
每次我想通过以下方式保存值时,将计算值返回到真实空间
ifft( uh )
我的问题涉及另一个边界条件。
就我而言,我有 Robin 边界条件。因此,特征值是通过一些奇怪的形式等式定义tan( x ) = x
的。计算它们的问题就解决了。
因为我有价值观,所以步骤没有。2和3也很简单,但是:
为了应用P
傅立叶变换向量uh
,我必须确保我uh = fft(u)
使用相同的特征值,默认情况下并非如此。
默认情况下,MATLAB 对 fft 使用等距模式。
有什么简单的技巧吗?
或者,也许,我的想法有什么错误吗?