Вектор нагрузки 1D

Теперь вычислим вектор нагрузки для одномерного случая. Вектор нагрузки связан с интегралом произведения функции источника на пробную функцию. Рассмотрим интеграл для одного отрезка с вершинами xi,xi+1x_i, x_{i+1}

∫xixi+1f(x)⋅υ dx.\int_{x_i}^{x_{i+1}} f(x) \cdot \upsilon \,dx.
(6.34)

Пробная функция на отрезке имеет вид υ(x)\upsilon(x)​=qi⋅ϕi(x){} = q_i \cdot \phi_i(x)​+qi+1⋅ϕi+1(x){} + q_{i+1} \cdot \phi_{i+1}(x). Для вычисления интеграла необходимо интерполировать функцию источника f(x)f(x) на отрезке [xi,xi+1][x_i, x_{i+1}] линейной функцией. Представим f(x)f(x) в виде f~(x)\widetilde{f}(x)​=e1{} = e_1​+e2⋅x{} + e_2 \cdot x. Коэффициенты e1e_1 и e2e_2 определяются из условий интерполяции в узлах

e1\displaystyle e_1​+e2⋅xi\displaystyle {} + e_2 \cdot x_i​=fi\displaystyle {} = f_ie1\displaystyle e_1​+e2⋅xi+1\displaystyle {} + e_2 \cdot x_{i+1}​=fi+1\displaystyle {} = f_{i+1}
(6.35)

Решая эту систему по аналогии с (5.8), получаем

e1\displaystyle e_1 =fi⋅xi+1−fi+1⋅xixi+1−xi\displaystyle {} = \frac{\displaystyle f_i \cdot x_{i+1} - f_{i+1} \cdot x_i}{\displaystyle x_{i+1} - x_i}e2\displaystyle e_2 =fi+1−fixi+1−xi\displaystyle {} = \frac{\displaystyle f_{i+1} - f_i}{\displaystyle x_{i+1} - x_i}
(6.36)

Подставим интерполированную функцию источника и пробную функцию в (6.34). Примем во внимание (5.7) и (5.8) из раздела о функциях «крышек»

∫xixi+1f(x)⋅υ dx\displaystyle \int_{x_i}^{x_{i+1}} f(x) \cdot \upsilon \,dx =∫xixi+1(e1+e2⋅x)⋅[qi⋅(ai+bi⋅x)\displaystyle {} = \int_{x_i}^{x_{i+1}} (e_1 + e_2 \cdot x) \cdot \bigl[ q_i \cdot (a_i + b_i \cdot x)​+qi+1⋅(ai+1+bi+1⋅x)] dx.\displaystyle {} + q_{i+1} \cdot (a_{i+1} + b_{i+1} \cdot x) \bigr] \,dx.

Раскроем скобки и разделим интеграл на части

∫xixi+1f(x)⋅υ dx\displaystyle \int_{x_i}^{x_{i+1}} f(x) \cdot \upsilon \,dx =∫xixi+1[e1⋅(qi⋅ai+qi+1⋅ai+1)+e1⋅(qi⋅bi+qi+1⋅bi+1)⋅x+e2⋅(qi⋅ai+qi+1⋅ai+1)⋅x+e2⋅(qi⋅bi+qi+1⋅bi+1)⋅x2] dx\displaystyle {} = \int_{x_i}^{x_{i+1}} \Big[ e_1 \cdot (q_i \cdot a_i + q_{i+1} \cdot a_{i+1}) + e_1 \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1}) \cdot x + e_2 \cdot (q_i \cdot a_i + q_{i+1} \cdot a_{i+1}) \cdot x + e_2 \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1}) \cdot x^2 \Big] \,dx

Вычислим каждый из интегралов

∫xixi+1f(x)⋅υ dx\displaystyle \int_{x_i}^{x_{i+1}} f(x) \cdot \upsilon \,dx =e1\displaystyle {} = e_1​⋅(qi⋅ai+qi+1⋅ai+1)\displaystyle {} \cdot (q_i \cdot a_i + q_{i+1} \cdot a_{i+1})​⋅x∣xixi+1\displaystyle {} \cdot x \bigg|_{x_i}^{x_{i+1}}​+[e1⋅(qi⋅bi+qi+1⋅bi+1)\displaystyle {} + \bigl[ e_1 \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1})​+e2⋅(qi⋅ai+qi+1⋅ai+1)]⋅x22∣xixi+1\displaystyle {} + e_2 \cdot (q_i \cdot a_i + q_{i+1} \cdot a_{i+1}) \bigr] \cdot \frac{\displaystyle x^2}{\displaystyle 2} \bigg|_{x_i}^{x_{i+1}}​+e2\displaystyle {} + e_2​⋅(qi⋅bi+qi+1⋅bi+1)\displaystyle {} \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1})​⋅x33∣xixi+1\displaystyle {} \cdot \frac{\displaystyle x^3}{\displaystyle 3} \bigg|_{x_i}^{x_{i+1}}

Подставляя выражения для e1,e2e_1, e_2 из (6.36) и используя соотношения (5.8), после упрощения получаем

∫xixi+1f(x)⋅υ dx\displaystyle \int_{x_i}^{x_{i+1}} f(x) \cdot \upsilon \,dx =(fi+fi+1)⋅(xi+1−xi)2\displaystyle {} = \frac{\displaystyle (f_i + f_{i+1}) \cdot (x_{i+1} - x_i)}{\displaystyle 2}​⋅(qi⋅ai+qi+1⋅ai+1)\displaystyle {} \cdot (q_i \cdot a_i + q_{i+1} \cdot a_{i+1})​+xi+1−xi6⋅[fi⋅xi\displaystyle {} + \frac{\displaystyle x_{i+1} - x_i}{\displaystyle 6} \cdot \bigl[ f_i \cdot x_i​+fi+1⋅xi+1\displaystyle {} + f_{i+1} \cdot x_{i+1}​+(fi+fi+1)⋅(xi+xi+1)]⋅(qi⋅bi+qi+1⋅bi+1)\displaystyle {} + (f_i + f_{i+1}) \cdot (x_i + x_{i+1}) \bigr] \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1})

