Теперь вычислим матрицу демпфирования для одномерного случая. Матрица демпфирования связана с интегралом квадрата пробной функции. Рассмотрим интеграл для одного отрезка с вершинами x i , x i + 1 x_i, x_{i+1}
Пробная функция на отрезке имеет вид υ ( i ) ( i + 1 ) ( x ) \upsilon_{(i)(i+1)}(x) = q i ⋅ ϕ i ( x ) = q_i \cdot \phi_i(x) + q i + 1 ⋅ ϕ i + 1 ( x ) + q_{i+1} \cdot \phi_{i+1}(x) . Примем во внимание (5.7 { a i − 1 + b i − 1 ⋅ x i − 1 = 1 a i − 1 + b i − 1 ⋅ x i = 0 { a i + b i ⋅ x i − 1 = 0 a i + b i ⋅ x i = 1 \begin{cases}
a_{i-1} + b_{i-1} \cdot x_{i-1} = 1\\
a_{i-1} + b_{i-1} \cdot x_i = 0
\end{cases}
\begin{cases}
a_{i} + b_{i} \cdot x_{i-1} = 0\\
a_{i} + b_{i} \cdot x_i = 1
\end{cases} ) и (5.8 { a i − 1 = − x i x i − 1 − x i b i − 1 = 1 x i − 1 − x i { a i = x i − 1 x i − 1 − x i b i = − 1 x i − 1 − x i \begin{cases}
a_{i-1} = \frac{\displaystyle -x_i}{\displaystyle x_{i-1} - x_i}\\
b_{i-1} = \frac{\displaystyle 1}{\displaystyle x_{i-1} - x_i}
\end{cases}
\begin{cases}
a_{i} = \frac{\displaystyle x_{i-1}}{\displaystyle x_{i-1} - x_i}\\
b_{i} = \frac{\displaystyle -1}{\displaystyle x_{i-1} - x_i}
\end{cases} ) из раздела о функциях «крышек» и запишем соотношения для функций «крышек»
Подставим пробную функцию в (6.20 ∫ x i x i + 1 υ 2 d x . \int_{x_i}^{x_{i+1}} \upsilon^2 \,dx. )
∫ x i x i + 1 υ ( i ) ( i + 1 ) 2 d x \displaystyle \int_{x_i}^{x_{i+1}} \upsilon_{(i)(i+1)}^2 \,dx = ∫ x i x i + 1 [ q i ⋅ ( a i + b i ⋅ x ) + q i + 1 ⋅ ( a i + 1 + b i + 1 ⋅ x ) ] 2 d x . \displaystyle = \int_{x_i}^{x_{i+1}} \left[ q_i \cdot (a_i + b_i \cdot x) + q_{i+1} \cdot (a_{i+1} + b_{i+1} \cdot x) \right]^2 \,dx. Учитывая (5.8 { a i − 1 = − x i x i − 1 − x i b i − 1 = 1 x i − 1 − x i { a i = x i − 1 x i − 1 − x i b i = − 1 x i − 1 − x i \begin{cases}
a_{i-1} = \frac{\displaystyle -x_i}{\displaystyle x_{i-1} - x_i}\\
b_{i-1} = \frac{\displaystyle 1}{\displaystyle x_{i-1} - x_i}
\end{cases}
\begin{cases}
a_{i} = \frac{\displaystyle x_{i-1}}{\displaystyle x_{i-1} - x_i}\\
b_{i} = \frac{\displaystyle -1}{\displaystyle x_{i-1} - x_i}
\end{cases} ), можно записать
∫ x i x i + 1 υ ( i ) ( i + 1 ) 2 d x \displaystyle \int_{x_i}^{x_{i+1}} \upsilon_{(i)(i+1)}^2 \,dx = 1 ( x i − x i + 1 ) 2 ⋅ ∫ x i x i + 1 [ ( − q i ⋅ x i + 1 + q i + 1 ⋅ x i ) + ( q i − q i + 1 ) ⋅ x ] 2 d x . \displaystyle = \frac{\displaystyle 1}{\displaystyle (x_i - x_{i+1})^2} \cdot \int_{x_i}^{x_{i+1}} \left[(-q_i \cdot x_{i+1} + q_{i+1} \cdot x_i) + (q_i - q_{i+1}) \cdot x \right]^2 \,dx. Раскроем квадрат и разделим интеграл на три части
∫ x i x i + 1 υ ( i ) ( i + 1 ) 2 d x \displaystyle \int_{x_i}^{x_{i+1}} \upsilon_{(i)(i+1)}^2 \,dx = 1 ( x i − x i + 1 ) 2 ⋅ [ ∫ x i x i + 1 ( − q i ⋅ x i + 1 + q i + 1 ⋅ x i ) 2 d x + 2 ⋅ ∫ x i x i + 1 ( − q i ⋅ x i + 1 + q i + 1 ⋅ x i ) ⋅ ( q i − q i + 1 ) ⋅ x d x + ∫ x i x i + 1 ( q i − q i + 1 ) 2 ⋅ x 2 d x ] \displaystyle = \frac{\displaystyle 1}{\displaystyle (x_i - x_{i+1})^2} \cdot \Big[ \int_{x_i}^{x_{i+1}} (-q_i \cdot x_{i+1} + q_{i+1} \cdot x_i)^2 \,dx + 2 \cdot \int_{x_i}^{x_{i+1}} (-q_i \cdot x_{i+1} + q_{i+1} \cdot x_i) \cdot (q_i - q_{i+1}) \cdot x \,dx + \int_{x_i}^{x_{i+1}} (q_i - q_{i+1})^2 \cdot x^2 \,dx \Big] Вычислим каждый из трёх интегралов
∫ x i x i + 1 υ ( i ) ( i + 1 ) 2 d x \displaystyle \int_{x_i}^{x_{i+1}} \upsilon_{(i)(i+1)}^2 \,dx = ( − q i ⋅ x i + 1 + q i + 1 ⋅ x i ) 2 ⋅ x ( x i − x i + 1 ) 2 ∣ x i x i + 1 \displaystyle = \frac{\displaystyle (-q_i \cdot x_{i+1} + q_{i+1} \cdot x_i)^2 \cdot x}{\displaystyle (x_i - x_{i+1})^2} \bigg|_{x_i}^{x_{i+1}} + ( − q i ⋅ x i + 1 + q i + 1 ⋅ x i ) ⋅ ( q i − q i + 1 ) ⋅ x 2 ( x i − x i + 1 ) 2 ∣ x i x i + 1 \displaystyle + \frac{\displaystyle (-q_i \cdot x_{i+1} + q_{i+1} \cdot x_i) \cdot (q_i - q_{i+1}) \cdot x^2}{\displaystyle (x_i - x_{i+1})^2} \bigg|_{x_i}^{x_{i+1}} + ( q i − q i + 1 ) 2 ⋅ x 3 3 ⋅ ( x i − x i + 1 ) 2 ∣ x i x i + 1 . \displaystyle + \frac{\displaystyle (q_i - q_{i+1})^2 \cdot x^3}{\displaystyle 3 \cdot (x_i - x_{i+1})^2} \bigg|_{x_i}^{x_{i+1}}. После упрощения получаем
∫ x i x i + 1 υ ( i ) ( i + 1 ) 2 d x \displaystyle \int_{x_i}^{x_{i+1}} \upsilon_{(i)(i+1)}^2 \,dx = − ( q i 2 + q i ⋅ q i + 1 + q i + 1 2 ) ⋅ ( x i − x i + 1 ) 2 3 ⋅ ( x i − x i + 1 ) \displaystyle = - \frac{\displaystyle (q_i^2 + q_i \cdot q_{i+1} + q_{i+1}^2) \cdot (x_i - x_{i+1})^2}{\displaystyle 3 \cdot (x_i - x_{i+1})} = x i + 1 − x i 3 ⋅ ( q i 2 + q i ⋅ q i + 1 + q i + 1 2 ) . \displaystyle = \frac{\displaystyle x_{i+1} - x_i}{\displaystyle 3} \cdot (q_i^2 + q_i \cdot q_{i+1} + q_{i+1}^2). Введём обозначение длины отрезка
∫ x i x i + 1 υ ( i ) ( i + 1 ) 2 d x \displaystyle \int_{x_i}^{x_{i+1}} \upsilon_{(i)(i+1)}^2 \,dx = l ( i ) ( i + 1 ) 3 ⋅ [ q i 2 + q i ⋅ q i + 1 + q i + 1 2 ] , \displaystyle = \frac{l_{(i)(i+1)}}{3} \cdot \left[ q_i^2 + q_i \cdot q_{i+1} + q_{i+1}^2 \right], где l ( i ) ( i + 1 ) l_{(i)(i+1)} = x i + 1 = x_{i+1} − x i - x_i — длина отрезка.
Введём обозначения для элементов локальной матрицы демпфирования отрезка
Таким образом, локальная матрица демпфирования для одномерного элемента имеет вид
Глобальная матрица демпфирования C \mathbf{C} получается путём суммирования вкладов от всех отрезков сетки методом сборки: элементы локальных матриц добавляются к соответствующим элементам глобальной матрицы согласно глобальной нумерации узлов. Размерность глобальной матрицы демпфирования равна N × N N \times N , где N N — общее количество узлов сетки.
Например, рассмотрим сетку с узлами 0 , 1 , … , i , i 0, 1, \ldots, i, i + 1 , … , N +1, \ldots, N . При сборке каждый отрезок ( j ) ( j + 1 ) (j)(j+1) добавляет на диагональ вклад l ( j ) ( j + 1 ) 3 \frac{\displaystyle l_{(j)(j+1)}}{\displaystyle 3} , а на смежные внедиагональные элементы — l ( j ) ( j + 1 ) 6 \frac{\displaystyle l_{(j)(j+1)}}{\displaystyle 6} ; внутренний узел i i получает диагональный вклад сразу от двух смежных отрезков — ( i − 1 ) ( i ) (i-1)(i) и ( i ) ( i + 1 ) (i)(i+1) , — поэтому на главной диагонали стоит сумма l ( i − 1 ) ( i ) 3 \frac{\displaystyle l_{(i-1)(i)}}{\displaystyle 3} + l ( i ) ( i + 1 ) 3 + \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 3} . Поскольку длина l ( j ) ( j + 1 ) l_{(j)(j+1)} зависит от номера отрезка, её нельзя вынести как общий множитель — каждый элемент глобальной матрицы хранит длину своего отрезка. В результате матрица получается трёхдиагональной
C \displaystyle \mathbf{C} = [ l ( 0 ) ( 1 ) 3 l ( 0 ) ( 1 ) 6 0 ⋯ 0 l ( 0 ) ( 1 ) 6 l ( 0 ) ( 1 ) 3 + l ( 1 ) ( 2 ) 3 l ( 1 ) ( 2 ) 6 0 l ( 1 ) ( 2 ) 6 ⋱ ⋱ ⋮ ⋱ l ( i − 1 ) ( i ) 3 + l ( i ) ( i + 1 ) 3 l ( i ) ( i + 1 ) 6 ⋮ l ( i ) ( i + 1 ) 6 l ( i ) ( i + 1 ) 3 + l ( i + 1 ) ( i + 2 ) 3 ⋱ ⋱ ⋱ l ( N − 1 ) ( N ) 6 0 ⋯ l ( N − 1 ) ( N ) 6 l ( N − 1 ) ( N ) 3 ] . \displaystyle = \begin{bmatrix} \frac{\displaystyle l_{(0)(1)}}{\displaystyle 3} & \frac{\displaystyle l_{(0)(1)}}{\displaystyle 6} & 0 & \cdots & & & 0\\ \frac{\displaystyle l_{(0)(1)}}{\displaystyle 6} & \frac{\displaystyle l_{(0)(1)}}{\displaystyle 3} + \frac{\displaystyle l_{(1)(2)}}{\displaystyle 3} & \frac{\displaystyle l_{(1)(2)}}{\displaystyle 6} & & & & \\ 0 & \frac{\displaystyle l_{(1)(2)}}{\displaystyle 6} & \ddots & \ddots & & & \\ \vdots & & \ddots & \frac{\displaystyle l_{(i-1)(i)}}{\displaystyle 3} + \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 3} & \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 6} & & \vdots\\ & & & \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 6} & \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 3} + \frac{\displaystyle l_{(i+1)(i+2)}}{\displaystyle 3} & \ddots & \\ & & & & \ddots & \ddots & \frac{\displaystyle l_{(N-1)(N)}}{\displaystyle 6}\\ 0 & & & \cdots & & \frac{\displaystyle l_{(N-1)(N)}}{\displaystyle 6} & \frac{\displaystyle l_{(N-1)(N)}}{\displaystyle 3} \end{bmatrix}. Матрица жёсткости 3D Матрица демпфирования 2D