Русская Википедия:Спектральный метод

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Спектральные методы — это класс используемых в прикладной математике методик для численного решения некоторых дифференциальных уравнений, иногда использующих быстрое преобразование Фурье. Идея заключается в представлении решения дифференциальных уравнений как суммы некоторых «базисных функций» (например, как ряды Фурье являются суммой синусоид) с последующим выбором коэффициентов в сумме, наиболее удовлетворяющих заданным уравнениям.

Спектральные методы и методы конечных элементов тесно связаны и построены на одних и тех же идеях. Основное отличие заключается в том, что спектральные методы используют базисные функции, ненулевые во всей области определения, в то время как методы конечных элементов используют базисные функции, которые не равны нулю только в малых подобластях. Другими словами, спектральные методы предпринимают глобальный подход, в то время как методы конечных элементов используют локальный подход. Отчасти по этой причине спектральные методы имеют превосходные свойства так называемой «экспоненциальной сходимости», которая наиболее быстрая из возможных, если решение является гладким. Однако не известно трёхмерного однообластного спектрального Шаблон:Не переведено 5 (ударная волна не гладкая)Шаблон:Sfn. Метод конечных элементов, в котором степень элементов очень высока или возрастает при уменьшении параметра решётки h, иногда называется методом спектрального элемента.

Спектральные методы могут быть использованы для решения обыкновенных дифференциальных уравнений (ОДУ), дифференциальных уравнений в частных производных и задач нахождения собственных значений, вовлекающих дифференциальные уравнения. Когда спектральные методы применяются к зависимым от времени дифференциальным уравнениям в частных производных, решение обычно записывается как сумма базисных функций с зависящими от времени коэффициентами. Подстановка такой суммы в дифференциальное уравнение в частных производных даёт систему обыкновенных дифференциальных уравнений от коэффициентов, которая может быть решена с помощью любого.Шаблон:Не переведено 5. Задача нахождения собственных значений для обыкновенных дифференциальных уравнений аналогичным образом сводится к задаче нахождения собственных значений матрицы.

Спектральные методы были разработаны в серии статей Стивеном Орсага. Начиная с 1969 года они были разработаны для методов Фурье для периодических геометрических задач, полиномиальных спектральных методов для конечных и неограниченных геометрических задач, псевдоспектральных методов для сильно нелинейных задач, спектральных итерационных методов для решения задач стационарного состояния и других задач. Реализация спектрального метода обычно завершается Шаблон:Не переведено 5или методом Галёркина, или Шаблон:Прояснить.

Спектральные методы вычислительно менее затратны, чем методы конечных элементов, но становятся менее точными для задач со сложными геометриями и прерывистыми коэффициентами. Это увеличение ошибки является следствием.Шаблон:Не переведено 5

Примеры спектральных методов

Линейный пример

Здесь мы предполагаем понимание базового многомерного математического анализа и рядов Фурье. Если g(x,y) является известной комплексной функцией от двух вещественных переменных и g является периодической по x и по y ( g(x,y)=g(x+2π,y)=g(x,y+2π)), то мы заинтересованы в нахождении функции f(x,y), такой, что

<math>\left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right)f(x,y)=g(x,y) </math> для всех x,y

где выражение слева означает вторую частную производную функции f по x и по y, соответственно. Это уравнение Пуассона и оно может быть физически проинтерпретировано как некоторый вид задачи передачи тепла или задачи в теории потенциалов среди прочих других возможностей.

Если мы запишем f и g в виде рядов Фурье

<math>f=:\sum a_{j,k}e^{i(jx+ky)}</math>
<math>g=:\sum b_{j,k}e^{i(jx+ky)}</math>

И подставим в дифференциальное уравнение, мы получим уравнение:

<math>\sum -a_{j,k}(j^2+k^2)e^{i(jx+ky)}=\sum b_{j,k}e^{i(jx+ky)}</math>

