MATLAB управление памятью индексации разреженных матриц в системе уравнений - PullRequest
0 голосов
/ 14 октября 2018

Я хочу знать, как MATLAB управляет памятью для следующей системы уравнений, которая включает индексирование разреженной матрицы.

x = A(indices,indices) \ b(indices);

A - разреженная симметричная матрица, b - столбец-vector, indices имеет индекс элементов A, которые должны быть включены в систему уравнений Ax = b.

Я думаю, что A хранится как CSC (сжатый разреженный столбец).Затем он временно сохраняется в памяти с другими данными CSC.Новый CSC, наконец, используется в системе уравнений с b(indices), аналогичной следующей:

Aindexed = A(indices,indices); % New symmetric sparse matrix
bindexed = b(indices);
x = Aindexed \ bindexed;

Имеются ли в MATLAB специальные разреженные решатели с матричной индексацией?Я думаю, что менее вероятно, что MATLAB выполняет индексацию внутри решателя, а разреженная матрица должна быть проиндексирована перед использованием в решателе.Это только мои догадки.Может ли кто-нибудь любезно пролить свет на эту тему?Спасибо.

1 Ответ

0 голосов
/ 15 октября 2018

Разреженные линейные решатели обычно используют схемы хранения, основанные либо на связанных списках, либо на структурах смежности.Первая более гибкая, позволяет легко включать новые элементы, сжатие и т. Д. Вторая схема экономична с точки зрения требований к ОЗУ, а также обеспечивает лучшую производительность для алгоритмов обработки, но включение / исключение элементов невозможно.Вы можете найти больше информации и задать конкретные вопросы, если посетите следующий блог: http://comecau.blogspot.com/2018_09_05_archive.html

...