ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/booksomepages.pdf · На...

58
Министерство образования и науки Российской Федерации Федеральное агентство по образованию Нижегородский государственный университет им. Н.И. Лобачевского С.А. Белов, Н.Ю. Золотых ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫ Лабораторный практикум Нижний Новгород Издательство Нижегородского госуниверситета 2005

Upload: others

Post on 30-Jul-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Нижегородский государственный университет им. Н.И.Лобачевского

С.А. Белов, Н.Ю. Золотых

ЧИСЛЕННЫЕ МЕТОДЫЛИНЕЙНОЙ АЛГЕБРЫ

Лабораторный практикум

Нижний НовгородИздательство Нижегородского госуниверситета

2005

Page 2: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

УДК 519.61ББК 22.193.1Б435

Белов С.А., Золотых Н.Ю. Численные методы линейное ал-гебры. Лабораторный практикум. — Нижний Новгород: Изд-воНижегородского госуниверситета им. Н.И. Лобачевского, 2005.— 264 с.

ISBN 5–85746–837–X

Учебное пособие посвящено численным методам линейной алгебрыи затрагивает следующие темы: матричные нормы и число обусловлен-ности, прямые и итерационные методы решения линейных систем, зада-чу наименьших квадратов, технологию разреженных матриц. По каждойтеме даются необходимый теоретический материал и задания к лабора-торным работам. Помимо этого, книга содержит руководство по учебно-практической библиотеке численных методов NL, доступный путеводи-тель по пакету LAPACK и его версии на языке C CLAPACK и краткоеруководство по использованию системы Matlab.

Подготовлен в учебно-исследовательской лаборатории«Математические и программные технологии

для современных компьютерных систем(Информационные технологии)» факультета ВМК ННГУ

при поддержке Фонда содействия развитию малыхформ предприятий в научно-технической сфере.

ISBN 5–85746–837–X ББК 22.193.1c© С.А. Белов, Н.Ю. Золотых, 2005

Page 3: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Оглавление

Предисловие 7

Обозначения и соглашения 10

Глава 1. Машинная арифметика и анализ ошибок 121.1. Нормы векторов и матриц . . . . . . . . . . . . . . . . . 121.2. Число обусловленности матрицы . . . . . . . . . . . . . 14

1.2.1. Оценки для числа обусловленности . . . . . . . . 151.2.2. Решение «возмущенной» системы . . . . . . . . . 171.2.3. Апостериорные оценки . . . . . . . . . . . . . . . 181.2.4. Покомпонентная относительная обратная ошибка 18

1.3. Машинная арифметика . . . . . . . . . . . . . . . . . . . 191.3.1. Числа с плавающей точкой . . . . . . . . . . . . 191.3.2. IEEE-арифметика . . . . . . . . . . . . . . . . . . 22

1.4. Прямой и обратный анализ ошибок . . . . . . . . . . . . 251.4.1. Прямой анализ ошибок . . . . . . . . . . . . . . . 251.4.2. Анализ чувствительности . . . . . . . . . . . . . 261.4.3. Обратный анализ ошибок . . . . . . . . . . . . . 27

1.5. Производительность алгоритмов . . . . . . . . . . . . . 281.6. Библиотека NL . . . . . . . . . . . . . . . . . . . . . . . . 28

Глава 2. Прямые методы решения линейных систем 332.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.2. Метод Гаусса . . . . . . . . . . . . . . . . . . . . . . . . . 332.3. LU -разложение . . . . . . . . . . . . . . . . . . . . . . . 36

2.3.1. Исключение по столбцу . . . . . . . . . . . . . . 372.3.2. Исключение по строке . . . . . . . . . . . . . . . 382.3.3. Компактная схема . . . . . . . . . . . . . . . . . 392.3.4. Замечания о производительности . . . . . . . . . 41

2.4. Схемы выбора ведущего элемента . . . . . . . . . . . . . 422.4.1. Стратегия частичного выбора . . . . . . . . . . . 42

Page 4: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

4 ОГЛАВЛЕНИЕ

2.4.2. Стратегия полного выбора . . . . . . . . . . . . . 442.5. Анализ ошибок . . . . . . . . . . . . . . . . . . . . . . . 44

2.5.1. Aнализ ошибок в LU -разложении . . . . . . . . . 452.5.2. Анализ ошибок при решении треугольных систем 462.5.3. Рост коэффициентов . . . . . . . . . . . . . . . . 49

2.6. Оценка числа обусловленности . . . . . . . . . . . . . . 512.7. Итерационное уточнение . . . . . . . . . . . . . . . . . . 522.8. Масштабирование . . . . . . . . . . . . . . . . . . . . . . 542.9. LU -разложение в библиотеке NL . . . . . . . . . . . . . 542.10. LDLT-разложение . . . . . . . . . . . . . . . . . . . . . 572.11. Разложение Холецкого . . . . . . . . . . . . . . . . . . . 582.12. Разложение Холецкого в библиотеке NL . . . . . . . . . 61

Глава 3. Линейная задача наименьших квадратов 643.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . 643.2. Обусловленность задачи наименьших квадратов . . . . 663.3. Нормальные уравнения . . . . . . . . . . . . . . . . . . . 673.4. QR-разложение . . . . . . . . . . . . . . . . . . . . . . . 69

3.4.1. Ортогонализация Грама–Шмидта . . . . . . . . 703.4.2. Отражения Хаусхолдера . . . . . . . . . . . . . . 723.4.3. Вращения Гивенса . . . . . . . . . . . . . . . . . 75

3.5. QR-разложение в библиотеке NL . . . . . . . . . . . . . 783.6. Сингулярное разложение (SVD ) . . . . . . . . . . . . . 833.7. Сравнение методов . . . . . . . . . . . . . . . . . . . . . 853.8. Задача наименьших квадратов неполного ранга . . . . 86

3.8.1. Использование сингулярного разложения . . . . 873.8.2. Псевдообратная матрица . . . . . . . . . . . . . . 89

3.9. Сингулярное разложение в библиотеке NL . . . . . . . . 90

Глава 4. Разреженные системы 944.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . 944.2. Способы представления разреженных матриц . . . . . . 94

4.2.1. Разреженный строчный формат . . . . . . . . . 954.2.2. Разреженный столбцовый формат . . . . . . . . 974.2.3. Формат для хранения разреженных симметрич-

ных матриц . . . . . . . . . . . . . . . . . . . . . 984.3. Основные операции с разреженными матрицами . . . . 994.4. Разреженные матрицы в библиотеке NL . . . . . . . . . 99

Page 5: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

ОГЛАВЛЕНИЕ 5

4.5. Разреженные системы линейных уравнений . . . . . . 1024.6. Разреженные системы в библиотеке NL . . . . . . . . . 1064.7. Ленточные матрицы . . . . . . . . . . . . . . . . . . . . 109

4.7.1. Трехдиагональные системы . . . . . . . . . . . . 1094.7.2. Метод прогонки в библиотеке NL . . . . . . . . . 1114.7.3. Ленточные системы . . . . . . . . . . . . . . . . . 1124.7.4. Ленточные системы в библиотеке NL . . . . . . 114

Глава 5. Итерационные методы 1185.1. Метод простой итерации . . . . . . . . . . . . . . . . . . 1195.2. Метод Якоби . . . . . . . . . . . . . . . . . . . . . . . . . 1215.3. Метод Гаусса–Зейделя . . . . . . . . . . . . . . . . . . . 1225.4. Метод релаксации . . . . . . . . . . . . . . . . . . . . . . 1225.5. Метод релаксации в библиотеке NL . . . . . . . . . . . . 1235.6. Метод сопряженных градиентов . . . . . . . . . . . . . . 1265.7. Метод сопряженных градиентов в библиотеке NL . . . 1315.8. Метод бисопряженных градиентов . . . . . . . . . . . . 1345.9. Метод бисопряженных градиентов в библиотеке NL . . 1365.10. Метод минимальных невязок . . . . . . . . . . . . . . . 1395.11. Метод наискорейшего спуска . . . . . . . . . . . . . . . 140

Глава 6. Использование системы Matlab 1416.1. Краткое введение в Matlab . . . . . . . . . . . . . . . . 1426.2. Основные функции для работы с матрицами . . . . . . 1466.3. Cистемы линейных уравнений . . . . . . . . . . . . . . . 156

6.3.1. Решатели систем линейных уравнений . . . . . . 1566.3.2. LU -разложение . . . . . . . . . . . . . . . . . . . 1596.3.3. Разложение Холецкого . . . . . . . . . . . . . . . 1606.3.4. QR-разложение . . . . . . . . . . . . . . . . . . . 1616.3.5. Сингулярное разложение . . . . . . . . . . . . . . 1636.3.6. Нормы векторов и матриц . . . . . . . . . . . . . 1646.3.7. Число обусловленности . . . . . . . . . . . . . . . 1656.3.8. Оценка числа обусловленности . . . . . . . . . . 1656.3.9. Обратная и псевдообратная матрицы . . . . . . 167

6.4. Разреженные матрицы . . . . . . . . . . . . . . . . . . . 1696.4.1. Создание и преобразование разреженных матриц1696.4.2. Алгоритмы переупорядочения . . . . . . . . . . . 1726.4.3. Неполная факторизация . . . . . . . . . . . . . . 176

Page 6: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

6 ОГЛАВЛЕНИЕ

6.4.4. Решение систем линейных уравнений . . . . . . 179

Глава 7. Библиотека LAPACK 1847.1. Обзор библиотеки . . . . . . . . . . . . . . . . . . . . . . 1847.2. Решение систем линейных уравнений . . . . . . . . . . . 188

7.2.1. Функция DGESV . . . . . . . . . . . . . . . . . . 1887.2.2. Функция DGESVX . . . . . . . . . . . . . . . . . 192

7.3. Решение положительно определенных систем . . . . . . 2027.4. Решение трехдиагональной системы . . . . . . . . . . . 2067.5. Решение ленточных систем . . . . . . . . . . . . . . . . 2107.6. Линейная задача наименьших квадратов . . . . . . . . 216

7.6.1. Использование QR- и QL-разложений . . . . . . 2167.6.2. Использование сингулярного разложения . . . . 223

7.7. Рекомендации по установке библиотеки . . . . . . . . . 228

Глава 8. Библиотека CLAPACK 2308.1. Рекомендации по установке библиотеки . . . . . . . . . 2308.2. Особенности вызова функций . . . . . . . . . . . . . . . 2328.3. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Глава 9. Задачи 2389.1. Задачи к первой главе . . . . . . . . . . . . . . . . . . . 2389.2. Задачи ко второй главе . . . . . . . . . . . . . . . . . . . 2439.3. Задачи к третьей главе . . . . . . . . . . . . . . . . . . . 2499.4. Задачи к четвертой главе . . . . . . . . . . . . . . . . . 2549.5. Задачи к пятой главе . . . . . . . . . . . . . . . . . . . . 256

