Сингулярное разложение сингулярной матрицы
Листинг 8.25. Сингулярное разложение сингулярной матрицы
Венцом современных алгоритмов решения произвольных СЛАУ является SVD-разложение. Прежде чем прокомментировать соответствующий алгоритм, приведенный в листинге 8.26, обратим внимание на матрицу S, которая имеет блочную структуру. Согласно формуле (8.5), из матрицы s можно выделить подматрицу w с ненулевыми диагональными элементами. Дальнейшая последовательность действий по построению нормального псевдорешения выглядит так:
1. Нахождение единственного решения вспомогательной СЛАУ: Wy=UTb (первые два элементы вектора у во второй строке листинга 8.26, которая учитывает диагональность матрицы S).
2. Дополнение вектора нулевыми элементами до размера искомого вектора х.
3. Вычисление х простым умножением x=Vy (третья строка листинга).
Полученный результат (искомый вектор х и промежуточный у) выведен в конце листинга 8.26. Как вы можете убедиться, он совпадает с ответом, полученным в листинге 8.24 (см. предыдущий разд.) при помощи QR-разложения.