Матрица жёсткости 1D

Вычислим матрицу жёсткости для одномерного случая. В одномерном пространстве градиент имеет вид ∇υ\nabla \upsilon​=∂υ∂x{} = \frac{\displaystyle \partial \upsilon}{\displaystyle \partial x}, а скалярное произведение градиента с самим собой равно ∇υ⋅∇υ\nabla \upsilon \cdot \nabla \upsilon​=(∂υ∂x)2{} = \left( \frac{\displaystyle \partial \upsilon}{\displaystyle \partial x} \right)^2. Учитывая, что одномерная расчётная область MM разбита на симплексы-отрезки, исследуемую часть функционала для одного отрезка (xi,xi+1)(x_i, x_{i+1}) можно записать как

∫xixi+1(∂υ∂x)2 dx.\int_{x_i}^{x_{i+1}} \left( \frac{\displaystyle \partial \upsilon}{\displaystyle \partial x} \right)^2 \,dx.
(6.1)

В общем случае пробная функция υ(x)\upsilon(x)​=∑i=1Nυi(x){} = \sum_{i=1}^N \upsilon_i(x), тогда как на симплексе она имеет вид υ(i)(i+1)(x)\upsilon_{(i)(i+1)}(x)​=qi⋅ϕi(x){} = q_i \cdot \phi_i(x)​+qi+1⋅ϕi+1(x){} + q_{i+1} \cdot \phi_{i+1}(x). Примем во внимание (5.7) и (5.8) из раздела о функциях «крышек» и запишем соотношения для функций «крышек»

ϕi(x)\displaystyle \phi_i(x) =ai\displaystyle {} = a_i​+bi⋅x\displaystyle {} + b_i \cdot xϕi+1(x)\displaystyle \phi_{i+1}(x) =ai+1\displaystyle {} = a_{i+1}​+bi+1⋅x\displaystyle {} + b_{i+1} \cdot x
(6.2)

Вычислим производную пробной функции

∂υ(i)(i+1)(x)∂x\displaystyle \frac{\displaystyle \partial \upsilon_{(i)(i+1)}(x)}{\displaystyle \partial x} =qi⋅bi\displaystyle {} = q_i \cdot b_i​+qi+1⋅bi+1\displaystyle {} + q_{i+1} \cdot b_{i+1}
(6.3)

Заметим, что производная не зависит от xx и является константой на отрезке. Подставим (6.3) в (6.1)

∫xixi+1(∂υ(i)(i+1)∂x)2 dx\displaystyle \int_{x_i}^{x_{i+1}} \left( \frac{\displaystyle \partial \upsilon_{(i)(i+1)}}{\displaystyle \partial x} \right)^2 \,dx =l(i)(i+1)\displaystyle {} = l_{(i)(i+1)}​⋅(qi⋅bi+qi+1⋅bi+1)2,\displaystyle {} \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1})^2,

где l(i)(i+1)l_{(i)(i+1)}​=xi+1{} = x_{i+1}​−xi{} - x_i — длина отрезка.

Раскроем квадрат и перегруппируем члены

∫xixi+1(∂υ(i)(i+1)∂x)2 dx\displaystyle \int_{x_i}^{x_{i+1}} \left(\frac{\displaystyle \partial \upsilon_{(i)(i+1)}}{\displaystyle \partial x}\right)^2 \,dx =l(i)(i+1)⋅[qi2⋅bi2\displaystyle {} = l_{(i)(i+1)} \cdot \bigl[ q_i^2 \cdot b_i^2​+qi+12⋅bi+12\displaystyle {} + q_{i+1}^2 \cdot b_{i+1}^2​+2⋅qi⋅qi+1⋅bi⋅bi+1].\displaystyle {} + 2 \cdot q_i \cdot q_{i+1} \cdot b_i \cdot b_{i+1} \bigr] .

Примем во внимание формулы из (5.8) для коэффициентов bb и введём обозначения для элементов локальной матрицы жёсткости отрезка

k(i)(i)\displaystyle k_{(i)(i)} =l(i)(i+1)⋅bi2\displaystyle {} = l_{(i)(i+1)} \cdot b_i^2​=1xi+1−xi\displaystyle {} = \frac{\displaystyle 1}{\displaystyle x_{i+1} - x_i}k(i+1)(i+1)\displaystyle k_{(i+1)(i+1)} =l(i)(i+1)⋅bi+12\displaystyle {} = l_{(i)(i+1)} \cdot b_{i+1}^2​=1xi+1−xi\displaystyle {} = \frac{\displaystyle 1}{\displaystyle x_{i+1} - x_i}k(i)(i+1)\displaystyle k_{(i)(i+1)} =k(i+1)(i)\displaystyle {} = k_{(i+1)(i)}​=l(i)(i+1)⋅bi⋅bi+1\displaystyle {} = l_{(i)(i+1)} \cdot b_i \cdot b_{i+1}​=−1xi+1−xi\displaystyle {} = -\frac{\displaystyle 1}{\displaystyle x_{i+1} - x_i}
(6.4)

