2010-03-03 3 views
1

Для решения запасных матриц,Эффективно решения разреженных матриц

вообще, насколько велика ли матрица должна быть (как правило)

методов как congraduate спуска, чтобы быть быстрее, чем грубой силы решателей (которые не используют оговорку)?

+0

Применение глагола «решить» к матрице в лучшем случае неудобно: матрица не является внутренне вопросом или проблемой. Я предполагаю, что вы хотите решить систему уравнений, которая была представлена ​​в матричной форме. – dmckee

ответ

1

Я не уверен, что ваша дихотомия между решателями градиента сопряжения и решателями «грубой силы» полезна. КГ, например, может применяться как к плотным, так и к разреженным матрицам. Вы можете найти this book.

3

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

Как отметил высокопроизводительный знак, CG работает как с плотными матрицами, так и с разреженными, поэтому вопрос, который вы хотите задать, - это нечто большее по строкам: «насколько велика и насколько разрежена матрица, прежде чем решатели смогут пользуйтесь , рассматривая его как разреженную матрицу вместо плотной матрицы, которая имеет много нулей ».

Ответ на это зависит, как я уже отмечал, от структуры разреженности. Матрица без специальной структуры, которая на 10% заполнена, в качестве первого предположения, я бы использовал плотные методы до тех пор, пока матрица не заполнила кеш (на современном товарном оборудовании это будет около 1000 х 1000). Если матрица значительно реже или имеет некоторую специальную структуру, которая упрощает работу (например, плотные блоки ненулевых данных или некоторая структура полосы), тогда этот порог станет намного меньше.

Не могли бы вы предоставить нам дополнительную информацию о конкретной проблеме, с которой вы работаете?

Смежные вопросы