Литература 257

Предметный указатель 259

Page 7: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Предисловие

Учебное пособие, предлагаемое вниманию читателя, посвя-щено численным методам линейной алгебры. В нем затрагива-ются следующие темы: матричные нормы и число обусловлен-ности, прямые и итерационные методы решения линейных си-стем, задача наименьших квадратов, технология разреженныхматриц. По каждой теме мы даем необходимый теоретическийматериал и задания к лабораторным работам. Помимо этогокнига содержит руководство по учебно-практической библио-теке численных методов NL, доступный путеводитель по па-кету LAPACK и его версии на языке C CLAPACK и краткоеруководство по использованию системы Matlab. Мы полага-ем, что при выполнении задания студент воспользуется ука-занным программным обеспечением или, возможно, напишетсвою программу «с нуля».

На сегодняшний день объем информации в области мето-дов вычислений практически необозрим. Существуют большиебиблиотеки программ, такие, как библиотека Netlib [32] (вклю-чающая пакеты LINPACK, EISPACK, LAPACK, BLAS и др.),библиотеки численного анализа Numerical Algorithms Group —NAG [31], научная библиотека GSL ассоциации GNU [28], биб-лиотека НИВЦ МГУ [24] и др. Указанные библиотеки широкоприменяются современными вычислителями, однако в учебныхкурсах и практикумах используются достаточно редко. К при-чинам последнего (среди прочих) следует отнести некоторуюих «громоздкость». Достаточно сложны соглашения о пара-метрах функций. Исходный код, как правило, написан на Фор-тране. Эти свойства часто затрудняют возможность исполь-зования исходного кода этих пакетов в рамках студенческих

Page 8: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

8 Предисловие

лабораторных работ. Поэтому мы не справились с искушениемнаписать свою собственную библиотеку. Предлагаемая библио-тека NL написана А.М. Тагуновым и Н.Ю. Золотых и проте-стирована стажерами лаборатории «Информационные техно-логии» А.Н. Половинкиным, К.В. Корняковым и В.В. Рябовым.Она, конечно, уступает по производительности таким совре-менным пакетам, как LAPACK, однако ее исходный код на-много более прозрачен и студент всегда может обратиться кнему для уяснения деталей алгоритма или с целью внесенияизменений.

Для работы с пособием необходимы знания линейной алгеб-ры и математического анализа в объеме соответствующих уни-верситетских курсов для студентов естественно-научных спе-циальностей. Предполагается, что лабораторные работы вы-полняются параллельно с изучением теоретического материалапо численным методам. В качестве учебников по современнымчисленным методам линейной алгебры мы рекомендуем [2, 4,5], в качестве справочника — [3]. При написании пособия мы са-ми активно пользовались этими книгами. Описание функцийи подпрограмм в главах 6, 7 следует руководствам [18, 23]. Подуху наше пособие близко учебникам [1, 10, 17, 21, 22].

В книге приводятся доказательства только некоторых клю-чевых утверждений, что вполне, как мы считаем, оправдыва-ется поставленными задачами. Опущенные доказательства вомногих случаях могут быть восстановлены: это, по мнению ав-торов, являлось бы хорошим упражнением. В тех случаях, ко-гда известные нам доказательства сложны, мы всегда приво-дим ссылку на соответствующую литературу.

Мы благодарим за сотрудничество директора по развитиюНижегородской лаборатории корпорации «Интел» Л.В. Несте-ренко. Во время работы над пособием авторы получали фи-нансовую поддержку Фонда содействия развитию малых формпредприятий в научно-технической сфере. Мы искренне при-

Page 9: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Предисловие 9

знательны его генеральному директору И.М. Бортнику и на-чальнику отдела развития инфраструктуры В.Н. Оганесяну.

Мы надеемся, что настоящее пособие будет полезно студен-там и всем тем, кто на практике применяет численные методылинейной алгебры.

Page 10: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Обозначения и соглашения

В пособии рассматриваются задачи линейной алгебры надполем вещественных чисел, поэтому все скаляры, векторы иматрицы считаются вещественными (не комплексными). Заме-тим, что некоторые приведенные результаты и описанные ал-горитмы без труда переносятся и на комплексный случай, то-гда как для некоторых алгоритмов и фактов такое перенесениеневозможно.

Под арифметическим вещественным пространством пони-мается линейное пространство вещественных столбцов задан-ной высоты со стандартно определенными операциями сложе-ния и умножения вектора на вещественный скаляр.

Как правило, векторы мы обозначаем малыми латинскимибуквами (a, b, c, . . . ), матрицы — большими латинскими бук-вами (A,B, C . . . ), а их элементы соответствующими малымилатинскими буквами с индексами (aj , bj , cj , . . . , aij , bij , cij , . . . ).Если матрица задана выражением, например A + B, то дляссылки на ее элемент i-й строки j-го столбца будем писать(A + B)ij . Аналогичные соглашения примем и для векторов.Под неравенством A ≤ B понимается система покомпонентныхнеравенств aij ≤ bij для всех i и j.E единичная матрица (порядок ясен из контекста)

ej j-й столбец единичной матрицы

‖x‖, ‖x‖p норма вектора x; см. стр. 12

‖A‖, ‖A‖p норма матрицы A; см. стр. 13

rank A ранг матрицы A

det A определитель матрицы A

Page 11: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Обозначения и соглашения 11

AT транспонированная матрица

|A| матрица B = (bij), в которой bij = |aij |L(a1, . . . , an) линейная оболочка векторов a1, . . . , an

diag(λ1, . . . , λn) диагональная матрица с элементамиλ1, . . . , λn на диагонали

diag(D1, . . . , Dk) блочно-диагональная матрица с блокамиD1, . . . , Dk на диагонали

λ1(A), . . . , λn(A) собственные числа квадратной матрицыA порядка n

σ1(A), . . . , σn(A) сингулярные числа матрицы A размераm× n (m ≥ n): σj(A) =

√λj(ATA)

condA, condp A число обусловленности матрицы A; см.стр. 14, 66

condLS A число обусловленности матрицы A длязадачи наименьших квадратов; см. стр.67

ρ(A) спектральный радиус матрицы A; см.стр. 119

fl(x) представление в компьютере числа x; см.стр. 20

εM машинное эпсилон; см. стр. 21

sign(α) знак числа α; равен 1, 0 или −1, если со-ответственно α > 0, α = 0, α < 0

gpp, gcp коэффициенты роста элементов в алго-ритме LU -разложения с частичным и со-ответственно полным выбором ведущегоэлемента; см. стр. 49, 50

Page 12: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Глава 3

Линейная задачанаименьших квадратов

3.1. Постановка задачи

Пусть A — матрица размера m × n, а b — столбец высо-ты m. Линейная задача наименьших квадратов заключаетсяв нахождении такого вектора x, называемого псевдорешениемсистемы Ax = b, на котором достигается минимум

minx‖Ax− b‖2.

Таким образом, псевдорешение доставляет минимум евклидо-вой нормы невязки заданной системы Ax = b. Легко видеть,что если система Ax = b совместна, то любое ее решение яв-ляется ее псевдорешением. Если m > n, то система называетсяпереопределенной.

Псевдорешение единственно тогда и только тогда, когдаrank A = n (столбцы матрицы A линейно независимы).

Задача наименьших квадратов возникает при аппроксима-ции данных. Предположим, что имеются пары значений

(x1, y1), (x2, y2), . . . , (xm, ym). (33)

Пусть f1(x), f2(x), . . . , fn(x) — заданные функции. Требуетсянайти функцию вида

f(x) = α1f1(x) + α2f2(x) + · · ·+ αnfn(x), (34)

Page 13: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.1. ПОСТАНОВКА ЗАДАЧИ 65

для которой f(xi) ≈ yi (i = 1, 2, . . . ,m), т. е. функцию, прибли-жающую данные (33). Более точно: требуется найти значенияпараметров α1, . . . , αn, на которых достигается минимум

minα1,...,αn

m∑i=1

(yi − α1f1(xi)− · · · − αnfn(xi)

)2.

Легко видеть, что набор этих параметров является псевдо-решением системы

α1f1(x1) + α2f2(x1) + . . . + αnfn(x1) = y1,

α1f1(x2) + α2f2(x2) + . . . + αnfn(x2) = y2,

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

α1f1(xm) + α2f2(xm) + . . . + αnfn(xm) = ym.

И наоборот, если α1, . . . , αn — псевдорешение указанной систе-мы, то функция f(x), определяемая по формуле (34), являетсярешением задачи аппроксимации.

Часто в качестве функций f1(x), f2(x), . . . , fn(x) рассматри-ваются многочлены 1, x, . . . , xn−1. Таким образом, речь идет обаппроксимации данных полиномами.

Мы рассмотрим следующие методы решения линейной за-дачи наименьших квадратов:

1) нормальные уравнения;

2) QR-разложение:

а) ортогонализация Грама–Шмидта,б) отражения Хаусхолдера,в) вращения Гивенса,

3) сингулярное разложение (SVD ).

Page 14: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

66ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Далее мы, как правило, сосредоточимся на случае полно-го ранга (rank A = n). В разделе 3.8 рассматривается (болеетрудная) задача наименьших квадратов неполного ранга.

Подробно линейная задача наименьших квадратов рассмат-ривается, например, в [4, 5, 13].

3.2. Обусловленность задачи наименьших квадратов

В разделе 1.2 было введено число обусловленности квадрат-ной матрицы. Дадим определение числа обусловленности пря-моугольной матрицы. Пусть матрица A имеет размеры m× n,причем m ≥ n. Спектральным числом обусловленности мат-рицы A называется величина

cond2 A =maxj σj(A)minj σj(A)

.

Это определение согласуется с определением cond2 A для квад-ратной матрицы (см. (2) на стр. 14). Если m < n, то по опре-делению cond2 A = cond2 AT.

Предположим, что rank A = n. Пусть x — решение зада-чи наименьших квадратов min ‖Ax − b‖2, r — невязка, т. е.r = b−Ax, x+∆x — решение «возмущенной» задачи наимень-ших квадратов min ‖(A+∆A)x−(b+∆b)‖2. Предположим, чтовозмущение не слишком велико, а именно, ε < 1/ cond2 A, где

ε = max{‖∆A‖2

‖A‖2,‖∆b‖2

‖b‖2

}.