Мы поменяли местами частичное дифференцирование с суммированием, что законно, если мы предположим, например, что f имеет непрерывную вторую производную. Согласно теореме единственности разложения Фурье, мы должны тогда приравнять коэффициенты Фурье элемент за элементом, что даёт

(*) <math>a_{j,k}=-\frac{b_{j,k}}{j^2+k^2}</math>

что является явной формулой для коэффициентов Фурье aj,k.

С периодическими краевыми условиями уравнение Пуассона обладает решением, только если b0,0 = 0. Таким образом, мы можем свободно выбрать a0,0. Это соответствует выбору константы интегрирования.

Чтобы преобразовать это в алгоритм, вычисляется только конечное число частот. Это даёт ошибку, которая, как можно показать, пропорциональна <math>h^n</math>, где <math>h:=1/n</math> и <math>n</math> является наибольшей обрабатываемой частотой.

Алгоритм

  1. Вычисляем преобразование Фурье (bj,k) функции g.
  2. Вычисляем преобразование Фурье (aj,k) функции f через формулу (*).
  3. Вычисляем f путём взятия обратного преобразования Фурье для (aj,k).

Поскольку мы заинтересованы в конечном окне частот (скажем, размера n), это может быть сделано с помощью алгоритма быстрого преобразования Фурье. Поэтому, глобально, алгоритм работает за время O(n log n).

Нелинейный пример

Мы желаем решить нелинейное уравнение Бюргерса переходного процесса с помощью специального подхода.

Если дана <math>u(x,0)</math> на периодической области <math>x\in\left[0,2\pi\right)</math>, находим <math>u \in \mathcal{U}</math>, такой, что

<math>\partial_{t} u + u \partial_{x} u = \rho \partial_{xx} u + f \quad \forall x\in\left[0,2\pi\right), \forall t>0</math>

где ρ является коэффициентом вязкости. Это превращается в

<math>\left\langle \partial_{t} u , v \right\rangle = \left\langle \partial_x \left(-\frac{1}{2} u^2 + \rho \partial_{x} u\right) , v \right\rangle + \left\langle f, v \right\rangle \quad \forall v\in \mathcal{V}, \forall t>0</math>

где <math>\langle f, g \rangle := \int_{0}^{2\pi} f(x)

 \overline{g(x)}\,dx</math> соответствует скалярному произведению. Интегрирование по частям и использование периодичности даёт
<math>\langle \partial_{t} u , v \rangle = \left\langle \frac{1}{2} u^2 - \rho \partial_{x} u , \partial_x v\right\rangle+\left\langle f, v \right\rangle \quad \forall v\in \mathcal{V}, \forall t>0.</math>

Для применения метода Фурье-Галёркина выберем

<math>\mathcal{U}^N := \left\{ u : u(x,t)=\sum_{k=-N/2}^{N/2-1} \hat{u}_{k}(t) e^{i k x}\right\}</math>

и

<math>\mathcal{V}^N :=\text{ span}\left\{ e^{i k x} : k\in -N/2,\dots,N/2-1\right\}</math>

где <math>\hat{u}_k(t):=\frac{1}{2\pi}\langle u(x,t), e^{i k x} \rangle</math>. Это сводит задачу к поиску <math>u\in\mathcal{U}^N</math>, такого, что

<math>\langle \partial_{t} u , e^{i k x} \rangle = \left\langle \frac{1}{2} u^2 - \rho \partial_{x} u , \partial_x e^{i k x} \right\rangle + \left\langle f, e^{i k x} \right\rangle \quad \forall k\in \left\{ -N/2,\dots,N/2-1 \right\}, \forall t>0.</math>

Используя отношение ортогональности <math>\langle e^{i l x}, e^{i k x} \rangle = 2 \pi \delta_{lk}</math>, где <math>\delta_{lk}</math> является дельтой Кронекера, мы упрощаем три элемента выше для каждого <math>k</math>

<math>

