Рассмотрите систему уравнений линейную Ax = b, где A квадратная; обсуждаете методы решения (обратная матрица, метод Гаусса, LU-разложение), укажите, когда каждый метод предпочтителен с точки зрения численной устойчивости
Задача: решить систему Ax=bAx=bAx=b, где AAA — квадратная матрица. Кратко о методах, стоимости и численной устойчивости. 1) Обратная матрица - Формула: x=A−1bx=A^{-1}bx=A−1b. - Стоимость: вычисление A−1A^{-1}A−1 — O(n3)\mathcal{O}(n^3)O(n3); умножение на bbb — O(n2)\mathcal{O}(n^2)O(n2). - Устойчивость: вычисление явной A−1A^{-1}A−1 обычно менее устойчиво и избыточно; ошибки при обращении могут сильно усилиться. Не рекомендуется для прямого решения; допустимо только если действительно нужен сам A−1A^{-1}A−1 и число правых частей очень велико (хотя и в этом случае предпочтут факторизацию). 2) Метод Гаусса (прямое исключение) - Выполнение на расширенной матрице [A∣b][A|b][A∣b] с последовательным исключением. - Схема с частичным пивотированием (GEPP) — стандарт: делает метод практически устойчивым (backward stable). - Стоимость: O(n3)\mathcal{O}(n^3)O(n3). - Устойчивость: GEPP даёт небольшую обратную погрешность: вычисленное решение x^\hat xx^ удовлетворяет (A+ΔA)x^=b(A+\Delta A)\hat x=b(A+ΔA)x^=b с ∥ΔA∥/∥A∥=O(ε)\|\Delta A\|/\|A\|=O(\varepsilon)∥ΔA∥/∥A∥=O(ε). Относительная ошибка ограничивается примерно κ(A)ε\kappa(A)\varepsilonκ(A)ε (см. ниже). 3) LU‑разложение - Факторизация: либо A=LUA=LUA=LU, либо с пивотом PA=LUPA=LUPA=LU. Решение для одной правой части: сначала Ly=PbLy=PbLy=Pb, затем Ux=yUx=yUx=y. - Стоимость: факторизация O(n3)\mathcal{O}(n^3)O(n3); каждая последующая подстановка — O(n2)\mathcal{O}(n^2)O(n2). - Устойчивость: LU с частичным пивотированием эквивалентен GEPP по устойчивости (backward stable). LU без пивотирования может быть неустойчивой, но безопасна для диагонально доминирующих или специально структурированных матриц. - Предпочтение: если нужно решить систему для многих правых частей, факторизация LULULU выгоднее, чем повторный Гаусс или вычисление A−1A^{-1}A−1. 4) Специализированные методы - Холеcкий для симметричных положительно определённых AAA: A=RTRA=R^TRA=RTR. Стоимость ~13n3\tfrac{1}{3}n^331n3, более точный и стабильный выбор для SPD матриц. - SVD / псевдообратная: A=UΣVTA=U\Sigma V^TA=UΣVT, даёт наилучшую устойчивость при плохо обусловленных матрицах и позволяет корректно обработать вырожденные случаи; дорого (O(n3)\mathcal{O}(n^3)O(n3)). - Итеративные методы (CG, GMRES и др.): предпочтительны для больших разреженных систем; устойчивость и скорость зависят от предобуславливания. 5) Условность и оценка ошибок - Число обусловленности: κ(A)=∥A∥∥A−1∥\kappa(A)=\|A\|\|A^{-1}\|κ(A)=∥A∥∥A−1∥. - При backward‑stable методе относительная ошибка примерно ограничена ∥x^−x∥∥x∥≲κ(A) εmach\dfrac{\|\hat x-x\|}{\|x\|}\lesssim \kappa(A)\,\varepsilon_{\rm mach}∥x∥∥x^−x∥≲κ(A)εmach. При больших κ(A)\kappa(A)κ(A) решения плохо определены независимо от метода. - Если AAA плохо обусловлена, предпочтительнее SVD или регуляризация, а не явное обращение. Краткие рекомендации по выбору: - Общая задача, плотная матрица, одна или несколько правых частей: LU с частичным пивотированием (или Гаусс с пивотированием) — стандартный выбор. - Много правых частей: факторизация LULULU (или Cholesky для SPD). - AAA симметрична и положительно определённа: Cholesky. - Плохо обусловлена или вырожденна: SVD/псевдообратная (регуляризация). - Большие разреженные системы: итеративные методы с предобуславливателем. - Никогда не вычисляйте A−1A^{-1}A−1 просто для решения Ax=bAx=bAx=b — решайте через факторизацию; вычисление обратной матрицы хуже по устойчивости и обычно дороже по памяти.
1) Обратная матрица
- Формула: x=A−1bx=A^{-1}bx=A−1b.
- Стоимость: вычисление A−1A^{-1}A−1 — O(n3)\mathcal{O}(n^3)O(n3); умножение на bbb — O(n2)\mathcal{O}(n^2)O(n2).
- Устойчивость: вычисление явной A−1A^{-1}A−1 обычно менее устойчиво и избыточно; ошибки при обращении могут сильно усилиться. Не рекомендуется для прямого решения; допустимо только если действительно нужен сам A−1A^{-1}A−1 и число правых частей очень велико (хотя и в этом случае предпочтут факторизацию).
2) Метод Гаусса (прямое исключение)
- Выполнение на расширенной матрице [A∣b][A|b][A∣b] с последовательным исключением.
- Схема с частичным пивотированием (GEPP) — стандарт: делает метод практически устойчивым (backward stable).
- Стоимость: O(n3)\mathcal{O}(n^3)O(n3).
- Устойчивость: GEPP даёт небольшую обратную погрешность: вычисленное решение x^\hat xx^ удовлетворяет (A+ΔA)x^=b(A+\Delta A)\hat x=b(A+ΔA)x^=b с ∥ΔA∥/∥A∥=O(ε)\|\Delta A\|/\|A\|=O(\varepsilon)∥ΔA∥/∥A∥=O(ε). Относительная ошибка ограничивается примерно κ(A)ε\kappa(A)\varepsilonκ(A)ε (см. ниже).
3) LU‑разложение
- Факторизация: либо A=LUA=LUA=LU, либо с пивотом PA=LUPA=LUPA=LU. Решение для одной правой части: сначала Ly=PbLy=PbLy=Pb, затем Ux=yUx=yUx=y.
- Стоимость: факторизация O(n3)\mathcal{O}(n^3)O(n3); каждая последующая подстановка — O(n2)\mathcal{O}(n^2)O(n2).
- Устойчивость: LU с частичным пивотированием эквивалентен GEPP по устойчивости (backward stable). LU без пивотирования может быть неустойчивой, но безопасна для диагонально доминирующих или специально структурированных матриц.
- Предпочтение: если нужно решить систему для многих правых частей, факторизация LULULU выгоднее, чем повторный Гаусс или вычисление A−1A^{-1}A−1.
4) Специализированные методы
- Холеcкий для симметричных положительно определённых AAA: A=RTRA=R^TRA=RTR. Стоимость ~13n3\tfrac{1}{3}n^331 n3, более точный и стабильный выбор для SPD матриц.
- SVD / псевдообратная: A=UΣVTA=U\Sigma V^TA=UΣVT, даёт наилучшую устойчивость при плохо обусловленных матрицах и позволяет корректно обработать вырожденные случаи; дорого (O(n3)\mathcal{O}(n^3)O(n3)).
- Итеративные методы (CG, GMRES и др.): предпочтительны для больших разреженных систем; устойчивость и скорость зависят от предобуславливания.
5) Условность и оценка ошибок
- Число обусловленности: κ(A)=∥A∥∥A−1∥\kappa(A)=\|A\|\|A^{-1}\|κ(A)=∥A∥∥A−1∥.
- При backward‑stable методе относительная ошибка примерно ограничена ∥x^−x∥∥x∥≲κ(A) εmach\dfrac{\|\hat x-x\|}{\|x\|}\lesssim \kappa(A)\,\varepsilon_{\rm mach}∥x∥∥x^−x∥ ≲κ(A)εmach . При больших κ(A)\kappa(A)κ(A) решения плохо определены независимо от метода.
- Если AAA плохо обусловлена, предпочтительнее SVD или регуляризация, а не явное обращение.
Краткие рекомендации по выбору:
- Общая задача, плотная матрица, одна или несколько правых частей: LU с частичным пивотированием (или Гаусс с пивотированием) — стандартный выбор.
- Много правых частей: факторизация LULULU (или Cholesky для SPD).
- AAA симметрична и положительно определённа: Cholesky.
- Плохо обусловлена или вырожденна: SVD/псевдообратная (регуляризация).
- Большие разреженные системы: итеративные методы с предобуславливателем.
- Никогда не вычисляйте A−1A^{-1}A−1 просто для решения Ax=bAx=bAx=b — решайте через факторизацию; вычисление обратной матрицы хуже по устойчивости и обычно дороже по памяти.