Сходимость разностных схем#
Сходимость = Аппроксимация + Устойчивость#
Теорема. (Лакса-Рябенького-Филиппова). Пусть разностная задача аппроксимирует дифференциальную задачу на ее решении и устойчива. Тогда решение разностной задачи сходится к решению дифференциальной. Если аппроксимация имеет порядок \(k\) по времени и порядок р по пространству, то и сходимость имеет те же порядки.
Анализ аппроксимации#
В чистом виде переносится с задачи Коши с поправкой на несколько переменных. Таким образом можно ввести отдельные порядки аппроксимации по разным осям.
Пример 1. Для разнообразия рассмотрим УРЧП первого порядка.
относительно следующей разностной задачи (явная четырёхточечная схема Эйлера):
Разложение в ряд Тейлора удобнее всего делать с помощью Wolfram или sympy. Будьте внимательны, в sympy нет надежного способа разложить в ряд Тейлора функцию от нескольких переменных, так что он не подойдёт для всех случаев.
import sympy as sp
# Define the symbolic variables
f, x, t, h, tau = sp.symbols('f x t h tau')
# Define the symbolic function u(x,t)
u = sp.Function('u')(x,t)
f = sp.Function('f')(x,t)
# Define the finite difference scheme for u_t = u_x + f
ut = (u.subs(t, t+tau) - u) / tau
ux = (u.subs(x, x+h) - u.subs(x, x-h)) / (2*h)
# Define the Taylor series expansion of u(x+h,t+tau) and u(x-h,t+tau)
ut_series = sp.series(ut, tau, x0=0, n=4)
ux_series = sp.series(ux, h, x0=0, n=4)
ut_series - ux_series - f
Видим, что порядок аппроксимации \(O(\tau, h^2)\) - неплохо, но к сожалению, данная схема безусловно неустойчива.
Аналогичным образом можно находить порядки аппроксимации любых схем (или граничных условий) - будьте разве что внимательны к разложению точек типа \(u_{m+1}^{n+1}\), где надо раскладывать одновременно по двум и более параметрам, - в sympy нет встроенных методов для вычисления ряда Тейлора по нескольким переменным.
Пример 2. Исследования на аппроксимацию схемы расщепления по направлению
Для последней схемы покажем, как определить порядок аппроксимации.
В этой схеме последовательно решаем задачи сначала на ~, потом на \(n+1\).
Хотим всё свести к одному уравнению, члены в котором легко разложить в Тейлора.
Запишем эти уравнения в следующем виде:
Подействуем на обе части второго уравнения оператором \(\left(\mathbf{E}-\tau \mathbf{\Lambda}_1\right)\): $\( \begin{aligned} & \quad\left(\mathbf{E}-\tau \mathbf{\Lambda}_1\right)\left(\mathbf{E}-\tau \mathbf{\Lambda}_2\right) u_{m l}^{n+1}=\left(\mathbf{E}-\tau \mathbf{\Lambda}_1\right) \tilde{u}_{m l} \end{aligned} \)$
Так как \(\left(\mathbf{E}-\tau \mathbf{\Lambda}_1\right) \tilde{u}_{m l}=u_{m l}^n\), то
Раскрывая скобки,
И здесь уже всё разлагаем в Тейлора. Порядок аппроксимации этой схемы \(O\left(\tau, h_x^2, h_y^2\right)\).
Примечание. Не забываем об аппроксимации граничных условий. Если они заданы в хитром виде (с производными), то их также надо аппроксимировать с нужным порядком.
Анализ устойчивости#
Признак фон Неймана#
Самый простой в использовании
Применяется в эволюционных задачах (когда есть явная зависимость от времени). Т.е. для параболических и гиперболических уравнений.
Введем вектор разностного решения для данного временного слоя
Это может быть как одномерный, так и k-мерный массив по пространственным координатам.
Пусть мы сумели (возможно, неединственным образом) представить решение на следующем слое в виде
Оператор \(\mathbf{R}_\tau\) называется оператором послойного перехода.
Теорема. (спектральный признак устойчивости фон Неймана). Необходимым условием устойчивости по начальным данным является выполнение следующего неравенства для всех собственных значений оператора перехода \(\mathbf{R}_\tau\):
Обычно устойчивость исследуется отдельно для каждой фурьегармоники решения $\( y_m^n=\lambda^n e^{i \alpha m} . \)$
Примечание. Если условие устойчивости выполнено при любых соотношениях между шагами по времени и пространству, то такие схемы называются абсолютно или безусловно устойчивыми. Если для устойчивости схемы требуется выполнение дополнительного условия, накладывающего определенную связь между изменением шагов по времени и пространству, то такие схемы называются условно устойчивыми.
Явный левый уголок#
Рассмотрим схему, называемую явный левый уголок для решения одномерного линейного уравнения переноса:
Для исследования устойчивости применим спектральный признак.
Подставим \(y_m^n=\lambda^n e^{i \alpha m}\) в однородное разностное уравнение, так как из устойчивости по начальным данным следует устойчивость по правой части. В результате получим
Нас интересует нетривиальное решение, поэтому сокращая на общий множитель всех членов \(\lambda^n e^{i \alpha}\), получим спектр оператора перехода
При различных значениях параметра \(\alpha\) получим на комплексной плоскости окружность с центром в точке \(\quad(1-c \tau / h, 0)\) радиуса \(c \tau / h\). При числе Куранта \(c \tau / h \leq 1\) эта окружность лежит внутри единичной (рис. 2.1), тем самым выполнен спектральный признак устойчивости. Таким образом, данная разностная схема является условно устойчивой - она устойчива при (гиперболическом) числе Куранта меньше единицы.
Явная схема#
или, в операторном виде,
Подставим в это уравнение следующую штуку
Сокращая всё, что сокращается, выражаем \(\lambda\):
Дальше надо посмотреть, при каких параметрах \(\tau, h_x, h_y\) все наши \(\lambda\) (тут получилось только одна лямбда) по модулю не превосходят единицу равномерно по \(\alpha\) и \(\beta\). Здесь, очевидно,
Неявная схема#
или, в операторном виде,
Подставим сюда
И выразим лямбду
Видим, что эта лямбда по модулю меньше единицы равномерно по \(\alpha\) и \(\beta\) при любых \(\tau, h_x, h_y\), т.е. она абсолютно устойчива.
Схема расщепления по направлению#
В этой схеме последовательно решаем задачи сначала на ~, потом на \(n+1\).
По алгоритму применения спектрального признака, надо подставить
где явно записан множитель временной эволюции \(\lambda^n\).
При переходе на слой ~ тоже аля происходит временная эволюция, поэтому
То же верно при переходе со слоя ~ на \(n+1\):
Откуда \(\lambda=\lambda_1 \lambda_2\).
Подставим формулы выше в разностные схемы и сократим всё, что сокращается. Итого,
Окончательный спектр оператора послойного перехода
Легко видим, что эта штука всегда меньше единицы. Т.е. схема безусловно устойчива.
Примечание. В случае переменных коэффициентов можно использовать принцип замороженных коэффициентов - когда мы считаем коэффициенты константными даже при их непостоянности. Часто приводит к неверным результатам, но существенно упрощает выкладки. В остальном же придётся делать оценку устойчивости равномерно по всей области допустимых параметров \(t, x, y\).