c++ — Ищу тестовые матрицы/системы для итеративного линейного решателя
Задавать вопрос
спросил
Изменено 11 лет, 5 месяцев назад
Просмотрено 3к раз
В настоящее время я работаю над библиотекой на основе C++ для больших разреженных задач линейной алгебры (да, я знаю, что существует много таких библиотек, но я использую свою собственную в основном для того, чтобы узнать об итерационных решателях, разреженных контейнерах для хранения и т. д.). ).
Я дошел до того, что использую свои решатели в других моих проектах по программированию, и хотел бы протестировать решатели на задачах, которые не являются моими собственными. Прежде всего, я хочу протестировать симметричные разреженные системы с положительной определенностью.
Matrix Market UF Sparse Matrix Collection
При этом я еще не нашел источников хороших тестовых матриц, включающих всю системную матрицу и RHS. Это было бы здорово иметь для проверки результатов. Любые советы о том, где я могу найти такие полные системы, или, в качестве альтернативы, что я могу сделать, чтобы создать «хорошую» RHS для системных матриц, которые я могу получить в Интернете? В настоящее время я просто заполняю матрицу случайными значениями или всеми, но подозреваю, что это не обязательно лучший способ.
- c++
- матрица
- линейная алгебра
- решатель
- итерация
3
Я бы предложил использовать правосторонний вектор, полученный из предопределенного «целевого» решения x:
b = A*x
Затем у вас есть целевое решение x и результирующее решение x от решателя.
Обратите внимание, что для тщательной оценки итеративного решателя вам также необходимо решить, что использовать для начального x.
Онлайн-коллекции матриц в основном содержат левостороннюю матрицу, но некоторые из них включают правосторонние матрицы, а некоторые также имеют векторы решений.:
http://www.cise.ufl.edu/research /sparse/matrices/rhs.txt
Кстати, для коллекции разреженных матриц UF я бы предложил эту ссылку:
http://www.cise.ufl.edu/research/sparse/matrices/
Я еще не использовал его, собираюсь, но GiNAC кажется лучшим, что я нашел для C++. Это библиотека, используемая в Maple для CAS, я не знаю ее производительности для .
http://www.ginac.de/
было бы неплохо указать, какие проблемы вы решаете…
разные проблемы потребуют использования разных RHS для проверки достоверности….. я предлагаю получить пример кода из некоторых проектов, таких как DUNE Numerics (я работаю над этим прямо сейчас), FENICS, сделка.