Вектор нагрузки 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+e2x{} + e_2 \cdot x. Коэффициенты e1e_1 и e2e_2 определяются из условий интерполяции в узлах

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

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

e1\displaystyle e_1 =fixi+1fi+1xixi+1xi\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+1fixi+1xi\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+e2x)[qi(ai+bix)\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+1x)]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(qiai+qi+1ai+1)+e1(qibi+qi+1bi+1)x+e2(qiai+qi+1ai+1)x+e2(qibi+qi+1bi+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(qiai+qi+1ai+1)\displaystyle {} \cdot (q_i \cdot a_i + q_{i+1} \cdot a_{i+1})xxixi+1\displaystyle {} \cdot x \bigg|_{x_i}^{x_{i+1}}+[e1(qibi+qi+1bi+1)\displaystyle {} + \bigl[ e_1 \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1})+e2(qiai+qi+1ai+1)]x22xixi+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(qibi+qi+1bi+1)\displaystyle {} \cdot (q_i \cdot b_i + q_{i+1} \cdot b_{i+1})x33xixi+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+1xi)2\displaystyle {} = \frac{\displaystyle (f_i + f_{i+1}) \cdot (x_{i+1} - x_i)}{\displaystyle 2}(qiai+qi+1ai+1)\displaystyle {} \cdot (q_i \cdot a_i + q_{i+1} \cdot a_{i+1})+xi+1xi6[fixi\displaystyle {} + \frac{\displaystyle x_{i+1} - x_i}{\displaystyle 6} \cdot \bigl[ f_i \cdot x_i+fi+1xi+1\displaystyle {} + f_{i+1} \cdot x_{i+1}+(fi+fi+1)(xi+xi+1)](qibi+qi+1bi+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+1xi6[qi(2fi+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+2fi+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)[2fi+fi+16qi\displaystyle {} = l_{(i)(i+1)} \cdot \biggl[ \frac{\displaystyle 2 \cdot f_i + f_{i+1}}{\displaystyle 6} \cdot q_i+fi+2fi+16qi+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}(2fi+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+2fi+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}[2fi+fi+1fi+2fi+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(j1)(j)6\displaystyle {} = \frac{\displaystyle l_{(j-1)(j)}}{\displaystyle 6}(fj1+2fj)\displaystyle {} \cdot (f_{j-1} + 2 \cdot f_j)+l(j)(j+1)6\displaystyle {} + \frac{\displaystyle l_{(j)(j+1)}}{\displaystyle 6}(2fj+fj+1),\displaystyle {} \cdot (2 \cdot f_j + f_{j+1}),
(6.39)

где l(j1)(j)l_{(j-1)(j)}=xj{} = x_jxj1{} - 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(2f0+f1)l(0)(1)6(f0+2f1)+l(1)(2)6(2f1+f2)l(i1)(i)6(fi1+2fi)+l(i)(i+1)6(2fi+fi+1)l(i)(i+1)6(fi+2fi+1)+l(i+1)(i+2)6(2fi+1+fi+2)l(N1)(N)6(fN1+2fN)].\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}.