Матрица граничных условий 1D

Перейдём к вычислению матрицы граничных условий. Эта матрица возникает при работе с неоднородными граничными условиями и связана с интегралом произведения пробной функции на нормальную производную по границе области внутрь области. Рассмотрим интеграл из функционала (I.5) и (I.6)

SυυdS.\int_S \upsilon \cdot \nabla \upsilon \,dS.
(6.50)

Рассмотрим последовательно случаи различной размерности.

В одномерном случае область MM представляет собой отрезок [α,β][\alpha, \beta], а граница SS состоит из двух точек: α\alpha и β\beta. Интеграл по границе в одномерном случае превращается в сумму значений в граничных точках

SυυdS=υ(β)υ(x)nx=β+υ(α)υ(x)nx=α.\int_S \upsilon \cdot \nabla \upsilon \,dS = \upsilon(\beta) \cdot \frac{\displaystyle \partial \upsilon(x)}{\displaystyle \partial n} \bigg|_{x=\beta} + \upsilon(\alpha) \cdot \frac{\displaystyle \partial \upsilon(x)}{\displaystyle \partial n} \bigg|_{x=\alpha}.
(6.51)

Напомним, что на nn симплексов у нас приходится n+1n + 1 точек, соответственно, α=x0\alpha = x_0 и β=xn+1\beta = x_{n+1}, а значения функции на границах равны υ(α)=q0\upsilon(\alpha) = q_0 и υ(β)=qn+1\upsilon(\beta) = q_{n+1}. Получается, что в общем случае после дискретизации уравнения нам приходится решить систему из n+1n + 1 уравнений с n+1n + 1 неизвестными.

Для правой границы β\beta (смежный отрезок [xn,xn+1][x_n, x_{n+1}]) производная равна

υ(x)nx=β=qn+1qnl(n)(n+1).\frac{\displaystyle \partial \upsilon(x)}{\displaystyle \partial n} \bigg|_{x=\beta} = \frac{\displaystyle q_{n+1} - q_n}{\displaystyle l_{(n)(n+1)}}.
(6.52)

Аналогично для левой границы α\alpha (смежный отрезок [x0,x1][x_0, x_1])

υ(x)nx=α=q0q1l(0)(1).\frac{\displaystyle \partial \upsilon(x)}{\displaystyle \partial n} \bigg|_{x=\alpha} = \frac{\displaystyle q_0 - q_1}{\displaystyle l_{(0)(1)}}.
(6.53)

Доведём вычисления до явного вида матрицы. Ключевое наблюдение: матрица граничных условий одна и та же для любого граничного условия. Назовём её BB (общая, common). Мы всегда строим её для всей области с узлами x0,,xn+1x_0, \ldots, x_{n+1} и вектором q=(q0,,qn+1)T\vec{q} = (q_0, \ldots, q_{n+1})^T, вычисляем и вычитаем из матрицы жёсткости.

Подставим (6.52) и (6.53) в граничный интеграл (6.51), учитывая, что υ(α)=q0\upsilon(\alpha) = q_0 и υ(β)=qn+1\upsilon(\beta) = q_{n+1}:

SυυdS=qn+1qn+1qnl(n)(n+1)+q0q0q1l(0)(1)=q02q0q1l(0)(1)+qn+12qnqn+1l(n)(n+1).\begin{aligned} \int_S \upsilon \cdot \nabla \upsilon \,dS &= q_{n+1} \cdot \frac{\displaystyle q_{n+1} - q_n}{\displaystyle l_{(n)(n+1)}} + q_0 \cdot \frac{\displaystyle q_0 - q_1}{\displaystyle l_{(0)(1)}}\\ &= \frac{\displaystyle q_0^2 - q_0 \cdot q_1}{\displaystyle l_{(0)(1)}} + \frac{\displaystyle q_{n+1}^2 - q_n \cdot q_{n+1}}{\displaystyle l_{(n)(n+1)}}. \end{aligned}
(6.54)

Полученное выражение квадратично по вектору узловых значений q\vec{q}: каждое произведение qiqjq_i \cdot q_j отвечает элементу симметричной матрицы граничных условий BB. Квадраты q02q_0^2 и qn+12q_{n+1}^2 дают диагональные элементы, а смешанные члены q0q1q_0 \cdot q_1 и qnqn+1q_n \cdot q_{n+1} распределяются симметрично между двумя позициями. Таким образом, SυυdS=qTBq\int_S \upsilon \cdot \nabla \upsilon \,dS = \vec{q}^T \cdot B \cdot \vec{q}, где BB размера (n+2)×(n+2)(n+2) \times (n+2) равна:

B=(1l(0)(1)12l(0)(1)00012l(0)(1)000000000000012l(n)(n+1)00012l(n)(n+1)1l(n)(n+1)).\begin{aligned}B = \begin{pmatrix} \frac{1}{l_{(0)(1)}} & -\frac{1}{2l_{(0)(1)}} & 0 & \cdots & 0 & 0 \\ -\frac{1}{2l_{(0)(1)}} & 0 & 0 & \cdots & 0 & 0 \\ 0 & 0 & 0 & \cdots & 0 & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots & 0 & -\frac{1}{2l_{(n)(n+1)}} \\ 0 & 0 & 0 & \cdots & -\frac{1}{2l_{(n)(n+1)}} & \frac{1}{l_{(n)(n+1)}} \end{pmatrix}.\end{aligned}
(6.55)

Она распадается на независимые блоки левой и правой границ, ненулевые только в угловых 2×22 \times 2 на узлах x0,x1x_0, x_1 и xn,xn+1x_n, x_{n+1}:

Bα=(1l(0)(1)12l(0)(1)12l(0)(1)0),\begin{aligned}B\big|_\alpha = \begin{pmatrix} \frac{1}{l_{(0)(1)}} & -\frac{1}{2l_{(0)(1)}} \\ -\frac{1}{2l_{(0)(1)}} & 0 \end{pmatrix},\end{aligned}
Bβ=(012l(n)(n+1)12l(n)(n+1)1l(n)(n+1)).\begin{aligned}B\big|_\beta = \begin{pmatrix} 0 & -\frac{1}{2l_{(n)(n+1)}} \\ -\frac{1}{2l_{(n)(n+1)}} & \frac{1}{l_{(n)(n+1)}} \end{pmatrix}.\end{aligned}

Сами граничные условия в эту матрицу ещё не входят — они применяются к уже построенной системе отдельно: условие первого рода (Дирихле) разобрано в Приложении K, условие второго рода (Нейман) — в Приложении L.