Сила разреженной матрицы в Matlab - PullRequest
1 голос
/ 17 марта 2012

Есть ли способ вычислить мощность разреженной матрицы в Matlab без преобразования ее в полную матрицу.Если я пытаюсь

b = a^0.5

, где a - разреженная матрица, я получаю сообщение об ошибке «Использовать full (x) ^ full (y).».Тем не менее, преобразование a в полную матрицу отрицательно сказывается на необходимости иметь разреженную матрицу для начала.Кто-нибудь знает, возможно ли это?

Ответы [ 2 ]

3 голосов
/ 17 марта 2012

Квадратный корень вашей разреженной матрицы в общем случае не будет разреженным.Так что нет смысла в том, чтобы его было немного.

2 голосов
/ 17 марта 2012

Что вам нужно, это вычислить корень самостоятельно.Предположим, что квадратная матрица kxk, тогда

[v d] = eigs ( a, k ) 
r = v*(d^0.5)*v'

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

...