Обобщенная сингулярная декомпозиция и разреженные матрицы

Я хочу вычислить обобщенное разложение сингулярных значений (GSVD) для разреженных матриц A и B. Поэтому я ищу реализацию, способную использования специальной структуры данных для разреженных матриц.

Единственная реализация, которую я нашел (здесь), является частью пакет LAPACK, написанный на Fortran 77. Он неплохо работает, но, к сожалению, не может работать с разреженными матрицами.


person Matthias Munz    schedule 06.08.2013    source источник
comment
Почему бы не опубликовать это на scicomp.stackexchange.com?   -  person milancurcic    schedule 07.08.2013
comment
SVDPACK включает четыре численных (итеративных) метода вычисления разложения по сингулярным числам (SVD) больших разреженных матриц с использованием двойных точность ANSI Фортран-77. Может быть, это помогает. У меня нет опыта работы с этим пакетом.   -  person Ali    schedule 07.08.2013
comment
Спасибо, но я ищу ОБОБЩЕННОЕ разложение по сингулярным значениям.   -  person Matthias Munz    schedule 07.08.2013
comment
Вероятно, это не тот ответ, который вам нужен, но вы не думали написать свой собственный?   -  person Kyle Kanos    schedule 07.08.2013
comment
это то, что я впервые попытался сделать. но я до сих пор не понимаю алгоритм, моя главная проблема.   -  person Matthias Munz    schedule 08.08.2013
comment
Здесь обсуждается несколько разных разреженных пакетов svd (в контексте упаковки python, но это не имеет значения): jakevdp.github.io/blog/2012/12/19/sparse-svds-in-python. Кроме того, если вы не возражаете против дополнительной инверсии матрицы, вы можете преобразовать обобщенную задачу SVD в обычную задачу SVD. Конечно, это работает, только если вы знаете, что одна из ваших матриц определенно невырожденная.   -  person DaveP    schedule 09.08.2013


Ответы (2)


gsvd MATLAB принимает разреженные матрицы. Я считаю, что Octave (бесплатно) также поддерживает gsvd.

person Jacob    schedule 26.08.2013
comment
Принять разреженные матрицы просто означает преобразовать их в полное хранилище и вычислить все сингулярные значения. Проблема здесь в том, чтобы иметь обобщенную декомпозицию SV с той же семантикой svds, которая возвращает только несколько сингулярных значений, а не все. - person Stefano M; 30.08.2013

Я задал тот же вопрос на Scicomp и получил хорошие ответы. Этот пост можно найти здесь.

person Matthias Munz    schedule 18.11.2013