Я хочу знать, как 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 выполняет индексацию внутри решателя, а разреженная матрица должна быть проиндексирована перед использованием в решателе.Это только мои догадки.Может ли кто-нибудь любезно пролить свет на эту тему?Спасибо.