Можно показать [4] (см. также задачу 3 из раздела 9.3 на стр.250), что

‖∆x‖2

‖x‖2≤ ε ·

(2 cond2 A

cos θ+ tg θ · cond2

2 A

)+ O(ε2), (35)

где sin θ = ‖r‖2/‖b‖2 (таким образом, θ — это угол между век-торами b и Ax).

Page 15: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.3. НОРМАЛЬНЫЕ УРАВНЕНИЯ 67

Величина

condLS(A, b) =2 cond2 A

cos θ+ tg θ · cond2

2 A

называется числом обусловленности для задачи наименьшихквадратов. Получаем, что

‖∆x‖2

‖x‖2≤ ε condLS(A, b) + O(ε2).

Итак, condLS(A, b) является мерой чувствительности задачи на-именьших квадратов, показывающей, как сильно решение этойзадачи зависит от возмущения входных данных.

Формулу (35) можно интерпретировать следующим обра-зом. Если угол θ мал, то condLS(A, b) ≈ 2 cond2 A, т. е. задачанаименьших квадратов обусловлена примерно так же, как изадача решения систем линейных уравнений.

Если угол θ не мал, но и не близок к π/2, то condLS(A, b) ≈cond2

2 A.Если θ ≈ π/2, т. е. задача близка к вырожденной, то величи-

на condLS(A, b) растет неограничено, даже если cond22 A имеет

умеренные значения.

3.3. Нормальные уравнения

Покажем, что множество псевдорешений системы Ax = bсовпадает с множеством решений системы

ATAx = ATb, (36)

называемой системой нормальных уравнений.Имеем

‖A(x + ∆x)− b‖22 =

(A(x + ∆x)− b

)T(A(x + ∆x)− b)

)=

= (A∆x)T(A∆x) + (Ax− b)T(Ax− b) + 2(A∆x)T(Ax− b) =

= ‖A∆x‖22 + ‖Ax− b‖2

2 + 2∆xT(ATAx−ATb).

Page 16: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

68ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Если x — псевдорешение, то ‖A∆x‖22 + 2∆xT(ATAx−ATb) ≥ 0

для любого ∆x, откуда ATAx−ATb = 0. Обратно, если ATAx =ATb, то ‖A(x + ∆x)− b‖2

2 ≥ ‖Ax− b‖22 для любого ∆x, т. е. x —

псевдорешение.Заметим, что матрица ATA — квадратная и неотрицатель-

но определенная. Система (36) всегда совместна. Она имеетединственное решение тогда и только тогда, когда псевдоре-шение исходной системы единственно. Последнее имеет местов том и только в том случае, когда столбцы матрицы A ли-нейно независимы (т. е. rank A = n). В этом (и только в этом)случае матрица ATA положительно определена и для решениясистемы (36) мы можем применить разложение Холецкого. То-гда на вычисление матричного произведения ATA требуетсяmn2 +O(n2) операций с плавающей точкой (достаточно вычис-лить только элементы над диагональю), а на решение системы(36) требуется n3/3+O(n2) операций с плавающей точкой. Таккак m ≥ n, то основная масса времени тратится на формиро-вание матрицы ATA.

Недостатком метода нормальных уравнений является пло-хая обусловленность получаемой системы. Действительно, спра-ведливо равенство cond2(ATA) = cond2

2 A. Используя резуль-таты анализа ошибок для метода Холецкого, приходим к вы-воду, что относительная ошибка получаемого решения задачинаименьших квадратов не превосходит некоторого умеренно-го кратного величины εM cond2

2 A. Следует ожидать, что прирешении нормальных уравнений с небольшой невязкой исход-ной системы будет потеряно вдвое больше разрядов, чем прииспользовании QR-разложения или сингулярного разложения.

Тем не менее использование нормальных уравнений заман-чиво при решении линейной задачи наименьших квадратов прималых значениях n: например, при n = 2 система (36) имеетразмеры 2× 2.

Page 17: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 69

3.4. QR-разложение

Можно доказать, что для произвольной (m×n)-матрицы Aранга n существуют и единственны матрицы Q размера m× nс ортонормированными столбцами (т. е. QTQ = E) и верхне-треугольная матрица R размера n×n с положительными диа-гональными элементами, такие, что

A = QR. (37)

Разложение (37) называется QR-разложением1 матрицы A.Сперва покажем, как решать линейную задачу наименьших

квадратов min ‖Ax − b‖2, если QR-разложение матрицы A из-вестно. Методы построения самого QR-разложения будут рас-смотрены позднее.

Итак, QTQ = E. Дополним столбцы матрицы Q до орто-нормированной системы m векторов2. Из построенных столб-цов составим матрицу S. Имеем STQ = 0. Матрица (Q,S) —ортогональная, т. е. (Q,S)−1 = (Q,S)T, поэтому для любоговектора x справедливо ‖(Q,S)Tx‖2 = ‖x‖2. Теперь получаем:

‖Ax− b‖22 = ‖(Q,S)T(QRx− b)‖2

2 =

∥∥∥∥∥(

QTQRx−QTb

STQRx− STb

)∥∥∥∥∥2

2

=

1Иногда QR-разложением называют представление матрицы A в видепроизведения A = eQ eR, в котором матрица eQ — квадратная ортогональнаяпорядка m, а матрица eR — верхнетреугольная размера m×n. Чтобы такоеразложение получить по разложению (37), достаточно столбцы матрицыQ дополнить до ортонормированной системы m векторов, из построенныхстолбцов составить матрицу S и положить

eQ = (Q, S), eR =

R

0

!.

Обратный переход осуществляется отбрасыванием в eQ последних m − nстолбцов, а в eR — последних m− n строк.

2Ср. предыдущее примечание.

Page 18: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

70ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

= ‖Rx−QTb‖22 + ‖STb‖2

2.

Минимум достигается тогда и только тогда, когда первое сла-гаемое равно нулю. Итак, решением линейной задачи наимень-ших квадратов является решение треугольной системы

Rx = QTb,

при этомmin

x‖Ax− b‖2 = ‖STb‖2.

Заметим, что матрица R невырождена тогда и только тогда,когда rank A = n. В этом случае x = R−1QTb.

Рассмотрим несколько методов построения QR-разложения.

3.4.1. Ортогонализация Грама–Шмидта

Процесс ортогонализации Грама–Шмидта — это класси-ческий метод построения QR-разложения. Он заключается впостроении ортонормированного базиса q1, . . . , qn подпростран-ства, натянутого на столбцы a1, . . . , an, причем

L(q1, . . . , qj) = L(a1, . . . , aj) (j = 1, 2, . . . , n). (38)

Матрица, составленная из столбцов q1, . . . , qn, — это матрицаQ. Матрица перехода от базиса q1, . . . , qn к a1, . . . , an — этоматрица R, т. е. aj =

∑ji=1 rijqi

Опишем этот алгоритм подробнее.

for j = 1, . . . , nqj = aj

for i = 1, . . . , j − 1rij = qT

i aj (∗)qj = qj − rijqi

endrjj = ‖qj‖2

Page 19: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 71

if rjj = 0exit (ai линейно зависит от a1, . . . , ai−1)

endqj = qj/rjj

end

Алгоритм использует 2mn2+O(mn) операций с плавающейточкой.

Заметим, что присваивание rij = qTi aj в строке (∗) приве-

денного алгоритма можно заменить на rij = qTi qj . Полученный

таким образом новый алгоритм (в точной арифметике экви-валентный исходному) называется модифицированным процес-сом Грама–Шмидта.

При реальных вычислениях на компьютере (при наличииошибок округления) процесс ортогонализации Грама–Шмидта(в том числе модифицированный) вместо векторов q1, q2, . . . , qn

возвратит векторы q1, q2 + ∆q2, . . . , qn + ∆qn. Например, в ре-жиме накопления

L(q1, q2 + ∆q2, . . . , qj + ∆qj) = L(a1, a2 + ∆a2, . . . , aj + ∆aj),

где ‖∆ak‖2 ≤ 2εM‖ak‖2, т. е. линейные оболочки полученныхвекторов совпадают с линейными оболочками «слабо возму-щенных» исходных векторов [2].

Итак, в отношении выполнения равенства (38) процесс ор-тогонализации Грама–Шмидта ведет себя крайне устойчиво.К сожалению, этого нельзя сказать о выполнении условия ор-тогональности полученной системы. В большинстве случаевпроцесс Грама–Шмидта приводит к значительному нарушениюортогональности. Модифицированный процесс Грама–Шмидтачуть лучше, но и он не свободен от указанного недостатка.Пусть Q + ∆Q — реально вычисленная матрица. Можно по-казать [4], что

(Q + ∆Q)T · (Q + ∆Q) = E + ∆E,

Page 20: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

72ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

где ‖∆E‖2 . εM cond2 A.Для исправления отмеченного недостатка используют пе-

реортогонализацию [2].Тем не менее, как оказалось, ортогональность столбцов мат-

рицы Q не играет решающей роли в задаче наименьших квад-ратов. Можно показать, что алгоритм решения задачи наи-меньших квадратов с помощью модифицированного процессаортогонализации Грама–Шмидта обратно устойчив и, следова-тельно может быть использован на практике [4]. В любом слу-чае, затраты в методах типа Грама–Шмидта чуть выше, чем вметоде Хаусхолдера.

3.4.2. Отражения Хаусхолдера

Метод отражений Хаусхолдера — один из самых распро-страненных методов нахождения QR-разложения.

Пусть v — n-мерный ненулевой вектор-столбец. Квадратнаяматрица P порядка n вида

P = E − 2vvT

vTv

называется отражением Хаусхолдера или просто отражени-ем. Вектор v называется вектором Хаусхолдера. Умножениюматрицы P на вектор x можно дать следующую геометриче-скую интерпретацию: вектор Px получается отражением век-тора x относительно гиперплоскости, ортогональной векторуv. Легко проверить, что матрица Хаусхолдера симметрична иортогональна.

Пусть x 6= 0. Найдем отражение P , такое, что Px = αe1 длякакого-либо α. Имеем

Px =(

E − 2vvT

vTv

)x = x− 2v(vTx)

vTv= x− 2vTx

vTvv,

и поэтому v коллинеарен x−Px = x−αe1. Так как v определен сточностью до ненулевого множителя, то можно положить v =

Page 21: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 73

x − αe1. Ввиду ортогональности матрицы P имеем ‖Px‖2 =‖x‖2, откуда α = ±‖x‖2. Поэтому

v = x± ‖x‖2e1. (39)

