Формати зберігання розріджених матриць

Розріджені матриці в FEM-аналізі

Матриці, в яких більшість елементів дорівнює нулю, називаються ються. Елементи матриці - утворюють головну діагональ;
елементи матриці утворюють (k-1) -у наддіагональ;
елементи утворюють (k-1) -у поддіагональ.

Приклад. Нижче представлені дві матриці: матриця A - трехдіагональной матриця розміру 5х5, елементи головної діагоналі рівні 10, елементи першої наддіагоналі рівні 3, елементи першої поддіагоналі рівні -1; матриця В - симетрична матриця розміру 5х5, на головній діагоналі якої всі елементи дорівнюють 10, на другий наддіагоналі елементи рівні 5, а на третій наддіагоналі елементи рівні 2.

В даний час в багатьох областях науки і техніки багато розрахунки ведуться за допомогою систем лінійних алгебраїчних рівнянь (СЛАР), причому матриця коефіцієнтів системи виявляється дуже розрідженій. Приклад з електротехніки: для розрахунку схеми, що складається з 68 елементів, складається матриця, розрідженість якої становить 0.085, тобто ставлення ненульових елементів матриці до всіх її елементів дорівнює саме цього числа. Назріла необхідність знайти швидкий і ефективний за витратами пам'яті спосіб вирішення СЛАР з великою кількістю ненульових елементів. Адже зберігати повністю в пам'яті розріджену матрицю і витрачати час на операції над нульовими елементами надто руйнівно.

Динамічний формат зберігання розріджених матриць

Динамічний формат непогано підходить для початкового заповнення матриці, оскільки він дозволяє не турбуватися про такі речі, як попереднє виділення пам'яті. Від програміста потрібно тільки задавати значення елементів матриці, а необхідна пам'ять буде виділена автоматично. Разом з тим, цей формат характеризується значними накладними витратами на зберігання елементів. У разі, якщо матриця має дуже великий розмір, який можна порівняти з розміром оперативної пам'яті комп'ютера, має сенс створювати матрицю відразу в статичному форматі зберігання за допомогою відповідної функції.

Статичний формат зберігання розріджених матриць

В основі статичного формату зберігання розрідженій матриці лежить уявлення матриці у вигляді списку індексів ненульових елементів і відповідних їм значень, упорядкованого по рядках. Таке уявлення дозволяє ефективно здійснювати множення розрідженій матриці на вектор / матрицю, а також переглядати розріджену матрицю по рядках. Разом з тим, модифікація матриці, представленої в цьому форматі, неможлива через високу трудомісткість, деякі інші операції також вимагають великих трудовитрат.