Что такое быстрый простой решатель для большой матрицы Лапласа?

Мне нужно решить несколько больших (N ~ 1e6) матриц Лапласа, которые возникают при изучении резисторных сетей. Остальная часть сетевого анализа выполняется с помощью графика повышения, и я хотел бы остаться в C ++, если это возможно. Я знаю, что есть много и много матричных библиотек C ++, но никто, кажется, не является явным лидером по скорости или удобству использования. Кроме того, многие вопросы по этому вопросу, здесь и в других местах, по-видимому, быстро превращаются в списки белья, которые имеют ограниченную полезность. В попытке помочь себе и другим я постараюсь сделать вопрос лаконичным и ответственным:

Какая библиотека лучше всего справляется со следующими требованиями?

  • Тип матрицы: симметричная диагональная доминанта /лапласиан
  • Размер: очень большой (N ~ 1e6), динамическое изменение размера не требуется
  • Разреженность: экстремальная (максимум 5 ненулевых терминов на строку /столбец)
  • Необходимые операции: найдите x в A * x = b и умножьте mat /vec
  • Язык: C ++ (хорошо)
  • Приоритет: скорость и простота написания кода. Я действительно предпочел бы избежать необходимости изучать совершенно новую инфраструктуру для этой одной проблемы или вручную писать слишком много вспомогательного кода.

Дополнительная любовь к ответам с минимальным рабочим примером ...

4 голоса | спросил mmdanziger 1 J000000Monday13 2013, 13:49:36

2 ответа


0

Eigen довольно удобен в использовании и является одной из самых быстрых библиотек, которые я знаю:

http://eigen.tuxfamily.org/dox/group__TutorialSparse.html

ответил wuschelhase 1 J000000Monday13 2013, 15:10:29
0

Есть много похожих постов, которые вы могли бы посмотреть. Я бы порекомендовал C ++ и Boost :: ublas, как это используется в UBLAS из UMFPACK и BOOST Разреженная матрица

ответил alexbuisson 1 J000000Monday13 2013, 13:57:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132