Итак, в качестве вектора Хаусхолдера v можно взять вектор,вычисляемый по формуле (39), или любой ненулевой, ему кол-линеарный.

С алгоритмом построения вектора Хаусхолдера связаны не-которые важные детали. Одна из них — выбор знака в фор-муле (39). Если x почти коллинеарен e1, то вектор v = x −sign(x1)‖x‖2e1 имеет малую норму. Вследствие этого возмож-но появление большой относительной ошибки при вычислениимножителя 2/vTv. Эту трудность можно обойти, взяв α с темже знаком, что и первая компонента вектора x:

v = x + sign(x1)‖x‖2e1. (40)

Это обеспечивает выполнение неравенства ‖v‖2 ≥ ‖x‖2 и гаран-тирует почти точную ортогональность вычисленной матрицыP .

Другая деталь связана с выбором множителя для вектора,вычисляемого по формуле (39). Мы будем использовать такоймножитель, что v1 = 1. Это несколько упрощает способ хране-ния ортогональных матриц, вычисленных по методу отраже-ний Хаусхолдера.

Суть алгоритма QR-разложения на основе отражений сна-чала поясним на примере. Пусть m = 5, n = 4 и матрицы P1 иP2 таковы, что

P2P1A =

f11 f12 f13 f14

0 f22 f23 f24

0 0 f33 f34

0 0 f43 f44

0 0 f53 f54

.

Page 22: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

74ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Покажем, как на месте элементов f43, f53 получить нули. Най-дем матрицу отражения P ′

3, такую, что

P ′3 ×

f33

f43

f53

=

f ′33

0

0

.

Если P3 = diag(1, 1, P ′3), то

P3P2P1A =

f11 f12 f13 f14

0 f22 f23 f24

0 0 f ′33 f ′34

0 0 0 f ′44

0 0 0 f ′54

.

Выполнив n таких шагов, получим верхнюю треугольнуюматрицу R̃ = PnPn−1 . . . P1A. Откуда, так как матрицы Pj

— ортогональные и симметричные, имеем A = Q̃R̃, где Q̃ =P1P2 . . . Pn. Пусть Q состоит из первых n столбцов матрицы Q̃,а R состоит из первых n строк матрицы R̃, тогда A = QR. Этои есть искомое разложение.

Матрицы Pj не требуется формировать в явном виде: до-статочно хранить соответствующий вектор vj , который можнозаписывать в j-й столбец матрицы A.

Для решения задачи наименьших квадратов необходимо вы-числить произведение QTb = PnPn−1 . . . P1b.

Трудоемкость алгоритма построения QR-разложения на ос-нове отражений составляет 2n2m− (2/3)n3 +O(mn) арифмети-ческих операций с плавающей точкой. Для получения решениязадачи наименьших квадратов при известном QR-разложениитребуется только O(mn) арифметических операций.

Пусть при реальных вычислениях на компьютере в резуль-тате ошибок округления вместо Q получена матрица Q + ∆Q.

Page 23: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 75

Можно показать [4], что

(Q + ∆Q)T · (Q + ∆Q) = E + ∆E,

где ‖∆E‖2 . εM.Можно показать [13], что при при наличии ошибок округле-

ния вычисленное по методу Хаусхолдера решение x+∆x задачиmin ‖Ax− b‖2 является точным решением «близкой» задачи

min ‖(A + ∆A)x− (b + ∆b)‖2,

где

‖∆A‖F ≤ (6m− 3n + 41)nεM‖A‖F + O(ε2M),

‖∆b‖2 ≤ (6m− 3n + 40)nεM‖b‖2 + O(ε2M).

(41)

Как мы видим, относительная ошибка эквивалентного возму-щения пропорциональна умеренному кратному числа εM. Ис-пользуя теорию возмущений из раздела 3.2, получаем, что прималой невязке относительная ошибка решения задачи наимень-ших квадратов примерно пропорциональна εM cond2 A, а прибольшой невязке — εM cond2

2 A.На выходе диагональ и верхняя треугольная часть матри-

цы A содержат элементы матрицы R. Матрица Q представле-на элементами ниже диагонали и вектором t. Вектор t имеетдлину n. Матрица Q определяется произведением матриц от-ражений Хаусхолдера.

3.4.3. Вращения Гивенса

Вращением Гивенса, или просто вращением, называется мат-рица

R =

(cos θ − sin θ

sin θ cos θ

).

Page 24: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

76ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Умножению матрицы R на вектор x можно дать следующуюгеометрическую интерпретацию: вектор Rx получается враще-нием вектора x на угол θ. Вращение n-мерного пространства вплоскости xi, xj определяет матрица

R =

0BBBBBBBBBBBBBBBBBBBBBBBBB@

1

. . .

1

cos θ − sin θ

1

. . .

1

sin θ cos θ

1

. . .

1

1CCCCCCCCCCCCCCCCCCCCCCCCCA

j

i

Очевидно, что матрица вращения ортогональна.Если

cos θ =xj√

x2i + x2

j

, sin θ = − xi√x2

i + x2j

,

то (cos θ − sin θ

sin θ cos θ

(xj

xi

)=

√x2

i + x2j

0

.

Таким образом, с помощью домножения слева вектора x наматрицу вращения R можно занулить одну (i-ю) компоненту.Заметим, что при этом все компоненты, кроме i-й и j-й, неизменяются.

Алгоритм QR-разложения на основе вращений аналогиченалгоритму, использующему отражения, с тем отличием, что

Page 25: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 77

элементы матрицы A при обработке j-го столбца в нем зануля-ются по одному (для определенности, например, сверху вниз).

Чтобы перейти, например, от матрицыf11 f12 f13

0 f22 f23

0 f32 f33

0 f42 f43

к матрице

g11 g12 g13

0 g22 g23

0 0 g33

0 0 g43

,

производим умножения:1 0 0 0

0 c −s 0

0 s c 0

0 0 0 1

f11 f12 f13

0 f22 f23

0 f32 f33

0 f42 f43

=

f11 f12 f13

0 f ′22 f ′23

0 0 f ′33

0 f42 f43

,

1 0 0 0

0 c′ 0 −s′

0 0 1 0

0 s′ 0 c′

f11 f12 f13

0 f ′22 f ′23

0 0 f ′33

0 f42 f43

=

f11 f12 f13

0 f ′′22 f ′′23

0 0 f ′33

0 0 f ′′43

.

Для хранения элементов найденного разложения дополни-тельная память не нужна. Информация о матрице вращения,с помощью которой мы занулили соответствующий элемент,хранится на его месте.

Для этого применяют следующий метод [5]. Пусть s = sin θ,c = cos θ. Если |s| < |c|, то в память записывается число s ·sign(c), в противном случае записывается sign(s)/c.

По хранимому значению p восстановление чисел s и c осу-ществляется следующим образом. Если |p| < 1, то s = p иc =

√1− s2, в противном случае c = 1/p и s =

√1− c2. Заме-

тим, что вместо исходных s, c мы можем восстановить −s, −c,но для наших целей приемлема и такая пара.

Page 26: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

78ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Метод вращений в два полтора раза медленнее метода от-ражений. Существует метод быстрых вращений [4], который,все-таки, медленнее метода отражений.

Обратный анализ ошибок для метода Гивенса решения за-дачи наименьших квадратов приводит к оценкам, аналогич-ным (41) [4]. Относительная ошибка эквивалентного возмуще-ния пропорциональна умеренному кратному числа εM.

3.5. QR-разложение в библиотеке NL

Метод QR-разложения на основе отражений Хаусхолдерареализован в функции qr decomp. После того как разложениенайдено, для решения квадратной совместной системы линей-ных уравнений необходимо воспользоваться функцией qr solve.Приведем пример.

Листинг xqr.c/*

Пример использования функций из модуля qr.hРешение системы линейных уравнений Ax = bс помощью QR-разложения,

A =

0.1 0.5 0.6

0.2 0.7 0.9

0.3 1.1 1.3

, b =

1.2

1.8

2.7

.

*/

#include “nl.h”

int main(){

double **A, *b, *t ;nl index n = 3;

Page 27: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.5. QR-РАЗЛОЖЕНИЕ В БИБЛИОТЕКЕ NL 79

A = nl dmatrix create(n, n);b = nl dvector create(n);t = nl dvector create(n);

A[0][0] = .1; A[0][1] = .5; A[0][2] = .6; b[0] = 1.2;A[1][0] = .2; A[1][1] = .7; A[1][2] = .9; b[1] = 1.8;A[2][0] = .3; A[2][1] = 1.1; A[2][2] = 1.3; b[2] = 2.7;

printf (“Матрица A:\n”);nl dmatrix print(A, n, n, NULL);

qr decomp(A, n, n, t);

printf (“\nQR-разложение:\n”);nl dmatrix print(A, n, n, NULL);

printf (“\nВектор t:\n”);nl dvector print(t, n, NULL);

printf (“\nВектор b:\n”);nl dvector print(b, n, NULL);

qr solve (A, n, t, b);

printf (“\nРешение системы Ax = b:\n”);nl dvector print(b, n, NULL);

nl dmatrix free(A, n);nl dvector free(b);nl dvector free(t);

return 0;}

Page 28: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

80ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Результаты работы программы:

Матрица A:0.100 0.500 0.6000.200 0.700 0.9000.300 1.100 1.300

QR−разложение:−0.374 −1.390 −1.6840.422 0.136 0.1470.633 0.410 0.059

Вектор t:1.267 1.712 2.000

Вектор b:1.200 1.800 2.700

Решение системы Ax = b:1.000 1.000 1.000

Для решения задачи наименьших квадратов необходимо вос-пользоваться функцией qr least squares. Приведем пример.

Листинг xqrls.c/*

Пример использования функций из модуля qr.hРешение задачи наименьших квадратов с помощьюQR-разложения

A =

1 5 1

2 6 10

3 7 11

4 8 12

, b =

1

1

1

2

Page 29: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.5. QR-РАЗЛОЖЕНИЕ В БИБЛИОТЕКЕ NL 81

*/

#include “nl.h”

int main(){

double **A, *b, *t, *r ;nl index m = 4;nl index n = 3;

A = nl dmatrix create(m, n);b = nl dvector create(m);t = nl dvector create(n);r = nl dvector create(m);

A[0][0] = 1; A[0][1] = 5; A[0][2] = 1; b[0] = 1;A[1][0] = 2; A[1][1] = 6; A[1][2] = 10; b[1] = 1;A[2][0] = 3; A[2][1] = 7; A[2][2] = 11; b[2] = 1;A[3][0] = 4; A[3][1] = 8; A[3][2] = 12; b[3] = 2;

printf (“Матрица A:\n”);nl dmatrix print(A, m, n, NULL);

qr decomp(A, m, n, t);

printf (“\nQR-разложение:\n”);nl dmatrix print(A, m, n, NULL);

printf (“\nВектор t:\n”);nl dvector print(t, n, NULL);

printf (“\nВектор b:\n”);nl dvector print(b, m, NULL);

Page 30: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

82ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

qr least squares (A, m, n, t, b, r);

printf (“\nПсевдорешение системы Ax = b:\n”);nl dvector print(b, n, NULL);

printf (“\nНевязки:\n”);nl dvector print(r, m, NULL);

nl dmatrix free(A, m);nl dvector free(b);nl dvector free(t);nl dvector free(r);

return 0;}

Результаты работы программы:

Матрица A:1.000 5.000 1.0002.000 6.000 10.0003.000 7.000 11.0004.000 8.000 12.000

QR−разложение:−5.477 −12.780 −18.6230.309 −3.266 0.0000.463 −0.327 −4.3820.618 −0.789 0.395

Вектор t:1.183 1.156 1.730

Page 31: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.6. СИНГУЛЯРНОЕ РАЗЛОЖЕНИЕ (SVD ) 83

Вектор b:1.000 1.000 1.000 2.000

Псевдорешение системы Ax = b:0.458 0.125 −0.083

Невязки:−0.000 −0.167 0.333 −0.167

Подробное описание используемых функций см. в документа-ции [33].

3.6. Сингулярное разложение (SVD )

Рассмотрим матрицу A размера m × n, где m ≥ n. Можнодоказать, что существуют матрицы U размера m×n, V размераn× n и Σ размера n× n, такие, что

A = UΣV T, (42)

UTU = E, V TV = E и Σ = diag(σ1, . . . , σn), где σ1 ≥ · · · ≥σn ≥ 0. Разложение (42) называется сингулярным разложени-ем3 (SVD ). Столбцы u1, . . . , un матрицы U называются левы-ми сингулярными векторами, cтолбцы v1, . . . , vn матрицы V— правыми сингулярными векторами, величины σ1, . . . , σn —сингулярными числами. Заметим, что каждая из двух систем:левых сингулярных векторов и правых сингулярных векторов— ортонормирована. Из (42) следует A =

∑ni=1 σiuiv

Ti .

3Иногда сингулярным разложением называют представление матрицыA в виде произведения A = eU eΣeV T, в котором обе матрицы eU и eV —квадратные ортогональные порядка m и n соответственно. Чтобы такоеразложение получить по разложению (42), достаточно столбцы матрицыU дополнить до ортонормированной системы m векторов, из построенныхстолбцов составить матрицу S и положить eU = (U, S), eΣ = Σ, eV = V .Обратный переход осуществляется отбрасыванием в eU последних m − nстолбцов.

Page 32: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

84ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

При m < n необходимо рассматривать сингулярное разло-жение матрицы AT.

Нетрудно доказать следующие важные свойства сингуляр-ного разложения:

1) Справедливо cond2 A = σ1/σn. Если матрица A — квад-ратная, то ‖A‖2 = σ1. Если A — квадратная и невырож-денная, то ‖A−1‖2 = 1/σn.

2) Если σ1 ≥ · · · ≥ σr > σr+1 = · · · = σn = 0, то rank A = r.

3) λj(ATA) = σ2j , причем столбцы матрицы V образуют ор-

тонормированную систему из собственных векторов мат-рицы ATA.

4) Если rank A = n, то (единственное) псевдорешение систе-мы Ax = b равно x = V Σ−1UTb.

Докажем свойство 4). Так как UTU = E, то столбцы мат-рицы U можно дополнить до ортонормированной системы mвекторов4. Из построенных столбцов составим матрицу S. Име-ем STU = 0. Матрица (U, S) — ортогональная, т. е. (U, S)−1 =(U, S)T, поэтому для любого вектора x имеем ‖(U, S)Tx‖2 =‖x‖2. Теперь получаем:

‖Ax− b‖22 = ‖(U, S)T(UΣV Tx− b)‖2

2 =

∥∥∥∥∥(

ΣV Tx− UTb

−STb

)∥∥∥∥∥2

2

=

= ‖ΣV Tx− UTb‖22 + ‖STb‖2

2.

Минимум достигается тогда и только тогда, когда первое сла-гаемое равно нулю, т. е. при x = V Σ−1UTb. Заметим, что приэтом

minx‖Ax− b‖2 = ‖STb‖2.

4Ср. предыдущее примечание.

Page 33: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.3. НОРМАЛЬНЫЕ УРАВНЕНИЯ 67

Величина

condLS(A, b) =2 cond2 A

cos θ+ tg θ · cond2

2 A

называется числом обусловленности для задачи наименьшихквадратов. Получаем, что

‖∆x‖2

‖x‖2≤ ε condLS(A, b) + O(ε2).

Итак, condLS(A, b) является мерой чувствительности задачи на-именьших квадратов, показывающей, как сильно решение этойзадачи зависит от возмущения входных данных.

Формулу (35) можно интерпретировать следующим обра-зом. Если угол θ мал, то condLS(A, b) ≈ 2 cond2 A, т. е. задачанаименьших квадратов обусловлена примерно так же, как изадача решения систем линейных уравнений.

Если угол θ не мал, но и не близок к π/2, то condLS(A, b) ≈cond2

2 A.Если θ ≈ π/2, т. е. задача близка к вырожденной, то величи-

на condLS(A, b) растет неограничено, даже если cond22 A имеет

умеренные значения.

3.3. Нормальные уравнения

Покажем, что множество псевдорешений системы Ax = bсовпадает с множеством решений системы

ATAx = ATb, (36)

называемой системой нормальных уравнений.Имеем

‖A(x + ∆x)− b‖22 =

(A(x + ∆x)− b

)T(A(x + ∆x)− b)

)=

= (A∆x)T(A∆x) + (Ax− b)T(Ax− b) + 2(A∆x)T(Ax− b) =

= ‖A∆x‖22 + ‖Ax− b‖2

2 + 2∆xT(ATAx−ATb).

Page 34: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

68ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Если x — псевдорешение, то ‖A∆x‖22 + 2∆xT(ATAx−ATb) ≥ 0

для любого ∆x, откуда ATAx−ATb = 0. Обратно, если ATAx =ATb, то ‖A(x + ∆x)− b‖2

2 ≥ ‖Ax− b‖22 для любого ∆x, т. е. x —

псевдорешение.Заметим, что матрица ATA — квадратная и неотрицатель-

но определенная. Система (36) всегда совместна. Она имеетединственное решение тогда и только тогда, когда псевдоре-шение исходной системы единственно. Последнее имеет местов том и только в том случае, когда столбцы матрицы A ли-нейно независимы (т. е. rank A = n). В этом (и только в этом)случае матрица ATA положительно определена и для решениясистемы (36) мы можем применить разложение Холецкого. То-гда на вычисление матричного произведения ATA требуетсяmn2 +O(n2) операций с плавающей точкой (достаточно вычис-лить только элементы над диагональю), а на решение системы(36) требуется n3/3+O(n2) операций с плавающей точкой. Таккак m ≥ n, то основная масса времени тратится на формиро-вание матрицы ATA.

Недостатком метода нормальных уравнений является пло-хая обусловленность получаемой системы. Действительно, спра-ведливо равенство cond2(ATA) = cond2

2 A. Используя резуль-таты анализа ошибок для метода Холецкого, приходим к вы-воду, что относительная ошибка получаемого решения задачинаименьших квадратов не превосходит некоторого умеренно-го кратного величины εM cond2

2 A. Следует ожидать, что прирешении нормальных уравнений с небольшой невязкой исход-ной системы будет потеряно вдвое больше разрядов, чем прииспользовании QR-разложения или сингулярного разложения.

Тем не менее использование нормальных уравнений заман-чиво при решении линейной задачи наименьших квадратов прималых значениях n: например, при n = 2 система (36) имеетразмеры 2× 2.

Page 35: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 69

3.4. QR-разложение

Можно доказать, что для произвольной (m×n)-матрицы Aранга n существуют и единственны матрицы Q размера m× nс ортонормированными столбцами (т. е. QTQ = E) и верхне-треугольная матрица R размера n×n с положительными диа-гональными элементами, такие, что

A = QR. (37)

Разложение (37) называется QR-разложением1 матрицы A.Сперва покажем, как решать линейную задачу наименьших

квадратов min ‖Ax − b‖2, если QR-разложение матрицы A из-вестно. Методы построения самого QR-разложения будут рас-смотрены позднее.

Итак, QTQ = E. Дополним столбцы матрицы Q до орто-нормированной системы m векторов2. Из построенных столб-цов составим матрицу S. Имеем STQ = 0. Матрица (Q,S) —ортогональная, т. е. (Q,S)−1 = (Q,S)T, поэтому для любоговектора x справедливо ‖(Q,S)Tx‖2 = ‖x‖2. Теперь получаем:

‖Ax− b‖22 = ‖(Q,S)T(QRx− b)‖2

2 =

∥∥∥∥∥(

QTQRx−QTb

STQRx− STb

)∥∥∥∥∥2

2

=

1Иногда QR-разложением называют представление матрицы A в видепроизведения A = eQ eR, в котором матрица eQ — квадратная ортогональнаяпорядка m, а матрица eR — верхнетреугольная размера m×n. Чтобы такоеразложение получить по разложению (37), достаточно столбцы матрицыQ дополнить до ортонормированной системы m векторов, из построенныхстолбцов составить матрицу S и положить

eQ = (Q, S), eR =

R

0

!.

Обратный переход осуществляется отбрасыванием в eQ последних m − nстолбцов, а в eR — последних m− n строк.

2Ср. предыдущее примечание.

Page 36: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

70ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

= ‖Rx−QTb‖22 + ‖STb‖2

2.

Минимум достигается тогда и только тогда, когда первое сла-гаемое равно нулю. Итак, решением линейной задачи наимень-ших квадратов является решение треугольной системы

Rx = QTb,

при этомmin

x‖Ax− b‖2 = ‖STb‖2.

Заметим, что матрица R невырождена тогда и только тогда,когда rank A = n. В этом случае x = R−1QTb.

Рассмотрим несколько методов построения QR-разложения.

3.4.1. Ортогонализация Грама–Шмидта

Процесс ортогонализации Грама–Шмидта — это класси-ческий метод построения QR-разложения. Он заключается впостроении ортонормированного базиса q1, . . . , qn подпростран-ства, натянутого на столбцы a1, . . . , an, причем

L(q1, . . . , qj) = L(a1, . . . , aj) (j = 1, 2, . . . , n). (38)

Матрица, составленная из столбцов q1, . . . , qn, — это матрицаQ. Матрица перехода от базиса q1, . . . , qn к a1, . . . , an — этоматрица R, т. е. aj =

∑ji=1 rijqi

Опишем этот алгоритм подробнее.

for j = 1, . . . , nqj = aj

for i = 1, . . . , j − 1rij = qT

i aj (∗)qj = qj − rijqi

endrjj = ‖qj‖2

Page 37: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 71

if rjj = 0exit (ai линейно зависит от a1, . . . , ai−1)

endqj = qj/rjj

end

Алгоритм использует 2mn2+O(mn) операций с плавающейточкой.

Заметим, что присваивание rij = qTi aj в строке (∗) приве-

денного алгоритма можно заменить на rij = qTi qj . Полученный

таким образом новый алгоритм (в точной арифметике экви-валентный исходному) называется модифицированным процес-сом Грама–Шмидта.

При реальных вычислениях на компьютере (при наличииошибок округления) процесс ортогонализации Грама–Шмидта(в том числе модифицированный) вместо векторов q1, q2, . . . , qn

возвратит векторы q1, q2 + ∆q2, . . . , qn + ∆qn. Например, в ре-жиме накопления

L(q1, q2 + ∆q2, . . . , qj + ∆qj) = L(a1, a2 + ∆a2, . . . , aj + ∆aj),

где ‖∆ak‖2 ≤ 2εM‖ak‖2, т. е. линейные оболочки полученныхвекторов совпадают с линейными оболочками «слабо возму-щенных» исходных векторов [2].

Итак, в отношении выполнения равенства (38) процесс ор-тогонализации Грама–Шмидта ведет себя крайне устойчиво.К сожалению, этого нельзя сказать о выполнении условия ор-тогональности полученной системы. В большинстве случаевпроцесс Грама–Шмидта приводит к значительному нарушениюортогональности. Модифицированный процесс Грама–Шмидтачуть лучше, но и он не свободен от указанного недостатка.Пусть Q + ∆Q — реально вычисленная матрица. Можно по-казать [4], что

(Q + ∆Q)T · (Q + ∆Q) = E + ∆E,

Page 38: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

72ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

где ‖∆E‖2 . εM cond2 A.Для исправления отмеченного недостатка используют пе-

реортогонализацию [2].Тем не менее, как оказалось, ортогональность столбцов мат-

рицы Q не играет решающей роли в задаче наименьших квад-ратов. Можно показать, что алгоритм решения задачи наи-меньших квадратов с помощью модифицированного процессаортогонализации Грама–Шмидта обратно устойчив и, следова-тельно может быть использован на практике [4]. В любом слу-чае, затраты в методах типа Грама–Шмидта чуть выше, чем вметоде Хаусхолдера.

3.4.2. Отражения Хаусхолдера

Метод отражений Хаусхолдера — один из самых распро-страненных методов нахождения QR-разложения.

Пусть v — n-мерный ненулевой вектор-столбец. Квадратнаяматрица P порядка n вида

P = E − 2vvT

vTv

называется отражением Хаусхолдера или просто отражени-ем. Вектор v называется вектором Хаусхолдера. Умножениюматрицы P на вектор x можно дать следующую геометриче-скую интерпретацию: вектор Px получается отражением век-тора x относительно гиперплоскости, ортогональной векторуv. Легко проверить, что матрица Хаусхолдера симметрична иортогональна.

Пусть x 6= 0. Найдем отражение P , такое, что Px = αe1 длякакого-либо α. Имеем

Px =(

E − 2vvT

vTv

)x = x− 2v(vTx)

vTv= x− 2vTx

vTvv,

и поэтому v коллинеарен x−Px = x−αe1. Так как v определен сточностью до ненулевого множителя, то можно положить v =

Page 39: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 73

x − αe1. Ввиду ортогональности матрицы P имеем ‖Px‖2 =‖x‖2, откуда α = ±‖x‖2. Поэтому

v = x± ‖x‖2e1. (39)

Итак, в качестве вектора Хаусхолдера v можно взять вектор,вычисляемый по формуле (39), или любой ненулевой, ему кол-линеарный.

С алгоритмом построения вектора Хаусхолдера связаны не-которые важные детали. Одна из них — выбор знака в фор-муле (39). Если x почти коллинеарен e1, то вектор v = x −sign(x1)‖x‖2e1 имеет малую норму. Вследствие этого возмож-но появление большой относительной ошибки при вычислениимножителя 2/vTv. Эту трудность можно обойти, взяв α с темже знаком, что и первая компонента вектора x:

v = x + sign(x1)‖x‖2e1. (40)

Это обеспечивает выполнение неравенства ‖v‖2 ≥ ‖x‖2 и гаран-тирует почти точную ортогональность вычисленной матрицыP .

Другая деталь связана с выбором множителя для вектора,вычисляемого по формуле (39). Мы будем использовать такоймножитель, что v1 = 1. Это несколько упрощает способ хране-ния ортогональных матриц, вычисленных по методу отраже-ний Хаусхолдера.

Суть алгоритма QR-разложения на основе отражений сна-чала поясним на примере. Пусть m = 5, n = 4 и матрицы P1 иP2 таковы, что

P2P1A =

f11 f12 f13 f14

0 f22 f23 f24

0 0 f33 f34

0 0 f43 f44

0 0 f53 f54

.

Page 40: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

74ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Покажем, как на месте элементов f43, f53 получить нули. Най-дем матрицу отражения P ′

3, такую, что

P ′3 ×

f33

f43

f53

=

f ′33

0

0

.

Если P3 = diag(1, 1, P ′3), то

P3P2P1A =

f11 f12 f13 f14

0 f22 f23 f24

0 0 f ′33 f ′34

0 0 0 f ′44

0 0 0 f ′54

.

Выполнив n таких шагов, получим верхнюю треугольнуюматрицу R̃ = PnPn−1 . . . P1A. Откуда, так как матрицы Pj

— ортогональные и симметричные, имеем A = Q̃R̃, где Q̃ =P1P2 . . . Pn. Пусть Q состоит из первых n столбцов матрицы Q̃,а R состоит из первых n строк матрицы R̃, тогда A = QR. Этои есть искомое разложение.

Матрицы Pj не требуется формировать в явном виде: до-статочно хранить соответствующий вектор vj , который можнозаписывать в j-й столбец матрицы A.

Для решения задачи наименьших квадратов необходимо вы-числить произведение QTb = PnPn−1 . . . P1b.

Трудоемкость алгоритма построения QR-разложения на ос-нове отражений составляет 2n2m− (2/3)n3 +O(mn) арифмети-ческих операций с плавающей точкой. Для получения решениязадачи наименьших квадратов при известном QR-разложениитребуется только O(mn) арифметических операций.

Пусть при реальных вычислениях на компьютере в резуль-тате ошибок округления вместо Q получена матрица Q + ∆Q.

Page 41: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 75

Можно показать [4], что

(Q + ∆Q)T · (Q + ∆Q) = E + ∆E,

где ‖∆E‖2 . εM.Можно показать [13], что при при наличии ошибок округле-

ния вычисленное по методу Хаусхолдера решение x+∆x задачиmin ‖Ax− b‖2 является точным решением «близкой» задачи

min ‖(A + ∆A)x− (b + ∆b)‖2,

где

‖∆A‖F ≤ (6m− 3n + 41)nεM‖A‖F + O(ε2M),

‖∆b‖2 ≤ (6m− 3n + 40)nεM‖b‖2 + O(ε2M).

(41)

Как мы видим, относительная ошибка эквивалентного возму-щения пропорциональна умеренному кратному числа εM. Ис-пользуя теорию возмущений из раздела 3.2, получаем, что прималой невязке относительная ошибка решения задачи наимень-ших квадратов примерно пропорциональна εM cond2 A, а прибольшой невязке — εM cond2

2 A.На выходе диагональ и верхняя треугольная часть матри-

цы A содержат элементы матрицы R. Матрица Q представле-на элементами ниже диагонали и вектором t. Вектор t имеетдлину n. Матрица Q определяется произведением матриц от-ражений Хаусхолдера.

3.4.3. Вращения Гивенса

Вращением Гивенса, или просто вращением, называется мат-рица

R =

(cos θ − sin θ

sin θ cos θ

).

Page 42: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

76ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Умножению матрицы R на вектор x можно дать следующуюгеометрическую интерпретацию: вектор Rx получается враще-нием вектора x на угол θ. Вращение n-мерного пространства вплоскости xi, xj определяет матрица

R =

0BBBBBBBBBBBBBBBBBBBBBBBBB@

1

. . .

1

cos θ − sin θ

1

. . .

1

sin θ cos θ

1

. . .

1

1CCCCCCCCCCCCCCCCCCCCCCCCCA

j

i

Очевидно, что матрица вращения ортогональна.Если

cos θ =xj√

x2i + x2

j

, sin θ = − xi√x2

i + x2j

,

то (cos θ − sin θ

sin θ cos θ

(xj

xi

)=

√x2

i + x2j

0

.

Таким образом, с помощью домножения слева вектора x наматрицу вращения R можно занулить одну (i-ю) компоненту.Заметим, что при этом все компоненты, кроме i-й и j-й, неизменяются.

Алгоритм QR-разложения на основе вращений аналогиченалгоритму, использующему отражения, с тем отличием, что

Page 43: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.4. QR-РАЗЛОЖЕНИЕ 77

элементы матрицы A при обработке j-го столбца в нем зануля-ются по одному (для определенности, например, сверху вниз).

Чтобы перейти, например, от матрицыf11 f12 f13

0 f22 f23

0 f32 f33

0 f42 f43

к матрице

g11 g12 g13

0 g22 g23

0 0 g33

0 0 g43

,

производим умножения:1 0 0 0

0 c −s 0

0 s c 0

0 0 0 1

f11 f12 f13

0 f22 f23

0 f32 f33

0 f42 f43

=

f11 f12 f13

0 f ′22 f ′23

0 0 f ′33

0 f42 f43

,

1 0 0 0

0 c′ 0 −s′

0 0 1 0

0 s′ 0 c′

f11 f12 f13

0 f ′22 f ′23

0 0 f ′33

0 f42 f43

=

f11 f12 f13

0 f ′′22 f ′′23

0 0 f ′33

0 0 f ′′43

.

Для хранения элементов найденного разложения дополни-тельная память не нужна. Информация о матрице вращения,с помощью которой мы занулили соответствующий элемент,хранится на его месте.

Для этого применяют следующий метод [5]. Пусть s = sin θ,c = cos θ. Если |s| < |c|, то в память записывается число s ·sign(c), в противном случае записывается sign(s)/c.

По хранимому значению p восстановление чисел s и c осу-ществляется следующим образом. Если |p| < 1, то s = p иc =

√1− s2, в противном случае c = 1/p и s =

√1− c2. Заме-

тим, что вместо исходных s, c мы можем восстановить −s, −c,но для наших целей приемлема и такая пара.

Page 44: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

78ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Метод вращений в два полтора раза медленнее метода от-ражений. Существует метод быстрых вращений [4], который,все-таки, медленнее метода отражений.

Обратный анализ ошибок для метода Гивенса решения за-дачи наименьших квадратов приводит к оценкам, аналогич-ным (41) [4]. Относительная ошибка эквивалентного возмуще-ния пропорциональна умеренному кратному числа εM.

3.5. QR-разложение в библиотеке NL

Метод QR-разложения на основе отражений Хаусхолдерареализован в функции qr decomp. После того как разложениенайдено, для решения квадратной совместной системы линей-ных уравнений необходимо воспользоваться функцией qr solve.Приведем пример.

Листинг xqr.c/*

Пример использования функций из модуля qr.hРешение системы линейных уравнений Ax = bс помощью QR-разложения,

A =

0.1 0.5 0.6

0.2 0.7 0.9

0.3 1.1 1.3

, b =

1.2

1.8

2.7

.

*/

#include “nl.h”

int main(){

double **A, *b, *t ;nl index n = 3;

Page 45: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.5. QR-РАЗЛОЖЕНИЕ В БИБЛИОТЕКЕ NL 79

A = nl dmatrix create(n, n);b = nl dvector create(n);t = nl dvector create(n);

A[0][0] = .1; A[0][1] = .5; A[0][2] = .6; b[0] = 1.2;A[1][0] = .2; A[1][1] = .7; A[1][2] = .9; b[1] = 1.8;A[2][0] = .3; A[2][1] = 1.1; A[2][2] = 1.3; b[2] = 2.7;

printf (“Матрица A:\n”);nl dmatrix print(A, n, n, NULL);

qr decomp(A, n, n, t);

printf (“\nQR-разложение:\n”);nl dmatrix print(A, n, n, NULL);

printf (“\nВектор t:\n”);nl dvector print(t, n, NULL);

printf (“\nВектор b:\n”);nl dvector print(b, n, NULL);

qr solve (A, n, t, b);

printf (“\nРешение системы Ax = b:\n”);nl dvector print(b, n, NULL);

nl dmatrix free(A, n);nl dvector free(b);nl dvector free(t);

return 0;}

Page 46: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

80ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

Результаты работы программы:

Матрица A:0.100 0.500 0.6000.200 0.700 0.9000.300 1.100 1.300

QR−разложение:−0.374 −1.390 −1.6840.422 0.136 0.1470.633 0.410 0.059

Вектор t:1.267 1.712 2.000

Вектор b:1.200 1.800 2.700

Решение системы Ax = b:1.000 1.000 1.000

Для решения задачи наименьших квадратов необходимо вос-пользоваться функцией qr least squares. Приведем пример.

Листинг xqrls.c/*

Пример использования функций из модуля qr.hРешение задачи наименьших квадратов с помощьюQR-разложения

A =

1 5 1

2 6 10

3 7 11

4 8 12

, b =

1

1

1

2

Page 47: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.5. QR-РАЗЛОЖЕНИЕ В БИБЛИОТЕКЕ NL 81

*/

#include “nl.h”

int main(){

double **A, *b, *t, *r ;nl index m = 4;nl index n = 3;

A = nl dmatrix create(m, n);b = nl dvector create(m);t = nl dvector create(n);r = nl dvector create(m);

A[0][0] = 1; A[0][1] = 5; A[0][2] = 1; b[0] = 1;A[1][0] = 2; A[1][1] = 6; A[1][2] = 10; b[1] = 1;A[2][0] = 3; A[2][1] = 7; A[2][2] = 11; b[2] = 1;A[3][0] = 4; A[3][1] = 8; A[3][2] = 12; b[3] = 2;

printf (“Матрица A:\n”);nl dmatrix print(A, m, n, NULL);

qr decomp(A, m, n, t);

printf (“\nQR-разложение:\n”);nl dmatrix print(A, m, n, NULL);

printf (“\nВектор t:\n”);nl dvector print(t, n, NULL);

printf (“\nВектор b:\n”);nl dvector print(b, m, NULL);

Page 48: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

82ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

qr least squares (A, m, n, t, b, r);

printf (“\nПсевдорешение системы Ax = b:\n”);nl dvector print(b, n, NULL);

printf (“\nНевязки:\n”);nl dvector print(r, m, NULL);

nl dmatrix free(A, m);nl dvector free(b);nl dvector free(t);nl dvector free(r);

return 0;}

Результаты работы программы:

Матрица A:1.000 5.000 1.0002.000 6.000 10.0003.000 7.000 11.0004.000 8.000 12.000

QR−разложение:−5.477 −12.780 −18.6230.309 −3.266 0.0000.463 −0.327 −4.3820.618 −0.789 0.395

Вектор t:1.183 1.156 1.730

Page 49: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

3.6. СИНГУЛЯРНОЕ РАЗЛОЖЕНИЕ (SVD ) 83

Вектор b:1.000 1.000 1.000 2.000

Псевдорешение системы Ax = b:0.458 0.125 −0.083

Невязки:−0.000 −0.167 0.333 −0.167

Подробное описание используемых функций см. в документа-ции [33].

3.6. Сингулярное разложение (SVD )

Рассмотрим матрицу A размера m × n, где m ≥ n. Можнодоказать, что существуют матрицы U размера m×n, V размераn× n и Σ размера n× n, такие, что

A = UΣV T, (42)

UTU = E, V TV = E и Σ = diag(σ1, . . . , σn), где σ1 ≥ · · · ≥σn ≥ 0. Разложение (42) называется сингулярным разложени-ем3 (SVD ). Столбцы u1, . . . , un матрицы U называются левы-ми сингулярными векторами, cтолбцы v1, . . . , vn матрицы V— правыми сингулярными векторами, величины σ1, . . . , σn —сингулярными числами. Заметим, что каждая из двух систем:левых сингулярных векторов и правых сингулярных векторов— ортонормирована. Из (42) следует A =

∑ni=1 σiuiv

Ti .

3Иногда сингулярным разложением называют представление матрицыA в виде произведения A = eU eΣeV T, в котором обе матрицы eU и eV —квадратные ортогональные порядка m и n соответственно. Чтобы такоеразложение получить по разложению (42), достаточно столбцы матрицыU дополнить до ортонормированной системы m векторов, из построенныхстолбцов составить матрицу S и положить eU = (U, S), eΣ = Σ, eV = V .Обратный переход осуществляется отбрасыванием в eU последних m − nстолбцов.

Page 50: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

84ГЛАВА 3. ЛИНЕЙНАЯ ЗАДАЧА НАИМЕНЬШИХ КВАДРАТОВ

При m < n необходимо рассматривать сингулярное разло-жение матрицы AT.

Нетрудно доказать следующие важные свойства сингуляр-ного разложения:

1) Справедливо cond2 A = σ1/σn. Если матрица A — квад-ратная, то ‖A‖2 = σ1. Если A — квадратная и невырож-денная, то ‖A−1‖2 = 1/σn.

2) Если σ1 ≥ · · · ≥ σr > σr+1 = · · · = σn = 0, то rank A = r.

3) λj(ATA) = σ2j , причем столбцы матрицы V образуют ор-

тонормированную систему из собственных векторов мат-рицы ATA.

4) Если rank A = n, то (единственное) псевдорешение систе-мы Ax = b равно x = V Σ−1UTb.

Докажем свойство 4). Так как UTU = E, то столбцы мат-рицы U можно дополнить до ортонормированной системы mвекторов4. Из построенных столбцов составим матрицу S. Име-ем STU = 0. Матрица (U, S) — ортогональная, т. е. (U, S)−1 =(U, S)T, поэтому для любого вектора x имеем ‖(U, S)Tx‖2 =‖x‖2. Теперь получаем:

‖Ax− b‖22 = ‖(U, S)T(UΣV Tx− b)‖2

2 =

∥∥∥∥∥(

ΣV Tx− UTb

−STb

)∥∥∥∥∥2

2

=

= ‖ΣV Tx− UTb‖22 + ‖STb‖2

2.

Минимум достигается тогда и только тогда, когда первое сла-гаемое равно нулю, т. е. при x = V Σ−1UTb. Заметим, что приэтом

minx‖Ax− b‖2 = ‖STb‖2.

4Ср. предыдущее примечание.

Page 51: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Литература

Числа в квадратных скобках, приведенные в конце описания каж-дого источника, указывают на страницы настоящего издания, накоторых имеются соответствующие ссылки. Начиная с номера [24],приводятся Интернет-адреса библиотек численных методов.

1. Богачев К.Ю. Практикум на ЭВМ. Методы решения линей-ных систем и нахождения собственных значений. — М.: Изд-вомеханико-математического ф-та Моск. ун-та, 1998. [8]

2. Воеводин В.В. Вычислительные основы линейной алгебры. — М.:Наука, 1977. [8, 17, 33, 42, 71, 72]

3. Воеводин В.В., Кузнецов Ю.А. Матрицы и вычисления. — М.:Наука, 1984. [8]

4. Голуб Дж., Ван Лоун Ч. Матричные вычисления. — М.: Мир,1999. [8, 33, 52, 66, 71, 72, 75, 78, 86, 87, 88, 118, 122, 127, 129, 130]

5. Деммель Дж. Вычислительная линейная алгебра. Теория и при-ложения. — М.: Мир, 2001. [8, 17, 19, 33, 49, 50, 51, 52, 53, 66, 77, 87,118, 119, 121, 122, 123, 127, 129]

6. Джордж А., Лю Дж. Численное решение больших разрежен-ных систем уравнений. — М.: Мир, 1984. [94, 105, 174, 175]

7. Златев З., Эстербю О. Прямые методы для разреженных мат-риц. — М.: Мир, 1987. [94]

8. Икрамов Х.Д. Численные методы для симметричных линейныхсистем. — М.: Наука, 1988. [61]

9. Ильин В.П. Методы неполной факторизации для решения ли-нейных систем. — М.: Физматлит, 1995. [176]

10. Каханер Д., Моулер К., Нэш С. Численные методы и программ-ное обеспечение. — М.: Мир, 1999. [8, 50, 52]

Page 52: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

258 ЛИТЕРАТУРА

11. Кетков Ю.Л., Кетков А.Ю., Шульц М.М. Matlab 6.x.: про-граммирование численных методов. — СПб.: БХВ–Петербург,2004. [142]

12. Кнут Д. Искусство программирования для ЭВМ. Том 1: Основ-ные алгоритмы. — М.: Мир, 1973. [95]

13. Лоусон Ч., Хенсон Р. Численное решение задач метода наимень-ших квадратов. — М.: Наука, 1986. [66, 75, 86]

14. Мартынов Н.Н. Введение в Matlab 6.x. — М.: Кудиц-образ,2002. [142]

15. Писсанецки С. Технология разреженных матриц. — М.: Мир,1988. [94, 99, 103, 105, 174, 175]

16. Самарский А.А., Гулин А.В. Численные методы. — М.: Наука,1989. [118, 120, 140]

17. Форсайт Дж., Малькольм М., Моулер К. Машинные методыматематических вычислений. — М.: Мир, 1980. [8, 90]

18. Anderson E., Bai Z., Bischof C., Blackford S., Demmel J.,Dongarra J., Du Croz J., Greenbaum A., Hammarling S.,McKenney A., Sorensen D. LAPACK Users’ Guide. Third Edition.— Philadelphia: SIAM, 1999. [8, 184]

19. Barrett R., Berry M., Chan T.F., Demmel J., Donato J.,Dongarra J., Eijkhout V., Pozo R., Romine C., Van der Vorst H.Templates for the Solution of Linear Systems: Building Blocks forIterative Methods. — Philadelphia: SIAM, 1994. [118, 127, 129, 134,136]

20. IEEE Standard for Binary Floating-point Arithmetic: ANSY/IEEEstd 754-1985. — 1985. Опубликован также в SIGPLAN Notices. —1987. — 22 (2). — P. 9–25. [22]

21. Heath M.T. Scientific Computing, An Introductory Survey. — NewYork: McGraw-Hill, 2002. [8, 252]

22. Press W.H., Teukolsky S.A., Vetterling W.T., Flannery B. P.Numerical Recipes in C. The Art of Scientific Computing. —Cambridge: Cambridge University Press, 1992. [8]

Page 53: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

ЛИТЕРАТУРА 259

23. Using Matlab. Version 7.0. — The MathWorks Inc., 2004. [8, 142]

24. Библиотека численного анализа НИВЦ МГУhttp://www.srcc.msu.su/num anal/lib na/libnal.htm [7, 257]

25. Automatically Tuned Linear Algebra Software (ATLAS)http://math−atlas.sourceforge.net/ [185]

26. BLAS (Basic Linear Algebra Subprograms)http://www.netlib.org/blas/ [185]

27. CLAPACK (f2c’ed version of LAPACK)http://www.netlib.org/clapack/ [230]

28. GSL — GNU Scientific Libraryhttp://www.gnu.org/software/gsl/ [7]

29. Intel Math Kernel Libraryhttp://www.intel.com/software/products/mkl/ [185]

30. LAPACK — Linear Algebra PACKagehttp://www.netlib.org/lapack/ [184, 228]

31. NAG Numerical Libraries http://www.nag.com/ [7]

32. Netlib Repository at UTK and ORNLhttp://www.netlib.org/ [7]

33. NL. Библиотека численных методов линейной алгебрыhttp://www.uic.nnov.ru/˜zny/nl/ [28, 29, 31, 57, 63, 83, 93, 100, 109, 112,117, 126, 133, 139]

Page 54: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Предметный указатель

ATLAS, 185

band.h, 29band decomp, 114band solve, 114band tridiag , 111BERR, 19, 198BLAS, 7, 185

chol.h, 29chol decomp, 61chol solve, 61CLAPACK, 7, 230CR(C)O, 98, 169CR(C)U, 98

DGBSV , 210DGELS , 216DGELSS , 223DGESV , 188, 235dgesv , 235DGESVX , 192DGTSV , 206DPOSV , 202

EISPACK, 7, 141, 184

FERR, 18, 197

gallery.h, 29GSL, 7

IEEE 754, 19, 20, 22, 242

LAPACK, 7, 141, 184, 228LDLT-разложение, 57, 105

исключение по столбцу (kij), 57

компактная схема (jik), 60LINPACK, 7, 141, 184lu.h, 29LU -разложение, 36, 44, 159, 188, 192

kji-, ikj-, jki- варианты, 41исключение по столбцу (kij), 38исключение по строке (ijk), 39компактная схема (jik), 40неполное, 135, 176стратегия полного выбора, 44стратегия частичного выбора,

43lu decomp, 54, 114lu solve, 54

Matlab, 7, 141MKL, 185

NAG, 7NL, 7, 28, 54, 61, 78, 90, 99, 106, 111,

114, 123, 131, 136nl.h, 29

QL-разложение, 217qr.h, 29QR-разложение, 69, 161, 217qr least squares, 80qr decomp, 78qr solve, 78qsort.h, 29

RR(C)O, 95RR(C)U, 95RR(U)O, 98RR(U)U, 99

SOR, см. метод релаксации

260

Page 55: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 261

sparse.h, 29sp chol num, 106sp chol symb, 106sp conj , 136sp conj sym, 131sp gauss seidel , 123SVD, см. сингулярное разложениеsvd.h, 29svd correct , 90svd decomp, 90svd least squares, 90

util.h, 29

xband.c, 114xchol.c, 61xlu.c, 54xqr.c, 78xqrls.c, 80xsparse.c, 100xspbicnj.c, 136xspchol.c, 106xspconjs.c, 131xspseid.c, 123xsvd.c, 90xtridiag.c, 111

Алгоритм обратно устойчивый, 27Анализ

ошибокобратный, 27прямой, 25

чувствительности, 26Апостериорная оценка, 18Аппроксимация, 64Арифметика

с округлением, 20с отбрасыванием, 20

База, 19

Ведущий элемент, 35

Вращение Гивенса, 75быстрое, 78

Главный элемент, см. ведущий эле-мент

Задача наименьших квадратов, 85линейная, 64

неполного ранга, 86Заполнение, 103

Итерационное уточнение, 52

Компьютер двоичный, 19IEEE-арифметика, 22

Круг Гершгорина, 240

Мантисса, 19Масштабирование, 54Матрица

вращения Гивенса, см. враще-ние Гивенса

ленточная, 112, 210компактная схема хранения,

113трехдиагональная, 109

ортогональная, 69отражения Хаусхолдера, см. от-

ражение Хаусхолдераплохо обусловленная, 18псевдообратная, 89, 167разреженная, 94трехдиагональная, 206

Матрица-перестановка, 43Машинное эпсилон, 21, 145Метод

бисопряженных градиентов, 134,182

с предобусловливанием, 136вращений Гивенса, 75

быстрых вращений, 78Гаусса, 33

Page 56: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

262 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

без выбора ведущего элемен-та, 33

обратный ход, 36прямой ход, 34

Гаусса–Зейделя, 122с параметром релаксации, см.

метод релаксацииЖордана–Гаусса, 247итерационный, 118

нестационарный, 118стационарный, 118

Катхилл–Макки, обратный, 105,174

Краута–Дулитла, см. LU -разло-жение, компактная схема

минимальной степени, 105, 174минимальных невязок, 139наискорейшего спуска, 140отражений Хаусхолдера, 72прогонки, 110простой итерации, 119прямой, 33, 118регуляризации, 249релаксации, 122сопряженных градиентов, 126,

179с предобусловливанием, 128,

180Холецкого (квадратного корня),

60, 105Якоби, 121

Множители Гаусса, 34, 35

Наддиагональ, 113Невязка, 18Норма, 12

евклидова, 12кольцевая, см. норма матрич-

наяманхеттенская, 12матричная, 13

манхеттенская, 13спектральная, 13фробениусова (евклидова), 14чебышева, 13

подчиненная, 13чебышева, 12

Нормальные уравнения, 67Нормы согласованные, 13

Овал Кассини, 240Ортогонализация Грама–Шмидта, 70

модифицированная, 71Отношение Релея, 256Отражение Хаусхолдера, 72Оценщик обусловленности, 51

Хэйджера, 51, 166Оценщик Хэйджера, 244Ошибка

абсолютная, 17, 25обратная, 27

покомпонентная, см. BERRотносительная, 17, 25

Переортогонализация, 72Переупорядочение, 104

оптимальное, 105Поддиагональ, 113Подстановка

обратная, 36, 105прямая, 36, 105

Показатель, 19Портрет матрицы, 96Потеря значимости, 20Предобусловливание, 128, 135, 180Пространство нормированное, 12Псевдорешение, 64

нормальное, 87

РазложениеLDLT, см. LDLT-разложениеLU , см. LU -разложение

Page 57: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 263

QL, см. QL-разложениеQR, см. QR-разложениесимволическое, 105сингулярное, см. сингулярное раз-

ложениеХолецкого, 57, 59, 68, 105, 160,

202исключение по столбцу (kij),

59неполное, 130, 178

численное, 105Разряд, 19Регуляризованная система, 249Режим накопления, 42

Сингулярное разложение, 83, 87, 163,223

Система линейных уравненийнедоопределенная, 254определенная, 33переопределенная, 64

Спектральный радиус, 119, 240Сходимость

линейная, 119сверхлинейная, 131со скоростью геометрической про-

грессии, см. сходимость ли-нейная

Теория возмущений, см. анализ чув-ствительности

Уравновешивание, см. масштабиро-вание

Факторизация, см. разложениенеполная, 130, 135, 176полная, 176

Флоп, 28

Числодвойной точности, 25

ненормализованное, 20нормализованное, 20обусловленности, 14, 26, 165

абсолютное, 26для задачи наименьших квад-

ратов, 67относительное, 26относительное покомпонент-

ное, 19спектральное, 66

одинарной точности, 22с плавающей точкой, 19сингулярное, 83

Эквивалентное возмущение, 27

Page 58: ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫzny/nl/BookSomePages.pdf · На сегодняшний день объем информации в области мето-дов

Сергей Александрович Белов,Николай Юрьевич Золотых

Численные методылинейной алгебры

Лабораторный практикум

Формат 60×84 1/16 . Бумага офсетная. Печать офсетная.Уч.-изд. л. 11,9. Усл. печ. л. 13,6. Тираж 300 экз. Заказ

Издательство Нижегородского госуниверситетаим.Н.И.Лобачевского,

603950, Н.Новгород, пр. Гагарина, 23.

Типография ННГУ, 603000, Н.Новгород, ул. Б.Покровская, 37.Лицензия ПД №18–0099 от 04.05.2001.