Существует простой и распространённый метод учёта условий Дирихле — прямая подстановка известных граничных значений в систему (его называют методом зачёркивания строки и столбца). Пусть для узла i i задано граничное условие q i q_i = g i = g_i , где g i g_i — известное граничное значение. Тогда над системой A q → A \overrightarrow{q} = P → = \overrightarrow{P} выполняем следующие операции:
Модификация правой части: Для всех строк j j ≠ i \neq i вычитаем из правой части вклад известного значения q i q_i : p j : p_j : = p j = p_j − A j i ⋅ g i - A_{ji} \cdot g_i . Обнуление строки и столбца: Заменяем i i - ю строку и i i - й столбец матрицы A A нулями, за исключением диагонального элемента: A i j : A_{ij} : = 0 , A j i : = 0, \quad A_{ji} : = 0 , j = 0, \quad j ≠ i \neq i . Установка диагонального элемента: Устанавливаем диагональный элемент равным единице: A i i : A_{ii} : = 1 = 1 . Установка граничного значения: Заменяем i i - й элемент вектора правой части на граничное значение: p i : p_i : = g i = g_i . После этих операций i i - е уравнение системы принимает вид 1 ⋅ q i 1 \cdot q_i = g i = g_i , что гарантирует выполнение граничного условия.
Вернёмся к нашему одномерному примеру с пятью узлами q 0 , q 1 , q 2 , q 3 , q 4 q_0, q_1, q_2, q_3, q_4 . Предположим, что на границах заданы условия Дирихле:
q 0 \displaystyle q_0 = g 0 , q 4 \displaystyle = g_0, \quad q_4 = g 4 . \displaystyle = g_4. Стационарный случай
Исходная система имеет вид:
a 2 K ⋅ q → \displaystyle a^2 K \cdot \overrightarrow{q} = F → . \displaystyle = \overrightarrow{F}. Матрица a 2 K a^2 K — полная (симметричная, трёхдиагональная); граничные условия учитываются заменой граничных строк.
Обозначим A A = a 2 K = a^2 K и P → \overrightarrow{P} = F → = \overrightarrow{F} . Применим прямой метод для узлов q 0 q_0 и q 4 q_4 .
Шаг 1: Модификация правой части для внутренних узлов
Для узла q 1 q_1 (индекс 1):
p 1 : \displaystyle p_1 : = p 1 \displaystyle = p_1 − A 10 ⋅ g 0 \displaystyle - A_{10} \cdot g_0 = F 1 \displaystyle = F_1 − a 2 ⋅ ( − 1 l ( 0 ) ( 1 ) ) ⋅ g 0 \displaystyle - a^2 \cdot \left(-\frac{1}{l_{(0)(1)}}\right) \cdot g_0 = F 1 \displaystyle = F_1 + a 2 g 0 l ( 0 ) ( 1 ) . \displaystyle + \frac{a^2 g_0}{l_{(0)(1)}}. Для узла q 3 q_3 (индекс 3):
p 3 : \displaystyle p_3 : = p 3 \displaystyle = p_3 − A 34 ⋅ g 4 \displaystyle - A_{34} \cdot g_4 = F 3 \displaystyle = F_3 − a 2 ⋅ ( − 1 l ( 3 ) ( 4 ) ) ⋅ g 4 \displaystyle - a^2 \cdot \left(-\frac{1}{l_{(3)(4)}}\right) \cdot g_4 = F 3 \displaystyle = F_3 + a 2 g 4 l ( 3 ) ( 4 ) . \displaystyle + \frac{a^2 g_4}{l_{(3)(4)}}. Шаги 2–4: Модификация матрицы и правой части для граничных узлов
Для узла q 0 q_0 (индекс 0):
Обнуляем первую строку: A 01 : A_{01} : = 0 = 0 Обнуляем первый столбец: A 10 : A_{10} : = 0 = 0 Устанавливаем диагональ: A 00 : A_{00} : = 1 = 1 Устанавливаем правую часть: p 0 : p_0 : = g 0 = g_0 Для узла q 4 q_4 (индекс 4):
Обнуляем последнюю строку: A 43 : A_{43} : = 0 = 0 Обнуляем последний столбец: A 34 : A_{34} : = 0 = 0 Устанавливаем диагональ: A 44 : A_{44} : = 1 = 1 Устанавливаем правую часть: p 4 : p_4 : = g 4 = g_4 В матрице a 2 K a^2 K граничные строки и столбцы (узлы q 0 q_0 и q 4 q_4 ) обнуляются, на диагонали ставится единица; известные значения переносятся в правую часть.
Модифицированный вектор правой части:
P → ~ \displaystyle \widetilde{\overrightarrow{P}} = ( g 0 F 1 + a 2 g 0 l ( 0 ) ( 1 ) F 2 F 3 + a 2 g 4 l ( 3 ) ( 4 ) g 4 ) . \displaystyle = \begin{pmatrix} g_0 \\ F_1 + \frac{a^2 g_0}{l_{(0)(1)}} \\ F_2 \\ F_3 + \frac{a^2 g_4}{l_{(3)(4)}} \\ g_4 \end{pmatrix}. Примечание: поскольку функция плотности источников тождественно равна нулю на симплексах s 1 s_1 и s 4 s_4 , имеем F 0 F_0 = 0 = 0 и F 4 F_4 = 0 = 0 . Однако компоненты F 1 , F 2 , F 3 F_1, F_2, F_3 могут быть ненулевыми.
Нестационарный случай
Для нестационарного случая система имеет вид:
[ D + Δ t ⋅ a 2 K ] ⋅ q → n \displaystyle \left[D + \Delta t \cdot a^2 K\right] \cdot \overrightarrow{q}_n = Δ t ⋅ F → \displaystyle = \Delta t \cdot \overrightarrow{F} + D ⋅ q → n − 1 . \displaystyle + D \cdot \overrightarrow{q}_{n-1}. Обозначим A A = D = D + Δ t ⋅ a 2 K + \Delta t \cdot a^2 K и P → \overrightarrow{P} = Δ t ⋅ F → = \Delta t \cdot \overrightarrow{F} + D ⋅ q → n − 1 + D \cdot \overrightarrow{q}_{n-1} . Применяем тот же прямой метод.
Модификация правой части для внутренних узлов
Для узла q 1 q_1 :
p 1 : \displaystyle p_1 : = p 1 \displaystyle = p_1 − A 10 ⋅ g 0 \displaystyle - A_{10} \cdot g_0 = Δ t ⋅ F 1 \displaystyle = \Delta t \cdot F_1 + ∑ j D 1 j q n − 1 , j \displaystyle + \sum_j D_{1j} q_{n-1,j} − ( l ( 0 ) ( 1 ) 6 − Δ t ⋅ a 2 l ( 0 ) ( 1 ) ) ⋅ g 0 . \displaystyle - \left(\frac{l_{(0)(1)}}{6} - \frac{\Delta t \cdot a^2}{l_{(0)(1)}}\right) \cdot g_0. Для узла q 3 q_3 :
p 3 : \displaystyle p_3 : = p 3 \displaystyle = p_3 − A 34 ⋅ g 4 \displaystyle - A_{34} \cdot g_4 = Δ t ⋅ F 3 \displaystyle = \Delta t \cdot F_3 + ∑ j D 3 j q n − 1 , j \displaystyle + \sum_j D_{3j} q_{n-1,j} − ( l ( 3 ) ( 4 ) 6 − Δ t ⋅ a 2 l ( 3 ) ( 4 ) ) ⋅ g 4 . \displaystyle - \left(\frac{l_{(3)(4)}}{6} - \frac{\Delta t \cdot a^2}{l_{(3)(4)}}\right) \cdot g_4. Как и в стационарном случае, граничные строки и столбцы матрицы D D + Δ t a 2 K + \Delta t\, a^2 K обнуляются, на диагонали ставится единица, а q 0 q_0 = g 0 = g_0 и q 4 q_4 = g 4 = g_4 уходят в правую часть.
J. Пример применения функционала L. Учёт граничных условий Неймана