MATLAB: FFT с указанными режимами

Используя MATLAB, я хочу реализовать какой-то спектральный метод. Идея заключается в следующем (описано для примера, который работает).

  1. Границы Дирихле (и Неймана, и периодические) приводят к собственным значениям в пространстве Фурье k=n*pi/L

  2. Проецирование всех линейных операторов в пространстве Фурье на дискретные значения k:

    например L = -D*(k.*k) (только для распространения)

  3. Определение пропагатора во времени как P = exp( dt * L )

  4. Итеративный расчет эволюции во времени uh_{n+1} = uh_n * P

  5. возвращать вычисленное значение в реальное пространство каждый раз, когда я хочу сохранить значение ifft( uh )

Мой вопрос касается других граничных условий.

В моем случае у меня есть граничные условия Робина. Итак, собственные значения определяются через какое-то странное уравнение вида tan( x ) = x или т.п. Проблема их вычисления решена.

Поскольку у меня есть значения, шаг нет. 2 и 3 тоже просты, но:

Для применения P на фурье-преобразованном векторе uh Я должен убедиться, что мой uh = fft(u) использует те же собственные значения, что не имеет место по умолчанию.

По умолчанию MATLAB использует эквидистантные режимы для БПФ.

Есть ли простой трюк для этого?

Или, может быть, я ошибся в своих мыслях?

0 ответов

Другие вопросы по тегам