Число обусловленности матрицы - как посчитать и зачем

Число обусловленности матрицы - это величина, которая показывает, насколько чувствительно решение системы линейных уравнений к малым возмущениям в исходных данных. Если матрица «хорошо обусловлена», небольшая ошибка в правой части или в коэффициентах даёт небольшую ошибку в ответе . Если же матрица плохо обусловлена, та же самая погрешность округления может полностью испортить результат - и не из-за плохого алгоритма, а из-за свойств самой задачи. Понимание числа обусловленности критично в численных методах, машинном обучении (регрессия), обработке сигналов и везде, где приходится решать СЛАУ на компьютере с конечной точностью.
Что такое число обусловленности
Для невырожденной квадратной матрицы число обусловленности определяется как произведение нормы матрицы на норму обратной:
Здесь - какая-либо согласованная (индуцированная) матричная норма. Значение всегда удовлетворяет , причём достигается, например, на ортогональных матрицах. Чем больше число обусловленности, тем «хуже» матрица: значение порядка ещё терпимо, при вычислениях с двойной точностью означает потерю примерно половины значащих цифр, а и выше в double фактически делает матрицу численно вырожденной.
Если матрица вырождена (), обратной не существует, и число обусловленности считают равным . Важно: малый определитель сам по себе ещё не говорит о плохой обусловленности - определитель зависит от масштаба, а инвариантно к умножению матрицы на скаляр, что делает его гораздо более надёжным индикатором.
Ниже - интерактивный калькулятор: вставьте свою матрицу, выберите норму, и модель посчитает число обусловленности с пошаговым разбором.
Связь с устойчивостью решения СЛАУ
Главный смысл величины раскрывается в оценке погрешности. Пусть мы решаем , но правая часть известна с возмущением , так что фактически решается . Тогда относительная погрешность решения ограничена:
Число обусловленности играет роль коэффициента усиления ошибки. Если , то относительная ошибка во входных данных в может вырасти до в ответе. Аналогичная оценка работает и при возмущении самой матрицы на :
Практическое правило: при решении в арифметике с десятичными значащими цифрами и числе обусловленности в ответе можно доверять примерно цифрам. Это объясняет, почему плохо обусловленные системы дают «мусор» даже при идеально точном алгоритме исключения Гаусса.
Стоит отличать обусловленность задачи от устойчивости алгоритма. Обусловленность - это внутреннее свойство самой матрицы и постановки задачи; она не зависит от того, каким методом мы решаем систему. Устойчивость же характеризует конкретный численный алгоритм: насколько он не привносит дополнительной ошибки сверх неизбежной. Хороший (обратно устойчивый) метод гарантирует, что вычисленное решение является точным решением слегка возмущённой системы. Но даже самый аккуратный алгоритм бессилен против большого : если задача плохо обусловлена, малое возмущение, заложенное уже в представлении чисел с плавающей точкой, неизбежно усилится в раз. Поэтому диагностику всегда начинают с оценки числа обусловленности, а не с выбора метода.
Спектральное число обусловленности
Самый употребительный вариант - спектральное (2-норменное) число обусловленности, основанное на сингулярных числах. Для произвольной матрицы оно равно отношению наибольшего сингулярного числа к наименьшему:
Сингулярные числа - это арифметические корни из собственных чисел матрицы . Для симметричной положительно определённой матрицы сингулярные числа совпадают с собственными числами, и формула упрощается до отношения максимального собственного числа к минимальному:
Геометрически показывает, насколько сильно матрица «вытягивает» единичную сферу в эллипсоид: отношение самой длинной полуоси к самой короткой. Близкое к единице число обусловленности означает почти изотропное преобразование, а большое - что одно из направлений почти «схлопывается» (этому отвечает малое сингулярное число).
Спектральное число обусловленности обладает удобными свойствами: оно инвариантно относительно умножения на ортогональную матрицу ( при ортогональной ), поскольку ортогональные преобразования сохраняют длины и сингулярные числа. Именно поэтому в численных методах предпочитают ортогональные (QR, Гивенс, Хаусхолдер) преобразования: они не ухудшают обусловленность задачи. Для самосопряжённых положительно определённых матриц вычисление сводится к нахождению крайних собственных чисел, что дешевле полного SVD и реализуется, например, степенным методом для и обратным степенным для .
Разные нормы - разные числа
Поскольку определение использует норму, существует несколько чисел обусловленности одной и той же матрицы. Все они конечно различаются, но эквивалентны с точностью до множителя, зависящего от размерности .
- - по столбцовой норме (максимальная сумма модулей по столбцу).
- - по строчной норме (максимальная сумма модулей по строке).
- - спектральное, через сингулярные числа (самое точное, но дорогое в вычислении).
- - приближённая оценка через норму Фробениуса .
В библиотеках вроде LAPACK число обусловленности обычно оценивают в норме или функцией типа gecon, потому что точное вычисление заменяют дешёвой оценкой без полного обращения. Если же нужна именно , считают сингулярное разложение (SVD). Подбор подходящей нормы - часть смежной темы про нормы и согласованность в итерационных методах СЛАУ.
Как улучшить плохо обусловленную задачу
Если велико, само переписывание алгоритма не спасёт - нужно менять постановку. Основные приёмы:
- Масштабирование (балансировка) - домножение строк и столбцов на диагональные матрицы так, чтобы выровнять порядки коэффициентов. Часто это самый дешёвый способ снизить .
- Предобуславливание - замена системы на , где матрица близка к , но легко обратима; тогда , и итерационные методы сходятся быстрее.
- Регуляризация Тихонова - для задач наименьших квадратов решается ; добавка поднимает минимальное собственное число и снижает обусловленность ценой малого смещения.
- Ортогонализация - использование QR-разложения вместо нормальных уравнений; решение через возводит число обусловленности в квадрат, , чего QR избегает.
Никогда не оценивайте обусловленность по определителю: матрица $0.1 \cdot I$ имеет крошечный $\det = 10^{-n}$, но идеальное $\kappa = 1$.
Числовой пример
Рассмотрим симметричную матрицу
Её собственные числа примерно равны и , поэтому . Это значит, что относительная ошибка во входных данных усиливается примерно в сорок тысяч раз: при возмущении правой части на решение может «уехать» на . Геометрически две строки матрицы - почти параллельные прямые, точка их пересечения определяется крайне неустойчиво. Это классический портрет плохо обусловленной системы.
Частые ошибки
- Путают малый определитель с плохой обусловленностью. Определитель зависит от масштаба, - нет; ориентироваться надо именно на число обусловленности.
- Считают, что виноват алгоритм. Большое - свойство самой задачи; никакой устойчивый метод не вернёт точности, которой нет во входных данных.
- Решают через нормальные уравнения . Это возводит число обусловленности в квадрат и теряет вдвое больше цифр, чем прямое QR-разложение.
- Игнорируют масштаб переменных. Несбалансированные единицы измерения (метры и миллиметры в одной матрице) искусственно раздувают ; помогает простое масштабирование.
- Сравнивают в разных нормах напрямую. , и дают разные числа; сопоставлять надо величины в одной и той же норме.
FAQ
Может ли число обусловленности быть меньше единицы? Нет. Для любой согласованной нормы выполняется , а , поэтому всегда.
Какое число обусловленности считается «плохим»? Грубый ориентир: при работе с двойной точностью (около 16 значащих цифр) значения до – безопасны, означает потерю половины цифр, а выше результатам доверять нельзя без специальных мер.
Чем отличается спектральное число обусловленности от остальных? вычисляется через сингулярные числа и даёт наиболее «честную» геометрическую оценку, но требует SVD. Нормы и дешевле и используются для быстрых оценок в LAPACK.
Коротко
Число обусловленности измеряет чувствительность решения СЛАУ к погрешностям входных данных и равно коэффициенту усиления относительной ошибки. Спектральный вариант имеет наглядный геометрический смысл, а оценка «теряем значащих цифр» позволяет заранее понять, сколько точности останется в ответе. Плохо обусловленные задачи лечат масштабированием, предобуславливанием, регуляризацией и ортогональными разложениями, а малый определитель индикатором обусловленности не является.
Читайте также

Алгоритм Рабина-Карпа: поиск подстроки за O(n+m)
Разбираем алгоритм Рабина-Карпа: как полиномиальный хеш и скользящее окно ускоряют поиск подстроки до O(n+m) в среднем, почему бывают ложные совпадения и при чём тут плагиат.

Распределение Фишера критические значения: как искать F-квантили
Распределение Фишера и его критические значения: что такое F-распределение, как читать таблицу критических значений по двум степеням свободы, как применять F-квантили в F-тесте на равенство дисперсий и в дисперсионном анализе.

Модель Гордона: рост дивидендов и цена акции
Модель Гордона (Gordon Growth Model) оценивает справедливую стоимость акции через дивиденды с постоянным темпом роста. Формула, вывод, расчёт, ставка дисконтирования и ошибки.