MATLAB: FFT с указанными режимами
Используя MATLAB, я хочу реализовать какой-то спектральный метод. Идея заключается в следующем (описано для примера, который работает).
Границы Дирихле (и Неймана, и периодические) приводят к собственным значениям в пространстве Фурье
k=n*pi/L
Проецирование всех линейных операторов в пространстве Фурье на дискретные значения k:
например
L = -D*(k.*k)
(только для распространения)Определение пропагатора во времени как
P = exp( dt * L )
Итеративный расчет эволюции во времени
uh_{n+1} = uh_n * P
возвращать вычисленное значение в реальное пространство каждый раз, когда я хочу сохранить значение
ifft( uh )
Мой вопрос касается других граничных условий.
В моем случае у меня есть граничные условия Робина. Итак, собственные значения определяются через какое-то странное уравнение вида tan( x ) = x
или т.п. Проблема их вычисления решена.
Поскольку у меня есть значения, шаг нет. 2 и 3 тоже просты, но:
Для применения P
на фурье-преобразованном векторе uh
Я должен убедиться, что мой uh = fft(u)
использует те же собственные значения, что не имеет место по умолчанию.
По умолчанию MATLAB использует эквидистантные режимы для БПФ.
Есть ли простой трюк для этого?
Или, может быть, я ошибся в своих мыслях?