Как я могу определить, где большая разреженная матрица имеет недостаток ранга? - PullRequest
0 голосов
/ 23 мая 2019

У нас есть большая разреженная матрица, около 29000 строк и столбцов.В некоторых случаях мы хотели бы выяснить, какие строки или столбцы приводят к недостатку ранга.Мы используем библиотеку подпрограмм Harwell, MA48BD, для решения матрицы, и она сообщает вам, когда матрица имеет недостаток ранга, но не сообщает вам, где.Мне нужно некоторое указание на строку (или столбец) (обычно только один).

Для небольших матриц вы можете использовать подпрограмму LAPACK dgetf2 для ее разложения, а затем посмотреть на массив IPIV, индексы пивот,и выяснить, какое уравнение вызывает матрицу быть особойТем не менее, это для полных матриц и не может обработать что-либо нашего размера.

Кто-нибудь знает, как для общей большой разреженной матрицы определить, откуда происходит дефицит ранга?Или можно было бы сделать какой-то подход «разделяй и властвуй»?

Наши другие подходы трудоемки, делают проблему все меньше и меньше, пока не станет очевидным, где ошибка.Мы также можем автоматически разбить проблему на более мелкие части и проверить матрицы для них, и это сработает, но это также кропотливо и отнимает много времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...