Два контейнера для одной системы
Плотная матрица заранее выделяет n² ячеек. Триплетная сборка резервирует линейные массивы только под вклады элементов.
Цепочка элементов и глобальные степени свободы
Выберите стержень: его четыре коэффициента подсветятся в обоих представлениях.
Полная матрица системы
Наглядно, но память выделяется и для всех нулей.
Разреженная сборка МКЭ‑Ф
Линейные буферы → объединение адресов → разреженная матрица.
Карта СС и ndgrid
Один цвет связывает строку, столбец и значение одного триплета. Для матрицы 2 × 2 получаются четыре пары адресов.
Триплеты до суммирования
Выберите элемент в цепочке эл-товglobalK = sparse(rows, columns, stiffnessValues, n, n);
Библиотечная функция GNU Octave принимает координаты и значения, складывает записи с одинаковым адресом и создаёт разреженную матрицу заданного размера.
После sparse()
rows, columns, значения K и значения M; по четыре записи на элементную матрицу 2 × 2.
sparse() строит матрицу, но не решает систему
После сборки разреженная матрица ведёт себя как обычная: из неё можно выделить Kff, умножить её на вектор или передать стандартному оператору решения. Octave видит разреженный тип и использует подходящие численные алгоритмы, не требуя вручную восстанавливать квадрат со всеми нулями.
Статическая система
Первая СС закреплена, нагрузка приложена к последней. Решается только свободная часть.