\begin{align} \left\langle \partial_{t} u , e^{i k x}\right\rangle &= \left\langle \partial_{t} \sum_{l} \hat{u}_{l} e^{i l x} , e^{i k x} \right\rangle = \left\langle \sum_{l} \partial_{t} \hat{u}_{l} e^{i l x} , e^{i k x} \right\rangle = 2 \pi \partial_t \hat{u}_k, \\ \left\langle f , e^{i k x} \right\rangle &= \left\langle \sum_{l} \hat{f}_{l} e^{i l x} , e^{i k x}\right\rangle= 2 \pi \hat{f}_k, \text{ and} \\ \left\langle

 \frac{1}{2} u^2 - \rho \partial_{x} u
 ,
 \partial_x e^{i k x}

\right\rangle &= \left\langle

   \frac{1}{2}
   \left(\sum_{p} \hat{u}_p e^{i p x}\right)
   \left(\sum_{q} \hat{u}_q e^{i q x}\right)
   - \rho \partial_x \sum_{l} \hat{u}_l e^{i l x}
   ,
   \partial_x e^{i k x}

\right\rangle \\ &= \left\langle

   \frac{1}{2}
   \sum_{p} \sum_{q} \hat{u}_p \hat{u}_q e^{i \left(p+q\right) x}
   ,
   i k e^{i k x}

\right\rangle - \left\langle

   \rho i \sum_{l} l \hat{u}_l e^{i l x}
   ,
   i k e^{i k x}

\right\rangle \\ &= -\frac{i k}{2} \left\langle

   \sum_{p} \sum_{q} \hat{u}_p \hat{u}_q e^{i \left(p+q\right) x}
   ,
   e^{i k x}

\right\rangle - \rho k \left\langle

   \sum_{l} l \hat{u}_l e^{i l x}
   ,
   e^{i k x}

\right\rangle \\ &= - i \pi k \sum_{p+q=k} \hat{u}_p \hat{u}_q - 2\pi\rho{}k^2\hat{u}_k. \end{align} </math>

Собираем три члена для каждого <math>k</math> и получаем

<math>

2 \pi \partial_t \hat{u}_k = - i \pi k \sum_{p+q=k} \hat{u}_p \hat{u}_q - 2\pi\rho{}k^2\hat{u}_k + 2 \pi \hat{f}_k \quad k\in\left\{ -N/2,\dots,N/2-1 \right\}, \forall t>0. </math> Делим на <math>2\pi</math> и, наконец, получаем

<math>

\partial_t \hat{u}_k = - \frac{i k}{2} \sum_{p+q=k} \hat{u}_p \hat{u}_q - \rho{}k^2\hat{u}_k + \hat{f}_k \quad k\in\left\{ -N/2,\dots,N/2-1 \right\}, \forall t>0. </math> С начальными условиями преобразования Фурье <math>\hat{u}_{k}(0)</math> и определяя <math>\hat{f}_{k}(t)</math>, эта пара обыкновенных дифференциальных уравнений может быть проинтегрирована по времени (с помощью, например, техники Рунге — Кутта) для нахождения решения. Нелинейный член является свёрткой и существует несколько техник, основанных на преобразованиях, для вычисления эффективного её вычисления.

Связь с методом спектрального элемента

Можно показать, что если <math>g</math> бесконечно дифференцируема, то численный алгоритм, использующий быстрое преобразование Фурье, сходится быстрее, чем любой многочлен на решётке размера h. То есть для любого n>0 существует <math>C_n<\infty</math>, такое, что ошибка меньше <math>C_nh^n</math> для всех достаточно малых значений <math>h</math>. Мы говорим, что спектральный метод имеет порядок <math>n</math> для любого n>0.

Поскольку метод спектрального элемента является методом конечных элементов очень высокого порядка, имеется похожесть в свойствах сходимости. Однако спектральный метод основан на разложении по собственным значениям конкретной краевой задачи, а метод конечных элементов не использует эту информацию и работает для произвольных Шаблон:Не переведено 5.

См. также

Шаблон:Методы решения ДУ

Примечания

Шаблон:Примечания

Литература

Шаблон:Refbegin

Шаблон:Refend Шаблон:Rq