У меня есть (n x n) симметричная матрица A и вектор (n x 1) B. В принципе, мне просто нужно решить Ax = b для x. Проблема в том, что A будет потенциально массовым. Поэтому я ищу наиболее эффективный алгоритм решения линейных уравнений в C++. Я просмотрел библиотеку Эйгена. По-видимому, у него есть метод SVD, но мне сказали, что он медленный. Решение x = обратное (A) * b также похоже на субоптимальное. UBLAS быстрее? Есть ли более эффективные методы? Благодарю.Самый эффективный способ решения системы линейных уравнений
Редактировать: матрица A положительно определена и не разрежена.
Умм ... Гауссово устранение? – Eutherpy
Является ли ваша матрица положительной? Тогда (P) CG может быть вариантом для вас. Помимо этого, посмотрите на итерационные методы (Гаусс-Зейдел, Якоби и т. Д.) Вместо прямого решателя, если ваша система слишком велика. – Zeta
Каков ваш средний размер матрицы? Является ли ваша матрица разреженной? – ggael