Дальнейшие преобразования с учётом (5.8) приводят к окончательному результату

∫xixi+1f(x)⋅υ dx\displaystyle \int_{x_i}^{x_{i+1}} f(x) \cdot \upsilon \,dx =xi+1−xi6⋅[qi⋅(2⋅fi+fi+1)\displaystyle {} = \frac{\displaystyle x_{i+1} - x_i}{\displaystyle 6} \cdot \bigl[ q_i \cdot (2 \cdot f_i + f_{i+1})​+qi+1⋅(fi+2⋅fi+1)].\displaystyle {} + q_{i+1} \cdot (f_i + 2 \cdot f_{i+1}) \bigr] .

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

∫xixi+1f(x)⋅υ dx\displaystyle \int_{x_i}^{x_{i+1}} f(x) \cdot \upsilon \,dx =l(i)(i+1)⋅[2⋅fi+fi+16⋅qi\displaystyle {} = l_{(i)(i+1)} \cdot \biggl[ \frac{\displaystyle 2 \cdot f_i + f_{i+1}}{\displaystyle 6} \cdot q_i​+fi+2⋅fi+16⋅qi+1],\displaystyle {} + \frac{\displaystyle f_i + 2 \cdot f_{i+1}}{\displaystyle 6} \cdot q_{i+1} \biggr] ,

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

Введём обозначения для элементов локального вектора нагрузки отрезка

ri\displaystyle r_i =l(i)(i+1)6\displaystyle {} = \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 6}​⋅(2⋅fi+fi+1)\displaystyle {} \cdot (2 \cdot f_i + f_{i+1})ri+1\displaystyle r_{i+1} =l(i)(i+1)6\displaystyle {} = \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 6}​⋅(fi+2⋅fi+1)\displaystyle {} \cdot (f_i + 2 \cdot f_{i+1})
(6.37)

Таким образом, локальный вектор нагрузки для одномерного элемента имеет вид

R\displaystyle \mathbf{R} =[riri+1]\displaystyle {} = \begin{bmatrix} r_i\\ r_{i+1} \end{bmatrix}​=l(i)(i+1)6\displaystyle {} = \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 6}​[2⋅fi+fi+1fi+2⋅fi+1].\displaystyle \begin{bmatrix} 2 \cdot f_i + f_{i+1}\\ f_i + 2 \cdot f_{i+1} \end{bmatrix}.
(6.38)

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

Rj\displaystyle R_j =l(j−1)(j)6\displaystyle {} = \frac{\displaystyle l_{(j-1)(j)}}{\displaystyle 6}​⋅(fj−1+2⋅fj)\displaystyle {} \cdot (f_{j-1} + 2 \cdot f_j)​+l(j)(j+1)6\displaystyle {} + \frac{\displaystyle l_{(j)(j+1)}}{\displaystyle 6}​⋅(2⋅fj+fj+1),\displaystyle {} \cdot (2 \cdot f_j + f_{j+1}),
(6.39)

где l(j−1)(j)l_{(j-1)(j)}​=xj{} = x_j​−xj−1{} - x_{j-1} и l(j)(j+1)l_{(j)(j+1)}​=xj+1{} = x_{j+1}​−xj{} - x_j — длины смежных отрезков. Для граничных узлов элементные вклады собираются так же, но при последующем учёте граничных условий соответствующие компоненты системы могут изменяться.

Например, для сетки с узлами 0,1,…,i,i0, 1, \ldots, i, i​+1,…,N{} +1, \ldots, N глобальный вектор нагрузки, собранный из локальных вкладов по правилу (6.39) для внутренних узлов, принимает вид (до учёта граничных условий)

R\displaystyle \mathbf{R} =[l(0)(1)6⋅(2⋅f0+f1)l(0)(1)6⋅(f0+2⋅f1)+l(1)(2)6⋅(2⋅f1+f2)⋮l(i−1)(i)6⋅(fi−1+2⋅fi)+l(i)(i+1)6⋅(2⋅fi+fi+1)l(i)(i+1)6⋅(fi+2⋅fi+1)+l(i+1)(i+2)6⋅(2⋅fi+1+fi+2)⋮l(N−1)(N)6⋅(fN−1+2⋅fN)].\displaystyle {} = \begin{bmatrix} \frac{\displaystyle l_{(0)(1)}}{\displaystyle 6} \cdot (2 \cdot f_0 + f_1)\\ \frac{\displaystyle l_{(0)(1)}}{\displaystyle 6} \cdot (f_0 + 2 \cdot f_1) + \frac{\displaystyle l_{(1)(2)}}{\displaystyle 6} \cdot (2 \cdot f_1 + f_2)\\ \vdots\\ \frac{\displaystyle l_{(i-1)(i)}}{\displaystyle 6} \cdot (f_{i-1} + 2 \cdot f_i) + \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 6} \cdot (2 \cdot f_i + f_{i+1})\\ \frac{\displaystyle l_{(i)(i+1)}}{\displaystyle 6} \cdot (f_i + 2 \cdot f_{i+1}) + \frac{\displaystyle l_{(i+1)(i+2)}}{\displaystyle 6} \cdot (2 \cdot f_{i+1} + f_{i+2})\\ \vdots\\ \frac{\displaystyle l_{(N-1)(N)}}{\displaystyle 6} \cdot (f_{N-1} + 2 \cdot f_N) \end{bmatrix}.