Таким образом, локальная матрица жёсткости для одномерного элемента имеет вид

K\displaystyle \mathbf{K} =[k(i)(i)k(i)(i+1)k(i+1)(i)k(i+1)(i+1)]\displaystyle {} = \begin{bmatrix} k_{(i)(i)} & k_{(i)(i+1)}\\ k_{(i+1)(i)} & k_{(i+1)(i+1)} \end{bmatrix}​=1xi+1−xi\displaystyle {} = \frac{\displaystyle 1}{\displaystyle x_{i+1} - x_i}​[1−1−11].\displaystyle \begin{bmatrix} 1 & -1\\ -1 & 1 \end{bmatrix}.
(6.5)

Глобальная матрица жёсткости K\mathbf{K} получается путём суммирования вкладов от всех отрезков сетки методом сборки: элементы локальных матриц добавляются к соответствующим элементам глобальной матрицы согласно глобальной нумерации узлов. Размерность глобальной матрицы жёсткости равна N×NN \times N, где NN — общее количество узлов сетки.

Например, рассмотрим сетку с узлами 0,1,…,i,i0, 1, \ldots, i, i​+1,…,N{} +1, \ldots, N. При сборке каждый отрезок (j)(j+1)(j)(j+1) вносит вклад ±1l(j)(j+1){} \pm \frac{\displaystyle 1}{\displaystyle l_{(j)(j+1)}}, причём внутренний узел ii получает вклад сразу от двух смежных отрезков — (i−1)(i)(i-1)(i) и (i)(i+1)(i)(i+1), — поэтому на главной диагонали стоит сумма 1l(i−1)(i)\frac{\displaystyle 1}{\displaystyle l_{(i-1)(i)}}​+1l(i)(i+1){} + \frac{\displaystyle 1}{\displaystyle l_{(i)(i+1)}}. Поскольку длина l(j)(j+1)l_{(j)(j+1)} зависит от номера отрезка, её нельзя вынести как общий множитель — каждый элемент глобальной матрицы хранит длину своего отрезка. В результате матрица получается трёхдиагональной

K\displaystyle \mathbf{K} =[1l(0)(1)−1l(0)(1)0⋯0−1l(0)(1)1l(0)(1)+1l(1)(2)−1l(1)(2)0−1l(1)(2)⋱⋱⋮⋱1l(i−1)(i)+1l(i)(i+1)−1l(i)(i+1)⋮−1l(i)(i+1)1l(i)(i+1)+1l(i+1)(i+2)⋱⋱⋱−1l(N−1)(N)0⋯−1l(N−1)(N)1l(N−1)(N)].\displaystyle {} = \begin{bmatrix} \frac{\displaystyle 1}{\displaystyle l_{(0)(1)}} & -\frac{\displaystyle 1}{\displaystyle l_{(0)(1)}} & 0 & \cdots & & & 0\\ -\frac{\displaystyle 1}{\displaystyle l_{(0)(1)}} & \frac{\displaystyle 1}{\displaystyle l_{(0)(1)}} + \frac{\displaystyle 1}{\displaystyle l_{(1)(2)}} & -\frac{\displaystyle 1}{\displaystyle l_{(1)(2)}} & & & & \\ 0 & -\frac{\displaystyle 1}{\displaystyle l_{(1)(2)}} & \ddots & \ddots & & & \\ \vdots & & \ddots & \frac{\displaystyle 1}{\displaystyle l_{(i-1)(i)}} + \frac{\displaystyle 1}{\displaystyle l_{(i)(i+1)}} & -\frac{\displaystyle 1}{\displaystyle l_{(i)(i+1)}} & & \vdots\\ & & & -\frac{\displaystyle 1}{\displaystyle l_{(i)(i+1)}} & \frac{\displaystyle 1}{\displaystyle l_{(i)(i+1)}} + \frac{\displaystyle 1}{\displaystyle l_{(i+1)(i+2)}} & \ddots & \\ & & & & \ddots & \ddots & -\frac{\displaystyle 1}{\displaystyle l_{(N-1)(N)}}\\ 0 & & & \cdots & & -\frac{\displaystyle 1}{\displaystyle l_{(N-1)(N)}} & \frac{\displaystyle 1}{\displaystyle l_{(N-1)(N)}} \end{bmatrix}.