Матрица жёсткости (матрица Дирихле) — матрица особого вида, использующаяся в методе конечных элементов для решения дифференциальных уравнений в частных производных. Она применяется при решениях задач электродинамики и механики.
Обычно матрица жёсткости получается разреженной, то есть содержащая большое количество нулей. Для работы с подобным типом матриц созданы специальные библиотеки (mtl4, SparseLib++, SPARSPAK и другие)
Элементы матрицы жёсткости в общем случае равны
Например, если дано уравнение Пуассона
в пространстве и граничные условния — это
Представим функцию как ряд:
то
Пусть дан один конечный элемент, для простоты — треугольный. Матрица жёсткости, по сути, задаёт связи между узлами. Так как у элемента три узла (в локальной нумерации — 0, 1 и 2), то матрица будет иметь вид
В дальнейшем матрицу для одного треугольника будем называть локальной, для всей сетки сразу - глобальной.
В общем случае, элементы определеяются через линейные функции
и получаются из цикличной перестановкой индексов. Удобно искать как определитель матрицы
Сами
В описываемом случае для каждого треугольника составляется такая матрица:
Для того, чтобы сделать из многих раздельных матриц, полученых выше, одну большую матрицу, описывающую отношения между узлами всей области расчёта, необходимо произвести процедуру объединения матриц. Пусть символ обозначает разделённые элементы (рис. а), а символ — объединённые элементы (рис. б).
Обозначим — вектор-строку значений функции в вершинах двух треугольников (см.рис). Символ обозначает транспонирование матрицы То есть, это вектор значений функции в шести узлах треугольников. Очевидно, что при объединении оных получится вектор , содержащий только четыре компоненты.
Преобразование происходит по схеме
Нумерация, конечно же, произвольная: необходимо равенство функции в соответствующих вершинах. Матрицу называют матрицей преобразования, а само уравнение называют связанной системой.
Запишем теперь матрицу жёсткости для двух треугольников:
Результирующая матрица
То есть, на каждом следующем шаге необходимо добавлять новые элементы к уже существующим.
Пусть есть область, представленная и разбитая на треугольники так, как преставлено на рисунке. Пусть данная сетка содержит узлов. Создадим глобальную матрицу (размера, очевидно, ) и заполним её нулями. Начнём строить локальные матрицы для треугольников, например, для
Введём локальную нумерацию для данного треугольника: пусть его верхняя вершина имеет локальный номер , далее по часовой стрелке и . Иначе говоря, пусть глобальным номерам соответствуют локальные номера соответственно.
Составим матрицу для этого треугольника так, как описано выше, получив что-то типа
Теперь заменим локальную нумерацию на глобальную. То есть запишем локальное число как глобальное число , - как , - как и так далее.
Получим
С остальными треугольниками поступаем аналогично. Необходимо помнить, что надо "дописать" число в глобальную ячейку, то есть прибавить к уже существующему.
В случае граничных условий первого рода необходимо изменить матрицу .
Граничное условие гласит, что функция в узлах на границе равна нулю. Для узла необходимо вычеркнуть -й столбей и -ю строку в матрице , а также вычеркнуть сам узел из массива узлов решётки.
В случае граничных условий второго рода глобальная матрица не меняется.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .