/
Author: Уоткинс Д.
Tags: алгебра математика линейная алгебра численные методы естественные науки
ISBN: 5-94774-349-3
Year: 2006
Text
Д. Уоткинс
Основы
матричных
вычислений
rjJAJrJVJjW
Основы
матричных вычислений
Fundamentals of
Matrix Computations
Second Edition
David S. Watkins
1^7 INTERSCIENCE
A JOHN WILEY & SONS, INC., PUBLICATION
Д. Уоткинс
Основы
матричных
вычислений
Перевод
со второго английского издания
В. Е. Кондрашова и С. Б. Королёва
Москва
БИНОМ. Лаборатория знаний
2006
УДК 512
ББК 22.143
У 62
Уоткинс Д. С.
У62 Основы матричных вычислений / Д. Уоткинс; Пер. с
англ. - М.: БИНОМ. Лаборатория знаний, 2006. — 664 с.: ил.
ISBN 5-94774-349-3 (русск.)
ISBN 0-471-21394-2 (англ.)
Излагаются следующие аспекты матричных вычислений: гауссово ис-
ключение, чувствительность линейных систем, метод наименьших квадра-
тов, сингулярное разложение, собственные значения и собственные векто-
ры, итерационные методы для линейных систем. Приводятся многочис-
ленные примеры и упражнения с использованием пакета MATLAB, а так-
же ряд упражнений на Фортране.
Дтя студентов, аспирантов, преподавателей, математиков, инженеров
и специалистов по информатике и информационным технологиям, а так-
же по тем областям знаний, где используются численные методы.
УДК 512
ББК 22.143
Учебное издание
Уоткинс Дэвид С.
ОСНОВЫ МАТРИЧНЫХ ВЫЧИСЛЕНИЙ
Ведущий редактор И. Маховая
Редактор А. Попов
Художественный редактор О. Лапко
Верстка В. Верхозин
Подписано в печать 28.02.2006. Формат 70x100 х/Jo
Гарнитура NewtonC. Бумага офсетная. Печать офсетная
Усл. печ. л. 53,95. Тираж 1500 экз. Заказ .№ 1535
ООО «БИНОМ. Лаборатория знаний»
Адрес для переписки: Москва, проезд Аэропорта, д. 3
Телефон (495) 157-1902, 157-5272,
e-mail: Lbz@aha.ru, http://www.Lbz.ru
При участии ООО «ПФ «Сашко»
Отпечатано в полном соответствии с качеством предоставленных
диапозитивов в ОАО «ИПК «Ульяновский Дом печати»
432980, г. Ульяновск, ул. Гончарова, 14
ISBN 5-94774-349-3 (русск.)
ISBN 0-471-21394-2 (англ.)
© 2002 by John Wiley & Sons, Inc., New York. All Rights
Reserved. Authorized translation from the English
Language edition published by John Wiley & Sons, Inc.
© Перевод на русский язык, оформление, БИНОМ.
Лаборатория знаний, 2006
От переводчиков
Прикладная линейная алгебра - это наука о вычислениях с матрицами, вы-
полняемых на ЭВМ, так что ее история укладывается в последние 50 лет. Не-
смотря на такой небольшой период времени, здесь были достигнуты очень
большие успехи, которым способствовали как обилие интересных и важных
практических задач, так и быстро расширяющиеся технические возможности
для их решения. Предмет этой книги является фундаментом всей вычислитель-
ной математики и в то же время он пока видится весьма сложным как в теорети-
ческом, так и в прикладном плане. Теоретически он труден потому, что в нем
теперь используются весьма тонкие математические методы, а практически —
потому, что быстро усложняются алгоритмы, особенно в связи с необходимо-
стью распараллеливать вычисления на все большее число процессоров.
Хорошие учебники всегда появляются позже тех основных результатов, ко-
торые в них излагаются, поскольку создание подобных учебников бывает не ме-
нее трудным, чем развитие самой науки. Тем важнее появление такой книги,
если она относится к быстро развивающейся отрасли знания, нужной многим
специалистам. Сегодня прикладная линейная алгебра - одна из таких отраслей.
Большинство сколько-нибудь заметных зарубежных руководств по ней всегда
переводилось на русский язык (см. список литературы). Особенность данной
книги состоит в ее высоком педагогическом уровне, которого автор сумел дос-
тичь при изложении этого трудного раздела без снижения уровня научного. Не
только оригинальная последовательность изложения основных идей, но и тща-
тельно подобранная система упражнений помогают освоить как теоретический,
так и практический аспекты предмета. Более подробно о книге можно узнать из
предисловия автора, а также из оглавления. Надеемся, что она надолго привле-
чет внимание тех студентов, преподавателей и специалистов, которым прихо-
дится так или иначе сталкиваться с задачами прикладной линейной алгебры.
При переводе были исправлены замеченные нами (и неизбежные в таких
изданиях) погрешности, а также те ошибки, которые указал сам автор на сво-
ем сайте уже после выхода второго издания.
Мы весьма признательны директору ИСС Минатома РФ академику
В.Н. Михайлову за поддержку этой работы, а также И.А. Маховой (изд-во
БИНОМ) и А.С. Попову (изд-во МИР), немало содействовавшим опубликова-
нию данного перевода.
В.Е. Кондрашов
С. Б. Королев
Предисловие
Эта книга была написана для студентов старших курсов, аспирантов и
опытных специалистов по математике, информатике, инженерным дисципли-
нам и вообще по всем тем отраслям знания, в которых используются различ-
ные численные методы. В основе большинства научных применений компью-
теров лежат матричные вычисления, так что важно понимать, как правильно и
эффективно выполнять такие вычисления. Книга идет навстречу такой по-
требности, давая детальное введение в основные идеи вычислительной линей-
ной алгебры.
Необходимый предварительный объем знаний — это первоначальный
курс по линейной алгебре и некоторый опыт компьютерного программиро-
вания. Для понимания студентом некоторых примеров, особенно во второй
половине книги, полезно пройти начальный курс дифференциальных урав-
нений.
Есть несколько других превосходных книг по данному предмету, таких, как
книги Деммеля [15], Голуба и Ван Лоуна [33] и Трефтена и Бау [71]. Студенты,
не знакомые с этим предметом, часто находят их весьма трудными для чтения.
Цель настоящего руководства состоит в том, чтобы дать простое, более посте-
пенное введение в предмет, не теряя при этом математической строгости.
Весьма положительная реакция студентов на первое издание убедила меня в
успехе моей первой попытки и побудила к созданию обновленного и расши-
ренного варианта.
Первое издание было предназначено главным образом для студентов стар-
ших курсов. Однако случилось так, что специалисты оценили книгу гораздо
выше, чем просто учебник. Поэтому я добавил новый материал, чтобы сделать
книгу более привлекательной и для студентов младших курсов. Эти дополне-
ния детализированы ниже. Однако текст остается подходящим и для старше-
курсников, поскольку элементарный материал остался в значительной степе-
ни нетронутым, а число простых упражнений было увеличено. Преподаватель
может регулировать уровень трудности, решая, какие разделы и как глубоко
должны быть проработаны. Многочисленные более трудные темы вынесены в
упражнения в конце каждого раздела.
Книга содержит много упражнений от легких до умеренно трудных. Пер-
вые вкраплены в текст, вторые собраны в конце каждого раздела. Предполага-
ется, что расположенные в тексте будут сразу прорабатываться читателем. Это
Предисловие
7
мой путь активного вовлечения студентов в процесс изучения. Чтобы что-то
получить, вы должны что-то вложить. Многие из упражнений в конце разде-
лов своими размерами могут поначалу насторожить читателя. Однако настой-
чивый студент найдет, что он может решить их с помощью обстоятельных под-
сказок и указаний. Я убедительно рекомендую каждому студенту проработать
как можно больше упражнений.
Нумерация
Почти для всех нумерованных объектов в этой книге, включая теоремы,
леммы, пронумерованные формулы, примеры и упражнения, использована
единая схема нумерации. Так, например, первым пронумерованным объектом
разд. 1.3 является теорема 1.3.1. Далее идут два уравнения (1.3.2) и (1.3.3) соот-
ветственно. За ними следует первое упражнение раздела с номером 1.3.4. Та-
ким образом однозначно определяется номер каждого объекта: например,
единственный объект в книге, который имеет номер 1.3.4 — это упражнение
1.3.4. Хотя эта схема необычна, я полагаю, что большинство читателей найдет
ее совершенно естественной, как только они начнут пользоваться ею. Ее боль-
шое преимущество состоит в том, что она облегчает процесс поиска: читатель,
нашедший упражнения 1.4.15 и 1.4.25, но ищущий пример 1.4.20, знает навер-
няка, что искомый пример находится где-то между этими двумя упражнения-
ми. Есть два исключения из этой схемы. По техническим причинам, связан-
ным с типографским набором текста, таблицы и рисунки (так называемые
плавающие объекты) нумеруются отдельно по главам. Например, третий рису-
нок главы 1 обозначается как рис. 1.3.
Новое во втором издании
использование MATLAB‘A
К настоящему времени MATLAB1 по общему признанию является наибо-
лее широко используемым средством обучения матричным вычислениям.
MATLAB — удобный язык очень высокого уровня, который позволяет студен-
ту выполнять гораздо более сложные вычислительные эксперименты, чем пре-
жде. MATLAB также широко применяется в промышленности. Поэтому я до-
бавил много примеров и упражнений, которые используют MATLAB. Однако
эта книга - не введение в MATLAB и не руководство по MATLAB’y. Для этих
целей есть другие доступные издания, например, «Руководство по MATLAB’y»
Хигэмов (D.I. Higham, N.I. Higham) [40]. Но справочная система MATLAB’a
настолько хороша, что в действительности читателю не нужны никакие допол-
нительные пособия. Чтобы облегчить студенту использование MATLAB’a при
1 MATLAB - зарегистрированная торговая марка MathWorks Inc. (http://www.mathworks.com).
8
Предисловие
чтении этой книги, я включил указатель терминов MATLAB’a отдельно от об-
щего указателя.
Раньше я просил моих студентов писать и отлаживать их собственные
программы на Фортране. Упражнения на Фортране из первого издания я
оставил в значительной степени без изменений. Надеюсь, что часть студен-
тов захочет проработать некоторые из этих заслуживающих внимания уп-
ражнений.
Другие приложения
Чтобы помочь студенту лучше понять важность предмета этой книги, я
включил большое количество примеров и упражнений прикладного характера
(решаемых с помощью MATLAB’a) главным образом в началах глав. Я выбрал
очень простые приложения: электрические цепи, маятниковые системы, про-
стые дифференциальные уравнения в частных производных. По моему мне-
нию, именно из самых простых примеров мы можем узнать больше всего.
Более раннее введение сингулярного разложения
(Singular Value Decomposition - SVD)
SVD - один из наиболее важных инструментов вычислительной линейной
алгебры. В первом издании оно было помещено в заключительную главу кни-
ги, поскольку невозможно обсуждать методы вычисления SVD до обсуждения
проблемы собственных значений. Но с тех пор я решил, что SVD должно быть
введено раньше, чтобы и студент мог раньше узнать о его свойствах и исполь-
зовании. С помощью MATLAB’a он может экспериментировать с SVD, не за-
думываясь о том, как оно вычисляется. Поэтому я добавил краткую главу об
SVD в середине книги.
Новый материал по итерационным методам
Самое большое добавление к книге — глава по итерационным методам ре-
шения больших разреженных систем линейных уравнений. Главное здесь -
это эффективный метод сопряженных градиентов для решения симметричных
положительно определенных систем. Но там обсуждаются как классические
итерации, так и предобуславливатели. Кратко рассмотрены методы крылов-
ского подпространства для решения незнакоопределенных и несимметричных
задач.
Есть также два новых раздела о методах решения задачи на собственные
значения больших разреженных матриц. Обсуждение включает получившие
Предисловие
9
широкое признание неявно перезапускаемый метод Арнольди и метод Яко-
би-Дэвидсона.
Надеюсь, что именно эти дополнения сделают книгу более привлекатель-
ной для специалистов.
Другие новинки
Чтобы сделать книгу более полной, добавлено несколько других тем, а
именно:
• обратный анализ ошибок гауссова исключения, а также обсуждение совре-
менного покомпонентного анализа ошибок;
• обсуждение перенормировки при ортогонализации — практического спосо-
ба получения численно ортогональных векторов;
• обсуждение того, как обновить ©Л-разложение, когда строка или столбец
добавляются или удаляются из матрицы данных, как это происходит при
обработке сигналов и анализе данных;
• раздел, где представляются новые методы решения симметричной задачи
на собственные значения, разработанные после выхода первого издания.
Было опущено несколько тем на том основании, что они стали устаревши-
ми или слишком специализированными. Я использовал возможность испра-
вить несколько досадных ошибок первого издания. Надеюсь, что при этом не
допустил слишком много новых.
Благодарности
Я в великом долгу перед авторами некоторых ранних работ в данной об-
ласти знания. В их числе А. С. Хаусхолдер [43], Дж. Уилкинсон [81],
Дж. Э. Форсайт и К. Б. Моулер [24], Дж. У. Стьюарт [67], Ч. Л. Лоусон и
Р. Дж. Хенсон [48], Б. Н. Парлетт [54], А. Джордж и Д. Лю [30], а также ав-
торы Справочника [83], Руководства по EISPACK [64] и Руководства для
пользователей по UNPACK [18]. Все они оказали сильное влияние на меня.
Кстати, каждую из этих книг стоит прочитать и сегодня. Особая благодар-
ность Кливу Моулеру за изобретение MATLAB’a, изменившего сам характер
численных экспериментов.
Большая часть первого издания была написана, когда я находился в отпус-
ке в Университете Билфилда, Германия. Мне доставляет удовольствие еще раз
поблагодарить пригласившего меня туда давнего друга Людвига Элснера. В те-
чение моего пребывания там я получал финансовую поддержку от комиссии
Фулбрайта. Большой фрагмент второго издания также был написан в Герма-
нии, в Техническом Университете Хемнитца. Я благодарен за это пригласив-
шему меня туда другому давнему другу Волкеру Мерманну. Во время этого ви-
зита я получал финансовую поддержку Отдела специальных исследований 393
ТУ Хемнитца. Я также в долгу перед моим родным институтом — Университе-
том штата Вашингтон - за его поддержку моей работы над обоими изданиями.
Еще раз благодарю профессоров Дейла Олески, Кэмбла Йетса и Тжаллинга
Ипма, проверивших на семинарских занятиях предварительную версию пер-
вого издания. После первого издания множество читателей прислали мне по-
правки, отзывы и комментарии. В их числе А. Клайн, Л. Диеси, Е. Джессуп,
Д. Койа, Д. Д. Олески, Б. Н. Парлетт, А. К. Рейнес, А. Витт и К. Райт. И, на-
конец, я благодарен многим студентам, помогавшим мне освоить методику из-
ложения этого материала на протяжении многих лет.
Дэвид С. Уоткинс
Пулман, Вашингтон, январь 2002
Гауссово исключение
и его варианты
Одна из наиболее часто встречающихся задач во всех областях научных ис-
следований состоит в решении системы п линейных уравнений с п неизвестны-
ми. Например, в разд. 1.2 мы увидим, как посредством решения систем линей-
ных уравнений рассчитываются напряжения и токи в электрических цепях, ана-
лизируются простые системы с упругими деформациями и численно решаются
дифференциальные уравнения. Главная цель этой главы заключается в исследо-
вании применения гауссова исключения при решении таких систем. Мы уви-
дим, что есть много способов реализовать этот фундаментальный алгоритм.
1.1. Умножение матриц
Прежде чем начать изучение способов решения линейных систем, рассмот-
рим несколько простейших вычислений с матрицами. По ходу дела мы рас-
смотрим часть основных вопросов, которые будут возникать на протяжении
всей книги. Среди них способы подсчета числа операций (числа флопов) при
оценке сложности алгоритма, использование блочных матриц и операции над
ними, а также демонстрация большого разнообразия способов организации
простых матричных вычислений.
Умножение матрицы на вектор
Из множества матричных операций наиболее фундаментальной, которую
нельзя назвать полностью тривиальной, является умножение матрицы на век-
тор. Рассмотрим п х ди-матрицу, т. е. прямоугольную таблицу с п строками и т
столбцами
а\{ а{2 ••• а\т
а2\ а\2 а2т
Рп\ ^п2 ^пт
12
Глава 1. Гауссово исключение и его варианты
Элементы матрицы А могут быть вещественными или комплексными чис-
лами. Предположим пока, что они вещественные. Для заданного наборах из т
вещественных чисел
х =
xi
х2
можно ввести операцию умножения А на х, чтобы получить произведение b =
Ах, где Ь — набор из п чисел. Его /-я компонента дается выражением
ъ. = а,{хх + аахг + ... + а1тхт = . (1.1.1)
Другими словами, /-я компонента ветктора b получается как внутреннее
(скалярное) произведение z-й строки матрицы А на х.
Пример 1.1.2. Умножим матрицу на вектор при п = 2 и т = 3:
1 2 3
4 5 6
'7'
8
9
50
122
поскольку 1х7 + 2х8 + Зх9 = 50и4х7 + 5х8 + 6х9 = 122. □
Программный код, выполняющий матрично-векторное умножение, мог бы
выглядеть подобно следующему:
/><-0
for i = 1,..., п
for j = 1,..., т
[bi^bi+avxj
(1.1.3)
Здесь цикл по j накапливает внутреннее произведение Ь..
Возможна и другая интерпретация матрично-векторного умножения, которая
оказывается весьма полезной. Взгляните еще раз на (1.1.1), но теперь рассматри-
вайте это выражение как формулу для всего вектора Ь, а не его отдельных компо-
нент. Другими словами, возьмите выражение (1.1.1), которое в действительности
есть п равенств для Ь{, Ь2, Ьп, и объедеините их в одно векторное равенство
А'
А.
(1-1.4)
Это показывает, что b есть линейная комбинация столбцов матрицы А.
1.1. Умножение матриц
13
Пример 1.1.5. Для условий примера 1.1.2 будем иметь
50
122
1
4
7 + 8 +
9.
□
Утверждение 1.1.6. Если b = Ах, то b является линейной комбинацией столб-
цов матрицы А.
Если через Aj обозначить j-й столбец матрицы А, то
т
ь = •
/=1
Записывая это в виде машинного псевдокода, получим
/><-0
for j = 1,..., т
[b <—b + AjXj
Если каждую векторную операцию представить в виде цикла, то псевдокод
примет вид
Z><-0
for j = 1,..., т
for Z = 1,...,л
[b, <-b,,+a^
(1.1.7)
Заметьте, что (1.1.7) идентично (1.1.3), за исключением перестановки цик-
лов. Эти алгоритмы выполняют точно одни и те же действия, но в разной по-
следовательности. Назовем (1.1.3) матрично-векторным умножением по стро-
кам, потому что при этом А выбирается по строкам. В противоположность это-
му (1.1.7) есть матрично-векторное умножение по столбцам.
Подсчет числа флопов
Вещественные числа в компьютере обычно записываются в формате с пла-
вающей точкой. Арифметические операции, выполняемые над этими числами
компьютером, называются операциями с плавающей точкой или коротко фло-
пами (flops - floating-point operations). Присвоение <- А, + а^ требует выпол-
нения двух флопов — одного умножения и одного сложения с плавающей точ-
кой.1
Запуская программу, мы каждый раз задаемся вопросом: сколько времени
потребуется для се выполнения? Если приходится работать с большими мат-
1 Арифметика с плавающей точкой будет обсуждаться в разд. 2.5.
14
Глава 1. Гауссово исключение и его варианты
рицами, скажем, размеров 1000 х 1000, то времени может потребоваться мно-
го. Традиционный способ оценки времени работы программы состоит в под-
счете числа флопов, которые должен выполнить при этом компьютер. Под-
считаем число флопов, выполняемых при матрично-векторном умножении.
Из (1.1.7) мы видим, что если А есть п х w-матрица, то внешний цикл будет
выполняться т раз. При каждом его проходе внутренний цикл выполняется п
раз. Каждое выполнение внутреннего цикла требует двух флопов. Поэтому
полное число флопов, выполняемых алгоритмом, равно 2пт. Здесь очень лег-
ко подсчитать число флопов. Для более сложных алгоритмов может оказаться
полезным следующий прием. Заменим каждый цикл символом суммирования
Е. Так как внутренний цикл выполняется для i = 1, ...,п и за каждый его проход
выполняется два флопа, то общее количество флопов, выполненных при каж-
п
дом проходе внутреннего цикла, равно 2. Так как внешний цикл выполня-
/=1
ется для j = 1, ..., т, то общее число флопов равно
т п т
ЕЕ2 = Z2n =2пт-
,=|i=i j=i
Подсчет флопов дает примерное представление о том, как долго будет вы-
полняться алгоритм. Предположим, что мы выполнили алгоритм, например,
для матрицы размеров 300 х 400 и отметили, сколько потребовалось времени.
Если мы теперь захотим выполнить его для матрицы размеров 600 х 400, то
должны ожидать, что на это потребуется вдвое больше времени, так как мы уд-
воили п, не меняя при этом т, и таким образом удвоили число флопов, став-
шее равным 2пт.
Квадратные матрицы часто появляются в приложениях. Если А имеет раз-
меры п х «, то число флопов при матрично-векторном умножении равно 2п2.
Если мы выполним матрично-векторное умножение, скажем, на 500 х 500-
матрицу, то можем ожидать, что то же самое действие для матрицы 1000 х 1000
будет выполняться приблизительно в четыре раза дольше, поскольку в этом
случае удвоение п учетверит число флопов.
Умножение п х «-матрицы на вектор - пример того, что называют О(«2)-
процессом или процессом порядка п2. Это означает только то, что необходи-
мый объем работы пропорционален п2. Такое обозначение используется, что-
бы подчеркнуть зависимость от п и ослабить роль постоянного множителя в
пропорциональной зависимости, который в этом случае равен 2. Любой О(«2)-
процесс обладает тем свойством, что при удвоении размерности задачи объем
работы учетверяется.
Важно понимать, что число флопов дает лишь грубую оценку объема рабо-
ты при выполнении алгоритма. При этом не учитывается много других дейст-
вий, выполняемых компьютером в процессе работы алгоритма. Наиболее важ-
ные из них — выборка из памяти данных, необходимых для выполнения опе-
раций, и запись результатов в память после выполнения этих операций. На
многих компьютерах операции доступа к памяти производятся медленнее
1.1, Умножение матриц
15
операций с плавающей точкой, так что это делает более осмысленным подсчет
числа обращений к памяти, а не числа флопов. Подсчет флопов полезен, одна-
ко, потому что дает нам также грубую оценку использования памяти. Для каж-
дой операции мы должны извлечь операнды из памяти, а после каждой опера-
ции записать результат в память. Это очень грубое упрощение того, что в дей-
ствительности происходит в современных компьютерах. На скорость
выполнения алгоритма может сильно влиять то, как организовано использова-
ние памяти. Мы еще поговорим об этом в конце раздела. Тем не менее число
флопов дает первую полезную оценку времени выполнения алгоритма, и мы
обязательно будем его подсчитывать.
Упражнение 1.1.8. Начнем знакомиться с MATLAB’om. Войдите в систему
машины, на которой установлен MATLAB, и запустите его. В командной стро-
ке MATLAB’a наберите А = randn (3 z 4)1, чтобы сгенерировать матрицу раз-
меров 3 х 4 со случайными элементами, имеющими стандартное нормальное
распределение. Чтобы больше узнать о команде randn, выполните help
randn. Теперь выполните х = randn (4 r 1), чтобы получить вектор (матрицу
размеров 4x1) случайных чисел. Для умножения А на х и записи результата в
новый вектор b выполните b = А*х.
Чтобы MATLAB сохранял стенограмму ваших действий, выполните ко-
манду diary on. Это позволит сохранить файл, называемый diary, в ко-
тором содержится запись о вашем MATLAB-сеансе. Позже вы сможете
подредактировать этот файл, распечатать его, показать его вашему препо-
давателю и т.п. Чтобы больше узнать о команде diary, выполните help
diary.
Другими полезными командами являются help и help help. Чтобы уви-
деть демонстрацию возможностей MATLAB’a, выполните demo. □
Упражнение 1.1.9. Рассмотрим следующую простую MATLAB-программу:
п = 200;
for jay = 1:4
if jay > 1
oldtime = time;
end
A = randn (n);
x = randn(n,1) ;
t = cputime;
b = A*x;
matrixsize = n
time = cputime - t
if jay > 1
ratio = time/oldtime
end
n = 2*n;
end
1 И нажмите клавишу Enter, что приведет к выполнению набранных в строке инструк-
ций. -Прим. пер.
16
Глава 1. Гауссово исключение и его варианты
Синтаксис довольно прост, так что вы можете легко понять, что делает
программа. Команды randn и b = А*х знакомы из предыдущего упражне-
ния. Функция cputime говорит, сколько компьютерного (центрального про-
цессорного устройства) времени занял текущий MATLAB-сеанс. Эта програм-
ма оценивает время выполнения матрично-векторного умножения для квад-
ратной матрицы А размера 200, 400, 800 и 1600.
Запишите эту программу как файл с именем matvectime.m. На самом деле
можно назвать ее, как вам нравится, надо лишь обязательно использовать рас-
ширение .т. (MATLAB-программы называются m-файлами (m-files). Теперь
запустите MATLAB и выполните matvectime (без .т), чтобы выполнить про-
грамму. В зависимости от быстродействия вашего компьютера для этого мо-
жет потребоваться изменить размер матрицы или число выполнений j ау-цик-
ла. Если компьютер быстрый и имеет довольно грубые часы, программа может
сказать, что время выполнения равно нулю, в зависимости от размера матри-
цы, с которой вы работаете.
MATLAB позволяет выводить на экран результаты всех операций. Но вы
можете запретить этот вывод, заканчивая операцию точкой с запятой (semi-
colon). Глядя на программу, мы видим, что A, х, t и Ь не выводились, а
matrixsize, time и ratio выводились.
Обратите внимание на значения ratio. Близки ли они к ожидаемым вами,
исходя из подсчета флопов? □
Упражнение 1.1.10. Напишите MATLAB-программу, выполняющую мат-
рично-векторное умножение двумя различными способами: (а) используя
встроенную MATLAB-команду b = А*х и (Ь) используя циклы, как показано
ниже:
for j = l:n
for i = l:n
b (i) = A(i, j)*x(j);
end
end
Определите время выполнения этих алгоритмов для матриц разных разме-
ров. Какой метод быстрее? (Вы можете использовать часть кода из упражне-
ния 1.1.9.) □
Упражнение 1.1.11. Напишите программу на Фортране или С, выполняю-
щую матрично-векторное умножение, используя циклы. Какова ее скорость в
сравнении с программой на MATLAB’e? □
Умножение матрицы на матрицу
Если А есть п х ^-матрица, а X есть т х р-матрица, то можно построить
произведение В = АХ размеров п х р. Элемент (Z, J) матрицы В равен
т
bij =
(1.1.12)
1.1. Умножение матриц
17
Другими словами, элемент (/, J) матрицы В равен скалярному произведе-
нию /-й строки А на j-й столбец X, Для р = 1 эта операция переходит в матрич-
но-векторное умножение. Если р > 1, матрично-матричное умножение сводит-
ся к р матрично-векторным умножениям:у-й столбец матрицы В есть произве-
дение А на у-й столбец матрицы X.
Программа умножения А на X может выглядеть следующим образом:
В<-0
for i =1,п
"for у = 1,...,/?
Ffor к = 1,...,/и
L <-bij+aikxkj
(1.1.13)
Решение расположить /-цикл внеу-цикла было произвольным. В действи-
тельности порядок выполнения присвоений Ьи <- Ьи + aikxkj несуществен,
так что три цикла можно вкладывать друг в друга в любом порядке. Имеется
шесть основных вариантов алгоритма матрично-матричного умножения. Все
они, в принципе, эквивалентны. На практике, на данном компьютере некото-
рые из вариантов могут выполняться быстрее других в зависимости от порядка
выборки данных.
Нетрудно подсчитать число флопов при матрично-матричном умножении.
Так как во внутреннем цикле в (1.1.13) имеется ± два флопа, общее число фло-
пов равно
п р т
Е i Z2 = 2птр
/=1 >1 к=\
В важном случае, когда все матрицы квадратные размеров п х п, число
флопов равно 2л3. Таким образом, умножение квадратных матриц являет-
ся операцией порядка О(п3). Эта функция растет довольно быстро с рос-
том п — при удвоении п число флопов умножается на 8. (Но это неполная
картина. См. замечания о быстром матричном умножении в конце этого
раздела.)
Упражнение 1.1.14. Внесем изменения в MATLAB-код упражнения 1.1.9,
заменив матрично-векторное умножение b = А*х на матрично-матричное
в = А*х, где X имеет размеры п х п. Вы можете при желании уменьшить раз-
мерность исходной матрицы п. Выполните код и проверьте отношения вре-
мен. Близки ли они к ожидаемым вами значениям на основе подсчета числа
флопов? □
Блочные матрицы и операции с ними
Идея разбиения матриц на блоки проста, но плодотворна. Это полезный
инструмент при доказательстве теорем, написании алгоритмов и разработке их
18
Глава 1. Гауссово исключение и его варианты
более быстрых вариантов. Мы будем использовать блочные матрицы снова и
снова на протяжении всей книги.
Рассмотрим матричное произведение АХ = В, где матрицы имеют размеры
п *т, тхрипкр соответственно. Предположим, что мы разбили А на блоки
следующим образом:
тх т2
А=П}
п2
пх + п2 = п,
тх + т2 = т.
Метки пх, п2, тх и т2 указывают на то, что блоки Л/?- имеют размерности
п, х т,. Можно разбить X подобным же образом:
Р\ Р2
т\ ^11^12
т2 _^2\^22
тх +т2 = т,
рх +р2=р.
(1.1.16)
Числа тх пт2 те же, что и в (1.1.15). Тогда, кпримеру, число строк в Хх2 рав-
но числу столбцов в Ахх и Л21. Продолжая в том же духе, разделим В так:
В =
"2
Pl Р2
П\ ^11^12
П2 .^21^22 _
пх + п2 =п,
рх + р2=р.
(1.1.17)
(1.1.15)
Разбиение В по строкам такое же, как у Л, а разбиение по столбцам, как у Д'.
Произведение АХ = В можно записать в виде
^11^12
.^21^22
/^21^22
^11^12
^21^22
(1.1.18)
Мы знаем, что В связана с Л и ^формулой (1.1.12), но как блоки В связаны
с блоками Ли ХР Мы ожидаем, что блоки можно перемножить так, как будто
это числа. Например, мы надеемся, что АххХхх + АХ2Х2Х = Вхх. Теорема 1.1.19 ут-
верждает, что так оно и есть.
Теорема 1.1.19. Пусть А, X и В соответственно разбиты на блоки, как в
(1.1.15), (1.1.16) и (1.1.17). В этом случае АХ = В тогда и только тогда, когда
AiXXXj + Ai2X2J - Btj, i, j - 1, 2.
Вы можете легко убедиться в справедливости теоремы 1.1.19. Это следует
почти немедленно из определения матричного умножения. Мы пропустим
утомительное, но рутинное упражнение по выписыванию деталей доказатель-
ства. Вы найдете полезным следующее упражнение.
7.7. Умножение матриц
19
Упражнение 1.1.20. Рассмотрим матрицы А, X и В, разбитые, как указано
ниже:
Так, например, Л12 = и 4 = [-1]. Покажите, что АХ= В и AiXX{j + AaX2j
= при = 1, 2. L1 lJ □
Если вы усвоили теорему 1.1.19, то у вас не должно возникнуть трудностей
со следующим обобщением. Сделайте более сложное разбиение строк матри-
цы Л на г блоков и ее столбцов на s блоков:
тх ... ms
»l Н11 ••• Als
А= !
«г Ап •••
п{ + ...+пг =п9
т{ + ... + т5 = т.
(1.1.21)
Тогда разбиение У должно быть согласовано с А, т. е. структура блоков строк
матрицы X должна быть идентична структуре блоков столбцов матрицы А
X
Рх ... Pt
тх ... X xt
ms ••• Xst
mx + ... + ms = m,
Pj + ... + P, =p.
(1.1.22)
Теперь разбиение произведения В примет вид
Рх... Pt
пх Вп ... Ви
в=\ \ ;
ПГ[ВгХ -Brt
пх + ...+пг = п,
Рх + ... + А =р.
(1.1.23)
Теорема 1.1.24. Пусть А, X и В соответственно разделены на блоки, как в
(1.1.21), (1.1.22) и (1.1.23). В этом случае В = АХ тогда и только тогда, когда
Вц = AlkXkJ, z= 1, r,j= 1, .... t.
£ = l
Упражнение 1.1.25. Приведите разбиение матрично-векторного произведе-
ния Ах = Ь, которое показывало бы, что b есть линейная комбинация столб-
цов матрицы А. □
20
Глава 1. Гауссово исключение и его варианты
Использование операций с блочными матрицами
для сокращения пересылок данных
Пусть нужно умножить А на X, чтобы получить В. Для простоты предполо-
жим, что матрицы квадратные, размеров п х л, хотя обсуждаемая идея примени-
ма и к прямоугольным матрицам. Далее предположим, что А может быть разби-
та на 5 строк блоков и 5 столбцов блоков, где каждый блок имеет размеры г х г.
Тогда п = rs. Разобьем X и В согласованно с А. Снова для простоты предпо-
ложим, что все блоки одного размера. (На практике желательно, чтобы почти
все блоки были приблизительно квадратными и почти все приблизительно од-
ного размера.) Запишем блочный псевдокод для случая (1.1.13):
В<-0
for Z = 1,...,S
ГОГ j = 1, ..., 5
for k = 1, ..., 5
[[^<-^+/1,,^.
(1.1.26)
Компьютерная программа, основанная на этой схеме, будет неоднократно
выполнять следующие операции: выборку блоков Aik, XkJ и Btj, умножение Alk на
Xkj и прибавление результата к В1Р используя нечто вроде (1.1.13), и затем со-
хранение Ву.
Изменение размеров блока не влияет на полное число флопов, которое все-
гда будет равно 2л3, но тем не менее это может существенно повлиять на вы-
полнение алгоритма в зависимости от способа обработки данных. Каждый
компьютер имеет иерархию памяти. Так было всегда, хотя детали со временем
изменялись. В настоящее время типичный компьютер имеет небольшое число
регистров, небольшой, быстрый кэш, намного большую медленную главную
память и еще большую и медленную внешнюю память различного вида (на-
пример, диски и ленты). Перед выполнением операций данные, хранящиеся в
главной памяти, должны сначала быть помещены в кэш, а затем на регистры.
Пересылка из главной памяти в кэш происходит намного медленнее пересыл-
ки из кэша на регистры, которая в свою очередь медленнее скорости, с кото-
рой компьютер может выполнять арифметику. Если мы сможем заслать в кэш
целые массивы А, X и В, далее выполнить с ними все операции, затем пере-
слать результат В назад, в главную память, то можно ожидать, что работа будет
сделана намного быстрее, чем при многократной пересылке данных туда и
сюда. Действительно, если можно переслать каждый из массивов в кэш, общее
количество пересылок данных между медленной и быстрой памятью будет
около 4л2, тогда как общее число флопов равно 2л3. Таким образом, отноше-
7.7. Умножение матриц
21
ние арифметики к обменам с памятью равно -п флопов на одну пересылку
данных, откуда следует, что относительная важность пересылок данных
уменьшается с ростом п. К сожалению, пока для больших п величины кэша не
хватает, чтобы содержать матрицы целиком. Именно тогда становится выгод-
ным выполнять матрично-матричное умножение поблочно.
Прежде чем перейти к обсуждению разбиения на блоки, посмотрим, что
произойдет, если мы не будем использовать блоки. Предположим, что кэш
достаточно велик, чтобы вместить два матричных столбца или строки. Для вы-
числения элемента Ьь требуется z-я строка из А и j-и столбец из X. Время, тре-
буемое для их записи в кэш, пропорционально 2п, числу единиц данных. Как
только они записаны в быструю память, можно сразу выполнить 2п флопов.
Если теперь мы хотим вычислить biJ+ ь можно оставить 7-ю строку из Я в кэше,
но нужно записать туда (j + 1)-й столбец из X, так что время задержки будет
пропорционально п. Теперь можно выполнить 2п флопов, чтобы получить biJ +
р Отношение числа флопов арифметики к числу пересылок данных будет при-
близительно равно 2. Другими словами, число пересылок между главной па-
мятью и кэшем пропорционально числу выполненных арифметических опера-
ций. Это сильно ограничивает быстродействие. Имеется много способов пре-
образовать матрично-матричный алгоритм умножения (1.1.13) без разбиения
на блоки, но все они подвержены тому же ограничению.
Теперь посмотрим, как можно улучшить ситуацию, используя блоки. Пред-
положим, что мы выполняем алгоритм (1.1.26), используя блоки размера г, дос-
таточно малого, чтобы три блока Aik, Хц и Во уместились в кэше одновременно.
Время, необходимое для пересылки этих блоков из главной памяти в кэш, про-
порционально Зг2, числу единиц данных. Как только они оказались в быстрой
памяти, 2г3 флопов, требующихся для матрично-матричного умножения, могут
быть выполнены относительно быстро. Число флопов на единицу данных равно
2
-г, и это говорит о том, что можно максимизировать отношение арифметики к
пересылкам данных, делая г настолько большим, насколько позволяет ограни-
2
ченис, что три блока должны находиться в кэше одновременно. Отношение -г
может быть улучшено разумным обращением с блоком Bip но главным является
то, что отношение арифметики к пересылкам данных равно О(г). Чем больше
блоки, тем менее значимыми становятся пересылки данных. Причина этого
просто в том, что О(Р) флопов производятся над О(Р) единицами данных.
Отметим также, что иногда встречаются многопроцессорные компьютеры,
позволяющие работать с блоками параллельно. Использование блоков упро-
щает организацию параллельных вычислений. Это также помогает преодолеть
узкие места, связанные с обменом данными между процессорами. И здесь вы-
года происходит из того факта, что О(Р) флопов производятся над О(г2) едини-
цами данных.
Многие из алгоритмов, которые будут рассматриваться в этой книге, могут,
как мы увидим, быть преобразованы в блочные. Общедоступная библиотека
подпрограмм по линейной алгебре LAPACK [1] использует блочные алгорит-
мы везде, где только можно.
22
Глава 1. Гауссово исключение и его варианты
Быстрое матричное умножение
Если мы перемножаем две п х «-матрицы, используя определение (1.1.12),
требуется 2«3 флопов. В 1969 г. В. Штрассен (V. Strasseп) [68] поразил вычисли-
тельный мир, предложив метод, который может сделать эту работу посредст-
вом O(«s) флопов, где s - log27 « 2.81. Так как 2.81 < 3, метод Штрассена быст-
рее обычных алгоритмов для достаточно больших п. Проверка показала, что
метод Штрассена может быть быстрее даже для «, близких к 100. Однако, так
как 2.81 лишь немного меньше 3, п должно быть весьма большим, чтобы метод
Штрассена побеждал с большим преимуществом. Его точность — также про-
блема. Метод Штрассена пока не оказал большого влияния, но в будущем это
может измениться.
Можно найти еще «более быстрые» методы. В последнем достижении
Копперсмита и Винограда можно перемножить две п х «-матрицы посред-
ством О(п2 376) флопов. Но здесь есть ловушка. Когда мы пишем О(п2 376), то
подразумеваем, что имеется константа С такая, что алгоритм использует
не более С«2 376 флопов. Для этого алгоритма константа С настолько вели-
ка, что не побеждает метод Штрассена, пока « не станет просто огром-
ным.
Хороший обзор быстрых методов матричного умножения сделал Хигэм
(Higham) [41].
1.2. Системы линейных уравнений
В предыдущем разделе мы обсуждали задачу умножения матрицы А на век-
тор х, чтобы получить вектор Ь. В научных расчетах важнее решать обратную
задачу, когда даны А (« х «-матрица) и Ь, а требуется найти х. Другими слова-
ми, нужно найти такое х, чтобы Ах - Ь. Это задача решения системы « линей-
ных уравнений с « неизвестными.
Вы несомненно уже имеете некоторый опыт решения систем линейных
уравнений. Начнем этот раздел с краткого напоминания некоторых основ-
ных теоретических фактов. Рассмотрим несколько простых примеров, кото-
рые напомнят вам, как появляются линейные системы в научных исследова-
ниях.
Невырожденность и единственность решений
Рассмотрим систему « линейных уравнений с « неизвестными
auxx+a{2x2+...+ainxn =b{,
а21Х1 +а22Х2 + +а2пХп ~^2> (1.2.1)
«„i*i +^„2Х2 + -+атхп =Ьп-
1.2. Системы линейных уравнений
23
Здесь заданы коэффициенты atJ и bt и нужно найти ..., хп) которые удов-
летворяют уравнениям. В большинстве приложений коэффициенты — это ве-
щественные числа, так что ищется вещественное решение. Поэтому ограни-
чим наше внимание вещественными системами. Однако все, что при этом бу-
дет делаться, можно перенести на поле комплексных чисел. (В некоторых
ситуациях потребуются небольшие отступления. Они будут рассмотрены в
упражнениях.)
Так как утомительно выписывать (1.2.1) снова и снова, обычно предпочи-
тают писать единственное матричное уравнение
Ах = Ь, (1.2.2)
где
Здесь А и b заданы и требуется решить систему относительно х. А - квад-
ратная матрица, она имеет п строк и п столбцов.
Уравнение (1.2.2) имеет единственное решение тогда и только тогда, когда
его матрица невырожденна. Теорема 1.2.3 суммирует ряд простых свойств не-
вырожденности; которыми мы будем пользоваться в этой книге.
Для начала вспомним стандартную терминологию. Единичная п х п-матри-
ца обозначается через /. Это единственная матрица, для которой Al = IA = А
при всех A g йях ”. Единичная матрица имеет единицы на своей главной диа-
гонали и нули на остальных местах. Например, такая 3 х 3-матрица имеет вид
1 О
1= О
О
О
1
1
О
О
Пусть дана матрица А, и если имеется такая матрица В, что АВ = BA = I, то
В называется, обратной и обозначается как А~1. Не каждая матрица имеет об-
ратную.
Теорема 1.2.3. Пусть А — квадратная матрица. Следующие шесть условий эк-
вивалентны, т. е. если любое из них выполнено, то выполняются они все.
(а) А 1 существует.
(Ь) Не существует отличного от нуля у такого, что Ау = 0.
(с) Столбцы А линейно независимы.
(rf) Строки А линейно независимы.
(е) detM) * 0.
(/) Доя любого заданного вектора b имеется точно один такой вектор х, что
Ах = Ь.
24
Глава 1. Гауссово исключение и его варианты
(В условии (Ь) символ 0 обозначает вектор с нулевыми компонентами. В усло-
вии (е) символ О обозначает вещественное число 0. det/Д) обозначает детерми-
нант матрицы А.)
Доказательство теоремы 1.2.3 можно найти в любом элементарном учебни-
ке по линейной алгебре. Если условия теоремы 1.2.3 выполняются, то говорят,
что А невырожденна или обратима. Если условия нс выполняются, то говорят,
что А вырождена или необратима. В этом случае система (1.2.2) либо не имеет
никакого решения, либо этих решений бесконечно много. В этой главе мы со-
средоточимся на невырожденном случае.
Если А невырожденна, то единственное решение уравнения (1.2.2) в прин-
ципе может быть получено умножением обеих его частей на Л"1: из Ах = b мы
получаем А~1Ах = Л~[Ь, и так как А~[А = /, то х = А~ХЬ. Эта формула полностью ре-
шает проблему в теории, но решать ее таким методом (сначала вычисляя мат-
рицу Л-1, а затем умножая этот результат на i, чтобы получить х) - обычно пло-
хая идея. Как мы увидим, вообще более эффективно решать систему Ах = b
прямо, без вычисления Л-1. Для достаточно больших задач экономия в вычис-
лении и хранении, достигаемая за счет отказа от использования Л-1, выглядит
впечатляюще.
Ситуации, в которых действительно необходимо выполнять обращение,
весьма редки. Это не означает, что роль Л-1 несущественна - матрица Л-1 чрез-
вычайно полезна как теоретический инструмент.
Упражнение 1.2.4. Докажите, что если Л"1 существует, то не может быть ни-
какого у, отличного от нуля, для которого Ау = 0. □
Упражнение 1.2.5. Докажите, что если Л-1 существует, то ёеЦЛ) * 0. □
Теперь можно перейти к примерам.
Электрические цепи
Пример 1.2.6. Рассмотрим электрическую цепь, показанную на рис. 1.1.
Предположим, что цепь находится в состоянии равновесия: все напряжения и
токи в ней постоянны. Четыре неизвестные узловые напряжениях!,..., х4 мож-
но определить следующим образом. В каждом из четырех узлов сумма выте-
кающих из них токов должна быть нулевой (закон Кирхгофа для тока). Это
дает нам уравнение для каждого узла. В каждом из этих уравнений токи могут
Рис. 1.1. Найдите узловые напряжения.
1.2. Системы линейных уравнений
25
быть выражены через напряжения по закону Ома, который утверждает, что па-
дение напряжения (в вольтах — В) равно току (в амперах — А), умноженному
на сопротивление (в Омах — Ом). Для примера предположим, что ток от узла 3
к узлу 4 через резистор на 5 Ом равен I А. Тогда, в соответствии с законом
Ома, х3 - х4 = 5/, так что /= .2(х3 - х4). Рассматривая таким же образом два дру-
гих тока, текущих из узла 3, и применяя закон Кирхгофа для тока, получим
уравнение
.2(х3 - х4) + 1 (х3 - xj + ,5(х3 - 6) = О
или
- Xi + 1.7х3 - .2х4 = 3.
Применяя ту же самую процедуру к узлам 1, 2 и 4, получим систему четырех
линейных уравнений с четырьмя неизвестными
2xj - х2 - х3 =0,
- X, + 1.5х2 .5х4 = 0,
- Xj + 1.7 х3 - .2х4 = 3,
- .5х2 - .2х3 - 1.7х4 = 0,
которая может быть записана как одно матричное уравнение
2
-1
-1
0
-1
1.5
0
-.5
Хотя мы не будем доказывать это здесь, матрица коэффициентов невырож-
денна, так что система имеет точно одно решение. Решая ее с помощью
MATLAB’a, находим, что
3.0638
2.4255
3.7021
1.1489
Таким образом, напряжение в узле 3, например, равно 3.7021 В. Это не
точные ответы, они округлены до четырех десятичных знаков. При задан-
ных узловых напряжениях можно легко вычислить ток через любой из ре-
зисторов по закону Ома. Например, ток, текущий от узла 3 к узлу 4, равен
.2(х3 - х4) = 0.5106 А. □
Упражнение 1.2.7. Проверьте правильность уравнений в примере 1.2.6. Ис-
пользуйте MATLAB (или какие-то другие средства), чтобы вычислить реше-
26
Глава 1. Гауссово исключение и его варианты
ние. Если вы не знакомы с MATLAB’om, воспользуйтесь демонстрационным
примером из него (запустите MATLAB и выполните demo), чтобы выяснить,
как вводить матрицы. Как только вы ввели матрицу А и вектор Ь, можно вы-
полнить х = А\Ь, чтобы найти х. Запись всего вашего сеанса (которую вы може-
те позже отредактировать, распечатать и показать вашему преподавателю) мо-
жет быть сделана с помощью команды diary on. Для получения дополни-
тельной информации по команде diary выполните help diary. □
Пример 1.2.8. Другой способ анализа плоских электрических цепей состоит
в нахождении контурных токов вместо узловых напряжений. Рис. 1.2 показы-
вает ту же самую цепь, как и раньше, но теперь мы связали токи xt и х2 с двумя
контурами. (Ясно, что это не те xh что были на предыдущем рисунке.) Для ре-
зисторов, лежащих на границе цепи, контурный ток — это реальный ток, про-
текающий через резистор, а ток, текущий через резистор в 5 Ом в центре, ра-
вен х2 - хи Уравнение для каждого контура может быть получено с помощью
принципа, по которому сумма падений напряжения вдоль контура должна
быть нулевой (закон Кирхгофа для напряжения). Падение напряжения на ка-
ждом резисторе может быть выражено через контурный ток с помощью закона
Ома. Например, падение напряжения на резисторе в 5 Ом сверху вниз равно
5(х2 -*i) В. Суммируя напряжения на четырех резисторах контура 1, получим
5(Xj - х2) + Ixi + l*i + = 0.
Точно так же для контура 2:
5(х2 - xj + 1х2 - 6 + 2х2 = 0.
Из этих уравнений получим 2 х 2-систему
9 -5] Fxj 1 ГО'
-5 8 х2 6
Решая уравнения вручную, находим, что х} = 30/47 = 0.6383 А и х2 = 54/47 =
= 1.1489 А. Таким образом, например, ток, протекающий сверху вниз через ре-
зистор в 5 Ом, равен х2 - Xj = 0.5106 А, а падение напряжения там составляет
2.5532 В. Эти результаты согласуются с результатами примера 1.2.6. □
Рис. 1.2. Найдите контурные токи.
1.2. Системы линейных уравнений
27
Упражнение 1.2.9. Проверьте, что уравнения примера 1.2.8 правильны.
Проверьте также, что матрица коэффициентов невырожденная. Решите систе-
му вручную, с помощью MATLAB’a или какими-то другими средствами. □
Легко представить значительно большие цепи с большим числом контуров.
См., например, упражнение 1.2.19. Затем представьте себе еще большую цепь.
Если цепь имеет, скажем, 100 контуров, то она будет описываться 100 уравне-
ниями со 100 неизвестными.
Простые системы с массами и пружинами
На рис. 1.3 постоянная сила в 2 Н (ньютон) приложена к тележке, толкает
ее направо и растягивает пружину, которая является линейной с коэффициен-
том жесткости 4 Н/м (ньютон/метр). Как далеко сможет продвинуться тележ-
ка, прежде чем остановится в новом положении равновесия? Мы здесь изуча-
ем не динамику, т. е. не то, каким образом тележка достигнет своего нового
положения равновесия. Для этого нужно было бы знать массу тележки и силу
трения в системе. Поскольку спрашивается лишь о новом положении равнове-
сия, достаточно знать жесткость пружины.
2Н
Рис. 1.3. Одна тележка и одна пружина.
Новое равновесие будет достигнуто в точке, в которой сила в 2 Н, прило-
женная справа, точно уравновешивается силой пружины, приложенной сле-
ва. Другими словами, в положении равновесия сумма сил, действующих на
тележку, равна нулю. Пусть х обозначает (еще неизвестный) сдвиг тележки
вправо. Тогда возвращающая сила пружины есть -4 Н/м х х м = -4х Н. Она
отрицательна, поскольку толкает тележку влево. Равновесие имеет место, ко-
гда -4х + 2 = 0. Решая эту систему из одного уравнения с одним неизвест-
ным, найдем, что х = 0.5 м.
Пример 1.2.10. Теперь предположим, что мы имеем три тележки, связанных
пружинами, как показано на рис. 1.4. Пусть хь х2, их3 суть сдвиги тележек 1, 2
Рис. 1.4. Система из трех тележек.
28
Глава 1. Гауссово исключение и его варианты
и 3 соответственно под действием приложенных сил. Для каждой из тележек
новое положение равновесия есть точка, в которой сумма сил, приложенных к
тележке, равна нулю. Рассмотрим, например, вторую тележку. На нее действу-
ет внешняя сила в 2 Н, слева пружина тянет влево, а правая пружина тянет
вправо. Левая пружина растянута на (х2 - %i) м. Следовательно, слева на тележ-
ку действует сила - 4 Н/м х (х2 - xt) м - - 4(х2 - xj Н. Аналогично справа к ней
приложена сила + 4(х3 - х2) Н. Таким образом, уравнение равновесия для вто-
рой тележки есть
-4(х2 - xj + 4(х3 - х2) + 2 = О
или
+ 8х2 - 4х3 = 2.
Такие же рассуждения применяются к тележкам 1 и 3, после чего получится
система из трех уравнений с тремя неизвестными, которую можно записать в
матричной форме:
Вводя матрицу А и вектор b в MATLAB и используя команду х = А\Ь (или
просто решая систему вручную), найдем, что
0.6251
х =
1.000
0.875
В результате первая тележка, например, смещена вправо на 0.625 метра.
Матрица коэффициентов А называется матрицей жесткости, потому что
ее ненулевые элементы определяют жесткость пружин. □
Упражнение 1.2.11. Убедитесь, что уравнения примера 1.2.10 корректны.
Проверьте, что матрица коэффициентов системы невырожденная. Решите
систему на бумаге, с помощью MATLAB’a или каким-нибудь другим спосо-
бом. □
Легко придумать более сложные примеры. Если расположить п тележек
одна за другой (в линию), то для них получится система п уравнений с п неиз-
вестными. См. упражнение 1.2.20. Можно рассмотреть задачу, в которой мас-
сы движутся в двух или трех измерениях, будучи связанными сетью пружин.
Численное (приближенное) решение дифференциальных уравнений
Множество физических явлений моделируется дифференциальными урав-
нениями. Рассмотрим один пример, избегая при этом излишней детализации.
1.2. Системы линейных уравнений
29
Пример 1.2.12. Пусть ищется решение дифференциального уравнения
-и"(х) + си'(х) + du(x) = f(x), 0 < х < 1, (1.2.13)
удовлетвотряющее граничным условиям
и(0) = 0, и(1) = 0. (1.2.14)
Задача решается относительно функции и для заданных констант с и d и
функции f. Например, и(х) может представлять собой неизвестную концен-
трацию некоторого химического загрязняющего компонента на расстоянии
х от конца трубы. В зависимости от функции f мы можем найти или не най-
ти точное решение этой граничной задачи. Если нет, то с помощью метода
конечных разностей можно решить эту задачу приближенно следующим об-
разом.
Возьмем достаточно большое целое т и разобьем интервал [0, 1] на т рав-
ных подинтервалов длины h = 1/т. Точки деления на интервалы суть ху = jh,
j = 0, т. Эти точки образуют нашу вычислительную сетку. Методика ко-
нечных разностей даст приближения для и(хх),..., и(хт_х). Так как (1.2.13) вы-
полняется в каждой точке сетки, то
-m"(xz) + cw'(xz) + du{x^) = /(%/), i = 1, ..., m - 1.
Для малых h хорошими приближениями первой и второй производных
являются
„ ч и(х,-+Л)-и(х,-й) и(х,+|)-и(х,._,)
и\Х:) »--------------- = ---—---------
2й 2Л
и
и (х Л 7^---------------------—--------------L-L-.
(См. упражнение 1.2.21.) Подставляя эти аппроксимации для производных в
дифференциальное уравнение, получим для i = 1, ..., т - 1
и(х,Ч|)-2«(х,)+и(х,|)
h2
к 2й J
Теперь аппроксимируем это системой разностных уравнений
-и,+|+2и(. - и,..]
h2
+ с| fi+1—I + (iu = f
\ 2h }
(1.2.15)
/ = 1, ..., m - 1. Здесь мы заменили « на знак равенства и и(х) на ир что
(как мы надеемся) является приближением и(х). Мы также ввели обозна-
30
Глава 1. Гауссово исключение и его варианты
чение/. в качестве сокращения для /(%.). Это есть система т - 1 линейных
уравнений с неизвестными u0, их, ..., ит. Используя граничные условия
(1.2.14), можно положить м0 = 0 и ит = 0, оставляя лишь т - 1 неизвестных
UV '' Um-V
Пусть, например, т = 6 и h = 1/6. Тогда (1.2.15) есть система из пяти уравне-
ний с пятью неизвестными, которую можно записать в виде одного матрично-
го уравнения
’ 72 + d -36 + 3с 0 0 0
-36-Зс 72+d -36 + 3с 0 0 «2 fl
0 -36-Зс 72+d -36 + 3с 0 «3 = fl
0 0 -36-Зс 72 + d -Зб + Зс «4 ft
0 0 0 -36-Зс 72 +d _ .«5. _Л.
Задав конкретные значения с, d nf, можно решить систему относительно
..., и5 . Поскольку разностные уравнения имитируют дифференциальные,
мы ожидаем, что ..., и5 будут аппроксимировать истинное решение гранич-
ной задачи в точках ...,х5.
Конечно, не следует ожидать очень хорошего приближения при т = 6. Что-
бы получить хорошее приближение, нужно взять много большее т, что приве-
дет к решению много большей системы уравнений. □
Упражнение 1.2.16. Запишите систему уравнений из примера 1.2.12 в виде
матричного уравнения для (а) т - 8, (Ь) т -- 20. □
Более сложные системы разностных уравнений, получающиеся из диф-
ференциальных уравнений с частными производными, обсуждаются в
разд. 7.1.
Дополнительные упражнения
Упражнение 1.2.17. Рассмотрим электрическую цепь, изображенную на
рис. 1.5.
(а) Запишите линейную систему Ах = b из семи уравнений для семи неиз-
вестных напряжений в узлах.
(Ь) Решите эту систему, например, с помощью MATLAB’a, чтобы опреде-
лить узловые напряжения. Вычислите невязку г - b - Ах, где х - найденное
вами решение. По теории г должна равняться нулю. На практике вы получите
невязку небольшую, но отличную от нуля из-за ошибок округления в ваших
расчетах. Воспользуйтесь командой diary, чтобы сделать запись этого сеанса,
которую вы могли бы показать вашему преподавателю. □
Упражнение 1.2.18. Цепь, приведенная на рис. 1.6, та же, что и в предыду-
щей задаче, но теперь рассмотрим контурные токи.
(а) Напишите линейную систему Ах = Ь из четырех уравнений для четырех
неизвестных контурных токов.
(Ь) Решите систему относительно х. Найдите невязку г-b- Ах, где х - вы-
численное вами решение.
1.2. Системы линейных уравнений
31
(с) Используя закон Ома и только что вычисленные вами контурные токи,
найдите падение напряжения от узла, помеченного как nl9 до узлов, помечен-
ных как п2 и пу Согласуется ли это с решением упражнения 1.2.17, получен-
ным вами?
(d) Используя закон Ома и напряжения, вычисленные в упражнении 1.2.17,
найдите ток, проходящий через резистор R{. Согласуется ли он с вашими рас-
четами контурных токов? □
32
Глава 1. Гауссово исключение и его варианты
Упражнение 1.2.19. В цепи, приведенной на рис. 1.7, все сопротивления
равны 1 Ом.
(а) Напишите линейную систему Ах = b для нахождения контурных токов.
(Ь) Решите эту систему относительно х. □
Упражнение 1.2.20. Рассмотрим систему из п тележек с пружинами, как по-
казано на рис. 1.8. /-я пружина имеет коэффициент жесткости к-, Н/м. Предпо-
ложим, что тележки под действием постоянных сил величиной •••,/„ Н
смещаются на хь х2, • ••> хп м соответственно.
(а) Напишите систему п линейных уравнений Ах = b для х15..., хп. Обратите
внимание, что при очень большом п подавляющая часть элементов матрицы А
будет равна нулю. Матрицы с таким свойством называются разреженными.
Поскольку все ненулевые элементы сосредоточены в узкой полоске около
главной диагонали, матрица А называется также ленточной. В частности, здесь
ненулевые элементы ограничиваются тремя диагоналями, так что матрица Л -
трехдиагональная.
Рис. 1.8. Система из п масс.
1.3. Треугольные системы
33
(b) Вычислите решение для случая п = 20, к, = 1 Н/м для всех = 0, кроме
/5 = 1 Н и/6 = -1 Н. (Наберите help toeplitz, чтобы узнать простой способ
ввода такой матрицы коэффициентов в MATLAB’e.) □
Упражнение 1.2.21. Вспомним определение производной из математиче-
ского анализа:
м(х + А)-м(х)
и (х) = lim — -----——.
Л->0 h
(а) Покажите, что если h — достаточно малое положительное число, то оба
отношения
и( х + Л) - м( х) u(x)-u(x-h)
и
h--------------------h
являются хорошими приближениями для и'(х).
(Ь) Возьмите среднее двух оценок части (а), чтобы получить оценку
и'(х)»
u(x+h)-u(x-h)
Th ’
Нарисуйте график и и несколько прямых линий, чтобы убедиться, что эта
оценка и'(х) вероятно будет лучше любой из оценок п. (а).
(с) Примените оценку п. (Ь) к м"(х), заменив h на й/2, чтобы получить
~ W'<X /2)“М'<Х ~Л/2)
U \Х) ~
h
Теперь аппроксимируйте и'(х + й/2) и и'(х - Л/2), используя оценку п. (Ь) и
опять заменяя h на й/2, чтобы получить
и\х)«
u(x + h)-2u(x) + u(x-h)
h2
1.3. Треугольные системы
Линейная система с треугольной матрицей коэффициентов решается очень
легко, и обычно общие системы приводят к треугольной форме, решение ко-
торой обходится недорого. Поэтому мы начнем с детального изучения тре-
угольных систем.
2 Основы матричных вычислений
34
Глава 1. Гауссово исключение и его варианты
Матрица G = (g/y) является нижней треугольной, если gtj = 0 при i < j. Таким
образом, нижняя треугольная матрица имеет вид
0 0 . .. 0 ’
*21 *22 0 . .. 0
G = *31 *32 *33 •. 0
_*л! *л2 *лЗ •• 8пп _
Аналогично у верхней треугольной матрицы = 0 при i > j. Треугольная
матрица является либо верхней, либо нижней треугольной.
Теорема 1.3.1. Пусть G — треугольная матрица. G является невырожденной
тогда и только тогда, когда g^* 0 при i = I, ..., п.
Доказательство. Вспомним из элементарной линейной алгебры, что если
G — треугольная, то det(G) = gHg22 •••&«• Таким образом, det(G) ф 0, тогда и толь-
ко тогда, когдаgn* 0 при Z= 1,..., п. См. упражнения 1.3.23 и 1.3.24. □
Нижние треугольные системы
Рассмотрим систему
Gy = Ь, (1.3.2)
где G — невырожденная нижняя треугольная матрица. Легко понять, как реша-
ется эта система, если все расписать подробно:
*цУ| = *i>
*21^1 + 822У1 = b2,
*3i?i + *32^2 + ВззУз = *з>
*„|У1 + 8пЗУз + *ЯзУз + ••• + 8ппУп = Ьп.
Первое уравнение включает только неизвестное у,, второе включает только
yj и у2 и т.д. Мы можем решить первое уравнение относительно
У1 = £|/*п-
Предположение о невырожденности G гарантирует, что gH * 0. Теперь, по-
лучив Уи подставим его значение во второе уравнение и решим его относи-
тельно у2:
У2 = (&2 " 321У1) /?22-
1.3. Треугольные системы
35
Так как G невырожденна, то g22 * 0. Узнав у2, можно воспользоваться треть-
им уравнением для получения у3, и т.д. В общем случае, как только найдены
ух, у2, у/_1, можно найти yi9 используя f-е уравнение:
У , = (*, - &1У1 - gay-L - - - gi,i-\yi-\) / gu>
которое можно записать короче, применяя знак суммы:
y, = gj .
(1.3.3)
Поскольку G невырожденна, gi( ф 0.
Этот алгоритм решения нижних треугольных систем называется прямой
подстановкой или прямым исключением. Это первая из двух его версий, кото-
рые мы рассмотрим. Она называется построчной прямой подстановкой, по-
скольку G выбирается строка за строкой и i-я строка используется на /-м
шаге. Она также называется прямой подстановкой в форме внутреннего про-
/-1
изведения, потому что сумму ^g^j можно рассматривать как внутреннее или
7=1
скалярное произведение.
Формула (1.3.3) описывает алгоритм полностью. Она описывает даже пер-
вый шаг (ух = bx/gxx), если согласиться (и мы будем это делать на протяжении всей
книги), что всякий раз, когда нижний предел суммы превысит верхний, сумма бу-
дет нулевой. Так,
г ° \ /
У1 = Д| = (^
\ >=| )!
0)/£ц = bi/g".
Упражнение 1.3.4. Прямой подстановкой решите вручную систему
Вы можете легко проверить ваш ответ, подставив его в уравнения. Это про-
стой способ проверки сделанного, которым вы сможете воспользоваться при
выполнении вручную упражнений, предложенных в этой главе. □
Нетрудно написать программу прямого исключения. Прежде чем мы за-
пишем алгоритм, заметим, что Ьх используется только при вычислении
Ь2 — только при вычислении у2, и т.д. В общем случае, как только найдено
уп нам уже не нужно bf. Следовательно, естественно, что программа запи-
шет у на место Ь. В результате единственный массив, содержащий b до вы-
36
Глава 1. Гауссово исключение и его варианты
пол нения программы, впоследствии будет содержать у. Этот алгоритм вы-
глядит так:
for i = 1,...,n
for j = 1,..f-1 (при i = 1 не выполняется)
[bj ^r-bi+gybj (1.3.5)
if gti =0, установить признак ошибки, выход
A ^bjgu
Здесь нет упоминания у, поскольку он содержится в массиве Ь. Вставлена
проверка gih чтобы сделать программу защищенной от ошибок. Нет никаких
гарантий, что программе придется (по случайности или иной причине) иметь
дело с вырожденной матрицей коэффициентов. Она должна быть в состоянии
соответствующим образом отреагировать на эту ситуацию. Это хорошая прак-
тика — перед делением проверять, не равен ли делитель нулю. В большинстве
алгоритмов линейной алгебры такие проверки не дают значительного увеличе-
ния времени выполнения программы, поскольку операция деления встречает-
ся сравнительно редко.
Чтобы получить представление о времени выполнения прямой подстанов-
ки, подсчитаем число операций с плавающей точкой (флопов). Во внутреннем
цикле в (1.3.5) выполняются два флопа. Эти флопы выполняются i - 1 раз при
/-м выполнении внешнего цикла. Внешний цикл выполняется п раз, так что
общее число флопов, выполненных во всех /-циклах, равно 2х(0+1 + 2 + ...+
п
п - 1) - 2^ (J ~ О- Вычисляя эту сумму с помощью хорошо известного приема
/=1
(см. упражнения 1.3.25, 1.3.26 и 1.3.28), получаем число п(п - 1), неплохо ап-
проксимируемое более простым выражением п2. Действительно,
££2 = 2£(z- 1) = п(п - 1) « п2.
/=1 ;=1 /=1
Вглядываясь в операции, выполняющиеся вне /-цикла, видим, что п раз&,
сравнивается с нулем и производится п делений. Какова бы не была стоимость
этих операций, общая стоимость их выполнения пропорциональна п, а не п2, и
поэтому будет незначительной при достаточно больших п. Принимая это
предположение, мы игнорируем малые издержки и просто указываем, что
цена выполнения прямой подстановки равна п2 флопов.
Эта оценка дает нам важную количественную информацию: каждый раз
при удвоении п следует ожидать увеличения времени выполнения прямой
подстановки примерно в 4 раза.
Использование начальных нулей в прямой подстановке
Может быть получена значительная экономия, если несколько начальных
элементов b положить равными нулю. Это наблюдение окажется важным при
1.3. Треугольные системы
37
рассмотрении вычислений с ленточными матрицами в разд. 1.5. Предположим
сначала, что Ьх = 0. Тогда очевидно, что ух = 0 тоже, и нам не нужно заставлять
компьютер вычислять = bjgn. Вдобавок можно опустить все последующие
вычисления, использующие Теперь предположим, что и Ь2 = 0. Тогда у2 = b2 / fe = 0-
Нет необходимости компьютеру выполнять эти вычисления или какие-либо
последующие, использующие у2. В общем случае, если Ьх = Ь2 = ... = Ьк = 0, то
h = У2 = ••• = У к = 0, и мы можем опустить все вычисления, включающие ух,... ук.
Таким образом, (1.3.3) принимает вид
п
У: =
j=k+\
ga> i = к + 1,
п.
(1.3.6)
Обратите внимание, что суммирование здесь начинается су = к + 1.
Поучительно взглянуть на это с точки зрения матричных разбиений. Если
Ьх = Ь2 = ... = Ьк - 0, то мы можем написать
“0"! к
bl J j ’
где j = п - к. Разбивая так же G и у, имеем
к j
G =
к Г<7П
j
01 ГЛ1 к
, у =
^22 J J J
где и G22 - нижние треугольные. Уравнение Gy = b примет вид
0 ’ ГА 1 = Г°
G21 g22 _у2_ ь2
или
= 0,
^21^1 + g22 у2 = ъ2.
Так как (7ц невырожденная (почему?), из первого уравнения следует, что
= 0. Тогда второе уравнение сводится к
^22 У 2 ”^2-
Таким образом, нам остается только решить эту нижнюю треуголь-
ную (п - к) х (п - Л)-систему, что и делается в (1.3.6). Сц и (?21 не ис-
38
Глава 1. Гауссово исключение и его варианты
пользуются, поскольку они связаны лишь с неизвестными ук
(т.е. с у,). Так как эта система имеет порядок п - к, затраты составля-
ют (« - к)2 флопов.
Упражнение 1.3.7. Напишите модифицированную версию алгоритма (1.3.5),
в которой проверяется наличие в b начальных нулей и выполняются необходи-
мые действия. □
Прямая подстановка по столбцам
Теперь мы выведем столбцовую версию прямой подстановки. Разобьем
систему Gy = b на блоки следующим образом:
£п °1 ГуЯ = Г*.
h |/
(1.3.8)
Здесь Л, у и b - векторы длины п - 1, a G - нижняя треугольная (п - 1) х
х (п - 1)-матрица. Блочная система может быть записана так:
. =
Ay, + Gy = Ь.
Это ведет к следующему алгоритму:
=V*n
b=b-hyt (1.3.9)
решить Gy-b относительно у
Он сводит задачу решения треугольной п х «-системы к решению (п - 1) х
(« - 1)-системы Gy-b. Эта задача меньшего порядка может быть сведена (по
тому же алгоритму) к задаче порядка п - 2, которая, в свою очередь, может
быть сведена к задаче порядка п - 3 и т.д. В конечном счете мы придем к 1 х 1-
задаче gnnyn = bn, которая имеет решение уп = bjgnn.
Если вы изучаете математику, то приведенный алгоритм напомнит вам
доказательство по индукции. Если же вы изучаете информатику, то при-
помните рекурсию, являющуюся аналогом математической индукции в
информатике. Вспомните, что рекурсивная процедура - это та, которая
обращается сама к себе. Если вы любите языки программирования, под-
держивающие рекурсию (а большинство современных языков именно та-
кие), то вы с удовольствием напишете рекурсивную процедуру, осуществ-
ляющую (1.3.9). Процедура выполнит первый и второй шаги в (1.3.9), а
затем вызовет себя же, чтобы решить редуцированную задачу. Все пере-
1.3. Треугольные системы
39
менные с именами b, b,b,y и т.д. можно хранить в одном и том же мас-
сиве, который будет содержать b перед выполнением и у после. Хотя пи-
сать рекурсивные программы одно удовольствие, этот алгоритм можно
без труда записать и без рекурсии. Ниже мы приведем нерекурсивную
формулировку алгоритма, но сначала стоит выполнить вручную один или
два примера.
Пример 1.3.10. Воспользуемся столбцовым вариантом прямой подстановки
для решения нижней треугольной системы
Сначала вычислим yj = bx/g{{ = 15/5 = 3. Тогда
b = b - hyx =
-8
7
Теперь мы хотим решить Gy =b:
-4 01Гу21_ Г-8“
2 31Ы”17/
Цель будет достигнута повторным применением алгоритма:
у2 = -8/ - 4 = 2, I = Ъ - hy2 = [ 7 ] - [ 2 ] 2 = [ 3 ],
[ 3 ] у3 = [ 3 ] и уз = 3/3 = 1.
Таким образом,
3
2
1
Можно проверить, что если умножить G на у, то получится правильная пра-
вая часть Ь. □
Упражнение 1.3.11. Примените прямую подстановку по столбцам, чтобы
решить систему из упражнения 1.3.4. □
Упражнение 1.3.12. Напишите нерекурсивный алгоритм в духе (1.3.5), вы-
полняющий прямую подстановку по столбцам. Используйте только один мас-
сив, вначале содержащий Ь, затем — во время вычислений — промежуточные
результаты (например, b, b), а в конце содержащий у. □
40
Глава 1. Гауссово исключение и его варианты
Ваше решение упражнения 1.3.12 будет выглядеть похожим на следу-
щее:
for / = 1,...,л
if = 0, установить признак ошибки (G - вырож -
денная), выход (13 13)
bj <-bjlgjj{3Toyj)
for / = j +1,..., n, (при j = n не выполняется)
Заметьте, что в (1.3.13), как и ожидалось, G выбирается по столбцам: нау-м
шаге используется у-й столбец. При каждом прохождении внешнего цикла
размерность задачи уменьшается на единицу. При последнем прохождении
выполняется bn <- bn/gnn (что даету„), а внутренний цикл пропускается.
Упражнение 1.3.14.
(а) Подсчитайте число операций в (1.3.13). Обратите внимание, что число
флопов то же, что и для алгоритма (1.3.5) по строкам.
(Ь) Убедитесь, что в версиях прямой подстановки по строкам и по столбцам
выполняются одни и те же операции, но не в одном и том же порядке. □
Как и построчную версию, версию по столбцам можно модифицировать
так, чтобы использовать наличие начальных нулей в векторе Ь. На>-м шаге вы-
полнения внешнего цикла в (1.3.13) при /г = 0 никаких изменений b не делает-
ся. Таким образом,у-й шаг пропускается до тех пор, пока bj = 0. (Это выполня-
ется независимо от того, является ли bj первым. Но как только встретится bj,
отличное от нуля, все последующие значения bj будут отличаться от исходных
и вряд ли будут нулями.)
Какая из двух версий прямой подстановки лучше? Ответ зависит от способа
записи и выборки матрицы G. Это в свою очередь зависит от выбранных про-
граммистом структуры данных, языка программирования и архитектуры ком-
пьютера.
Верхние треугольные системы
Достаточно ясно, что содержательная часть методов решения верхней
и нижней треугольных систем должна быть одинаковой. Рассмотрим сис-
тему Ux = у, где U — верхняя треугольная матрица. Выписывая систему
подробно, мы получим:
"11*1 + и12х2 + ... + + uin_{xn =
+ ... + “2,п-1Хп-1 + "2Л-Л = У
“n-i,n-ixn-i + ип_Хпхп = Ул_|,
^п,пХп ~ У п'
1.3. Треугольные системы
41
Ясно, что нужно решать ее снизу вверх, п-е уравнение можно решить отно-
сительно хп, затем (п - 1)-е уравнение можно решить относительно хп_{, и т.д.
Этот процесс называется обратной подстановкой и имеет версии по строкам и
столбцам. Затраты на обратную подстановку такие же, как и на прямую - око-
ло п1 флопов.
Упражнение 1.3.15. Рассмотрите версию обратной подстановки по строкам.
Выпишите псевдокод в духе (1.3.5) и (1.3.13). □
Упражнение 1.3.16. Рассмотрите версию обратной подстановки по столб-
цам. Выпишите псевдокод в духе (1.3.5) и (1.3.13). □
Упражнение 1.3.17. Найдите решение верхней треугольной системы
(а) обратной подстановкой по строкам, (Ь) обратной подстановкой по столб-
цам. □
Блочные алгоритмы
Нетрудно получить блочные варианты прямой и обратной подстановок.
Сосредоточимся на прямой подстановке. Пусть нижняя треугольная матрица
G разбита на блоки следующим образом:
Г1 г2 ... rs
r{ Gn 0 ... О
г2 С21 G22 ... О
и = . . . . .
г G] G2 ... G
□ □ 1 •> а □□ _
Каждый блок Gu является квадратной нижней треугольной матрицей. То-
гда уравнение Gy - b можно так записать в блочной форме:
<Л. 0 .. 0 ' A
G» g22 . .. 0 Уг = z>2 (1.3.18)
Gsl GS1 •• G^ Уз. А.
В этом уравнении элементы bi и у, не скаляры, а векторы с компонентами
каждый. (Разбиение (1.3.8) является специальным случаем (1.3.18), таково же
и разбиение из упражнения 1.3.29, приводимого ниже.) Уравнение (1.3.18) го-
ворит о том, что мы найдем yl9 решая систему (лцУ! = b{. Как только найдено
42
Глава 1. Гауссово исключение и его варианты
yl9 можно разрешить уравнение + G22y2 ~ Ь2 относительно у2, и т.д. Это
приводит нас к блочной версии прямой подстановки по строкам
for i = 1,s
for j = 1,..i -1, (при i = 1 не выполняется)
[/>,. <-bi+Gvbj (1.3.19)
if (?„ =0, вырожденная, установить признак ошибки, выход
A-
которая почти совпадает с (1.3.5). Операция bt. <- G^bj не требует явного вы-
числения Она может быть выполнена решением нижней треугольной сис-
темы Ghx - bi прямой подстановкой по строкам или по столбцам.
Упражнение 1.3.20. Напишите блочный вариант алгоритма прямой подста-
новки (1.3.13) по столбцам. □
Упражнение 1.3.21. Убедитесь, что блочные версии алгоритма прямой под-
становки (1.3.13) выполняют ту же арифметику, что и скалярные алгоритмы
(1.3.5) и (1.3.13), но в другом порядке. □
Дополнительные упражнения
Упражнение 1.3.22. Напишите подпрограммы на Фортране, выполняющие
следующее: (а) прямую подстановку по строкам, (Ь) прямую подстановку по
столбцам, (с) обратную подстановку по строкам, (d) обратную подстановку по
столбцам. Придумайте несколько задач для проверки ваших подпрограмм.
Простой способ построить задачу Ах = b с известным решением заключает-
ся в следующем: задайте матрицу А и решение х, затем умножьте А на х, чтобы
получить Ь. Задайте An b вашей программе и посмотрите, сможет ли она полу-
чить х. □
Упражнение 1.3.23. Докажите, что для треугольной матрицы G справедливо
det(G) = gHg22 ...g„„. □
Упражнение 1.3.24. Придумайте доказательство теоремы 1.3.1, не исполь-
зующее детерминантов. Например, вместо этого воспользуйтесь условиями (с)
и (d) теоремы 1.2.3. □
Упражнение 1.3.25. Выпишите в строку числа 1, 2, 3, ..., п - 1. Непосредст-
венно под ними выпишите числа п - 1, п - 2, п - 3, ..., 1. Просуммируйте все,
предварительно сложив числа по столбцам. Убедитесь, что
2 х (1 + 2 + 3 + ... + п - 1) = п(п - 1). □
Упражнение 1.3.26. В данном упражнении воспользуйтесь математической
индукцией, чтобы вывести заключение предыдущего упражнения. Если вам
это трудно, то вам определенно необходимо выполнить это упражнение. Нуж-
но доказать, что
п-1
£/=л(л-1)/2 (1.3.27)
1.3. Треугольные системы
43
для всех положительных п. Вначале покажите, что (1.3.27) выполняется при
п = 1. В этом случае сумма слева пуста. Если это вас беспокоит, начните про-
верку с п = 2. Далее покажите, что если (1.3.27) выполняется для п = к, то это
справедливо и при п = к + 1. Т.е. покажите, что
к
Tj = {к + 1)Л/2
/=1
выполняется, если выполняется
к-\
Я=к<к~ V/2-
/=1
Это просто дело алгебраической техники. Выполнив это, вы тем са-
мым докажете по индукции, что (1.3.27) выполняется для всех положи-
тельных п. □
Упражнение 1.3.28. В этом упражнении вводится полезный метод аппрок-
симации. Нарисуйте график, отображающий неравенства
/1-1 п
j xdx < / < j xdx.
о о
Оцените интегралы и покажите, что
я-1
£> = п2/2 + О(п) « л2/2.
/=1
п
Покажите, что этот же результат справедлив и для i. □
/=1
Упражнение 1.3.29. Мы вывели столбцовую версию прямой подстановки
разбиением системы Gy = b. Различные разбиения приводят к различным вер-
сиям. Например, рассмотрим разбиение
G
hT
о Гу"
Snn _ .Уп _
’ ь~
А_Г
где G имеет размеры (п - 1) х (п - 1).
(а) Выведите рекурсивный алгоритм, основанный на этом разбиении.
(Ь) Напишите нерекурсивную версию этого алгоритма. (Указание: Поду-
майте, как ваш алгоритм будет вычислять у,- по заданным уь ..., у/ч.)
Обратите внимание, что ваш нерекурсивный алгоритм есть не что иное, как
прямая подстановка по строкам. □
44
Глава 1. Гауссово исключение и его варианты
1.4. Положительно определенные системы,
разложение Холесского
В этом разделе мы обсудим задачу решения систем линейных уравнений,
матрица коэффициентов которых имеет специальную форму, а именно явля-
ется положительно определенной. Если вы сначала хотите прочесть об общих
системах, перейдите сразу к разд. 1.7 и 1.8.
Вспомним, что транспонированная п х «i-матрица А = (аь), обозначаемая
как АТ, есть т х «-матрица, у которой элемент (i,j) равен ал. Таким образом,
строки АТ являются столбцами А. Квадратная матрица А называется симмет-
ричной, если А = АТ, т. е. аь- = а., при всех i и j. Матрицы электрических цепей из
примера 1.2.12 все являются симметричными, как и матрицы из примеров на
системы масс и пружин. Матрица в примере 1.2.12 (аппроксимация диффе-
ренциального уравнения) не является симметричной, если с (коэффициент
конвекции) не равен нулю. Поскольку каждый вектор есть матрица, каждый
вектор можно транспонировать: вектор-столбец х есть матрица с одним
столбцом. Его транспонирование хт есть матрица с одной строкой. Множество
«-вектор-столбцов с вещественными компонентами будем обозначать через
JR”. Таким образом, R" есть множество вещественных п х 1-матриц.
Если п х «-матрица Л - вещественная, симметричная и удовлетворяет условию
хтАх > 0 (1-4.1)
для всех ненулевых х е Ж”, то А называется положительно определенной1. Левая
часть (1.4.1) является матричным произведением. Рассматривая размерности
хт, А их, находим, чтохтАх есть 1 х 1-матрица, т.е. вещественное число. Таким
образом (1.4.1) — просто неравенство для вещественных чисел. Можно дать
определение и комплексных положительно определенных матриц. См. упраж-
нения 1.4.63 - 1.4.65.
Положительно определенные матрицы часто возникают в прикладных за-
дачах. Обычно выражение хтАх имеет физический смысл. Например, все мат-
рицы в задаче об электрических цепях из разд. 1.2 являются положительно оп-
ределенными. В примерах, где компоненты х — контурные токи, хтАх пред-
ставляет собой общую мощность, потребляемую резисторами цепи
(упражнение 1.4.66). Это явно положительная величина. В примерах, где ком-
поненты х - напряжение в узлах, значение хтАх тесно связано с (и слегка пре-
вышает) мощностью, потребляемой в цепи (упражнение 1.4.67).
Матрицы систем масс и пружин из разд. 1.2 также положительно опреде-
ленные. В этих системах -^хгАх — энергия упругой деформации системы, накоп-
ленная в пружинах вследствие их сжатия или растяжения (упражнение 1.4.68).
Это положительная величина.
К другим приложениям, приводящим к положительно определенным мат-
рицам, относятся метод наименьших квадратов (гл. 3), статистика (упражне-
1 В некоторых книгах, особенно в [33], в этом определении не требуется симметричности.
1.4. Положительно определенные системы. Разложение Холесского
45
ние 1.4.69) и численные методы решения дифференциальных уравнений с ча-
стными производными (гл. 7).
Теорема 1.4.2. Если матрица А — положительно определенная, то она невыро-
жденная.
Доказательство. Мы докажем обратную теорему: если А вырожденная, то
она не является положительно определенной. Пусть А вырожденка. Тогда по
условию (Ь) теоремы 1.2.3 существует отличный от нуля вектор у е R" такой,
что Ау - 0. Но тогда уТАу - 0, так что А не является положительно определен-
ной. □
Следствие 1.4.3. Если матрица А - положительно определенная, то линейная
система Ах - b имеет точно одно решение.
Теорема 1.4.4. Пусть М — произвольная невырожденная п х п-матрица и
А - ХРМ. Тогда А - положительно определенная.
Доказательство. Сначала нужно показать, что А — симметричная. Вспоми-
ная элементарные формулы (ВС)Т = СГВГ и В™= В, находим, что АГ= (XfM)T^
Мт^ = Далее мы должны показать, что хтАх > 0 для всех ненулевых
х. Для любого такого х имеем хтАх = хтМтМх. Пусть у = Мх, так что ут = хтМт.
Тогда хтАх = уту - ^=[у]. Эта сумма квадратов, конечно, неотрицательна и
даже строго положительна при у ф 0. Но очевидно, что у = Мх ф 0, поскольку М
невырожденна, а х не равен нулю. Отсюда хтАх>0 для любого ненулевого х и
А — положительно определенная. □
Теорема 1.4.4 указывает легкий способ построения положительно опреде-
ленных матриц: просто умножьте любую невырожденную матрицу на
транспонированную.
Пример 1.4.5. Пусть М=
’1 2
_3 4
М— невырожденная, так как det(Af) = -2.
Следовательно, А = МТМ=
10
14
14
20
положительно определенная.
□
Пример 1.4.6. Пусть
1
1
1
М - невырожденная, так как det(Af) = 1. Следовательно,
"1 1 1
А = МТМ = 1 2 2
1 2 3
- положительно определенная. □
Следующая теорема о разложении Холесского является наиболее важ-
ным результатом этого раздела. Она утверждает, что каждая положительно
46
Глава 1. Гауссово исключение и его варианты
определенная матрица имеет вид М^М для некоторой матрицы М. Таким
образом, по рецепту, данному в теореме 1.4.4, строятся все положительно
определенные матрицы. Более того, в качестве М можно взять матрицу оп-
ределенного вида.
Теорема 1.4.7 (теорема о разложении Холесского). Пусть А - положительно
определенная матрица. Тогда существует единственное представление А в виде
произведения
А = RTR (разложение Холесского)
такое, что R есть верхняя треугольная матрица, у которой все элементы ги
главной диагонали положительны. R называется множителем Холесского мат-
рицы А.
Теорема будет доказана позже в данном разделе. А сейчас важнее обсудить,
как можно использовать разложение Холесского, и понять, как вычисляется
множитель Холесского.
Пример 1.4.8. Пусть
R есть верхняя треугольная матрица с положительными элементами на глав-
ной диагонали. В примере 1.4.6 мы видели, что А - RTR. Следовательно, R яв-
ляется множителем Холесского матрицы А. □
Разложение Холесского полезно, поскольку R и RT треугольные. Пусть не-
обходимо решить систему Ах = Ь, где А — положительно определенная матри-
ца. Зная множитель Холесского R, мы можем записать систему в виде RTRx = b.
Пусть у = Rx. Мы не знаем х, а потому не знаем и у. Однако ясно, что у удовле-
творяет уравнению RTy - b. Так как RT — нижняя треугольная матрица, можно
решить это уравнение относительно у прямой подстановкой. Определив у
можно решить верхнюю треугольную систему Rx = y относительно х обратной
подстановкой. Если мы знаем множитель Холесского R, то общее число фло-
пов есть просто 2п2.
Если разложение Холесского — действительно полезный инструмент, нам
нужно найти практический способ вычисления множителя Холесского. Са-
мый простой путь — это детально выписать разложение А = RTR и исследо-
вать его:
«11 «12 «13 • - «1/ 'll 0 0 . .. 0 ' ’П1 П2 Пз • Пл"
«21 «22 «32 • •• «2 л Г\2 Г22 Г23 • .. 0 0 Г22 Г23 • •• г2п
«31 «32 «33 • •• «Зл = Из 0 гзз • .. 0 0 0 Из •• П»
L«fll «л2 ««3 • • • апп _ /1л Г2п 'Зл • • • Гпп _ 0 0 0 . •• ''лл.
1.4. Положительно определенные системы. Разложение Холесского
47
Элемент ау представляет собой (внутреннее) произведение Z-й строки мат-
рицы RT нау-й столбец матрицы R. Заметив, что первая строка RT имеет только
один ненулевой элемент, сосредоточимся на этой строке:
aU +% +0гзу +...+0^. =r„rv.
В частности, при j = 1 мы имеем ап = г2}, откуда получаем, что
П1 = + (1-4.9)
Мы знаем, что нужен именно положительный квадратный корень, по-
скольку на главной диагонали R находятся положительные элементы. Теперь,
когда известно ги, можно использовать уравнения а1у = rHrly, чтобы вычис-
лить оставшуюся часть первой строки R:
' = «1УАц, j = 2, ..., п. (1.4.10)
Это является также первым столбцом матрицы RT. Теперь обратим внима-
ние на вторую строку, поскольку вторая строка RT имеет лишь два элемента,
отличных от нуля. Имеем
e2j = rx2r{j + r22r2j. (1.4.11)
В это выражение входят лишь элементы первых двух строк множителя R.
В частности, при j = 2 мы имеем а22 = гх1 + г22. Так как г12 уже известно, из это-
го выражения можно определить г22.
Гц = +7°22 -П2 •
После определения г22 единственным неизвестным в (1.4.11) является г2у.
Поэтому из (1.4.11) находится оставшаяся часть второй строки R:
Гц = (a2J - гпгу)/гп,] = 3, ..., п.
Нет нужды вычислять г21, поскольку г21 = 0- Теперь мы знаем первые две
строки множителя R (и два первых столбца множителя Л7). Покажите в каче-
стве упражнения, как вычислять третью строку множителя R.
Теперь вычислим i-ю строку множителя R, предполагая, что уже известны
первые i - 1 строк. Поскольку лишь первые i элементов в Z-й строке множите-
ля RT отличны от нуля, то
«V = Г"Гц + r2ir2j + ... + Г,-!,/,-!.; + Г,-,Г,у. (1.4.12)
48
Глава 1. Гауссово исключение и его варианты
Все элементы множителя Л, которые мы видим в (1.4.12), расположе-
ны в первых i строках. Поскольку первые i - 1 строки уже известны, в
(1.4.12) неизвестными остаются лишь гц и Гц. Приняв в (1.4.12) i = j, по-
лучим уравнение
2 2 2 2
= П/ + + + ГП >
которое можно решить относительно г.:.
(1.4.13)
Теперь, имея ги, из (1.4.12) найдем ту.
(1.4.14)
Нет необходимости вычислять гу для j < /, потому что они все равны
нулю.
Выражения (1.4.13) и (1.4.14) дают полный рецепт для вычисления R.
Они справедливы даже для первой строки R (1 = 1), если мы примем со-
о
глашение, что £ равна нулю. Заметьте, что при i = п ничего делать в
*=1
(1.4.14) не надо, единственным ненулевым элементом в n-й строке мно-
жителя R является гпп.
Рассмотренный нами алгоритм известен как метод Холесского. Эта,
первая из нескольких формулировок, которые мы рассмотрим, называ-
ется формулировкой в виде внутреннего произведения, поскольку сум-
мы (1.4.13) и (1.4.14) можно рассматривать как внутренние произведе-
ния. Как оказывается, метод Холесского тесно связан с известным ме-
тодом исключения Гаусса. Эту связь между ними мы рассмотрим в
разд. 1.7.
Необходимо сделать несколько важных замечаний. Во-первых,
вспомним, что теорема о разложении Холесского (которую мы пока не
доказали) содержит два утверждения: (i) R существует и (ii) R определя-
ется однозначно. Выражение А = RTR и условие, что R является верхней
треугольной матрицей с гн > 0, приводят к (1.4.9). Итак, это значение
гн — единственное, которое будет работать, ги определяется однозначно.
Подобным образом, г1у однозначно определяются выражением (1.4.10)
при j = 2, ..., п. Таким образом, первая строка множителя R определена
однозначно. Предположим, что первые i - 1 строк определены одно-
значно. Тогда это справедливо и для f-й строки, ибо ги однозначно оп-
1.4. Положительно определенные системы. Разложение Холесского 49
ределяется выражением (1.4.13), а гу однозначно определяются выраже-
нием (1.4.14) при j - i + 1, ..., п. Обратите внимание на важность усло-
вия г/7 > 0 при выборе знака перед квадратным корнем. Без этого
условия мы не получим однозначности.
Г4 01
Упражнение 1.4.15. Пусть А = . (а) Докажите, что А — положительно
определенная. (Ь) Определите множитель Холесского матрицы А. (с) Найдите
три других верхних треугольных матрицы R такие, что А = RTR. (d) Пусть А -
положительно определенная п х «-матрица. Сколько существует верхних тре-
угольных матриц R таких, что А = RTR? □
Следующее важное наблюдение состоит в том, что метод Холесского
служит тестом на положительную определенность. По теоремам 1.4.4 и 1.4.7
А - положительно определенная, тогда и только тогда, когда ли существует
верхняя треугольная матрица R с положительными элементами на главной
диагонали такая, что А = RTR. Задавшись некоторой симметричной матри-
цей Я, мы можем попытаться вычислить R методом Холесского. Если А не
положительно определенная, применение алгоритма окажется неудачным,
потому что любая R, удовлетворяющая (1.4.13) и (1.4.14), должна удовлетво-
рять и равенству А = RrR. Алгоритм откажет тогда и только тогда, когда на
некотором шаге число под знаком квадратного корня в (1.4.13) окажется
отрицательным или равным нулю. В первом случае вещественный корень
не существует, а во втором гц = 0. Таким образом, если А не является поло-
жительно определенной, на некотором шаге алгоритм попытается извлечь
квадратный корень из неположительного числа. Обратно, если А является
положительно определенной, алгоритм не откажет. Равенство А = RTR га-
рантирует, что число под знаком квадратного корня в (1.4.13) будет поло-
жительным на каждом шаге. (Действительно, оно равно г?.) Таким обра-
зом, метод Холесского успешно работает, тогда и только тогда, когда А яв-
ляется положительно определенной. Это — лучший известный общий тест
на положительную определенность.
Следующее, на что стоит обратить внимание, это то, что в (1.4.13) и (1.4.14)
используются только те ау, для которых i < J. Это и неудивительно, так как в
симметричной матрице элементы выше главной диагонали совпадают с эле-
ментами ниже главной диагонали. Это подчеркивает то, что в компьютерной
программе не нужно сохранять все элементы матрицы А: нет смысла дублиро-
вать информацию. Если памяти не хватает, программист может хранить А в
памяти в виде длинного одномерного массива, в котором за alh al2i..., а1п сразу
следуют а22,а2з> •• а за ними сразу следуют а33,..., а3п, и т.д. Эта компактная
схема хранения усложняет программирование, но достойна применения при
дефиците памяти.
Наконец отметим, что каждый элемент ау используется лишь при вычис-
лении гу, как ясно видно из (1.4.13) и (1.4.14). Отсюда следует, что в компью-
терной программе гу можно записать на место ау. Это сохраняет дополни-
тельное пространство в памяти, устраняя необходимость запоминания двух
массивов R и А.
50
Глава 1. Гауссово исключение и его варианты
Упражнение 1.4.16. Напишите алгоритм, опирающийся на (1.4.13) и (1.4.14),
который проверяет положительную определенность матрицы и вычисляет Л, за-
писывая R на место А. □
Ваше решение упражнения 1.4.16 должно выглядеть приблизитель-
но так:
Алгоритм Холесского (в форме внутреннего произведения)
for i = 1, ...,n
for k = 1,..., i -1 (при i = 1 не выполняется)
< (1ц ~^ki
if ah- <0, установить признакошибки (A - неположительно
определенная), выход
г— (1.4.17)
ап (этоестьги)
for j = i -1,..., п (при i = п не выполняется)
for k = 1,..., i -1 (при i = 1 не выполняется)
&у ~aki^kj
[ау <-а^/ац (это есть
Верхняя часть R записывается на место верхней части А. Нет необхо-
димости хранить нижнюю часть Л, так как она состоит целиком из
нулей.
Пример 1.4.18. Пусть
Обратите внимание, что А симметрична. Воспользуемся методом Хо-
лесского, чтобы показать, что А — положительно определенная, и вычис-
лить множитель Холесского R. Затем мы используем множитель Холес-
ского при решении системы Ах = b прямой и обратной подстановками.
Имеем
П1 = 7^7 = V4 = 2,
ri2 = ап/г\\ = -2/2 = -1,
ris — 2,
П4= 1,
1.4. Положительно определенные системы. Разложение Холесского
51
Гц — ^22 ~~Г\2 ~ — 3,
r2y - а23 ~ri3ri2 _ -2-(-1)2 = Q
Г24 = -2,
г33 = ^зз — г23 -г22 = л/8—22 -О2 = 2,
_ й34 “Г14Г13 “Г24Г23 _ 4-(2)(1)-(0)(-2) _
Г34 ----------------------------------------- Z>
Г33 2
Г44 = 7°44 -П4 ~Г24 ~ri = л/7"12 -(~2)2 ~12 = 1 •
Таким образом,
"2-12 Г
R _ 0 3 0 -2
""0 0 2 1*
О ° ° !
Поскольку нам удалось вычислить Л, то А является положительно опреде-
ленной. Можно проверить полученный результат, умножив RT на R и отметив,
что это произведение равно А.
Чтобы решить систему Ах = Ь, нужно сначала решить систему RTy = b пря-
мой подстановкой и получить у - [ 4 2 4 2]Т. Затем нужно решить систему Rx = у
обратной подстановкой, чтобы получить х = [ 1 2 1 2 ]г. Наконец, проверим
нашу работу, умножив А на х и убедившись, что мы получили Ь. □
Пример 1.4.19. Вычислите R (из примера 1.4.18) методом стираний.
Начните с массива, состоящего из карандашного варианта А (только
главная диагональ и верхний треугольник). После вычисления каждого из
элементов rijt сотрите atj и на его место запишите ги. Выполните все необ-
ходимые операции в уме, пользуясь для справок лишь одним указанным
массивом. Как только вы набьете руку, процедура окажется на удивление
простой. □
Пример 1.4.20. Пусть
2 3
5 10
10 16
Воспользуемся методом Холесского для выяснения положительной опре-
деленности А. Поступая, как в примере 1.4.18, найдем, что rH = 1, г12 = 2, г13 = 3,
52
Глава 1. Гауссово исключение и его варианты
r22 = 1, /*23 = 4 и, наконец, г33 = д/а33 -г13 -г2з ~ V“9- При вычислении г33 мы на-
толкнулись на отрицательное число под знаком квадратного корня. Таким об-
разом, А не является положительно определенной. □
Упражнение 1.4.21. Пусть
'16 4 8 4"
4 10 8 4
А = 8 8 12 10 И
_4 4 10 12
32
26
38
30_
Отметьте симметричнось А. (а) Используя метод Холесского с внутренним
произведением, установите положительную определенность А и вычислите
множитель Холесского. (Ь) Воспользуйтесь прямой и обратной подстановками
для решения линейной системы Ах = Ь. □
Упражнение 1.4.22. Определите, является ли каждая из приведенных мат-
риц положительно определенной:
□
Упражнение 1.4.23. Снова выполните упражнение 1.4.22 с помощью
MATLAB’a. Команда MATLAB’a R = chol (А) вычисляет множитель Хо-
лесского матрицы А и заносит его в R. При вычислениях используется
верхняя половина A. (MATLAB не проверяет, является ли симметричной А.
Чтобы получить дополнительную информацию о chol, наберите help
chol.) □
Хотя обычно метод Холесского работает хорошо, все же необходимо со-
блюдать осторожность. В отличие от небольших ручных вычислений, разбро-
санных по всей книге, большинство матричных вычислений выполняется на
компьютере, и в этом случае арифметические операции подвержены ошибкам
округления. В гл. 2 мы увидим, что и при наличии ошибок округления метод
Холесского оправдывает наши надежды. Однако существуют линейные систе-
мы, называемые плохо обусловленными, которые при наличии ошибок просто
не могут быть решены точно. Естественно, нельзя ожидать, что метод Холес-
ского (выполняющийся с ошибками округления) решит плохо обусловленные
системы точно. Подробности о плохо обусловленных системах и ошибках ок-
ругления см. в гл. 2.
1.4. Положительно определенные системы. Разложение Холесского 53
Подсчет флопов
Для подсчета числа флопов в алгоритме Холесского (1.4.17) нам потребует-
ся формула
= л3/3 + О(п2).
/=1
Простейший путь получить ее - это аппроксимировать сумму инте-
гралом:
п п
X*2 ~ f /2 di = и3/3.
/=1 о
Подробности обсуждаются в упражнениях 1.4.70 и 1.4.71.
Утверждение 1.4.24. Применение алгоритма Холесского (1.4.17) к п х п-мат-
рицам требует примерно п3/3 флопов.
Упражнение 1.4.25. Докажите утверждение 1.2.24. □
Доказательство. Из (1.4.17) видно, что в каждом из двух ^-циклов выполня-
ется по два флопа. Чтобы узнать, сколько раз выполняется каждый цикл, рас-
смотрим пределы изменения переменных цикла. Видно, что число флопов, от-
носящихся к первому £-циклу, равно
п i +1 п
ZE2 = 2Z> - о =-1)
/=| *=| 1=1
согласно упражнениям 1.3.25 или 1.3.26. Та же процедура в применении ко
второму Л-циклу дает число флопов, равное
Это тройная сумма, поскольку циклы имеют глубину вложения 3. Далее,
п п /-1 п п п
Е Z Z2 = 2Z Z- d = 2?,<« - 0(/ - 1) =
/=1 /=/4-1 Л = 1 / = 1 /=/4-1 '
= 2n£(i - 1) - 2^/2 + 2^ / = п3 - 2п3/3 + О(п2) « п3/3.
/=1 /=1 /=1
п п
Здесь мы воспользовались оценками 2^ (z - 1) = п2 + О(п) и 2^ / = л2 + О(п).
/=1 /=1
В конце отброшен член О(п), потому что при достаточно больших п он мал в
сравнении с членом п3/3. Таким образом, во втором Л-цикле выполняется
54
Глава 1. Гауссово исключение и его варианты
около м3/3 флопов. Заметьте, что число флопов, выполняемых в первом Л-цик-
ле, в сравнении с этим пренебрежимо мало.
Кроме флопов в ^-циклах есть несколько операций деления. Их точное
число равно
п п п
Е Е1 = - о = и<и - D/2’
/ = 1 J=/+| / = 1
П
и оно также пренебрежимо мало. Наконец, производится 1 = п проверок на
/=|
ошибку и извлечений квадратного корня. Окончательно число флопов в
(1.4.17) равно п3/3 + О(п2). □
Так как число флопов равно О(и3), каждое удвоение размеров матрицы
приводит к восьмикратному увеличению времени вычисления множителя Хо-
лесского. См. упражнение 1.4.72.
Если мы хотим решить систему Ах = b методом Холесского, сначала при-
дется затратить п3/3 флопов на вычисление разложения Холесского. После
этого мы должны выполнить прямую и обратную подстановки, используя
множитель Холесского и его транспонирование и затратить на это 2п2 флопов,
что пренебрежимо мало по сравнению с м3/3. Таким образом, затраты на ре-
шение большой системы методом Холесского составляют примерно п3/3 фло-
пов, так что при удвоении порядка системы происходит восьмикратное увели-
чение времени ее решения.
Метод Холесского с внешним произведением
Вариант метода с внешним произведением получается разбиением выраже-
ния А - RTR в виде
°11 bT =р|1 °] 'll ST
b Jj [_J ^JL° R
(1.4.26)
Приравнивая блоки, получим три равенства:
ап = Гц, Ьт = Гц5Г, A = ssT + RTR. (1.4.27)
Четвертое равенство b = srH лишнее. Равенства (1.4.27) подсказывают сле-
дующую процедуру вычисления rn, sT и R (и, следовательно, R):
П1 =
= №
А = А - ssT.
Решить А = RTR относительно R
(1.4.28)
1.4. Положительно определенные системы. Разложение Холесского
55
Она сводит задачу нахождения множителя Холесского для матрицы разме-
ров п х п к задаче для (п - 1) х (п - 1)-матрицы А. Эта задача может быть реду-
цирована к задаче для (п-2) * (п- 2)-матрицы посредством того же алгорит-
ма, и т.д. В конечном счете задача редуцируется к тривиальному случаю мат-
рицы 1x1. Эта процедура называется методом Холесского с внешним
произведением, потому что на каждом шаге внешнее произведение ssT вычита-
ется из оставшейся подматрицы. Она легко может быть представлена как в ре-
курсивном, так и в нерекурсивном виде.
Упражнение 1.4.29. Воспользуйтесь методом Холесского с внешним про-
изведением, чтобы вычислить множитель Холесского для матрицы из при-
мера 1.4.18. □
Упражнение 1.4.30. Примените этот метод к задаче из примера 1.4.20. □
Упражнение 1.4.31. Воспользуйтесь этим методом для п. (а) упражне-
ния 1.4.21. □
Упражнение 1.4.32. Примените этот метод к задаче из упражнения 1.4.22. □
Упражнение 1.4.33. Напишите нерекурсивный алгоритм, реализующий
процедуру Холесского с внешним произведением (1.4.28). Ваш алгоритм дол-
жен использовать симметрию А, обращаясь лишь к элементам главной диаго-
нали и над ней, а также записывать R на место А. Не забудьте вставить необхо-
димые проверки перед извлечением квадратного корня. □
Упражнение 1.4.34. (а) Подсчитайте число флопов в методе Холесского с
внешним произведением. Вы найдете, что для этого необходимо приблизи-
тельно п3/3 флопов, как и для варианта с внутренним произведением. (Если
вы проведете точный подсчет, то обнаружите, что эти числа совпадают). (Ь)
Убедитесь, что в алгоритмах Холесского с внутренним и внешним произведе-
ниями выполняются одни и те же операции, но в разном порядке. □
Окаймляющая форма метода Холесского
Полезность окаймляющей формы будет доказана в следующем разделе, где
мы рассмотрим версию метода Холесского для ленточных матриц. Начнем с
введения некоторых новых обозначений и терминологии. Пусть для j = 1,..., п
Aj есть j х/-подматрица, образованная пересечением первых j строк и столбцов
матрицы A. Aj называется j-й ведущей главной подматрицей А. В упражнении
1.4.54 вам нужно будет показать, что если А — положительно определенная, то
и все ее ведущие главные подматрицы положительно определенные. Предпо-
ложим, что А — положительно определенная, и пусть R — множитель Холес-
ского для А. Тогда R имеет ведущие главные подматрицы Лу, j = 1, ..., п, кото-
рые являются верхними треугольными с положительными элементами на
главной диагонали.
Упражнение 1.4.35. Соответствующим разбиением равенства Л = RTR пока-
жите, что Rj есть множитель Холесского для Лу- при j = 1,..., п. □
Легко построить Rl = [ги], поскольку ап = г\. По индукции, если мы знаем,
как построить Rj по известному Яу_ ь то мы в состоянии построить Rn = R за п
шагов. Поэтому предположим, что уже вычислена Rjf _ 1 и нужно найти Яу.
56
Глава 1. Гауссово исключение и его варианты
Разбивая равенство Лу = RjR, таким образом, что Aj_ । и Лу _ j присутствуют в ка-
честве блоков, т. е.
получим равенства
=/£,^.1. c = Rj_th, ajj = hTh + rj. (1.4.37)
Поскольку у нас уже есть Лу _ ь остается лишь вычислить h и г^, чтобы полу-
чить Rj. Равенства (1.4.37) показывают, как это можно сделать. Сначала решим
уравнение с = Rj_{h относительно h прямой подстановкой. Затем вычислим
= ^ajj -hTh. Алгоритм, который можно построить на основе сказанного, на-
зывается окаймляющей формой метода Холесского.
Упражнение 1.4.38. Воспользуйтесь окаймляющей формой метода Хо-
лесского, чтобы вычислить множитель Холесского для матрицы из приме-
ра 1.4.18. □
Упражнение 1.4.39. Воспользуйтесь окаймляющей формой метода Холес-
ского при рассмотрении примера 1.4.20. □
Упражнение 1.4.40. Воспользуйтесь окаймляющей формой при рассмотре-
нии п. (а) упражнения 1.4.21. □
Упражнение 1.4.41. Воспользуйтесь окаймляющей формой для упражне-
ния 1.4.22. □
Упражнение 1.4.42. (а) Подсчитайте число флопов в окаймляющей форме
метода Холесского. Вы опять найдете, что для этого необходимо выполнить
приблизительно /Р/З флопов. (Ь) Убедитесь, что этот алгоритм выполняет
точно те же арифметические операции, как и две другие формы метода Хо-
лесского. □
Итак, мы привели три различных формы метода Холесского. Мы отметили,
что форма с внутренним произведением имеет вложенный цикл глубиной три,
как и другие формы. Если рассмотреть все возможности, то обнаружится, что
имеется шесть различных основных вариантов, соответствующих шести ( = 3!)
различным способам вложения циклов. Эти шесть вариантов обсуждаются в
упражнении 1.7.55.
Поблочное вычисление разложения Холесского
У каждой формы алгоритма разложения Холесского имеется блочная
версия. Как было показано в разд. 1.1, блочные реализации намного пред-
почтительнее при работе с большими матрицами ввиду того, что они более
эффективно используют кэш и значительно легче поддаются распараллели-
ванию.
1.4. Положительно определенные системы. Разложение Холесского
57
Рассмотрим блочную версию формы с внешним произведением. Обобщая
(1.4.26), выпишем равенство А - RTR поблочно:
Ai
'R" о 1 ГЛч
ST RT о
В
А
5
R
Допустим, что Ап и 7?н - квадратные матрицы размеров dx х dx, а Ахх - сим-
метричная и (согласно упражнению 1.4.54) положительно определенная. К
тому же это равенство обобщает (1.4.36). Приравнивая поблочно, получим ра-
венства
ASI=R^RU, B = R"S, А = STS + RTR,
которые подсказывают следующую процедуру вычисления R:
Rn =cholesky(/4H),
s=r\\Tb> (1.4.43)
A=A-STS,
Rn = cholesky(^H).
Символ Rxf означает (Лц)7, а это то же самое, что и (Лц)"1. Операция S-
Rxx В не требует явного вычисления Rxf. Вместо этого мы возвращаемся к ра-
венству Rxx 5 = В. Обозначая через sub i-t столбцы матриц S и В соответствен-
но, видим, что = Ь. Поскольку Лц - нижняя треугольная, можно получить
s из b прямой подстановкой. (Именно такая операция выполнялась в окайм-
ляющей форме метода Холесского.) Производя эту операцию для каждого
столбца из 5, получаем S из В. Как правило, операция 5=Rxx В должна выпол-
няться именно так.
Упражнение 1.4.44. Покажите, что (С"1)г= (С7)"1 для любой невырожденной
матрицы С. □
Матрицы Л, В и R сами могут быть разбиты на блоки. Рассмотрим более
тонкое разбиение А:
б/| ^2 ’ * *
Ai А12 ... Als
^22 ••• ^2s
_ ^ss _
Ввиду симметрии мы показали здесь лишь верхнюю половину. Тогда
[Л{2 ... XJ,
58
Глава 1. Гауссово исключение и его варианты
и операция S = R{^ В принимает вид
B\j — Ay, j = 2, ..., s,
где R разбита в соответствии с Л, а операция А = А - STS принимает вид
AtJ = Аи - R?. Rl},
Зная Я, можно вычислить множитель Холесского, применяя к ней (1.4.43).
Упражнение 1.4.45. Напишите нерекурсивную процедуру, реализующую ал-
горитм, только что обрисованный нами в общих чертах. Ваш алгоритм должен
использовать симметрию А, обращаясь только к элементам главной диагонали
или верхней части А, и записывать R на место А. □
Ваше решение упражнения 1.4.45 должно походить на следующее:
Блочный алгоритм Холесского (в форме с внешним произведением)
for fc = l,..., s
Akk <- cholesky(Akk) (если cholesky выдает ошибку -
признакошибки, выход)
for / = £ + 1,..., s,
(1.4.46)
[Л^. <- Лн, Akj
for i = k + \,,..,s
Fforj =f,..., 5
l А/ Ajj — Akj Akj.
Чтобы реализовать этот алгоритм, нам нужна программа обычного разло-
жения Холесского (например, основанная на (1.4.17)) для выполнения малых
разложений Холесского Akk <- cholesky^). В операции Ау <- A^ Akj блок Л^
содержит текущую матрицу Rkk. Таким образом, эта операция может быть вы-
полнена, как мы уже объясняли, прямой подстановкой, и обратную матрицу
вычислять не нужно.
Упражнение 1.4.47. Напишите блочную версию метода Холесского с внут-
ренним произведением. □
Упражнение 1.4.48. Убедитесь, что блочные версии метода Холесского вы-
полняют точно те же операции, что и обычная, но в другом порядке. □
Выгода от блочной организации разложения Холесского такая же, как и
при блочном умножении, обсуждавшемся в разд. 1.1. Чтобы упростить обсуж-
дение, будем предполагать, что все блоки квадратные одинакового размера
d х d. Основная работа заключается в выполнении операции
~ ^уА/у,
находящейся во вложенных циклах глубины три. В основном это умножение
матрицы на матрицу, требующее 2d3 флопов. Если d настолько мало, что мы
1.4. Положительно определенные системы. Разложение Холесского
59
можем поместить три блока Aij9 Aki и Akj в кэш одновременно, то можно всю
операцию выполнить без перекачки данных в кэш и обратно. Поскольку мы
2
выполняем 2d3 флопов над 3d2 единицами данных, то получаем отношение -d
флопов на единицу данных. Чем больше d, удовлетворяющее ограничению на
размер, тем лучше используются наши данные. Такая же выгода получается и
при выполнении операций Akk <- cholesky(yl^) и AkJ <- Akk AkJ9 поскольку каж-
дая требует O(d3) для O(d2) единиц данных.
Упражнение 1.4.49. Покажите, что реализация Akj <- AkkAkj посредством
прямой подстановки требует d3 + O(zf) флопов, если все три блока имеют раз-
меры d х d. □
Рассмотрим кратко расчет множителя Холесского на параллельном компь-
ютере по алгоритму (1.4.46). Это стоит делать, если матрица имеет очень боль-
шие размеры. Сохраним упрощающее предположение, что все блоки имеют
размеры d х d. Отсюда следует, что п - ds. При увеличении d нужно уменьшить
5, и наоборот. Сосредоточимся на той части алгоритма, в которой выполняется
большая часть работы. При каждом к операции
< Ац — AkjAkJ
могут быть выполнены одновременно для i = к + 1,..., s nj = z,..., s. Таким об-
разом, одновременно могут работать по крайней мере s2/2 процессоров. Это
означает, что 5 должно быть большим (a d, следовательно, малым). С другой
стороны, процессор не сможет выполнить операции, пока не получит необхо-
димые данные. Так как 2d3 флопов выполняются над 3d2 единицами данных,
число перемещений данных минимизируется увеличением d. Это говорит о
том, что d надо сделать большим (и, следовательно, s малым). Итак, мы пони-
маем, что здесь необходимы взаимные уступки, которые не дали бы нам сде-
лать слишком большим либо d, либо s. Какой выбор — d или 5 — лучше, зави-
сит от особенностей используемого параллельного компьютера.
Упражнение 1.4.50. Предполагая, что в (1.4.46) блоки имеют размеры d х d,
определите долю общей работы (выраженной в флопах), которая тратится (а)
на вычисление разложений Холесского для блоков главной диагонали и (Ь) на
выполнение операций AkJ Акк Akj. В каждом случае ваш ответ должен быть
функцией от s. Чему равны эти доли при 5=10? при s = 20? □
Доказательство теоремы о разложении Холесского
Обсудив применение разложения Холесского, установив, как вычисляется
множитель Холесского и отметив многочисленные способы организации вы-
числений, можно теперь уделить время доказательству теоремы о разложении
Холесского. Для начала вспомним, что симметричная матрица А является по-
ложительно определенной, если хТАх > 0 для всех отличных от нуля х е R". Ис-
пользуем это свойство при доказательстве нескольких утверждений.
Утверждение 1.4.51. Если А - положительно определенная, то аИ > 0 для
i = 1, ..., п.
60
Глава 1. Гауссово исключение и его варианты
Упражнение 1.4.52. Докажите утверждение 1.4.51. Не используйте в вашем
доказательстве разложение Холесского, поскольку мы хотим применить этот
результат при доказательстве существования такого разложения. (Указание:
Найдите такой ненулевой вектор х, чтобы хТАх = ait.) □
Утверждение 1.4.53. Пусть А — положительно определенная матрица с раз-
биением
А _ ^н Лг
_^21 ^22 _
в котором АП и А22 — квадратные. Тогда Alt и А22 — положительно определенные.
Упражнение 1.4.54. Докажите утверждение 1.4.53. Как и в предыдущем уп-
ражнении, не используйте при этом разложение Холесского, а воспользуйтесь
тем фактом, что хТАх > 0 при всех х, отличных от нуля. □
Утверждения 1.4.51 и 1.4.53, очевидно, тесно связаны: 1.4.53 по существу
является обобщением 1.4.51. Можете ли вы найти обобщение, которое содер-
жало бы оба результата? Какой самый общий результат вы сможете найти?
После всех ваших рассмотрений взгляните на упражнение 1.4.61.
Утверждение 1.4.55. Если А и X имеют размерность п х п, А — положительно
определенная и X— невырожденная, то матрица В = ХГАХ также положительно
определенная.
Рассматривая специальный случай матрицы А = I (которая, очевидно, по-
ложительно определенная), видим, что это утверждение является обобщением
теоремы 1.4.4.
Упражнение 1.4.56. Докажите утверждение 1.4.55. □
Теорема о разложении Холесского утверждает, что, если А — положительно
определенная, то существует единственная матрица R, которая является верхней
треугольной, с положительными элементами на главной диагонали и такой, что
А = RTR. Мы уже обосновали единственность, осталось лишь доказать существо-
вание. Сделаем это индукцией по п. При п = 1 имеем А = [ап]. Согласно утвержде-
нию 1.4.51 > 0. Пусть rn = +у/а^ и R = [гп]. Тогда R обладает необходимыми
свойствами. Переходя к главной части доказательства, покажем, что каждая по-
ложительно определенная п х «-матрица имеет множитель Холесского, если та-
ким свойством обладает каждая положительно определенная (п - 1) х (п - 1)-мат-
рица. Заданную положительно определенную п х «-матрицу А разобьем так же,
как при рассмотрении метода Холесского с внешним произведением:
Утверждение 1.4.51 гарантирует, что > 0. Руководствуясь (1.4.27) и
(1.4.28), определим
ги = +АЙ
5 = Гц'Л,
А = А - ssT.
1.4. Положительно определенные системы. Разложение Холесского
61
Тогда, как легко показать,
01Г1 01Ггн sT
/] [° Л J [ ° I
(1.4.57)
где / обозначает (п - 1) х (п - 1)-единичную матрицу. Матрица
О /
является верхней треугольной с отличными от нуля элементами на главной
диагонали и поэтому невырожденной. Обозначим обратную к ней матрицу че-
рез X. Тогда, если положить
1 О
О А
В =
то 2? - ХТА X, так что В - положительно определенная в соответствии с утвер-
ждением 1.4.55. Применяя к В утверждение 1.4.53, найдем, что А — положи-
тельно определенная. Так как Л имеет размеры (п - 1) х (п - 1), то существует
верхняя треугольная матрица R с положительными элементами на главной
диагонали и такая, что A = RTR по индуктивному предположению. Следова-
тельно, используя (1.4.57), получим
А =
s
01Г1
I 0 RT
о 1Г1 01",
0 R
т~\
'll S
0 /
rii °1ГГ"
j RT 0
= RTR,
R
где R - верхняя треугольная матрица с положительными элементами на глав-
ной диагонали. Это завершает доказательство.
Матрица Л = Л - ssr = Л - а[{[ bbт называется дополнением Шура для элемента
ап в матрице Л. Основная цель доказательства теоремы о разложении Холес-
ского - показать, что положительная определенность наследуется дополнени-
ем Шура. Это соображение обобщается в следующем упражнении.
Упражнение 1.4.58. Пусть Л =
^12
^22
— положительно определенная, и
предположим, что Лп имеет размеры j ху, а Л22 - к х к. Согласно 1.4.53, Ли -
положительно определенная. Пусть - множитель Холесского матрицы Л,,,
Л12 = ЯцГЛ 12 и Л22 = Л22 - R\2 Л|2. Матрица Л22 называется дополнением Шура для
Ли в матрице Л.
(а) Покажите, что Л22 = Л22 - А21А^1А12.
(b) Выведите разложение матрицы Л, подобное (1.4.57), которое содержит Л22.
(с) Докажите, что Л22 - положительно определенная. □
62
Глава 1. Гауссово исключение и его варианты
Упражнение 1.4.59. На основе разложения, предложенного в предыдущем
упражнении, получите второе доказательство существования множителя Хо-
лесского. □
Упражнение 1.4.60. Аккуратно докажите по индукции единственность раз-
ложения Холесского: положите А = RTR = SrS, где R и S — обе верхние тре-
угольные матрицы с положительными элементами на главной диагонали; раз-
бейте A, R и S на части одинаковым образом и докажите, что части разбиения
S должны равняться соответствующим частям разбиения R. □
Упражнение 1.4.61. Данное упражнение обобщает утверждения 1.4.51 и
1.4.53. Пусть А — положительно определенная п х «-матрица, пусть также
Л, Л, •••> Л - целые числа такие, что 1 < j\ < /2 < п> и пусть А есть
к х ^-матрица, полученная в результате пересечения строк/, ..., д со столб-
цами /], Докажите, что А - положительно определенная. □
Упражнение 1.4.62. Докажите, что если А — положительно определенная, то
det(H)>0. □
Комплексные положительно определенные матрицы
Следующие три упражнения показывают, как результаты этого раздела мо-
гут быть распространены на комплексные матрицы. Множество комплексных
«-векторов обозначим через С”. Матрица А*, сопряженно транспонированная
комплексной т х «-матрице Л, есть « х «j-матрица, у которой элемент (ij) равен
ау/ . Черта сверху означает комплексное сопряжение. А называется эрмитовой,
если А = Л*, т.е. aji - ajt- для всех i и j.
Упражнение 1.4.63. (а) Докажите, что если А и В - комплексные т х « и
« х р матрицы, то (ЛВ)* = В*Л*. (Ь) Докажите, что если Л - эрмитова, то х*Ах
есть вещественное число для каждого х е С”. (Указание: число а = х*Ах вещест-
венно тогда и только тогда, когда а = а. Представьте себе а как 1 х 1-матрицу и
рассмотрите матрицу а*.) □
Если Л — эрмитова и удовлетворяет условию х*Ах > 0 для всех ненулевых
х е С”, то говорят, что Л является положительно определенной.
Упражнение 1.4.64. Докажите, что если М — произвольная невырожденная
« х «-матрица, то М*М— положительно определенная. □
Упражнение 1.4.65. Докажите, что если Л — положительно определенная, то
существует единственная матрица R такая, что R является верхней треуголь-
ной с положительными (вещественными!) элементами на главной диагонали и
Л = R*R. Это разложение Холесского матрицы Л. □
Все алгоритмы, рассмотренные нами в этом разделе, можно легко приспо-
собить к комплексному случаю.
Дополнительные упражнения
Упражнение 1.4.66.
(а) Мощность, потребляемая прибором (в ваттах), равна произведе-
нию электродвижущей силы (в вольтах) на ток (в амперах). Коротко,
1.4. Положительно определенные системы. Разложение Холесского
63
Вт = В х А. Предположим, что ток силой в / А проходит через резистор
с сопротивлением R Ом, приводя к падению напряжения в Е В. Пока-
жите, что мощность, рассеиваемая резистором, равна (i) RI2 Вт, (ii)
E2/R Вт.
(b) Рис. 1.9 изображает контурные токи, проходящие через резисторы с со-
противлениями R и S. Очевидно, сопротивление в S Ом потребляет мощность
Sx2, которая положительна, поках, ф 0. Покажите, что мощность, потребляе-
мая резистором в R Ом, равна Л(х, - ху)2. Покажите, что этот резистор потреб-
ляет положительную мощность, пока х,- ф хг В противном случае она не по-
требляется. Докажите, что потребляемая резистором мощность может быть
выражена как
[*/ Xj]
’ R -Л"| [" xz
-R R
Xi
(с) Пусть
-5
-5
8
- матрица из примера 1.2.8. Покажите, что если х =
*1
х2
— вектор контурных
9
токов, то общая мощность, потребляемая всеми контурами цепи, равна хТАх.
Установите положительную определенность А.
(d) Покажите, что 9 х 9-матрица коэффициентов из примера 1.2.19 - поло-
жительно определенная. (Указание. Покажите, что потребляемая цепью мощ-
ность равна сумме членов вида Rx% и Я(х, - х7)2, и что эта сумма положительна,
если все контурные токи отличны от нуля. Затем покажите, что эта мощность
может быть представлена в виде хГАх, где А - матрица коэффициентов систе-
мы.) □
Упражнение 1.4.67.
(а) Проводимость С резистора (в сименсах) равна обратной величине сопро-
тивления: С - \/R. Покажите, что если два узла с потенциалами х, и ху связаны
64
Глава 1. Гауссово исключение и его варианты
резистором с проводимостью С, то мощность, потребляемая резистором, равна
C(Xj — Ху)2,что может быть записано в виде
Эта величина положительна, если х,- ф хг
(Ь) Рассмотрите цепь на рис. 1.1 из примера 1.2.6. Покажите, что мощность,
потребляемая этой цепью, равна сумме членов вида С(х, - ху)2 и положительна,
если только все узловые потенциалы х15 ..., х6 не равны между собой.
(с) Покажите, что эту мощность можно представить как хГНх, где Н есть
симметричная 6 х 6-матрица. Эта матрица является положительно полуопреде-
ленной, поскольку хТНх > 0 для всех х.
(d) Пусть А обозначает матрицу коэффициентов системы из примера
1.2.6. Покажите, что А есть подматрица матрицы Н из п. (с). Докажите, что
А — положительно определенная. (Указание: Положите х5 = х6 = 0 в выраже-
нии хтНх.)
(е) Покажите, что матрица коэффициентов цепи из упражнения 1.2.17 -
положительно определенная. □
Упражнение 1.4.68.
(а) Когда пружина растянута (или сжата) относительно положения равно-
весия (0 м) до некоторого нового положения (х м), то энергия, аккумулирован-
ная пружиной (энергия деформации), равна работе, затраченной на перевод
X
пружины в это новое положение. Она равна j f(s)ds Дж, интегралу силы вдоль
о
пути, где f(s) — сила (в Н), действующая против пружины, растянутой до s м.
Покажите, что для линейной пружины с жесткостью к Н/м, энергия деформа-
ции равна j кх2 Дж.
(Ь) Покажите, что если пружина растянута (или сжата) перемещением ее
правого и левого концов нах2 hxj м соответственно, то ее энергия деформации
равна величине к(хх - х2)2 Дж, положительной при Xj * %2. Покажите, что
энергия деформации может быть записана в виде
| [*1 *2]
-ЛЯ Г х,
к J х2
(с) Покажите, что общая энергия деформации системы пружин и масс из
примера 1.2.10 есть сумма членов вида кх2 и к(х, - х/+ О2, которая положитель-
на, пока все перемещения отличны от нуля.
(d) Пусть А - матрица коэффициентов системы пружин и масс из примера
1.2.10. Покажите, что энергия деформации этой системы равна ^хгАх. Дока-
жите, что А - положительно определенная.
1.4. Положительно определенные системы. Разложение Холесского
65
(е) Покажите, что матрица коэффициентов системы пружин и масс из при-
мера 1.2.20 - положительно определенная. □
Упражнение 1.4.69. Пусть v - вектор с компонентами, представляющими
некие статистические данные. Например, v может быть вектором с 365 ком-
понентами, представляющими значения температуры в Сиэтле в течение 365
дней. Мы можем нормализовать этот вектор, вычисляя его среднее и вычи-
тая это среднее из всех компонент, чтобы получить новый вектор со сред-
ним, равным нулю. Предположим, что есть такой нормализованный вектор.
п
Тогда дисперсия вектора v есть ]>Ч2. Это неотрицательное число дает меру
/ = !
рассеяния данных. Обратите внимание, что если мы рассматриваем v как
вектор-столбец, то дисперсия может быть представлена как vrv. Теперь пусть
v и w - два вектора с нулевыми средними и дисперсиями, равными (после их
п
нормировки) 1. Тогда корреляция v и w определяется как = wrv = v7w.
/=i
Это число, которое может быть положительным или отрицательным, пока-
зывает, насколько изменения данных в v и w согласуются друг с другом. На-
пример, температуры в Сиэтле и Такоме должны иметь положительную кор-
реляцию, тогда как температуры в Сиэтле и Хобарте, Тасмания, должны
иметь отрицательную корреляцию. Теперь рассмотрим к векторов vb ..., vk с
нулевыми средними и единичными дисперсиями. Корреляционная матрица С
данных Vj, ..., vk есть к х ^-матрица, чей (/, у)-элемент есть ci} = vjvh корреля-
ция v, и Vj. Покажите, что С есть симметричная матрица, у которой все эле-
менты на главной диагонали равны единице. Покажите, что С = VTV для не-
которой, соответствующим образом подобранной (неквадратной) матрицы И
Покажите, что С является положительно определенной матрицей, если век-
торы Vj, ..., vk линейно независимы. Покажите, что если vb ..., vk линейно за-
висимы, то С является не положительно определенной, а положительно по-
луопределенной, т.е. хТСх > 0 для всех х. □
Упражнение 1.4.70. Нарисуйте график, показывающий, что
п п я+1
j i2di < i2 < j i2di.
о '=° о
Докажите, что
^i2 = п*/3 + О(п2).
i=0
□
Упражнение 1.4.71. Докажите индукцией по п, что
Х<2 = л(«+ 1/2)(л+ 1)/3.
/=0
□
з Основы матричных вычислений
66
Глава 1. Гауссово исключение и его варианты
Упражнение 1.4.72. Разберитесь, что делает следующая MATLAB-программа:
п = 100;
for jay = 1:4
if jay > 1; oldtime = time ; end
M = randn(n);
A = M'*M;
t = cputime;
R = chol(A);
matrixsize = n
time = cputime - t
if jay > 1; ratio = time/oldtime, end
n = 2*n;
end
Если вы запишете эти команды в файл с именем, например, zap.m, то смо-
жете выполнить эту программу, набрав zap в командной строке MATLAB’a.
Функции randn, cputime и chol являются встроенными функциями
MATLAB’a, так что вы можете узнать о них, набрав help randn, и т.д. Может
оказаться полезным перед набором help {topic} выполнить more on.
(а) Насколько разумно значение отношения, полученного вами в результа-
те выполнения программы? Какой результат предсказывает теория? Вы може-
те подобрать величину п или число выполнений j ay-цикла в соответствии со
скоростью компьютера, на котором вы работаете с MATLAB’ом.
(Ь) Почему время выполнения программы (т.е. время ожидания ответа) на-
много больше времени, выданного программой? □
Упражнение 1.4.73. Напишите программу на Фортране, реализующую ме-
тод Холесского в форме (а) с внутренним произведением, (Ь) с внешним про-
изведением, (с) с окаймлением. Если вы уже написали программу прямой под-
становки, то можете использовать ее при написании варианта (с). Ваши под-
программы должны работать лишь с элементами на главной диагонали и в
верхней части Л, и они должны записывать R вместо А. Они должны либо вер-
нуть Л, либо выдать предупреждающее сообщение, указывающее, что Л не яв-
ляется положительно определенной. Проверьте ваши программы на следую-
щих примерах:
0М =
36 30
30 34
24 26
24
26
21
1 -1
-1 2
(Н)Л= 1 -2
-1 2
1 -2
1
-2
3
-3
3
-1 1
2 -2
-3 3
4 -4
-4 5
1.5. Ленточные положительно определенные системы
67
12 3
(iii) А = 2 5 10
3 10 16
(ср. с примером 1.4.20).
У вас может возникнуть желание разобрать еще несколько примеров. Са-
мый простой способ сделать это — выписать сначала Л, а затем перемножить
RT и R, чтобы получить А. С помощью MATLAB’a вы можете построить еще
больше матриц. MATLAB-команда save записывает матрицу в ASCII-файл.
Чтобы узнать подробности о команде, наберите help save. □
Упражнение 1.4.74. Напишите программу на Фортране, которая решает по-
ложительно определенную систему Ах = Ь, вызывая подпрограммы, которые
(а) вычисляют множитель Холесского, (Ь) выполняют прямую подстановку и
(с) выполняют обратную подстановку. Попробуйте с помощью вашей про-
граммы решить следующие задачи:
(i)
36
-30
24
Возможно, вы захотите рассмотреть еще несколько примеров. С помощью
MAT LAB’а можно построить много примеров, о чем говорилось в предыду-
щем упражнении. □
1.5. Ленточные положительно определенные системы
Большие системы часто возникают в приложениях, и эти системы обычно
разреженные. В данном разделе мы рассмотрим простые, но все же очень эф-
фективные схемы использования метода Холесского при решении больших
положительно определенных систем уравнений, являющихся ленточными или
имеющих оболочечную структуру. Этот метод широко используется и может
принести существенную экономию компьютерного времени и объема памяти.
Однако это не обязательно самая экономная схема. Более хитроумные методы
для разреженных матриц кратко рассматриваются в разд. 1.6, а с деталями
можно познакомиться, например, в [30] и [21]. Для очень больших систем
предпочтительнее оказываются итерационные методы. Итерационные методы
для разреженных линейных систем изучаются в гл. 7.
68
Глава 7. Гауссово исключение и его варианты
Рис. 1.10. Ленточная матрица: все
элементы вне ленты равны нулю.
Матрица А называется ленточной, если
имеется узкая полоса вокруг главной диаго-
нали такая, что все элементы А вне этой по-
лосы равны нулю, как показано на рис. 1.10.
Более точно, если А имеет размеры п х п и су-
ществует s < п такое, что ау = 0 при | i - j| > s, то
все ненулевые элементы А сосредоточены в
полосе из 25 + 1 диагоналей, с главной диаго-
налью в центре. Мы говорим, что А есть лен-
точная матрица с шириной ленты. 2s + 1. Так
как в этой главе мы ограничимся симметрич-
ными матрицами, нам нужна лишь половина
ленты. Поскольку - 0 при i-j> 5, существует полоса из s диагоналей выше
главной, которая наряду с главной диагональю содержит все ненулевые эле-
менты матрицы Л. В этом случае мы говорим, что Л имеет полуширину ленты s.
Упражнение 1.5.1. Рассмотрим систему пружин и масс, изображенную на
рис. 1.11. Это в точности та система, которая обсуждалась в упражнении 1.2.20.
Имеются п тележек, сцепленных пружинами. Если к тележкам прилагаются
силы, мы можем рассчитать их смещения решая систему Ах = Ь из п уравне-
ний с п неизвестными. Так как 7-я тележка непосредственно связана лишь с
двумя соседними, 7-е уравнение содержит только неизвестные xz_ b xit и xi + b
Таким образом, оно имеет вид
aiti _ j*,- _ I + ajjXi + ац + !%,• + j = bit
и atj = 0 при | 7 — j | > 1. Это простейший пример ленточной матрицы коэффи-
циентов. Ширина ее ленты равна 3, а полуширина - 1. Такие матрицы называ-
ются трехдиагоналъными. □
Рис. 1.11. Система из п масс.
Пример 1.5.2. Рассмотрим 100 х 100-систему уравнений Ах = b для решетки,
изображенной на рис. 1.12. Каждой 7-й точке решетки соответствует одно урав-
нение и одно неизвестное. Например, неизвестным может быть узловое напря-
жение (или смещение, давление, температура, гидростатический напор, ...).
Предположим, что 7-е уравнение содержит только неизвестные, соответствую-
щие 7-й точке решетки и точкам, непосредственно связанным с ней. Например,
34-е уравнение содержит лишь неизвестные х24> *зз> *34, *35 и *44- Это означает,
что в 34-й строке матрицы Л только элементы 24, л34 33, 34, д34 35 и а34>44 отлич-
ны от нуля. Остальные 95 равны нулю. Разумеется, это верно и для других урав-
нений: ни одна строка матрицы Л не содержит более пяти ненулевых элементов.
1.5. Ленточные положительно определенные системы
69
Рис. 1.12. «Большая» решетка.
Таким образом, матрица сильно разрежена. Она к тому же является ленточной,
если уравнения и неизвестные пронумерованы так, как показано на рисунке.
Ясно, что ау = 0, если | i -j | > 10. В итоге системе соответствует матрица разме-
ров 100 х 100 с полушириной ленты 10. □
Упражнение 1.5.3. Сделайте грубый набросок матрицы из примера 1.5.2,
пометив, где расположены нулевые и ненулевые элементы. Обратите внима-
ние, что даже внутри ленты большинство элементов равно нулю. □
Упражнение 1.5.4. В современных приложениях появляются матрицы с раз-
мерами, намного превосходящими приведенные в примере 1.5.2. На рис. 1.12
изображена сетка из узлов с размерами 10 х 10. Вообразите, что сетка имеет
размеры т х т с т > 10. Как много уравнений будет иметь соответствующая
система? Как много ненулевых элементов будет в каждой из строк матрицы?
Какова будет ширина ленты системы в предположении, что неизвестные про-
нумерованы в соответствии с рис. 1.12? Ответьте на эти вопросы в общем и для
конкретных значений (а) т = 100, (Ь) т - 1000. □
Обратите внимание, что наличие полосы зависит от способа нумерации уз-
лов. Если, например, на рис. 1.12 поменять местами узлы 2 и 100, итоговая
матрица уже не будет ленточной, так как а100д и 100 не равны нулю. Однако
она все еще остается разреженной: число ненулевых элементов в матрице не
зависит от порядка расположения узлов.
Если сетка регулярна, то легко понять, как нужно пронумеровать узлы,
чтобы получить узкую ленту. Нерегулярная сетка также может привести к лен-
точной системе, но для этого обычно труднее найти нужный порядок узлов.
Ленточные положительно определенные системы можно решать эконом-
но, поскольку можно не учитывать элементы, лежащие вне ленты. Поэтому
очень важно, что множитель Холесского сохраняет ленточную структуру ис-
ходной матрицы. Так мы можем сэкономить память, используя для этого
структуру данных, позволяющую хранить лишь полуленту матрицы А. Мно-
70
Глава 1. Гауссово исключение и его варианты
житель R можно записать на место А. Столь же важно, что компьютерное
время может быть сэкономлено за счет исключения операций над элемента-
ми вне ленты. Как мы скоро убедимся, эта экономия будет существенной.
Вместо того, чтобы рассматривать ленточные системы, введем более общее
понятие, а именно понятие оболочки матрицы. Это приведет к увеличению
общности обсуждения, но упростит анализ. Оболочкой симметричной верхней
треугольной матрицы А называется множество упорядоченных пар (/,/), i < J,
обозначающих положение элементов в Л, таких, что принадлежит оболоч-
ке матрицы А, тогда и только тогда, когда akj ф 0 для некоторого k < I. Так, если
первый ненулевой элементу-го столбца есть amj и т < у, то (m, у), (т + 1, у), ...,
(J - 1,/) являются элементами оболочки А по у-му столбцу.
Основная теорема об оболочках (теорема 1.5.7) утверждает, что если R -
множитель Холесского матрицы Я, то R имеет ту же оболочку, что и А. Таким
образом, в структуре данных матрицы А могут храниться лишь ее главная диа-
гональ и элементы ее оболочки, a R можно записывть на место А. Все опера-
ции, использующие элементы вне оболочки, можно опустить. Если оболочка
мала, можно получить существенную экономию машинного времени и памя-
ти. Ленточные матрицы имеют небольшие оболочки. Простым примером не-
ленточной матрицы с небольшой оболочкой является матрица
2-1 0 ... О 0 -1
-1 2 -1 •. О О
0-1 2 \ 0
0 2-10
0 0 -12-1
-10 0 ... 0-1 2
(1.5.5)
которая получена при дискретизации обыкновенного дифференциального
уравнения с периодическим граничным условием. □
Упражнение 1.5.6. Определите оболочку матрицы в (1.5.5). Предполагая,
что матрица имеет размеры п х /?, приблизительно укажите, какая часть верх-
ней треугольной матрицы лежит в оболочке? □
Как и ширина лепты, оболочка зависит от порядка нумерации уравнений и
неизвестных. Часто нетрудно усмотреть, как нужно пронумеровать узлы, что-
бы получить достаточно небольшую оболочку. В тех случаях, когда сложно
указать порядок узлов, существуют алгоритмы, позволяющие в некотором
смысле минимизировать оболочку. В качестве примера познакомьтесь с обсу-
ждением обратного алгоритма Катхилла—Мак-Ки в [30].
Теорема 1.5.7. Пусть матрица А — положительно определенная и R — ее мно-
житель Холесского. Тогда R и А имеют одну и ту же оболочку.
Доказательство. Рассмотрим метод Холесского с окаймлением. На j-м шаге
там решается система
R^h = с,
1.5. Ленточные положительно определенные системы
71
где с е R7 1 - частьу-го столбца из Л, лежащего выше главной диагонали, и й -
соответствующая часть из R. (См. (1.4.36) и (1.4.37).) Пусть с — часть с,
лежащая в оболочке А. Тогда
с =
“О
с
В разд. 1.3 мы отметили, что если с имеет ведущие нули, то они имеют-
ся и в й:
гдей е (см. (1.3.6) и соответствующие пояснения). Отсюда сразу следует,
что оболочка R содержится в оболочке А. Более того, нетрудно показать, что
первый элемент й отличен от нуля. Таким образом, оболочка множителя R
точно совпадает с оболочкой матрицы А. □
Следствие 1.5.8. Пусть А — ленточная положительно определенная матрица с
полушириной ленты s. Тогда ее множитель Холесского также имеет полуширину
ленты s.
В обозначениях, принятых при доказательстве теоремы 1.5.7, если с
то затраты на выполнение арифметических действий на у-м шаге метода Хо-
лесского в основном равны затратам на решение нижней треугольной системы
размеров Sj х sj9 т.е. s2 флопам. (См. обсуждение вслед за (1.3.6).) Если оболоч-
ка не используется, то затраты нау-м шаге составляют/2 флопов. Чтобы полу-
чить представление об экономии, возникающей при использовании оболочеч-
ной структуры матрицы, рассмотрим случай ленточной матрицы. Если полу-
ширина ленты А равна 5, то частьу-й строки, лежащей в оболочке, имеет самое
большее s элементов, так что число флопов, выполняемых нау-м шаге равно
приблизительно s2. Так как алгоритм состоит из п шагов, то общее число вы-
полняемых флопов равно приблизительно ns2.
Упражнение 1.5.9. Пусть R есть п х «-верхняя треугольная матрица с полу-
шириной ленты s. Покажите, что систему можно решить обратной подстанов-
кой, выполнив около 2ns флопов. Аналогичный результат имеет место и для
нижних треугольных систем. □
Пример 1.5.10. Для матрицы из примера 1.5.2 п = 100 и s = 10. Если выпол-
нить разложение Холесского без учета ленточной структуры матрицы, то для
этого потребуется около |л3 » 3.3 х 105 флопов. Напротив, при использовании
ленточной структуры затраты составят приблизительно ns2 = 104 флопов, т.е.
около 3% от предыдущего числа. Затраты на совместное применение прямой и
обратной подстановок без учета ленточной структуры равны приблизительно
2п2 = 2 х 104 флопам. Если ленточная структура учитывается, то число флопов
равно приблизительно 4ns = 4 х 103, что составляет 20% от предыдущего числа.
72
Глава 1. Гауссово исключение и его варианты
Если матрица записывается в память бесхитростно, требуется место для п2 =
10 000 чисел. Если же хранится лишь полулента, то требуется не более n(s +1) =
1100 чисел. □
Результаты примера 1.5.10, особенно об экономии флопов в разложении
Холесского, уже выглядят впечатляюще, даже не взирая на не очень боль-
шие размеры матрицы. Еще более впечатляющие результаты получаются
при рассмотрении больших матриц, как показывает следующее упражне-
ние.
Упражнение 1.5.11. Как и в упражнении 1.5.4, возьмем ленточную систему
уравнений, возникающую из рассмотрения сетки из т х т узлов, подобной
изображенной на рис. 1.12, но с гораздо большим числом узлов, пронумеро-
ванных вдоль строки.
(а) Для случая т = 100 (для которого п = 104) определите затраты на решение
системы Ах = b (разложение Холесского плюс прямая и обратная подстановки)
с учетом и без учета ленточной структуры. Покажите, что использование лен-
точной структуры сокращает число флопов в несколько тысяч раз. Покажите,
что если хранится только полулента, требуется лишь около 1% памяти, расхо-
дуемой при обычном хранении матрицы.
(Ь) Выполните (а) для т - 1000. □
Указанная экономия может оказаться решающей при определении воз-
можности или невозможности решить большую задачу.
Следующие упражнения иллюстрируют другие важные свойства ленточ-
ных и оболочечных матриц: структура оболочки матрицы А не сохраняется
для А~] (не наследуется матрицей Л’1). На самом деле обычно обращения раз-
реженных матриц не являются разреженными. Таким образом, весьма неэф-
фективно решать разреженную систему Ах = Ь, вычисляя обратную матрицу
и определяя х = А~1Ь.
Упражнение 1.5.12. Рассмотрим систему из масс и пружинок с шестью те-
лежками, как показано на рис. 1.11. Предположим, что каждая пружина имеет
жесткость kj = 1 Н/м.
(а) Найдите трехдиагональную положительно определенную матрицу А, со-
ответствующую этой задаче.
(Ь) Воспользуйтесь MATLAB-командой chol, чтобы вычислить множитель
Холесского R. Обратите внимание, что R наследует ленточную структуру мат-
рицы А. (Чтобы узнать простой способ ввода этой специальной матрицы Л, на-
берите help toeplitz.)
(с) Воспользуйтесь MATLAB-командой inv, чтобы вычислить Л-1. Обрати-
те внимание, что Л 4 не наследует ленточную структуру матрицы Л. □
Упражнение 1.5.13. В предыдущем упражнении матрица Л"1 является пол-
ной: ни один из ее элементов не равен нулю.
(а) Каков физический смысл этого факта? (Рассмотрите выражение х = А~]Ь,
особенно для случая, когда только один, скажем,у-й элемент b не равен нулю.
Если бы элемент (ij) был равен нулю, к чему бы это привело? Это имеет физи-
ческий смысл?)
(Ь) Убывают ли по величине элементы матрицы Л-1 по мере их удаления от
главной диагонали? Каков физический смысл этого? □
1.5. Ленточные положительно определенные системы
73
Упражнение 1.5.14. Рассмотрим линейную систему Ах = b из упражнения
1.2.19. Матрица Л является ленточной и положительно определенной.
(а) Используйте MATLAB, чтобы вычислить множитель Холесского R. За-
метьте, что оболочка осталась прежней.
(Ь) Используйте MATLAB, чтобы вычислить Л-1. Заметьте, что Л-1 является
полной матрицей. (Каков физический смысл этого?) □
Алгоритм хранения оболочки
Для хранения оболочки матрицы коэффициентов можно использовать до-
вольно простую структуру данных. Мы опишем алгоритм, приведенный в [30].
Для хранения главной диагонали матрицы используется одномерный вещест-
венный массив DIAG длины п. Второй одномерный вещественный массив
ENV используется для хранения оболочки по столбцам, один за другим. Тре-
тий массив IENV, целочисленный массив длины п + 1, используется для хране-
ния указателей для ENV. Обычно IENV(/) указывает положение в ENV перво-
го (отличного от нуля) элемента столбца / матрицы. Но если столбец /не со-
держит ненулевых элементов над главной диагональю, то вместо этого
IENV(Z) указывает на столбец / + 1. Таким образом, об отсутствии в столбце /
ненулевых элементов над главной диагональю сигнализирует IENV(/) =
IENV(/+ 1). IENV(a + 1) указывает на первую ячейку памяти, следующую за
оболочкой. Это правило может быть выражено короче (и более точно) следую-
щим образом: IENV(1) = 1 и IENV(/+ 1) - IENV(J) равно числу элементов
столбца / матрицы, лежащих в оболочке.
Пример 1.5.15. Матрица
я12 0 а14 0 0
#22 <223 ^24 0 0
а33 а34 0 0
<244 0 й46
а55 а56
а66
записывается в память с помощью оболочечного алгоритма так:
DIAG
ENV
IENV
□
74
Глава 1. Гауссово исключение и его варианты
При использовании алгоритма хранения оболочки некоторые формы раз-
ложения Холесского, а именно алгоритмы прямой и обратной подстановок, -
оказываются предпочтительнее других. Например, мы не хотим использовать
метод Холесского с внешним произведением, поскольку он работает с (верх-
ней треугольной) матрицей А по строкам. В алгоритме хранения оболочки
матрица А сохраняется по столбцам и строки мало доступны. Форма с внут-
ренним произведением не подходит по той же причине1. Из доказательства
теоремы 1.5.7 ясно, что вариант метода Холесского с окаймлением является
подходящим. На каждом шаге практически вся работа сводится к решению
нижней треугольной системы RTj _xh = с, где
с -
О
Если мы разобьем R[_{ соответствующим образом:
R
т
/-1
О ’
Я22.
то выражение R[_xh = c сведется к H22h =с. Н12 является нижней треугольной мат-
рицей, состоящей из строк и столбцов матрицы RT с номерами от i - s. до i - 1.
Для решения системы H22h -с можно воспользоваться какой-либо подпрограм-
мой. Все, что нужно, это подпрограмма прямой подстановки, которая решает
системы вида RTh=c, где R есть подматрица А, состоящая из строк и столбцов
от j до й, где juk — произвольные целые, для которых 1 <j < к < п. Так как R\ а
следовательно, и RT, хранятся в памяти по строкам, подходящая форма пря-
мой подстановки является построчной версией. Эта подпрограмма может
быть использована также для j = 1 и к = л, чтобы выполнить прямую подстанов-
ку (RTy - Ь) после завершения разложения Холесского. Под конец нужна про-
грамма обратной подстановки для решения системы Rx = у. Поскольку R хра-
нится по столбцам, следует использовать версию, работающую со столбцами.
Упражнение 1.5.16. Напишите комплект из трех программ на Фортране для
решения положительно определенных систем, используя алгоритм хранения
оболочки:
(а) Программу прямой подстановки, работающую со строками, способную
решить систему RTh =с, где R — подматрица матрицы R, состоящая из строк и
столбцов от j до к, 1 <j < к < п.
(Ь) Программу разложения Холесского с окаймлением, которая вызывает
подпрограмму прямой подстановки, для выполнения основной работы.
(с) Программу обратной подстановки, работающую со столбцами.
Напишите главную программу, которая распределяет память, выполняет
ввод и вывод и вызывает подпрограммы, чтобы решить положительно опреде-
1 В форме с внутренним произведением матрицы А выбирается по строкам и столбцам.
1.5. Ленточные положительно определенные системы
75
ленную систему Л х = Ь. Проверьте вашу программу с помощью тестовых задач,
приведенных ниже.
Для хранения данных вам нужны массивы DIAG, ENV и IENV, описанные
выше, и один дополнительный вещественный массив длины л, который вна-
чале содержит i, превращается в у во время выполнения шага прямой подста-
новки, и, наконец, заменяется нах после выполнения шага обратной подста-
новки. Массивы DIAG и ENV первоначально содержат Я, которая заменяется
на R после вычисления разложения Холесского. Это весь необходимый объем
памяти (за исключением, конечно, памяти, занимаемой самой программой).
Возьмите такие тестовые задачи:
'4 0 6 0 2* '12' '12'
0 13 0 2 6 4
(а) А = 6 3 19 2 6 , (0 ь = 36 , (ii) b = 26
0 0 2 5 -5 2 -8
2 2 6 -5 16 21 _27_
Разложение Холесского выполняется лишь один раз. Решение'.
2 0 3 0
1 3 0
1 2
1
R =
1
2
-3
1
1
'16 4 4 0 0 0 0 0 0 О' '36'
4 5 -3 6 0 0 0 10 0 0 109
4 -3 6 -8 0 2 0 -9 0 0 -76
0 6 -8 17 8 -2 0 13 0 0 188
(Ь) А = 0 0 0 . 8 17 3 2 -1 0 0 , ь = 141
0 0 2 -2 3 15 1 -3 3 0 113
0 0 0 0 2 1 21 -4 -7 0 68
0 10 -9 13 -1 -3 -4 32 -1 4 281
0 0 0 0 0 3 -7 -1 10 0 51
0 0 0 0 0 0 0 4 0 24 272
76
Глава 1. Гауссово исключение и его варианты
(с) Покажите с помощью вашей программы, что матрица
' 1 2 4
А = 2 13 16
4 16 10
не является положительно определенной.
(d) Подумайте, как можно использовать программу, чтобы вычислить обра-
щение положительно определенной матрицы. Рассчитайте Л-1, где
А =
’ 1 1/2 1/3
1/2 1/3 1/4
1/3 1/4 1/5
Оказывается, что все элементы матрицы Л"1 — целочисленные. Обратите
внимание, что вычисленное вами решение зависит от ошибок округления. Это
потому, что Л является плохо обусловленной. Она является представителем
(размеров 3x3) известного семейства плохо обусловленных матриц Гильбер-
та, обусловленность которых быстро ухудшается с увеличением порядка мат-
рицы. Плохо обусловленные матрицы рассматриваются в гл. 2. □
1.6. Разреженные положительно определенные системы
Сравнив разреженную матрицу Л с ее множителем Холесского R, мы обна-
ружим, что обычно R содержит намного больше ненулевых элементов, чем
верхняя половина матрицы Л. «Новые» ненулевые элементы называются на-
полняющими или заполняющими. Число наполняющих элементов зависит от
порядка следования уравнений.
Пример 1.6.1. Стреловидная матрица вида
'7 0 0 1
0 3 0 1
0 0 2 1
1111
не приводит к наполнению в ходе разложения Холесского. Ее множитель Хо-
лесского есть
‘л/7 0 0 1/77'
7з о 1/7з
л/2 1/V2
1/742
1.6. Разреженные положительно определенные системы
77
и у него над главной диагональю столько же нулей, что и у Л. Теперь рассмот-
рим матрицу
"1111“
1 2 О О
“ 1 0 3 0’
1 ° ° 7_
полученную из А обращением порядка следования строк и столбцов. Эта пере-
вернутая стреловидная матрица имеет множитель Холесского
‘111 Г
1
который является полностью заполненным. Ясно, что то же самое будет и с
любой стреловидной матрицей: важен характер расположения ненулевых эле-
ментов, а не их точные величины. Более того, случай п = 4 ничем особым не
выделяется: мы можем формировать как угодно большие стреловидные матри-
цы. Обратите внимание, что А имеет небольшую оболочку, которая не содер-
жит ненулевых элементов, в то время как А имеет большую оболочку, содер-
жащую много нулей. Теорема 1.5.7 гарантирует, что оболочка R будет не больше
оболочки А, но ничего не говорит о судьбе нулей из этой оболочки. Обычно
нули из оболочки превращаются в ненулевые элементы множителя R. □
Ключом к экономии при выполнении разложения Холесского разрежен-
ных матриц служит умение управлять их заполненностью. В идеале достаточно
найти упорядочивание (уравнений и переменных), минимизирующее запол-
ненность. Как выяснилось, это сложная задача (требуется рассмотреть п\ упо-
рядочиваний), решение которой кажется недостижимым. К счастью, имеется
несколько практических алгоритмов, разумно выполняющих работу по управ-
лению заполненностью [30]. Упомянем два из наиболее популярных методов.
В обратном алгоритме Катхилла-Мак-Ки делается попытка уменьшить шири-
ну ленты. Алгоритм минимальной степени пытается минимизировать заполне-
ние, анализируя вид рареженной матрицы с помощью методов теории графов.
Ширина ленты не используется. Описание этих двух методов см. в [30]. Мы
рассмотрим их работу на примерах, используя MATLAB.
MATLAB обеспечивает существенную поддержку вычислений с разрежен-
ными матрицами. Для этих матриц есть удобная структура данных. Большин-
ство из имеющихся операций для полных (не разреженных) матриц примени-
мы также и к разреженным матрицам. Например, если А есть положительно
определенная матрица, записанная в разреженном формате, то команда R =
chol (А) дает множитель Холесского, также записанный в разреженном фор-
мате. Имеется множество команд, применимых только к разреженным матри-
цам. Чтобы получить их перечень, наберите в MATLAB’e help sparfun.
78
Глава 1. Гауссово исключение и его варианты
Пример 1.6.2 Замечательный пример не слишком большой разреженной мат-
рицы дает матрица Фуллера, которая является матрицей инцидентности (смеж-
ности) шара Фуллера (футбольного мяча). Это многогранник с 60 вершинами,
32 гранями (12 пятиугольников и 20 шестиугольников) и 30 ребрами. Матрица
инцидентности получается нумерацией вершин и построением 60 х 60-матри-
цы, у которой элемент (JJ) равен 1, если вершины i и J связаны ребром, и 0 в
противном случае. Так как каждая вершина связана точно с тремя другими, то
каждая строка матрицы Фуллера содержит точно три ненулевых элемента. Эта
матрица не является положительно определенной: элементы на ее главной диаго-
нали все равны нулю. Мы можем сделать ее положительно определенной, при-
бавив 31. Сделаем это в MATLAB’e, набирая А = bucky + 3*speye(60).
(Команда speye (60) дает единичную матрицу в разреженном формате.) В ре-
зультате А будет положительно определенной матрицей размеров 60 х 60, у ко-
торой каждый столбец и каждая строка имеют по четыре ненулевых элемента.
Для такой небольшой матрицы нет необходимости использовать методы раз-
реженных матриц, но с этого примера хорошо начинать.
исходное упорядочивание
О 10 20 30 40 50 80
случайное переупорядочивайие
обратное Катхилла-Мак-Ки
упорядочивание минимальной
степени
Рис. 1.13. Спай-графики для нескольких упорядочиваний модифицированной
матрицы Фуллера.
1.6. Разреженные положительно определенные системы
79
Разные способы нумерации верши шара Фуллера соответствуют разным
упорядочиваниям строк/столбцов матрицы А. Рисунок 1.13 показывает распо-
ложение ненулевых элементов в Л при «исходном» упорядочивании, определен-
ном MATLAB’om, и после трех переупорядочиваний. Графики этого вида назы-
ваются спай-графиками (графиками шаблонов разреженности) (от англ, spy plots)
MATLAB’a и порождаются командой spy (А) . Каждый из четырех графиков на
рис. 1.13 отображает по 240 точек, соответствующих 240 ненулевым элементам
матрицы А. Видно, что обратное упорядочивание Катхилла—Мак-Ки стягивает
ненулевые элементы в ленту, а упорядочивание минимальной степени — нет.
Мы вычислили множитель Холесского для А и каждого из переупорядочиваний
и показываем их спай-графики на рис. 1.14. Число ненулевых элементов, харак-
теризующее степень заполненности, также приведено для каждого случая. В
случае упорядочивания Катхилла-Мак-Ки заполненность сводится к узкой
ленте, по обратите внимание: лента заполнена теперь почти полностью. На са-
мом деле общее число заполняющих элементов при упорядочивании Катхил-
0 10 20 ЭО 40 К 00
О 10 20 ЭО 40 S0 00
исходное упорядочивание
(541 ненулевых элементов)
случайное переупорядочивание
(547 ненулевых элементов)
(514 ненулевых элементов)
(360 ненулевых элементов)
Рис. 1.14. Спай-графики множителей Холесского переупорядочиваний
модифицированной матрицы Фуллера.
80
Глава 1. Гауссово исключение и его варианты
ла—Мак-Ки не намного меньше, чем при исходном или при случайном упоря-
дочивании. В последующих упражнениях вы убедитесь, что для больших матриц
наиболее значимая редукция заполнимости достигается, в конечном счете, об-
ратным упорядочиванием Катхилла-Мак-Ки.
Наиболее удивительное наблюдение, вытекающее из рис. 1.14, состоит в
том, что алгоритм минимальной степени значительно уменьшает заполнен-
ность. Множитель Холесского для упорядочивания минимальной степени име-
ет на 154 элемента меньше, чем для обратного упорядочивания Катхилла-Мак-
Ки. Конечно, один пример ничего не доказывает, но проверка на большом
числе задач подтверждает, что алгоритм минимальной степени работает лучше
обратного алгоритма Катхилла-Мак-Ки для широкого круга задач. Однако
для успешного использования упорядочивания минимальной степени нужна
более гибкая структура данных для разреженных матриц, поскольку заполнен-
ность не сводится здесь к узкой ленте. Напротив, с обратным упорядочивани-
ем Катхилла-Мак-Ки мы можем использовать ленточную или окаймляющую
схемы, которые автоматически согласуются с наполнением. □
Структура данных разреженных матриц, используемая в MATLAB’e, очень
проста. Три числа т, п и nz задают число строк, столбцов и ненулевых элементов
массива. Информация об элементах матрицы и их положении хранится в трех
списках (одномерных массивах) i, j и s длины (по крайней мере) nz. Массивы i и j
являются целочисленными, a s - вещественным (с двойной точностью). Для каж-
дого k < nz разреженная матрица А имеет ненулевой элемент, равный s(к), в по-
ложении (/(&),/(£))’. Если для вычисления множителя Холесского используется
команда системы MATLAB R = chol (А) , то MATLAB выделяет память под
разреженную матрицу R. При этом в расчет принимается не только память, отво-
димая под А, но и заполнение, необходимое для вычисления R. Это все кажется
пользователю легким лишь потому, что MATLAB сам заботится о всех деталях.
Упражнение 1.6.3. Примером большой разреженной матрицы, прелагаемым
MATLAB’om, является несимметричная 479 х 479-матрица west047 9. Чтобы
загрузить эту матрицу, наберите load west0479. Затем наберите А =
west047 9; чтобы ввести более короткое обозначение. Далее наберите
size (А) , чтобы проверить размеры, и issparse (А) , чтобы узнать действи-
тельно ли А хранится в виде разреженной матрицы. Ответ 1 указывает на раз-
реженную матрицу, а 0 — на полную. Наберите spy (А) , чтобы получить изо-
бражение структуры матрицы Л. Обратите внимание, что оно несимметрично.
(Наберите просто А чтобы получить длинный список ненулевых элементов
матрицы А.) Спай-график показывает, что west0479 имеет 1887 элементов,
отличных от нуля. Об этом можно узнать, набрав nnz (А) .
Поскольку west047 9 не является ни положительно определенной, ни
даже симметричной, для нее нет разложения Холесского. Для получения по-
ложительно определенной матрицы наберите А = А' *А; или А =
= west0479' *west0479;. Воспользуйтесь командами issparse, nnz и
spy, чтобы узнать, хранится ли ваша новая А как разреженная, как много не-
1 Если одному и тому же положению (/, у) приписывается несколько элементов, то значения
этих элементов складываются. Например, если разреженная матрица имеет (/(3),у(3)) = (/(7), у( 7»
= (/(50), 7(50)) = (21, 36) (а все другие пары (/,» отичны от (21, 36)), то о21 Зб = 5(3) + 5(7) + 5(50).
1,6, Разреженные положительно определенные системы
81
нулевых элементов она имеет и какой вид имеет ее структура. Вычислите мно-
житель Холесского матрицы А и ее переупорядочиваний:
(а) Сначала рассмотрите А в первоначальном упорядочивании. Вычислите
множитель Холесского матрицы А и определите необходимое для этого время.
Например, вы можете использовать команды
tic, R = chol(А); toe
или
t = cputime; R = chol (A) ; time = cputime - t
Как много ненулевых элементов содержится в Л? Рассмотрите спай-график
множителя R,
(Ь) Теперь переставьте сроки/столбцы случайным образом и снова выпол-
ните (а). Это можно сделать, например, так:
р = randperm(479);
arnd = А (р, р) ;
spy(arnd)
tic, rrnd = chol(arnd); toe
nz = nnz(rrnd)
spy(rrnd)
Первая команда выдает случайную перестановку чисел от 1 до 479. Вторая
порождает новую матрицу arnd, у которой строки и столбцы расставлены в
соответствии со случайной перестановкой.
(с) Повторите (Ь), используя обратное упорядочивание Катхилла-Мак-Ки
вместо случайного упорядочивания. Нужную перестановку можно получить,
выполнив вместо случайной перестановки команду р = symrcm(A) ; . Та-
ким образом,
р = symrcm(A);
arcm = А(р,р);
spy(arcm)
tic, rrem = chol(arcm); toe
nz = nnz(rrem)
spy(rrem)
Название symrem команды является сокращением для «SYMmetric Reverse
Cuthill-МсКее» («Симметричное обратное Катхилла-Мак-Ки»).
(d) Повторите (с), используя упорядочивание минимальной степени вместо
обратного упорядочивания Катхилла-Мак-Ки. Упорядочивание минималь-
ной степени получается командой р = symmmd(A) ; , где symmmd является
мнемоникой для «SYMmetric MiniMum Degree» («Симметричное минималь-
ной степени»).
(е) Объясните полученные результаты. □
82
Глава 1. Гауссово исключение и его варианты
Упражнение 1.6.4. MATLAB-команда delsq порождает разреженную мат-
рицу, связанную с дискретным (дискретизированным) оператором Лапласа
(«del squared» — «набла в квадрате») при различном выборе областей. Напри-
мер, выполните
m = 32
А = delsq(numgrid('S',m));
issparse(A)
size(A)
Вы получите матрицу 900 x 900. Достоинством этого примера является воз-
можность менять порядок матрицы. Если эта матрица слишком мала или
слишком велика, больший или меньший вариант можно получить, увеличивая
или уменьшая т. В общем случае матрица А имеет размерность (т - 2)2. Ее
структура такая же, как и у матриц, обсуждавшихся в упражнениях 1.5.2 и
1.5.4. Чтобы больше узнать о delsq , наберите help delsq и help numgrid
в командной строке MATLAB’a. Различные варианты матрицы можно полу-
чить, заменяя в команде numgrid параметр ‘ S ‘ другой буквой.
Используя матрицу Л, полученную указанным выше способом (с большим
т, если позволяет ваш компьютер), вычислите множитель Холесского для А и
ее различных переупорядочиваний. Воспользуйтесь MATLAB-командами из
упражнения 1.6.3.
(а) Выдайте спай-график матрицы А. Обратите внимание, что уже исходное
упорядочивание дает узкую ленту. Вычислите множитель Холесского для Л,
отметив затраченное компьютером время. Как много ненулевых элементов со-
держит множитель Холесского? Рассмотрите его спай-график.
(Ь) Выполните (а), используя случайное переупорядочивание строк/столб-
цов матрицы А:
р = randperm((ш-2)А2); arnd = а (р,р);
(с) Выполните (а), используя обратное упорядочивание Катхилла—Мак-Ки.
(d) Выполните (а), используя упорядочивание минимальной степени.
(е) Другим упорядочиванием, которое возможно в этом частном примере,
является упорядочивание методом вложенных сечений. Введите команду Anes t
= delsq (numgrid ('N', m) ). При этом получается прежняя матрица, и раз-
ница состоит в том, что строки/столбцы пронумерованы теперь в соответствии
с упорядочиванием по методу вложенных сечений [30]. Снова выполните (а),
используя упорядочивание по методу вложенных сечений.
(1) Обдумайте результаты пп. (а) - (е). □
Упражнение 1.6.5. Другой интересный пример, поставляемый с
MATLAB’om, — это демонстрационная программа расчета «профиля крыла»
(NASA). Набрав в командной строке airfoil, вызовите демо-программу
‘NASA Airfoil’. Ее работа начинается с построения сетки треугольников, кото-
рая будет использоваться при расчетах с помощью метода конечных элемен-
тов воздушного потока, обтекающего крыло самолета. Сетка состоит из 4253
точек или узлов, каждый из которых имеет от трех до девяти соседей. Демо-
1.7, Исключение Гаусса и LU-разложение
83
программа строит также положительно определенную матрицу А, описываю-
щую соседство узлов сетки. Это матрица размеров 4253 х 4253, у которой
элемент в позиции (j, j) равен -1, если i *j и узел i непосредственно связан с
узлом j (узлы были предварительно пронумерованы). Элементы главной диа-
гонали достаточно велики, что делает матрицу положительно определенной.
Точное описание матрицы А приведено в демо-программе. Затем демо-про-
грамма выводит спай-графики матрицы А и нескольких ее переупорядоче-
ний. После выполнения демо-программы матрица А остается в памяти и мо-
жет быть использована вами.
(а) Вычислите множитель Холесского и определите время работы процес-
сора. Как много ненулевых элементов имеет множитель Холесского? Рассмот-
рите его спай-график.
(Ь) Выполните (а), используя обратное упорядочивание Катхилла-Мак-Ки.
(с) Выполните (а), используя упорядочивание минимальной степени.
(d) Обдумайте результаты пунктов (a) -(c). □
В MATLAB’e имеется много других тестовых матриц — и разреженных, и
полных. Набрав help elmat , вы получите часть списка. В частности, кол-
лекция gallery Д.Хигэма содержит много хороших образцов. Наберите help
gallery и следуйте изложенным там указаниям.
Упражнение 1.6.6. Выполните упражнение 1.6.4 (опустив п. (е)), исполь-
зуя матрицу Вафена из коллекции Хигэма. Наберите, например, А =
gallery ('wathen ',20,15). Чтобы получить матрицу большего размера,
замените 20 и 15 большими числами. Наберите help private/wathen,
чтобы получить информацию об этом семействе матриц. □
1.7. Исключение Гаусса и L(/-разложение
В этом и следующем разделах мы рассмотрим задачу решения системы п
линейных уравнений с п неизвестными Ах-b методом гауссова исключения.
Приводимый здесь алгоритм дает единственное решение всякий раз, когда
матрица А невырожденна. От А не требуется никаких особых свойств вроде
симметрии или положительной определенности.
Наша стратегия заключается в том, чтобы преобразовать систему Ах = b в
эквивалентную систему Ux = у с верхней треугольной матрицей коэффициен-
тов. Систему Ux = y легко решить обратной подстановкой при условии, что U
невырожденная. Сказать, что две системы эквивалентны, означает сказать, что
они имеют одни и те же решения.
Будем преобразовывать систему посредством трех типов элементарных опе-
раций:
1. Сложить кратное одного уравнения с другим.
2. Переставить два уравнения.
3. Умножить уравнение на ненулевую константу.
Утверждение 1.7.1. Если система Ах = Ь получена из системы Ах = b с помо-
щью элементарных операций типа 1, 2 и 3, то эти системы эквивалентны. □
84
Глава 1. Гауссово исключение и его варианты
Упражнение 1.7.2. Докажите утверждение 1.7.1. Обсуждение'. Пусть система
Ах = b преобразована в Ах-b операцией типа 1. Вам надо показать, что (а) ка-
ждое решение системы Ах = b является решением системы Ах = Ь и (Ь) каждое
решение системы Ах = b является решением системы Ах = Ь. Доказать (а) лег-
ко. Доказательство (Ь) станет простым, когда вы поймете, что Ах = b можно
восстановить из Ах = b операцией типа 1: если Ах = Ь получена из Ах = Ь добав-
лением т раз j-й строки к z-й строке, то Ах = b можно получить из Ах = b добав-
лением -т раз j-й строки к f-й строке. Аналогичные рассуждения применимы
и к операциям типа 2 и 3. □
Удобно представлять систему Ах = Ь с помощью расширенной матрицы
[А | А]. Каждое уравнение системы Ах = Ь соответствует строке матрицы [А | й].
Элементарные операции над уравнениями равносильны следующим элемен-
тарным операциям над строками [Л | й]:
1. Сложить кратное одной строки с другой.
2. Переставить две строки.
3. Умножить строку на ненулевую константу.
Можно также применять элементарные операции над строками только к
матрице А, отбросив вектор Ь.
Утверждение 1.7.3. Пусть матрица А получена из Ас помощью элементарных
операций типов 1, 2 и 3 над строками. Тогда А невырожденна, тогда и только
тогда, когда невырожденна А.
Доказательство. По теореме 1.2.3 матрица Л невырожденна тогда и только
тогда, когда система Ау = 0 не имеет других решений, кроме у - 0. То же самое
справедливо и для Л. Если Л получена из Л с помощью какой-то элементарной
операции со строками, то с помощью такой же операции можно преобразовать
расширенную матрицу [Л | 0] в [Л | 0], поскольку операции со строками не мо-
гут сделать из нуля ненулевой элемент в последнем столбце. Таким образом,
по утверждению 1.7.1 системы Ау - 0 и Ау = 0 эквивалентны, т.е. они имеют
одни и те же решения. Следовательно, Л невырожденна, тогда и только тогда,
когда невырожденна Л. □
Элементарные операции со строками рассматриваются в упражнениях
1.7.34 — 1.7.36. Эти упражнения связывают элементарные операции со строка-
ми с умножением на элементарные матрицы типов 1, 2 и 3. Там же содержится
и альтернативное доказательство утверждения 1.7.3, использующее детерми-
нанты.
В этом разделе мы сосредоточим внимание на операциях типа 1. В сле-
дующем разделе будут рассмотрены операции типа 2. Мы не будем исполь-
зовать операции 3-го типа нигде, кроме обсуждения масштабирования в
разд. 2.8.
Исключение Гаусса без перестановки строк
Разделим задачу решения системы Ах = b на два этапа. На первом этапе, ко-
торым мы будем заниматься в оставшейся части этого раздела, предположим,
1.7. Исключение Гаусса и LU-разложение
85
что А обладает особым свойством, позволяющим приводить А к верхней тре-
угольной форме, используя лишь построчные элементарные операции типа 1.
Алгоритм, позволяющий нам выполнить такое преобразование, называется
исключением Гаусса без перестановки строк или исключением Гаусса без выбора
главного элемента.
Вспомним, что при k = 1,..., п главная ведущая подматрица1 матрицы А есть
матрица Ак, полученная пересечением к первых строк и столбцов матрицы А.
До конца этого раздела будем предполагать, что
Ак - невырожденная для к = 1, ..., п. (1.7.4)
В частности, сама А (= А„) является невырожденной, так что система Ах = Ь
имеет единственное решение.
Приведение к треугольной форме выполняется за п - 1 шагов. На пер-
вом шаге соответствующее кратное первой строки вычитается из каждой
другой строки так, чтобы получить нули в позициях (2,1), (3,1), ..., (п,1).
Ясно, что для этого надо, чтобы * 0. Это выполняется благодаря предпо-
ложению о невырожденности At = [ап]. Подходящий множитель для z-й
строки равен
zwn = Яд/Дц, i = 2, ..., п.
(1.7.5)
Упражнение 1.7.6. Убедитесь, что если дид-кратное первой строки вычесть
из z-й строки [А | i], то получившийся массив будет иметь нуль в позиции (z, 1).
□
Итак, мы выполняем операции
aij = aij -тпаи> J = 2,..., и, г = 2,..., п,
Z»}1* =bi-mjlb^, i = 2,...,n,
(1.7.7)
чтобы привести [А | Л] к виду
О||
0
fl12 ••• а1п
а<‘> ... а*1»
22 2 п
ь\
*2(1)
о ат bw
п2 пп п
Нет необходимости явно вычислять элементы i = 2,..., п, поскольку мы
заранее знаем, что все они равны нулю.
При компьютерном исполнении этого шага не надо записывать нули в
первый столбец. Память, вначале отведенную под него, можно использо-
вать для чего-то другого. Как мы скоро увидим, там можно хранить множи-
1 В нашей литературе она обычно называется главным минором. - Прим, перев.
86
Глава 1. Гауссово исключение и его варианты
тели т2ъ ..., тп\. Таким образом, массив, первоначально содержавший А
и Ь, после первого шага будет иметь вид
а1| а12 • .. а1п bl
/я21 •• а2п ь?
тп\ а(1) •• ипп Ь"
Затраты на выполнение арифметики первого шага легко определить из
вида выражений (1.7.5) и (1.7.7). В (1.7.5) имеется п - 1 делений, а в (1.7.7)
имеется (n - I)2 + (п - 1) умножений и столько же сложений. Общее число фло-
пов составляет (2п + 1)(п - 1), что приблизительно равно 2и2.
На втором шаге операции производятся со строками 2, 3, ..., п. Любая
операция, выполняемая над этими строками, не затрагивает нули в
столбце 1, поскольку вычитание кратного нулю из нуля дает нуль. Таким
образом, второй шаг не использует ни первую строку, ни первый стол-
бец. Подходящие кратные второй строки вычитаются из строк 3, 4, ..., п,
чтобы получить нули в позициях (3,2), (4,2), ..., (л,2). Таким образом,
второй шаг отличается от первого лишь тем, что операции применяются
к подматрице
.(1) д(1) А(1)
“22 а2п U2
a(l) a(l) Ь(1)
ап2 апп ип
Эти операции суть
mi2 = а^2 /а22> i - • ••> п>
И
aiP =аТ~тИа2Г J = i =
b-2) =bj[) -mi2b^\ 1 =
Как и на первом шаге, нет необходимости вычислятьа^)явно Для * = 3,л,
поскольку множители ml2 подбираются так, чтобы получить aj2) = 0.
Для выполнения этого шага нам нужно, чтобы я?21) ф 0. Это следует из пред-
положения, что матрица
2
аН а21
,а12 а22
1.7. Исключение Гаусса и LU-разложение
87
невырожденна. После первого шага матрица Л2 преобразуется к виду
А
а\\ а\2
.0 а22.
Л2 получается из А2 вычитанием ш2/-кратного первой строки из второй, а это
операция типа 1. Следовательно, по утверждению 1.7.3, из невырожденности А2
следует невырожденность А2. Так как А2 является верхней треугольной с a(j2 на
главной диагонали, то мы заключаем, что a(j2 ф 0, что и требовалось доказать.
После второго шага расширенная матрица принимает вид
«11 «11 «12 • •• а\п
0 а(|) «22 ^23 • .. а<п 2/1 ^2(1)
0 0 «^. •• «Зл
0 0 д(2) •• “лл
При компьютерных вычислениях нули заменяются на множители т21,..., тп\
и т32, fnn2. Поскольку второй шаг подобен первому, но преобразуемая те-
перь матрица имеет на одну строку и один столбец меньше, число флопов на
втором шаге составит приблизительно 2(л - I)2.
Третий шаг идентичен первым двум, за исключением того, что он приме-
няется к матрице меньшего размера
’ (2) Л(2) /,(2)
а33 ••• аЗп °3
Л(2) Л(2) д(2)
^лЗ ••• @пп "п
Для выполнения этого шага необходимо, чтобы а£0. Это обеспечивается
предположением о невырожденности матрицы А3. После первых двух шагов
матрицы А3 превращается в
с помощью двух построчных элементарных операций типа 1. В свою очередь,
это дает * 0. Арифметика третьего шага требует около 2(п - 2)2 флопов.
После п - 1 шагов система будет приведена к виду [U | у], где U — верх-
няя треугольная матрица. Для каждого к возможность выполнения £-го
шага гарантируется предположением о невырожденности Ак. В конце мы
видим, что U невырожденна, поскольку такова А, Поэтому система Ux = у
88
Глава 1. Гауссово исключение и его варианты
может быть решена обратной подстановкой, чтобы получить х — единствен-
ное решение системы Ах = Ь.
Общее число флопов, необходимых для приведения к треугольной форме,
приблизительно равно
2n2 + 2(и - I)2 + 2(и - 2)2 + ... = 2£Л2.
к=\
Как и в разд. 1.4 (ср. упражнения 1.4.70 и 1.4.71), мы можем аппроксимиро-
вать эту сумму интегралом
2Ё*2 ® 2ik2dk=-и3-
k=\ о 3
Дополнительные затраты на обратную подстановку составляют п2 флопов,
что сравнительно мало при больших п. Таким образом, общая стоимость ре-
2
шения системы Ах = b этим методом равна -п3 флопов. Это почти в два раза
превышает затраты на решение положительно определенной системы методом
Холесского, который позволяет отбросить множитель 2 за счет использования
симметрии матрицы коэффициентов.
Пример 1.7.8. Пусть
Заметьте, что деЦЛ,) = 2, det(>42) = 2 и det(/43) = -4, так что все главные веду-
щие подматрицы являются невырожденными. Это гарантирует возможность
приведения А к верхней треугольной форме только построчными операциями
типа 1. Это также обеспечивает единственность решения системы Ах = Ь. Что-
бы решить эту систему, образуем расширенную матрицу
2
И I i] =
1 9
-1 9
6 16
Множители для первого шага равны т21 = a2i/^n = 1 и /л31 = = 2. Таким
образом, мы вычитаем первую строку один раз из второй строки и два раза из
третьей строки, чтобы получить нули в позициях (2,1) и (3,1). Выполнив эти
операции, будем иметь
2
0
0
1 1 9
1 -2 0
-3 4 -2
7.7. Исключение Гаусса и LU-разложение
89
Множитель для второго шага равен т32 = аз2/а22 = “3. Поэтому мы вычита-
ем (-З)-кратное второй строки из третьей и получаем
2 119
0 1-20
0 0-2-2
После двух шагов приведение завершается. Если мы запишем множители
на место нулей, то массив будет выглядеть так:
2 119
(1.7.9)
Теперь можно решить исходную систему, решая
2 1 Г 0 1 -2 0 0 -2 1X X X' UJ — = ’9' 0 -2
обратной подстановкой. Выполнив это, найдем, чтох3 = 1, х2 = 2 и х1 = 3. □
Упражнение 1.7.10. Пусть
2 1 -1 3‘ 13 '
-2 0 0 0 -2
А = 4 1 -2 6 И b = 24
-6 -1 2 -3 -14
(а) Вычислите нужные детерминанты (их четыре), чтобы показать, что мат-
рица А может быть приведена к (невырожденной) верхней треугольной форме
только операциями типа 1. (Кстати, это строго академическое упражнение. На
практике никто не вычисляет эти детерминанты заранее.)
(Ь) Выполните построчные операции типа 1, чтобы привести систему Ах = b
к эквивалентной системе Ux = у, где U — верхняя треугольная матрица. Сохра-
ните множители, чтобы использовать их в упражнении 1.7.18.
(с) Примените обратную подстановку к системе Ux = у, чтобы получить ре-
шение для Ах = Ь. Не забудьте проверить ваши результаты. □
В реальных задачах нецелесообразно заранее проверять выполнение усло-
вий (1.7.4). Это не должно помешать нашей работе с алгоритмом. В ходе вы-
полнения исключений, если какая-то матрица Ак окажется вырожденной (а
все предыдущие были невырожденными), то на это нам укажет - 0.
Это, в принципе, дает нам возможность при приведении А к треугольному
виду определить, удовлетворяются ли условия (1.7.4).
90
Глава 1. Гауссово исключение и его варианты
Хотя эта проверка теоретически удовлетворительна, на практике она рабо-
тает плохо. В реальных задачах элементы матрицы не являются целыми числа-
ми, вычисления выполняются на компьютере, возникают ошибки округления.
Как следствие, элемент, теоретически равный нулю, на практике оказывается
(хотя и незначительно) отличным от нуля. Необходимость прекратить вычис-
ления появляется тогда, когда на очередном шаге при делении на такой эле-
мент получаются неприемлемо большие множители. Мы увидим, как это слу-
чается, в следующем разделе.
Смысл множителей
Теперь выясним, зачем надо хранить множители Пусть уже решена сис-
тема Ах = Ь, но нужно еще решить систему Ах = Ь с той же самой матрицей ко-
эффициентов, но с другой правой частью. Можно образовать расширенную
матрицу [А | Ь] и повторить процедуру решения системы с самого начала, но
это нерационально, поскольку матрица коэффициентов осталась той же са-
мой, как и все множители и операции над строками. Если множители были
сохранены, то можно применить построчные операции только к столбцу b и
тем самым сократить объем вычислений. Теперь посмотрим, как это работает.
Над b выполнялись следующие операции:
/><> = Ь, -mi}bv i = 2,3,..п,
*‘2) = b^-mi2b^\ z = 3, 4,п,
= -mvb^, i = j + \,...,n,
i=n.
После выполнения этих операций столбец b был преобразован к
(1.7.12)
Те же операции, будучи примененными к Ь, дадут вектор у. Тогда система
Ах = b может быть сведена к эквивалентной верхней треугольной системе
Ux = у где U получена приведением исходной матрицы А.
Пример 1.7.13. Пусть нужно решить систему Ах - Ь, где
7
3
20
7.7. Исключение Гаусса и LU-разложение
91
Матрица коэффициентов та же, что и в примере 1.7.8, поэтому и множите-
ли те же, что и в (1.7.9), т.е. т2х = 1, = 2 и /и32 = -3. Это означает, что А может
быть преобразована к верхней треугольной форме однократным вычитанием
первой строки из второй, двукратным вычитанием первой строки из третьей и
(-З)-кратным вычитанием (новой) второй строки из (новой) третьей. Вместо
выполнения этих операций над расширенной матрицей применим их лишь к
столбцу b и получим
= b2 -m2fi{ =3-1-7 =-4,
Л3(1) = £3-м3Д =20-2-7=6,
=£3(,) -т32Ь™ = 6-(-3)(-4) = -6.
После выполнения этих преобразований новая правая часть примет вид
ь\
А(2)
У =
7
-4
-6
Теперь мы можем получить решение системы Vx = у обратной подстанов-
кой, где
2 1
U= 0 1
.° 0
1
-2
-2
каки в примере 1.7.8. Сделав так, найдем, чтох3 = 3,х2 = 2 их, = 1. □
Простой подсчет показывает, что для (1.7.11) требуется п2 флопов. Добав-
ляя к ним п2 флопов обратной подстановки, найдем, что общие затраты на ре-
2
шение системы Ах = b составляют около 2л2 флопов. Сравнив это с -п2 фло-
пов, необходимых для преобразования А к верхней треугольной форме, при-
дем к заключению, что после решения системы Ах = b дополнительные
системы можно решить с очень небольшими затратами.
Более точное рассмотрение преобразования b в у дает важную интерпрета-
цию гауссова исключения. С помощью (1.7.12) мы можем выразить (1.7.11) че-
рез компоненты у следующим образом:
й(0 = bi-тну19 / = 2,3, ...,п,
= b<"-mi2y2, / = 3,4,..„и, (1714)
/=п.
Вместе с (1.7.12) эти уравнения могут быть использованы при выводе вы-
ражений для Ух, у2, ..., у„. Согласно первому уравнению в (1.7.14) мы получим
92
Глава 1, Гауссово исключение и его варианты
^2 = ^2(1) = ^2 ~ т1\У\- Первые два уравнения из (1.7.14) даюту3 = й3(2) = i3(,)- т32у2 =
= Ь3 - ди31у! - т32у2. Аналогично получаем у4 = />4 - ди41у1 - т42у2 - и, в об-
щем случае,
/-1
У, = Ь,- ^.тиУл 1 = t 2> •••> п (1.7.15)
7=1
Можно использовать (1.7.15) при вычислении ylf y2i ..., уп. Операции, оче-
видно, те же, что и в (1.7.11), но выполняются они в другом порядке. Формулы
(1.7.15) можно интерпретировать как матричную операцию, если переписать
их в виде
/-1
;=|
Это можно представить как уравнение в матричной форме
1 0 0 . .. 0
«21 1 0
«31 «32 1 •. 0
«л! «л2 «Зл • .. 1
(1.7.16)
Таким образом, видно, что у является просто решением линейной системы
Ly - b, где L — нижняя треугольная матрица. На самом деле L является нижней
унитреуголъной матрицей: это означает, что все элементы ее главной диагонали
равны единице. В действительности (1.7.15) является просто прямой подстанов-
кой по строкам. Обычно требующееся деление (как в (1.3.3)), в (1.7.15) отсутст-
вует, поскольку элементы главной диагонали (1.7.16) равны единице. Вы мо-
жете легко проверить, что (1.7.11) есть не что иное, как прямая подстановка по
столбцам.
Краткий обзор проделанного нами до сих пор приводит к интересному и
важному заключению: LnU можно рассматривать как множители для А. Что-
бы решить систему
Ах - Ь,
мы приводим ее к виду
t/x = у,
где U — верхняя треугольная матрица, а у является решением нижней унитре-
угольной системы
Ly = b.
1.7. Исключение Гаусса и LU-разложение
93
Комбинируя последние два уравнения, находим, что LUx = b. Таким обра-
зом, LUx = b = Ах. Эти равенства выполняются при любом выборе b и, следо-
вательно, при любом выборе х. (Для данного х соответствующее b находится
вычислением b = Ах.) Так как равенство LUx = Ах выполняется для всех х е 1",
то отсюда следует, что
А = LU.
Мы приходим к заключению, что гауссово исключение без перестановки
строк (с запоминанием множителей) может рассматриваться как разложение А
в произведение LU, где L — нижняя треугольная, a U - верхняя треугольная
матрицы. На самом деле в обычной процедуре расширенная матрица [А | i] не
формируется, а лишь выполняются построчные операции над А. Матрица А
приводится (с запоминанием множителей) к виду
"11 «12 «13 и1„
/и2| w22 /П23 •• т2„
/и31 "Ьз •• т3„
«П1 ™л2 1
где содержится вся информация об L и U. Тогда решение системы LUx = b на-
ходится путем решения сначала системы Ly=b относительно у прямой подста-
новкой, а затем решением системы Ux = y обратной подстановкой.
Матрица коэффициентов та же, что и в примере 1.7.8. Из (1.7.9) мы знаем,
что А = LU, где
Решая Ly- b прямой подстановкой, получаем у = [3, -3, -4]г. Решая Ux = у
обратной подстановкой, находим х- [0, 1, 2]т. □
Упражнение 1.7.18. Найдите решение линейной системы Ах - Ь, где А — та-
кая же, как в упражнении 1.7.10, и b - [12, -8, 21, —26]т. Используйте L и U, вы-
численные вами в упражнении 1.7.10. □
Мы уже доказали большую часть следующей теоремы.
94
Глава 1. Гауссово исключение и его варианты
Теорема 1.7.19 (теорема об LU-разложении). Пусть А — п* п-матрица, обла-
дающая невырожденными ведущими главными подматрицами. Тогда А можно
разложить единственным образом в произведение'матриц,
А = LU,
так что L является нижней унитреугольной, a U — верхней треугольной.
Доказательство. Мы уже установили существование LhV. Осталось только
показать их единственность. Наше доказательство единственности дает второй
алгоритм расчета £ {/-разложения. Рассмотрим равенство А = LU детально:
’«11 «13 • •' «|„ 1 0 0 . .. О' ’«11 «12 «13 • •• «!„’
«21 а22 «23 • •• «2л ^21 1 0 . .. 0 0 «22 «23 • •• «2 л
«31 ^32 «33 • •• «Зл = ^31 hi 1 . .. 0 0 0 «33 • •• «3»
«Я1 ап2 «лЗ «ял _ А. hl hl • .. 1 0 0 0 . • • ^пп _
Первая строка матрицы L, которая имеет только один элемент, не равный
нулю, известна полностью. Умножая первую строку матрицы L на/-й столбец
матрицы U, найдем
«у = 1м17 + Оиу + Ой,, + ... + 0unJ,
т.е. и}, = а1г Таким образом, первая строка матрицы Uопределяется однозначно.
Зная теперь первую строку матрицы U, мы понимаем, что нам также известен и
ее первый столбец, поскольку его единственный отличный от нуля элемент есть
ulv Умножая z-ю строку матрицы L на первый столбец матрицы U, находим
ан = * - 2, п.
(1.7.20)
Из предположения о невырожденности Л следует невырожденность U. (По-
чему?) Следовательно, и^ * 0 для k = 1, ..., п, и, в частности, ф 0. Таким об-
разом, (1.7.20) определяет первый столбец матрицы L единственным образом:
/п = —, i - 2, ..., п
Итак, первый столбец матрицы L определен однозначно. Теперь, когда опреде-
лены первая строка матрицы U и первый столбец матрицы L, нетрудно показать,
что и вторая строка матрицы {/определяется однозначно. В качестве упражнения
найдите выражение для u2j (j > 2) через a2j и элементы первых строки матрицы
матрицы U и столбца матрицы L. Раз и22 известно, становится возможным опре-
делить второй столбец матрицы L. Сделайте и это в качестве упражнения.
1 В упражнении 1.7.47 вкратце изложено второе доказательство существования.
1.7. Исключение Гаусса и LU-разложение
95
Теперь предположим, что доказана единственность определения к - 1 первых
столбцов матрицы Uи строк матрицы L. Покажем, что тогда их Л-е строка и стол-
бец определяются однозначно; это будет доказательством по индукции. Л-я стро-
ка матрицы L есть [1к1,1кЪ ... lkk_ l 1 0 ... 0]. Так как все 1кЬ ..., 1кк_ । находятся в пер-
вых к - 1 столбцах матрицы L, то они определены однозначно. Умножая к-ю
строку матрицы L на j-й столбец матрицы U (j> к), найдем
к-\
@kj ~ ^km^mj + Ukj*
/м-1
(1.7.21)
Все элементы umj (кроме ukj) лежат в первых к - 1 строках матрицы Uи, сле-
довательно, уже известны (т.е. однозначно определены). Тем самым ukj одно-
значно определяется из (1.7.21):
Л-1
Ukj — akj ~ kmUmji j — к, к + 1, ..., п. (1.7.22)
/и = 1
Это доказывает, что к-я строка матрицы U определяется однозначно, и дает
способ ее вычисления. Теперь, когда известен икк, определяется весь к-й столбец
матрицы U. Умножая /-ю строку матрицы L на к-й столбец матрицы U, найдем
к I
U(k ~ hmUfnk + hkUkk'
/л-I
(1.7.23)
Все элементы lim (кроме lik) лежат в первых к - 1 столбцах матрицы L и поэто-
му определены однозначно. Таким образом, (1.7.23) однозначно определяет lik:
к~\
lik = u^(ailc-Yhm4mk), i = к + 1......п. (1.7.24)
/л=1
Это доказывает, что к-й столбец матрицы L определяется однозначно, и
дает способ его вычисления. На этом доказательство единственности L и ^за-
вершается. □
Применение выражений (1.7.22) и (1.7.24) в нужном порядке указывает путь
вычисления LnU. Поскольку и (1.7.22), и (1.7.24) требуют вычисления внутрен-
них произведений, можно назвать этот алгоритм исключением Гаусса в форме
внутреннего произведения'. Исторически он известен как редукция Дулитла1 2.
При вычислении L и Uс помощью операций по строкам элементы матрицы А
постепенно заменяются элементами матриц L и U, То же может быть сделано и
при использовании формы с внутренним произведением: akj (к < j) используются
1 В противоположность этому, вычисление L и U с помощью построчных операций типа 1 фор-
мулируется в виде внешнего произведения. См. упражнение 1.7.27.
2 Это хорошо известный вариант редукции Краута, дающей аналогичное разложение, но в нем
U, а не L имеет единицы на главной диагонали.
96
Глава 1. Гауссово исключение и его варианты
лишь при вычислении ukji a aik (i > к) используются только при вычислении lik.
Следовательно, каждый элемент матриц L или U может быть записан на место
соответствующего элемента матрицы А сразу, как только будет вычислен. Вы
должны убедиться, что оба метода выполняют точно одни и те же операции, но в
разном порядке. При гауссовом исключении операциями по строкам каждый
элемент многократно преобразуется, прежде чем окончательный результат будет
получен. В варианте с внутренним произведением выполняются те же измене-
ния, но все изменения над каждым из элементов делаются сразу.
Пример 1.7.25. Пусть
ВычислимLnUтакие, что A-LU, двумя разными способами. Сначала сде-
лаем гауссово исключение операциями по строкам.
Шаг 1:
2 4 2 3'
1 -1 -1 1
2 -1 2 2
3 -2 -5 3
Шаг 2:
—
2 4 2 3
-1 -1 -1 1
2 1 3 1
3 2 -3 1
-1
Шаг 3:
2 4 2 3
-1 -1 -1 1
2 1 3 1
3 2 -’1 2
Теперь опробуем вариант с внутренним произведением.
Шаг 1:
2 4 2 3 ~
-1 -5 -3 -2
2 7 6 8
3 10 1 12
1.7. Исключение Гаусса и LU-разложение
97
Первые строка матрицы U и столбец матрицы L вычислены. Остальная
часть матрицы осталась нетронутой.
Шаг 2:
2 4 2 3
-1 -1 -1 1
2 1 6 8
Шаг 3: 3 2 1 12
- 2 4 2 3
-1 -1 1
2 1 3 1
3 2 -1 | 12
Осталось вычислить только и^.
Шаг 4:
2 4 2 3
^Г| -1 -1 1
2 1 | 3 1
3 2 -1 | 2
Оба приведения дают один и тот же результат. Может оказаться поучитель-
ным опробовать вариант с внутренним произведением методом ластика. Начнем
с элементов матрицы А, выписав их посредством карандаша. Как только вы вы-
числите какой-либо из элементов матриц L или U, сотрите соответствующий эле-
мент А и замените его вновь полученным. Вычисления выполняйте в уме.
Теперь, когда мы имеем разложение LU, выполним прямую подстановку
для системы
’ 1 0 0 О' >1' -3'
-1 1 0 0 Уз 3
2 1 1 0 Уз -1
3 2 -1 1 У 4. 16
и получим у = [-3,0,5, -2] г. Затем выполним обратную подстановку для системы
2
О
О
О
4
-1
О
О
и получимх= {4, -3, 2, -1]т.
□
4 Основы матричных вычислении
98
Глава 1. Гауссово исключение и его варианты
Упражнение 1.7.26. Воспользуйтесь вариантом с внутренним произведени-
ем, чтобы вычислить разложение {.{/матрицы А из упражнения 1.7.10. □
Упражнение 1.7.27. Разработайте вариант с внешним произведением алго-
ритма {.{/-разложения в духе алгоритма разложения Холесского с внешним
произведением. Покажите, что этот алгоритм идентичен гауссову исключению
с построчными операциями типа 1. □
Варианты L {/-разложения
Важным вариантом {.{/-разложения является {/Ж-разложение, в котором
диагональная матрица расположена между двумя унитреугольными матрица-
ми. Матрица В называется диагональной, если by = 0 при i ф j, так что все ее эле-
менты вне главной диагонали равны нулю.
Теорема 1.7.28 (теорема о LDV-разложении). Пусть А есть п х п-матрица, у
которой все ведущие главные подматрицы невырожденны. Тогда А можно пред-
ставить единственным образом в виде произведения матриц,
А = LDV,
где L является нижней унитреугольной, D — диагональной, а V— верхней унитре-
уголъной.
Доказательство. По теореме 1.7.19 существует нижняя унитреугольная
матрица L и верхняя треугольная матрица U такие, что А = LU. Так как U не-
вырожденна, то ukk * 0 дня k = 1, ..., п. Пусть D — диагональная матрица с
элементами ми, ..., ипп на главной диагонали. Тогда, если D невырожденна, то
D1 является диагональной матрицей с элементами urf, ..., ип[п на главной
диагонали. Пусть И= D~XU. Легко проверить, что V является верхней унитре-
угольной и А = LDV.
Для завершения доказательства нужно показать, что разложение единст-
венно. Предположим, что А = L{D{VX - {.2{>2^2- Пусть U{ = DxV\n U2 = Т)2У2. То-
гда, очевидно, и U2 - верхние треугольные и А = L{UX = L2U2. Ввиду единст-
венности L{/-разложения L{ = L2 и U{ = U2. Из последнего равенства вытекает,
что D{VX = D2V2 и, следовательно,
D?DX = ИИ,-'.
(1.7.29)
Поскольку И, - верхняя унитреугольная, то и И,"1 такая же. Так как И2 и
Kf* — верхние унитреугольные, то и И2 У^' тоже. (См. упражнения 1.7.44 -
1.7.46.) С другой стороны, Р2 'Л явно диагональная. Таким образом, К2 Уу~' -
одновременно и верхняя унитреугольная, и диагональная, т.е. Уг Kf1 = I. Сле-
довательно, V2 = V\ п D2 = D□
Ввиду симметрии в ролях £ и И особый интерес представляет ££)И-разложе-
ние в случае симметричной матрицы А.
1.7. Исключение Гаусса и LU-разложение
99
Теорема 1.7.30. Пусть А — симметричная матрица, у которой все ведущие
главные подматрицы невырожденны. Тогда А единственным образом может быть
представлена в виде произведения А = LDLT так, что L является нижней унитре-
угольной матрицей, a D — диагональной.
Доказательство. А имеет А/Ж-разложение: А = LDV. Остается лишь пока-
зать, что V = LT. Но А = А Т = (LDV)r = VTDTLT. VT есть нижняя унитреуголь-
ная матрица, DT — диагональная, a LT — верхняя унитреугольная, так что
VTDTLT дает ZDK-разложение матрицы А. Поскольку ЫЖ-разложение един-
ственно, имеем V= LT. □
В разд. 1.4 было доказано, что если А — положительно определенная матри-
ца, то каждая ее ведущая главная подматрица является положительно опреде-
ленной и, следовательно, невырожденной. Поэтому каждая положительно оп-
ределенная матрица удовлетворяет условиям теоремы 1.7.30.
Теорема 1.7.31. Пусть А — положительно определенная матрица. Тогда А
можно единственным образом представить в виде произведения А - LDLT так,
чтобы L являлась нижней унитреугольной матрицей, a D — диагональной с поло-
жительными диагональными элементами.
Упражнение 1.7.32. Докажите теорему 1.7.31. Для этого достаточно показать,
что Л является положительно определенной тогда и только тогда, когда элементы
главной диагонали матрицы D — положительные. См. утверждение 1.4.55. □
Теорема 1.7.31 приводит ко второму доказательству существования разло-
жения Холесского: Поскольку элементы главной диагонали D — положитель-
ные, можно взять квадратный корень из них. Пусть Е = Dl/2. Это — диагональ-
ная матрица, у которой элементы на главной диагонали суть + 7^17, ..., + 7^7-
Тогда А = LDLT = LE2LT- LEETLT = (LE)(LE)r = RTR, где R = (LE)T, так что R
есть верхняя треугольная матрица с положительными элементами на главной
диагонали и А = RTR.
Разложение LDLT иногда используется вместо разложения Холесского при
решении положительно определенных систем. Существуют алгоритмы, ана-
логичные различным формулировкам метода Холесского (упражнение
1.7.40). У каждого из этих алгоритмов есть блочный вариант. Разложение
LDLT иногда оказывается предпочтительнее, так как не требует извлечения
квадратных корней.
Следующая теорема дает третий способ разложения положительно опреде-
ленных матриц, который оказывается более подходящим в некоторых ситуа-
циях.
Теорема 1.7.33. Пусть А — положительно определенная матрица. Тогда А
можно единственным образом представить в виде произведения А = MD~XMT так,
чтобы М являлась нижней треугольной матрицей, a D — диагональной с положи-
тельными диагональными элементами, совпадающими с элементами главной диа-
гонали матрицы М.
Доказательство. Начиная с разложения А = LDLT, положим М = LD. Тогда
легко видеть, что А = MD~{MTw элементы главной диагонали матрицы Мте же,
что и у D. Доказательство единственности оставляем читателю в качестве уп-
ражнения. □
100
Глава 1. Гауссово исключение и его варианты
Алгоритмы вычисления MD~XMT можно получить, слегка видоизменив
алгоритмы разложений Холесского или LDLT. Подобно LDLT-алгоритмам,
MD~{Mг-алгоритмы не требуют вычисления квадратных корней. В некотором
смысле AfD 'Af^-разложение оказывается более фундаментальным в сравне-
нии с другими: см. обсуждение общего метода исключения Гаусса в упражне-
нии 1.7.55.
LDLT- и MD~{Mг-алгоритмы можно применить и к симметричным мат-
рицам, не являющимся положительно определенными, при условии, что их
ведущие главные подматрицы невырожденные. Однако трудно заранее про-
верить, выполняются ли эти условия, и, даже если они выполняются, вы-
числения могут быть подпорчены ошибками округления. Существуют ус-
тойчивые эффективные алгоритмы для симметричных неопределенных ли-
нейных систем, но мы не будем обсуждать их здесь. Такое обсуждение вы
найдете в [33, § 4.4].
Дополнительные упражнения
Упражнение 1.7.34. В этом упражнении вам нужно показать, что выполне-
ние элементарной построчной операции типа 1 эквивалентно умножению на
матрицу специального вида. Предположим, что матрица А получена из А до-
бавлением ди-кратной у-й строки к f-й.
(а) Покажите, что А - МА, где М есть треугольная матрица, полученная из
единичной заменой нуля на т в позиции (i, j). Например, если i > j, то М
имеет вид
’1
1
т 1
1
Обратите внимание, что эта матрица получена применением построчной
операции типа 1 непосредственно к единичной матрице. Мы называем Мэле-
ментарной матрицей типа 1.
(Ь) Покажите, что det(Af) = 1 и det(H) = det(/4). Таким образом, мы опять
видим, что А является невырожденной тогда и только тогда, когда невырож-
денна А.
(с) Покажите, что отличается от М только тем, что вместо т в позиции
(jj) она имеет -т. М~х также является элементарной матрицей типа 1. Какой
элементарной операции она соответствует? □
Упражнение 1.7.35. Предположим, что А получена из Л перестановкой /-й и
у-й строк. Это — операция типа 2.
7.7. Исключение Гаусса и LU-разложение
101
(а) Покажите, что А = МА, где М есть матрица, полученная из единичной
перестановкой i-й и J-й строк. Мы называем эту матрицу Мэлементарной мат-
рицей типа 2.
(Ь) Покажите, что det(M) = -1 и det(^) = -det(/l). Таким образом, мы опять
видим, что А является невырожденной тогда, и только тогда, когда невырож-
денна Л.
(с) Покажите, что М~[ = М. Объясните, почему такой результат следовало
ожидать, имея в виду, что М реализует элементарную операцию типа 2. □
Упражнение 1.7.36. Предположим, что А получена из А умножением z-й
строки на отличную от нуля константу с.
(а) Найдите вид матрицы М {элементарной матрицы типа 3) такой, что
А = МА.
(Ь) Найдите М~х и опишите ее действие как элементарной матрицы.
(с) Найдите det(Af) и определите соотношение между det(>4) и det(>4). До-
кажите, что А является невырожденной тогда и только тогда, когда невырож-
денна А. □
Упражнение 1.7.37. Пусть симметричная матрица Л с alt ф 0 приведена к виду
а11 а12 ••• а\п
О
: Л(,)
О
только построчными операциями типа 1. Докажите симметричность Л(1). (От-
сюда следует, что, используя симметрию, можно почти вдвое сократить объем
вычислений при условии, что Ак невырожденны при к = 1, ..., п. Так обстоит
дело, например, если Л — положительно определенная. □
Упражнение 1.7.38. (а) Разработайте вариант гауссова исключения с окайм-
лением, аналогичный алгоритму разложения Холесского с окаймлением.
(Ь) Предположим, что Л — разреженная матрица, ее нижняя часть хранится в
оболочке по строкам, а ее верхняя часть хранится в оболочке по столбцам. До-
кажите, что оболочка матрицы L (по строкам!) совпадает с оболочкой нижней
части матрицы Л, а оболочка матрицы U (по столбцам!) — с оболочкой верхней
части матрицы Л. □
Упражнение 1.7.39. Мы видели, что если ведущие главные подматрицы Ак
невырожденны при к = 1, ..., п, то Л имеет L{/-разложение. Докажите следую-
щее обратное утверждение. Если Л невырожденна и имеет L{/-разложение, то
невырожденны и Ак при к = 1,..., п. (Указание: Выполните разбиение матриц в
разложении Л = LU.) □
Упражнение 1.7.40. Разработайте алгоритмы для вычисления LDL^разложе-
ния (теорема 1.7.31) положительно определенной матрицы: (а) вариант с внут-
ренним произведением, (Ь) вариант с внешним произведением, (с) вариант с
окаймлением, (d) подсчитайте число операций для каждого алгоритма. Может
2
оказаться, что вам потребуется — п3 умножений — вдвое больше, чем для метода
102
Глава 1. Гауссово исключение и его варианты
Холесского. В этом случае покажите, как можно исключить половину умноже-
ний из внутреннего цикла, чтобы сократить число флопов до п3/3. Какие из трех
вариантов совпадают с тем, что утверждалось в упражнении 1.7.37? □
Упражнение 1.7.41. Разработайте алгоритмы для вычисления Л/2)_1Л/г-раз-
ложения положительно определенной матрицы (теорема 1.7.33): (а) вариант с
внутренним произведением, (Ь) вариант с внешним произведением, (с) вари-
ант с окаймлением. И снова для аккуратно написанного алгоритма необходи-
мое число флопов составит около п3/3. □
Упражнение 1.7.42. Докажите единственность в теореме 1.7.33. □
Упражнение 1.7.43. Пусть А - несимметричная матрица, (а) Докажите, что
если все ведущие главные подматрицы матрицы А невырожденны, то существу-
ют единственным образом определенные матрицы М, Dn U такие, что М явля-
ется нижней треугольной, D - диагональной, U — верхней треугольной, причем
М, Dn U все имеют одинаковые элементы на главной диагонали и А = MD~X U.
(b) Сформулируйте алгоритм, который вычисляет М, Dn Un записывает их на
место А. (Обратите внимание, что в массиве, содержащем А, достаточно места
для хранения М, Du U.) □
Упражнение 1.7.44. Пусть L — невырожденная нижняя треугольная мат-
рица.
(а) Докажите, что Z"1 — нижняя треугольная матрица. (Набросок доказа-
тельства: Воспользуйтесь индукцией по п, размерности L. Пусть М= L1. Раз-
бейте L и М одинаковым образом:
,^21 М 21 _
где £н и - квадратные, нижние треугольные и невырожденные. Так как
М — L~\ то LM - I. Примените разбиение к этому равенству и воспользуйтесь
им, чтобы получить М{2- О, Л/п = и Л/22= L2\. Используя индуктивное пред-
положение, докажите, что Ми и М22 — верхние треугольные матрицы. Это
лишь один из многих возможных подходов к доказательству.)
(Ь) Докажите, что элементы главной диагонали суть 1^ , 122,J. Таким
образом, если L - нижняя унитреугольная матрица, то такой же будет и L~[. □
Упражнение 1.7.45. Пусть Ln М — нижние треугольные матрицы.
(а) Докажите, что LM — нижняя треугольная матрица.
(Ь) Докажите, что элементы на главной диагонали матрицы LM равны
/ц^п, ..., 1пптпп. Таким образом, произведение двух нижних унитреугольных
матриц будет нижней унитреугольной матрицей. □
Упражнение 1.7.46. Докажите для верхней треугольной матрицы утвержде-
ния, аналогичные полученным в упражнениях 1.7.44 и 1.7.45. (Простой путь к
этому — выполнить транспонирование и воспользоваться результатом для
нижней треугольной матрицы.) □
Упражнение 1.7.47. В данном упражнении продолжим начатое в упражне-
нии 1.7.34, выражая на языке матриц приведение к треугольному виду посред-
ством операций типа 1. Пусть А — невырожденная матрица, у которой все ве-
дущие главные подматрицы не вырожденны.
£и О
^22
7.7. Исключение Гаусса и LU-разложение
103
(а) Определим матрицу Мх как
1
/и,
О '
'„J’
где 1п_х — единичная матрица размеров (п - 1) х (п - 1) и = [дип, wzJT. По-
кажите, что
Л/,-1
1 о
_~mi
(b) Первый шаг гауссова исключения без перестановок строк преобразует А
к виду
Л(1) =
«11 °!2 ’ .. O|ZJ
0 ••
0 ••
Докажите, что Л(1) = М{ 1А, где Мх — та же, что и в п. (а), а /и2ь •••> тп\ ~ мно-
жители для шага 1, т.е. miX = aix/axx.
(с) Пусть Л(Аг) обозначает матрицу, в которую преобразуется А после к шагов
гауссова исключения. Покажите, что А(к} = Мк{А(к~ °, где
/
*-1
Мк =
1 О
tn-k
Незаполненные места в массиве обозначают нули, а тк = [тк + и, ..., т„к]Т,
где тк + 1Л, ..., тпк — множители для Л-го шага. Матрицы вида Мк и Мк1 иногда
называют преобразованиями Гаусса, поскольку они выполняют преобразования
гауссова исключения.
(d) После п - 1 шагов гауссова исключения А преобразуется в верхнюю тре-
угольную матрицу Л(Л" ° = U. Докажите, что A - LU, где L = МХМ2... Мп_х. Со-
гласно упражнению 1.7.45 L является нижней унитреуголыюй матрицей.
(е) Докажите, что L = МХМ2 ... Мп_х из (d) имеет вид
’ 1 0 0 . .. О'
т2( 1 0 . .. 0
L = «31 «зз 1 .. 0
_тю тп2 «»з . •• L
104
Глава 1. Гауссово исключение и его варианты
Для примера проверьте, что
1 01Г1 О'
т I j ОМ
1 О
т М
и затем используйте это как основу доказательства по индукции. □
Упражнение 1.7.48. Аккуратно выполните доказательство существования
Л/7-раз ложе ния на основе пп. (а) — (d) упражнения 1.7.47. □
Упражнение 1.7.49. Рассмотрим преобразование Mh введенное в упражне-
нии 1.7.47. Покажите, что каждая такая матрица имеет вид М= I- vw7, где v и
w соответствующим образом выбранные векторы. Поскольку vwr — матрица
ранга 1, то матрицы вида I - vwT называются одноранговыми модификациями
единичной матрицы. □
Упражнение 1.7.50. В этом упражнении вводится понятие блочного исклю-
чения Гаусса. Пусть А — невырожденная матрица, у которой все ведущие глав-
ные подматрицы не вырожденны. Разобьем А таким образом:
^12
Al ^22
где Ли имеет размеры, скажем, к х к. Поскольку Лп - ведущая главная подмат-
рица, она не вырождена.
(а) Покажите, что имеется только одна матрица М такая, что
А 0 Ап А12 _ Аи Ai2
I п-к _ _А1 Аг _ _ 0 А22
В этом равенстве мы не налагаем ограничений на вид А22. Суть дела в том,
что мы ищем преобразование, которое обнуляет блок (2, 1). Это — операция
блочного гауссова исключения: М — блочный множитель. Покажите, что
единственная подходящая матрица Мдается формулой М=А21Ац, откуда сле-
дует, что
Аг = Аг — (1.7.51)
Матрица А22 называется дополнением Шура подматрицы АИ в А.
(Ь) Покажите, что
Ai
_Ai
Это блочное LU-разложение.
(с) Ведущие главные подматрицы Аи, конечно, все невырожденные. Дока-
жите, что А22 — невырожденная. В общем случае, докажите, что все ведущие
главные подматрицы А22 — невырожденные.
1.7. Исключение Гаусса и LU-разложение
105
(d) Согласно (с), Лп и А22 имеют LU-разложения, скажем, Лп = LXU{ и А22 =
L2U2. Покажите, что
i, о j их L-x'An
MLX L2 J L 0 u2
Это - L{/-разложение A.
(e) После k шагов гауссова исключения без перестановки строк, как
было показано в данном разделе и в упражнении 1.7.47, А преобразуется к
виду
=
О
лМ~
i2
Л22 J
где А^— верхняя треугольная матрица. Последующие операции гауссова ис-
ключения действуют только на А^Р, не затрагивая остальные матрицы. Дока-
жите, что
(i) Л*** - Ux - верхний треугольный множитель Лп,
(ii) Аур = А22 — дополнение Шура подматрицы АцвА. □
Упражнение 1.7.53. Аккуратно выпишите доказательство по индукции су-
ществования и единственности L ^/-разложения, положив в основу пп. (а) - (d)
предыдущего упражнения. □
Упражнение 1.7.54. (а) Докажите, что если Н — невырожденная и симмет-
ричная матрица, то /Г1 симметрична. (Ь) Докажите, что дополнение Шура А22
(1.7.51) симметрично, если симметричная. Это утверждение обобщает резуль-
тат упражнения 1.7.37. □
Упражнение 1.7.55. Донгарра, Густавсон и Кэрп [19] ввели интересное
понятие общего алгоритма исключения Гаусса. В этом упражнении мы рас-
смотрим это понятие для положительно определенных матриц. Пусть А — та-
кая матрица. Тогда по теореме 1.7.33 ее можно записать в виде А =
где М — нижняя треугольная матрица, D - диагональная и положительно
определенная, и, кроме того, М и D имеют одинаковые элементы на глав-
ной диагонали.
(а) Перепишите равенство А = MD~XMT в блочной форме, где
Ь
т"
. , М =
О
М
О
D
b
А
D =
. Р
О
Покажите, что тп = аи, р = b w А = MD[МТ, если мы определим А = А -
- ЬсГрЬт. (Матрица А есть дополнение Шура кан в А.)
(Ь) Используя результаты п. (а), получите для MD XMг-разложения форму с
внешним произведением. Напишите псевдокод алгоритма, использующего
106
Глава 1. Гауссово исключение и его варианты
только нижнюю половину А и записывающего М на место А. Ваше решение
должно выглядеть наподобие следующего:
for Л = 1, ...,п
for/= Л + 1,...,л
forZ =
(1.7.56)
Cly < Qfj
aikajk
akk
На практике надо было бы в соответствующем месте проверить положи-
тельность akk, но мы опустили это, чтобы избежать загромождения подробно-
стями. Приведенная здесь версия получается, если расчеты дополнения Шура
А = А - Ьа^ЬТ выполняются по столбцам. Если они выполняются по строкам,
то надо поменять местами циклы по / и /:
for Z = к +!,...,«
for/ = £ + !,...,/
ij Л
aikajk
акк
(1.7.57)
(с) Подсчитайте число флопов в (1.7.56); отметьте, что имеется п3/6 де-
лений. Покажите, как можно сократить число делений почти до л2/2, если
ввести дополнительный массив длины п для временного хранения данных и
вынести деления за границы внутреннего цикла. Как только это будет сде-
лано, общее число флопов составит приблизительно и3/3, как можно было
ожидать.
(d) Постройте для Л//)-1Л/г-разложения форму с внутренним произведени-
ем. Ваше решение должно выглядеть примерно так:
for / = 1,.м
for i =
for к = 1,..., /-1
^ik^jk
a- <— a-----------—
и и n
L akk
(1.7.58)
И здесь для простоты мы опустили проверку положительности. И опять
можно вынести деления за пределы внутреннего цикла. Мы оставили их во
внутреннем цикле, чтобы по возможности избежать загромождения алгорит-
ма. Обратите внимание на идентичность (1.7.56) и (1.7.58) - они отличаются
лишь порядком вложения циклов. Естественно спросить, можно ли построить
эффективный алгоритм MD 1Л/7-разложения для любого желаемого порядка
вложения циклов. Ответ оказывается положительным: необходимо лишь акку-
1.8. Гауссово исключение с выбором главного элемента
107
ратно задать границы изменения индексов циклов. Таким образом, мы можем
изобразить общий вид Л/г-алгоритма:
for______
for _
Г for
(1.7.59)
jk
akk
Вместо пропусков можно поставить i,j и £ в любом порядке. Мы можем со-
слаться на форму с внешним произведением как на 4/7-алгоритм, поскольку
тогда kji и есть порядок вложения циклов. Если j- и /-циклы в (1.7.56) заменить
на (1.7.57), то получим ^{/-алгоритм. Форма с внутренним произведением
(1.7.58) есть//^-алгоритм. Поскольку i,j и к можно располагать в любом поряд-
ке, имеется шесть базисных алгоритмов. Это верно не только для алгоритмов
ЛЯ)1 Л/разложения, но и для алгоритмов £2)£г-разложения и разложения
Холесского, ибо они получаются из ЛЯГ’Л/^-разложения незначительными
простыми модификациями.
(е) Постройте для ЛЯ)~1Л<г-разложения вариант с окаймлением. Покажите,
что это либо (/^-алгоритм, либо /^/-алгоритм, в зависимости от того, как вы-
полняется прямая подстановка - по строкам или по столбцам.
(f) Можно выбрать любой порядок для индексов циклов /, j и к в (1.7.59)
при условии выполнения определенных соотношений между переменными
i,j, кип. Установите эти соотношения, имея в виду (как и выше), что исполь-
зуется только нижняя половина массива. Решение: 1 < к <j < i < п.
(g) Мы рассмотрели уже все варианты, кроме jki. Напишите уЪ’-алго-
ритм, начиная с (1.7.59) и выбрав правильные пределы изменения индексов
циклов.
(h) Внесите в ваш алгоритм из п. (g) изменения, которые позволили бы вам
вычислять разложение Холесского, а не Л/0-1Л/г-разложение. Вместо вычис-
ления М найдите такую G, что А = GGT(r.e. G = RT). (Набросок доказательства’.
Вам придется в нужном месте взять квадратный корень из ап, чтобы получить
gjj. [Перед извлечением квадратного корня вставьте проверку на положитель-
ность.] После этого вам придется вставить цикл, выполняющий деление
столбца Hagy7. Заметьте, что это устраняет необходимость выполнять деления в
самом внутреннем цикле.) □
1.8. Гауссово исключение с выбором главного элемента
Теперь перейдем ко второму этапу нашего исследования решения системы
Ах = b методом гауссова исключения, на котором мы избавимся от предполо-
жения о невырожденности ведущих главных подматриц. Мы рассмотрим алго-
ритм, использующий элементарные построчные операции 1-го и 2-го рода
108
Глава 1. Гауссово исключение и его варианты
либо для решения системы Ах = Ь, либо (по крайней мере, в теории) для уста-
новления ее невырожденности. Он совпадает с алгоритмом из разд. 1.7, за ис-
ключением того, что на каждом шаге может еще выполняться некоторая пере-
становка строк. Итак, здесь мы рассматриваем исключение Гаусса с перестанов-
ками строк, известное также как исключение Гаусса с выбором главного
элемента. Рассмотрим А:-й шаг алгоритма. После (к - 1)-го шага массив, содер-
жавший вначале матрицу А, преобразуется к виду
«и /и21 W12 * U22 * М1Л-1 ^2Л-1 и\к U2k " “ъ, " U2n
тк-1,1 Ык-1,к~\ Ык-\,к ^к-\,п
... тк,к-\ а<к~п “к,к а(к-Х) uk+t,k а(к-'} - Uk,k+l а(к-х) uk+ljc+l а(к-,х п,к а(к-Х) uk+
тп1 тп,к-\ а(к~х> п,к а(к-Х) • ип,к+1 •• а(к~" ип,п
Здесь Uy — элементы матрицы U, которые в дальнейшем уже не будут изме-
няться, а ть — элементы матрицы L, игравшие роль множителей для строк;
элементы а^'1) еще будут изменяться.
Чтобы вычислить множители к-ro шага, необходимо выполнить деление на
Если а<£~1) = 0, то мы применим построчные операции типа 2 (переста-
новку строк), чтобы получить в позиции (к, к) не равный нулю элемент. На са-
мом деле мы можем переставить строки, даже если ф 0.
Рассмотрим следующую возможность. Если величина |я^~1)| очень мала,
может оказаться, что точно равен нулю, а ненулевое значение получено
из-за ошибок округления на предыдущих шагах. Если теперь вычислить мно-
жители делением на это число, то получится заведомо ошибочный результат.
По этой и другим причинам будем выполнять перестановку строк таким обра-
зом, чтобы избежать появления элемента малой величины в позиции (к, к).
Влияние ошибок округления мы подробно рассмотрим в гл. 2.
Возвращаясь к описанию нашего алгоритма, рассмотрим элементы ^-1),
Если все они равны нулю, то А вырожденка (см. упражнение
1.8.1). Установим признак предупреждения об этом. В этом месте мы можем
либо остановиться, либо перейти к шагу к + 1. Если не все°, ..., a^~'} рав-
ны нулю, найдем среди них наибольший, и пусть этоа^*_,). Переставим строки
т и к вместе с сохраненными множителями. Запишем перестановку строк. Это
легко сделать с помощью целочисленного массива длины п. Запишем число т
на место к-го элемента массива, чтобы указать, что на к-м шаге строки кит
поменялись местами. Теперь вычтем соответствующее кратное новой к-й
J. 8. Гауссово исключение с выбором главного элемента
109
строки из строк k + 1,п, чтобы получить нули в позициях (к + 1,к),..., (п, к).
Конечно, в действительности вместо нулей мы записываем в эти позиции
множители тк + и, тпк. Этим завершается описание шага к.
Упражнение 1.8.1. После выполнения к - 1 шага гауссова исключения мат-
рица коэффициентов преобразуется к виду
Я|<
о
^12
&22
где Ви — верхняя треугольная матрица размеров (к - 1) х (к - 1). Докажите, что
В является вырожденной, если первый столбец В21 равен нулю. □
Полученный элемент (к, к), на который мы делим, чтобы получить мно-
жители, называется главным (ведущим) элементом шага к. к-я строка, кратное
которой мы вычитаем из каждой оставшейся строки, называется главной
строкой шага к. Наша стратегия, состоящая в выборе главного элемента на
Л-м шаге (т.е. на каждом шаге) как можно большим, чтобы защититься от
неприятностей, порожденных ошибками округлений, называется частичным
выбором главного элемента. (Позже мы обсудим полный выбор ведущего элемен-
та, когда переставляются не только строки, но и столбцы.) Обратите внима-
ние, что главные элементы остаются на главной диагонали матрицы U в LU-
разложении. Кроме того, выбор главного элемента гарантирует, что все мно-
жители удовлетворяют условию | mtj; | < 1. Таким образом, все элементы мат-
рицы L в £ {/-разложении будут иметь абсолютные значения, не превосходя-
щие 1.
После (п - 1)-го шага разложение завершается. Остается сделать заключи-
тельную проверку: если a{nnn~i} = 0, то А вырождена и необходимо выставить со-
ответствующий признак. Это последний главный элемент. Он не используется
для порождения нулей в других строках, а, будучи (п, п)-элементом матрицы
U, служит в качестве делителя в процессе обратной подстановки.
Каждый раз, когда мы переставляем строки, переставляются и множители,
соответствующие этим строкам. Поэтому перестановка строк дает тот эффект,
что и первоначальная перестановка строк матрицы А. Другими словами, пред-
положим, что мы взяли копию исходной матрицы А и, не производя никаких
операций исключения, переставили строки в той же последовательности, что
и во время процесса исключений Гаусса. Это даст матрицу Л, являющуюся
матрицей А, у которой просто переставлены строки. Если мы теперь приме-
ним к А гауссово исключение без перестановок строк, то получим тот же ре-
зультат, что и после выполнения перестановок во время процесса исключения.
Гауссово исключение без перестановок строк дает L {/-разложение. Таким об-
разом, наш новый алгоритм дает /^-разложение Я, а не А.
Решение системы Ах - b эквивалентно решению системы Ах = Ь, получен-
ной перестановкой уравнений. Поскольку мы вели запись перестановок строк,
нетрудно переставить элементы чтобы получить Ь. Затем мы решаем Ly = b
прямой подстановкой и Ux = у обратной подстановкой, чтобы получить реше-
ние - вектор х.
НО
Глава 1. Гаусс* >во исключение и его варианты
Пример 1.8.2. Решим систему
0 4 Г 1 1 3 2 -2 1 х2 х3 = 1 1 J. о\ чо 1 1
гауссовым исключением с частичным выбором главного элемента.
На первом шаге главный элемент должен находиться в позиции (1,1). По-
скольку там стоит нуль, явно требуется выполнить перестановку строк. Так
как наибольший из возможных главных элементов есть 2 в позиции (3,1), по-
меняем местами строки 1 и 3, чтобы получить
2 -2 1
1 1 3
О 4 1
Множители первого шага равны ’/2 и 0. Вычитая ’/2 первой строки из вто-
рой и запоминая множители, получаем
2-2 1
1/21 2 5/2
0 4 1
Главный элемент шага 2 должен располагаться в позиции (2,2). Поскольку
4 в позиции (3,2) больше 2 в позиции (2,2), переставляем строки 2 и 3 (вместе с
множителями), чтобы получить главный элемент, равный 4:
2 -2 1
V] 4 1
1/2 2 5/2
Множитель шага 3 равен 1/2. Вычитая */2 второй строки из третьей и запо-
миная множитель, получаем
2 -2 1
~0~| 4 1
1/2 1/2] 2
(1.8.3)
Это завершает процесс гауссова исключения. Заметив, что главный эле-
мент в позиции (3,3) не равен нулю, заключаем, что матрица Л не вырождена и
система имеет единственное решение. В (1.8.3) представлено L [/-разложение
матрицы
1.8. Гауссово исключение с выбором главного элемента
111
Г2
-2 1
4 1
1 3
полученной из А соответствующей перестановкой строк. Можно проверить,
что А = LU, где
' 1 0 О' '2 -2 1
L = 0 1 0 и U = 0 4 1
1/2 1/2 1 0 0 2
Чтобы решить систему Ах = Ь, мы сначала преобразуем b в Ь. Переставив
строки 1 и 3 на шаге 1, мы должны сначала переставить компоненты 1 и 3 век-
тора b и получить [-1,6, 9]г. На шаге 2 были переставлены строки 2 и 3, так что
необходимо переставить компоненты 2 и 3 и получить b - [-1,9, 6]/ Теперь ре-
шаем систему
1 0 0
0 1 0
1/2 1/2 1
У1
Уг
Уз
и находим у = [-1, 9, 2]Т. Наконец, из системы
-2 1 х,
4 1 х2
0 2J |_х3
-1
9
6
-1
9
2
А = О
2
0
0
получим х = [1, 2, 1 ]г. Легко проверить правильность найденного решения,
подставив его в исходное уравнение. □
Упражнение 1.8.4. Пусть
Применяя (на бумаге) гауссово исключение с частичным выбором главного
элемента, найдите матрицы L и U такие, что U — верхняя треугольная, L -
нижняя унитреугольная с | | < 1 при всех i > j, и LU = А, где А можно получить
из А перестановкой строк. Воспользуйтесь вашим L[/-разложением для реше-
ния системы Ах = Ь. □
Гауссово исключение с частичным выбором главного элемента хорошо ра-
ботает на практике, но важно понимать, что точность ответа при этом совер-
112
Глава 1. Гауссово исключение и его варианты
шенно не гарантируется. Существуют плохо обусловленные системы (гл. 2),
которые просто не могут быть решены точно при наличии ошибок округле-
ния. Самым крайним примером плохо обусловленной системы является сис-
тема с вырожденной матрицей коэффициентов: такая система не имеет един-
ственного решения. Предполагается, что наш алгоритм способен обнаружи-
вать такой случай, но к сожалению это не всегда так. Если матрица
коэффициентов вырождена, найдется шаг, на котором все возможные веду-
щие элементы а(^'1\ ..., равны нулю. Однако из-за ошибок округления
на предыдущих шагах вычисленные величины будут отличаться от нуля. По-
этому вырожденность матрицы останется незамеченной, алгоритм продолжит
свою работу и выдаст бессмысленное «решение». Очевидная предупредитель-
ная мера — выдавать сообщение всякий раз, когда алгоритм столкнется с необ-
ходимостью работать с очень малыми главными элементами. Более подходя-
щие способы обнаружения неточности мы рассмотрим в гл. 2.
Дополнительные издержки на перестановку строк в подходе с частичным
выбором главного элемента невелики. Рассмотрим два вида таких затрат: при
определении на каждом шаге наибольшего главного элемента и при фактиче-
ском перемещении строк в памяти. На k-м шаге необходимо сравнить п - к + 1
чисел, чтобы найти наибольшее по модулю. При этом не требуется выполне-
ния других операций, кроме сравнения п - к пар чисел. Общее число сравне-
ний, проводимых за п - 1 шаг, составляет, следовательно,
л-1
£>-*) =
к = \
п(п-\) ~ п2
2 Т
Безотносительно к точной величине затрат на одно сравнение издержки на
выполнение п2/2 сравнений малы по отношению к объему вычислений при
реализации алгоритма, равному О(п\ Перемещение строк также не требует
других операций: все время уходит на выборку и запоминание 2п чисел. По-
скольку выполняется п - 1 шаг, общее число обращений к памяти не превы-
шает 2м2. Таким образом затраты на перемещение строк также пренебрежимо
малы по сравнению со стоимостью всех операций по выполнению алгоритма.
Можно принять в качестве грубой оценки, что общая стоимость гауссова ис-
. 2 зл
ключения с выбором главного элемента составляет -п* флопов.
Перестановка строк матрицы эквивалентна умножению ее на перестано-
вочную матрицу.
Пример 1.8.5. Пусть Л и А такие же, как и в примере 1.8.2. Легко проверить,
что А - РА, где
□
Матрица перестановок — это матрица, имеющая в каждой строке и каждом
столбце точно оду единицу, в то время как все остальные ее элементы равны
нулю. Так, матрица Р в примере 1.8.5 является матрицей перестановок.
1.8. Гауссово исключение с выбором главного элемента
113
Упражнение 1.8.6. Пусть А есть п х ди-матрица и А получена из А переста-
новкой строк. Покажите, что существует единственная п х «-матрица переста-
новок Ртакая, что А = РА. □
Упражнение 1.8.7. Покажите, что если Р — матрица перестановок, то РТР =
= РРТ= I. Другими словами, Р не вырождена и Р~1 = Рт. □
Теперь легко получить следующий результат.
Теорема 1.8.8. Применение к п х п-матрице А гауссова исключения с частич-
ным выбором главного элемента дает нижнюю унитреуголъную матрицу L, для
которой | /J < 1, верхнюю треугольную матрицу U и перестановочную матрицу Р
такие, что
А = PTLU.
Доказательство. Мы видели, что гауссово исключение с частичным выбо-
ром главного элемента дает £ и U требуемой формы такие, что А = LU, где Л
получена из А перестановкой строк. Согласно упражнению 1.8.6, существует
перестановочная матрица Р такая, что А = РА. Таким образом, РА = LUили А =
P~{LU=PTLU. □
Упражнение 1.8.9. Пусть Л - матрица из упражнения 1.8.4. Найдите матри-
цы Р, L и Uсо свойствами, указанными в теореме 1.8.8, такие, что Л = PTLU. □
Найденное разложение Л = PTLUможно использовать для решения систе-
мы Ах = Ь, переписав ее в виде PTLUx = bn затем решая последовательно РТЬ =
= b, Ly = b и Ux = у. Шаг PTb = b или Ь-РЬ сводится просто к переупорядочива-
нию элементов b в соответствии с перестановками строк, выполненными во
время процесса исключения. Таким образом, этот процесс действительно не
отличается от процесса, описанного в конце примера 1.8.2. На практике нет
никакой необходимости строить матрицу перестановок Р. Проще вести запись
перестановок строк, к тому же это требует меньших затрат. Тем не менее,
MATLAB может вывести Р по вашему запросу.
Ранее в этой главе было приведено много примеров использования
MATLAB’a при решении систем линейных уравнений. Всякий раз, когда для
решения системы Ах = b (где Л — невырожденная матрица размеров п х п) при-
влекалась команда х = A\b, MATLAB использовал метод гауссова исключе-
ния с частичным выбором ведущего элемента. Если вы хотите найти L (/-раз-
ложение, воспользуйтесь MATLAB-командой lu.
Упражнение 1.8.10. Воспользуйтесь MATLAB’om, чтобы проверить LU-
разложение, полученное в примере 1.8.2. Введите матрицу Л и наберите
[L, и, Р] = lu (А) . Как только вы получите L, U и Р, восстановите исход-
ную матрицу, выполнив Р' *L*U. (В MATLAB’e ‘-символ, примененный к ве-
щественной матрице, означает «транспонирование».) Можете также узнать,
что даст применение команды [к, V] = lu (А) . Выведите матричное соот-
ношение, связывающее К и L. Чтобы получить описание команды lu, набе-
рите help lu. □
Упражнение 1.8.11. Выполните упражнение 1.8.10 для матрицы из упражне-
ний 1.8.4 и 1.8.9. □
114
Глава 1. Гауссово исключение и его варианты
Программирование исключения Гаусса
Упражнение 1.8.12. Напишите алгоритм, реализующий метод гауссова ис-
ключения с частичным выбором главного элемента. Матрицы Ln U запишите
на место матрицы А и сохраните запись о перестановках строк. □
Ваше решение упражнения 1.8.12 должно напоминать следующее:
Gauss (А, п, intch,/lag)
очистить flag
for& =1,2,..., п-1
атах <- max{|au|, |at+1Jt|anjt |}
if (amax = ty then
установить /tag!
, !> (Л-вырожденная)
intch(k) <- О J
else
т наименьшее число > А, для которого \атк\=атах
intch(k) <- т (записать перестановку строк)
if (т ф k) then
[перестановка строк т и к вместе с их множителями
for i = к +1,..., п
[aik <-aik/akk вычисляем множители
for Z = А 4-1,..., п
вычитаем aik l^k k+j,..., акп ] раз , (операции по строкам)
из[а,Л+|)...,а/я]
if(a„„ =O)then
установить flag} , t
И Л - вырожденная)
intch(n) <- О J
else
[intch(n) <- и]
Если А окажется вырожденной, алгоритм установит соответствующий при-
знак и продолжит работу. Он завершит построение L(/-разложения, но с выро-
жденной матрицей U. Массив А теперь содержит L(/-разложение А = РА, а мас-
сив intch хранит запись о перестановках строк (т.е. кодировку перестановоч-
ной матрицы Р).
Основная часть работы заключается в выполнении построчных операций.
Порядок их выполнения может быть различным. Если каждая построчная
операция выполняется в цикле, мы имеем
for i = к 4-1,..., п
for/ = £4-1, ...,п
[di/j < ац -aikakj
(1.8.13)
1.8. Гауссово исключение с выбором главного элемента
115
При каждом прохождении внешнего цикла выполняется полная построч-
ная операция. Тем не менее, нет никакой причины тому, почему /-цикл дол-
жен быть внутренним. Очевидно, фрагмент программы
for j = £ + 1,..., п
for i = k +1,..., п
l^ij ^ij ~~аik^kJ
(1.8.14)
выполняет точно те же операции, и нет разумных причин для априорного
предпочтения (1.8.13) или (1.8.14). Если используется (1.8.13), то говорят, что
алгоритм выполняется по строкам, поскольку во внутреннем цикле индекс
строки i не меняется. Если же используется (1.8.14), то говорят, что алгоритм
выполняется по столбцам. В этом случае элементы а., и aik по мере увеличения
индекса строк i пробегают соответственно /-й и k-й столбцы.
Выбор лучшего направления при выполнении алгоритма зависит от ис-
пользуемого языка программирования. Например, если используется Фор-
тран, то программа выполнения по столбцам работает обычно быстрее, по-
скольку в Фортране массивы записываются по столбцам и при просмотре каж-
дого столбца элементы выбираются из смежных ячеек компьютерной памяти.
Чтобы решать системы линейных уравнений, нам нужна не только про-
грамма L/7-разложения, но и программа, выполняющая перестановку компо-
нент вектора, а также прямую и обратную подстановки. Такая программа мо-
жет выглядеть следующим образом:
Solve (A, b, п, intch, flag)
for£ =1,2, ...,п-\
т <- intch(k)
переставить^ иЬт
for/ = 1, ...,п-1
for/ = J + 1,...,п-11
> прямая подстановка по столбцам
[b^bi-aybj J
очистить flag
for/ =и,и-1,..., 1
if (ам =0) then
установить flag] r r
> (и —вырожденная)
exit J (обратная подстановка
bj /ал по столбцам)
for / = 1,..., /—1
-aijbj
Входными параметрами этого алгоритма являются значения А и intch на
выходе алгоритма Gauss. Массив Л содержит L/7-разложение, a intch - запись о
116
Глава 7. Гауссово исключение и его варианты
перестановках строк. Массив Ь сначала содержит вектор Ь, а затем вектор ре-
шения х.
Главная программа, связующая подпрограммы Gauss и Solve, может иметь
следующий вид:
Ввести ппА
call Gauss (А, п, intch, flag)
if (flag установлен) then
вывести 'матрица коэффициентов — вырожденная'
stop
ввести пит (число векторов правой стороны)
for ди = 1, ..., пит
ввести b
call Solve (Л, b, п, intch, flag)
вывести 'решение' т 'равно' b (вывод решения)
Эта программа позволяет по желанию пользователя решить несколько за-
дач Ах = Л(1), Ах = i(2), ..., Ах = b(k) с одной и той же матрицей коэффициентов.
Z ^-разложение нужно выполнить лишь один раз.
Упражнение 1.8.15. Напишите на Фортране программу и подпрограммы ре-
шения линейных систем Ах = b методом гауссова исключения с частичным вы-
бором главного элемента. Ваши подпрограммы должны работать со столбца-
ми. Испытайте ваши подпрограммы на тестовых задачах Ах = Ь и Ах - с, где
’2 10 8 8 6‘ '52' ’50'
14-24-1 14 4
А = 0 2 3 2 1 , ь = 12 , с - 12
38 3 10 9 51 48
1 4 1 2 1 15 _12_
После разложения преобразованная матрица будет иметь вид
3 2/3 8 3 10 14/3 6 4/3 9 0
1/3 2/7 -33/7 2/7 -4
1/3 2/7 4/11 -20/11 -6/11
0 3/7 -1/11 _4/5 | 1/5
Перестановки строк даются вектором intch - [4, 4, 4, 5, 5]. Векторы реше-
ний равны [1,2, 1,2, 1]ги [2, 1,2, 1, 2]Т. Если ваша программа решит эту задачу
правильно, можете опробовать ее на решении ваших собственных задач. □
1.8. Гауссово исключение с выбором главного элемента
117
Упражнение 1.8.16. Напишите на любимом вами языке программу решения
систем линейных уравнений методом исключения Гаусса с частичным выбо-
ром главного элемента. Выясните, как ваш язык хранит массивы: по строкам
или по столбцам, и напишите ваши подпрограммы в соответствии с этим.
Проверьте вашу программу на задаче из упражнения 1.8.15 и на ваших собст-
венных примерах. □
Упражнение 1.8.17. Напишите два варианта программы гауссова ис-
ключения: один, выполняющий операции по строкам, и другой, выпол-
няющий операции по столбцам. Прохронометрируйте (засеките время ра-
боты) их на каких-то больших задачах (например, используя матрицы со
случайными элементами). Какая из них работает быстрее? Это то, что вы
ожидали? □
Некоторые современные языки программирования, например Фортран-90,
позволяют программисту выбор между операциями со строками или столбца-
ми оставить транслятору. Построчные операции (1.8.13) или (1.8.14) сводятся
к поправке в виде внешнего произведения (это формулировка в виде внешнего
произведения)
A <-A-vwT, (1.8.18)
где
^п,к+\
Фортран-90 допускает матричные операции с массивами или с сечениями
массивов. Подматрица А записывается в Фортране-90 как а(к + 1 : п, к + 1 : п)
(точно как в MATLAB’e!) и поправка (1.8.18) имеет вид
а(к + 1: п, к + 1: п) = а(к + 1: п, к + 1: п) —
- matmul(fl(£ + 1: п, к : к), а(к : к, к + 1: п)) (1.8.19)
Команда matmul вычисляет матричное произведение. Эта единствен-
ная команда заставляет компьютер выполнить 2(п - к)2 флопов. Трансля-
тор Фортрана-90 сам выбирает, в каком порядке надо выполнять эти
флопы. Такое решение конечно компактнее любого из (1.8.13) или
(1.8.14). Оно может быть более быстрым или более медленным в зависи-
мости от того, как команда matmul реализована вашим транслятором на
вашем компьютере.
Вводя перестановки строк, мы сосредоточили внимание на гауссовом ис-
ключении в форме внешнего произведения. Однако перестановки строк мож-
но легко использовать и в других формах алгоритма Л£/-разложения (напри-
мер, в виде внутреннего произведения). Таким образом, имеется много раз-
личных способов реализации метода исключения Гаусса с частичным
выбором главного элемента.
118
Глава 1. Гауссово исключение и его варианты
Для матриц больших размеров наиболее быстрыми оказываются про-
граммы, эффективно использующие кэширование. В этом случае нужно
применять блочное исключение Гаусса. Преимущества блочных методов об-
суждались в связи с матричным умножением в разд. 1.1 и снова в контексте
разложения Холесского в разд. 1.4. Блочный алгоритм исключения Гаусса
можно построить на основе идей, рассмотренных в упражнении 1.7.50 и при
обсуждении блочных вариантов метода Холесского в разд. 1.4. У каждой
версии гауссова исключения существует блочный вариант. Необходимость
выполнять перестановку строк усложняет процедуру, но не меняет основ-
ных положений.
Надежные программы гауссова исключения с частичным выбором главно-
го элемента можно найти в общедоступных программных пакетах LINPACK и
LAPACK [1]. Программы LAPACK работают с блоками. Имеется С-версия па-
кета LAPACK, а именно CLAPACK.
Как мы видели, существует много подходов к реализации гауссова исклю-
чения с частичным выбором главного элемента. Анализируя программы из
LINPACK и LAPACK, можно узнать много дополнительных подробностей,
даже не упомянутых здесь.
Упражнение 1.8.20. Посетите архив данных NETLIB во Всемирной паутине
(http://www.netlib.org). Просмотрите архив и найдите библиотеки LINPACK и
LAPACK.
(а) Найдите в библиотеке LINPACK подпрограмму dgefa, выполняющую га-
уссово исключение с частичным выбором главного элемента по столбцам.
Скопируйте подпрограмму и снабдите комментариями о работе, выполняемой
каждой ее частью. Обратите внимание, что большая часть работы выполняется
подпрограммами idamax, dscal и (особенно) daxpy. Это базовые подпрограммы
линейной алгебры или BLAS (Basic Linear Algebra Subroutines). Найдите биб-
лиотеку BLAS и узнайте, что делают эти подпрограммы.
(Ь) Найдите в LINPACK подпрограмму dgetrf. Она выполняет исключение в
форме скалярного произведения (dgetf2) или в блочной форме, в зависимости
от размеров матрицы. В блочном исключении используются подпрограммы
подбиблиотеки level-3 BLAS, выполняющие матричные операции. Какая из
них выполняет большую часть работы? □
Вычисление А~1
Вашу программу решения системы Ах = b можно использовать для вычис-
ления обратной матрицы. Положив Х-А~\ имеем АХ - I, Переписав это урав-
нение в блочной форме вида
Alxt х2 ... х„] = [et е2 ... еп],
где хр ..., хп и ..., еп — столбцы соответственно матриц Xи /, найдем, что мат-
ричное уравнение АХ - I эквивалентно уравнениям
AXi = et, i = 1, ..., п.
(1.8.21)
1.8. Гауссово исключение с выбором главного элемента
119
Решая эти п систем методом гауссова исключения с частичным выбором
главного элемента, получим Л"1.
Упражнение 1.8.22. Воспользуйтесь вашей программой и найдите Л-1 для
матрицы Л из упражнения 1.8.15. □
Как велики затраты на вычисление Л"1? L ^-разложение выполняется один
2
раз, что стоит- п3 флопов. Решение каждой из систем (1.8.21) с помощью пря-
мой и обратной подстановок обходится в 2п2 флопов. Таким образом, общая
g
стоимость равна - п3 флопов. Более тщательный подсчет показывает, что рабо-
та может быть выполнена немного быстрее.
Упражнение 1.8.23. Этап прямой подстановки требует решения систем Ly, = eh
i = 1,..., п. Можно избежать выполнения части операций, если использовать на-
личие ведущих нулевых элементов в е, (см. разд. 1.3). Учитывая это, проверьте
пересчетом флопов, что для вычисления Л-1 требуется около 2п3 флопов. □
Упражнение 1.8.24. Модифицируйте программу гауссова исключения так,
чтобы при прямой подстановке использовалось наличие ведущих нулей в пра-
вой части системы. Вы получите программу, вычисляющую обратную матрицу
посредством 2и3 флопов. □
Возможно, вас удивят результаты сравнения этого метода с другими извест-
ными вам способами вычисления Л"1. Один такой метод, иногда описываемый
в начальных курсах линейной алгебры, взяв за основу расширенную матрицу
[Л | /], посредством операций со строками преобразует ее к виду [Z| X]. Работа
этого алгоритма также требует 2п3 флопов, если она организована правильно.
На самом деле в своей основе это тот же самый алгоритм, что и предложенный
здесь. Другой метод, возможно, известный вам как метод алгебраических до-
полнений, выражается формулой
А'1 = —-—adj(H).
det(H)
В этом методе требуется вычислить много детерминантов. Если детерми-
нанты вычисляются классическим способом (разложением по строкам или
столбцам), затраты составят более п\ флопов. Поскольку п\ растет намного бы-
стрее, чем п\ метод алгебраических дополнений становится неконкурентоспо-
собным уже при не очень больших п.
Кстати, существуют способы вычисления детерминантов меньше, чем за п\
флопов. Один очень хороший способ состоит в вычислении ££/-разложения. В
этом случае det(J) = ±det(Z7) = +ипи12 ... ипп, со знаком минус (плюс), тогда и
только тогда, когда было выполнено нечетное (четное) число перестановок
2
строк. Этот метод, очевидно, требует - п3 флопов.
Упражнение 1.8.25. Проверьте, что и в самом деле эта процедура дает детер-
минант А. □
Обратную матрицу и детерминант вычисляют команды MATLAB’a inv и
det.
120
Глава 1. Гауссово исключение и его варианты
Полный выбор главного элемента
Более осторожный подход к выбору главного элемента, известный как пол-
ный выбор главного элемента, достоин хотя бы краткого упоминания. Он до-
пускает перестановки и строк, и столбцов. На первом шаге обследуется вся
матрица. Находим наибольший по модулю элемент и перемещаем его в пози-
цию (1,1) перестановками строки и столбца. (Обратите внимание, что в ре-
зультате перестановки столбцов i и j меняются местами неизвестные х,- и ху.)
Этот максимальный элемент используется затем в качестве главного при полу-
чении нулей в строках ниже его. Второй шаг подобен первому, но применяет-
ся к (л - 1) х (п - 1)-подматрице, полученной после исключения из рассмотре-
ния первой строки и первого столбца, и т.д. Стратегия с полным выбором ве-
дущего элемента уменьшает влияние ошибок округления и удовлетворительна
как теоретически, так и на практике. Недостатком является несколько боль-
ший, чем при частичном выборе, объем вычислений. На первом шаге для оп-
ределения наибольшего элемента выполняется сравнение почти п2 пар чисел.
На втором шаге требуется выполнить (п - I)2 сравнений, на третьем
шаге — (п - 2)2, и т.д. Общее число сравнений, выполняемых при поиске веду-
л-2 j
щего элемента, равно приблизительно £ (п - к)2» - п3, Следовательно, затра-
ты на выполнение сравнений имеют тот же порядок, что и стоимость выпол-
нения арифметических операций. По сравнению с этим затраты на частичный
выбор главногого элемента составляют О(п2) и пренебрежимо малы при боль-
ших п. Дополнительные затраты на выполнение полного выбора оправданы,
если он дает существенно лучшие результаты. Однако на практике метод с час-
тичным выбором работает вполне удовлетворительно и потому используется
наиболее часто.
Упражнение 1.8.26. Пусть А есть п х w-матрица и пусть А — матрица, полу-
ченная перетасовкой столбцов матрицы А. Представьте зависимость между А и
А в виде матричного уравнения, используя матрицу перестановок. □
Упражнение 1.8.27. (а) Покажите, что применение к невырожденной мат-
рице А метода гауссова исключения с полным выбором главного элемента дает
нижнюю унитреугольную матрицу L, верхнюю треугольную матрицу U и пере-
становочные матрицы Р и Q такие, что
А = PTLUQT.
(b) Какими дополнительными свойствами обладают L и 1Л
(с) При решении системы Ах = b методом гауссова исключения с полным
выбором главного элемента необходимо сделать дополнительно заключитель-
ный шаг х = Qx. Как его выполнить на практике? □
О конкурирующих методах
Одним из вариантов гауссова исключения, который часто приводится в
элементарных учебниках по линейной алгебре, является метод исключения
1.8, Гауссово исключение с выбором главного элемента
121
Гаусса-Жордана. В этом варианте расширенная матрица [Л|6] приводится к
виду [/|х] с помощью элементарных операций по строкам. На k-м шаге глав-
ный элемент используется для получения нулей в к-м столбце как выше, так и
ниже главной диагонали. Недостаток этого метода в том, что он требует боль-
ших затрат, чем методы, обсуждавшиеся выше.
Упражнение 1.8.28. (а) Подсчитайте число флопов для метода исключения
Гаусса-Жордана и покажите, что требуется около п3 флопов, т.е. на 50% боль-
ше, чем при использовании обычного исключения Гаусса. (Ь) Почему исклю-
чение Гаусса-Жордана стоит дороже, чем приведение к виду [ t7| у] с после-
дующей обратной подстановкой? (с) Как нужно организовать выполнение
операций в методе исключения Гаусса—Жордана, чтобы для приведения к
2
виду [/1 х] требовалось лишь -п3 флопов? □
Другим методом решения системы Ах = Ь, освещаемым в большинстве эле-
ментарных руководств по линейной алгебре, является правило Крамера, тесно
связанное с методом алгебраических дополнений вычисления А~1. Правило
Крамера утверждает, что каждый элемент в решении равен отношению двух
детерминантов
det(^(/)) . ,
х. = — --------i = 1,..., п,
det(>4)
где A(i) обозначает матрицу, полученную из А заменой ее z-ro столбца на Ь. Эта
воистину элегантная формула слишком дорога в качестве инструмента для
практических расчетов, за исключением п = 2 или 3, поскольку требует вычис-
ления детерминантов.
В конце разд. 1.1 мы упомянули метод Штрассена [68] и другие методы,
перемножающие матрицы посредством менее О(п3) флопов. Например, ме-
тод Штрассена требует 0(п5) флопов, где s = log27 » 2.81. Эти методы мож-
но модифицировать так, что они будут вычислять матрицу А~1. Следова-
тельно, существуют методы, использующие для решения системы Ах = b
менее О(п3) флопов. Некоторые из них в будущем могут оказаться сущест-
венными для вычислений с большими плотными (не разреженными) мат-
рицами.
Все методы, обсуждавшиеся нами до сих пор, являются прямыми методами'.
если бы они выполнялись точно, то дали бы точное решение системы Ах = b в
результате выполнения конечной, заранее определенной последовательности
операций. Совершенно другим типом являются итерационные методы, кото-
рые порождают последовательность улучшающихся приближений к решению.
Для очень больших разреженных матриц итерационные методы — лучший вы-
бор. Мы обсуждаем итерационные методы в гл. 7.
Симметричный случай
Рассмотрим задачу решения системы Ах = Ь с симметричной матрицей А.
Как и в случае положительно определенной матрицы, можно надеяться
122
Глава 1. Гауссово исключение и его варианты
уменьшить вдвое число флопов, используя симметрию. Если А не является
положительно определенной, мы можем воспользоваться одним из способов
выбора главного элемента, но в нашем случае определение главного элемен-
та усложняется тем, что для сохранения симметрии каждая перестановка
строки должна сопровождаться соответствующим перемещением столбца.
Из-за этого ограничения не всегда возможно найти достаточно большой
главный элемент (например, в случае симметричной матрицы, у которой на
главной диагонали одни нули). Выход заключается в выполнении блочного
гауссова исключения (ср. упражнение 1.7.50) с использованием главного
2 х 2-блока всякий раз, когда нет достаточно большого главного элемента.
Наиболее популярным алгоритмом этого типа является алгоритм Банча-Ка-
уфмана, который требует п3/3 флопов и использует лишь О(п2) шагов при
поиске ведущего элемента. Этот и другие методы обсуждаются, например,
в [33, § 4.4].
1.9. Исключение Гаусса для разреженных матриц
При решении системы Ах = b с большой и разреженной матрицей А все-
гда рекомендуется использовать особенности ее структуры. В разд. 1.5 мы
видели, что в случае симметричных положительно определенных матриц ог-
ромная экономия может быть достигнута за счет использования простой
окаймляющей схемы. Как говорилось в разд. 1.6, более тонкие методы мо-
гут дать еще лучшие результаты. В различных местах настоящей главы ука-
зывалось, что наилучшей альтернативой при решении действительно боль-
ших систем являются итерационные методы (гл. 7). Тем не менее остается
еще много случаев, когда лучше всего применить метод исключения Гаусса
с выбором главного элемента, использующий определенный вид структуры
разреженных данных. Например, если мы хотим найти точное решение сис-
тем Ах = й(0 для i - 1,2,3, ... с одной и той же матрицей коэффициентов, но
разными правыми частями, то часто лучше всего найти £6/-разложение раз-
реженной матрицы и затем использовать его снова и снова. Подобные си-
туации возникают, например, при решении задачи на собственные значения
для больших разреженных матриц.
В разд. 1.6 отмечалось, что число заполняющих элементов, возникающих
в методе Холесского, зависит от того, как упорядочены уравнения и неиз-
вестные. Переупорядочивание является некоторой формой выбора главного
элемента. В случае положительной определенности нет опасности получить
нулевой главный элемент, но можно так выбирать главные элементы (пере-
упорядочиванием), чтобы множитель Холесского оставался как можно более
разреженным. Однако тогда для сохранения симметрии каждая перестановка
строк должна сопровождаться соответствующей перестановкой столбцов. В
несимметричном случае перестановки строк и столбцов могут быть незави-
симыми, поскольку нет необходимости поддерживать симметрию. Но все же
нужно выбирать перестановки таким образом, чтобы избегать появления ну-
1.9. Исключение Гаусса для разреженных матриц
123
Рис. 1.15. Небольшая конвекционно-диффузионная матрица
с исходным упорядочиванием.
Спай-график L + U
(1312 ненулевых элементов)
левых или малых по модулю главных элементов. Таким образом, имеются
две цели, возможно противоречащие друг другу: (i) избежать наполнения,
(ii) избежать появления малых по модулю главных элементов. Эта тема обсу-
ждается в [21]. Мы ограничимся лишь демонстрацией наполнения с помо-
щью MATLAB’a.
Пример 1.9.1. Пусть А — разреженная 81 х 81-матрица, порожденная ко-
мандой А = condif (9, [0.2 5]) с помощью m-файла condif.m, приве-
денного в упражнении 1.9.3. Это матрица дискретизированного конвекци-
онно-диффузионного оператора с естественно упорядоченными уравнения-
ми и переменными. Ее спай-график, изображенный на рис. 1.15, показы-
вает, что это ленточная матрица. Она имеет симметричную разреженную
структуру, но сама матрица не является симметричной. Так например,
Яю.1 = и А| 10 — 4.
MATLAB может вычислять разреженные ££/-разложения. Команда
[L, и, Р] = lu (А) , примененная к разреженной матрице Л, порождает £#-
разложение с частичным выбором главного элемента. Результат такой же, как
если бы А была полной матрицей, исключая лишь то, что L, U и Р хранятся в
виде разреженных матриц. Итак, L есть нижняя унитреугольная матрица, все
элементы которой удовлетворяют условию |ZJ < 1, U — верхняя треугольная, а
Р - перестановочная, причем РА = LU \
Применяя эту команду к нашей 81 х 81-матрице, получаем разреженное
£С/-разложение. Чтобы увидеть наполнение множителей L и U одновре-
менно, выполним spy(L + и). Результат показан на рис. 1.15. Мы ви-
дим, что ленточная структура слегка нарушена при выборе главных эле-
ментов на начальных шагах. За исключением этого, лента полностью за-
1 В MATLAB’e есть возможность задания порога при выборе главного элемента, которую мож-
но использовать вместо частичного выбора. Применение порогового выбора иногда уменьшает за-
полнение. Наберите help lu, чтобы узнать подробности.
124
Глава 1. Гауссово исключение и его варианты
Рис. 1.16. Конвекционно-диффузионная матрица со случайным
переупорядочиванием столбцов.
О Ю 203040а08070М
Спай-график L+ U
(2071 ненулевых элементов)
полнена. Набрав nnz (L + и), найдем, что всего имеется 1312 ненулевых
элементов.
Для сравнения применим к А случайную перестановку столбцов:
q = randperm(81);
Ar = А(:,q); %Переупорядочены только столбцы
spy(Аг)
Результат приведен на рис. 1.16. Выполнив Z [/-разложение и набрав spy (L
+ U), найдем, что на этот раз наполнение стало гораздо большим. Таким об-
разом, естественное упорядочивание существенно лучше случайного. Если вы
проведете этот эксперимент, то получите другой результат, поскольку тогда
randperm выдаст другую перестановку.
Для второго сравнения используем упорядочивание минимальной степени по
столбцам, предоставляемое MATLAB’ом:
q = colmmd(А);
Am = А (:, q) ;
spy(Am)
Результат показан на рис. 1.17. Выполнив L[/-разложение и набрав spy (L
+ и), найдем, что это переупорядочивайте по столбцам дает несколько мень-
шее заполнение по сравнению с исходным. Для такой же матрицы больших
размеров упорядочивание минимальной степени по столбцам дает еще лучшие
результаты. См. упражнение 1.9.3.
Поскольку L[/-разложение дает L, U и Р. для которых РА - LU, то полезно
взглянуть на график spy (Р*А) . Сравните его с графиком spy (L + и) для
всех трех упорядочений. □
Упражнение 1.9.2. В состав MATLAB’a входит несимметричная разрежен-
ная матрица west047 9 размеров 479 х 479, которую можно вызвать, набрав
1.9. Исключение Гаусса для разреженных матриц
125
Рис. 1.17. Переупорядочивание минимальной степени по столбцам.
О 10 20X4050607010
Спай-график L + U
(1249 ненулевых элементов)
load west0479 в командной строке MATLAB’a. Наберите А = west0479;
чтобы присвоить ей более короткое имя.
(а) Вычислите разреженное L[/-разложение и запишите время, потрачен-
ное на выполнение этой операции, например, так: tic, [L, и, Р] = lu (А) ;
toe. Рассмотрите спай-графики для А, РА и L + U и отметьте, как много нену-
левых элементов имеет L + U.
(Ь) Модифицируйте А с помощью случайной перестановки по столбцам.
Затем еще раз выполните (а).
(с) Модифицируйте А, используя упорядочивание минимальной степени
по столбцам. И еще раз выполните (а).
(d) Сравните результаты пп. (а) - (с).
(е) Если вам надо решить систему Ах = Ь, то для этого вы можете воспользо-
ваться любым из L//-разложений, полученных в (а) - (с), вместе с соответст-
вующими перестановками строк и столбцов. Однако на самом деле MATLAB
не требует, чтобы вы прошли через все эти муки. Команда MATLAB’a х =
А\Ь одинаково хорошо работает как с разреженными матрицами, так и с пол-
ными. Эта команда позволяет найти L [/-разложение матрицы А и использо-
вать его при решении системы Ах = Ь.
Случайным образом сгенерируйте вектор b (например: b = randn
(4 7 9, 1) ;) и воспользуйтесь MATLAB’om, чтобы решить систему Ах = Ь с по-
мощью команды х = А\Ь. Оцените время выполнения этой процедуры и
сравните его со временем выполнения L[/-разложений в пп. (а) - (с). □
Упражнение 1.9.3. m-файл MATLAB’a, приведенный ниже, позволяет полу-
чить матрицы дискретизированного конвекционно-диффузионного оператора
любого размера.
function С = condif(n,c)
% С - квадратная конвекционно-диффузионная матрица
% порядка пл2. Пользователь должен задавать п
% коэффициенты конвекции с(1:2).
126
Глава 1. Гауссово исключение и его варианты
I = speye(п);
N = sparse(1:п-1,2:п,1,п,п);
F1 = 2*1 - (l-c(l))*N - (1 + c(l))*N';
F2 = 2*1 - (l-c(2))*N -(14- c(2))*N';
С = kron(I,Fl) 4- kron(F2,I);
В примере 1.9.1 мы использовали небольшую матрицу этого типа. Чтобы
приобрести некоторый опыт работы с большими разреженными матрицами,
сгенерируйте матрицу А = condif (n, с), положив, скажем, п = 50 (или боль-
ше). Вы получите матрицу 2500 х 2500. Вы можете взять с = [0.2 5 ], как в
примере 1.9.1. Еще раз выполните упражнение 1.9.2 для этой матрицы. □
2
Чувствительность линейных систем;
влияние ошибок округления
Мы редко решаем именно ту систему линейных уравнений, которую наме-
ревались решить, - чаще всего мы решаем ее приближение. В системе Ах = b
компоненты АкЬ обычно получены в результате некоторых измерений и в них
обычно присутствуют ошибки измерения. Например, в задачах об электриче-
ских цепях из разд. 1.2 элементы матрицы коэффициентов определяются ис-
ходя из величины сопротивлений, которые на практике известны лишь при-
близительно. Таким образом, А и Ь, с которыми мы работаем, несколько отли-
чаются от истинных А и Ь. Дополнительные приближения должны быть
сделаны при вводе чисел в компьютер: вещественные и комплексные числа
должны быть аппроксимированы машинными числами с плавающей точкой в
конечной разрядной сетке. (Однако эта ошибка обычно много меньше оши-
бок измерения.)
Ввиду неизбежности погрешностей важно знать, какое воздействие малые
возмущения коэффициентов оказывают на решение системы. Приводят ли
небольшие изменения системы к небольшим же изменениям в решении или
же порождают огромные, недопустимые изменения в нем? Как мы далее уви-
дим, не все системы одинаковы в этом отношении: одни оказываются чувст-
вительнее других. Самая важная задача этой главы — исследовать чувствитель-
ность линейных систем.
Вторая задача уже упоминалась в гл. 1. Если мы решаем систему на компь-
ютере методом гауссова исключения, то получаем результат, искаженный
ошибками округления при вычислениях. Как эти погрешности влияют на точ-
ность определения решения? Мы увидим, что этот вопрос тесно связан с во-
просом о чувствительности.
Наиболее исчерпывающая работа по этому предмету - книга Н. Хигэма
«Точность и устойчивость численных алгоритмов» [41].
2.1. Нормы векторов и матриц
Чтобы изучать возмущения векторов (подобных Ь) и матриц (как Л), нужно
уметь измерять их. С этой целью вводятся нормы векторов и матриц.
128
Глава 2, Чувствительность линейных систем; влияние ошибок округления
Нормы векторов
Векторы, используемые в этой книге, представляют собой наборы из п ве-
щественных (или комплексных) чисел. Вспомним, что множество всех веще-
ственных наборов п чисел обозначается через R”. Удобно изображать элементы
R2 в виде точек плоскости или в виде геометрических векторов (стрелок), вы-
ходящих из начала координат. Точно так же элементы из R3 изображают в виде
точек или векторов в пространстве. Обычное сложение двух любых элементов
из R” дает элемент из R", как и умножение любого элемента из К” на любое ве-
щественное число (скаляр) дает элемент из R". Вектор с нулевыми компонен-
тами будем обозначать как 0. Таким образом, 0 может обозначать как число,
так и вектор. Внимательного читателя это никогда не введет в заблуждение.
Множество всех наборов п комплексных чисел обозначается через С". В
данной главе, как и в главе 1, мы будем рассматривать лишь вещественные
числа.
Векторная норма в R" есть функция, сопоставляющая каждому вектору
х е R” неотрицательное вещественное число || х ||, которое называется нормой
векторах, такое, что следующие три условия выполняются при всехх, у g R” и
всех a g R:
|| х || > 0, если х*0и||0|| = 0 (свойство положительной
определенности); (2.1.1)
|| ах || = | а | || х || (однородность); (2.1.2)
|| х + у || < || х || + || у || (неравенство треугольника). (2.1.3)
Упражнение 2.1.4.
(а) В равенстве || 01| = 0, что представляет собой каждый из нулей (число или
вектор)?
(Ь) Покажите, что равенство || 0 || = 0 на самом деле следует из (2.1.2). Таким
образом, нет необходимости явно декларировать его в (2.1.1). □
Любую норму можно использовать для измерения длины или (обобщенного)
модуля векторов в R". Другими словами, мы считаем || х || (обобщенной) длиной
вектора х. (Обобщенное) расстояние между двумя векторами х и у равно || х - у ||.
Пример 2.1.5. Евклидова норма определяется как
( п
>1/2
||х||2
Легко проверить, что эта функция удовлетворяет условиям (2.1.1) и (2.1.2).
Доказать неравенство треугольника (2.1.3) уже не так просто. Оно следует из
неравенства Коши-Шварца, которое мы вскоре докажем (теорема 2.1.6). Евк-
лидово расстояние между векторами х и у дается выражением
II*-Л2 = ЛЕк.-лР-
V /=1
2.1. Нормы векторов и матриц
129
В случае п = 1, 2 и 3 эта мера совпадает с нашим обычным пониманием рас-
стояния между точками на прямой, плоскости или в пространстве соответст-
венно.
Обратите внимание, что знак абсолютной величины в формуле для || х ||2 из-
лишен, поскольку | х, |2 = х,-2 для любого вещественного xz. Однако для ком-
плексных чисел, вообще говоря, неверно, что | х,- |2 = х,-2, и знак абсолютной ве-
личины необходим. Таким образом, включение знака абсолютной величины
делает формулу для || х ||2 корректной как для вещественных, так и для ком-
плексных векторов. □
Теорема 2.1.6 (неравенство Коши—Шварца). Для любых х, у е R”
Доказательство. Для любого вещественного t имеем
О < ^(х,+ Гу,)2 = £х2 + 2f£xzy, + t2 = с + bt + at2,
/=! /=1 /=1
п п п
где а = 22у,2, b = 2^ху( и с = ^х2. Поскольку сг + bt + at2 > 0 для всех веще-
/=! /=! /=1
ственных t, этот квадратный многочлен не может иметь двух разных вещест-
венных нулей. Следовательно, его дискриминант удовлетворяет неравенству
Ь2 -4ас < 0, откуда
(i/2)2 < ас.
Искомый результат получится после извлечения квадратного корня. □
Теперь мы готовы доказать справедливость неравенства треугольника для
евклидовой нормы. Тем самым евклидова норма действительно является нор-
мой.
Теорема 2.1.7. Для любых х, у е R" справедливо || х + у ||2 < || х ||2 + || у ||2.
Доказательство. Достаточно показать, что || х + у ||22 < (|| х ||2 +1| у ||2)2. Имеем
п п п п
II X + у ||22 = £(х, + у;)2 = + 2^х,.у,. + ±у].
/=| /=1 /=1 /=1
Применяя неравенство Коши—Шварца к среднему члену правой части,
находим
□
5 Основы матричных вычислении
130
Глава 2, Чувствительность линейных систем; влияние ошибок округления
Пример 2.1.8. Обобщая пример 2.1.5, введем р-нормы. Для любого р > 1
положим
11*11,
\Чр
7
И здесь легко проверить (2.1.1) и (2.1.2), но не (2.1.3). Это неравенство Мин-
ковского, доказывать которое мы не будем, поскольку не собираемся его ис-
пользовать. □
Наиболее важным случаем р-нормы является 2-норма или просто евклидо-
ва норма.
Пример 2.1.9. Другим важным случаем р-нормы является 1-норма
п
II* II, =Ё1 *,1-
1=1
В этом случае (2.1.3) доказать нетрудно - это прямо следует из неравенства
треугольника для вещественных чисел. □
Упражнение 2.1.10. Докажите, что 1-норма действительно является нор-
мой. □
Упражнение 2.1.11. Пусть х,у е R2. Для 1-нормы «расстояние» между х и у
есть || х - у Ih = | - У11 +1 х2 - У11- Объясните, почему 1 -норма иногда называется
нормой таксиста (или манхеттенской нормой).
Пример 2.1.12. oo-норма определяется как
II X Поо = max I Xi |. □
Упражнение 2.1.13. Докажите, что oo-норма является нормой. □
Упражнение 2.1.14. Для любой нормы в R2 единичной окружностью называ-
ется множество {х g R2 | || х || = 1}. Если представлять элементы R2 как точки
плоскости, то единичная окружность есть просто множество точек, отстоящих
от начала координат на 1. На одной и той же координатной плоскости нари-
суйте единичные окружности относительно различныхр-норм для р = 1, 3/2, 2,
3, 10 и оо. □
Читатель, склонный к аналитическим исследованиям, не откажется дока-
зать, что для всех х е R" справедливо || х Ц*, = lim || х |L.
р->00
Пример 2.1.15. Пусть задана положительно определенная матрица Л gR”™.
Определим A-норму вектора х е R" как
11*114 = {хТАх){/1.
В упражнении 2.1.17 нужно будет показать, что это в самом деле нор-
ма. □
2.1. Нормы векторов и матриц
131
Упражнение 2.1.16. Покажите, что если А = I, то J-норма становится просто
евклидовой нормой. □
Упражнение 2.1.17.
(а) Пусть А — положительно определенная матрица и R — ее множитель Хо-
лесского, т.е. А = RTR. Проверьте, что для всех х е R" справедливо || х = || Rx ||2.
(Ь) Пользуясь тем, что 2-норма действительно является нормой в К”, дока-
жите, что и Я-норма является нормой в 1Г. □
Матричные нормы
Множество вещественных дихп-матриц обозначим через Rwx". Подобно
векторам, матрицы в К'"4" можно складывать и умножать на скаляры обыч-
ным способом. На самом деле матрицы в 1ГХЯ можно рассматривать просто
как векторы в 1ГЯ, компоненты которых упорядочены иначе. В случае т = п
теория становится богаче. В отличие от обычных векторов, две матрицы в
можно перемножить (используя обычное матричное умножение), и их
произведение будет принадлежать К”4”. Норма матрицы есть функция, сопос-
тавляющая каждой А е К”4” вещественное число || А ||, называемое нормой
матрицы А, которая удовлетворяет всем трем свойствам векторной нормы и,
кроме того, дополнительному свойству, субмультипликативности, связываю-
щему функцию нормы с операцией матричного умножения. А именно, для
всех А, В е R"x" и всех а е R
|| А || > 0, если А ф О,
II аЛ || = | а | || Л И,
||Л + ЛВ||Л|| + ||Л||,
(2.1.18)
(2.1.19)
(2.1.20)
|| АВ || 2 || А || || В || (субмультипликативность). (2.1.21)
Пример 2.1.22. Норма Фробениуса определяется как
( п п У/2
IMI|f= .
)
Так как она совпадает с евклидовой нормой для векторов, то мы уже зна-
ем, что она удовлетворяет (2.1.18), (2.1.19) и (2.1.20). Субмультипликатив-
ность (2.1.21) можно получить из неравенства Коши—Шварца. Пусть С = АВ.
п
Тогда Су = ^aik bkj. Таким образом,
п
НЖ = ||с||2л = 2Ь|2
1=1
п п п
= ZZ
/=1 у=|
132
Глава 2. Чувствительность линейных систем; влияние ошибок округления
п
Применяя неравенство Коши-Шварца к выражению ^aikbkj, найдем, что
/=1
п п ( п п
н* sZZ 2М1Ж1 -
/ = 1 у=1 ^ = 1 fc=| J
' п п п п
ЕЖ12 = IKIK-
^/ = 1^=1 у^/=1Л=1
Тем самым норма Фробениуса является матричной нормой. □
Упражнение 2.1.23. Определим ||Л ||тах = тах|а«|. Ясно, что эта функция
\<i,j<n J
удовлетворяет (2.1.18), (2.1.19) и (2.1.20). Покажите на примере, что она нару-
шает (2.1.21), и, следовательно, не является матричной нормой. □
Каждая векторная норма в R” естественным образом может быть исполь-
зована для определения матричной нормы в R"xw. Для данной векторной нор-
мы || • || матричная норма, индуцированная ею, определяется как
II А Им = тал4гтг
В теореме 2.1.26 будет показано, что индуцированная норма действительно
является матричной нормой. Другим названием индуцированной нормы слу-
жит операторная норма.
Индуцированная норма имеет геометрический смысл, который может
быть понят, если рассматривать А как линейный оператор, отображающий R”
в R”. Каждый х е R" отображается оператором А в вектор Ах е R". Отноше-
ние || Ах ||у/1| х ||v есть растяжение, получаемое вектором х при его преобразо-
вании в Ах. Число || Л ||м есть максимум растяжения, вызываемого операто-
ром А.
Обычно индексы v и М не различаются. Один и тот же символ используют
как для векторной, так и для матричной норм, и пишут, например,
|| Л II = max
х*0
II Aril
11*11'
Мы будем придерживаться этого правила. Это не приведет к недоразумени-
ям, поскольку смысл нормы можно всегда понять из контекста.
Прежде чем непосредственно перейти к доказательству того, что индуциро-
ванная норма и в самом деле является матричной нормой, полезно отметить
один простой, но важный факт.
Теорема 2.1.24. Векторная норма и индуцированная ею матричная норма удов-
летворяют неравенству
1|Лх||<||Л|| || х ||
(2.1.25)
2,1. Нормы векторов и матриц
133
для всех А е JR”*” их е R". Это неравенство является точным в следующем смыс-
ле: для каждой А е существует отличный от нуля х е R”, для которого име-
ет место равенство.
Доказательство. Если х = 0, то равенство выполняется тривиально. В про-
тивном случае
ЦЛх||
INI
< maxi^~ = || А ||.
Таким образом, || Ах|| < || А || || х ||. Равенство выполняется тогда и только то-
гда, когда х является вектором, для которого достигается максимальное растя-
жение. (Что такой вектор существует, на самом деле не очевидно. Это следует
из соображений компактности,выполняющихся здесь ввиду конечномерности
R". Мы опускаем эти соображения.) □
Факт достижимости равенства в (2.1.25) менее важен, чем (очевидный)
факт существования векторов, дающих сколь угодно близкое приближение к
равенству.
Теорема 2.1.26. Индуцированная норма является матричной нормой.
Доказательство. Оно не очень трудное. Вы можете дать собственное доказа-
тельство прежде, чем продолжить чтение. Лишь свойство субмультипликатив-
ности (2.1.21) основано на (2.1.25).
Каждое из трех свойств нормы выводится из соответствующих свойств
векторной нормы. Чтобы доказать (2.1.18), нужно показать, что || Л || > 0, если
А ф 0. Если А * 0, существует (отличный от нуля) вектор х е R", для которо-
го Ах * 0. Так как векторная норма удовлетворяет (2.1.1), имеем ||Лх|| > 0 и
||х|| > 0. Таким образом,
и Л и ||Лх|| . 1|Лх||
|| А || = max11—11 > 11—р
Чтобы доказать (2.1.19), заметим, что для каждого х е R" и каждого а е R
|| а(Лх)|| = | а 11| Ах ||. Это следует из справедливости (2.1.2) для векторной нор-
мы. (Напомним, что Ах — вектор, а не матрица.) Итак,
п .. (аЛ)х
II аЛ II = max!!——
**о X
||а(Лх)|| . . ||Ях||
= max" „ „ !' = | а | maxii—ii
x#° ||jc|| **o ||x||
Используя сходные приемы, докажем (2.1.20):
„ А Dll ||(Л+Л)х||
II Л + В II = max "
**о х
|| Ах + Вх||
= max-——-—-
^0 X
||Лх|| +||Лх||
< max!!—11—1!—!1
„ ||Лх|| ||Ях||
< maxi!;—11 + maxJi—-11 =
х*0 ||х|| х*о ||х||
= || Л || + || Л ||.
134
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Наконец, докажем (2.1.21). Заменяя х на Вх в (2.1.25), получаем || АВх || <
|| А || || Вх || для любого х. Снова применяя (2.1.25), имеем || Вх || < || В || || х ||. Та-
ким образом,
|| АВх || < || А || ||Л II* II-
При х ф 0 делим обе части на положительное число || х || и заключаем, что
|| АВ || = шахМ < || А || ||/?||
Х*° ||х||
□
Упражнение 2.1.27.
(а) Покажите, что для любого ненулевого векторах и скаляра с справедливо
равенство || Л(сх)|| / || сх || = || Ах || /1| х ||. Такое перемасштабирование вектора не
меняет величины растяжения при умножении на А. В геометрическом смысле
величина растяжения зависит лишь от его направления, а не от его длины.
(Ь) Докажите, что для индуцированной матричной нормы
М1| = тахМ.
Это альтернативное определение часто оказывается полезным. □
Некоторые из наиболее важных матричных норм индуцированы p-нор-
мами. Для 1 <р < оо норма, индуцированная р-нормой, называется матричной
р-нормой\
II А II И'М,
II А ||, = max—-А
**° * II,
Матричная 2-норма известна также как спектральная норма. Как мы уви-
дим в последующих главах, эта норма имеет важное теоретическое значение.
Недостатком является сложность ее вычисления на компьютере; к тому же она
не является нормой Фробениуса.
Упражнение 2.1.28.
(а) Вычислите || I ||F и || 11|2, где I — единичная п х «-матрица, и отметьте их
различие.
(Ь) Воспользуйтесь неравенством Коши-Шварца (теорема 2.1.6) и покажи-
те, что для всех Л е JRWXW выполняется неравенство || А ||2 < || А ||Р □
Другие важные случаи — это р = 1 и р = оо. Эти нормы вычисляются легко.
п п
Теорема 2.1.29. (а) || A ||t = max £| аД (6) || А ||„ = max £| av\.
Таким образом, || A ||t можно найти, если просуммировать абсолютные ве-
личины элементов каждого столбца А и затем выбрать наибольшую из этих
сумм. Поэтому матричная 1-норма иногда называется нормой суммирования по
2.1. Нормы векторов и матриц
135
столбцам. По той же причине матричная oo-норма иногда называется нормой
суммирования по строкам.
Доказательство. Докажем (а), оставляя (Ь) в качестве упражнения. Сначала
п
покажем, что || А ||, < max V | аЛ Для всех х е R"
№ ,=1
п п
II Л II. = £|(Лх),.| = 2
/=1 /=1
п
YaiJxJ
>1
п п
* ЁЁ1 Ы
/=1/=1
п п П (
* ЁЁ1 аи\I */1 * Ё
j=\i=\ j=\\ К
ХК I I I =
,=i ;
( n Vя
max£|a,J £|x,|
I M Д» J
n
тахЕЫ II * Hi-
I '=* 7
n
Следовательно, || / || x ||t < max У | aik\ для всех x ф 0. Отсюда || A ||t <
k /=i
возможность равенства, нужно просто
max . Чтобы доказать здесь
k V=l J
найти хе IV, для которого
И, VI I
——= max Jjaik I •
I х 111 k l,=i
Предположим, что максимум достигается в ди-м столбце матрицы А. Пусть х —
вектор, у которого т-я компонента равна 1, а все остальные — 0. Тогда Цх^ = 1,
я
= [а1т ... а„т]Т и || Ах ||t = £ | а/и|. Таким образом,
/=1
М VI I VI I
-77Т7Г1- = X । °'- । =maX
hili м j )
□
Упражнение 2.1.30. Докажите пункт (Ь) теоремы 2.1.29. (Аргументация та
же, что и при доказательстве (а), нужно лишь выбрать вектор х с компонента-
ми ±1, обратив особое внимание на выбор знака каждой компоненты.) □
Дополнительные упражнения
Упражнение 2.1.31. Покажите, что для всех х е R"
II х II. < II X ||2 < II х Ih < 4п II X ||2 < п II X II,
136
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Два крайних неравенства достаточно очевидны. Неравенство || х ||2 < ||х Ih
становится очевидным после возведения в квадрат обеих частей неравенства.
Неравенство || х ||t < 4п || х ||2 получается после применения неравенства Ко-
ши-Шварца (теорема 2.1.6) к векторам хиу= [1, 1,..., 1]г. □
Упражнение 2.1.32. Систематически используя неравенства упражнения
2.1.31, докажите, что для всех А е
и
II А II, < л/п|| А ||2 < п ||Л II,
|| А ||я < Л\\ А ||2 < п ||Л ||м
□
2.2. Числа обусловленности
В этом разделе мы введем и рассмотрим число обусловленности матрицы А.
Это простая, но полезная мера чувствительности линейных систем Ах = Ь.
Рассмотрим линейную систему Ах = А, где матрица Л невырожденна, а век-
тор b отличен от нуля. Тогда имеется единственное решение х, отличное от
нуля. Теперь предположим, что мы добавили небольшой вектор ЗА к b и рас-
сматриваем возмущенную систему Ах = b + ЗА. Она также имеет единственное
решение х, которое, как мы надеемся, лежит не очень далеко от х. Пусть Зх
обозначает разность между х и х, так что х = х + Зх. Хотелось бы, чтобы для ма-
лых было мало и Зх. Более точное выражение должно включать в себя отно-
сительные величины: говоря, что 8Ь мало, мы подразумеваемого оно мало от-
носительно Ь; утверждение, что Зх мало, подразумевает, что оно мало в сравне-
нии с х. Для численной оценки величин вводится векторная норма || • ||. Тогда
сравнение 8b с b запишется как || 8b || / || b ||, а Зх с х — как || Зх || / || х ||. Итак, мы
ожидаем, что если мало || ЗА || / || Ь ||, то мало и || Зх || / || х ||.
Из уравнений Ах = b и А(х + Зх) = b + ЗА следует, что ЛЗх = ЗА, т.е. Зх = A 'Sb.
Какую бы векторную норму мы ни выбрали, для оценки матриц будем исполь-
зовать индуцированную матричную норму. Из уравнения Зх = Л-18А и теоремы
2.1.24 следует, что
II 8х || < ||Л-Ч| || 8Ь ||.
(2.2.1)
Подобным же образом из уравнения А = Ах и теоремы 2.1.24 следует, что
11*11 < МП 11*11 или
(2.2.2)
2.2. Числа обусловленности
137
Умножая неравенство (2.2.1) на (2.2.2), получаем
(2.2.3)
что дает ограничение для || 8х || / || х || в терминах || Sb || / || Ь ||. Множитель
|| Л || || Л"1!! называется числом обусловленности матрицы Л и обозначается как
/с(Л), так что к(А) = || Л || || Л-1||. Используя это обозначение, перепишем (2.2.3) в
виде теоремы.
Теорема 2.2.4. Пусть А — невырожденная матрица и пусть xux = x + Sx — ре-
шения систем Ax = bu Ах =b +Sb соответственно. Тогда
(2.2.5)
Поскольку в неравенствах (2.2.1) и (2.2.2) равенство достижимо, то и (2.2.5)
будет таким же, т.е. существуют b и Sb (и соответствующие им х и 5х), для ко-
торых в (2.2.5) выполняется равенство.
Упражнение 2.2.6. (а) Покажите, что к(Л) = к(Л~’). (Ь) Покажите, что для
любого ненулевого скаляра с справедливо к(сА) = к(А). □
Из (2.2.5) видно, что если к(А) не очень велико, то малые значения
|| Sb || /1| b || приводят к малым значениям || Sx || / || х ||, т.е. система не слишком
чувствительна к возмущениям Ь. Итак, если к(А) не очень велико, будем го-
ворть, что Л хорошо обусловлена. Если, наоборот, к(А) велико, то малая величи-
на || Sb || / || b || не гарантирует, что || 8х || / || х || будет мало. Поскольку равенство
в (2.2.5) достижимо, мы знаем, что в этом случае определенно существуют та-
кие b и Sb, для которых оценка результата || Sx || / || х || будет намного больше
оценки || Sb || / || b ||. Другими словами, система потенциально очень чувстви-
тельна к возмущениям Ь. В том случае, когда /с (Л) велико, будем говорить, что
Л плохо обусловлена.
Утверждение 2.2.7. Для любой индуцированной матричной нормы (а) || /|| = 1 и
(Ь) к(А) > 1.
Доказательство, (а) следует сразу из определения индуцированной матрич-
ной нормы. Чтобы доказать (i), заметим, что / = Л Л-1, так что 1 = || /|| = || АА~^ <
М||||л-Ч|=к(Л). □
Таким образом, наилучшее возможное значение числа обусловленности
есть 1. Конечно, значение числа обусловленности зависит от выбора нормы.
Хотя можно построить причудливые нормы так, чтобы заданная матрица име-
ла большое число обусловленности в одной норме, и малое в — другой, мы бу-
дем использовать в основном 1-, 2- и oo-нормы, которые обычно дают прибли-
женно сравнимые числа обусловленности для матриц. Будем использовать
обозначение
кр(А) = || А ||, || А-' ||, для 1 < р < оо.
138 Глава 2. Чувствительность линейных систем; влияние ошибок округления
До сих пор мы говорили, что матрица, имеющая большое число обуслов-
ленности, является плохо обусловленной, но ничего не сказали о том, где
лежит линия разграничения между хорошо обусловленными и плохо обу-
словленными матрицами. Конечно, бессмысленно искать точную границу.
Более того, размытость границы зависит от множества факторов, включая
погрешность определения используемых данных, точность выполнения
арифметики с плавающей точкой и величины допустимой ошибки в вычис-
ляемом решении. Предположим, например, что компоненты вектора b зада-
ны с точностью до четырех десятичных знаков. Мы не знаем точного значе-
ния Лив вычислениях используем Ь + 86, где || 86 || /1| 6 || « 10Л Точно ре-
шая задачу, получим х + 8х, для которого верхняя граница || 8х || / || х || дается
выражением (2.2.5).
Теперь предположим, что к(А) < 102. Тогда согласно (2.2.5) в худшем случае
будем иметь || 8х || / || х ||» 10“2, т.е. ошибка в х не превышает одной сотой вели-
чины х. Ддя многих задач такая погрешность решения вполне допустима. На-
против, если к(А) ~ 104, то (2.2.5) говорит нам, что возможно || 8х || / ||х || « 1,
т.е. может оказаться, что погрешность сравнима по величине с самим решени-
ем. В данном случае мы можем сказать, что число обусловленности недопус-
тимо велико. Это показывает, что в этой задаче граница между плохо и хорошо
обусловленными матрицами лежит где-то между 102 и 104.
Иногда точность арифметики с плавающей точкой оказывается решающим
фактором. Даже если мы знаем 6 чрезвычайно точно, но компьютер использу-
ет числа лишь с точностью до семи десятичных знаков, то мы вынуждены ра-
ботать с 6 + 86, где || 86 || /1| 6 || « 10"7. Тогда, если к(А) » 107, то нельзя быть уве-
ренным в обоснованности ответа, даже если система решается очень аккурат-
но. С другой стороны, значения числа обусловленности 103, 104 или даже 105
могут оказаться достаточно малыми в зависимости оттого, какая точность ре-
шения нам нужна.
Теперь мы готовы перейти к примеру плохо обусловленной матрицы.
Пример 2.2.8. Пусть А =
1000
999
999
998
. Легко проверить, что1
-998 999
999 -1000
Поэтому ML = ||А |к = 1999 = ||Л"! = МЛ и к„(А) = к.(А) = (1999)2 =
= 3.996 хЮ6. Процесс вычисления к2(А) более сложен, и мы еще не готовы опи-
сать его. Однако для этой маленькой матрицы такую работу легко выполнит
MATLAB. Используя команды cond (А) или cond (А, 2), найдем что к2(А) »
« 3.992 хЮ6.
Эта матрица будет плохо обусловленной для большинства норм.Мы еще
обсудим это в примере 2.2.15. □
1 Постепенно совершенствуясь, такие примеры уже давно приводятся в учебной литературе -
по-видимому, с момента выхода книги [24] в 1967 г. - Прим, перев.
2.2. Числа обусловленности
139
Пример 2.2.9. Наиболее известным примером плохо обусловленных матриц
являются матрицы Гильберта, определяемые как = !/(/+/- 1). Если через Нп
обозначить nxn-матрицу Гильберта, то, например,
1 1/2 1/3 1/4
1/2 1/3 1/4 1/5
1/3 1/4 1/5 1/6 '
1/4 1/5 1/6 1/7_
Нп симметричны, и можно показать, что они положительно определенные, а
их плохая обуслоленность быстро возрастает с ростом п. Например, MATLAB
выдает к2(Я4)« 1.6 х 104 и к2(Я8) » 1.5 х 1О10. □
Упражнение 2.2.10. Чтобы получить 7 х 7-матрицу Гильберта в MATLAB’e,
достаточно набрать А = hilb(7). Наберите help cond, чтобы узнать
как в MATLAB’e пользоваться функцией определения числа обусловленно-
сти. Воспользуйтесь ею для вычисления Ki(Hn), к2(Нп) и к^(Н^ для п = 3, 6,
9 и 12. □
Геометрическая интерпретация числа обусловленности
Начнем с введения нескольких новых терминов. Максимальное и минималь-
ное растяжения для А определяются как
t 11^*11 • / • Н^Н
maxmagpl) = max-—~ и minmag(>4) = mm -- .
||Х|| х*0 ||Х||
Конечно, maxmagpl) не что иное, как индуцированная матричная нор-
ма || А ||.
Упражнение 2.2.11. Докажите, что для невырожденной матрицы А
maxmagpl) = 1 / minmagpl"1) и minmagpT1) = 1 / maxmagpl).
□
Из этого упражнения следует, что к(А) есть просто отношение максималь-
ного растяжения к минимальному.
Утверждение 2.2.12. к(А) = maxmagpl) / minmagpl) для всех невырожден-
ных А.
Упражнение 2.2.13. Докажите утверждение 2.2.12. □
У плохо обусловленных матриц maxmag намного превышает minmag.
Если матрица А * 0, но вырождена, то существует такой х ф 0, что Ах = 0.
Таким образом minmagpl) = 0, и имеет смысл допустить, что к(А) = оо. Другими
словами, мы рассматриваем вырожденность как крайний случай плохой обу-
словленности. И наоборот, можно сказать, что плохо обусловленные матрицы
являются почти вырожденными.
140
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Поскольку матрица А вырождена тогда и только тогда, когда det(J) = О,
то естественно ожидать, что значение детерминанта как-то связано с чис-
лом обусловленности. Это предположение оказывается ложным. Не суще-
ствует полезного соотношения между числом обусловленности и опреде-
лителем - см. упражнение 2.2.14. Для оценки чувствительности линейной
системы значение числа обусловленности полезно, а значение определи-
теля — нет.
Упражнение 2.2.14.
(а) Пусть а — положительное число и
а О
О а
Покажите, что для любой индуцированной матричной нормы имеет место
|| Ла|| = о, || J"1!! = 1/a и /с(Ла) = 1. Поэтому А хорошо обусловлена. С другой сто-
роны, det(/4) = а2,т.е. мы можем сделать детерминант как угодно большим или
малым, подбирая а нужным образом.
(Ь) Обобщая это, для заданной невырожденной матрицы А рассмотрите
к(аА) и det(<x4), где a - любое положительное вещественное число. □
Пример 2.2.15. Еще раз взглянем на плохо обусловленные матрицы
1000 999] . . Г-998 999
и А 1 =
999 998J L 999 -1000
из примера 2.2.8. Заметьте, что
1
1
1999
1997
А
(2.2.16)
Если мы используем для измерения длины оо -норму, то коэффициент рас-
тяжения || Ах IL/ЦхЦоо равен 1999, что совпадает с ||Л Ц^. Таким образом,
1
1
есть вектор, максимально растягиваемый посредством А. Так как величина
растяжения векгора зависит лишь от его направления, а не от его длины, то го-
Т
1
’1999’
1997
Взглянув теперь на Л-1, заметим, что
ворят, что
значит, что
лежит в направлении максимального растяжения для А. Но это
лежит в направлении минимального растяжения для А
Л’1
-1
1
1997 '
-1999
2.2. Числа обусловленности
141
Коэффициент растяжения || А 1х Ц*,/1| х равен 1999, что совпадает с || Л’’Ц»,
так что
лежит в направлении максимального растяжения для Л 1. Поэтому
1997 '
-1999
лежит в
‘ 1997
-1999
-1
1
(2.2.17)
направлении минимального растяжения для А. Используем
А
(2.2.16) и (2.2.17) для построения интересного наглядного примера.
Предположим, что мы хотим решить систему
т.е. Ах = Ь9 где b =
1999
1997
’1000 999] Гх/
999 998] [х2_
_ 1999
1997 ’
(2.2.18)
Тогда согласно (2.2.16) едиственное решение естьх =
Предложим теперь, что вместо исходной решается слегка возмущенная сис-
тема
’1000 999] Гх/
999 998] [х2_
т.е. система Ах = b + 8i, где ЪЬ =
-.01
.01
= .01
1998.99
1997.01 ’
-1
1
(2.2.19)
, что является направлением
максимального растяжения для А *. В силу (2.2.17) Л8х = ЪЬ, где 8х =
19.97
-19.99
Следовательно, х = х + 8х =
’ 20.97'
-18.99
Итак, почти одинаковые задачи (2.2.18) и
(2.2.19) имеют совершенно разные решения. □
Важно осознавать, что этот пример придуман специально. Вектор Ь был
выбран направленным в сторону минимального растяжения для А~', чтобы ре-
зультат х оказался направленным в сторону максимального растяжения для Л,
а в (2.2.2) достигалось равенство. Вектор 8Ь выбирался в направлении макси-
мального растяжения для Л"1, чтобы имело место равенство в (2.2.1). Как след-
ствие, равенство имеет место и в (2.2.5). Не выбери мы b и 8i таким образом,
результат оказался бы менее наглядным.
В некоторых приложениях, например, при численном решении дифферен-
циальных уравнений с частными производными, зная, что решение должно
быть гладкой функцией, можно показать, что b обязательно лежит в направле-
нии большого растяжения для Л-1. С таким ограничением невозможно приду-
мать пример, столь же наглядный, как (2.2.15).
142
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Мы видели, что если система плохо обусловлена, то можно построить при-
мер, когда || Зх || / || х || намного больше || 8b || /1| Ь ||. На самом деле может ока-
заться, что || Зх || / || х || много меньше || 8b || /1| b ||. Неравенству (2.2.5) сопутст-
вует неравенство
1И1 ( } 1ИГ
(2.2.20)
которое можно получить, меняя ролями х и Зх с Ь и 8Ь соответственно. В нем
также достижимо равенство.
Упражнение 2.2.21. Докажите неравенство (2.2.20). При каких условиях
(2.2.20) становится равенством? □
Пример 2.2.22. Воспользуемся той же плохо обусловленной матрицей А, что
и в двух предущих примерах. Согласно (2.2.17) система
“1000
999
9991 Г х, “
998 х2
"-1“
1
имеет единственным решением х =
“1997
-!999
Если мы добавим к этому реше-
нию возмущение
8х =
“0.01“
0.01
то получим X + Зх =
1997.01
—1998.99
мало отличающееся
от х. Но в силу (2.2.16)
А(х + Зх) = Ах + ЛЗх =
18.99
20.97
а это совсем не близко к Ах. □
При наличии неопределенностей в данных бесполезно и даже бессмыслен-
но пытаться решать плохо обусловленные системы ввиду их чрезвычайной
чувствительности.
Упражнение 2.2.23. Пусть А =
“375
752
374"
750
(а) Определите Л"1 и к^А).
(Ь) Найдите b, 8Ь, х и Зх такие, что Ах = Ь, А(х + Зх) = b + 86, || 86 Ц»/1| 6 Ц»
мало, а || Зх Ц»/ || х Ц*, велико.
(с) Найдите 6, 86, х и Зх такие, что Ах = 6, А(х + Зх) = 6 + 86, || Зх Ц^/1| х Ц*
мало, а || 86 Ц*,/1| 6 велико. □
Плохая обусловленность ввиду неудачного масштабирования
Некоторые линейные системы плохо обусловлены просто из-за неудачного
масштабирования, приводящего к выходу за разрядную сетку. Рассмотрим
следующий пример.
2,2. Числа обусловленности
143
Пример 2.2.24. Пусть £ - малое положительное число. Система
1 0 Xj
О е х2
1
£
имеет единственное решение х =
. Легко проверить, что если £ « 1, то мат-
рица коэффициентов плохо обусловлена относительно обычных норм. В са-
мом деле, х,(Л) = х2(Л) = к^А ) = 1/е. Для этой системы выполняется все, что
мы говорили до сих пор о плохо обусловленных системах. Например, можно
показать, что небольшие возмущения b приводят к большим возмущениям х:
просто возьмите b + 8i =
1 , для которого || 8Z> L/1| ^ || = 8, чтобы получить
2е
1
2
Т
1
х + 8х =
, что сильно отличается от
. Заметьте, что такое возмущение Ь
мало относительно || b ||, но велико в сравнении с возмущенной компонентой.
Но если умножить второе уравнение этой системы на 1/е, то получим но-
вую систему
’1
О
О Xj
1J LX2
1
1
которая отлично обусловлена. Таким образом, плохая обусловленность есть
просто следствие плохого масштабирования.
Теорема 2.2.25. Пусть А — произвольная невырожденная матрица и ах, аъ ..., ап —
ее столбцы. Тогда для любых i и j
klip
k IL’
1 < р < 00.
Доказательство. Ясно, что я, = Aeh где ez — вектор с единицей в Z-й позиции и
нулями в остальных. Тогда
Мр . Il-kllp .. ц
maxmag(H) = max / > - -- = || at ||,,
х*° klip Ik lip
, . Il^llp . Il^yllp Ц и
mmmag(^) = mm—< 7 = || a} ||,,
x*° klip IIе/ll₽
так что
кр(А) =
maxmag(/Q > k lip
minmagU) ~ ||ay||/
144
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Из теоремы 2.2.25 следует, что любая матрица, столбцы которой различа-
ются по величине на несколько порядков, является плохо обусловленной. То
же можно сказать и о строках, поскольку А является плохо обусловленной то-
гда и только тогда, когда такова же и АТ. (Легко проверить, что к^(А) = к^А?) В
разд. 4.2 (следствие 4.2.2) мы увидим, что к2(Л) = ^(Л7).) Итак, для хорошей
обусловленности матрицы необходимо, чтобы ее столбцы и строки были одно-
го порядка по норме. Это условие не является достаточным, как показывают
пример 2.2.8 и упражнение 2.2.23.
Если система плохо обусловлена из-за плохого масштабирования ее
строк или столбцов, необходимо вернуться к лежащей в основе физиче-
ской задаче и выяснить следующее: причина плохой обусловленности
свойственна самой задаче или является следствием неудачного выбора
средств измерения. С системой из упражнения 2.2.24 легко работать лишь
потому, что в действительности она сводится к двум независимым зада-
чам
[l][xi] = [1] и [е][х2] = [е],
каждая из которых хорошо обусловлена. В общем случае требуется более
тщательный анализ. Хотя строки и столбцы любой матрицы легко пере-
масштабировать так, что они все будут иметь близкие нормы, нет единого
способа выполнить это, как нет гарантии, что результирующая матрица бу-
дет хорошо обусловленной. Вопросы, связанные с масштабированием, бу-
дут обсуждаться в разд. 2.8, но никакого определенного совета дано не бу-
дет. Любое решение о необходимости масштабирования и способе пере-
масштабирования должно исходить из сути лежащей в основе расчета
физической задачи.
Обзор наиболее важных из известных результатов по методам масштабиро-
вания, (почти) минимизирующим число обусловленности см. в [41]. Другой
вид числа обусловленности, инвариантный при строчном масштабировании,
вводится в разд. 2.9.
Другая геометрическая интерпретация плохой обусловленности
Мы уже обсуждали геометрический смысл плохой обусловленности. Для
матриц, у которых строки и столбцы не подверглись заметному масштаби-
рованию, существует еще одно полезное геометрическое представление для
плохой обусловленности. Вспомним, что матрица вырождена, тогда и толь-
ко тогда, когда ее столбцы линейно зависимы (теорема 1.2.3). Покажем,
что столбцы плохо обусловленной матрицы линейно «почти» зависимы.
Это вполне согласуется с тем, что плохо обусловленные матрицы «почти»
вырождены. Пусть А — невырожденная матрица, у которой строки и столб-
цы не слишком плохо масштабированы, и предположим А нормированой
так, что || Л || = 1. Другими словами, если || А || * 1, умножим ее на скаляр
1 /|| Л ||, чтобы получить новую матрицу с нормой 1. Мы уже видели, что
умножение матрицы на скаляр не меняет ее числа обусловленности (уп-
2.2. Числа обусловленности
145
ражнение 2.2.6). Процедура нормировки не играет существенной роли в
наших рассуждениях, но делает их более простыми и понятными. По-
скольку || А || = maxmag(yl), имеем
1« х(Л) = maxmaeM) _------1---,
minmag( A) minmag( А)
так что minmag(J) « 1. Отсюда следует, что существует с е F такое, что
II Ле II / II с II « 1 • Так как отношение || Ас || /1| с || зависит только от направления
с, а не от его длины, то можно выбрать с так, чтобы || с || = 1 и, следовательно,
|| Ас || « 1. Обозначая через a[f а2) ..., ап столбцы матрицы А, имеем
п
Ас = £ а&.
/=1
Таким образом, мы видим, что имеется линейная комбинация столбцов
матрицы А, дающая очень малую величину (Ас). Если имеется линейная ком-
бинация, дающая точно нуль, то столбцы линейно зависимы. Поскольку Л не-
вырожденна, этого не может быть. Так как существует линейная комбинация,
дающая нечто, «почти» равное нулю, мы говорим, что столбцы матрицы А ли-
нейно «почти» зависимы.
Вырожденная матрица имеет не только линейно зависимые столбцы, но и
линейно зависимые строки. Это говорит о том, что строки плохо обусловлен-
ной матрицы должны быть линейно «почти» зависимы. Что дело обстоит так,
следует из того, что А плохо обусловлена тогда и только тогда, когда такой же
является и АТ.
Пример 2.2.26. Матрицы из примера 2.2.8 и упражнения 2.2.23 имеют стро-
ки и столбцы, линейно почти зависимые. □
Геометрическая интерпретация плохой обусловленности основана на том
факте, что строки плохо обусловленной матрицы линейно почти зависимы.
Рассмотрим случай п = 2:
4* ^j2X2 = ^1»
«21^1 + а22х2 = Ь2.
Множество решений каждого из этих уравнений представляет собой пря-
мую в (х1? х2)-плоскости. Решение системы есть точка пересечения двух пря-
мых. Первая прямая перпендикулярна вектору(-строке) [ян а12], а вторая
прямая перпендикулярна [fl2i а22]. Если А плохо обусловлена, то эти два век-
тора почти зависимы, т.е.они направлены почти в одну и ту же сторону (или
в противоположные). Следовательно, определяемые ими прямые почти па-
раллельны, как показано на рис. 2.1. Точка р есть решение системы. Неболь-
шое возмущение Ьх (например) приводит к небольшому параллельному сдви-
гу первой прямой. На рис. 2.1 возмущенная линия изображена пунктиром.
Так как две прямые почти параллельны, небольшой сдвиг одной из них
146
Глава 2. Чувствительность линейных систем; влияние ошибок округления
приводит к большому сдвигу решения из точки р в точку q. Напротив, в слу-
чае хорошей обусловленности строки не являются почти зависимыми и пря-
мые, определяемые двумя уравнениями, не являются почти параллельными.
Малое возмущение одной или обеих этих прямых вызывает небольшое воз-
мущение решения.
Пример 2.2.27. Рассмотрим систему
1000%! + 999х2 =
999*! + 998*2 = Ь29
у которой матрица коэффициентов та же, что и в примере 2.2.8. Наклоны двух
прямых суть
1000 999
т = _ = -1.001001 и ^2 = - —= -1.001002.
999 998
Они почти параллельны настолько, что фактически неразличимы вблизи
точки пересечения. Поэтому эту точку пересечения трудно найти. □
Система, изображенная на рис 2.1, не так уж плохо обусловлена. Настоя-
щую плохо обусловленную систему трудно изобразить на рисунке: прямые
почти параллельны настолько, что становятся неразличимыми.
Полезно также мысленно представить себе геометрическую картину
для трех уравнений с тремя неизвестными. Множество решений каждого
уравнения представляет собой плоскость в трехмерном пространстве.
Плоскость, определяемая f-м уравнением, перпендикулярна вектору-стро-
ке [яп ai2 а/3]. Каждая пара плоскостей пересекается по прямой, а все три
плоскости имеют общую точку пересечения, являющуюся решением сис-
темы.
2.2. Числа обусловленности
147
В случае плохой обусловленности строки матрицы линейно почти зависи-
мы, так что одна из строк является почти линейной комбинацией двух дру-
гих. Для простоты объяснения будем считать, что это третья строка матрицы
А. Это означает, что вектор [я31 а32 а33] почти лежит в плоскости, натянутой
на векторы [яп я12 а13] и [а21 а22 а23]. Следовательно, плоскость решений
третьего уравнения почти параллельна прямой пересечения первой и второй
плоскостей. Вблизи решения эта прямая оказывается почти лежащей в треть-
ей плоскости. Таким образом, точное положение решения трудно указать
точно и небольшие возмущения любой из плоскостей приведут к большим
возмущениям решения.
При более точном подходе лучше считать все уравнения равноценными,
чем выделять третье уравнение. Такой подход создает трудности при описа-
нии, но при визуализации особых трудностей не возникает. Для начала пред-
ставьте себе вырожденную систему, имеющую бесконечное число решений,
затем нарисуйте три плоскости, пересекающиеся по прямой. Теперь внесем
сюда небольшое возмущение так, чтобы осталась лишь одна точка пересече-
ния, но три прямые, определяемые попарным пересечением плоскостей, оста-
вались почти параллельными. Это и есть случай плохой обусловленности.
Оценка числа обусловленности
Результаты настоящего раздела делают понятным важность числа обу-
словленности матрицы. Очевидно, нам хотелось бы при необходимости
уметь вычислять или хотя бы оценивать эту величину. В принципе вы-
числить число обусловленности нетрудно: надо лишь найти Л"1, а затем
вычислить || Л || ||Л"1||. (Или, пользуясь MATLAB’om, просто набрать
cond (А).) Все хорошо, если Л не очень большая. Однако для действитель-
но больших Л хотелось бы побольше сэкономить на вычислении Л"1. Для
наших целей нет необходимости знать число обусловленности точно: дос-
таточно оценить порядок его величины. Все, что нам нужно, — это недоро-
гой способ оценки к(А).
Предположим, что мы уже решили систему Ах = Ь методом исключения Га-
усса и теперь хотели бы найти приближение к(А), что помогло бы нам качест-
венно оценить найденное решение. Пусть мы решили вычислить /^(Л) =
= || Л ||] || Л-1|||. Из теоремы 2.1.29 мы знаем, что вычислить || Л ||t нетрудно. Не-
сколько сложнее вычислить || Л-1^. Начнем с замечания, что для любого отлич-
ного от нуля w е R”
14'4
114
< max
у*0
114
1М-Ч1,.
Таким образом, положив w = b, имеем A 'w = х,
||Л"| < и
«((Л) >
ими
11*11,
и
148
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Это дает грубую оценку нижней границы для кх(А). В общем случае для лю-
бого отличного от нуля w е R"
К1(Л)
1И, ’
Поскольку к этому времени уже имеется L{/-разложение А, можно вычис-
лить Л"1 w, решая систему Ас = w посредством всего лишь 2п2 флопов. Выбирая
в направлении максимального растяжения для Л"1, получим неплохую оценку
/CjU)
ИМН
М, '
(2.2.28)
В действительности любой случайно выбранный w скорее всего имеет зна-
чимую проекцию на направление максимального растяжения для Л-1, что де-
лает разумной оценку (2.2.28). Поскольку случайный выбор может привести к
серьезной ошибке при оценке /с^Л), осторожный исследователь опробует не-
сколько случайных выборок w.
При более сложном подходе осуществляется систематический поиск вбли-
зи направления максимального растяжения. На настоящее время наиболее по-
лезным считается метод Хагера (Hager), модифицированный Хигэмом (см.
[41]), использующий идеи выпуклой оптимизации при поиске w, максимизи-
рующего || Л"1^ || /1| w ||. Этот метод, обычно дающий превосходные оценки, ле-
жит в основе оценщика числа обусловленности, используемого в LAPACK [1]
и MATLAB’e.
Упражнение 2.2.29. Вспомните, что в MATLAB’e можно, набрав А =
hilb(3), получить, например, 3 х 3-матрицу Гильберта Я3. Используя
condest - оценщик числа обусловленности из MATLAB’a, - получите оцен-
ки к}(Нп) при п = 3, 6, 9 и 12. Сравните их с истинными значениями числа обу-
словленности, вычисленными с помощью cond (А, 1). Обратите внимание на
великолепное согласие между ними. □
Упражнение 2.2.30. Опробуйте оценщик числа обусловленности из
MATLAB’a на матрицах большого размера. Например, рассмотрите
m = 42; % Если нужно, увеличьте или уменьшите ш.
А = delsq(numgrid('Nm)); % разреженная матрица
size(А) % размера (т-2)л2
issparse(А)
В = full(А); % неразреженный вариант А
issparse (В)
tic; cl = condest(А), toe
tic; c2 = cond(B,1), toe
Дайте оценку скорости и точности condest. Возможно, вы захотите
выполнить tic; сЗ = cond (В, 2) , toe при вычислении к2(В). Однако
для этого может потребоваться слишком много времени, пока вы не
2.3. Возмущение матрицы коэффициентов
149
уменьшите размерность задачи, взяв меньшее т. Эти вычисления требуют
больших затрат времени, поскольку требуют знания сингулярных чисел
матрицы В (разд. 4.2). □
Функция MATLAB’a condest вычисляет L67-разложение в предположе-
нии, что оно не было известно до этого. Поэтому condest был бы более
эффективен, если бы предполагал разложение известным. Но если рассмат-
риваемая матрица разреженная, то condest найдет разреженное £ 67-разло-
жение (разд. 1.9), сэкономив уйму работы. Это объясняет хорошие результа-
ты в упражнении 2.2.30.
2.3. Возмущение матрицы коэффициентов
До сих пор рассматривалось только влияние возмущений Ь на систему Ах = Ь.
Теперь рассмотрим возмущения Л, поскольку Л также известна лишь прибли-
женно. Сравним системы Ах = Ь и (А + ЗЛ )х = Ь, когда || 8А || / || А || мало. Наша
первая задача — найти условия, гарантирующие, что система (А + 8А)х = b име-
ет единственное решение, если это справедливо для системы Ах = Ь. Это при-
водит к следующей теореме, которая вместе с другими теоремами этого разде-
ла остается справедливой при любой векторной норме и индуцированных ею
матричной норме и числе обусловленности.
Теорема 2.3.1. Если А невырожденна и
М<_1_
1М|| к(Л)’
(2.3.2)
то и А + ЗЛ невырожденна.
Доказательство. Гипотезу || ЗЛ || / || Л || < 1/к(Л) можно переписать разными
способами, например, как || ЗЛ || < 1 / || Л~1|| или || ЗЛ || || Л-1|| < 1. Воспользуемся
последним неравенством и докажем противоположную форму теоремы: если
Л + ЗЛ вырождена, то || ЗЛ || || Л_,|| > 1.
Предположим, что Л + ЗЛ вырождена. Тогда по теореме 1.2.3 существует от-
личный от нуля вектор у такой, что (Л + 8Л)у = 0. Преобразуя это уравнение,
получаем у = -Л'18Лу, откуда следует, что || у || = || Л"18Лу || < || Л"‘|| || ЗЛ || || у ||. Так
как || у || > 0, можно разделить обе части неравенства на ||у ||, чтобы получить
1 < || Л-1|| || ЗЛ ||, что мы и доказывали. □
Теорема 2.3.1 демонстрирует другую важную функцию числа обусловлен-
ности - оно дает представление о расстоянии между Л и ближайшей вырож-
денной матрицей: если Л + ЗЛ вырождена, то || ЗЛ || / || Л || по крайней мере не
меньше 1Д(Л). Оказывается, что для спектральной нормы это дает точный ре-
зультат: если Л + ЗЛ есть вырожденная матрица, ближайшая к Л в том смысле,
что || ЗЛ ||2 мало, насколько возможно, то || 8А ||2/1| Л ||2 точно равно 1/к2(Л). Мы
докажем это в следствии 4.2.22.
150
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Пока выполняется (2.3.2), мы можем быть уверены, что уравнение (Л + 8Л) х =
= b имеет единственное решение. Заметьте, что условие (2.3.2) трудно удовлетво-
рить, если А плохо обусловлена, т.е. оно удовлетворяется лишь для очень малых
возмущений 8Л. Если, с другой стороны, А хорошо обусловлена, то (2.3.2) спра-
ведливо даже для относительно больших возмущений.
Теперь рассмотрим связь между решениями систем Ах = Ь и (А + 8Л)х = А.
Пусть 8х = х - х, так что х = х + 8х. При каких условиях можно утверждать, что
|| 8х || / || х || мало? Хотелось бы определить верхнюю границу для || 8х || /1| х || в
духе теоремы 2.2.4. В итоге мы получим такую границу, но оказывается легче
найти такую границу для || 8х || / || х ||. Зачастую нет большой разницы между
|| х || и || х ||, так что неважно, какая из этих величин стоит в знаменателе.
Теорема 2.3.3. Пусть А невырожденна, лхмх = х + 8х — решения систем
Ах = b и (А + 8Л)х = Ь соответственно. Тогда
Ml * ’||<
(2.3.4)
Доказательство. Переписав (А + 5А )х = b в виде Ах + А8х + ЬА = Ь, используя
уравнение Их = Ь и преобразовав итоговое уравнение, получаем 8х = -4-184. Та-
ким образом,
|| 8х ||<||4"1|| || 84 || ||х||.
(2.3.5)
Деля обе части на ||х|| и используя определение х(Л) = || А || || Л'1)), получаем
желаемый результат. □
Теорема 2.3.3 еще раз показывает решающую роль числа обусловленности
матрицы А. Если к(А) не очень велико, то малые возмущения матрицы А при-
водят к небольшим изменениям х в том смысле, что мало || 8х || /1| х ||.
Интересно отметить, что теорема 2.3.3 не опирается ни на вырожденность
А + 8Л, ни на предположение о малости 8Л. Напротив, следующая теорема,
дающая границу для || 8х || /1| х ||, такие предположения использует.
Теорема 2.3.6. Если А невырожденна, || 8Л || / || А || < 1/к(Л), b ф 0, Ах = Ь и
(А + 8Л)(х + 8х) = Ь, то
м.,
IMI "
..JIMI
л mi
1 -к(Л)^Н
* ’|И1
(2.3.7)
Если А хорошо обусловлена и величина || 841| /1| А || достаточно мала, то
|| 841| /1| А || < 1/к(А). В этом случае знаменатель правой части (2.3.7) приблизи-
тельно равен 1. Тогда (2.3.7) дает грубую оценку
!!М<К(Я)!!М!
IMI " 1М1Г
2.3. Возмущение матрицы коэффициентов
151
почти совпадающую с (2.3.4). Это показывает, что если А хорошо обусловлена
и || ЗЯ || /1| А || мало, то мало и || Зх || /1| х ||.
Если, с другой стороны, А плохо обусловлена, то (2.3.7) допускает (но
не доказывает), что || Зх || / || х || может быть большим, даже если || ЗЛ || / || А ||
мало.
Доказательство. Теорема 2.3.6 доказывается так же, как и теорема 2.3.3,
вплоть до (2.3.5). Переписывая в (2.3.5) х в виде х + Зх и используя неравенство
треугольника, находим, что
|| 8х || < || Л-*|| || 8А || (|| х || + || Зх ||) = к(А) И (|| х || + || Зх ||).
1|Л||
Теперь перепишем это неравенство так, чтобы все члены, содерщащие
|| Зх ||, оказались слева:
1 /с(Л)-^'
‘ ’mi
|| 5х|| < «(Л) И||х||.
1ИН
Предположение || ЗЯ || / || А || < 1/к(А) гарантирует, что ||8х|| умножается
на положительный множитель, так что мы можем делить на него без обра-
щения неравенства. Поделив обе части еще и на || х ||, получим искомый ре-
зультат. □
До сих пор мы рассматривали влияние возмущений Ь и А раздельно. Это
было сделано не по необходимости, а просто из желания упростить анализ.
Совместное влияние возмущений b и А можно представить в виде простого не-
равенства, как показывают следующие две теоремы. Первая из них созвучна
теореме 2.3.3, а вторая — теореме 2.3.6.
Теорема 2.3.8. Пусть А невырожденна, а х и х — решения систем Ах = Ь и
Ах = Ь соответственно, где А = А + ЗЯ, х = х + 8х^0мЛ = й + 8й^0. Тогда
м < К(А/И . М . и
Цх|| " \|М|| ||£|| ||Л|| ||£|| J
Среди членов правой части произведение является самым незначительным.
Например, если М = 10М « = КН, го . Ю-
Ml I№|| М| ||»||
Теорема 2.3.9. Если А невырожденна, || ЗЯ || / || А || < 1/к(А), b * 0, Ах = Ь и
(А + 8Я)(х + Зх) = b + 8Ь соответственно, то
М<
IWI "
-'-е
(2.3.10)
152
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Пример 2.3.11. В примере 1.2.6 мы рассмотрели электрическую цепь, кото-
рая описывалась линейной системой
Ее решение определяло напряжение в узлах цепи. Решив эту систему с по-
мощью MATLAB’a или любого другого подходящего программного обеспече-
ния, получим чрезвычайно точное решение (см. ниже пример 2.4.2). Это точ-
ное решение данной системы, но что будет, если элементы в А и Ь определены
неточно? Элементы в А определяются сопротивлениями в цепи, а единствен-
ный ненулевой элемент в Ь к тому же зависит от напряжения батареи. Ни одна
из этих величин не известна точно. Теорема 2.3.9 дает нам информацию о
влиянии погрешностей. Предположим, например, что сопротивления и на-
пряжение известны с ошибкой менее сотой процента. Это означает, что отно-
сительная ошибка меньше Ю^т.е., грубо говоря,
й*. 10- „ "Lio-
1И1. \Мг
Пользуясь функцией MATLAB’a cond, получим к(А) = 12.7. Подставляя
эти значения в (2.3.10), найдем, что
< 2.5 X 10-3.
1|х||2
Таким образом, вычисленные узловые напряжения отличаются от истин-
ных самое большее на четверть процента. Надо отметить, что в действительно-
сти ошибка намного меньше, так что результаты, полученные с помощью
верхней границы, как в теореме 2.3.9, могут выглядеть довольно пессимистич-
но. □
Упражнение 2.3.12. Докажите теорему 2.3.8. Сделайте это сами или вос-
пользуйтесь следующим наброском.
(а) Покажите, что
8х = А~'(8Ь - 8Л),
II 8х II <|| Л-'||(|| || +II 8Л ||||х||)
Ц8&Ц
11*11 " ими IMHHxiiJ-
2.4. Апостериорный анализ ошибок с помощью невязок
153
(Ь) Покажите, что
II b II < (II А II + || 5Л II) ||х||
и, следовательно,
I .(1И1 + 1М1)
11*11 ||£||
(с) Скомбинируйте результаты (а) и (Ь) для завершения доказательства. □
Упражнение 2.3.13. Докажите теорему 2.3.9, комбинируя детали доказа-
тельств теорем 2.2.4 и 2.3.6. □
Геометрические изображения двух- и трехмерных плохо обусловленных
систем, такие, как те, которые мы использовали при изображении влияния
возмущений в Ь, полезны и при визуализации возмущений в А. Тогда как воз-
мущения в b приводят к параллельным сдвигам прямых и плоскостей, возму-
щения в А дают непараллельные сдвиги.
2.4. Апостериорный анализ ошибок с помощью невязок
До сих пор мы исследовали чувствительность решения системы Ах = b
к возмущениям данных. Теперь рассмотрим связанный с этим вопрос.
Если система Ах = Ь решается методом исключения Гаусса или каким-ли-
бо другим методом, то как ошибки округления (и всякие другие ошибки)
влияют на точность искомого решения? Прежде чем вникнуть в детали
выполнения операций с плавающей точкой и анализ ошибок округления,
рассмотрим простой пример использования невязки и числа обусловлен-
ности.
Предположим, что с помощью какого-то метода мы нашли решение систе-
мы Ах - Ь. Обозначим его через х. Независимо от способа получения х можно
вычислить невязку г - b - Ах, дающую меру того, насколько хорошо х удовле-
творяет уравнениям. Уравнения удовлетворяются хорошо, если г мала (точнее,
если мало || г || / || b ||): г = 0 тогда и только тогда, когда х является истинным ре-
шением системы Ах = Ь.
Очень малая невязка придает уверенность. Она говорит, чтох есть ре-
шение системы, близкой к Ах = Ь\ если положить ЪЬ = -г, то х будет точ-
ным решением системы Ах = b + 8Ь, а это слегка возмущенная система
Ах = Ь. К сожалению, это не гарантирует близости х к х: необходимо
принять в расчет число обусловленности матрицы А. Полагая х = х + 8х,
как в разд. 2.2, видим, что теорема 2.2.4 дает верхнюю оценку относи-
тельной ошибки || 8х || / || х ||. Применяя эту теорему к невязкам, получим
следующий результат.
154
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Теорема 2.4.1. Пусть А невырожденна, Ь*0 и х является приближением реше-
ния для Ах = Ь. (Другими словами, пусть х — абсолютно произвольный вектор.)
Пусть г = b - Ах. Тогда
1|х-х||
1|Х||
5
На примере этой теоремы видно, что, если невязка мала и А хорошо обу-
словлена, то х является очень хорошим приближением к х. Затраты на вы-
числение г составляют около 2п2 флопов для полной матрицы А и еще
меньше для разреженной. Если к тому же в нашем распоряжении имеется
эффективный способ вычисления или оценки числа обусловленности (см.
конец разд. 2.2), то эта теорема дает нам гарантию точности найденного
решения.
Теорема 2.4.1 дает пример апостериорной границы ошибки. Эта граница
получена после решения задачи (т.е. определения х). В противоположность
этому, априорный анализ ошибки еще до решения задачи определяет, можно
ли данным способом получить приемлемое решение. Апостериорный анализ
обычно проще и информативнее априорного потому, что он использует най-
денное решение и любую другую информацию, полученную в процессе его
вычисления. В разд. 2.7 мы рассмотрим априорный анализ точности реше-
ния линейной системы методом исключения Гаусса при наличии ошибок
округления.
Пример 2.4.2. Рассмотрим линейную систему
из примера 1.2.6. Компоненты решения х представляют собой узловые напря-
жения в цепи, изучаемой в этом примере. Задавая в MATLAB’e значения мат-
рицы А и вектора b и используя команды
format long
xhat = A\b
находим, что
3.06382978723404
2.42553191489362
3.70212765957447
1.14893617021277
2.4. Апостериорный анализ ошибок с помощью невязок
155
Мы пишем х, чтобы показать, что это не есть истинное решение из-за оши-
бок округления при вычислениях. Чтобы проверить точность результата, вы-
полним дополнительные операции
That = b - A*xhat;
nr = norm(rhat)
са = cond(А)
errbound = ca*nr/norm(b)
и найдем, что || г ||2 = 1,05 х 10 |5, кг(А) = 12.7 и
Цх-х|1г < к2(Л)||г||2 = х |5
1М12 ’ ||*||2
Это показывает, что мы получили очень точное решение. Грубо говоря,
элементы решения совпадают с истинными значениями узловых напряжений
с точностью до четырнадцатого десятичного знака.
Здесь, кончено, предполагается, что исходные значения АпЬ заданы точно.
Однако, поскольку А хорошо обусловлена, из результатов разд. 2.3 мы знаем,
что небольшие погрешности в А и Ь приведут лишь к небольшим возмущени-
ям решения. См. пример 2.3.11. □
Упражнение 2.4.3. Рассмотрим систему
9
-5
-5 xt
8 х2
0
6
из упражнения 1.2.8. Компоненты решения представляют собой контурные
токи в электрической цепи из этого примера. Используйте MATLAB для реше-
ния этой системы. □
Упражнение 2.4.4. Снова выполните упражнение 1.2.17. Найдите решение с
помощью MATLAB’a. Вычислите невязку и число обусловленности и покажи-
те, что найденное решение очень точно. □
Упражнение 2.4.5. Если матрица велика, то лучше оценить число обусловлен-
ности, а не вычислять его точно. Используя MATLAB, решите систему Ах = Ь,
где А - дискретный оператор Лапласа большой размерности:
m = 42; % Сделайте m больше или меньше, если потребуется.
А = delsq(numgrid('N',m));
n = size(A,1)
b = ones(n,l); % 'все единицы' в правой части.
xhat = A\b;
са - condest(А)
Вычислите невязку и с помощью condest и теоремы 2.4.1 оцените ошиб-
ку. Поскольку condest оценивает число обусловленности кх(А), используйте
при оценке 1 -норму. □
156
Глава 2. Чувствительность линейных систем; влияние ошибок округления
2.5. Ошибки округления; обратная устойчивость
Этот раздел начинается с обсуждения особенностей выполнения операций
с плавающей точкой и влияния ошибок округления. Рассматривается точность
выполнения арифметических операций при наличии ошибок округления.
Оказывается, что неожиданная потеря (относительной) точности происходит
вместе с обнулением при сложении или вычитании двух чисел. Из-за угрозы
обнуления невозможно проанализировать ошибки в сложных алгоритмах, по-
добных гауссовому исключению с прямой подстановкой. Поэтому вводится
более простой подход — обратный анализ ошибок.
Арифметика с плавающей точкой
Большая часть научных расчетов выполняется на компьютерах,использую-
щих арифметику с плавающей точкой, являющуюся компьютерной версией
обычной научной нотации. Мы не будем давать определений, а вместо этого
приведем несколько примеров. Число .123456 х107 есть шестизначное десятич-
ное число с плавающей точкой. Оно имеет мантиссу .123456 и показатель сте-
пени 7. Оно называется десятичным, потому что его основание есть 10 (конеч-
но, и мантисса рассматривается как десятичная дробь). Поскольку число име-
ет показатель, десятичная точка может «плавать», не оставаясь в
фиксированной позиции. Например, .123456 хЮ3 = 123.456, .123456 х 108 =
12345600, а .123456 х 10~2 = .00123456. Преимущество представления с плаваю-
щей точкой в том, что оно дает возможность точного представления как очень
больших, так и очень малых чисел. Другими примерами чисел с плавающей
точкой являются четырехзначное десятичное число .6542 х 1036 и малое пяти-
значное десятичное число -.71236 х 10"42. Говорят, что число с плавающей точ-
кой нормализовано, если первая цифра его мантиссы не равна нулю. Таким об-
разом, числа в приведенных выше примерах являются нормализованными, а
числа .0987 х 106 и -.0012346 х 10"4 не нормализованы. За небольшими исклю-
чениямим1, ненулевые числа с плавающей точкой хранятся в памяти в норма-
лизованном виде.
Каждая мантисса и каждый показатель занимают определенное место в
компьютерной памяти. В системах с плавающей точкой под каждое число от-
водится часть памяти фиксированного размера, так что имеются ограничения
на точность представления чисел. Например, если мы используем десятичную
(с основанием 10) машину, запоминающую лишь четыре десятичные цифры,
то число .11112 х 105 невозможно представить точно.Мы должны аппроксими-
ровать его ближайшим числом с плавающей точкой, которым является
.1111 х 105. Таким образом, каждая арифметическая операция будет сопровож-
даться ошибками округления. Предположим, например, что выполняется ум-
ножение числа с плавающей точкой .1111 х 101 на .1111 х 102. Перемножая
мантиссы и складывая показатели, получаем точный результат .01234321 х 103,
1 Одной из причин, порождающих необходимость таких исключений, является, например, нуж-
ное иногда логическое сравнение малого числа с нулем. - Прим, перев.
2.5. Ошибки округления; обратная устойчивость
157
который после нормализации принимает вид .1234321 х 102. Мантисса резуль-
тата содержит больше цифр, чем может быть сохранено, и поэтому необходи-
мо аппроксимировать его ближайшим числом с плавающей точкой .1234 х 102.
Так возникают ошибки округления.
Поскольку и показатель числа требует для хранения определенный объем
памяти, то существуют ограничения на величину показателя, представимого
в компьютере. Числа, превосходящие определенный порог, не могут быть
представлены в системе с плавающей точкой. Если вычисления приводят к
числу, слишком большому, чтобы быть представленным с плавающей точ-
кой, возникает так называемое переполнение. Например, если наша числовая
система позволяет представлять числа не выше 10", то переполнение возник-
нет, если мы попытаемся перемножить, скажем, 1055 на Ю50. Это нежелатель-
ное событие может привести к прекращению выполнения программы (в за-
висимости от установок определенных флагов компилятора). Если в ходе вы-
числений появится некоторое число, отличное от нуля, но которое слишком
мало, чтобы быть представленным в системе, то итогом будет потеря значи-
мости результата. Например, если наша числовая система позволяет хранить
числа не меньше 10~", то потеря значимости произойдет, если мы попытаем-
ся умножить 10~55 на 1О'50.
Обычное средство от потери значимости - положить результат равным
нулю. Такое действие обычно (но не всегда) не наносит вреда. За одним-двумя
исключениями мы не будем пренебрегать возможностью потери значимости
или переполнения.
Во всех наших примерах используется десятичная арифметика,поскольку
это именно то, к чему мы привыкли. За исключением ручных калькуляторов,
большинство компьютеров не использует представления по основанию 10:
конструктивно более удобны степени двойки. В начале развития вычислитель-
ных машин каждый производитель сам принимал решение о характеристиках
реализации машинной арифметики с плавающей точкой (таких, как выбор ос-
нования системы счисления, число разрядов, отводимых для представления
мантиссы или показателя). В итоге использовалось большое число различных
систем с плавающей точкой, имевших разные достоинства. Но с тех пор как в
1985 году был принят IEEE-стандарт арифметики с плавающей точкой
(ANSI/IEEE Standard 754-1985), ситуация существенно улучшилась. На сего-
дняшний день все недорогие широко распространенные компьютеры отвеча-
ют этому стандарту.
Здесь мы дадим краткое описание основных свойств IEEE-арифметики.
Подробности вы можете найти в работах [15], [41] или [52]. IEEE-стандарт
поддерживает как числа с обычной (одинарной) точностью, так и числа с двой-
ной точностью. В обоих случаях используется основание 2. Числа с одинарной
точностью записываются в слова по 32 бита, из которых 24 бита отводятся под
мантиссу1, а оставшиеся 8 - под показатель числа. Поскольку 224 « 107, 24-х
битов достаточно для хранения информации, требующей семи десятичных
цифр. Другими словами, числа обычной точности позволяют точно представ-
1 На самом деле под разряды мантиссы отводится только 23 бита и еще один - под знак числа.
См., например, [15], разд. 1.5,где это изложено более точно. - Прим, перев.
158
Глава 2. Чувствительность линейных систем; влияние ошибок округления
лять семиразрядные десятичные числа. Восемь битов позволяют представлять
показатели от -128 до +1281. Поскольку показатели берутся по основанию 2 (не
10), то диапазон представимых чисел простирается от 2-128« Ю"38 до 2128 « 1038.
(Это приближенные оценки.)
В соответствии со стандартом IEEE число с плавающей точкой удвоенной
точности занимает 64 бита, из которых 53 отводится под мантиссу, а 11 — под
показатель. Поскольку 253 « 1016, числа двойной точности позволяют точно
представлять 16-ти разрядные десятичные числа. Одиннадцатибитовый пока-
затель дает возможность представлять числа в очень широком диапазоне - от
2~1024 « 1О"308 до 21024 « 1О308.
Стандарт для арифметики с плавающей точкой включает в себя правила
обработки таких исключительных событий, как потеря значимости, перепол-
нение или деление на нуль. См. [15], [41] иле [52].
Ошибки при вычислениях
Наша цель - оценить суммарное воздействие ошибок округления на расче-
ты. Для этого обозначим через fl(Q результат вычисления С посредством опе-
раций с плавающей точкой. Например, результат умножения на компьютере х
на у будет обозначаться как fl(xy). Можно применять это обозначение и к бо-
лее сложным выражениям, если только порядок выполнения вычислений из-
( п А
вестей заранее. Например, fl - вполне приемлемое выражение, если
v=1 )
только мы заранее выбрали порядок суммирования.
Обозначая точный результат буквой С, имеем fl(Q = С + е, где е - абсолют-
ная ошибка вычислений. Более полезной величиной является относительная
ошибка б = е/Спри условии, что С* 0. Легко проверить, что для относительной
ошибки 8
fl(C) = С(1 + £). (2.5.1)
Пример 2.5.2. Достаточно одного примера, чтобы показать, что относитель-
ная ошибка содержательнее абсолютной. Допустим, что вычисления выполня-
ются на 7-разрядной десятичной машине и результат равен fl(C) =
= .9876572 х 1017, где правильное значение есть С = .98765432 х 1017. Очевидно,
вычисленное значение является хорошим приближением к истинному, но аб-
солютная ошибка равна е = С - fl(C) = .288 х 1012 и до сравнения с С выглядит
очень большой. В относительной ошибке величина С автоматически принима-
ется в расчет: 8 = е/С= .291 х 10"5. Теперь рассмотрим другие вычисления, в ко-
торых fl(O = .9876572 х 10“15 и С = .98765432 х 10’15. Здесь е = .288 х КТ20, что
кажется очень малым до сравнения с С. Напротив, 8 = е/С - .291 х 10~5, как и
прежде. То, что относительная ошибка равна приблизительно 10"5, находит от-
ражение в том факте, что у С и fl(Q совпадают пять первых десятичных цифр.
1 Хранить знак порядка в действительности не требуется. См. [15], разд. 1.5. — Прим, перев.
2.5. Ошибки округления; обратная устойчивость
159
Из-за этого совпадения разность между С и fl(C) на пять десятичных порядков
меньше С, т.е. относительная ошибка равна приблизительно 10"5. □
Еще стоит упомянуть, что абсолютная ошибка измеряется в тех же едини-
цах, что и С Если С измеряется в вольтах (секундах, метрах), то е также изме-
ряется в вольтах (секундах, метрах). Напротив, относительная ошибка — без-
размерная величина, не имеющая единиц измерения.
В данном тексте мы обычно будем измерять ошибки в относительных вели-
чинах. Относительная ошибка появляется под различными личинами. Напри-
мер, выражения || || /1| х ||, || 8b || /1| b || и || 8А || / || А ||, с которыми мы работали
в разд. 2.2, являются выражениями для относительной ошибки. К тому же мы
уже видели, что утверждения о числе верных знаков на самом деле являются
неявными утверждениями об относительной ошибке. Наконец, утверждения о
величине ошибки в процентах также говорят об относительной ошибке: ошиб-
ка в процентах = | относительная ошибка | х 100.
В своем анализе мы не будем предполагать, что наша машина удовлетворя-
ет стандарту IEEE. Вместо этого мы будем использовать воображаемый иде-
альный компьютер, выполняющий каждую операцию точно и затем округляю-
щий результат до ближайшего числа с плавающей точкой. Это предположение
отвечает стандарту IEEE, пока не происходит переполнение или исчезновение
порядка1. Наш анализ будет игнорировать возможность переполнения или по-
тери значимости. Каждое конкретное вычисление приводит к небольшой от-
носительной ошибке. Мы определим единичную ошибку округления и как наи-
большую относительную ошибку, порождаемую операциями округления. Зна-
чение и зависит от используемой числовой системы. В числовой системе с
мантиссой из s десятичных цифр величина и составляет около 10у, поскольку
у округленной и исходной величин совпадают s десятичных цифр. Тщатель-
ный анализ (упражнение 2.5.9) показывает, что и = ~ х 101 "s. Для IEEE-чисел
одинарной точности и = 2"24 « 6 х 10"8, а для чисел двойной точности и = 2"53 »
« 10"16. В сиду (2.5.1) выполнение наших идеальных операций дает
fl(x ± у) = (х ± у)(1 + е,), I ej < и;
fl(xy) = (ху)(1 + е2), | е2| < и; (2.5.3)
П(х/у) = (х/у)(1 + е3), | е3| < и.
В своем анализе мы примем результат (2.5.3) за исходную точку. Он может
дать ложное ощущение безопасности. Поскольку ошибка, совершаемая при
выполнении каждой конкретной операции, мала, можно подумать, что при-
дется выполнить очень большое число операций прежде, чем накопится зна-
чимая ошибка. К сожалению, это не так.
1 Это предполагает, что по умолчанию используется «округление до ближайшего...». Стандарт
IEEE предполагает поддержку и других способов округления. Во всех случаях (2.5.3) выполняется,
если заменить и на 2м.
160
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Чтобы получить реальное представление о происходящем, нужно принять в
расчет тот факт, что обычно определенные ошибки содержатся уже в операн-
дах хпу. Вместо истинных значений х и у компьютер работает с испорченны-
ми значениями х = х(1 + Ej) и у = у( 1 + е2). Вместо ху или fl(xy) компьютер вы-
числяет fl(xy). Сравним fl(xy) и ху. Желательно, чтобы из | ej « 1 и | е2| « 1
следовало П(ху) = ху(1 + е), где | е | « 1. Оказывается, что это выполняется для
умножения и похожий результат справедлив для деления. К сожалению, сло-
жение и вычитание не всегда ведут себя так хорошо.
Начнем с операций, которые ведут себя хорошо. Компьютер умножает х на
у, чтобы получить (1(ху) = ху(\ + е3), где ошибка округления б3 удовлетворяет
неравенству | е3| < и « 1 в соответствии с (2.5.3). Тогда
fl(xy) = Х(1 + £,)у( 1 + £2)( 1 + £3) =
= Ху(1 + Et+ Е2 + Е3 + Е|Б2 + Е]Б3 + Б2Б3 + EjE2E3) = Ху( 1 + е),
где б = Et + е2 + е3 + ед + ед + e2e3 + е де3. Членами, образованными из двух или
более е., можно пренебречь, поскольку ez малы. Поэтому е « Ej + е2 + е3. Так как
| Ej| « 1, | е2| « 1 и | е3| « 1, то и | б | « 1. Отсюда следует, что умножение хоро-
шо ведет себя при наличии ошибок в операндах.
Чтобы проанализировать деление, вспомним, что в соответствии со свойст-
вами геометрической прогрессии
1 1 2 3
----- — 1 — Е2 + £2 ^2 +
1 + £2
Поскольку | е2| « 1, то приближение 1/(1 + е2) » 1 - е2, полученное отбрасы-
ванием членов степеней второй и выше, оказывается хорошим. Тогда
flf^l = J- +£|-; (1 + £3) «-(1 + £,)(1 - £2)(1 + Е3) «
у(1 + Е2) у
~ — (1 +Ej -Е2 + £3).
У
Следовательно, (1(х/у) = (х/у)(1 + е ), где е ~ Е! - е2 + е3. Получается, что и де-
ление хорошо ведет себя при наличии ошибок.
Анализ сложения будет немного другим. Мы знаем, что различие между fl(x + у)
и х + у сравнительно мало, и поэтому будем сравнивать х + у и х + у. (Это можно
было проделать и при анализе умножения и деления.) Это слегка упрощает ана-
лиз и позволяет понять, что наибольший вред наносят не ошибки округления
при выполнении текущей операции, а ошибки, сделанные до этого. Итак,
X + у = х(1 + Ej) + у(1 + Е2) = (х + у) + XEj + УБ2 =
/ ч/1 х Ух
= (X + у)(1 + ----Ej + ----- £2).
х + у
х + у
2.5. Ошибки округления; обратная устойчивость
161
Таким образом, х + у = (х + у)(1 + е), где
х у
8 = ----- 8] + --82.
х + у х + у
При условии, что | 8] |« 1 и 1821« 1, можно сказать, что | 8 |« 1, если толь-
ко ни х, ни у не превосходят по модулю х + у. Если, с другой стороны, х или у
превосходят х + у по модулю, то 8 может, и вероятнее всего будет, большой, т.е.
полученный результат скорее всего не точен. Это происходит тогда (и только
тогда), когда х и у почти равны по величине, но противоположны по знаку, так
что они почти взаимно уничтожаются при сложении.
Аналогичный анализ годится и для вычитания.
Упражнение 2.5.4. Покажите, что если х = х(1 + и у = у(1 + 82), где | 8j |« 1
и | е21« 1, то х - у = (х - у)(1 + 8 ), где | 8 | « 1, если только х и у не намного
превосходят по модулю х - у. □
Если х и у почти равны, так что х - у намного меньше как х, так и у, то вы-
числение х - у может дать, и вероятно даст неточный результат.
Мы приходим к выводу, что и сложение, и вычитание ведут себя хорошо в
присутствии ошибок, исключая случай, когда операнды почти взаимно унич-
тожаются. Поскольку взаимное уничтожение обычно говорит о неожиданной
потере верных цифр, то в этом случае иногда говорят о катастрофической по-
тере значимости.
Упражнение 2.5.5. Интуитивно понятно, как взаимное уничтожение приво-
дит к неточным результатам. Предположим, что на восьмиразрядной машине
вычисляется х - у, причем х = .31415927... х 101 и у = .31415916... х 101. Из-за
ошибок при вычислении х и у в машинной памяти в действительности хранят-
ся числа = .31415929... х 101 иу = .31415914... х 101. Очевидно, они являются хо-
рошим приближением для х и у — они содержат верные цифры в первых семи
разрядах, т.е. относительные ошибки 8 j и 8 2 по величине равны приблизи-
тельно IO"7. Поскольку х и у фактически равны, при формировании х - у пер-
вые семь цифр уничтожаются: х - у = .00000015 х 101 = .15000000 х 10“5. В нор-
мализованном варианте верна только первая цифра. Вторая цифра уже невер-
на, как и все следующие за ней нули. Полученный результат является плохим
приближением для правильного ответах-у = .11... х 10"5: относительнаяошиб-
ка составляет почти 36%. □
Этот пример демонстрирует относительную опасность сокращения (вза-
имного уничтожения). На самом деле здесь возможна существенная потеря
точности. Предположим, например, что два числа содержат по семь десятич-
ных разрядов и первые три из них совпадают; тогда после вычитания первые
три разряда пропадут, и результат будет содержать только четыре верных
разряда.
Мы показали не только то, что сокращение может привести к неожиданной
потере точности, но и то, что это единственный путь, приводящий к неожи-
данной потере точности. Еще один путь возникновения неточного результата
заключается в постепенном накоплении небольших ошибок. Хотя можно
6 Основы матричных вычислений
162
Глава 2. Чувствительность линейных систем; влияние ошибок округления
придумать пример, показывающий это, на практике такое случается редко1.
Небольшие ошибки по мере возникновения могут, как взаимно уничтожаться
(по крайней мере, частично), так и усиливать друг друга, что приводит к очень
медленному накоплению общей ошибки. Таким образом, если на практике
расчет идет плохо, то причина этого лежит в каком-то сокращении в некото-
рой критической точке алгоритма. Другими словами, если во время расчета (с
точными операндами) не происходит взаимосокращений, то результат обычно
оказывается точным.
К сожалению, обычно трудно проверить данные вычислений на нали-
чие взаимных сокращений, и поэтому невозможно предсказать, погубят ли
ошибки округления ваш расчет. При первых попытках анализа ошибок ис-
пользовался прямой подход, при котором шаг за шагом просматривался
весь алгоритм и определялись границы погрешности для каждого проме-
жуточного результата. Такой подход обычно приводил к неудаче, посколь-
ку всякий раз при выполнении сложения или вычитания надо было убеж-
даться, что это не приведет к взаимосокращению или взаимосокращение
не нанесет вреда последующим вычислениям. Обычно это оказывается не-
выполнимым2.
Обратный анализ ошибок
Ввиду постоянной угрозы потери точности из-за взаимных сокращений
пионеры компьютерных вычислений пессимистично оценивали влияние
ошибок округления на результаты расчетов. Опасались, что любая попытка
решить систему, скажем, из 50 уравнений с 50 неизвестными даст неверный
результат. Тем не менее результаты реальных попыток решения линейных
уравнений обычно оказывались лучше ожидаемых, хотя иногда и были пе-
чальными.Причины этого не находили должного понимания, пока не был
разработан новый подход к проблеме, называемый обратным анализом оши-
бок. При новом подходе не делалось попыток оценить погрешность резуль-
тата непосредственно. Вместо этого рассматривается влияние ошибок на
операнды.
Предположим, например, что даны три числа с плавающей точкой х, у и г,
и мы хотим вычислить С = (х + у) + г. Компьютер дает С = fl(fl(x + у) + z). Даже
если операнды даны точно, мы не можем утверждать, что относительная
ошибка доя С будет мала: fl(x + у) имеет (возможно) небольшую ошибку, но
может возникнуть большая относительная ошибка в С, если при добавлении z
1 Обратные задачи фильтрации (обращение свертки, вычисление значений полинома высокой
степени и т.д.) сплошь и рядом приводят к таким неприятностям и вынуждают разрабатывать спе-
циальные методы для их решения. — Прим, перев.
2 Сравнительно небольшую задачу на Фортране или С можно решить дважды с разной длиной
мантиссы, и тогда большая разница в результатах будет определенно указывать на наличие того
феномена, о котором говорит автор. Доступных для широкого использования машин с перемен-
ной длиной мантиссы, на которых можно было бы проводить такие эксперименты без больших
затрат труда на программирование, никогда не было, хотя единичные экземпляры подобной тех-
ники иногда и появлялись. Символьные же вычисления, в которых легко менять длину мантиссы,
еще долго будут недоступны для решения реальных прикладных задач из-за недостаточного быст-
родействия компьютеров. - Прим, перев.
2.5. Ошибки округления; обратная устойчивость
163
к fl(x + у) произойдет потеря значимости результата. Но иногда с этим можно
бороться. Имеем
с = [(х + у)(1 4- 8j) + z](l + 82),
где | ej, | е2| < и « 1. Определим 83 как (1 + 83) = (1 + 8j) (1 + 82 ), так что | е3| «
« |8j + е2| « 1. Тогда С = (х + у)(1 + 83) + z(l + е2). Определяя х = х(1 + 83), у =
= у(1 + 83) И z = г(1 + 82), получим
С = (х + у) + z.
Обратите внимание, что х, у и z очень близки к х, у и z соответственно. Это
показывает, что С является точным результатом вычисления (х + у) + z для
слегка возмущенных данных х, у и z. Мы внесли погрешности назад в операн-
ды. То же можно проделать и с вычитанием, умножением, делением и (при на-
личии некоторой изобретательности) с более длинными вычислениями.
В общем случае предположим, что нужно проанализировать протяженные
вычисления С(гь zm) с т операндами или входными данными Z\, 4г
Вместо того чтобы прямо показать, что Я(С(4, ..., zm)) близко к C(zi, zm), с
помощью обратного анализа ошибок попытаемся показать, что fl(C(zi, ..., zm))
есть точный результат вычислений со слегка возмущенными входными дан-
ными, т.е.
fl(C(zi, ?„)) = C(Zi, .... zm),
где Zj, zm чрезвычайно близки к zv ...» zm- Говоря чрезвычайно близки, мы
подразумеваем, что величина погрешности отличается от ошибки округления
и лишь небольшим множителем. Если дело обстоит именно так, то говорят,
что вычисления обратно устойчивы.
Конечно, на этом анализ не заканчивается. Обратный анализ ошибок со-
вмещается с анализом чувствительности задачи. Если (1) вычисления облада-
ют обратной устойчивостью, и (2) можно показать, что небольшие погрешно-
сти в операндах приводят к небольшим погрешностям результата, то можно
утверждать, что получен правильный результат.
Например, если требуется решить невырожденную систему Ах = Ь, то опе-
ранды или входные данные являются элементами в А и Ь, а выходные — эле-
ментами в х. Вектор х получается из А и b с помощью определенных вычисле-
ний: х = С(А, Ь), например, гауссовым исключением с полным выбором глав-
ного элемента. В таком контексте обычно вместо слова вычисления используется
термин алгоритм. Если вычисления выполняются в точной арифметике, то мы
найдем точное значение х, но если будем использовать арифметику с плаваю-
щей точкой, то получим приближенное решение х = Я(С(Л, Ь)). В таком кон-
тексте алгоритм обратно устойчив, если существуют А и Ь, очень близкие к А и b
соответственно, такие, что х = С(Л, i), т.е. что равенство Ах = b точно. Иначе
это можно выразить словами, что х удовлетворяет равенству (А + 8Л)х = b + ЪЬ
164
Глава 2. Чувствительность линейных систем; влияние ошибок округления
точно для некоторых ЗЛ и 8Ь таких, что || ЗЛ || / || Л || и || 8b || / || b || невелики, т.е.
отличаются от и лишь небольшим множителем.
Как мы теперь знаем, из обратной устойчивости не следует близость х к х.
Чувствительность задачи определяется числом обусловленности матрицы Л.
Если алгоритм обратно устойчив и матрица коэффициентов хорошо обуслов-
лена, то найденное решение будет точным. Если же, напротив, матрица плохо
обусловлена, то решение может оказаться неточным, даже если алгоритм об-
ратно устойчив.
Обратный подход к анализу ошибок четко различает задачу (например, ре-
шение системы Ах = Ь) и алгоритм (например, метод исключения Гаусса с пол-
ным выбором главного элемента). Анализ чувствительности имеет отношение
непосредственно к задаче, а обратный анализ ошибок — к алгоритму. Говорят,
что задача хорошо обусловлена, если небольшие изменения во входных данных
приводят к небольшим изменениям в результатах. В противном случае она
плохо обусловлена. Алгоритм обратно устойчив, если полученный с его помо-
щью результат является точным решением слабо возмущенной задачи. Отсюда
следует, что обратно устойчивый алгоритм способен достаточно точно решать
хорошо обусловленные задачи. Мы считаем неразумным ожидать, что какой-
либо алгоритм способен дать правильное решение плохо обусловленной зада-
чи1. Следовательно, алгоритм удовлетворяет нашим требованиям, если он об-
ратно устойчив.
Обратный подход к анализу ошибок успешнее прямого подхода лишь пото-
му, что претендует на меньшее. Прямой подход пытается доказать, что данный
алгоритм приводит к правильному результату безотносительно к чувствитель-
ности задачи. Обычно это невозможно.
Малые невязки ведут к обратной устойчивости
Говоря, что алгоритм обладает обратной устойчивостью (без дальнейшей
детализации), мы имеем в виду его обратную устойчивость для всех возмож-
ных множеств входных данных. Однако этот термин можно понимать гораздо
шире. Используя некоторый алгоритм, скажем, гауссово исключение, для ре-
шения конкректной задачи Ах = b (со специально выбранными Ли Ь), будем
говорить, что алгоритм обладает обратной устойчивостью для этой конкрект-
ной задачи, если он приводит к решению х, которое является точным решени-
ем приближенной задачи (Л + ЗЛ )х = b + 8Ь.
Для задач решения линейных систем (как и многих других задач) сущест-
вует простой апостериорный способ проверки обратной устойчивости вычис-
лений — это проверка невязок. Пусть система Лх = Ь как-то решена. Какой бы
метод мы не использовали при определении решения х, нетрудно рассчитать
невязку г = b - Лх. Как уже отмечалось в разд. 2.4, х есть точное решение для
1 На деле плохо обусловленные задачи все-таки приходится решать, поскольку они отражают
реальные ситуации, и это, возможно, один из наиболее трудных разделов линейной алгебры; в
книге он никак не затронут. Общий подход здесь состоит в том, чтобы как-то сузить задачу таким
образом, чтобы ее обусловленность стала приемлемой (например, наложить некоторые условия
гладкости на искомое решеоние, обрезать высокие частоты в правой части и т.д.). - Прим, перев.
2.5. Ошибки округления; обратная устойчивость
165
Ах = Ь + 8Ь, где 8Ь = -г. Если || 8b || / || b || невелико, то х и в самом деле является
решением некоторой приближенной системы. Таким образом, алгоритм об-
ратно устойчив в этой задаче. Резюмируя, можно сказать, что малые невязки
говорят об обратной устойчивости.
Следующее упражнение по существу приводит к тому же выводу другим пу-
тем в случае возникновения невязки, связанной с погрешностями в Л, а не в Ь.
Упражнение 2.5.6. Пусть х есть приближение для решения системы Ах = b и
пусть г - b - Ах. Определим 8Л е Няхя как 8Л = агхТ, где а = || х ||2"2.
(а) Покажите, что х есть точное решение для (А + 8Л) = Ь.
(Ь) Покажите, что || 8Л ||2 = || г ||2/ || х ||2 и
1|8Л||2 ||г||2
1И12 1И|2||х||2'
Таким образом, если || г ||2 мало сравнительно с || 8Л ||2|| х ||2, то алгоритм (ка-
ким бы он ни был) обратно устойчив для этой задачи.
Дополнительные упражнения
Упражнение 2.5.7. Чтобы лучше познакомиться с арифметикой вашего ком-
пьютера, выполните следующие MATLAB-программы:
(а) Что вы узнаете, выполнив программу?
а = 1;
u = 1;
Ь = а 4- и;
while Ь ~= а
и = .5*и;
Ь = а + и;
end
и
(Ь) А о чем вам говорит такая программа?
а - 1;
while а inf
а = 10*а
end
Чтобы получить более точный результат, замените 10 на 2. Дополнитель-
ную информацию можно получить, набрав help inf.
(с) А о чем вам говорит такая программа?
а = 1;
while а ~= 0
а = .1*а
end
166
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Результат этой программы вероятно покажется вам неожиданным, исходя
из приведенной в тексте информации. IEEE-стандарт допускает постепенную
потерю значимости при использовании субнормальных чисел, как только бу-
дет достигнут минимум показателя числа.
(d) Какую арифметику использует MATLAB? Чтобы больше узнать о своем
компьютере, наберите, например, help computer, help isieee, help
inf и help nan. □
Упражнение 2.5.8. Напишите программы на Фортране или С, выполняю-
щие те же действия, что и программы из упражнения 2.5.7. Сделайте варианты
с одинарной и двойной точностью и опробуйте их. □
Упражнение 2.5.9.
(а) Покажите, что в системе чисел с плавающей точкой и основанием р
наибольший относительный разрыв между последовательными нормализо-
ванными числами достигается для
.1000...000 х р' и .1000...001 х р'.
(Величина показателя t не важна.) Таким образом, наибольшая относитель-
ная ошибка (единичная ошибка округления) наблюдается при попытке пред-
ставления числа, лежащего на полпути между этими двумя числами.
(Ь) Покажите, что единичная ошибка округления равна ~ х Р1 Л где Р ~ ос-
нование системы счисления, a s — число p-ричных цифр в мантиссе. □
2.6. Распространение ошибок округления
при исключении Гаусса
Теперь, когда мы уже располагаем некоторыми сведениями об арифметике
с плавающей точкой и ошибках округления, можно проанализировать влия-
ние ошибок округления на исключение Гаусса. Нашим формальным инстру-
ментом будет обратный анализ ошибок, но мы пока отложим его до разд. 2.7.
В данном разделе мы увидим, что с помощью хорошо подобранных примеров
можно достичь неплохого понимания даже без обратного анализа ошибок.
Гауссово исключение с плохо обусловленными матрицами
Изучение чувствительности линейных систем убедило нас, что не стоит даже
пытаться решать очень плохо обусловленные системы. Дальнейшее понимание
может быть достигнуто, если эвристически рассмотреть численный результат
при попытке решить плохо обусловленную систему методом гауссова исключе-
ния с частичным выбором ведущего элемента. Будем предполагать, что строки и
столбцы матрицы коэффициентов правильно отмасштабированы.
При операциях со строками линейные комбинации строк подбираются так,
чтобы на определенных местах получались нули. Поскольку строки плохо
2.6. Распространение ошибок округления при исключении Гаусса 167
обусловленной матрицы почти линейно зависимы, существует возможность
получить целую строку, почти равную нулю. Эта вероятность возрастает по
мере увеличения числа нулей в массиве. Будем говорить, что некоторая строка
плохая, если она является почти линейной комбинацией предыдущих строк.
Предположим, что Л-я строка матрицы А является первой плохой строкой. По-
сле к - 1 шага гауссова исключения мы будем вычитать кратные первых к - 1
строк из £-й строки таким образом, чтобы получить нули на первых к - 1 мес-
тах. Если Л-я строка точно является линейной комбинацией предыдущих
строк (и использовалась точная арифметика), то вся Л-я строка теперь будет
состоять из нулей. (Почему?) Поскольку на самом деле это лишь приближение
линейной комбинации предыдущих строк, оно все еще будет содержать нену-
левые элементы, но они скорее всего будут очень малыми по модулю. И не
только малыми, но и неточными из-за потери значимости при вычитании
кратных предшествующих строк из Л-й строки.
Один из этих малых, неточных элементов является потенциальным веду-
щим элементом в позиции (к, к). Ввиду их малости к-ю строку можно заме-
нить расположенной ниже строкой, имеющей больший элемент в позиции к,
если, конечно, такая строка имеется. Таким способом плохая строка сдвигает-
ся ниже. В конечном итоге мы достигнем шага, когда останутся лишь плохие
строки. С этого шага любой выбранный главный элемент будет малым по ве-
личине и неточным. Хотя наличие малых и неточных чисел не обязательно
приведет к плохим результатам, по возможности надо избегать использования
их в качестве главных элементов. В соответствии с нашим сценарием мы вы-
нуждены использовать небольшой неточный главный элемент. Он использует-
сяв качестве делителя при вычислениях не очень маленьких неточных множи-
телей, которые вносят погрешности во все последующие строки. Неточные
главные элементы используются в качестве делителей и на первых шагах про-
цесса обратной подстановки: каждая компонента полученного решения явля-
ется отношением с главным элементом в знаменателе, и нельзя ожидать точ-
ности от дроби, если неточен ее знаменатель.
Очевидно, проведенный выше анализ является эмпирическим и не претен-
дует на универсальность. Другой пример плохой обусловленности дает матри-
ца Кохана [41].
Пример 2.6.1. Рассмотрим плохо обусловленную матрицу
Л _ Г1000 999
" [ 999 998J
которую мы обсуждали ранее. Так как строки почти линейно зависимы, то при
получении нуля в позиции (2,1) и элемент в позиции (2,2) также получится
близким к нулю. В самом деле, множитель равен /21 = .999 и элемент (2,2) полу-
чается равным
998 - (.999)(999) = 998 - 998.001 = -.001.
Это действительно малая величина, которая получается при наличии силь-
ного сокращения. Погрешности в нем нет потому, что при его вычислении
168
Глава 2. Чувствительность линейных систем; влияние ошибок округления
использовалась точная арифметика. Давайте посмотрим, что получается, если
пользоваться пятиразрядной арифметикой с плавающей точкой. Вычисления
дают
998.00 - (.99900)(999.00) = 998.00 - 998.00 = 0.
Матрица оказывается вырожденной! □
Возможно, этот пример напомнил вам то, что мы делали в гл. 1. Не только
невырожденная матрица может предстать вырожденной (это сейчас и случи-
лось), но может произойти и обратное, что в действительности является более
общим случаем. Мы отмечали, что программа гауссова исключения, пытаясь
вычислить ^-разложение вырожденной матрицы, почти наверняка не смо-
жет определить, является ли матрица вырожденной: определенные элементы
матрицы, которые должны по ходу вычислений стать равными нулю, из-за
ошибок оказываются отличными от нуля. Таким образом, в вычислительной
практике невозможно отличить плохо обусловленные матрицы от вырожден-
ных. В противоположность теории, где существует четкое различие между вы-
рожденными и невырожденными матрицами, мы имеем континуум чисел обу-
словленности, простирающийся от хорошо обусловленных до очень плохо
обусловленных, без четкой границы посередине. (Исключением являются не-
которые матрицы, очевидным образом являющиеся вырожденными, вроде
матриц с нулевыми строками или столбцами, или с парой равных строк.)
Следующий пример показывает, что различие между хорошими и плохими
строками не всегда бывает четким. Может случиться, что точность вычисле-
ний ухудшается постепенно с ростом числа шагов.
Пример 2.6.2. Вернемся к плохо обусловленным матрицам Гильберта из
примера 2.2.9 с элементами hy = 1/(Z + j -1). Например,
1 1/2 1/3 1/4
1/2 1/3 1/4 1/5
1/3 1/4 1/5 1/6
1/4 1/5 1/6 1/7
Строки выглядят очень похожими, что подтверждает плохую обусловлен-
ность. Используя MATLAB, находим к2(Н^ « 1.6 х 104.
Посмотрим, как плохая обусловленность проявляет себя в процессе гауссо-
ва исключения. На первом шаге нет необходимости делать перестановку
строк, поскольку наибольший элемент уже находится на месте ведущего эле-
мента. Легко проверить, что после одного шага массив принимает вид
2
1/2
1/3
1/4
1/2
1/12
1/12
3/40
1/3 1/4
1/12 3/40
4/45 1/12
1/12 9/112
2.6. Распространение ошибок округления при исключении Гаусса
169
Второй шаг применяется к подматрице
’1/12 1/12 3/40
1/12 4/45 1/12
3/40 1/12 9/112
все элементы которой меньше элементов исходной матрицы. Таким обра-
зом, каждый элемент немного уменьшился. Конечно, эти числа абсолютно
точные, поскольку и вычислялись они в рамках точной арифметики. Если
используется арифметика с плавающей точкой, то каждый из элементов не-
сколько потеряет в точности в результате взаимных сокращений. Заметьте,
что все элементы этой поматрицы довольно близки к 1/12 — строки почти
равны.
Возможный главный элемент второго шага меньше, чем на первом шаге.
Опять не надо переставлять строки, и после выполнения шага преобразован-
ная подматрица имеет вид
" 1/12
~Т~
9/10
1/12 3/40
1/180 1/120
1/120 9/700
Элементы подматрицы
1/180 1/120
1/120 9/700
стали еще меньше ~ были произведены дополнительные сокращения. Воз-
можные главные элементы третьего шага — 1/180 и 1/120 — оба довольно малы.
Так как последний больше, то мы переставим строки (хотя это мало влияет на
результат). После третьего шага имеем
1/120 9/720
2/3] -1/4200
Последний главный элемент равен -1/4200, т.е. еще меньше.
Теперь посмотрим, что произойдет, если эти же операции будут выполне-
ны в трехразрядной арифметике с плавающей точкой. Исходный массив есть
'1.00 .500 .333 .250'
.500 .333 .250 .200
.333 .250 .200 .167
.250 .200 .167 .143
770 Глава 2. Чувствительность линейных систем; влияние ошибок округления
Некоторые элементы уже содержат небольшие погрешности. На первом
шаге элемент (4,3) (например) преобразуется следующим образом:
.167 - (.250)(.333) = .167 - .833 х 10"1 = .837 х 10"1.
Сравнивая это с точным значением 1/12 » .833 х 10 \ видим существенную
погрешность в третьем знаке. Окончательно результат первого шага есть
1.000 .500 .333 .250
.500 .830x10-' .830x10-' .750x10-'
.333 .830x10-' .890x10-' .837x10-'
.250 .750x10-' .837x10-' .805x10-'
Результат второго шага (без первой строки и первого столбца) такой:
.830x10-' .830x10-' .750x10-'
1.00 .бООхЮ*2 .870 хЮ"2
.904 ,870х10-2 .127x10-'
Произошли существенные взаимоуничтожения — у большинства чисел
лишь по одному верному знаку. Например, для элемента (4,3)
.837 х Ю"1 - (.904)0830 х 10~1) = (.837 - .750) х 10"1 = .870 х 10’2.
Сравнивая этот результат с точным значением 1/12 » .833 х 10 2, мы видим
лишь одну верную цифру. Результат третьего и последнего шага есть
.870х10‘2 .127Х10’1
.690 [-.бООхЮ-4
Элемент (4,4), равный -.600 х Ю"4, даже не приближается к правильному
значению -1/4200 « -.238 х 10“3. □
Упражнение 2.6.3. Просмотрите вычисления примера 2.6.2, обращая вни-
мание на взаимные сокращения и соответствующую потерю точности.
Помните, что если вы хотите воспользоваться калькулятором для моделиро-
вания трехразрядной десятичной арифметики с плавающей точкой, то мало
просто заставить дисплей показывать лишь три разряда. Правильное моде-
лирование трехразрядной арифметики требует, чтобы каждый промежуточ-
ный результат округлялся перед использованием в последующих вычислени-
ях. Простой способ добиться этого - выписывать все промежуточные ре-
зультаты и затем снова вводить их в калькулятор, по мере возникновения
необходимости. □
2.6. Распространение ошибок округления при исключении Гаусса
171
Упражнение 2.6.4. Проработайте пример 2.6.2, используя четырехразряд-
ную арифметику вместо трехразрядной. Вы увидите, что результат не так уж и
плох. □
Упражнение 2.6.5. Воспользуйтесь MATLAB’om, чтобы проанализировать
потерю точности в гауссовом исключении для больших матриц Гильберта.
(а) В командной строке MATLAB’a наберите А - hilb (7), чтобы полу-
чить Н7. Для получения Z {/-разложения с частичным выбором ведущего эле-
мента наберите [ L, и ] = 1и(А). Обратите внимание, что матрица L не явля-
ется нижней унитреугольной, но может быть приведена к такому виду переста-
новкой строк. Дело в том, что MATLAB-команда lu включает перестановку
строк в матрице L. Но нас интересует U — треугольная матрица, полученная
гауссовым исключением. Заметьте, что чем ниже вы опускаетесь в U, тем
меньше по модулю становятся числа. Элементы в самом низу оказазываются
нулевыми. Чтобы получить более точную картину, наберите format long и
снова выведите U.
(Ь) Постройте Н12 и ее L{/-разложение. Рассмотрите матрицу U, используя
format long. □
Упражнение 2.6.6. Пусть z обозначает вектор, все элементы которого явля-
ются единицами (используйте MATLAB: z = ones (n, 1)), и пусть b = Hnz,
где Hn — снова п х «-матрица Гильберта. Если теперь мы решим систему
Нпх- b относительно х, то должны принять z в качестве теоретического реше-
ния. С помощью MATLAB’a (xhat = A\b) решите систему Нпх = b для
п = 4, 8, 12 и 16 и посмотрите, что получится. Для каждого случая вычислите
число обусловленности к2(Нп) и норму разницы || х - z ||2, где х - найденное ре-
шение. Вычислите также невязку г = Ь- Нпх. □
Упражнение 2.6.7. Предыдущее упражнение несколько преувеличивает труд-
ности работы с матрицами Гильберта. Мы видели, что уже при п = 12 получается
плохое решение (для IEEE-арифметики двойной точности). На самом деле ка-
чество решения зависит не только от матрицы, но и от вектора b . В большинст-
ве случаев выбор b и близко не дает таких плохих результатов, какие мы только
что видели. Выполните следующие вычисления при п = 12. Используйте всюду
двойную точность (автоматически поддерживаемую MATLAB’om).
(а) Пусть, как и выше, z обозначает вектор из единиц. Решите систему
Н{2у = z относительно у. Обратите внимание, что || у || имеет большую величину.
(Ь) Определите вектор b как b = Нх2у. В принципе, b должно совпадать с г,
но из-за ошибок округления будет немного отличаться от него. Вычислите b
И И - Z ||2.
(с) Теперь рассмотрим систему Нх2х = Ь. Для так определенного b решение х
должно совпадать с у. Однако опыт решения предыдущих задач подсказывает,
что вычисленное решение х может сильно отличаться от у. Приступайте к ре-
шению Hl2x = b и сравните вычисленный х с у. Заметьте, что они совпадают в
двух десятичных знаках. Это не так уж и плохо в сравнении с результатом пре-
дыдущей задачи. Найдите относительную ошибку || х - у ||2/1| у ||2.
(d) Вычислите норму невязки г = b - Н{2х и используйте ее и число обу-
словленности для вычисления верхней границы относительной ошибки (тео-
172
Глава 2. Чувствительность линейных систем; влияние ошибок округления
рема 2.4.1). Заметьте, что эта граница выглядит слишком пессимистической в
сравнении с истинным значением относительной ошибки. □
Другим семейством плохо обусловленных матриц являются матрицы
Лоткина. п х «-матрица Лоткина отличается от матрицы Гильберта Нп
лишь тем, что ее первая строка целиком состоит из единиц. Эти несим-
метричные матрицы так же плохо обусловлены, как и матрицы Гильбер-
та.Чтобы MATLAB выдал вам 6 х 6-матрицу Лоткина, наберите А =
gallery('lotkin6). Дополнительную информацию о наборе тест-
матриц Хигема можно получить, выполнив help gallery, а о матрицах
Лоткина, набрав private/lotkin.
Упражнение 2.6.8. Заново выполните следующие упражнения, заменив мат-
рицы Гильберта на матрицы Лоткина: (а) упражнение 2.6.5, (Ь) упражнение
2.6.6, (с)упражнение 2.6.7. □
Почему надо избегать главных элементов малой величины
В разд. 1.8 мы ввели методику частичного выбора главных элементов, в ко-
торой на Л-м шаге выбирается наибольший по модулю потенциально ведущий
элемент Л-го столбца. Обосновывалось это тем, что мы хотим избежать ис-
пользования в качестве главных элементов небольших чисел, способных лишь
увеличить ошибки округления предыдущих шагов. С тех пор мы узнали кое-
что о потерях значимости и плохо обусловленных матрицах и можем сделать
более общие утверждения. Мы хотим избежать использования малых главных
элементов, поскольку они могли стать таковыми в результате потери значимо-
сти на предыдущих шагах и поэтому очень неточными. Опасность использова-
ния неточных главных элементов была рассмотрена в первой части данного
раздела в связи с плохой обусловленностью.
В следующем примере мы рассмотрим несколько другой подход. Мы пока-
жем, как можно получить плохие результаты, используя малый главный эле-
мент вместо имеющихся больших. В этом случае главный элемент не является
неточным — вычисления дают неверный результат лишь потому, что он не-
большой.
Пример 2.6.9. Рассмотрим линейную систему
.002 1.231
1.196 3.165
1.475 4.271
2.4711 Г х1
2.543 х2
2.142J |_х3
3.704
6.904
7.888
(2.6.10)
Эта система хорошо обусловлена (к2(А) » 30), и мы увидим, что ее можно
решить точно, используя гауссово исключение с частичным выбором главного
элемента. Но сначала рассмотрим, что произойдет, если применить гауссово
исключение без перестановок. Мы увидим, что использование очень малого
элемента (1,1) в качестве ведущего рушит все расчеты. Вычисления будут про-
водиться с использованием четырехразрядной арифметики с плавающей точ-
кой. Рассматривайте числа в (2.6.10) как точные. Легко проверить, что точное
2.6. Распространение ошибок округления при исключении Гаусса 173
решение естьх= [1 1 1]г. Ошибки округления, которые вы собираетесь наблю-
дать, порождены не неточностью малого ведущего элемента (Он точен!), а
лишь малостью его величины.
Множители первого шага суть
/21 - 1.196/.002 = 598.0 и /31 = 1.475/.002 = 737.5. (2.6.11)
Первая строка, умноженная на них, вычитается из второй и третьей соот-
ветственно. Например, элемент (2,2) преобразуется следующем образом: 3.165
заменяется на
3.165 - (598.0)(1.231) = 3.165 - 736.1 = -732.9. (2.6.12)
Эти выражения не точны: использовалась четырехразрядная арифметика.
Заметьте, что полученный элемент намного больше заменяемого и что послед-
ние две цифры в 3.165 теряются (округляются), когда к нему добавляется (т.е.
вычитается) большое число. Этот вид потери информации называется погло-
щением. Небольшое число поглощается большим. Вы обнаружите, что погло-
щение происходит и при модификации элементов (2,3), (3,2) и (3,3). На самом
деле в позициях (2,3) и (3,3) поглощаются три цифры. После первого шага мо-
дифицированная матрица коэффициентов имеет вид
.002 1.231 2.471
59&0 I -732.9 -1475
737.5 -903.6 -1820
На втором шаге гауссово исключение применяется к подматрице
-732.9 -1475.
-903.6 -1820.
Поскольку она получена вычитанием строки [1.231 2.471], умноженной на
очень большие множители из небольших чисел, ранее находившихся в этих
строках, то две строки матрицы А почти точно являются кратными [1.231 2.471].
Таким образом, строки матрицы А почти линейно зависимы, т.е. А плохо обу-
словлена. Можно легко проверить, что к2(А) « 6400, а это очень много, учиты-
вая, что использовалась четырехразрядная арифметика.
Множителем второго шага является /32 = (—903.6)/(—732.9) = 1.233.Он ис-
пользуется лишь при модификации элемента (3,3) следующим образом:
-1820. - (1.233)(-1475.) = -1820. + 1819. = -1.000.
Здесь происходит сильная потеря значимости. Это просто попытка восста-
новить информацию, потерянную при поглощении на предыдущем шаге.
174
Глава 2. Чувствительность линейных систем; влияние ошибок округления
К сожалению, информация пропала и поэтому результат -1.000 неточен.
К концу второго шага завершается L{/-разложение:
.002 1231 2.471
598.0 I -732.9 -1475
7375 1233 | -1.000
Прямая подстановка дает
у, = 3.704,
у2 = 6.904 - (598.0)(3.704) = 6.904 - 2215. = -2208,
Уз = 7.888 - (737.5)(3.704) - (1.233)(-2208.) =
= 7.888 - 2732. + 2722. = -2724,+ 2722. = -2.000.
Заметьте, что посление три цифры в 6.904 были поглощены при вычисле-
нии у2> а сильная потеря значимости произошла при вычислении у3. Таким об-
разом, Уз неточен.
Первый шаг обратной подстановки дает
^ = -2ПОО=2 000
и33 -1.000
Отношение двух неточных чисел х3 также неточно. Вспомните, что пра-
вильным значением является 1.000. Вы можете завершить процесс обратной
подстановки и обнаружите, что найденное решение есть [4.000, -1.012, 2.000]г,
что не имеет ничего общего с верным решением.
Давайте в общих чертах (и эврестически!) подытожим, что у нас получалось
неправильно. Используя как главный элемент, много меньший других канди-
датов в главные элементы, мы получаем большие по величине множители. Из-
за этого из расположенных ниже строк будет вычитаться ведущая строка, ум-
ноженная на очень большие числа. По ходу дела числа, расположенные в этих
строках, будут поглощаться. В результате подматрица, с которой мы будем
иметь дело на следующем шаге, будет плохо обусловленной, поскольку каждая
из ее строк будет почти кратна ведущей строке. Ввиду плохой обусловленно-
сти на последующих шагах произойдет потеря значимости. Эта потеря значи-
мости на самом деле является попыткой восстановить информацию, потерян-
ную из-за поглощения, но эта информация пропала навсегда.
Теперь давайте посмотрим, что происходит, когда (2.6.10) решается с ис-
пользованием частичного выбора главного элемента. Переставляя строки 1 и
3, получаем систему
1.475
1J 96
.002
4271
3.165
1231
2J42 %!
2543
2.471
х2
Х3
7.888
6.904 .
3.704
2 7. Обратный анализ ошибок для метода исключения Гаусса
175
После первого шага частично редуцированная матрица приобретает вид
1.475 4.271 2.142
£108 -.2980 .8060
1.356 х 10-3 1.225 2.468
Проводя эти вычисления, вы видите, что информация в позициях (2,2),
(2,3), (3,2) и (3,3) не поглощается. Происходит, однако, некоторая потеря зна-
чимости в позициях (2,2) и (2,3). Стратегия частичного выбора главного эле-
мента требует от нас перестановки строк 2 и 3. Этим обходится использование
слегка неточного числа -.2980 в качестве ведущего элемента. После шага 2 LU-
разложение завершается:
1.475 4.271 2.142
1.356 х10”3 1.225 2.468
.8108 -.2433 | L407
Прямая подстановка дает у = [7.888, 3.693, 1.407]г, а в результате обратной
подстановки получаем
х =
’1.000‘
1.000 .
1.000
Это просто удачное стечение обстоятельств, что полученное решение точно
совпадает с истинным решением, но то, что вычисления дали правильный ре-
зультат - не просто счастливая случайность. Точность гарантирована хорошей
обусловленностью матрицы коэффициентов и теоремой 2.7.14. □
Упражнение 2.6.13. Внимательно проработайте детали вычислений, выпол-
ненных в примере 2.6.9. □
2.7. Обратный анализ ошибок для метода
исключения Гаусса
Основной операцией во многих алгоритмах, включая исключение Гаусса,
является накопление сумм
п
>1
Существует много способов сложения п чисел. Например, если мы
имеем четыре числа, то можно сложить их «естественным» образом: сна-
176
Глава 2. Чувствительность линейных систем; влияние ошибок округления
чала к прибавляем w2, затем к этому и, наконец, w4, т.е. вычислить
((w, + w2) + w3) + w4, или же можно выполнить это суммирование, предва-
рительно переупорядочив ..., w4. Другая возможность - сложить с w2
и w3 с w4, а затем сложить промежуточные суммы, т.е. вычислять (Wj + w2) +
+ (w3 + w4).
Если мы выполняем суммирования различными способами, исполь-
зуя арифметику с плавающей точкой, то из-за различных тогда ошибок
округления получатся разные результаты. Относительные различия
сами по себе невелики, но они становятся большими, если в конце мы
сталкиваемся с взаимным сокращением, дающим в результате «почти»
нуль.
Наша первая цель — показать, что если сумма накапливается в ариф-
метике с плавающей точкой, то вычисления всегда обладают обратной
устойчивостью, независимо от способа вычисления суммы. Как и преж-
де, будем предпологать, что и — единичная ошибка округления. Будем
использовать запись О(и2) для обозначения членов порядка и2. Этими не-
большими членами можно пренебречь. Например, (1 + aj)(l + a2) =
= (1 + Р), где Р = cq + a2 + ata2. Если | aj » и и | а2| ® и, то а{а2 = О(м2) и
можно записать р = cq + a2 + О(и2).
п
Утверждение 2.7.1. Пусть сумма вычисляется в арифметике с плаваю-
/=1
щей точкой, имеющей единичную ошибку округления и. Тогда
( п А п
где | yj < (n - 1)м + O(u2) независимо от порядка суммирования членов.
Доказательство. Доказательство проведем по индукции. Истинность ут-
верждения тривиальна при п = 1. Пусть теперь целое т > 1. Покажем, что ут-
верждение выполняется для п = т в предположении, что оно выполняется
при п < т, т.е. для всех сумм с менее чем т членами.
т
Предположим, что в наших вычислениях мы достигли точки, когда
/=1
необходимо выполнить очередное сложение. В этот момент нам нужно сло-
жить две суммы, одна из которых, скажем, сумма к членов wy, а другая -
сумма оставшихся т - к членов. Может оказаться, что к = 1 или к = т - 1.
В любом случае 1 < к < т - 1. Для удобства обозначений, перенумеруем
члены так, чтобы членами первой суммы были ... , wk. Тогда две наши
суммы суть
к т
Ywjи 1LWJ-
>1 j=k+\
2.7. Обратный анализ ошибок для метода исключения Гаусса
177
Поскольку каждая из этих сумм содержит менее т членов, имеем, по пред-
положению индукции,
где
| ау | <
(>и-£-1)и + О(и
2)
при j = 1,..., к,
приj = к +1,т,
независимо от порядка суммирования каждой из них. Так как t - 1 < m - 2 и
т-к-1<т-2, имеем
| | < (т - 2)и + О(и2) для j = 1, ..., т.
Складывая обе суммы вместе, получаем
f т
п iwj
= о я Ywj +я
т
iwj
r к
£w/l + ay) +
V=‘
m \ m
£>,.(l + a,.) h+P) = £>/l + a,.)(l+p).
j=k+\ J >1
Здесь p, ошибка округления текущего сложения, удовлетворяет неравен-
ству | р | < и в соответствии с (2.5.3). Пусть уу = ау + р + ауР, так что (1 + уу) =
= (1 + ау)(1 + р). Тогда
| уу| < | ау| + | р | + О(и2) < (т - 2)и + О(и2) + и + О(и2) = (т - l)u + Oiu2).
Таким образом, мы показали, что
т
=
J=1
где | уу | < (т - 1 )и + О^и2). Это завершает доказательство. □
Числа уу в утверждении 2.7.1 называются обратными относительными
ошибками. Имеется по крайней мере три причины, по которым неравенство
| уу | < (n - 1)н + О^и2) завышает оценку | уу|. Прежде всего, множитель п - 1 го-
ворит о том, что каждое слагаемое содержит до п - 1 сложений и поэтому
178
Глава 2. Чувствительность линейных систем; влияние ошибок округления
подвержено до п - 1 ошибкам округления. Значение у7 приблизительно равно
сумме всех ошибок округления, совершаемых при суммировании членов, со-
держащих (вспомните, что уу « ау + Р). Точное число ошибок округления,
совершенных при вычислении каждого члена, зависит от способа суммиро-
вания и, в среднем, много меньше п - 1. (Вы можете убедиться в этом, вы-
полнив упражнение 2.7.24.) Таким образом, большинство уу содержит оши-
бок округления числом много меньшим п - 1.
Во вторых, и есть верхняя граница каждой из ошибок округления. Обычно
погрешность при округлении существенно меньше и, И наконец, самое важ-
ное: когда ошибки округления объединяются вместе, они иногда усиливают
одна другую, а иногда они частично погашают друг друга. Границы, подобные
| уу| < (п - 1)и + Otu2), берут в расчет самый худший возможный (и менее веро-
ятный) случай, когда ошибки округление наиболее велики и усиливают одна
другую.
Поэтому скорее всего уу намного ближе к и, чем к (п - 1)м, так что на прак-
тике множитель (п - 1) можно опустить. Тем самым утверждение 2.7.1 можно
считать доказательством того, что накопление сумм обладает обратной устой-
чивостью независимо от величины п.
Обратная устойчивость прямой и обратной подстановок
Пусть G — невырожденная нижняя треугольная матрица и b — отличный от
нуля вектор. Тогда прямой подстановкой можно решить систему Gy = b, затра-
тив п2 флопов. Наша следующая теорема показывает, что прямая подстановка
обладает обратной устойчивостью. Сначала введем некоторые упрощающие
обозначения. Для данной п х ди-матрицы (или, в частности, вектора) С, у кото-
рой элемент (ij) есть су, определим |С|, абсолютное значение С, как п х ди-мат-
рицу, (д,/)-элементом которой является | cj. Кроме того, для двух данных пхт-
матриц С и F будем писать С < F тогда и только тогда, когда су < fy при всех
i и J. С этими двумя новыми определениями можно теперь сформулировать
следующее утверждение.
Теорема 2.7.2. Пусть G — невырожденная нижняя треугольная матрица и
пусть b *0. Если система Gy = b решается с помощью некоторой разновидности
прямой подстановки, использущей арифметику с плавающей точкой, то для полу-
ченного решения у
(G + 8G)y = Ь, (2.7.3)
где
| 5G | < 2пи | G| + О(и2). (2.7.4)
Это неравенство означает, что | SgJ < 2пи |gj + О(и2) при всех i и j. Таким
образом, член О(и2) в (2.7.4) заменяет ихи-матрицу, каждый элемент которой
имеет порядок и2.
2,7. Обратный анализ ошибок, для метода исключения Гаусса
179
Это не самый точный возможный результат. Более тонкую аргументацию,
позволяющую избавиться от множителя 2, можно найти в [41].
Доказательство. По известным yh ... , yt _ t можно найти
/-1
На практике мы используем вычисленные у15 ...» у, -1 и продолжаем делать
ошибки округления, так что
Числитель является суммой i членов, но прежде чем начать сложения, нуж-
но выполнить умножения. Имеем fl(g^yy) = ^уу(1 + а/У), где | а,у| < и согласно
(2.5.3). Получив произведения, можно начать накопление числителя. Различ-
ные варианты прямой подстановки делают это различными способами. По-
скольку это сумма i членов, то, согласно утверждению 2.7.1, независимо от
способа суммирования
fl bi -X^M1+av) = + ь) - Е&ли + “«х1 + У/Д»
где | yj < О - 1)м + 0(и2) при j = 1,..., i. Вычислив числитель, делением получим
у., что приведет к дополнительным ошибкам округления:
(2.7.5)
где | р.| < и.
Нашей целью является завершающий результат (2.7.3), в котором все
ошибки отнесены в G, а не, например, в Ь. Для этого делим числитель и знаме-
натель в (2.7.5) на (1 + у,7)(1 +а,), чтобы избавиться от содержащих ошибки
членов, кратных Ь,. Если определить е /Утак, чтобы
1 + £ О <
(1 + а,7)(1 + уу)
1 + У.7
1
(1 + у/()(1+р,)’
если /</,
если j = z,
(2.7.6)
180
Глава 2. Чувствительность линейных систем; влияние ошибок округления
то получим
7=1
Последнее выражение можно переписать как
+ £,У)Я = bf.
7=1
Поскольку эти равенства выполняются при всех /, их можно записать в
виде одного матричного выражения
(G + §G)y = Ь,
где 8G — нижняя треугольная матрица, определенная как 8gy = при i > j.
Для завершения доказательства достаточно показать, что | ej < 2пи + О(и2) при
всех i и у.
Возвращаясь обратно к (2.7.6), мы видим, что необходимо рассмотреть
множитель 1/(1 + у„). Поскольку у/7 = О(и), имеем
—1— = 1 _ у.. + у2 _ уЗ + ... = 1 - у.. 4- О(и2).
1+Y.7
Отсюда при j < i
1 + е,у = (1 + а,у)(1 + у,у)(1 - у„ + О(и2)) = 1 + а,у + у,у - у„- + О(и2)
И
| £,у | < | а,у| + | у/у | + | у,7| + О(«2) < и + (z - l)zz + (z - l)zz + О(и2) =
= (2Z - 1)и + О(и2) < 2пи + О(и2).
Проводя аналогичный анализ, получим, что | £ „ | < iu + О(и2) < 2пи + О(и2). □
Упражнение 2.7.8. Проверьте, что (2.7.7) выполняется при i = 1. □
Следствие 2.7.9. В предположениях теоремы 2.7.2 для вычисленного решения у
выполняется равенство
(G + 8G)y = b,
где
|| 8G IL < 2пи || G IL + О(и2). (2.7.10)
Доказательство. Оценка (2.7.10) прямо следует из (2.7.4) в силу результатов
упражнении 2.7.11. □
2.7. Обратный анализ ошибок для метода исключения Гаусса 181
Упражнение 2.7.11.
(а) Покажите, что если | С | < | F| (поэлементно), то || С Ц*, < ||
(Ь) Покажите, что || С < || | С | L □
Свойства, установленные в упражнении 2.7.11, выполняются и для матрич-
ной 1-нормы и нормы Фробениуса. Следствие 2.7.9 справедливо для любой
нормы, удовлетворяющей этим свойствам.
Мы уже отмечали, что множитель 2 в неравенствах (2.7.4) и (2.7.10) можно
опустить. Множитель п также можно не учитывать, как это было сделано в ут-
верждении 2.7.1.
Следствие 2.7.9 показывает, что прямая подстановка обратно устойчива по
норме, т.е. полученное решение у является точным решением близкой задачи
(G + 8б)у = Ь, где || SG || /1| G Ц* мало. Но теорема 2.7.2 - это более строгий ре-
зультат. Она устанавливает не только то, что ||8G|| мало относительно ||G||, но и
то, что каждый элемент возмущения 6g0 мал относительно^ — элемента, кото-
рый возмущается. Это свойство называется покомпонентной обратной
устойчивостью.
Упражнение 2.7.12. Придумайте пример 2 х 2-матриц G и 6G таких, что
|| 8G Ноо /1| GIL мало, но | 8gJ /1 gj не является малым хотя бы для одной компо-
ненты (/,/). □
Теоремы, очень сходные с теоремой 2.7.2 и следствием 2.7.9, справедливы и
для обратной подстановки, применяемой к верхней треугольной системе. Нет
необходимости формулировать здесь эти результаты.
Обратная погрешность гауссова исключения
Метод исключения Гаусса иногда обладает обратной устойчивочтью, ино-
гда - нет: все зависит от обстоятельств. Основными результатами здесь явля-
ются следующие две теоремы о гауссовом исключении без выбора главного
элемента. Тем не менее, обе эти теоремы приложимы и к исключению Гаусса с
перестановкой строк и столбцов, поскольку этот случай эквивалентен методу
Гаусса без перестановок, применяемому к матрице с заранее переставленными
строками и столбцами. Поэтому наши результаты приложимы к гауссовому
исключению с частичным выбором главного элемента, с полным его выбором
или с любой другой стратегией выбора главного элемента.
Теорема 2.7.13. Пусть LU-разложение матрицы А находится гауссовым ис-
ключением в арифметике с плавающей точкой и при этом в процессе выбора глав-
ного элемента не встречается ни одного нулевого. Пусть L и U суть найденные
множители. Тогда
А + Е= LU,
где
| Е | < 2пи | L | | U | + <9(и2)
и
||£||^ 2ли Hit II и ||„ + О(и2).
182
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Теорема 2.7.14. Пусть в условиях теоремы 2.7.13 в арифметике с плавающей
точкой численно решается система Ах = Ь путем прямой подстановки с помощью
L, а затем обратной подстановки с помощью U. Тогда для полученного решения х
(А + 8Л)х = Ь,
где
| 8Л | < 6пи| L | | U | + О(и2)
и
II 8Л ||* < 6пи\\ L ||* || ||* + О(и2).
Мы отложим доказательство этих результатов, пока не обсудим их смысл1.
Взглянув на любую из этих теорем, видим, что обратная устойчивость гаус-
сова исключения или ее отсутствие зависит от того, насколько велики L или U.
Если || L || U ||* отличается от || А ||* лишь множителем умеренной величины,
то и || 8Л Ц*/ || А ||* отличается от единичной ошибки округления на множитель
небольшой величины и рассматриваемая операция оказывается обратно ус-
тойчивой. (Как и прежде, мы опускаем множитель п.) Если, с другой стороны,
|| L 11*11 U II* намного больше || А ||*, то мы уже не можем этого утверждать. В
этом случае вычисления скорее всего не будут обратно устойчивыми.
Рассмотрим сначала гауссово исключение без выбора главного элемента.
Использование небольших главных элементов может привести к появлению
больших множителей, образующих матрицу L. Эти большие множители при-
водят к тому, что большие кратные некоторых строк складываются с другими
строками, отчего || U ||* также становится большой. Этот эффект можно видеть
в упражнении 2.6.9. Там мы показали, что использование без должной необхо-
димости небольших главных элементов ухудшает точность метода исключения
Гаусса. Просмотрите также упражнение 2.7.25. Мы приходим к заключению,
что гауссово исключение без выбора главного элемента неустойчиво.
Теперь рассмотрим частичный выбор главного элемента. Это гарантирует,
что все множители /упо модулю не превосходят 1 и не позволяют норме L
стать слишком большой. В действительности || L ||* < п. Таким образом, чтобы
убедиться в обратной устойчивости, достаточно показать, что || U ||*/ || А ||* не
может быть слишком большим. К сожалению, существуют матрицы, для кото-
рых || U ||*/ || А ||* « 2п~ Пример приведен в упражнении 2.7.26. Поскольку 2"'1
чересчур велико даже при скромных значениях п (например, 2"-1 > 1029 при
п = 100), мы не можем утверждать, что гауссово исключение с частичным вы-
бором главного элемента всегда будет обратно устойчивым, за исключением
лишь совсем небольших п.
Несмотря на это неприятное обстоятельство, частичный выбор главного
элемента широко используется сейчас и останется таковым в дальнейшем.
1 Эти теоремы приводятся в том виде, в котором они будут доказаны. Это не самые хорошие ре-
зультаты: множитель 2 можно исключить в каждом из неравенств.
2.7. Обратный анализ ошибок для метода исключения Гаусса
183
Например, это основной метод решения систем Ах = b в MATLAB’e и
ЬАРАСК’е.Годы работы и проверок показали, что такое быстрое возрастание
элементов матрицы, как в упражнения 2.7.26, на практике встречается очень
редко. Обычно бывает, что
ни.
Поэтому с точки зрения практики гауссово исключение с частичным выбо-
ром главного элемента рассматривается как устойчивый алгоритм, заслужи-
вающий доверия.
Статистическое обоснование хорошего поведения частичного выбора глав-
ного элемента дано Трефетеном и Бау [71]. См. также упражнение 2.7.27.
Поскольку частичный выбор главного элемента иногда работает плохо, же-
лательно иметь способ проверки получаемых результатов. Такие тесты дейст-
вительно существуют. Один из способов заключается просто в вычислении
отношения
II L II JI f/ ||„/ II A IU.
Если оно не слишком велико, то вычисления обратно устойчивы. Еще про-
ще после определения х вычислить невязку г = Ь- Ах. Как мы ранее отмечали,
Ах= b + ЗА, где 8Ь = -г. (См. также упражнение 2.5.6.) Таким образом, малая
величина невязки говорит об обратной устойчивости.
Другой тест состоит просто в вычислении обратной ошибки в L ^-разложе-
нии: E=LU -А. Если величина ||£|| мала, то расчеты были обратно устойчивы.
Однако такая проверка обходится дорого.На вычисление LU затрачивается
О(п3) флопов, даже если учитывается, что эти матрицы имеют треугольную
форму (упражнение 2.7.28).
Пример 2.7.15. Пользуясь MATLAB’om, найдем ZtZ-разложение (с частич-
ным выбором главного элемента) 12 х 12-матрицы Гильберта (А =
hilb(12); [L,U] = lu (А) ;), а затем вычислим Е = LU-А. Находим, что
II £ IL/ IIA IL « 2.7 X 10-17. К тому же || L L « 5.6, || U L « 3.1 и || L L || U || /1| А ||„ «
5.6, так что в данном случае алгоритм устойчив, а плохие результаты упражне-
ния 2.6.7 и (особенно) 2.6.6 целиком обязаны плохой обусловленности матри-
цы Гильберта, а неустойчивости алгоритма. В этих упражнениях вы вычисли-
ли невязки и нашли, что они малы. Это также указывает на обратную устойчи-
вость. □
Упражнение 2.7.16.
(а) Выполните расчеты, указанные в примере 2.7.15, для гильбертовых мат-
риц порядка 12, 24 и 48. Отметьте, что в каждом из этих случаев наблюдается
устойчивость.
(Ь) Выполните п. (а) для матриц Лоткина (А = gallery ('lotkin', n)). □
Полный выбор главного элемента лучше частичного выбора. Такой поря-
док роста элементов, как при частичном выборе в упражнении 2.7.26, при
184
Глава 2. Чувствительность линейных систем; влияние ошибок округления
полном выборе невозможен. В самом плохом известном случае было
|| U || / || А || = О(п). Также выполняется || L Ц*, < л, как и при частичном выборе
главного элемента.Таким образом, метод исключения Гаусса с полным выбо-
ром главного элемента может рассматриваться как обратно устойчивый
алгоритм.
Несмотря на теоретическое преимущество полного выбора главного эле-
мента над частичным, последний имеет более широкое применение. Объясне-
ние простое: 1) частичный выбор главного элемента хорошо работает на прак-
тике и к тому же намного дешевле; 2) существуют недорогие способы апосте-
риорной проверки его устойчивости.
Теорема 2.7.14 важна при работе гауссова исключения с разреженными
матрицами. Здесь возникает конфликтная ситуация: хочется не только выпол-
нить исключение устойчивым методом, но и сохранять заполненность матри-
цы на самом низком уровне. Поэтому иногда приходится выбирать не самые
большие главные элементы. Устойчивость разложения можно контролиро-
вать, проверяя величину элементов L и U по мере их получения.
Для симметричных положительно определенных систем результаты, по-
добные теореме 2.7.14, имеют силу для метода Холесского с заменой L и U на
RT и R соответственно. Можно также показать, что значение || ЯГ|Н1 R LHe мо-
жет стать большим относительно || A ||F. Следовательно, метод Холесского без-
условно обратно устойчив. Детали можно найти в упражнении 2.7.29.
В итоге гауссово исключение с частичным или полным выбором ведуще-
го элемента и метод Холесского для положительно определенных систем на
практике оказываются устойчивыми. Для частичного выбора этот вывод
обоснован многолетним опытом, для метода Холесского это твердо установ-
ленный факт. Множитель п, присутствующий в теоремах, сильно переоце-
нен и поэтому может быть опущен. На практике мы находим решение х,
удовлетворяющее системе (А + 8Л)х = Ь, где || 8Л || / || А || » Си, причем С яв-
ляется небольшим множителем порядка 1. Таким образом, общее воздейст-
вие ошибок округления не намного превышает исходные погрешности ок-
ругления при задании Л. Эти рассмотрения приводят к полезному правилу
большого пальца.
Правило большого пальца 2.7.17. Пусть линейная система Ах - b решается
методом исключения Гаусса с частичным выбором главного элемента (или мето-
дом Холесского для положительно определенного случая). Если элементы в А и b
заданы с точностью s десятичных цифр и к(А) « 10х, где t<s, то у элементов вы-
численного решения будет примерно s - t правильных десятичных цифр.
«Доказательство.» Мы намеревались решить систему Ах = Ь, но полученное
решение х удовлетворяет возмущенному уравнению (А + 8Л) х = b + 8i, где 8Л
есть сумма ошибок измерения, начальных ошибок округления и погрешно-
стей вычисления, а 8Л — сумма ошибок измерения и начальных ошибок округ-
ления. Предположим, что основными являются ошибки измерения. Посколь-
ку элементы в А и Ь даны с точностью s десятичных разрядов, то
« 10- и !И » 10-.
2.7. Обратный анализ ошибок для метода исключения Гаусса
185
Готовясь применить теорему 2.3.9, заметим, что
к(Л) ~Ю' 5 « 1, так что 1 - к(Л) » 1.
\\А\\ ||Л||
Теперь теорема 2.3.9 дает грубо
||5х|| /||8Л|| ||5Й|П
IWI ( W WJ
и так как х = х + Ъх, то элементы х имеют точность s -1 десятичных цифр. □
Доказательства теорем 2.7.13 и 2.7.14
Доказательство теоремы 2.7.13. Для начала вспомним (ср. с (1.7.22) и
(1.7.24)),что если А = LU, то L и U даны формулами
;-1
Gy kj
l,j =--------—---------- для i > j
(2.7.18)
и
J-1
uij = aij “ Z l‘kUkj ДЛЯ * j-
*=i
(2.7.19)
Все версии гауссова исключения выполняют действия, указанные в (2.7.18)
и (2.7.19), но каждая из версий организует их выполнение по-своему.
Рассмотрим сначала вычисление 1У. На практике используются вычислен-
ные значения lik и ukj, что порождает новые ошибки округления. Таким обра-
зом, вычисленное lik удовлетворяет равенствам
iLJik^kJ
k=\
I “ Я >
Каждый из вариантов гауссова исключения вычисляет сумму в числителе
по-своему. Утверждение 2.7.1 показывает, что как бы это ни делалось,
а,, о+у«) - Z4«7 о+ак )о+и)
4 =-------------------------------(1+Р)-
ил
(2.7.20)
где | у/?.| < (/ - 1)м + О(и2). Величины ак и р являются ошибками округления, свя-
занными с умножением и делением соответственно и удовлетворяют неравен-
ствам | ак | < и и | р | < и.
186
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Продолжая так же, как и при доказательстве теоремы 2.7.2, делим числи-
тель и знаменатель в (2.7.20) на (1 + у^)(1 + Р), чтобы избавить от ошибок
член atj. Этот шаг не является необходимым, но делает результат более эле-
гантным. Упростим окончательное выражение, объединив ошибки. Опреде-
лим 8,* как
'(Ua‘)(ltl'«), если* <;,
1 + s« - 7Т'
------------, если к = /.
[(1 + у..)(1+Р)’
Вспоминая, что 1/(1 + у,у) = 1 - уи + у2. - yl + ..., для к < j имеем 3/А. = ак +
+ У* ~ У и + О(и2) и
I < | a J + | yik | + | уи | + О(и2) <
< и + (/ - 1)и + О(м2) + (/ - l)u + О(и2) = (2J - l)w + О(и2).
Аналогично, 8/? = -у/У - р + О(и2) и
I 5/d I Уи \ + I Р I + О(и2) < (/ - 1)м + О(и2) + и + О(и2) = ju + O(u2).
Таким образом,
| 8J < 2пи + О(м2), к = 1, ..., у.
В терминах 6ik (2.7.20) принимает вид
aij ~~ ^Jik Mfy (1 + $ ik )
I = .... ___________
>k «И1+8</)
Умножая обе части на й/1 + 8|?) и переписывая выражение так, чтобы все
члены ошибок объединились в единственный член имеем
аи + еи = (2.7.21)
к=\
при i > j (потому, что мы начали с (2.7. 18), выполняющегося только при
i >/), где
j
eij = ~^jhk^kj §ik-
к={
2.7. Обратный анализ ошибок для метода исключения Гаусса 187
Так как 18,J < 2пи + 0(иг), то при i > j
\eiJ\<2nu^\lik\\iikJ\ +О(и2). (2.7.22)
i=i
Мы получили (2.7.21) и (2.7.22) при z > j, исходя из (2.7.18). Те же результа-
ты можно получить для i < j, проведя аналогичный анализ, исходящий из
(2.7.19). Таким образом, (2.7.21) и (2.7.22) выполняются при всех / и у. Записы-
вая (2.7.21) в матричном виде, имеем
А + Е = L U.
Записывая (2.7.22) как матричное неравенство, имеем
| Е | < 2пи | L | | U | + О(«2).
Граница для ||E|L получается сразу из неравенства для | Е|, если вос-
пользоваться свойствами матричной oo-нормы, установленными в упражне-
нии 2.7.11. □
Упражнение 2.7.23. Исходя из (2.7.19), покажите, что (2.7.21) и (2.7.22) вы-
полняютсяпри i < j. □
Доказательство теоремы 2.7.14. На этапе прямой подстановки мы находим
такой у, что (£ + 8£)у = Ь, где
| 8 | < 2пи | L |
согласно теореме 2.7.2. На этапе обратной подстановки мы находим такой х,
что ([7 + 8)х = у, где
| 8 | < 2пи | U |
в соответствии с аналогом теоремы 2.7.2 для верхней треугольной матрицы.
Таким образом, х точно удовлетворяет системе
( £ + s£)(t7 + 8U)x = b.
Раскрывая скобки и используя тот факт (теорема 2.7.13), что LU =А + Е,
где | Е | < 2ли| L 11U | + О(и2), имеем
(А + 8Л)х = Ь,
где
8Л = Е + (8£) U + Z(8 U) + (8 £)(8 U).
188
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Используя верхние границы, полученные для Е, 8L и 8U, найдем, что
| 5Л | < бпи | L \ |{7 | + О(и2).
Граница для || 8А ||х сразу следует из этого неравенства.
Дополнительные упражнения
Упражнение 2.7.24. В утверждении 2.7.1 мы показали, что суммирование
обратно устойчиво и не зависит от порядка его выполнения. В обозначениях
утверждения 2.7.1 обратная ошибка уу- удовлетворяет неравенству | уу| < (п - l)w
+ О(и2). Убедитесь в этом упражнении, что для | уу| в случае двух особых поряд-
ков суммирования ^wy можно указать более точные границы.
;=|
(а) Рассмотрите сначала «очевидный» порядок, обратив его для удобства
обозначений. Покажите, что если в арифметике с плавающей точкой сумми-
рование выполняется как
(...(((wz, + wn _ ,) + wn _ 2) + ... + w2) + w,,
ju+O(u2), если j <n,
(п-1)м+О(м2), если j — n.
(Возьмите небольшие n, вроде л = 3 и и = 4, и посмотрите, что получит-
ся.)
(Ь) Теперь рассмотрите попарное суммирование. Вычислите Wj + w2, w3 + w4,
w5 + w6 и т.д. Если останется член без пары, оставьте его как есть. После этого в
вашем распоряжении будет новый набор членов, которые также можно про-
суммировать попарно. Выполняйте попарное суммирование, пока в сумме не
останется один член. Проще всего рассмотреть случай, когда п есть степень 2,
скажем, п = 2к. В скольких тогда сложениях участвует каждый член? Пред-
ставьте ваш ответ в терминах п. Покажите, что если этот процесс выполняется
в арифметике с плавающей точкой, то
| уу| < (log2 п)и + О(и2).
Это превосходный результат, так как log2 п растет много медленнее,
чем п.
Упражнение 2.7.25. В данном упражнении оцените обратную устойчивость
метода исключения Гаусса, вычисляя обратную ошибку при ЛУ-разложении:
Е = LU - А. Напишите MATLAB-программу, которая выполняет гауссово ис-
ключение без выбора главного элемента, например, так:
2.7. Обратный анализ ошибок для метода исключения Гаусса
189
А = randn(п);
L = zeros(n); U = zeros (п);
for к = 1:п
U(k,k:n) = a(k,k:n) - L(kz1:к-1)*U(1:к-1, к:п);
L(k+l:n,k) = (а(к+1:п,к) - ...
L (к+1:n, 1: к-1)*U (1: к-1, к))/U (к, к);
end
L = L + eye(n);
(а) Вычислите L(7-разложение случайных матриц (А = randn (п) ;) для
нескольких значений п (например, п = 40, 80, 160) и запомните || L Ц*, || U Ц*, и
норму обратной ошибки: || Е Ц*, = || LU- А Ц^. Для тех же самых матриц проведи-
те исключение Гаусса с частичным выбором главного элемента ([L, U] =
= lu (А) ;) и снова вычислите указанные величины. Заметьте, что частичный
выбор главного элемента уменьшает обратную ошибку и нормы матриц LnU,
но и выполнение гауссова исключения без выбора главного элемента обычно
не дает заметных ухудшений. Т.е. обычно гауссово исключение без выбора
главного элемента находит L U-разложение (случайной матрицы) более или
менее устойчиво.
(Ь) Чтобы продемонстрировать слабую сторону гауссова исключения без
выбора главного элемента, задайте матрицу, у которой по крайней мере один
главный элемент мал. Простейший способ сделать это — взять матрицу, у ко-
торой мал элемент (1,1). Проделайте описанное в п. (а), используя матрицу,
у которой элемент ап мал. Например, возьмите А = randn (n) ; А (1,1) =
= 50*eps*A(l, 1) ;. Здесь MATLAB-константа машинный эпсилон eps рав-
на 2и, удвоенной единичной ошибке округления. Для этих расчетов нет не-
обходимости в больших п. Попробуйте несколько значений п, но п = 2 уже
вполне подходит. □
Упражнение 2.7.26. Пусть Ап есть п х «-матрица, структура которой показа-
на на примере
5
1 0 0 0 1
-110 0 1
-1-11 0 1
-1 -1-111
-1 -1 -1 -1 1
Проверьте, что гауссово исключение с частичным выбором главного эле-
мента приводит Ап к верхней треугольной форме без перестановки строк и
полученная матрица U будет иметь ипп = 2”" ’. Таким образом, || U Ц»/ || А Ц» =
-Т~х/п, □
Упражнение 2.7.27. В [71] указывается, что L^/-разложение случайной мат-
рицы суть случайные матрицы. Если А = LU, то U= L[A. Устойчивость имеет
место, если || (7|| не очень сильно превосходит || А ||, и дело обстоит именно
так, если || А11| невелика. Другими словами, для неустойчивости необходимо,
190
Глава 2. Чувствительность линейных систем; влияние ошибок округления
чтобы || L~l || была большой. В данном упражнении убедитесь эксперимен-
тально, что гауссово исключение с частичным выбором главного элемента
имеет тенденцию приводить к таким матрицам, когда элементы матрицы L-1
невелики.
(а) Напишите MATLAB-программу, порождающую нижние унитреуголь-
ные матрицы с элементами между 1 и -1. Например, можно начать с единич-
ной матрицы (L - eye (п) ;) и постепенно заполнять ее нижний треуголь-
ник. Команда L (i, j ) = 2*rand-1 дает случайное число, равномерно рас-
пределенное на (-1, 1). Определите норму матрицы L1 для нескольких таких
матриц с п = 40, 80 и 1601.
(Ь) Теперь найдите НАмножители случайных «xn-матриц, выполнив
А = randn(п);
[L,U,P] = lu (A) ;
Команда MATLAB’a lu делает исключение Гаусса с частичным выбором
главного элемента. Используя ее таким образом, получаем реальную ниж-
нюю унитреугольную матрицу L, а перестановки строк собраны в матрице
перестановок Р. Вычислите || L~{ || для нескольких матриц, полученных таким
образом при п = 40, 80 и 160. Сопоставьте ваши результаты с полученными
в п. (а).
(с) Дополните вашу программу так, чтобы она вычисляла не только || L"11|,
но и || М -11|, где М получается из L обращением знаков главных элементов:
M=2I-L. □
Упражнение 2.7.28. Покажите, что если L е йяхя и U е К”™ — соответственно
полные нижняя и верхняя треугольные матрицы, то число флопов, необходи-
2
мых для вычисления произведения L U, равно ~п3. □
Упражнение 2.7.29. Здесь мы детально докажем обратную устойчивость ме-
тода Холесского. Пусть А - положительно определенная матрица и R обозна-
чает ее множитель Холесского, найденный с помощью одного из вариантов
метода Холесского в арифметике с плавающей точкой. Пусть квадратный ко-
рень вычисляется точно: П(лАу) = 4s(\ + е ), где | £ | < и.
(а) Взяв за образец доказательство теоремы 2.7.13, докажите, что А + Е=
= RTR, где
\E\<2nu\RT\\R\ + О(и2)
и
|| Е ||£ < 2пи ||Я||^ + О(и2).
1 Вводить такие матрицы в компьютер по одному элементу нельзя - тогда не хватит никакого
времени. Можно поступить следующим образом: L=2*rand (п)-1; L=tril (L,-1) +еуе (п) ;
Команда tril сформирует нижнюю треугольную матрицу из всех поддиагоналей L.Выполните
help tril. — Прим, перев.
2.8. Масштабирование
191
(b) След матрицы В е IT*" есть tr(2?) = . Используя неравенство Ко-
/=1
ши-Шварца, докажите, что | tr(B)| < Vn || В ||Р. (Обратите внимание, что равен-
ство достигается, когда В = I. В общем случае | tr(B)| ® || В ||,).
(с) Докажите, что если А + Е = RTR, то ЦЛЦ^ = 1г(Л + Е) = tr(>4) + tr(£). (Это
выполняется независимо от того, является R треугольной или нет.) Таким об-
разом, ||A||2f < л/п(|| А ||£ + || Е ||Д
(d) Подставляя последнее неравенство в неравенства п. (а), покажите, что
\\E\\F<2n^2u (|| А ||, + || £ ||,) + О(и2)
и, если 2п3/2и < 1, то
7п3/2 и
\\^\\F<-^-^-\\A\\F-,O(u2).
1-2п3/2и
Для разумных значений п и и обычно 2пу2и « 1, так что знаменатель в по-
следнем выражении почти равен 1. (Рассмотрите, например, чрезвычайно
большое значение п = 106 и единичную ошибку округления и * 10“16 при пред-
ставлении IEEE-чисел с двойной точностью.) Кроме того, множитель 2п3/2 в
числителе получен при анализе, исходящем из наихудших предположений, и
потому может быть опущен. Поэтому на практике
\\E\\f*Cu ||Л||„
где множитель С скорее сравним с 1, чем с п3/2. Таким образом, метод Холес-
ского устойчив в случае положительно определенных матриц. □
2.8. Масштабирование
В линейной системе Ах = b любое уравнение можно умножить на любую
ненулевую константу, не изменив при этом решения системы. Такая операция
называется операцией масштабирования по строкам. Подобные операции
можно применить и к столбцам матрицы А. В противоположность масштаби-
рованию по строкам операция масштабирования по столбцам меняет решение.
Упражнение 2.8.1. Покажите, что если невырожденная линейная система
Ах = b изменяется умножением ееу-го столбца на с * 0, то в решении изменит-
ся лишь j-я компонента - она будет умножена на 1 /с. □
Операции масштабирования можно рассматривать как изменение единиц
измерения: предположим, что элементы у-го столбца А суть массы, измерен-
ные в граммах, а есть ускорение, измеренное в м/с2.Умножениеу-го столбца
на 1/1000 равносильно замене единицы измерения его элементов с г на кг.
192
Глава 2. Чувствительность линейных систем; влияние ошибок округления
При этом Xj умножается на 1000, что означает замену его единицы измерения с
м/с2 на мм/с2.
Обсуждение масштабирования необходимо потому, что оно влияет на вы-
числительные свойства систе мы. Оно было отложено почти до конца главы,
поскольку в большинстве случаев масштабирование не является ни необходи-
мым, ни желательным — обычно соответствующее масштабирование опреде-
ляется физическими единицами измерения задачи. Рассмотрим, например, за-
дачу об электрической цепи из примера 1.2.6. Для линейной системы, пред-
ставленной там, все элементы матрицы коэффициентов имеют одни и те же
единицы измерения (1/Ом), все компоненты решения также имеют одинако-
вые единицы измерения (В) и все компоненты правой части выражаются в
одинаковых единицах (А). Можно так перемасштабировать эту систему, что-
бы, например, одно из неизвестных выражалось в мВ, а остальные так и оста-
лись бы в В, но этого обычно не делают без разумной причины. В большинстве
случаев лучше не менять масштабирование.
Рассмотрим несколько примеров, показывающих некоторые последствия
масштабирования.
Пример 2.8.2. Первый пример показывает, что малый главный элемент
нельзя «исправить» умножением его строки на большое число. Рассмотрим
систему
’2.000 1231. 2471.’
1.196 3.165 2.543
1.475 4.271 2.142
3704.
6.904
7.888
полученную из системы (2.6.10) примера 2.6.9 умножением первой строки на
1000. Мы использовали (2.6.10), чтобы показать разрушительные последствия
применения небольшого числа в качестве главного элемента. После умноже-
ния первой строки на 1000 элемент перестает быть малым. Он становится наи-
большим элементом в первом столбце. Посмотрим, что получится, если его
использовать в качестве главного элемента.
Используя четырехразрядную арифметику, получаем множители для пер-
вого шага
Н 96
2.000
= .5980
и /31
1.475
2.000
.7375.
Сравнивая их с (2.6.11), видим, что они уменьшились в 1000 раз. На шаге 1
элемент (2,2) изменится следующим образом:
3.165 - (. 5980)( 1231.) = 3.165 - 736.1 = -732.9.
Сравнение с (2.6.12) показывает, что несмотря на больший главный эле-
мент результат остался прежним. На этот раз число 3.165 поглощено большим
элементом 1231. Обратите внимание, что эти вычисления в основном иден-
тичны (2.6.12). Результат точно тот же самый вместе с ошибками округления.
2.8. Масштабирование
193
Можете проверить, что при преобразовании элементов (2,3), (3,2) и (3,3) по-
глощение происходит точно так же, как и прежде, да и все вычисления по су-
ществу те же самые и дают точно тот же результат. Таким образом, после пер-
вого шага матрица коэффициентов приобретает вид
2.000 1231. 2471.
.5980 -732.9 -1475
.7375 -903.6 -1820
Подматрица для второго шага,
-732.9 -1475.“
-903.6 -1820.]’
точно та же. Если мы продолжим вычисления, то получим тот же неприемле-
мый результат. На этот раз поглощение произойдет не потому, что первая
строка, умноженная на большие числа, вычиталась из других строк, а потому
что она сама по себе велика.
Как можно было предсказать эту неприятность? Рассматривая матрицу ко-
эффициентов, мы видим, что она плохо обусловлена: в строках (и столбцах)
наблюдается слишком большой разброс масштабов. Интересно, что мы имеем
два объяснения одной и той же неприятности. Для исходной системы это была
малая величина главного элемента, а после перемасштабирования — плохая
обусловленность. □
Этот пример служит иллюстрацией к интересной теореме Ф.Л.Бауэра.
Предположим что мы решаем систему Ах = b методом исключения Гаусса,
используя перестановку строк и столбцов в некотором определенном поряд-
ке. Расчеты проводятся на компьютере, работающем в арифметике с пла-
вающей точкой по основанию р. Если перемасштабировать систему умноже-
нием строк и столбцов на степени основания р и снова решить ее, пере-
ставляя строки и столбцы в том же порядке, то получится в точности то же
решение с теми же ошибками округления. Все ошибки округления на всех
шагах будут такие же, как и прежде. В нашем текущем примере р = 10: ум-
ножение первой строки на 103 не влияет на расчеты. Нетрудно доказать тео-
рему Бауэра - можете по желанию проделать это в качестве упражнения
или просто согласиться, что она верна. Приводимые далее примеры должны
помочь в этом.
Теорема Бауэра имеет интересное следствие. Если в качестве коэффициен-
тов масштабирования всегда выбирать степени р, то единственный способ по-
средством перемасшабирования повлиять на вычислительные свойства гаус-
сова исключения состоит в изменении порядка выбора ведущего элемента.
Если масштабирующие множители не являются степенями р, появляются но-
вые ошибки округления, связанные с перемасштабированием, но все равно
основным действием перемасштабирования является изменение выбора глав-
ного элемента.
7 Основы матричных вычислений
194
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Пример 2.8.3. Решим систему
.003 .2171 ГхЯ _ Г.437
.277 .138J [х2_| L-553
(2.8.4)
используя трехразрядную арифметику с плавающей точкой без перестановки
строк и столбцов. Точное решение есть х = [1, 2]т. Элемент /21 = .277/.003 =
92.3, а и22 = .138 - (92.3)(.217) = .138 - 20.0 = -19.9, так что полученное /^-раз-
ложение есть
“1 01 Г.003 .217'
92.3 1J L ° "19-9
Прямая подстановка даету] = .437 и у2 = .553 - (92.3)(.437) = .553 - 40.3 =
=-39.7. Наконец, обратная подстановка даетх2 = (-39.7)/(-19.9) = 1.99 и хх =
= [.437 - (.217)(1.99)]/(.003) = (.437 - .432)/(.003) = (.005)/(.003) = 1.67. Та-
ким образом, вычисленное решение есть вектор х = [1.67, 1.99]г, у которого
первая компонента не точна. □
Упражнение 2.8.5.
(а) Вычислите кж(А), где А — матрица коэффициентов из (2.8.4). Обратите
внимание, что А хорошо обусловлена.
(Ь) Выполните для (2.8.4) исключение Гаусса с перестановкой строк, ис-
пользуя трехразрядную десятичную арифметику с плавающей точкой, и учти-
те, что правильное решение уже получено. (Не забывайте округлять каждый
промежуточный результат до трех десятичных разрядов, прежде чем использо-
вать его в последующих вычислениях.) □
Пример 2.8.6. Теперь решим систему
.300 .2771 Г х,
21.7 .138J [х2
43.7
.553
(2.8.7)
полученную умножением первой строки (2.8.4) на 102. Тогда элемент (1,1) ста-
нет наибольшим в первом столбце. Снова будем работать в трехразрядной де-
сятичной арифметике без перестановки строк или столбцов. По теореме Бау-
эра результат будет таким же, как и в примере 2.8.3. Проверим это. Элемент
/21 = .277/.300 = .923, а и22 = .138 - (.923)(21.7) = .138 - 20.0 = -19.9, так что вы-
численное L //-разложение имеет вид
1 01 Г.300 21.7 '
.923 1] [ 0 -19.9
Прямая подстановка дает У] = 43.7 и у2 = .553 - (.923)(43.7) = .553 - 40.3 =
-39.7. Наконец, обратная подстановка дает х2 = (-39.7)/(-19.9) = 1.99 и xt =
= [43.7 - (21.7)(1.99)]/(.300) = (43.7 - 43.2)/(.300) = (.500)/(.300) = 1.67. Таким
2.8. Масштабирование
195
образом, вычисленное решение опять есть вектор х = [1.67, 1.99] Промежуточ-
ные результаты такие же, как и в упражнении 2.8.3, за исключением степени 10.П
Упражнение 2.8.8.
(а) Вычислите ^(Л), где А — матрица коэффициентов из (2.8.7). А плохо
обусловлена (относительно трехразрядной десятичной арифметики), посколь-
ку ее строки (и столбцы) не согласованы по масштабу.
(Ь) Выполните для (2.8.7) исключение Гаусса с перестановкой строк,
используя трехразрядную десятичную арифметику. Заметьте, что в соответ-
ствии с теоремой Бауэра вычисления и результаты идентичны вычислени-
ям и результатам п. (Ь) упражнения 2.8.5. Таким образом, наличие плохо
обусловленной матрицы коэффициентов не обязательно приводит к неточ-
ному результату. (Но если используется стратегия частичного выбора глав-
ного элемента, перестановка строк не будет выполнена и результат будет
плохим.) □
Упражнение 2.8.9. Решите (2.8.7) методом исключения Гаусса с перестанов-
кой столбцов, используя трехразрядную десятичную арифметику. Это вариант
с полным выбором ведущего элемента. Отметьте, что получен хороший ре-
зультат. □
Пример 2.8.10. Решим теперь систему
“.300 .217 "1 Гх1
.277 .00138J [_х2
которая получена из (2.8.7) умножением второго столбца на 1/100. Точное
решение равно х = [1, 200]Т. Теперь элемент (1,1) является наибольшим для
матрицы. Снова будем работать в трехразрядной десятичной арифметике без
перестановки строк или столбцов (как это делается и при частичном, и при
полном выборе главного элемента). По теореме Бауэра результат будет та-
ким же, как и в примерах 2.8.3 и 2.8.6. Элемент /21 = .277/.300 = .923, а и22 =
.00138 - (.923)(.217) = . 00138 - .200 = —.199, так что полученное 117-разло-
жение имеет вид
"43.7“
.553 ’
(2.8.11)
1 01 Г.300 .217'
.923 1J L ° --1".
Прямая подстановка даету] = 43.7 и у2 = .553 - (.923)(43.7) = .553 - 40.3 =
= -39.7. Наконец, обратная подстановка дает х2 = (-39.7)/(-.199) = 199. и Xj =
= [43.7 - (,217)(199.)]/(.ЗОО) = (43.7 - 43.2)/(.300) = (.500)/(.300) = 1.67. Таким
образом, вычисленное решение есть вектор х = [1.67, 1.99]т. Все вычисления
были такими же, как и в примерах 2.8.3 и 2.8.6.
Хотя полученное решение х = [1.67, 1.99]г имеет неверную первую компо-
ненту, его не обязательно рассматривать как плохой результат. Неточный эле-
мент много меньше точного, фактически || 8х Ц^/1| х Ц* = .005, где 8х = х - х. Это
отличный результат для трехразрядной десятичной арифметики. Небольшое
196
Глава 2. Чувствительность линейных систем; влияние ошибок округления
значение || Зх IL/ || х Ц*, гарантировано хорошей обусловленностью матрицы ко-
эффициентов и тем фактом, что вычисленные L и U не имеют больших эле-
ментов (ср. теоремы 2.7.14 и 2.3.6).
Легко представить ситуацию, в которой полученный результат х = [1.67, 199.]Т
считается приемлемым. Предположим, например, что xf и х2 представляют со-
бой значения напряжения, выраженные в одних и тех же единицах. Если важ-
на лишь разница между значениями напряжения, то все обстоит отлично, по-
скольку величина разности х2 - Xj = 197.33 отличается от истинного значения
199 лишь на один процент. □
Упражнение 2.8.12.
(а) Вычислите ^(Л), где А — матрица коэффициентов из (2.8.11).
(Ь) Выполните для (2.8.11) исключение Гаусса с перестановкой строк, ис-
пользуя трехразрядную десятичную арифметику.
(с) Выполните для (2.8.11) исключение Гаусса с перестановкой столбцов,
используя трехразрядную десятичную арифметику. □
2.9. Покомпонентный анализ чувствительности
В этой главе мы рассмотрели самый старый и самый простой подход к
анализу чувствительности, при котором все оценки проводятся по норме.
Это так называемый анализ чувствительности по норме, который сопрово-
ждается обратным анализом ошибок по норме. Этот вид анализа ошибок
оказался очень успешным, но в некоторых ситуациях более подходящим
оказывается другой вид анализа — покомпонентный анализ чувствительно-
сти. В анализе по норме ЗЛ рассматривается как малое возмущение мат-
рицы А, если мало отношение || 8Л || / || А ||. При таком подходе не обяза-
тельно все отношения | 8а,у| /1 аи\, являющиеся возмущениями компо-
нент, будут малыми.
Пример 2.9.1. Пусть
1.04 2.351 Г1.32х10'5 5.46 хЮ"6
, и 5Л =
4.26x10 6.32J [1.02х10~5 &29Х10"6
Тогда
1.0400132 2.35000546'
1.446 х 10-5 6.32000829
Имеем || ЗЛ Ц»/1| А ||и < 10 5, но из этого не следует малость 13a2i I /1 л21 |.
Очевидно, такое может произойти с любым элементом, для которого
|За,7|«||Л||. □
2,9. Покомпонентный анализ чувствительности
197
При покомпонентном анализе чувствительности возмущения считаются
небольшими, если только возмущение каждой компоненты мало относитель-
но величины этой компоненты, т.е., если
шах
мало. Поскольку часто встречаются матрицы с некоторым числом нулей, мы
предпочитаем другую формулировку, когда не появляется в знаменателе:
возмущение 8Л покомпонентно е -мало относительно А, если существует поло-
жительное е « 1 такое, что
| Зя,7| < 8 | Ojj | при i, j = 1, ..., n.
(2.9.2)
Обратите внимание, что в этом случае, если ау = 0, то и Зя/7 = 0. Таким обра-
зом, при возмущениях такого типа разреженные матрицы остаются разрежен-
ными и их структура не меняется.
Вспомните следующее обозначение, введенное нами в разд. 2.7. Если В —
матрица (или вектор), элемент (/, j) которой есть Ьу, то | В | есть матрица тех же
размеров, элементом (/,» которой является | 6/7|.Мы пишем | В | < | С |, понимая
под этим, что | Ьу\ < | cj при всех i и j. В этих обозначение перепишем условие
(2.9.2) как
| 8А | < 8 | А |.
(2.9.3)
При покомпонентном анализе чувствительности можно рассмотреть тот
же ряд вопросов, что и в анализе по норме. Например, если Ах = b и
(А + 8Л)(х + 8х) = Ь, то насколько большим может быть 8х относительно х?
Прежде чем рассмотреть этот и смежные с ним вопросы, сделаем останов-
ку, чтобы установить некоторые базисные факты о символике абсолютной
величины для матриц и матричных неравенств.
Упражнение 2.9.4.
(а) Покажите, что если А - ВС, то | А | < | В11 С |. (Это — матричное неравен-
ство.) В частности, | Ах | < | А | | х |.
(Ь) Покажите, что если у = | х |, то || у Ц» = || х Ц^. □
Если А е невырожденна, то на ее основе можно построить другие пхп-
матрицы, например, \А |, Л-1, | Л-1| и К = | Л-1| | А |. Последняя появляется, как
мы еще увидим, в различных выражениях для границ ошибок, и мы использу-
ем ее при определении нового вида числа обусловленности — числа обусловлен-
ности по Шкеелю.
skeel(H) = || Лоо = II M-’| |Л| ||х.
Теперь мы готовы доказать несколько теорем. Первая из них - это поком-
понентный аналог теоремы 2.2.4.
198
Глава 2. Чувствительность линейных систем; влияние ошибок округления
Теорема 2.9.5. Пусть А е ЯГ4" невырожденна, b е К" также отличен от нуля и
х — единственное решение системы Ах = Ь. Предположим, что х = х + 8х есть ре-
шение системы Ах = b + Si, где
| Si | < е | b |.
Тогда
| 8х | < £ | /Г1! | А | | х | (2.9.6)
< skeelfd). (2.9.7)
IWloo
Упражнение 2.9.8. Докажите теорему 2.9.5 следующим образом (или сделай-
те это по-своему):
(а) Докажите, что 18х | < | Л"1! | Si | и | i | < | Л 11 х |. Затем выведите (2.9.6).
(Ь) Выведите (2.9.7) из (2.9.6). □
Теперь рассмотрим такой покомпонентный аналог теорем 2.3.3 и 2.3.6.
Теорема 2.9.9. Пусть Л е Fx" невырожденна, b е К” также отличен от нуля
их — единственное решение системы Ах = i. Предположим, что х - х + 8х есть
решение системы (А + 8Л)х = Ь, где
| ЗЛ | < 8 | А |.
Тогда | Зх | < е | Л'1| | Л | | х | (2.9.10)
и < е зкееЦЛ). (2.9.11) ll-Mloo
Если £ зкееЦЛ) < 1, то НМ, езкееЦЛ) 9 IML 1 — е skeel( Л)
Упражнение 2.9.13. Докажите теорему 2.9.9 следующим образом (или сде-
лайте это по-своему):
(а) Докажите, что 8х < -Л-18Л х и 18х | < | Л_,| 18Л 11 х |. Затем выведите (2.9.10).
(Ь) Выведите (2.9.11) из (2.9.10).
(с) Умножьте обе части (2.9.11) на || х Ц*, воспользуйтесь неравенством
треугольника, чтобы разложить ЦхЦ^ на две части, и выведите (2.9.12), за-
помнив при этом, где вы использовали дополнительное предположение
£ зкееЦЛ) <1. □
2.9. Покомпонентный анализ чувствительности
199
Обратный покомпонентный анализ ошибок
Покомпонентный анализ чувствительности может быть объединен с обрат-
ным покомпонентным анализом устойчивости всякий раз, когда последний
дает хороший результат. Одним из примеров обратного покомпонентного ана-
лиза устойчивости, с которым мы уже встречались, является алгоритм прямой
подстановки для решения треугольных систем. Теорема 2.7.2 устанавливает,
что если мы решаем треугольную систему Gy - b прямой подстановкой, ис-
пользуя арифметику с плавающей точкой, то вычисленное решение у удовле-
творяет системе (G + 8б)у = Ь, где | 8(71 < 2пи | G | + О(м2). Это говорит о поком-
понентной обратной устойчивости, поскольку здесь утверждается, что каждая
компонента матрицы 8(7 мала относительно соответствующей компоненты
матрицы G. Практически мы имеем | 8(71 < Си | (71, где С — умеренное кратное
1. Теперь мы можем, применяя теорему 2.9.9 с £ = Си, заключить, что у точен (в
том смысле, что || ||«>/IIУIL невелико), если число обусловленности по
Шкеелю skeel((7) не является слишком большим.
Итерационное уточнение
Другим процессом, приводящим к покомпонентной обратной устойчиво-
сти, является итерационное уточнение. Это давняя процедура, которая перво-
начально использовалась для улучшения точности решений плохо обуслов-
ленных систем. Пусть х обозначает приближение к решению системы Ах = Ь, и
пусть г — соответствующая невязка: г = b - Ах. Приближение х можно полу-
чить, например, гауссовым исключением. Если мы сможем решить систему с
невязкой Az - г точно, то, как легко проверить, вектор х = х + z будет точным
решением для Ах = Ь. Если мы получили х исключением Гаусса, то можно вос-
пользоваться L (/-разложением и решить систему Az = г без особых затрат. Ко-
нечно, вычисленное решение z. будет неточным. Если А плохо обусловлена, то
решение будет далеко от точного. Тем не менее можно все же надеяться, что
х + z будет улучшением х. Если дело обстоит именно так, то, возможно, мы
улучшим решение еще больше, вычисляя невязку для х + z и повторяя про-
цесс. Фактически мы можем повторить его столько раз, сколько пожелаем.
Это дает следующий
Итерационный уточняющий алгоритм:
for £ =1, ...,т
г <-Ь-Ах
Вычислить z, приближение решения Az = г.
(Используйте ранее вычисленное LU -разложение.) (2.9.14)
X4-X + Z
if d|z||/||x|| достаточно мало), выход (успешное завершение)
Установить признак неудачного завершения.
200
Глава 2. Чувствительность линейных систем; влияние ошибок, округления
Это итерационный алгоритм потому, что число необходимых шагов или
итераций заранее не известно. Итерации прекратятся, как только поправки
станут достаточно малы. Любой итерационный алгоритм должен иметь верх-
нюю границу числа итераций, превышение которой приводит к завершению
процесса как неудачного. В (2.9.14) это число обозначено через т. Обратите
внимание, что в этой процедуре мы должны сохранять копии Л и i, которые
нужны при вычислении невязок.
Вплоть до 1980 г. считалось, что выполнение (2.9.14) не приведет к успеху,
если при вычислении невязок не используется арифметика повышенной точ-
ности. Это означает, что если мы используем арифметику с одинарной точно-
стью, то шаг г <- b - Ах должен выполняться с двойной точностью. Причина
этого в том, что при вычитании Лх из Ь происходит серьезная потеря точности.
Чем меньше становится г, тем больше потери. Цель вычислений с повышен-
ной точностью — сохранить как можно больше значащих цифр ввиду неизбеж-
ной потери точности.
Если итерационное уточнение выполняется таким образом и система не
слишком плохо обусловлена (скажем, к(А) « 1/и), то (2.9.14) действительно
сходится к истинному решению системы Ах = Ь, Поэтому итерационное
уточнение можно использовать для решения задачи с наибольшей точностью
(|| х —х || « и). Но здесь есть и возможный минус. Система, которая решается
так точно, имеет матрицу коэффициентов А и вектор правой части b именно
те, что хранятся в компьютере. Из-за ошибок измерения и машинного пред-
ставления Лий, хранящиеся в памяти, являются лишь приближениями ис-
тинных данных физической задачи, которую мы пытаемся решить. Если за-
дача плохо обусловлена, точное решение для Лх = Ь может оказаться очень
плохим приближением истинного решения задачи, которую мы действитель-
но хотим решить.
Ближе к 1980 г. стало понятно, что итерационное уточнение полезно, даже
если невязки не вычисляются с помощью арифметики с повышенной точно-
стью. Наибольшую точность (|| х - х || « и) нельзя достичь, но можно получить
некоторое повышение точности. Шкеель [61] показал, что если система не
очень плохо обусловлена и не слишком плохо масштабирована, то одного шага
уточнения достаточно, чтобы убедиться в покомпонентной обратной устойчи-
вости решения. Подробности можно найти в [41] или [61].
Покомпонентная обратная устойчивость означает, что решение удовлетво-
ряет системе (Л + 8Л )х = й, где | 8Л | < Си | Л | с не очень большим С. Это условие
можно скомбинировать с теоремой 2.9.9, чтобы получить ограничение
< Си skeel(^).
1|х||«
Это ограничение иногда оказывается значительно лучше границ, получен-
ных с помощью анализа ошибок по норме, поскольку зкее1(Л) может быть
много меньше к^А) (см. упражнение 2.9.15). Наибольшее преимущество дос-
тигается для матриц, плохо обусловленных лишь из-за плохого масштабирова-
ния строк. Число обусловленности по Шкеелю зкее1(Л) не чувствительно к
2.9. Покомпонентный анализ чувствительности
201
масштабированию строк и остается небольшим, когда число обусловленности
по норме к^(А) становится большим пропорционально недоброкачественно-
сти масштабирования.
Существуют простые способы оценки skeel(>4), которые работают на тех же
принципах, что и формулы оценки обусловленности для кх(А). См. [41].
Упражнение 2.9.15.
(а) Покажите, что для каждой невырожденной матрицы А справедливо
skeel(H) < к^А).
(Ь) Покажите, что если D - невырожденная диагональная матрица, то | DA |
= |2>||Л| и |Z)|-' = |Zr'|.
(с) Покажите, что число обусловленности по Шкеелю инвариантно отно-
сительно масштабирования строк, т.е. skeel(ZM) = зкее1(Л) для любой невыро-
жденной диагональной матрицы D.
(d) Из (а) мы знаем, что отношение к00(Л)/8кее1(Л) всегда не меньше едини-
цы. Покажите на примере, что его можно сделать произвольно большим. □
Упражнение 2.9.16.
(а) Докажите, что если А — невырожденная матрица, а А + 8Л — вырожден-
ная и | 8Л | < е | А |, то е skeel(/4) > 1 (ср. с теоремой 2.3.1).
(Ь) Докажите, что если А — невырожденная матрица и | 8Л | < £ | А |, где
£ skeel(>4) < 1, то А + 8Л невырожденная.
(с) Обдумайте соотношение между результатом п. (Ь) и теоремой 2.3.1. Ка-
кой из результатов сильнее? □
3
Задача наименьших квадратов
В этой главе мы рассмотрим задачу наименьших квадратов, которая часто
возникает в научных и технических расчетах. После описания задачи в разд.
3.1 в разд. 3.2 мы сразу начнем разработку инструментария, необходимого для
ее решения — это вращения, отражения и 0Л-разложение. В разд. 3.3 будет по-
казано, как используется 0Я-разложение при решении задачи наименьших
квадратов. В разд. 3.4 будет введена процедура ортонормирования Гра-
ма-Шмидта, показана ее связь с (^-разложением и изучены ее численные
модификации. Чтобы быстрее перейти к алгоритмам, мы отложили обсужде-
ние некоторых важных теоретических вопросов до разд. 3.5. Разд. 3.6 посвя-
щен важному вопросу корректировки £)Я-разложения после того, как строка
или столбец добавляется к матрице данных или удаляется из нее.
3.1. Дискретная задача наименьших квадратов
В научных исследованиях часто возникает задача о нахождении прямой ли-
нии, «приближающей» некоторое множество точек данных. Обычно мы имеем
довольно большое число точек (/,, у,), i = 1,..., п, полученных при проведении неко-
торого эксперимента, и часто располагаем некоторыми теоретическими соображе-
ниями, позволяющими предполагать, что эти точки должны лежать на прямой.
Поэтому желательно найти такую линейную функцию p(t) = aQ + axt, что /?(<) =yi9
i = 1, ..., п. На практике, конечно, точки отклоняются от прямой так, что нельзя
найти линейную функцию /?(/), проходящую через каждую из них. Вместо этого
мы находим линию, хорошо приближающую данные в том смысле, что ошибки
lz - P(Q I, i = 1, •••> n
делаются как можно меньше.
Обычно невозможно найти функцию р, которая одновременно минимизи-
ровала бы все отклонения | у,- - р(0 |, и поэтому мы ищем такую р, которая по-
зволила бы достичь чего-то среднего. А именно, пусть г = [гь ..., rjr обозначает
вектор невязок г, = у, - /?(/,). Мы можем решить нашу задачу, выбрав некоторую
векторную норму || . || и взяв нашу компромиссную функцию р такой, чтобы
3.1. Дискретная задача наименьших квадратов 203
|| г || была как можно меньше. Конечно, решение зависит от выбора нормы.
Например, если мы выбираем евклидову норму, то минимизируется величина
а если бы мы выбрали 1-норму или oo-норму, минимизировались бы соответ-
ственно
II г 111 = -p(ti) | и II г II. = max I yt - р(О|.
м
Задача нахождения минимизирующей функции р рассматривалась для ряда
норм, включая упомянутые выше. Но самая красивая теория базируется на
евклидовой норме, и именно ее мы рассмотрим в данной главе. Минимизация
|| г ||2 равносильна минимизации
1И11 = f>/-XOl2-
Таким образом, мы минимизируем сумму квадратов невязок. Поэтому за-
дача минимизации || г ||2 называется задачей наименьших квадратов}
Выбор 2-нормы объясняется потребностями статистики. Предположим,
что из-за погрешностей измерения у, данные не легли на прямую. Если эти
ошибки независимы и нормально распределены с нулевым средним и диспер-
сией ст2, то решением задачи наименьших квадратов является статистическая
оценка истинного решения по методу максимального правдоподобия.
Прямая линия реализует полином первой степени. Иногда удобно аппрок-
симировать данные полиномом более высокой степени. Например, данные
рис. 3.1 удобно приблизить полиномом степени 2. Если мы решили аппрокси-
оа
ол
04
оз
ол
Рис. 3.1. Данные хорошо аппроксимируются квадратным полиномом.
1 Она называется дискретной задачей наименьших квадратов, потому что аппроксимируется ко-
нечное (дискретное) множество данных (th у,). Непрерывная задача наименьших квадратов, в кото-
рой аппроксимируется континуум точек данных, будет кратко рассмотрена в разд. 3.5.
204
Глава 5. Задача наименьших квадратов
мировать наши данные полиномом степени < т - 1, то задача сводится к поис-
ку функцииp(t) = aQ + a{t + а2? + ... + такой, что
P(6)=Z, f = (3.1.1)
Поскольку число точек данных обычно велико, а степень полинома весьма
мала, будем предполагать, что п > т. В этом случае нельзя требовать, чтобы
функция р точно удовлетворяла (3.1.1), но какое-то время будем считать, что
это является нашей целью. Множество полиномов степени < т - 1 является ди-
мерным векторным пространством. Если cpt, <р2,Ф™ — базис этого простран-
ства, то любой полином р в этом пространстве может быть представлен в виде
т
p(t) = (3.1.2)
где ху х2,..., хт - некоторые однозначно определенные значения коэффициен-
тов. Самый очевидный базис есть (pt(/) = 1, ф2(/) = t, <р3(Г) = Z2,..., <pm(0 = tm~ ’, но
имеется и много других, и некоторые из них могут оказаться предпочтительнее
с вычислительной точки зрения. См. пример 4.4.15. Подставляя выражение
(3.1.2) в уравнение (3.1.1), получаем систему из п линейных уравнений с т не-
известными х., ..., х :
17 7 т
= yh i = 1, ..., п,
которые можно записать в матричной форме следующим образом:
<Pi(G) 92(G) • • 9m(G) Y >1'
91(G) 92(G) • 9m(G) Xj У1
91(G) 92(G) • •• 9m(G) X2 = Уз (3.1.3)
91(G) 92(G) ' 9m(G). *m_ Уп.
Если, как обычно бывает, п > т, то это переопределенная система', число
уравнений превосходит число неизвестных. Поэтому вряд ли можно найти х,
удовлетворяющий (3.1.3) точно. Вместо этого будем искать х, для которого
сумма квадратов невязок минимальна.
Легко представить себе дальнейшие обобщения этой задачи. Например, в
качестве функций фи ..., фш можно взять тригонометрические, экспоненциаль-
ные или функции какого-то другого типа. В общем случае рассмотрим переоп-
ределенную систему
Ах = Ь, (3.1.4)
где А е Rww, п > т и b е К". Задача наименьших квадратов для системы (3.1.4)
состоит в нахождении х е ИГ”, для которого || г ||2 минимальна, где г = b - Ах -
3.]. Дискретная задача наименьших квадратов
205
вектор невязок. С помощью ортогональных матриц, которые будут введены в
следующем разделе, мы построим алгоритм решения задачи наименьших
квадратов (3.1.4), включающей (3.1.3) как частный случай.
Упражнение 3.1.5. Рассмотрим следующие данные:
ti 1.0 1.5 2.0 2.5 3.0
yi 1.1 1.2 1.3 1.3 1.4
(а) Постройте переопределенную систему вида (3.1.3) для нахождения пря-
мой линии, аппроксимирующей эти данные. Воспользуйтесь стандартным ба-
зисом <pj(O = 1, ср2(О =
(b) Используйте MATLAB, чтобы рассчитать решение по методу наимень-
ших квадратов для системы из п. (а). Это просто. Для заданной переопреде-
ленной системы Ах - b MATLAB-команда х = А\Ь находит решение задачи
наименьших квадратов. Вспомните, что это как раз та команда, которую мы
использовали при решении на MATLAB’е системы Ах = Ь с квадратной матри-
цей методом исключения Гаусса1. Приведем несколько полезных MATLAB-
команд:
t = 1:.5:3; t = t'; s = ones(5,l); A = [s t];
Нам уже известно, что MATLAB использует гауссово исключение с час-
тичным выбором ведущего элемента в случае квадратных систем. В следую-
щих двух разделах вы узнаете, что делает MATLAB в случае переопределен-
ных систем.
(с) Используйте MATLAB-команду plot, чтобы построить график пяти
точек данных и вашей прямой из задачи наименьших квадратов. Наберите
help plot, чтобы узнать, как пользоваться командой построения графи-
ков.
(d) С помощью MATLAB’a вычислите || г ||2, норму невязки. □
Упражнение 3.1.6. Повторите упражнение 3.1.5, но на этот раз вычислите
наилучшее полиномиальное приближение по методу наименьших квадратов
степени < 2. Заметьте, что в этом сучае норма невязки меньше. Этого следова-
ло ожидать: пространство квадратных полиномов содержит пространство ли-
нейных, так что квадратичное приближение должно быть лучше или во всяком
случае не хуже приближения линейными полиномами. □
Упражнение 3.1.7. Еще раз выполните упражнение 3.1.5, но теперь вычис-
лите наилучшее полиномиальное приближение по методу наименьших квад-
ратов степени < 4. Пространство полиномов четвертого порядка имеет размер-
ность 5. Таким образом, мы имеем п = т = 5: система уже не является переоп-
ределенной. Решение интерполирует данные точно (не считая ошибок округ-
ления). Отобразите на графике точки данных и найденное решение в одной и
той же системе координат. При построении графика сделайте расстояния ме-
1 В случае квадратной матрицы А предполагалось, что она невырожденна. В переопределенном
случае предполагается, что она имеет полный ранг. Ранг будет обсужден в разд. 3.3 и следующих за
ним.
206
Глава 3. Задача наименьших квадратов
жду точками настолько малыми, чтобы кривые казались гладкими. Пример
программы:
tt = 1:.01:3;
р4 = х(1) + x(2)*tt 4- x(3)*tt.A2 4- x(4)*tt.A3 4- x(5)*tt.A4;
plot(tt,p4,'k-')
На том же графике отобразите ваши линейный и квадратный полиномы
метода наименьших квадратов из двух предыдущих упражнений. Заметьте,
что последние имеют меньше осцилляций, чем интерполирующий поли-
ном четвертой степени. Кажется, что они лучше представляют поведение
данных. □
Упражнение 3.1.8. Постройте и решите систему уравнений для наилучшей
подгонки данных упражнения 3.1.5 в пространстве, натянутом на три функции
Ф1(0 = 1, ф2(0 = в' И фз(О = еч. □
Упражнение 3.1.9. Рассмотрим следующие данные:
1 2 3
У, 1.1 1.3 1.4
(а) Постройте систему из трех уравнений с тремя неизвестными, реше-
нием которой будет однозначно определенный полином, интерполирую-
щий эти данные. (Как вы знаете, это только один из способов решить эту
задачу.)
(Ь) Решите эту систему, используя MATLAB для определения интерпо-
лянта.
(с) Постройте систему из трех уравнений с тремя неизвестными, решени-
ем которой будет однозначно определенная линейная комбинация функций
<Pi(/) = 1, <р2(0 = которая интерполирует данные.
(d) Решите эту систему, используя MATLAB, чтобы найти этот интерпо-
лянт.
(е) Постройте графики этих двух интерполянтов в одной и той же системе
координат.
□
3.2. Ортогональные матрицы, вращения и отражения
В этом разделе будут указаны эффективные средства для решения зада-
чи наименьших квадратов. Поскольку они будут интенсивно использо-
ваться в последующих главах, данная глава является самой важной во всей
книге.
Как и в первых двух главах, ограничим наше внимание вещественны-
ми векторами и матрицами. Однако вся теория может быть перенесена
и на комплексный случай, что частично и сделано в упражнениях в кон-
3.2. Ортогональные матрицы, вращения и отражения
207
це данного раздела. Результаты этих упражнений будут использованы
в гл. 5.
Начнем с определения внутреннего произведения в R". Пусть даны два век-
тора х = [хь ..., хп]Т и у = ..., уп]Г из R”. Определим внутреннее произведение
векторов х и у обозначаемое через (х, у), как
<Х, у> =
/=1
Хотя внутреннее произведение является вещественным числом, его можно
представить и в виде матричного произведения:
(х, у) = уТх = хгу.
Внутреннее произведение обладает следующими свойствами, которые лег-
ко проверить:
(х,у) = (у,х),
(oqXj + а2х2,у) = а^Хну) + а2(х2,у>,
(х,»^! + а^2> = а^х,^) + а2(х,у2),
(х,х) > 0, причем равенство выполняется,
тогда и только тогда, когда х = О,
для всех х, хр х2, у у{, у2 е R" и всех ap а2 е R.
Отметим также близкую связь между внутренним произведением и евкли-
довой нормой:
II X ||2 = у1(х,х).
Неравенство Коши-Шварца (теорема 2.1.6) можно записать короче в тер-
минах внутреннего произведения и евклидовой нормы: для любых х, у е R”
I {х,у} | < II х ||2 II у ||2. (3.2.1)
При п-2 (или 3) внутреннее произведение совпадает с известным скаляр-
ным произведением из аналитической геометрии. Вспомните, что если х и у —
два отличных от нуля вектора на плоскости и 0 — угол между ними, то
cose =.....
1МШ1г
Имеет смысл воспользоваться этой формулой, чтобы определить угол ме-
жду двумя векторами из R". Сначала отметим, что (3.2.1) гарантирует, что
208
Глава 3. Задача наименьших квадратов
отношение (х,у)/|| х ||2 || у ||2 всегда лежит между -1 и 1 и поэтому равно коси-
нусу некоторого угла. Теперь определим угол между (не равными нулю) х
и у е R" как
0 = arccos
(3.2.2)
11*1Ш12’
Если х = 0 или у = 0, положим 0 = я/2 радиан. Говорят, что два вектора х и у
ортогональны, если угол между ними равен л/2 радиан. Ясно, что х и у ортого-
нальны, тогда и только тогда, когда (х,у) = 0.
Угол между двумя векторами, скажем, в R100 столь же реален, как и
угол между двумя векторами на плоскости. На самом деле х и у порожда-
ют двумерное подпространство в R100. Это подпространство - не что
иное, как копия JR2, т.е. плоскости. Рассматриваемые в этой плоскости х
и у образуют угол между собой. Это как раз и есть угол, определенный
формулой (3.2.2).
Ортогональные матрицы
Говорят, что матрица Q е R"x" ортогональна, если QQT= I. Из этого равенст-
ва следует, что Q имеет обратную и (Z1 = QT. Поскольку матрица всегда комму-
тирует со своей обратной, имеем также QTQ = I. Для квадратных матриц равен-
ства
QQT = Л QTQ = I, QT = Q'{
эквивалентны и любое из них можно принять за определение ортогональной
матрицы.
Упражнение 3.2.3. (а) Покажите, что если Q ортогональна, то и Q-1 ортого-
нальна. (Ь) Покажите, что если Qx и Q2 ортогональны, то QXQ2 также ортого-
нальна. □
Упражнение 3.2.4. Покажите, что если Q ортогональна, то det(Q) = ±1. □
Упражнение 3.2.5 Вспомните, что матрица перестановок есть матрица, ко-
торая имеет ровно одну 1 в каждой строке и в каждом столбце, а все остальные
ее элементы равны нулю. В разд. 1.8 мы ввели матрицы перестановок для
представления перестановок строк в методе исключения Гаусса. Покажите,
что каждая матрица перестановок ортогональна. □
Теорема 3.2.6. Если Q е R"4" — ортогональная матрица, то для всех х, у е R"
(a) <Qx,Qy) = (х,у), (Ь) || Qx ||2 = || х ||2.
Доказательство, (a) (Qx,Qy) = (Qy)T(Qx) = yTQTQx = yTIx = yTx =
(b) Положите x=y в (а) и извлеките квадратный корень. □
3.2. Ортогональные матрицы, вращения и отражения
209
Часть (Ь) теоремы говорит, что Qx и х имеют одну и ту же длину. Таким об-
разом, ортогональное преобразование сохраняет длины. Комбинируя части (а) и
(Ь), мы видим, что
arccos —_ arccos ——
mm мм.
Таким образом, угол между QxnQy тот же, что и угол между х и у. Мы за-
ключаем, что ортогональное преобразование сохраняет углы.
В задаче наименьших квадратов для переопределенных систем ищется век-
тор х, для которого || b - Ах ||2 минимальна. Теорема 3.2.6, часть (Ь), показыва-
ет, что для каждой ортогональной матрицы Q || b - Ах ||2 = || Qb - QAx ||2. Следо-
вательно, решение задачи наименьших квадратов не меняется при замене АиЬ
на QA и Qb соответственно. В конечном счете, решая задачу наименьших квад-
ратов, мы ищем матрицу Q, для которой QA приобретает очень простую фор-
му, позволяющую легко определить решение задачи наименьших квадратов.
Упражнение 3.2.7. Докажите обращение части (а) теоремы 3.2.6: если Q
удовлетворяет тождеству (Qx,Qy) = (х,у) для всех х и у из R", то Q ортогональна.
(Из условия части (Ь) также следует ортогональность Q, но доказать это слож-
нее.) □
Упражнение 3.2.7. Покажите, что если Q - ортогональная матрица, то
|| С ||2 = 1, || Q-11|2 = 1 и k2(Q) = 1. Таким образом, Q отлично обусловлена относи-
тельно числа обусловленности в 2-норме. Это подтверждает, что ортогональ-
ные матрицы обладают хорошими вычислительными свойствами. □
Имеется два типа ортогональных преобразований, широко используемых в
матричных вычислениях: вращения и отражения. Наряду с операциями метода
исключения Гаусса они являются фундаментальными строительными блока-
ми матричных вычислений. Как показано в настоящем разделе, все матрич-
ные вычисления, состоящие из вращений и/или отражений, обратно устойчи-
вы по норме. Это утверждение будет обсуждаться ниже в данном разделе и уп-
ражнениях 3.2.70-3.2.73.
Начнем с более простого — введем вращения.
Вращения
Рассмотрим векторы в плоскости В2. Оператор, поворачивающий каждый
вектор плоскости на фиксированный угол и, является линейным преобразова-
нием и может быть представлен в виде матрицы. Пусть
0п
021
012
022
будет этой матрицей. Тогда Q полностью определяется своим воздействием на
ГП Го”!
два вектора
, поскольку
210
Глава 3. Задача наименьших квадратов
#и Qn 1
#12
#22 _
_#21 #22 J [Л
Так как действием матрицы Q является поворот каждого вектора плоскости
на угол и, очевидно (см. рис. 3.2), что
COS0
sin0
1
О
и
Q
-sin0
COS0
Таким образом,
#н
#21
COS0
sin0
#12 -sin0
#22 J L COS0
т.е.
cos0 -sin0
sin0 cos0
Матрица такого вида называется ротатором или вращением.
Упражнение 3.2.9. Проверьте, что любое вращение есть ортогональная мат-
рица с детерминантом, равным 1. Как выглядит обратное вращение? Какому
преобразованию оно соответствует? □
Вращения можно использовать для получения нулевых элементов в векто-
рах и матрицах. Например, если х =
*1
х2
есть вектор с элементом х2 * 0, попро-
буем найти вращение
cos0 -sin0
sin0 cos0
3.2. Ортогональные матрицы, вращения и отражения
211
такое, что у QTx вторая компонента была бы равна нулю: QTx =
рого у Здесь
для некото-
cos0 sin01 Г х{
-sin0 cos0 х2
(cos0)xl +(sin0)x2
-(sin0)xl +(cos0)x2
и результат имеет вид
тогда и только тогда, когда
хх sin 0 = х2 cos 0.
(3.2.10)
Таким образом, и можно взять равным arctgCxj/xJ или любому углу, удовле-
творяющему условию tg 0 = Хг/Хр Обратите внимание, что мы можем опреде-
лить Q, не вычисляя и: нам нужны лишь cos 0 и sin 0. Очевидно, выбор cos 0 =
Х| и sin 0 = х2 мог бы удовлетворить (3.2.10). Однако такой выбор может нару-
шить основное тригонометрическое тождество cos20 + sin20 = 1. Поэтому
возьмем
cos 0 = . и sin 0 = . .......-, (3.2.11)
д/х? +Х22 д/%? + *2
получающиеся делением на || х ||2 = д/х2 +х2. Теперь основное тригонометри-
ческое тождество удовлетворяется и имеется единственное 0 е [0, 2р], для ко-
торого (3.2.11) выполняется.
Упражнение 3.2.12. Мы только что показали, что для любого х е К2 сущест-
вует вращение Q такое, что QTx =
(а) Дайте геометрическую интерпретацию этого факта.
(Ь) Покажите, что если cos0 и sin0 заданы формулой (3.2.11), то
У=7Х12 +Х2 = II
□
Теперь посмотрим, как можно воспользоваться вращением для упрощения
матрицы
для некоторого у.
ап а12
_а21 а22
Мы видели, что существует такое вращение 0, для которого
Qr
аи
_°21
Г11
0
212
Глава 3. Задача наименьших квадратов
где гн = +021 • Определим г12 и г22 как
Г12 = qT а\2
_Г22 _ _а22
и пусть
О
Г12
Г22
Тогда QTA = R. Тем самым можно преобразовать А в верхнюю треугольную
матрицу, умножив ее на ортогональную матрицу 0Г. Как мы скоро увидим, та-
кое преобразование можно выполнить не только для 2 х 2-матриц, но и для
всех А е R"xw. Другими словами, для каждой А е существуют ортогональная
матрица Q е R”x” и верхняя треугольная матрица R е К”хл такие, что QTA = R.
Преобразования такого вида могут быть использованы при решении ли-
нейных уравнений Ах = Ь. Умножая слева на QT, преобразуем систему к эквива-
лентной QTAx = QTb или Rx = с, где с = QTb. Тогда можно получить решение
верхней треугольной системы Rx = с обратной подстановкой.
Другую полезную точку зрения получим, переписав QTA = R как
А = QR.
Это показывает, что А можно представить как произведение QR, где Q — ор-
тогональная, a R — верхняя треугольная матрицы. QR-разложение, как это на-
зывается, можно применять точно так же, как L[/-разложение, к решению ли-
нейной системы Ах = Ь. Если мы имеем 0Л-разложение матрицы А, то можем
переписать эту систему как QRx = b. Полагая с = Rx, найдем с, решая систему
Qc = b. Это не требует больших затрат: Q ортогональна и поэтому с = QTb. Те-
перь можно найти х, решая систему Rx = c обратной подстановкой. Требуемые
при этом вычисления мало отличаются от вычислений, использованных в ме-
тодах предыдущего абзаца. Таким образом, мы пришли двумя путями к одно-
му и тому же методу.
Пример 3.2.13. Воспользуемся QR-разложением, чтобы решить систему
“1 * 21Г<
j зЖ_
1
2
Сначала получим Q такую, что Qr
. Используем (3.2.11) с Xj = 1 и
х2 - I, что дает с = cos 0 = 1/72 и s = sin 0 = 1 /72. Тогда
1 1 -1
5 С
3.2. Ортогональные матрицы, вращения и отражения
213
и
R = QTA = 4=Г\
л/2 L-1
1 Г1 2
dL1 з.
1_Г2 5'
/2|_0 к
Решая систему Qc = b, имеем
с = QTb = 4=
1 HIT
-Г3"
/2 L1.
Наконец, решим Rz = с обратной подстановкой и найдем z2 = 1 и Zi = -1. □
Упражнение 3.2.14. Используя (М?-разложение, решите линейную систему
2 3 х{
5 7][х2_
12
29
□
Теперь вернемся к п х «-матрицам. Плоским вращением называется матрица
вида
t
i
с = sin 0,
-5 <— i
1
с <~j
1
1
t
J
s = sin 0.
(3.2.15)
Все незаполненные элементы равны нулю. Таким образом, плоское враще-
ние выглядит подобно единичной матрице, за исключением того, что одна
пара строк и столбцов содержит матрицу вращения. Плоские вращения широ-
ко используются в матричных вычислениях. В зависимости от контекста они
иногда называются вращениями Гивенса или вращениями Якоби) Обычно мы
будем опускать прилагательное «плоское» и говорить просто о вращениях.
Упражнение 3.2.16. Докажите, что каждое плоское вращение является орто-
гональным преобразованием и его детерминант равен 1. □
1 Вращения, описанные в данном разделе, являются вращениями Гивенса. Вращения Якоби об-
суждаются в разд. 6.6, в частности, в упражнении 6.6.46.
214
Глава 3. Задача наименьших квадратов
Упражнение 3.2.17. Пусть Q — плоское вращение (3.2.15). Покажите, что
преобразования х -> Qx и х -> QTx меняют лишь z-й и у-й элементы в х и что ре-
зультат этого воздействия такой же, как при воздействии вращений Q =
nQT =
с
-S
S X.-
на вектор
с х}
Из упражнения 3.2.17 и формул (3.2.11) видно, что плоским вращением QT
любой вектор х можно преобразовать в вектор, у которого у-й элемент равен
нулю, где
и 5
(3.2.18)
(Если х. = х} = 0, возьмите с = 1 и s = 0.)
Важно узнать, как вращение воздействует на матрицу. Пусть А е Рас-
смотрим преобразования А -> QA и А -> QTA, где матрица Q та же, что и в (3.2.15).
Из упражнения 3.2.17 легко следует, что эти преобразования изменяют лишь z-ю
иу-ю строки в Л. Используя транспонирование, видим, что для В е преобра-
зования В -> BQw В -> BQT изменяют лишь z-й и у-й столбцы матрицы В.
Упражнение 3.2.19.
(а) Покажите, что z-я и у-я строки в QA являются линейными комбинация-
ми f-й и у-й строк матрицы А.
(Ь) Покажите, что z-й иу-й столбцы BQ являются линейными комбинация-
ми z-го иу-го столбцов матрицы В, □
Геометрическая интерпретация действия плоского вращения очевидна. Все
векторы, лежащие в плоскости хду, поворачиваются на угол и. Все векторы, ор-
тогональные плоскости хрср остаются неподвижными. В общем случае вектор х
не лежит ни в плоскости хрсу, ни ортогонален ей, но может быть представлен
единственным образом в виде суммы х = р + pL, где р — вектор в плоскости хд,,
а р1 ортогонален ей. Плоское вращение поворачивает лишь вектор р, оставляя
р1 неподвижным.
Теорема 3.2.20. Пусть А е Клх”. Тогда существует ортогональная матрица Q
и верхняя треугольная матрица R такие, что А = QR.
Доказательство. Набросаем доказательство, в котором Q будет произведе-
нием вращений. Более детальное доказательство, использующее отражения,
будет дано позднее. Пусть 02i ~ вращение в плоскости Х|Х2, такое, что Q^ вы-
полняет преобразование
3.2. Ортогональные матрицы, вращения и отражения 215
Тогда Q^A имеет нуль в позиции (2,1). Таким же образом мы можем найти
такое вращение 031 в плоскости хрс3, что Q3i(Q2iA) имеет нуль в позиции (3,1).
Это вращение не затрагивает нуль в позиции (2,1), поскольку оставляет
вторую строку матрицы Q2[A без изменений. Продолжая в том же духе, мы оп-
ределяем вращения 041, С51,..., Qnl таким образом, что ... Q^A имеет в пер-
вом столбце нули всюду, кроме позиции (1,1).
Теперь переходим ко второму столбцу. Пусть (?32 - такое вращение в плос-
кости %2Х3, что элемент (3,2) матрицы Q£>(Q„i ... Q2\A) равен нулю. Оно не за-
трагивает ранее полученные нули в первом столбце. (Почему нет?) Продолжая
работать над вторым столбцом, предположим, что 042, 052, ..., Q„2 суть такие
вращения, что Q„2 —QnQni ••• имеет нули в первом и втором столбцах
ниже главной диагонали.
Далее рассмотрим третий столбец, четвертый столбец и т.д. В общем, мы
построим такие вращения 021, 031, ..., 0Я1, 032, ..., Qnn_ ь что
R = С-.С-2 ... QlA
является верхней треугольной матрицей. Пусть Q = С?21С?31 ... г Тогда Q
как произведение ортогональных матриц сама будет ортогональной и R = QTA,
т.е. А = QR. □
Доказательство теоремы 3.2.20 конструктивно и поэтому дает нам алгоритм
для вычисления Q и R.
Упражнение 3.2.21. Покажите, что набросок алгоритма из доказательства
теоремы 3.2.20 тратит О(п3) флопов на преобразование Л в Л.1 □
Упражнение 3.2.22. Строгое математическое доказательство теоремы 3.2.20
использует индукцию по п. Сделайте набросок индуктивного доказательства
теоремы 3.2.20. □
Отражения
Как и для вращений, начнем со случая п = 2. Пусть С — некоторая пря-
мая в R2, проходящая через начало координат. Оператор, проектирующий
каждый вектор из R2 на £, является линейным преобразованием и может
быть представлен в виде матрицы. Найдем эту матрицу. Пусть v — ненуле-
вой вектор, лежащий в С. Тогда каждый вектор, лежащий в С , кратен v.
Пусть и — ненулевой вектор, ортогональный £. Тогда {и, v} является бази-
сом в R2, и поэтому каждый х е R2 можно представить в виде линейной
комбинации и и v: х = аи + £v. Отражение вектора х относительно С есть
1 При аккуратном подсчете найдем, что необходимо 2и3 + О(л2) флопов. Число умножений поч-
ти вдвое превосходит число сложений. Однако существует более тонкий способ выполнения вра-
щений, позволяющий сократить число умножений наполовину. Вращения, выполняемые этим
способом, называются быстрыми вращениями Гивенса или просто быстрыми вращениями. Быстрые
вращения обсуждаются в [33] и цитированной там литературе.
216
Глава 3. Задача наименьших квадратов
Рис, 3,3, Отражение относительно прямой.
вектор -аи + ₽v (см. рис. 3.3), так что для матрицы отражения Q должно
быть Q(au + Pv) = -аи + Pv при любых аир. Для этого необходимо и доста-
точно, чтобы
Qu = -и и Qv = v.
Без потери общности можно предположить, что в качестве и выбран еди-
ничный вектор: || и ||2 = 1.
Рассмотрим матрицу Р = ииТ. Р не обладает требуемыми свойствами, но все
же приближает нас к цели. Имеем Ри = (ии^и = и(ити) = и = и и Pv = (uu^v =
u(urv) = 0, поскольку и и v ортогональны. Немного подумав, можно получить Q
с необходимыми свойствами, комбинируя Р и единичную матрицу. Действи-
тельно, пусть Q- I-2P. Тогда Qu = и - 2Ри = -и nQv = v- 2Pv = v. В итоге мат-
рица Q е К2х2, отражающая векторы относительно прямой £, дается формулой
Q- I - 2иит, где и — единичный вектор, ортогональный к £.
Теперь мы готовы рассмотреть п х м-отражения.
Теорема 3.2.23. Пусть и е. R", || и ||2 = 1 и определим Р е Кяхя какР=иит. Тогда
(а) Ри = и.
(b) Pv = О, если (w,v) = 0.
(с) F = P.
(d) РТ=Р
Замечание 3.2.24. Матрица Р, для которой Р2 = Р, называется проектором
или идемпотентной матрицей. Симметричный проектор (Pr = Р) называется
ортопроектором. Матрица Р= ииТ имеет ранг 1, поскольку все ее строки (или
столбцы) кратны и. Таким образом, все свойства матрицы Р можно суммиро-
вать фразой: Р есть ортопроектор ранга 1.
Упражнение 3.2.25. Докажите теорему 3.2.23. □
3.2. Ортогональные матрицы, вращения и отражения
217
Теорема 3.2.26. Пусть и е R", || и ||2 = 1 и определим Q е ИГ’4” как Q- I - 2ииТ.
Тогда
(a) Qu = -и.
(b) Qv = v, если (u,v) = 0.
(с) Q = QT (Q симметрична).
(d) QT = Q-1 (Q ортогональна).
(e) Q4 = Q (Q является инволюцией).
Упражнение 3.2.27. Докажите теорему 3.2.26. □
Матрицы Q = I- 2ииТ (|| и ||2 = 1) называются отражениями или преобразова-
ниями Хаусхолдера, впервые применившего их в матричных вычислениях. От-
ражения, как и преобразования Гаусса (упражнение 1.7.49), являются одно-
ранговыми модификациями единичной матрицы. См. упражнение 3.2.64.
Множество Н = {v е К” | {и,у) - 0} является (п - 1)-мерным подпространст-
вом в R", называемым гиперплоскостью. Матрица Q преобразует каждый век-
тор х в его отражение относительно гиперплоскости Н. Это можно увидеть,
если рассмотреть случай п = 3, когда Н есть просто обычная плоскость, прохо-
дящая через начало координат.
В теоремах 3.2.23 и 3.2.26 в качестве и взят единичный вектор. Так удобнее
формулировать и доказывать эти теоремы, но в вычислениях обычно более
удобно использовать ненормированный вектор. Теорема 3.2.30 дает возмож-
ность избежать нормировки.
Утверждение 3.2.28. Для ненулевого вектора и из К” определим у = 2 /||м||2 и
Q- I - уииТ. Тогда Q является отражением, для которого
(a) Qu = -и.
(b) Qv = и если {и,у) = 0.
Доказательство. Пусть и = и /1| и ||2. Тогда || и || = 1 и нетрудно проверить, что
Q- 1-2ййТ. Отсюда легко следуют (а) и (Ь). □
Упражнение 3.2.29. Проведите доказательство утверждения 3.2.28 в де-
талях. □
(а)
(*>)
Рис. 3.4. Отражение х в у.
218
Глава 3. Задача наименьших квадратов
Теорема 3.2.30. Пустьх,у е R" таковы, чтох*у,но^х ||2 = ||у ||2. Тогда суще-
ствует единственное отражение Q такое, что Qx = у.
Доказательство. Мы не будем доказывать единственность, поскольку это не
нужно для нашего изложения (но все же см. упражнение 3.2.63). Чтобы дока-
зать существование Q, нужно найти такой и, что (/ - уии^х = у где у = 2 /1\и||2.
Чтобы понять, что делать дальше, рассмотрим случай п = 2, изображенный в
части (а) рис. 3.4. Пусть С обозначает прямую, делящую пополам угол междух
и у Отражение х относительно этой (и только этой) линии есть у Таким обра-
зом, нам нужен вектор и, ортогональный к £. Оказывается, что и = х - у или
любой кратный ему вектор является правильным выбором.
Пусть и = х-у у = 2 / ||w||2 и Q = 1-уииТ. Чтобы доказать, что Qx = у, сначала
представим х в виде суммы:
1/ х 1/
х = -(х - у) + -(х + у).
В соответствии с частью (а) утверждения 3.2.28, Q(x - у) = у - х. Часть (Ь)
рис. 3.4 наводит на мысль, что х + у ортогонален и. Чтобы проверить это, про-
сто вычислим внутреннее произведение:
(х + у, х - у) = (х, х) + (у, х) - (х, у) - (у, у) =
= ||х||22 + 0 - 0 - ||у ||22 = 0,
потому что || х ||2 = || у ||2. Из части (Ь) утверждения 3.2.28 следует, что Q(x + у) =
= х + у. Окончательно
Qx = jQ(x - у) + |о(х + у ) =
1/ х 1/
= -(у - х) + -(х + у) = у.
□
Из этой теоремы легко следует, что отражения можно использовать для по-
лучения нулей в векторах и матрицах.
Следствие 3.2.31. Пусть х е R" - ненулевой вектор. Тогда существует отра-
жение Q такое, что
Доказательство. Пустьу = [-т, 0,..., 0]г, где т = ±|| х ||2. Соответствующим об-
разом выбирая знак, можно добиться, чтобы х ф у. Ясно, что || х ||2 = || у ||2. Таким
образом, по теореме 3.2.30 существует отражение Q такое, что Qx = у □
3.2. Ортогональные матрицы, вращения и отражения
219
Рассмотрим алгоритм, изложенный в этом доказательстве. Отражение есть
Q = I - уммг, где
и = х - у -
т + х1
х2
и у = 2 / ||м||2. Каждое кратное этого и порождает то же отражение. Удобно нор-
мировать и так, чтобы его первый элемент равнялся 1. Таким образом, мы
полагаем
w = (х - у)/(т + Xj) =
1
х2 /(t + Xj)
(3.2.32)
л /<т + х1).
Мы все еще имеем у = 2 / ||м||2, но уже для нормированного и. Вычислить и
и у просто. Мы требуем, чтобы т = ±|| х ||2, но не оговариваем выбор знака. Тео-
ретически можно выбрать любой (лишь бы х * у), но на практике проще вы-
брать т так, чтобы его знак был таким же, как у хь Это дает уверенность в том,
что при вычислении т + х{ не произойдет потери значимости. Это же гаранти-
рует, что при нормировке и делением на т + Xj мы не придем к делению на нуль
и не получим опасно больших элементов в и.
Упражнение 3.2.33. Покажите, что если т = ±|| х ||2 выбирается так, чтобы т и
х1 имели одинаковые знаки, то все элементы и в (3.2.32) удовлетворяют нера-
венствам | uf\ < 1 и 1 < || и ||2 < 2. □
Вычисление у проще, чем кажется. Заметьте, что
мН =
••• + х% _ т2 +2tXj+||x
(т + Х|)2
Но т2 = ||х||2 независимо от выбора знака т, так что ||и||2 = 2т(т + Xj)/(t + %|)2 =
2т/(т + xj и у = (т + Х|)/т.
Прежде чем подвести итоги вычислений, укажем еще одну потенциальную
опасность. Чтобы вычислить т, нам нужна ||х||2 = д/х2 + ••• + х2. Поскольку
возведение в квадрат удваивает показатель степени, то может произойти пере-
полнение, если окажется, что некоторые из элементов очень велики. Анало-
гично из-за того, что некоторые элементы очень малы, может произойти ис-
чезновение порядка. Конечно же, мы должны избегать переполнений; исчез-
новение порядка может оказаться не менее опасным.
Пример 3.2.34. Рассмотрим вычисление || х ||2, где
х = [10“49, ПТ50, 1О'50, ..., 10-50]r е R11,
на компьютере, у которого исчезновение порядка происходит при 10“". Любое
число, меньшее этого, полагается равным нулю. У нас х2 = 10"98, а х2 =... = х2 =
220
Глава 3. Задача наименьших квадратов
= 10 100 = машинный нуль. Таким образом, вычисленная норма равна ^х} = 10-49.
Это ошибка почти в пять процентов, поскольку истинное значение нормы
есть 71.1х10‘98» 1.0488 х Ю"49. □
Проблем с переполнением и исчезновением порядка при вычислениях || х ||2
можно избежать с помощью следующей простой процедуры: пусть р - || х (Ц, =
max | х, |. Если р = 0, то || х ||2 = 0. В противном случае положим х = (1 / Р)х. Тогда
IIх lb ~ Р II * lb = Рд/*? + ... + **• Такая процедура масштабирования практиче-
ски исключает всякую возможность переполнения, поскольку | х,.| < 1 для всех
I. Исчезновение порядка все же возможно, но оно возникает лишь тогда, когда
некоторые члены настолько меньше самого большого члена (=1), что ошибка,
полученная при их игнорировании, много меньше единичной ошибки округ-
ления компьютера. Таким образом, ошибка, возникающая при исчезновении
порядка, не представляет опасности и может считаться равной нулю.
Упражнение 3.2.35. Используйте кратко описанную выше процедуру мас-
штабирования, чтобы вычислить норму векторах из примера 3.2.34. □
Упражнение 3.2.36. Опасность исчезновения порядка и переполнений возни-
кает не только при вычислении отражений, но также и при вычислении враще-
ний. Видоизмените вычисления (3.2.18) таким образом, чтобы было можно ис-
ключить опасность переполнений и пагубных исчезновений порядка. □
Процедура вычисления матрицы Q такой, что Qx = у, где
у = [—т 0 ... 0]г,
включающая масштабирование для вычисления ||х||2, приведена в (3.2.37).
Ради краткости описания воспользуемся обозначением х , напоминающим
символику MATLAB’a, для указания элементов вектора х с z-ro поу-й.
Для заданного х е R" данный алгоритм вычисляет такие т, у и и, что Q=(I - уии1) является
отражением, для которого Qx = [-т 0... 0]г. Если х = 0, полагаем у = 0, что дает Q = /. В противном
случае вычисляются у и и, а затем и запоминается в х. Поскольку известно, что и{ равно 1, ко-
манда X, < 1 может быть опущена, в зависимости от того, как будет использоваться результат.
₽<maxls/Jx,.|
if Ф=0)
then
[у<-0
else
Ч. /Р
г +•"+*. (3.2.37)
if (Xj < 0) т <—т
Х| <- Т + Х1
Т <- Xj / т
т<-тр
3.2. Ортогональные матрицы, вращения и отражения
221
Легко видеть, что в этом алгоритме не может произойти исчезновения по-
рядка: сумма х2 + ... + х2 связана лишь с положительными числами, и мы вы-
полняем вычисления в такой последовательности, что в сумме т + Xj исчезно-
вения порядка не будет. Следовательно, т, у и и вычисляются правильно.
Упражнение 3.2.38. Проверьте, что полные затраты на выполнение алгорит-
ма (3.2.37) имеют порядок О(п). □
Алгоритм (3.2.37) явным образом не вычисляет Q, сама по себе Q требуется
редко: достаточно иметь у и и. Например, если отражения используются при
вычислении 0Я-разложения матрицы, нам нужно умножить каждое отражение
Q на матрицу В, являющуюся подматрицей матрицы, которая приводится к
верхней треугольной форме. Посмотрим, как можно экономно вычислить QB.
Предположим, что Q е R"x" и В е 1ГХ'”. Мы имеем QB = (I-yuu^B -В- уииТВ,
так что все сводится к вычислению произведения уииТВ. Имеются хорошие и
плохие способы сделать это. Первое хорошее, что мы можем сделать, это вклю-
чить скаляр у в один из векторов. Положим vT - уит, так что QB- В - uvTB.
Упражнение 3.2.39. Затраты на вычисление uvTB существенно зависят от
порядка выполнения операций. Предположим, как и выше, что и е R*,
v е R” и В е R"x/”.
(а) Покажите, что если вычислять (му7)/?, промежуточный результат есть
п х «-матрица, а общие затраты на вычисления составляют около 2п2т флопов.
(Ь) Покажите, что если вычислять и^В), промежуточный результат есть
1 х «-матрица, а общие затраты на вычисления составляют около Зпт флопов.
Такой порядок вычислений требует явно меньше операций и памяти, чем в (а).
(с) Покажите, что определение QB = В - uvTB требует всего лишь 4пт фло-
пов, если вычисления проводятся экономно.
(d) Сколько флопов потребуется для вычисления QB, если Q хранится об-
щепринятым образом в виде « х «-матрицы? □
Из этого упражнения мы видим, что экономичный подход к определению
QB состоит в вычислении В - и(уТВ). Эти операции сведены в следующий алго-
ритм.
Алгоритм вычисления матрицы QB и записи ее на место В, где В е ЛГХ" и Q = (/- уиит).
Используется вспомогательный вектор v е R".
т т
V <г-уи
vT <-vTB (3.2.40)
B<?-B-uvT
Общее число необходимых флопов приблизительно равно 4пш, что сущест-
венно меньше затрат на явное представление Q и умножение Q на В обычным
образом. Такой способ хранения возможен потому, что отражение Q является
одноранговой модификацией единичной матрицы (упражнение 3.2.64).
Алгоритм (3.2.40) может выполняться либо по строкам, либо по столбцам, в
зависимости от порядка выполнения циклов при умножении матрицы на мат-
рицу. Если выбрать выполнение по столбцам, то вспомогательный вектор v
222
Глава 3. Задача наименьших квадратов
можно заменить одним вспомогательным скаляром, а число флопов можно
слегка уменьшить тщательной организацией процесса вычислений. Однако
эти модификации не обязательно реализуются в виде быстрой программы.
Упражнение 3.2.41.
(а) Найдите отражение 0, отображающее вектор [3, 4, 1, 3, 1]Тв вектор вида
[-т, 0, 0, 0, 0]г. Не надо перемасштабировать х. Запишите Q двумя способами:
(i) в виде I - уиит и (ii) как полностью заполненную матрицу.
(Ь) Пусть а = [0, 2, 1, -1, 0]г. Вычислите Qa двумя разными способами: (i)
эффективным, использующим 1-уии1\ и (ii) использующим полностью запол-
ненную матрицу Q. □
^-разложение с помощью отражений
Теорема 3.2.20 устанавливает, что каждая матрица А е 11яхя может быть
представлена в виде произведения А = QR, где Q — ортогональная матрица, a R
— верхняя треугольная. При доказательстве теоремы 3.2.20 мы использовали
вращения, но обещали привести второе доказательство, использующее отра-
жения. Сейчас мы готовы к этому доказательству.
Доказательство теоремы 3.2.20, использующее отражения. Проведем доказа-
тельство по индукции. При п = 1 возьмем Q = [1] и R = [ап], и тогда А = QR. Те-
перь возьмем произвольное п > 2 и покажем, что теорема будет выполняться
для п х n-матриц, если она выполняется для (п - 1) х (п - 1)-матриц. Пусть
Qi е Кях" — отражение, порождающее нули в первом столбце матрицы Л:
(3.2.42)
Учитывая симметричность Ql} видим, что Q}A имеет вид
По индуктивному предположению А2 имеет (^-разложение: А2 = Q2R2, где 02
- ортогональная, a R2 — верхняя треугольная матрицы. Определим Q2 е Кяхя как
3.2. Ортогональные матрицы, вращения и отражения
223
Тогда очевидно, что Q2 ортогональна и
(3.2.44)
Эта матрица является верхней треугольной — назовем ее R. Пусть Q = Q{Q2.
Тогда Q ортогональна и QTA - R. Следовательно, А = QR. □
Это доказательство можно превратить в алгоритм построения Q и R. Шаг
1 вычисляет отражение = I - у|И(1)и(1)Г, чтобы выполнялось представление
(3.2.42), а затем использует Ql9 чтобы построить преобразование (3.2.43). На
практике 0| не нужно нам в явном виде: достаточно лишь сохранить -т,, у| и
и(1), вычисленные с помощью (3.2.37), где х берется в качестве первого столб-
ца матрицы А. Нет необходимости преобразовывать первый столбец к виду
[—т 0 ... 0]г, как указано в (3.2.43), — по крайней мере, не стоит хранить нули.
Мы можем записать -т = гв в позицию (1,1), а остальную часть первого
столбца использовать под хранение м(1). Поскольку^0 = 1, его не надо запо-
минать, а для остальных элементов м(1) найдется достаточно места в первом
столбце матрицы А. Преобразование получается просто делением каждого из
л21, •••, на Т| + аи. Остаток матрицы А можно преобразовать в соответствии
с (3.2.43). Это можно сделать, применяя отражение Ql к подматрице матрицы
А, состоящей из столбцов от 2 до и, по алгоритму (3.2.40). Это дорогостоящая
часть вычислений. Так как здесь имеется т = п - 1 столбцов, общее число
флопов на шаге 1 равно приблизительно 4и2. Поскольку затраты на построе-
ние отражения составляют О(п), ими можно пренебречь.
Остальная часть алгоритма посвящена приведению А2 к верхней треуголь-
ной форме. Сравнивая (3.2.43) с (3.2.44), видим, что первые строка и столбец
после шага 1 остаются неизменными, так что ими можно пренебречь. Шаг 2
такой же как 1, за исключением того, что он преобразует А2 к виду
~Ti д2з ••• <hn
0
Л
0
На практике мы используем часть первого столбца, отведенную под запись
нулей, для хранения м(2). Стоимость шага 2 равна приблизительно 4(и - I)2
224
Глава 3. Задача наименьших квадратов
флопов, поскольку он во всем подобен шагу 1, кроме того, что преобразуется
(п - 1) х (п - 1)-матрица. Шаг 3 такой же, как и шаг 2, исключая то, что теперь
обрабатывается матрица меньшего размера В3. Затраты шага 3 составляют око-
ло 4(п - 2)2 флопов.
После (п - 1)-го шага исходная матрица будет преобразована к верхней
треугольной форме. Массив, первоначально содержавший А, теперь содер-
жит R и векторы м(1), ..., и(п~ °, без их начальных единиц. Другой массив со-
держит У1, ..., у„ _ I. Очевидно, R = Qn _ & _ 2 ... Q{A, где Q1 = I - yxu{X}uWT
О ... О
/-у2и(2)«(2)Г
и в общем случае
_ |" г{_{\ о О
Gi= о
a I._ j обозначает единичную матрицу порядка i - 1. Полагая
Q = Q&2 .. G«-i,
имеем QT=Q„_{... Q[ = Qn[... Qv R = QTA, и, окончательно, A = QR, Как мы ви-
дели, нет необходимости получать Q явно. Алгоритм можно суммировать в
следующем виде:
Алгоритм вычисления QTS-разложения А е с использованием отражений
for Л=1,..., п -1
определяем отражение Qk-I- yku{k)u{kyr такое, что
0... Of (см. (3.2.37))
Заносим i/** на место ак.п к, как в (3.2.37), (3.2.45)
^k:n,k + l‘n ^~Qk^k:n,k+l:n (СМ. (3.2.40))
акк <~~Хк
Уп +~анп
Мы использовали обозначение аи> к.т, похожее на то, как в MATLAB ‘е обо-
значается подматрица, состоящая из элементов пересечения строк от i до j со
столбцами от к до т. у„ действует как индикатор хода вычислений: если у„ или
любое другое у, равно нулю, то А вырождена. (Почему?)
Вспоминая, что на первом шаге выполняется 4п2 флопов, на втором -
4(n - I)2 и т.д., видим, что общее число флопов в (3.2.45) будет равно 4л2 +
3.2. Ортогональные матрицы, вращения и отражения
225
+ 4(л - I)2 + 4(п - 2)2 + ... « 4п3/3, что в два раза больше числа флопов при
£ {/-разложении.
Большая часть работы приходится на операции <- Qkak-.n,k + \w котрые
выполняются в порядке, указанном в (3.2.40). Эти операции могут выполнять-
ся как по строкам, так и по столбцам.
Существуют также блочные варианты алгоритма, которые лучше подходят
для работы с большими матрицами. В них отражения используются по-друго-
му. После того как построено некоторое число отражений, используется весь
их пакет сразу, как это широко применялось для перемножения матриц. Эти
операции могут быть сгруппированы в блоки для более эффективного исполь-
зования высокоскоростной кэш-памяти и параллельных процессоров. Основ-
ная идея разрабатывается в упражнениях 3.2.67 и 3.2.68. Программ DGEQRF
библиотеки LAPACK [1] является реализацией блочного QR-разложения на
Фортране.
Посмотрим теперь, как QR-разложение, вычисленное с помощью отра-
жений, можно использовать при решении линейных уравнений Ах = b . По
общему признанию это дорогой метод решения линейных систем, но он тем
не менее нужен нам, поскольку выполняемые при этом операции аналогич-
ны тем, что будут использоваться в разд. 3.3 при решении задачи наимень-
ших квадратов для переопределенных систем. Так как А = QR, наша цель -
решить систему QRx - b. Полагая с - Rx, сначала решим систему Qc = b от-
носительно с, а затем систему Rx = с относительно х. Прежде всего с = QTb =
= Qn _ ! ... QiQ\b, так что можно последовательно применить отражения
Qb (?2> Qn - 1 к Ь, чтобы получить с. Конечно, при этом используется
(3.2.40) с т = 1. В заключение обратной подстановкой решается система Rx = с
относительно х.
Применение Qt требует 4и флопов. На применение Q2 уходит 4(и - 1)
флопов, поскольку в действительности это лишь (п - 1) х (п - ^-отраже-
ние: оно не затрагивает первый элемент Qxb. Подобным же образом при-
менение Q3 не затрагивает первых элементов Q2Q{b и требует 4(и - 2)
флопов. Следовательно, общие затраты на вычисления составляют 4и +
+ 4(и - 1) + 4(и - 2) + ... « 2м2. Такие же затраты потребовались бы для
вычисления с - QTb, если бы Q была задана явно. На определение х об-
ратной подстановкой требуется около п2 флопов. Таким образом, эти
шаги оказываются недорогими в сравнении со стоимостью вычисления
QR-разложения.
Единственность QR-разложения
Для невырожденных матриц теорема о QR-разложении может быть допол-
нена свойством единственности матриц Q и R. Этот факт имеет большое тео-
ретическое значение.
Теорема 3.2.46. Пусть А е R”4" невырожденна. Существуют единственные Q,
R е Rrtxw такие, что Q ортогональна, R — верхняя треугольная с положительными
элементами на главной диагонали и А = QR.
8 Основы матричных вычислений
226
Глава 3. Задача наименьших квадратов
Доказательство. По теореме 3.2.20 А = QR, где Q ортогональна, a R - верхняя
треугольная, но R не обязательно имеет положительные элементы на главной
диагонали. Поскольку А не вырождена, R тоже должна быть невырожденной, и
поэтому элементы ее главной диагонали по крайней мере не равны нулю.
Пусть D будет диагональной матрицей, у которой
J 1 если ги > 0,
[-1 если г/7 < 0.
Тогда D- DT=DX ортогональна. Пусть Q = QD~X и R = DR. Тогда Q - ортого-
нальна, R - верхняя треугольная матрица с ги = с1,/и > 0 и Л = QR. Это доказыва-
ет существование.
Единственность можно доказать, опираясь на те же идеи (см. упражнение
3.2.47). Для разнообразия мы применим другой подход, в котором использу-
ется интересная связь между 07?-разложением и разложением Холесского.
Пусть А = 0^! = 02Я2> гДе Qi и Qi - ортогональные, a R{ и R2 - верхние тре-
угольные матрицы с положительными элементами на главных диагоналях.
АГА является положительно определенной матрицей и АТА = R?R^ поскольку
07Q{ = I. Таким образом, Rx является множителем Холесского матрицы АТА.
То же можно сказать и об Я2, так что R2 тоже есть множитель Холесского
матрицы А. Ввиду единственности разложения Холесского Rt - R2. Оконча-
тельно Qi = AR^1 = AR2l = 02. □
Упражнение 3.2.47. Это упражнение дает другое доказательство теоре-
мы 3.2.46.
(а) Предположим, что В g HV4" одновременно и ортогональная, и верхняя
треугольная матрица. Докажите, что В должна быть диагональной матрицей, у
которой элементы на главной диагонали равны ±1.
(Ь) Пусть 01Л1 = Q2R2, где 0j и 02 - ортогональные, a Rx и R2 - невырожден-
ные верхние треугольные матрицы. Покажите, что имеется диагональная мат-
рица Z>, у которой элементы на главной диагонали равны ±1, такая, что R2 -
DRi и 0| = Q2D.
Упражнение 3.2.48.
Г1 2"
(а) Пусть А -
□
Найдите отражение 0 и верхнюю треугольную матрицу
R такие, что А = QR. Постройте 0 и упростите.
(Ответ'. 0 =
-Г-1
/2Н
-Г
1 ’
=-Я2
л/2 0
(Ь) Сравните ваше решение из п.
полученным с помощью вращения в
ную матрицу D, у которой элементы
что 0 = QD и R = DR.
(а) с 0Я-разложением той же матрицы,
упражнении 3.2.13. Найдите диагональ-
на главной диагонали равны ±1, такую
□
3,2, Ортогональные матрицы, вращения и отражения
227
Упражнение 3.2.49. Команда MATLAB’a qr выполняет 0Л-разложение
матрицы. Чтобы не усложнять выходные данные, MATLAB выдает матрицу
Q в явном виде. Попробуйте выполнить, например, следующие MATLAB-
команды:
п = 7
А = randn(п)
[QZR] = qr (А)
Q'*Q
norm(eye(n)-Q'*Q)
norm(A-Q*R)
Обратите внимание, что в MATLAB’e не считается нужным делать элемен-
ты главной диагонали матрицы R положительными, поскольку для большин-
ства приложений это несущественно. Несколько других примеров использова-
ния команды qr будут рассмотрены в следующем разделе. Чтобы получить до-
полнительную информацию, наберите help qr. □
Устойчивость вычислений, использующих вращения и отражения
Вычислительные характеристики и вращений, и отражений превосходны.
Детальный анализ был проведен Уилкинсоном [81, с. 126-162]. См. также [41].
Мы ограничимся лишь краткой сводкой результатов. Некоторые подробности
рассмотрены в упражнениях 3.2.70 - 3.2.73.
Пусть нужно преобразовать А в QA, где Q — либо вращение, определенное
формулами (3.2.18), либо отражение, определенное в (3.2.37). В случае отраже-
ния для вычисления QA надо использовать (3.2.40). В обоих случаях Уилкин-
сон показал, что
А(СЛ) = 0(Л + £),
где || Е ||2/|| А ||2 мало. Другими словами, вычисленный результат является точ-
ным результатом применения Q к матрице, представляющей собой малое воз-
мущение матрицы Л, т.е. вычисление QA обратно устойчиво по норме.
Устойчивость сохраняется после повторных применений вращений и/или
отражений. Рассмотрим для примера вычисление Прежде всего, fl((M) =
= Q^A + Е{). Таким образом, fl«?2£M) = А(Сг(01(^ + ^i))) = + ^i) + ^2) =
= Q2QiO4 + £1 + Qi%) = <?2(2iG4 + £), где £= £j + С/Х Поскольку || £ ||2 < || £j ||2 +
+ || £21|2, можно утверждать, что || £ ||2/|| А ||2 мало.
Многие из алгоритмов в этой книге состоят из повторных преобразо-
ваний матрицы с помощью вращений и отражений. Два алгоритма QR-
разложения, обсуждавшихся в настоящем разделе, именно такого типа, и
такими же являются алгоритмы для решения задачи о собственных значе-
ниях, которые обсуждаются в последующих главах. Из предыдущих заме-
чаний следует, что все алгоритмы этого типа обратно устойчивы по
норме.
228
Глава 3. Задача наименьших квадратов
Комплексный случай
В следующих упражнениях рассматриваются комплексные аналоги резуль-
татов, полученных в данном разделе. Комплексное внутреннее произведение в С"
определяется как
п
<х, у) = £х,у,-, {х = [Xj ... х„]г, у = [л ... у„]г},
1=1
где черта сверху означает комплексное сопряжение. Очевидно, (х, у) - ух =
х*у, где у* означает сопряженное транспонирование у .
Упражнение 3.2.50. Покажите, что внутреннее произведение в С” обладает
следующими свойствами:
(а) {х, у) = (у,х).
(Ь) (<ад + а^х2, у) = a/xj, у) + а2(х2, у).
(с) ( х, щу । + а2 у2) = а,(х, у^ + а2(х, у2).
(d) (х, х) вещественное, (х, х) > 0, причем (х, х) = 0 тогда и только тогда, ко-
гда х = 0._
(е) 7(х,х) =||х||2. □
Комплексным аналогом ортогональной матрицы является унитарная мат-
рица. Матрица U е Спхп является унитарной, если Ulf -1, где If - комплексно
сопряженная транспонированная матрица. Утверждения lfU=Iulf = U~' эк-
вивалентны. Обратите внимание, что ортогональная матрица есть просто ве-
щественная унитарная матрица.
Упражнение 3.2.51.
(а) Покажите, что если U — унитарная матрица, то и U~l унитарная.
(Ь) Покажите, что если Ux и U2 — унитарные матрицы, то U{U2 тоже уни-
тарна. □
Упражнение 3.2.52. Покажите, что если U — унитарная матрица, то
|det(C/)l=l. □
Упражнение 3.2.53. Покажите, что если U е С”х" - унитарная матрица и
х, у е С”, то
(a) {Ux, Uy) = (х, у).
(Ь) || t/x||2 = ||х||2.
(0 nib = 11 U-'\\2 = K2(U) = I.
Таким образом, унитарные матрицы сохраняют 2-норму и внутреннее про-
изведение. □
Упражнение 3.2.54 (комплексное вращение). Дан отличный от нуля вектор
а € С2. Определим U е С2х2 как
и= - а
y[_Z>
-ь
а
где у = 7|д|2ф|2.
3.2. Ортогональные матрицы, вращения и отражения
229
Проверьте, что
(a) U — унитарная матрица.
(b) det(t7) = 1.
(с) U
♦ а
Ь
Y
О
□
Определение вращений в комплексной плоскости из Слх" очевидно. Таким
образом, унитарные матрицы сохраняют 2-норму и внутреннее произведение.
Упражнение 3.2.55 (комплексное отражение). Пусть и е С”, причем || и ||2 = 1,
и определим Q е Cwxw как 0 = I - 2ии*. Проверьте, что
(a) Qu = -и.
(b) Qv = v, если {и, v) = 0.
(с) Q = Q* (Q эрмитова).
(d) С* = С-1 (С унитарна).
(е) С"1 = Q (преобразование Q — инволюция). □
Упражнение 3.2.56.
(а) Докажите, что если х, у е С", х ф у, || х ||2 = || у ||2 и (х, у) — вещественное
число, то существует комплексное отражение Q такое, что Qx = у.
(Ь) Пусть х е С” — ненулевой вектор. Представьте х{ в полярных коорди-
натах: хг = ге® (причем 0 = 0, если xt = 0). Пусть т = || х H^0 и у = [-т 0 ... 0]г.
Покажите, что ||х || = ||у ||, х ф у и (х, у) - вещественное число. Напишите
алгоритм построения отражения Q такого, что Qx = у. Это комплексный ана-
лог (3.2.37). □
Упражнение 3.2.57. Покажите, что для любой А е С™ существуют унитарная
матрица Q и верхняя треугольная матрица R такие, что А = QR. Приведите кон-
структивное доказательство, использующее либо вращения, либо отражения. □
Теорема 3.2.58. Пусть А е Cwxw невырожденна. Существуют единственные Q,
R е Cwxw такие, что Q — унитарная матрица, R — верхняя треугольная матрица с
положительными элементами на главной диагонали и А = QR.
Упражнение 3.2.59. Докажите теорему 3.2.58. □
Упражнение 3.2.60. Пусть А е С"хл невырожденна и А = QR = QR, где Q nQ
унитарны, a R и R - верхние треугольные матрицы.
(а) Покажите, что Q = QD, где D - унитарная диагональная матрица.
(Ь) Покажите, что у-й столбец матрицы Q кратен у-му столбцу матрицы Q
приу = 1,..., п. □
Упражнение 3.2.61. MATLAB успешно определяет 0Л-разложения ком-
плексных матриц. Выполните, например, следующую программу:
п = 4
А = randn(n) + i*randn(n)
[Q,R] = qr (А)
Q'
Q'*Q
norm (eye (n) - Q' *Q)
norm(A-Q*R)
230
Глава 3. Задача наименьших квадратов
В MATLAB’e не предусмотрено делать элементы главной диагонали матри-
цы R положительными или хотя бы вещественными. Обратите внимание, что
Q' — это комплексно-соиряжем/ая транспонированная матрица Q . □
Упражнение 3.2.62. Пусть и е С1 и || и ||2 = 1. Тогда I - уии* есть унитарная
матрица, если у = 2 или 0. Определите множество всех у е С, для которых мат-
рица I - уии* унитарна. □
Дополнительные упражнения
Упражнение 3.2.63. Покажите, что если Qx-у, где Q = уииге Ляхя, тогда и
должен быть кратен вектору х - у. Поскольку все кратные х - у порождают
одно и то же отражение, это доказывает утверждение о единственности в тео-
реме 3.2.30. □
Упражнение 3.2.64. Некоторые из наиболее важных матричных преобразо-
ваний являются одноранговыми модификациями единичной матрицы.
(а) Вспомним, что ранг матрицы равен числу линейно независимых столб-
цов. Докажите, что А е Ляхя имеет ранг 1, тогда и только тогда, когда существуют
ненулевые векторы и, уе IIя такие, что А = uvT. Какова свобода в выборе и и у?
(Ь) Матрица вида G = I - uvT называется одноранговой модификацией единич-
ной матрицы по очевидным причинам. Докажите, что если G вырождена, то
Gx = 0 тогда и только тогда, когда х кратен и. Докажите, что G вырождена, тогда
и только тогда, когда vTu = 1.
(с) Покажите, что если G= I - uvT невырожденна, то G~x имеет вид /- $uvr.
Приведите формулу для р.
(d) Докажите, что если G ортогональна, то и и у пропорциональны, т.е. v-pu
для некоторого ненулевого скаляра р. Покажите, что если || и ||2 = 1, то р = 1.
(е) Покажите, что если G = I - uvT и ИИе Кях'”, то GW можно найти с помо-
щью Лпт флопов, если вычисления проводятся эффективным методом.
(f) Рассмотрим задачу получения нулевых компонент вектора: для заданно-
го х е Кя найдем (7 = I - uvT такую, что
(3.2.65)
для некоторого р * 0. Покажите, что G выполняет преобразование (3.2.65) то-
гда и только тогда, когда
м = (1/у)( х - pej, где у = vTx ф 0 (3.2.66)
и ех = [1, 0, ..., 0]г.
(g) В (3.2.65) р можно выбрать произвольным образом. В настоящем разде-
ле мы уже видели, как надо выбирать р, и и у, чтобы построить отражение,
3.2. Ортогональные матрицы, вращения и отражения
231
решающее приведенную выше задачу. Рассмотрим другую возможность, пред -
полагая х, * 0. Возьмем р = хх и v = Чему должен равняться вектор и, чтобы
выполнялось (3.2.66)? Покажите, что полученная матрица G является преобра-
зованием Гаусса (см. упражнение 1.7.47). □
Упражнение 3.2.67. Это упражнение показывает, как надо накапливать от-
ражения, чтобы затем использовать все их сразу пакетом так, как это мы часто
делали при умножении матрицы на матрицу.
(а) Пусть G= /+ ИТ7, где ИК У е Покажите, что G = 1+ wy-? + ... +
w//, где Wj, ..., Wj и уь ... - векторы-столбцы. Таким образом, G есть модифи-
кация ранга j единичной матрицы.
(Ь) Пусть G- такая же, как и в (а), причем 1« j « п, и пусть В е 1ГХ'”. Пока-
жите, что произведение GB можно вычислить с помощью 4njm флопов, если
правильно организовать выполнение операций. Какого размера матрицы уча-
ствуют при этом в выполнении умножений и сложений? (Чем они больше, тем
более эффективно можно использовать компьютерный кэш.) Как много фло-
пов потребуется для вычисления GB, если хранить G стандартным образом в
виде п х «-матрицы?
(с) Покажите, что если Q = I - уииТ nG= 1+ WYT, то 0(7 = / + WYT + uvT, где
v = -y(u + YWTu). Как много флопов потребуется для вычисления г? Покажите,
что QG= 1+ ИТГ, где W, Ye Гх(/ + °.
(d) Докажите, что произведение J элементарных отражений можно предста-
вить в виде I + WYT, где РК У е Rwxy. Воспользуйтесь индукцией по j.
(е) Пусть G - произведение j элементарных отражений. Сколько флопов
потребуется для вычисления GB, где В е R"xw, если G используется как после-
довательность j отражений одно за другим? Что это в сравнении с затратами
при использовании G в виде /ч- ЖУГ? Как много дополнительных флопов по-
требуется для построения /+ WYT с помощью операций, указанных в (с)? (Это
показывает, что дополнительные затраты незначительны, если j « «, но могут
стать значительными, если j окажется слишком большим.)
(f) Кратко сформулируйте, как надо модифицировать (3.2.45), чтобы при-
менять отражения пакетами по j штук.
(g) Укажите простое представление для (71, если G = I + WYT ортого-
нальна. □
Упражнение 3.2.68. В программах библиотеки LAPACK [1] используется
несколько другое представление, отличное от указанного в предыдущем уп-
ражнении. Предположим, что Q = 0У0У_ р..0| есть произведение отражений
Q, = I - ущи?. Поступая более или менее как в предыдущем упражнении, до-
кажите индукцией по У, что Q- I - ULlf, где U - [Mt ... mJ е R"xy и L е Ryxy -
нижняя треугольная матрица. Как можно представить 0-1? □
Упражнение 3.2.69. Покажите, что каждое 2 х 2-отражение имеет вид
, где с2 + s2 = 1. Как отражение Q =
с s
S —с
торы
"Г
о
°]
1
с s
S —С
действует на единичные век-
? Сопоставьте действие Q с действием вращения Q =
с -s
s с
и
232
Глава 3. Задача наименьших квадратов
Сделайте рисунок. Обозревая рисунок, укажите прямую линию, относительно
которой Q отражает векторы. Предполагая с > 0 и s > 0, покажите, что эта пря-
мая имеет наклон tg(0/2), где 0 = arccos с = arcsin s. □
Упражнение 3.2.70. Это и следующее упражнения показывают обратную ус-
тойчивость умножений на вращения, отражения и другие ортогональные преоб-
разования. Начнем с умножения матриц в общем виде. Пусть V е 1ГХЯ и х е R*.
(а) Пусть вычисляется fl(Vx) на идеальном компьютере (разд. 2.5) с единич-
ной ошибкой округления и. Используя (2.5.3) и утверждние 2.7.1, покажите,
что fl(F5c) = V + b, где b мало, в частности,
b> =
7=1
где | < пи + О(и2).
(Ь) Продолжая (а), покажите, что |Z>| < у| К| | х |, где у = max | | и || b ||( <
II И11II* 111(«« + О(м2)).
(с) Покажите, что fl(Ух) = У(х + 8х), где 8х (= У~‘Ь) удовлетворяет оценке
II 8* Hi / II х Hi < к,(У)(пи + O(u2)).
(d) Пусть A e R'""'. Используя результат п. (с), покажите, что А(РЛ) = У(А + Е),
где I £ Ik /1| А И, < Ki(V)(nu + О(и2)).
Мы приходим к заключению, что умножение на И обратно устойчиво, если
V хорошо обусловлена. Ортогональные матрицы имеют максимально хоро-
шую обусловленность. □
Упражнение 3.2.71. Воспользуйтесь неравенствами из упражнения 2.1.32,
чтобы доказать п. (а) и (Ь). Затем используйте эти неравенства вместе с резуль-
татом упражнения 3.2.70, чтобы выполнить п. (с).
(а) Для всех Е е Rwx" и ненулевой А е К”4” справедливо || Е ||2 /1| А ||2 <
* «II Е II, /|| Л ||,.
(Ь) Для всех невырожденных V е R"4” справедливо < пк2(У).
(с) Покажите, что если Q е К”*” ортогональна, то fl(Q4) = Q(A + Е), где
II Е\\г/ || Л ||2 < «Зи + О(и2).
Конечно, множитель п3 слишком пессимистичен. Таким образом, умноже-
ние на ортогональную матрицу обратно устойчиво. □
Упражнение 3.2.72. Как можно улучшить результаты упражнений 3.2.70 и
3.2.71 для случая, когда Q (или V) является плоским вращением? □
Упражнение 3.2.73. Произведение Qx, где Q = /- ywr (с у = 2 /1| v ||22) является
отражением. На практике в вычисленных у и v имеются небольшие погрешности,
но для простоты мы не будем учитывать их. В принципе, Qx=у, где у = х - y(yTx)v.
(а) Пусть р = yvTx. Используя (2.5.3) и утверждние 2.7.1, покажите, что fl(p) =
= р + Р, где | 0 | < 2(n + 1 )«|| х ||2/1| v ||2 + О(и2).
(b) fl(Qx) = fl(y) = fl(x - fl(p)v). Покажите, что /-я компонента удовлетворяет
равенству fl(y,) = у, + dh где | Л,| < 2(и + 7)и||х||2 + О(«2).
3.3. Решение задачи наименьших квадратов
233
(с) Покажите, что fl(Qx) = Q(x + Sx), где || 8х ||2/ || х ||2 < у/п(2п + Т)и + О(и2).
(d) Предположим, что А е ИЛХЛ и мы определяем Q4, поочередно приме-
няя отражение Q к столбцам матрицы Л, по одному за раз. Покажите, что
fl(©4) = Q{A + £), где || Е ||F / ||Л ||f < 7^(2/1 + 7)м + О(м2). □
3.3. Решение задачи наименьших квадратов
Рассмотрим переопределенную систему
Ах = b, А е R',xm, b е R", п > т.
(3.3.1)
Наша цель — найти такой вектор х е К7”, который минимизирует || г ||2 =
= || ft - Лх||2. Пока мы не знаем, имеет ли решение эта задача. Если имеет, то
мы не знаем, единственно ли оно. В данном разделе будет дан ответ на эти
вопросы. Существование будет следовать из построения решения. Решение
будет единственным тогда и только, когда А имеет полный ранг.
Допустим, что Q е UV4" — ортогональная матрица, и рассмотрим преобразо-
ванную систему
QTAx = QTb.
(3.3.2)
Пусть s - невязка для преобразованной системы. Тогда s = Qrb - QTAx =
= QT{b - Ax) = QTr. Поскольку Q ортогональна, || s ||2 = || г ||2. Таким образом,
для заданного х невязка преобразованной системы имеет ту же норму, что и
невязка исходной системы. Следовательно, хе®"1 минимизирует || г ||2 тогда и
только тогда, когда он минимизирует || 5 ||2, т.е. обе переопределенные систе-
мы имеют одно и то же решение задачи наименьших квадратов.
Поэтому представляется разумным попытаться найти ортогональную мат-
рицу Q е R',xw, для которой система (3.3.2) имеет особенно простой вид [31]. В
предыдущем разделе мы узнали, что для заданной квадратной матрицы А су-
ществует Q такая, что QTA = R, где R — верхняя треугольная матрица. Таким об-
разом, линейную систему Ах = ft можно преобразовать в систему QTAx = QTb
(Rx = с), которую легко решить обратной подстановкой. Тот же подход приме-
ним и к задаче наименьших квадратов, но для этого нам нужна теорема о QR-
разложении для неквадратных матриц.
Теорема 3.3.3. Пусть А е R”x'", п> т. Тогда существуют Q е JRWX" и R е R"x/"
такие, что Q — ортогональная матрица, R =
R
О
где R е является верхней
треугольной матрицей, и А = QR.
Доказательство. Пусть А = [А А] е R',xw, где А е JR"X(',~'”) выбрана произволь-
но. Тогда по теореме 3.2.20 существуют Q, R е К”х” такие, что Q ортогональна,
R - верхняя треугольная и А = QR . Теперь разобьем R : R = [Л Т], где R е ИГХ/”.
234
Глава 3. Задача наименьших квадратов
Тогда А = QR. Так как R — верхняя треугольная матрица, R имеет вид
R
, где
О
R е _ верхняя треугольная матрица. □
Поскольку это 0Л-разложение получено сохранением части Q^-разложе-
ния п х «-матрицы, любой алгоритм, вычисляющий квадратное (^-разло-
жение, может быть с легкостью модифицирован под вычисление 0Л-разло-
жения п х «/-матриц. На практике не надо подбирать матрицу Л, чтобы по-
полнить Л, поскольку в конце эта часть матрицы так или иначе
отбрасывается. Преобразуется только Л и процесс останавливается, когда
будут преобразованы все столбцы, т.е. после т шагов. Например, алгоритм
(3.2.45) можно приспособить к работе с п х «/-матрицами, заменив верхний
предел индекса цикла на т и исключив последний оператор, который в
этом случае оказывается ненужным. Q получается неявно, как произведение
т отражений: Q = Q{Q2 ... Qm.
Упражнение 3.3.4. Покажите, что число флопов, необходимых для QR-
разложения п х «/-матрицы с помощью отражений, равно приблизительно
2пт2 - 2«?/3. (Таким образом, если п » «/, число флопов приблизительно
равно 2пт2.) □
0Я-разложение из теоремы 3.3.3 может быть, а может и не быть полезным
при решении задачи наименьших квадратов, в зависимости от того, полон или
неполон ранг матрицы Л. Напомним, что ранг матрицы равен числу линейно
независимых столбцов, или, что то же, числу линейно независимых строк.
Матрица Л е W1™ (« > т) имеет полный ранг, если ее ранг равен т, т.е., если ее
столбцы линейно независимы. В теореме 3.3.3 из равенства Л = QR следует, что
гапк(Л) < гапк(Л)1. С другой стороны, из равенства R = QTA получаем, что
гапк(Я) < гапк(Л). Отсюда гапк(7?) = гапк(Л) и Л имеет полный ранг тогда и
только тогда, когда R имеет полный ранг. Очевидно, гапк(Я) = гапк(Я), a R име-
ет полный ранг тогда и только тогда, когда она невырожденна. Таким образом,
R не вырождена тогда и только тогда, когда Л имеет полный ранг.
Случай полного ранга
Теперь рассмотрим переопределенную систему Ах = Ь, у которой Л имеет
полный ранг. Используя (^-разложение, можно привести систему к виду
QTAx = QTb или Rx = с, где с = QTb, Записывая с в виде с =
где с е Г. можем
представить невязку s = с - Rx как
1 Вспомним из элементарной линейной алгебры, что rank(ST) < rank(7) для любых матриц 5 и
Г, для которых произведение ST определено. Можете доказать это утверждение в качестве упраж-
нения.
3.3. Решение задачи наименьших квадратов
235
Таким образом,
1И11 = ZKP = 11с-я*111 + 1И11-
/=1
(3.3.5)
Поскольку член Ц^Ц! не зависит отх, то Ц5Ц2 минимизируется именно тогда,
когда минимизируется ||с -. Очевидно, Цс-ЛхЦз > 0 , причем равенство
имеет место тогда и только тогда, когда Rx-c. Так как А имеет полный ранг, R
не вырождена. Таким образом, Rx = c имеет единственное решение, которое в
таком случае является единственным вектором, минимизирующим || s ||. Сум-
мируем полученные результаты в виде теоремы.
Теорема 3.3.6. Пусть А е R"x'” и b е R", п > т, и предположим, что А имеет
полный ранг. Тогда задача наименьших квадратов для переопределенной системы
Ах -Ь имеет единственное решение, которое можно найти, решая невырожден-
с
d
ную систему Rx = c, где
— с = QTb, R е JRWX/” uQ е ИГ’4", как в теореме 3.3.3.
Упражнение 3.3.7. Решите эту задачу вручную. Рассмотрите переопределен-
ную систему
1
1
[х] =
9
5
матрица коэффициентов которой, очевидно, имеет полный ранг.
(а) Прежде, чем вы успеете что-то сделать, отгадайте решение задачи наи-
меньших квадратов этой системы.
(Ь) Найдите 0Л-разложение матрицы коэффициентов, где Q есть 2 х 2-вра-
щение, a R есть 2 х 1-матрица. Воспользуйтесь 0Л-разложением, чтобы найти
решение задачи наименьших квадратов. Определите также норму невязки (не
вычисляя ее прямо). □
При решении задачи наименьших квадратов на компьютере 0Я-разложе-
ние будет обычно вычисляться с помощью отражений, при этом Q хранится
в памяти в виде произведения отражений QiQ2-.-Qm- Таким образом, вычисле-
ние с = QTb = Qm...Q\b выполняется применением отражений к b в соответст-
вии с (3.2.40). Вспоминая, что каждое из отражений выполняет немного
меньше работы, чем предыдущее, находим, что общее число флопов для это-
го шага равно 4л + 4(л - 1) + 4(л - 2) + ... + 4(л - т + 1) « 4пт - 2т2. Уравне-
ние Rx = с можно решить обратной подстановкой, затратив л? флопов. По-
лезно вычислить также || rf||2 (за 2(л - т) флопов), так как это норма невязки,
связанной с решением задачи наименьших квадратов (см. (3.3.5)). Следова-
тельно, || d ||2 является мерой качества подгонки. Сравнивая это число флопов
с результатом упражнения 3.3.4, видим, что самым дорогим шагом является
вычисление (^-разложения.
Упражнение 3.3.8. Хорошо известен алгебраический факт, что каждый от-
личный от нуля полином степени < т - 1 имеет самое большее т - 1 различ-
236
Глава 3. Задача наименьших квадратов
ных корней. Используя его, докажите, что матрица в (3.1.3) имеет полный
ранг. □
Упражнение 3.3.8 показывает, что задача наименьших квадратов на основе
полиномов степени < т - 1 для т < п всегда имеет единственное решение, ко-
торое можно определить с помощью фЯ-разложения.
Упражнение 3.3.9. Напишите две подпрограммы на Фортране, решающие
задачу наименьших квадратов для переопределенной системы х = Ь, где А е
R"x/", п > т, и А имеет полный ранг. В первой подпрограмме воспользуйтесь от-
ражениями, чтобы выполнить 0Я-разложение А = QR, где Q е R"xw есть произ-
ведение отражений: Q = QXQ2nR =
е R"xw, где R есть верхняя треуголь-
ная матрица размеров т х т. Во всех этих операциях должны использоваться
единственный п х ди-массив плюс один или два вспомогательных вектора.
Если R содержит некоторый нулевой ведущий элемент, подпрограмма должна
установить признак ошибки, указывающий на то, что А не обладает полным
рангом.
Во второй подпрограмме воспользуйтесь 0Я-разложением для опре-
деления х. Сначала последовательным применением отражений вычис-
лите с = QTb = Qm...Qib. Для b необходим дополнительный одномерный
массив. Этот массив можно использовать и для с (и промежуточных ре-
зультатов). Решение х находится из системы Rx = с обратной подстанов-
. Во время решения надо определить || d ||2 — евклидову
с
d
кой, где с =
норму невязки.
Воспользуйтесь вашими подпрограммами, чтобы решить следующие за-
дачи.
(а) С помощью метода наименьших квадратов найдите квадратичную ап-
проксимацию для данных
-1 -0.75 -0.5 0 0.25 0.5 0.75
У, 1.00 0.8125 0.75 1.00 1.3125 1.75 2.3125
(Правильное решение есть функция ф(/) = 1 + t + t2, которая идеально ап-
проксимирует данные.)
(Ь) Найдите линейное приближение по методу наименьших квадратов доя
данных
1000 1050 1060 1080 1110 ИЗО
(а) у. 6010 6153 6421 6399 6726 6701
(Р)Л 9422 9300 9220 9150 9042 8800
с помощью базиса ф^/) = 50, ф2(/) = 1- 1065. Обратите внимание, что 0Я-разло-
жение нужно сделать только однажды. Нарисуйте график вашего решения и
точек данных.
3.3. Решение задачи наименьших квадратов
237
(с) Пусть
1 2 3 4’ Г- -1 '10'
5 6 7 8 Л1 26
9 10 11 12 Х2 = 42
1 1 1 1 х3 4
3 2 1 0_ _%4_ 6
Рассмотрите ги, r22i г33 и г44. Вы обнаружите, что некоторые из них близки к
нулю, и это подтверждает то, что матрица не имеет полного ранга. На самом
деле ее ранг равен 2. Эта задача иллюстрирует тот факт, что ваша программа
вряд ли заметит дефицит ранга. Хотя в принципе два из гп равны нулю, на
практике ошибки округления делают их всех отличными от нуля. С другой
стороны, стоит отметить, что «решение», выданное вашей программой, очень
хорошо отвечает заданным уравнениям. И в самом деле, это есть решение (с
точностью до ошибок округления). Как мы увидим, задача наименьших квад-
ратов для матрицы неполного ранга имеет бесконечно много решений, одно
из которых нашла ваша программа. □
Упражнение 3.3.10. Команду MATLAB’a qr, которую мы ввели в упражне-
нии 3.2.49, можно использовать при вычислении 0Л-разложения неквадрат-
ных матриц.
(а) Например, выполните следующие команды:
п = 6
m = 3
А = randn(n, m)
[Q,R] = qr (А)
Q'*Q
norm(eye(n)-Q' *Q)
norm(A-Q*R)
Ради удобства MATLAB выдает Q в полном виде.
(b) Напишите короткий скрипт MATLAB’a (m-файл), который решает за-
дачу наименьших квадратов с помощью команды qr. (Подматрица/? становит-
ся доступной посредством записи R (1 :m, 1 :т) или R (1 :т, :), например.)
Используйте ваш скрип, чтобы решить задачи наименьших квадратов из п. (а)
и (Ь) упражнения 3.3.9.
Это не самый простой способ решения задачи наименьших квадратов с по-
мощью MATLAB’a. Вспомните упражнение 3.1.5: команда х = А\Ь тоже не-
плохо выполняет эту работу. Это дает вам возможность проверить свои резуль-
таты. □
Случай неполного ранга
Хотя большинство задач наименьших квадратов имеет полный ранг, жела-
тельно уметь решать также и задачи, ранг которых не является полным.
238
Глава 3. Задача наименьших квадратов
Большинство таких задач можно решить с помощью разновидности QA-мето-
да, известной как QA-разложение с выбором ведущего столбца, которую мы
здесь рассмотрим. Более надежный (и более дорогой) метод, основанный на
сингулярном разложении (SVD), будет рассмотрен в гл. 4.
Если А не имеет полного ранга, основной QA-метод оказывается прин-
ципиально непригодным из-за вырожденности А: по крайней мере, один из
ее диагональных элементов гн, ..., гтт равен нулю. QA-разложение с выбо-
ром ведущего столбца переставляет столбцы так, что нулевые ведущие эле-
менты перемещаются в нижний правый угол матрицы А. Полученное разло-
жение оказывается пригодным для решения задачи наименьших квадратов с
неполным рангом.
Вначале мы будем игнорировать влияние ошибок округления. На шаге 1
вычисляется 2-норма каждого столбца матрицы А. Если j-й столбец имеет са-
мую большую норму, то столбцы 1 и J меняются местами. В остальном шаг 1
выполняется как и прежде: находится отражение, преобразующее первый
столбец к виду [-т^ 0, ..., 0]г. Это отражение затем применяется к столбцам от
2 до т. Так как |т J равно 2-норме первого столбца, цель перестановки столбцов
- сделать |т|| как можно большим. В частности, ф 0, если только А ф 0.
Второй шаг имеет дело с матрицами, полученными исключением первых
столбца и строки. В остальном он подобен первому шагу, за исключением
того, что при перестановке столбцов они переставляются целиком, а не только
их часть, принадлежащая подматрице. Отсюда следует, что после этой пере-
становки столбцов мы получим тот же результат, как если бы переставили
столбцы до выполнения QA-разложения.
Если матрица имеет полный ранг, то алгоритм останавливается после вы-
полнения т шагов. Результатом является разложение А = QA, где А — матрица,
"а"
о ’
где А - невырож-
полученная из А перестановкой столбцов. При этом А =
денная верхняя треугольная матрица. Если А не имеет полного ранга, найдется
такой шаг, когда мы будем вынуждены положить т, = 0. Это произойдет тогда и
только тогда, когда все элементы оставшейся подматрицы равны нулю. Пусть
это произойдет после выполнения г шагов. Полагая, что Q, е обозначает
отражение, использованное на шаге /, будем иметь
QrQr_\-Q\A =
^12
где Ап есть невырожденная верхняя треугольная г х r-матрица. Элементами ее
главной диагонали являются -тр -т2, ..., все не равные нулю. Очевидно,
rank(A) = г. Полагая Q = QXQ2... видим , что QT = QrQr_, ... Qp QTA = RnA =
QR. Поскольку гапк(Л) = гапк(Л) = rank(A), имеем гапк(Л) = г. Суммируем все
наши наблюдения в виде теоремы.
Теорема 3.3.11. Пусть А е R"xw и ее гапк(Л ) = г > 0. Тогда существуют мат-
рицы A, Q и R, такие, что А получена из А перестановкой ее столбцов, Q е ИГ4”
3.3. Решение задачи наименьших квадратов
239
является ортогональной, R =
^12
О
е R"xw, Лне Rntr есть невырожденная
О
верхняя треугольная матрица и
A = QR.
Посмотрим, как можно использовать это разложение при решении задачи
наименьших квадратов. Для заданного х е Rw обозначим через х вектор, полу-
ченный из х той же последовательностью перестановок его элементов, которая
в применении к столбцам А преобразовала Ав А. Тогда Ах = Ах, так что задача
минимизации || b - Ах\\2 эквивалентна задаче минимизации || b - Ах ||2. Приме-
нение QT к переопределенной системе Ах = b преобразует последнюю к виду
Rx = QTb = с или
О
Л12 Xj
О х2
с
d
где х(е Rr и с е Rr. Невязка этой преобразованной системы равна
5_ с ~Rxxxx~Rx2x2
d
и имеет норму
II s lb = Vll^ “^11*1 “^12*2 П2 +IMII2 •
Понятно, что ничего нельзя сделать с членом ||rf|||. Минимизируем || s ||2,
минимизируя ||с-ЛиХ|-Л12х2 Н2- Этот член никогда не бывает отрицатель-
ным, но существует много значений х, для которых он равен нулю. Каждый из
этих х является решением задачи наименьших квадратов для переопределен-
ной системы Ах = Ь.
Чтобы понять, как вычисляются эти х, вспомним, что Ли невырожденна.
Таким образом, для любого х2 е "г существует единственное хх е Rr такое,
что
ЛцХ| - с - /?12х2.
Поскольку Rxx - верхняя треугольная матрица, Xj можно найти обратной
подстановкой. Тогда с - 7?НХ| - Я12х2 = 0 и
является решением задачи
х =
LX2 J
наименьших квадратов для Ах = b . Мы, таким образом, доказали следующую
теорему.
240
Глава 3. Задача наименьших квадратов
Теорема 3.3.12. Пусть А е Rwx/" и b е п > т. Тогда задача наименьших
квадратов для переопределенной системы Ах - Ь всегда имеет решение. Если
гапк(Л) < т, имеется бесконечное множество решений.
Мы не только доказали теорему, но и построили алгоритм, который можно
применить для поиска некоторого решения задачи наименьших квадратов. Та-
ким образом, задача решена в принципе.
На практике ранг матрицы А часто неизвестен. Тогда частью задачи стано-
вится определение ранга. Ошибки округления усложняют задачу. После г шагов
(^-разложения с выбором ведущего столбца маторица А преобразуется к виду
R
Qr -GM =
12
где подматрица , е JR™ невырожденна. Если гапк(Л) = г, то, в принципе, Я22 = О
(сообщая нам, что ранг равен г), и на этом алгоритм останавливается. На прак-
тике R22 будет подпорчена ошибками округления и не будет точным нулем.
Наш критерий определения ранга должен это учитывать. Так, например, мы
можем решить, что R22 является «численным нулем», если наибольшая норма
ее столбцов меньше е || А ||, где е — некоторый малый параметр, зависящий от
машинной точности и точности задания данных. Этот подход обычно работает
хорошо. Существуют матрицы вида
R =
о
«почти» вырожденные по рангу, у которых нет слишком малых |xj. Такие при-
меры были указаны Каханом в [48, с. 31]; см. также упражнение 4.2.21. Бли-
зость этих матриц к матрицам неполного ранга вряд ли будет обнаружена на-
шим простым критерием. Более надежный подход к определению неполноты
ранга заключается в использовании сингулярного разложения (гл. 4).
Стоит упомянуть еще несколько деталей реализации. На каждом шаге нам
нужно знать нормы столбцов оставшейся матрицы. Если эти вычисления вы-
полняются неэкономно, они могу существенно увеличить затраты на выпол-
нение алгоритма.
Упражнение 3.3.13. Покажите, что если на каждом шаге нормы столбцов
вычисляются стандартным образом, общие затраты на вычисление норм со-
ставят около пт2 - {/3т3 флопов. Как велико это в сравнении с остальными за-
тратами алгоритма? □
К счастью, затраты можно постепенно уменьшать на каждом из шагов 2, 3,
..., т, используя при этом результаты предшествующих шагов, вместо пересче-
та норм каждый раз с самого начала. Для примера посмотрим, как получить на
втором шаге информацию о норме, воспользовавшись результатами первого
шага. Пусть vb v2, •••, vm обозначают квадраты норм столбцов матрицы А (вы-
3.3. Решение задачи наименьших квадратов
241
числение которых стоит 2пт флопов). Мы работаем с квадратами ради удобст-
ва. Для простоты обозначений предположим, что V! — наибольший из них
(или, что перестановка столбцов шага 1 уже выполнена). После шага 1 имеем
Q\A = ~Ti ^12 • 31т
0 022 . .. з2т
0 3„2 . •• апт
Поскольку Qi ортогональна, она сохраняет длину векторов. Следовательно,
нормы столбцов матрицы QXA такие же, как у столбцов матрицы А. Для второ-
го шага нам нужны квадраты столбцов подматрицы
^22 ^2т
Зп2 Зпт
Очевидно, их можно получить с помощью операций
Ъ <- Ъ - J = 2> •••> т-
На это затрачивается лишь 2(т - 1) флопов вместо 2(п - 1)(ди - 1) флопов,
необходимых для вычисления квадратов норм суммированием с нуля.
Поскольку нужно вычислять 2-нормы, существует опасность переполне-
ний или потери значимости. Этой опасности можно избежать, если заранее
перемасштабировать всю задачу. Например, можно вычислить v = max \а0\ и
умножить все элементы в А и b на 1 /и Затраты на это масштабирование состав-
ляют О(пт). Если эта операция масштабирования уже выполнена, нет необхо-
димости проводить масштабирование при определении отражений (3.2.37).
В заключение приведем некоторые соображения относительно перестанов-
ки столбцов. Мы уже отмечали, что при каждой перестановке столбцы переме-
щаются целиком. Конечно, при этом соответствующим образом надо поме-
нять информацию о нормах. Необходимо также вести запись перестановок,
поскольку найденное решение х является решением задачи наименьших квад-
ратов для системы Ах = Ь, полученной с помощью перестановок. Чтобы полу-
чить решение х исходной системы, надо применить обратные перестановки к
элементам х. Это достигается выполнением перестановок в обратном порядке.
Упражнение 3.3.14. Покажите, что после (ZK-разложения с выбором веду-
щего столбца элементы главной диагонали удовлетворяют неравенствам
|т1|>|т2|>...>|4 □
Упражнение 3.3.15. Чтобы использовать MATLAB-комманду qr при опре-
делении (^-разложения с выбором ведущего столбца, просто воспользуйтесь
командой с тремя выходными аргументами
[Q,R,Р] = qr (А)
242
Глава 3. Задача наименьших квадратов
Это дает множители Q и R плюс матрицу перестановок такие, что
АР = QR. Предназначение матрицы перестановок (примененной справа!) -
переупорядочить столбцы. Выполните следующую последовательность ко-
манд MATLAB’a:
А = randn (5,3)
А = A*diag([1 3 9])
[Q,R,P] = qr (А)
В чем смысл команды diag? О чем говорит вам матрица перестановок Р? □
3.4. Процедура Грама—Шмидта
В этом разделе мы введем понятие ортонормированного множества, но-
вую формулировку СЛ-разложения и процедуру Грама—Шмидта ортонорми-
рования линейно независимого множества векторов. Основной результат за-
ключается в том, что выполнение ортонормирования Грама-Шмидта экви-
валентно вычислению 0Я-разложения. Отсюда следует, что процедура
Грама—Шмидта может быть использована при решении задач наименьших
квадратов.
Говорят, что множество векторов ql9 q2,.... qk е R* является ортонормирован-
ным, если они попарно ортогональны и евклидова норма каждого вектора рав-
на 1, т.е.
. . [О, еслиу,
= < . .
II, если i = у.
Пример 3.4.1. Пусть eh е2, ..., еп — столбцы единичной матрицы:
Очевидно, что е}, е2, образуют ортонормированное множество. На са-
мом деле они образуют ортонормаированный базис, поскольку они образуют
базис в R". В дальнейшем мы будем называть ei9 е2,..., еп стандартным базисом
в а обозначение еь ..., еп закрепим за этим базисом. □
Теорема 3.4.2. Пусть Q е Кяхя. Q является ортогональной матрицей тогда и
только тогда, когда ее столбцы (строки) образуют ортонормированное множе-
ство.
3.4. Процедура Грама—Шмидта
243
Доказательство. Пусть qx, q2, ..., qn обозначает столбцы матрицы Q. Тогда
QTQ = Г т “1 т 91 [?i 91 " 9„} = 9х 9i 9i9i 9\9i 9191 Т “1 9х 9„ т 91 9 „
т т „ т т
\9п J \9„9i 9 „91 9„ 9п\
Таким образом, элементы матрицы QTQ являются внутренними произведе-
ниями {qt, q). Очевидно, QTQ - / тогда и только тогда, когда qx, q2, образу-
ют ортонормированное множество. Аналогичная теорема для строк следует из
рассмотрения произведения QQT или из простого наблюдения, что QT ортого-
нальна тогда и только тогда, когда ортогональна Q. □
Упражнение 3.4.3.
(а) Пусть А е Rwx/" и пусть ех, е2, ..., ет обозначает стандартный базис в
Проверьте, что z-й столбец матрицы А i = 1, ..., т. Таким образом, А -
= [Аех ... Ает]. Это простое утверждение будет часто использоваться в даль-
нейшем.
(Ь) Используйте утверждение п. (а) вместе со свойством ортогональных
матриц сохранять внутреннее произведение, чтобы получить второе доказа-
тельство того, что столбцы ортогональной матрицы ортонормированы. □
Используя как ориентир теорему 3.4.2, введем новый класс неквадратных
матриц, обладающих некоторыми свойствами ортогональных матриц. Матри-
ца Q е НЯХЛ, п > т, называется изометрической (или изометрией), если ее столб-
цы ортогонормированы.
Упражнение 3.4.4. Докажите, что Q е изометрична тогда и только тогда,
когда QTQ = / (в ]RWXW). □
Из этого упражнения не следует, что QT есть О"1. Только квадратные матри-
цы имеют обратные. Также неверно, что QQT есть единичная матрица.
Упражнение 3.4.5. Пусть Q е Rwxw (п > т) является изометрией со столбцами
^2, •••> Qm-
(а) Покажите, что QQrv - 0, если v ортогонален qx, q2, ..., qm.
(b) Покажите, что QQTqi - qlt i = 1, ..., m. Следовательно, QQT ведет себя по-
добно единичной матрице в соответствующем подространстве пространства К”.
(с) Покажите, что (0С7)2 = QQT. Таким образом, QQT есть проектор. На са-
мом деле, это ортопроектор. (См. замечание 3.2.24.) □
Упражнение 3.4.6. Покажите, что если Q е Кяхда есть изометрия, то
(a) {Qx, Qy) = {х, у) при всех х, у е ИГ".
(Ь) || Qx ||2 = || х ||2 при всех х е 1Г.
(Обратите внимание, что в левых частях этих равенств нормы и внутренние
произведения берутся в К”, а не в Rw.) □
Таким образом, изометрия сохраняет нормы, внутренние произведения и
углы. Утверждения, обратные к приведенным в обеих частях упражнения 3.4.6,
также справедливы1.
1 Термин изометрия обязан своим происхождением свойству сохранения нормы: изометриче-
ским называется оператор, сохраняющий метрику (т.е. в нашем случае норму).
244
Глава 3. Задача наименьших квадратов
Сжатое ^-разложение
Теорема о 07?-разложении для неквадратных матриц может быть доказана
более элегантно в терминах изометрии.
Теорема 3.4.7. Пусть A g R"x/", п > т. Тогда существуют матрицы Q и R та-
кие, что Qe Rwx'” является изометрией, Re №хт есть верхняя треугольная матри-
ца и А = QR.
Доказательство. Если п-т, получаем просто теорему 3.2.20. Если п > т, то
из теоремы 3.3.3 мы знаем, что существуют матрицы Q е R”x” и R е R”x/n такие,
R
0
что Q ортогональна, R =
R е R'”xw — верхняя треугольная матрица и А = QR.
Пусть Qe R"xw есть матрица, состоящая из первых т столбцов матрицы Q. Оче-
видно, Q изометрична. Пусть Qe №пх<п~т'> — последние п-т столбцов матрицы
Q. Тогда
А = QR = [QQ]
= QR + 00,
т.е. А = 0А. Поскольку 0 и R имеют желаемые свойства, доказательство завер-
шено. □
Если А имеет полный ранг, теорема 3.4.7 может быть усилена свойством
единственности 0 и Я.
Теорема 3.4.8. Пусть А е Rwx/”, п>т, и rank(J) = т. Тогда существуют един-
ственные Q е R"xw и R е ^тхт такие, что Q является изометрией, R — верхней
треугольной матрицей с положительными элементами на главной диагонали и
А = QR.
Доказательство подобно доказательству теоремы 3.2.46, и мы оставим его в
качестве упражнения.
Упражнение 3.4.9. Докажите теорему 3.4.8. □
В случае полного ранга разложения теорему 3.4.7 или теорему 3.4.8 можно
использовать при решении задачи наименьших квадратов переопределенной
системы Ах = Ь. Пусть с = QTb. Легко проверить, что этот вектор тот же, что и
вектор с из теоремы 3.3.6, и решение задачи наименьших квадратов может
быть сведено к решению системы Rx = с обратной подстановкой. Используя
этот вид 0А-разложения, мы не получим норму невязки в форме || d ||2.
Краткий обзор
Прежде чем перейти к процедуре Грама—Шмидта, сделаем обзор некото-
рых элементарных результатов о подпространствах пространства К”. Вспом-
ним, что подпространством в R” называется непустое подмножество S из R",
3.4. Процедура Грама-Шмидта
245
замкнутое относительно операций сложения и умножения на скаляр, т.е. S яв-
ляется подпространством пространства R”, тогда и только тогда, когда для лю-
бых v, we S ис е R имеем v + w е Shcv е S. Если даны векторы Vj, ..., Rrt,
то их линейной комбинацией называется вектор вида с,Vj + c2v2 + ••• + cmvm, где
Cj, с2, ..., с,„ 6 R. Числа ch ..., ст называются коэффициентами линейной комби-
нации. Если воспользоваться символом суммы, то линейная комбинация при-
мет вид Линейной оболочкой векторов v,, ..., обозначаемой через
span{vh ..., v/w}, называется множество всех линейных комбинаций векторов
Vi,..., v,„. Ясно, что span{vb..., vj замкнута относительно операций сложения и
умножения на скаляр, т.е. является подпространством в R".
Хотя мы уже использовали термины линейная независимость и базис, все же
уделим немного времени рассмотрению их точного смысла. Векторы vb ..., vm
линейно независимы, если уравнение с,v, + c2v2 + ••• + cmvm = 0 имеет едиственное
решение с, = с2 = ... = ст = 0. Другими словами, единственной линейной комби-
нацией векторов Vj, ..., vm, равной нулю, является комбинация, все коэффи-
центы которой равны нулю. Если множество vb ..., vm не является линейно не-
зависимым, то оно назвается линейно зависимым.
Каждое ортонормированное множество является линейно независимым:
пусть qu ..., qm - ортонормированное множество и cxqx + c2q2 + ... + cmq,n = 0.
Выполнив внутреннее умножение обеих частей уравнения на qp най-
дем, что
С|(<7ь 4j> + c2{q2, q) + ... + cm{qm, qj = (0, q) = 0.
Поскольку (qh q) = 0 при всех i, кроме i = j, a (q, q) = 1, то уравнение сво-
дится к Cj = 0. Это справедливо при всех J, так что с} = с2 = ... = ст = 0. Таким
образом, qif ..., qm линейно независимы. Конечно, обратное не верно: суще-
ствует много линейно независимых множеств, не являющихся ортонормиро-
ванными.
Упражнение 3.4.10. Дайте примеры множеств из двух векторов в R2, ко-
торые
(а) ортонормированны. (Придумайте что-то, отличное от elf е2.)
(Ь) линейно независимы, но не ортогональны (и поэтому не ортонормиро-
ваны).
(с) линейно независимы. □
Упражнение 3.4.11. Докажите, что векторы vb ..., vm линейно независимы
тогда и только тогда, когда ни один из них нельзя представить в виде ли-
нейной комбинации других — символически v, £ span{vb ..., vy_ b vy + b ..., vj
для j - 1, ..., m. □
Пусть S - подпространство в R" и vb ..., vm e S. Тогда, очевидно,
span{v,, ..., vj c S.
Будем говорить, что vb ..., vm порождают оболочку S, если span{vb ..., vm} = S.
Это означает, что каждый элемент в S может быть представлен в виде линей-
246
Глава 3. Задача наименьших квадратов
ной комбинации векторов vh vm — говорят, что vh vm образуют остов для S.
Базис подпространства S — это линейно независимый остов. Если vb ..., ли-
нейно независимы, то они образуют базис оболочки span{vj,..., vj, поскольку
являются остовом по определению. Вспомните из элементарного курса линей-
ной алгебры, что каждое подпространство в R” имеет базис, а на самом деле
имеется много базисов. Любые два базиса множества Е имеют одно и то же
число элементов. Это число называется размерностью подпространства S. Так,
например, если ..., vm линейно независимы, то span{V],..., vm} имеет размер-
ность т.
Классическая процедура Грама—Шмидта
Процедура Грама-Шмидта является алгоритмом построения орто-
нормированных базисов. Пусть S есть подпространство в IT и ..., vm -
базис в S. Процедура Грама-Шмидта, взяв в качестве исходных векторы
..., vm, на их основе строит ортонормированные векторы qx, ..., qm, об-
разующие базис в S. Таким образом, S = span^, ..., vj = span{0b ..., qm}.
На самом деле, известно большее: эти векторы удовлеворяют соотноше-
ниям
span{^j} = span{V|},
spanfap q2} = span{v1; v2},
span{<7,, q2, q2} = spanfvp v2, v3},
(3.4.12)
span{0p q2, ..., qm} = span{vp v2, ..., vm}.
Эти соотношения очень важны.
Для заданных линейно независимых векторов v„ vw е R" найдем орто-
нормированные векторы qx, ..., qmi удовлетворяющие (3.4.12). Чтобы удовле-
творить span{^j} = span{V]}, возьмем qx кратным Поскольку требуется, чтобы
|| qx ||2 = 1, положим = (1 / /*n)vi, где /*и = || ||2. Известно, что гп ф 0, потому что
vb ..., vm линейно независимы и, следовательно, * 0.
Из равенства qx = (1 / следует, что qx е spanfvj, откуда span^J с
с span{Vj}. Обратно, из равенства Vj = rxxqx следует, что V| е span^}, и, следова-
Рис. 3.5. Построение q2.
тельно, spantvj g span{0j}. Таким об-
разом, spanfvj = span{0|}.
На втором шаге алгоритма нахо-
дим q2 такой, что q2 ортогонален qx,
\\q2\\2 = 1 и span{<7p q2} = span{vb v2}.
Использум рис. 3.5 в качестве ориен-
тира. На нем пространство span{v15 v2}
представлено плоскостью страницы.
Мы ищем такой q2, что qx, q2 образуют
3.4. Процедура Грама—Шмидта
247
ортонормированное множество, линейной оболочкой которого является плос-
кость. Рисунок наводит на мысль, что можно построить вектор q2, который ле-
жит в плоскости и ортогонален к qx, просто вычитая из v2 соответствующее
кратное qx. Мы получим q2 , умножая q2 на соответстующим образом подоб-
ранный множитель. Таким образом, положим
Я1 - v2 - г 12^15
(3.4.13)
где г12 — скаляр, который надо выбрать так, чтобы {q2, q^ = 0.
Упражнение 3.4.14. Покажите, что вектор q2, определенный формулой
(3.4.13), удовлетворяет условию (q2, qx) - 0 тогда и только тогда, когда ri2 =
<v2, qx). □
Положив r12 = (v2, qx), имеем (q2, qx} = 0. Ясно, что при этом q2 * 0, ибо если
бы это было не так, мы имели бы v2 = rI2 0j е span^}. Но из линейной незави-
симости Vj и v2 следует, что v2 £ spanfvj = span{0j. Пусть r22 = || q21|2 ф 0, и опре-
делим q2 = (1 / r22) q2. Тогда, очевидно, || q2||2 = 1 и (qx, q2) - 0. Из рис. 3.5 интуи-
тивно понятно, что span{^h q2} = spanfv^ v2}, и легко доказать, что это дейст-
вительно так. Прежде всего, qx е span{vj a span{vb v2}. Кроме того, q2 е span{^bv2} =
= span{vh v2}. Поскольку 0b q2 e span{vb v2}, имеем span{0b q2} c span{vj, v2}. Об-
ратно, Vje span{0j} c span{0b q2} и v2 = r[2qx +q2= rl2qx + r22q2 e span{0b q2}. По-
скольку v2 e span{0b q2}, имеем span{vb v2} a span{0b q2}. Таким образом,
span{0b q2} = span{vh v2}.
Теперь рассмотрим к-й шаг. Пусть мы нашли ортонормированнные векто-
ры 0Ь 02,..., 04_] такие, что span{0b ..., 0,} = span{vb ..., vj, i = 1,..., k-\. Попро-
буем определить qk. По аналогии с (3.4.13) найдем вектор qk вида
Л-1
Qk = vk -
7=1
(3.4.15)
который ортогонален к qx,..., qk _,. Из равенств {qk, q) = 0, i = 1,..., к - 1, следу-
ет, что
= о, i = 1, ..., к - 1.
7=1
Так как q) = 0 при i *j и {qh q) = 1, эти уравнения сводятся к
г,к = {Vk.q}, i = 1. •••> £ - 1.
(3.4.16)
Обратно, если rik определены выражениями (3.4.16), тогда qk ортогонален к
Яъ •••, Як -1-
248
Глава 3. Задача наименьших квадратов
Как и в случае к = 2, легко показать, что qk ф 0. В противном случае мы име-
л-i
ли бы vk = е sPan{<h, •••> Як- ib Но из линейной независимости vb ..., vk
;=i
следует, что vk £ span{vb ..., vk_ J = span^, ..., qk_ J. Положим
rW = ll^ll2>0 (3.4.17)
и определим
(3.4.18)
Гкк
Тогда, очевидно, || ^||2 = 1 и {qb q) = 0, i = 1, ..., к - 1.
Также легко проверить, что span{^,,..., qk} = span{vb ..., vj. См. упражнения
3.4.38 и 3.4.39.
Равенства 3.4.16, 3.4.15, 3.4.17 и 3.4.18 представляют собой Л-й шаг класси-
ческой процедуры Грама—Шмидта. Выполняя этот шаг для k = 1,..., т, получим
qx, ..., qm. Ниже алгоритм сведен воедино.
Классический алгоритм Грама—Шмидта. Для заданных линейно независимых векто-
ров vp v2, строится ортонормированное множество векторов q{, q2, ..., qm таких, что
span{^p qt} - span{vp ..., v,.} для i = 1, ..., m; при этом qlt ..., qm записываются на место
vp vm.
for k = l,..., m
for i= 1,...,k -1 (пропустить, если к = 1)
\rik (vk» vd (vi потом перейти в (?,-.)
for i = 1,..., fc-1
К <- vk - vf*
(vk теперь содержит qk)
'h <-llnll2
if (rkk =0) установить флаг (vb ..., vk зависимы), выход
Ук
(3.4.19)
Эквивалентность алгоритмов Грама—Шмидта и (^-разложения
Обещанная связь с (/^-разложением прямо следует из формул Гра-
ма-Шмидта. Комбинируя (3.4.15) и (3.4.18) и решая их относительно vk, по-
лучим
Л-1
= + к = Ь т’ (3.4.20)
j=i
3.4. Процедура Грама-Шмидта
249
или
V1 = 0/11,
Vi = Я\ГП + q2r22,
*3 = 0/13 + 02^23 + 0з',зз>
V„ = 0/lm + 0/2» + - + ЧтГпт-
Это можно объединить в одно матричное уравнение
Определяя
[V, v2 ... vj = [?! q2 ... qm]
Г1т
^тт _
О О
v= [Vl v2 ... vm] e Rw4w,
Q = [<7i <h Qm] e R"x/",
'11 '12 'lm
0 '22 '1/n
_0 0 •••
(3.4.21)
мы видим, что V имеет полный ранг, Q изометрична, R — верхняя треугольная
матрица с положительными элементами на главной диагонали (в силу (3.4.17))
и V=QR. Таким образом, Q и R - однозначно определенные сомножители для
И в полном согласии с теоремой 3.4.8.
Это доказывает, что процедура Грама-Шмидта дает другое средство вычис-
ления 0Л-разложения: дана матрица V е R"x/” (п > т) полного ранга, и пусть
vb ..., vm - ее столбцы; применим процедуру Грама-Шмидта к ..., vw, чтобы
построить ортонормированное множество qb ..., qm и коэффициенты rjk\ после
этого определим Q и R с помощью (3.4.21), чтобы получить 0Я-разложение
матрицы И Обратно, любой метод получения 0Я-разложения можно исполь-
зовать для ортогонализации векторов: пусть ..., vm обозначает линейно не-
зависимое множество, которое нужно ортонормировать; определим К= ... vj е
е Rwx/” и применим отражения, вращения и другие средства, чтобы построить
единственное ^-разложение матрицы V в соответствии с теоремой 3.4.8;
пусть ^i, ..., qm обозначают столбцы полученной изометрии Q; тогда, ввиду
единственности 07?-разложения, qh ..., qm — это именно те векторы, которые
будут получены с помощью процедуры Грама—Шмидта. Итак, мы имеем ос-
новной результат этого раздела: ортогонализация Грама—Шмидта эквивалент-
на (^-разложению.
250
Глава 3. Задача наименьших квадратов
Упражнение 3.4.22.
(а) Положим Vi = [ 3, -3, 3, -3]Т, v2 = [ 1, 2, 3, 4]ги S = span{vbv2} е ^4- Приме-
ните процедуру Грама-Шмидта к S, чтобы получить ортонормированный ба-
зис S. Сохраните коэффициенты rJk.
(b) Пусть
3 1
Используйте результаты п. (а), чтобы построить изометрию Q g R4x2 и верх-
нюю треугольную матрицу R е R2x2 такие, что V - QR.
□
Модифицированная процедура Грама-Шмидта
Поскольку процедура Грама-Шмидта дает 0Л-разложение, ее можно, в
принципе, использовать при решении задачи наименьших квадратов. К сожа-
лению, классическая процедура Грама—Шмидта оказывается численно неус-
тойчивой: небольшие ошибки округления приводят к тому, что вычисленные
векторы оказываются совсем не ортогональными. Достойно удивления, что
небольшая модификация алгоритма делает его устойчивым.
При вычислении qk по процедуре Грама-Шмидта вычисляются все коэф-
фициенты rik сразу, а затем выполняются обновления
*-i
Qk = vk -
/=1
также все сразу. Модифицированная процедура Грама—Шмидта вычисляет ко-
эффициенты по одному. Как только ги = (vk,q^ вычислен, он сразу использует-
ся для обновления vk:
V*‘) = Vk -
Теперь ортогонален к qv Следующий коэффициент r2k вычисляется с
использованиием vk} вместо vk, т.е. берется r2k = (v*0, q2). После этого делается
следующее обновление:
v(2) _ v(o _ г п
чтобы получить вектор v<2), ортогональный и к qx Теперь используем
у<2) вместо vk, чтобы вычислить гЗА_, и т.д. После к - 1 таких обновлений получа-
ем vkk~[} (= qk), который ортогонален к q{,qk_ г В таком случае qk получается
3.4. Процедура Грама-Шмидта 251
нормировкой Таким образом, к-й шаг модифицированной процедуры
Грама-Шмидта выглядит следующим образом:
v<0)
vk к
for i = 1, £-1
'Uk
у?
йк «-ФГЧ
Як «-О / >**
(3.4.23)
Мы поставили тильды над и rik поскольку (возможно) пока не ясно, что
векторы и коэффициенты, вычисленные с помощью данного алгоритма, тео-
ретически совпадают с полученными по классической процедуре Гра-
ма-Шмидта. В упражнениях 3.4.40 и 3.4.41 вы увидите, что без учета ошибок
округления модифицированная и классическая процедуры Грама—Шмидта
дают один и тот же результат.
Упражнение 3.4.24. Данное упражнение связано с (3.4.23). Для начала пред-
положим, что^, ..., qk_A ортонормированы.
(а) Покажите, что ортогонален к^.
(Ь) Покажите, что v<2)ортогонален и к и к q2.
(с) Докажите индукцией по у, что ^ортогонален и к qi9 q2, ..., qj.
(d) Докажите, что q{, ..., qk_{i <]кестъ ортонормированное множество.
Следовательно, как это показывает индукция по к, модифицированная
процедура Грама-Шмидта порождает ортонормированное множество. □
При реализации модифицированной процедуры Грама—Шмидта в виде
компьютерной программы все векторыv(kJ\j = 1,..., к - 1, каки все исходные и
конечные векторы ук и qk, можно хранить в одном и том же месте. При этом
алгоритм будет выглядеть следующим образом.
Модифицированный алгоритм Грама—Шмидта. Для данных линейно независимых векто-
ров V,, алгоритм строит ортонормированные q2J ..., qm такие, что span{^p ..., q{} =
span{v,, v.} при i = 1, ..., /и; при этом qlt ..., qm записываются в память на место vp ..., vm.
for £ = 1, ..., т
for /=1, к-\ (пропуститьесли к = 1)
Гг/А <- (vk, V,-) (V,- перейти в qf)
[h Wk (3.4.25)
(vk теперь содержит у<*"°)
4* HI v*||2
if (га=0) установить флаг (Vj, ..., vk зависимы), выход
.V* «-000*)”*
252
Глава 3, Задача наименьших квадратов
Сравнивая этот алгоритм с классическим алгоритмом Грама-Шмидта
(3.4.19), видим, что единственное отличие состоит в слиянии двух циклов по i
из (3.4.19) в один цикл в (3.4.25). Очевидно, оба алгоритма требуют для своей
реализации одно и тоже число флопов.
Классический и модифицированный алгоритмы Грама—Шмидта, в прин-
ципе, дают одни и те же результаты, которые на практике отличаются, потому
что по-разному вычисляются коэффициенты rik\
file = и rik = q,).
Оба метода совершенно идентичны вплоть до вычисления q2 , и поэтому,
чтобы увидеть различия, нужно вычислить хотя бы q3. Чтобы найти q3, сначала
вычислим
Яз = Ъ - rx3qx - r23q2.
Будем называть r23 Яг составляющей у3 в направлении q2. Это точно то кратное
q2i вычитание которго из v3 дает вектор, ортогональный q2. Для успешного уда-
ления этой составляющей необходимо точно вычислить коэффициент г23. Тео-
ретически v3 и v^!) = v3 - r13 qx имеют одну и ту же составляющую в направлении
q2 и поэтому безразлично, что вычислять: r23 = (у3, q2) или г23 = (v32), ЯгУ Это
следует из ортогональности qx к q2\ дополнительный член не должен (теорети-
чески) влиять на вычисление коэффициента. Однако на практике векторы qx и
q2 не совсем ортогональны из-за ошибок округления, так что член rx3qx имеет
небольшую составляющую в направлении q2. Более того, ошибки округления
возникают и при вычитании ri3^1 из v3. Вектор ошибок округления также имеет
небольшую составляющую в направлении q2. Классическая процедура Гра-
ма-Шмидта не учитывает эти ошибки. Напротив, модифицированная проце-
дура, используя вместо v3, учитывает эти ошибки и вносит необходимые
поправки при вычислении г23. Это повторяется при вычислении qs и далее.
В результате при наличии ошибок округления модифицированная процедура
Грама—Шмидта создает векторы, более близкие к ортогональным, чем векто-
ры, порождаемые классической процедурой. Красноречивый пример приво-
дится в следующем упражнении и далее идут дополнительные примеры.
Упражнение 3.4.26. Пусть
где е « 1. Обратите внимание, что эти векторы почти линейно зависимы.
Предположим е настолько малым, что е2 < и, где и — единичная ошибка округ-
ления. Тогда fl(l + £2) = 1.
(а) С помощью классической процедуры Грама-Шмидта ортогонализируй-
те эти векторы, используя приближение 1 + е2 = 1. Хотя компьютер сделает
3.4. Процедура Грама—Шмидта
253
дополнительные ошибки округления, для простоты можете считать дальней-
шие вычисления точными. Для полученных q2 и q2 имеем {q2, q3) = так что
они далеко не ортогональны.
(Ь) Повторите п. (а), используя модифицированную процедуру Гра-
ма-Шмидта, и обратите внимание, что q2 и о, удовлетворяют условию {q2, q3) =
0. Поскольку (^i, q2) - -e/TI и {q]9 q2) = -е/д/б, видно, что модифицированный
алгоритм Грама—Шмидта хорошо выполнил работу получения ортонормиро-
ванных векторов из очень плохо обусловленных исходных векторов. И все
благодаря вычислению г2з- □
Эффективность методов решения задачи наименьших квадратов
Благодаря хорошим вычислительным свойствам отражений и вращений
метод (^-разложения, использующий эти виды преобразований, решает зада-
чу наименьших квадратов (для случая полного ранга) с максимально возмож-
ной точностью. Оказывается, что модифицированная процедура Гра-
ма-Шмидта решает эту задачу не менее точно [7]. Как показано в упражнении
3.4.43, модифицированная процедура Грама—Шмидта затрачивает флопов не-
многим больше, чем 0Я-разложение, использующее отражения.
Эффективность методов ортонормирования
Процедура Грама-Шмидта первоначально использовалась как алгоритм
ортонормирования векторов. Лишь после того, как была установлена ее связь
с QA-разложением, процедура стала рассматриваться как метод решения зада-
чи наименьших квадратов. Можно обратить эту точку зрения и посмотреть на
алгоритм QA-разложения посредством отражений как на метод ортонормиро-
вания системы векторов. Если мы хотим использовать алгоритм с этой целью,
необходимо выполнить дополнительную работу: явным образом представить
ортогональную матрицу Q в виде произведения отражений. Если мы хотим по-
лучить ортонормированные векторы, нужно построить матрицу Q. Оказывает-
ся, что эта дополнительная работа приводит к удвоению числа флопов, затра-
чиваемых алгоритмом, и делает его дороже модифицированного метода Гра-
ма-Шмидта (см. упражнение 3.4.44). При этом, конечно, не надо забывать,
что число флопов является лишь грубой оценкой затрат при использовании
алгоритма. Главный вывод состоит в том, что затраты этих различных алгорит-
мов мало отличаются друг от друга.
Из-за ошибок округления мы не можем рассчитывать на то, что получен-
ные векторы будут точно ортогональными. В лучшем случае можно ожидать,
что \{qh q)\ < си при i * j, где си — кратное единичной ошибки округления и с
умеренным значением с. Полезно иметь некоторую меру отклонения от орто-
нормированности. Векторы ql9 qm ортонормированны, тогда и только тогда,
когда матрица Q = ... qm] изометрична. Это значит, что QTQ = 1т или, что эк-
вивалентно, Im - QTQ = 0. Если векторы лищь слегка отличаются от ортонорми-
рованных, то матрица Im - QTQ близка к нулю, и наоборот. Поэтому возьмем
II Ап - QTQ || в качестве меры отклонения от ортонормированности.
254
Глава 3. Задача наименьших квадратов
Замечательные вычислительные свойства отражений гарантируют хороший
результат их использования при ортонормировании. Полученные векторы
обычно удовлетворяют приближенному равенству
II 4 - QTQ ||2 « си,
т.е. невязка кратна единичной ошибке округления с умеренным значением с.
Не стоит надеяться получить лучший результат. В противоположность этому,
векторы, полученные с помощью модифицированного алгоритма Гра-
ма-Шмидта, отклоняются от ортогональности приблизительно пропорцио-
нально числу обусловленности, соответствующему векторам vp ..., vm. А имен-
но, пусть К= [Vj ... vj е Число обусловленности неквадратной матрицы с
линейно независимыми столбцами можно определить как
_ т*ох11^х1И1*11 _ maxmag(K)
min||F5c||/||x|| minmag(K)
х*0
Для векторов, полученных с помощью модифицированной процедуры Гра-
ма-Шмидта, верна оценка
\\im-QTQ\\2^uK2{V).
См. [7] и [41]. Интуитивно ясно, что к(Г) тем больше, чем ближе к линей-
ной зависимости vb ..., vm. Таким образом, применяя модифицированный ал-
горитм Грама—Шмидта к почти линейно зависимым векторам, можно полу-
чить векторы, сильно отклоняющиеся от ортогональности.
Пример 3.4.27. Пусть Кесть 30 х 20-матрица, определенная как = р'-1, i =
= 1, ..., 30,/ = 1, ..., 20, гдеPj=j/ 20. Матрицы с элементами вида р'-1 называ-
ются матрицами Вандермонда. Согласно MATLAB’y, значение k2(V) » 3 х 1013, а
это говорит о том, что столбцы матрицы V почти линейно зависимы. С помо-
щью MATLAB’a ортонормируем столбцы матрицы V тремя различными спо-
собами и получим следующие результаты.
Метод II4 - QTQ lb
классический Грама-Шмидта 12.4
модифицированный Грама-Шмидта 7.9 х КГ4
£)Я-разложение с помощью отражений 1.9х КГ15
Видно, что векторы, полученные с помощью классической процедуры, да-
леко не ортогональны, но модифицированный метод Грама—Шмидта дает
прекрасный результат. Поскольку к2(У) « 3 х 1013 и и « 10“16 (двойная IEEE-
точность), можно надеяться, что || /т - QrQfl2 в этом случае приблизительно
равна 3 х 10~3. На деле получается даже несколько меньше. Лучший результат
дает 0Я-разложение с помощью отражений, а именно || /т - QTQ ||2« 19w. □
3.4. Процедура Грама—Шмидта
255
Повторная ортогонализация в процедуре Грама—Шмидта
Предположим k2(V) большим, но не очень: скажем, 1 « к2(У) « \/и. Тогда
ик2(И) « 1, и мы ожидаем, что модифицированная процедура Грама-Шмидта
выдаст векторы, удовлетворяющие неравенству || Im - QTQ ||2 « 1, т.е. не слиш-
ком отличающиеся от ортонормированных. Так и происходит в упражнении
3.4.27. Если полученные векторы недостаточно ортогональны для наших це-
лей, ничто не мешает нам повторить процесс ортонормирования. Т.е., если Q
- результат нашего первого ортонормирования, то мы можем использовать
его в качестве исходных данных для повторного выполнения модифицирован-
ного алгоритма Грама-Шмидта. Поскольку Q почти изометрична, она должна
быть хорошо обусловлена (maxmag(0) / minmag(Q) « 1). Таким образом, ре-
зультат второго прогона будет удовлетворять оценке || Im - QTQ ||2 « uk2(Q) « и ,
т.е. векторы будут настолько ортонормированы, насколько можно было бы
ожидать. Как результат, повторная ортогонализация помогает, и обычно дос-
таточно одного повторения. Конечно, повторная ортогонализация удваивает
число флопов.
Если вы заранее решили использовать повторную ортогонализацию, то
лучше всего применять ее к каждому вектору с самого начала. На Л-м шаге
вектор vk преобразуется в вектор ортогональный к qb qk_{. На прак-
тике можно проверить, так ли это, вычисляя внутренние произведения
q) для i = 1, ..., k - 1. Но если нашлось время проделать эти (или по-
добные им) вычисления, почему бы не сделать еще дополнительную коррек-
цию Наши соображения из предыдущего раздела дают возможность
предположить, что на каждом шаге достаточно двух ортогонализаций, чтобы
сделать qk ортогональным qb qk_{ с машинной точностью. Приводим здесь
простую модификацию алгоритма Грама—Шмидта с повторной ортогонали-
зацией.
Модифицированный алгоритм Грама—Шмидта с повторной ортогонализацией. Для данных
линейно независимых векторов vp v2,..., vm алгоритм строит ортонормированные ql, qv ..., qm
такие, что span{^„..., q) - span{v„ vj при /= 1,..., m\ при этом q„ ...» qm записываются в па-
мять на место v„ ..., vm.
for k-\, ...» m
for /=1, ..., k-\
ГгЛ V,)
Ln <- vk -
for i = 1, ..., k-\
(3.4.28)
<- vk ~
L'k +a
rkk II vk IL
if (ru=0) установить флаг (vj, ..., vk зависимы), выход
yk 4-(l/rU)vt
256
Глава 3. Задача наименьших квадратов
Это то же самое, что и (3.4.25), но с дополнительной ортогонализацией. Во
время выполнения второй ортогонализации к соответствующему rik каждый
раз добавляется некоторая поправка а, чтобы сохранить соотношение V = QR.
Если применить этот алгоритм к матрице из примера 3.4.27, то получится пре-
красный результат || Im - QTQ ||2 « 1.0 х 10“15 « 9w.
Упражнение 3.4.29. Используйте несколько различных способов ортогона-
лизации столбцов 7 х 7-матрицы Гильберта (V = hi lb (m)). Каждый раз про-
веряйте эффективность метода, вычисляя || Im - QTQ ||2 (norm (eye (m)-Qf*Q)).
Проверьте также невязку || V - QR ||2. Это упражнение легче, чем кажется сна-
чала. Просто напишите m-файлы MATLAB’a, реализующие алгоритмы
(3.4.19), (3.4.25) и (3.4.28). Они очень похожи.
(а) Классический алгоритм Грама-Шмидта.
(Ь) Модифицированный алгоритм Грама—Шмидта. Вы получили ожидае-
мое с учетом значений и и к2(УУ?
(с) Модифицированный алгоритм Грама-Шмидта (3.4.25), выполненный
дважды.
(d) Тот же алгоритм Грама—Шмидта с повторной ортогонализацией
(3.4.28).
(е) Я0-разложение с отражениями. (В этом случае используйте MATLAB-
команду qr: [Q, R] = qr (V, 0).) □
Упражнение 3.4.30. Выполните упражнение 3.4.29 для 12 х 12-матрицы Гиль-
берта. □
Упражнение 3.4.31. Мы не рассмотрели еще одну возможность: классический
алгоритм Грама-Шмидта с повторной ортогонализацией. Примените следую-
щие варианты алгоритма как к 7 х 7- , так и к 12 х 12-матрицам Гильберта.
(а) Классический алгоритм Грама-Шмидта (3.4.19), применяемый повтор-
но, пока не будет достигнута машинная точность.
(Ь) Классический алгоритм Грама-Шмидта с повторной ортогонализацией
в духе (3.4.28). Этот вариант алгоритма работает на удивление хорошо. □
Дополнительные упражнения
Упражнение 3.4.32. Здесь обсуждаются различные способы реализации
классического алгоритма Грама—Шмидта в MATLAB’e. Но эти приемы спра-
ведливы и для других алгоритмов, и для других языков программирования, на-
пример, для новейших версий Фортрана (Фортран-90 и более поздние).
В классическом алгоритме Грама-Шмидта (3.4.19) вычисляются внутренние
произведения rik < (vk,v). Пусть эти векторы объединены в матрицу И= [vt... vj.
Один из способов вычисления в MATLAB’e внутреннего произведения таков:
г (ii,kk) = 0;
for j j = 1:n
r(ii,kk) = r(ii,kk) 4- v (j j , kk) *v (j j , ii) ;
end
На заре компьютерных вычислений это был обычный программный код
для такой задачи. Современные языки программирования, включая MATLAB,
3,4. Процедура Грама—Шмидта
257
содержат команды высокого уровня, позволяющие выполнить это более про-
сто. В MATLAB’e (и в Фортране-90) к-й столбец Кможно записать как V (:, к)
или V (1: п, к) , а внутреннее произведение можно вычислить с помощью мат-
ричного произведения:
r(ii,kk) = v(:,ii)'*v(:,кк);
Этот код проще, да и выполняется он в MATLAB’e намного быстрее1 *.
(а) В (3.4.19) команды, вычисляющие rik9 вложены в цикл вычисления rik
для i = 1,..., к - 1. Эти элементы доступны в виде векторов г (1: к, к-1). Пока-
жите, как можно заменить цикл одной командой матричного умножения.
(Ь) Второй цикл по i в (3.4.19) корректирует вектор vk. Запишите это тремя
разными способами с помощью MATLAB’a: (i) используя два вложенных цик-
ла («старомодный» способ), (ii) используя только один цикл по i для корректи-
ровки вектора (что-то похожее на написанное в (3.4.19)) и (iii) с помощью
толькао одной матричной операции:
v (: , k) = v (: , к) 4- ....
Это дает более компактную, элегантную и более быструю программу.
(с) Насколько применимы эти идеи к модифицированному алгоритму Гра-
ма-Шмидта, сформулированному в (3.4.25)? Форма модифицированного ал-
горитма Грама-Шмидта, наиболее удобная для программирования, приведена
в следующем упражнении. □
Упражнение 3.4.33 Представим модифицированный алгоритм Гра-
ма-Шмидта (3.4.25) таким образом, чтобы он как можно больше напоминал
классический алгоритм (3.4.19). Такое представление отличается от общепри-
нятого. Обычно, как только получен вектор qx, вычисляются коэффициенты
г12, •••> а затем компонета rXjq{ вычитается из vj9j = 1, ..., т. Так получаются
векторы у^!), ..., v(ml), каждый из которых ортогонален После этого вектор q2
вычисляется нормировкой вектора = v2 - q^r^ векторы v^l), ..., v^l) ортого-
нализируются относительно q2 и т.д.
(а) Запишите этот алгоритм, используя псевдокод.
Решение:
for Л = 1, ..., т
гкк *41 vk Иг
if(r^ = 0) установить флаг (vр ..., vk зависимы), выход
Vk <~^/rkk^Vk (3.4.34)
for j = к +1, ..., m (обойти, если j = т)
{rkj <- <vj” vk > <vk перейдут в qk)
for j = к +1, ..., m
[v.t-v.-vjy
1 Тем не менее вы не заметите разницы, пока не сделаете п достаточно большим.
9 Основы матричных вычислении
258
Глава 3. Задача наименьших квадратов
(Ь) Покажите, что этот алгоритм во всем идентичен модифицированной
процедуре Грама-Шмидта (3.4.25), исключая лишь порядок выполнения опе-
раций. (В частности, оба алгоритма имеют одни и те же ошибки округления.)
(с) Напишите MATLAB-версию алгоритма (3.4.34). Представьте каждый
из циклов по j в виде одной матричной операции. (Например, все векторы
+ •••, vm можно выбрать за один раз как V (: r k + 1 :т).) □
Упражнение 3.4.35. В первой главе мы видели, что разные способы вычис-
ления //{/-разложения возникают за счет различных разбиений равенства
А = LU. Естественно попытаться проделать то же самое и для (ZR-разложе-
ния. Рассмотрим разложение V- QR, где К= [vj ... vj g n > k и V имеет
полный ранг, Q - ... g 11Гх* есть изометрия, a R g №kxk - верхняя тре-
угольная матрица с положительными элементами на главной диагонали. Ра-
зобьем матрицы следующим образом:
V=[V\vk], Q = [Q\<lk] и Я =
R s
Постройте алгоритм, вычисляющий qk по заданным ..., qk _ и Можете
взять за основу следующие шаги:
(а) Воспользуйтесь разбиением равенства V = QR, чтобы получить формулу
для выражения qkrkk через известные величины и 5.
(Ь) Условие ортогональности qk к qx, ..., qk_{ можно записать какQTqk = 0.
Воспользуйтесь этим представлением, чтобы получить формулу для s.
(с) Покажите, что qkrkk и условия || ^||2 = 1 и rkk > 0 однозначно определяют qk
(d) Можно скомбинировать п. (а), (Ь) и (с), чтобы получить алгоритм вы-
числения qk по заданным q{, ..., qk_ ь Покажите, что он совпадает с классиче-
ским алгоритмом Грама—Шмидта. □
Упражнение 3.4.36. Для К Q и R из предыдущего упражнения рассмотрим
разбиение
М<], Q=[qx\Q] и R =
0 R
(а) Воспользуйтесь этим разбиением, чтобы получить алгоритм вычисления
Q и R.
(Ь) Покажите, что этот алгоритм точно совпадает с модифицированной
процедурой Грама—Шмидта в форме (3.4.34).
Этим способом можно также вывести блочный модифицированный алго-
ритм Грама—Шмидта. □
Упражнение 3.4.37. Сформулируйте и докажите комплекснозначную форму
теоремы 3.4.2. □
Упражнение 3.4.38 В этом упражнении покажите, что в процедуре Гра-
ма-Шмидта для подпространств выполняются соотношения эквивалентности
span{^, ..., qk} = spanfVj, ..., vk}
3.4. Процедура Грама—Шмидта
259
(а) Используя (3.4.15) и (3.4.18), покажите, что qk е span{#b ..., qk_ bv*}.
(b) Покажите, что если span{^b ..., qk_ J = span{vb ..., v*_to
span{^b ..., qk .„vj = span{vb ..., vk_{, vj.
(с) Проверьте (3.4.20) и покажите, что vk е span{g4 , ..., qk}.
(d) Используя результаты из (а), (b) и (с), докажите индукцией по к, что
span{?b ..., qk} = span{vb ..., vj. □
Упражнение 3.4.39. В эквивалентности подпространств можно убедиться и
с помощью 0Л-разложения. Пусть vb ..., vm и q{ ,..., qm — два множества линей-
но независимых векторов и И = [vj ... vw] е Rwx/”, a Q = [qx ... qm\ е
(а) Покажите, что если К= QR, где R е Кшх'" — верхняя треугольная матрица, то
span{v1? ..., vj с span{^], ..., qk} при к = 1, ..., т.
(Ь) Покажите, что если R — верхняя треугольная и невырожденная матрица,
то и /Г1 — верхняя треугольная.
(с) Покажите, что если К= QR, где R — верхняя треугольная и невырожден-
ная матрица, то
span{^j, ..., qk] с span{Vj, ..., v*} при к = 1, ..., т.
(d) Из (а) и (с) выведите, что для векторов, полученных по процедуре Гра-
ма-Шмидта, выполняется соотношение эквивалентности
span{0H ..., qk} = spanfv^ ..., при к = 1, ..., т.
(е) И наоборот, если
span{^l? ..., qk] - span{Vj, ..., vk} при к - 1, ..., т,
то существует невырожденная верхняя треугольная матрица R е R'"x'" такая,
чтоК=0Я. □
Упражнение 3.4.40. (Эквивалентность модифицированного и классического
алгоритмов Грама-Шмидта.)
(а) На основе шага модифицированного алгоритма Грама-Шмидта (3.4.23)
покажите, что для к = 1, ..., т
7=1
(Ь) Модифицированный алгоритм Грама—Шмидта останавливается на Л-м
шаге, если гкк = 0. Предполагая, что vb ..., vm линейно независимы, докажите
индукцией по£, что 7кк * 0 и span{^,, ...,^} = span{vb ..., yj при£= 1,..., т.
260
Глава 3. Задача наименьших квадратов
(с) Пусть V = [у, ... vj е R"xw, a Q = ... qm] е Rwx'" и
R =
О
'im
г
тт
е Г”х'”.
Тогда Q является изометрией, a R — это верхняя треугольная матрица с по-
ложительными элементами на диагонали. Покажите, что V- QR, Докажите,
что векторы ,..., qm и коэффициенты , полученные с помощью модифици-
рованной процедуры Грама-Шмидта, идентичны полученным с помощью
классической процедуры. □
Упражнение 3.4.41. В упражнении 3.4.40 вы использовали единствен-
ность (^-разложения при доказательстве того, что обе формы алгоритма
Грама—Шмидта в принципе эквивалентны. Это удобный подход. Конечно,
можно было бы доказать результат прямо. Докажите индукцией по к, что
при к = 1, ..., т
rik = rik i = 1, ..., к - 1,
Лк =rkk,
Qk = Qk-
□
Упражнение 3.4.42. Вычисляя (ZK-разложение на практике, обычно не ут-
руждаются соблюдением требования положительности элементов главной
диагонали матрицы R. В этом случае столбцы матрицы Q могут отличаться
от векторов Грама-Шмидта, но нетрудно показать, что это отличие триви-
ально. Пусть ..., vm — линейно независимые векторы и V = [Vj ... vj.
Предположим, что V - QR, где Q е R',x'" есть изометрия, a R е R'"x/" — верх-
няя треугольная матрица, не обязательно с положительными элементами на
главной диагонали. Пусть qh qm обозначают столбцы матрицы Q, aq[9 ...,
qm обозначают векторы, полученные из vb ..., vm с помощью процедуры Гра-
ма-Шмидта. Покажите, что q, = при i = 1, ..., т. □
Упражнение 3.4.43. Покажите, что модифицированный алгоритм Гра-
ма-Шмидта затрачивает 1пт2 флопов на ортонормирование т векторов из R".
Сравните это число с затратами на выполнение (^-разложения с помощью от-
ражений в двух случаях: (i) п > т и (ii) п = т, □
Упражнение 3.4.44. Если мы хотим использовать (^-разложение с отраже-
ниями в качестве метода ортонормирования векторов, нужно построить мат-
рицу 0, являющуюся произведением т отражений: Q = QiQ2-Qm-
(а) Очевидно, q{ = Qe} = Учитывая вид отражений Q2, ..., Qm, по-
кажите, что qx = Qxex. Таким образом, на вычисление qx уходит 4п флопов.
3.5. Геометрический подход к задаче наименьших квадратов
261
(Ь) Обобщая (а), покажите, что = С|...Ол при / = 1, т. Как много фло-
пов требуется для этого?
(с) Покажите, что на операции вычисления qb ..., qm затрачивается всего
2
2пт2 - ~т3 флопов, т.е. столько же, как и при (^-разложении.
□
Упражнение 3.4.45. Пусть А е R"x/", п > т и гапк(Л) = г. Пусть А — любая
матрица, полученная из А такой перестановкой столбцов, что первые г
столбцов линейно независимы. Докажите, что существуют единственные
Q е R"xr и R е Rrx/” такие, что Q является изометрией, R = [ЯЯ], R е Rrxr -
верхняя треугольная матрица с положительными элементамит на главной
диагонали и А = QR. □
Упражнение 3.4.46. Пусть vb ..., vme R” и ..., wm e К” — два множества ли-
нейно независимых векторов, V= [Vj... vw] е R"x/", a W- [Wj... wj e R"x/”. Пока-
жите, что span{Vj,..., v,} = span{w15..., wj при i = 1,..., m тогда и только тогда, ко-
гда существует невырожденная верхняя треугольная матрица R е R'”x/” такая,
что WR. □
3.5. Геометрический подход к задаче наименьших квадратов
В этом разделе мы введем новые базовые понятия и докажем некоторые
фундаментальные теоремы, которые дают ясную геометрическую картину за-
дачи наименьших квадратов. Инструментарий, разработанный здесь, будет ис-
пользоваться в книге и далее. Традиционно и, вероятно, более логично было
бы расположить этот материал в начале главы, но такой порядок привел бы к
более позднему введению алгоритмов.
Пусть S — произвольное подмножество в R”. Ортогональное дополнение к S,
обозначаемое как 51 (произносится как перпендикулярное к 5), определяется
как множество векторов из R", ортогональных к S. Другими словами,
51 = {х е R” | (х,у) = 0 для всех у е 5}.
Множество 51 не пусто, поскольку оно содержит по крайней мере вектор 0.
Упражнение 3.5.1. Покажите, что 51 есть подпространство в R", т.е.
(а) покажите, что сумма двух элементов из 51 также входит в 51, и
(Ь) покажите, что умножение элемента из 51 на любой скаляр дает элемент
из5\ □
Упражнение 3.5.2. Пусть q{, ..., qn - ортогональный базис в F и
S = span{^, ..., qk},
где 1 < k < п - 1. Покажите, что 51 = span{^+ р ..., qn}. □
262
Глава 3. Задача наименьших квадратов
Теорема 3.5.3. Пусть S — произвольное подпространство в R”. Тогда для лю-
бого х е R" существуют однозначно определенные элементы seSus^eS1 такие,
что х = s + s1.
Доказательство. Пусть vk — базис в 5. Из элементарной линей-
ной алгебры известно, что существуют векторы vk + ь vn такие, что
V], ..., vk, vk + ], ..., vn являются базисом в R”. Пусть qb ..., qn ортонормиро-
ванный базис R”, полученный по методу Грама—Шмидта из vb ..., vn. То-
гда свойство вложенности подпространств (3.4.12) процедуры Гра-
ма-Шмидта приводит к span{^, ..., qk} = span{v1? ..., vk}. Таким образом,
согласно упражнению 3.5.2,
5 = span{^!, qk} и5± = span{^t,,
Пусть х е Надо найти 5 е 5 и ? е 51 такие, что х = s + у1. Имея базис
qi9 ..., qn, это сделать нетрудно, х можно единственным образом представить в
виде линейной комбинации этих векторов: х = cxq{ + ... + cnqn. Пусть s = с^ + ...
... + С}Дк и ? = сь + । + ... + cnqn. Тогда s е 5, ? е 51 и х = j + ?.
Чтобы увидеть единственность этого разложения, предположим, что суще-
ствует другое разложение х = s + 51, где s е 5, f1 е 51. Покажем, что s = s и s1 =
5х. Пусть г = s - s е S. Тогда из 5 + г1 = s + 51 следует, что г = f ? е 51. Таким
образом, г е S n 51. Легко проверить, что S n 51 = {0}. Следовательно, г = 0, от-
куда следует, что s = s и s1 = г1. □
Однозначно определенные элементы j и ?, существование которых доказа-
но в теореме 3.5.3, называются ортогональными проекциями xnzSnS1 соответ-
ственно.
Сумма 5] + S2 двух подпространств и 52 определяется как
<Si + S2 = {jj + 52| sj e s2 e 52}.
Легко проверить, что 5, + S2 является подпространством в R”. Если U=S} + 52,
то каждый и е U можно представить в виде суммы u-sx+ s2, где е и s2 е 52.
Говорят, что сумма U = Sx + S2 является прямой суммой, если для каждого и е К
разложение и = sx + s2 единственно. Прямая сумма обозначается как Ф S2.
Теорема 3.5.3 утверждает, что для любого подпространства S пространство R”
является прямой суммой S и 51:
R” = S Ф 51.
Упражнение 3.5.4. Пусть и S2 — подпространства в R”.
(а) Докажите, что 5! + S2 есть подпространство в R".
(Ь) Докажите, что 5! + S2 является прямой суммой тогда и только тогда, ко-
гда^ n S2 — {0}. □
Упражнение 3.5.5. Пусть = [ 1,0,0]г, v2 = [0,1,1]г и 5 = span^, v2} е R3.
(а) Найдите 51.
(Ь) Найдите подпространство U из R3 такое, что Uф S1, но S Ф U = R3. □
3.5. Геометрический подход к задаче наименьших квадратов
263
Упражнение 3.5.6. Пусть S - подпространство bR"mW = S1. Покажите, что
Z/ = 5,T.e.511 = 5. □
Пусть А е R"xw. Тогда А можно рассматривать как линейное преобразова-
ние, отображающее Rw в вектор х е F отображается в Ах е R”. С каждым
линейным преобразованием связаны два фундаментальных подпространства:
нуль-пространство (также известное как его ядро) и его область значений.
Нуль-пространство преобразования А, обозначаемое через Л/(Л), есть подпро-
странство в Rw, определяемое как
Л/*(Л) = {х е Г"| Ах = 0}.
Область значений преобразования Л, обозначаемая через 71(А), это подпро-
странство в R'”, определяемое как
7г(Л) = {Ах I х е Г" }.
Упражнение 3.5.7.
(а) Покажите, что М.А) есть подпространство в R т.
(Ь) Покажите, что МЛ) есть подпространство в R”. □
Упражнение 3.5.8. Покажите, что ранг матрицы Л равен размерности под-
пространства 7д(Л). □
Лемма 3.5.9. Пусть А е R"xw. Тогда для всех х е R" и у е R"
(Лх, у) = (х, АТу).
Доказательство. (Лх, у} =уг(Ах) - (угА)х= (Агу)тх= (х, Агу). □
Обратите внимание, что внутреннее произведение слева является внут-
ренним произведением в R”, а то, которое справа, — внутренним произведе-
нием в .
Матрицу Ат е Rwx" можно рассматривать как линейное преобразование, ото-
бражающее R" в Rw. Таким образом, оно имеет нуль-пространство А/Ц7) С
и область значений МЛ7) с IT. Имеется важная связь между этими простран-
ствами и пространствами, связанными с А.
Теорема 3.5.10. 71(A)1 = МЛ7).
Доказательство. Если у е Т^(Л)1, то (Лх, у} = 0 для всех х е Rw, так что, по
лемме 3.5.9, (х, АГу) = 0 для всех х е Rw. Так, в частности, можно взять х = Лту и
получить (Лгу, Агу) = 0, откуда следует: || Л ту ||| = 0, Ату = 0 и у е А/Ц7). Следова-
тельно, ММ1 А/’Ц7)- Обратное включение А^Л7) о МЛ)1 оставляем вам в
качестве упражнения. □
Упражнение 3.5.11. Докажите, что МЛ7) с Tl(A)L. □
Применяя результат упражнения 3.5.6, видим, что альтернативой утвержде-
нию теоремы 3.5.10 является МЛ7)1 = 7ЦА). Поскольку (Л7)7’ = Л, в теореме 3.5.10
можно поменять ролями Л и Лг, что приведет к следующему следствию.
Следствие 3.5.12. МЛ)1 = МЛ7).
264
Глава 3. Задача наименьших квадратов
Эквивалентным утверждением является Т^Л7)1 = МЛ). Окончательно
R” = тг (Л) ф Мл7),
= мл) ф тг(лг).
Для важного специального случая, когда Л е 1ГХЯ является симметричным
преобразованием, имеем М^)1 = ^(Л) и R" = N(A) Ф 7^(Л).
Упражнение 3.5.13.
(а) Пространство столбцов матрицы Л определяется как подпространство в
R", натянутое на столбцы матрицы Л. Очевидно, размерность пространства
столбцов равна рангу матрицы Л. Докажите, что пространство столбцов матри-
цы Л есть 71(A).
(Ь) Пространство строк матрицы Л определяется как подпространство в Rw,
натянутое на строки матрицы Л. Докажите, что пространство строк матрицы Л
есть М^)1. При этом воспользуйтесь равенством Л = 0, но не теоремой 3.5.10
или следствием 3.5.12.
(с) Очевидно, пространство столбцов матрицы Л совпадает с пространст-
вом строк матрицы АТ. Используя это вместе с результатами п. (а) и (Ь), полу-
чите второе доказательство теоремы 3.5.10 и следствия 3.5.12.
□
Дискретная задача наименьших квадратов
Пусть Л е Rwx/” и b е R", п > т. Рассмотрим задачу наименьших квадратов для
переопределенной системы Ах = b I Задача состоит в том, чтобы найти х е Rw
такой, что
II ь - Лх||2 = min II b - Aw ||2.
weRw
Множество всех Aw таких, что w е Rw, есть 71(A), так что наша задача тесно
связана с задачей нахождения такого у е 7£(Л), что
II b - у ||2 = min II b - s ||2.
seR,(A)
Следующая ниже теорема показывает, что эта задача имеет единственное
решение, что упрощает обращение с ним. Но сначала докажем одну лемму.
Лемма 3.5.14 (Теорема Пифагора.). Пусть и и v — ортогональные векторы из
R”. Тогда
ll« + v||l=||«Hi +Mt
Доказательство. ||м + v1= (и + у, и + у) = (и,и) + (у,у) + (и,у) + (у ,м) = (и,и) + (у,у),
поскольку (и,у) = (у,и) = 0. Таким образом, ||м +у ||2 =||« П2 +IMI2- □
1 В задаче наименьших квадратов обычно п » т. Однако последующие результаты справедливы
и при п < т.
3.5. Геометрический подход к задаче наименьших квадратов
265
Теорема 3.5.15. Пусть S — подпространство вТ и b eRrt. Тогда существует
единственный вектор у е S такой, что
II b - у ||2 = min II b - 5 ||2. (3.5.16)
Вектор у является единственным элементом в S, для которого b -у е 51. Други-
ми словами, у есть ортогональная проекция b на S.
Упражнение 3.5.17. Мы все знаем со школы, что кратчайшим расстояние от
точки до прямой является перпендикуляр, опущенный на нее из этой точки.
Теорема 3.5.15 обобщает этот простой факт. Нарисуйте картинку, иллюстри-
рующую теорему 3.5.15 в случае, когда размерность подпространства S равна 1.
Тогда векторы из S целиком лежат на прямой. Кратчайшее расстояние от точ-
ки (конец Ь) до прямой линии (5) достигается по перпендикуляру (Ь-у). □
Доказательство теоремы 3.5.15. По теореме 3.5.3 существуют такие единствен-
ные элементы у е S и z е 51, что b = у + г; у есть ортогональная проекция b на 5.
Заметьте, что b - у = z е 51. Не может быть другого w е S такого, что b - w е 51,
поскольку тогда разложение b = w + (b - w) будет нарушать условие единствен-
ности теоремы 3.5.3. Чтобы увидеть, что у удовлетворяет (3.5.16), возьмем s е S
и рассмотрим ||i -5Ц2. Так как i - 5 = (i - у) + (у - 5), где i - у е 51 и у - 5 е 5,
по лемме 3.5.14 имеем
Когда 5 пробегает все 5, \\Ь -у||| остается неизменным, а ||у -5Ц2 изменяет-
ся, но остается строго положительным, кроме случая у - s. Таким образом,
||Л-уЦ2, а следовательно и || Ь - у ||2, принимают минимальные значения тогда
и только тогда, когда s = у. □
Теперь посмотрим, что теорема 3.5.15 говорит о задаче наименьших квад-
ратов. Полагая S = 7£(Л), находим, что существует единственный у е П(А) та-
кой, что || b - у ||2 = min || b - 51|2 = min || b - Aw ||2. Любой х е удовлетворяю-
щий) weft'"
щий равенству Ах = у, будет решением задачи наименьших квадратов для сис-
темы Ах - Ь. Так каку е Н(А), должен найтись по крайней мере один такой х.
Это доказывает, что задача наименьших квадратов всегда имеет хотя бы одно
решение. Этот факт уже доказан нами в разд. 3.3 другим способом.
Упражнение 3.5.18.
(а) Предположим, что* е удовлетворяет равенству Ах - у. Покажите, что
Ах = у тогда и только тогда, когда х - х е МЛ).
(Ь) Покажите, что задача наименьших квадратов имеет единственное реше-
ние тогда и только тогда, когда МЛ) = {0}. □
Теперь мы имеем два необходимых и достаточных условия единственности
решения задачи наименьших квадратов. В разд. 3.3 мы видели, что решение
единственно, тогда и только тогда, когда Л имеет полный ранг, а теперь мы ви-
дим, что оно единственно тогда и только тогда, когда МЛ) = {0}. Следователь-
266
Глава 3. Задача наименьших квадратов
Ах\\2 = min || b - Aw ||2, тогда и
weRm
но, эти два условия должны быть эквивалентными. В следующем упражнении
нужно будет доказать это.
Упражнение 3.5.19. Пусть А е Докажите, что гапк(А) = т, тогда и толь-
ко тгда, когда Л/*(Л) = {0}. □
Та часть теоремы 3.5.15, где описывается минимизирующий вектор, имеет
следующее следствие.
Следствие 3.5.20. Пусть х е К"1. Тогда || b -
только тогда, когда b - Ах е 71(A)1.
Сочетая это следствие с теоремой 3.5.10, видим, что х есть решение зада-
чи наименьших квадратов тогда и только тогда, когда Ь - Ах е МЛ7), т.е.
АТ(Ь - Ах) = 0. Переписывая последнее равенство чуть иначе, получаем сле-
дующий важный результат.
Теорема 3.5.21. Пусть х е Rw. Тогда х является решением задачи наименьших
квадратов для системы Ах = Ь, тогда и только тогда, когда
АТАх = АТЬ. (3.5.22)
Матрица АТА принадлежит а вектор АТЬ принадлежит К"1, так что
(3.5.22) есть система m линейных уравнений с m неизвестными. Поскольку эти
равенства выполняются, когда вектор Ь - Ах нормален (что означает: ортого-
нален) к 7£(Л), они называются нормальными уравнениями.
Матрица коэффициентов нормальных уравнений положительно полуопре-
делена, т.е. она симметрична ихт(АтА)х> 0 для всехх е Если гапк(Л) = т, то
АТА является положительно определенной.
Упражнение 3.5.23. Решите эту задачу вручную. Рассмотрите переопреде-
ленную систему
обсуждавшуюся ранее в упражнении 3.3.7. Еще раз решите задачу наименьших
квадратов, но теперь сделайте это с помощью нормальных уравнений. □
Упражнение 3.5.24.
(а) Докажите, что АТА положительно полуопределена.
(Ь) Предположим, что А е Rwx/” при п < т. Покажите, что АТА не является
положительно определенной.
(с) Предположим, что А е при п > т. Покажите, что АТА является поло-
жительно определенной, тогда и только тогда, когда А имеет полный ранг.
(Мы уже рассмотрели случай п - m в теореме 1.4.4.) □
В случае полного ранга (при п > т) единственное решение задачи наимень-
ших квадратов можно найти, строя нормальные уравнения (3.5.22) и решая эту
положительно определенную систему методом Холесского. На самом деле
вплоть до 1970 г. это была стандартная методика решения задач наименьших
квадратов. Ее преимущества заключаются в ее простоте и дешевизне. Надо ре-
шить систему размеров т х т, причем т обычно мало. Наибольшие затраты
уходят на вычисление матрицы коэффициентов АТА.
3.5. Геометрический подход к задаче наименьших квадратов
267
Недостатком подхода с помощью нормальных уравнений является в неко-
торых случаях потеря точности в сравнении с 0Л-подходом. При формирова-
нии АТА иногда теряется важная информация.
Пример 3.5.25. Пусть
1
1
О
£
где £ > 0 мало. Ясно, что А имеет полный ранг и
АТА =
1 + £2
1
1
1 + £2
является положительно определенной. Но если £ настолько мало, что £2 мень-
ше единичной ошибки округления и, то вычисленная матрица АТА будет равна
'1 Я
1 1 - матрице, которая вырождена. □
Несмотря на эти неудовлетворительные вычислительные свойства, подход
с использованием нормальных уравнений и сейчас иногда используется при
решении задачи наименьших квадратов. Пока матрица является хорошо обу-
словленной, его можно применять без сомнений. Более подробно эта тема бу-
дет рассмотрена в разд. 4.4, где изучается чувствительность задачи наимень-
ших квадратов.
Упражнение 3.5.26.
(а) Пусть В е R*xw - произвольная матрица такая, что = 7£(Л). Пока-
жите, что х есть решение задачи наименьших квадратов для переопределенной
системы Ах = Ь9 тогда и только тогда, когда ВтАх - ВТЬ.
(Ь) Покажите, что 1ЦА) = 7£(В), тогда и только тогда, когла существует не-
вырожденная С е такая, что А = ВС. □
Наиболее очевидным примером ситуации, описанной в упражнении 3.5.26,
является случай В = А, когда система ВгАх = ВТЬ является просто системой нор-
мальных уравнений (3.5.22). Другой пример можно получить из (^-разложе-
ния А = Q R, где Q е Rwx'" есть изометрия, a R е Rwx'" - верхняя треугольная мат-
рица (теорема 3.4.7). Если А имеет полный ранг, то R не вырождена и, в соот-
ветствии с п. (Ь) упражнения 3.5.26, 7д(Л) = ?£((?). Следовательно, в
соответствии с п. (а), единственное решение задачи наименьших квадратов
удовлетворяет уравнению
QTAx = QTb. (3.5.27)
Упражнение 3.5.28.
(а) Покажите, что система (3.5.27) есть именно та система вида Rx = c, кото-
рую мы исследуем, решая задачу наименьших квадратов с помощью QR-
разложения.
268
Глава 3. Задача наименьших квадратов
(Ь) Предположим, что мы решаем нормальную систему АТАх =АТЬ, исполь-
зуя разложение Холесского АТА = RTR. При этом подходе на последнем шаге
верхняя треугольная система Rx = у решается обратной подстановкой. Дока-
жите, что эта система совпадает с системой Rx = с, появляющейся в ходе по-
строения QA-разложения. (Тем не менее, каждый из двух методов приходит к
этой системе своим путем.) □
Упражнение 3.5.29 (вывод нормальных уравнений методами математиче-
ского анализа). Функция
/(%!, Х„) =f(x) = ||/>-Лх||2
является дифференцируемой функцией m переменных. Она имеет минимум,
только если V/= (8f/dxv ..., 8f/dxn)T = 0. Вычислите V/и обратите внимание, что
уравнения V/= 0 - это и есть нормальные уравнения. □
Непрерывная задача наименьших квадратов
Мы пришли к дискретной задаче наименьших квадратов, рассматривая за-
дачу аппроксимации дискретного множества точек {(/„ у,) | i = 1,..., п} простой
кривой, например, прямой линией. В непрерывной задаче наименьших квад-
ратов дискретное множество заменяется непрерывным множеством данных
{(/, Л0) И е [4 £]}• Итак, дана функция/, определенная на некотором отрезке
[a, i], и мы ищем простую функцию ф (например, линейный многочлен) та-
кую, что ф хорошо аппроксимирует f на [а, й]. Качество приближения измеря-
ется не вычислением суммы квадратов ошибок, а вычислением интеграла от
квадрата ошибки
ь
f |/(х) - Ф(х)12 dx.
а
(3.5.30)
Непрерывная задача наименьших квадратов решается минимизацией
интеграла на некотором множестве функций ф, которые рассматриваются
как приближения для /. Например, если аппроксимирующая функция есть
многочлен первой степени, (3.5.30) минимизируется на множестве функций
{ф I Ф(0 = Щ ао> а\ е К}- Обобщим это: если аппроксимирующая функ-
ция есть полином степени меньше т, то мы минимизируем (3.5.30) на мно-
жестве функций
т-\
Я. - I = {ф I Ф(0 = ак е К, к = 0, .... т - 1}.
*=0
Множество Рт _ ] является ди-мерным векторным пространством функ-
ций. Обобщая дальше, мы можем взять в качестве S любое /и-мерное век-
3.5. Геометрический подход к задаче наименьших квадратов
269
торное пространство функций, определенных на Ю], и минимизировать
(3.5.30) на S.
Можно решать непрерывную задачу наименьших квадратов, вводя внут-
реннее произведение и норму для функций, и используя геометрические сооб-
ражения, введенные в предыдущем разделе. Внутреннее произведение двух
функций / и g на [а, А] определяется как
ь
<f, g> = f f(x)g(x)dx.
Это внутреннее произведение обладает теми же алгебраическими свойства-
ми, что и внутреннее произведение в R". Например, /, g) = (g,/) и (f{ + /2, g) =
(A, g) + (f2, g). Говорят, что две функции/и g ортогональны, если /, g} - 0. Норма
функции f определяется как
Отметьте, что норма и внутреннее произведение связаны между собой со-
отношением ||/|| = Кроме того, с помощью нормы (3.5.30) можно за-
писать как ||/- <р ||2. Итак, непрерывная задача наименьших квадратов состоит
в нахождении такого ф е 5, что
||/- ф || = min ||/- \|/ ||.
(3.5.31)
Мы доказали теорему 3.5.15 только для подпространств но она справед-
лива и для пространств функций. См., например, [70, теорема II.7.2]. Таким
образом, непрерывная задача наименьших квадратов (3.5.31) имеет единствен-
ное решение, для которого/- ф е 51, т.е.
(f - ф,\|/) = 0 для всех \|/ е 5. (3.5.32)
т
Пусть фь ..., фт — базис в S. Тогда ф = ^х/фу для некоторых неизвестных
коэффициентов хь ..., хт. Подставляя это выражение для ф в (3.5.32), пола-
гая \|/ = ф, и применяя некоторые из основных свойств внутреннего произве-
дения, получим
т
i = 1, т. (3.5.33)
270
Глава 3. Задача наименьших квадратов
Это система т линейных уравнений с т неизвестными, которую можно за-
писать в виде матричного уравнения
Сх = d,
(3.5.34)
где
Матрица С, очевидно, симметричная. На самом деле она положительно оп-
ределенная, так что (3.5.34) можно решить методом Холесского, чтобы полу-
чить решение непрерывной задачи наименьших квадратов.
Упражнение 3.5.35 С каждым ненулевым вектором у = [у!... ут}Т е R"1 связа-
т
на ненулевая функция \|/ = ^у7фу. Докажите, что уТСу = (\|/,\|/>. Комбинируя это
7=1
с тем, что (\|/,\|/) > 0, заключаем, что С положительно определена. □
Следующее упражнение показывает, что уравнение (3.5.34) является анало-
гом нормальных уравнений дискретной задачи наименьших квадратов.
Упражнение 3.5.36. Найдите vb ..., vm е Rw, для которых нормальные урав-
нения (3.5.22) имеют вид
т
Vi)Xj = <f, v,) i = 1, m.
y=i
Таким образом, нормальные уравнения имеют такой же общий вид, как и
(3.5.33). □
Упражнение 3.5.37. Найдите многочлен ф (/) = хг + x2t степени 1, который
наилучшим образом аппроксимирует /(/) = t2 методом наименьших квадра-
тов на [0, 1]. Проверьте ваш ответ на ортогональность/ - ф к S = {а0 +
aQl ах е R}. □
Упражнение 3.5.38. Пусть [a,i] = [0, 1], S = Рт_ j и пусть фь ..., фт есть базис в
Рт_ j, определенный следующим образом: ф^/) = 1, ф2(0 = /, ф3(0 = /2, ..., фт(/) =
= Г " 1. Вычислите для этого случая матрицу С из (3.5.34). Обратите внимание,
что С есть просто т х ди-член семейства гильбертовых матриц, введенных в разд.
2.2. Гильбертовы матрицы впервые появились именно в этом контексте. □
В разд. 2.2 гильбертовы матрицы служили в качестве примера семейства
плохо обусловленных матриц Нт е Rwxw, т = 1, 2, 3, ..., у которых число
обусловленности быстро ухудшается по мере роста т. Теперь мы можем
отметить, хотя бы интуитивно, что первоначально плохая обусловленность
связана с базисом ф^/) = 1, ф2(0 = /, ф3 (0 = Z2, ... . Если вы построите гра-
фики функций tk на отрезке [0, 1], то увидите, что с ростом к они стано-
вятся все более похожими друг на друга, т.е. они все более приближаются
3.6. Обновление QR-разложения
271
к линейной зависимости. Таким образом, базис фь фт является в неко-
тором смысле плохо обусловленным и его плохая обусловленность растет
вместе с ростом т. Итак, плохая обусловленность наследуется гильберто-
выми матрицами.
3.6. Обновление ^-разложения
Имеется много приложений, в которых данные постоянно обновляются. На-
пример, в прикладных задачах обработки сигналов строки матриц соответству-
ют измерениям, сделанным в определенные моменты времени. По мере поступ-
ления данных о новых измерениях добавляется новая строка. Теперь предполо-
жим, что некоторое время назад мы решали задачу наименьших квадратов
(скажем, чтобы оценить траекторию движения объекта), а теперь хотим решить
ее снова, используя только что полученные данные. Для решения первой задачи
мы вычислили (^-разложение. Нужно ли вычислять (М^-разложение с нуля или
можно как-то подновить старые результаты? Оказывается, что обновить старое
разложение намного дешевле, чем вычислять новое с нуля.
Добавление строки
Пусть А е R"x/", п > т, гапк(Л) = т и мы имеем разложение А = QR, где
Q е R"xw — ортогональная, a R е ITXW — верхняя треугольная матрицы, т.е. верх-
ний т х /и-блок матрицы R имеет верхнюю треугольную структуру, а остальная
часть R равна нулю. Теперь положим А =
гдеЛ =
Л
.А
аг
- но-
А
вая строка, которую мы хотим вставить где-то между строками матрицы А. (На
первый взгляд кажется, что было бы проще добавить строку к А снизу, но, как
мы увидим, вставить строку в произвольном месте не намного труднее.) По-
стараемся тепероь понять, как получить (^-разложение А = QR из 0Я-разло-
жения А.
Начнем с разбиения Q на части, подобные нашему разбиению матрицы А.
Тогда (XR-разложение примет вид
л‘1 = Ге>
AJ [Qi
R.
Отсюда сразу следует, что
4
zT
Л2
(3.6.1)
272
Глава 3. Задача наименьших квадратов
Это почти 0Я-разложение. Единственная проблема в том, что
являет-
R
ся нетреугольной матрицей Хессенберга1. Нам нужно преобразовать ее к верх-
ней треугольной форме. Имеем
R
г, г2
Г12
О Г22
О О
zT
R
и?
Найдется плоское вращение Uf, действующее на строки 1 и 2 так, что
имеет 0 на месте Гц. Это преобразование, очевидно, не уничтожает
нули, ранее находившиеся в матрице. Как только мы избавились от гп, можно
избавиться и от г22> используя U2T, действующее на строки 2 и 3. При этом ра-
нее полученные нули не исчезнут. В частности, нуль на месте гп останется ну-
лем, поскольку 7*21 = 0. Следующий шаг состоит в применении вращения U3T,
действующего на строки 3 и 4, которое уничтожает /*33. Сделав таким образом т
шагов, получим верхнюю треугольную матрицу
R = UTm... U2TUT \
е В(л +
1)х/И
Полагая
Ct
ог ихиг...иа,
получаем А = QR с ортогональной Q eR(" + 1)х("+ ° и верхней треугольной
R е JR(W + 1)xw.
Затраты на построение R довольно низкие. Производится т плоских
вращений, каждое из которых действует на строки с эффективной длиной
не больше т. На это затрачивается порядка О(т2) флопов. Можете убе-
диться, что на самом деле, если быть точным, затрачивается Зти2 + О(т)
флопов. В зависимости от приложения, Q можно модифицировать или нет.
Если мы хотим выполнить такую модификацию и храним Q в явном виде,
то Q можно получить, применив т плоских вращений справа. Это обой-
1 Они отличаются от верхних треугольных ненулевой первой поддиагональю и подробно изуча-
ются в гл. 5. — Прим, перев.
3.6. Обновление QR-разложения
273
дется в бпт + 0(т) флопов. Вспоминая, что на построение 0Л-разложения
с нуля тратится 2пт2 флопов, видим, что модификация обходится намного
дешевле, особенно модификация R.
Упражнение 3.6.2.
(а) Покажите, что для получения R требуется около Зт2 флопов.
(Ь) Покажите, что Q можно получить из 0, затратив около бпт флопов при
□
условии, что Q хранится в явном виде.
Упражнение 3.6.3. Ядром процедуры, которую мы только что очертили, яв-
ляется приведение матрицы
R
к верхней треугольной форме. Переформу-
R
zT
треугольной форме имела вид
лируйте алгоритм таким образом, чтобы матрица, котрую нужно привести к
. Покажите, как можно снова привести эту
матрицу к верхней треугольной форме посредством т плоских вращений. □
Упражнение 3.6.4. Пусть мы имеем сжатое ©^-разложение А = QR, где
Q е К”™ является изометрией, a R е R'”x'” - верхняя треугольная матрица. На-
пишите процедуру модификации этого разложения после добавления строки к
матрице А. Убедитесь, что используемые вами матрицы имеют нужные раз-
мерности. (В конце вам придется кое-что отбросить.) □
Процедура, только что сейчас очерченная, может быть также использована
в качестве метода модификации разложения Холесского. Если при решении
задачи наименьших квадратов применяются нормальные уравнения, то требу-
ется делать разложение Холесского матрицы АГА, т.е. АГА = RTR. Если теперь
добавить строку к Л, то потребуется найти разложение Холесского новой мат-
рицы АТА. Легко показать, что множитель Холесского R совпадает с матрицей
R в разложении А = QR (ср. с доказательством теоремы 3.2.46 и упражнением
3.5.28). Процедура модификации, кратко набросанная выше (и, в частности, в
упражнении 3.6.4), не требует знания ортогональной матрицы Q (или 0), так
что ее можно использовать для модификации множителя Холесского, потра-
тив на это Зт2 флопов.
Упражнение 3.6.5. Пусть М g JRWX/" - положительно определенная матрица
и R - ее множитель Холесского. Пусть геК'"иЛ/ = Л/ + Поскольку ранг
матрицы zzT равен 1, то матрица М называется одноранговой модификацией
матрицы М.
(а) Покажите, что М - положительно определенная матрица.
(Ь) Пусть R - множитель Холесского матрицы М. Набросайте процедуру
получения R из R и z за О(т2) флопов. □
Удаление строки
Если мы постоянно добавляем новые строки данных к матрице, то иногда
нам может потребоваться удалить старые, «неподходящие» строки. Таким об-
разом, мы приходим к задаче модификации ©/^-разложения после удаления
274
Глава 3. Задача наименьших квадратов
строки. Эту процедуру принято называть отбрасыванием данных. Пусть имеет-
ся разложение А - QR, где А =
и мы ищем 07?-разложение А =
А
,4г
А
Можно по существу обратить процесс, использованный при добавлении стро-
ки. Однако обратный процесс требует знания Q и обычно больших затрат.
Процедура отбрасывания данных, воздействующая лишь на R и не использую-
щая 0, кратко описана в упражнениях с 3.6.12 по 3.6.15.
Наша цель — преобразовать Q к виду
О 0,
1 ог
, как в (3.6.1). Пусть Q =
О Q2
Q,
wT
Ql
где строка wT занимает то же самое положение, что и удаленная из А. Нужно
преобразовать wT к виду [у 0 ... 0] (где | у | = 1). Пусть Un - плоское вращение,
действующее на позиции п и п + 1 так, что wTUn имеет нуль на последней,
(п + 1)-й позиции. Пусть, далее, Un_ j будет вращением, действующим на по-
зиции п - 1 и п так, что wTUnUn _ 1 имеет нули в двух последних позициях.
Продолжая в этом духе, получим плоские вращения Un _ 2, ..., U{ такие, что
wTUnUn_!... Ux имеет вид [у 0 ... 0]. Если применить эту последовательность вра-
щений к 0, то получится матрица Q = QUn ...Ux вида
0 =
01
о
02
(3.6.6)
В первом столбце, за исключением у, обязательно стоят нули, поскольку
эта матрица ортогональна и, следовательно, имеет ортонормированные
строки.
Пусть R = ...U^R. Тогда А = QR = (QUn ...U^U? ...U^R) = QR. Рас-
смотрим R. Матрица R есть (п + 1) х дп-матрица, у которой т верхних строк об-
разуют верхнюю треугольную матрицу, а п + 1 - т нижних строк равны нулю.
Теперь рассмотрим, как изменяется R после применения плоских вращений
—9 и?. Первые вращения U?, ..., совсем не воздействуют на/?,
поскольку они работают со строками, тождественно равными нулю. Первым
вращением, оказывающим какое-то влияние, является действующее на
строки т и т + 1. Строка т имеет один ненулевой элемент, а именно гтт. Под
воздействием U? этот ненулевой элемент совместно с нулевым элементом в
позиции (т + 1, т) порождает ненулевой элемент в этой же позиции. Понятно,
что это единственный ненулевой элемент, порожденный этой операцией. Ана-
логично применение к строкам т - 1 и т дает ненулевой элемент в
3.6. Обновление QR-разложения
275
положении (т, т - 1) (и нигде больше), поскольку элемент гт_х т_{ не равен
нулю. Схема действия теперь ясна. Применение U?, ..., и[ порождает новые
ненулевые элементы в позициях (т, т + 1), (/и, т - 1),..., (2,1) и нигде больше.
разбить R так: R =
Это означает, что R имеет вид верхней тругольной матрицы. Поэтому можно
где угесть первая строка матрицы R, a R — верхняя тре-
\Т"
R ’
угольная матрица. Вместе с (3.6.6) это дает
Л
zT
,4г
= А = QR =
Q\ г т
Рассматривая верхний блок, имеем Ах = 0vr+ QXR = Q{R. Взглянув теперь на
нижний блок, видим, что А2 = 0vr+ Q2R. Объединяя эти блоки, удаляя среднюю
строку и полагая
Qi.
, получим
Q =
Поскольку строки матрицы Q ортонормированы, Q является ортогональ-
ной матрицей. В итоге мы получаем (^-разложение матрицы А.
Упражнение 3.6.7. Каких затрат требует такая процедура отбрасывания дан-
ных, если (а) нужна только R2 (Ь) нужна Q1 □
Упражнение 3.6.8. Почему процедура отбрасывания данных дороже по срав-
нению с их дополнением? □
Поскольку эта процедура требует знания ортогональной матрицы 0, ее
нельзя использовать при отбрасывания данных в разложении Холесского
АТА = RTR при удалении строки из матрицы А. Но процедура отбрасыва-
ния данных в разложении Холесского все же существует. Она вполне эко-
номична (О(т2) флопов), но и более тонкая: в ней используются гипербо-
лические преобразования — см., например, [33, § 12.5.4] и упражнения с
3.6.12 по 3.6.15.
Добавление столбца
Рассмотрим эксперимент, в котором большое число особей, например,
дрозофил или морских свинок, обмеряются различными способами, напри-
мер, у них измеряется размах крыльев, вес, длина ушей. Если у каждой из
особей измеряется по т параметров, данные могут быть собраны в виде
п х /и-матрицы Л, у которой строки соответствуют особям, а каждый стол-
бец - их параметрам. Мы в состоянии узнать что-то о нашей популяции,
276
Глава 3. Задача наименьших квадратов
решая определенные задачи наименьших квадратов для этих данных. Если
мы хотим рассмотреть в наших исследованиях дополнительный параметр,
необходимо добавить к А новый столбец. Предположим, что у нас есть QA-
разложение матрицы А. Спрашивается, можно ли, добавив столбец к матри-
це А, получить QA-разложение новой матрицы эффективной модификацией
QA-разложения матрицы Л?
Пусть А = [Л! Л2] и Л = [Л1 z Л2], где z — столбец, который надо добавить. У
нас есть разложение Л = QA с ортогональной матрицей Q е R"xw и верхней тре-
угольной А е Rrtx'”. Разбивая А подобно Л, будем иметь
[ Л1 Л2 ] = Q [ А, А2 ].
Посмотрим, как можно модифицировать это разложение, чтобы получи-
лось QA-разложение матрицы Л. Если положить w = QTz = Q~^, то
Л = [Л1гЛ2] = С[ At wA2].
При этом нарушилась треугольная форма А, и надо восстановить ее. Пусть
w есть k-й столбец матрицы А. Чтобы получить треугольную форму, необходи-
мо обнулить нижние п - к элементов ш Пусть Un - плоское вращение, дейст-
вующее на строки п и п - 1 так, что Unw имеет нуль в п-й позиции, a Un _ j -
плоское вращение для строк п - 1 и п - 2 такое, что Un_ {U„w имеет нуль в пози-
ции п - 1. Нули, полученные на предыдущих шагах, остаются без изменения.
Продолжая так и дальше, получим плоские вращения Un_} ,..., Uk+ j такие, что
вектор^ + }...Unw имеет нули в позициях к + 1, ..., п. Пусть
R = Uk+{...Un [AI w А2].
Легко проверить, что А имеет верхнюю треугольную форму. Вращения не
меняют Аи Они изменяют А2, но лишь настолько, чтобы А стала верхней тре-
угольной матрицей. Положим Q = QU^... Uk+,. Тогда А = QR. Это и есть иско-
мое разложение.
Упражнение 3.6.9. Проверьте, что А — верхняя треугольная матрица. □
К сожалению эта процедура модификации не очень экономна. Только вы-
числение w = QTz обходится в 2п2 флопов, а, кроме того, требуется знание Q.
Если п > т\ ее не стоит использовать. В MATLAB’e эту процедуру реализует
команда qrinsert.
Удаление столбца
Теперь предположим, что из нашего примера надо исключить некоторый
признак. Этому соответствует удаление столбца матрицы А. Как же обновить
разложение при отбрасывании столбца? Оказывается, что исключение столбца
обходится намного дешевле его добавления.
3.6. Обновление QR-разложения
277
Пусть А - z А2] и А = [Л| А2]. Предположим, что имеется разложение
А = QR, а нам нужно Q/J-разложение А. Пусть R = \RX w Л2]. Отбрасывая
столбец в равенстве А = QR, получаем
А = [Ах А2] = Q[RxR2]. (3.6.10)
Это не совсем 0Я-разложение, поскольку «Я»-матрица не является верхней
треугольной. Так, например, если удалить третий столбец верхней треугольной
7 х 5-матрицы, то получится матрица вида
♦ * ♦ ♦
0 * ♦ ♦
о о * *
о о о *
0 0 0 0
0 0 0 0
0 0 0 0
Это верхняя матрица Хессенберга, но она может быть приведена к тре-
угольному виду двумя вращениями: t/f, воздействующим на строки 3 и 4 и
следующим за tZ5r, которое воздействует на строки 4 и 5. Если в общем случае
(3.6.10) строка w, удаляемая из R, является £-й строкой, то потребуется т - к + 1
плоских вращений^,..., (7^, чтобы вернуть этой матрице верхнюю треуголь-
ную форму. Полагая A = [Л,Л2] и Q = QUk... Um, получим наше QR-раз-
ложение А.
Эту процедуру можно выполнить и без знания ортогональной матрицы Q, так
что ее можно использовать для отбрасывания данных в разложении Холесского
АТА после удаления столбца из А. Затраты на получение R из R зависят от того,
какой столбец удаляется. В худшем случае (когда удаляется первый столбец) нуж-
но выполнить т вращений, которые действуют на столбцы с эффективной дли-
ной т или меньше. Следовательно, требуется выполнить О(т2) флопов. В лучшем
же случае (удаляется последний столбец) дополнительных затрат не требуется.
В MATLAB’e эта процедура реализована в виде команды qrdelete.
Упражнение 3.6.11.
(а) Предположим, что из А удаляется к-и столбец. Покажите,что для полу-
чения R требуется около 3(ди - к)2 флопов.
(Ь) Покажите,что для вычисления Q по Q требуется около 6п(т - к) флопов
при условии задания Q в явном виде. □
Дополнительные упражнения
Упражнение 3.6.12. 2 х 2-матрица Н называется гиперболическим преобразо-
ванием, если она имеет вид
s с
278
Глава 3. Задача наименьших квадратов
где с > 0 и
с2 - s2 = 1.
(3.6.13)
Множество всех пар (cf s), удовлетворяющих (3.6.13), образует гиперболу в
с-5-плоскости. Для любой пары (с, 5), удовлетворяющей (3.6.13), имеется такое
число о, что c = chaH$ = sho.
(а) Покажите, что любое гиперболическое преобразование Н невырожден-
но. Найдите детерминант преобразования Н. Что есть Я-1? Отметьте, что Я-1
также невырожденно.
’1 О"
О -1
(Ь) Пусть J =
Покажите, что если Нъсгь гиперболическое преобра-
зование, то HTJH=J. Конечно же Я= Я7, но оказывается, что тождественность
иногда удобнее выражать через транспонирование.
(с) Покажите, что если
е 1R2 с |a| > |, то имеется единственное гипербо-
лическое преобразование Я такое, что
а
b
Выведите формулы (напоминающие (3.2.11)), выражающие с и s через а и
Ь.{ Условие с1 2 * - s2 = 1 не налагает никаких ограничений на величину с и s - они
могут быть сколь угодно велики. (На графике гипербола — это неограниченная
кривая.) Отсюда следует, что гиперболические преобразования могут быть
плохо обусловленными в отличие от безусловной устойчивости вращений.
См. упражнение 3.6.16.
(d) Можно встроить гиперболические преобразования в большие матрицы,
как это было в случае вращений. Пусть
с s
I
где с > 0 и с2 - s2 = 1. Предположим, что строки и столбцы, содержащие гипербо-
лическое преобразование, имеют номера i и j (i < j). Пусть J— произвольная диа-
гональная матрица с элементами 1 и -1 в позициях (j,i) и (JJ) соответственно. По-
кажите, что FfrJH = J. (И здесь транспонирование не является необходимым. Од-
нако это тождество выполняется также и для произведения матриц этого типа, и
1 Если |д| = |/>|, то не существует гиперболического преобразования, которое могло бы преобразо-
вать b в нуль. При |a| < |Z>| это можно сделать с помощью гиперболического преобразования другого
типа. Поскольку такие преобразования нам не нужны, они здесь и не вводятся.
3.6. Обновление QR-разложения
279
тогда транспонирование действительно необходимо.) Покажите, что если S = HS,
то STJS = STJS. Покажите, что 5 и 5 отличаются лишь f-й и J-й строками. □
Упражнение 3.6.14. Покажем здесь, как использовать гиперболические пре-
образования при отбрасывании данных в разложении Холесского. Пусть
е Rwx'"
и ранг матрицы А равен т. Предположим также, что имеется R е ИГ”™, множи-
тель Холесского для А ТА, и мы хотим получить R е R'"x'" — множитель Холес-
ского для АТАТ.
(а) Пусть
J =
1 m
ог
о
-1
+ l)x(w + 1)
е
Покажите, что
АТА - АТА - zzT = RTR - zzT = [Яrz] J
’ R
zT
Предлагаемый вам план действий состоит в получении множителя Холес-
ского для АТА обнулением элементов zT в матрице
Для этого воспользуйтесь гиперболическими преобразованиями.
(Ь) Используя тот факт, что АТА является положительно определенной мат-
рицей, покажите, что rrf - z, > 0 и, следовательно, | гн| > (zj. Постройте гипер-
болическое преобразование Н{ е R<m + ,)х<'"+", действующее на строки 1 и m + 1 и
такое, что
St = Я, S =
'12
'21
О
О
О
О z2 -
280
Глава 3. Задача наименьших квадратов
Элемент Z\ будет обнулен. Элемент z2 отличен от z2, но, вообще говоря, не
равен нулю.
(с) Покажите, что ATA-STJS=S{JSV
(d) В упражнении 3.6.15 мы увидим, что | г>2| > I %г\ и необходимые соответ-
ствующие неравенства выполняются на всей последовательности шагов.
Предполагая справедливость этих неравенств, сделайте набросок алгоритма,
который выполняет последовательное применение преобразований
~ ~ Г 7?
к 5, тем самым преобразуя ее к матрице 5 = Sm = Нт ... HXS вида S = Т
нт
, где R
— верхняя треугольная матрица с положительными элементами на главной
диагонали. Покажите, что АТА = STJS=RTR, т.е. R является множителем Холес-
ского для матрицы АТА.
(е) Покажите, что процедура отбрасывания данных требует на все около
Зш2 флопов. □
Упражнение 3.6.15. После к шагов алгоритма, набросанного в предыдущем
упражнении, матрица S приводится к виду
Sk =
^11 ^12
0 Д>2
0T zT
где 7?п имеет размеры к* к. Мы имеем АТА - SkTJSk, где J — та же, что и в пре-
дыдущем упражнении. Пусть А = [Л(1) Л(2)], где Л(1) имеет к столбцов.
(а) Покажите, что Л(1)7Л(1) = R^{RU и Л(1)7Л(2) = ЛцЛ12, и докажите, что R[{ nRn
являются блоками множителя Холеского для АТА,
(Ь) Покажите, что Л(2)7Л(2) - R[2Rn = ^22Л2 ~ • Покажите, что матрица
Л(2)7Л(2) _ является положительно определенным дополнением Шура
Л(1)ГЛ(1) в АТА. Здесь мы существенно опираемся на материал разд. 1.4, особен-
но на упражнение 1.4.58 и соседствующий с ним материал.
(с) Используя положительную определенность Л(2)7Л(2) - R[2Rn, докажите,
что элемент (1,1) матрицы R22, который обозначим какг*+1ЪИ, и ведущий эле-
мент обозначаемый через z*+I, удовлетворяют неравенству |^+l jl+1| >
| zi+1|. Так строится гиперболическое вращение Нк+Х для (к+ 1)-го шага. □
Упражнение 3.6.16. В этом упражнении вы увидите, что гиперболические
преобразования могут быть сколь угодно плохо обусловлены.
(а) Пусть L — большое положительное число (такое большое, как пожелае-
те). Найдите два положительных числа с и s таких, что c>I,s>Lhc2-52 = 1.
Тогда
3.6. Обновление QR-разложения
281
есть гиперболическое преобразование с большой нормой. Покажите, что
И||00 = ||Я-1||00 = е + 5>2Ликаз(Я)^4/;2.
Т
1
(Ь) Пусть v =
’1 ‘
-1
. Покажите, что Hv = (с + s)v и Hw = (с - j)w. Век-
и w =
торы v и w играют особую роль и называются собственными векторами матри-
цы Н. Мы займемся ими в гл. 5 и 6. Покажите, что H~lw = (с -
(с) Используя результаты п. (Ь), покажите, что || Я||2 > (с + s), || /Г11|2 > (с + s)
и к2(Н) > (с + $)2. В гл. 5 мы узнаем, что каждое из этих трех неравенств на са-
мом деле является равенством.
(d) Пусть Н — гиперболическое преобразование, переводящее
а
Ь
—b2
О
где | а | > | b |. При каком соотношении между а и b матрица Н плохо обу-
словлена? □
В свете того факта, что гиперболические преобразования могут быть плохо
обусловленными, следует опасаться неустойчивости любого алгоритма, ис-
пользующего их. Оказывается, что процедура отбрасывания данных из упраж-
нения 3.6.14 работает хорошо, пока положительная определенность АТА не вы-
зывает сомнений, а последняя означает хорошую обусловленность. И если мы
по неосторожности удалим так много строк, что ранг матрицы А станет мень-
ше /и, то алгоритм перестанет быть правильным.
4
Сингулярное разложение (SVD)
QR-разложение является прекрасным инструментом решения задачи наи-
меньших квадратов, когда известно, что матрица ее коэффициентов имеет
полный ранг. Но если это не так или ее ранг не известен, требуются более ос-
новательные средства. Одним из них является QR-разложение с выбором веду-
щего столбца, обсуждавшееся в разд. 3.3. В настоящей главе рассматривается
еще более эффективный метод — сингулярное разложение (его общепринятая
аббревиатура - SVD, singular value decomposition). Возможно, это самое важное
матричное разложение из всех как с теоретической, так и с вычислительной
точки зрения.
В начале главы мы введем сингулярное разложение и покажем его различ-
ные формы. Затем, в разд. 4.2, установим связь между сингулярными числами,
нормой и числом обусловленности матрицы. Мы покажем также, как SVD ис-
пользуется для определения (численного) значения ранга матрицы при нали-
чии ошибок округления и других погрешностей в данных; еще мы покажем,
что матрицы неполного ранга в некотором смысле редки, и, кроме этого, по-
кажем, как определить расстояние до ближайшей матрицы неполного ранга.
Мы введем также псевдообращение - интересное обобщение обращения мат-
рицы. Наконец, в разд. 4.4 будет рассмотрена чувствительность задачи наи-
меньших квадратов в случае полного ранга с помощью результатов, доказан-
ных в разд. 4.2.
В этой главе ничего не говорится о вычислении SVD. Это придется отло-
жить до тех пор, пока не будет установлена связь между сингулярными и соб-
ственными значениями.
И здесь мы будем рассматривать вещественные матрицы. Но все выво-
ды данной главы непосредственно распространяются и на комплексные
матрицы.
4.1. Введение
Пусть А е W1™ , где п и т — положительные целые. Мы не будем делать
предположений о том, какая из величин п и т больше. Напомним, что об-
4.1. Введение
283
пасть значений матрицы А есть подпространство в йя, определяемое как 71(A) =
= {Ах | х е К"1}. Ранг матрицы А — это размерность подпространства 11(A).
Теорема 4.1.1 (SVD-теорема). Пусть А е Rrtxz” — ненулевая матрица ранга г.
Тогда ее можно представить в виде произведения
А = UZV7,
(4.1.2)
где U е йяхя и V е Rwx/” - ортогональные, X е Rwx'” — неквадратная «диагональ-
ная» матрица,
O1 > о2 ••• сгг > 0.
Докажите эту теорему, выполнив упражнение 4.1.17. Разложение (4.1.2) на-
зывается сингулярным разложением матрицы А. Обычно мы будем использовать
аббревиатуру SVD. В дальнейшем мы обсудим многочисленные свойства SVD,
но только после того, как рассмотрим собственные значения и собственные
векторы. Например, теорема 4.1.1 ничего не говорит о единственности разло-
жения. Оказывается, что U и V не определены однозначно, но они обладают
свойствами частичной однозначности, которые мы и обсудим позднее. Эле-
менты Oj, ..., ог матрицы Е определены однозначно и называются сингулярными
числами матрицы А. Столбцами матрицы Uявляются ортонормированные век-
торы, называемые левыми сингулярными векторами матрицы матрицы А, а
столбцы V называются правыми сингулярными векторами по причине, которая
станет понятной позднее. SVD транспонированной А есть АТ = VY^UF.
Рассмотрев собственные значения и собственные векторы, мы сможем
привести второе доказательство SVD-теоремы и разработаем алгоритм вычис-
ления SVD. См. разд. 5.9.
Говорят, что две матрицы А, В е эквивалентны, если существуют един-
ственные матрицы X е R"x" и Y е ЯГ™ такие, что А = XBY. Если матрицы 1и У
ортогональны, то говорят, что А и В ортогонально эквиваленты. Теорема 4.1.1
показывает,что каждая матрица А е Кях/” ортогонально эквивалентна диаго-
нальной матрице.
Другие формы SVD-теоремы
SVD имеет простую геометрическую интерпретацию, являющуюся следст-
вием SVD-теоремы в следующей формулировке.
Теорема 4.1.3 (геометрическая форма SVD-теоремы). Пусть А е 1ГХ'” — нену-
левая матрица ранга г. Тогда в найдется ортонормированный базис vb ..., vm,
284
Глава 4. Сингулярное разложение (SVD)
в К" найдется ортонормированный базис и{, ..., ит и, кроме того, существуют
<зх> а2> ... > ог > О такие, что
г,
I О, i = г
, Л;= ...г (414)
., т, IO, i = г +1, ..., п.
Упражнение 4.1.5. Покажите, что все соотношения (4.1.4) вытекают из SVD-
разложения матрицы А = ULVT (и транспонированной к ней), где щ, ..., ип и
vb ..., столбцы матриц Uи Исоответственно. □
Упражнение 4.1.6. Покажите, что из соотношений в левой половине (4.1.4)
следует матричное равенство AV- US, а из соотношений в правой половине
(4.1.4) следует ATU = и из любого из них вытекает SVD-разложение матри-
цы: A =U£VT. □
Посмотрим на А как на линейное преобразование, отображающее векторы
х е Rw в векторы Ах е R". Теорема 4.1.3 показывает, что Rw и R" имеют ортонор-
мированные базисы такие, что А отображает /-й базисный вектор из в вектор,
кратный z-му базисному вектору из R” (АТ действует подобным же образом). Из
элементарной линейной алгебры известно, что для заданных базисов в F и 1”
это или любое другое линейное преобразование можно представить в виде мат-
рицы относительно этих базисов. Теорема 4.1.3 просто говорит о том, что диаго-
нальная матрица Z является матрицей преобразования А относительно ортонор-
мированных базисов vb ..., vm и ..., ип (а Егесть матрица преобразования А7).
Действие А можно наглядно изобразить с помощью следующей диаграммы:
А
V2 —W2
vr ur
m
Аналогичная диаграмма имеет место и для Ат. Располагая обе диаграммы
рядом, получим графическое представление SVD-теоремы:
А Ат
V СТ1 у V
V1 > и{ > Vj
V СТ2 у .. ст2 V v
у2 > и2 —' ”1
Vr иг °' > vr
Vr+1'
.->0. : .->0,
Vm .
(4.1.7)
4.1. Введение
285
SVD дает ортонормированные базисы для четырех фундаментальных под-
пространств 7£(Л), Л/(Л), ^(Л7) и МЛ7). Из (4.1.7) понятно, что
7£(Л) = spanfWi, ..., иг},
МЛ) = span{vr + ,, vM},
1ЦАТ) = span{vI; vr}, (4.1.8)
//(Л7) = span{«r+H ..., u„}.
Из этих представлений видно, что ^(Л7) = МЛ)1 и 7£(Л) = МЛ7)1; мы дока-
жем эти соотношения другим способом в теореме 3.5.10.
Другим непосредственным следствием из (4.1.8) является факт, который
можно также получить более элементарными средствами. Приведем его ради
будущих ссылок.
Следствие 4.1.9. Пусть А е Rwx'". Тогда сПт(7£(Л)) + сНт(МЛ)) = т.
Следующая теорема дает более сжатую версию SVD.
Теоремы 4.1.10 (сжатая SVD-теорема). Пусть А е Rwx'” — ненулевая матрица
ранга г. Тогда существуют U е Кяхг, S е и Ve Rmxr такие, что U и V изомет-
ричны, Е — диагональная матрица с элементами а2> ... > ог > 0 на главной
диагонали и
А = uivT.
Упражнение 4.1.11. Докажите теорему 4.1.10, соответствующим образом
записав SVD матрицы Л = КИв блочной форме и удалив затем ненужные
блоки. □
Наконец, приведем еще один полезный вариант SVD-теоремы.
Теоремы 4.1.12. Пусть А е IT™ — ненулевая матрица ранга г, а ои ..., ог — ее
сингулярные числа с правыми и левыми сингулярными векторами vh ...,vru иь ..., иг
соответственно. Тогда
А =
7=1
г
Упражнение 4.1.13. Пусть В = Д°кажите теорему 4.1.10, устано-
вив, что В = А. (Покажите, что Л у, = для /= 1,..., т.) □
Упражнение 4.1.14. Дайте второе доказательство теоремы 4.1.12, исполь-
зуя соответствующим образом разбиение разложения Л = £/ЕКгиз теоре-
мы 4.1.10. □
Упражнение 4.1.15. Пусть
, ГЗ 6 9
286
Глава 4. Сингулярное разложение (SVD)
Для тренировки запишите SVD(>4) в сжатой форме теоремы 4.1.10 и в фор-
ме теоремы 4.1.12. Что дает их сравнение? □
Упражнение 4.1.16. В MATLAB’e для вычисления как сингулярных чисел,
так и сингулярного разложения матриц можно воспользоваться командой svd.
Наберите help svd, чтобы узнать, как пользоваться этой командой. Восполь-
зуйтесь командой svd MATLAB’a для проверки результатов, полученных при
выполнении предыдущего упражнения. □
Упражнение 4.1.17. В данном упражнении теорема 4.1.1 доказывается ин-
дукцией по г - рангу матрицы А.
(а) Предположим, что А е R"xw имеет ранг 1. Пусть u{e R" — вектор из 1ЦА)
такой, что || их ||2 = 1. Покажите, что каждый столбец матрицы А кратен их. По-
кажите, что А можно записать в виде А = <зхиху(, где Vj е Rw, || V! ||2 = 1 и ot > 0.
(b) Продолжая начатое в (а), покажите, что имеется ортогональная матрица
U е R”4", первый столбец которой есть их. (Например, Uможет быть отражени-
ем, отображающим единичный вектор ех в их.) Точно так же имеется ортого-
нальная матрица V е Rwxw с первым столбцом Покажите, что А = И И, где
S е R"x/" имеет только один ненулевой элемент, в позиции (1,1). Итак, каж-
дая матрица ранга 1 имеет SVD.
(с) Пусть теперь А е. Rwx'” имеет ранг г > 1, a Vj - единичный вектор, на-
правленный в сторону максимального растяжения при преобразовании Л, т.е.
II V, ||2 = 1 И II Avt ||2 = тах||и|Ь=1||Лм||2.Положим = ||Лу, ||2 = ||Л ||2 и щ = ar'Av{.
Пусть U е Rwxw и V е Rwxw — ортогональные матрицы с первыми столбцами их
и соответственно. Положим A =UTAV , так что А = UAVT. Покажите, что
А имеет вид
0 А
(4.1.18)
где z е Rw 1 и А е R(rt 1)x(m l).
(d) Покажите, что вектор z в (4.1.18) должен быть равным нулю. Это
можно сделать следующим образом: пусть w ==
е R”. Покажите, что
II ||2 / || w ||2 > д/о-2 + ZT z, откуда будет следовать, что z = 0. Поэтому
(е) Покажите, что А имеет ранг г - 1. По индуктивному предположению А
имеет SVD А - UYVT. Пусть о2 > п3 > ... > ог суть положительные элементы
главной диагонали матрицы S. Покажите, что > ст2. Вложите SVD А = t/f V гв
большие матрицы, чтобы получить там SVD для А, Затем воспользуйтесь ра-
венством А = U А V т, чтобы получить SVD для А. □
4.2. Некоторые основные приложения сингулярных чисел
287
4.2. Некоторые основные приложения сингулярных чисел
Связь нормы с числом обусловленности
В разд. 2.1 спектральная норма матрицы была определена как индуциро-
ванная евклидовой векторной нормой:
II я ||2 = max
х*0
1|Ях||2
1|х||2 ’
Рассуждения разд. 2.1 ограничивались квадратными матрицами, но это оп-
ределение имеет смысл и для неквадратных матриц. Геометрически || А ||2 есть
максимальное растяжение, которое может получить произвольный вектор
хе Rm при преобразовании А. В свете (4.1.7) (и упражнения 4.1.17) не удиви-
тельно, что || А ||2 равна максимальному сингулярном числу матрицы А.
Теорема 4.2.1. Пусть А е КЛХ'” имеет сингулярные числа Ст] > ст2 > ... > 0. Тогда
1|Л||2 = Ст,.
Доказательство. Нужно показать, что max || Ах ||2 /1| х ||2 = сти Для начала за-
х*0
метим, что поскольку A= ст^, то
так что max || Ах ||2 /1| х ||2 > стг Теперь нужно показать, что никакой другой век-
тор не имеет растяжения, превышающего стг
Пусть х е Rw. Тогда х можно представить как линейную комбинацию пра-
вых сингулярных векторов матрицы А: х = + c2v2 + ••• + Поскольку
vh ..., vm ортонормированы, ||х||2 = | с{ |2 + ... + | ст |2. Теперь Лх = c^Vj + ... + c,Avr
+ ... + + ... + <з,с,иг + 0 + ... + 0, где г — ранг матрицы А. Так как иъ
..., иг также ортонормированы, то || Ах ||22 = | ста |2 + ... + | ста |2. Таким образом,
ЦЯх||2 <СТ| (| с, |2 + ... +1 сг |2)<СТ|||х||2, т.е. || Ах ||2 /1| х ||2 < ст,. □
Поскольку А и АТ имеют одни и те же сингулярные числа, то получаем
следующее
Следствие 4.2.2. || А ||2 = || Лг ||2.
Упражнение 4.2.3. Вспомним, что матричная норма Фробениуса определя-
ется как
(п п У/2
IIАII. =
Покажите, что || А ||.= (ст2 + ст2 + ... + ст2)|/2. (Указание. Покажите, что если
В = UC, где U ортогональна, то || В ||.= || С ||..) □
288
Глава 4. Сингулярное разложение (SVD)
Теперь предположим, что А е IVх" — квадратная невырожденная матрица.
Спектральное число обусловленности определяется как к2(Л) - || А ||2|| А~' ||2.
Посмотрим, как к2(Л) можно выразить через сингулярные числа матрицы А.
Так как А имеет ранг п, то все ее п сингулярных чисел больше нуля и ее дейст-
вие полностью описывается следующей диаграммой:
А
V1 их
У2 М2
Vn ип
Отсюда следует, что соответствующая диаграмма для А"1 - это
А'1
“l —V1
и2 ———> Ъ
»п vn
На языке матриц А = UYVT и Л-1 = К-7!?11/-1 = KZ"1 UT. Поэтому сингуляр-
ными значениями матрицы Л-1 в порядке убывания будут о^1 > ... > о^1 > 0.
Применяя теорему 4.2.1 к Л'1, приходим к выводу, что || Л-11|2 = о^1. Поэтому
справедлива
Теорема 4.2.4. Пусть А е R"x" — невырожденная матрица с сингулярными чис-
лами Oj > ... > > 0. Тогда к2(Л) = —.
Другое представление числа обусловленности, приведенное в гл. 2, имеет
вид
, .. maxmag^)
к2(Л) —---------,
minmag^)
где
maxmag^) = max12-——,
||x||2
/ Л\ И^Иг
minmagC4) = min
х*° ||х||2
Это дает возможность несколько по-другому посмотреть на число обуслов-
ленности. Из теоремы 4.2.1 мы знаем, что maxmagG4) = оР Следовательно,
должно быть minmagC^) = о„.
4.2. Некоторые основные приложения сингулярных чисел
289
Упражнение 4.2.5. Докажите, что minmag(/4) = Покажите, что минималь-
ное растяжение можно получить, взяв х = vn. □
В разд. 3.4 мы видели, что выражение
к2(Л) =
maxmag(^)
minmag(/4)
(4.2.6)
можно использовать, чтобы распространить определение к2 на некоторые не-
квадратные матрицы. Конкретно, если А е R"xw, п > т и гапк(Л) = т, то
minmagC4) > 0 и можно взять (4.2.6) в качестве определения числа обуслов-
ленности матрицы А. Если А отлична от нуля, но не имеет полного ранга, то
(все еще в предположении п> т) minmag(/4) = 0, так что разумно положить
/с2(Л) = оо. Тогда независимо от того, имеет А полный ранг или нет, выполня-
ется следующая
Теорема 4.2.7. Пусть п > т и А е Rwxw — ненулевая матрица с сингулярными
числами > о2 > ... > <зт > 0. (Здесь допускается, что какое-то из а, равно нулю,
когда гапк(Л) < т.) Тогда maxmag(>4) = minmag(yl) = и к2(А) = Oj/o^.
Доказательство оставляем вам в качестве простого упражнения.
Упражнение 4.2.8. Команда MATLAB’a cond вычисляет число обусловлен-
ности к2(А). Она работает как с квадратными, так и с неквадратными матрица-
ми. Сгенерируйте случайную 3 х 3-матрицу (А = randn(3)) и воспользуйтесь
MATLAB’om, чтобы вычислить к2(А) тремя разными способами: (i) используя
cond, (ii) беря отношение наибольшего сингулярного числа к наименьшему и
(iii) вычисляя || А ||2|| Л-1 ||2(norm(A) *norm(inv(A) ) ). □
Следующие две теоремы дают другие важные результаты, и их также не-
трудно доказать.
Теорема 4.2.9. Пусть А е Rwx'" ип > т. Тогда^ АТА ||2 = ||Л||2 и к2(А1А) = к2(А)2.
Вспомните, что АТА является матрицей коэффициентов для нормаль-
ных уравнений (3.5.22), которые используются при решении задачи наи-
меньших квадратов. Теорема 4.2.9 показывает, что нормальные уравнения
могут быть очень плохо обусловленными, даже если матрица А обладает
плохой обусловленностью средней величины. Например, если к2(А) » 103,
то к2(АтА) » 106.
Упражнение 4.2.10.
(а) Используйте SVD(>4), чтобы получить 8УЛ(ЛГЛ), и докажите теоре-
му 4.2.9.
(Ь) Пусть М е R”4” - положительно определенная матрица и R — множи-
тель Холесского матрицы М, так что М = RTR. Покажите, что || М ||2 = ||Л||2 и
к2(М) = k2(R)2. □
Результаты следующей теоремы будут использованы при анализе чувстви-
тельности задачи наименьших квадратов в разд. 4.4.
Теорема 4.2.11. Пусть А е W™, п> т, гапк(Л) = т и ее сингулярные числа суть
СТ1 > ... > стм > 0. Тогда || (АТА)~1||2 = ст;2, || (АГА)-'АТ \\2 = ст;1, \\А(АГА)~' ||2 = ст„' и
||Л(ЛТЛ)-Ч12= 1.
’>0 Основы матричных вычислений
290
Глава 4. Сингулярное разложение (SVD)
Матрица (АГА)~1АГ называется псевдообратной для матрицы А, А(АТА)~Х яв-
ляется псевдообратной для Ат. В следующем разделе псевдообратные матрицы
будут рассмотрены более подробно.
Упражнение 4.2.12. Пусть Л та же, что и в теореме 4.2.11, и SVD(J) = f/LH.
Найдите сингулярные разложения матриц
(ArA)~l, (ArA)~lAr, А(АгА)-! и А(АТА)~1АТ,
выраженные через SVDG4). Используйте ортогональность матриц U и И где
это возможно. Обратите внимание на размеры различных матриц.
(Ь) Используйте результаты п. (а) для доказательства теоремы 4.2.11. □
Численное определение ранга
При отсутствии в данных ошибок округления и различных неопределенно-
стей сингулярное разложение позволяет определить ранг матрицы. К сожале-
нию, наличие ошибок делает возможность определения ранга проблематич-
ной. Например, рассмотрим матрицу
А =
1/3
2/3
1/3
2/5
3/5
1/3
2/3
2/3
2/5
1/5
2/3
4/3
3/3
4/5
4/5.
(4.2.13)
Очевидно, А имеет ранг 2, так как третий столбец является суммой первых
двух. Однако если мы не заметим эту зависимость и решим вычислить ранг с
помощью, скажем, MATLAB’a, то начнем с ввода матрицы в компьютер. Это
простое действие будет сопровождаться ошибками округления, что приведет к
нарушению зависимости между столбцами, и находящаяся в компьютере воз-
мущенная матрица будет иметь ранг 3. Если теперь воспользоваться MATLAB-
командой svd для вычисления сингулярных чисел матрицы А в соответствии с
IEEE-стандартом арифметики с плавающей точкой двойной точности, то по-
лучим
Ст! = 2.5987 о2 = 0.3682 и ст3 = 8.6614 х ПТ17.
Поскольку все три сингулярных числа отличны от нуля, мы приходим к вы-
воду, что матрица имеет ранг 3. Однако нельзя не заметить, что одно из сингу-
лярных чисел очень мало - порядка единичной ошибки округления стандарта
IEEE для арифметики двойной точности. Возможно, его стоит считать равным
нулю. Поэтому мы введем понятие численного ранга.
Грубо говоря, матрица, у которой есть к «больших» сингулярных чисел, а
остальные сингулярные числа «малы», имеет численный ранг к. С целью опре-
деления, какие сингулярные числа считаются «малыми», мы вводим понятие
порогового или допустимого значения е, являющегося грубой оценкой уровня
4.2. Некоторые основные приложения сингулярных чисел
291
неопределенности данных в матрице. Например, если все погрешности сво-
дятся лишь к ошибкам округления, можно принять е = 10и|| А ||, где и — еди-
ничная ошибка округления. В этом случае будем говорить, что А имеет чис-
ленный ранг к, если к ее сингулярных чисел существенно превосходят е, а все
остальные меньше £ , т.е.
О! > о2 > ... > » £ > стЛ+1 > ...
В MATLAB’e есть команда rank, определяющая численный ранг матрицы.
Будучи примененной к указанной выше матрице А, она выдает ответ 2.
MATLAB-команда rank использует принятое по умолчанию пороговое значе-
ние, которое может быть изменено пользователем. Для получения дополни-
тельной информации наберите в командной строке MATLAB’a help rank.
Иногда оказывается невозможным определить точное значение численного
ранга. Например, представьте себе матрицу размеров 2000 х 1000 с сингуляр-
ными числами о7 = (.9)7,J= 1,..., 1000. Тогда Oj = .9 и о1000 = 1.75 х 10"46, так что
численный ранг определенно меньше 1000. Однако невозможно определить
численный ранг точно, поскольку нет значимого зазора между сингулярными
числами. Например,
о261 = 1.14 х 10-12, о262 = 1.03 х 10"12,
а263 = 9.24 х 1013, о264 = 8.3 1 х 10"13.
Если, скажем, £ = 10"12, то разумно считать ранг приблизительно равным
260, но нет убедительных оснований определить его точно.
Следующие упражнения и теорема дают основание для использования син-
гулярных чисел при определении численного ранга матрицы. Начнем с упраж-
нения, показывающего, что небольшие возмущения матрицы неполного ранга
могут увеличить (и обычно увеличивают) ранг. Здесь мы говорим о точном
ранге, а не о численном.
Упражнение 4.2.14. Пусть A g R”x'” имеет ранг г < min{n, т}. Используйте
SVD(H), чтобы показать, что для любого £ > 0 (неважно, какой величины) су-
ществует матрица полного ранга Ле е IVх'” такая, что || А - А£ ||2 < е . □
Неотрицательное число || А - Ае ||2 является мерой расстояния между матри-
цами А и ЛЕ. Упражнение 4.2.14 показывает, что каждой матрице А неполного
ранга соответствует полноранговая матрица ЛЕ, сколь угодно близкая к ней.
Это наводит на мысль, что полноранговых матриц очень много. Такое впечат-
ление усиливается следующей теоремой и её следствием.
Теорема 4.2.15. Пусть А е IVх'”, гапк(Л) = г> 0 и SVD (А) = ULVT с сингулярными
числами Oj >о2> ... >ог>0. Для к- 1,..., г- 1 положим Ак = U£kVT, гдеЪк е Wm яв-
ляется диагональной матрицей diag{oh ..., оъ0, ..., 0}. Тогда гапк(Л^) = к и
ст* +1 = IIЛ - 4* ||2 = min{|| А - В ||2 | гапк(Л ) < к},
т.е. из всех матриц ранга к и меньше Ак ближе всех к А.
292
Глава 4. Сингулярное разложение (SVD)
Доказательство. Очевидно, гапк(Л^) = к. Поскольку SVD(>4 - Ак) = (7(Z - 'Lk)VTi
ясно, что наибольшее сингулярное число А - Ак есть ак+Р Следовательно, || А -
- Ак ||2 = &к+1- Остается только показать, что для любой другой матрицы В ранга к
или менее || А - В ||2 > <зк+ j .
Сначала отметим, что для любой такой матрицы В пространство Ы(В)
имеет размерность по крайней мере т - к, ибо dim(A/(B)) = т - dim(7d(l?)) =
- т - гапк(В) > т - к в соответствии с (4.1.9). К тому же пространство
span{vb ..., vfc+1} имеет размерность к + 1. (Как обычно, vb ..., vm обозначают
столбцы матрицы И) Поскольку Л/(В) и span{v15 ..., J суть два подпростран-
ства из 1Г, сумма размерностей которых превышает т, они имеют нетриви-
альное пересечение. Пусть х — ненулевой вектор из M^nspanfvj, ..., v*+1}.
Мы можем и будем предполагать, что || х ||2 = 1. Поскольку х g span{vb ..., vk+ J,
существуют скаляры q, ..., ск+1 такие, что х = + ... + Так как
vb v*+1 ортонормированы, |cj2 + ... + |q+1|2 = || х ||22 = 1. Поскольку
х еЛ/(В), Вх = 0. Таким образом,
к+\ к+\
(А - В)х = Ах = ^CfAvt =
i=l i=l
Так как ul9 ..., ик+1 тоже ортонормированы, то
Л+1 fc+l
Н(л -5)х||2 = £1 I2 с> I2 = ctLi-
/=1 /=1
Следовательно,
1Кл-ад2 _
--------- - °к+ 1-
Следствие 4.2.16. Предположим, что А е R"x/” имеет полный ранг, т.е. гапк(Л) =
= г, где г = min{n, т}. Пусть > о2 > ... > ог > 0 — сингулярные числа матрицы А и
В е Клх/” удовлетворяет условию || А - В ||2 < о> Тогда В также имеет полный ранг.
Упражнение 4.2.17. Получите следствие 4.2.16 из теоремы 4.2.15. □
Упражнение 4.2.18. В первой части доказательства теоремы 4.2.15 мы ис-
пользовали SVD матриц А, Ак и А - Ак в форме, приведенной в теореме 4.1.1.
Напишите другие формы SVD матриц Ак и А - Ак: (а) в виде диаграммы (4.1.7),
(Ь) по аналогии с теоремой 4.1.10, (с) по аналогии с теоремой 4.1.12. □
Из следствия 4.2.16 видно, что если А имеет полный ранг, то все матрицы,
достаточно близкие к А, также имеют полный ранг. Из упражнения 4.2.14 мы
знаем, что для каждой матрицы неполного ранга имеется матрица полного
ранга, как угодно близкая к ней. По следствию 4.2.16 в окрестности каждой их
этих матриц полного ранга имеются другие матрицы полного ранга. На языке
топологии это означает, что множество матриц полного ранга есть открытое
плотное подмножество в Rwxw. Его дополнение, множество матриц неполного
4.2. Некоторые основные приложения сингулярных чисел
293
ранга, является, следовательно, замкнутым и нигде не плотным. Таким обра-
зом, в некотором смысле почти все матрицы имеют полный ранг.
Если матрица не имеет полного ранга, любое небольшое возмущение почти
наверняка преобразует ее в матрицу полного ранга. Отсюда следует, что при
наличии неопределенности в данных не только невозможно вычислить (точ-
ный, теоретический) ранг матрицы, но и установить, что она имеет неполный
ранг. Это - обобщение утверждения, сделанного в гл. 1 и 2, что далеко не все-
гда можно определить, является ли квадратная матрица вырожденной.
Тем не менее имеет смысл говорить, что матрица имеет неполный численный
ранг, если она очень близка к неполноранговой матрице, поскольку она может
быть неполноранговой с точностью до небольшого возмущения, как в случае
возмущенной версии (4.2.13). Пусть е — некоторое положительное число,
представляющее собой величину неопределенности данных в матрице А. Если
существует такая матрица В ранга Л, что || А - В ||2 < г и, с другой стороны, для
каждой матрицы С ранга < к - 1 имеем || А - С ||2 > £ , то имеет смысл говорить,
что численный ранг матрицы А равен к. Из теоремы 4.2.15 мы знаем, что это
условие выполняется тогда и только тогда, когда
О! > о2 > ... > ск » с > ак+1 > ...
Это оправдывает использование сингулярных чисел при определении чис-
ленного ранга.
Упражнение 4.2.19. Получите с помощью MATLAB’a случайную матрицу.
Например, команда А = randn (4 0,17) дает 40 х 17-матрицу независимых
нормально распределенных чисел с нулевым средним и дисперсией 1. Вос-
пользуйтесь MATLAB-командой svd, чтобы вычислить сингулярные числа
матрицы А. Обратите внимание (если вам только действительно не повезет),
что все сингулярные числа большие. Повторите эксперимент несколько раз.
Попробуйте матрицы разных размеров. Это показывает, что случайно выбран-
ные матрицы (почти всегда) имеют полный ранг. □
Упражнение 4.2.20. Получите с помощью MATLAB’a случайную 8 х 6-мат-
рицу ранга 4.Например, вы можете выполнить следующее:
А = randn(8,4);
А (:,5:6) = А(:,1:2) + А(:,3:4);
[Q,R] = qr(randn (6));
А = A*Q;
Первая команда дает случайную 8 х 4-матрицу (ранга 4). Вторая команда
присоединяет к А два столбца, суммируя столбцы 1 и 2 со столбцами 3 и 4 со-
ответственно. Теперь А становится 8 х 6-матрицей и все еще имеет (числен-
ный) ранг 4. Третья строка порождает случайную ортогональную матрицу Q
размеров 6 х 6 с помощью 0Л-разложения случайной 6 х 6-матрицы. В послед-
ней строке происходит рекомбинация столбцов матрицы А путем умножения
ее справа на матрицу Q. В результате получится матрица, численный ранг ко-
торой равен 4.
294
Глава 4. Сингулярное разложение (SVD)
(а) Выведите А на экран вашего компьютера. Можете ли вы, взглянув на
нее, сказать, что ее (численный) ранг равен 4?
(b) С помощью MATLAB-команды s vd определите сингулярные числа мат-
рицы А. Как много среди них «больших» и «малых»? (Чтобы иметь более точ-
ное представление о сингулярных числах, воспользуйтесь командой format
short е. Для получения дополнительной информации о форматах вывода
чисел наберите help format .)
(с) Используя MATLAB-команду rank, убедитесь, что численный ранг ра-
вен 4.
(d) Используя команду rank с достаточно низким пороговым значением,
убедитесь, что она выдает значение 6. (Чтобы узнать, как это сделать, наберите
help rank.) □
Упражнение 4.2.21. Матрица Кахана Rn(fi) — это верхняя треугольная п х 72-
матрица, зависящая от параметра 0. Пусть с = cos 0 и s = sin 0. Тогда
Если 0 и л выбраны так, что s близко к 1, а л имеет умеренную величину, то
ни один из элементов главной диагонали не будет очень малым. Таким обра-
зом, создается впечатлениие, что эта матрица не является матрицей неполного
ранга, но это впечатление обманчиво. Рассмотрим А = Rn (0), когда л = 90 и 0 =
1.2 радиан.
(а) Покажите, что наибольший элемент главной диагонали матрицы А ра-
вен 1, а наименьший больше .001.
(Ь) Чтобы в MATLAB’e сформировать А и найти ее сингулярные числа,
наберите
А = gallery('kahan',90,1.2,0);
sig = svd(A);
Рассмотрите ab a89 и o90 (последнее не равно нулю: воспользуйтесь коман-
дой format short е). Чему равен численный ранг матрицы Л? Чтобы узнать
результат MATLAB’a, наберите rank (А) .
(с)НаберитеА = gallery ('kahan', 90,1.2,25) ;, чтобы получить слег-
ка возмущенную версию матрицы Кахана. (Для получения дополнительной
информации наберите help private/kahan.) Повторите п. (b) с этой возму-
щенной матрицей. Затем получите ^-разложение с выбором ведущего столб-
ца: [Q, R, Е] = qr (А) ;. Обратите внимание, что перестановочной матрицей
Еявляется единичная матрица: dif = norm (eye (90) -Е), т.е. не было ника-
кого выбора ведущего элемента. Рассмотрите Я90(ти/2) и покажите, что QA-раз-
ложение с выбором ведущего столбца не дает возможности определить, что А
имеет неполный численный ранг.
4.2. Некоторые основные приложения сингулярных чисел
295
Матрица Кахана лишь одна из многих в коллекции Хигэма тестовых мат-
риц для MATLAB’a. Наберите help gallery, чтобы получить полный спи-
сок. □
Ортогональные разложения
QA-разложение с выбором ведущего столбца дает АЕ = QR или, что экви-
валентно, А = QRE1, где Е — перестановочная матрица, особый вид ортого-
нальной матрицы; SVD дает А = ITLVT. Оба разложения являются примерами
ортогональных разложений А = YTZT, где Y и Z — ортогональные матрицы, а
Т имеет какую-то простую форму. Вычисление 0/?-разложения стоит на-
много меньше вычисления SVD. Однако с помощью SVD всегда можно оце-
нить численный ранг матрицы, тогда как (^-разложение иногда дает невер-
ные результаты, как мы уже видели это в упражнении 4.2.21. Следователь-
но, существует большая потребность в получении ортогональных разложе-
ний, недорогих в вычислительном отношении и все же позволяющих оце-
нить ранг матрицы. В частности, достойны внимания ULV- и t/АИ-разложе-
ния, имеющие ту привлекательную черту, что их можно пересчитать без
особых затрат, если А модифицируется матрицей ранга 1, что обычно имеет
место при обработке сигналов. Детальное обсуждение этого вопроса можно
найти в [33, § 12.5.5].
Расстояние до ближайшей вырожденной матрицы
Завершим этот раздел рассмотрением того, что дает применение теоремы
4.2.15 к квадратным невырожденным матрицам. Пусть Л е Кях" — невырожден-
ная матрица и А, обозначает вырожденную матрицу, ближайшую к А в том
смысле, что || А - As ||2 так мало, как возможно. В теореме 2.3.1 было показано,
что для любой индуцированной матричной нормы справедливо
1И-Л1К 1
1И1 к(Л)’
и упоминалось также, что для 2-нормы имеет место равенство. Теперь мы по-
лучили инструмент для доказательства этого.
Следствие 4.2.22. Пусть А е R"x" — невырожденная матрица. (Поэтому А
имеет сингулярные числа о, > о2 ••• - Пусть АЛ — вырожденная матри-
ца, ближайшая к А в том смысле,что || А - As ||2 мало, насколько возможно. То-
гда || А - As ||2 = и
IM-AII2- 1
1И12 к2(Л)'
Эти результаты следуют непосредственно из теорем 4.2.1, 4.2.4 и 4.2.15.
Проше говоря, расстояние от А до ближайшей вырожденной матрицы равно
296
Глава 4. Сингулярное разложение (SVD)
наименьшему сингулярному числу матрицы Л, а «относительное расстояние»
до ближайшей вырожденной матрицы равно величине, обратной числу обу-
словленности.
Дополнительные упражнения
Упражнение 4.2.23. Напишите и докажите формулу для выражения числа
обусловленности Фробениуса к/Л) невырожденной матрицы А е R'’4" через
сингулярные числа матрицы А.
Упражнение 4.2.24. Пусть А е Rwx/” имеет сингулярные числа Oj > ... > и
правые сингулярные векторы vm. Мы видели, что || Ах ||2 /1| х ||2 принимает
максимальное значение при х = Vj и минимальное при х = vm. Обобщая это, по-
кажите, что при к = 1, ..., т
а _ lb _ max fll^lb |х*0 xesnan(v v I
~------ — Illd-X > ” - I X 7- v, At opd.IlyV|, ..., j
Kll2 ll|x||2
= min | x Ф 0, xe span{v*+1,..., vj11
Упражнение 4.2.25.
(а) Пусть A e R2x2 имеет сингулярные числа > o2 > 0- Покажите, что мно-
жество {Ах 11| х ||2 = 1} (образ единичной окружности) есть эллипс в R2, у кото-
рого большая и меньшая полуоси имеют длины Oj и о2 соответственно.
(Ь) Пусть A е R"x'”, п > т, гапк(Л) = т. Покажите, что множество {Ах 11| х ||2 = 1}
есть ди-мерный гиперэллипсоид с полуосями о2,..., ат. Заметьте, что длины
самой длинной и самой короткой полуосей равны maxmag(J) и minmag(J) со-
ответственно. □
4.3. SVD и задача наименьших квадратов
Пусть A g R"x'" , г = гапк(Л) и i е к”. Рассмотрим систему уравнений
Ах - b
(4.3.1)
с неизвестным х е Rw. Если п > т, то система переопределена и нельзя,
вообще говоря, найти единственное решение. Поэтому ищется такой век-
тор х, который минимизировал бы || b - Ах ||2. Это и есть задача наимень-
ших квадратов, которая изучалась в гл. 3. Там мы обнаружили, что если
п > т и гапк(Л) = т, то задача наименьших квадратов имеет единственное
решение. Если гапк(Л) < т, то решение не единственно: существует мно-
4.3. SVD и задача наименьших квадратов
297
жество х, минимизирующих || Ь - Ах ||2. Даже если п < т, может случить-
ся,что (4.3.1) не имеет единственного решения, и поэтому мы включаем
также и этот случай. Так что мы не будем делать предположений об отно-
сительной величине пит.
Поскольку решение задачи наименьших квадратов не всегда единственно,
рассмотрим следующую дополнительную задачу: из всех х е IT, минимизи-
рующих || b - Ах ||2, найти тот, у которого || х ||2 минимальна. Как мы увидим, эта
задача всегда имеет единственное решение.
Для начала предположим, что А и b известны точно и все вычисления вы-
полняются точно. Так как с теоретическими аспектами мы уже разобрались,
рассмотрим теперь практические вопросы.
Пусть известно точное SVD(?1) = UZV1, где U е IT** и V е R'”xw ортого-
нальны, а
Е О
О О
Е = diag{o13
аг},
причем Oj > ... > <зг > 0. Поскольку U ортогональна, то
II ь - Ах Ц2 = II lF(b - Ах) ||2 = II Ifb - Е(^х) ||2.
Полагая с ~ Ifb и у = Их, имеем
г п
||/>-Лх||^ = ||с-Еу||| = £| с, - О/Л I2 + Е I с> I2- (4.3.2)
/=1 /=г+1
Ясно, что правая часть этого выражения принимает минимальное значение
лишь тогда, когда
Обратите внимание, что при г < т, элементы уг+1, ..., ут не появляются в
(4.3.2), поскольку они не влияют на величину невязки и могут быть выбра-
ны произвольным образом. Ясно, что среди всех решений, полученныхта-
ким образом, || у ||2 будет минимальной тогда и только тогда, когда yr+ j = ... =
= ут = 0. Так как х = Vy и V ортогональна, || х ||2 = || у ||2. Таким образом, || х ||2
минимальна тогда и только тогда, когда минимальна || у ||2. Это доказывает,
что задача наименьших квадратов имеет только одно решение с минималь-
ной нормой.
Полезно повторить выкладки, используя матричные разбиения. Пусть
с =
с
d
и у =
У
Z
298
Глава 4. Сингулярное разложение (SVD)
где с, у е Rr. Тогда
так что
s о1Гу
0 0г
с-Ъу
d
с - Еу =
с
d
11^-^хЦг = 1|с-Мг = Це -Sylll + Иг-
Это выражение принимает минимальное значение тогда и только тогда, ко-
гда у = Z"lc, т.е. у,- = c-J су,, i = 1,..., г. Мы можем выбрать z произвольным обра-
зом, но решение с минимальной нормой получим, взяв z = 0. Норма мини-
мальной невязки равна || d ||2. Это, в принципе, полностью решает задачу. По-
дытожим наши рассуждения:
1. Вычисляется
= с = Ifb.
2. Полагаем у = X 1с.
3. Если г <т, выбираем z е Rw"r произвольным образом.
(4.3.3)
(Чтобы минимизировать решение, полагаем z = 0.)
4. Полагаем у -
е Г”.
5. Полагаем х - Vy
Практические соображения
На практике мы не знаем точно ранг матрицы А. В этом случае лучше всего
воспользоваться численным рангом, обсуждавшимся в разд. 4.2. Все «малые»
сингулярные числа необходимо положить равными нулю. Мы решаем задачу
наименьших квадратов в предположении, что матрицы U и V уже известны.
Однако легко проверить, что для вычисления с используется только г первых
столбцов матрицы U, где, на практике, г есть численный ранг. Если ищется
лишь решение с минимальной нормой, то знать нужно только г первых столб-
цов матрицы V. Хотя численный ранг обычно не известен заранее, он все же
никогда не превосходит min{n, т}, так что потребуется не более min{n, т]
столбцов матриц U и V
Если п > т, вычисление U может потребовать больших затрат, даже если вы-
числять лишь т первых ее столбцов. На самом деле можно полностью избежать
вычисления U. Она является произведением многих отражений и вращений,
которые получаются при вычислении SVD (это обсуждается в разд. 5.9). По-
скольку U необходима лишь для вычисления с = Ifb, можно просто корректиро-
вать b вместо формирования U. По мере получения вращения или отражения Ц
мы можем выполнять корректировку b <- U[ b. В конце концов b будет преобра-
зовано в с. На это требуется намного меньше затрат, чем на получение U в яв-
ном виде лишь для того, чтобы найти с = UTb. При этом мы получим не только с,
но также и J, после чего можно без больших затрат вычислить невязку || d ||2.
Если в нескольких задачах, решаемых методом наименьших квадратов, матрица
А одна и та же, но различны правые части i(1), i(2),..., то необходимо выполнять
корректировку сразу же всех потому что Ut не запоминается.
4.3. SVD и задача наименьших квадратов
299
Независимо от того, как организованы вычисления, SVD является дорого-
стоящим способом решения задачи наименьших квадратов. Его главное досто-
инство состоит в том. что оно дает вполне надежное средство определения
численного ранга в неполноранговых задачах наименьших квадратов.
Псевдообращение
Псевдообращение, также известное как обобщенное обращение Мура-Пен-
роуза, является интересным обобщением обычного обращения. В то время как
лишь квадратные невырожденные матрицы имеют обратные, любая А е R',xw
имеет псевдообратную. Точно так же, как решение квадратной невырожденной
системы Ах = b можно выразить через А~1 в виде х = А~1Ь, решение с минималь-
ной нормой задачи наименьших квадратов с матрицей коэффициентов A g W™
можно записать с помощью псевдообратной матрицы А^ в виде х = А^Ь.
Для данной матрицы А е Rwxm ранга г действие А полностью описывается
диаграммой
А
V, и{
v2 —» U2
vr
иг
V
т
здесь ур ..., vm и uv ..., ип — полные ортонормированные множества правых и
левых сингулярных векторов соответственно, а > о2 > ... > ог > 0 - ненулевые
сингулярные числа матрицы А. В матричной форме А = ULVT.
Определим псевдообращение Л1 е Rwx" так, чтобы оно как можно больше
походило на настоящее обращение. Для этого нужно непременно выполнить
условия = o/v, для i = 1, ..., г. Разумно выбрать А*иг+1) ..., Ауип равными
нулю. Таким образом, мы вводим псевдообращение матрицы А как матрицу
A* g Rwxw, однозначно определяемую диаграммой
А*
Ст,-1
М2 —> V2
Ur ——> Vr
; l->o.
и
m
300
Глава 4. Сингулярное разложение (SVD)
Сразу понятно, что гапк(Лт) = гапк(Л), ub ип и vb — соответственно
правые и левые сингулярные векторы матрицы Л1 и of1, •••» ~ ее не-
нулевые сингулярные числа. Сужения операторов Л: span{vb vr} -> span{wb ur}
и Л1: span{wb ur} -> span{vb vr} являются настоящими обращениями друг
для друга.
Как выглядит матрица Л1? В простейшем случае ответить на этот вопрос
можно, выполнив следующее
Упражнение 4.3.4. Покажите, что если
S =
еГ"1, S = diag{Q!,
то
□
Чтобы понять, как Л1 выглядит в общем случае, заметим, что выражения
л’«,-
I 0, / = г + 1,...,и
можно представить в виде простого матричного соотношения Л1 U = где
та же, что и в упражнении 4.3.4. Таким образом, поскольку U ортогональна,
Л1 = V'tfU1'.
(4.3.5)
Это и есть SVD матрицы Л1 в матричной форме. Если обозначить через U и
V первые г столбцов матриц Uи Ксоответственно, то можно переписать (4.3.5)
в сжатой форме:
А' = Vi-'UT, (4.3.6)
как в теореме 4.1.10. Выражение (4.3.6) дает нам средство определения At через
вычисление SVD для Л. Однако необходимость вычислять псевдообратную
матрицу возникает редко — это, вообще говоря, инструмент для теоретических
исследований. В этом отношении роль псевдообратной матрицы во многом
сходна с ролью обычной обратной матрицы.
Теперь нетрудно установить связь между псевдообращением и задачей наи-
меньших квадратов.
Теорема 4.3.7. Пусть A е Rwx/”, b е R” и пусть х е F будет решением с мини-
мальной нормой для задачи
|| Ь - Ах ||2 = min || b - Aw ||2.
Тогда х = А'Ь.
4,3. SVD и задача наименьших квадратов
301
Доказательство. В соответствии с (4.3.3)
с
d
О
О
= Vtfc = V^lFb = A'b.
□
Псевдообращение используется при изучении чувствительности задачи
наименьших квадратов с неполным рангом. См. [7].
г г
Упражнение 4.3.8. Покажите, что если А = , то Af = . □
/=1 /=1
Упражнение 4.3.9. Сделайте это упражнение с карандашом и бумагой. Для
проверки ваших результатов можно воспользоваться MATLAB’om. Пусть
(а) Найдите SVD(>4). Возьмите его сжатую форму из теорем 4.1.10 или 4.1.12.
(Ь) Найдите Af.
(с) Найдите решение с минимальной нормой задачи наименьших квадра-
тов для переопределенной системы Ах = Ь.
(d) Найдите базис Л/(Л).
(е) Найдите все решения этой задачи наименьших квадратов. □
Упражнение 4.3.10. Команда MATLAB’a pinv выдает псевдообраще-
ние матрицы. Используйте pinv для нахождения псевдообращения мат-
рицы
. П 2 31
С помощью команды MATLAB’a svd найдите сингулярные числа матриц
АА* иАТА. Объясните, почему ваши результаты совпадают с тем, что вы ожи-
дали. □
Упражнение 4.3.11 (псевдообращение матриц полного ранга).
(а) Покажите, что если А е R"x/”, п > т, и гапк(Л) = т, то Af = (АГА)~1АГ (ср. с
теоремой 4.2.11 и упражнением 4.2.12). Сравните эти соотношения с нормаль-
ными уравнениями (3.5.22).
(Ь) Покажите, что если А е JR"*"1, п < т, и гапк(Л) = п, то Af = А\АТА)“’. □
Дополнительные упражнения
Упражнение 4.3.12. Выясните, что получится, если при решении задачи
наименьших квадратов очень малые сингулярные числа считать отличными от
нуля. □
302
Глава 4. Сингулярное разложение (SVD)
Упражнение 4.3.13. Предположим, что А е К"х/", п < т, и гапк(Л) = п.
(а) Покажите, что в данном случае решение задачи наименьших квадратов
с минимальной нормой в действительности является задачей условной мини-
мизации с некоторыми ограничениями.
(Ь) Эту задачу можно решить с помощью SVD. Покажите, что ее можно
также решить спомощью ZQ-разложения: А = LQ, где L = [L 0] е R"x'”,
L е _ невырожденная нижняя треугольная матрица, a Q е R ткт орто-
гональна.
(с) Как находится такое ZQ-разложение? Набросайте алгоритм вычисления
ZQ-разложения и решения задачи условной минимизации. □
Упражнение 4.3.14.
(а) Пусть A g Rwxw и В = Af е Rmxn. Покажите, что справедливы следующие
четыре соотношения:
ВАВ = В, АВА = А,
(ВА)Т = ВА, (АВ)Т = АВ. (4.3.15)
(Ь) Обратно, покажите, что если Ли В удовлетворяют (4.3.15), то В = А*. Та-
ким образом, выражения (4.3.15) характеризуют псевдообращение. Во многих
книгах эти выражения и на самом деле используют как определение псевдооб-
ращения. □
4.4. Чувствительность задачи наименьших квадратов
В этом разделе мы рассмотрим чувствительность решения задачи наимень-
ших квадратов к возмущениям в А и Ь. Для простоты рассмотрим только слу-
чай полного ранга при п > ш. Более общие результаты можно найтив [7].
Для заданных А е R”xm и b е R”, у которых п > m и rank(J) = m, существует
единственный вектор х е F такой, что
|| b - Ах ||2 = min || b - Aw ||2.
w gR”
Небольшие возмущения в А и b приведут к изменению х. Выясним, на-
сколько чувствителен к ним х. Рассмотрим также чувствительность невязки
г = b - Ах. Анализ чувствительности можно совместить с обратным анали-
зом ошибок, чтобы дать оценку точности различных методов решения зада-
чи наименьших квадратов.
Из сказанного в разд. 3.5 ясно, что решение задачи наименьших квадратов
можно рассматривать как двухэтапный процесс. Сначала находим у е 7£(Л),
для которого удаление от b минимально:
II b - у ||2 = min II b - S ||2.
s g 7£( Л)
4.4. Чувствительность задачи наименьших квадратов
303
После этого решение задачи наименьших квад-
ратов х е F находим как точное решение уравне-
ния Ах = у. Поскольку А имеет полный ранг, реше-
ние единственно. Хотя А е R"x/" и у е все же
матричное уравнение Ах = у на деле является сис-
темой т уравнений с т неизвестными, ибо у лежит
в w-мерном подпространстве 7£(Л), а А : -> 1ЦА)
можно рассматривать как отображение одного
у(= Ах)
Рис. 4.1. Прямоугольный
треугольник, образован-
ный Ь, у и г.
ди-мерного пространства в другое.
Упражнение 4.4.1. ди-мерный характер системы можно показать, выбрав
подходящим образом систему координат.
(а) Покажите, что 0Я-разложение делает как раз этот выбор. Как находится
вектор у? Как решается система Ах = у?
(Ь) Выполните (а), используя SVD вместо (^-разложения. □
Пусть r=b-y = b-Ax — невязка задачи наименьших квадратов. По теореме
3.5.15 г ортогонален И(А). В частности, Ь, у и г образуют прямоугольный тре-
угольник, как показано на рис. 4.1. Угол 0 между b и у является наименьшим
углом между b и элементами И(А).
Очевидно, что
II г ||2 = II b ||2 sin О,
II У lb = II b ||2 cos 0.
(4.4.2)
(4.4.3)
Эти выражения вместе с рис. 4.1 окажутся полезными в нашем анализе
чувственности.
Влияние возмущений вектора b
Сначала рассмотрим только влияние возмущений вектора Ь. Для данного
возмущения ЬЬ обозначим через у + 8у элемент 7£(Я), ближайший к b + 8i, а
через х = х + 8х -точное решение системы Ах = у + 8у Тогда х минимизирует
|| (b + 8b) - Aw ||2. Нам хотелось бы утверждать, что если || 8i ||2 /1| b ||2 мало, то
мало и || 8х ||2 / || х ||2. Но как мы увидим, имеются по крайней мере две причи-
ны, по которым такое утверждение может оказаться неверным. Первая в том,
что || 8у ||2 /1| у ||2 может оказаться большим. Чтобы понять это, обратимся к
рис. 4.1 и посмотрим, что произойдет, если окажется, что b ортогонален или
почти ортогонален 7Z(A). Тогда у либо равен нулю, либо очень мал. Ясно,
что небольшое возмущение вектора b в направлении, параллельном 71(A),
приведет к возмущению 8у, большому относительно || у ||2. Другая причина со-
стоит в том, что даже если || 8у ||2 /1| у ||2 мало, то || 8х ||2 / || х ||2 может оказаться
большим, если линейная система Ах = у плохо обусловлена. Любая оценка
погрешности для || 8х ||2 /1| х ||2 должна учитывать обе эти причины. В следую-
щем упражнении мы выведем такую оценку.
304
Глава 4. Сингулярное разложение (SVD)
Упражнение 4.4.4.
(а) Определяя 8г = 8Ь - 8у, имеем 8Ь = 8у + 8г. Покажите, что 8г ортогонально
8у. Докажите, что || 8у ||2 < || 8Ь ||2.
(Ь) Покажите, что при условии cos 0*0
WbA-H (4 4 5)
||у||2 COS0 ||ft||2
(с) Покажите, что || у ||2 < maxmag(/l )|| х ||2, || 8у ||2 > maxmag(/l)|| Зх ||2 и
(4.4.6)
Иг 1Ы1г
(d) Убедитесь, что
||И1< к2(Л) ||8д||г
Иг cos0 ||/>||2 '
□
Неравенство (4.4.5) показывает, что если 0 не является близким к тт/2, т.е. b
не является почти ортогональным к области значений А, небольшие возмуще-
ния b приводят к небольшим возмущениям у. Конечно, близость 0 к ти/2 может
привести к катастрофе. Но на практике это случается редко: угол 0, как и || г ||2,
является мерой того, насколько хорошо решение задачи наименьших квадратов
отвечает исходным данным. Он не будет близок к л/2, если только не окажется,
что все векторы 7Z(A) плохо аппроксимируют й. Таким образом, пока постанов-
ка задачи обеспечивает хорошее соответствие решения задачи наименьших
квадратов исходным данным, (4.4.5) дает полезную оценку для || 8у ||2 / ||у ||2.
Неравенство (4.4.6) показывает влияние к2(Л). На самом деле оно не отли-
чается от неравенства (2.2.5), которое мы получили при рассмотрении чувст-
вительности квадратных линейных систем.
Неравенство (4.4.7) объединяет оба условия. Мы видим, что если к2(Л) не
очень велико, a cos 0 не слишком близок к нулю, то небольшие возмущения b
приводят к небольшим возмущениям х.
Неравенство (4.4.7) можно также получить с помощью нормальных уравне-
ний (3.5.22). Мы проведем этот второй вывод в качестве подготовки к рассмот-
рению влияния возмущений матрицы А. Здесь мы воспользуемся некоторыми
нашими элементарными результатами о сингулярных числах.
Из теоремы 3.5.21 мы знаем, что решение задачи наименьших квадратов
удовлетворяет нормальным уравнениям
АтАх = АГЬ. (4.4.8)
Решение возмущенной задачи удовлетворяет возмущенным нормальным
уравнениям
АтА(х + 8х) = AT(b + 8Ь),
(4.4.9)
4.4. Чувствительность задачи наименьших квадратов
305
Вычитая (4.4.8) из (4.4.9), найдем, что (Л7Л)8х = АТЪЬ или 8х = (ЛС4)_|ЛГ8Л.
Таким образом, || 8х ||2 < || (ЛГЛ)~|ЛГ||2|| 8Ь ||2. По теореме 4.2.11, || (ЛГЛ )-1Лг ||2 =
о"1, где <зт - наименьшее сингулярное число матрицы Л, так что
|| 8х ||2 < с*11| 8/> ||2. (4.4.10)
С другой стороны, из (4.4.3) видно, что || b ||2 cos 0 = || у ||2 = || Ах ||2 < || А ||2|| х ||2
= oJI х ||2. Поэтому
—— < ----—, (4.4.11)
Цх||2 COS0||*||2
Умножая (4.4.10) на (4.4.11) и вспоминая, что к2(Л) = Oj/o^ (теорема 4.2.4),
получим (4.4.7).
Влияние возмущений матрицы А
К сожалению, возмущения матрицы А приводят к более тяжелым последст-
виям, чем возмущения в Ь. Как показывает следующая теорема, чувствитель-
ность х к возмущениям матрицы А зависит, в частности, от квадрата числа
обусловленности матрицы А. Нашей целью будет сформулировать эту теорему,
обсудить ее следствия, а потом доказать ее.
Теорема 4.4.12. Пусть А е b е 1Г, п > т, гапк(Л) = т и х е Rw — единст-
венное решение задачи
II ь - Ах ||2 = min II b - Aw ||2.
welR т
Пусть 0 обозначает угол между b и Ах, причем 0 * л/2. Пусть 8Л е
6b е ИГ, = || 8А ||2 / || А ||2, в b = || 6b ||2 / || b ||2 и £ = тах{ел, £ д}. Предположим, что
е « 1 и, в частности, < 1/к2(Л). Пусть х = х + Sx g — единственное решение
задачи
|| (b + 8Ь) - (А + 8Л)х |Ь = min || (b+ 8i) - (А + 8Л )w ||2.
IV е 1R
Тогда
7ПГ1 + 2(K2(^)2tg0 + к2(А))еа + О(е2). (4.4.13)
1|х|| 2 COS0
Пусть r=b-Axu г - г + Зг = (b + 5Ь) - (А + 8Л )х. Тогда
< 2ел + Зк2(Л)ел + О(е2). (4.4.14)
Иг
306
Глава 4. Сингулярное разложение (SVD)
В обеих оценках член О(е2) заменяет члены,содержащие коэффициенты
или гАгь, которыми можно пренебречь. Если в (4.4.13) положим еа = 0, то полу-
чим (4.4.7), за исключением несущественного множителя 2.
Самое неприятное в (4.4.13) — это зависимость оценки от квадрата к2(Л).
Это не удивительно, если учесть, что возмущение матрицы А приводит к воз-
мущению в 7£(Л), которое, как оказывается (в худшем случае), пропорцио-
нально к2(Л). Таким образом, возмущение &А может привести к изменению ве-
личины к2(Л)£л в у (= Ах е К(А)), что, в свою очередь, может привести к изме-
нению порядка к2(Л)2е в х.
Наличие к2(Л )2 в (4.4.13) означает, что даже если А плохо обусловлена лишь
слегка, то небольшие возмущения матрицы А могут привести к большим изме-
нениям вх. Исключением является класс задач, для которых решение по мето-
ду наименьших квадратов точно описывает данные, т.е. когда г = 0. Тогда и
tg 0 = 0, и член, описывающий неточность приближения, исчезает. Хотя точ-
ная подгонка данных — чрезвычайно редкое событие, хорошая подгонка не так
уж редка. В случае хорошей подгонки tg 0 будет мал и хотя бычастично умень-
шит влияние множителя к2(Л)2.
Так как величина невязки измеряется относительно Ь, имеет смысл изме-
рять изменения невязки относительно || b ||2, как это и делается в (4.4.14).Обра-
тите внимание, что (4.4.14) зависит от к2(Л), а не от к2(Л)2. Это значит, что не-
вязка и качество подгонки обычно менее чувствительны к возмущениям, чем
само решение задачи наименьших квадратов.
Управление числом обусловленности
Из теоремы 4.4.12 видно, как важно избегать решения задач наименьших
квадратов, в котрых матрицы коэффициентов плохо обусловлены. Но это не-
что такое, чем можно все-таки управлять. Для иллюстрации рассмотрим зада-
чу приближения множества точек данных полиномом небольшой степени. В
этом случае решаемая система имеет вид (3.1.3): матрица коэффициентов оп-
ределяется абсциссами точек tx, t2, ..., tn и базисными функциями фь ф2, ..., фт
В принципе можно воспользоваться любым базисом пространства аппрокси-
мирующих многочленов. Однако от выбора базиса зависит число обусловлен-
ности системы.
Упражнение 4.4.15. Предположим, что нужно найти методом наименьших
квадратов аппроксимирующий многочлен первой степени для множества из
семи точек с абсциссами
6 h h и h 4
1.01 1.02 1.03 1.04 1.05 1.06 1.07
Очевидным выбором базиса для многочленов первой степени является
ф|(0 = 1 и ф2(0 = t. Сопоставим поведение этого базиса с поведением бо-
лее тщательно построенного базиса ф] = 1 и ф2 = 30(/ - 1.04). Пользуясь
4.4. Чувствительность задачи наименьших квадратов
307
(3.1.3), находим, что эти два базиса приводят к соответствующим матри-
цам коэффициентов
'1 1.0 Г '1 -.9
1 1.02 1 -.6
1 1.03 1 -3
1 1.04 , Л = 1 .0
1 1.05 1 3
1 1.06 1 .6
1 1.07 1 .9
MATLAB выдает числа обусловленности к2(Л) -104 и к2(Л) « 1.67.Легко ви-
деть, почему А намного лучше А. Абсциссы сосредоточены на интервале
[1.01,1.07], на котором функция ф2 меняется очень мало: она кажется очень по-
хожей на фр Следовательно, столбцы в А почти равны и А — (умеренно) плохо
обусловлена. В противоположность этому базис ф,, ^выбирался с учетом ин-
тервала |1.01,1.07]. фз центрирована относительно интервала и меняется от
-0.9 до +0.9, в то время как ф, остается неизменной. Как следствие, столбцы А
далеки от того, чтобы быть линейно зависимыми. (На самом деле они ортого-
нальны.) Множитель 30 в определении $2 гарантирует, что элементы второго
столбца в Л по величине будут того же порядка, что и в первом столбце, так
что они хорошо согласованы в смысле масштабирования. Поэтому А хорошо
обусловлена. □
Вообще говоря, желательно выбирать функции так, чтобы они не были ли-
нейно зависимыми на интересующем нас интервале. Тогда и столбцы получае-
мой матрицы А не будут линейно зависимыми. Поэтому А будет хорошо
обусловленной.
Точность методов решения задачи наименьших квадратов
Стандартный обратный анализ ошибок [41] (или упражнения 3.2.70 —
3.2.73) показывает, что метод QA-разложения, использующий отражения и
вращения, обратноустойчив по норме. Таким образом, найденное решение
дает точный минимум при наличии возмущений
||((Z> + 8b) - (А + ЗЛ)м||2,
которые имеют тот же порядок величины, что и единичная ошибка округле-
ния и. Это означает, что метод работает так хорошо, как только можно на-
деяться. Найденное решение и невязка удовлетворяют (4.4.13) и (4.4.14)
для ~ в ь - и.
Как показал Бьёрк (Bjorck) (см., например, [7|), модифицированный метод
Грама—Шмидта почти так же точен, как (ZR-разложение с отражениями.
308
Глава 4. Сингулярное разложение (SVD)
Метод нормальных уравнений имеет в некотором смысле другой характер.
Предположим, что АТА и АТЬ определены точно, а система АтАх = АТЬ решена
методом Холесского. Из разд. 2.7 (особенно из упражнения 2.7.29) мы знаем,
что найденное решение является точным решением возмущенного уравнения
(АГА + Е)х = АТЬ, где || Е ||2 /1| АТА ||2 — небольшое кратное и. Из теоремы 2.3.6
следует, что || 8х ||2 / || х ||2 приблизительно равно к2(АГА)и. По теореме 4.2.9
к2(АгА) = к2(Л)2. При условии, что к2(А)2 присутствует и в (4.4.13), все выглядит
так, будто метод нормальных уравнений имеет почти такую же точность, что и
другие методы. Однако в задачах с небольшими невязками роль члена
К2(Л)2 tg 0 в (4.4.13) уменьшаается. В таких случаях другие методы могут быть
более точными.
В нашем рассмотрении предполагалось, что АТА и АТЬ определены точно.
На практике при вычислении АТА могут возникнуть значительные ошибки,
что было показано в упражнении 3.5.25. Более того, если cos 0 близок к нулю,
при вычислении АГЬ может произойти потеря значащих цифр и результат бу-
дет иметь большую относительную погрешность.
Упражнение 4.4.16. Это упражнение показывает, что 0Л-метод лушее мето-
да нормальных уравнений при больших значениях числа обусловленности.
Здесь же показывается, как изменение базиса может улучшить число обуслов-
ленности. Рассмотрим следующие данные:
Z
0.98765431 2.1
0.98765432 2.1
0.98765433 2.1
0.98765434 2.0
0.98765435 1.9
0.98765436 1.9
0.98765437 1.8
0.98765438 1.7
0.98765439 1.7
(а) Постройте переопределенную систему Лх = b для определения линейно-
го приближения. Используйтебазис ф^Г) = 1, ф2(0 = t. С помощью MATLAB’a
найдите число обусловленности матрицы А. Найдите решение задачи наи-
меньших квадратов, используя 0Я-разложение (например, в MATLAB’e х =
= А\Ь). Вычислите норму невязки.
(Ь) Получите нормальные уравнения АтАх = АТЬ. Найдите число обуслов-
ленности матрицы ее коэффициентов и решите нормальные уравнения. Вы-
числите норму невязки (|| b - Ах ||2).
(с) Сравните решения, полученные вами в (а) и (Ь). Выведите на один гра-
фик значения обоих полиномов и приближаемые ими данные.
(d) Теперь постройте другую переопределенную систему Ах = b для тех же
данных, но используя базис ф( = 1 и ф2 = 3 х 107 х (t - .98765435). Найдите
4.4. Чувствительность задачи наименьших квадратов
309
число обусловленности матрицы А. Найдите решение задачи наименьших
квадратов, используя метод 0Л-разложения.Определите норму невязки.
(е) Напишите нормальные уравнения АТАх = АГЬ. Найдите число обуслов-
ленности матрицы коэффициентов. Решите нормальные уравнения. Вычисли-
те норму невязки (|| Ь - Ах ||2).
(f) Сравните решения, полученные вами в (d) и (е). На этот раз они тожде-
ственны (как можете убедиться — до 15-го десятичного знака). Какой полином
соответствует этим решениям? Можете вывести их на график, чтобы убедить-
ся, что задача решена верно. Если вы построите график, то увидите, что ваша
кривая тождественна кривой, найденной с помощью 0Л-разложения в (а). По-
следняя была точна лишь с точностью до восьмого десятичного знака, тогда
как решения были определены с машинной точностью с помощью хорошо
обусловленных матриц, но их различия конечно нельзя показать на графике
(впрочем, в большинстве приложений это и не нужно). □
Доказательство теоремы 4.4.12.
Прежде всего, возмущенная задача имеет единственное решение, посколь-
ку А + 8Л имеет полный ранг. Это вытекает из следствия 4.2.16.
Вместо того, чтобы доказывать теорему с максимальной общностью, рас-
смотрим случай, когда возмущена только Л, т.е. 8Ь = 0. Это упростит выкладки,
не изменяя смысла теоремы. Полное доказательство теоремы оставим в качест-
ве упражнения.
Более того, будем предполагать выполнение неравенства гА + <
1 / (4к2(Л)2), которое является более сильным ограничением в сравнении с
данным в формулировке теоремы. Более тонкая аргументация позволяет
снять это ограничение. Решение х = х + 8х возмущенной задачи наимень-
ших квадратов должно удовлетворять возмущенным нормальным уравне-
ниям
(А + 8А)Т(А + 8Л)(х + 8х) = (А + 8А)ТЬ.
Вычитая из них невозмущенные нормальные уравнения АтАх = АТЬ и вы-
полняя некоторые простые преобразования, находим, что
АтА8х = 8АТ(Ь - Ах) - Ат8Ах - (АТ8А + 8АГА + 8Лг8Л)8х - 8Ат8Ах
или
8х = (АгА)~18Агг - (А^^А^Ах-
- (АТА)~\АТ8А + 8АТА + 8Аг8А)8х - (АТА)~'8Ат8Ах. (4.4.17)
Беря нормы от обеих частей и используя то, что || Вт ||2 = || В ||2 для любой В
(следствие 4.2.2), получим неравенство
|| 8х ||2 < || (АГА)~' ||21| 8Л ||21| г ||2 + || (АГА)~‘АГ ||21| 8Л ||21| х ||2 +
+ || (ЛГЛ)-1 ||2 (2|| Л ||21| 8Л ||2 + ||8Л||2)|| 8х ||2 + || (Л^Л)1 ||2||8Л||*|| х ||2.
310
Глава 4. Сингулярное разложение (SVD)
Как обычно, через О] и <зт будем обозначать наибольшее и наименьшее
сингулярные числа матрицы А. Тогда || А ||2 = оь || 8Л ||2 = стгА, а из теоремы
4.2.11 известно, что || (ЛГЛ)-11|2 = о^2 и || (Л7Л)~1Л7’||2 = а^. Более того, согласно
(4.4.2) и (4.4.3), || г ||2 = || b ||2 sin 0 = || Ах ||2 tan 0 < oj| х ||2 tg 0. Используя эти ре-
зультаты, выполним подстановку к2(Я) = перенесем все члены, содержа-
щие || 8х ||2 , налево и получим
[1 -2к2(Л)2(ел + |е2Л || 8х ||2 <
< [K2(H)2tg 0 + к2(А)] еа II х ||2 + к2(Л)]2 е^|| х ||2.
г? 1 2
Если + —гЛ
1 2
мере, —. Поэтому
< 1/(4к2(Л)2), то коэффициент при || 8х || равен, по меньшей
< 2[K2(H)2tg 0 + к2(Л)] £Л + О(е2).
Это и есть (4.4.13) для случая гь = 0.
Чтобы получить неравенство (4.4.14) для невязки, отметим сначала, что по-
скольку г + 8г = b - (А + 8Л)(х + 8х) и г = b - Ах, то
8г = -8Ах - А8х - 8Л8х.
Используя (4.4.17), и замечая, что по (4.4.13) || 8Л ||2||х||2 = О(е2), получаем
|| 5г ||2 < || 8Л ||21| х ||2 + || А(АТА)~' ||2||8Л||2||г||2 +
+ || А(АтА)-'Аг\\2\\ 5Л ||2|| 8х ||2 + О(£2).
Так как || Ах ||2 > oj| х ||2, имеем || х ||2 < om~’|| Ах ||2 = om_|cos0|| b ||2. К тому же по
теореме 4.2.11 ||Л(ЛГЛ)-11|2 = и ||A(ArA)~lArft2 = 1. Следовательно,
< (2cos 0 + sin 0)к2(Л)еу< + О(е2) < Зк2(Л)ел + О(е2).
IPlh
Это - неравенство (4.4.14) для случая гь = 0. □
Упражнение 4.4.18. Приведите полное доказательство теоремы 4.4.12 для
£л > 0 и гь > 0. □
5
Собственные значения
и собственные векторы I
Собственные значения и собственные векторы появляются в теории устой-
чивости, в теории вибрации, в квантовой механике, в статистическом анализе
и во многих других областях. Поэтому важно иметь эффективные и надежные
методы их вычисления. В настоящей главе основной нашей целью будет фор-
мулировка и обоснование таких алгоритмов, завершаемых построением эф-
фективного и элегантного (Wf-алгоритма.1
Прежде чем погрузиться в эту работу, потратим некоторое время, чтобы по-
казать (в разд. 5.1), как собственные значения и собственные векторы появля-
ются при анализе систем дифференциальных уравнений. Приведенный здесь
материал служит лишь для того, чтобы проиллюстрировать необходимость на-
ших дальнейших усилий. Он должен убедить читатеоля в важности изучения
собственных значений. Раздел 5.1, строго говоря, не является необходимым
для остальной части главы. Но в нем вводится MATLAB-команда eig. Ис-
пользуя eig для нахождения собственных значений и собственных векторов
матрицы, вы тем самым применяете £?Я-алгоритм.
5.1. Системы дифференциальных уравнений
Множество приложений собственных значений и собственных векторов
появляется при изучении систем дифференциальных уравнений.
Пример 5.1.1. Электрическая схема, приведенная на рис 5.1, взята из при-
мера 1.2.8, но в нее добавлены два индуктора и переключатель. В то время как
резисторы оказывают сопротивление току, индукторы препятствуют его изме-
нению. При изучении постоянного, не изменяющегося во времени тока, как в
примере 1.2.8, можно не обращать внимания на индукторы, поскольку их дей-
ствие проявляется лишь при изменениях тока. Но если ток меняется во време-
ни, мы должны принимать индукторы в расчет.
1 QR-алгоритм не надо путать с QR-разложением, подробно рассмотренным в главе 3. Как мы
увидим, QR-алгоритм — это итерационная процедура, многократно выполняющая QR-разложение.
312
Глава 5. Собственные значения и собственные векторы I
Рис. 5.1 Решение системы с контурными токами, меняющимися во времени.
Как только переключатель в цепи замыкается, начинает течь ток. Кон-
турные токи являются функциями времени: х,- = х,(0- Как и прежде, уравне-
ние для каждого контура можно получить, воспользовавшись законом
Кирхгофа для напряжений: сумма падений напряжения на каждом из участ-
ков замкнутого контура должна быть равна нулю. Падение напряжения на
индукторе пропорционально скорости изменения тока. Константа пропор-
циональности называется его индуктивностью. Таким образом, если ток,
проходящий через индуктор в момент времени t с, равен х(1) А, а индуктив-
ность равна т генри (Гн), то падение напряжения на индукторе в момент
dx
времени / равно тх(1) В, где х обозначает производную по времени — (А/с).
dt
Ввиду наличия членов с производными результирующие уравнения для кон-
туров будут теперь дифференциальными. Таким образом, мы имеем два
дифференциальных уравнения (по одному для каждого контура) с двумя не-
известными (контурными токами).
Выпишем эти два уравнения. Сначала рассмотрим первый контур. Как
вы помните, падение напряжения на резисторе 5 Ом в направлении, ука-
занном стрелкой, для первого контура равно 5(Xi - х2) В- Падение напря-
жения на индукторе в 1 Гн равно 1х, В. Суммируя эти перепады напряже-
ния с перепадами напряжения на других резисторах контура 1, получим
уравнение
5(xj - х2) + lxt + Ixj + 2xt + Ixj = 0.
Подобным же образом для контура 2
5(х2 - X]) + 1х2 - 6 + 1х2+ 2х2 = 0.
Это те же уравнения, что мы получили в примере 1.2.8, если не считать чле-
ны с производными. Переупорядочивая эти уравнения и используя матричные
обозначения, перепишем нашу систему в виде
Г"9
_X2(Oj
5 Гх,
5 -8 х2
0
-6
(5.1.2)
5. 1, Системы дифференциальных уравнений
313
Предположим, что переключатель был замкнут в момент t - 0. Тогда резуль-
тирующие токи можно найти, решая систему (5.1.2) при начальных условиях
^(0)] = [О’
о
[x2(0)J
(5.1.3)
Как мы увидим, эту задачу можно решить с помощью собственных значе-
ний и собственных векторов. □
Система дифференциальных уравнений, рассмотренная в примере 5.1.1, в
общем случае имеет вид х = Ах - Ь, где для данного примера
л Г-9
х2(о_Г L5
5
-8
’0
-6
и b
Большему электрическому контуру соответствует большая система уравне-
ний того же или подобного вида. Например, в упражнении 5.1.21 мы рассмат-
риваем систему восьми дифференциальных уравнений. И здесь она имеет вид
х = Ах - b , но на этот раз А является 8 х 8-матрицей. В общем случае мы будем
рассматривать системы п дифференциальных уравнений, в которых матрица
имеет размеры п х п.
Однородные системы
Важным шагом в решении системы вида х = Ах - b является решение соот-
ветствующей однородной системы х = Лх, получаемой отбрасыванием члена Ь,
задающего внешнее (силовое) воздействие (в примере 5.1.1 это источник пита-
ния). Итак, мы рассматриваем задачу решения системы
— = Ах,
dt
(5.1.4)
где А есть п х «-матрица. Уравнение (5.1.4) является краткой формой записи
системы
dxx
—- = О11х1 + Л12х2 + ... + аХпхп,
dt
dx2
= л21Х! + а22х2 + ... + а2пхп,
dt
= ап1х1 + ап2х2 + ... + аппхп.
dt
Общий подход к решению линейных дифференциальных уравнений за-
ключается в поиске решений самого простого вида. Поэтому попытаемся най-
ти решение в форме
X(t) = g(t)v,
(5.1.5)
314
Глава 5. Собственные значения и собственные векторы I
где g(t) - отличная от нуля скалярная функция от t, a v — не равный нулю по-
стоянный вектор. Здесь зависимость x(t) от времени выражается через g(t), а
векторная природа x(Z) отражается через v. Подставляя (5.1.5) в (5.1.4), полу-
чим уравнение
g(f)v = g(t)Av
или, что эквивалентно,
= Av
(5.1.6)
Так как v и Av - векторы, то из (5.1.6) следует, что отношение g(t)/g(f) долж-
но быть константой, т.е. существует (вещественная или комплексная) посто-
янная X, такая, что
g(0 =
(5.1.7)
Вдобавок из (5.1.6) вытекает раенство
Av = Xv
Ненулевой вектор v, для которого существует такое X, что Av = Xv, называет-
ся собственным вектором матрицы А, Число X называется собственным значе-
нием матрицы Я, соответствующим вектору и Пока мы показали, что если х(/)
есть решение системы (5.1.4) вида (5.1.5), то v должен быть собственным век-
тором матрицы Л, ag(Z) должна удовлетворять дифференциальному уравнению
(5.1.7), где X - собственное значение матрицы Я, соответствующее вектору у.
Общее решение скалярного дифференциального уравнения (5.1.7) есть g(t) =
сем, где с — произвольная постоянная. И наоборот, если v - собственный век-
тор матрицы А, соответствующий собственному значению X, то e^v является
решением уравнения (5.1.4), как вы можете легко проверить. Таким образом,
каждый собственный вектор матрицы А дает решение для (5.1.4). Если А имеет
достаточное число собственных векторов, то каждое решение уравнения
(5.1.4) можно представить в виде линейной комбинации этих простых реше-
ний. Более точно, предположим, что матрица Л размеров п х п имеет множест-
во п линейно независимых собственных векторов vb ..., vn с соответствующими
собственными значениями Хь ..., Х„. Тогда для любых констант с{, ..., сп
x(t) = c^'vi + c2el2tv2 + ••• + cneln‘vn (5.1.8)
является решением (5.1.4). Поскольку vp ..., vn линейно независимы, то оказы-
вается, что формула (5.1.8) дает общее решение для (5.1.4); другими словами,
каждое решение (5.1.4) имеет вид (5.1.8). См. упражнение 5.1.26.
5 J. Системы дифференциальных уравнений
315
Всякая п х «-матрица, обладающая множеством п линейно независимых
собственных векторов, называется полупростой или недефектной. В следую-
щем разделе мы увидим, что в некотором смысле «большинство» матриц явля-
ются полупростыми. Таким образом, для «большинства» систем типа (5.1.4)
общее решение имеет вид (5.1.8).
Легко показать (разд. 5.2), что X является собственным значением матрицы
А тогда и только тогда, когда X есть решение характеристического уравнения
det(X/- А) = 0. Для каждого собственного значения X соответствующий собст-
венный вектор можно найти, решая уравнение (X/ - A)v = 0. Для достаточно
небольших (например, 2x2) систем дифференциальных уравнений характе-
ристическое уравнение можно решить точно, а,следовательно, решить и саму
такую систему.
Пример 5.1.9. Найдем общее решение системы
= 2xj + Зх2,
х2 = Х\ + 4х2.
3
Матрица коэффициентов есть А =
ние есть
, и ее характеристическое уравне-
0 = det(X/ - А) = det
Х-2
-1
(X - 2)(Х - 4) - 3 =
= X2 - 6Х + 5 = (X - 1)(Х - 5).
Следовательно, собственные значения суть Х| = 1 и Х2 = 5. Решая уравнение
(X/- A)v = 0 дважды, с X = X! и с X = Х2, находим (неединственные) решения
3
И У2 =
1
1
Так как эти два ( = п) вектора линейно независимы, мы приходим к выводу,
что общее решение системы есть
х(Г) =
+ с2е5'
(5.1.10)
□
Упражнение 5.1.11. Детально разберите пример 5.1.9. □
Вычисления в примере 5.1.9 были довольно простыми, поскольку матрица
имела размеры всего лишь 2 х 2, а собственные значения оказались целыми по-
ложительными числами. В большинстве реальных задач системы имеют большие
размеры и поэтому собственные значения будут иррациальными числами, кото-
рые нужно будет аппроксимировать. Представьте себе, что решается система вида
316
Глава 5. Собственные значения и собственные векторы I
х = Лх, скажем, с п = 200. Нам нужно найти 200 собственных значений 200 х 200-
матрицы. Уже попытка только получить характеристическое уравнение (много-
член степени 200) кажется невозможной задачей, а её еще надо решить. Более
того, задача нахождения нулей многочлена с заданными коэффициентами оказы-
вается плохо обусловленной при наличии групп близких друг к другу нулей, даже
если исходная задача на собственные значения хорошо обусловлена (упражнения
5.1.24 и 5.1.25). Очевидно поэтому нам нужен более подходящий метод, и главная
цель этой главы — сформулировать и обосновать такой метод.
Неоднородные системы
Теперь рассмотрим задачу решения неоднородной системы
dx Л ,
— = Ах - Ь,
dt
(5.1.12)
где b — отличный от нуля постоянный вектор. Поскольку b инвариантен во
времени, разумно попытаться найти решение, инвариантное во времени:
х(Г) = z, где z - постоянный вектор. Подставляя такое решение в (5.1.12),
имеем dx/dt - 0, так что 0 = Az - b, т.е. Az = b. Предполагая невырожден-
ность Л, можно решить уравнение Az = Ь, чтобы получить единственное ин-
вариантное во времени решение z.
Поскольку мы получили z, можно сделать следующее простое замечание.
Еслиy(t) — какое-то решение однородной задачи х = Лх, то сумма x(t) = y(t) + z
будет решением неоднородной системы.Действительно, х = у + 0 = Ау=Л(х - г)
= Лх - Az = Лх - Ь, так что х = Лх - Ь. Более того, если y(f) есть общее решение
однородной задачи, то х(/) = y(t) + z является общим решением неоднородной
задачи.
Пример 5.1.13. Пусть нужно решить неоднородное дифференциальное урав-
нение
Х1(О1 = Г-9
х2(о] L5
5 Xj 0
-8 х2 -6
Это уравнение (5.1.2) из примера 5.1.1. Две компоненты решения в соответ-
ствии с начальными условиями (5.1.3) представляют собой два контурных тока
в электрической цепи, изображенной на рис. 5.1.
Нам нужно найти инвариантное во времени решение и общее решение од-
нородной задачи, а затем сложить их. Прежде всего, инвариантное во времени
решение должно удовлетворять системе уравнений
’-9
5
5]Гг‘"
-8Лг2.
’о
-6
Это система, которую мы решали в примере 1.2.8. Решение суть Zi = 30/47 =
0.6383 и Z2 = 54/47 = 1.1489. Не забудьте: эти числа дают значения контурных
5.1. Системы дифференциальных уравнений
317
токов в цепи при условии, что ее индуктивные элементы не учитываются. Те-
перь решим однородную систему
х,(Г)' _ р-9 5 X]
_X2(OJ
5 -8J |_х2
Можно действовать так же, как в примере 5.1.9, и составить характеристи-
ческое уравнение 0 = det(X/- А) = X2 + 17Х + 47, но на этот раз его решение не
будет целочисленным. Используя формулу решения квадратного уравнения,
находим, что решение равно X = (-17 ± V101)/2. После округления собствен-
ные значения равны Xj = -13.5249 и Х2 = -3.4751. Теперь можно подставить эти
значения обратно в уравнение (X/- A)v = 0, чтобы получить собственные век-
торы. Это трудно выполнить вручную, поскольку числа являются длинными
десятичными дробями.
Самое простое - заставить MATLAB сделать это. Используя MATLAB-ко-
манду eig1, получим (округленные) собственные векторы
=
" 0.7415
-0.6710
и v2 =
0.6710
0.7415
Таким образом, общее решение неоднородной задачи имеет вид
с^
13.5249/
’ 0.7415
-0.6710
+ с2е"3-4751
Г0.6710
0.7415 '
Добавляя к нему инвариантное во времени решение неоднородной задачи,
получаем общее решение неоднородной задачи
х(/) =
0.6383
1.1489
+ с1<?-13-5249'
’ 0.7415
-0.6710
с2е-3-475
0.6710
0.7415
(5.1.14)
Чтобы найти частное решение, которое дает контурные токи в цепи, в
предположении, что выключатель был замкнут в момент t - 0, воспользуемся
начальным условием (5.1.3), х(0) = 0. Подставляя его в (5.1.14), получим
0.63831 Г 0.7415 1 Г0.6710"
+ Ci + с2 ,
1.1489J [-0.6710J |_°-7415_
т.е. систему двух линейных уравнений относительно с1 и с2. Решая ее (с помо-
щью MATLAB’a), найдем
с{ = 0.2977 и с2 = -1.2802.
1 При выполнении d=eig (А) получается вектор-столбец d с собственными значениями матри-
цы А, а при выполнении [V,D]=eig(A) получается матрица V с собственными векторами А ,
имеющими единичную норму в Ь2(п), и диагональная матрица D с соответствующими этим векто-
рам собственными значениями. — Прим, перев.
318
Глава 5. Собственные значения и собственные векторы I
Рис. 5.2. Контурные токи (в А) как функции времени.
С помощью этого решения можно определить величину контурных токов в
любой момент времени.
Завершим этот пример рассмотрением поведения цепи при больших значе-
ниях времени. Анализируя (5.1.14), мы видим, что обе экспоненциальные
функции Cje-13 5249/ и с2е“3-4751' стремятся к нулю при t -> оо, поскольку показатели
экспоненты отрицательны. Это вытекает из того, что оба собственных значе-
ния = — 13.5249 и Х2 = -3.4751 отрицательны. В действительности в этом слу-
чае имеет место довольно быстрая сходимость экспонент к нулю. Через не-
большое время они становятся пренебрежимо малыми, а решение - почти по-
стоянным: x(Z)
0.6383
1.1489
. Другими словами, после короткой переходной фазы
ток принимает стационарное (постоянное) значение. На рис. 5.2 приведен
график контурных токов как функций времени в течение первой секунды по-
сле замыкания цепи. Обратите внимание, что уже через одну секунду токи
очень близки к их стационарным значениям. □
В упражнении 5.1.21 рассмотрена цепь больших размеров. Более интерес-
ные цепи можно получить, добавляя емкости и, вследствие этого, получая ре-
шения,осциллирующие во времени. Конечно, системы пружинок и масс так-
же демонстрируют колебательное поведение.
Динамика простых систем из пружинок и масс
На рис. 5.3 изображена тележка, прикрепленная пружинкой к стене. К мо-
менту нуль тележка покоится в положении равновесия х = 0. В этот момент
прилагается постоянная сила в 2 Н, толкающая тележку вправо и растягиваю-
щая пружину. В разд. 1.2 мы изучали эту же систему (рис. 1.3) и нашли, что но-
вое положение равновесия суть х = 0.5 м. Другими словами, сила смещает те-
5.1. Системы дифференциальных уравнений
319
Рис. 5.3. Одна тележка и одна пружина.
лежку на полметра вправо. Теперь ответим на более специфический вопрос:
как тележка перешла из ее старого положения равновесия в новое. Решение
статической задачи не зависит от массы тележки, но решение динамической —
зависит. Трение качения теперь также имеет значение. Положим, что масса
тележки равна 1 кг. Примем линейное приближение, когда трение качения
пропорционально скорости и равно — kx(t) Н, где к — константа пропорцио-
нальности, имеющая размерность кг/с.
Мы воспользуемся здесь вторым законом Ньютона,/ = та, в виде а = f/m\
ускорение тележки равно сумме сил, на нее действующих, деленной на массу
тележки. Выбор т = 1 упрощает выкладки. На тележку действуют три силы:
внешняя сила, равная +2 Н, сила противодействия пружины, равная -4x(Z) Н,
и сила трения качения, равная -kx(t) Н. Вспомним также, что ускорение равно
х, второй производной от смещения по времени. Таким образом, второй закон
Ньютона дает дифференциальное уравнение
х = 2 - 4х - кх,
(5.1.15)
которое мы можем решить относительно х при начальных условиях х(0) =
= х(0) = 0. Оказывается, что природа движения в очень большой мере за-
висит от значения к.
Дифференциальное уравнение (5.1.15) настолько простое, что его можно
решить в первоначальном виде, используя стандартные методы из начального
курса дифференциальных уравнений. Однако мы пойдем другим путем. Это
уравнение является дифференциальным уравнением второго порядка, т.е. оно
включает вторую производную. С помощью стандартной процедуры преобра-
зуем его в систему двух дифференциальных уравнений первого порядка. Пусть
х,(Г) = х(0 и х2(0 = x(t). Тогда наше дифференциальное уравнение можно пере-
писать как х2 = 2 - 4х{ - кх2. Комбинируя его с тривиальным дифференциаль-
ным уравнением х{ = х2, получаем систему и начальные условия:
хЯ ГО 1
х2 -4 -к
’О] Гх^О)! _ [О'
-2J’ |_x2(0)J "
0
Эта система в общем случае записывается в виде х = Ах - Ь, т.е. как наша
система в примере с электрической цепью, и может быть решена с помощью
тех же средств. Системы этого типа рассмотрены в упражнении 5.1.22.
320
Глава 5. Собственные значения и собственные векторы I
В упражнении 5.1.23 рассматривается система из трех масс, связанных пру-
жинками. В нем второй закон Ньютона применяется к каждой из тележек,
чтобы получить систему из трех дифференциальных уравнений второго поряд-
ка, которые затем записываются в виде системы из шести дифференциальных
уравнений первого порядка.
Устойчивость линейных и нелинейных систем
В теории устойчивости изучается поведение систем при t -> оо. В приме-
ре 5.1.13 мы отметили, что при t -> оо контурные токи стремятся принять
значение, соответствующее равновесному или установившемуся состоянию.
Причиной этого служат отрицательные показатели экспонент в общем ре-
шении (5.1.14), что в свою очередь является следствием отрицательности
собственных значений. Это выполняется независимо от величины констант
сх и с2, т.е. это справедливо для всех решений. Так, если контурные токи в
какой-то момент отклоняются от их равновесных значений, то в дальней-
шем они все равно вернутся в это состояние. Такое поведение решений на-
зывается устойчивым.
Но система в примере 5.1.9 ведет себя совсем по-другому. Там собствен-
ные значения положительны, так что и показатели у экспонент в общем ре-
шении (5.1.10) положительны и растут при t -> оо. Следовательно, все реше-
ния становятся большими с увеличением времени. Единственным исключе-
нием служит нулевое решение для установившегося состояния, которое
получится, если положить с1 = с2 = 0. Если вначале система находилась в этом
равновесном состоянии, а затем была выведена из него, то она уже не вер-
нется к этому состоянию. Здесь имеет место процесс разрушения, поскольку-
таковы все ненулевые решения системы, и тогда поведение решений называ-
ется неустойчивым.
В общих чертах можно оценить устойчивость однородной линейной систе-
мы (5.1.4), рассматривая общее решение (5.1.8). (В неоднородном случае до-
бавляется лишь константа.) Если все собственные значения \k вещественные и
отрицательные, то все решения x(t) -> 0 при t -> оо. С другой стороны, если
хотя бы одно собственное значение положительно, то найдутся решения, для
которых || x(f) || -> оо при t -> оо.
В первом случае говорят, что система является асимптотически устойчивой,
а в последнем случае — что она неустойчива.
Как мы увидим, собственные значения не обязаны быть вещественны-
ми. Даже для вещественной матрицы А некоторые или все ее собственные
значения могут быть комплексными. Что тогда произойдет? Пусть, скажем,
X* = а* + /р*. Тогда ekkt = eakte^kt = eakt(cos$kt + i sinp*/) растет при ak > 0 и
убывает при ак < 0. Поскольку ак = Re(X^) (вещественная часть \к), то мы
заключаем, что система (5.1.4) асимптотически устойчива, если все собст-
венные значения матрицы А удовлетворяют условию Re(XA) < 0, и неустой-
чива, если для некоторых или всех собственных значений Re(X*) > 0. Мы
пришли к этому заключению в предположении, что А — полупростая матри-
ца. Однако оно верно для всех матриц.
5.7. Системы дифференциальных уравнений
321
Обратите внимание, что комплексные собственные значения указывают
на наличие колебаний в решении, поскольку они порождают члены, со-
держащие синусы и косинусы. Частота колебания Л-го члена зависит от р*
= 1т(Х*). В упражнениях 5.1.22 и 5.1.23 вы найдете примеры систем, кото-
рые имеют комплексные собственные значения и поэтому проявляют ко-
лебательное поведение.
Теперь рассмотрим нелинейную систему п уравнений первого порядка
X] =Л(Х1, Х2, ..., Х„),
Х2 = /2(Xt, х2, .... Х„),
Х„ = f„(xl, х2, ..., х„)
или, в векторной записи,
х = /(х).
(5.1.16)
Вектор х называется точкой равновесия системы (5.1.16), если/(х) = 0, по-
скольку тогда решением является постоянная функция х(7) = х. Точка равнове-
сия называется асимптотически устойчивой, если у нее имеется окрестность N
такая, что для каждого решения системы (5.1.16), у которого х(7) е ТУпри неко-
тором 7, всегда будет х(0 -> х при t -> оо. Физически это означает,что любая
система, слегка выведенная из положения равновесия, со временем вернется
туда. Мы можем проанализировать устойчивость каждой точки равновесия,
линеаризируя (5.1.16) в окрестности этой точки.
Для этого рассмотрим многомерное разложение Тейлора в точке х:
/,(Х1( х2, ..., х„) = /(х) + S^-(^)(xy-x ) +
i^dxj
i п п о2 г
+ “УУ-----— (х)(х, - х,)(х* - xt) + ...
2^dXjdxk П 7 k>
при i = 1,..., п, В векторных обозначениях получается более компактное выра-
жение
f(x) = f(x) + —(х) (х - х) + члены высшего порядка,
8х
где df/дх есть якобиан, в котором элемент (7, j) равен df./dx.. Для х вблизи х
квадратный и более высокие члены очень малы. Кроме того, /(х) = 0, так
что/(х) » — (х)(х - х). Поэтому вполне разумно ожидать, что для х вблизи
дх
II Основы матричных вычислении
322
Глава 5. Собственные значения и собственные векторы /
х решения уравнения (5.1.16) хорошо аппроксимируются решениями урав-
нения
-у- (х - х) = х = ^(х)(х - х). (5.1.17)
dt дх
Это линейная система с матрицей коэффициентов — (х). Из нашего рас-
ах
смотрения устойчивости линейных систем мы знаем, что все решения уравне-
ния (5.1.17) отвечают условию х - х -> О при 1 -> оо, если Re(A,A.) < 0 для всех
_ tJ df / .
собственных значении матрицы — (х). Мы приходим к выводу, что х является
ах
асимптотически устойчивой точкой равновесия для (5.1.16), когда все собст-
венные значения якобиана — (х) имеют отрицательные вещественные части.
ах
Упражнение 5.1.18. Малые колебания маятника описываются дифференци-
альным уравнением
0 4- k}& + ZnsinO = О,
где к} и к2 - положительные константы, а 0 есть угол отклонения маятника от
вертикали положения покоя. Это уравнение нелинейно, поскольку sin0 - не-
линейная функция от 0. Вводя новые переменные х, = 0 и х2 = 0, представьте
дифференциальное уравнение второго порядка в виде системы двух диффе-
ренциальных уравнений первого порядка относительно х( и х2. Определив все
точки равновесия системы, покажите, что они соответствуют б = 0, 0 = ил,
п = 0, ±1, ±2, ... . Вычислите якобиан системы и покажите, что точки равнове-
сия 0 = птс асимптотически устойчивы для четных п и неустойчивы при нечет-
ных п. Объясните физический смысл этих результатов.
Дополнительные упражнения
Упражнение 5.1.19. Пусть матрица Л невырожденна и имеет независимые
собственные векторы у,,..., а V- невырожденная п х и-матрица со столбца-
ми V|, ..., vn.
(а) Покажите, что (5.1.8) можно записать как х(Г) = Уе"с где с — вектор-
столбец, Аг - диагональная матрица, diag{Xjt, ..., А.,/}, а ел/ — ее матричная экс-
понента'. е* = diag{ex,/, ..., е1”'}-
(Ь) Покажите, что общее решение уравнения х = Ах - b имеет вид х(/) =
= z + Иех/с, где z удовлетворяет условию Az = b.
(с) Чтобы решить задачу х = Ах - Ь с начальными данными х(0) = х, нужно
найти компоненты постоянного вектора с. Покажите, что с можно найти, ре-
шая систему Ус = х - z. Поскольку матрица Уневырожденна, эта система имеет
единственное решение. □
5.1. Системы дифференциальных уравнений
323
Упражнение 5.1.20. Используя MATLAB, воспроизведите детали примера
5.1.13. Если А — полупростая матрица, то выполняя MATLAB-команду [ V, D]
= eig (А) , вы получите матрицы К и D = А из предыдущего упражнения. Ис-
пользуйте И D и векторы с, z (все они должны быть для упражнения 5.1.13),
чтобы построить и вывести на печать следующий график:
t = 0:.02:1;
х = z*ones(size (t));
for j = 1:2, x = x 4- V(:,j)*c(j)*exp (t*D (j,j)) ; end
plot(t,x(1, :),t,x (2, :),'-')
title ('Loop Currents')
xlabel('time in seconds')
ylabel ('current in amperes')
print
He забывайте, что для получения дополнительной информации по приме-
нению этих команд достаточно набрать help plot, help print и т.д. □
Упражнение 5.1.21. Выполняя его, воспользуйтесь опытом, приобретенным
в двух предыдущих упражнениях. Цепь на рис. 5.4 та же, что и рассмотренная
нами в упражнении 1.2.19, за исключением того, что здесь по краям добавлено
несколько индукторов. Все сопротивления равны 1 Ом, а все индуктивности
1 Гн. Обратите внимание на необычную нумерацию контуров. Начальные зна-
Рис. 5.4. Найдите меняющиеся во времени контурные токи.
324
Глава 5. Собственные значения и собственные векторы I
чения всех токов равны нулю, поскольку переключатель не замкнут. Предпо-
ложим, что он замыкается в момент 0.
(а) Напишите систему из девяти уравнений для девяти неизвестных кон-
турных токов. Все эти уравнения, за исключением девятого, содержат произ-
водные.
(Ь) Разрешите девятое уравнение относительно х9, выразив его через ос-
тальные токи, и с помощью полученного выражения исключите х9 из всех
других уравнений. Таким образом, получается система из восьми уравнений
х = Ах - Ь с начальным условием х(0) = 0.
(с) Решите систему Az = i, чтобы получить установившееся решение диф-
ференциального уравнения. Вычислите также значение установившегося кон-
турного тока z9. (Контрольное значение: г9 = 0.3 А.)
(d) Получите собственные значения и собственные векторы матрицы А и
воспользуйтесь ими для построения общего решения однородного уравне-
ния z = Az.
(е) Постройте решение задачи с начальными условиями: х = Ах - Ь,
х(0) = 0.
(f) На отдельном графике постройте контурные токи xt(0 и х8(Г) для 0 < t < 6 с.
(Контрольный вопрос: они выглядят реалистично?)
(g) После замыкания переключателя сколько примерно времени потребует-
ся для всех контурных токов, чтобы достичь (i) десяти процентов окончатель-
ного значения? (ii) одного процента? □
Упражнение 5.1.22. Рассмотрите тележку, прикрепленную пружиной к сте-
не, как показано на рис. 5.5. В нулевой момент времени тележка покоится
в положении равновесия х = 0. В этот момент прилагается постоянная сила
в 12 Н, толкающая тележку вправо. Предположим, что трение качения состав-
ляет -kx(t)H. Выполните части от (а) до (d) вручную.
(а) Постройте систему из двух дифференциальных уравнений первого по-
рядка вида х = Ах - i, полагая x^t) = х(0 и х2 (0 = х(Г).
(Ь) Найдите решение дифференциального уравнения для установившегося
состояния.
(с) Выведите характеристическое уравнение матрицы А и решите его с по-
мощью формулы для решения квадратного уравнения, чтобы получить выра-
жение (содержащее к) для собственных значений А.
(d) Существует критическое значение к, при котором вещественные собст-
венные значения становятся комплексными. Найдите это критическое зна-
чение.
12 н
Рис. 5.5. Определите движения тележки.
5.1. Системы дифференциальных уравнений
325
(е) Используя MATLAB, решите задачу с начальными значениями для слу-
чаев (i) к = 2, (ii) к = 6, (iii) к = 10 и (iv) к = 14. Перед завершением каждого из
этих вариантов просто нарисуйте х/0 с одними и теми же масштабами по осям
при 0 < t < 3. (При этом не обращайтесь к указаниям, сделанным в упражнени-
ях 5.1.19 и 5.1.20.) Прокомментируйте получившийся результат (например, ха-
рактер приближения к стационарному состоянию, наличие или отсутствие ос-
цилляций).
(f) Что будет при к = 0? □
Упражнение 5.1.23. Рассмотрите систему из трех тележек, соединенных
пружинами, как показано на рис. 5.6. В нулевой момент времени начинают
действовать указанные там силы, заставляя тележки перейти в новое положе-
ние равновесия. Обозначим через х{, х2 и х3 смещения тележек, а через х4, х5 и
х6 соответствующие скорости. Предположим, что коэффициенты трения каче-
ния для тележек равны klf к2 и к3 соответственно.
Рис. 5.6. Определите движения системы тележек.
(а) Примените второй закон Ньютона к каждой из тележек, чтобы получить
систему из трех дифференциальных уравнений второго порядка для смещений
xh х2 и х3. Небесполезно еще раз просмотреть пример 1.2.10.
(Ь) Вводя переменные х4, х5 и х6 для скоростей, запишите вашу систему как
систему из шести дифференциальных уравнений первого порядка. Представь-
те ее в виде х = Ах - Ь.
(с) Найдите решение для установившегося состояния системы.
(d) Решите задачу с начальными значениями для каждого из перечисленных
ниже вариантов. В каждом случае постройте графики хь х2 и х3 для 0 < t < 20 с
одними и теми же масштабами по осям и прокомментируйте получившиеся
результаты:
(1) кх = 1, к2
(2) кх = 1, к2
(3) кх = 8, к2
= 0 и к2 - 0.
= 8 и к2 = 8.
= 8 и к2 = 8.
Упражнение 5.1.24. Пусть А =
"1 0'
0 1
— единичная 2 х 2-матрица.
(а) Покажите, что характеристическим уравнением матрицы А является
V - 2Х + 1 = 0.
Очевидно, что собственные значения тогда таковы: X, = 1 и Х2 = 1.
326
Глава 5. Собственные значения и собственные векторы I
(Ь) Теперь внесите небольшое возмущение в один из коэффициентов ха-
рактеристического многочлена и рассмотрите уравнение
V - 2Х + (1 - е) = О,
где е « 1. Найдите его корни Xj и Х2.
(с) Покажите, что при £ = 10“12 значения | Xj - | и | Х2 - Х21 в миллион раз
больше £.
(d) Покажите на графике поведение исходного и возмущенных многочле-
нов (для нескольких значений £, конечно же больших 10~12) и попытайтесь
объяснить, почему корни так чувствительны к £-возмущениям.
Это показывает, что задача определения корней многочлена может ока-
заться плохо обусловленной. Трудности возникают каждый раз при наличии
кратных корней или плотно сгруппированных корней. Чем больше корней
группируется, тем хуже становится ситуация. В противоположность этому за-
дача на собственные значения для единичной матрицы хорошо обусловлена.
Небольшие возмущения элементов в А приводят к небольшим изменениям
собственных значений. Это справедливо не только для единичной матрицы,
но и для любой симметричной матрицы независимо от того, плотно или нет
сгруппированы ее собственные значения. Мы покажем это в разд. 6.5 (следст-
вие 6.5.8). □
Упражнение 5.1.25. Выполните help poly в командной строке MATLAB’a,
чтобы узнать, что делает poly. Затем постарайтесь понять, что делает следую-
щая MATLAB-программа:
А = eye(2)
lam = eig(А)
с = poly(А)
roots (с)
format long
А2 = А + 200*eps*randn(2)
lam2 = eig(A2)
eigdif = norm(lam2-lam)
c2 = c + [0 200*eps*randn(1,2)]
roots2 = roots (c2)
rootdif = norm(roots2-lam)
Выполните эту программу несколько раз. Результаты будут варьироваться,
поскольку используются разные случайные числа. Объясните полученные ре-
зультаты. □
Упражнение 5.1.26. Покажите, что (5.1.8) является общим решением урав-
нения (5.1.4).
(а) Покажите, что для любого х е С” существуют (единственные) с1} ..., сп
такие, что функция x(f) из (5.1.8) удовлетворяет условию х(0) = х.
(Ь) Одним из основополагающих фактов теории дифференциальных урав-
нений является утверждение, что для заданного х е С” задача с начальными
значениями dx/dt = Ах, х(0) = х имеет в точности одно решение (см. любой учеб-
5.2. Основные результаты о собственных значениях и собственных векторах
327
ник по дифференциальным уравнениям). Используйте этот факт вместе с ре-
зультатом части (а), чтобы показать, что любое решение уравнения (5.1.4) име-
ет вид (5.1.8). □
5.2. Основные результаты о собственных значениях
и собственных векторах
В большинстве научных и технических приложений, требующих вычисле-
ния собственных значений, матрицы имеют вещественные элементы. Тем не
менее, как мы скоро увидим, естественной средой исследования собственных
значений является поле комплексных чисел. Поэтому для А е Спхп вектор
v е С называется собственным вектором матрицы Л, если v * 0 и вектор Av про-
порционален у, т.е. существует такое X е С, что
Av = Xv.
(5.2.1)
Скаляр X называется собственным значением матрицы Л, соответствующим
собственному вектору к Пара (X,v) называется собственной парой матрицы Л. В
то время как каждому собственному вектору соответствует единственное соб-
ственное значение, каждое собственное значение может соответствовать не-
скольким собственным векторам. Например, если v — собственный вектор
матрицы Л, которому соответствует собственное значение X, то произведение v
на любое ненулевое число снова будет собственным вектором матрицы Л, ко-
торому также соответствует X.
Множество всех собственных значений матрицы Л называется спектром
матрицы Л.
Часто удобно работать с собственными векторами, имеющими единичную
норму. Это всегда возможно: для любого данного собственного вектора v мат-
рицы Л вектор v = (1 /1| v ||)v также является собственным вектором матрицы Л,
соответствующим тому же собственному значению, с нормой ||v|| = 1. Этот
процесс нормировки можно выполнить для любой векторной нормы.
Упражнение 5.2.2. Покажите, что матрица Л невырожденна тогда и только-
тогда, когда 0 не является ее собственным значением. (Таким образом, к спи-
ску условий теоремы 1.2.3 можно добавить еще одну строку.) □
В предыдущем разделе отмечалось, что X является собственным значением,
тогда и только тогда, когда оно является корнем характеристического уравне-
ния. Теперь выясним, почему это так. Уравнение (5.2.1) можно переписать в
виде Av= X/v или (X/- Л )v = 0, где / есть единичная п х n-матрица. Поэтому, если
v - собственный вектор с собственным значением X, то v является ненулевым
решением однородной линейной системы (X/- A)v = 0. Следовательно, в соот-
ветствии с пунктом (Ь) теоремы 1.2.3, (X/-Л) — вырожденная матрица. Отсюда,
в соответствии с пунктом (е) той же теоремы, det(X/- Л) = 0. Так как каждый
шаг нашей аргументации можно обратить, мы приходим к следующей теореме.
328
Глава 5. Собственные значения и собственные векторы I
Теорема 5.2.3. Число X является собственным значением матрицы А тогда и
только тогда, когда
det(X/- А) = 0. (5.2.4)
Как было сказано выше, (5.2.4) называется характеристическим уравнени-
ем матрицы А. Вид этого уравнения говорит о том, что в этом разделе опре-
делители буду играть заметную роль. Являясь важным теоретическим инст-
рументом, в реальных вычислениях определители используются мало. По-
этому в последующих разделах нашей книги определители будут появляться
лишь изредка.
Нетрудно видеть, что det(X/- А) является многочленом степени п относи-
тельно X. Он называется характеристическим многочленом матрицы А.
Упражнение 5.2.5.
(а) Покажите, что характеристический многочлен матрицы
2
4
В =
есть X2 - 5Х - 2. Он имеет степень 2.
(Ь) Покажите, что характеристический многочлен матрицы
1
С= 2
1 1
3 4
1 1
0
есть X3 - 5Х2 + X + 1. Это многочлен степени 3.
Упражнение 5.2.6. Пусть
(а) Покажите, что характеристический многочлен матрицы В равен
(X - 1)(Х - 2), а собственные значения равны 1 и 2. Таким образом, В
имеет два различных собственных значения.
(Ь) Покажите, что характеристический многочлен матрицы С равен (X - 1) х
х (X - 1), а собственные значения равны 1 и 1. Таким образом, С не имеет двух
различных собственных значений. Она имеет два собственных значения, если
собственное значение 1 считать дважды. Говорят, что собственное значение 1
имеет алгебраическую кратность 2, поскольку оно дважды появляется в разло-
жении характеристического многочлена матрицы С. □
Каждый многочлен и-го порядка имеет п корней в комплексной плоскости,
так что матрица А имеет п собственных значений, и некоторые из них могут
повторяться. Если А является вещественной матрицей, то ее характеристиче-
ский многочлен имеет вещественные коэффициенты. Но корни вещественно-
5.2. Основные результаты о собственных значениях и собственных векторах
329
го многочлена не обязательно будут вещественными, так что вещественная
матрица может иметь комплексные, а не вещественные собственные значе-
ния. Вот почему есть смысл работать с комплексными числами с самого нача-
ла. Однако обратите внимание, что если вещественная матрица имеет ком-
плексные собственные значения, то они должны образовывать комплексно
сопряженные пары, т.е. если X = а + р/ (а, р е R) - собственное значение мат-
рицы А е Rwx", то собственным значением обязательно будет и комплексно со-
пряженное число X = а - р/.
Упражнение 5.2.7. Докажите последнее утверждение двумя способами:
(а) Сначала проверьте следующие два положения о комплексно сопря-
женных числах. Если Zi = cq + PjZ е С и z2 = «2 + Рг* е С, то Zx + Z2 = Z{+ Z2
и zxz2 = ZXZ2-
(b) Пусть A e Пусть также X — собственное значение матрицы Л, a v —
соответствующий собственный вектор. Через v обозначим вектор, компонен-
ты которого комплексно сопряжены компонентам вектора к Покажите, что
v является собственным вектором матрицы А с соответствующим собствен-
ным значением X.
(с) Пустьр(Х) = aQ + аД + а2Х2 + ... + апХп — многочлен с вещественными ко-
эффициентами д0, ..., ап. Покажите, что для любого z = а + 0/ е С, p(z) = p(z)-
Докажите, чтоp(z) = 0, тогда и только тогда, когда Д z) = 0. □
Теперь пришло время высказать другое важное соображение о веществен-
ных матрицах. Пусть А е Ляхя и предположим, что она имеет вещественное
собственное значение X. Тогда в однородном уравнении (X/ - A )v = 0 матрица
коэффициентов X/ - А вещественная. Если матрица X/ - А вырожденка, то
уравнение (X/- A)v = 0 имеет нетривиальные вещественные решения. Отсюда
следует, что каждое вещественное собственное значение вещественной матри-
цы соответствует вещественному собственному вектору.
Упражнение 5.2.8. Пусть А е С"4”.
(а) С помощью характеристического уравнения покажите, что А и АТ имеют
одни и те же собственные значения.
(Ь) Покажите, что X является собственным значением матрицы А тогда и
только тогда, когда X является собственным значением матрицы А*. (А* обозна-
чает комплексно сопряженную транспонированную матрицу матрицы А.) □
Имеется несколько типов матриц с очевидными собственными значения-
ми. Следующая теорема позднее окажется весьма полезной.
Теорема 5.2.9. Пусть Те Сп*п — (нижняя или верхняя) треугольная матрица.
Тогда собственными значениями матрицы Тявляются элементы ее главной диа-
гонали Гн, ..., tnn.
Доказательство. Определитель треугольной матрицы R равен гххг22... гпп —
произведению элементов главной диагонали. Поскольку Т треугольная, то
такой же является и X/ - Т Следовательно, характеристическое уравнение
матрицы Т есть 0 = (X - /И)(Х - t22) ... (X - а его корни, очевидно, рав-
ны Гн, ..., tnn.
Второе доказательство вы найдете в упражнении 5.2.19. □
Следующее обобщение теоремы 5.2.9 также весьма полезно.
330
Глава 5, Собственные значения и собственные векторы I
Теорема 5.2.10. Пусть А — блочная треугольная матрица, скажем,
41 4г ^1т
_ 4г *“ 4m
д
Тогда множество собственных значений матрицы А с учетом алгебраиче-
ски кратных равно объединению множеств собственных значений матриц Ап,
4г, •••> Атт.
Доказательство. Поскольку X/ - А есть блочная треугольная матрица, то
det(XZ-А) = det(X/-/4H)det(X/-Л22)... det(X/-Атт). Таким образом, множест-
во корней характеристического многочлена равно объединению корней харак-
теристических многочленов для Ан, Л22,..., Атт. □
Хотя сейчас А была определена как блочная верхняя треугольная матри-
ца, очевидно, результат остается верным и для блочных нижних треуголь-
ных матриц.
Набросок второго доказательства, не дающего, однако, дополнительной
информации, приведен в упражнении 5.2.20.
Теорема 5.2.11. Пусть v15 ..., vk — собственные векторы матрицы А, соответ-
ствующие различным собственным значениям Хн ..., X*. Тогда векторы ..., vk
линейно независимы.
Доказательство. См. любой учебник по линейной алгебре или проработайте
упражнение 5.2.21. □
Напомним, что в предыдущем разделе матрица А е Сп*п была названа полу-
простой или недефектной, если у нее существует множество п линейно незави-
симых собственных векторов. Матрица, не являющаяся полупростой, называ-
ется дефектной.
Следствие 5.2.12. Если А е Слх" имеет п различных собственных значений, то
она является полу простой.
Если мы выберем матрицу «случайным образом», то почти наверняка ее
характеристическое уравнение будет иметь различные корни. Вообще на-
личие кратных корней является исключительным событием. Поэтому вы-
бранная «случайным образом» матрица почти наверняка окажется полу-
простой. Это лежит в основе утверждения, сделанного в предыдущем раз-
деле, что «большинство» матриц являются полупростыми. Вдобавок
нетрудно показать, что каждая дефектная матрица имеет полупростую мат-
рицу, сколь угодно близкую к ней. Для данной дефектной матрицы (кото-
рая необходимо имеет несколько повторяющихся собственных значений)
достаточно малого возмущения, чтобы разделить повторяющиеся собствен-
ные значения и получить полупростую матрицу (упражнение 5.4.32). На
языке топологии множество полупростых матриц плотно в множестве всех
матриц.
Дефектная матрица должна иметь по крайне мере одно повторяющееся
собственное значение. Однако наличие повторяющихся собственных значе-
ний не гарантирует того, что матрица является дефектной.
5.2. Основные результаты о собственных значениях и собственных векторах
331
Упражнение 5.2.13. Найдите все собственные значения и собственные век-
торы единичной матрицы I е С"х”. Убедитесь, что (если п > 1) единичная мат-
рица обладает повторяющимися собственными значениями, но не является
дефектной. □
До сих пор мы даже не знали о существовании дефектных матриц. Пример
такой матрицы дан в следующем упражнении.
Упражнение 5.2.14.
Го 11
(а) Матрица имеет только собственное значение нуль. (Почему?)
Покажите, что у нее нет двух линейно независимых собственных векторов.
(Ь) Найдите 2 х 2-матрицу, которая имеет только собственное значение
нуль, но два линейно независимых собственных вектора. (Имеется лишь одна
такая матрица.)
(с) Покажите, что матрица
с 1
с 1
с 1
с
является дефектной. Матрица такого вида называется жордановым блоком.
(d) Покажите, что матрица
5 О О
О 7 х
0 0 7
является дефектной, если х ф 0, и полупростой, если х = 0.
Эквивалентность задачи на собственные значения и многочленных уравнений
Мы видели, что определение собственных значений матрицы А эквива-
лентно определению корней многочленного уравнения det(V- А) = О.Следо-
вательно, если у нас есть способ нахождения корней произвольного многочле-
на, то в принципе мы в состоянии найти собственные значения любой матри-
цы. Следующая ниже теорема 5.2.16 показывает, что верно и обратноегесли мы
можем найти собственные значения произвольной матрицы, то, в принципе,
мы можем найти и корни произвольного многочлена.
Произвольный многочлен степени п имеет вид - bQ + ЙД + i2X2 + ... +
где bn * 0. Если мы разделим все коэффициенты #(Х) на Ьп, то получим
новый многочлен р(Х) = aQ + а Д + а 2Х2 + ... + IV (ak = £*/£„), который имеет те
же корни и является нормированным многочленом, т.е. его старший коэффици-
ент ап = 1. Поскольку всегда можно заменить многочленное уравнение q(k) = 0
332
Глава 5. Собственные значения и собственные векторы I
эквивалентным уравнением р(Х) = 0, достаточно рассмотреть только такие
уравнения. Для данного нормированного многочлена определим сопровож-
дающую матрицу многочлена р как п х «-матрицу
(5.2.15)
Эта матрица имеет единицы на первой поддиагонали и в ее первой строке
стоят коэффициенты многочлена р с обратными знаками, а все остальные ее
элементы равны нулю.
Теорема 5.2.16. Пустьр(Х) = aQ + а Д + а 2Х1 2 + ... + IV — нормированный много-
член степени п и А — его сопровождающая матрица (5.2.15). Тогда характери-
стический многочлен матрицы А есть р. Таким образом, корни уравнения р(1) = О
являются собственными значениями матрицы А.1
Доказательство. См. упражнение 5.2.23. □
Необходимость итерационных методов
Благодаря теореме 5.2.16 мы видим, что задача на собственные значения и
задача нахождения корней многочлена эквивалентны. Хотя изучаемые нами
алгоритмы напрямую не используют эту эквивалентность, она имеет важное
теоретическое значение. Задача нахождения корней многочлена - одна из ста-
рых задач, привлекавших внимание великих умов. В частности, в начале де-
вятнадцатого века Нильс Хенрик Абель смог доказать, что не существует об-
щей формулы2 для выражения корней полинома степени п, если п > 4. (См.,
например, [37].) Отсюда следует, что не существует общей формулы для выра-
жения собственных значений п х «-матриц, если « > 4.
Численные методы можно подразделить на две большие категории - пря-
мые и итерационные. Прямые методы получают результат за определенное ко-
нечное число шагов. Все версии гауссова исключения для решения системы
Ах = Ь являются прямыми методами. Таковы и все методы решения задачи
наименьших квадратов, которые мы рассматривали в гл. 3. В противополож-
ность этому итерационные методы дают последовательность приближений, ко-
торые (надо надеяться) сходятся к истинному решению задачи. Каждый шаг
или итерация алгоритма дает новое приближение. По существу последователь-
1 В MATLAB’e есть команда roots, которая использует это соответствие. Если х = (Ь„,..., />0) -
вектор, содержащий коэффициенты многочленар, то команда roots (х) выдает в качестве ре-
зультата корни уравнения р(Х) = 0. MATLAB делает это следующим образом. Коэффициенты нор-
мализуются, чтобы получить многочлен с единичным старшим коэффициентом. Затем формиру-
ется сопровождающая матрица. В заключение с помощью Q/f-алгоритма вычисляются собствен-
ные значения сопровождающей матрицы. Это и есть искомые корни.
2 Мы говорим лишь о формулах,содержащих сложение, вычитание, умножение, деление и из-
влечение корней.
5.2. Основные результаты о собственных значениях и собственных векторах
333
ность итераций бесконечна, но на практике бесконечное выполнение алгорит-
ма невозможно, и поэтому мы останавливаемся, как только получим настоль-
ко хорошее приближение, что можем принять его в качестве решения. Число
итераций, необходимых для достижения этого, обычно заранее не известно,
хотя зачастую и поддается оценке.
Теорема Абеля показывает, что не существует прямых методов решения
общей задачи на собственные значения, ибо существование конечной, за-
ранее прописанной процедуры приведет к существованию (возможно,
очень сложной) формулы для решения любого многочленного уравнения.
Поэтому все алгоритмы решения задачи на собственные значения — итера-
ционные.
Вопросы сходимости
В следующем разделе мы рассмотрим некоторые из простейших итераци-
онных методов. Каждый из них порождает последовательность векторов ql9
q2, , которая (обычно) сходится к собственному вектору v при j -> оо, т.е.
qj -> v при j -> оо. Для каждого описываемого нами метода необходимо рас-
смотреть действительно ли (и при каких условиях) он сходится к собственно-
му вектору. Но прежде всего объясним, что мы имеем в виду, когда пишем
qj -> v. Мы подразумеваемого каждая компонента вектора сходится к соот-
ветствующей компоненте вектора v при j -> оо. Вы легко можете проверить,
что такая покомпонентная сходимость имеет место тогда и только тогда, ко-
гда || qj - v L -> 0 или || qj - v ||j -> 0 или || ^ - v ||2 -> 0 при j -> оо.1 Мы будем
широко использовать нормы в нашем обсуждении сходимости итерационных
методов. В сущности, неважно, какую норму мы используем, поскольку все
нормы в С” эквивалентны. Это так, потому что С” имеет конечную размер-
ность - см. [70, теорема II.3.1] или любое другое руководство по функцио-
нальному анализу.
Хотя вопрос о наличии сходимости очень важен, все же вопрос о скоро-
сти сходимости еще важнее. Сходящийся итерационный метод не имеет
практического интереса, если требуется выполнить миллионы итераций,
чтобы получить приемлемый результат. Скорость сходимости будет обсуж-
даться в следующем разделе в связи с итерациоными методами, рассмотрен-
ными там.
Многообразие итерационных методов
Как мы уже говорили, рассматриваемые в следующем разделе методы по-
рождают последовательности векторов. В последующих разделах этой главы
мы будем изучать сложные методы, порождающие последовательности матриц
Л2, Ау,... такие, что каждая матрица в последовательности имеет те же соб-
ственные значения, что и исходная матрица А, и эти матрицы сходятся к мат-
рице простого вида, например, к верхней треугольной, для которой собствен-
1 Наше обсуждение векторных норм в разд. 2.1 ограничивалось нормами в R". Однако все ска-
занное там можно перенести и на комплексный случай.
334
Глава 5. Собственные значения и собственные векторы I
ные значения легко определить. В гл. 6 мы вводим еще один класс итерацион-
ных методов, которые порождают последовательность подпространств
пространства С”. В середине гл. 6 станет понятно, что все эти методы, порож-
дающие либо векторы, либо матрицы, либо подпространства, очень тесно свя-
заны между собой.
Дополнительные упражнения
Упражнение 5.2.17. Пусть Л е Rwx'" имеет SVD А = ULf. Здесь правые сингу-
лярные векторы Vj, ..., ут — это столбцы матрицы И а левые сингулярные век-
торы иь ..., ип — столбцы матрицы U. Покажите, что ..., vm - линейно неза-
висимые собственные векторы матрицы АТА, а ..., ип — линейно независи-
мые собственные векторы матрицы ААТ, соответствующие собственным
значениям о ।, ...,о^, 0, 0,..., где г-ранг матрицы Л. □
Упражнение 5.2.18. Пусть X - собственное значение матрицы А. Рассмот-
рим множество
= {v е Сп | Ay = Xv},
которое состоит из всех собственных векторов, соответствующих X, и нулевого
вектора.
(а) Покажите, что если Vj е SK и у2 е 5К, то v1 + у2 е
(Ь) Покажите, что если е и с е С, то су{ е 5Х.
Таким образом, SK есть подпространство в С. Оно называется собственным
подпространством матрицы Л, соответствующим X. Даже если X не является
собственным значением, мы все еще можем определить пространство 5Х, но в
этом случае = {0}. Очевидно, X является собственным значением матрицы Л,
тогда и только тогда, когда ф {0}. □
Упражнение 5.2.19. В данном упражнении дается второе доказательство
того, что элементы главной диагонали треугольной матрицы являются ее соб-
ственными значениями. Пусть Т — треугольная матрица. Для определенности
предположим, что это верхняя треугольная матрица. Пусть, далее, ц -ком-
плексное число.
(а) Предположим, что ц = tif при некотором /. Покажите, что ц есть соб-
ственное значение, порожденное собственным вектором, соответствующим
ц. Т.е. постройте ненулевой вектор v е С” такой, что (ц/ - Т)у = 0. Может
оказаться, что ц = tn для нескольких значений i. Пусть j — наименьший ин-
декс, для которого ц = tjj, т.е. ц ф tu при i < j. Покажите, что если j = 1,
то (ц/ - 7)е1 = 0, где е{ = [1, 0, ..., 0]г. Если j ф 1, разбейте Т следующим
образом:
о
о
5.2. Основные результаты о собственных значениях и собственных векторах
335
где Тп имеет размерность (J - 1) х (/ - 1), х е С7 1 и т.д. Докажите, что сущест-
вует единственный вектор v вида
z
1
где z е Cj~1 такой, что (ц/- T)v = 0. Таким образом, ц является собственным
значением матрицы Т.
(Ь) Покажите, что если ц ф для всех f, a v е С" удовлетворяет уравнению
(ц/ - T)v = 0, то v = 0. (Не пользуйтесь определителями, просто докажите тре-
буемое непосредственно из уравнения.) Таким образом, ц тогда не является
собственным значением матрицы Т. □
Упражнение 5.2.20. Пусть А е С"х" — блочная треугольная матрица:
А =
Л| ^12
0 А22
где Лн е СJxJ и А22 е С kxk, j + к = п.
(а) Пусть X - собственное значение матрицы Лн, соответствующее собст-
венному вектору к Покажите, что существует вектор w е Ск такой, что V —
собственный вектор матрицы Л, соответствующий собственному значению X.
(Ь) Пусть X - собственное значение матрицы А22, соответствующее собст-
венному вектору w, и X не является одновременно собственным значением
матрицы Ап. Покажите, что существует единственный вектор v е О' такой, что
у!
есть собственный вектор матрицы Л, соответствующий собственному зна-
чению X.
(с) Пусть X - собственное значение матрицы Л, соответствующее собствен-
v~| „
ному вектору . Покажите, что либо w является собственным вектором мат-
рицы Л22, соответствующим собственному значению X, либо v есть собствен-
ный вектор матрицы Лп,соответствующий собственному значению X. (Указа-
ние: Либо w * 0, либо w = 0. Рассмотрите оба эти случая.)
(d) Комбинируя части (а), (Ь) и (с), покажите, что X есть собственное значе-
ние матрицы Л, тогда и только тогда, когда оно является собственным значе-
нием либо матрицы Ли, либо матрицы Л22. □
Упражнение 5.2.21. Докажите теорему 5.2.11 индукцией по к. Можете по
желанию воспользоваться следующими указаниями. Сначала покажите, что
теорема верна при к = 1. Затем предположите, что к имеет произвольное значе-
ние, и покажите, что если теорема выполняется для множества из к - 1 векторов
336
Глава 5. Собственные значения и собственные векторы I
(индуктивное предположение), то она должна выполняться и для множества из
к векторов. Положим
С^! + C2V2 + ... + ckvk = 0.
(5.2.22)
Чтобы установить независимость векторов vk9 вам нужно показать,
что Cj = с2 = ... = ск = 0. Примените (А - ккГ) к обеим частям (5.2.22). Упростите
результат, используя то, что Avj = Xyvy при j = 1, ..., к, и учтите, что один член в
левой части исключается. Воспользуйтесь индуктивным предположением,
чтобы получить = с2 = ... = ск_! = 0. Ясно опишите, как вы использовали здесь
различие собственных значений. И, наконец, вернитесь к (5.2.22) и покажите,
что ск = 0. □
Упражнение 5.2.23. В частях (а) и (Ь) данного упражнения предлагается дать два
независимых доказательства теоремы 5.2.16. Пусть р(Х) = aQ + а Д + а 2Х2 + ... + IX”
и А — сопровождающая матрица (5.2.15).
(а) Пусть X е С — собственное значение матрицы А, соответствующее соб-
ственному вектору v. Запишите и рассмотрите уравнение Av = Xv. Покажите,
что v должен быть кратен вектору
Xя"1
X2
X
1
(5.2.24)
а X должно удовлетворять условию р(Х) = 0. Обратно, покажите, что если р(Х) = 0,
то X есть собственное значение матрицы А с собственным вектором у, указан-
ным в (5.2.24). Таким образом, собственные значения матрицы А совпадают с
корнями р.
(Ь) Для/ = 1, ..., п пусть ху(Х) = X7+ an_xN~x + ... + а„_у+1Х + ап_г Таким обра-
зом, X; есть нормированный многочлен степени/, а хя =Л Пусть Aj — сопрово-
ждающая матрица для х Докажите индукцией по j, что det(X/ - Jy) = х /М,
j = 1,..., п. Указание'. Разложите определитель det(X/- Лу) по последнему столб-
цу, чтобы получить рекуррентную формулу
det(X/ - Лу) = X det(X/ - Лу _ J + ап _j. □
5.3. Степенной метод и некоторые простые разложения
Пусть А е Слх”. Чтобы не усложнять анализ, предположим, что А - полу-
простая матрица. Это означает, что А имеет множество п линейно независи-
мых собственных векторов vb ..., v„, которые в этом случае образуют базис в С”.
5.3. Степенной метод и некоторые простые разложения
337
Пусть Хь Х„ обозначают собственные значения, соответствующие vb vn.
Предположим, что эти векторы упорядочены так, что | Xj | > | Х21 > ... > | Х„ |.
Если | Х11 > | Х21, Xj называется доминирующим собственным значением, a Vj — до-
минирующим собственным вектором матрицы А.
Если А имеет доминирующее собственное значение, то мы можем найти
соответствующий собственный вектор с помощью степенного метода. Основ-
ная идея — выбрать некоторый вектор q и сформировать последовательность
q, Aq, A2q, A3q, ... .
Для вычисления этой последовательности не нужно на деле получать сте-
пени матрицы А. Каждый вектор последовательности можно найти, умножив
предыдущий вектор на А, например, Ai+ lq = A(A!q). Легко показать, что эта по-
следовательность сходится в некотором смысле к доминирующему вектору
почти при любом выборе q. Так как vb ..., vn образуют базис в С", существуют
константы сь ..., сп такие, что
q = + c2v2 + ... + cnvn.
Пока мы не знаем ..., v„, а потому не знаем и значений с19..., сп. Но ясно,
что на практике при любом выборе q значение с{ должно быть отличным от
нуля (упражнение 5.3.43). Следующие рассуждения верны для любого q при
с{ ф 0. Умножая q на Л, имеем
Aq - c1Av1 + c2Av2 + ... + = c1XlVj + c2X2v2 + ... + cn\nvn.
Аналогично,
A2q = + c2X2v2 + ... + c„X2„v„
и, в общем случае,
A*q = сД'У] + c2V2v2 + ... + c„XJnv„. (5.3.1)
Так как X! доминирует над другими собственными значениями, составляю-
щая вектора A!q в направлении vl с ростом j постоянно остается больше состав-
ляющих в других направлениях. Это становится нагляднее, если (5.3.1) запи-
сать следующим образом:
Ajq = X>(clV1 + c2(k2/^yv2 + ... + cn(kMvn). (5.3.2)
Тот факт, что умножение собственного вектора на любую константу дает
собственный вектор, означает, что величина собственного вектора не имеет
значения — важно лишь направление вектора. Следовательно, множитель X/ в
(5.3.2), в принципе, не играет роли. Поэтому вместо последовательности (Aiq)
338
Глава 5. Собственные значения и собственные векторы I
рассмотрим перемасштабированную последовательность (^у), где qj-Aqfk\. Из
(5.3.2) ясно, что qj -> ct v, при J -> оо, ибо для любой векторной нормы
II qj - <4*1 II = II c2(X2/’kyv2 + ... + c„(‘k„/'kyv„ II <
- I c2 I I ^2/^-1 HI V2 II + ••• + I Cn I I k/k HI vn II -
1 (I c2 I II v2 II + ... + I c„ I II v„ 11)1 Х2Д, H
Здесь использовано то, что | Ху | < | Х21при / = 3,..., п. Полагая С = | с2|| Ьъ II + —
+ I ся|| к ||, имеем
||<7, - c,v, || < С| X2/Xt Г j= 1, 2, 3, ... (5.3.3)
Из | X, | > | Х21 следует, что | |у -> 0 при j -> оо. Таким образом, || - с,у, || -> 0.
Это означает, что при достаточно больших j вектор q} является хорошим при-
ближением для доминирующего собственного вектора с}v,. Число || qj - с{У| ||
дает величину ошибки при этом приближении. Из (5.3.3) видно, что с каждой
итерацией величина ошибки, грубо говоря, уменьшается в | Х2Д[ | раз. Поэто-
му отношение | Х2/Х| | служит хорошим индикатором скорости сходимости.
Сходимость этого степенного метода называется линейной. Вообще гово-
рят, что последовательность (ху), которая сходится кх, обладает линейной схо-
димостью, если имеется число г, 0 < г < 1, такое, что
Это означает, что || ху+1 - х || » г|| ху - х || для достаточно больших f. Число /
называется коэффциентом (отношением) сходимости или числом сжатия по-
следовательности. В общем случае степенной метод обладает линейной сходи-
мостью с коэффициентом сходимости г = | | (упражнение 5.3.44).
На практике последовательность </у = Alqfk\ недоступна, поскольку мы не
знаем Х| заранее. С другой стороны, нет смысла работать лишь с A!q, потому
что || A!q || -> оо, если (| X, || > 1 и || A!q || -> 0, если || Xj || < 1. Чтобы избежать пере-
полнений или потери порядка и узнать, когда же итерации сходятся, необхо-
димо воспользоваться определенного рода шкалированием. Поэтому положим
<7о = <7 и определим
Qj +1 — Mj! ^j +1,
где оу+ j есть какой-то подходящий коэффициент шкалирования.Точное значе-
ние коэффициента шкалирования не так важно, поскольку нас интересуют на-
правления векторов, а не их длины. Простая и удобная стратегия — взять в
1 Некоторые авторы допускают также г = 1, но кажется предпочтительнее считать, что это слу-
чай, представляющий сходимость более медленную, чем линейная. Последовательность, удовлетво-
ряющая (5.3.4) с r = 1, действительно сходится очень медленно.
5.3. Степенной метод и некоторые простые разложения
339
качестве сту.+ 1 наибольший по абсолютной величине элемент вектора Aqr При
таком выборе наибольшая компонента каждого из равна 1 и последователь-
ность сходится к доминирующему собственному вектору, у которого наиболь-
шая компонента равна 1.
Итерации степенного метода сравнительно недороги. Стоимость умноже-
ния п х «-матрицы А на qj составляет 2«2 флопов. Операция нормировки требу-
ет, как легко проверить, лишь О(п) флопов, так что общая стоимость степен-
ной итерации равна приблизительно 2«2 флопам, поэтому на т итераций за-
трачивается 2п2т флопов. Эта оценка предполагает, что А не является
разреженной матрицей. Если матрица Л разреженная, то затраты на вычисле-
ние Aq, станут намного меньше 2п2 флопов. Например, если А имеет по пять
ненулевых элементов в каждой строке, то затраты на вычисление Aq} составят
лишь порядка 10« флопов.
Наше рассмотрение степенного метода предполагает, что матрица полу-
простая. Это требование оказывается не столь уж обязательным: значительная
часть наших выводов может быть перенесена и на дефектные матрицы.
Пример 5.3.5. Используем степенной метод для определения доминирую-
щего собственного вектора матрицы
Если начать с вектора qQ = [1 1]г, то на первом шаге будем иметь Aq{} = [10 3]г.
Деля на коэффициент масштабирования 04 = 10, получаем q} = [1 0.3]Т. Затем
Л?! = [9.3 1.6]г, о2 = 9.3 и q2 = [1 0.172034]г. Последующие итерации приведены в
табл. 5.1. Там приведены лишь вторые компоненты каждого из векторов qp по-
скольку первые компоненты всегда равны 1. После 10 итераций последова-
тельность векторов (#у) сошлась с точностью до шести десятичных знаков.
Таблица 5.1. Результаты итераций для степенного метода
J су 4 (вторая компонента)
3 9.172043 0.146541
4 9. 146541 0.141374
5 9. 141374 0.140323
6 9. 140323 0.140110
7 9. 140110 0.140066
8 9. 140066 0.140057
9 9. 140057 0.140055
10 9. 140055 0.140055
Итак (с точностью до шести десятичных знаков)
1.0
0.140055
340
Глава 5. Собственные значения и собственные векторы /
Последовательность ст, сходится к доминирующему собственному значе-
нию Xj = 9.140055. □
В примере 5.3.5, а также в примерах 5.3.7, 5.3.10 и 5.3.11, итерации схо-
дятся достаточно быстро. Так происходит потому, что в каждом случае отно-
шение | Х2/Х| |довольно мало. Для большинства матриц это отношение при-
нимает не столь благоприятные значения. Не редко значения | Х2/Х, | очень
близки к 1 — в этом случае сходимость становится медленной. См. упражне-
ние 5.3.9.
Упражнение 5.3.6. Получите характеристический многочлен из примера
5.3.5 и,используя формулу для корней квадратного уравнения, найдите собст-
венные значения. Также определите доминирующий собственный вектор и
проверьте правильность результатов примера 5.3.5. Вычислите отношения
ошибок || qj+1 — Vj || / || qj- ||,j = 0, 1,2,..., и отметьте, что они хорошо согласу-
ются с теоретическим значением коэффициента сходимости | Хг/Xj |. Почему
это согласие настолько хорошее? Как вы думаете, будет ли согласие столь же
хорошим, если А будет иметь размеры 3x3 или больше? □
Г 8 1
Упражнение 5.3.7. Пусть А =
(а) Используйте степенной метод с qQ = [1 I]7’ чтобы получить домини-
рующие собственное значение и собственный вектор матрицы А. Составьте
таблицу значений q} и ст, на каждом шаге. Выполняйте итерации до тех пор,
пока qj и ст, не сойдутся с точностью по крайней мере до шестого десятич-
ного знака.
(Ь) Теперь, когда вы определили собственный вектор v, вычислите отношения
II ^+1 - V II / II Qj - V II, у = о, 1, 2
. Выполните вычисления по степенному методу с начальным
А =
чтобы найти наблюдаемую скорость сходимости. Используя характеристиче-
ское уравнение, найдите собственные значения и вычислите отношение
| X2/Xj |, которое дает теоретическую скорость сходимости. Как теория согласу-
ется с практикой в данном случае? □
Упражнение 5.3.8. Решите эту задачу с карандашом и бумагой. Пусть
''О Г
1 0
значением qQ = [а Ь]Т, где а > 0, b > 0 и а * Ь. Объясните, почему последо-
вательность не сходится. Почему доводы, ранее объяснявшие сходимость,
терпят неудачу в данном случае? □
Упражнение 5.3.9. Эту задачу также сделайте с карандашом и бумагой. Толь-
’0.99 О'
0 L
(а) Найдите собственные значения матрицы А и соответствующие слобст-
венные векторы.
(Ь) Выполните степенные итерации, начиная с qQ = [J 1]г. Выведите общее
выражение для qj.
ко на самом последнем шаге вам потребуется калькулятор. Пусть А =
5.3. Степенной метод и некоторые простые разложения
341
(с) Сколько потребуется итераций, чтобы получить || qj— V| / || Vj < 10 6?
□
1 1 1
Упражнение 5.3.10. Пусть А = -1 9 2
0-12
(а) Используя MATLAB, примените к Л степенной метод, начиная с qQ = [1 1 1]г.
Сделайте по крайней мере 10 итераций. Даем пример возможной программы
на MATLAB’e:
А = [1 1 1; -1 9 2; 0 -1 2]
q = ones(3,1)
iterate(:,1) = q;
for j = 1:10
q = A*q;
[bgst,index] = max(abs(q));
sigma(j+1) = q(index(l));
q = q/sigma (j4-l) ;
iterate (:, j4-l) = q;
end
iterate
sigma
Если вы сохраните некоторые из этих команд в файле, скажем,
power.m, то каждый раз при выполнении power в командной строке
MATLAB будет выполнять эту последовательность операций. Число по-
лучаемых разрядов намного превышает число обычно отображаемых на
экране. Если вы пожелаете вывести больше разрядов, наберите format
long.
(b) Воспользуйтесь командой [ V, D ] = eig(A), чтобы получить собствен-
ные значения и собственные векторы матрицы А. Сравните доминирующее
собственное значение, находящееся в D, с коэффициентом масштабирования,
который вы получили в п. (а).
(с) Найдите в V доминирующий собственный вектор и перемасштабируйте
его так, чтобы вы могли сравнивать его с итерациями п. (а). Вычислите отно-
шения
Il?/+I - V ||2 / II q} - v||2, j = 1, 2, 3.
(d) Используя D из п. (b), вычислите отношение | кг/К I и сравните его с от-
ношениями, полученными в п. (Ь). □
Упражнение 5.3.11. Повторите упражнение 5.3.10 для матрицы
1
2
2
342
Глава 5. Собственные значения и собственные векторы I
В чем здесь будет разница? Отношения ошибок не так устойчивы. Вычис-
лите величины
-vll/lky -v||, j = 1, 2, 3, ...
и сравните их с | X2/Xj |. Исходя из чего вы ожидаете, что эти разности будут
малы? □
Упражнение 5.3.12. Повторите упражнение 5.3.10 для матрицы
1 1
3 2
-1 2
Что произойдет на этот раз?
□
Обратные итерации и стратегия сдвига с обращением
Мы все еще предполагаем, что А е Сп*п - полупростая матрица с линейно
независимыми собственными векторами vb ..., v„ и соответствующими собст-
венными значениями Хь..., Х„, расположенными в порядке убывания их моду-
лей. Если А не вырождена, то можно применить степенной метод к Л"1. Это -
обратный степенной метод, или обратные итерации. (В противоположность
этому степенной метод в применении к А иногда называется прямыми итера-
циями.)
Упражнение 5.3.13. Пусть А е С”х” не вырождена. Тогда все собственные
значения матрицы А отличны от нуля. Покажите, что если v - собственный
вектор матрицы А, соответствующий собственному значению X. то v является
также собственным вектором матрицы Л-1, соответствующим собственном уз-
начениюХ-1. □
Из упражнения 5.3.13 видно, что Л"1 имеет линейно независимые собствен-
ные векторы vn,vn_ ь ..., Vj с собственными значениями X"1, Х^’.р ..., X]1. Если
I M~l > I К-11”1 (т.е.1V11 > IКI) и мы начинаем с вектора q = cnv„ + ... + с^, у ко-
торого сп ф 0, то обратные степенные итерации будут сходиться к вектору, крат-
ному v„ и соответствующему наименьшему собственному значению матрицы Л.
Коэффициент сходимости равен | X”1 / Х"1-, | = | Хл_ УХ„ |, так что сходимость будет
быстрой, если | Х„ | > | Х„_! |. Можно считать, что мы сдвигаем собственные значе-
ния так, что наименьшее из них становится очень близким к нулю. Чтобы по-
нять, как это работает, нам нужен лишь следующий простой результат.
Упражнение 5.3.14. Пусть Л е С"х” и р е С . Покажите, что если v —
собственный вектор матрицы Л с соответствующим собственным значени-
ем X, то v является также собственным вектором матрицы Л - р/ с собст-
венным значением X - р. □
Из упражнения 5.3.14 видно, что если Л имеет собственные значения Хь Х2,
..., Х„, то Л - р/ имеет собственные значения Xj - р, Х2 - р, ..., Х„ - р. Скаляр
р называется сдвигом. Если сдвиг выбран так, что он является хорошим при-
5.3. Степенной метод и некоторые простые разложения
343
ближением к то | Хл_ j - р | > | - р |, и обратные итерации, примененные к
А - р/, будут быстро сходиться к вектору, кратному vn. На самом деле ничем
особенно не выделяется: в качестве сдвига р можно выбрать приближение лю-
бого собственного значения матрицы А. Если р является достаточно хорошим
приближением X,-, так что X,- — р намного меньше любого другого собственного
значения матрицы А - р/, то (почти для любого начального вектора q) резуль-
тат применения обратных итераций к А - р/будет сходиться к вектору, кратно-
му собственному вектору Коэффициент сходимости равен | (X, - р)/(Кк - р)|,
где - р — второе наименьшее по модулю собственное значение матрицы
А - р/. Чем ближе р к тем быстрее будет сходимость.
Сдвиги можно использовать и в прямых итерациях, но здесь они уже не бу-
дут столь эффективными. Сочетание сдвига и обратных итераций хорошо ра-
ботает потому, что существуют сдвиги, для которых одно из собственных зна-
чений смещенной матрицы много меньше всех остальных ее собственных зна-
чений. В противоположность этому обычно не существует сдвигов, для
которых одно собственное значение смещенной матрицы намного больше
всех других собственных значений.
Чтобы получить быструю сходимость, сначала делается сдвиг, а потом при-
меняются обратные итерации. Это называется стратегией сдвига с обращением
и является одной из самых важных идей в расчетах собственных значений.
Упражнение 5.3.15. Решите эту задачу с карандашом и бумагой. Диагональ-
ные матрицы, такие как
2.99 О
О
О
1.00
имеют особенно простые собственные системы.
(а) Найдите собственные значения и собственные векторы матрицы А.
(Ь) Найдите собственные значения матрицы А - р! и (А - р/)“1, где р = 0.99.
Выполните как прямые, так и обратные итерации для А - р/, начиная с qQ - [1 1 1]г.
К каким из собственных векторов сходится каждая из последовательностей?
Какая сходится быстрее?
(с) Выполните обратные итерации для значений (i) р = 2.00 и (ii) р = 3.00,
используя один и тот же начальный вектор. К каким собственным векторам
сходятся эти последовательности? □
Рассмотрим практические вопросы для обратных итераций. Их результаты
удовлетворяют соотношению
Чц 1 = (Л - р7)"'^/о-у+ 1;
но при этом нет необходимости явно вычислять (А - р/)-1. Вместо этого достаточно
решить линейную систему (А - p/)qJ+l = qP а затем положить qj+x = qJ+l / огу+1, где
aj+l есть наибольшая по величине компонента вектора qj+l. Если система реша-
ется гауссовым исключением, то L U-разложение матрицы А - р/необходимо вы-
344
Глава 5. Собственные значения и собственные векторы I
полнить лишь один раз. В этом случае каждая итерация состоит из прямой под-
становки, обратной подстановки и нормировки. Для полной п х м-матрицы за-
2
траты составляют-л3 флопов на 117-разложение плюс 2п2 флопов на итерацию.
Упражнение 5.3.16. Примените обратные итерации со сдвигом к матрице
и = Г5 >1
1 2
Из примера 5.3.5 известно, что 9 является хорошим приближением к собст-
венному значению матрицы А, Даже если мы не знаем этого, можно многого
ожидать от доминирующего числа 9 в позиции (1,1) матрицы. Итак, имеет
смысл выполнить сдвиг р = 9. Исходя из qQ - [1 1]г, решите систему (А - 91) qx =
q0, чтобы получитьqx = [8.0 l.O]7^ После этого выполните перемасштабирование
с o’! = 8 и получите qx = [1.0 0.125]Т, Решая (A -9J)q2 = qx, вы получите #2 = [7.125
l.O]7^ Таким образом, о2 = 7.125 и q2 = [1.0 0.140351]7. Последующие итерации
приведены в табл. 5.2. Как и в табл. 5.1, мы приводим лишь вторые компоненты
qp поскольку первые компоненты всегда равны 1. После пяти итераций получа-
ется собственный вектор = [1.0 0.140055]т с точностью до шестого десятичного
знака. Хороший выбор сдвига дает более быструю сходимость, чем мы имели в
примере 5.3.5. Коэффициенты масштабирования сходятся к собственному зна-
чению матрицы (А - 97)"1: (Xj - 9)~1 = 7.140055. Разрешая это относительно Xj,
получим Aq = 9.140055. Другой способ получить собственное значение состоит в
вычислении отношения Рэлея, которое мы рассмотрим ниже. □
Таблица 5.2. Результаты итераций для обратного степенного метода
J aj Я, (вторая компонента)
3 7.140351 0.140449
4 7. 140449 0.140055
5 7. 140055 0.140055
Упражнение 5.3.17. Пусть Л = .
(а) Используйте обратные итерации с р = 8 и qQ - [1 1]г, чтобы вычислить
собственное значение и собственный вектор матрицы А. (Для этой небольшой
задачи легче всего просто вычислить В = (А - 8/)"1 и выполнить прямую итера-
цию с В.)
(Ь) Теперь, когда вы знаете собственный вектор у, вычислите отношения
II ?у+1 - V II / II - V II
для j = 0, 1, 2, ..., чтобы найти наблюдаемую скорость сходимости. Получите
собственное значение, используя характеристическое уравнение или MATLAB,
5.3. Степенной метод и некоторые простые разложения
345
и вычислите теоретическую скорость сходимости | - 8)/(Х2 - 8)|. Насколько
теория согласуется с практикой? □
’1 1 11
Упражнение 5.3.18. Пусть А = -1 9 2
0-12
(а) Используя MATLAB, примените к А обратные итерации со сдвигом
р = 9 и начальным вектором qQ = [1 1 1]г. Для простоты просто вычислите
В = (А - 97)-1 (В = inv (А-9*еуе (3) ) в MATLAB’e и выполняйте итера-
ции с В. Некоторые из команд, приведенных в упражнении 5.3.10, могут
оказаться полезными и здесь. Используйте format long, чтобы рассмот-
реть итерационный процесс с большим числом десятичных знаков. Вы-
полните хотя бы десять итераций.
(Ь) Выполните [V, D] = eig (А) , чтобы найти истинный доминирующий
вектор. Вычислите ошибку || q} - v ||2 и отношения || qj+t - v ||2 / || q^ - v ||2 ДЛЯ j =
= 1, 2, 3, ... . Вычислите теоретическую скорость сходимости (по известным
собственным значениям) и сравните ее с этими отношениями. Обратите вни-
мание, что здесь мы имеем более быструю сходимость, чем в случае примене-
ния степенного метода к этой же матрице в упражнении 5.3.10. □
Упражнение 5.3.19. Матрица west0479 является разреженной 479 х 479-
матрицей, предоставляемой MATLAB’om. Ранее мы использовали ее в упраж-
нениях 1.6.3 и 1.9.2. Приведем здесь несколько небесполезных команд:
load west0479
А = west0479; % Просто присваиваем короткое имя
issparse(А) % = 1 для разреженной, = 0 для плотной матриц
size(А)
nnz(А) % число ненулевых элементов матрицы А
disp(А)
spy(А)
(а) Известно, что Л имеет собственное значение, близкое к р = 15 + 35/. Вос-
пользуйтесь обратными итерациями со сдвигом р, чтобы вычислить это собст-
венное значение. (Ответ'. X = 17.548546093831 + 34.237822957500Л) Вам будут
полезны следующие команды:
п = 479; itnum = 20;
shift = 15+35i;
[L,U,P] = lu(A-shift*speye(n));
q = ones(n,1);
for j = 1:itnum
q = P*q;
q = L\q;
q = U\q;
[bgst,index] = max(abs(q));
sigma(j+1) = q(index(1));
q = q/sigma(j+1);
end
346
Глава 5. Собственные значения и собственные векторы I
Добавьте несколько своих команд, чтобы получить желаемый результат.
(Ь) Объясните назначение четырех команд в части (а), содержащих L, и и Р.
Каким образом они делают алгоритм более экономичным?
(с) Если матрица большая и разреженная, то скорость алгоритма сущест-
венно зависит от того, как он реализован. Выполните три реализации обрат-
ных итераций, отслеживая при этом время их исполнения:
(i) Используйте реализацию, приведенную в части (а).
(ii) Для В = A-shift*speye (п) используйте q = В\q, чтобы выполнить
обратные итерации. Эта медленная реализация вынуждает MATLAB повторно
вычислять разреженное АСУ-разложение на каждой итерации.
(iii) Пусть С = full (inv (В)), где В — как и прежде, и используйте q =
C*q, чтобы выполнять итерации. (Наберите spy (С), чтобы удостоверить-
ся,что С отнюдь не является разреженной.)
Для каждого метода измерьте время выполнения, скажем, 20 итераций. Опре-
делите также, сколько времени тратит компьютер на вычисление разреженного
АСУ-разложения, и сколько времени занимает вычисление обращения матрицы.
Проанализируйте полученные результаты. Вот совсем простая программа:
tl = cputime;
[L,U,P] = lu(A-shift*speye(n));
t2 = cputime;
decomp_time = t2—tl
Упражнение 5.3.20. Это упражнение похоже на предыдущее за исключени-
ем того, что здесь порядок матрицы задается как скалярный параметр. Коман-
да MATLAB’a delsq создает разреженные матрицы, соответствующие дис-
кретному оператору Лапласа («квадрату набла», «набла квадратная») для раз-
личных областей. В качестве примера выполните
m = 32
А = delsq(numgrid('S',m));
issparse(A)
size(A)
При этом порождается 900 x 900-матрица. Вы можете делать размеры мат-
рицы больше или меньше, меняя величину параметра т. В общем случае мат-
рица имеет порядок (т - 2)2. Мы подробнее говорили об этом семействе в уп-
ражнении 1.6.4.
(а) Эта матрица симметрична и положительно определена. Ее наибольшее
собственное значение находится вблизи 8. Воспользуйтесь обратными итера-
циями со сдвигом р = 8, чтобы оценить это собственное значение с точностью
до пяти десятичных знаков. (Решение зависит от т.) Программу позаимствуй-
те из части (а) упражнения 5.3.19.
(Ь) Заново выполните часть (с) упражнения 5.3.19, используя матрицу от delsq.
Сделайте т достаточно большим, чтобы результаты получились впечатляющи-
ми, но все же не таким, чтобы ждать результата всю оставшуюся жизнь. □
5.3. Степенной метод и некоторые простые разложения
347
Обратные итерации с точным сдвигом
Введение понятия сдвига позволяет найти любой собственный вектор, а не
только соответствующий наибольшему или наименьшему собственным значе-
ниям. Однако чтобы найти некоторый определенный собственный вектор, мы
должны иметь для начала хорошее приближение для соответствующего ему
собственного значения. Поэтому для эффективного применения обратных
итераций надо иметь другие способы вычисления собственных векторов с со-
ответствующими собственными значениями. Используя найденные собствен-
ные значения в качестве сдвига, мы обычно получаем отличное приближение
для собственного вектора всего за одну-две итерации. Назовем такой прием
обратными итерациями с точным сдвигом. Это важное применение обратных
итераций.
Упражнение 5.3.21. Оракул говорит вам, что X = 17.548546093831 +
34.237822957500/ является собственным значением матрицы west0479 из
MATLAB’a. Выполните одну обратную итерацию, используя это собственное
значение в качестве сдвига, чтобы получить оценку v соответствующего собст-
венного вектора. Воспользуйтесь MATLAB-программой из упражнения 5.3.19.
Чтобы составить представление о качестве полученной оценки собственного
вектора, вычислите невязку || Av - A,v ||2 / II v Иг- Равенство невязки нулю указы-
вает на совершенство собственной пары. Если вы правильно решите эту зада-
чу, то получите исключительно малую невязку. (Предупреждение'. Малая не-
вязка не дает абсолютной гарантии точности собственного вектора. См. обсу-
ждение чувствительности собственных значений и собственных векторов в
разделе 6.5.) □
Обратные итерации с точным сдвигом работают удивительно хорошо,
если учитываются все особенности решаемой задачи. Если р есть собствен-
ное значение матрицы Л, то матрица А - р/ вырождена, так что (А- р!)~1 не
существует. Каким образом можно выполнить обратную итерацию с таким
сдвигом? Конечно, на практике р (почти) никогда не совпадает с собствен-
ным значением: (почти) всегда существует некоторая ошибка. Следователь-
но, А - р! (почти) всегда невырожденна.Более того, из гл. 2 известно, что в
вычислительной практике невозможно отличить вырожденную матрицу от
невырожденной. Следовательно, даже если А - р! вырожденка, мы (почти)
никогда не узнаем об этом. Таким образом, на практике метод (почти) нико-
гда не приведет к неудаче.
И все же если р близко к собственному значению, то это означает, что А - pl—
почти вырождена, т.е. она плохо обусловлена (упражнение 5.3.47). Следует
опасаться, что плохая обусловленность матрицы А - pl повредит вычислениям,
поскольку на каждом шаге необходимо решать систему вида (А - pl) qj+, = qr
К счастью, в таком контексте плохая обусловленность создает не только труд-
ности. Рассмотрим один шаг (А - pl) q{ = qQ. Если р близко к собственному зна-
чению матрицы А, то уже q} был бы очень близок к собственному вектору мат-
рицы А, если бы система решалась точно. Но предположим, что система была
решена гауссовым исключением с частичным выбором ведущего элемента.
Тогда, как мы знаем из гл. 2 (теорема 2.7.14 и последующее обсуждение), в
348
Глава 5. Собственные значения и собственные векторы I
действительности вычисленный вектор q{ удовлетворяет возмущенной систе-
ме (Л + 8А - р7) qt = q0, где 8Л обычно мало относительно А. Так как 8Л мало, р
также должно быть хорошим приближением к собственному значению матри-
цы А + 8Л, так что должен быть близок к собственному вектору этой матри-
цы, который в этом случае, в свою очередь, будет близок к собственному век-
тору матрицы А. Таким образом, обратные итерации в данном случае должны
быть достаточно надежными.
Верно это или нет, зависит от того, приводят ли на самом деле не-
большие возмущения в А лишь к небольшим возмущениям собственного
значенияи собственного вектора. В свою очередь, это зависит от чисел
обусловленности собственного значения и собственного вектора, кото-
рые не зависят от числа обусловленности матрицы А - р/. Мы рассмот-
рим числа обусловленности собственных значений и собственных векто-
ров в разд. 6.5.
Отношение Рэлея
При определении собственного вектора матрицы с помощью обратных
итераций нет причин, препятствующих использовать на каждой итерации
различные сдвиги. Это может оказаться полезным, если собственное значе-
ние заранее не известно. Если qj достаточно близко к собственному вектору,
то есть возможность как-то использовать для получения оценки соответ-
ствующего собственного значения. Эта оценка может быть использована в
качестве сдвига на следующей итерации. Так мы получим для каждой ите-
рации улучшенное значение сдвига, а следовательно, и улучшенный коэф-
фициент сходимости.
Пусть q е С" - приближение собственного вектора матрицы А. Как можно
использовать q для оценки соответствующего собственного значения? Наш
подход сводится к минимизации невязки. Если q точно совпадает с собствен-
ным вектором, то существует точно одно число р такое, что
Aq = pq. (5.3.22)
Это число и есть собственное значение. Если q не является собствен-
ным вектором, то не существует числа р, удовлетворяющего (5.3.22). На
самом деле соотношение (5.3.22) есть переопределенная система п уравне-
ний с единственным неизвестным р. Обозначая через г невязку, г = Aq - pq,
можно найти такое значение р, при котором 2-норма || г ||2 достигает мини-
мума. Если q - собственный вектор, минимизирующее р оказывается со-
ответствующим ему собственным значением. Поэтому кажется разумным,
что если q есть просто приближение к собственному вектору, то миними-
зирующее р должно быть хорошей оценкой соответствующего собственно-
го значения.
Выбор 2-нормы означает, что задача минимизации является задачей наи-
меньших квадратов, которую мы можем решать методами, рассмотренными в
5.3. Степенной метод и некоторые простые разложения
349
гл. 3. Таким образом, мы можем использовать, например, 0Л-разложение или
нормальные уравнения. Проще использовать нормальные уравнения. В гл. 3
мы ограничили свое внимание вещественными матрицами, но все выводы
этой главы легко переносятся и на комплексный случай. Единственное изме-
нение, которое нужно сделать, состоит в замене любого транспонирования,
скажем, В1, на комплексно сопряженное транспонирование В\ Это есть мат-
рица, транспонированная к Л, у которой все элементы вдобавок заменены
комплексно сопряженными. Выполнив такую замену в теореме 3.5.21, найдем,
что нормальные уравнения комплексной переопределенной системы Cz = Ь
имеют вид CCz = Cb. Переписав (5.3.22) как
qp = Aq, (5.3.23)
мы видим, что роль С играет q, роль z играет р, а роль Ь играет Aq. Итак, нор-
мальные уравнения для (5.3.23) суть
(/?)р = <fAq.
В действительности здесь уже только одно нормальное уравнение для одно-
го неизвестного. Его решение имеет вид
q'Aq
Р = ——
Q Q
Это число называется отношением Рэлея для q относительно матрицы А.
Мы только что доказали следующую теорему.
Теорема 5.3.24. Пусть А е С"х" и q е С”. Единственное комплексное число, ми-
нимизирующее || Aq - pq ||, есть отношение Рэлея р = qAq/qq.
В частности, если q — собственный вектор матрицы А, то отношение Рэлея
равно соответствующему собственному значению. Это следует из теоремы
5.3.24, но это легко получить и непосредственно из вида отношения Рэлея.
Два других доказательства теоремы 5.3.24 рассмотрены в упражнении 5.3.48.
Следующая теорема показывает, что отношение Рэлея для q на самом деле
является приближением собственного значения, если q является приближени-
ем собственного вектора. В теореме векторы нормированы, так что они имеют
евклидову норму 1. Это упрощает и утверждение, и доказательство теоремы,
но это лишь вопрос удобства, а не необходимости. Заметьте, что если || q ||2 = 1,
то отношение Рэлея принимает простую форму р = qAq.
Теорема 5.3.25. Пусть А е Сях” и v — собственный вектор матрицы А с соот-
ветствующим собственным значением X и || v ||2 = 1. Пусть q е Сп с || q ||2 = 1 и
р = qAq - отношение Рэлея для q. Тогда
I А - р | < 2|| А ||2|| v - q ||2.
Доказательство. Поскольку Av = Xv и || v ||2 = 1, X = v'Av. Таким образом,
X - р = v - qAq = v*Av - v Aq + v Aq - q'Aq = v A (v - q) + (v - q)*Aq. Следо-
350
Глава 5. Собственные значения и собственные векторы I
вательно, | X - р | < | у*Л(у - #)| + | (v - q)'Aq |. По неравенству Коши—Шварца
(3.2.1) | у’Л(у - ^)| < || у||2||Л(у -9) ||2 = || А(у - 9) ||2, а по теореме 2.1.24
II A(v - q) ||2 < || А ||2|| v - 9 ||2.
Поэтому | v'A(v - 9)| < || А ||2|| v-q ||2.Аналогично | (у - q)'Aq | < || А ||2|| v - q ||2.
Теорема доказана. □
Итак, если || v - q ||2 < е, то | X - р | < 2|| А ||2е. Короче говоря, если || v - q ||2 =
0(e), то | X - р | = 0(e).
Итерации с отношением Рэлея
Итерации с отношением Рэлея есть вариант обратных итераций, в которых
отношение Рэлея для каждого qj вычисляется на каждом шаге, а затем исполь-
зуется в качестве сдвига в следующей итерации. Итак, итерация с отношением
Рэлея выглядит следующим образом:
^9 /л л -> -1 .
Ру = —---> (А - р/) 4j+i = ?/. 4j + 1 = oy+l9y+I,
М,
где оу+1 есть любой подходящий масштабный коэффициент.
Поскольку на каждом шаге используются разные сдвиги, трудно выпол-
нить глобальный анализ свойств сходимости итераций с отношением Рэлея.
Алгоритм не гарантирует сходимости к собственному вектору, но опыт пока-
зывает, что неудачи бывают редко. Когда он сходится, то сходится обычно бы-
стро.Следующий пример иллюстрирует быструю сходимость итераций с отно-
шением Рэлея.
Пример 5.3.26. Снова рассмотрим матрицу
Применим итерации с отношением Рэлея, начиная с qQ = [1 1]г, чтобы вы-
числить собственный вектор матрицы А. Результат приведен в табл. 5.3.
Таблица 5.3. Итерация с отношением Рэлея
J % р (вторая компонента) 1
0 1.00000000000000 6.60000000000000
1 -0.27272727272727 8.00769230769231
2 0.22155834654310 9.09484426192450
3 0.13955130581106 9.14005316814698
4 0.14005494476317 9.14005494464026
5 0.14005494464026 9.14005494464026
5.3. Степенной метод и некоторые простые разложения
351
И здесь мы нормируем результаты каждой итерации, чтобы первые компонен-
ты равнялись 1. Легко проверить, что q5 есть собственный вектор, соответст-
вующий собственному значению р5, с 14-ю верными десятичными знаками.
Отметьте быструю сходимость: q2 не имеет верных знаков, q3 имеет (по сути)
три верных знака, a q4 имеет девять верных знаков. □
Упражнение 5.3.27. Вычислите отношения || - v || /1| fy - v ||,j = 1, 2, 3, по
табл. 5.3, где v = q5 - собственныйвектор. Обратите внимание, что с ростом j
отношения убывают поразительно быстро. □
Упражнение 5.3.27 показывает, что скорость сходимости, которую мы на-
блюдали в примере 5.3.26, быстрее линейной. Этого следовало ожидать, по-
скольку коэффициент сходимости зависит от отношения сдвинутых собствен-
ных значений, которое улучшалось от шага к шагу.
Рассмотрим более внимательно скорость сходимости обратных итераций с
отношением Рэлея. (Тем не менее, нижеследующее не стоит принимать за
строгий анализ.) Пусть (^у) - последовательность векторов, полученных в про-
цессе итераций с отношением Рэлея. Упростим анализ, предполагая, что
|| q} ||2 = 1 для всех j. Конечно, мы всегда можем воспользоваться нормировкой,
чтобы получить это. Пусть q} -> у, при j -> оо. Тогда и || vt ||2 = 1. Далее предполо-
жим, что соответствующее собственное значение \ не является кратным, и пусть
Хк обозначает ближайшее к \ собственное значение с к ф i. Так какj-я итерация с
отношением Рэлея есть просто степенная итерация с матрицей (Л - ру/)-1, то
мы знаем, что
II V,. - q}.,) ||2 « rj II V,. - q}) ||2, (5.3.28)
где г есть отношение двух собственных значений матрицы (Л - ру7)-1, наиболь-
шее по абсолютной величине. По теореме 5.3.25 отношения Рэлея ру. сходятся
к Как только ру. станут достаточно близки к двумя наибольшими собст-
венными значениями матрицы (Л - будут (\. - ру.)-1 и (kk - р)~1. Таким
образом,
fj = Id* - PyK'/d, - Ру)-1 I = 1(1; - Ру)/(1* - Ру)|.
По теореме 5.3.25 11, - ру | < 2|| А ||2|| v, - qj ||2. К тому же, поскольку ру » 1„
можно использовать приближение 11* - р, | ® 11* - 1, |. Поэтому
Ъ ® 22 I II V> ~ qJ lb = Cll Vi ~ qi II2’
|Л4 —А; |
где С = 2|| А ||2/| Хк - 1(. |. Подставляя эту оценку для г в (5.3.28), будем иметь
II V, - qj+i ||2 « C||V; -9у|Ц. (5.3.29)
Таким образом, ошибка после j + 1 итераций пропорциональна квадрату
ошибки после j итераций. Другой способ выражения этого — сказать, что если
352
Глава 5. Собственные значения и собственные векторы I
II vi ~ Qj lb = 0(£), то II vi -Qj+i II2 = 0(е2). Если £ мало, то е2 - еще меньше. Говорят,
что последовательность сходится квадратично, если ее скорость сходимости
удовлетворяет (5.3.29). Более определенно, мы говорим, что qj -> v квадратич-
но при j -> 00, если существует ненулевая постоянная С такая, что
.. Hv-?y+|ll2
lim--------——
l|v-9y II2
(5.3.30)
Сделанные выше оценки говорят, что итерация с отношением Рэлея обыч-
но сходится квадратично, если она вообще сходится.
Эмпирическое правило, о котором каждый слышал, состоит в следующем:
квадратичная сходимость означает, что число правильных цифр удваивается с
каждой итерацией. Это так, если в (5.3.29) и (5.3.30) С« 1, ибо если совпада-
ет с v, в Sj десятичных разрядах, т.е. || v, - qJ+1||2 « 10“i;, то || v,- - qj+t||2 «10"2v;;
т.е. qj+1 совпадает c vz приблизительно в ^десятичных разрядах. Даже если С* 1,
это эмпирическое правило все еще выполняется в пределе. Если С ~ 1 О', то
II vi ~ Qj+1II2 » Ю/-2^. Таким образом, qj+ j совпадает с у, приблизительно в 2sj - t
десятичных разрядах. С ростом влияние t становится все менее значимым.
Как только Sj станет достаточно большим, t можно будет не учитывать.
В примере 5.3.26 скорость сходимости, по всей видимости, выше квадра-
тичной, поскольку число верных цифр, грубо говоря, утраивается с каждой
итерацией.Это не случайность, а скорее следствие специального вида матри-
цы. Обратите внимание, что в этом примере А - вещественная симметричная
матрица. Для матриц этого вида отношение Рэлея аппроксимирует собствен-
ное значение лучше, чем предписано в теореме 5.3.25. В разд. 5.4 (упражне-
ние 5.4.33) мы увидим, что для симметричных матриц, если || v - q ||2 = 0(g), то
|| X - р ||2 = О(е2). (Обозначения те же, что и в теореме 5.3.25.) Используя эту
оценку вместо теоремы 5.3.25 для приближения гу, найдем, что тогда
II V, - 9J + 1) ||2 * c||v/ -qj lit
Это называется кубической сходимостью. Более точно, q} -> v кубически при
j -> 00, если существует постоянная С * 0 такая, что
.. Ik-?y+1ll2
lim------J-——
'^°° I|V-^||2
= С.
(5.3.31)
В этом случае число верных цифр, грубо говоря, утраивается с каждой ите-
рацией.
Упражнение 5.3.32. В примере 5.3.26 все вычисления выполнялись в соот-
ветствии с IEEE стандартом арифметики с плавающей точкой и двойной точ-
ностью, которая обеспечивает представление чисел с точностью до шестна-
дцати десятичных знаков. Если бы вычисления выполнялись с четверной точ-
ностью, сколько верных цифр в представлении итерации q} следовало бы
ожидать? □
5.3. Степенной метод и некоторые простые разложения
353
Много можно было бы сказать об отношении Рэлея в симметричном случае
такого, о чем не говорится в общем случае. Не только то, что сходимость, если
она наличествует, является кубической, но также известно, что итерации с от-
ношением Рэлея сходятся практически при любом выборе начального векто-
ра. Конечно, получаемый при этом собственный вектор зависит от выбора на-
чального вектора. К сожалению, нет простого описания этой зависимости. Де-
тали см. в [54, гл. 4].
Выполнение итераций с отношением Рэлея требует больших затрат. По-
скольку в каждой итерации используются различные сдвиги, необходимо каж-
дый раз заново выполнять L {/-разложение. При этом для полной матрицы тре-
буется О(п2) флопов на каждую итерацию, что делает метод очень дорогим. Од-
нако имеется несколько классов матриц, для которых итерация с отношением
Рэлея оказывается экономной. Например, говорят, что матрица А имеет верх-
нюю форму Хессенберга, если = 0 для любых i >j + 1. Это означает, что матри-
ца имеет почти треугольную форму
“♦****”
*****
♦ * * *
* * *
* ♦
Упражнение 5.3.33. Пусть А - верхняя матрица Хессенберга.
(а) Покажите, что L {/-разложение матрицы А (с выбором ведущего элемен-
та) может быть выполнено посредством приблизительно п2 флопов. Какую
форму имеет матрица L в данном случае?
(Ь) Покажите, что (/К-разложение матрицы А может быть выполнено с по-
мощью последовательности (п - 1)-го плоского вращения матрицы А. Пока-
жите, что общее число требуемых флопов составляет О(л2), предполагая, что
множитель Q представляется в виде произведения вращений.
(с) Если Q представить как итог произведения вращений, какую форму он
будет иметь? □
Упражнение 5.3.33 показывает, что можно применить итерации с отно-
шением Рэлея к верхней матрице Хессенберга, затратив на это лишь О(п2)
флопов на итерацию, что довольно экономно. Матрицы Хессенберга будут
играть важную роль в этой главе. В разд. 5.5 мы увидим, что задача на соб-
ственные значения для произвольной матрицы может быть сведена к задаче
нахождения собственных значений (и собственных векторов, если это нуж-
но) соответствующей верхней матрицы Хессенберга. Можно воспользовать-
ся итерациями с отношением Рэлея, чтобы выполнить обработку матрицы
Хессенберга за разумную цену. Однако мы не будем ограничиваться лишь
итерациями с отношением Рэлея. Вместо этого мы рассмотрим более эф-
фективный прием - СЛ-алгоритм, который базируется на 0Я-разложении.
Итерации с отношением Рэлея неявным образом входят в некоторые версии
0Я-алгоритма.
12 Основы матричных вычислений
354
Глава 5. Собственные значения и собственные векторы I
Упражнение 5.3.34. Пусть А =
. Напишите простую MATLAB-про-
грамму, выполняющую итерации с отношением Рэлея для матрицы А.
(а) Возьмите qQ = [1 1]гв качестве начального вектора. Выполняйте итера-
ции, пока не достигнете машинного нуля. (Воспользуйтесь опцией format
long, чтобы вывести на экран 15 цифр.) Обратите внимание, что итерации
сходятся к собственным векторам, отличным от векторов из упражнений 5.3.7
и 5.3.17. Также отметьте, что по мере приближения итераций к пределу число
правильных цифр, грубо говоря, удваивается с каждой итерацией. Это отно-
сится и к итерационному вектору, и к отношению Рэлея. Оба сходятся
квадратично.
(Ь) Еще раз выполните часть (а) с начальным вектором qQ = [1 0]г. На этот
раз итерации сходятся к тем же собственным векторам, что и в упражнениях
5.3.7 и 5.3.17. □
Упражнение 5.3.35. Выполните это упражнение с бумагой и карандашом.
Пусть задана вещественная симметричная матрица
1
О
(а) Примените итерации с отношением Рэлея к матрице А с начальным
вектором qQ = [1 0]г. Это тот исключительный случай, когда итерации с отно-
шением Рэлея не сходится.
(Ь) Вычислите собственные значения и собственные векторы каким-нибудь
другим способом и покажите, что (i) итерации qQ, q{i q2,... делят точно пополам
угол между двумя линейно независимыми собственными векторами, и что (ii)
отношения Рэлея р0, рн р2, ... лежат точно на полпути между двумя собствен-
ными значениями. Таким образом, последовательность «не может решить»,
какой собственный вектор приближать. □
Упражнение 5.3.36. Пусть
1 1
9 2
-1 2
Используйте итерации с отношением Рэлея с различными начальными
векторами, чтобы вычислить три линейно независимых собственных вектора и
соответствующие собственные значения. Можете воспользоваться MATLAB-
программой из упражнения 5.3.34. □
Дополнительные упражнения
Упражнение 5.3.37. Пусть каждая из следующих последовательностей поло-
жительных чисел сходится к нулю. Для каждой последовательности (а) явля-
ется ли ее сходимость (i) медленнее линейной (т.е. Пту^00ау+1/а/ = 1), (ii) ли-
5.3. Степенной метод и некоторые простые разложения
355
нейной (т.е. О < lim^^a,^/ а} = г< 1), (iii) квадратичной (т.е. О <
= С* 0), или (iv) кубической (т.е. 0 < limy«Лу+j/aJ = С* 0)?
(а) 101, 10-2, 10~3, 10-4, 10~5, ...
(Ь) 101, 102, ЮЛ ЮЛ 10’16, ...
(с) 1, 1/2, 1/3, 1/4, 1/5, ...
(d) IO'3, IO"6, IO’9, IO"12, IO"15, ...
(e) 0.9, 0.81, 0.729, (0.9)4, (0.9)5, ...
(f) IO"1, 10“3, IO’9, IO"27, IO"81, ...
Заметьте, что квадратичная и кубическая сходимости качественно лучше
линейной. Но и линейная сходимость может оказаться вполне удовлетвори-
тельной, если коэффициент сходимости г достаточно мал. Сходимость хуже
линейной - очень медленная. □
Упражнение 5.3.38. Цель настоящего упражнения показать, что квадратич-
ная сходимость почти также хороша, как и кубическая. Пусть алгоритм X по-
рождает такую последовательность (^у), что \\qj - vz || = яу -> 0 квадратично.
Определите новый алгоритм Y как такой,что один его шаг состоит из двух
шагов алгоритма X. Тогда Y порождает последовательность (^у), для которой
|| - Vi || = bj = a2j. Докажите, что сходимость bj -> 0 четвертого порядка, т.е.
limy^e, bj^Jbj = М*0). Таким образом, сходимость метода /быстрее куби-
ческой. □
Упражнение 5.3.39. Пусть qj -> v линейно с коэффициентом сходимости г.
Покажите, что на каждой итерации число правильных десятичных цифр
возрастает приблизительно в т = -logl0/* раз. (Строгое доказательство не тре-
буется.) Таким образом, скорость возрастания числа правильных цифр по-
стоянна. □
Упражнение 5.3.40. Жители Пулбурга посещают бакалейные магазины с но-
мерами 1, 2 и 3 точно раз в неделю. Они не являются приверженцами какого-
то одного магазина - часто они их меняют. Для ij =1,2,3 положим ру -число
между 0 и 1, обозначающее долю жителей, делающих закупки в магазине j в те-
чение данной недели, которые на следующей неделе будут пользоваться мага-
зином /. Его можно рассматривать как вероятность, что на следующей неделе
данный покупатель от магазина j перейдет к магазину i . Эти числа можно
представить в виде матрицы Р Пусть ру для Пулбурга принимают следующие
значения:
’0.63 0.18 0.14'
0.26 0.65 0.31
0.11 0.17 0.55
Поскольку р23 = .31, то 31 процент жителей, на этой неделе покупавших
вмагазине 3, на следующей неделе будут делать закупки в магазине 2. Пятьде-
сят пять процентов жителей, пользовавшихся магазином 3, останутся его кли-
ентами и на следующей неделе, и т.д. Обратите внимание, что сумма элемен-
тов каждого столбца матрицы Р равна единице.
356
Глава 5. Собственные значения и собственные векторы I
(а) Матрица Р е Клхл, элементы которой неотрицательны и при суммиро-
вани каждого столбца дают 1, называется стохастической. Если в Пулбурге п
магазинов, то вероятности ру образуют п х л-матрицу. Покажите, что незави-
симо от того, каковы вероятности, результирующая матрица Р е ВГХЛ должна
быть стохастической. Покажите, что wTP= wT, где wT = [1, 1, ..., 1], и 1 являет-
ся собственным значением матрицы Р (Мы называем wl левым собственным
вектором матрицы.) Теория Перрона-Фробениуса о неотрицательных мат-
рицах ([42], [46]) гарантирует, что если все (или «достаточное число») ptj
строго положительны, то 1 является доминирующим собственным значением
матрицы Р
(Ь) Пусть qk е К3 - вектор с компонентами, представляющими собой доли
жителей Пулбурга, делающих покупки в магазинах 1, 2 и 3 соответственно в
течение k-й недели. Например, если ^20 = [0.24 0.34 0.42], то в течение 20-й не-
дели 24% населения делают покупки в магазине 1, 34% - в магазине 2 и 42% -
в магазине 3. Покажите, что
^+I = Pqk (5.3.41)
для всех к. Последовательность (qk) называется цепыо МарковаУрътыж
(5.3.41) показывает, что марковскую цепь можно вычислить с помощью сте-
пенного метода с переходной матрицей Р и масштабирующим коэффициен-
том, равным 1.
(с) Предполагая, что в первую неделю в каждом из магазинов делала покуп-
ки ровно треть населения, определите повторным применением марковского
процесса (5.3.41), какая часть жителей посещала магазины в последующие не-
дели. Выполните необходимые вычисления с помощью MATLAB’a. Каков
долгосрочный прогноз?
(d) Как можно определить долгосрочный прогноз без использования мар-
ковской цепи? Воспользуйтесь MATLAB-командой eig, чтобы определить
прогноз без ее помощи.
(е) Вычислите отношение | Xj/X, |, чтобы определить скорость, с которой
векторы недельного состояния qk сходятся к предельному значению. □
Упражнение 5.3.42. Стохастические матрицы, введенные в предыдущем уп-
ражнении, дают пример класса матриц, для которых доминирующее собствен-
ное значение заметно превосходит все другие.
(а) Сгенерируйте случайную стохастическую 20 х 20-матрицу. Например,
Р = rand(20);
Р = P*inv(diag(sum(Р,1)));
Первая команда (rand, не randn) порождает матрицу со случайными
(неотрицательными) элементами, равномерно распределенными на [0, 1].
Вторая команда перемасштабирует столбцы, деля каждый элемент столбца
на их сумму в этом столбце. Убедитесь, что полученная матрица действи-
тельно стохастическая. Вычислите собственные значения и отношение
I х2/X, I ( = тах|Х|).
5.3. Степенной метод и некоторые простые разложения
357
(Ь) Исходя из случайного начального вектора q = rand (20,1), вычисли-
те один за другим нужное число элементов марковской цепи (#у), чтобы убе-
диться,что она сходится достаточно быстро. □
Упражнение 5.3.43. Это упражнение должно убедить вас, что если вектор q
выбран случайно, то в разложении
Ч = <^1 + сгуг + ... + cnvn
коэффициент с{ почти всегда отличен от нуля.
(а) Рассмотрите случай R2. Пусть и у2— два линейно независимых вектора
в R2. Множество всех векторов q = qvj + c2v2 таких, что Cj = 0, есть просто под-
пространство span{v2}. Сделайте набросок этого подпространства и обратите
внимание, что это очень небольшое подмножество в 1R2. Случайно выбранный
вектор почти наверняка не попадет в него.
(Ь) Проделайте сказанное в части (а) для R3.
В общем случае любое собственное подпространство является очень не-
большим подмножеством большего пространства, в котором оно лежит. □
Упражнение 5.3.44. Покажите, что последовательность (#у) = (Aq по-
рожденная степенным методом, линейно сходится к qV| с коэффициентом
СХОДИМОСТИ Г = | Х2/Х! | при УСЛОВИИ, ЧТО I 1| | > | Х21 > | Х31, с{ ф 0 и с2 ф О1. □
Упражнение 5.3.45. Что произойдет, если степенной метод будет выпол-
няться с начальным вектором q = + c2v2 + ... + cnvn при cl = 0, когда
(а) арифметические операции выполняются точно?
(Ь) вычисления выполняются с ошибками округления? □
Упражнение 5.3.46. Пусть к матрице А е С"х” применяется степенной метод,
использующий некую стратегию масштабирования, порождающую последова-
тельность (^у), которая сходится к доминирующему собственному вектору. До-
кажите,что последовательность масштабирующих множителей (оу) сходится к
доминирующему собственному значению. □
Упражнение 5.3.47. Пусть А е С1хп — матрица с собственными значениями
X и р. такими, что X ф ц. Предположим, что р не является собственным зна-
чением матрицы А.
(а) Покажите, что || А - р/1| > | X - р |, где ||. || обозначает индуцированную
матричную норму.
(Ь) Покажите, что к(Л - р/) > | X - р |/| ц - р |, где к обозначает число обу-
словленности относительно любой индуцированной матричной нормы.
(с) Пусть (ру) - последовательность сдвигов такая, что ру -> ц. Докажите,
что А - р/-> оо при j -> оо. □
Упражнение 5.3.48. Докажите теорему 5.3.24 двумя разными способами.
(а) Воспользуйтесь комплексным 0Л-разложением с q е Cwxl, чтобы дока-
зать, что коэффициент Рэлея минимизирует || Aq - pq ||2. (Множитель Q в QR-
разложении удовлетворяет условию = /.)
1 Можно построить примеры, когда | Х2| = | Х3| и не выполняется (5.3.4). Однако для них спра-
ведливо (5.3.3). См. упражнение 5.3.11.
358
Глава 5. Собственные значения и собственные векторы I
(Ь) В предположении, что р = а + р/, функция
Да,Р) = ||Л?-рд|Ц = (Aq - pq, Aq - р)
есть гладкая функция двух вещественных переменных а и р. С помощью диф-
ференциального исчисления покажите, что f минимизируема тогда и только
тогда, когда р = а + р/ есть коэффициент Рэлея. □
Упражнение 5.3.49. Пусть А =
а
—Ь
,гд£О)Ь g R и i * 0. Выполните итерации
а
с отношением Рэлея и начальным вектором ^0 = [с^/],гдеси^е]йис2 + б/2=1.
Проанализируйте эту задачу. □
5.4. Преобразования подобия
Две матрицы А и В е Сп*п называются подобными, если существует невырож-
денная матрица S такая, что
В = S~XAS. (5.4.1)
Выражение (5.4.1) определяет подобное преобразование, a S называется пре-
образующей матрицей. Очевидно, выражение (5.4.1) эквивалентно
AS = SB. (5.4.2)
Эту его форму часто легче использовать.
Как мы увидим, подобные матрицы имеют одни и те же собственные зна-
чения, а их собственные векторы связны между собой простым образом. Не-
которые из наиболее важных методов решения задач на собственные значе-
ния используют последовательности подобных преобразований для приведе-
ния матрицы к более простому виду. Т.е. они заменяют исходную матрицу
подобной, для которой собственные значения находятся очевидным образом
или же очень легко. Для подготовки к восприятию таких алгоритмов в этом
разделе приводится несколько основных фактов о подобных преобразовани-
ях. По ходу дела мы рассмотрим важный материал о специальных классах та-
ких матриц, как симметричные и ортогональные матрицы и их комплексные
аналоги.
Теорема 5.4.3. Подобные матрицы имеют одни и те же собственные зна-
чения.
Доказательство. Пусть матрицы Ли В подобны. Тогда существует такая не-
вырожденная матрица S, что В = S~'AS. Чтобы убедиться, что Ак В имеют одни
и те же собственные значения, достаточно показать, что у них один и тот же
характеристический многочлен. Итак, V- В - S~X\IS- ^XAS = S~x(kl- A )S, так
что det(V- В) = det(5"I)det(V-Л)ёе1(5) = det(V- А). Чтобы получить послед-
5.4. Преобразования подобия
359
нее равенство, мы воспользовались тем, что умножение комплексных чисел
коммутативно и det(5"’)det(5) = 1. Таким образом, А и В имеют один и тот же
характеристический многочлен. □
Это доказательство показывает, что преобразование подобия сохраняет ал-
гебраическую кратность собственных значений, т.е. если ц — корень порядка к
уравнения det(X7 - А) = 0, то он также будет корнем уравнения det(X7 - В) = О
порядка к. Следующая теорема показывает, как преобразуется собственный
вектор.
Теорема 5.4.4. Пусть В = S^AS. Тогда v есть собственный вектор матрицы А
с собственным значением X, тогда и только тогда, когда S~lv является собствен-
ным вектором матрицы В с тем же собственным значением X.
Доказательство. Предположим, что Av= Xv. Тогда B(S~lv) = S~lASS~lv =
= у ’Xv = XGV’v). Таким образом, B(5T]v) = Х(5”’у). Обратно, если В($ ’у) = Х(У *v),
то подобным же образом легко получить, что Av = Ху. □
Упражнение 5.4.5. Пусть D — произвольная диагональная матрица. Найдите
множество п линейно независимых собственных векторов матрицы D и таким
образом покажите, что D — полупростая матрица. □
Следующая теорема показывает, что матрица является полупростой, тогда
и только тогда, когда она подобна диагональной матрице.
Теорема 5.4.6. Пусть А е CrtXrt — полупростая матрица с линейно независимы-
ми собственными векторами у15 у2, у„ и собственными значениями Xj , Х2,Хя.
Определим диагональную матрицу D и невырожденную матрицу Vкак D - diag{X},
..., Х„} и У= [уи ..., уД. Тогда V[AV~ D. Обратно, предположим, что А удовлетво-
ряет условию V~}AV- D, где D - диагональная, а V — невырожденная матрицы.
Тогда столбцы матрицы V являются линейно независимыми собственными век-
торами матрицы А, а элементы главной диагонали матрицы D — соответствую-
щими им собственными значениями. В частности, А — полупростая матрица.
Упражнение 5.4.7. Докажите теорему 5.4.6. Вместо D - V~lAVрассмотрите
более простое соотношение AV = VD.
(а) Пусть А — полупростая матрица, a D и V те же, что и выше. Покажите,
что из равенств Avt = у,Х,-, i = 1, ..., п, следует, что AV = VD.
(Ь) Обратно, покажите, что из равенства AV = VD следует, что Av, = vfkh
i = 1, ..., п. □
В теореме 5.4.6 рассматриваются полупростые матрицы. Приложив значи-
тельные усилия, можно получить расширение теоремы 5.4.6, имеющее силу
для любых матриц. См. обсуждение жордановой канонической формы в [29],
[42] и [46].
Теорема 5.4.6 говорит нам, что мы можем полностью решить задачу на соб-
ственные значения, если найдем преобразование подобия, приводящее матри-
цу Л к диагональному виду. К сожалению, доказательство этой теоремы не-
конструктивно: в нем не приводится способ построения D и V в случае, если
собственные значения и собственные векторы заранее неизвестны. Однако
теорема подсказывает простой путь к этому. Например, можно попытаться по-
строить последовательность подобных матриц А = Ло, А}, Л2, ..., которые будут
сходиться к матрице диагональной формы.
360
Глава 5. Собственные значения и собственные векторы I
Оказывается, что мы можем выполнить эту программу для некоторых
классов матриц, но в общем случае это невозможно. Прежде всего, нель-
зя ожидать успеха, если матрица дефектная. Даже если матрица полупро-
стая, соответствующая матрица собственных векторов матрицы V может
оказаться плохо обусловленной, что не менее плохо. Преобразования по-
добия посредством плохо обусловленных матриц могут привести к пагуб-
ному росту ошибок.
Геометрическая точка зрения на полупростые матрицы
Из основ линейной алгебры известно, что каждая матрица А е С'*п мо-
жет рассматриваться как линейное преобразование, отображающее х е С”
в Ах е Сп. Если А — полупростая, то легко представить ее воздействие на
С”. А имеет множество п линейно независимых собственных векторов
Vi, ..., vn, которые образуют базис в С". Каждый вектор х е Сп можно
представить в виде линейной комбинации х = + ... + cnvn. Действие А
на каждый вектор c,v( сводится просто к умножению его на скаляр а
действие А на вектор х есть сумма этих простых действий: Ах = X1civl +
+ X2c2v2 + ... + kncnvn.
Теорема 5.4.6, по сути, есть другая формулировка этого утверждения в
матричной форме. Постараемся пояснить это, не входя в детали. Снова
вспомним из элементарного курса линейной алгебры, что линейное преоб-
разование А: С" -> С" можно представить различными способами. Для дан-
ного базиса в С” существует единственная матрица, представляющая А отно-
сительно этого базиса. Две матрицы представляют одно и то же линейное
преобразование (относительно разных базисов) тогда и только тогда, когда
они подобны. Таким образом, преобразование подобия равносильно просто
изменению базиса, т.е. изменению системы координат. Теорема 5.4.6 гово-
рит, что если А — полупростая матрица, то существует система координат, в
которой соответствующее преобразование представляется диагональной мат-
рицей. Эта координатная система в качестве осей имеет собственные векто-
ры матрицы А.
Унитарные преобразования подобия
В гл. 3 мы ввели ортогональные матрицы и отметили, что они имеют мно-
го полезных свойств. Комплексными аналогами ортогональных матриц явля-
ются унитарные матрицы, введенные в той же гл. 3. Напомним, что матрица
U е С*п унитарна, если ifU-/, т.е. If = U~\ Класс унитарных матриц содер-
жит (вещественные) ортогональные матрицы. В упражнениях с 3.2.51 по
3.2.59 было установлено, что: (1) Произведение унитарных матриц унитарно.
(2) Матрица, обратная унитарной, унитарна. (3) Комплексное внутреннее
произведение (х, у} = ух и евклидова норма сохраняются при унитарных пре-
образованиях, т.е. {Ux, Uy} = (у, х) и || Ux ||2 = || х ||2 для всех*, у е С". (4) Враще-
ния и отражения имеют комплексные аналоги. (5) Каждую матрицу А е Сп*п
5.4. Преобразования подобия
361
можно представить в виде произведения А = QR, где Q - унитарная, a R -
верхняя треугольная матрицы. Было также установлено (упражнение 3.4.37),
что матрица U е Спхп унитарна, тогда и только тогда, когда ее столбцы орто-
нормированы. Конечно, ортонормированы относительно комплексного
внутреннего произведения.
Две матрицы А, В е С"хл унитарно подобны, если существует унитарная мат-
рица U е Cwxw такая, что В = AIL Поскольку U~x = If, соотношение подобия
можно также представить в виде В = IfAU. Если А, В и U — все вещественные,
то U ортогональна, и поэтому говорят, что А и В ортогонально подобны. Уни-
тарные преобразования подобия обладают некоторыми полезными свойства-
ми, которых нет в общем случае.
Упражнение 5.4.8.
(а) Покажите, что если матрица U унитарна, то || 471|2 = 1 и к2([/) = 1.
(Ь) Покажите, что если А и В унитарно подобны, то || В ||2 = || А ||2 и
к2(Л) = к2(В).
(с) Пусть В = 1/AU, где Uунитарна. Покажите, что если матрица А слегка
возмущена, то результирующее возмущение В будет иметь ту же величину.
Особо покажите, что если (В + 8В) = 47*(Л + 5Л) 4/, то || 8В ||2 = || ЗЛ ||2. □
Это упражнение показывает, что любые ошибки, содержащиеся в матрице,
не будут усилены последующими унитарными преобразованиями подобия.
Этого нельзя сказать о произвольных преобразованиях подобия (упражнения
5.4.27 и 5.4.28).
Результаты упражнения 5.4.8 связаны с результатами разд. 3.2, где мы пока-
зали, что алгоритмы, использующие хорошо обусловленные матрицы преоб-
разований, в частности, вращения и отражения, обратно устойчивы по норме.
Эти результаты выполняются и для унитарных матриц. Так, все алгоритмы,
сводящиеся к выполнению последовательных преобразований с помощью
унитарных матриц (и, в частности, комплексных аналогов отражений и пло-
ских вращений) обратно устойчивы по норме. Вдобавок к важному свойству
нераспространения ошибок унитарные преобразования подобия также сохра-
няют некоторые желательные структурные свойства матрицы. Для примера
рассмотрим следующую теорему. (Другие примеры см. в упражнениях от 5.4.35
до 5.4.41.)
Теорема 5.4.9. Если А = А* и А унитарно подобна В, то В - В\
Доказательство. Так как В = IfAUдля некоторой унитарной матрицы U, мы
имеем B' = (lfAUf = If A* If* = If A U= В. □
Упражнение 5.4.10. Покажите на примере, что заключение теоремы 5.4.9 не
выполняется для общего преобразования подобия. □
Вспомним, что матрица, для которой А = А\ называется эрмитовой .
Следовательно, теорема 5.4.9 устанавливает, что свойство эрмитовости со-
храняется при унитарных преобразованиях подобия. Если считать, что в
теореме 5.4.9 все матрицы вещественные, то увидим, что если А - вещест-
венная и симметричная, а В ортогонально подобная, то В также будет сим-
метричной. Другими словами, свойство симметричности сохраняется при
ортогональных преобразованиях подобия. Задачи на собственные значения
с симметричными матрицами коэффициентов часто появляются в приложе-
362
Глава 5. Собственные значения и собственные векторы I
ниях. Так как симметричные и эрмитовы матрицы обладают особыми свой-
ствами, облегчающими работу с ними в сравнении с общими матрицами,
полезно иметь под рукой класс преобразований подобия, которые сохраня-
ли бы эти свойства.
Следующий результат, теорема Шура, является наиболее важным для на-
стоящего раздела. Она устанавливает, что любая (квадратная) матрица унитар-
но подобна треугольной.
Теорема 5.4.11 (теорема Шура). Пусть А е C"xw. Тогда существуют уни-
тарная матрица U е и верхняя треугольная матрица Т е Спхп такие,
что Т = IfAU.
Можно записать это в эквивалентной форме А - UTlf, которая называется
разложением Шура матрицы А.
Доказательство. Проведем доказательство индукцией по п. Для п = 1 резуль-
тат тривиален. Теперь покажем, что теорема будет выполняться при п - к, если
она выполняется при п = к - 1. Пусть Л е Скхк, X — собственное значение мат-
рицы А и v — соответствующий собственный вектор с || v ||2 = 1. Пусть также
U{ — некая унитарная матрица, первый столбец которой есть v. Таких матриц
много: просто возьмем любой ортонормированный базис в Ск, первым векто-
ром которого является ц и в качестве U{ возьмем матрицу, столбцами которой
являются члены этого базиса. Пусть W е С*"** ~ ° обозначает подматрицу мат-
рицы Ux, состоящую из столбцов со 2 по к, так что Ux = [v WJ. Так как столбцы
матрицы W ортогональны у, то Wv = 0. Пусть Ах = U(AU{. Тогда
Л, =
A[v W] =
v Av v AW
W*Av W*AW
Из Av = Xv следует, что vAv = X и WAv = XWv = 0. Пусть В - WAW Тогда Л1
имеет вид
Л] -
Л е С(к 1)х(*“ ° , так что теперь по индуктивной гипотезе существуют унитарная
матрицаU2 и верхняя треугольная матрица f такие, что f -U2AU2. Опреде-
лим U2 е Скхк следующим образом:
5.4. Преобразования подобия
363
Итак, U2 - унитарна и матрица
является верхней треугольной. Обозначим ее через Ти положим U = U{U2. То-
гда T=U2A{U2 = U2U{AUxU2 = If AU. □
Элементы главной диагонали матрицы Т суть собственные значения мат-
рицы А. Таким образом, если мы можем найти унитарное преобразование по-
добия U, приводящее А к верхней треугольной форме, то мы найдем и собст-
венные значения матрицы А. К сожалению, доказательство теоремы Шура не-
конструктивно: оно не дает рецепта вычисления U без предварительного зна-
ния собственных векторов. Тем не менее, теорема дает основание надеяться,
что мы будем в состоянии построить алгоритм, порождающий последователь-
ность унитарно подобных матриц А = Ло, А2,..., которые сходятся к матрице
верхней треугольной формы. И в самом деле, существует алгоритм, который в
основном это делает, а именно, £?Я-алгоритм, который мы введем в разд. 5.6.
Из равенства Т= IfAUлегко следует, что первый столбец матрицы U обяза-
тельно является собственным вектором матрицы А (безотносительно к способу
получения U и 7). В самом деле, перепишем наше равенство в виде AU = UT м
сравним первые столбцы. Первый столбец матрицы AUесть Аи{, где обознача-
ет первый столбец матрицы U. Он должен совпадать с первым столбцом матри-
цы UT, который равен u{tn. Таким образом, Аи{ = а это означает, что щ есть
собственный вектор матрицы А с соответствующим собственным значением /п.
В общем случае остальные столбцы матрицы U не являются собственными век-
торами матрицы А. Выделение других собственных векторов требует несколько
большей работы. См. упражнение 5.4.31 и раздел 5.8.
Теорема Шура по духу сопоставима с теоремой 5.4.6, которая устанавлива-
ет, отчасти, что каждая полупростая матрица подобна диагональной. Теорема
Шура более сдержанна в этом смысле, поскольку треугольная форма не столь
проста и элегантна, как диагональная форма в теореме 5.4.6. С другой сторо-
ны, теорема Шура справедлива для всех матриц, а не только для полупростых.
Более того, поведение унитарных преобразований подобия из теоремы Шура с
вычислительной точки зрения вполне приемлемо.
Классом матриц, к которым одновременно применимы и теорема Шура, и
теорема 5.4.6, являются матрицы Эрмита. Если А - эрмитова матрица, то мат-
рица Т= If AU— не только верхняя треугольная, но к тому же и эрмитова (теоре-
ма 5.4.9). Отсюда очевидным образом следует, что Тесть диагональная матрица.
Этот результат известен как спектральная теорема для эрмитовых матриц.
Теорема 5.4.12 (спектральная теорема для эрмитовых матриц). Пусть
А е С”х” — эрмитова матрица. Тогда существуют унитарная матрица U еСихи и
диагональная матрица D е К”™ такие, что D = If AU. Столбцы матрицы U явля-
ются собственными векторами, а элементы главной диагонали матрицы D — соб-
ственными значениями матрицы А.
364
Глава 5. Собственные значения и собственные векторы I
Можно записать это как Л = UDlf и получить спектральное разложение мат-
рицы А.
Что столбцы матрицы Uявляются собственными векторами, следует из по-
следней части теоремы 5.4.6. Диагональная матрица вещественна, поскольку
D = D\ Это доказывает, что собственные значения эрмитовой матрицы - ве-
щественные числа.
Следствие 5.4.13. Собственные значения эрмитовой матрицы вещественны.
В частности, это так для вещественной симметричной матрицы.
Следствие 5.4.14. Каждая эрмитова матрица в Спхп имеет множество из п
ортонормированных собственных векторов.В частности, каждая эрмитова мат-
рица является полупростой.
Существуют и другие классы матриц, для которых выполняются спектраль-
ные теоремы, аналогичные теореме 5.4.12. Матрица называется косоэрмитовой
{эрмитовой кососимметричной), если Л* = -Л. Мы уже знакомы с унитарными
матрицами, удовлетворяющими условию Л* = Л1, или, что эквивалентно,
Л*Л = ЛЛ* = /. Матрица называется нормальной, если Л*А = ЛЛ*. Спектральные
теоремы для этих классов матриц рассмотрены в упражнениях 5.4.39-5.4.41.
Класс нормальных матриц интересен, по крайней мере, по двум причинам.
Во-первых, он содержит все эрмитовы, косоэрмитовы и унитарные матрицы,
так что любым свойством нормальных матриц обладают и все матриц этих
классов.Более того, это именно тот класс матриц, для которого справедлива
спектральная теорема. Следующая теорема утверждает, что матрица унитарно
подобна диагональной, тогда и только тогда, когда она нормальная.
Теорема 5.4.15 (спектральная теорема для нормальных матриц). Пусть
А е С"х”. Тогда А нормальна тогда и только тогда, когда существую такие уни-
тарная U е Спхп и диагональная D е Спхп матрицы, что D = IfAU.
Эта теорема доказывается в упражнении 5.4.41.
Следствие 5.4.16. (а) Пусть А е Спхп — нормальная матрица. Тогда А имеет
множество п ортонормированных собственных векторов.
(Ь) Обратно, если матрица А е Спхп имеет множество п ортонормированных
собственных векторов, то А является нормальной.
Упражнение 5.4.17. Проверьте следствие 5.4.16. □
Следствие 5.4.18. (а) Каждая нормальная матрица является полупростой.
(Ь) Каждая косоэрмитова матрица имеет множество п ортонормированных
собственных векторов. В частности, каждая косоэрмитова матрица является
полупростой.
(с) Каждая унитарная матрица имеет множество п ортонормированных собст-
венных векторов. В частности, каждая унитарная матрица является полупростой.
Вещественные матрицы
Если нужно решать общую задачу на собственные значения, нам придется
иметь дело с комплексными числами, даже если матрицы вещественные. Име-
ется, однако, один важный класс матриц, для которых можно полностью ре-
шить задачу на собственные значения, не выходя за границы системы вещест-
венных чисел, а именно класс симметричных матриц.
5.4. Преобразования подобия
365
Теорема 5.4.19 (спектральная теорема для вещественных симметричных
матриц). Пусть А е К"4”— симметричная матрица. Тогда существуют ортого-
нальная матрица U е Ляхя и диагональная матрица D е ЯГ4” такие, что D= If AU.
Доказательство. Доказательство проведем индукцией по п. Оно аналогично
доказательству теоремы Шура, за исключением того, что матрицы теперь ве-
щественные и можно использовать симметричность. Поэтому дадим лишь на-
бросок доказательства.
Пусть X — некоторое собственное значение матрицы А. Поскольку X веще-
ственное, ему соответствует вещественный собственный вектор v, который
можно выбрать так, чтобы || v ||2 = 1. Пусть Ux — вещественная ортогональная
матрица, первым столбцом которой является вектор v, и пусть = UXTAUX. То-
гда At есть вещественная и симметричная матрица и (как и в доказательстве
теоремы Шура)
Так как А е R(w “1)х(л ~1) - симметричная матрица, то можно сделать индук-
тивное предположение, что существуют ортогональная матрица U2 и диаго-
нальная матрица D такие, что D = U2AU2. Пусть
и U— Ux U2. Тогда U — ортогональная матрица и D = IfAU. □
Упражнение 5.4.20. Проведите детальное доказательство теоремы 5.4.19. □
Следствие 5.4.21. Пусть А е К”™ — симметричная матрица. Тогда А имеет
множество п вещественных ортонормированных собственных векторов.
Работая с несимметричными матрицами, мы должны быть готовы иметь
дело с комплексными числами. Тем не менее, их использование откладывает-
ся здесь на как можно более позднее время, поскольку комплексная арифме-
тика выполняется намного медленнее вещественной. Но оказывается, что
можно привести матрицу к почти треугольному виду без использования ком-
плексных чисел.
Матрица Т е Кяхя называется квазитреугольной, если она имеет вид блочной
треугольной матрицы
^11 ^12 Т\т
0 ^22 Т2т
366
Глава 5. Собственные значения и собственные векторы I
где каждый блок на главной диагонали имеет размеры 1 х 1 или 2x2, причем
каждый 2 х 2-блок имеет комплексные собственные значения. Таким образом,
1 х 1-блоки соответствуют вещественным собственным значениям матрицы Т
а 2 х 2-блоки соответствуют комплексно сопряженным парам собственных
значений. Собственные значения 2 х 2-матрицы вычислить нетрудно. Надо
лишь аккуратно применить формулу для корней квадратного уравнения к ее
характеристическому уравнению. Теорема Винтнера-Мурнагана, известная
также как вещественная теорема Шура, гласит, что каждая матрица в Rnx" ор-
тогонально подобна квазитреугольной матрице.
Теорема 5.4.22 (Винтнер-Мурнаган). Пусть A gR”x". Тогда существуют ор-
тогональная матрица U g и квазитреугольная матрица Т g R”4” такие,
что Т= IfAU.
Доказательство подобно доказательству теоремы Шура за исключением
того, что порядок уменьшается на два каждый раз, когда встречается пара ком-
плексных собственных значений. См. упражнения 5.4.47 или 6.1.11.
В случае симметричной матрицы А теорема Винтнера-Мурнагана сводится
к теореме 5.4.19. Другими классами вещественных матриц, для которых теоре-
ма Винтнера-Мурнагана принимает более простую форму, являются косо-
симметричные (АГ = -А), ортогональные (Аг = А~1) и нормальные (АГА - АА7)
матрицы. См. упражнения с 5.4.48 по 5.4.51.
Дополнительные упражнения
Упражнение 5.4.23. MATLAB-команда [V, D] = eig(A) порождает диаго-
нальную матрицу D, у которой элементы главной диагонали являются собст-
венными значениями матрицы А. Соответствующие собственные векторы об-
разуют столбцы матрицы V. Матрицы удовлетворяют соотношению AV= VD.
Обычно И невырожденна и D = V~lAV, как в теореме 5.4.6. Однако это невоз-
можно, если только А не является полупростой. Примените MATLAB-команду
eig к дефектной матрице
2
О
1
2
О
2
О
А = О
О
и прокомментируйте получившийся результат. □
Упражнение 5.4.24. Геометрическая кратность собственного значения оп-
ределяется как размерность соответствующего собственного подпространства
{v g С” | Av= Xv}. Покажите, что преобразование подобия сохраняет геометри-
ческую кратность каждого собственного значения. □
Упражнение 5.4.25. Пусть А — полупростая матрица. Как связаны между со-
бой геометрическая и алгебраическая кратности? Вспомните, что алгебраиче-
ская кратность собственного значения X равна кратности X как корня характе-
ристического уравнения. □
Упражнение 5.4.26. Пусть матрица А подобна В. Покажите, что если А не-
вырожденна, то В также невырожденна, а Л"1 подобна В~\ □
5.4. Преобразования подобия
367
1 а
О 1
Упражнение 5.4.27. Пусть S =
, где а — вещественный параметр.
2 О
О 1
(а) Пусть А =
и В = Вычислите В и покажите, что || Вможно
сделать как угодно большой, если взять достаточно большое а (То же верно и
для || В ||2. Мы здесь используем oo-норму лишь для удобства.)
Е Г1 Г
2 1 1
(Ь) Пусть А =
и ЗЛ = -
. Обратите внимание,что || ЗЛ Ц* /1| A = е .
1 О
О 1
Пусть В = 5_,Л5, а В + 8В = S~l(A + 8Л)5. Вычислите В и 8В и покажите, что
|| 8В1^ /1| В lb можно сделать как угодно большим, взяв большое а Заметьте, что
данный пример являет собой еще более экстремальный случай, чем рассмот-
ренный в части (а), поскольку || 8 Л ||^ (асимптотически) пропорциональна
а2, а не а □
Упражнение 5.4.28. Пусть В = S~lAS и Л + ЗЛ = 5м (Л + 8А)5. Покажите, что
(а)Л-||Л||<||5||<к(5)||Л||.
(Ь)
1 Ц8ХН < ||5Д|| 2 Ц&4Ц
k(S)2 1И1 - ||5|| - ||Л||’
где ||. || обозначает любую матричную норму, а к означает число обусловленно-
сти, соответствующее этой норме. Заметьте, что результаты частей (Ь) и (с) уп-
ражнения 5.4.8 являются частными случаями этих результатов. □
Упражнение 5.4.29. Пусть v е С" - любой вектор, отличный от нуля. Пока-
жите, как построить (комплексное) отражение, у которого первый столбец
пропорционален v. Такое отражение может играть роль в доказательстве
теоремы Шура. □
Упражнение 5.4.30. Покажите, что в теореме Шура
(а) Тможно выбрать так, что собственные значения матрицы А появятся на
главной диагонали матрицы Т в любом желаемом порядке.
(b) U можно выбрать так, чтобы ее первый столбец был равным любому же-
лаемому собственному вектору матрицы А, для которого || v ||2 = 1. (Указание:
Покажите, что в доказательстве теоремы Шура первый столбец матрицы U{ ра-
вен первому столбцу матрицы U.) □
Упражнение 5.4.31. Пусть Т е С™ — верхняя треугольная матрица с разными
собственными значениями. Сделайте набросок алгоритма, который вычисляет
множество из п линейно независимых собственных векторов матрицы, решая
уравнения вида (X/ - T)v = 0. Сколько флопов придется затратить на выполне-
ние всей работы? Какие трудности могут возникнуть, если некоторые собствен-
ные значения будут кратными? Мы рассмотрим это упражнение в разд. 5.8. □
Упражнение 5.4.32. Пусть А е Спхп - дефектная матрица. Воспользуйтесь
теоремой Шура и покажите, что для каждого г > 0 существует полупростая
матрица Л£ е Спхп такая, что || А - Ае ||2 < г. Таким образом, множество полупро-
стых матриц всюду плотно в Спхп. □
368
Глава 5. Собственные значения и собственные векторы I
Упражнение 5.4.33. В разд. 5.3 утверждалось, что для вещественных симмет-
ричных матриц отношение Рэлея дает особенно хорошее приближение для со-
ответствующего собственного значения. В этом упражнении проверьте это ут-
верждение на эрмитовых матрицах. Пусть А е Слхл - эрмитова матрица и
q е С - вектор, удовлетворяющий условию || q ||2 = 1, который аппроксимирует
собственный вектор v матрицы А. Предположим также, что и || v ||2 = 1. Согласно
следствию 5.4.14 Л имеет п ортонормированных собственных векторов vh ..., vn
с соответствующими собственными значениями Хь ..., Х„. Можно выбрать vb ..., vn
так, что = v. Соответствующее приближение собственного вектора q можно
представить в виде линейной комбинации векторов v1?..., vn: q = = Cjv, + ... + c„v„.
n
(а) Покажите, что £|cj2 = ||^||| = 1.
*=i
n
(b) Покажите, что ^\ck |2< ||vj -^||2.
k=2
(с) Получите выражение отношения Рэлея р = q'Aq через коэффициенты с,
и собственные значения X,-.
(d) Покажите, что || Xt - р || < ||у, -^||2, где С = max| Xj - Xk |. (Указание:
п 2£к£п
= I2 •)
к = \
Таким образом, если || Vj - q ||2 = 0(e), то | Xj - р | = 0(е2). □
Упражнение 5.4.34. Используя отношения Рэлея, получите второе доказа-
тельство того, что собственные значения эрмитовой матрицы вещественны
(ср.с упражнением 1.4.63). □
Упражнение 5.4.35. Вспомнм, что эрмитова матрица называется положи-
тельно определенной, если для всех ненулевых х еС” выполняется неравенство
хАх > 0. Докажите, что если А — положительно определенная матрица, а В
унитарно подобная, то и В является положительно определенной. □
Упражнение 5.4.36. Используя отношения Рэлея, докажите, что собствен-
ные значения положительно определенной матрицы положительны. Следую-
щее упражнение указывает другой путь доказательства этого. □
Упражнение 5.4.37. Пусть Л е С"х" — эрмитова матрица. Используйте теоре-
му 5.4.12 и результаты упражнения 5.4.35, чтобы доказать, что Л - положи-
тельно определенная матрица, тогда и только тогда, когда все ее собственные
значения положительны. □
Упражнение 5.4.38. Эрмитова матрица Л е Сихи называется положительно
полуопределенной , если х*Лх > 0 для всех х е С”. Сформулируйте и докажите ре-
зультаты, аналогичные доказанным в упражнениях с 5.4.35 по 5.4.37 для поло-
жительно определенных матриц. □
Упражнение 5.4.39. Матрица Л е С”х” называется косоэрмитовой, если Л* = -Л.
(а) Докажите, что если Л — косоэрмитова, а В унитарно подобна А, то В так-
же является косоэрмитовой.
(Ь) Какую специальную форму принимает теорема Шура (5.4.11), когда Л
является косоэрмитовой?
(с) Докажите, что собственные значения косоэрмитовой матрицы - чисто
мнимые, т.е. они удовлетворяют соотношению X = -X. Дайте два доказательст-
ва: одно, основанное на теореме Шура, а другое — на отношении Рэлея. □
5.4. Преобразования подобия
369
Упражнение 5.4.40.
(а) Докажите, что если А унитарна, а В унитарно подобна А, то В также
унитарна.
(Ь) Докажите, что матрица Т е Спхп, которая одновременно является верх-
ней треугольной и унитарной, обязательно должна быть диагональной. (В уп-
ражнении 5.4.41 будет установлен более общий результат.)
(с) Какую специальную форму принимает теорема Шура (5.4.11), когда А
является унитарной?
(d) Докажите, что собственные значения унитарной матрицы удовлетворя-
ют соотношению X = V1. Это эквивалентно тому, что XX = 1или | X |2 = 1, т.е.
другими словами, собственные значения лежат на единичной окружности в
комплексной плоскости. Дайте два доказательства. □
Упражнение 5.4.41. Матрица Л е С"хл называется нормальной, если ЛЛ* = Л*Л.
(а) Докажите, что все эрмитовы, косоэрмитовы и унитарные матрицы нор-
мальны.
(Ь) Докажите, что если Л нормальна и В унитарно подобна Л, то В также
нормальна.
(с) Докажите, что матрица Т е С"х”, которая одновременно является верх-
ней треугольной и нормальной, обязательно должна быть диагональной. (Ука-
зание'. Примените индукцию по п. Запишите Т в блочной форме
s
f
Т =
0
затем в блочной форме запишите соотношение ТТ = ТТи докажите, что 5 = 0
и Т тоже является треугольной и нормальной матрицей.)
(d) Докажите, что каждая диагональная матрица нормальна.
(е) Докажите теорему 5.4.15: матрица Л нормальна тогда и только тогда, ко-
гда Л унитарно подобна диагональной матрице. □
Упражнение 5.4.42. Пусть D е Спхп - диагональная матрица. Покажите, что
(a) D является эрмитовой матрицей, тогда и только тогда, когда все ее соб-
ственныезначения вещественны.
(b) D является положительно полуопределенной тогда и только тогда, когда
все ее собственные значения неотрицательны.
(с) D является положительно определенной, тогда и только тогда, когда все
ее собственные значения положительны.
(d) D является косоэрмитовой матрицей, тогда и только тогда, когда все ее
собственные значения лежат на мнимой оси комплексной плоскости.
(е) D является унитарной матрицей, тогда и только тогда, когда все ее собст-
венные значения лежат на единичной окружности комплексной плоскости. □
Упражнение 5.4.43. Пусть А е Спхп - нормальная матрица. Покажите, что
(а) А является эрмитовой матрицей,тогда и только тогда, когда ее собствен-
ные значения лежат на вещественной оси.
(Ь) А является положительно полуопределенной тогда и только тогда, когда
ее собственные значения неотрицательны.
(с) А является положительно определенной, тогда и только тогда, когда ее
собственные значения положительны.
370
Глава 5. Собственные значения и собственные векторы I
(d) А является косоэрмитовой матрицей, тогда и только тогда, когда ее соб-
ственныезначения лежат на мнимой оси.
(е) А является унитарной матрицей, тогда и только тогда, когда ее собствен-
ные значения лежат на единичной окружности. □
Упражнение 5.4.44. Проверьте, что результаты упражнения 5.4.33 можно
дословно перенести на нормальные матрицы. Таким образом, хорошие ап-
проксимационные свойства отношения Рэлея присущи всем нормальным
матрицам, а не только эрмитовым. □
Упражнение 5.4.45. Пусть Л е Еях/". Тогда АТА и ААТ являются вещественны-
ми симметричными матрицами, так что каждая из них обладает спектральным
разложением,гарантированным теоремой 5.4.19. Например, существуют орто-
гональная матрица W е R'"x/" и диагональная матрица Л е Ж"”0” такие, что АТА =
РИЛИ^. Как спектральные разложения матриц АТА и ААГ связаны с сингуляр-
ным разложением А = UL If? □
Упражнение 5.4.46 Покажите, что если А е Спхп — нормальная матрица, то ее
собственные векторы являются сингулярными векторами, а собственные зна-
чения и сингулярные числа связаны между собой соотношениями = | Ху |,
j =1, ..., и, в предположении их упорядочения по убыванию. В частности, если
А положительно определенная, ее собственные значения совпадают с ее син-
гулярными числами. □
Упражнение 5.4.47. Докажите теорему 5.4.22 (Винтнер — Мурнаган) индукцией
по п, используя ту же общую стратегию, что и в доказательстве теоремы Шура.
Пусть X — собственное значение матрицы A gR"x". Если X вещественное, проведи-
те редукцию задачи точно так же, как в теореме Шура. Теперь рассмотрите ком-
плексный случай. Пусть Av= Xv, где v = x + iyx,y е R”, Х = а + /р, а, р е R и р* 0.
а р
-р а
(а) Покажите, что AZ=ZB, где Z= [ху] и В =
веными значениями матрицы В являются X и Я?
. Покажите, что собст-
(Ь) Покажите, что матрица Z имеет ранг два (полный ранг). Другими слова-
ми, хиу линейно независимы. (Покажите, что если они не являются линейно-
независимыми, то х и у будут удовлетворять условиям Ах = Хх и Ay = Ху, а X
должно быть вещественным.)
(с) Рассмотрите сжатое 0/?-разложение (теорема Л.4.7) Z- VR, где V е R"x2
имеет ортонормированные столбцы, a R е R2x2 — верхняя треугольная матрица.
Покажите, что AV= ИС, где С подобна В.
(d) Покажите, что существует ортогональная матрица Ux е Rwx", у которой
первые два столбца совпадают со столбцами матрицы И Пусть A\=UX' AUX. По-
кажите, что А\ имеет вид
где А е R(" 2)х(л 2).
5.4. Преобразования подобия
371
(е) Примените индуктивную гипотезу к А, чтобы завершить доказатель-
ство.
(f) Напишите полное и аккуратное доказательство теоремы Винтнера-Мур-
нагана.
Примечания'. Из соотношения AZ = ZB следует, что столбцы матрицы Z по-
рождают инвариантное подпространство матрицы А. Такие подпространства
подробно рассмотриваются в разд. 6.1. Часть (Ь) показывает, что это подпро-
странство имеет размерность 2. В части (с) вводится его ортонормированный
базис. Наконец, отметим, что можно расположить собственные значения и
2 х 2-блоки на главной диагонали матрицы Т в любом порядке. □
Упражнение 5.4.48. Матрица А е R”4” является кососимметричной, если
АТ= -А. Таким образом, это просто вещественная косоэрмитова матрица. В ча-
стности, собственные значения кососимметричной матрицы являются чисто
мнимыми числами (упражнение 5.4.39).
(а) Покажите, что если А е 1ГХЯ кососимметрична и п нечетно, то Л вырож-
денка.
(Ь) На что похожа кососимметричная 1 х 1-матрица? Как выглядит косо-
симметричная 2 х 2-матрица?
(с) Какую форму принимает теорема 5.4.22, если матрица А кососиммет-
рична? Сформулируйте ее как можно точнее. □
Упражнение 5.4.49. След матрицы А е Схп, обозначаемый через 1г(Л), опре-
п
деляется как сумма элементов главной диагонали: 1т(Л) = ^akk-
*=!
(а) Покажите, что для С, D е Спхп tr(C + D) - tr(C) + tr(Z>).
(b) Покажите, что для С е Спхт и D е Стх" tr(CD ) = tr(DC).
(с) Покажите, что ||В||^ = tr(B*B) = tr(BB*), где ||. ||F — норма Фробениуса
(пример 2.1.22).
(d) Пусть А е Спхп - нормальная матрица. Рассмотрите разбиение
_ Лп Л12
Л Л ’
[_Л21 z2 J
где Лн и Л22 суть квадратные матрицы. Покажите, что || Л21 ||F = || Л12 ||г (Указа-
ние: Запишите соотношение Л*Л = ЛЛ* в блочной форме и определите след бло-
ка(1,1).) □
Упражнение 5.4.50. (а) Пусть Т е Спхп - нормальная матрица, которая имеет
блочно-треугольную форму
_ Т{[ Т12
где Тп и Т22 - квадратные матрицы. Покажите, что Т12 = 0, а Тп и Т22 - нор-
мальные матрицы.
312
Глава 5. Собственные значения и собственные векторы I
(Ь) Пусть Т е С”х" — нормальная матрица, которая имеет блочно-треуголь-
ную форму
^11 ^12 Т\к
гр _ 0 ^22 " Т1к
_0 ••• о ткк.
с квадратными блоками на главной диагонали. Воспользуйтесь индукцией по
к и результатами части (а), чтобы доказать, что Т имеет блочно-диагональную
форму с нормальными блоками на главной диагонали. □
Упражнение 5.4.51. Теперь вернемся к вещественным матрицам.
е R2x2. Покажите, что А нормальна тогда и только тогда,
а Ь
с d
(а) Пусть А =
когда А либо симметрична, либо имеет вид А -
(Ь) В симметричном случае А имеет вещественные собственные значения.
Найдите собственные значения матрицы
а b
(с) Какую форму принимает теорема 5.4.22, если матрица Л еКлх" нормаль-
на? Воспользуйтесь результатами упражнения 5.4.50. □
Упражнение 5.4.52. Каждая ортогональная матрица нормальна, так что ре-
зультаты упражнения 5.4.51 имеют силу и для всех ортогональных матриц.
(а) Как выглядит ортогональная 1 х 1-матрица?
(Ь) Приведите необходимые и достаточные условия для а и Ь, при которых
b
а
матрица
а
—Ь
е К2х2 будет ортогональной.
(с) Какую форму принимает теорема 5.4.22, если матрица Л ортогональна?
Сформулируйте ее как можно точнее. □
Упражнение 5.4.53. (а) Покажите, что если А и В подобны, то 1г(Л) = tr(B).
(Указание: Примените часть (Ь) упражнения 5.4.49 для С= 5^и D = AS.)
(b) Покажите, что след матрицы равен сумме ее собственных значений. □
Упражнение 5.4.54. Докажите, что определитель матрицы равен произведе-
нию ее собственных значений. □
Упражнение 5.4.55. Используйте возможности MATLAB-команды help,
чтобы получить сведения о командах schur и rsf2csf. Воспользуйтесь ими,
чтобы получить форму Шура (теорема 5.4.11) и форму Винтнера-Мурнагана
(теорема 5.4.22) для матрицы
’ 1 2 3
А = -4 5 6
-7 -8 9
5.5. Приведение к форме Хессенберга и к трехдиагональной форме
373
5.5. Приведение к форме Хессенберга
и к трехдиагональной форме
Результаты предыдущего раздела поощряют нас к поискам алгоритма, ко-
торый приводит матрицу к треугольному виду посредством преобразований
подобия, что является способом определения собственных значений матрицы.
Из основ теории мы знаем, что не существует алгоритма, решающего эту зада-
чу за конечное число шагов: такой алгоритм противоречил бы классической
теореме Абеля, приведенной в разд. 5.2. Однако оказывается, что существуют
конечные алгоритмы, т.е. прямые методы, приводящие матрицу к почти тре-
угольному виду.
Вспомним, что п х «-матрица А называется верхней матрицей Хессенберга,
если atj = 0 при i > j + 1. Таким образом, верхняя хессенбергова матрица
имеет вид
- * * * * *~
* * * * *
* ♦ ♦ *
♦ * *
* *
В этом разделе мы рассмотрим алгоритм, использующий унитарные преоб-
разования подобия для приведения матрицы к верхней хессенберговой форме
за — « флопов. Этот алгоритм сам по себе не решает задачу на собственные
значения, но, тем не менее, он очень важен, поскольку сводит ее к виду, где
далее можно обойтись сравнительно недорогими вычислениями. Например,
вы показали в упражнении 5.3.33, что как LU-, так и 0Л-разложения верхней
матрицы Хессенберга можно вычислить посредством О(«2) флопов. Таким об-
разом, итерации с отношением Рэлея можно выполнять, затрачивая лишь
О(п2) флопов на одну итерацию.
Приведение к форме Хессенберга особенно полезно, если матрица является
эрмитовой. Поскольку унитарные преобразования подобия сохраняют свойство
эрмитовости, полученная в результате приведения матрица оказывается не про-
сто хессенберговой, но и трехдиагональной. Это значит, что она имеет вид
* *
♦ * *
♦ * *
* * *
* *
Работа с трехдиагональными матрицами не требует больших затрат. Более
точно, можно воспользоваться симметрией матрицы и довести стоимость при-
4 зж
ведения к трехдиагональному виду до скромных — « флопов.
374
Глава 5. Собственные значения и собственные векторы I
Упражнение 5.5.1. Пусть Л е Сп*п — трехдиагональная матрица.
(а) Покажите, что затраты на L (7-разложение матрицы А (с выбором или
без выбора ведущего элемента) составляют О(п) флопов.
(Ь) Покажите, что затраты на QR-разложение матрицы составляют О(п)
флопов при условии, что матрица Q не используется в явном виде. □
Приведение общих матриц
Алгоритм, приводящий матрицу к верхней хессенберговой форме, по-
хож на алгоритм, выполняющий СК-разложение с помощью отражений.
Приведение выполняется за п - 2 шага. На первом шаге необходимым ко-
личеством нулей заполняется первый столбец, на втором шаге — второй
столбец, и т.д.
Выполним первый шаг. Нужное для этого разбиение имеет вид
Пусть Qx — (вещественное или комплексное) отражение такое, что Qxb =
= [-rt, 0, 0]г (I /] I = II b ||2), и пусть
Пусть
так что нули в ее первом столбце расположены на нужных местах. Эта опера-
ция напоминает первый шаг алгоритма QR-разложения, за исключением того,
что его действие не столь глобально. Вместо зануления всех кроме одного эле-
ментов первого столбца она оставляет два ненулевых элемента. Причина этой
неполноты действия в том, что для завершения преобразования подобия необ-
ходимо выполнить умножение правой части на Qf1. Полагая At = Q^Q^n
вспоминая, что Qf1 = Qt* = Qv имеем
5.5. Приведение к форме Хессенберга и к трехдиагональной форме
375
Благодаря форме Q{ эта операция не затрагивает нули в первом столбце.
Если бы ранее мы потребовали большего, то потерпели бы неудачу в этом
месте.
На втором шаге нужно получить нули во втором столбце матрицы т.е. в
первом столбце матрицы Для этого выберем отражение Q2 е с(я“2)х(я‘2) так-
же, как и на первом шаге, лишь заменяя А на Пусть
Тогда
Завершим преобразование подобия умножением правой части на Q21 = 02.
Поскольку первые два столбца Q2 равны первым двум столбцам единич-
ной матрицы, эта операция не изменяет первые два столбца J3/2. Таким
образом,
^2 “ ^3/202 “
а\\ ♦ * ♦
~TI * ♦ ♦
0 ~^2 Qi Л Q2
0 0
На третьем шаге нужно получить нули в третьем столбце, и т.д. После п - 2
шагов приведение завершается. В результате получаем верхнюю матрицу Хес-
сенберга, которая унитарно подобна А : В = Q'AQ, где
Q - Q1Q2 ••• Qn - 2 и Q = Qn _ iQn - з ••• Ci-
Если А - вещественная, то все операции тоже вещественные, Q — вещест-
венная и ортогональная, а В ортогонально подобна А.
Структура компьютерной программы, выполняющей приведение, точно
такая же, как при (^-разложении с помощью отражений. Для простоты огра-
ничимся вещественным случаем. Большинство деталей не требует объясне-
ний, поскольку они были уже рассмотрены в разд. 3.2. Одно из значительных
376
Глава 5. Собственные значения и собственные векторы /
отличий настоящего алгоритма от (?Я-разложения состоит в том, что в нем
требуется умножение на отражение не только справа, но и слева. Как вы и
должны ожидать, правые умножения имеют ту же структуру, что и левые. Если
необходимо вычислить CQ, где Q = / - уииТ есть отражение, можно написать
CQ-C- уСиит. Таким образом, мы можем вычислить v - С(уи), а затем CQ = С - vuT.
Вот один из вариантов алгоритма (3.2.40).
Вещественное приведение Хаусхолдера к верхней хессенберговой форме
for k = \, ..., л-2
p<-max{|%| i = k +1,п}
7k <~°
if ((3*0) then
% Сформировать отражение Qk
^к+\,к ^к+\:п,к
хк *”7^+1,* +••• +ап,к
if хк < хк
П ^~^к+\,к + Хк
ak+l,k
^к + 2:п,к ^~~^к + 2:п,к / И
7к
хк
(5.5.2)
% Умножение слева на Qk
^k + \:n,l ^~^к + 1:п,к^к + 1:п,к + 1:п
^k+i;n,l < 7 к^к+1:пД
^k+\.n,k+i:n ^к+\:п,к+\:п ~^^к+1:п,к^к + \:п,\
% Умножение справа на Qk
^l:n,k + Vn^k + {:n,k
А:я,1 < Ykb\.n,l
O\‘.n,k + \:n Ql:n,k+Vn + ^l:n,l^k + l:n,k
|A + U T*
exit
Этот алгоритм в качестве входа использует массив, содержащий А е ИГХ".
На выходе получается верхняя матрица Хессенберга В = QTAQ с ненулевыми
элементами, расположенными на их естественных местах в массиве. Часть
массива ниже поддиагонали не заполнена нулями. Там хранятся векторы ик)
которые используются для построения отражений Qk = I - 7kukul, где Qk есть
(п - к) х (п - ^-отражение, используемое на к-м шаге. Ведущая 1 в ик не хра-
5.5. Приведение к форме Хессенберга и к трехдиагональной форме
377
нится. Скаляр yk (к - 1, п - 2) хранится в отдельном массиве у. Таким обра-
зом, информация, нужная доя формирования ортогональной преобразующей
матрицы Q, вполне доступна.
Имеется много вариантов организации вычислений, описанных в (5.5.2). В
частности, есть блочные варианты, пригодные для параллельных вычислений
и эффективно использующие высокоскоростную кэш-память. Программы
хессенбергова приведения в пакете LAPACK [1] используют блоки.
Упражнение 5.5.3. Подсчитайте число флопов в (5.5.2). Покажите, что на
выполнение части алгоритма, содержащей левое умножение, затрачивается
4 з
около у п флопов, на выполнение части, содержащей правое умножение,за-
трачивается около 2п3 флопов, а на оставшуюся часть работы по формирова-
нию отражений, затрачивается О(п2) флопов. Таким образом, всего требуется
около -у п3 флопов. Почему правое умножение требует флопов больше, чем
левое? □
Пусть матрица А е К"х"приведена к хессенберговой форме В = QTAQ с помо-
щью (5.5.2). Предположим далее, что мы нашли некоторые собственные век-
торы матрицы В, а теперь хотим найти соответствующие им собственные век-
торы матрицы А. Для каждого собственного вектора v матрицы В вектор Qv яв-
ляется собственным вектором матрицы А. Так как
Qv = Q,Q2 ... Q„_2v,
можно легко вычислить 0v, последовательно выполняя п-2 отражения по схе-
ме (3.2.40). На самом деле мы можем обработать все собственные векторы сра-
зу. Если известны т из них, то можно построить п х ди-матрицу И столбцы кото-
рой являются собственными векторами, а потом вычислить QV= Q{Q2... Q„_2K
применив п - 2 раз (3.2.40). На т векторов потребуется 2п2т флопов.
Если мы хотим получить непосредственно преобразующую матрицу Q, то
можно сделать это, вычисляя Q = Q/= QXQ2... 0„_2/путем (и - 2)-кратного при-
менения (3.2.40).
Симметричный случай
Если А — эрмитова, то матрица В, полученная согласно (5.5.2), является не
просто хессенберговой, но к тому же и трехдиагональной. Более того, можно
А 4 3
использовать симметрию л, чтобы уменьшить стоимость приведения до — п
флопов - менее половины стоимости несимметричного случая. Для простоты
ограничим наше рассмотрение вещественным симметричным случаем. Нач-
нем с матрицы
А =
b
ЬТ
А
378
Глава 5. Собственные значения и собственные векторы I
На первом шаге приведения преобразуем А к Al = QiAQl} где
О О
Af = 258 =
-Ti
О
Мы немного сэкономим, не вычисляя b TQ{, что дублирует вычисление Qb.
На этом шаге много усилий тратится на вычисление симметричной под-
матрицы А1 = А Это нужно проделать эффективно, если мы хотим полу-
чить значительную экономию. Если симметрия не учитывается, то, как не-
трудно проверить, для вычисления Q А потребуется 4п2 флопов и еще 4п2 фло-
пов, чтобы вычислить (QA) Qi- Таким образом, всего на вычисление At надо
затратить 8п2 флопов. Оказывается, что можно сократить эти затраты наполо-
вину, если аккуратно использовать симметрию.
МатрицаС, — это отражение, заданное в видеф = 1-уииТ. Таким образом,
Ai = (I - уиит)А(1 - уиит) = А - уАиит - уиитА + у2иитАиит.
Члены этого выражения можно значительно упростить, если ввести вспо-
могательный вектор v = - уАи. Мы имеем - уАиит = vuT, - уиитА = uvr, а
у2иитАиит= - yuuTvuT. Вводя скаляр а = уит, можно записать последний член
как 2аиит. Таким образом,
Ai = А + vuT + uvT + 2аииг.
Заключительная операция сводится к разбиению последнего члена на две
части, чтобы одну часть объединить с vur, а другую — с uvT. Другими словами,
пусть w = v + clu. Тогда
Ai = А + wuT + uwT.
Этому выражению соответствует программный код
for /=2,..., п
for л
[ayir-aij + WiUj+UiWj
на выполнение которого потребуется по четыре флопа на обновление каж-
дого элемента массива. Ввиду симметрии нам нужно обновить лишь глав-
ную диагональ и нижний треугольник. Таким образом, общее число фло-
5.5. Приведение к форме Хессенберга и к трехдиагональной форме
379
пов, необходимых для выполнения этого фрагмента программы, составляет
4(л - 1)п /2 ~ 2п2. Сюда не входят затраты на вычисление w. Прежде всего,
для вычисления v = - уАи требуется около 2п2 флопов. Вычисление а =
= ~ yuTv требует около 2п флопов, как и вычисление w = v + аи. Таким об-
разом, на выполнение первого шага затрачивается около 4п2 флопов, как и
утверждалось.
Второй шаг приведения идентичен первому, только теперь он воздейст-
вует на Д. В частности (в отличие от несимметричного приведения), он не
оказывает действия на первую строку матрицы Таким образом, число
флопов, требуемых на втором шаге, равно 4(и - I)2. После п - 2 шагов
приведение заканчивается. Общее число флопов приблизительно равно
4
4(n2 + (п - I)2 + (п - 2)2 + ...) « у п3.
Приведение вещественной симметричной матрицы к трехдиагональному
виду:
for к =1, ..., п-2
р <-тах{|% | / =£ + 1,..., п}
У к
if (Р*0) then
Сформировать отражение Qk точно как в (5.5.2)
^ + 1:„ <-0
for j = fc + l, ..., п
for / =Л + 1, ..., п
^Л+1:л Ук^к+кп
а Wk+l.nak + \:n,k
а <—у*а/2
^Л+1:л + +«Я,+1;М
for j = £ + 1, ..., п
+ ^j.najk +aj.n,k™j
(5.5.4)
^л-l Ч»,л-1
for / =1, ..., n
(4 «-a„
51:л-1 < Т1:л-1
Этот алгоритм подвергает обработке лишь главную диагональ и нижнюю
треугольную часть матрицы А. Элементы главной диагонали трехдиагональной
матрицы В хранятся в одномерном массиве d (dt = bih i = 1, ..., n), а внедиаго-
нальные элементы — в одномерном массиве 5 (s, = bi+l i = bii+ b i = 1, ..., n - 1).
Информация об отражениях, используемых при преобразованиях подобия,
хранится точно так же, как в (5.5.2).
380
Глава 5. Собственные значения и собственные векторы I
Дополнительные упражнения
Упражнение 5.5.5. Напишите программу на Фортране, реализующую (5.5.2).
□
Упражнение 5.5.6. Напишите программу на Фортране, реализующую (5.5.4).
□
Упражнение 5.5.7. MATLAB-команда Hess преобразует матрицу к верхней
форме Хессенберга. Чтобы получить верхнюю матрицу Хессенберга, наберите
В = Hess (А) . Чтобы получить и верхнюю матрицу Хессенберга, и преобра-
зующую матрицу (в завершенном виде), наберите [Q, В] = hess (А) .
(а) С помощью MATLAB’a получите случайную 100 х 100-матрицу (или
матрицу большего размера) и приведите ее к верхней форме Хессенберга:
п = 100
А = randn(п); % или А = randn(п) 4- i* randn (n) ;
[Q,В] = hess(A);
(b) Воспользуйтесь итерациями с отношением Рэлея, чтобы вычислить соб-
ственную пару матрицы В, исходя из случайного комплексного вектора. На-
пример,
q = randn(n) + i*randn(n);
q = q/norm(q);
rayquo = q'*B*q;
qq = (B - rayquo*eye(n))\q;
и т.д. Как только получите собственный вектор q матрицы В, сразу преобра-
зуйте его в собственный вектор v = Qq матрицы А. Ваше последнее отношение
Рэлея - это искомое собственное значение.
(с) Покажите, что ваши итерации с отношением Рэлея сходятся квадратично.
(d) Проверьте, что вы действительно получили собственную пару матрицы
А , вычислив норму невязки || Av- Xv ||2. □
Упражнение 5.5.8. Первый шаг приведения к верхней хессенберговой фор-
ме записывает необходимые нули в вектор Ь, где
А = а"
b
А
Для выполнения этой задачи мы использовали отражения, но существуют и
другие виды преобразований, которые можно было бы применить с таким же
успехом. Набросайте алгоритм, использующий исключение Гаусса с частич-
ным выбором ведущего элемента для получения нулей на каждом шаге. Не за-
будьте, что каждое из этих преобразований должно быть преобразованием по-
добия. Так вы снова получите преобразование подобия, приводящее к хессе-
берговой форме, которое, однако, не является унитарным. Это хороший
алгоритм, который вышел из употребления. Старая библиотека EISPACK со-
держит его, а в LAPACK его уже нет.
5.6. QR-алгоритм
381
5.6. QjR-алгоритм
В течение многих лет наиболее широко используемым алгоритмом вычисле-
ния всех собственных векторов матрицы является Q/f-алгоритм Фрэнсиса [25] и
Кублановской [45]. Настоящий раздел посвящен описанию этого алгоритма, а в
следующем разделе мы покажем, как его можно эффективно реализовать. Объ-
яснение причин, в силу которых алгоритм работает, большей частью отложено
до разд. 6.2. Если хотите - можете прочитать разд. 6.1 и 6.2 прямо сейчас.
Рассмотрим матрицу Л е Cwx", собственные значения которой мы хотим вы-
числить. Сейчас предположим, что Л — невырожденная матрица, но позже это
ограничение будет отброшено. Суть 0Я-алгоритма описать очень легко. Он
начинается с Ло =А и порождает последовательность матриц (Лу) по следующе-
му предписанию:
A„.t = Q„R„, R„Qm=Am. (5.6.1)
Т.е., Ат_! разлагается на множители Qm и Rm так, что Qm является унитарной
матрицей, a Rm — верхней треугольной с положительными элементами на глав-
ной диагонали. Эти множители определяются единственным образом (теоре-
ма 3.2.46). Затем они снова перемножаются, но в обратном порядке, и этот ре-
зультат обозначается через Ат. Вы можете легко проверить, что Ат = Q^Am_ }Qm.
Таким образом, Ат унитарно подобна Ат _ Р
Упражнение 5.6.2. (а) Покажите, что Ат = Q„Am _ xQm.
(b) Покажите, что Ат = R,„Am _ рЯ'1.
Обратите внимание, что часть (а) выполняется независимо от того, являет-
ся А вырожденной или нет. Напротив, часть (Ь) выполняется, тогда и только
тогда, когда А вырождена. (Почему?) □
Так как все матрицы в последовательности (Лу) подобны, они все имеют
одни и те же собственные значения. В разд. 6.2 мы увидим, что £М?-алгоритм
есть просто удачная реализация процедуры, известной как одновременные
итерации, которые в свою очередь являются естественным, легко понимае-
мым расширением степенного метода. Как следствие всего этого, последова-
тельность (Лу) сходится, при соответствующих условиях, к верхней треуголь-
ной форме
\1 * ••• * “
Х2 •. :
где собственные значения появляются на главной диагонали в порядке убыва-
ния их модулей. (Как мы увидим, это грубое упрощение того, что обычно про-
исходит, но сейчас нет необходимости входить в детали.)
В дальнейшем будет важно различать QR-разложение и QR-алгоритм. QR-
алгоритм есть итерационный процесс нахождения собственных значений. В
382
Глава 5. Собственные значения и собственные векторы I
его основе лежит QR-разложение, являющееся прямой процедурой, связанной
с процессом Грама — Шмидта. Отдельную итерацию (ХЯ-алгоритма будем на-
зывать QR-шагом или QR-итерацией.
На каждом 0Я-шаге выполняется унитарное преобразование подобия. В
разд. 5.4 было отмечено, что при такаих преобразованиях сохраняются различ-
ные свойства матриц, включая свойство эрмитовости. Таким образом, если
матрица А эрмитова, то все итерации Лу будут эрмитовыми, а последователь-
ность (Лу) будет сходиться к диагональной форме.
Если Ат_ t - вещественная матрица, то Qm, Rm и Ат также будут веществен-
ными. Таким образом, если А — вещественная матрица, базовый (М?-алгоритм
(5.6.1) будет оставаться в рамках системы вещественных чисел.
Пример 5.6.3. Применим базовый (/^-алгоритм к вещественной симмет-
ричной матрице
собственные значения которой, как легко видеть, равны = 9 и Х2 = 4. Пола-
гая Ао = А, имеем Ао = Q^, где
Q.
1 Г8 -2”
*681.2 8 _
и Я| =
2_Гб8
ж°
26'
36
Таким образом,
= R& = —Г596
68 72
721 Г&7647
288 ~ 1.0588
1.0588'
4.2353
Упражнение 5.6.4. Пусть Ао = А =
Заметьте, что А} есть вещественная симметричная матрица, так же как и Ло.
Также отметьте, что А। ближе к диагональной форме, чем Ло, в том смысле, что
ее внедиагональные элементы ближе к нулю. Более того, элементы главной
диагонали матрицы А{ ближе к собственным значениям. На последующих ите-
рациях элементы главных диагоналей матриц AJдают все улучшающиеся оцен-
ки собственных значений и уже после десяти итераций совпадают с собствен-
ными значениями в семи десятичных знаках. □
. Найдите ортогональную матрицу
Q{ (вращение)и верхнюю треугольную матрицу R} такие, что Ло = QXR{. Вычис-
лите Л1 = RXQ{. Обратите внимание, что Ai ближе к верхней треугольной форме,
чем Ло, а элементы главной диагонали матрицы А1 ближе к собственным значе-
ниям А, чем элементы главной диагонали Ло. □
Предположение о невырожденности А гарантирует, что каждая матрица в
последовательности (Лу) будет невырожденной. Этот факт позволяет нам опре-
делить разложение Ат_}= QmRm единственным образом, требуя, чтобы элемен-
ты главной диагонали матрицы Rm были положительными. Таким образом,
Qtf-алгоритм, как он описан выше, является хорошо определенным. Однако
5.6. QR-алгоритм
383
на практике не всегда удобно так построить вычисления, чтобы каждая матри-
ца Rm имела положительные элементы на главной диагонали. Следовательно,
разумно выяснить, что произойдет с последовательностью (Лу), если это требо-
вание опустить. Упражнение 5.6.24 показывает, что ничего не случится. Вы-
полняется это требование или нет, значимо не влияет на ход выполнения алго-
ритма. Поэтому при фактической реализации QA-алгоритма мы не будем тре-
бовать, чтобы элементы главной диагонали каждой/^ были положительными.
Есть две причины, по которым базовый QA-алгоритм (5.6.1) оказывается
неэффективным при его широком использовании. Во-первых, высокая стои-
4
мость каждого QA-шага. Каждое QA-разложение требует - л3 флопов, и на сле-
дующее за ним матричное умножение также тратится О(и3) флопов.Это слиш-
ком высокая цена, если мы намерены выполнить много шагов. Вторая пробле-
ма заключается в том, что обычно сходимость оказывается довольно медлен-
ной: необходимо выполнить очень большое число итераций, прежде чем Ат
настолько приблизится к треугольной форме, что мы сможем принять элемен-
ты ее главной диагонали в качестве собственных значений матрицы А. Таким
образом, мы должны сделать QA-шаги менее дорогими и к тому же каким-то
образом настолько ускорить сходимость, чтобы требовалось лишь небольшое
число QA-итераций.
QA-алгоритм в случае матриц Хессенберга
Стоимость QA-итераций можно радикально улучшить, если сначала при-
вести матрицу к форме Хессенберга. Это оказывается эффективным, потому
что, как показывает следующая теорема, хессенбергова форма матрицы сохра-
няется QA-алгоритмом.
Теорема 5.6.5. Пусть А,п _ । — невырожденная верхняя хессенбергова матрица и
Ат получена из Ат _ । посредством одной QR-итерации (5.6.1). Тогда Ат также
имеет верхнюю хессенбергову форму.
Доказательство. Соотношение Ат _ j = QmRm можно переписать как Qm -A,tl._.} .
Согласно упражнению 1.7.44 А’,1 имеет верхнюю треугольную форму. Вы смо-
жете легко показать (упражнение 5.6.6), что произведение верхней хессенбер-
говой и верхней треугольной матриц в любом порядке является верхней хес-
сенберговой матрицей. Поэтому Q,n есть верхняя хессенбергова матрица. Но и
Ат = RmQm также должна быть верхней хессенберговой. □
Упражнение 5.6.6. Пусть Н е С"хм - верхняя матрица Хессенберга, а А е Слх" —
верхняя треугольная матрица. Докажите, что и RH, и HR являются верхними хес-
сенбсрговыми. □
В теореме 5.6.5 мы опять предположили невырожденность матрицы. Было
бы хорошо опустить это требование. К сожалению, теорема 5.6.5 не является
вполне верной в случае вырожденности. Проблема в том, что избыток свободы
(т.е. большая или меньшая однозначность) при построении QA-разложения
позволяет формировать такие Q„, и А„„ для которых получающаяся в результате
матрица Ат не является верхней хессенберговой (упражнение 5.6.25). Но ока-
зывается, что это незначительное затруднение. Как мы сейчас покажем, всегда
384
Глава 5. Собственные значения и собственные векторы I
возможно так построить множители Q и R, что верхняя форма Хессенберга бу-
дет сохранена. На самом деле, если выполнить 0Л-разложение самым прямо-
линейным, очевидным образом, именно это и произойдет.
Пусть А — верхняя хессенбергова матрица, для которой мы хотим выпол-
нить 0Я-разложение. Можно привести А к верхней треугольной форме с по-
мощью п - 1 вращений, которые преобразуют п - 1 поддиагональных элемен-
тов в нули. Для дальнейшего полезно вернуться к материалу о вращениях из
разд. 3.2. Если вас интересует лишь вещественный случай, то этот экскурсвам
не нужен.
Начнем с поиска (комплексного) вращения Ql в плоскости 1-2, которое ус-
танавливает нуль в позиции (2,1) матрицы Q^A (упражнение 3.2.54). Это вра-
щение изменяет только первую и вторую строки матрицы А. Далее мы найдем
вращение Q2, действующее в плоскости 2-3, которое устанавливает нуль в по-
зиции (3,2) матрицы 020|*Л. Qi изменяет только вторую и третью строки мат-
рицы Q'A. Поскольку пересечение этих строк с первым столбцом состоит из
нулей, эти нули после нашего преобразования сохранятся, поскольку любая
их линейная комбинация снова даст нуль. В частности, нуль в позиции (2,1),
полученный нами с помощью предыдущего вращения, сохранится. Следую-
щим мы найдем Q3, вращение в плоскости 3-4, такое, что 03 02 Q/Л имеет нуль
в позиции (4,3). Вы можете легко проверить, что это вращение не повредит
нули, созданные ранее,или какой-либо другой нуль ниже главной диагонали.
Продолжая таким образом, мы преобразуем А в верхнюю треугольную мат-
рицу R, заданную выражением
r = о;.,... о&а.
Полагая
O = QiG2...Q„_i, (5.6.7)
получим R = Q*A или А = QR, где Q — унитарная матрица, a R — верхняя тре-
угольная.
Теперь нам нужно вычислить А} = RQ, чтобы завершить шаг 0Я-алгоритма.
Согласно (5.6.7)
Л1 = RQiQ2- -Qn - ь
так что нам остается лишь последовательно умножить R справа на вращения
•••>£?„_ г Поскольку Qj действует в плоскости 1-2, оно имеет дело с первым
и вторым столбцами матрицы. Так как оба эти столбца состоят из нулей за ис-
ключением первых двух позиций, эти нули не будут уничтожены вращением Qv
Единственный нуль, который может быть (и почти наверняка будет) уничто-
жен, находится в позиции (2,1). Подобным образом, Q2, которое воздействует на
столбцы 2 и 3, может уничтожить только нуль в позиции (3,2), и т.д. Таким об-
разом, преобразование R в может создать несколько ненулевых элементов
ниже главной диагонали только в позициях (2,1), (3,2), ..., (n, п - 1), и мы при-
ходим к выводу, что А{ есть верхняя хессенбергова матрица.
5.6. QR-алгоритм
385
Упражнение 5.6.8. Покажите, что матрица Q, определенная в (5.6.7), являет-
ся верхней хессенберговой матрицей. (Начните с единичной матрицы и по-
стройте Q, выполняя по одному вращению за раз.) Совместно с упражнением
5.6.6 это дает вторую возможность убедиться, что Л| = RQ есть верхняя хессен-
бергова матрица. □
В результате только что описанного построения будет получена матрица
имеющая верхнюю хессенбергову форму независимо оттого, вырождена Л или
нет. Поэтому можно сказать, что с практической точки зрения во всех случаях
ОЯ-алгоритм сохраняет верхнюю хессенбергову форму. Это наблюдение будет
усилено ниже в упражнении 5.6.28. Кстати, такое построение можно провести
2 х 2-отражениями вместо плоских вращений. Но что бы мы не использовали,
наше построение приводит к следующему результату.
Теорема 5.6.9. QR-шаг для верхней матрицы Хессенберга требует не более
О(п2) флопов.
Доказательство. Приведенное выше построение преобразует Ат _ । в Ат в ре-
зультате умножения слева на п - 1 вращение и последующего умножения на
п - 1 вращение справа. На выполнение каждого из этих вращений (или отра-
жений) затрачивается О(п) флопов. Таким образом, всего требуется О(п2) фло-
пов. Точное число флопов зависит от конкретной реализации. □
Мы только что удивительно хорошо разрешили проблему стоимости QR-
шагов. Чтобы подытожить все расходы, начнем с приведения матрицы к верх-
ней хессенберговой форме, затратив на это О(л3) флопов. Хотя и дорого, вы-
полнить это надо лишь один раз, поскольку верхняя хессенбергова форма со-
храняется 0Я-алгоритмом. Тогда СА-итерации становятся относительно недо-
рогими: на каждую из них тратится только О(п2) флопов.
Ситуация становится еще лучше, когда матрица оказывается эрмитовой,
поскольку для эрмитовой матрицы хессенбергова форма трехдиагональна. Так
как (//^-алгоритм сохраняет и эрмитовость, и форму Хессенберга, трехдиаго-
нальная эрмитова форма сохраняется на 07?-шагах. Такие 0Я-шаги особенно
дешевы.
Упражнение 5.6.10. Покажите, что применение 0Я-итерации к трехдиаго-
нальной эрмитовой матрице требует лишь О(п) флопов. □
Ускорение сходимости ^-алгоритма
Рассмотрим последовательность Ц) итераций 0А-алгоритма, где каждая Ат
имеет верхнюю хессенбергову форму, и пусть а^ обозначает элемент (У, j)
матрицы Ат. Таким образом,
(т)
л,л-1 ип,п
13 Основы матричных вычислении
386
Глава 5. Собственные значения и собственные векторы I
Пусть Х|, Х2, Х„ — собственные значения матрицы Л, упорядоченные
так,что | Aq | > | Х21 > ... > | Х„ |. В разд. 6.2 мы увидим, что (большинство) поддиа-
гональных элементов ai+1 сходятся к нулю. Более точно, если | X, | > | Х/+11,
то при т -> оо af + м(я° -> 0 линейно, с коэффициентом сходимости | X,- +1 / X, |.
Таким образом, мы можем улучшить скорость сходимости, уменьшая одно
или больше отношений |Х/ + i / |, i = 1, ..., п - 1. Обычный способ сделать
это - сдвинуть матрицу.
Сдвинутая матрица А - р/ имеет собственные значения Xj - р, Х2 - р,..., Х„ - р.
Если мы перенумеруем собственные значения таким образом, что | X, - р | >
> | Х2 - р | > ... > | Х„ - р |, то отношениями, соответствующими А - р/, будут
|(Х/+1 - р)/(Х, - Р)|, / = 1, •••, п ~ 1- Отношение, которое можно сделать действи-
тельно малым, это |(ХЯ - р) / (Хя _ । - р)|: его можно сделать сколь угодно близ-
ким к нулю (при условии Хя ф \п _ J, выбирая р очень близким к Х„.
Мы не хотим предполагать здесь, что р аппроксимирует одно конкретное
собственное значение, обозначаемое как Хя. Если мы в состоянии найти р, ко-
торое хорошо аппроксимирует одно из собственных значений, то после пере-
нумерации обозначим это собственное значение через Хя. Таким образом, если
мы можем найти р, которое отлично аппроксимирует какое-то из собственных
значений, то выигрыш может быть получен применением £М?-алгоритма к
А - р! вместо А. Элемент будет сходиться к нулю очень быстро. Как толь-
ко он станет достаточно малым, с практической точки зрения его можно будет
рассматривать равным нулю, и, добавляя обратный сдвиг, мы будем иметь
Л + р/ =
В силу теоремы 5.2.10 есть собственное значение матрицы А: в самом
деле, - к„, ближайшему к р собственномузначению. Остальные собствен-
ные значения матрицы А являются собственными значениями Ат, так что
можно сэкономить, применяя последующие итерации к этой матрице мень-
шего размера. Если мы можем найти р, которое хорошо аппроксимирует соб-
ственное значение матрицы Ат, тозатем можно быстро выделить его, выпол-
нив ()Я-итерации для Ат - р/. Получив очередное собственное значение, мож-
но перейти к поиску следующего, и т.д., используя каждый раз матрицы все
меньшего порядка. Продолжая таким образом, мы в конце концов найдем все
собственные значения матрицы А. Этот процесс, при котором порядок матри-
цы уменьшается всякий раз, как только найдено очередное собственное значе-
ние, называется дефляцией, понижением порядка.
Чтобы применить эти соображения, нужно иметь хорошие приближения
для собственных значений. Как можно найти эти приближения? Предполо-
5.6. QR-алгоритм
387
жим, что сначала мы делаем несколько СЛ-итераций без сдвига. Через некото-
рое время матрицы начнут приобретать треугольный вид, а элементы главной
диагонали будут приближаться к собственным значениям. В частности,
будет приближаться к Хя, наименьшему по модулю собственному значению
матрицы А. Поэтому разумно в какой-то момент положить р = и после-
дующие итерации выполнять для сдвинутой матрицы Ат - р/. В действитель-
ности мы можем сделать еще лучше. С каждым шагом мы получаем все луч-
шие приближения для кп. Нет причины, мешающей нам часто обновлять зна-
чение сдвига, чтобы улучшить скорость сходимости. На самом деле, мы
можем, по желанию, выбирать новый сдвиг на каждом шаге. Именно это и де-
лает QR-алгоритм со сдвигом'.
4-i-p.-J=0A> RmQm + рм- J = Л, (5.6.11)
где на каждом шаге рт _ t выбирается так, чтобы оно являлось приближением
собственного значения, появляющегося в нижнем правом углу матрицы.
Упражнение 5.6.12. Покажите, что если Ат _, и Ат связаны соотношениями
(5.6.11), то Ат = Q*nAmiQm. Таким образом, Ат _ j и Ат унитарно подобны. □
В порядке рабочей гипотезы мы предположили, что рт _ j = - ,) будет хо-
рошим выбором. Это называется стратегией сдвига на отношение Рэлея, или,
проще, сдвигом на отношение Рэлея, поскольку^"0 можно принять за отно-
шение Рэлея. См. упражнение 5.6.26.
Поскольку сдвиги, в конце концов, сходятся к Хя, коэффициенты сходимости
|(*„ - P„)/(X„-1 - ря)|
стремятся к нулю при условии, что \ \ _ г Следовательно, здесь сходимость
быстрее линейной. В разд. 6.2 мы покажем, что 0Л-алгоритм со сдвигом на от-
ношение Рэлея среди прочих действий неявно реализует и итерационный про-
цесс с отношением Рэлея. Отсюда следует, что он имеет квадратичную сходи-
мость. Если матрица эрмитова (или, в общем случае, нормальная), то сходи-
мость будет кубической.
Как много шагов без сдвига нужно сделать, прежде чем мы сочтем, что а„”}
является хорошим приближением к Х„? Опыт показывает, что не надо ждать,
пока а{п™} станет хорошим приближением для Хя: обычно ничто не мешает нам
делать сдвиги на первых же шагах. В этом случае нам грозит лишь то, что пер-
вые сдвиги изменят порядок собственных значений, которые будут появляться
не обязательно в порядке возрастания их модулей.
Пример 5.6.13. Снова рассмотрим матрицу
из примера 5.6.3, у которой собственные значения равны 1, = 9 и Х2 = 4. Когда
ОЯ-алгоритм без сдвига применяется кА, элемент (2,1) сходится к нулю ли-
388
Глава 5. Собственные значения и собственные векторы I
нейно с коэффициентом сходимости | Кп/\п_х | = 4/9. Теперь попробуем приме-
нить 0/?-алгоритм со сдвигом на отношение Рэлея. Возьмем р0 = 5 и выполним
(ZR-шаг с матрицей А - р0/, собственные значения которой равны А,, - 5 - 4 и Х2
- 5 = -1. Отношение |(12 - р0)/(Х1 - р0)| = 1/4 меньше 4/9, так что можно ожи-
дать улучшения сходимости для шага со сдвигом. Далее, Ао - р0/ = Q^, где
2"
-3
]_Г13 6"
Тз[о 4
и
Таким образом,
1 51
13 8
- RiQi + Р(/ -
8 1 ~ Г8.9231
-12 * 0.6154
0.6154'
4.0769
Сравнивая этот результат с результатом примера 5.6.3, видим, что за один
0Я-шаг со сдвигом мы продвинулись в смысле сходимости дальше, чем с ша-
гом без сдвига. Не только уменьшились внедиагональные элементы, но и диа-
гональные элементы стали ближе к собственным значениям. Сдвиг на отно-
шение Рэлея для следующего шага равен р! « 4.0769. Собственные значения
дня J] - pj равны Aq - pj = 4.9231 и Х2 - Pi = -0.0769, а их отношение есть
0.0156. Поэтому можно ожидать, что Л2 будет намного лучше А}. Так оно и
есть. С помощью MATLAB’a находим, что
8.99998092658643 0.00976558774724
0.00976558774724 4.00001907341357
На следующем шаге сдвиг равен р2 = 4.00001907341357, что дает еще лучшее
отношение и
"9.00000000000000 0.00000003725290
0.00000003725290 4.00000000000000
Окончательно
9.00000000000000 0.00000000000000
0.00000000000000 4.00000000000000
Упражнение 5.6.14. Легко написать MATLAB-программу, выполняющую
0А-алгоритм с помощью встроенной команды 0Я-разложения: например, вы
можете использовать команды вроде следующих:
shift = A (n, п);
[Q,R] = qr(А - shift*eye(n));
A = R*Q 4- shift*eye(n)
5.6. QR-алгоритм
389
Это не лучшая реализация, но она вполне отвечает нашим требованиям для
экспериментов с небольшими матрицами. Пусть
8
2 I
как в упражнении 5.6.4.
(а) С помощью MATLAB’a выполните четыре или больше шагов 0Л-алго-
ритма с нулевым сдвигом. Покажите, что а{™} -> 0 и -> Х1 линейно с ко-
эффициентом сходимости, приблизительно равным | Х2Д, I-
(b) С помощью MATLAB’a выполните четыре или больше шагов СЛ-алго-
ритма со сдвигом на отношение Рэлея. Вы увидите, что а(™} -> 0 и я('л) -> X,
квадратично.
(с) С помощью MATLAB’a выполните один шаг (?Я-алгоритма со сдвигом
р = 1.29843788128358 (одно из собственных значений). □
Упражнение 5.6.15. Цель данного упражнения - показать недостатки про-
граммы, приведенной в предыдущем упражнении. Выполните следующую
MATLAB-программу, согласовав порядок матрицы со скоростью вашего ком-
пьютера.
п = 300;
А = randn(п);
tic; [Q,R] = qr(А); В = R*Q; toe
tic; [V,D] = eig(A); toe
Команда eig приводит матрицу к верхней хессенберговой форме, а затем
выполняет приблизительно 1п неявных двухшаговых 0Я-итераций (они опи-
саны в разд. 5.7) для получения собственных значений. Затем с помощьюмето-
дов, подобных описанным в разд. 5.8, вычисляется полное множество собст-
венных векторов. На все это затрачивается время, умеренно пропорциональ-
ное времени выполнения одной (ZK-итерации, использующей неэффективный
программный код.
Пример 5.6.16. Настоящий пример показывает, что стратегия сдвига на от-
ношение Рэлея не всегда срабатывает. Рассмотрим вещественную симметрич-
ную матрицу
2
1
2
1
собственные значения которой, как легко видеть, равны X, = 3 и Х2 = 1. Сдвиг
на отношение Рэлея равен р = 2, что находится посередине между собственны-
ми значениями. Сдвинутая матрица А - р/ имеет собственные значения ±1,
которые одинаковы по абсолютные величине. Поскольку А - р/ унитарна, ее
(?/?-множители суть Qx = А - р/ и = I. Таким образом, А} = R1Ql + р7 = А, т.е.
(?/?-шаг оставляет А неизменной. Алгоритм «не может выбрать», какое собст-
390
Глава 5. Собственные значения и собственные векторы I
венное значение приближать. Мы уже видели подобное в связи с итерациями с
отношением Рэлея (упражнение 5.3.35).
Поскольку итерации с отношением Рэлея время от времени оказывают-
ся несостоятельными, предпочтительнее оказывается другой сдвиг — сдвиг
Уилкинсона, определяемый как собственное значение последней 2 х 2-под-
матрицы
л-1,л-1 л-1,л
(/л-1)
л,л-1
(5.6.17)
ближайшее к 1}. Нетрудно вычислить этот сдвиг, поскольку собственные
значения 2 х 2-матрицы можно найти с помощью формулы для корней квад-
ратного уравнения. Поскольку сдвиг Уилкинсона использует больше инфор-
мации о матрице Ат _ р можно ожидать, что он даст лучшее приближение для
собственного значения. В случае вещественных симметричных трехдиагональ-
ных матриц такое ожидание подтверждается теоремой, гласящей, что (ХК-алго-
ритм со сдвигом Уилкинсона всегда сходится. Скорость сходимости обычно
кубическая или выше. Подробности можно найти в [54], где также рассматри-
вается несколько других стратегий сдвига для симметричных матриц. Для об-
щих матриц все еще остаются некоторые очень специфичные случаи, когда и
сдвиг Уилкинсона терпит неудачу. Такой пример будет приведен ниже.
Для подавляющего большинства матриц стратегия сдвига Уилкинсона ра-
ботает очень хорошо. Опыт показывает, что обычно требуется от пяти до девя-
ти 0Я-шагов, прежде чем появится первое собственное значение. В то время
кака*^ быстро стремится к нулю, другие поддиагональные элементы матри-
цы Ат сходятся к нулю медленно. Как следствие, за время выявления первого
собственного значения происходит некоторое продвижение в получении дру-
гих собственных значений. Этот медленный процесс продолжается и при вы-
явлении последующих собственных значений. Поэтому в среднем последую-
щие собственные значения будут выявляться за меньшее число итераций.
Обычно большая часть последующих собственных значений появляется после
одного-двух шагов. В среднем требуется от трех до пяти итераций на собствен-
ное значение. Для эрмитовых матриц дело обстоит еще лучше: требуется лишь
от двух до трех итераций на собственное значение.
По ходу выполнения QR-итераций иногда случается, что один из поддиаго-
нальных элементов (вне последней строки) становится (практически) равным
нулю. Для действительно больших матриц - это обычное явление. Всякий раз,
как это происходит, задачу можно разложить, т.е. ее можно разбить на две
меньшие задачи. Предположим, например, что = 0. Тогда Ат имеет вид
А
т
^11 ^12
о ^22
где Вхх е Суху, В22 е Ck*k,j + k = n. Теперь мы можем найти собственные значения
Вхх и В22 раздельно. Если разбиение находится недалеко от середины матрицы,
5.6, QR-алгоритм
391
то можно сэкономить много работы. Поскольку на хессенбергову (ЭЯ-итера-
цию затрачивается О(п2) флопов, то деля п пополам, мы сократим затраты на
итерацию в четыре раза.
Верхняя хессенбергова матрица, у которой все поддиагональные элементы
отличны от нуля, называется неразложимой или правильной верхней хессенбер-
говой матрицей. Я предпочитаю последний термин, поскольку у первого нет
четкого смысла. Так как каждую верхнюю хессенбергову матрицу, имеющую
нули на поддиагонали, можно разбить на подматрицы, то не стоит применять
QA-шаг к матрице, которая не является правильной верхней хессенберговой.
Этот факт важен для разработки неявного £?Я-алгоритма, который мы рас-
смотрим в следующем разделе.
Комплексные собственные значения вещественных матриц
Большинство задач на собственные значения, возникающих на практике,
связано с вещественными матрицами. То, что вещественные матрицы могут
иметь комплексные собственные значения, указывает еще на одну слабую сто-
рону сдвига на отношение Рэлея. Сдвиг на отношение Рэлея связан с вещест-
венными матрицами и потому обязательно сам вещественен: он не может да-
вать хорошие приближения для невещественных собственных значений.
Сдвиг Уилкинсона, напротив, может быть невещественным, поскольку он яв-
ляется собственным значением 2 х 2-матрицы. Таким образом, эта стратегия
сдвига допускает возможность хороших приближений комплексных собствен-
ных значений вещественных матриц.
Это приводит нас к важному моменту. Работая с вещественными матрица-
ми, мы предпочли бы, насколько возможно, оставаться в рамках системы ве-
щественных чисел. Казалось бы, использование комплексных сдвигов вытал-
кивает нас в поле комплексных чисел. Но можно избежать комплексных чи-
сел, принимая особые меры при реализации 0Я-алгоритма. Прежде всего,
комплексные собственные значения вещественных матриц появляются в виде
сопряженных пар. Таким образом, если мы знаем одно собственное значение
X, то мы знаем и другое, X. Чтобы оставаться в системе вещественных чисел,
можно попытаться построить алгоритм, который ищет эти два собственных
значения одновременно. Такой алгоритм не будет выделять их одно за другим,
выполняя дважды дефляцию (понижение порядка), а выделит вещественный
2 х 2-блок, собственными значениями которого будут X и X. Как можно по-
строить такой алгоритм?
Стратегия сдвига Уилкинсона вычисляет собственные значения конечной
2 х 2-подматрицы (5.6.17). Если у вещественной Ат _t одно собственное значе-
ние для (5.6.17) комплексное, то таково же и другое - это комплексно сопря-
женные рт _ t и pw_r Так как матрица Ат _ 1 - рт _ комплексная, 0Я-шаг со
сдвигом рт _ ] приведет к комплексной матрице Ат. Однако можно показать
(см. ниже), что если сразу за этим шагом следует (ЭД-шаг со сдвигом p^.j, то
полученная Ат будет опять вещественной.
В следующем разделе мы изложим двухшаговый (?Я-алгоритм, который по-
лучает Ат +! сразу из Ат_ ь минуя Ат. Эти вычисления выполняются полностью
392
Глава 5. Собственные значения и собственные векторы I
в вещественной арифметике и стоят почти столько же, сколько и два обычных
(одинарных) 07?-шага. Итерации удовлетворяют условию a(n*in_2 -> 0 вместо
0- Сходимость обычно квадратичная, так что после очень небольшого
числа итераций а(т) 2 становится настолько малым, что для практических це-
лей его можно положить равным нулю. Тогда
где \т е R2x2 имеет собственные значения X и X, которые можно вычислить ак-
куратно по формуле корней квадратного уравнения (упражнение 5.6.27). Ос-
тающиеся собственные значения матрицы Ат все являются собственными зна-
чениями матрицы Ат, так что на последующих итерациях можно ограничиться
матрицей Ат. Так получается двойная дефляция.
Особые сдвиги
Существуют некоторые специфичные ситуации, в которых сдвиг Уилкин-
сона не работает. Рассмотрим следующий пример.
Пример 5.6.18. Пусть
(5.6.19)
Поддиагональ целиком состоит из единиц, и, кроме того, имеется 1 в пози-
ции (1, п). Все остальные элементы равны нулю. Эта правильная верхняя хес-
сенбергова матрица является унитарной, поскольку ее столбцы образуют орто-
нормированное множество. Следовательно, в 0Л-разложении А имеем Q = А и
R = L Поэтому A j - RQ = А и 0Л-шаг ни к чему не приводит. И для унитарных Л
так будет всегда. Это не противоречит приведенным выше результатам о схо-
димости. Все собственные значения унитарной матрицы лежат на единичной
окружности комплексной плоскости, так что все значения | Ху + j/Ay | равны 1.
Эта «симметричная» ситуация нарушится при любом сдвиге. Но для матрицы
(5.6.19) и сдвиг на отношение Рэлея, и сдвиг Уилкинсона равны нулю и обе
стратегии терпят неудачу. □
Поскольку существуют матрицы, подобные описанной в примере 5.6.18,
стандартные 0Я-программы для несимметричных задач на собственные значе-
5.6. QR-алгоритм
393
ния включают возможность особого сдвига. Если выяснится, что алгоритм не
может сойтись, на что указывает большое количество шагов, выполненных по-
сле последнего понижения порядка, то выполняют заключительный шаг с
особым сдвигом. Смысл особого сдвига - нарушить симметрию, если она пре-
пятствует сходимости. Точное значение сдвига не так уж и важно: к примеру,
это может быть любое случайное число, имеющее тот же порядок величины,
что и элементы матрицы. Необходимость в особом сдвиге возникает редко.
Вопрос, который все еще остается открытым, — как найти стратегию сдви-
га,которая обычно обеспечивала бы быструю (например, квадратичную) схо-
димость и гарантировала бы сходимость в любой ситуации.
Вырожденный случай
В нашем рассмотрении 0Л-алгоритма вырожденные матрицы требуют осо-
бого внимания. Поскольку матрицы, которые действительно являются вырож-
денными, на практике встречаются редко, есть соблазн сберечь усилия и полно-
стью проигнорировать этот случай. Однако это может привести вас к непра-
вильному пониманию алгоритма. Если бы каждый результат предварялся
словами «Предположим, что Л невырожденна», вы могли бы получить впечатле-
ние, что вырожденность - нечто очень плохое, чего следует избегать любой це-
ной. На самом деле верно обратное. Цель стратегии сдвига — найти сдвиги, по
возможности близкие к собственным значениям. Чем ближе р к собственному
значению, тем ближе сдвинутая матрица А - р/ к матрице с нулевым собствен-
ным значением, т.е. ближе к вырожденной матрице. Если сделать сдвиг равным
собственному значению, то А - р/будет вырожденной. С этой точки зрения вы-
рожденный случай оказывается весьма желательным и достойным особого вни-
мания. Это подтверждается следующей теоремой, которая показывает, что если
0Я-алгоритм применяется к правильной.верхней хессенберговой матрице с ис-
пользованием в качестве сдвига точного собственного значения, то, в принци-
пе, достаточно одного 0Я-шага, чтобы выделить собственное значение. В по-
рядке подготовки к этой теореме, выполните следующее упражнение.
Упражнение 5.6.20. Докажите два следующих утверждения.
(а) Если А е С"4" - правильная верхняя хессенбергова матрица, то первые
п - 1 столбцов матрицы А линейно независимы.
(Ь) Если R е Спхп - верхняя треугольная матрица, первые п - 1 столбцов ко-
торой линейно независимы, то все первые п - 1 элементов главной диагонали
Гц, г22, ••• Гп- 1л-1 должны быть отличны от нуля. □
Теорема 5.6.21. Пусть А е С”хи — вырожденная правильная верхняя матрица
Хессенберга и В- результат применения к А одного шага QR-алгоритма со сдвигом
0. Тогда вся последняя строка матрицы В состоит из нулей. В частности, Ьпп = 0
является собственным значением и сразу может быть удалено при дефляции.
Упражнение 5.6.22. Прочтите первый абзац следующего доказательства, за-
тем самостоятельно завершите доказательство, используя результаты упражне-
ния 5.6.20. □
Доказательство. Имеем В = RQ, где А = QR, Q — унитарная, a R - верхняя
треугольная матрицы. Поскольку А вырождена, a Q невырожденна, R должна
394
Глава 5. Собственные значения и собственные векторы I
быть вырожденной. Отсюда следует, что по крайней мере один элемент г/7
главной диагонали равен нулю.
Из упражнения 5.6.20, п. (а), мы знаем, что первые п - 1 столбцов мат-
рицы А линейно независимы. Обозначим их через аъ а2, ..., ап _ ь и пусть
И, г2, •••> гп - 1 обозначают первые п - 1 столбцов матрицы Л. Из равенства
R = Q'A видно, что r{ = Q'ax, r2 = Q'a2, ... rn_ j = Q'af,_ Р Поскольку 0* невыро-
жденна и a2i ..., ап_ 1 линейно независимы, г2, ..., rn _ j также должны
быть линейно независимыми. Следовательно, в силу п. (Ь) упражнения
5.6.20, первые п - 1 элементов главной диагонали матрицы R отличны от
нуля. Мы уже отмечали, что хотя бы один элемент главной диагонали дол-
жен равняться нулю, и это будет последний ее элемент. Поскольку R -
верхняя треугольная матрица, отсюда следует, что вся последняя строка
матрицы R состоит из нулей. Так как В = RQ, вся последняя строка матри-
цы В должна также состоять из нулей. □
Следствие 5.6.23. Пусть X есть собственное значение правильной верхней
хессенберговой матрицы А е С"х”. Пусть В есть результат одного QR-шага QR-
алгоритма со сдвигом X. Тогда последняя строка матрицы В есть [0,..., 0, X].
Таким образом, собственное значение X можно сразу исключить при пониже-
нии порядка.
Теорема 5.6.21 и следствие 5.6.23 верны в точной арифметике. На практи-
ке ошибки округления приведут к тому, что bn n _ t будет не совсем равным
нулю. В большинстве случаев Ьп п _ । будет достаточно далеко от нуля и не даст
сигнала для понижения порядка. Если это произойдет, обычно достаточно
одного добавочного 0Л-шага (с тем же сдвигом), чтобы снова прийти к по-
нижению порядка.
Дополнительные упражнения
Упражнение 5.6.24. Это упражнение показывает, что в 0Я-алгоритме требо-
вание положительности элементов главной диагонали Л-множителей является
несущественным.
(а) Пусть А невырожденна и А = QR = QR, где 0 и 0 - унитарные матрицы, а
R и R - верхние треугольные. Поскольку мы не наложили ограничений на
элементы главных диагоналей матрицы R или R, может случиться, что Q*Q
и R*R. Покажите, что найдется такая унитарная диагональная матрица D, что
Q = QDhR = D'R . (Указание: Перепишите равенство QR = QR так, чтобы с од-
ной стороны была унитарная матрица, а с другой - верхняя треугольная. Затем
используйте тот факт, что матрица, являющаяся одновременно и унитарной,и
верхней треугольной, должна быть диагональной (упражнение 5.4.40).)
(Ь) Пусть А невырожденна. Положим Ло = А и Ао = А, и пусть (J7) и (Л7) - по-
следовательности, для которых
Ат _, = QmRm, RmQm = Aa,
- 1 ~ Qm^m’ &т@т ~
5.6. QR-алгоритм
395
где Qm и Qm - унитарные, a Rm и Rm — верхние треугольные матрицы. Докажите
индукцией по т, что существует последовательность унитарных диагональных
матриц (DJ таких, что Ат = D*mAm _ xDm для всех т.
(с) Пустьпа^т} обозначают (/,;)-элементы матриц Л, и Ат. Покажите,
что \а^т}\ = при всех i,jиа[т) = а^т) при всех L □
Упражнение 5.6.25. Пусть
"О О
л0 -
1
о
о
о
о
о
о
очевидно, она является верхней хессенберговой и вырожденной. Нет необхо-
димости применять ()Я-алгоритм к этой матрице, но мы все же проделаем это,
чтобы понять его особенности в данном случае.
(а) Положим
Покажите, что Ло = Qj/?! и что это есть (ZK-разложение матрицы Ло. Пусть
= R&. Покажите, что А{ не является верхней хессенберговой матрицей.
(Ь) Получите другое 0Л-разложение матрицы Ло, результат которого А{ есть
верхняя хессенбергова матрица.
(с) Найдите, где нарушается доказательство теоремы 5.6.5 в вырожденном
случае. □
Упражнение 5.6.26. Пусть А = (а/?) е С"х".
(а) Покажите, что апп = е*Аеп, где еп обозначает п-й вектор стандартного ба-
зиса. Таким образом, сдвиг р = апп является отношением Рэлея.
(Ь) Пусть А - верхняя хессенбергова матрица. Приведите неформальные
доводы, доказывающие, что еп является приближением собственного векто-
ра матрицы АТ, если а„ п _ 1 достаточно мало. Приближение улучшается при
ап,п - 1 —> О-
Таким образом, сдвиг на отношение Рэлея есть отношение Рэлея, соответ-
ствующее приближенному собственному вектору. □
Упражнение 5.6.27. Здесь мы внимательно рассмотрим вычисление собст-
венных значений вещественной 2 х 2-матрицы. Пусть нужно найти собствен-
ные значения матрицы
_й21
а12
а22
е R2x2.
Прямое применение формулы для корней квадратного уравнения к харак-
теристическому многочлену иногда приводит к неточным результатам. Избе-
396
Глава 5. Собственные значения и собственные векторы I
жать этого можно, выполняя ортогональное преобразование подобия, чтобы
привести матрицу А к специальному виду. Пусть
с
Q-
-S
S
с
является вращением. Тогда с = cos 0 и s = sin 0 для некоторого 0. Пусть
А = QTAQ.
(а) Оказывается, желательно так выбирать Q, чтобы для А выполнялось усло-
вие а{ j = а22. Покажите, что если а, । = а22, то собственные значения А и А равны
Я|| - 7^21^12 •
Покажите, что собственные значения есть пара комплексно сопряжен-
ных чисел, если d2l и я12 имеют противоположные знаки. Эта формула по-
зволяет вычислить комплексные собственные значения без взаимосокра-
щений, так что собственные значения получаются с точностью исходных
данных. Преобразования такого типа используются программами пакета
LAPACK. В части (Ь) вы убедитесь, что такие преобразования всегда воз-
можны. Рассмотрение случая вещественных собственных значений будет
продолжено в части (с).
(Ь) Покажите, что
+s2a22 -cs(al2 +a2l) c2ai2 -?a2l +cs(au -a22)
_c2a2l -s2ai2 -a22) c2a22 +s2al{ +cs(al2 +fl21)
Используя тригонометрические тождества cos 20 = с2 - 52и sin 20 = 2sc, пока-
жите, что d, t = a22 тогда и только тогда, когда cos 20 (Я| । - а22) = sin 20 (fl|2 + а21).
Покажите, что если я12 + я21 = 0, мы получим аи = а22, положив с = 5 = 1 / 72. В
противном случае выберите 0 так, чтобы
i = tg 20 =
а11 ~а22
а[2 +а21
дало искомый результат. Пусть t = tg 20 = s/c. Воспользуйтесь формулами для
половиннго угла и другими тригонометрическими тождествами, чтобы пока-
зать, что
sin 20 _ i
l+cos20 1 Vl + F
Далее покажите, что с = 1 / 71 + /2 и s = ct. Альтернативная формула для Z,
которая использует ctg 20 вместо tg 20 (полезная при | а{х - а221 > | <7,2 + л211),
может быть выведена из упражнения 6.6.46.
5.6. QR-алгоритм
397
(с) Если собственное значение окажется вещественным, т.е., еслия21я12 > О,
то можно применить второе вращение для преобразования В к верхней тре-
угольной форме. Чтобы не усложнять обозначения, опустим крышечку над В,
т.е. предположим, что А уже удовлетворяет условиям = а22 и a2i^i2 0 и мы
ищем преобразование А = QTAQ, для которого а21 = 0. Покажите, что из условия
ап = а22 следует, что А имеет более простую форму
А =
ап -cs(al2 +л21) с2я12 -$2я2|
с2я21 -52я12 +cs(al2 + я21)
Покажите, что если я12 = 0, то мы получим искомый результат, приняв с = 0
и 5 = 1. В противном случае покажите, что д/а21 /а12 есть вещественное число, и
t = s/c = у]а21 /я|2 дает искомый результат. Тогда , и а22 являются собственны-
ми значениями матрицы А.
Упражнение 5.6.28. Пусть А е Спхп есть правильная верхняя хессенбергова
матрица с (^-разложением А = QR.
(а) Пусть A, Q е С"х("" ° состоят из первых п - 1 столбцов матриц А и Q. По-
кажите, что существует такая невырожденная верхняя треугольная матрица
/? е COi-DxOi-i), что0 = A R~l. (Используйте соображения из доказательства тео-
ремы 5.6.21.)
(Ь) Используйте результаты п. (а), чтобы показать, что Q есть верхняя хес-
сенбергова матрица.
(с) Покажите, что В - RQ есть верхняя хессенбергова матрица.
Таким образом, применение 0Я-алгоритма к правильной верхней хессен-
берговой матрице не меняет верхнюю хессенбергову форму независимо от
того, вырождена матрица или нет. Очевидно, это верно и для £М?-алгоритма со
сдвигом. □
Упражнение 5.6.29. Пусть Л е Спхп — матрица из упражнения 5.6.18.
(а) Пусть со е С - собственное значение матрицы А и ему соответствует соб-
ственный вектор у. Запишите соотношение Av = cov и проверьте, что v кратен
вектору
(5.6.30)
а со является одним из корней п-й степени из единицы. (Корнями п-й степени
из единицы называются комплексные числа, для которых со” = 1. Имеется п та-
ких чисел, и они равномерно расположены на единичной окружности.) Обрат-
но, покажите, что если со есть корень п-й степени из единицы, то со является
398
Глава 5. Собственные значения и собственные векторы I
собственным значением матрицы А с собственным вектором v, определенным
в (5.6.30). Таким образом, собственные значения матрицы А совпадают с кор-
нями n-й степени из единицы.
(Ь) Из п. (а) следует, что характеристический многочлен матрицы А равен
V - 1. (Почему?) Дайте другое независимое доказательство этого, используя
формулу det(V- А) и индукцию по п. □
Обратите внимание, что Л является сопровождающей матрицей, и сравните
данное упражнение с упражнением 5.2.23.
5.7. Реализация (М?-алгоритма
В этом разделе мы введем явный 07?-алгоритм и обсудим детали практиче-
ской реализации его вариантов с одинарным сдвигом и с двойным сдвигом.
Наш подход нестандартен и следует работам [50], [80]. Достоинством обычно-
го подхода, использующего так называемую явную Q-теорему (теоремы 5.7.23
и 5.7.24) является его краткость. Преимущество нашего подхода в том, что в
нем ясно просматривается связь между явной и неявной версиями 0К-алго-
ритма.
В обсуждаемых здесь алгоритмах к рассматриваемой матрице применяет-
ся последовательность вращений или отражений. Следовательно, они обрат-
ноустойчивы по норме (см. разд. 3.2). Это озачает, что каждое собственное
значение, найденное с помощью этих алгоритмов, является истинным собст-
венным значением матрицы А + 5Л, для которой || 6А || / || А || мало. Это не га-
рантирует, что вычисленное собственное значение будет близким к собст-
венному значению матрицы Л, если только оно не будет хорошо обусловлен-
ным. Числа обусловленности и чувствительность собственных значений
рассмотрены в разд. 6.5.
Неявный 07?-алгоритм
0Я-шаг со сдвигом имеет вид
Л - р/ = QR, RQ + р/ = Л. (5.7.1)
Полученная матрица Л подобна Л относительно ортогонального преобразо-
вания подобия:
Л = QTAQ. (5.7.2)
Обратите внимание, что обозначение Л используется вместо ЛР В этом раз-
деле мы будем использовать символ Л, для обозначения частного результата
одиночного 07?-шага, а не z-й итерации 0А-алгоритма.
Будем предполагать, что Л и Л имеют верхнюю хессенбергову форму, а
форма Л к тому же правильная. Если шаг (5.7.1) запрограммирован так,
5.7. Реализация QR-алгоритма
399
что Q вычисляется прямолинейно как произведение вращений или отраже-
ний, то получается вполне удовлетворительный алгоритм. Такой алгоритм
называется явным 0Я-алгоритмом. Оказалось, однако, что в редких случаях
операция вычитания р/ из А приводит к потере принципиально важной
информации из-за потери значащих цифр. Неявный 0Я-алгоритм использу-
ет другой способ выполнения шага. Вместо (5.7.1) в неявном 07?-алгоритме
выполняется преобразование подобия (5.7.2), когда к А применяется по-
следовательность вращений или отражений. Поскольку здесь на самом
деле сдвиг никогда не вычитается из Л, этот алгоритм более устойчив. За-
траты на выполнение неявного £?Я-шага почти такие же, как и для явного
шага, и поэтому неявный алгоритм оказывается предпочтительнее. Более
того, аннексированный двухшаговый 0Л-алгоритм основан на тех же сооб-
ражениях.
Чтобы увидеть, как выполняется неявный £?/?-шаг, познакомимся поближе
с работой явного алгоритма. Как объяснялось в предыдущем разделе, А - р/
можно привести к верхней треугольной форме с помощью последовательности
плоских вращений:1
R = QTn_v- QlQ[(A-pD.
(5.7.3)
Вращение Q[ действует на строки i и i + 1 и уничтожает элемент ai+м. Пре-
образующая матрица Q в (5.7.2) дается выражением Q = Q{Q2... Qn_ Р При на-
шем подходе один за другим формируются вращения 0, и поэтапно выполня-
ется преобразование подобия (5.7.2). Начав с Ао = А, мы получаем промежуточ-
ные результаты Alf А2, Л3, ... по формуле
4 = '= 1, •••> я - 1, (5.7.4)
и заканчиваем с Ап_, = А. Нетривиальность неявного алгоритма будет состоять
в том, чтобы получить вращения Q. без выполнения разложения (5.7.3) и даже
без формирования матрицы А - р/.
Начнем с Q,. Q[ уничтожает я21 в А - р/. Другими словами, Q? действует на
первые две строки матрицы А - р/ так, чтобы
Лц-Р
Й21
*
о
Пусть а = -J(au -р)2 +а21. Так как а21 * 0, то и а 0. Поэтому можно опре-
делить
с = (0ц - р)/а и s = а21/а.
(5.7.5)
1 Для простоты мы говорим о вращениях. Во всех случаях отражение будет работать не хуже.
400
Глава 5. Собственные значения и собственные векторы I
Тогда вращение
(5.7.6)
даст нужный результат. У нас есть числа а1Р в21 и р, и это все, что нужно
для вычисления Qv В частности, нет необходимости преобразовывать А
в А - р/.
Как только мы получили можно вычислив А} = Q[ AQ{. Убедимся, что
именно так Л, и выглядит. Умножение А слева на Q? изменяет лишь первые
две строки. Это преобразование сохраняет верхнюю хессенбергову форму мат-
рицы. (Это не уничтожает a2[i если только р не оказалось равным нулю.) Умно-
жение Q[А справа на Ql преобразует первые два столбца. Полученная матрица
имеет вид
а(1) 12 а<0 °13 . ‘t?
а(|) “22 а(,) “23 •
а<» “31 “32 ^33 • ^3,л
0 0 й43 • ^4, п
0 0 0 •• а „ „ 1 п,п— 1 ^п,п
где верхними индексами отмечены измененные элементы. Полученная матри-
ца уже не верхняя хессенбергова, ибо ее элемент (3,1) не равен нулю. Мы на-
зываем этот элемент выступом.
После явного 0Я-шага мы бы имели
* ♦
= <2Г(Л - р7) =
О х * ••• * *
О у а33-р ••• а3я
О 0 а43 ••• аА„
^п,п-\ Р
Теперь в качестве 027 нужно взять вращение, действующее на вторую и тре-
тью строки и такое, чтобы
Таким образом, нам необходимо знать х и у (точнее, нам нужно знать их от-
ношение), чтобы вычислить Q2.
5.7. Реализация QR-алгоритма
401
Поскольку мы не выполняем явный (ZR-шаг, то получаем а не Наша
Га(,)1
“21
L з! J
, т.е.
задача теперь определить Q2i исходя из Оказывается, что вектор
х
, взя-
тый из той части где находится выступ, пропорционален
1Л
2!
f(,)
31
для некоторого ненулевого 0. Мы доказажем это позднее. Таким обра-
зом, знание fl*]1 и позволяет нам вычислить Q2 . Действительно, поло-
жив у = ^(д^)2 +(а^[))2, с = а(2\} /у и s = oj[)/y, будем иметь
Qi
Что хорошо в Q2 , так это то, что применение его к Ах уничтожает выступ:
Q2 А1 есть верхняя хессенбергова матрица. После применения справа Q2 для за-
вершения вычисления А2 второй и третий столбцы будут преобразованы, и мы
получим матрицу
к а<2) “12 а<2) “13
а(2) а22 а(2) “23
А2 - 0 а(2) “32 а(2) азз
0 а(2) “42 а(2) “43
^п,п-\ &п,п
которая будет верхней хессенберговой, если не принимать во внимание новый
выступ в позиции (4,2). Можно сказать, что преобразование Л, -> Л2 вытесняет
выступ с позиции (3,1) на позицию (4,2).
Читатель может легко догадаться, что алгоритм будет делать дальше. Чтобы
получить А3, необходимо иметь Q3 , которая является вращением, действующим
на строки 3 и 4. Оказывается, что Q3 есть именно то вращение, для которого
л(2)1
“32
а(2)
.42 _
О'
402
Глава 5. Собственные значения и собственные векторы I
Таким образом, Q3 А2 снова является верхней хессенберговой матрицей,
а А3 = имеет новый выступ в позиции (5,3).
Каждое последующее вращение вытесняет выступ вниз и дальше на одну
позицию. Матрица воздействует на самые нижние две строки, уничтожая
выступ в позиции (п, п - 2). Умножение на t справа уже не создаст нового
выступа. Неявный 0Я-шаг завершается. По вполне понятным причинам неяв-
ный 0Я-алгоритм называется алгоритмом прогонки выступов.
Мы должны еще доказать, что вращения, вытесняющие выступы, являются
правыми вращениями (?Я-шага. С этой целью удобно ввести еще несколько
обозначений. Для i = 1, ..., п - 1 положим Q, = Q\Qi ••• Qi и (ср.с (5.7.3))
л, = Qi ... GIG,(А - р/) = Qf(A - pl). (5.7.7)
Тогда R = Rn_ j. Для каждого i матрица Q?+l есть вращение, преобразующее
R, в Ri+ j. В частности, с его помощью
Мы знаем, что Ах есть верхняя хессенбергова матрица, за исключением вы-
ступа в позиции (3,1). Теперь сделаем индуктивное предположение, что Af есть
верхняя хессенбергова матрица, за исключением выступа в позиции (/ + 2, /).
Нам нужно показать, что
а
а
U)
Z+1.Z
(/)
z+2,z
= 5
для некоторого ненулевого 8. Это докажет, что Qf+i является именно тем пре-
образованием, которое уничтожает выступ в Аг Отсюда будет следовать, что
Aj + j является почти верхней хессенберговой матрицей, отличаясь лишь вы-
ступом в позиции (/ + 3, i + 1).
Требуемое заключение вытекает из соотношения
ДЯ, = Я,Л,
(5.7.8)
которое доказывается следующим образом. Так как А. = Q?AQ, то А@[ = Q[А.
Умножая это равенство справа на (А - р/), используя определение Я. = QT (А - р/)
и очевидное соотношение А(А - р7) = (А - р7)Л, получаем (5.7.8).
Теперь запишем (5.7.8) в блочной форме как
Л (О
Л11 Л12
л(/) л(/)
Л21 22
/?<;> r^
О R"
'я<;> а12
О R2!? _А21 Л22
(5.7.9)
5.7. Реализация QR-алгоритма
403
где (1,1)-блоки образуют i х /-матрицы. Я*'* является верхней треугольной,
Я^ - верхней хессенберговой. Вычисляя (2,1)-блоки произведений с каждой
стороны, находим, что
(5.7.10)
В этом соотношении имеется много нулей. Поскольку Л — верхняя хессен-
бергова, Л21 имеет только один ненулевой элемент ai+u в верхнем правом углу.
Подобным образом, по индуктивному предположению Д является почти хес-
сенберговой, так что А!^ имеет лишь два ненулевых элемента: . и а(/+\, • В
частности, только последний столбец в (5.7.10) отличен от нуля. Приравнивая
последние столбцы в (5.7.10) , находим, что
а...
i+1,/
Гг(/)
-(/) = S+1,/+1
|_ /+2./+1
(5.7.11)
Л/+ I,/-
Так как А — правильная верхняя хессенбергова матрица, то и а/ + м , и не
равны нулю. Таким образом, мы получили требуемый результат.
Упражнение 5.7.12. Напишите в псевдокоде алгоритм, выполняющий неяв-
ный 0Я-шаг. □
Упражнение 5.7.13. Требование, чтобы хессенбергова форма была правиль-
ной, обязательно для пропорциональности векторов в (5.7.11). Что произойдет
с неявным 0Я-шагом, если ai+ u = 0 для некоторого i ? □
Упражнение 5.7.14. Рассмотрите следующий алгоритм.
(i) Формируем = Q? AQ^ (создание выступа).
(ii) Приводим Л1 к верхней хессенберговой форме ортогональным преобра-
зованием подобия, как в разд. 5.5.
Покажите, что этот алгоритм выполняет неявный QR-шаг. □
Симметричные матрицы
Неявный QR-шаг значительно упрощается, если матрица симметрична
(или эрмитова, в комплексном варианте). В этом случае и Л, и А симметричны
и трехдиагональны. Промежуточные матрицы А2, А3, ... также все симмет-
ричны. Каждая из них отличается от трехдиагональной лишь наличием высту-
па, который появляется как ниже поддиагонали, так и выше наддиагонали.В
хорошей реализации неявного 0Я-шага должны быть использованы все выго-
ды от симметрии. Например, при преобразовании АвА1 невыгодно вычислять
несимметричный промежуточный результат Q^A. Лучше прямо выполнить
преобразование А в Q?AQb используя симметрию обех матриц для минимиза-
ции затрат при вычислениях.
В компьютерной программе эти матрицы можно хранить очень ком-
пактно. Достаточно одномерного массива длины п для хранения главной
404
Глава 5. Собственные значения и собственные векторы I
диагонали, массива длины п - 1 для хранения поддиагонали ( = наддиаго-
нали), и одной дополнительной ячейки для хранения выступа. Каждую
промежуточную матрицу можно хранить на месте предыдущей, так что
достаточно лишь одного множества массивов. Задание этой структуры дан-
ных не только сэкономит память, но вдобавок заставит программиста ис-
пользовать симметрию и ускорит вычисления. Детали можно найти в уп-
ражнениях с 5.7.29 по 5.7.34.
Qff-алгоритм с двойным сдвигом
Пусть Л е Rwx" — вещественная правильная верхняя хессенбергова матрица.
Рассмотрим пару QR- шагов со сдвигами р и т, которые могут быть и ком-
плексными:
А - р/ = QORO, RdQo + р/ = Л,
г р» р^р г / (5 7 15)
А - т/ = QXRX, RXQX + т/ = А.
Так как А = QpAQp иА = Q*AQX, то мыимеем А = Q'AQ, где Q = QpQv Если р и
т оба вещественные, то и все промежуточные матрицы в (5.7.15) будут веще-
ственными, как и А. Если используются комплексные сдвиги, то в результате
получатся комплексные матрицы. Однако если р и т выбраны так, что т = р,
то А получится вещественной, несмотря на то, что промежуточные матрицы
были комплексными. Следующая лемма содержит основной для этой задачи
результат.
Лемма 5.7.16. Пусть Q = QpQx и R = RxRp, где Qp, Qx, Rp и Rx даны в (5.7.15).
Тогда
(А - хГ)(А - pZ) = QR.
Доказательство. Поскольку QpAQp = Л, легко заключить, что (Л - tI)Qp =
= Qp(A - xZ). Следовательно (Л - т/)(Л — pZ) = (Л — tI)QpRp = QP(A - т/)Лр =
= qpq« = ел. □
Лемма 5.7.17. Пусть в (5.7.15) т = р. Тогда
(а) (Л - т/)(Л - pZ) — вещественная матрица.
(Ь) Если р и т не являются собственными значениями матрицы Л, то матрицы
Qu R из леммы 5.7.16 вещественные и матрица А из (5.7.15) также вещественная.
Доказательство, (а) (Л - р/)(Л - рТ) = Л2 - (р + р)Л + ppZ. Оба коэффициента
р + р - 2Re(p) и рр = | р |2 вещественные, так что и (Л - р/)(Л - pZ) вещественна.
(Ь) Так как обе матрицы Л - р/ и Л - т/ не вырождены, Q/f-разложения в
(5.7.15) единственны при условии, что Rp и Rx имеют вещественные положи-
тельные элементы на главной диагонали. Тогда Q = QpQT является унитарной
матрицей, a R = RXRP — верхней треугольной с вещественными положительными
элементами на главной диагонали. Таким образом, по лемме 5.7.16 Q и R суть
5.7. Реализация QR-алгоритма
405
однозначно определенные множители QR-разложения матрицы (А - т/)(Л - pZ).
Но эта матрица вещественная, так что множители Q и R также должны бытьве-
щественными. Таким образом, А = Q*AQ = QTAQ — вещественная. □
И опять мы предполагаем невырожденность. Вырожденный случай дос-
тавляет определенные трудности, поскольку Q и R оказываются неоднознач-
но определенными. Но не стоит беспокоиться: Q можно всегда выбрать ве-
щественной. Следовательно, окончательная матрица А также является веще-
ственной. Разрабатываемый нами алгоритм всегда приводит к вещественной
матрице Л, независимо от того, являются сдвиги собственными значениями
или нет.
Наша цель — построить преобразование вещественной матрицы А сразу в
вещественную матрицу Л, используя при этом лишь вещественную арифмети-
ку. Для начала рассмотрим не самое лучшее решение этой задачи. Зато мы
увидим на практике, как создаются алгоритмы.
Итак, не самый лучший алгоритм. Вначале строим вещественную мат-
рицу
В = (А - р!)(А - pl) - А2 - 2Яе(р)Л + | р |7. (5.7.18)
Затем вычисляем вещественное QR-разложение В = QR. Наконец, выполня-
ем вещественное ортогональное преобразование подобия А = QTAQ. Назовем
это неявным QR-шагом с двойным сдвигом.
Упражнение 5.7.19. Воспользуйтесь MATLAB’om, чтобы выполнить неяв-
ные QR-шаги с двойным сдвигом для матрицы
1 2 3 4
5 6 7 8
О 9 10 11
0 0 -12 13
Используйте в качестве сдвигов собственные значения 2 х 2-подматрицы в
нижнем правом углу. Выполняйте итерации до тех пор, пока не выделите пару
собственных значений. Вот пример программного кода:
А = [1 2 3 4; 5 6 7 8; 0 9 10 11; 0 0 -12 13]
п = 4
format long
shift = eig(A(n-1:n,n-1:n))
В = real(A - shift(1)*eye(n))*(A - shift(2)*eye(n));
[Q, R] = qr (B) ;
A = Q'*A*Q
Что здесь указывает на сходимость? Как много итераций потребуется, что-
бы получить пару собственных значений? Как вы считаете, какова скорость
сходимости? □
406
Глава 5. Собственные значения и собственные векторы I
Эта процедура не удовлетворяет нас по нескольким причинам. Во-первых,
для вычисления В требуется умножить А на себя. На это требуется О(п3) фло-
пов, даже если А — верхняя хессенбергова. Если п велико, то мы не можем по-
зволить себе тратить по и3 флопов на каждую итерацию. Но давайте предста-
вим себе, ради обсуждения, что мы уже имеем матрицу В, Как выглядит В1
Упражнение 5.7.20.
(а) Покажите, что матрица В из (5.7.18) удовлетворяет условию btJ = 0, если
i > J + 2. (Мы называем такую матрицу 2-хессенберговой матрицей.)
(Ь) Покажите, что Ьу ф 0, если i -j + 2. Таким образом, В является правиль-
ной 2-хессенберговой матрицей. □
Поскольку В — почти верхняя треугольная матрица, ее 0Л-разложение
можно найти ценою малых затрат. В первом столбце матрицы В только первые
три элемента отличны от нуля. Таким образом, этот столбец можно привести к
верхней треугольной форме с помощью отражения, действующего только на
первые три строки (или с помощью пары плоских вращений). Обозначим это
отражение через (= 0(). Подобным образом, поскольку ненулевая часть вто-
рого столбца матрицы В простирается лишь до i42, его можно преобразовать в
верхнюю треугольную форму отражением 02Г> которое действует только на
строки со второй по четвертую. Продолжая таким образом, получим верхнюю
треугольную форму после выполнения п - 1 таких отражений:
R = ... QlQlB.
Каждое отражение действует на три строки, за исключением которое
действует лишь на две строки. Мы имеем Q = Q{Q2... Qn. ь но, конечно, мы не
должны перемножать сразу все отражения. Напротив, мы должны выполнять
преобразование А = QrAQ поэтапно: пусть Ао = А и
4-= Q/r4 _1Q/, i = 1, ..., п - 1. (5.7.21)
Тогда А = Ап _ j. Каждое из этих преобразований можно выполнить посред-
ством О(п) флопов, поскольку каждое отражение действует лишь на три или
менее строк или столбцов. Таким образом, если мы знаем Qn то полное преоб-
разование А в А можно выполнить с помощью О(п2) флопов.
Теперь остается понять, как определить Qt без вычисления матрицы В -
= (А - r/)(A - pl). Начнем с Q{. Для этого требуется лишь первый столбец
матрицы В, вычисление которого обходится дешевле вычисления целой мат-
рицы. Первый столбец имеет только три ненулевых элемента, которыми, как
легко видеть, будут
Ь21 = <*21 [(«11 + «22) - (Р + *)],
Z>31 = а21 а1г.
(5.7.22)
5.7. Реализация QR-алгоритма
407
Эти простые формулы дают нам информацию, необходимую для определе-
ния Qj -отражения, действующего на строки 1-3 как преобразование
Так как любое кратное этого вектора равно годится для определения 0Ь не-
нулевой общий множитель л21 обычно отбрасывается.
Получив 0|, можно использовать его для вычисления матрицы - Q[AQl9
которая не является верхней хессенберговой. Поскольку наше преобразование
воздействует на строки 1-3 и столбцы 1-3, то А{ имеет вид
Га(|) п а(,) “12 д(,) “13 д(,) “14 а(,) 51 а(,) “16
а(1) “21 а(|) “22 л(,) “23 а(,) “24 а(|) “25 а(|) “26
а(1) “31 “32 “33 “43 а(|) “35 а(|) “36
Л1 - а(1) 41 а(|) “42 “34 “44 й45 «46
0 0 0 “54 «55 «56
0 0 0 0 а65 «66
и должна быть верхней хессенберговой, за исключением выступа, состоящего
из трех элементов а3\\ и
Теперь нам надо определить 02. Явный алгоритм требует вычисления Rx =
0[ В. Тогда 02 будет отражением, действующим на строки 2-4, для которого
Г22 -(0 '32 /1) '42 -» 0 0
Ниже (упражнение 5.7.37) будет показано, что векторы
"(1)" '22 r(D Г32 -(О '42 И Га(|)1 “21 а(|> 31 а(|) 41
пропорциональны. Таким образом, 02 можно получить из А1 как отражение,
для которого
а
(|)
21
*
о
а
а
О)
41
о
408
Глава 5, Собственные значения и собственные векторы I
Теперь, зная 02, можно вычислить А2 = Q2 AXQ2. Преобразование -> Q2A}
приводит столбец 1 к верхней хессенберговой форме. Затем преобразование
Q2 Ах -> Л2, воздействуя на столбцы 2-4, создаст новые ненулевые элементы в
позициях (5,2) и (5,3).Таким образом,
к а(2) “|2 fl(2) “13 fl(2) 14 а(2) 15 а<2) 16
а(2) а22 а(2) “23 а(2) “24 а(2) “25 а(2) “26
0 а(2) “32 а(2) “33 а(2) “34 а(2) “35 а(2) “36
а2 - 0 а(2) “42 а(2) “43 а(2) “44 а(2) “45 fl<2) “46
0 а<2) “52 а(2) “53 а(2) “54 й55 fl56
0 0 0 0 а65 й66
Выступ переместится вниз и вправо. Так выглядит типичный шаг для даль-
нейшего процесса. Как мы увидим (упражнение 5.7.37), Q3 будет отражением,
воздействующим на строки 3-5, для которого
Таким образом, преобразование А3 -> Л4 сдвигает выступ в следующий
столбец и вниз. Каждое следующее преобразование сдвигает выступ дальше и
дальше, пока он, наконец, не исчезнет в основании матрицы. На А = Ап _ j мы
завершаем неявный 0Л-шаг с двойным сдвигом.
Обоснование неявного 0Л-шага с двойным сдвигом приводится в упражне-
нии 5.7.37. Детали реализации алгоритма обсуждаются в упражнениях с 5.7.40
по 5.7.44.
Неявная Q-теорема
Для будущих ссылок приведем здесь неявную Q-теорему, которая обычно
используется при обосновании неявного 0Я-алгоритма. Начнем со строгого
варианта теоремы.
Теорема 5.7.23. Пусть A, A, A, Q и Q е Спхп, Предположим, что А и А — пра-
вильные верхние хессенберговы матрицы с положительными элементами на под-
диагонали, a Q и Q — унитарные матрицы и
A = Q~lAQu A = Q'A Q.
Далее, предположим, что первые столбцы матрицы Q и Q равны. Тогда
Q = Q и А = А.
5.7. Реализация QR-алгоритма
409
Другими словами, унитарное преобразование подобия, сохраняющее такую
форму матрицы, однозначно определяется ее первым столбцом. При этом
подчеркивается, что все поддиагональные элементы получаемой правильной
хессенберговой матрицы должны быть положительными. На практике мы
обычно даже не пытаемся сделать эти элементы положительными, и поэтому
следующая ослабленная версия теоремы представляет определенный интерес.
Теорема 5.7.24. Пусть А, A, A, QuQ е Спхп. Предположим, что А — правиль-
ная верхняя хессенбергова матрица, А — верхняя хессенбергова, QuQ — унитар-
ные матрицы и
A = Q~'AQu A =Q 'AQ.
Далее предположим, что первые столбцы матриц QuQ пропорциональны, т.е.
Q\ =Q\d\, где | dx | = 1. Тогда А также является правильной верхней хессенберговой
матрицей, и существует унитарная матрица D такая, что
Q = QD и А = D'AD.
Смысл этого в том, что если первые столбцы матриц Q и Q по существу оди-
наковы, то и полные матрицы Q и Q по существу совпадают. В конце концов,
равенство Q = QD и означает, что каждый столбец матрицы Q лишь скалярным
множителем отличается от соответствующего столбца матрицы 0, причем ска-
ляр (некоторое dk) имеет модуль 1. Равенство А - IJr'AD означает, что А по су-
ществу совпадает с А. Мы имеем а9 = d^djdy, где | J, | = | | = 1. В итоге, уни-
тарная редукция А к правильной верхней хессенберговой форме (в основном)
однозначно определяется первым столбцом преобразующей матрицы.
Доказательства обеих неявных 0-теорем разбираются в упражнении 5.7.46.
С помощью неявной 0-теоремы можно следующим образом обосновать
неявный 0Л-шаг. Предположим, что мы преобразовали (посредством прогон-
ки выступов) матрицу к правильной верхней хессенберговой форме. Предпо-
ложим далее, что мы получили первый столбец преобразующей матрицы спра-
ва. Тогда, согласно неявной 0-теореме, мы можем завершить 0/?-итерацию.
Детали рассмотрены в упражнениях 5.7.47 и 5.7.48.
Дополнительные упражнения
Упражнение 5.7.25. Чтобы понять, насколько хорошо работает 0Я-алго-
ритм, не пользуясь при этом собственной программой, просто воспользуйтесь
MATLAB-командой eig, которая приведет матрицу к верхней хессенберговой
форме, а затем выполнит неявный 0Л-алгоритм. Например, выполните
п = 200;
А = randn (п);
t = epu timer-
lambda = eig(A)
et = eputime - t
410
Глава 5. Собственные значения и собственные векторы I
Подберите п в соответствии со скоростью вашего компьютера. □
Упражнение 5.7.26. Покажите, что для любого i
А - pl = Rh RiQi + р/= Л,,
где Л., Qu Ri те же, что и в (5.7.4) и (5.7.7). Таким образом, можно рассматри-
вать преобразование A.t = Q[A Qt как частичную 0Л-итерацию, основанную на
частичном (блочном) 0Л-разложении QtRr Тогда также Л, = R.tAR^, если R. не
вырождена. Но это просто другой вариант (5.7.8). Преимущество соотношения
(5.7.8) в том, что оно выполняется независимо от того, обратима матрица Rt
или нет. □
Упражнение 5.7.27. Докажите по индукции, что каждая из промежуточных
матриц Ai в (5.7.4) является верхней хессенберговой, за исключением выступа.
Используйте формулы Л,- = Q[A Q и ЛД, = ДЛ, чтобы непосредственно устано-
вить такую форму у Л,. А именно:
(а) Из вида 0, получите, что самые нижние п - i - 2 строки в Л, имеют фор-
му верхней хессенберговой матрицы.
(Ь) Докажите, что все элементы главной диагонали верхней треугольной
матрицы в (5.7.9) отличны от нуля. Таким образом, Я<0 невырожденна.
(с) Рассмотрите следующее нестандартное разбиение для равенства
AtRi = RiA.
М<° О
*1Гл, л12
о *] [ о а22
в котором значение иное, чем прежде. Теперь Лн имеет размеры i х (/ - 1),
для А^ эго nx(i- 1), для Afj-0 это (i - 1) х (Z - 1), а для А*;* это i х I. До-
кажите, что
4° =
X0’
о
Докажите также, что первые i - 1 столбцов матрицы Л, имеют форму верх-
ней хессенберговой матрицы.
(d) Покажите, что матрица Л, является верхней хессенберговой, за исклю-
чением выступа в позиции (Z + 2, /). □
Упражнение 5.7.28. Докажите, что для всех i элементы-выступы . в Л, из
(5.7.4) отличны от нуля, а вращение 0, — нетривиально. □
Упражнение 5.7.29. Вычислите произведение
s d g с
cj ej L5
-s
c
□
5.7. Реализация QR-алгоритма
411
Упражнение 5.7.30. Рассмотрите симметричную матрицу
'di g\
g\ di. Si
gi d3
dt-\ g,-i b
g/-i di Si
b gi di+l
• Sn-l
Sn-\ d»
которая станет диагональной, если у нее не будет выступов в позициях (/+!,/-!)
8.-1
b
и (/ - 1,/ + 1). Определите вращение Q =
так, чтобы Q Т
. Опре-
делите Q. е как
I
0
0
I
где Q расположена на позициях i и i + 1. Вычислите Q[ A Qt и отметьте, что у
полученной матрицы выступы переместятся в позициях (/ + 2,0 и (/,/ + 2). По-
кажите, что с учетом симметрии преобразование А в Q[ А (^потребует вычис-
ления лишь шести новых элементов. □
Упражнение 5.7.31. Продолжим использовать обозначения из упражнения
5.7.30.
(а) Пусть с ф 0. Покажите, что Q можно выбрать так, чтобы с > 0. Положим
t = s/c. Покажите, что (при с > 0)
2 1 2 t
С =-----5 =--------г, cs =----
1 + /2 1+Г2 1 + /2
1 t
С = —== И S =
л/1+/ 71+/2
(Не забывайте, что s, с и t обозначают соответственно синус, косинус и тан-
генс. Поэтому вы можете использовать различные тригонометрические тожде-
ства, такие как с2 + s2 = 1.)
(Ь) Выразите формулы преобразования A bQ[ A Q только через /, исключив
из них все с и s. В частности, отметьте, насколько проста формула для самого t.
412
Глава 5. Собственные значения и собственные векторы I
(с) Пусть теперь s * 0. Покажите, что Q можно выбрать так, чтобы s > 0.
Пусть k = c/s. (к обозначает котангенс.) Покажите, что (при s > 0)
2 1 2 Л
с2 =---------г-, г =----------у, cs =----------,
1 + Л2 1 + Л2 1 + Л2
1 к
С = -== И S = 7-.--.
л/1+л2 71+л2
(d) Выразите формулы преобразования А в QfAQj только через к , исклю-
чив из них все с и s. В частности, отметьте, насколько проста формула для
самого к.
(е) В зависимости от соотношения между i и g, _ t либо /, либо к могут быть
очень большими. В редких случаях это приводит к переполнению. Однако Ли/
не могут быть большими одновременно. Возможных переполнений можно из-
бежать, выбирая для данного шага соответствующий набор формул. Покажи-
те, что если | i | < |&_ 11, то | /1 < 1, Г2 < 1 и 1 < 1 + Г2 < 2, а при | b | > |&_ 11 будем
иметь |Л|<1,Л2<1и1<1 + Л2<2. □
Упражнение 5.7.32. Используя формулы и соображения из упражнений
5.7.29 и 5.7.31, напишите алгоритм, реализующий неявный 0Я-шаг для сим-
метричной трехдиагональной матрицы. Попробуйте минимизировать число
арифметических операций. Начальное вращение, создающее первый выступ,
□
можно выполнить примерно так же, как и другие вращения.
Упражнение 5.7.33 (вычисление сдвига Уилкинсона).
(а) Покажите, что собственные значения вещественной матрицы
(вещественные) числа
d
суть
(d + е)/2 ± /(d-e)/2]2+g2.
Сдвиг Уилкинсона равен тому из собственных значений, которое ближе к
е. Таким образом, мы берем квадратный корень со знаком плюс, если е > d, и
со знаком минус, если е < d.
(b) Обычно g бывает небольшим, и поэтому сдвиг почти равен е. Поэтому
устойчивый способ для вычислений - воспользоваться формулой р = е + Зе,
где Зе — малый корректирующий член. Покажите, что р = е + Зе, где
я М +
Зе = <
[Р-r.
d-e
если р<0,
если р > 0,
= Jp2 +g2-
р =-----и г
2
Отметьте, что для вычисления Зе всегда необходимо сложить два числа с
противоположными знаками. Поэтому здесь всегда будет некоторая потеря
5.7. Реализация QR-алгоритма
413
точности при взаимном уничтожении величин. Но оказывается, что имеется
более точный способ определения Зе.
(с) Покажите, что
Р+Г Р+Г
Таким образом,
Зе =
g
----, если /?< О,
г-р
—g1
----, если р<0,
г + р
где р и г определены выше. Теперь всегда складываются два положительных
числа.
Примечание. Существует некоторая опасность преувеличить важность этих
вычислений. И в самом деле, сдвиг, вычисленный тривиальным образом по
формуле для корней квадратного уравнения, будет работать почти так же хоро-
шо. Тем не менее, описанные здесь вычисления не требуют дополнительных
затрат, и поэтому можно использовать и их. □
Упражнение 5.7.34. Напишите программу на Фортране, которая вычисляла
бы собственные значения вещественной симметричной трехдиагональной
матрицы в соответствии с неявным 0Л-алгоритмом. Чтобы сполна оценить ку-
бическую сходимость, выполняйте все вычисления с двойной точностью.
Поскольку алгоритм требует, чтобы матрицы были строго трехдиагональ-
ными, вы должны перед каждой итерацией проверять поддиагональные эле-
менты, чтобы убедиться в возможности дефляции или понижения порядка. На
практике каждый элемент gkf очень близкий к нулю, должен рассматриваться
равным нулю. Воспользуйтесь следующим критерием: положите gk равным
нулю всякий раз, когда | gk | < и(\ dk | + | dk + j |), где и — единичная ошибка округ-
ления. В рамках IEEE-арифметики с двойной точностью и * 10“16. Этот крите-
рий гарантирует, что ошибка от принятия gk равным нулю будет сравнима по
величине с многочисленными ошибками округления, которые совершаются
во время вычислений. В частности, обратная устойчивость при этом не
нарушается.
После того как матрица оказывается разбитой на две или больше частей,
простейший способ понять, какие из них нужно обрабатывать, состоит в том,
чтобы начинать обработку от основания матрицы. Таким образом, вы должны
проверять поддиагональные элементы, начиная с основания, и как только
найдете нуль, выполните 0Я-итерацию для самой нижней подматрицы. Если
вы будете всегда начинать с самой нижней подматрицы, то вам будет не трудно
определить окончание работы.
Используйте все преимущества симметрии. Для хранения информации вам
нужны лишь два одномерных массива для главной диагонали и поддиагонали,
и несколько дополнительных ячеек для хранения временных переменных, та-
ких как выступы, тангенсы и котангенсы.
414
Глава 5. Собственные значения и собственные векторы I
Обычно в качестве сдвига принимается сдвиг Уилкинсона, так как он га-
рантирует сходимость. Однако если вы хотите использовать эту программу в
качестве средства обучения, необходимо встроить три возможных варианта
выбора сдвига: (i) нулевой сдвиг, (ii) сдвиг на отношение Рэлея и (iii) сдвиг
Уилкинсона. Поскольку мы намереваемся исследовать сходимость алгоритма,
в программе должна быть предусмотрена возможность вывода на печать как
матрицы на каждой итерации, так и числа итераций, необходимых для дефля-
ции или понижения порядка. Для исследования сходимости собственных зна-
чений, желательно иметь возможность распечатать элементы главной диагона-
ли с точностью до шестнадцати десятичных знаков. При этом для большей
гибкости желательно использовать экспоненциальную форму представления
чисел (в формате с плавающей точкой). Для поддиагональных элементов нас
интересует лишь их величина, так что нет необходимости видеть все шестна-
дцать цифр мантиссы: двух цифр достаточно. Тем не менее, экспоненциальная
форма нужна и здесь.
Эта программа, подобно программам для всех итерационных алгоритмов,
должна иметь возможность ограничения количества выполняемых итераций.
Я полагаю, что нет смысла выполнять более 100л итераций. (Верхний предел
можно значительно понизить, если использовать сдвиг Уилкинсона.) По дос-
тижении предельного значения числа итераций программа должна выдать со-
общение об этом и прекратить работу.
Напишите понятную структурированную программу, снабдив ее необходи-
мыми комментариями и описаниями всех входных и выходных переменных.
Проверьте ваш алгоритм на следующих двух матрицах, используя все три
возможности выбора сдвига. Первая матрица имеет вид
16 1
1 8 1
1 4 1
1 2 1
1 1
Сначала выполните проверку на этой матрице, поскольку для нее алгоритм
сходится очень быстро даже при нулевом сдвиге. Собственные значения при-
близительно равны 16.124, 8.126, 4.244, 2.208 и 0.297. Выводите матрицу на пе-
чать после каждой итерации и следите за эффектной кубической сходимостью
для каждого из сдвигов. Теперь возьмите 7 х 7-матрицу
2 1
1 2 1
1 2 1
1 2 1
1 2 1
1 2 1
1 2
5.7. Реализация QR-алгоритма
415
собственные значения которой равны Хк = 4sin2(£n/16), к = 1,..., 7. Эта матрица
создаст проблемы при сдвиге на отношение Рэлея. Поскольку она требует
большого числа итераций при отсутствии сдвига, не следует распечатывать ее
после каждой итерации. Достаточно следить за числом итераций, затрачивае-
мых на одно собственное значение.
Если вы захотите поэкспериментировать с такой же матрицей большей
размерности, то для случая w х л ее собственные значения будет равны
кк - 4sin2(ATu/(2n + 2)), к = 1, ..., п.
Вы можете проверить механизм понижения порядка матрицы в вашей про-
грамме, приготовив несколько больших матриц с несколькими нулями на под-
диагонали. Например, расположите одну за другой три или четыре копии при-
веденных выше матриц. □
Упражнение 5.7.35. Если вам не нравится Фортран, выполните упражнение
5.7.34 с помощью MATLAB’a. Ваша программа будет работать медленнее, но
вполне сойдет для учебных целей. □
Упражнение 5.7.36. Покажите, что для вычисления произведения двух верх-
них хессенберговых матриц требуется О(п3) флопов. □
Упражнение 5.7.37. В этом упражнении дано обоснование неявного QR-
шага с двойным сдвигом. Пусть В = (А - т/)(Л - р/), а ..., Qn _ j - отраже-
ния, приводящие В к верхней треугольной форме: R = Q2Q1 В, и пусть
О, = QxQz... Qi, Ai = Q[A Q, = Q{Ai_ iQi, a
Л,
(5.7.38)
где Л(,) — верхняя треугольная i х /-матрица, a R!£ — правильная 2-хессенбер-
гова матрица, так что ее первый столбец имеет ненулевые элементы только в
трех первых позициях.
(а) Докажите, что Afi, = R,A,
(b) Покажите, что если Д. - верхняя хессенбергова матрица, исключая вы-
ступ, состоящий из элементов и ^3/+1, то
,(/)
= р
i+2,i
для некоторого скаляра р, отличного от нуля. (Указание, Придите к этому, раз-
бивая равенство ЯД. = Rfl на блоки и рассуждая, как в случае шага с одинар-
ным сдвигом.)
(с) Докажите индукцией по /, что Д есть верхняя хессенбергова матрица,
исключая выступ, состоящий из элементов а\'\ . и аи\. ..
Это доказывает, что процесс вытеснения выступов действует и в случае QR-
шага с двойным сдвигом. □
416
Глава 5. Собственные значения и собственные векторы I
Упражнение 5.7.39. Продолжим использовать обозначения предыдущего уп-
ражнения. Найдите вид Д непосредственно из соотношений для них.
(а) Используйте формулу Д = QfrA Qf для доказательства того, что нижние
п - i - 3 строки матрицы Д имеют форму верхней хессенберговой матрицы.
(Ь) Докажите, что верхняя треугольная матрица/?^, определенная в (5.7.38),
является невырожденной при i < п - 2.
(с) Докажите, что первые i - 1 столбцов матрицы Д имеют форму верхней
хессенберговой матрицы. (Это совпадает с частью (с) упражнения 5.7.27.)
(d) Покажите, что Д - верхняя хессенбергова матрица, за исключением вы-
ступа, состоящего из элементова^2 i, . и а^3 /+,. □
Упражнение 5.7.40. Обычно сдвиги для 0Л-шага с двойным сдвигом берутся
равными двум собственным значениям нижней правой 2 х 2-подматрицы
&п,п-\ ^п,п
Тогда либо р и т вещественные, либо т = р.
(а) Покажите, что если сдвиг выбран именно так, то мы имеем
Р + т = ап_ j + ап,„ ( = след),
рт = м _ {ап,п - апп _ хап _ м ( = определитель).
(Ь) Покажите, что первый столбец матрицы В = (А - т/)(Л - рГ) пропорцио-
нален вектору с координатами
(а11 ~ап-\,п-\)(а! 1 ~ап,п)~‘ап.п~1ап-1,п
V1 = ------------------------------ + а12,
а21
У2 — + ^22 — -!,/»-! — @п,п)
У3 = Д32.
Эти формулы пригодны для вычисления начального отражения □
Упражнение 5.7.41. Пусть для заданного ненулевого у eR3 и отражения Q е R3x3
||у||2, если yt > 0,
Ч|у||2, если у, <0.
(а) (Общий взгляд.) Покажите, что Q = I - уииТ , где
1
«= У2/(У|+Х)
Уз /(Уз +т)
и у = (у, + т)/т. Таким образом, Q - I - vuT , где v = уи.
5.7. Реализация QR-алгоритма
417
(b) Пусть В е R3x* — подматрица, которая преобразуется матрицей Q.
Учитывая, что их = 1, покажите, что операция В -> QB = В - v{uTB) требует
только 5к умножений и 5к сложений. (Поскольку Q = QT = I - vu\ опера-
ции вида С -> CQ можно выполнить точно тем же способом.)
(с) Покажите, что если операции выполняются в соответствии с указания-
ми п. (Ь), неявный 0Л-шаг с двойным сдвигом требует лишь около 5п2 умно-
жений и 5п2 сложений, т.е. Юл2 флопов. □
Упражнение 5.7.42. Напишите на псевдокоде алгоритм, выполняющий не-
явный £)Я-шаг с двойным сдвигом, используя отражения. □
Упражнение 5.7.43. Напишите ди-файл MATLAB’a, который выполняет
QA-шаг с двойным сдвигом. В рамках MATLAB’a можно построить тест-
примеры многими способами.Например, вы можете построить случайную
матрицу и с помощью MATLAB-команды hess привести ее к верхней хес-
сенберговой форме. Сформируйте тестовую матрицу и сохраните ее копию.
Выполняйте итерации с помощью вашего ди-файла до тех пор, пока не вы-
делите пару собственных значений. О чем говорит наблюдаемая вами квад-
ратичная сходимость? Поскольку в вашем распоряжении находится
MATLAB-команда eig, вы можете легко проверить истинность полученных
собственных значений. □
Упражнение 5.7.44. Напишите на Фортране подпрограмму, которая вы-
числяет собственные значения и собственные векторы верхней хессенберго-
вой матрицы, используя неявный 0Я-алгоритм с двойным сдвигом. Чтобы по
достоинству оценить квадратичную сходимость, выполните все вычисления с
двойной точностью. Поскольку алгоритм работает с правильными верхними
хессенберговыми матрицами, перед каждой итерацией необходимо проверять
поддиагональные элементы, чтобы убедиться, можно или нет выполнить де-
фляцию или понижение порядка задачи. На практике любой элемент ак + 1Л,
близкий к нулю, должен рассматриваться равным нулю. Пользуйтесь таким
критерием: ак + = 0, как только | ак+ 1Л | < м(| akJc | + | ак+ 1Д + ! |), где и - единич-
ная ошибка округления. В IEEE-арифметике с двойной точностью и » 10~16.
Этот критерий гарантирует, что ошибка от принятия ак + 1Л равным нулю
сравнима по величине с многочисленными ошибками округления, которые
совершаются во время вычислений. В частности, обратная устойчивость не
нарушается.
После того как матрица разбита на две или больше частей, простейший
способ выяснить, какую из них нужно обрабатывать, состоит в том, чтобы
начинать обработку матрицы с ее нижних строк. Итак, вы должны прове-
рять поддиагональные элементы, начиная с основания, и как только най-
дете нуль, выполните £?Я-итерацию для самой нижней подматрицы. Если
вы будете всегда начинать с самой нижней подматрицы, то вам будет не-
трудно определить окончание работы. Выделенный 1 х 1-блок есть вещест-
венное собственное значение. Выделенный 2 х 2-блок содержит пару ком-
плексных или вещественных собственных значений, которые можно най-
ти, если (аккуратно) использовать формулу для корней квадратного
уравнения (см. упражнение 5.6.27). Как только вы достигнете верха матри-
цы, работа будет закончена.
14 Основы матричных вычислений
418
Глава 5. Собственные значения и собственные векторы I
Поскольку мы намереваемся исследовать квадратичную сходимость алго-
ритма, в программе должна быть предусмотрена возможность вывода на пе-
чать поддиагонали матрицы после каждой итерации. Также необходимо выво-
дить на печать число итераций, необходимых для дефляции или понижения
порядка.
В алгоритме должно быть ограничение на количество выполняемых итера-
ций, а также должна быть встроена возможность применения особого сдвига
для разрешения затруднительных ситуаций.
Напишите понятную структурированную программу, снабдив ее необходи-
мыми комментариями и описаниями всех входных и выходных переменных.
Проверьте вашу программу на матрице из примера 5.6.18, у которой собст-
венные значения равны cos(2Tu//n) + rsin(2Tu//n),y = 1,..., п. Попробуйте различ-
ные значения для п. Можете использовать симметричную тестовую матрицу из
упражнения 5.7.34. Наконец, можно воспользоваться матрицей, приведенной
в [83], с. 370, собственные значения которой плохо обусловлены. □
Упражнение 5.7.45. Пусть х е Сп — ненулевой вектор и ех е Сп — первый
стандартный единичный вектор. Во многих случаях нам нужно иметь невыро-
жденную преобразующую матрицу G, которая «вставляет нули» в вектор х в
том смысле, что G~'x = реь где р - ненулевая константа. Преобразования этого
типа лежат в основе, например, LU- и 0Л-разложений и широко используются
в данном разделе. Покажите, что G~lx = pej для некоторого р тогда и только то-
гда, когда первый столбец матрицы G пропорционален х. □
Упражнение 5.7.46. В этом упражнении рассмотрены подходы к доказатель-
ству обеих версий неявной 0-теоремы. Для заданных матрицы А е С”х" и век-
тора х е Сп определим матрицу Крылова К(А, х) = Кп(А, х) е Спхп как матрицу со
столбцами х, Ах, А2х, ..., Ап~1х. Матрицы Крылова и подпространства Крылова
играют важную роль в гл. 6 и 7.
(а) Пусть В е Слхл - верхняя хессенбергова матрица и ех - первый стандарт-
ный единичный вектор (первый столбец единичной матрицы). Докажите, что
К(В,ех) есть верхняя треугольная матрица. Докажите, что если В есть правиль-
ная верхняя хессенбергова матрица, то К(В, et) невырожденна. Докажите, что
если все поддиагональные элементы bj+ {J> 0,j = 1,..., п - 1, то и все элементы
главной диагонали матрицы К(В,ех) также положительны.
(Ь) Покажите, что если В - Q^AQ, то К(А, Qe{) = QK(B, et). При каких ограни-
чениях на Q и В этот результат можно интерпретировать как 0Я-разложение?
(с) Пусть Q и Q — унитарные матрицы, первые столбцы которых совпадают,
и пусть А = Q AQ и A -QAQ. Предположим, что обе матрицы А и А - пра-
вильные верхние хессенберговы са> 0, и5у+1 . > 0,/’ = 1,..., п - 1. Исполь-
зуя результат п. (Ь) и единственность 07?-разложения, покажите, что 0 = 0 и
А = А. Это и есть теорема 5.7.23 — строгая форма неявной 0-теоремы.
(d) Теперь ослабим эти условия. Пусть Qex = Qexdx, А — правильная верхняя
хессенбергова, а А - верхняя хессенберговаматрицы. Используя результат
п. (Ь) и существенную здесь единственность 0Я-разложения (ср. упражнение
3.2.60), покажите, что А также должна быть правильной верхней хессенберго-
вой матрицей и 0 = QD, где D есть диагональная матрица с диагональными
5.7. Реализация QR-алгоритма
419
элементами dk, удовлетворяющими условию | dk | = 1. Это - теорема 5.7.24 -
ослабленная версия неявной 0-теоремы. □
Упражнение 5.7.47. Это упражнение дает более краткое введение и обосно-
вание неявного 07?-шага с одинарным сдвигом. Основная идея состоит в том,
что если вы выполняете преобразование к верхней хессенберговой форме,
имеющей правильный первый столбец, то тем самым вы делаете 0Л-шаг. Оп-
ределим 01? как в (5.7.5) и (5.7.6). Тогда QlTAQi не является верхней хессенбер-
говой, ибо она имеет выступ в позиции (3,1). Пусть 02,..., 0Л1 - ортогональ-
ные преобразования, возвращающие QXTAQX к верхней хессенберговой форме
вытеснением выступа. Пусть 0 = 0t02... Qn _ j и А = 0 ТA Q — верхние хессен-
берговы матрицы.С построением А неявная 0Я-итерация завершается. Явный
0Л-шаг дается в (5.7.2): А = QTAQ первая из формул (5.7.1).
(а) Покажите, что первый столбец в 0 равен первому столбцу в 0Ь
(Ь) Покажите, что первый столбец в 0 и первый столбец в 0 оба пропор-
циональны первому столбцу в А - pl.
(с) Пусть А - верхняя хессенбергова матрица. Используя теорему 5.7.24,по-
кажите, что 0 = QD и А = D~[AD, где D — диагональная матрица, элементы
главной диагонали которой удовлетворяют условию | dtf | = 1. Таким образом,
явный и неявный 0Л-шаги приводят,по существу, к одному и тому же резуль-
тату. (Если еще немного постараться,то можно снять требование, чтобы А
была правильной хессенберговой матрицей.) □
Упражнение 5.7.48. Это упражнение дает краткое обоснование неявного QR-
шага с двойным сдвигом. Пусть р и т суть сдвиги, которые являются либовеще-
ственными, либо т = р. Пусть В-(А - х!)(А - р/). Тогда В — вещественная мат-
рица и ее первый столбец имеет только три ненулевых элемента, которые опре-
деляются формулами (5.7.22). Пусть Qx есть ортогональная матрица (например,
отражение), действующая на строки 1-3, у которой первый столбец пропорцио-
нален первому столбцу матрицы В, и пусть А{ -Qx AQ{. Пусть 02... Qn_x суть ор-
тогональные преобразования, снова приводящие Qx AQX к верхней хессен-
берговой форме вытеснением выступа. Пусть 0 = 0]02... Qn_ j и A = QTAQ —
верхние хессенберговы матрицы. С построением А неявная 0Я-итерация
с двойным шагом завершается. Явная 0Я-итерация с двойным шагом дает-
ся формулой А = QTAQ, где 0 - ортогональный множитель в разложении
(А - т!)(А -р/) = QR.
(а) Покажите, что первый столбец 0 равен первому столбцу 0Р
(Ь) Покажите, что первый столбец 0 и первый столбец 0 оба пропорцио-
нальны первому столбцу А-р1.
(с) Пусть А — правильная верхняя хессенбергова матрица. Используя теоре-
му 5.7.24, покажите, что 0 = QD и А = D~XAD, где D - диагональная матрица,
элементы главной диагонали которой удовлетворяют условию | rf, | = 1. Таким
образом, явный и неявный 07?-шаги с двойным сдвигом дают, по существу,
один и тот же результат. (И здесь требование, чтобы А была правильной хес-
сенберговой матрицей, можно снять без больших дополнительных усилий.) □
420
Глава 5. Собственные значения и собственные векторы I
5.8. Использование (ZR-алгоритма при вычислении
собственных векторов
В разд. 5.3 мы отметили, что обратная итерация может быть использована
для нахождения собственных векторов, когда уже известны собственные зна-
чения. Это эффективный и важный метод. В настоящем разделе мы увидим,
как можно использовать QA-алгоритм при одновременном определении соб-
ственных значений и собственных векторов. В разд. 6.2 будет показано, что та-
кое применение QA-алгоритма можно рассматривать как некую форму обрат-
ной итерации. Начнем рассмотрение с симметричного случая, поскольку он
относительно несложен.
Симметричные матрицы
Пусть?! е R',x" — симметричная трехдиагональная матрица. Можно исполь-
зовать QA-алгоритм для определения сразу всех ее собственных значений и
собственных векторов. После некоторого числа QA-шагов со сдвигом матрица
А по существу окажется приведенной к диагональному виду
D = QTAQ,
(5.8.1)
где элементы главной диагонали D являются собственными значениями мат-
рицы А. Если всего было выполнено т QA-шагов со сдвигом, то Q = Qt ... Qm,
где Q. — преобразующая матрица для z-го шага. Каждая Q, есть произведение
п - 1 вращений. Таким образом, Q есть произведение большого числа враще-
ний. Важность Q заключается в том, что ее столбцы образуют полную систему
ортонормированных собственных векторов матрицы А, в соответствии со
спектральной теоремой 5.4.12. Нетрудно осуществлять последовательную
сборку Q по ходу выполнения QA-алгоритма и тем самым получить собствен-
ные векторы одновременно с собственными значениями. Для последователь-
ной сборки Q требуется дополнительный массив. Обозначая этот массив также
через Q, положим в начале Q = I. Тогда при каждом вращении Q., действую-
щем на А (т.е. при А <- Q? AQ^, нужно умножать Q справа на Q/? (Q <- QQ/?). Ко-
нечным результатом, очевидно, будет преобразующая матрица Q из (5.8.1).
Каких затрат требует эта процедура преобразования? Каждое преобразова-
ние Q <- QQij изменяет в Q два столбца. Таким образом, обновляется 2п чисел.
Точное число требующихся флопов зависит от конкретной реализации, но в
любом случае оно имеет порядок О(л). Поскольку на каждом QA-шаге требует-
ся выполнить п - 1 вращений, то при этом на обновление Q тратится О(л2)
флопов. Вспоминая, что основные затраты на выполнение симметричного
QA-шага составляют О(п) флопов, мы заключаем, что последовательная сборка
Q увеличивает затраты на порядок. Делая (разумное) предположение, что об-
щее число QA-итераций равно О(л), получаем, что общие затраты на последо-
вательную сборку Q составляют О(п3) флопов, тогда как на QA-итерации без
сборки Q тратится О(п2) флопов.
5.8. Использование QR-алгоритма при вычислении собственных векторов 421
Очевидный способ уменьшить затраты на последовательную сборку Q
состоит в сокращении числа 0Я-итераций. Небольшого сокращения можно
достигнуть с помощью стратегии определенного сдвига. Вначале посредст-
вом 0Л-итераций без последовательной сборки Q вычисляют лишь собст-
венные значения. Это не требует больших затрат — лишь О(п) флопов на
итерацию. Затем (предварительно сохранив копию А) снова выполняют
0Л-алгоритм с последовательной сборкой Q, используя на этот раз найден-
ные собственные значения в качестве сдвигов. Для этого идеального сдви-
га общее число (?Я-шагов, необходимых для приведения матрицы к диаго-
нальному виду, уменьшается, так что время экономится за счет последова-
тельного накопления Q при втором проходе. В принципе, каждый такой
0Я-шаг должен сразу выдавать некоторое собственное значение (следствие
5.6.23). Из-за ошибок округления для большинства собственных значений
достаточно двух шагов, но при этом уменьшается и число итераций. Пове-
дение алгоритма зависит от порядка выбора собственных значений в каче-
стве сдвигов. Хорошим является порядок, в котором собственные значения
появились при первом проходе.
Упражнение 5.8.2. Предполагая, что для нахождения каждого собственного
значения необходимо к (?Я-итераций, и принимая в расчет дефляцию, пока-
жите, что Q есть произведение порядка i кп1 вращений. (Если мы используем
стратегию определенного сдвига, то к приблизительно равно 2. В противном
случае оно ближе к 3.) □
Упражнение 5.8.3. Опишите шаги, которые необходимо предпринять для
нахождения полного множества собственных значений и собственных векто-
ров симметричной (не трехдиагональной) матрицы с помощью 0Я-алгоритма.
Оцените число флопов, требуемых для выполнения каждого шага, и общее
число флопов. □
Упражнение 5.8.4. Напишите программу на Фортране, которая определяет
собственные векторы симметричной трехдиагональной матрицы с помощью
QR -алгоритма. □
Несимметричные матрицы
Пусть А е С”х" - верхняя хессенбергова матрица. Если для определения
собственных значений матрицы А используется 0Л-алгоритм, то после неко-
торого конечного числа шагов мы по существу имеем
Т = Q*AQ, (5.8.5)
где Т- верхняя треугольная матрица. Это форма Шура (теорема 5.4.11). Как и
в симметричном случае, можно последовательно собирать преобразующую
матрицу Q. И здесь мы можем рассмотреть стратегию определенного сдвига,
по которой сначала вычисляются собственные значения без последовательной
сборки 0, а затем еще раз выполняется 0Я-алгоритм с использованием в каче-
стве сдвигов найденных собственных значений и выполнением последова-
422
Глава 5. Собственные значения и собственные векторы I
тельной сборки Q. В этом случае основные затраты на 0Я-шаг составляют
О(п2), а не О(п) флопов, так что накладные расходы, связанные с тем, что зада-
ча решается за два прохода, оказываются теперь большими. Однако экономии,
получаемой благодаря последовательной сборке Q при втором проходе, вполне
достаточно, чтобы компенсировать эти расходы.
Существует большое различие в способах реализации Q/f-алгоритма в за-
висимости от того, вычисляются ли только собственные значения или же
вместе с ними вычисляются и собственные векторы. Если в некоторой ите-
рации на поддиагонали появляется нуль, то матрица имеет блочно-диаго-
нальную форму
^11 ^12
О ^22
Если нам нужны лишь собственные значения, то Лн и А22 нужно рассматри-
вать раздельно, а Л12 вообще игнорировать. Но если нужны и собственные век-
торы, то Л12 уже нельзя исключать из рассмотрения. Мы должны обновлять ее
на каждом шаге, поскольку в конечном счете при этом формируется часть мат-
рицы Т, которая необходима для вычисления собственных векторов. Таким
образом, если строки i и j матрицы Ап изменяются неким вращением, то это
же вращение необходимо применить и к строкам i и j матрицы Л12. Аналогич-
но, если столбцы i и j матрицы А22 изменяются каким-то вращением, то и соот-
ветствующие столбцы матрицы Л12 подлежат такому же воздействию.
Но на получении (5.8.5) наша работа не заканчивается. Лишь первый стол-
бец Q является собственным вектором матрицы А. Чтобы получить и другие
собственные векторы, необходимо еще немного потрудиться. Для этого доста-
точно найти собственные векторы матрицы Т, так как для каждого собствен-
ного вектора v матрицы Т вектор Qv является собственным вектором матри-
цы А. Поэтому рассмотрим задачу получения собственных векторов верхней
треугольной матрицы. Собственными значениями матрицы Г являются /п, /22,
..., tnn, которые мы предположим различными. Чтобы найти собственный век-
тор, соответствующий собственному значению tkk, необходимо решить одно-
родное уравнение (Г - tkkI)v = 0. Удобно сделать разбиение
Т-
*^|21 ГР1
V =
$22 J LV2
где е С*3** и е Ск. Тогда уравнение (Т- t^Ijv - 0 принимает вид
5цГ| + 5I2v2 = 0,
^22^2 = 0.
Здесь 5И и S22 — верхние треугольные матрицы, S22 невырожденна, посколь-
ку элементы ее главной диагонали, равные tkkJ = к + 1,..., п, все отличны от
нуля. Следовательно, v2 должно равняться нулю, и уравнения принимают вид
5.8. Использование QR-алгоритма при вычислении собственных векторов
423
511vl = 0. Su вырожденка, так как ее элемент (к,к) равен нулю. Выполняя дру-
гое разбиение
Sr v
0г О w
где S е С(Аг 1)х(* °, г g С* 1 и v е Ск \ приведем уравнение = 0 к виду
Sv + rw = 0.
Матрица S - верхняя треугольная и невырожденная. Взяв в качестве w лю-
бое ненулевое число, можно решить уравнение S v = -rw относительно v с по-
мощью обратной подстановки, чтобы получить собственный вектор. Напри-
мер, если мы возьмем w = 1, то получим собственный вектор
0
Упражнение 5.8.6. Найдите три линейно независимых собственных вектора
матрицы
1 1
Т= 0
1
1
3
0
Упражнение 5.8.7. Сколько флопов нужно для определения всех собствен-
ных векторов верхней треугольной матрицы Т е Спхп с различными собствен-
ными значениями? □
Случай, когда Т имеет кратные собственные значения, более сложен, так
как Гможет не иметь п линейно независимых собственных векторов,т.е. Смо-
жет быть дефектной матрицей. Случай кратных собственных значений рас-
смотрен, в частности, в упражнении 5.8.8. Даже если собственные значения
различны, только что рассмотренный нами алгоритм может иногда давать не-
точные результаты, поскольку собственные значения могут оказаться плохо
обусловленными. В разд. 6.5 обсуждается обусловленность собственных значе-
ний и собственных векторов.
Упражнение 5.8.8. Пусть Т — верхняя треугольная матрица с собственным
значением X = tkk кратности 2. Дайте необходимые и достаточные условия,
при которых этому X будут соответствовать два линейно независимых собст-
венных вектора, и наметьте процедуру их вычисления. □
424
Глава 5, Собственные значения и собственные векторы I
Если А — вещественная матрица, то нам хотелось бы оставаться в рамках
системы вещественных чисел как можно дольше. Поэтому воспользуемся QR-
алгоритмом с двойным сдвигом, чтобы привести А к виду
Т = QTAQ,
где Q е К”*” есть ортогональная, а Г- квазитреугольная матрицы. Это - форма
Винтнера-Мурнагана (теорема 5.4.22).
Упражнение 5.8.9. Сделайте набросок процедуры вычисления собствен-
ных векторов квазитреугольной матрицы Т с различными собственными
значениями. □
Пусть теперь А е Млх” имеет комплексные собственные значения X и I.
Так как соответствующие собственные векторы комплексные, то можно
ожидать, что с какого-то момента нам придется иметь дело с комплексными
векторами. Ради эффективности работы желательно как можно дольше об-
ходиться без использования комплексных чисел. Оказывается, что мы мо-
жем оставаться вне комплексной арифметики до самого конца. Пусть А =
= QTQr, где матрица Т имеет квазитреугольную форму Винтнера-Мурнагана.
Используя намеченнуювами процедуру из упражнения 5.8.9, можно найти
собственный вектор v матрицы Т, соответствующий X: Tv = Xv. Тогда w = Qv
является собственным вектором матрицы А. Оба вектора, v и w, можно раз-
ложить на вещественную и мнимую части: v = + iv2 и w = + iw2i где
Vi, v2, и w2 e R”. Так как Q вещественна, то легко показать, что = Qv{ и
w2 = Qv2. Таким образом, для вычисления w нет необходимости использовать
комплексную арифметику: Wj и w2 могут быть вычислены раздельно в рам-
ках вещественной арифметики. Отметьте также, что w = Wj - iw2 является
собственным вектором матрицы Л, соответствующим X. Таким образом,
пара вещественных векторов Wj и w2 порождает пару комплексных собствен-
ных векторов.
Упражнение 5.8.10. Переделайте упражнение 5.8.9 так, чтобы все вычисле-
ния выполнялись в рамках вещественной арифметики. □
5.9. Еще раз об SVD
В этом разделе через А будем обозначать ненулевую вещественную
п х ди-матрицу. В гл. 4 мы ввели понятие сингулярного разложения (SVD) и
доказали, что А имеет SVD. Данное там доказательство (упражнение 4.1.17)
не использует понятия собственного значения и собственного вектора.
Позднее (упражнение 5.2.17) мы отметили, что сингулярные числа и векто-
ры тесно связаны с собственными значениями и собственными векторами.
В настоящем разделе представлено второе доказательство SVD-теоремы, в
котором используются собственные векторы. Затем мы покажем, как надо
вычислять SVD.
5.9. Еще раз об SVD
425
Второе доказательство SVD-теоремы
Следующее рассмотрение не использует результатов гл. 4. Вспомним, что с
А е Rwx'" связаны два важных подпространства — нуль-пространство и область
значений, определяемые как
МЛ) = {х е Г" | Ах = 0},
7£(Л) = {Ах | х е Г"}.
Нуль-пространство есть подпространство в Rw, а область значений - подпро-
странство в R". Вспомните также, что область значений иногда называется под-
пространством столбцов матрицы А (упражнение 3.5.13), а его размерность назы-
вается рангом матрицы Л. Наконец, вспомните, что т = dim(M^)) + сИт(7£(Л)).
Это - следствие 4.1.9, которое можно доказать элементарными средствами.
Матрицы АТА е Rwxw и ЛЛГ е R”4" играют важную роль в дальнейшем. Поэто-
му сначала изучим свойства этих матриц и их связь с Л и Ат,
Упражнение 5.9.1 (общий взгляд). Докажите, что матрицы АТА и ЛЛГ явля-
ются (а) симметричными и (Ь) положительно определенными. □
Теорема 5.9.2 МЛГЛ) = Х(Л).
Доказательство. Очевидно, что N(A) с МЛГЛ). Чтобы доказать, что М(АТА)
с; МЛ), возьмем х е ЛГ(АТА). Тогда АтАх = 0. Несложные выкладки (лемма
3.5.9) показывают, что (АгАх, х) - (Ах, Ах). Таким образом, 0 = (АгАх, х) =
= (Ах, Лх) =||Лх||2. Следовательно, Лх = 0, т.е. х е М^)« О
Следствие 5.9.3. М^Л7) = М^7)-
Следствие 5.9.4. гапк(ЛгЛ) = гапк(Л) = гапк^7) = гапк/ЛЛ7).
Доказательство. Согласно следствию 4.1.9, гапк(Л) = m - dim(M^)) и, ана-
логично, гапк(ЛгЛ) = m - dim(M^r^))- Таким образом, гапк(ЛгЛ) = гапк(Л).
Второе равенство - один из основных результатов линейной алгебры. Третье
совпадает с первым, если поменять местами Л и Аг.
□
Утверждение 5.9.5. Если v — собственный вектор матрицы АТА, соответст-
вующий ненулевому собственному значению X, то Av является собственным век-
тором матрицы ААГ, соответствующим тому же собственному значению.
Доказательство. Av ф 0, ибо X * 0. Более того, AAr(Av) = A(ArAv) = A(kv) =
k(Av). □
Следствие 5.9.6. С учетом кратности матрицы Л ТА и ЛЛГ имеют одни и те же
ненулевые собственные значения.
Утверждение 5.9.7. Пусть vxuv2 — собственные векторы матрицы АТА. Если
V! и v2 ортогональны, то Av1 и Av2 также ортогональны.
Упражнение 5.9.8. Докажите утверждение 5.9.7. □
Упражнение 5.9.9. Пусть В е С”х'” - полупростая матрица с линейно не-
зависимыми собственными векторами v1? ..., vm е С, соответствующими
собственным значениям ..., е С. Предположим, что Хь ..., отличны
от нуля, a Xr + j, ..., Хт равны нулю. Покажите, что М^) = span{vr + ь ..., vm} и
426
Глава 5. Собственные значения и собственные векторы I
Н(В) = span{vb vr}.Следовательно, гапк(Б) = г, т.е. числу ненулевых собст-
венных значений. □
Обе матрицы АТА и AAF являются симметричными и, следовательно, полу-
простыми. Таким образом, следствие 5.9.6 и упражнение 5.9.9 дают второе до-
казательство того, что эти матрицы имеют один и тот же ранг, равный числу
ненулевых собственных значений. Поскольку АТА и ААТ обычно имеют разные
размеры, они не могут иметь в точности одни и те же собственные значения.
Различие образовано нулевыми собственными значениями соответствующей
кратности. Если гапк(ЛгЛ) = гапкСЛЛ7) = г и г < т, то АТА имеет нулевое собст-
венное значение кратности т- г. Если г < п, то нулевое собственное значение
кратности п - г имеет А4Г.
Упражнение 5.9.10. (а) Приведите пример матрицы ЯеИ1х2 такой, что АТА
имеет нулевое собственное значение, а ААтнс имеет. (Ь) Где нарушается дока-
зательство утверждения 5.9.3 в случае X = 0? □
Теперь воспользуемся тем, что если матрица симметрична, то можно найти
полное множество ортонормированных собственных векторов. Мы до сих пор
не доказали, что условие ортогональности является существенным.
Утверждение 5.9.11. Пусть В е К”*” — симметричная матрица с собственны-
ми векторами и, и uJf соответствующими собственным значениям и причем
Тогда щ и Uj ортогональны.
Доказательство. Применяя лемму 3.5.9 и используя равенство А = АТ, имеем
(Ац, и) ={ui9 Ай). Следовательно,
Xz(wz, и}) = (Xzwz, = {Auh и}) = {uif AUj) = {uh kjUj) = Xy(wz, Uj).
Взяв разницу левой и правой сторон этой цепочки равенств, получаем
(X/ - Xy)(l/Z, Uj) = 0.
Поскольку Xz - Ху ф 0, то должно быть (wz, и) = 0. □
Следующая теорема отличается от теоремы 4.1.3 лишь одним дополнитель-
ным утверждением.
Теорема 5.9.12 (геометрическая SVD-теорема). Пусть A g W1™ — ненулевая
матрица ранга г. Тогда IF имеет ортонормированный базис vb ..., vm, R" имеет
ортонормированный базис их,..., ипи существуют о( > о2 > 0 такие, что
jozwz, f = l,..., г,
Лу,- = s
10, i = г +1, ..., m,
T jozvz, z = l,..., r,
А 'у, - <
J 10, i = r +1,..., n.
(5.9.13)
Из равенств (5.9.13) следует, что ..., утявляются собственными вектора-
ми матрицы АТА, их,..., ип — собственными векторами матрицы ААГ, а о2,..., о2
— собственными значениями АТА и А/Р, отличными от нуля.
Доказательство. Последняя часть теоремы по существу эквивалентна уп-
ражнению 5.2.17. Легко проверить, что все эти утверждения верны. Там ука-
5.9. Еще раз об SVD
427
зывается, как надо выбирать vh yw. Пусть уь yw — ортонормированный
базис в 1ЕГ, состоящий из собственных векторов матрицы АТА. Следствие
5.4.21 гарантирует существование такого базиса. Пусть Хь ..., — соответст-
вующие собственные значения. Поскольку АТА — положительно полуопреде-
ленная, все ее собственные значения являются вещественными неотрица-
тельными числами. Предположим, что ..., vm упорядочены так, что > Х2
>... > Так как г = гапк(ЛгЛ), должно быть > 0 и Xr+1 = ... = = 0. Для i = 1,
..., г определим a, g R и u, е R” как
о, = || Av, ||2 и и, = — А
Из этих определений следует, что Av, = ozу, и || и, ||2= 1, i = 1, ..., г. Из утвер-
ждения 5.9.7 вытекает, что иъ ..., иг ортогональны и, следовательно, ортонор-
мированны.
Легко показать, что о? = X, при i = 1, ..., г. В самом деле, о? = ЦЯУ,-1|2 =
= (Avn Av) = (ArAvlfv) = (^v{iv) = Отсюда ясно, что Атщ = о^, ибо Ати,- =
= П/о^Л^ЛУ, = = О/V,.
Теперь доказательство завершено, за исключением того, что мы не опреде-
лили иг + ь ..., ип в случае г<п. Согласно утверждению 5.9.5, векторы ..., иг
являются собственными векторами матрицы ЛЛГ, соответствующими ненуле-
вым собственным значениям. Поскольку ЛЛГ е К"4” и гапк(ЛЛ7) = г, матрица ЛЛГ
должна иметь нуль-пространство размерности п - г (следствие 4.1.9). Пусть
ur + j,..., ип - ортонормированный базис в МЯЛ7). Отмечая, что все ur+ ь ..., ип
являются собственными векторами матрицы ЛЛГ , соответствующими нулево-
му собственному значению, мы видим, что каждый из векторов ur+ ь ..., ип ор-
тогонален к каждому из векторов ..., иг (утверждение 5.9.11). Таким обра-
зом, Wj,..., ип является ортонормированным базисом в В”, состоящим из собст-
венных векторов матрицы ЛЛГ. Поскольку МЛЛ7) = МЛ7), мы имеем Ати, = 0
при i = г + 1,..., п, Этим доказательство завершается. □
Вспомним из гл. 4, что ..., ог называются (ненулевыми) сингулярными
числами матрицы Л. Эти числа определены однозначно, так как они являются
квадратными корнями ненулевых собственных значений матрицы АТА. Векто-
ры vb ..., vm называются правыми сингулярными векторами, а иь ип — левыми
сингулярными векторами матрицы Л. Сингулярные векторы определены неод-
нозначно: они столь же однозначны, как и собственные векторы длины 1. Лю-
бой сингулярный вектор можно заменить противоположным ему, а наличие у
АТА или ЛЛГ кратных собственных значений может привести и к более серьез-
ным нарушениям однозначности.
Вычисление SVD
Один из способов вычислить SVD — это просто определить собственные
значения и собственные векторы матриц АТА и ЛЛГ. Такой подход иллюстриру-
ется следующими примером и упражнениями. После этого мы рассмотрим
428
Глава 5. Собственные значения и собственные векторы I
другие, более точные, подходы, в которых SVD вычисляется без явного фор-
мирования АТА или АА!\
Пример 5.9.14. Найдем сингулярные числа и правые и левые сингулярные
векторы матрицы
1 2 О
2 0 2
Так как АТА есть 3 х 3-матрица, а А4Г есть 2 х 2-матрица, то разумно рабо-
тать с последней. Имеем
ААТ -
5 2
2 8
так что ее характеристический многочлен есть (X - 5)(Х - 8) - 4 = X2 - 13Х + 36 =
= (X - 9)(Х - 4) и собственные значения матрицы А/F равны X, = 9 и Х2 = 4. Син-
гулярные числа матрицы А равны, следовательно, ot = 3 и о2 = 2. Левые сингу-
лярные векторы А являются собственными векторами ААТ. Решая уравнение
(X/- AAfyu = 0, найдем, что вектор, пропорциональный [1, 2]г, является собст-
венным вектором матрицы ААТ, соответствующим Затем, решая уравнение
(Х2/ - АА^и - 0, находим, что собственный вектор матрицы ААТ, соответствую-
щий Х2, пропорционален [2, -1]г. Так как мы хотели бы получить вектор с еди-
ничной евклидовой нормой, положим
(Какой другой выбор можно сделать?) Это и есть левые сингулярные векто-
ры матрицы А. Отметьте, что они ортогональны, как и должно быть.
Мы могли бы найти правые сингулярные векторы v2, v2, вычисляя собст-
венные векторы матрицы АТА. Но Vj и v2 можно легко определить по формуле
v, = ofUfy, i = 1, 2. Таким образом,
Обратите внимание, что эти векторы ортонормированны. Третий вектор
должен удовлетворять условию Av = 0. Решая уравнение Av = 0 и нормируя ре-
шение, получим
1
= -
3 3
-2
1
2
5.9. Еще раз об SVD
429
В этом случае мы можем найти v3 и без ссылок на Л, просто применяя про-
цедуру Грама—Шмидта, чтобы определить вектор, ортогональный одновре-
менно к и v2. Нормируя этот вектор, получим ±v3.
Теперь, когда у нас есть сингулярные числа и сингулярные векторы, можно
легко построить SVD А = ЦЕУ7} где U g R2x2, V е R3x3, а Е е К2х3 - диагональная
матрица. Мы имеем
О’ j О О
О о2 О
и= [Vj, V2, v3] =
’3 О О’
О 2 0J
5 0 -2л/5'
2 6 75
4 -3 2л/5
Легко проверить, что А = [ТЕИ □
Упражнение 5.9.15. Напишите сжатый вариант SVD А = U^VT (теорема
4.1.10) матрицы Л из примера 5.9.14. □
Упражнение 5.9.16. Пусть Л - матрица из примера 5.9.14. Найдите собст-
венные значения и собственные векторы матрицы ЛГЛ. Сравните их с величи-
нами, полученными в примере 5.9.14. □
Упражнение 5.9.17. Найдите SVD матрицы Л = [3 4]. □
Упражнение 5.9.18. Найдите SVD матрицы
Упражнение 5.9.19. (а) Найдите SVD матрицы
3 1
6 2
(Ь) Найдите сжатый вариант SVD Л = [7ЕК т.
□
Потеря информации при переходе к квадратной матрице
Вычисление SVD путем решения задачи на собственные значения для
матриц АТА или ЛЛГ является продуктивным методом для больших, важных
для практики задач, поскольку мы имеем в своем распоряжении эффектив-
430
Глава 5. Собственные значения и собственные векторы I
ный алгоритм решения симметричной задачи на собственные значения. Од-
нако у этого подхода есть и серьезные недостатки: если А имеет очень ма-
лые, но не равные нулю сингулярные числа, то их определение может ока-
заться неточным. Это следствие феномена «потери информации при
переходе к квадратной матрице» (см. пример 3.5.25), возникающего при вы-
числении АТА.
Можно получить представление о том, почему происходит потеря ин-
формации, рассмотрев следующий пример. Предположим, что элементы
матрицы А известны с точностью до шести десятичных знаков. Если А
имеет, например, Oj » 1 и о17 = 10“3, то ст17 мало в сравнении с но все
еще намного выше уровня в = 10“5 или 10Л Мы должны уметь вычислять
о17 с определенной точностью, по крайней мере, до двух-трех десятичных
знаков. Точность определения элементов матрицы АТА также порядка шес-
ти знаков. Соответствующие сингулярным числам и о17 собственные
значения матрицы АТА равны = су; ~ 1 и Х,17 = « ю~6. так как величи-
на Х17 того же порядка, что и ошибки в АТА, мы не можем вообще что-ли-
бо утверждать о точности ее вычисления.
Приведение к двухдиагональной форме
Теперь направим внимание на методы, которые определяют SVD непо-
средственно по матрице А. Оказывается, что многие идеи, использованные
нами при решении задачи на собственные значения, можно применить к
задаче SVD. Наример, ранее в этой главе мы нашли, что задача на собствен-
ные значения может значительно упроститься, если вначале привести мат-
рицу к простому виду, например, к трехдиагональной или хессенберговой
формам. То же верно и для задачи SVD. Задача на собственные значения
требует, чтобы приведение осуществлялось посредством преобразований по-
добия. Для сингулярного разложения А = И И преобразования подобия не
требуются, но преобразующая матрица должна быть ортогональной. Гово-
рят, что две матрицы А, В е R"xm ортогонально эквивалентны, если существу-
ют отрогональные матрицы Р е R”4" и Q е R'"x/" такие, что В = PAQ. Мы уви-
дим, что любую матрицу можно привести к двухдиагональной форме с по-
мощью некоторого преобразования ортогональной эквивалентности, в
котором каждая из преобразующих матриц является произведением не бо-
лее чем т отражений. Алгоритмы, к обсуждению которых мы приступаем,
предназнчены для работы с плотными матрицами. Задача SVD для разре-
женных матриц рассматриваться не будет.
Упражнение 5.9.20. Покажите, что если две матрицы ортогонально эквива-
лентны, то они имеют одни и те же сингулярные числа, и между их сингуляр-
ными векторами существует простая зависимость. □
Мы все еще предполагаем, что имеем дело с матрицами A е R"xw, но опуска-
ем дополнительное предположение, что п>т. Это не приводит к потере общ-
ности, поскольку в случае п < т вместо А можно использовать АТ. Если SVD
матрицы Ат суть Ат = то SVD матрицы А равно Ат - VTJ'lf1'.
5.9. Еще раз об SVD
431
Говорят, что матрица В е 1TXW является двухдиагональной, если Ьу - 0 при
i > j или i <j - 1. Это означает, что В имеет вид
с элементами, отличными от нуля лишь на двух диагоналях.
Теорема 5.9.21. Пусть А е Rwx/” с п > т. Тогда существуют ортогональные
матрицы U е JR',XW м Ke Rmxw, обе являющиеся произведениями конечного числа от-
ражений, и двухдиагональная матрица В е Rwx/” такие, что A-UBVT. Сущест-
вует конечный алгоритм вычисления U, У и В.
Доказательство. Докажем теорему 5.9.21 путем описания процедуры по-
строения. Она похожа и на (^-разложение с помощью отражений (разд. 3.2),
и на приведение с помощью отражений к верхней хессенберговой форме (разд.
5.5), так что здесь мы дадим лишь набросок этой процедуры. Первый шаг фор-
мирует нули в первых столбце и строке матрицы А. Пусть Ut еЛТ" есть отраже-
ние такое, что
Тогда первый столбец £/р4 состоит из нулей, исключая элемент (1,1). Те-
перь пусть [du я12... аХт\ обозначает первую строку матрицы UXA и У{ - отраже-
ние вида
1 0 ... О
О
Й2
О
такое, что
[*и а12 ... а1т]У = [* 0 ... 0].
Тогда первая строка матрицы U}A К, состоит из нулей, за исключением
двух первых элементов. Поскольку первый столбец матрицы Ух есть elf пер-
432
Глава 5. Собственные значения и собственные векторы /
вый столбец матрицы U}A не меняется после умножения справа на . Та-
ким образом, U}А имеет вид
(/ИП =
*| * о ... о
о
: а
о
Второй шаг построения похож на первый за исключением того, что теперь
воздействию подвергается подматрица матрицы А. Легко показать, что отра-
жения,использованные на втором шаге, не затрагивают нули, полученные на
первом шаге. После двух шагов мы имеем
Третий шаг воздействует на подматрицу Л,
и т.д. После т шагов имеем
Um... U2U,AV}V2...Vm_2
Обратите внимание, что шаги т - 1 и т требуют выполнения лишь
левых умножений. Пусть U - U{U2 ...Um и И = V\V2.-Vm_2- Тогда UTА V - В,
T.e.A = UBVT. □
Упражнение 5.9.22. Подсчитайте число флопов, выполняемых этим алго-
ритмом. Предположим, что U и V используются сразу в окончательном
виде.Вспомним из разд. 3.2, что если х е R* и U е является отражением, то
на каждую из операций х -> Ux и хг -> xTU затрачивается по 4k флопов. Пока-
жите, что затраты на правое умножение несколько меньше затрат на левое ум-
ножение, но для больших п и т этой разницей можно пренебречь. Заметьте,
что общее число флопов почти в два раза превосходит затраты на выполнение
(?Я-разложения с помощью отражений. □
Упражнение 5.9.23. Объясните, как можно экономично хранить отражения
в памяти. Сколько требуется памяти в дополнение к массиву, первоначально
содержавшему А? Предположите, что можно писать поверх А. □
Во многих приложениях (например, в задачах наименьших квадратов) п на-
много превосходит т. В этом случае иногда эффективнее выпонять приведе-
5.9. Еще раз об SVD
433
ние к двухдиагональной форме в два этапа. На первом этапе выполняется QR-
разложение матрицы А
А = QR = [0, 02J * ,
где R. е Rmxm - верхняя треугольная матрица. Для этого требуется выполнять
только левые умножения отражений на А. На втором этапе сравнительно не-
боыпая матрица R приводится к двухдиагональной форме R = U В VT.Все эти
матрицы размеров т х т. Тогда
О
В
О
А = [0. Q2]
VT.
Полагая
U = [0! 02J
и о’
О I
= [0i UQi] е R"X',J В =
е R',xm
В
О
и Й = Й е RMxm, будем иметь А = UB VT.
Преимущество такого порядка в том, что умножения справа применяют-
ся к малой матрице Я, а не к большой А. Следовательно, они обходятся на-
много дешевле. Неудобство же в том, что умножения справа разрушают
верхнюю треугольную форму R. Поэтому многие из левых умножений долж-
ны быть повторены для малой матрицы R. Если отношение п/т достаточно
велико, дополнительные затраты на умножения слева превысят экономию,
полученную от умножений справа. Точка равновесия здесь находится где-то
при п/т = 5/3. При п/т > 1 затраты на пересчет превысят экономию при-
мерно в 2 раза.
Различные приложения SVD требуют разной информации на выходе. Ко-
му-то требуются лишь сингулярные значения, тогда как другим нужны пра-
вые или левые сингулярные векторы, или и те, и другие. Если требуются ка-
кие-то сингулярные векторы, то матрицы U и/и л и V должны вычисляться
явно. Обычно можно избежать вычисления U, но имеется много приложе-
ний, где V нужна. Подсчет флопов в упражнении 5.9.22 не учитывает затраты
на вычисление U или V. Если требуется 47, то нет смысла делать перед этим
QA-разложение.
Вычисление сингулярного разложения В
Поскольку В — двухдиагональная матрица, то она имеет вид
434
Глава 5. Собственные значения и собственные векторы I
где В есть двухдиагональная матрица. Задача определения SVD матрицы
А сводится, таким образом, к задаче вычисления SVD меньшей двухдиагональ-
ной матрицы В.
Для удобства обозначений опустим тильду в Я, и пусть В eRwxw будет двух-
диагональной матрицей, скажем,
(5.9.24)
Упражнение 5.9.25. Покажите, что и ВВ\ и ВТВ являются трехдиагональ-
ными. □
Задача вычисления SVD матрицы В эквивалентна задаче определения соб-
ственных значений и собственных векторов трехдиагональных матриц ВТВ и
ВВТ. Имеется много алгоритмов для решения этой задачи. Один из них - QA-
алгоритм, которому было уделено так много внимания в этой главе. Другие,
включая некоторые действительно хорошие, обсуждаются в разд. 6.6. Однако
мы предпочитаем не формировать произведения ВТВ и ВВТ явно по той же
причине, по которой раньше не вычисляли АТА и АА1'. Итак, возникает следую-
щий вопрос: можно ли известные методы решения задачи на собственные зна-
чения для симметричных трехдиагональных матриц переформулировать так,
чтобы они стали применимы непосредственно к В, без формирования произ-
ведений? Оказывается, что ответ на этот вопрос будет положительным для
большинства (всех?) методов. Мы проиллюстрируем это, показав, как приме-
нить QA-алгоритм к ВТВ и ВВТ без какого-либо формирования произведений
[32]. Это не обязательно лучший алгоритм для данной задачи, но он служит
хорошей иллюстрацией. Все это тесно связано с QZ-алгоритмом для обобщен-
ной задачи на собственные значения, которую мы обсудим в разд. 6.7.
Начнем с определений. Будем говорить, что В является правильной двух-
диагональной матрицей, если (в обозначениях (5.9.24)) [3, * 0 и у, * 0 при
всех i.
Упражнение 5.9.26. Покажите, что В есть правильная двухдиагональная мат-
рица, тогда и только тогда, когда и ВВТ, и ВТВ являются правильными трехдиа-
гональными, т.е. если все их элементы вне этих трех диагоналей равны нулю. □
Если В не является правильной двухдиагональной, задача нахожения ее
SVD может быть сведена к двум или более подзадачам меньшей размерности.
Прежде всего, если некоторое ук равно нулю, то
Вх О
О В2
(5.9.27)
где Bl е и В2 е kMm к) обе двухдиагональны. SVD матриц Вх и В2 можно
найти раздельно, а потом объединить, чтобы получить SVD матрицы В. Если
5.9. Еще раз об SVD
435
какое-то рк равно нулю, то с небольшими затратами можно преобразовать В к
виду, допускающему дальнейшую редукцию. Эта процедура обсуждается в уп-
ражнении 5.9.46. Если р* точно равно нулю, его удаление обязательно для
дальнейшей работы QR-алгоритма. Но если Рк просто близко к нулю, его не
надо удалять специально - QR-алгоритм сам выполнит это.
Теперь без потери общности можно считать, что В - правильная двухдиаго-
нальная матрица. Мы даже предположим (упражнение 5.9.47), что все pfc и ук
положительны.
QR-алгоритм для SVD
Основные факты о QR-алгоритме - то, что это итерационный процесс, вы-
года от сдвигов, и т.д., были изложены в разд. 5.6. Наша основная цель здесь -
показать, как выполнить QR-итерацию для ВГВ и ВВгбез формирования самих
произведений.
Начнем с того, что запишем, как будет выглядеть итерация при наличии
произведения. Если мы хотим сделать QR-шаг и для ВТВ, и для ВВТ со сдвигом
р, начнем с получения QR-разложений
ВТВ - pl = QR и ВВТ- pl = PS, (5.9.28)
где Q и Р ортогональны, a R и S - верхние треугольные. Если теперь определим
В как
В = РтВ Q, (5.9.29)
то из (5.9.28) и (5.9.29) сразу увидим, что
BTB = QTBTBQ = RQ+ pl (5.9.30)
и
ВВТ = РТВВТР = SP + pl. (5.9.31)
Это означает, что оба преобразования ВВТ —► BBTw ВТВ -> ВтВ являются
QR-шагами со сдвигом. Таким образом, преобразование (5.9.29) выполняет
QR-шаги неявно.
Теперь наша цель - выполнить преобразование (5.9.29), а для этого нам
нужны матрицы Р и Q. Они получаются из QR-разложений (5.9.28), для кото-
рых понадобятся ВТВ - р! и ВВТ- pl. Но мы хотим обойтись без этого - мы хо-
тим построить Р и Q без выполнения QR-разложений явным образом и даже
без построения ВТВ или ВВТ,
Каждая из матриц Р и Q является произведением вращений:
Р — Pi... Pm - \ и Q - Qj... QOT_i.
(5.9.32)
436
Глава 5. Собственные значения и собственные векторы I
Если эти вращения известны, их можно применить к В одно за другим и пре-
образовать В к В. Проблема в том, чтобы найти дешевый способ построения ка-
ждого из вращений по мере необходимости, что позволит нам эффективно вы-
полнить (5.9.29). В разд. 5.7 мы видели, как это делается в случае стандартной
задачи на собственные значения. Подобный подход можно применить и здесь.
Но вместо этого мы пойдем более короткой дорогой — просто опишем неявный
0Л-алгоритм, а затем воспользуемся неявной 0-теоремой для его обоснования.
Сначала сделаем несколько замечаний о форме В. Если р не является соб-
ственным значением матриц ВТВ и ВВ\ то обе верхние треугольные матрицы S
и R из (5.9.28) невырожденны. Их можно даже нормировать так, что элементы
их главных диагоналей станут положительными. Следующее упражнение по-
казывает, что в этом случае В наследует двухдиагональную форму В.
Упражнение 5.9.33. Пусть обе R и S из (5.9.28) невырожденны.
(а) Покажите, что
(ВВГ - р!)В = В(ВТВ - рГ) и (ВТВ - р!)Вт = ВГ(ВВТ - рГ).
(Ь) Используя (5.9.28), (5.9.29) и результат п. (а), покажите, что В = SBR~l и
Вт = RBTS~X.
(с) Покажите, что если В — верхняя треугольная матрица, то такой же будет и В.
(d) Покажите, что если Вт - верхняя хессенбергова матрица, то такой же
будет и Вт.
(е) Покажите, что если В — двухдиагональная матрица, то такой же будет и В.
(f) Покажите, что для правильной двухдиагональной В такой же будет и В.
(g) Покажите, что если все диагональные и наддиагональные элементы
матрицы В положительны, то это верно и для В, если только R и S нормирова-
ны так, что элементы их главных диагоналей положительны. □
Все результаты этого упражнения верны и, в частности, В будет правильной
двухдиагональной, если р не есть собственное значение для ВГВ и ВВГ. Даже
если р является собственным значением, выводы по большей части все еще
остаются верными. Единственное отличие будет тогда в том, что у В ее (/и - 1, /п)-
элемент равен нулю, т.е. у/и_1 = 0. Тщательный анализ этого случая требует не-
которых дополнительных усилий и не приводится здесь.
Теперь мы в состоянии описать неявный 0Я-шаг. Для начала нам нужен
лишь первый столбец матрицы 0. Из первого уравнения ВГВ - pI = QR (5.9.28) и
того факта, что R является верхней треугольной матрицей, мы видим, что пер-
вый столбец матрицы 0 пропорционален первому столбцу матрицы ВТВ - р/,
который равен
₽? -р'
YiPi
0
(5.9.34)
0
5.9. Еще раз об SVD
437
Можно легко вычислить эти два числа и нет необходимости вычислять всю
матрицу ВТВ- р/. Пусть Vx будет вращением (или отражением) в (1,2)-плоско-
сти, у которого первый столбец пропорционален (5.9.34). Умножим В на Vx
справа. Операция В -> BVX изменяет только первые два столбца матрицы В и
порождает новый ненулевой элемент («выступ») в позиции (2,1). (Нарисуйте
картинку.)
Наша цель теперь — вернуть матрице двухдиагональную форму, вытесняя
выступ. В качестве первого шага в этом направлении найдем вращение Ux в
(1,2)-плоскости такое, чтобы yUx BVX был нуль в позиции (2,1). Эта опера-
ция действует на строки 1 и 2 и порождает новый выступ в позиции (1,3).
Пусть теперь И2 будет вращением, действующим на столбцы 2 и 3 так, что у
Ux BVXV2 будет нуль в позиции (1,3)- Это порождает выступ в позиции (3,2).
Добавляя отражения U2 , К3, (73г, ..., мы проталкиваем выступ через позиции
(2,4), (4,3), (3,5), (5,4), ..., (ди, m - 1) и, наконец, выталкиваем его за пределы
матрицы. Это завершает неявный 0К-шаг. Его результатом будет двухдиаго-
нальная матрица
В = итт^ ... и*и{В НИ... Vm_x. (5.9.35)
Подходящим выбором вращений можно сделать все элементы матрицы В
неотрицательными.
Упражнение 5.9.36. (а) Покажите, что каждое из вращений К2, ..., Vm_ ь
UXi U2,..., Um_x в (5.9.35) нетривиально (т.е. выполняет поворот на угол, отлич-
ный и от 0, и от 180 градусов), и в то же время докажите, что элементы матри-
цы В удовлетворяют условиям р, ф 0, i = 1, ..., т - 1, и yz ф 0, i - 1, ..., т - 2.
(Может случиться, что = 0 или 3^ = 0. На самом деле у т_х = 0 тогда и толь-
ко тогда, когда р есть собственное значение матрицы ВТВ.) (Ь) Покажите, что
вращения можно выбрать так, что веер, и yz будут неотрицательными, (с) По-
кажите, что недиагональные элементы матриц ВТВ и ВВТ не равны нулю, за
исключением, возможно, элемента (m,т - 1). □
Полагая
р = UxU2...Um_x hQ = VxV2...Vm_x, (5.9.37)
можно переписать (5.9.35) как
В = РТВ Q. (5.9.38)
Теперь нам надо показать, что В по существу и есть та самая матрица В, ко-
торая была указана в (5.9.29).1 Требуемый результат будет вытекать из следую-
щей теоремы (она того же типа, что и неявная 0-теорема).
1 Можно доказать еще большее — показать, что вращения Uy ..., Um_x и ..., Vm_ j по существу
совпадают, соответственно, с Ph ... , Рт _ , и Qx, ... , Qm _ h но у нас нет на это времени.
438
Глава 5. Собственные значения и собственные векторы I
Теорема 5.9.39. Пусть В — невырожденная матрица. Предположим,что В -
двухдиагоналъная матрица, В — правильная двухдиагональная, матрицы Р, Q, Р,
Q ортогональны,
B = PTBQ (5.9.40)
и
B = PTBQ. (5.9.41)
Далее предположим, чтоQuQ имеют практически одинаковые первые столб-
цы, т.е. Qe{ = Qe{d{, где d{ = ±1. Тогда существуют ортогональные диагональные
матрицы Du Етакие, чтоQ = QD, Р = РЕиВ = ЕBD. Другими словами, ВиВ по
существу совпадают.
Доказательство. Для начала отметим, что ВТВ = QT{BTB)Q и ВтВ -
QT(BTB)Q. Согласно упражнению 5.9.26 В тВ пВтВ - трехдиагональные мат-
рицы, а последняя — правильная трехдиагональная. Применяя ослабленную
версию неявной 0-теоремы (теорема 5.7.24) с ВТВ, ВтВ иВт В в роли А, В и А
соответственно, найдем, что существует ортогональная диагональная матрица
D такая, что Q = QD, т.е. Q и Q практически совпадают. Используя это равенст-
во, можно переписать (5.9.40) и (5.9.41) так, чтобы получить
PB=BQ=BQD= P(BD).
Полагая С-РВ-P(BD), замечаем, что обе матрицы Р J иP(BD) представ-
ляют собой 0Л-разложения матрицы С. Следовательно, согласно упражнению
3.2.47, Р и Р по существу равны, т.е. имеется ортогональная диагональная мат-
рица Етакая, что Р= РЕ. Отсюда сразу следует, что В = ЕBD. □
Упражнение 5.9.42. Покажите, что если у В и В при всех /р/>О,у/> 0, р, > 0
и у, > 0 и в теореме 5.9.39 Qe{ = Qe{, roQ = Q,P = P иВ = В. □
Чтобы применить теорему 5.9.39 в нашей теперешней ситуации, заметим,
что первый столбец матрицы Q = Vx... Vm_t в (5.9.37) совпадает с первым столб-
цом матрицы Это нетрудно увидеть, если мы будем собирать Q, начиная с
Ух и последовательно умножая справа на И2, К3, ..., Ут_ р Поскольку каждая из
этих матриц есть вращение, действующее на столбцы, отличные от первого, то
первый столбец матрицы Q должен быть первым столбцом матрицы А этот
столбец выбирался практически равным первому столбцу матрицы Q из
(5.9.28) и (5.9.29). Теперь мы можем применить теорему 5.9.39, чтобы дока-
зать, что матрица В, определенная в (5.9.29), по сути является матрицей В, оп-
ределенной формулами (5.9.35) и (5.9.38). Вспоминая (5.9.30) и (5.9.31), мы
видим, что наша процедура вытеснения выступа выполняет 0Я-итерацию для
ВТВ и ВВТ. Этим завершается обоснование неявного 0Я-шага, по крайней мере
для случая, когда сдвиг не является собственным значением.
5.9. Еще раз об SVD
439
Упражнение 5.9.43. Объясните, что произойдет в случае, если р окажется
собственным значением матриц ВТВ и ВВТ. □
Сдвиги и дефляция
Если мы положим В <- В и будем последовательно выполнять £?Я-шаги с
разумно выбранными сдвигами, то обе матрицы ВТВ и ВВТ устремятся к мат-
рице диагональной формы. Элементы главной диагонали будут сходиться к
собственным значениям. Если сдвиги выбраны правильно, то элементы (ди, m
- 1) и (ди, т) обеих матриц ВТВ и ВВТ будут сходиться очень быстро, первый к
нулю, а второй к собственному значению. Конечно, мы здесь не работаем с
ВТВ или ВВТ непосредственно — мы работаем с В, Быстрая сходимость ВТВ и
ВВТ превращается в быструю сходимость ym _ j к нулю и рш - к сингулярному
числу. Как только ут _ j станет пренебрежимо малым (например, ут _ j < u(ftm _ j +
Pm), где и — единичная ошибка округления), можно понизить порядок задачи и
далее работать с оставшейся (т - 1) х (т - 1)-подматрицей. После понижения
порядка т - 1 раз работа будет закончена.
На протяжении всей этой процедуры каждое из ук медленно смещается к
нулю. Если какое-нибудь из них станет пренебрежимо малым, задача сведется
к подзадачам меньшей размерности, как в (5.9.27).
До настоящего момента мы не указали, как выбирать сдвиги. Начинать
стоит с нескольких итераций при р = 0. Если у В есть совсем небольшие
сингулярные числа, они будут спускаться к основанию матрицы и можно
будет понизить порядок В} Избавившись от них, мы сможем переклю-
читься на стратегию со сдвигами, которая позволит быстро выделить ос-
тавшиеся сингулярные числа. С этой целью мы должны подобрать сдвиги,
которые хорошо аппроксимируют собственные значения матрицы ВТВ. На-
пример, нетрудно вычислить 2 х 2-подматрицу в нижнем правом углу мат-
рицы ВТВ. Это есть
1 т-2 +Рт-1 Т/п-1Р/и-1
Ym-lP/n-1 Y/M-1+Pm
(5.9.44)
Здесь символ В обозначает текущую, а не исходную матрицу. Так же и ди от-
носится к размерам текущей матрицы (возможно, после нескольких пониже-
ний порядка), а р и у являются значениями текущих, а не исходных элементов.
Мы можем вычислить пару собственных значений матрицы (5.9.44) и на сле-
дующей итерации сделать сдвиг р равным тому собственному значению, кото-
рое ближе к у2т_х +Рю. Это сдвиг Уилкинсона для матрицы ВТВ и это хороший
выбор, поскольку он гарантирует сходимость и в реальных условиях эта сходи-
мость оказывается быстрой.
1 Вспомним, что согласно теореме 5.6.21 нулевое собственное значение матрицы ВТВ, соответ-
ствующее нулевому сингулярному числу матрицы В, будет выделено за одну итерацию. Анало-
гично собственные значения, очень близкие к нулю, будут выделены всего за несколько итераций.
440
Глава 5. Собственные значения и собственные векторы I
Упражнение 5.9.45. Напишите программу на Фортране (или MATLAB’e,
или С, или ...), которая вычисляет сингулярные числа двухдиагональной мат-
рицы В. Проверьте ее на матрице В g Rwx/", у которой р, = 1 и у, = 1 для всех L
Попробуйте различные значения т. Сингулярные числа матрицы В таковы:
П 1
о. = 2 cos------, j = 1, т,
J 2w + l
Дополнительные упражнения
Упражнение 5.9.46. Пусть В е Rwx/” имеет вид (5.9.24). Поскольку ее размеры
тх т, можно утверждать, что у В есть т сингулярных чисел Oj > о2 - 0.
Если гапк(В) = г < т, то последние т - г сингулярных чисел равны нулю.
(а) Покажите, что Р* = 0 для некоторого к тогда и только тогда, когда нуль
есть сингулярное число матрицы В.
(Ь) Предположим, что р^. = 0. Покажите, что можно сделать ук_ j = 0 с помо-
щью последовательности к - 1 вращений, применяемых к В справа. Первое
воздействует на столбцы к - 1 и к и преобразует ук_ j в нуль. В то же время оно
порождает новый ненулевой элемент в позиции (к - 2, к). Второе вращение
действует на столбцы к - 2 и к, обнуляет элемент (к - 2, к) и создает новый не-
нулевой элемент в позиции (к - 3, к). Последовательные вращения выталкива-
ют новый ненулевой элемент вверх по Л-му столбцу пока он не исчезнет с
верхней строки матрицы. У полученной двухдиагональной матрицы одновре-
менно р^ = 0 и ук _ j = 0.
(с) Все еще предполагая pfc = 0, покажите, что можно сделать ук = 0 с помо-
щью т-к последовательных вращений, приложенных к В слева. Эта процеду-
ра аналогична описанной в п. (Ь) за исключением того, что нежелательный не-
нулевой элемент выталкивается вдоль Л-й строки, а не Л-го столбца. После вы-
полнения процедур, описанных в пп. (Ь) и (с), мы имеем р* = 0, ук_ t = 0 и ук = 0.
Теперь двухдиагональная матрица принимает форму
д.
о
где явно выписанный нуль есть р^,. Это нулевое сингулярное число матрицы В.
При необходимости можно передвинуть его в позицию (т,т) перестановкой
строк и столбцов. Полное SVD можно найти, комбинируя вычисленные по от-
дельности SVD каждой из подматриц Вх и В2, □
Упражнение 5.9.47. Покажите, что если В — правильная двухдиагональная-
матрица, то существуют ортогональные диагональные матрицы и D2 (имею-
щие ±1 на главной диагонали) такие, что все ненулевые элементы матрицы
DxBD2 положительны. Поэтому мы можем предположить без потери общно-
сти, что все р*. и ук — также положительны. □
5.9. Еще раз об SVD
441
Упражнение 5.9.48. Покажите, что если А е R”4” — симметричная положи-
тельно определенная матрица, то ее сингулярные числа совпадают с ее собст-
венными значениями, а ее правые и левые сингулярные векторы совпадают с
ее (нормированными) собственными векторами. Как изменится картина, если
А будет симметричной, но не определенной положительно? □
Упражнение 5.9.49. Для заданной матрицы А е R”4'” рассмотрим симметрич-
ную матрицу
М =
Ат
О
R<
п + /я)х(// + т)
Покажите, что существует простая зависимость между сингулярными век-
торами матрицы А и собственными векторами матрицы М. Покажите, как по-
строить ортогональный базис в R"+'”, состоящий из собственных векторов мат-
рицы М, если даны сингулярные векторы А. По ходу дела найдите все собст-
венные значения матрицы М. (Указание. Если ц — собственное значение мат-
рицы М, то собственным значением будет и -ц.) □
Упражнение 5.9.50. Пусть А е R"4'” , а С е Rwx" и положим
А
Покажите, что ц является собственным значением матрицы Г тогда и толь-
ко тогда, когда ц2 будет собственным значением обеих матриц АС и СА. Найди-
те зависимость между собственными векторами матрицы F и собственными
векторами матриц АС и СА. □
6
Собственные значения
и собственные векторы II
В первом разделе данной главы вводятся понятия собственного пространст-
ва и инвариантного подпространства. Последнее понятие особенно важно для
глубокого понимания задач на собственные значения и алгоритмов. Воору-
женные этими новыми понятиями, мы в состоянии объяснить в разделе 6.2,
почему работает 0Я-алгоритм. Попутно мы вводим понятие одновременной
итерации - алгоритма, который тесно связан с ^-алгоритмом и сам по себе
полезен при вычислении собственных значений и собственных векторов боль-
ших разреженных матриц. Хотя важность одновременной итерации в качестве
практического метода в последнее время подвергается сомнению, тем не ме-
нее он облегчает нам переход к разделам 6.3 и 6.4, в которых рассматривается
несколько алгоритмов решения задачи на собственные значения для больших
разреженных матриц.
Последние три раздела настоящей главы можно читать более или менее не-
зависимо. В разд. 6.5 рассматривается чувствительность собственных значений
и собственных векторов и вводятся числа обусловленности для этих объектов.
В разд. 6.6 дается обзор ряда методов, которые могут быть использованы в ка-
честве альтернативы СК-алгоритму для случая симметричных матриц. Нако-
нец, в разд. 6.7 дается краткое введение в обобщенную задачу на собственные
значения Av = XBv и в алгоритмы ее решения.
6.1. Собственные и инвариантные подпространства
Полагая, что А е Спхп и X — любое комплексное число, рассмотрим множе-
ство векторов
5x = {vg Ся|Лу = Xv}.
Легко проверить, что является подпространством в С”.
Упражнение 6.1.1. (а) Покажите, что если vb v2 е то + v2 е (Ь) Пока-
жите, что если v е 5Х, а а е С, то av g 5Х. Таким образом, есть подпростран-
ство в С”. □
6.1. Собственные и инвариантные подпространства
443
Переписав уравнение Av = Xv в виде (X/ - A )v = 0, можно увидеть, что =
MV- А) есть нуль-пространство для XI-А. Пространство всегда содержит
нулевой вектор. Оно содержит и другие векторы, тогда и только тогда, когда X
является собственным значением матрицы Д в этом случае мы называем Sk
собственным подпространством матрицы А, соответствующим X.
Понятие инвариантного подпространства является полезным обобщением
собственного пространства. Поскольку мы будем рассматривать как вещест-
венные, так и комплексные инвариантные подпространства, начнем с введе-
ния некоторых обозначений, чтобы определение было более гибким. Через F
обозначим вещественное или комплексное числовое поле. Таким образом, F"
и Fwx" обозначают либо R” и К”4”, либо С” и Спхп, в зависимости от выбора F.
Пусть Л е Fxw. Говорят, что подпространство S из Fwxw является инвариант-
ным относительно Л, если Ах е S для любого х; другими словами, AS с S. Мы
будем иногда упрощать язык и говорить, что S является инвариантным подпро-
странством матрицы А. Пространства {0} и F” являются инвариантными под-
пространствами матрицы А. Следующее упражнение дает несколько нетриви-
альных примеров инвариантных подпространств.
Сначала вспомним некоторые обозначения из гл. 3. Для данных хь х2, • ••>
е Fw через spanfo,..., хк} обозначено множество всех линейных комбинаций х,,
..., хк. То есть,
span{x1?
к
хк} = Iе/ eF> f’ = 1>
к
Обратите внимание, что в определении span{xb ..., хк} имеется некоторая
неопределенность. Коэффициенты с, принадлежат полю F. Они могут быть
либо вещественными, либо комплексными, в зависимости от контекста.
В гл. 3 этой неоднозначности не было, поскольку там всегда F = R.
Упражнение 6.1.2.
(а) Пусть v е F есть собственный вектор матрицы А. Покажите, что span{v}
инвариантно относительно Л.
(Ь) Пусть Sk — любое собственное подпространство матрицы А (размерно-
сти 1 или выше). Покажите, что инвариантно относительно А.
(с) Пусть V|, ..., vk е F” суть к собственных векторов матрицы А, соответст-
вующих собственным значениям ..., Хк. Покажите, что подпространство 5 =
span{vb ..., vk} инвариантно относительно Л. Можно показать, что если Л — полу-
простая матрица, то каждое инвариантное подпространство имеет такой вид.
(d) Пусть
о о
2 1
0 2
1
Л = 0
о
Найдите собственные подпространства матрицы Л, а также подпространст-
во 5, инвариантное относительно Л, но не являющееся линейной оболочкой
собственных векторов Л. □
444
Глава 6. Собственные значения и собственные векторы II
Если рассматривать А как линейный оператор, отображающий F” в F", то
инвариантное подпространство можно использовать для редукции оператора в
следующем смысле. Предположим, что S есть инвариантное подпространство
относительно Л, отличное и от {0}, и от F", и пусть В обозначает суженный (не-
полный) оператор, действующий на подпространстве 5, т.е. В - А | S. Тогда В
отображает 5 в 5. Понятно, что каждый собственный вектор оператора В явля-
ется собственным вектором Л; то же верно и для собственных значений. Та-
ким образом, мы получаем информацию о собственной системе матрицы Л,
исследуя оператор В, более простой по сравнению с Л, поскольку он действует
в пространстве меньшей размерности. Следующая группа теорем и упражне-
ний показывает, как эта редукция выполняется на практике. Начнем с описа-
ния инвариантных подпространств на языке матриц.
Теорема 6.1.3. Пусть S - подпространство в F” с базисом хъ ...,хк. Таким об-
разом, S = span{x15..., xk}. Пусть X = [хь ..., xj е F"x\ Тогда S инвариантно отно-
сительно А е F”4”, тогда и только тогда, когда существует В е F*x* такая, что
АХ = ХВ.
Доказательство. Предположим, имеется В такая, что АХ = ХВ. Пусть Ьу обо-
значает (/,/)-элемент в В. Приравнивая у-й столбец матрицы АХ у-му столбцу
к
матрицы ХВ, видим, что Лх, = ]ГхД- е span{xb ..., хк} = 5. Поскольку Лху е Sпри
/=1
у = 1,..., к, ихь ...,х* порождают S, то отсюда следует, чтоЛх е 5 для всехх е S.
Таким образом, 5 инвариантно относительно Л. Обратно, предположим, что 5
инвариантно. Нам нужно построить такую В, что АХ = ХВ. AXj е S при j=1,..., к,
так что существуют константы Ьу,... Д е F такие, что Лху = x{bXj + х2Ьу +... + хкЬ^.
Определим В g F*** как матрицу, (z,у)-элемент которой равен Ь^. Тогда Л[хь ..., xj =
= [хь..., xj А т.е. АХ = ХВ. (См. также упражнение 6.1.12.) □
Упражнение 6.1.4. Пусть S - инвариантное подпространство матрицы Л с
базисом X], ..., хк, и пусть X = [хь ..., xj. По теореме 6.1.3 существует 2? е F***
такая, что АХ = ХВ.
(а) Покажите, что если v е F* - собственный вектор матрицы В с собст-
венным значением X, то v = Xv есть собственный вектор матрицы Л с собст-
венным значением X. В частности, каждое собственное значение матрицы В
является собственным значением матрицы Л. Какую роль играет линейная
независимость векторов хь ..., хк1
(Ь) Покажите, что v е S. Таким образом, v является собственным векто-
ром для Л|5. □
Упражнение 6.1.5. Для Л, В и 5 из предыдущего упражнения покажите, что
В есть матричное представление линейного оператора Л|5. □
Следующая теорема показывает, что каким бы ни был выбор базиса нетри-
виального инвариантного подпространства, можно всегда построить преобра-
зование подобия, сводящее задачу на собственные значения к двум задачам
меньшей размерности.
6.1. Собственные и инвариантные подпространства
445
Теорема 6.1.6. Пусть S инвариантно относительно А е F”4”. Предположим,
что S имеет размерность к, 1 < к <п, и пусть хх,..., хк — базис в S. Пусть также
х*+1,хп суть п-к векторов, образующих вместе схх, ...,хк базис пространства
F". Кроме того, пусть Хх = [х1 ... xj, Х2 = [х*+1 ... х„] и X- [xt ... xj е F"xw. Поло-
жим В - Х~хАХ. Тогда В является верхней треугольной блочной матрицей:
Л1 ^12
_0 В22
где g F*4*. Более того, AXt = Х^ц.
В подобна А и поэтому имеет тот же спектр. Его можно найти, вычисляя
порознь спектры матриц Вхх и В22. Таким образом, задача на собственные зна-
чения сведена к двум задачам меньшей размерности.
Заметьте, что матрица такая же, как и матрица В, введенная в теоре-
ме 6.1.3.
При желании мы всегда можем так выбрать хХ9 ,,.,хь чтобы они образовы-
вали ортонормированный базис пространства 5, и вдобавок к этому так подоб-
рать хк+х,..., хп, чтобы вместе сх1?..., хкони образовывали ортонормированный
базис пространства F. Этого можно достичь, например, с помощью процеду-
ры Грама—Шмидта. В этом случае X унитарна, а В унитарно подобна А.
Доказательство. Равенство В = Х~хАХ эквивалентно АХ = ХВ. j-n столбец
п
этого соотношения равен Ах} = ^Xjby. Поскольку хх, ..., хп линейно незави-
/=!
симы, эта сумма дает единственное представление Axj в виде линейной ком-
бинации векторов х1? ..., хп. С другой стороны, при j - 1, ..., к вектор ху- лежит
в инвариантном подпространстве S - spanfo, ..., хк}, так что Axj также лежит
в 5. Таким образом, Лху- - cXJxx + ... + скуск для некоторых с1у, ...,6^ е F. Из един-
ственности представления Лху мы имеем by = с у при i = 1, ..., к и, что более
важно, by = 0 при i = к + 1, ..., п. Это выполняется при j = 1, ..., к. В разбие-
нии В =
.^21
^22
блок В2Х содержит именно те by, для которых к + 1 < i < п
и 1 <j < к. Таким образом, В21 = 0. Это доказывает, что В является блочной
треугольной матрицей. Равенство АХх = ХхВхх теперь сразу следует из очевид-
ного разбиения равенства АХ = ХВ. □
В упражнении 6.1.13 приведено второе доказательство этой теоремы.
Упражнение 6.1.7. Докажите теорему, обратную 6.1.6: если В21 = 0, то 5 ин-
вариантно относительно матрицы А. □
Следствие 6.1.8. Пусть В - F[AX, где матрица У= [xt ... xw] е F”4” невырож-
денна. Тогда В является верхней треугольной в том и только в том случае, если
все пространства
span{Xi, ..., хк}, к - 1, ..., п - 1
инвариантны относительно А.
446
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.1.9. Докажите следствие 6.1.8.
Теорема 6.1.6 показывает, что какое бы нетривиальное инвариантное под-
пространство мы не нашли, всегда можно построить преобразование подобия,
сводящее задачу на собственные значения к двум задачам меньшей размерно-
сти. Если при этом мы сможем найти подпространства, инвариантные относи-
тельно и В22, то сможем каждую из них свести к подзадачам еще меньшей
размерности. Если мы в состоянии продолжать этот процесс сколь угодно дол-
го, то, в конце концов, приведем задачу к множеству небольших подматриц
размера 1 х 1 и 2 х 2, которые позволят нам просто считать собственные значе-
ния. Таким образом, есть основание утверждать, что нахождение инвариант-
ных подпространств лежит в основе вычисления собственных значений.
Теорема Шура (теорема 5.4.11) и ее вещественный вариант — теорема
Винтнера-Мурнагана (теорема 5.4.22) - показывают, что описанный выше
процесс разложения в принципе возможен всегда. Теперь мы видим (следст-
вие 6.1.8), что эти теоремы являются теоремами об инвариантных
подпространствах.
0Я-алгоритм успешно решает задачу разложения матриц. При типичной
редукции подматрица В22 оказывается небольшой, а подматрица - огром-
ной. Поэтому (почти) вся остальная работа сводится к разложению Вп. Хоте-
лось бы получить алгоритм, разбивающий матрицу на близкие по величине
подматрицы. Для этого надо уметь находить инвариантные подпространства с
размерностью около п/2, что оказывается трудно выполнимой задачей1.
Дополнительные упражнения
Упражнение 6.1.10. Если ц есть собственное значение матрицы А, то собст-
венное подпространство 5Ц(Л) = {v е С" | Av= pv} имеет размерность не менее 1.
Часто размерность равна точно 1, но иногда она больше. Геометрическая
кратность собственного значения ц определяется как размерность собствен-
ного подпространства 5Ц(Л). Геометрическая кратность может отличаться от
алгебраической кратности, которая определяется как число появлений ц в ка-
честве корня характеристического уравнения. Под этим мы понимаем количе-
ство появлений множителя X - ц среди множителей характеристического мно-
гочлена det(X/ - А).
(а) Найдите геометрическую и алгебраическую кратности собственного
значения X = 2 для каждой из следующих матриц:
0
2
0
1
0
0
1
0
0
2
2
0
3'
3
3
А =
, В =
О'
1
2
0
0
2
1
0
о
о
2
0
, с =
(Ь) Теорема Шура (теорема 5.4.11) гарантирует, что каждая матрица Л е С1*”
унитарно подобна верхней треугольной матрице 7? А = UTU\ Покажите, что
1 Однако в этой области наблюдаются некоторые продвижения. См. [4].
6.1. Собственные и инвариантные подпространства
447
алгебраическая кратность ц — собственного значения матрицы А — равна чис-
лу появлений ц на главной диагонали Т.
(с) Покажите, что если А и В — подобные матрицы, то dim 5Ц(Л) = dim 5Ц(Б).
Таким образом, геометрическая кратность ц, как собственного значения мат-
рицы А, та же, что и в качестве собственного значения матрицы В.
(d) Покажите, что геометрическая кратность ц меньше или равна его алгеб-
раической кратности. (Поработайте с верхней треугольной матрицей Т в пред-
положении, что алгебраическая кратность ц равна к. Мы знаем, что в теореме
Шура мы можем расположить собственные значения в любом порядке на
главной диагонали матрицы Т (упражнение 5.4.30). Предположим, что Т уст-
роена так, что первые к элементов главной диагонали равны ц. Как выглядит
собственный вектор? Покажите, что размерность собственного подпростран-
ства не может превосходить к.) □
Упражнение 6.1.11. (Доказательство теоремы Винтнера-Мурнагана 5.4.22)
(а) Докажите, что если А е для п > 3, то существует подпространство S
е R" размерности 1 или 2, инвариантное относительно Л. (Рассмотрите собст-
венный вектор матрицы А. Его вещественная и мнимая части порождают под-
пространство в Покажите, что это подпространство инвариантно и имеет
размерность 1 или 2.)
(Ь) Используя п. (а) и теорему 6.1.6, докажите по индукции теорему 5.4.22. □
Упражнение 6.1.12. Пусть х1?..., хк е F”, X = [хн ..., xj е Fwx* и 5 = span{Xj,...,
х*} с F”. Если рассматривать X как линейный оператор, отображающий F* в F",
то область значений X есть множество ЩХ) = {Xz | z е F*}.
(а) Покажите, что Н(Х) = S.
(Ь) Используя результат п. (а), напишите более короткое доказательство
теоремы 6.1.3. □
Упражнение 6.1.13. В этом упражнении приводится второе доказательство
теоремы 6.1.6. Используя обозначения теоремы 6.1.6, определим Y е F"4” через
Yr=х~1. Пустьу1,..., уп обозначают столбцы матрицы Yи пусть У| = [у„..., yj и
(а) Покажите, что Y? Х{ = I е Гх\ Г2ГХ2 = I е ^^~к^~к\ у/Х{ = 0 и Y? Х2 = 0 .
(Ь) Покажите, что YiTAXl = Bll9 Y2TАХ2 = В2Ъ Y2TAXt = В21 и YlrAX2 = BI2.
(с) Используйте теорему 6.1.3 и некоторые из равенств п. (а) и (Ь), чтобы
показать, что В21 = 0, если столбцы в порождают инвариантное подпро-
странство. □
Упражнение 6.1.14. В обозначениях теоремы 6.1.6 положим Т= span{xHb..., хп}.
(а) Покажите, что Тинвариантно относительно А тогда и только тогда,
когда В12 = 0. Ваше решение может оказаться похожим на доказательство
теоремы 6.1.6 или же вы можете использовать соображения из упражне-
ния 6.1.13.
(Ь) Предположим, что Тинвариантно относительной . Покажите, что если
v есть собственный вектор матрицы В22, соответствующий собственному зна-
чению X, то v = X2v является собственным вектором матрицы А, соответствую-
щим собственному значению X. □
448
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.1.15. Будем считать, что предположения теоремы 6.1.6
выполняются. Определим Y е Fwxw через У7 = JT1, и пусть ..., уп обозна-
чают столбцы матрицы X У, = [уь ..., yj, У2 = [уЛ+1, ..., у„]. Определим обо-
лочку U = span{^+1, ...,yw}.
(а) Покажите, что К инвариантно относительно АТ.
(Ь) Покажите, что если w есть собственный вектор матрицы В22, соответст-
вующий собственному значению X, то w = Y2w является собственным вектором
матрицы Аг, соответствующим собственному значению X. □
Упражнение 6.1.16. Еще раз проделаем упражнение 6.1.15 с одним неболь-
шим изменением. Возьмем F = С и определим Z е Спхп с помощью Z* = JT1.
Через Zi, zn обозначим столбцы матрицы Z и определим Z2 = [^+i, ...» zj
и У = spanfe^, z„}.
(а) Покажите, что V инвариантно относительно Л* .
(Ь) Покажите, что если w есть собственный вектор матрицы В22, соответст-
вующий собственному значению X, то w = Z2w является собственным векто-
ром матрицы А\ соответствующим собственному значению X.
(с) Всегда можно выбрать хи ..., хп так, чтобы X была унитарной, и в этом
случае положим Z-X. Используя это, покажите, что если S инвариантно отно-
сительно Л, то 51 инвариантно относительно Л*. □
Упражнение 6.1.17. В этом упражнении мы приведем прямое доказательст-
во (не используя базисы) того, что 51 инвариантно относительно Л*, если S ин-
вариантно относительно Л. Вспомните, что внутреннее произведение в С” оп-
п
ределялось как (х, у) = Xх;У;• Пусть Л е С"х”.
(а) Покажите, что при всехх,у е С" имеем {Ах,у) = (х,Л у). Это комплексный
аналог леммы 3.5.9.
(Ь) Воспользуйтесь результатом п. (а), чтобы прямо доказать, что если S ин-
вариантно относительно Л, то 51 инвариантно относительно Л*.
(с) Исходя из (Ь), выведите, что если матрица Л эрмитова (Л = Л*), то 5 ин-
вариантно относительно Л тогда и только тогда, когда таково 51. Свяжите этот
результат с упражнением 6.1.14 и теоремой 6.1.6. □
Упражнение 6.1.18. Пусть Л, В, X е F”4", причем Xневырожденна, а В = Х~'АХ.
Пусть Xj, ..., хп обозначают столбцы матрицы X. Докажите, что В является ниж-
ней треугольной матрицей, тогда и только тогда, когда все пространства
span{x^b ..., х„}, k = 1,..., п - 1, инвариантны относительно Л. □
6.2. Итерирование подпространства, одновременная итерация
и (ZR-алгоритм
Главная цель данного раздела — естественным путем логически вывести
0Я-алгоритм и выяснить свойства его сходимости. При этом мы рассмотрим
итерацию подпространства и одновременную итерацию — очень важные поня-
6.2. Итерирование подпространства, одновременная итерация и QR-алгоритм
449
тия при вычислении собственных значений больших разреженных матриц.
Кроме этого мы рассмотрим важный принцип двойственности, устанавливаю-
щий, что какая бы прямая (степенная) итерация не использовалась, одновре-
менно с ней выполняется обратная итерация. Этот принцип позволит связать
QA-алгоритм с обратной итерацией и итерацией с отношением Рэлея.
Итерация подпространства
Начнем с того, что снова рассмотрим степенной метод и сформулируем его
в терминах подпространств. Для данной матрицы А е С"х”, имеющей домини-
рующее собственное значение, можно применить степенной метод, чтобы вы-
числить доминирующий собственный вектор V| или же кратный ему. Неважно,
какой из кратных векторов мы получим, поскольку каждый ненулевой крат-
ный вектор так же хорош в качестве собственного вектора, как и любой дру-
гой. На самом деле каждый вектор, кратный порождает то же самое подпро-
странство span{v!}, которое нас только и интересует. Подобным образом в сте-
пенной последовательности q, Aq, A2q, A3q, ... каждую из итераций Amq можно
рассматривать как образующий вектор пространства spanf/T#}, которое он по-
рождает. Операция перемасштабирования вектора сводится к замене одного
образующего вектора другим из того же одномерного подпространства. Таким
образом, степенной метод можно рассматривать как процесс итерирования
подпространств: сначала выбирается одномерное подпространство S = span{#};
затем выполняются итерации
5, AS, A2S, A3S, ... (6.2.1)
Эта последовательность линейно сходится к собственному подпростран-
ству Т = spantvj в том смысле, что угол между AmS и Т сходится к нулю
при т —> оо.
Вполне естественно обобщить этот процесс на пространства с размерно-
стью больше единицы. Таким образом, мы можем выбрать подпространство S
любой размерности и сформировать последовательность (6.2.1). Вряд ли нас
удивит, что эта последовательность обычно сходится к пространству, инвари-
антному относительно А. Прежде чем продолжить, вам надо выполнить сле-
дующее упражнение, в котором рассмотрен ряд ключевых понятий и освеще-
но большинство основных свойств итерирования подпространств.
Упражнение 6.2.2. Пусть А е F"x", где F = R или С, и пусть S есть подпро-
странство из F. Тогда AS по определению есть множество AS = {Ах | х е 5}.
(а) Вспомним, что непустое подмножество U из F" является подпространст-
вом тогда и только тогда, когда (i) xb х2 е W => + *2 е W и (>i) aeFnxeZY=>
ах g U. Покажите, что если S есть подпространство в F”, то AS также является
подпространством в F”.
(Ь) По определению, AmS = {Атх | х е 5}. Покажите, что AmS = А(Ат ~ ’5).
(с) Покажите, что если S = span{xb ..., хк}, то AS = 8рап{Лх15 ..., Ахк}.
(d) Вспомним, что нуль-пространство матрицы А есть множество А/Ц) =
= {х е F”| Ах = 0}. Пусть S есть подпространство в F", для которого 5rW(J) = {0}.
15 Основы матричных вычислений
450
Глава 6. Собственные значения и собственные векторы II
Покажите, что если хк есть базис подпространства 5, то Ахх, ..., Ахк есть
базис подпространства AS. Следовательно, dim(AS) = dim(S). □
Чтобы говорить о сходимости подпространств, необходимо договориться,
что мы понимаем под расстоянием между двумя подпространствами. Однако
подробное обсуждение может отвлечь нас от нашей текущей цели: дать вам
интуитивное понимание того, почему 0Л-алгоритм работает. Поэтому мы
просто говорим, что расстояние между подпространствами Sj и 52, обозначае-
мое через rf(5b S2), по определению равно синусу наибольшего главного угла
между ними. (Определение главных углов приведено, например, в [33].) Для
данной последовательности подпространств (SJ и подпространства Т, имею-
щих одинаковую размерность, будем говорить, что (5W) сходится к Т(символи-
чески: Sm -> 7), если d(Sm, 7) -> О при т -> оо. Теперь мы готовы сформулиро-
вать главную теорему о сходимости итерирования подпространства.
Теорема 6.2.3. Пусть А е F”4” — полупростая матрица с линейно независимы-
ми собственными векторами ..., vn е F" и соответствующими собственными
значениями Xh ..., Х„ е F, для которых | X, | > | Х21 > ... > | Х„ |. Предположим, что
| \к | > | Х*+11 для некоторого к. Пусть Тк = span{vb ..., v*} uUk~ span{v^+1, ..., v,,}.
Пусть S - некоторое к-мерное подпространство из F” такое, что SrUk - {0}. То-
гда существует константа С такая, что
d(AmS, Tk) < С | kk+i/K |w, m = 0, 1, 2, ...
Таким образом, AmS -> Tk линейно с отношением сходимости | Х^/Х* |.
Поскольку 7^ натянуто на собственные векторы матрицы А, оно инвариант-
но относительно А. Тк называется доминирующим инвариантным подпростран-
ством матрицы А размерности к. Предположение о полупростоте не является
решающим: слегка измененная версия теоремы 6.2.3 выполняется и для де-
фектных матриц. Доказательство см. в [79].
Упражнение 6.2.4.
(а) Покажите, что из условия | X J > | Х*+11 следует, что Л/(Л) £ Нк.
(Ь) Более широко, покажите, что М(Ат) с Uk для всех т > 0.
(с) Докажите, что >TS имеет размерность к для всех т > 0. □
Легко привести аргументы в подтверждение теоремы 6.2.3. Пусть q — нену-
левой вектор в S. Нетрудно показать, что итерации Amq лежат (относительно)
близко и становятся все ближе к Тк по мере возрастания т. Действительно, q
можно представить единственным образом в виде
q = CjV] + c2v2 + ••• + ckvk + (компонента, лежащая в Тк)
+ c*+iv*+i + ••• + сп^п- (компонента, лежащая в Цк)
Поскольку q & Ык, по крайней мере один из коэффициентов сх, ..., ск не ра-
вен нулю. Теперь
ЛтЧ /(У" = с^\/Ък)тУ\ + - + ск _ 1(^ _ {/Wvk _ I + ckvk +
+ ck+l(^'k+l/^‘k)mvIM + + Сп(^п /^кУУ„.
6.2. Итерирование подпространства, одновременная итерация и QR-алгоритм
451
Коэффициенты компоненты из Тк возрастают, или, по крайней мере, не
убывают, когда т возрастает. В противоположность этому коэффициенты
компоненты из Uk стремятся к нулю со скоростью не ниже | |. Таким об-
разом, каждая последовательность (Amq) сходится к Тк с указанной скоростью
или еще быстрее, и, следовательно, предел последовательности (AmS) находит-
ся в Тк. Предел не может быть всем подпространством Тк, поскольку оно имеет
размерность к\
Предположение S п Ык = {0} заслуживает некоторых разъяснений. Это обя-
зательное условие или нет? Сначала посмотрим, к чему оно сводится при к = 1.
В этом случае S = span{#}, а Ц = span{v2, ...,vn}. Ясно, что S п = {0} тогда и
только тогда, когда q g А это просто означает, что * 0 в однозначно опре-
деленном разложении q = + c2v2 + ... + cnv„. Вы знаете из разд. 5.3, что это —
условие сходимости базового степенного метода к spanfvj. Оно выполняется
почти для любого v е F". В терминах подпространств одномерное подпро-
странство S и (п - 1)-мерное подпространство Ц почти наверное удовлетворя-
ют условию 5 п Ц = {0}. Это верно и в общем случае, лишь бы сумма размер-
ностей подпространств S и Uk не превосходила п.
Чтобы почувствовать, почему это возможно, сначала обратите внимание на
то, что если сумма размерностей превосходит п, то S и Uk должны иметь нетри-
виальное пересечение. Это — следствие фундаментального соотношения
dim(S n Uk) + dim(5 + Uk) = dim(S) + dim(WJ, (6.2.5)
поскольку dim(5 + Uk) < dim(F”) = n.
В нашей ситуации dim(S) = к и dim(Z4) = п - к. Сумма размерностей точно
равна п, так что имеется достаточно места, чтобы S и Uk располагались в F”, пе-
ресекаясь лишь тривиально. Если специально не подбирать подпространства,
имеющие нетривиальное пересечение, то скорей всего их пересечение будет
тривиальным. Посмотрим, что происходит в R3. В этом случае любая пара дву-
мерных подпространств (плоскостей, проходящих через начало координат)
имеет нетривиальное пересечение, поскольку сумма их размерностей превос-
ходит три. Напротив, плоскость и прямая не обязательно имеют нетривиаль-
ное пересечение, и чаще всего оно будет тривиальным. См. также упражнение
6.2.33. Мы приходим к выводу, что условие SnUk = {0} не такое уж строгое: на
практике оно выполняется почти при любом случайном выборе S.
Одновременная итерация
Чтобы выполнить итерирование подпространства на практике, нужно вы-
брать базис для S и применить итерации ко всем базисным векторам одновре-
менно. Пусть q^\ .... q(k}— базис в S. Из упражнений 6.2.2 и 6.2.4 мы зна-
ем, что если Sr\Uk- {0}, то Amq\Q\ Amq^\ ..., Amq{k} образуют базис в AmS. Та-
ким образом, в теории мы можем просто применить итерации к базису 5, дабы
1 При к > 1. - Прим, перев.
452
Глава 6. Собственные значения и собственные векторы II
получить базисы для AS, A2S, A*S и т.д. Есть две причины, препятствующие ре-
комендовать эту процедуру для практического применения: (i) Придется регу-
лярно перемасштабировать векторы, чтобы избежать переполнения или поте-
ри порядка, (ii) Каждая из последовательностей^01, Aq\\ A2q^\ ... независи-
мо от других сходится к собственному пространству spanfvj (предполагается,
что | Xj | > | Х21). Следовательно, при больших т все векторы Amq^\ ..., Amq^}
будут смотреть почти в одном направлении. Таким образом, они образуют
плохо обусловленный базис в AmS. Как показывает вычислительная практика,
плохо обусловленный базис плохо определяет пространство: небольшое воз-
мущение одного из базисных векторов может привести к большим изменени-
ям в этом пространстве.
От плохо обусловленного базиса можно избавиться, заменяя его на каждом
шаге хорошо обусловленным базисом того же подпространства. Эту операцию
по замене можно совместить с необходимым перемасштабированием. Есть
много способов проделать это, но наибольшего доверия заслуживает ортонор-
мирование. Поэтому мы рекомендуем следующую одновременную итерацию.
Начинаем с ортонормального базиса q^\..., q^} подпространства 5
for /п=0, 1, 2, ... (6.2.6)
Вычисляем Aq\m}, ..., Aq{™\ базис для
Ортонормируем Aq\m\ ..., Aq{™\
чтобы получитьq\m+x\ ...,
На практике необходимо воспользоваться каким-нибудь устойчивым (ро-
бастным) методом ортонормирования. Например, можно использовать моди-
фицированный метод Грама—Шмидта с переортогонализацией или (^-разло-
жения с помощью отражений (см. разд. 3.4).
Процедура одновременной итерации (6.2.6) обладает полезным свойством
итерирования подпространств малой размерности без дополнительных затрат.
Для i = 1, ..., к пусть S{ обозначает /-мерное подпространство, натянутое на
0i(O), •••> <7/(0)- Тогда
AS, = span{^J0), ..., Л^0)} = span{^(1), ...,
в соответствии со свойством инвариантности подространств (3.4.12) процеду-
ры Грама-Шмидта. В общем случае
AmSj = span{^I(m), ..., q(m)},
так что span{^{w), ..., q^m)} сходится к инвариантному подпространству
span{vp ...,vz} при т -> оо, при условии выполнения соответствующей гипотезы.
Таким образом, одновременная итерация находит не только инвариантное под-
пространство размерности к, но и подпространства размерностей 1,2,...,Л-1.
6.2. Итерирование подпространства, одновременная итерация и QR-алгоритм
453
Хотя метод одновременной итерации интересен сам по себе, главная при-
чина, по которой мы рассматриваем его здесь, — это использовать его для
введения 0Л-алгоритма. С этой целью рассмотрим, что произойдет, если
применить одновременную итерацию к полному множеству ортонормальных
векторов ..., F”. Мы все еще предполагаем, что А является полупро-
стой матрицей с линейно независимыми собственными векторами vb ...,vn.
Для к = 1, ..., п - 1 пусть Sk = span{^0), ..., Тк = span{vb ...,vj и Uk =
= span{vul, ...,v„}, и предположим, что Sk n Uk = {0} и | Xk | > | A*+l |. Тогда (для к -
= 1,..., n - 1) AmSk = spanfe^"0,..., q^} -> Tk линейно с коэффициентом сходи-
мости | | при m -> оо. Есть несколько способов убедиться в сходимости
итераций. Один из них - выполнить преобразование подобия.
Пусть Qm е F”4" обозначает унитарную матрицу, столбцы которой суть
q\m\ Q(nm\ и пусть
Am = Q^AQm. (6.2.7)
Для больших т пространство, натянутое на первые к столбцов матрицы Qm
очень близко к инвариантному подпространству Тк. Из теоремы 6.1.6 мы зна-
ем, что если эти столбцы точно порождают Тк9 то Ат имеет блочную верхнюю
треугольную форму
к
п-к
ЛН Л12
О А$}_
к п-к
(6.2.8)
и собственные значения матрицы А^} суть ..., Хк. Поскольку эти столбцы
порождают не точно Тк, мы не получим блок из нулей, но все же можем наде-
яться, что элементы блока А^ будут близки к нулю. Имеет смысл ожидать,
что А^} -> 0 с той же скоростью, что и AmSk -> Тк. Это утверждение оказывает-
ся справедливым и легко доказуемым. См., например, [79]. Таким образом,
последовательность (Лт) сходится к матрице, имеющей блочную верхнюю тре-
угольную форму (6.2.8).
Это выполняется не только для какого-то одного к, но для всех к одновре-
менно, так что в пределе мы получим верхнюю треугольную форму. Элементы
главной диагонали матрицы Ат сходятся к собственным значениям Х2,...
в соответствующем порядке. Этот вывод имеет силу в предположении, что
I КI > I К +11 выполняется при £=1, ..., п-1. Если некоторые из этих нера-
венств не будут выполняться, в пределе получится блочная треугольная форма.
Для каждой пары К — ^/+1 появится 2 х 2-блок, образованный строками и
столбцами с номерами i и i +1. Собственными значениями этого блока, конеч-
но, являются X, и Х/+1.
0Я-алгоритм является вариантом итерирования подпространства, при ко-
тором последовательность (Ат) порождается непосредственно.
454
Глава 6. Собственные значения и собственные векторы II
^-алгоритм
Нетрудно записать одновременную итерацию в матричной форме. В ре-
зультате т итераций получатся ортонормированные векторы q(m), ..., q(nm\ об-
разующие столбцы матрицы Qm. Пусть Вт+1 - матрица со столбцами Aq\m\ ...,
Aq^. Тогда = AQm. Для завершения шага надо выполнить ортонормиро-
вание векторов Aq^m), ..., Aq(nm). Из разд. 3.4 мы знаем, что это можно сделать с
помощью (^-разложения матрицы Вт+1. Таким образом, шаг одновременной
итерации можно записать в матричной форме как
AQm = Вт+Х = Qm^Rm^ (6.2.9)
Упражнение 6.2.10. Напишите одновременную итерацию в матричной фор-
ме для случая, когда используется лишь к векторов (к < п). Какими размерами
и другими свойствами обладают используемые при этом матрицы? □
Предположим теперь, что одновременная итерация начинается со стан-
дартного векторного базиса = elf q2Q) = е2, ..., q(nQ} = еп) т.е. что Qo = I. Тогда
из (6.2.9) имеем AI= В{ = QXR\* Полагая Ql = Qlf получаем
А = QXRX. (6.2.11)
Предположим, надеясь на лучшее, что мы хотим узнать, как далеко мы
продвинулись после этого шага. Это можно сделать, выполнив описанное
выше (см. (6.2.7)) унитарное преобразование подобия Ах = Q{AQX = Q{AQb и
определив, насколько близка At к верхней треугольной форме. Поскольку в со-
ответствии с (6.2.11) QXA = Яь матрицу Ах можно найти как
RiQi = Ах. (6.2.12)
Соотношения (6.2.11) и (6.2.12) совместно определяют шаг 0Я-алгоритма.
Узнав, что Л! не является верхней треугольной матрицей, можно перейти к
следующему шагу. Но теперь мы имеем выбор. Можно снова выполнить одно-
временную итерацию с А или же вместо этого использовать подобную ей мат-
рицу ЛР Вспомните, что подобные матрицы можно рассматривать как пред-
ставление того же линейного преобразования в других системах координат.
Таким образом, выбор междуЛ иАх есть просто выбор координатной системы.
Если мы продолжаем работать с исходной системой координат, то следующий
шаг имеет вид
AQt = B2 = Q2R2. (6.2.13)
Желая продолжить движение к пределу, мы должны выполнить преобразо-
вание подобия
Л 2 - Q2A Q2.
(6.2.14)
6.2. Итерирование подпространства, одновременная итерация и QR-алгоритм
455
Давайте выясним, как выглядят эти преобразования в системе координат
матрицы ЛР Поскольку At = Q/Л Qx, то координатный вектор х исходной систе-
мы координат в новой системе координат примет вид Qxx. Следовательно,
векторы #{1),..., q(nl)(столбцы матрицы преобразуются в векторы Qt*^Jl) = е{,
= е2> •••, QiQni} ~ еп (столбцы матрицы Г). Таким образом, соотношение Л
Q1 = В2 эквивалентно соотношению Л/= Лн а QA-разложение В2 = Q2 ^2 эквива-
лентно QA-разложению матрицы Лр
А = Q2R2. (6.2.15)
Если мы теперь пожелаем оценить наше продвижение за один шаг, можно
выполнить преобразование подобия
A2^Q2AxQ2. (6.2.16)
Поскольку R2 = Q2A , это преобразование можно записать как
R2Q2 = Л2. (6.2.17)
Соотношения (6.2.15) и (6.2.17) представляют собой второй QA-inar.
Упражнение 6.2.18. Предположим (для удобства), что Л невырожденна.
Следовательно, В2 тоже невырожденна, так что QA-разложение определяется
однозначно (теорема 3.2.58). Формула (6.2.13) дает одно из возможных выра-
жений для QA-разложения матрицы В2. Получите другое соотношение для это-
го QA-разложения, выразив В2 = Л через Л] и воспользовавшись (6.2.15). По-
кажите, что выражения (6.2.13) и (6.2.15) для матрицы А2 определяют одну и ту
же матрицу, Q2 = QjQ2, а соотношения (6.2.14) и (6.2.16) для матрицы Л2 также
определяют одну и ту же матрицу. □
При продолжении этой процедуры встает проблема выбора между система-
ми координат Л, Ль Л2. Решив на каждом шаге использовать новую координат-
ную систему, запишем последовательность (Лш) весьма элегантно:
Л-1 = GA, RmQm =Лт. (6.2.19)
Это - базовый QA-алгоритм. Как мы только что видели, это и есть одно-
временная итерация с изменением системы координат на каждом шаге.
Чтобы закрепить ваше понимание этого факта, выясним смысл соотноше-
ний (6.2.19).
Столбцами вАт_х являются Ат_ ..., Ат_ хеп, т.е. они - результат примене-
ния одного шага одновременной итерации стандартного базиса посредством
Ат_ j. Разложение Ат_х = QmRm ортонормирует эти векторы. Столбцы матрицы
Qm образуют ортонормированный базис для следующего шага одновременной
итерации. Шаг RmQm = Ат, эквивалентный Ат = Q*Am_ {Qmi просто выполняет
преобразование к новой системе координат. При этом преобразовании коор-
456
Глава 6. Собственные значения и собственные векторы II
динат ортонормированный векторный базис для следующей итерации преоб-
разуется к стандартному базису ..., е„.
Полное соответствие между 0Я-алгоритмом и одновременной итерацией
без преобразований координат установить нетрудно. Матрицы Ат, полученные
по формулам (6.2.19), такие же, что и полученные по (6.2.7), при условии, что
итерации начинались с 0О = /. Матрицы R,„ в (6.2.19) те же, что и в (6.2.9), a Qm
в (6.2.19) связаны с Qm из (6.2.9) соотношением
Qm = 0,02 - 0m, (6.2.20)
где Qm — матрица преобразования координат на т-м шаге, aQm аккумулирует
преобразования координат после т шагов.
Мы установили эквивалентность одновременной итерации и 07?-алгорит-
ма, рассматривая процесс шаг за шагом. Другой способ - рассмотреть резуль-
тат выполнения сразу т шагов. При этом подходе матрицы Qm, R„, и Ат опреде-
ляются по формулам (6.2.19), где Ло = A, a Qm определяется по (6.2.20). Если к
тому же определить Rm формулой
4 = ЛЛ.-i Я|> (6.2.21)
тогда
А = Q\R\ =Q}R{,
= — 0102^2^1 = 02^2’
Л3 = Q[R]QlRiQiRl = Q\Q2RiQ2^2^\ = 01020з^з^2^1 = 0зА»
и т.д. По индукции легко доказать, что
Am = QmRm, т = 1, 2, 3, ... . (6.2.22)
Упражнение 6.2.23. Предположим, что Ат, Q„, и Rm определены соглас-
но (6.2.19), где Aq = A, Qm определяется формулой (6.2.20), a Rm - форму-
лой (6.2.21).
(а) Докажите, что Ат - Q*(n AQm,u, следовательно, A Qm ~Qm Ат для всех т.
(Ь) Докажите (6.2.22) индукцией по т, используя результаты п. (а). □
Ясно, что Qm — унитарная, a Rm — верхняя треугольная. Следовательно,
(6.2.22) есть просто 0Я-разложение матрицы Ат. Это означает, что для всех к
первые к столбцов в Qm образуют ортонормированный базис пространства,
натянутого на первые к столбцов в Ат. Но столбцы матрицы Ат — это и есть
Атеь ..., Атеп. Таким образом,
>Tspan{e|, ..., еД = span{д\}, ..., к = 1, ..., л,
6.2. Итерирование подпространства, одновременная итерация и QR-алгоритм 457
т.е. столбцы uQm являются просто результатом т шагов одновременной итера-
ции, начинающейся со стандартного векторного базиса ер еп.
Если вы читаете данный раздел до чтения разд. 5.6, то теперь самое
время вернуться назад и прочесть приведенный там материал. Если же вы
уже прочли разд. 5.6, то здесь может оказаться полезным снова просмот-
реть его.
В разд. 5.6 мы ввели без каких-либо объяснений QA-алгоритм и рассмотре-
ли его модификации, делающие алгоритм более эффективным. Первая из этих
модификаций - приведение матрицы к верхней хессенберговой форме до на-
чала QA-итераций. Это неплохая идея, поскольку (i) хессенбергова форма со-
храняется при QA-итерациях, и (ii) затраты на QA-итерацию для хессенберго-
вой матрицы много меньше, чем для полной матрицы. Таким образом, каждая
из наших итераций матрицы имеет вид
а(т) “12 •• а(т> а;и) 1 п
- •• а\т)у 2,и-1
• •• а<т\
a(m>. M.w-I
(6.2.24)
Далее предположим, что каждый из поддиагональных элементов а(кп^к от-
личен от нуля, поскольку в противном случае мы могли бы свести задачу на
собственные значения к двум задачам меньшей размерности. Вспомним, что
верхняя хессенбергова матрица, обладающая этим свойством, называется пра-
вильной верхней хессенберговой матрицей.
Поскольку матрицы Ат полученные с помощью QA-алгоритма, идентичны
матрицам, полученным по формулам (6.2.7), мы приходим к заключению, что
из условий I ^к I > I ^А+1 I и SkrMk = {0} (теорема 6.2.3) следует, что Ат сходится к
блочной треугольной форме (6.2.8). Так как Ат является верхней хессенберго-
вой матрицей, (п - к) х Л-блок, сходящийся к нулю, содержит лишь один эле-
мент, отличный от нуля, а именно к. Этот единственный элемент, следо-
вательно, даст грубую оценку удаленности span{^w),..., q{m)} от инвариантно-
го подпространства Тк = span{vH ...,vj. При этих условиях к -> 0 линейно
при т -> оо с коэффициентом сходимости | А* |.
Положительный побочный эффект использования правильных верхних
хессенберговых матриц состоит в том, что условия для подпространств Skr\Uk =
= {0}, к = 1, ..., п - 1, выполняются всегда (упражнение 6.2.34). Это очень хоро-
ший результат с теоретической точки зрения. Он показывает, что неравенств
I М > I ^+1 I Для собственных значений достаточно, чтобы гарантировать схо-
димость.
Здесь уместно высказать несколько предостережений относительно харак-
тера сходимости. Утверждение, что А,„ сходится к верхней треугольной форме,
458
Глава 6. Собственные значения и собственные векторы II
просто означает, что поддиагональные элементы a^xk сходятся к нулю при
т -> оо. Из этого следует, что элементы главной диагонали сходятся к собст-
венным значениям, но при этом ничего не говорится об элементах выше глав-
ной диагонали, которые вполне могут и не сходиться (упражнение 6.2.35). Та-
ким образом, мы не можем утверждать, что существует такая верхняя треуголь-
ная матрица U е F"x", что || Ат - U\\ -> 0 при т -> оо.
Наряду с использованием верхних хессенберговых матриц, другая важная
модификация 0Л-алгоритма использует сдвиги, ускоряющие сходимость.
Теперь, когда мы установили, что скорость сходимости определяется отно-
шениями | Л*+1Д* |, становится ясным, как нужно использовать сдвиги. По-
скольку это было рассмотрено в разд. 5.6, нет необходимости возвращаться
к этому здесь. Возможно, стоит снова рассмотреть лишь один момент. Не-
смотря на то, что использование сдвигов зачастую весьма продуктивно, их
применение усложняет анализ сходимости. Никто не смог доказать, что QR-
алгоритм (совместно со специальными полезными схемами сдвигов) всегда
сходится.
Обобщение выражений (6.2.22) на случай ДО-алгоритма со сдвигом приво-
дится в упражнении 6.2.36.
Двойственность в итерировании подпространств
Следующая теорема двойственности указывает на связь между QA-алгорит-
мом и обратной итерацией. Она показывает, что каким бы не было прямое
итерирование (подпространства), обратное итерирование (подпространства)
осуществляется автоматически.
Теорема 6.2.25. Пусть А е F”4” — невырожденная матрица и В = (J*)-1. Пусть
S - произвольное подпространство из F". Тогда две последовательности подпро-
странств
S,AS, A2S, ...
S1, BS\ B2S\ ...
эквивалентны в том смысле, что они являются ортогональными дополнениями
друг друга. Это означает, что
(AmS)L = ^(S1) для т = О, 1, 2, ... .
Доказательство. Для любых х,у е F", (Атх, В"*у) = у(В')тАтх = у(А~1)тАтх =
= ух = (х,у). Таким образом, Атх и Вту ортогональны тогда и только тогда,
когда ортогональны х и у. Теорема прямо следует из этого замечания. □
Вторая последовательность подпространств в теореме 6.2.25 является по-
следовательностью обратных итераций, поскольку итерационная матрица об-
ратна Al.
Давайте сначала посмотрим, как можно применить теорему 6.2.25 к 0Я-ал-
горитму без сдвига, который по существу является одновременной итерацией,
6.2. Итерирование подпространства, одновременная итерация и QR-алгоритм
459
начинающейся с подпространств span{e1} ек}9 к = 1, п. После т шагов
имеем
^mspan{e15 ek} = span{^m), ^ш)}, к = 1, п - 1, (6.2.26)
где q\m\ ..., являются столбцами в Qm. Поскольку
span{e|, ..., ек}г = span{e*+1, ..., е„}
и span^f"0,qkm)}1 = span^™*,..., q^}, применение теоремы 6.2.25 к (6.2.26)
дает
(/f)“'"span{eJt+1, ..., е„} = spanfa<™>, ..., q(nm}}, к = 1, ..., п - 1. (6.2.27)
Особый интерес представляет случай к = п - 1: тогда
(^*)-mspan{e„} = spanta*"0}.
Таким образом, видно, что последний столбец в Qm является результа-
том применения одновекторной обратной итерации с А\ Следовательно,
применив сдвиги к А\ можно заставить этот столбец быстро сходиться.
Прежде чем мы рассмотрим эту возможность, уделим некоторое время
тому, как можно получить (6.2.27) непосредственно из базисных формул
(ZR-алгоритма. При этом откроются некоторые интересные аспекты двой-
ственности.
(^-последовательность (Ат) порождается по формулам (6.2.19) при
Aq = А. Пусть Вт = (Л^)~1 и Lm = (R*m)~x. Обратите внимание, что Lm — ниж-
няя треугольная матрица с положительными элементами на главной диаго-
нали. Выполним сопряженное транспонирование и обращение в (6.2.19),
чтобы получить
Вт 1 = QmLm, LmQm = Вт. т = 1, 2, 3, ...,
где Bq = В = (Я*)1. Это показывает, что применение QR -алгоритма к А эквива-
лентно применение 0/,-алгоритма к (Л*)-1. Теория и алгоритмы, основанные
на QL-разложении и на QR- разложении, по существу идентичны. В следую-
щих двух упражнениях рассмотрены несколько основных моментов относи-
тельно QZ-разложения.
Упражнение 6.2.28. Пусть В е F”4” - невырожденная матрица. Докажите,
что существует единственным образом определенные матрицы Q, L е F"x" та-
кие, что Q — унитарная, L — нижняя треугольная с положительными элемента-
ми на главной диагонали, и В = QL. (Вы можете доказать это с нуля или вос-
пользоваться соответствующей теоремой о 0Я-разложении.) □
460
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.2.29. Пусть В = QL, причем матрицы В = bn] — невыро-
жденная, — унитарная, a L — нижняя треугольная. Покажите, что
span{^„} = span{i„} и span{^w _ {,qn } = span{i„ _ а в общем случае
span{^+1, ..., qn} = span{^+l, ..., i„}, k = n - 1, n - 2, ..., 0. □
Упражнение 6.2.29 показывает, что 01-разложение эквивалентно процессу
Грама-Шмидта ортогонализации столбцов матрицы В справа налево.
Вспоминая, что Qm = ... Qm и Rm = Rm ... определим Lm = (J?;)"1 =
Lm...Lx. Ясно, что Lm является нижней треугольной матрицей с положительны-
ми элементами на главной диагонали. Выполнив в (6.2.22) сопряженное
транспонирование и обращение, получаем
вт = QmLm, т = 1, 2, 3, ... .
Применяя вывод упражнения 6.2.29 к этому 0Л-разложению, найдем, что
5”span{e4+|, ..., е„] = span{^>..k = 1, ..., n-1.
И мы опять приходим к (6.2.27).
Теперь используем двойственность при изучении сдвигов начала коорди-
нат. Например, покажем, что 0Я-алгоритм со сдвигом на отношение Рэлея яв-
ляется, в частности, итерацией с отношением Рэлея. Можем убедиться в этом,
либо рассматривая результат после к шагов (упражнение 6.2.39), либо рассмат-
ривая процесс шаг за шагом. Последнее более наглядно, так что пойдем этим
путем.
Рассмотрим отдельный 0К-шаг
/4 m 1 — От I I ~~ QmRm » Рт 1 I = /4—,
т — 1 г т — 1 хь'/и пи т^&тп г т — 1 т,
где pw _ । = ° = епАт - ie«- Это - сдвиг на отношение Рэлея, определенный в
разд. 5.6. Тогда pm_j есть отношение Рэлея для А„, поскольку р^ = е'пА*теп.
Если | апп _ । |(/” “ 1) достаточно мал, то pm_j является хорошим приближением
собственного значения матрицы А*т_{. К тому же легко видеть, по крайней
мере неформально, что еп является приближением собственного вектора мат-
рицы (ср. с упражнением 5.6.26). Пустьpv ..., рп обозначают столбцы мат-
рицы Qm. Из равенства Ат _, - рт _ / = QmRm следует, что
(Л -1 - Рт - span{eH ..., еп _ J = span{ _рп _ J.
Применяя к этому выражению теорему (6.2.25), получаем
(Am-i " Рш-i7)"1 span{ew} = span{p„}. (6.2.30)
6.2. Итерирование подпространства, одновременная итерация и QR-алгоритм
461
Так как р/и_1 есть отношение Рэлея, полученное из А*т_х и еп, то выражение
(6.2.30) дает шаг итерации с отношением Рэлея. Результатом является р„, по-
следний столбец матрицы Qm.
Теперь предположим, что мы выполнили еще один шаг итерации с отно-
шением Рэлея, используя А^_г Возьмем сдвиг, равный р = р'А^Рп, и вы-
числим
(А^ - р/)-’л,. (6.2.31)
Используя соотношение Ат = Q„Am _ {Qm, легко видеть, что р = Если, с
другой стороны, мы выполним еще один 0Я-шаг, то преобразованию подверг-
нется матрица Ат и будет выбран сдвиг р = е*п Атеп = , т.е. то же самое р. Это
не просто совпадение. Преобразование координат, отображающее Ат в Ат,
вместе с этим преобразуетрп в еп, так что выражения р = р*Ат_{рп и р„ = е*Атеп
дают один и тот же результат в разных системах координат. Согласно (6.2.30) с
заменой т - 1 на т, QR-шгх для Ат вычисляет (среди прочего)
(^т ~ РщГ) &п.
Это те же вычисления, что и в (6.2.31), но в измененной системе коор-
динат. Это доказывает, что 0Л-алгоритм, в частности, является итерацией с
отношением Рэлея. Как следствие, а(п„} (обычно) сходится к собственному
значению квадратично, как это и должно быть для итераций с отношением
Рэлея. В то же время span{^w)}, последний столбец матрицы Qm, (обычно)
сходится квадратично к собственному вектору матрицы Л* (ср. с упражнени-
ем 6.2.39). Если А эрмитова или даже только нормальна, сходимость будет
кубической.
Упражнение 6.2.32. Проверьте, что Q'mp„ = е„ и Q'm [(Л,^ - ртГ)-' А,] =
= <Ат “ Рт7)’'*.- □
Дополнительные упражнения
Упражнение 6.2.33. Пусть 5 и U - подпространства из F” размерностей к и
п-кп с базисами 5j, ...,sk и ..., ип_к соответственно. Пусть В= ... skU\ ... ип_к] е
е F”4”. Покажите, что Sr\U = {0}, тогда и только тогда, когда В невырожденна.
(В вырожденка тогда и только тогда, когда det(2?) = 0. Это очень редкий случай.
Если случайным образом выбрать п векторов из F” и построить матрицу,
столбцами которой являются эти векторы, то ее детерминант почти наверняка
будет отличен от нуля.) □
Упражнение 6.2.34. 07?-алгоритм по существу является одновременным
итерированием (подпространства), начинающимся с подпространств Sk -
= span{eb ..., ек}, к= 1, ..., п - 1. Теорема 6.2.3 утверждает, что процесс итери-
рования подпространства сходится, если | Хк | > | \к+{ | и для подпространств
462
Глава 6. Собственные значения и собственные векторы II
выполняется условие SjpLli. = {0}. Вспомните, что Uk = span{v*+1, v„} есть
подпространство в F" размерности п - к, инвариантное относительно А.
В этом упражнении вы должны показать, что для этих подпространств усло-
вие Sk n Uk = {0} выполняется автоматически, если А — правильная верхняя
матрица Хессенберга.
(а) Пусть S - подпространство в F, инвариантное относительно Л Покажи-
те, что если v е 5, то Amv е S при т = 1, 2, 3, ... .
(Ь) Предположим, что А — правильная верхняя хессенбергова матрица и
вектор v е span^, ..., ек} = Sk отличен от нуля. (Как выглядит у? Что можно
сказать об Av? A2v?) Покажите, что векторы v, Av, A2v,..., An~kv линейно незави-
симы.
(с) Покажите, что вектор v не может лежать в Uk. Следовательно,
S,nZ4 = {0}. □
Упражнение 6.2.35. Обычно нет смысла применять QA-алгоритм к матрице
поскольку она уже треугольная. Однако она является хорошим примером, ил-
люстрирующим простые моменты сходимости QA-алгоритма. Найдите QA-
итерации А = Ао, Лр А2,.... При каждом QA-разложении выберите Rm таким об-
разом, чтобы все элементы ее главной диагонали были положительными. За-
метьте, что не сходится при т -> оо. □
Упражнение 6.2.36. Пусть (Лш) порождена QA-алгоритмом со сдвигом:
Ат - 1 ~ Рт - {I ~ Qm^m1» R-mQm + Pm - \1 ~ ^m, W — 1, 2, 3, ...,
где Ао = А. Положим Qm = Q,... QmuRm= Rm ... Rv
(а) Покажите, что A„ - Q^A Qm при m = 1, 2, 3, ... .
(b) Докажите, что (A - pmI)Qm = Qm(Am- р„Г) при m = 1, 2, 3, ... .
(с) Теперь индукцией по m докажите, что
(Л - pw _ ,/)... (А - р0/) = QmRm, т = 1, 2, 3, ... . (6.2.37)
Это соотношение обобщает (6.2.22). Обратите внимание, что оно является
к тому же обобщением леммы 5.7.16, являющейся одним из важных результа-
тов в разработке QA-алгоритма с двойным шагом. □
Упражнение 6.2.38. Продолжим рассмотрение QA-алгоритма со сдвигом, на-
чатое в предыдущем упражнении.
(а) Покажите, что если pw _ t не является собственным значением матрицы
Л, то Rm невырожденна, и Ат = А^Д, _ {R~[.
(b) Покажите, что если ни одно из р0.рт _ t не является собственным зна-
чением матрицы Л, то Rm невырожденна, и Ат = Rm А А^1. □
6.3. Собственные значения больших разреженных матриц, I
463
Упражнение 6.2.39. Данное упражнение показывает, что, с итоговой точки
зрения, 0Я-алгоритм выполняет итерацию с отношением Рэлея. Если выпол-
нить т шагов 0Я-алгоритма со сдвигом на отношение Рэлея, то имеет место
(6.2.37), где Pi=a(n^ при i = 0, ..., т - 1. Примените к (6.2.37) теорему 6.2.25 или
выполните сопряженное транспонирование и обращение, чтобы получить ин-
формацию о span^j/0}. Покажите, что span{^m)} совпадает с пространством,
полученным после применения к матрице Л* т шагов итерации с отношением
Рэлея, начинающейся с вектора еп. В частности, убедитесь, что каждый сдвиг
является соответствующим отношением Рэлея для этого шага. □
6.3. Собственные значения больших разреженных матриц, I
Большинство больших матриц, используемых в приложениях, являются
разреженными. Другими словами, большая часть их элементов равна нулю.
Если матрица достаточно разреженная, то будет целесообразно записать ее
в виде структуры разреженных данных, которая хранит лишь ненулевые
элементы матрицы вместе с информацией об их местоположении. Если
матрица чрезвычайно разреженная, то использование структуры разрежен-
ных данных становится обязательным ввиду недостатка места для хране-
ния матрицы, записанной обычным образом. Чтобы найти какие-то из
собственных значений такой матрицы, нужно иметь методы, позволяющие
работать со структурами разреженных данных. 0Я-алгоритм и другие алго-
ритмы, использующие преобразования подобия, для этого не годятся, по-
скольку они приводят к наполнению матриц: уже после одной 0А-итера-
ции итоговую матрицу вряд ли можно считать разреженной (см. упраж-
нение 6.3.24).
Нужны методы, не изменяющие вид матрицы. Первый алгоритм, сразу же
приходящий на ум, — одновременная итерация (6.2.6). Здесь мы имеем в виду
базовый алгоритм одновременной итерации, не изменяющий систему коорди-
нат на каждом шаге. Рассматривая (6.2.6), мы видим, что алгоритм использует
матрицу А лишь при умножении ее на векторы q\m\ ..., q{™} на каждом шаге.
Элементы матрицы А при этом никоим образом не изменяются. Даже если А
хранится в разреженном формате, результат умножения матрицы на вектор Aq
вычисляется просто (см. упражнение 6.3.25). Таким образом, выполнение од-
новременной итерации для большой разреженной матрицы не представляет
проблемы. Число векторов к, используемых в одновременной итерации, обыч-
но ограничивается лишь размерами доступной памяти и вычислительными
потребностями, так что обычно к « п. Это означает, что чаще всего мы можем
найти лишь несколько (самое большее к) наибольших по модулю собственных
значений и соответствующих собственных векторов. Некоторые практические
детали выполнения одновременной итерации рассмотрены в следующем
упражнении.
Упражнение 6.3.1. Рассмотрим алгоритм одновременной итерации (6.2.6)
при к « п.
464
Глава 6. Собственные значения и собственные векторы II
(а) Пусть q\m\ ..., q^ суть к ортонормированных векторов ди-го шага одно-
временной итерации (6.2.6) и Qm = q{™}\ е К”4*. Это высокая узкая мат-
рица. Покажите, что
AQm - Qm+\^m+\i
где Rm+[ - верхняя треугольная к х ^-матрица (ср. с (6.2.9) и упражнением
6.2.10). Это - сжатое 0Л-разложение.
(Ь) Пусть Вт = AQm е Спхк nCm = Q„Bme Скхк. Покажите, что столбцы матри-
цы Qm порождают подпространство, инвариантное относительно Л, тогда и
только тогда, когда Вт -QmCm-0: в этом случае собственными значениями не-
большой матрицы Ст являются собственные значения матрицы А. (На практи-
ке мы принимаем Qm в качестве инварианта как только || Вт - Qm Ст ||t становит-
ся достаточно малой.)
(с) Покажите, как можно выделить инвариантные подпространства размер-
ностей j = 1, 2,..., к - 1, рассматривая главные миноры матриц Qm, Вт и Ст. Как
только мы найдем инвариантное подпространство размерности у, первые j
столбцов матрицы Qm можно «изолировать» и в последующих итерациях ис-
пользовать лишь векторы q^9 ..., q[m}-
(d) Шаг одновременной итерации состоит из трех этапов: (i) вычисление
Вт, (ii) сжатое 0Я-разложение матрицы Вт, и (iii) проверка сходимости инва-
риантных подпространств. Оцените число флопов, затрачиваемых на каждом
этапе (см. упражнение 6.3.25). Сколько всего требуется памяти? В типичных
больших приложениях к мало, и затраты в основном определяются первым
этапом. Покажите, тем не менее, что если £ достаточно велико, число затрачи-
ваемых флопов будет определяться другими этапами. □
Почти до 1980 года одновременная итерация была наиболее используе-
мым методом нахождения нескольких собственных значений больших раз-
реженных матриц. С тех пор появилось несколько усовершенствований и
ускорений метода, но в конечном итоге одновременная итерация была вы-
теснена более тонкими методами, и в этом разделе мы рассмотрим некото-
рые из них.
Стратегия сдвига с обращением
Прежде чем распрощаться с одновременной итерацией, опишем стратегию
сдвига с обращением, которую можно комбинировать с одновременной итера-
цией при вычислении собственных значений матрицы А, не являющихся
крайними. Как мы позднее увидим, стратегия сдвига с обращением может
быть использована совместно с другими алгоритмами.
Одновременная итерация вычисляет наибольшие по величине собствен-
ные значения матрицы А. Но что делать, если нам нужно не это? Предполо-
жим, мы хотим найти собственные значения в некоторой окрестности неко-
6.3. Собственные значения больших разреженных матриц, I
465
торого числа т. Если мы сдвинем матрицу на т, а затем выполним обраще-
ние, то получим новую матрицу (А - т!)~', имеющую те же собственные
векторы и инвариантные подпространства, что и А, но другие собственные
значения. Каждое собственное значение X матрицы А соответствует собст-
венному значению (X - т)-1 матрицы (А - т/)"1. Наибольшие собственные
значения матрицы (А - т/)~1 соответствуют собственным значениям матрицы
А, ближайшим к т. Мы можем найти эти собственные значения (и соответ-
ствующие инвариантные подпространства), применив к (А - т?)-1 одновре-
менную итерацию. Это и есть стратегия сдвига с обращением. Конечно, на
самом деле мы не формируем обратную матрицу: матрица, обратная разре-
женной, не является разреженной. Вместо этого мы находим (один раз!)
разреженное АСУ-разложение матрицы (А - тУ). После этого определение
вектора (А - тУ)-1^ = р равносильно решению уравнения (А - т!)р = q отно-
сительно р с помощью прямой и обратной подстановок, использующих
множители АСУ-разложения. Как только мы нашли АСАразложение, можно
использовать его снова и снова, выполняя необходимое число раз вычисле-
ния типа (А - xl)~lq. В новом АСУ-разложении нет необходимости до тех пор,
пока нам не потребуется другой сдвиг т.
Методика сдвига с обращением оказалась довольно мощной и широко ис-
пользовалась в течение многих лет. Однако имеются существенные ограниче-
ния ее применения. Если А действительно велика, ее АСАразложение, обычно
менее разреженное, потребует довольно большого места для своего хранения.
Если для хранения АСАразложения не хватит памяти, мы не сможем использо-
вать эту методику.
Процедура Арнольда
Процедура Арнольди известна приблизительно с 1950 года, но до 1970
года не применялась сколько-нибудь заметно в качестве метода определе-
ния собственных значений. В настоящее время различные варианты про-
цедуры Арнольди заменили одновременную итерацию для широкого круга
приложений.
Вспомним, что в степенном методе выбирается исходной вектор q, а затем
определяются векторы (кратные) q, Aq, A2q, ..., Akq, .... По мере выполнения
алгоритма, старые итерации вектора отбрасываются. На к-м шаге остается
лишь вектор, кратный Akq: никакая другая информация о предыдущих ре-
зультатах не сохраняется. Одновременная итерация имеет дело с подпро-
странствами, но и она работает так же: информация о предыдущих результа-
тах отбрасывается.
Идея метода Арнольди состоит в том, чтобы сохранить и использовать всю
предыдущую информацию. После к шагов мы имеем к + 1 векторов q, Aq, ...,
Akq и все их запоминаем. После этого мы ищем хорошее приближение собст-
венного вектора в (к + 1)-мерном пространстве, натянутом на эти векторы.
Рассмотрим некоторые практические вопросы.
На практике векторы q, Aq, ..., Akq обычно образуют плохо обусловлен-
ный базис векторного пространства, натянутого на них. С ростом j вектор
466
Глава 6, Собственные значения и собственные векторы II
Aq все более и более приближается по направлению к доминирующему соб-
ственному вектору матрицы А. Таким образом, векторы, расположенные в
конце последовательности q, ..., Akq, могут иметь практически одно и то же
направление. Чтобы избавиться от этого, их можно заменить множеством
ортонормированных векторов qx, ..., qk+x, порождающих это же пространство.
Это можно сделать с помощью слегка измененной процедуры Грама-Шмид-
та. Предположим, что мы получили первые к векторов и хотим построить
(к + 1)-й. Если мы работали с исходной последовательностью q, Aq, ..., Ak~{q,
достаточно просто умножить Ак ~ }q на А, чтобы получить Akq. Однако у нас не
исходная последовательность, а ортонормированное множество qx, ..., qk, и
мы хотим получить qk+x. В принципе qk+x можно получить, ортонормируя по
Граму—Шмидту Akq относительно qx, ..., qk. Но на практике это неосущест-
вимо, поскольку у нас нет вектора Akq. Поэтому нужно сделать что-то дру-
гое. Вместо умножения вектора Ак" 'q (которого у нас нет) на А с целью по-
лучения Akq, умножим на А (имеющийся) вектор qk, чтобы получить Aqk. А
затем ортонормируем Aqk относительно qx, ..., qk, чтобы получить qk+x. Это и
есть алгоритм Арнольди.
Теперь добавим несколько деталей. Первый шаг алгоритма Арнольди за-
ключается в выполнении нормировки
Я\ = Я/\\ Я Иг- (6.3.2)
На следующих шагах мы выполним
Як+\ = АЯк - ^4jhjk, (6.3.3)
7=1
где hjk - коэффициент Грама-Шмидта
hjk = Uqk, яР- (6.3.4)
Это как раз тот коэффициент, который делает qk+x ортогональным к qr
Итак, qk+x ортогонален к qx, ..., qk, но его норма не равна 1. Шаг завершается
нормировкой вектораqk+x, т.е.
Як+\ = Як+\/Ьы.к, где Л*+1Д = II qk+i ||2 . (6.3.5)
Нетрудно показать, что (при точном выполнении операций) этот процесс
дает точно ту же последовательность векторов, что и применение процедуры
Грама—Шмидта к векторам q, Aq, A2q, ..., Akq. Частично это делается в упраж-
нении 6.3.30.
Выражение (6.3.4) дает теоретическую формулу Грама-Шмидта для hJk.
На практике мы можем найти hJk с помощью либо классической, либо мо-
дифицированной процедуры Грама—Шмидта. Чтобы быть уверенными в
ортогональности векторов, можно воспользоваться повторным ортонорми-
рованием. Мы обсуждали это в разд. 3.4. Следующий алгоритм выполняет
6,3. Собственные значения больших разреженных матриц, I
467
модифицированную процедуру Грама-Шмидта с повторным ортонормиро-
ванием.
Алгоритм Арнольди. Для заданного начального вектора q этот алгоритм порождает орто-
нормированные векторы q{, q2, qm такие, что
span{ q{, .... qk} = span{?, Aq, Ak~lq} для к = 1, m.
Qi =^/lkll2
for k = \, m-\
Qk+i ^~^Qk
for/ = 1, к (ортогонализация)
(6-3-6)
Qk+\ +~Qk+\ ~Qjhjk
for j=l, к (реортогонализация)
Га +-Qflk+i
Qk+i *~Qk+\ ~Qf*
[hjk +-hJk +a
hk + \,k *”11^+1 111
if hk+u =0
установить flag (span{^|, ..qk} инвариантно относительно A)
[exit
_Qk+i ^Qk+i I hk+i,k
В этом алгоритме матрица А используется лишь однажды — в строке
Qk+\ <- Aqk. Таким образом, мы можем применять алгоритм к А столько
раз, сколько раз можно умножать А на произвольный вектор.
Чтобы показать, как используется алгоритм Арнольди для определения
собственных значений, нужно вывести несколько фундаментальных соотно-
шений. Начнем с обозначений и терминологии. Для любого j пространство
span{^, Aq, A2q,..., A" [q} называется j-м подпространством Крылова, порождае-
мым матрицей А и вектором q и обозначаемым как /С/Л,^).
Утверждение 6.3.7.. Пусть q, Aq, ..., Am~{qлинейно независимы. Тогда Km(A,q)
инвариантно относительно А, тогда и только тогда, когда q, Aq, A2q, ...,Am lq, Amq
линейно зависимы.
Упражнение 6.3.8. Докажите утверждение 6.3.7. □
Теорема 6.3.9. Прусть q, Aq, ..., Am lqлинейно независимы, a qx, ...,qm получе-
ны с помощью алгоритма Арнольди (6.3.2), (6.3.3), (6.3.4), (6.3.5). Тогда
(a) span{0b ..., qk} = Kk(A,q) при k = 1, ..., т.
(Ь) При k = 1, ..., т - 1 имеем hk^xk > 0.
(с) = 0 тогда и только тогда, когда q, Aq,..., Amqлинейно зависимы, что,
в свою очередь, выполняется тогда и только тогда, когда крыловское подпро-
странство K,m(A,q) инвариантно относительно А. На это указывает флажок-ин-
дикатор в алгоритме (6.3.6).
Теорему 6.3.9 можно доказать индукцией по к. См. упражнение 6.3.30. Если
у вас нет намерения сразу же перейти к упражнению 6.3.30, вы можете, по
крайней мере, рассмотреть следующий специальный случай.
468
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.3.10. Докажите теорему 6.3.9 для случая к = 2. (Случай к - 1
тривиален.)
(а) В частности, покажите, что если q и Aq линейно независимы, то q2 в
(6.3.3) не равен нулю. Поэтому h2{ > 0 и в (6.3.5) можно выполнить деление,
чтобы получить q2. Покажите, что существуют постоянные с0 и сь с{ ф 0, такие,
что q2 - cQq + cxAq. Покажите далее, что q^K,2(A,q), д2€/С2(Л,д), и поэтому
span{^, q2}^ IC2(A,q). Обратно, покажите, что q е span{^h ^2}, Aq е span{^, q2} и,
следовательно, K2(A,q) с span{^b q2}.
(b) Покажите, что если q и Aq линейно зависимы, то q2 = 0, Л21 = 0 и
span{^} инвариантно относительно А. В этом случае q является собственным
вектором матрицы А. □
Матричное представление алгоритма Арнольди
Из (6.3.3) и (6.3.5) легко вывести, что
к+\
Aqk=Y4jhjk, к 2,3, ... . (6.3.11)
>1
Из теоремы 6.3.9 мы знаем, что эти соотношения выполняются при к = 1,..., /и,
если q, Aq, ..., Amq линейно независимы. Эти т + 1 векторных соотношения
можно следующим образом объединить в одно матричное. Определим
Qm = [<7i .. Qm] е С"х/"
йи й12
^21 ^22
0 й32
о
о о
1 ^\т
him
^3,т-\ ^Зт
^т,т-\ ^тт
о
т+ \,т
^(/и+1)хт.
Поскольку столбцы в Qm ортонормированны, соответствующее преобразо-
вание является изометрией. Нт^т есть неквадратная верхняя хессенбергова
матрица со строго положительными элементами на поддиагонали. Из (6.3.11)
сразу получаем
(6.3.12)
ибо к-й столбец в (6.3.12) в точности тот же, что и в (6.3.11). Это матричное
выражение полностью отражает связь между А и величинами, порожденными
процедурой Арнольди. Другое полезное выражение получается, если перепи-
сать правую часть (6.3.12). Пусть Нт обозначает квадратную верхнюю хессен-
6.3. Собственные значения больших разреженных матриц, I
469
бергову матрицу, полученную удалением нижней строки из Нт+Х т. Если в мат-
ричном произведении мы выделим последний столбец матрицы Qm+1 и ниж-
нюю строку матрицы Нт+1т, то получим Qm+xHa^m = QmHm + .... О, hm+x J.
Таким образом,
AQm = QmH„ + qa+\hm+x<mel, (6.3.13)
где em обозначает ти-й вектор стандартного базиса в Rw.
Упражнение 6.3.14. Проверьте соотношения (6.3.11), (6.3.12) и (6.3.13). □
Следующий простой результат, доказанный в упражнении 6.3.33, будет ис-
пользован в разд. 6.4.
Утверждение 6.3.15. Предположим, что qx, ..., qm+l — ортогональные векторы,
Qm ~ ••• Фт1)
а Нт есть верхняя хессенбергова матрица с hJ+lJ. > 0 при j = 1, ..., т. Относительно
этих векторов и матриц, которые могут иметь любое происхождение, мы будем
предполагать, что они удовлетворяют (6.3.13). Тогда векторы q{, ..., qm+l должны
совпадать с векторами, полученными с помощью алгоритма Арнольди из начального
вектора qv Другими словами, для заданной матрицы А объекты, составляющие со-
отношение (6.3.13), однозначно определяются первым столбцом матрицы Qm.
Если q, Aq,..., Amq линейно независимы, то hm^[ m * 0. Однако если они зави-
симы, то мы имеем Нт+Х,т = 0, а (6.3.13) принимает вид AQm = QmHm. В этом слу-
чае из теоремы 6.1.3 мы заключаем, что пространство, порожденное столбца-
ми матрицы Qm, инвариантно относительно А. (Это соответствует теореме
6.3.9, поскольку span{^, ..., qm} = K,m(A,q).) Более того, согласно упражнению
6.1.4 собственные значения матрицы Нт являются собственными значениями
матрицы А. Если т не очень велико, нетрудно вычислить эти т собственных
значений, используя, скажем, 0Л-алгоритм. Переходим к рассмотрению тех-
ники нахождения собственных значений с помощью алгоритма Арнольди.
Мы планируем использовать алгоритм Арнольди для определения несколь-
ких собственных значений матрицы очень большого размера. Каждый шаг ал-
горитма добавляет очередной базисный вектор qk, для хранения которого тре-
буется много памяти. Кроме того, надо запомнить элементы hjk хессенберго-
вой матрицы. Затраты памяти существенно ограничивают число шагов,
которые мы сможем выполнить. В итоге нам придется остановиться через т
шагов, где т < п.
Однако это не помешает нам представить себе, что произойдет, если мы вы-
полним много больше шагов. Если q, Aq,..., An~xq линейно независимы, то через
п шагов мы получим векторы qx, ..., qn в качестве орто нормированного базиса в
С". Если мы попытаемся сделать еще один шаг, то получим h„+x п = 0, поскольку
/7+1 векторов q, Aq,..., Anq в л-мерном пространстве С должны быть линейно за-
висимыми. Таким образом, (6.3.13) принимает вид AQ„ = QnHn. Квадратная мат-
рица Qn унитарна, Нп - правильная верхняя матрица Хессенберга, и мы имеем
Нп = Q~{AQn. Итак, если выполнение алгоритма Арнольди довести до конца, бу-
дет найдено унитарное преобразование подобия, приводящее А к верхней хес-
470
Глава 6. Собственные значения и собственные векторы II
сенберговой форме. В разд. 5.5 вы узнали, как выполнить эту же задачу с помо-
щью отражений. Для этой частной задачи процедура, рассмотренная в разд. 5.5,
обычно предпочтительнее алгоритма Арнольди. См. упражнение 6.3.34.
Теперь вернемся к нашему основному заданию, состоящему в получении
информации о собственных значениях матрицы А всего за несколько шагов
процедуры Арнольди. Мы уже видели, что если в какой-то момент получаем
hm+\,m = 0, то подпространство span^, ..., qm} инвариантно относительно А и т
собственных значений Нт являются собственными значениями матрицы А.
Однако вряд ли вам улыбнется счастье сразу найти инвариантное подпро-
странство малой размерности, если только вы не будете подбирать q очень
тщательно. В следующем разделе мы увидим, как можно это сделать с помо-
щью неявного перезапуска процедуры Арнольди, а сейчас будем предполагать,
что q выбиралось случайным образом. Предположим, что мы построили qx,...,
qm и при этом hm+[m ф 0. Если hm+X m мало, разумно надеяться, что мы близки к
получению инвариантного подпространства, а собственные значения матрицы
Нт близки к собственным значениям А. Но оказывается, что даже если hm+i m не
совсем мало, некоторые собственные значения Нт могут быть хорошим при-
ближением для собственных значений матрицы А.
Теорема 6.3.16. Пусть Qm, Нт и m получены с помощью процедуры Арнольди
так, что (6.3.13) выполняется. Пусть р — собственное значение матрицы Нт с
соответствующим собственным вектором х, для которого ||х ||2 = 1. Пусть v =
Q^x е С” (и здесь || v ||2 = \). Тогда
II Av - pv ||2 = I йт+1,м I I хт I, (6.3.17)
где хт обозначает т-ю (последнюю) компоненту х.
Упражнение 6.3.18. Докажите теорему 6.3.16, используя (6.3.13). □
Вектор г, введенный в теореме 6.3.16 называется вектором Ритца матрицы
А, соответствующим подпространству K,m(A,q) = span{^, ...,qm}. Он носит такое
название, поскольку является приближением Рэлея—Ритца—Галеркина собст-
венного значения матрицы А (см. упражнение 6.3.35). Скаляр р называется
числом Ритца, соответствующим вектору v. Пара (р, у) назвается парой Ритца.
Если (р, у) — собственная пара матрицы А, то невязка Av - pv равна нулю. В
противном случае норма невязки || Av - pv ||2 будет отлична от нуля, но все же
близка к нулю, если (р, у) является хорошим приближением собственной пары.
Обратно, если || Av - pv ||2 мала, можно ожидать, что (р, у) близка к собственной
паре матрицы А. Оказывается, что эта связь не столь проста: если аппроксими-
руемая собственная пара плохо обусловлена (см. разд. 6.5), небольшая по величи-
не невязка не гарантирует хорошее качество приближения. Тем не менее норма
невязки служит некоторым показателем качества приближения: малая невязка
гарантирует, что (р, у) является точной собственной парой матрицы, близкой кА,
что и показывается в упражнении 6.3.36. Наконец, как мы увидим в разд. 6.5, все
собственные значения нормальных матриц хорошо обусловлены. Таким образом,
если А - нормальная матрица, то малая величина невязки гарантирует близость р
к собственному значению А. Вспомним, что класс нормальных матриц содержит
все вещественные симметричные матрицы и ряд других важных классов матриц.
6.3. Собственные значения больших разреженных матриц, I
471
Теорема 6.3.16 показывает, что, если последний элемент вектора х мал, то и
норма невязки пары Ритца (ц, v) может быть малой, даже если hm+Xtfn таким не
является. Если т невелико, то достаточно просто вычислить собственные зна-
чения и векторы матрицы Нт и просмотреть величины | hm+i >т | |хЛ | для всех
собственных векторов х. Если какая-нибудь из невязок окажется малой, то
можно надеяться, что мы имеем хорошее приближение.
Опыт показывает, что некоторые из чисел Ритца будут хорошими прибли-
жениями собственных значений матрицы А задолго до того, как т достигнет
значений, при которых йт+1 m станут малыми. Обычно собственные значения
по краям спектра первыми получают хорошее приближение, что видно из сле-
дующего примера. См. также упражнение 6.3.26.
Пример 6.3.19. Используя следующую последовательность MATLAB-ко-
манд, построим случайную комплексную разреженную матрицу порядка 144:
G = numgrid('Н',14);
В = delsq(G);
А = sprandn(B) 4- i*sprandn (В) ;
Поскольку в этом примере матрица имеет очень скромные размеры, можно
легко вычислить ее собственные значения как eigvals = eig (full (А) ) .
Алгоритм (6.3.6) был реализован на MATLA’e и по нему было выполнено 40
шагов с вектором из единиц в качестве начального, чтобы получить ортонор-
мированные 40-мерные векторы и верхнюю хессенбергову 40 х 40-матрицу
Я40. Мы нашли собственные значения и векторы матрицы Я40, используя eig.
На рис. 6.1 показаны истинные собственные значения плюсами и собственные
значения (числа Ритца) кружками. Обратите внимание, что большое число
собственных значений на периферии спектра хорошо аппроксимируется чис-
лами Ритца, тогда как ни одно из внутренних собственных значений не имеет
хорошего приближения.
Для каждой из 40 пар Ритца были вычислены нормы невязки по фор-
муле для | й41401 |х401 в теореме 6.3.16. Восемь наименьших невязок при-
ведены в табл. 6.1. В этом примере й4140 « 2.4, так что малость каждой из
невязок целиком обусловлена малостью х40, наименьшей компоненты
Рис. 6.1. Собственные значения и числа Ритца случайной разреженной матрицы.
472
Глава 6. Собственные значения и собственные векторы II
собственного вектора. Поскольку в данном случае известны истинные
собственные значения, можно вычислить фактические ошибки для каж-
дого числа Ритца. Они также приведены в табл. 6.1. В этом благоприят-
ном случае ошибки даже меньше невязок. Восемь лучших чисел Ритца
вместе со всеми 144 собственными значениями отображены на правом
графике рис. 6.1. □
Таблица 6.1. Восемь лучших невязок для пар Ритца
и соответствующих ошибок для чисел Ритца
невязка (| й4М011 х„ |) истинная ошибка
1.1 х10-и 1.3 X Ю 06
1.5 xlO'04 6.0 X ю 06
1.4 х Ю03 2.5 х Ю 04
1.4 х 10'03 1.2 х Ю’04
1.7 х 10-»3 7.1 х 1О05
2.3 х 1003 1.8 х Ю04
6.0 х ю-°3 5.9 х 1О04
6.4 х IO’03 1.0х 1О03
Причина, по которой внешние собственные значения аппроксимируются
лучше, рассматривается в упражнениях 6.3.37 и 6.3.41.
Поскольку периферийные собственные значения определяются первыми,
метод Арнольди не дает прямого способа вычисления внутренних собствен-
ных значений. Однако если матрица А имеет не слишком большие размеры,
стратегия сдвига с обращением, ранее введенная в данном разделе, может быть
использована для поиска этих собственных значений совместно с процедурой
Арнольди. Если мы хотим найти собственные значения в окрестности некото-
рого числа т, можно применить процедуру Арнольди к матрице (А - т/)1, пе-
риферийные собственные значения ц, = (X,- - т)"1 которой соответствуют собст-
венным значениям X,-, близким к т. Для каждого найденного ц, легко получить
X,- = т + 1/ц,. Собственные векторы матрицы (А - т/)-1 те же, что и у матрицы А
(упражнение 6.3.29).
Симметричная процедура Ланцоша
Если матрица А эрмитова, т.е. А = А\ то алгоритм Арнольди принимает уп-
рощенную форму. В большинстве приложений эрмитовы матрицы на самом
деле вещественные, а поэтому будем предполагать, что А е 1ГХ" и А = Аг, Тогда
все собственные значения являются вещественными, как и собственные век-
торы. Более точно, R* имеет ортонормированный базис, состоящий из собст-
венных векторов матрицы А. Для заданного начального вектора q g IT после т
шагов алгоритма Арнольди получаем
АО» = ОтТм + „е?
Л у&т т т *т + 1 ,т т >
(6.3.20)
6.3. Собственные значения больших разреженных матриц, I
473
где Qm — вещественная матрица с ортонормированными столбцами, а Тт — ве-
щественная верхняя хессенбергова матрица. Алгоритм упрощается потому, что
Тт наследует свойство симметрии матрицы Л.
Упражнение 6.3.21. Покажите, что Тт = QmT AQm, причем Тт симметрична,
если таковой является А. Докажите, что Тт трехдиагональна. □
Поскольку Тт трехдиагональна, большинство tjk в формуЛе лрн0Льди
к
Qk+\ ~ Atfk ~ ^^Qjhk
7=1
равно нулю: сумма имеет лишь два ненулевых члена. Если ввести обозначение
а.
Pi
Pi
а2
Рли I
г т-1
Р/и-1 а т
то получится трехчленное рекуррентное соотношение
Qk+\ ~ АЦк ~ Qkak ~ Qk - iPfc - 1
или, после нормировки ^+1,
^fc+lP* ~ AQk ~ Qkak ~ Qk - I Раг - 1-
(6.3.22)
Этот специальный случай алгоритма Арнольди называется симметричной
процедурой Ланцоша [42].
Симметричный алгоритм Ланцоша без повторной ортогонализации. Для заданной матри-
цы А = АТ g IT* и ненулевого начального вектора q е R" алгоритм определяет ортонорми-
рованную последовательность q2, ..., qm такую, что span{^, = span{^, Aq, ..., Ак~ 7}
при к = 1, т.
=^/lkll2
for к = 1, ..., т -1
Qk+\ *~^qk
«* (6.3.23)
Як + 1 *~Qk+\ ~Qkak
for к>1, then qk+l <r-qk_fik_{
P* lk*+i lb
if ₽*=0
Г установить flag (spanfaj, ..., qk} инвариантно относительно A)
[exit
_Qk + l ^~Qk+l IP*
474
Глава 6. Собственные значения и собственные векторы II
Коэффициент ак вычисляется как внутреннее произведение, точно как в
алгоритме Арнольди, но вычислять pfc _ 1 таким способом не надо, поскольку
оно уже было вычислено как масштабный коэффициент р* на предыдущем
шаге. Это следует из симметрии Тт.
Более значимым следствием симметрии является то, что алгоритм стано-
вится более дешевым и требует меньших затрат памяти, если он выполняется
без повторного ортонормирования, и это показано в упражнении (6.3.23).
Если мы хотим найти лишь собственные значения, то сохранения требуют
только коэффициенты ак и ръ поскольку они и есть ненулевые элементы мат-
рицы Тт. На каждом из шагов требуются лишь два последних вектора, осталь-
ные можно отбросить. Таким образом, потребности в памяти сильно умень-
шаются. На к-м шаге вместо к внутренних произведений вычисляется только
одно, что значительно уменьшает объем вычислений. Подробности такого ис-
пользования алгоритма Ланцоша можно найти в книге Каллама (Cullum) и
Уиллоби (Willoughby) [11].
Основная трудность применения симметричного алгоритма Ланцоша
без повторной ортогонализации состоит в том, что ортонормальность qk
постепенно ухудшается из-за ошибок округления (упражнение 6.3.28).
Если, как часто бывает, мы заинтересованы в поддержании ортонормаль-
ности, то нужно хранить все qk и ортонормировать каждый новый вектор
относительно них (дважды). Из-за этого вся экономия памяти и объема
вычислений сводится на нет. Заметьте, что если мы захотим вычислить
собственные векторы матрицы А, то дополнительно нам придется хранить
все qk.
Дополнительные упражнения
Упражнение 6.3.24. Используйте тестовую программу MATLAB’a west047 9,
чтобы показать, что преобразования подобия могут привести к плотному запол-
нению матриц.
(а) Покажите, что приведение к верхней хессенберговой форме вызывает
заполнение всей верхней части матрицы. Например,
load west0479
А = west0479;
nnza = nnz(A)
spy(A)
H = hess(full(A)); % hess действует на полную матрицу
nnza = nnz (H);
spy(H)
(b) Примените к А (не к Н) одну итерацию 0Я-алгоритма (без или со сдви-
гом). Вы сможете быстро выполнить это, воспользовавшись MATLAB-коман-
дой qr, чтобы найти 0Я-разложение. Для визуализации полученного результа-
та используйте команду spy. □
Упражнение 6.3.25. Структура разреженных данных, используемая в
MATLAB’e, хранит ненулевые элементы матрицы А в виде списка s длины nz.
6.3. Собственные значения больших разреженных матриц, I
475
В дополнение к этому имеется два целочисленных списка row (строки) и col
(столбцы), также длины nz, которые уточняют положение каждого элемента в
А. Например, если седьмой элемент списка есть 5(7) = 1.234 х 105, a row(7) = 45
и со/(7) = 89, то о45 89 = 1.234 х 105. (Более детальное описание было дано в разд.
1.6.) Предположим, что А хранится в таком виде. Запишите на псевдокоде ал-
горитм, вычисляющий у = Ах в предположении, что вектор х (как и у) хранится
обычным образом. Ваш алгоритм должен сделать лишь один проход списка s и
потратить на все 2nz флопов. □
Упражнение 6.3.26. Напишите MATLAB-скрипт, реализующий алгоритм
Арнольди с повторной ортогонализацией. В качестве прототипа можете ис-
пользовать алгоритм (6.3.6). В качестве начального возьмите случайный век-
тор (q = randn (n, 1)), или вектор из одних единиц (q = ones (n, 1)). Ис-
пользуйте eig, чтобы найти собственные значения ранее сгенерированной
хессенберговой матрицы Нт. Это - числа Ритца, и некоторые из них могут
служить хорошей оценкой собственных значений. Чтобы проверить ваш код,
сгенерируйте следующим образом разреженную матрицу:
num =14; % или любое подходящее число
G = numgrid('N',num);
В = delsq(G);
А = sprandn(B) 4- i*sprandn (В) ;
как в примере 6.3.19. (Используйте help numgrid, help delsq и т.д.,
чтобы получить информацию об этих функциях.) Поскольку эта методика
использует генератор случайных чисел, матрица, полученная вами, будет от-
личаться от матрицы из упражнения 6.3.19. Вы получите тестовую матрицу
большего или меньшего размера, увеличивая или уменьшая параметр num.
(Вы получите матрицу размерности (num - 2)2.) Проконтролируйте располо-
жение ненулевых элементов матрицы А по графику, выведенному програм-
мой spy. Взяв в качестве начального случайный вектор (либо какой-нибудь
другой, по вашему выбору), выполните 15, 30, 45 и 60 шагов алгоритма Ар-
нольди, чтобы получить хессенберговы матрицы размерностей 15, 30, 45 и
60. (На самом деле вы можете выполнить лишь один прогон, поскольку наи-
меньшая из хессенберговых матриц является подматрицей матрицы Н^. Вы-
числите числа Ритца для каждого из четырех случаев (например, ritz =
= eig(h(l:15,l:15)))n для каждого случая выведите совместный график
чисел Ритца и истинных собственных значений. Например, вы можете ис-
пользовать следующие команды:
hold off
eigval = eig(full(А));
plot(real(eigval), imag(eigval),'r+')
hold on
plot (real(ritz), imag(ritz),'bo')
Заметьте, что качество приближения улучшается с ростом числа шагов, и
что внешние собственные значения аппроксимируются лучше. □
476
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.3.27. Повторите упражнение 6.3.26 для А = west04 7 9:
load west0479
А = west0479; □
Упражнение 6.3.28. В этом упражнении рассматривается ухудшение ортого-
нальности в алгоритме Арнольди без переортогонализации. Если вы еще не
сделали этого, напишите MATLAB-скрипт, реализующий алгоритм Арнольди
с повторной ортогонализацией. Модифицируйте скрипт таким образом, чтобы
переортогонализация могла включаться или отключаться в зависимости от
значения некоторой переменной-переключателя. Для каждой из следующих
матриц выполните 100 шагов алгоритма Арнольди без повторной ортгонализа-
ции. После этого вычислите внутреннее произведение^*^ для к = 2, ...,100. За-
метьте, как ухудшается ортогональность при увеличении к. Вычислите также
II Im-QmQm II (ПРИ т - ЮО), которая по теории должна равняться нулю. Теперь
еще раз прогоните алгоритм Арнольди, но уже с переортогонализацией, и вы-
числите ||/„-£?* О
(а) Воспользуйтесь матрицей west04 7 9.
load west0479
А = west0479;
spy(А)
n = size(A,1)
(b) Теперь возьмите матрицу дискретного отрицательного лапласиана раз-
мерности 324 (внутренние точки квадратной сетки 20 х 20). Эта разреженная
матрица симметрична.
А = delsq(numgrid('N',20));
n = size(A,1)
(с) А теперь, чтобы показать, что потеря ортогональности происходит
не всегда, возьмите матрицу, подобную рассмотренной в упражнении
6.3.26.
В = delsq(numgrid('N',20));
А = sprandn (В) 4- i*sprandn (В) ;
n = size(А,1)
□
Упражнение 6.3.29. Внесите изменения в программу из упражнения 6.3.26
так, чтобы она реализовала алгоритм Арнольди по стратегии сдвига с обра-
щением. Для этого надо внести несколько изменений, /^-разложение мат-
рицы (А - тУ), где т — целевой сдвиг, который нужно выполнить один раз в
начале:
[L,U] = lu(A-tau*speye(size(A)));
6.3. Собственные значения больших разреженных матриц, I
477
speye - разреженная единичная матрица. Тогда, любую операцию вида
<1 <- (А -
которую необходимо выполнить, можно заменить операциями q = L\q;
q = U\q;. Мы вычисляли собственные значения матрицы (А - т/)1, а поэто-
му теперь наша программа должна трансформировать их в собственные значе-
ния матрицы А. Из ц = (X - т)"1 получаем X = т + 1/ц. Проверьте вашу програм-
му, вычислив с ее помощью десять собственных значений матрицы west0 4 7 9,
ближайших к т = 6 + О/. Выполните столько шагов алгоритма Арнольди, сколь-
ко вам потребуется, чтобы уменьшить невязки до 10-16. Вычислите невязки с
помощью недорогого метода из теоремы 6.3.16. Сравните найденные вами
собственные значения с «истинными» собственными значениями, вычислен-
ными с помощью 0Я-алгоритма (lam = eig (full (west0479) ) ;). Найдите
собственные значения, близкие к 6, используя MATLAB-команду sort:
[dummy,order] = sort(lam - tau);
lam = lam(order);
□
Упражнение 6.3.30. Докажите теорему 6.3.9 индукцией по к. Например, сле-
дующим образом. Предполагая, что q, Aq, A2q, ..., Am[q линейно независимы,
покажите, что span{^, ..., qk} = lCk(A,q) для к = 1, ..., т.
(а) Проверьте, что в случае к = 1 теорема выполняется, т.е. span{^} = K,x(A,q).
(b) Чтобы получить общий результат, предположим, что j < т. Нужно пока-
зать, что если
span{^, ..., qk} = K3k(A,q) для к = 1, ...,/
то span{^j, ..., ^.+1} = /С;и(Л,^). По индуктивному предположению имеем
span{^p ..., = /Су(Л,^), так что е K,](A,q). Поэтому существуют такие по-
стоянные с0, ..., с._ р что
Qj = cvQ + c\Aq + <hA2Q + ••• + Cj- \Aj~ {Q- (6.3.31)
Покажите, что Cj_ l * 0. (Можете использовать здесь, что span{^b ..., q}_ J =
= JCj_ ((Л,^).) Теперь умножим (6.3.31) на Л и получим выражение для Aqp кото-
рое можно использовать в (6.3.3), чтобы показать, что#у+1 ф 0. Таким образом,
Лу+| у > 0, и мы можем выполнить деление в (6.3.5), чтобы получить ^+i. Пока-
жите, что существуют постоянные •••, 4 такие, что
Qj+\ = d*Q + dxAq + d2A2q + ... + djAjq. (6.3.32)
Тем самым qhX g /СУ+1(Л,^). Покажите, что span{^h ..., qJ+x} с JCj+x(A,q).
(с) Продолжая начатое в (Ь), покажите, что в (6.3.32) dj ф 0. Используя
(6.3.32) и индуктивное предположение span{^b ..., = /СУ(Л,^), покажите, что
478
Глава 6. Собственные значения и собственные векторы II
Ajq е span{^, qj+l} и, следовательно, /СУ+1(Л ,q) с span{^, qj+l}. Итак, при-
ходим к заключению, что span{^1? ..., qM} = /СУ+|(Л,^). Этим завершается ин-
дуктивное доказательство п. (а) теоремы 6.3.9. Одновременно с этим мы до-
казали и п. (Ь).
(d) Используя соотношения, полученные выше в настоящем упражнении,
докажите, что если q, Aq, A2q, ..., Amq линейно зависимы, то qm+l = 0 и hm+x т = 0.
Обратно, если q, Aq, A2q, ..., Amq линейно независимы, то qm+[ ф 0 и Лт+1>т * 0.
Это уже было доказано в п. (Ь). А теперь завершите доказательство теоремы
6.3.9, п. (с). □
Упражнение 6.3.33. Докажите утверждение 6.3.15 двумя способами.
(а) Покажите, что если выполняется (6.3.13), то выполняется и соотноше-
ние (6.3.11), эквивалентное комбинации (6.3.3) и (6.3.5). Покажите, что коэф-
фициенты hjk в (6.3.3) однозначно определяются требованием ортогональности
qk+x к векторам qx, ..., qk. Покажите, что однозначно определяется требо-
ваниями, чтобы оно было положительным и чтобы ||^+11|2 = 1. Докажите по
индукции, что вектор q} однозначно определяется вектором qx.
(b) Второй способ использует матрицы Крылова, тесно связанные с под-
пространствами Крылова. Для данных Л е Cwx", х е Сп при j < п матрицей Кры-
лова Kj+{(A,q) е Сяху называется матрица со столбцами х, Ах, А2х, ..., Aj" ’х.
(i) Пусть Нт та же, что и в (6.3.13), т.е. Нт - верхняя хессенбергова матрица
с положительными элементами на поддиагонали. Покажите, что матрица
Крылова Кт(Нт,ех) является верхней треугольной и все элементы ее главной
диагонали положительны.
(ii) Покажите, что если имеет место (6.3.13), то AQ„y = QmH„y для всех у е Ст,
удовлетворяющих условию етТу = 0.
(iii) В предположении (6.3.13), используя результат части (ii), докажите ин-
дукцией по j, что A!Qme{ = QmHJmex для j = 0, 1, ..., т - 1. Выведите отсюда, что
Km(A,qx) = QmKm(Hm,ex).
(iv) Используя единственность Я0-разложения (теорема 3.4.8), докажите,
что Qm однозначно определяется вектором qx.
Методику п. (Ь), стоит сравнить с методикой из упражнения 5.7.46, где
была доказана неявная 0-теорема. Утверждение 6.3.15 сводится к неявной Q-
теореме при т = п. □
Упражнение 6.3.34. Сколько требуется флопов для преобразования матри-
цы к верхней хессенберговой форме с помощью доведения до конца алгоритма
Арнольди (п шагов алгоритма (6.3.6))? Подсчитайте затраты на ортогонализа-
цию отдельно от матрично-векторного произведения Aqk. Если для повыше-
ния точности векторы qk должны быть ортонормированны, нужно выполнить
повторную ортогонализацию, как указано в алгоритме (6.3.6). Покажите, что
тогда затраты лишь на ортогонализацию превысят затраты на приведение к
верхней хессенберговой форме с помощью отражений (алгоритм (5.5.2)).
Предполагая А плотной, покажите, что общие затраты на выполнение алго-
ритма Арнольди составят около би3 флопов. □
Упражнение 6.3.35. Пусть А е Сп*п и S будет ^-мерным подпространством
в С". Тогда вектор v е S называется вектором Ритца матрицы А в подпростран-
6.3. Собственные значения больших разреженных матриц, I
479
стве 5 тогда и только тогда, когда найдется такое ц е С, при котором выполня-
ется условие Рэлея—Ритца—Галеркина
Av - pv ± 5,
т.е. (Av- pv,s) = 0 для всех s е 5. Скаляр ц называется числом Ритца матрицы Л,
соответствующим вектору v. Пусть qv ..., qk- ортонормированный базис под-
пространства S, Q = [#j ... qk] и В = QAQ е Скхк.
(а) Поскольку v е 5, существует единственный вектор х е Ск, для которого
v = Qx. Покажите, что v является вектором Ритца матрицы А с соответствую-
щим числом Ритца ц тогда и только тогда, когда х есть собственный вектор
матрицы В с соответствующим собственным значением ц. В частности, суще-
ствует к чисел Ритца матрицы А, соответствующих подпространству 5: ими яв-
ляются к собственных значений матрицы В.
(Ь) Покажите, что если v является вектором Ритца с числом Ритца ц, то ц =
vAv/vv. Другими словами, ц является отношением Рэлея вектора к (Обобщая,
можно рассматривать В - Q'AQ как к х к матричное отношение Рэлея.)
(с) Пусть Qm и Нт получены из Л с помощью процедуры Арнольди. Покажи-
те, что собственные значения матрицы Нт являются числами Ритца матрицы Л,
соответствующими подпространству, натянутому на столбцы матрицы Qm. □
Упражнение 6.3.36. Пусть (p,v) — приближение собственной пары матри-
цы Л с || v ||2 = 1, и пусть г = Av - цу (его невязка). Кроме того, пусть е = || г ||2 и
Е = -rv. Покажите, что (ц,у) является собственной парой матрицы Л + £ и
|| Е ||2 = б. Поэтому если норма невязки || г ||2 мала, то (p,v) будет точной собст-
венной парой матрицы, близкой к Л . Таким образом, (ц,у) дает хорошее
приближение собственной пары матрицы Л в смысле обратных ошибок. □
Упражнение 6.3.37.
(а) Для заданных Л е С"х” и полинома р(х) = aQ + арс + ар? + ... + apt опреде-
лим матрицу р(Л) е Спхп формулой р(Л) = я0/+ а{А + а^2 + ... + а^. Покажите,
что вектор v лежит в подпространстве Крылова /СШ(Л,#) тогда и только тогда,
когда v можно представить в виде p(A)q, где р — полисном степени не выше
т - 1. Таким образом, K,m(A,q) = {p(A)q | р е Рт _ J, где Рт _ j обозначает множе-
ство полиномов степени не выше т - 1.
(Ь) Покажите, что если v — собственный вектор матрицы с собственным
значением X, то v будет собственным вектором матрицы р(А) с собственным
значением р(Х).
(с) Пусть Л - полупростая матрица с линейно независимыми собственны-
ми векторами vb ..., vn и соответствующими собственными значениями ...,
А,„, a q = civ1 + c2v2 + ... + cnvn, где коэффициенты clf..., сп заранее нам неизвест-
ны. Если q выбирается «случайно», то (обычно) ни одно из с( не будет чрезмер-
но малым, a q будет иметь значимые вклады от каждого из собственных векто-
ров. Предположим, что это так, и что || у, || = 1 для всех j. Покажите, что если
v = p(A)q, то
v = CtpCXJVi + c2p(X2)v2 + ... + c„pCk„}v„.
480
Глава 6. Собственные значения и собственные векторы II
Покажите, что если существует полисном р е Рт _ j такой, что для некото-
рого j | р(Ху) | много больше | p(Az) | при всех i ф j, то подпространство Крылова
/Ст(Л,^) будет содержать вектор, близкий к собственному вектору vy. При таких
условиях обычно можно ожидать, что одна из пар Ритца из )Cm(A,q) окажется
хорошим приближением собственной пары (A,y,vy).
(d) Пусть \ хорошо отделено от других собственных значений матрицы А.
Как построить такой многочлен р(г) = (г - zx){z - г2) ... (г - zm _ 1), у которого
|р(\) I > I Р(Ю I при всех i * р (Обратите внимание на расположение нулей г, )
Насколько усложнится задача, если А,у не будет хорошо отделено от других соб-
ственных значений матрицы Л? Из-за этого алгоритм Арнольди сначала опре-
деляет собственные значения на периферии спектра, поскольку эти значения
более отделены от остальных. Для симметричных матриц подобные вопросы
рассмотрены подробнее в упражнении 6.3.41. □
Упражнение 6.3.38. В этом упражнении будут установлены основные свой-
ства полиномов Чебышева — возможно, наиболее полезных полиномов в теории
аппроксимации. В упражнении 6.3.41 полиномы Чебышева будут использова-
ны при рассмотрении скорости сходимости симметричного алгоритма Ланцо-
ша. Позднее (упражнение 7.8.13) мы воспользуемся ими при исследовании ал-
горитма сопряженных градиентов.
Для х е [-1,1] введем вспомогательную переменную 0 е [0,л] выражением
х = cos 0. Значение 0 однозначно определяется через х: 0 = arccos х. Теперь для
т = 0, 1, 2, ... определим на [-1,1] функцию Тт как Тт(х) = cos тв.
(а) Покажите, что | Тт(х) | < 1 для всехх е [- 1,1], 7^(1) = 1, Тт(-1) = (—I)"*,
| Тт(х) | - 1 в т + 1 различных точках отрезка [-1,1], а Тт(х) = 0 в т различных
точках интервала (-1,1).
(Ь) Воспользуйтесь тригонометрическим тождеством
cos(a + Р) + cos(a - Р) - 2 cos a cosp,
чтобы показать, что
Tm+i(x) + Т„ _ !(х) = 2х7’м(х), т = 1, 2, 3,....
Это приводит к рекуррентному соотношению
Tw+1(x) = 2хТт(х) - Тт_х(х\ т = 1, 2, 3,... .
(6.3.39)
(с) Найдите Т0(х) и Тх(х) непосредственно из определения, а затем восполь-
зуйтесь (6.3.39), чтобы получить Т2(х), Т3(х) и Г4(х ). Обратите внимание, что
каждая из этих функций является полиномом1 от х и, следовательно, естест-
венным образом может быть продолжена за пределы отрезка [-1,1]. Нарисуйте
графики полиномов Т2, Т3 и Г4, ограничиваясь отрезком [-1,1], но при этом
отметьте, что они начинают быстро расти, как только х покидает отрезок.
1 Это полиномы Чебышева первого рода. Есть еще целый ряд других последовательностей по-
линомов, тесно связанных с ними. — Прим, перев.
63. Собственные значения больших разреженных матриц, I 481
(d) Пользуясь рекурсией (6.3.39), докажите индукцией по т, что для всех т
Тт является полиномом степени т. (Из п. (а) мы знаем, что все т нулей Тт ле-
жат в (-1,1). Следовательно, Тт должен быстро расти, как только х выйдет за
пределы этого интервала.)
(е) Не только Тт начинает быстро расти, когда х выходит за пределы [—1,1].
Для значения х вне [-1,1] Тт(х) быстро растет как функция т. Чтобы показать
это, нам потребуется другая характеристика полиномов Чебышева. Для
х е [1,оо) определим вспомогательную переменную t е [0,оо) через х = ch t.
(Вспомним, что ch t — это гиперболический косинус от t: ch t = (е' + е_/).) Для
т = 0, 1,2, ... определим функцию Тт на [ 1 ,оо) как
Тт(х) = ch mt.
Используйте тождество для гиперболического косинуса
ch(a + Р) + ch(a - Р) = 2 ch a ch Р,
чтобы показать, что
Гт+|(х) + Tm-iW = 2xfm(x), т = 1, 2, 3,
и, следовательно,
Гш+1(х) = 2xfm(x) - fm_{(x), т = 1, 2, 3, ...,
а это совпадает с рекурсией (6.3.39). Вычислите TQ и 7\, исходя лишь от опре-
деления, и докажите индукцией по т, что Тт = Тт при всех т. Таким образом,
Тт(х) - ch mt, где х = ch /. (6.3.40)
(f) Если х > 1, то х = ch t, где t > 0. Пусть р = et > 1. Используйте (6.3.40), что-
бы показать, что Тт(х) > ± рт. Тем самым Тт(х) растет степенным образом как
функция от т.
(g) Воспользуйтесь MATLAB’om (имеющим встроенные функции cosh и
acosh), чтобы вычислить t = ch-1 х и р = е/длях= 1.1. Найдите T10(l.l), Т20(1.1)
и Гзо( 1.1). Сравните отношение Тзо( 1.1)/Г20( 1.1) с е10'. Чем объясняется их хоро-
шее совпадение?
(h) Покажите, что Тт(-х) = (-l)mTw(x) при всех т и х. Следовательно, при
х 6 (-оо,-1) функция | Тт (х) | растет так же, как и при х g (1 ,оо). □
Упражнение 6.3.41. Здесь полиномы Чебышева, введенные в предыдущем
упражнении, используются при более детальном рассмотрении предмета
16 Основы матричных вычислений
482
Глава 6. Собственные значения и собственные векторы П
исследования упражнения 6.3.37. Пусть А е ЛГ4" - симметричная матрица с
собственными значениями Aq > Х2 > ... > А,я, причем Х2 > А,я. Можно получить
полиномы рт, подобные на [А,„, Х2] полиномам Чебышева, выполнив преобра-
зование, отображающее [Хя, Х2] на [-1,1]. У этих полиномов величины |pw(Aq) |
будут большими, a |pw(Ay) | ограничены 1 при j ф 1.
(а) Покажите, что преобразование
1 о Х~^2
w = 1 + 2-----—
^2 ~^п
отображает [Хя, Х2] на [-1,1].
(Ь) Определим многочлен рт е Рт как
y__'х
Р„М = Tn(w) = ТД1 + 2 -------Ц.
Покажите, что | рт(Ю | < 1 при i > 2, а
Ip^CXj) | >^Рт,
где
р > 1 + 2 > 1. (6.3.42)
Воспользуйтесь п. (f) упражнения 6.3.38.
(с) Пусть У|, ..., vn обозначают ортонормированные собственные векторы
матрицы Л, соответствующие собственным значениям ..., А,я, a q - началь-
ный вектор симметричного алгоритма Ланцоша, у которого || q ||2 = 1, и предпо-
ложим, что q = c1v1 + c2v2 + ... + cnvn, причем * 0. Определим pm как pm(x) =
Pm(x Wi/UM), гдерш берется из п. (b). Пусть wm = pm_^)q е 7Ст(Л, q). Пока-
жите, что существует такая постоянная С, что
II - V] ||2 < Ср-", т = 1, 2, 3, ...,
где р имеет тот же смысл, что и в (6.3.42). Таким образом, для больших т подпро-
странство Крылова /СШ(Л, q) содержит вектор, близкий к собственному вектору vr
(d) Внесите необходимые изменения в приведенные выше рассуждения,
чтобы показать, что для больших т подпространство /Ст(Л, q) содержит векто-
ры, близкие к vn — собственному вектору, соответствующему А,я. При этом счи-
тайте, что Х| > _ । > и * 0.
(е) Положим Ац > Х2 > > Ая. Для т = 1, 2, 3,... определим полином рт е Рт
как
рт(х) = (х- _ ,(1 + 2-^-).
6.4. Собственные значения больших разреженных матриц, II
483
С помощью рт покажите, что при достаточно больших т подпространство
Крылова /Ст(Л, q) содержит векторы, близкие к v2. При этом считайте, что с2 * 0.
(f) Пусть Х2 > Х3 > Х4 > Х„. Постройте полиномы, с помощью которых можно
показать, что при достаточно больших т подпространство 1Ст(А, q) содержит
векторы, близкие к v3 (с3 * 0). □
Упражнение 6.3.43. Это упражнение предполагает знакомство с трехчлен-
ной рекурсивной процедурой (Стильтьеса) построения ортогональных полино-
мов. Для начала отметьте, что поведение алгоритма Ланцоша определяется
трехчленной рекурсией (6.3.22). Затем покажите, что трехчленную рекурсию,
порождающую ортогональные полиномы, можно рассматривать как результат
применения алгоритма Ланцоша к некоторому оператору в бесконечномерном
пространстве. (Указание'. Рекурсия (6.3.39) для полиномов Чебышева пред-
ставляет собой частный случай.) □
6.4. Собственные значения больших разреженных матриц, II
Этот раздел, который основывается на предыдущем, вводит некоторые из
известных наиболее эффективных методов вычисления собственных значений
больших матриц, включая метод Арнольди с неявным перезапуском и метод
Якоби-Дэвидсона. Дополнительную информацию можно найти в [3].
Метод Арнольди с неявным перезапуском
Скорость, при которой алгоритм Арнольди начинает давать хорошие при-
ближения для собственных пар, сильно зависит от выбора начального вектора
q. В большинстве случаев нельзя ожидать, что мы сразу найдем подходящий
вектор q'. обычно q выбирается случайным образом ввиду недостатка инфор-
мации. Однако выполнив несколько шагов алгоритма Арнольди, мы получим
новую информацию, которая позволит подобрать новый вектор q, более под-
ходящий на роль начального вектора. Имея такой вектор, лучше начать вы-
полнение алгоритма Арнольди сначала, заменив старый начальный вектор на
q. Возможно, стоит раз за разом делать перезапуски, каждый раз с лучшим на-
чальным вектором?
И в самом деле, перезапуски оказываются небесполезными, и именно это
делает процедура Арнольди с неявным перезапуском (IRA — Implicitly Restarted
Amoldi process). После недолгой работы алгоритма Арнольди он перезапуска-
ется с новым вектором. Далее опять следует непродолжительная работа алго-
ритма, и новый перезапуск, и т.д. Сам принцип выбора начального вектора
позволяет возобновлять работу алгоритма не с нуля, а, так сказать, по ходу
дела. По этой причине перезапуски называются неявными.
После нескольких неявных перезапусков процесс приводит к инвариант-
ному подпространству малой размерности, которое содержит искомые собст-
венные векторы. Теперь все сводится просто к извлечению этих собственных
векторов и соответствующих собственных значений.
484
Глава 6. Собственные значения и собственные векторы II
В MATLAB’e есть функция eigs, вычисляющая несколько собственных
векторов разреженной матрицы с помощью IRA. См. упражнение 6.4.19. Реа-
лизацию IRA на Фортране под названием ARPACK [49] можно использовать
бесплатно.
Главным достоинством перезапусков является то, что благодаря им исполь-
зуется меньше памяти. Если мы ограничимся перезапусками алгоритма Ар-
нольди через небольшое число шагов, скажем, т, то нам придется хранить
лишь т векторов. При каждом перезапуске память освобождается. Более того,
поскольку хранится лишь небольшое число векторов, повторная их ортогона-
лизация не потребует больших затрат, но зато даст уверенность в их ортонор-
мированности с необходимой для работы точностью.
Теперь, выяснив основную идею процедуры и ее возможные достоинства,
ответим на возникающий при этом очевидный вопрос: что дает хороший вы-
бор начального вектора? Рассматривая для начала крайний случай, предполо-
жим, что нас интересует определенный собственный вектор. Было бы хорошо
взять этот вектор в качестве начального в алгоритме Арнольди. Если нам уда-
стся начать процедуру с таким q, то процесс остановится на первом шаге с соб-
ственным вектором q} и соответствующим собственным значением. В боль-
шинстве случаев требуется найти более одной собственной пары. Предполо-
жим, что в качестве начального q мы взяли линейную комбинацию
небольшого числа собственных векторов, скажем, q = CjVj + ... + ckvk, k<n. То-
гда остановка алгоритма Арнольди произойдет через к или меньше шагов
(обычно) в подпространстве span{^, ..., qk}, совпадающем с подпространством
span{vb ..., vj (см. упражнение 6.4.20).
Это объясняет наше желание взять в качестве q линейную комбинацию
лишь нескольких искомых собственных векторов. Чтобы не усложнять рас-
смотрение вопроса, предположим, что А является полупростой матрицей с ли-
нейно независимыми собственными векторами vb ..., уп и соответствующими
собственными значениями ..., Хя. Для определенности предположим, что
мы ищем к наибольших по модулю собственных значений и соответствующие
им собственные векторы. Пронумеруем собственные значения таким образом,
что | Xj | > | Х21 > ... > | кп |, и предположим, что | XJ > | 1. Тогда искомыми
собственными векторами будут vh ..., ук.
Так как v,,..., уп образуют базис в С”, то любой вектор q можно представить
в виде
q = dVj + с2у2 + - + W
с некоторыми, единственным образом определенными, но еще не известными
с2, ..., сп. Если q был выбран случайно, скорее всего, он будет иметь значи-
мые компоненты по всем направлениям собственных векторов, т.е. ни одно из
с. не будет равно или слишком близко к нулю. Это совсем не то, чего нам хоте-
лось бы. Поскольку vp ..., Ук - искомые векторы, хотелось бы, чтобы cfc+1 = с*+2 =
... сп = 0. Поэтому нам надо найти новый вектор
V = W + с2у2 + ... + спуп,
6.4. Собственные значения больших разреженных матриц, II 485
у которого ..., ск были бы больше, a ck+v>..., сп — меньше. Предположим, что
мы взяли q=р(А)q, гдер — некоторый полином. Тогда (см. упражнение 6.3.37)
q = c^UOvj + C2p(A,2)v2 + ... + C'XXJv, . (6.4.1)
Если мы сможем выбрать р так, чтобы ^(XJ, ..., р(кк) по модулю превосхо-
дили р(Х^+1), ..., р(ХЛ), то приблизимся к нашей цели. Это и пытается выпол-
нить процедура Арнольди с неявным перезапуском.
Теперь опишем итерацию алгоритма Арнольди с неявным перезапуском
(IRA). Чтобы найти к собственных значений, выполним т = к +j шагов Ар-
нольди, где j сравнимо с к. Обычный выбор - это j - к. Начав с q, после т ша-
гов мы получим матрицу Qm = [ qx ... qm ] с ортогональными столбцами и хес-
сенбергову матрицу Нт такую, что
AQm = QmHm + qm+xh т+х>тет, (6.4.2)
как в (6.3.13). Поскольку т мало, легко найти (с помощью 0Л-алгоритма) т
собственных значений матрицы Нт. Они являются числами Ритца, соответст-
вующими подпространству 7£((?J = span{^p..., qm}. Обозначим их через цр ...,
и упорядочим так, чтобы | ц, | > | ц21 > ... > | |. Наибольшие из цр ..., явля-
ются оценками к наибольших собственных значений матрицы А (искомые
собственные значения), в то время как цл+р ..., являются приближениями
других (не нужных нам) точек спектра. Хотя эти приближения могут быть пло-
хими, тем не менее они дают грубую картину расположения спектра матрицы А.
Затем IRA выполняет j итераций (М?-алгоритма для матрицы Нт, используя
в качестве сдвигов ..., у, в той области спектра, которую мы хотим подавить.
Обычно принимают у1 = |л*+1, у2 = ..., vy= Если сделать именно такой вы-
бор, мы выполним вариант IRA с точным сдвигом. £М?-итерации будут недоро-
гими, поскольку т мало. Их совместное применение дает унитарное преобра-
зование подобия
Нп = V-'HmVm, (6.4.3)
где
р(Нт) = VmRm, (6.4.4)
где Vm — унитарная матрица, Rm — верхняя треугольная, ар — полином степени
j с нулями vp ..., vy:
p(z) = U - V!)(z - V2) ... (? - Vj),
как было показано в упражнении 6.2.36. Q^-итерации сохраняют верхнюю
хессенбергову форму, так что Нт также является верхней хессенберговой.
Пусть Qm = QmVmw qx будет первым столбцом матрицы Qm.
486
Глава 6. Собственные значения и собственные векторы II
Следующая итерация IRA состоит из других т шагов Арнольди, начинаю-
щихся с q{. Однако, как мы уже указывали, нет необходимости начинать вы-
полнение алгоритма Арнольди с нуля. Чтобы понять, как надо поступить, ум-
ножим (6.4.2) справа на Vm и воспользуемся (6.4.3), чтобы получить
AQm = QmHm + qm+xh (6.4.5)
В упражнении (6.4.2) показано, что вектор-строка е? Vm имеет точно т -j-l
ведущих нулей. Таким образом, если мы отбросим последние j компонент это-
го вектора, то получим вектор вида ftekr, где р есть некоторый ненулевой ска-
ляр. Следовательно, опустив последние j столбцов в выражении (6.4.5), полу-
чим A Qk = Qk^Hk+x<k + qm+xh m+l,m^ek или
AQk = QkHk + qk+lhk+lJcel + qm+ih m+1.mpe[, (6.4.6)
где мы использовали обозначения qk+i для (k + 1)-го столбца матрицы Qm и
hk+i,k для элемента (k + 1, к) матрицы Hk+XJk. Определим qk+x = y(4k+ihk+ijc +
+ qm+lh m+l mP), где у - положительный скаляр, для которого ||?t+I||2 = 1.
Упражнение 6.4.7. Покажите, что qm+i ортогонален вектору qk+i- Исполь-
зуйте это, чтобы показать, что 4klihk+i,k + qm+xh m+1,mP не.равен нулю. Таким
образом, существует у > 0 такое, что ||^Л+1||2 = 1. Покажите, что qk+l ортого-
нален qx, ...,qk. □
Пусть hk+lk = 1 / у. Тогда (6.4.6) принимает вид
AQk = QkHk + qk+ihk+xkek , (6.4.8)
идентичный (6.3.13) за исключением крышечек над символами (надстрочных
символов) и замены т на к. Из утверждения 6.3.15 следует, что столбцы матри-
цы Qk являются векторами, которые дает алгоритм Арнольди с начальным век-
тором .
Таким образом, при построении последовательности Арнольди, начинаю-
щейся с q{, нет смысла прогонять алгоритм IRA с самого начала. Вместо этого
можно извлечь Qk и Нк (подматрицы матрицQm -QmVmn Нт = VmlHmVmi соот-
ветственно) и начать процесс с шага к. Таким образом мы пропускаем к - 1
шаг Арнольди.
IRA реализуется в виде следующего алгоритма.
Алгоритм Арнольди с неявным перезапуском (IRA). Для заданных А е Спжп и ненулевого
начального вектора q е ЛГ алгоритм порождает ортогональные векторы qx, qv q„ а вме-
6.4. Собственные значения больших разреженных матриц, II
487
сте с ними и натянутое на них инвариантное подпространство. Если инвариантное под-
пространство не удается найти за imax итераций, процесс завершается установкой флага
ошибки.
=471И12
выполните к шагов Арнольди (алгоритм (6.3.6)), чтобы получить Qk и Нк
for П =1,2,...,imax
выполните еще; шагов Арнольди (алгоритм (6.3.6)),
чтобы получить Qm\\ Нт, т = к+j.
for | /^+1Л |< tol, сх\1(ТЩ2к) инвариантно относитель А)
найдите; сдвигов ,..., Vj
выполните j шагов QR - алгоритма со сдвигом v,,..., vy, чтобы получить
матрицу преобразования Vm
установить флаг (за imax итераций сходимость недостигнута)
Ради простоты понимания мы опустили в (6.4.9) некоторые детали. Напри-
мер, при обновлении Qm в действительности вместо обновления всей матрицы
и последующего удаления J столбцов обновляются лишь первые к столбцов
(т.е. Qk <- QmVm(:, 1 : к)).
Кроме того, проверка сходимости должна быть более полной: должны
проверяться все поддиагональные элементы h /+1>/ для i = 1, ..., т - 1. Если
любой из них практически равен нулю, то первые i столбцов матрицы Qk
порождают инвариантное подпространство размерности L Если i < к, то ите-
рации необходимо продолжать, но первые i столбцов матрицы Qk не должны
участвовать в дальнейших расчетах. Это уменьшает затраты на последующие
обновления Qk.
Если несколько векторов изолировано, в дополнение к i изолированным
столбцам можно использовать еще т-k+jстолбцов, так что в итерации будут
участвовать всего т + i столбцов. Эта стратегия хороша тем, что способствует
более быстрой сходимости. С другой стороны, она требует больше памяти.
Если требуется определить к собственных пар и мы берем j = к, то нам потре-
буется память для хранения Зк векторов.
Стоит упомянуть еще одну стратегию, улучшающую сходимость. Часто
полезно иметь дело с пространствами, размерности которых лишь немногим
больше числа искомых собственных значений. Например, чтобы найти s
собственных значений, мы можем использовать пространства размерности
к = s + 2.
В (6.4.9) ничего не говорится о выборе сдвигов. Как было указано выше, их
надо выбирать равными j наименьшим собственным значениям матрицы Нт.
Это хорошее правило, если требуется найти наибольшие собственные значе-
ния. Если, напротив, необходимо найти собственные значения матрицы А,
488
Глава 6. Собственные значения и собственные векторы П
расположенные в комплексной плоскости далеко вправо, то в качестве сдви-
гов можно взять, например, / самых левых собственных значений матрицы Нт.
Вспомните, что мы всегда старались выбрать сдвиги из той части спектра, ко-
торую хотели подавить.
Продолжая эту идею, для определения собственных значений, близких к
некоторому т внутри спектра, в качестве сдвига можно взять собственные зна-
чения матрицы Нт, наиболее удаленные от т. Однако такая стратегия работает
плохо, поскольку при этом делается попытка улучшить найденные внутренние
собственные значения, которые плохо определяются алгоритмом Арнольди, в
противоположность подавлению периферийных собственных значений, вы-
полняемому алгоритмом Арнольди наилучшим образом. Лучшим оказывается
подход, при котором используется стратегия сдвига с обращением, т.е. IRA
применяется к сдвинутому обратному оператору (А - т/)1. Этот подход можно
использовать всякий раз, когда достаточно времени и места для вычисления
£ (7-разложения матрицы (Л-т/).
Почему IRA работает?
Выше мы установили, что в IRA-итерации начальный вектор q заменяется
новым начальным вектором q -p(A)q, гдер - полином, используемый для по-
давления нежелаемых собственных значений и усиления желаемых. Покажем,
что это так. Начнем с алгоритма Арнольди в форме
— Qm^m + Qm+\h
Очевидно, что это выражение останется справедливым, даже если добавить
сдвиг:
(А - vJ)Qm = Qm(Hm - ViZ) + (6.4.10)
где остаточный член Ех = qm+{h тождественно равен нулю за исключени-
ем последнего столбца. Теперь рассмотрим результат второго сдвига. Выраже-
ние для (А - у2/)(Л - vxI)Qm можно получить, умножая (6.4.10) на (А - v2I). По-
лученное выражение содержит член (А - v2I)Qm > который можно исключить,
используя (6.4.10) с заменой там на v2 Теперь результат, содержащий два ос-
таточных члена (с EJ, можно записать в виде
(Л - v2/)(A - ViI)Qa = Qn(Hn - - vj) + E2,
где E2 = (A - v2I)El + тождественно равна нулю за исключением
двух последних столбцов. Обобщая это построение, получим следующую тео-
рему, которая доказывается в упражнении 6.4.22.
Теорема 6.4.11. Пусть
AQm — Qm^m + т+\,т^т
6.4. Собственные значения больших разреженных матриц, II
489
up — полином степени j < т. Тогда
p(A)Qm = QmPiHJ + Ер
где Е} е Cwx/” тождественно равна нулю за исключением j последних столбцов.
Теперь вспомним, как IRA преобразует Qm и Нт. Алгоритм выбирает сдвиги
Vj из области спектра, которая должна быть подавлена, и выполняет j ша-
гов 0Л-алгоритма для матрицы Нт, используя ..., vy в качестве сдвигов. Это
дает Нт = где Vm — унитарный множитель в 0Я-разложении матрицы
р(Нт) = VmRmi как мы помним из (6.4.3) и (6.4.4). Здесь p(z) = (z - Vi)(z - v2) •••
(z - Vj). Преобразующая матрица Vm используется для обновления Qm до Qm =
= QmVm. Если мы воспользуемся теоремой 6.4.11, то получим
p(A)Qm = QnVnRm + Ej = QmRm + EP (f>AA2)
Поскольку нас интересует первый столбец, умножим это равенство на eh
чтобы получить
P(A)Qmet = QmRmex + Ерх.
Левая часть этого равенства представляет собой p(A)qx. В правой части мы
имеем Rme{ = аеь где а = гп * 0, поскольку Rm есть верхняя треугольная матрица.
Следовательно, первый член правой части представляет собой a qx. Второй член
равен нулю, поскольку равен нулю первый столбец матрицы Ej. Таким образом,
Q\ = ₽Р(Я)^1 (6.4.13)
где р = а”1. Это и было нам нужно. Поскольку в точках ..., v. полином p(z)
равен нулю, то вблизи этих точек р будет принимать малые значения, а вдали
от них — большие. Возвращаясь еще раз к (6.4.1), видим, что собственные век-
торы, соответствующие собственным значениям вблизи vp ..., v. будут подавле-
ны, а собственные векторы, собственные значения которых далеки от ,..., vp
будут усилены.
IRA выбирает разные сдвиги для разных итераций, но предположим на вре-
мя, что сдвиги не меняются. После i итераций начальный вектор будет про-
порционален p(A)lqx в результате применения i раз преобразования (6.4.13).
Таким образом, IRA действует как степенной метод с основаниемр(А). Собст-
венные векторы, соответствующие наибольшим собственным значениям р(Х)
матрицы р(А), получат предпочтение.
Степенной метод итеририрует подпространства размерности 1. Теорема
6.4.14 (приведенная ниже) показывает, что IRA также итерирует подпростран-
ства в пространствах большей размерности. Таким образом, теорию сходимо-
сти при итерировании подпространств можно попытаться использовать при
анализе сходимости IRA. На практике итерирование подпространств является
490
Глава 6. Собственные значения и собственные векторы II
нестационарным из-за различия сдвигов, выбираемых на каждом из шагов.
Это дает возможность приспособить алгоритм к требованиям практики, т.е.
делает его гибким, но в то же время сильно усложняет анализ сходимости.
Теорема 6.4.14. Пусть итерация IRA преобразует qh qkeap(z) =
(z - Vi) ... (z - vy), где ..., vy — сдвиги, используемые в IRA. Тогда
spanf^j, ..., £,} = р(Л)8рап{^, ..., q,} при i = 1, ..., k.
Доказательство. По теореме 6.3.9 имеем span{ qx, ..., q} = /С,(Л, qx) и
span{£j, ..., q(} = /С,(Л, ^). Далее, как легко проверить, из (6.4.13) следует,
что /С/Л, qx) = р(Л)/С,(Л, q). □
Упражнение 6.4.15. Дайте другое доказательство теоремы 6.4.14 с помощью
выражения (6.4.12), используя специальную форму остаточного члена Ег □
Методы дэввдсоновского типа
Процедура Арнольди формирует подпространства возрастающей размер-
ности, добавляя по вектору на каждом шаге. Это делается таким образом,
чтобы на каждом шаге пространство было подпространством Крылова:
span{^j, ..., q^ = K,k(A,q{). Здесь мы рассмотрим методы, в которых на каждом
шаге размерность подпространства возрастает на единицу, но при этом под-
пространства Крылова не используются. В результате получится целое мно-
жество алгоритмов.
Пусть мы имеем ортогональные векторы qb ..., qk и хотим добавить к ним
qk+x. Мы хотим таким образом выбрать этот вектор, чтобы расширенное про-
странство стало улучшением текущего, т.е. заключало бы в себе лучшие при-
ближения собственных векторов. Чтобы сориентироваться, рассмотрим про-
странство, с которым мы уже имели дело. Пусть, как прежде, Qk = ... gj
и Bk - QkAQk. В процедуре Арнольди это хессенбергова матрица Нк, но те-
перь Вк не обязана быть верхней хессенберговой. Поскольку к не очень ве-
лико, можно легко вычислить собственные значения и собственные векторы
этой матрицы. Пусть (ц, х) — какая-то из собственных пар (например, с
наибольшим ц), и пусть q - Q„pc. Тогда (ц, q) есть пара Ритца матрицы А,
соответствующая подпространству span{?b ..., qk} (см. упражнение 6.3.35), и
ее можно рассматривать как приближение собственной пары матрицы А.
Норма невязки г = Aq - \iq служит показателем качества (ц, q) как прибли-
жения для собственной пары.
Несколько важных методов используют невязку при определении вектора
qk+x, порождающего новое подпространство. В каждом случае г используется
при определении второго векторам & span{^15..., qk}. Тогдаqk+x получается орто-
нормализацией Грама-Шмидта вектора s относительно qb ..., qk. Методы раз-
личаются способом получения s из г.
Самый простой способ взять s = г. Это приводит нас к методу, эквивалент-
ному алгоритму Арнольди. См. упражнение 6.4.23.
6.4. Собственные значения больших разреженных матриц, II
491
Вторая возможность - взять 5 = (D - )-1г, где D — диагональная матрица,
имеющая на главной диагонали те же элементы, что и А. Это приводит нас к ме-
тоду Дэвидсона, широко используемому в расчетах задач квантовой химии. В
этих приложениях используются симметричные матрицы чрезвычайно большо-
го порядка. Они обладают строго доминирующими главными диагоналями, т.е.
у них элементы главной диагонали намного превосходят элементы вне ее. Это
свойство очень важно для успешного применения метода Дэвидсона. Заметьте,
что вычисление s обходится весьма недорого, поскольку (D - ц7)"1 диагональна.
Третий способ выбора s приводит к методу Якоби—Дэвидсона, описанием
которого мы сейчас займемся. Если q близок к собственному вектору матрицы
А, то небольшая добавка s может сделать q + s точным собственным вектором.
Таким образом,
A(q + s) = (ц + v)(q + s), (6.4.16)
где v — небольшая добавка к числу Ритца ц. Более того, добавку можно сделать
ортогональной q, т.е. q's = 0. Метод Якоби-Дэвидсона выбирает s близким к s.
Пусть || ? || = 0(e) и | v | = 0(e), где £ < 1. Раскрывая скобки в (6.4.16), получаем
Aq + As = pq + vq + ps + vs или
(A - p/)s - qv = -r + vs.
Можно считать, что член vs незначительно влияет на решение этого урав-
нения, поскольку || vs || = О(£2). В методе Якоби-Дэвидсона в качестве s и v бе-
рется решение уравнения, полученного отбрасыванием этого члена, но с тре-
бованием выполнения условия ортогональности q's = 0. Таким образом
(А - p7)s - qv = -г, q's = 0,
или
Читателю это может напомнить метод Ньютона. К тому же это представля-
ет собой вариант итерации с отношением Рэлея (упражнение 6.4.24).
Итак, метод Якоби-Дэвидсона находит пару Ритца (ц, q) с помощью
span{^,..., qk}, вычисляет невязку г = Aq - pq, а затем решает (6.4.17), чтобы по-
лучить s (и v). Новый вектор qk+l получается ортогонализацией s относительно
qx,..., qk с помощью варианта процедуры Грама-Шмидта. Новое пространство
span{^, ..., qk+x} содержит как q, так и s, а поэтому и q + s - хорошее приближе-
ние собственного вектора.
Только что описанный алгоритм известен как «точный» вариант метода
Якоби—Дэвидсона, так как в этом случае уравнение (6.4.17) решается точно.
На практике матрица А имеет очень большие размеры, и тогда решение
(6.4.17) становится трудно выполнимой задачей. Поэтому метод Якоби—Дэ-
492
Глава 6. Собственные значения и собственные векторы II
видсона обычно используется в «неточном» варианте, т.е. (6.4.17) решается
приближенно каким-либо итеративным методом, например, одним из рас-
сматриваемых в разд. 7.9. Часто точное решение и не требуется: достаточно
грубого приближения. Единственным наказанием за использование плохого
приближения является плохое качество вектора, добавляемого к пространству.
Это означает, что для достижения необходимой точности приближения собст-
венных пар потребуется выполнить большее число шагов. Мы не против вы-
полнить много шагов, если стоимость каждого из них не слишком велика. Су-
ществует много вариаций на эту тему и несколько способов представления
системы уравнений (6.4.17). Дополнительную информацию можно найти в [3]
или в превосходной статье [62].
На каждом шаге алгоритма Якоби-Дэвидсона нужно выбрать одну из к пар
Ритца, где к — текущая размерность пространства. Выбор пары для следующе-
го шага зависит от нашей цели. Если нужно найти наибольшие собственные
значения матрицы Л, то следует выбирать наибольшее число Ритца. Если, с
другой стороны, мы хотим найти внутренние собственные значения в окрест-
ности числа т, то имеет смысл выбрать число Ритца, ближайшее к т. Тем не
менее, в этом случае лучше иметь дело с гармоническими числами Ритца. См.
упражнение 6.4.25.
Каждый шаг метода Дэвидсона или Якоби-Дэвидсона добавляет новый
вектор. После многих шагов у нас может возникнуть желание отбросить мало-
эффективные векторы и сохранить только небольшое пространство, содержа-
щее лучшие оценки собственных векторов, как это и делается в IRA. В нашей
же ситуации это делается легче, чем в IRA: формируемые нами подпростран-
ства не являются подпространствами Крылова и нам не надо заботиться о со-
хранении этого свойства. Дальше мы может действовать, например, следую-
щим образом. Пусть из имеющихся m = k+jортонормированных векторов, яв-
ляющихся столбцами матрицы Q е С"х/", мы хотим отбросить j столбцов и
оставить ^-мерное подпространство. Пусть В = Q*AQ. Найдем разложение
Шура В = UTlf, где U — унитарная матрица, а Т - верхняя треугольная. Эле-
менты главной диагонали Т являются собственными значениями матрицы В,
которые в свою очередь являются числами Ритца матрицы А относительно те-
кущего подпространства. Их можно распложить в Тв любом порядке. Предпо-
ложим, что мы упорядочили их так, что
гр _ 7ц ^12
1° т22]
где Тп е Скхк содержит к «наиболее перспективных» чисел Ритца, именно те,
которые мы хотим сохранить. Пусть Q = QU и разбиение Q согласовано с Т, т.е.
Q = [Q1Q2L где Q\ е Тогда = Q*A Qlf откуда следует, что собственные
значения матрицы Тп являются числами Ритца матрицы Л относительно под-
пространства Если теперь мы оставим Qx и отбросим Q2, то получим ис-
комые числа Ритца и пространство, содержащее соответствующие векторы
Ритца. Этот процесс называется очищением.
6.4. Собственные значения больших разреженных матриц, II
493
Упражнение 6.4.18. Проверьте утверждения предыдущего абзаца. В частно-
сти, покажите, что Гп = Qx. □
Если ищется более одного собственного значения, часто случается, что не-
которые собственные значения достигаются раньше других. В этом случае по-
является инвариантное подпространство, которое хотелось бы сохранить, пока
исследуются инвариантные подпространства большей размерности. Надо про-
сто выделить их в пространство уже достигнутых векторов. Мы просто переме-
щаем достигнутые векторы в начало нашего базиса (если они еще не там) и
храним их там.
Дополнительные упражнения
Упражнение 6.4.19. Встроенная функция MATLAB’a eigs вычисляет не-
сколько собственных значений разреженной (или полной) матрицы по методу
Арнольди с неявным перезапуском (IRA). Наберите в MATLAB’e help eigs,
чтобы узнать, как работает команда eigs. Воспользуйтесь eigs, чтобы вычис-
лить десять собственных значений матрицы west0479, ближайших к т = 6 + О/.
Уровень значимости невязки возьмите равным 10"16. Как много итераций вы-
полнит eigs? Больше или меньше работы потребуется этому методу в сравне-
нии с прямым методом Арнольди, использующим стратегию сдвига с обраще-
нием? □
Упражнение 6.4.20. Пусть ун ..., vk — собственные векторы матрицы А и
q = c,Vl + ... + ckvk.
(а) Покажите, что при j = 1, 2, 3,... мы имеем A!q е span{vb..., vk}. Докажите,
что подпространства Крылова K,m(A,q) лежат в span{vb ..., vj при всех т.
(Ь) Покажите, что lCk(A,q) инвариантно относительно А. Докажите, что ал-
горитм Арнольди с начальным вектором q остановится не позднее к шагов на
span{^, ..., qm], (т < к) - инвариантном подпространстве, содержащемся в
span{V|, vj.
(с) Пусть Лц, ..., Хк — собственные значения матрицы Л, соответствующие
собственным векторам vb ..., vk. Покажите, что если все X, различны и су * 0 при
всех j , то q, Aq, A2q, ..., Ак~ lq - линейно независимы, а алгоритм Арнольди ос-
тановится точно через к шагов на span{^, ..., qk} = K,k(A,q) = span{vb ..., vk}.
(d) Предположим, что некоторые из собственных значений ..., Хк равны.
Покажите, что если среди ..., кк имеется лишь s различных собственных
значений, s < к, то q можно представить в виде линейной комбинации s или
менее собственных векторов, а алгоритм Арнольди остановится не позднее,
чем через s шагов. □
Упражнение 6.4.21. Пусть j — неотрицательное целое число. Матрица В на-
зывается J-хессенберговой, если Ь1к = 0 для любых i-k> j. Говорят, что/-хессен-
бергова матрица является правильной /-хессенберговой матрицей, если btJ ф 0
для любых i - к= j.
(а) Как обычно называются О-хессенбергова и 1-хессенбергова матрицы?
Приведите два примера 2-хессенберговых матриц размерности 5, одна из ко-
торых была бы правильной 2-хессенберговой матрицей, а другая нет.
494
Глава 6. Собственные значения и собственные векторы II
(Ь) Покажите, что произведение правильной /-хессенберговой и пра-
вильной ^-хессенберговой матриц есть правильная (/ + Л)-хессенбергова
матрица.
(с) Покажите, что если В е С"хт есть/-хессенбергова матрица (j <т), то ее
первые т - j столбцов линейно независимы.
(d) Покажите, что если Нт — правильная верхняя хессенбергова матрица и
р — полином степени/, скажемp(z) -(z- V\)(z- v2)... (z- vy), top(HJ есть пра-
вильная верхняя /-хессенбергова матрица.
(е) Разобьем 0Л-разложение р(Н„^ = VmRm из (6.4.4) следующим образом:
[5, Вг\ = [К, Г2Р" М
_ U А22_
где Bl е Стху, V{ е С"ху и е СЧ На основе п. (с) и (d) докажите, что столбцы
матрицы В{ линейно независимы. Покажите, что отсюда следует, что не
вырожденна и V{ = B{R^.
(f) Выведите из п. (е), что Vm есть правильная/-хессенбергова матрица. До-
кажите, что первые т - j - 1 элементов вектора-строки е? Vm равны нулю, а
(т -/)-й элемент (который в (6.4.6) был обозначен через Р) не равен нулю. □
Упражнение 6.4.22. Докажите теорему 6.4.11 индукцией по /:
(а) Покажите, что теорема выполняется при/= 1. В этом случаеp(z) = a^z-Vj),
где cq - отличная от нуля постоянная.
(Ь) Покажите, что теорема выполняется при / = 2. В этом случае p(z) -
= a2(z - vO(z - v2)- Этот шаг только для тренировки: для доказательства тео-
ремы он не нужен.
(с) Покажите, что если теорема справедлива для полинома степени/ - 1, то
она выполняется и для полинома степени/. □
Упражнение 6.4.23. Пусть v — вектор Ритца из span{^b..., qk}. Тогда v = cxqx +
... + ckqk для некоторых постоянных cXi..., ck. Обычно ck ф 0. Рассмотрим метод,
который расширяет подпространство на каждом шаге, выбирая пару Ритца
(p,v), вычисляя невязку г = Aq - \xq и ортонормируя ее относительно ранее най-
денных векторов. Индукцией по к покажите, что если ск ф 0 на каждом шаге, то
span{^b ..., qk} - !Ck(A,q) при всех к. Таким образом, этот метод эквивалентен
процедуре Арнольди. Что произойдет, если на каком-то шаге ск = 0? □
Упражнение 6.4.24. Пусть (p,v) - пара Ритца матрицы А из некоторого под-
пространства. Покажите, что ц = q'Aq/q'q. Таким образом, ц является отноше-
нием Рэлея вектора q. Покажите, что если s получен из уравнения Якоби-Дэ-
видсона (6.4.17), то q + s = v(A - \xl)~lq, Следовательно, q + s есть результат од-
ной итерации с отношением Рэлея с начальным вектором q. □
Упражнение 6.4.25. Здесь мы дадим определение гармонических пар Ритца.
Будем использовать те же обозначения, что и в упражнении 6.3.35. Пусть т -
комплексная (целевая) величина, которая не является собственным значением
матрицы А. Тогда ц есть гармоническое число Ритца матрицы А с целевой вели-
чиной т относительно пространства 5, если (ц - т)-1 есть обычное число Ритца
6.5. Чувствительность собственных значений и собственных векторов
495
матрицы (А - т/)"1. Из упражнения 6.3.35 мы видим, что ц удовлетворяет этому
условию тогда и только тогда, когда (ц - т)"1 является собственным значением
матрицы Q*(A - r!)~lQ. Хотя это небольшая к х ^-матрица, но и ее вычисление
может представить некоторые трудности, если А имеет большие размеры. Ока-
зывается, что легче получить гармонические числа, соответствующие различ-
ным пространствам. Пусть U = (А - т7)5.
(а) Пусть и е С”. Покажите, что и е U тогда и только тогда, когда существует
вектор х g С* такой, что и = (А - t/)Qx. Покажите также, что вектор х, соответ-
ствующий некоторому фиксированному вектору ueU, определен единствен-
ным образом.
(Ь) Покажите, что ц есть гармоническое число Ритца матрицы А с целевой
величиной т относительно пространства U тогда и только тогда, когда сущест-
вует вектор и U такой, что
(А - т/)~1и - (ц - т)“1м ± U.
И наоборот, покажите, что это соотношение выполняется тогда и только
тогда, когда существует такой вектор х е С*, что
(А - \jJ)Qx 1 U.
Пусть v = Qx. Мы называем v гармоническим вектором Ритца, соответствую-
щим гармоническому числу Ритца ц. Обратите внимание, что v принадлежит
5, а не U.
(с) Пусть Y = (А - tI)Q е Спхк. Покажите, что ц есть гармоническое число
Ритца (с т и 14), соответствующее гармоническому вектору Ритца v = Qx, тогда
и только тогда, когда
У*Гх = (ц - т)Г0х.
Это равенство является примером обобщенной задачи на собственные зна-
чения (см. разд. 6.7). Поскольку матрицы /Уи YQ имеют небольшие размеры
(к х к), то ее решение требует небольших затрат.
(d) Покажите, что ц есть гармоническое число Ритца (с т и U) тогда и толь-
ко тогда, когда число ц - т является собственным значением матриц
(YY)(YQ)~X и (YQ)~\YY), если, конечно, (/Q)"1 существует. □
6.5. Чувствительность собственных значений
и собственных векторов
Поскольку матрица А, собственную систему которой мы пытаемся опреде-
лить, никогда не известна точно, важно изучить влияние возмущений в Л на ее
496
Глава 6. Собственные значения и собственные векторы И
собственные значения и собственные векторы. В этом разделе мы рассмотрим
вопрос о том, насколько отличаются собственные значения и собственные
векторы матрицы А + 8А и матрицы Л, если || ЗЛ || / || Л || мало. Этот вопрос дос-
тоин рассмотрения, даже если бы нас интересовала только неопределенность в
Л, но, конечно, существуют и другие причины для этого. Мы отметили в гл. 3,
что любой алгоритм, преобразующий матрицу посредством вращений и отра-
жений, как это было описано в разд. 3.2, - обратно устойчив. Неявные 0Я-ал-
горитмы принадлежат этому классу. Это означает, что неявный 0Я-алгоритм
находит точные собственные значения матрицы Л + ЗЛ, когда || ЗЛ ||/|| Л || мало.
Если мы сможем показать, что собственные значения матриц Л + ЗЛ и Л близ-
ки, то это будет означать правильность наших ответов. Конечно, при этом мо-
жет оказаться, что мы не всегда можем гарантировать получение близких к
точным собственных значений: точность определяется величиной чисел обу-
словленности.
С этим связан вопрос о невязках. Предположим, что мы вычислили
приближенное собственное значение X и соответствующий собственный
вектор v, и хотим знать, являются ли они достаточно точными. Для этого,
естественно, надо вычислить невязку г = Av - Xv и проверить, мала ли она.
Предположим, что || г || мала. Гарантирует ли это точность X и v? Как пока-
зывает следующая теорема, и этот вопрос сводится к вопросу о чувстви-
тельности Л.
Теорема 6.5.1. Пусть А е C"xw, v является приближенным собственным векто-
ром матрицы А с нормой || v ||2 = 1, X - соответствующим приближенным собст-
венным значением, аг — невязкой: г = Av- kv. Тогда X и v являются точной собст-
венной парой некоторой возмущенной матрицы А + ЗЛ, где || ЗЛ ||2 = || г ||2.
Доказательство. Если вы выполнили упражнение 6.3.36, то уже доказали
теорему. Пусть ЗЛ = -rv. Тогда || ЗЛ ||2 = || г ||21| v ||2 = || г ||2 и (Л + 8Л)у = Av- rvv =
-Av-r-Kv. □
Упражнение 6.5.2. Проверьте, что || rv ||2 = || г ||2|| v ||2 при всех г, v е С”. (В ле-
вой части этого равенства мы имеем матричную 2-норму, а в правой части -
векторную 2-норму, т.е. евклидову норму.) □
Чувствительность собственных значений
Прежде всего, собственные значения матрицы непрерывно зависят от ее
элементов. Это происходит потому, что коэффициенты характеристического
полинома являются непрерывными функциями элементов матрицы, а нули
этого полинома, т.е. собственные значения, непрерывно зависят от его ко-
эффициентов. См. [81] и приведенные там ссылки1. Это означает, что мож-
но достичь сколь угодно малых отклонений для всех собственных значений,
как бы они ни были разбросаны, просто сделав возмущение матрицы доста-
точно малым. Но все сказанное слишком расплывчато. Полезнее было бы
иметь число к такое, что после возмущения матрицы на е возмущение соб-
ственных значений не превысит ке, по крайней мере для малых е. В этом
1 Два других подхода рассмотрены в [15] и [73].
6.5. Чувствительность собственных значений и собственных векторов
497
случае к будет служить в качестве числа обусловленности собственных зна-
чений. Это и есть суть нашей следующей теоремы, принадлежащей Бауэру и
Файку.
Теорема 6.5.3. Пусть А е С"ХЛ — полупростая матрица, и предположим, что
V^AV = D, где V — невырожденная матрица, a D — диагональная. Пусть
8J е Спхп — некоторое возмущение матрицы А, а ц- собственное значение матри-
цы А + ЗА Тогда А имеет собственное значение X такое, что
|ц- М < к,(И||8Л II, (6.5.4)
при 1 < р < ОО.
Эта теорема показывает, что kp(V) (определенное в разд. 2.2) есть общее
число обусловленности для спектра матрицы А. Можно сделать (6.5.4) безраз-
мерным, разделив обе его части на || А ||,, но это было бы излишним усложне-
нием.
Доказательство. Пусть 8D = И’1(8Л)И Тогда
|| 8D \\р < || Г1 ||,|| 8Л ||,|| И||, = к,(ИН 8J ||,. (6.5.5)
Поскольку D + 8D подобна А + 8Л, ц есть собственное значение матри-
цы D + 8D. Пусть х - отвечающий ему собственный вектор. Если ц ока-
жется собственным значением матрицы А, теорема доказана, так что пред-
положим обратное. Тогда ц/ - D невырожденна и уравнение (D + 8D)x = рх
можно переписать как х = (ц/ - D)~'(8D)x. Таким образом, мы имеем
|| х ||, < || (ц/ - D)1 ||, || 8D ||, || х ||,. Исключая множитель || х ||, и переупорядо-
чивая члены, находим, что
||(g/-Z))-,||;1 5 ||8Р||,. (6.5.6)
Матрица (ц/- D)1 — диагональная с элементами (ц - X,-)-1 на главной диаго-
нали, где Хь ..., Хя - собственные значения для А. Отсюда легко следует, что
||(|1/- Z>)_|||2 = | ц - X |ч, где X — собственное значение матрицы А, ближайшее к
ц. Таким образом, (6.5.6) можно записать в виде
| ц - X | < II II,.
Комбинируя это неравенство с (6.5.5), получаем требуемый результат. □
Упражнение 6.5.7. Проверьте следующие утверждения, использованные
при доказательстве теоремы 6.5.3:
(а) Пусть А - диагональная матрица с элементами 81? ..., 8Я на главной диа-
гонали. Проверьте, что при 1 < р < оо || А || = max | 8. |.
(Ь) Проверьте, что ||(pZ- Л)"1!!, = | ц - X |~1, где X - собственное значение
матрицы D, ближайшее к ц. □
498
Глава 6. Собственные значения и собственные векторы II
Столбцы матрицы преобразования V представляют собой собственные
векторы для Л, так что число обусловленности кр(И) является мерой отклоне-
ния от линейной зависимости этих векторов: чем больше число обусловлен-
ности, тем ближе они к линейной зависимости. С этой точки зрения разумно
приписать бесконечное число обусловленности собственным значениям де-
фектной матрицы, так как эти матрицы могут не иметь даже п линейно неза-
висимых собственных векторов. Обоснование такой точки зрения дается в
упражнении 6.5.32.
Если А — эрмитова или даже нормальная матрица, то можно требовать, что-
бы Кбыла унитарной (ср. теоремы 5.4.12 и 5.4.15). Унитарная К удовлетворяет
условию к2(И = 1, так что имеет место следующее заключение.
Следствие 6.5.8. Пусть А е С”х" — нормальная матрица, 8Л — возмущение
этой матрицы, а ц — собственное значение матрицы А + 8Л. Тогда А имеет соб-
ственное значение X такое, что
I Н - X | < || 8Л ||2.
Следствие 6.5.8 можно резюмировать, сказав, что собственные значения
нормальной матрицы отлично обусловлены. Если нормальная матрица слегка
возмущена, то вызванное этим возмущение собственных значений не превы-
шает возмущения элементов матрицы.
Недостаток теоремы 6.5.3 заключается в том, что она дает единственное об-
щее число обусловленности для всех собственных значений. В действительно-
сти некоторые из них являются хорошо обусловленными, тогда как другие мо-
гут быть плохо обусловлены. Это справедливо и для полупростых, и для де-
фектных матриц. Поэтому важно получить свое число обусловленности для
каждого из собственных значений. Мы опять ограничимся рассмотрением
лишь полупростых матриц, в действительности предполагая различие собст-
венных значений.
Наше рассмотрение индивидуальных чисел обусловленности основано на
понятии левого собственного вектора. Пусть X — собственное значение матри-
цы А. Тогда матрица А - X/ вырожденна, так что существует такой ненулевой
х е С", что (А - kl)x = 0, т.е.
Ах = Хх.
(6.5.9)
К тому же существует не равный нулю у е С" такой, что у‘(А - ХТ) = О, т.е.
у* А = Ху*.
(6.5.10)
Любой отличный от нуля у, удовлетворяющий (6.5.10), называется левым
собственным вектором матрицы А, отвечающим собственному значению X. В
действительности мы будем несколько небрежно обращаться с терминологи-
ей, называя левым собственным вектором матрицы А и сам вектор у, как бы
не различая у и у. Более того, чтобы избежать путаницы, будем каждый
6.5. Чувствительность собственных значений и собственных векторов
499
отличный от нуля вектор х, удовлетворяющий (6.5.9), называть правым соб-
ственным вектором матрицы А. Левый собственный вектор матрицы А явля-
ется просто (сопряжено транспонированным) правым собственным вектором
матрицы А\
Теорема 6.5.11. Пусть А е С"х” имеет различные собственные значения Хь Х2,
..., Х„ с соответствующими линейно независимыми правыми собственными век-
торам xh ..., хп и левыми собственными векторам ..., у„. Тогда
♦ f=0, если/*/,
У ixi 5
J 0, если i = j.
(Две последовательности векторов, удовлетворяющие этим соотношениям, на-
зываются биортогональными.)
Доказательство. Пусть i *J. Из равенства Лх,- = Хрс, следует, что уAxt - ^у^х^
С другой стороны, уjA = \j9 так что у *Ах, = \у*х. Таким образом, Х(у *х, = Хуу *х.
Поскольку X,- ф то у *х, = 0.
Остается показать, что у*х, * 0. Предположим, что у/х, = 0, и покажем,
что это приводит к противоречию. Из нашего предположения и первой час-
ти доказательства, следует, что у'хк = 0 при к = 1, ..., п. Векторы хь ..., хп
линейно независимы, так что они образуют базис в С”. Заметьте, что у*хк
представляет собой просто комплексное внутреннее произведение (хк9 у^,
так что у, ортогонален х1? ..., х„, а, следовательно, и любому вектору в С" . В
частности, он ортогонален самому себе, так что у, = 0, а это противоречит
его определению. □
Следующая теорема устанавливает обещанные числа обусловленности для
каждого из собственных значений. Сначала опишем круг объектов, с которы-
ми имеет дело теорема. Пусть матрица Л е Спхп имеет п различных собственных
значений и X - одно из них, а ЗЛ - небольшое возмущение и || ЗЛ ||2 = £. По-
скольку собственные значения матрицы А различны и непрерывно зависят от
ее элементов, можно утверждать, что для достаточно малых е матрица А + ЗЛ
будет иметь точно одно собственное значение X + 8Х, близкое к X. В теореме
6.5.12 предполагается выполнение всех этих условий.
Теорема 6.5.12. Пусть матрица А е Спхп имеет п различных собственных зна-
чений. Пусть X — собственное значение с соответствующими правым и левым
собственными векторами хи у, нормированными так, что || х ||2 = || у ||2 = 1. Пусть
s = ух. (Тогда по теореме 6.5.11 s ф 0.) Определим
= 1 _ 1
И |/х|
Пусть 8Л — небольшое возмущение, удовлетворяющее условию || 8Л ||2 = £,
и X + ЗА, - собственное значение матрицы А + ЗЛ, приближающее X. Тогда
| 8Х | < кг + <9(е2).
500
Глава 6. Собственные значения и собственные векторы II
Таким образом, к является числом обусловленности собственного значе-
ния X1.
Теорема 6.5.12 имеет силу для любого простого собственного значения , не-
зависимо от того, является матрица полупростой или нет.
Доказательство. Из теоремы 6.5.3 мы знаем, что | 5Х | < кр(И)е. Это говорит
о том, что X не просто непрерывно зависит от Л, но является непрерывной
по Липшицу. Это можно кратко записать как | 8Х | = 0(e). Оказывается, что
это верно и для собственного вектора: А + 8А имеет такой собственный век-
тор х + 8х с собственным значением X + 8Х, что 8х = 0(e). Это является след-
ствием того, что X есть простое собственное значение. Доказательство см. в
[81, с. 67]. Разлагая выражение (А + 8Л)(х + 8х) = (X + 8Х)(х + 8х) и используя
то, что Ах - Хх, получим
(8Л)х + Л(8х) + 0(е2) = (8Х)х + Х(8х) + 0(е2).
Умножая слева на / и используя равенство у*Л = X/, будем иметь
/(8Л)х + 0(е2) = (8Х)/х + 0(е2),
и поэтому
SX = + 0(Ег).
У X
Взяв абсолютные значения и замечая, что | у*(8Л )х | < || у ||2|| 8Л ||2|| х ||2 = е , за-
вершим доказательство. □
Соотношение между к и общим числом обусловленности, приведенным в
теореме 6.5.3, исследуется в упражнении 6.5.29.
Упражнение 6.5.13. Покажите, что число обусловленности к всегда удовле-
творяет условию к > 1. □
Упражнение 6.5.14. Пусть Л е С”х" - эрмитова матрица (Л* = Л) и х - правый
собственный вектор, отвечающий собственному значению X.
(а) Покажите, что х является также и левым собственным вектором матри-
цы Л.
(Ь) Покажите, что число обусловленности собственного значения X есть
к = 1.
Это еще раз подтверждает, что собственные значения эрмитовой матрицы
идеально обусловлены. Результаты этого упражнения выполняются и для нор-
мальных матриц. См. упражнение 6.5.29. □
1 X есть простое собственное значение, когда его алгебраическая кратность равна 1. Следова-
тельно, х и у выбираются из одномерного собственного пространства. Это и то, что они имеют
норму, равную 1, гарантирует их единственность с точностью до комплексного множителя с моду-
лем 1. Следовательно, и 5 определено с точностью до комплексного множителя с модулем 1, а к
определено единственным образом, т.е. оно - хорошо определенное.
6.5. Чувствительность собственных значений и собственных векторов
501
Упражнение 6.5.15. 10 х 10-матрица
10 10
9 10
8 10
2 10
1
есть уменьшенный вариант примера из [81, с. 90]. Все элементы ниже главной
диагонали и выше наддиагонали равны нулю. Очевидно, собственные значе-
ния равны 10, 9, 8,..., 2, 1. Мы нашли правые и левые собственные векторы и с
их помощью получили числа обусловленности, приведенные в табл. 6.2. Соб-
ственные значения приводятся парами, поскольку они обладают некоторой
симметрией. Обратите внимание, что числа обусловленности довольно вели-
ки, но наибольшие собственные значения обусловлены не так плохо, как зна-
чения внутри спектра. Пусть А& — матрица, отличающаяся от А лишь тем, что
ее элемент (10,1) равен в, а не 0. Это возмущение порядка е должно привести к
возмущению грубая оценка которого равна к8. В табл. 6.3 приведены собст-
венные значения матрицы Ае для 8 = 10"6, найденные с помощью 0Л-алгорит-
ма. Там также показано, как сильно эти собственные значения отклоняются от
соответствующих значений матрицы А, и для сравнения приводятся числа к.е.
Как можно видеть, числа kz8 дают хорошую оценку порядка величин фактиче-
ских возмущений. Заметьте также, что наибольшие собственные значения все
еще довольно близки к исходным значениям, тогда как внутренние отклоня-
ются довольно далеко. Можно ожидать, что если сделать 8 намного большим,
Таблица 6.2. Числа обусловленности собственных значений матрицы А из упр. 6.5.15
Собственное значение (\) Число обусловленности (к()
10,1 4.5 х 103
9,2 3.6 х 104
8,3 1.3 х ю5
7,4 2.9 х 105
6,5 4.3 х 105
Таблица 6.3. Сравнение собственных значений А и Аг для е = 10-6
Собственные значения для А 10, 1 9,2 8,3 7,4 6,5
Собственные значения для Ле 10.0027 .9973 8.9740 2.0260 8.0909 2.9091 6.6614 4.3386 6.4192 4.5808
Возмущения .0027 .0260 .0909 .3386 .4192
К,Е .0045 .0361 .1326 .2931 .4281
502
Глава 6. Собственные значения и собственные векторы II
некоторые из собственных значений станут совсем неузнаваемыми. Так, для
е = 10"5 собственные значения матрицы Ае, вычисленные с помощью 0А-алго-
ритма, таковы:
10.026 8.68 ± .29/ 6.64 ±.98/
.974 2.32 ± .29/ 4.36 ± .98/
Можно как-то распознать лишь пару бывших наибольших собственных
значений. Другие соединяются в пары, чтобы образовать комплексно сопря-
женные собственные значения. Закончим этот пример двумя замечаниями.
1) Мы также вычислили общее число обусловленности k2(F), введенное в
теореме 6.5.3, и нашли, что оно равно приблизительно 2.5 х 106. Конечно,
это сильно превосходит все частные числа обусловленности. 2) Плохую обу-
словленность собственных значений матрицы А можно объяснить в терминах
отклонения от нормальности этой матрицы. Из следствия 6.5.8 мы знаем, что
собственные значения нормальной матрицы вполне обусловлены, и разумно
ожидать, что матрица, в некотором смысле близкая к нормальной, будет
иметь хорошо обусловленные собственные значения. В упражнении 5.4.41
мы нашли, что верхняя треугольная матрица нормальна тогда и только тогда,
когда она является диагональной. Наша матрица оказывается далекой от
нормальной, так как она является верхней треугольной, но далеко не диаго-
нальной. О таких матрицах говорят, что они имеют сильное отклонение от
нормальности. □
Упражнение 6.5.16. MATLAB-команда condeig — вариант команды eig -
определяет числа обусловленности в соответствии с теоремой 6.5.12. Наберите
help condeig, чтобы узнать, как пользоваться этой командой. Используйте
condeig и проверьте числа из табл. 6.2. □
Чувствительность собственных векторов
При доказательстве теоремы 6.5.12 использовался тот факт, что если А имеет
различные собственные значения, то ее собственные векторы являются функ-
циями от элементов этой матрицы, непрерывными по Липшицу. Это означает,
что если х есть собственный вектор матрицы А, то любая слегка возмущенная
матрица А + 8А будет иметь такой собственный вектор х + 8х, что || 8х ||2 « кхе.
Здесь £ = || 8/11|2, а кх есть положительная постоянная, независимая от 8J. Это
нетрудно доказать, используя понятия классической теории матриц и теории
аналитических функций, см. [81, гл. 2]. Примем на веру существование кх и
исследуем ее значения, поскольку кх есть число обусловленности собственного
вектора х.
Как мы увидим, найти числа обусловленности собственных векторов труд-
нее, чем для собственных значений, как в теории, так и на практике. Будем
продвигаться постепенно, не пытаясь вникать в каждую деталь и придержива-
ясь [66]. Важное достоинство этого подхода состоит в том, что его можно
обобщить на случай чисел обусловленности для инвариантных подпро-
странств. См. [66].
6.5, Чувствительность собственных значений и собственных векторов
503
Для начала предположим, что наша матрица, назовем ее Т, является блоч-
ной верхней треугольной,
О Т
(6.5.17)
где все собственные значения матрицы f отличны от X. Таким образом, X
есть простое собственное значение матрицы Т и имеет одномерное собст-
венное пространство, натянутое на е{ = [1, 0, ..., 0]г. Предположим, что
мы возмутили Т, изменив лишь ее нулевую часть. Таким образом, мы по-
лагаем
У т
(6.5.18)
где норма ||у||2 мала. Предположим, что ||8Т||2/|| Т||2 = ||у||2/|| Г||2 = в « 1.
Тогда, если £ достаточно мало, Т + 8Т имеет собственное значение X + 8Х,
близкое к X, и отвечающий ему собственный вектор * , близкий к ер отку-
да следует, что ||z||2 мала. Наша цель - узнать, насколько мала величина
|| z ||2. Более точно, мы хотели бы получить такое число обусловленности к,
чтобы было || z ||2 < К£.
Поэтому напишем уравнение для собственного вектора, которому должна
удовлетворять искомая собственная пара матрицы Т + 87? Имеем
X
У
Wr"l Г1
(X + 8Х),
(6.5.19)
1
Z
что можно записать в виде двух отдельных уравнений. Первое из них скаляр-
ное, и из него сразу следует, что
8Х = wTz. (6.5.20)
Если мы подставим это во второе из уравнений (6.5.19), то получиму + Tz =
z (X + wrz), которое можно переписать как
(Т - kl)z = -у + z(wTz).
(6.5.21)
Это нелинейное уравнение, которое, в принципе, можно решить относи-
тельно z (см. [66]). Оно нелинейно, поскольку в члене z(wTz) компоненты век-
тора z умножаются на его же компоненты. Нелинейность могла бы усложнить
решение уравнения, но оказывается, что на нее можно не обращать внимание.
Поскольку || г || = 0(e), то || z(wTz) || = О(в2), так что этим членом можно пренеб-
504
Глава 6. Собственные значения и собственные векторы И
речь. Следовательно, учитывая невырожденность f - А/, можно умножить
(6.5.21) на (Т - А/)-1, и тогда
Z = -(Т - МУ'у + 0(£2).
Поэтому
II z ||2 < ||(f - X/)-1 ||2||у ||2 + О(е2). (6.5.22)
Этот результат сразу приводит к следующей лемме, дающей число обуслов-
ленности собственного вектора е{.
Лемма 6.5.23. Пусть Т — блочная треугольная матрица вида (6.5.17), где X
отличается от собственных значений матрицы Т, и Т+ЪТ — возмущенная мат-
рица Т, имеющая специальную форму (6.5Л8), причем || 8Т ||2/ || Т||2 = е. Тогда,
при достаточно малом г, Т+ 6Тимеет собственный вектор е{ + 8v такой, что
|| 8v ||2 < ( ||(7 - U)’1 ||2|| 7 ||2)е + О(е2).
Таким образом,
IK7-1/)"1 ||2|| 7||2
есть число обусловленности собственного вектора е{ относительно возмущения
матрицы Т, имеющего специальную форму (6.5.18).
Доказательство. Поскольку II 8v ||2 = || z ||2 и || 571|2 = || у ||2, требуемый резуль-
тат сразу следует из (6.5.22). □
Уместно сделать пару замечаний. 1) Это рассмотрение дает также выраже-
ние для возмущения собственного значения X, а именно (6.5.20). Связь между
этим выражением и числом обусловленности, установленным в теореме 6.5.12,
анализируется в упражнении 6.5.34. 2) Из уравнения (6.5.20) сразу следует не-
равенство | ЗА, | < || w ||21| z ||2, которое наводит на (правильную) мысль, что норма
w влияет на чувствительность собственного значения X. Хотя w не упоминается
в лемме 6.5.23, он влияет и на чувствительность собственного вектора: в част-
ности, он определяет, насколько мало должно быть е, чтобы лемма оставалась
справедливой. Подробности можно найти в [66]. (В своем анализе мы исклю-
чили w, заменив z(wTz) на О(б2).)
Рассмотрим теперь общую матрицу А с простым собственным значением X и
соответствующим собственным вектором х, нормированным так, что ||х||2 = 1.
Пусть 8Л есть такое возмущение, что || 8Л ||2/|| А ||2 = е « 1. Тогда А + 8Л имеет
собственный вектор х + 8х, близкий к х. Мы стремимся найти верхнюю грани-
цу для II 5х ||2/ II х ||2 = II 5х ||2.
Пусть V — произвольная унитарная матрица, первым столбцом которой яв-
ляется х, и 7 = V~'AV. (Например, мы можем взять разложение Шура матрицы
А. См. теорему 5.4.11.) Тогда 7 примет вид
т 1 wT
0 7 ’
6.5. Чувствительность собственных значений и собственных векторов
505
где t имеет собственные значения, отличные от X. Пусть 8 Г = К18ЛИ Тогда
Л + 8Л = Г(74 ЗТ)^1 и || 8Т||2/1| Т||2 = || ЗЛ ||2/|| А ||2 = г. Записывая
А» + 8/11
У
т + ЬТ =
w т + 8w т
f +8Т
получаем | 8ГН | < || 8 Г ||2, || 8Т ||2 < || 871 ||2 и || у ||2 < || 8Т ||2. Если £ достаточно мало,
то X + 8/н отличается от всех собственных значений матрицы Т+ 8Т и можно
применить лемму 6.5.23 к матрице
f =
X + 8/| ।
О
wT+8wr
748Т
О
У
Возмущение 8 =
дает 74 87 = 74 87? Мы приходим к заключению,
что 74 87 имеет собственный вектор е{ + 8v такой, что
II Sv ||2 < (||(Г + ST - (X + Ik II ПЬ) S2- + О(е2).
Пусть теперь 8х = F8v. Поскольку, кроме того, х = Jfej (первый столбец мат-
рицы V), имеем х + 8х = + 8v). Так как е{ + 8v есть собственный вектор мат-
рицы 74 ЗТ х + 8х является собственным вектором матрицы А + 8Л. Унитарное
преобразование V сохраняет евклидову норму и || у ||2 < || 8Л ||2, так что
М- * (Н(Г + - (X + 8t,,)/)-1 ||2|| А ||2) Ml + О(£2),
||х||2 1ИН2
если £ достаточно мало. Этот результат склоняет нас к тому, что можно ис-
пользовать
||(f +5f - (X + 8/11)7)“1||21| Л ||2
как число обусловленности для собственного вектора х. Его недостаток, оче-
видно, в том, что оно зависит от 87н и 8Т — величин, которые мы не знаем и не
сможем найти. Поскольку они малы, мы их просто отбросим. Таким образом,
мы принимаем
||(f - XZr'HJM ||2 (6.5.24)
в качестве числа обусловленности для х.
Вычисление числа обусловленности (6.5.24) - не простая задача. Требует-
ся найти не только подобие разложению Шура А - VTV~X, но еще и вычис-
506
Глава 6. Собственные значения и собственные векторы II
лить ||(Г - X/)"1||2. Последнее стоит очень дорого. На практике можно оце-
нить эту величину так, как это делалось для || Л"11| в конце разд. 2.2, и таким
образом получить оценку числа обусловленности. Обычно эта оценка доста-
точно хороша, поскольку нас интересует лишь порядок величины числа обу-
словленности, а не точное значение. Программа оценки числа обусловленно-
сти для этой задачи включена в пакет LAPACK [1].
Какие общие выводы о числе обусловленности можно получить из (6.5.24)?
Если мы используем разложение Шура А = K7V"1 (теорема 5.4.11), то f оказы-
вается верхней треугольной матрицей, на главной диагонали которой находят-
ся собственные значения матрицы Л, отличные от X. Тогда (f - X/)"1 также яв-
ляется верхней треугольной и на ее главной диагонали находятся элементы
вида (X, - X)”1, где Xz - собственные значения матрицы Л, отличные от X. Отсю-
да легко следует, что
||(f - XZ)-l||2 > max I х,. - X Г' =
I min|Xz-X|
(6.5.25)
Это число станет большим, если Л имеет собственные значения, очень
близкие к X. Мы приходим к выводу, что если X является элементом кластера
из (по крайней мере, двух) плотно расположенных собственных значений, то
отвечающий ему собственный вектор будет плохо обусловленным.
Упражнение 6.5.26. Покажите, что если U — верхняя треугольная матрица,
то || t/||2 > шах | иИ |. Покажите, что для диагональной матрицы U имеет место
/
равенство. □
Если Л — нормальная матрица, то матрица Шура Т — диагональная и в
(6.5.25) выполняется равенство. В этом случае мы также имеем || Л ||2 = max | Xz |,
/
так что число обусловленности собственного вектора, соответствующего соб-
ственному значению Ху, равно
max|Xz|
____i_______
min|Xz -Ху|
i*j
(6.5.27)
Подчеркнем, что это справедливо лишь для нормальных матриц. Другими
словами, если Л - нормальная матрица, число обусловленности собственного
вектора, соответствующего собственному значению Х;, обратно пропорцио-
нально расстоянию от Ху до следующего ближайшего собственного значения. В
упражнениях 6.5.35 и 6.5.36 рассматривается чувствительность собственных
векторов нормальных матриц.
Если матрица Л не является нормальной, то (6.5.27) есть просто нижняя
граница числа обусловленности. Часто это хорошая оценка, однако иногда она
оказывается слишком грубой, поскольку разрыв в неравенстве (6.5.25) может
быть очень большим, если Т не является нормальной. Мы приходим к заклю-
6.5. Чувствительность собственных значений и собственных векторов
507
чению, что собственный вектор может быть плохо обусловленным даже тогда,
когда соответствующее собственное значение хорошо отделено от остальных
собственных значений.
Дополнительные упражнения
Упражнение 6.5.28. В упражнении 5.3.19 мы установили, что встроенная в
MATLAB тестовая матрица west0479 имеет собственное значение X ®
» 17.548546093831+34.237822957500/’, а в упражнении 5.3.21 был вычислен пра-
вый собственный вектор одним шагом обратной итерации. Тем же способом
можно найти левый собственный вектор. Следовательно, мы можем вычис-
лить число обусловленности собственного значения X, указанное в теореме
6.5.12. Приводим простую программу, в основе которой лежит программа из
упражнения 5.3.19.
load west0479;
А = west0479;
n = 479;
lam = 17.548546093831+34.2378229575001
[L,U,P] = lu(A-lam*speye(n));
vright = ones(n,l);
vright = P*vright;
vright = L\vright;
vright = U\vright;
vright = vright/norm(vright);
vleft = ones(n,l);
vleft = U'\vleft;
vleft = L'\vleft;
vleft = P'*vleft;
vleft = vleft/norm(vleft);
(а) Эта программа вычисляет разложение А - X/ = PTLU, где Р — матрица
перестановок. (Наберите help lu, чтобы узнать подробности.) Покажите,
что команды, содержащие vleft, вычисляют левый собственный вектор
матрицы А (т.е. правый собственный вектор матрицы А") за один шаг обрат-
ной итерации.
(Ь) Допишите еще несколько команд, чтобы вычислить || г ||2, где г = Av -
Xv есть невязка для правого собственного вектора, и вычислите такую же
невязку для левого собственного вектора. Обе невязки должны быть совсем
небольшими.
(с) Добавьте еще несколько команд, чтобы вычислить число обусловленно-
сти для X, указанное в теореме 6.5.12. Вы должны получить к ® 5 х 10Х Таким
образом, X обусловлено не очень хорошо.
(d) Используя вычисленные вами значения к и || г ||2 совместно с теоре-
мами 6.5.1 и 6.5.12, определите, сколько верных цифр в выражении X «
* 17.548546093831 + 34.237822957500/. □
508
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.5.29. Пусть А е С”4” имеет различные собственные значения
Хь..., Хя с отвечающими им правыми и левыми собственными векторами vh ..., vn
и Из теоремы 6.5.11 мы знаем, что w* v, * 0 при всех i, так что без по-
тери общности можно предположить, что эти векторы промасштабированы
таким образом, что w/v, = 1, i = 1, ..., п. Такое масштабирование не определяет
собственные векторы однозначно, но выбор v, определит w * единственным об-
разом, и наоборот. Пусть V е Cwxw есть матрица, f-й столбец которой равен
a JFe Cwxw - матрица, у которой f-я строка есть w*.
(а) Покажите, что W =
(Ь) Покажите, что число обусловленности к„ соответствующее z-му собст-
венному значению, дается выражением к, = || v, ||2|| w, ||2.
(с) Покажите, что к, < к2(Р) при всех i. Поэтому общее число обусловленно-
сти из теоремы 6.5.3 (при р = 2) всегда дает завышенную оценку частных чисел
обусловленности.
(d) Покажите, что если А — нормальная матрица, то к, = 1 для всех i. □
Упражнение 6.5.30. Теорема о кругах Гершгорина является интересным
классическим результатом, широко используемым при изучении возмущений
собственных значений. В данном упражнении мы докажем основную версию
теоремы о кругах Гершгорина, а в упражнении 6.5.31 воспользуемся этой тео-
ремой, чтобы дать второе доказательство теоремы 6.5.3. Начнем с определения
п кругов Гершгорина матрицы А е С"х”. Каждой /-й строке матрицы А сопоста-
вим сумму
«, = LI аЛ
j^i
— сумму всех модулей элементов f-й строки, кроме элемента главной диагонали.
f-й круг Гершгорина есть множество комплексных чисел z таких, что | z - | < sr
Это замкнутый круг комплексной плоскости или множество комплексных чи-
сел, расстояние от которых до а., не превосходит sr Матрица А имеет п кругов
Гершгорина, сопоставленных ей по одному для каждой строки. Теорема о кру-
гах Гершгорина просто утверждает, что собственные значения матрицы А ле-
жат в объединении ее п кругов Гершгорина. Для доказательства этой теоремы
покажите, что каждое собственное значение X должно лежать в одном из кру-
гов Гершгорина. Пусть X — некоторое собственное значение матрицы А и
х * 0 — соответствующий ему собственный вектор. Пусть наибольшим по мо-
дулю элементом х является Л-й элемент: | xj = max | х. | > 0. Покажите, что
(А. - а„)х, =
при всех i. Полагая в этом равенстве i = Л, возьмите абсолютные значения и с
помощью неравенства треугольника и свойства максимальности | хк | получите,
что X лежит в Х-м круге Гершгорина матрицы А. □
6.5. Чувствительность собственных значений и собственных векторов
509
Упражнение 6.5.31. Примените теорему о кругах Гершгорина к матрице
D + 8D из доказательства теоремы 6.5.3, чтобы получить второе доказательство
этой теоремы для случая р = 1. Более тонкие приложения этой полезной теоре-
мы можно найти в [ 81 ]. □
Упражнение 6.5.32. Для малых £ > 0 и п > 2 рассмотрим п х «-матрицу
О 1
/(е) =
О 1
£
О
где незаполненные элементы равны нулю. Заметьте, что 7(0) есть жорданов
блок — очень дефектная матрица. Она имеет лишь одно собственное значение
0, повторенное п раз, с одномерным собственным пространством (см. упраж-
нение 5.2.14).
(а) Покажите, что характеристический полином матрицы J(e) есть Xя - б.
Покажите, что каждое собственное значение матрицы J(e) удовлетворяет усло-
вию | X | = £1/я. Таким образом, все они лежат в круге радиуса е 1/я с центром в 0.
(В действительности эти собственные значения являются корнями n-й степе-
ни из £ : X* = Е1/яе2я/*/я, k = 1, ..., «.)
(Ь) Набросайте график функции /,(е) = е 1/я при малых е > 0 для нескольких
значений «, например, п = 2, 3, 4. Сравните его с графиком функции gK(e ) = ке
для нескольких значений к. Покажите, что /Де ) -> оо при е -> 0.
(с) Пусть А = 7(0), у которой единственное собственное значение равно 0, а
5Д = J(e ) - J(0). Пусть также ц£ - какое-то собственное значение матрицы
А + 5Д. Покажите, что не существует такого вещественного числа к, для кото-
рого | ц£- 0 | < к || 8Аг ||р при всех е > 0. Таким образом, не существует конечного
числа обусловленности дня собственного значения матрицы А. (Замечание:
собственные значения матрицы J(e) непрерывны по б, но не являются непре-
рывными по Липшицу.)
(d) Рассмотрите специальный случай п = 17 и е = 10"17. Обратите внимание,
что || 8Аг ||р = 10~17, но все собственные значения матрицы А + 8А удовлетворяют
условию | X | = 1/10. Таким образом, малое возмущение 10~17 приводит к до-
вольно большому возмущению 1/10 собственных значений. □
Упражнение 6.5.33. Рассмотрим дефектную матрицу
’0 1
_° °_
Найдите левый и правый собственные векторы матрицы А, отвечающие
собственному значению 0, и покажите, что они удовлетворяют условию ух = 0.
Нет ли здесь противоречия с теоремой 6.5.11? □
510
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.5.34. Пусть Т имеет форму (6.5.17).
(а) Покажите, что Т имеет левый собственный вектор вида [1 ит ], где
ит(Т - AJ) = -wT.
(b) Покажите, что || и ||2 < к, числа обусловленности собственного значения
X, данного в теореме 6.5.12.
(с) Используя (6.5.20) и (6.5.21), покажите, что 8Х = иту + О(е2), и докажите,
что
| 5Х | < к|| 8Т||2 + О(е2).
Это дает второе доказательство теоремы 6.5.12 для возмущений такого спе-
циального вида. □
Упражнение 6.5.35. Матрица
£
А = 0
0
о о
-£ 0
0 1
является эрмитовой и, следовательно, нормальной. Ее собственные значения,
очевидно, равны £, - £ и 1. Пусть 0 < £ « 1, так что собственные значения ±е
разделены плохо, и
—£
8Л = £
£ 0
£ 0
о о
0
Очевидно, || 8Л || = О(е ). Выполните следующие упражнения с помощью ка-
рандаша и бумаги (или в уме).
(а) Найдите собственные векторы матрицы А для собственных значений ±£.
(Ь) Найдите собственные значения матрицы А + 8Л и обратите внимание,
что два из них имеют порядок величины £. Найдите собственные векторы мат-
рицы А + 8Л, отвечающие этим собственным значениям, и заметьте, что они
сильно отличаются от собственных векторов матрицы А.
(с) Покажите, что два собственных вектора п. (а) порождают то же самое
двумерное подпространство, что и собственные векторы п. (Ь). Это инвари-
антное подпространство и матрицы Л, и матрицы А + 8Л. Хотя частные под-
пространства плохо обусловлены, инвариантное двумерное подпространство
обусловлено хорошо [66]. □
Упражнение 6.5.36. Воспользуйтесь MATLAB’om для исследовании чувст-
вительности собственных векторов нормальной матрицы
1 + у 0
° 1-у
6.6. Методы для симметричной задачи на собственные значения
511
при малых у. Сформируйте возмущение следующим образом:
delta = [ 0 eps; eps 0 ]*randn
Встроенная константа MATLAB’a eps представляет собой «машинный эп-
силон», который равен удвоенной единичной ошибке округления и. Исполь-
зуйте MATLAB-команду eig, чтобы найти собственные векторы матрицы
А+8А для трех значений у = 10“9, 10~12 и 10“15 (например, gamma = 1е-9). Для
каждого случая вычислите расстояние от собственных векторов матрицы
А + 8/1 до собственных векторов матрицы А. Совместим ли полученный вами
результат с (6.5.27)?
6.6. Методы для симметричной задачи на собственные значения
Для несимметричной проблемы собственных значений плотных матриц
главным методом решения остается QA-алгоритм с предварительным приведе-
нием к хессенберговой форме. Однако в симметричном случае он имеет серь-
езную конкуренцию. Было разработано множество подходов, а к концу XX
столетия были найдены и разработаны более быстрые и более точные алгорит-
мы. Среди них алгоритм «разделяй и властвуй» Каппена, дифференциальный
алгоритм разделенных разностей и RRR-алгоритм нахождения собственных
векторов.
Вопрос точности имеет большое значение. Из результатов разд. 6.5 следует,
что собственные значения симметричной матрицы хорошо обусловлены в сле-
дующем смысле: если А + 8Л - небольшое возмущение симметричной матри-
цы Л, скажем, когда || 8J ||2/1| А ||2 = в, то каждое собственное значение ц матри-
цы А + 8Л близко к некоторому собственному значению X матрицы А в том
смысле, что
Поскольку QA-алгоритм обратно устойчив по норме, он находит точные
собственные значения матрицы А + 8J, которая очень близка к Л. Приближен-
ные собственные значения, найденные с помощью QA-алгоритма, удовлетво-
ряют (6.6.1) для в, отличающегося от машинной единичной ошибки округле-
ния лишь множителем умеренной величины. Будет лучше, если мы возьмем
|ц-Х|
< £
(6.6.2)
для всех ненулевых X. Это более подходящая оценка, согласно которой все не-
нулевые собственные значения, большие или малые, вычисляются с опреде-
512
Глава 6. Собственные значения и собственные векторы II
ленной точностью. Напротив, из ограничения (6.6.1) следует лишь, что собст-
венные значения порядка величины || А ||2 вычисляются сравнительно хорошо,
а небольшие собственные значения не всегда определяются с высокой относи-
тельной точностью. Например, собственное значение величины Ю-6)! А ||2 мо-
жет иметь точность на шесть цифр меньшую, чем большие собственные значе-
ния. Именно это и происходит при использовании 0Л-алгоритма. Некоторые
из алгоритмов, рассмотренных в этом разделе, работают лучше: они удовле-
творяют более точной оценке (6.6.2).
Прежде чем приступить к рассмотрению новых подходов, кратко опишем
один очень старый метод, до сих пор привлекающий внимание специалистов.
Метод Якоби
Метод Якоби — один из самых старых численных методов решения пробле-
мы собственных значений. Он старше самой теории матриц: статья Якоби [44]
датируется 1846 годом. Как и большинство численных методов, он мало ис-
пользовался в докомпьютерную эру. Его краткое возрождение было отмечено
в 1950-х годах, но уже в 1960-х он был вытеснен 0Я-алгоритмом из числа ис-
пользуемых методов. Позднее он вновь привлек внимание присущей ему воз-
можностью распараллеливания. Мы сделаем краткий обзор этого метода. Пер-
вое издание этой книги [77] содержало более детальное обсуждение метода
Якоби, включая схемы его распараллеливания.
Начнем с рассмотрения вещественной симметричной 2 х 2-матрицы
а b
b d
Нетрудно показать, что существует вращение
такое, что QTAQ является диагональной матрицей:
Это решает симметричную 2 х 2-проблему собственных значений. Подроб-
ности рассмотрены в упражнении 6.6.46.
Нахождение собственных значений 2 х 2-матрицы не производит особого
впечатления. Теперь давайте посмотрим, что можно сделать в случае п х п-
матрицы. Среди всех алгоритмов, которые мы рассмотрим в настоящем разде-
ле, только метод Якоби не начинается с приведения матрицы к трехдиагональ-
ному виду. Вместо этого матрица сразу приводится к диагональному виду при-
ведением к нулю всех внедиагональных элементов один за другим. Уже понят-
6.6. Методы для симметричной задачи на собственные значения
513
но, что мы можем обнулить любой внедиагональный элемент atj с помощью
соответствующего плоского вращения: достаточно применить к (/^-плоско-
сти вращение, диагонализирующее матрицу
a- fl-
it у
Вращения, выполняющие это, называются вращениями Якоби.
Классический метод Якоби отыскивает наибольший по модулю внедиаго-
нальный элемент матрицы и приводит его к нулю. Затем опять отыскивает
наибольший по модулю из оставшихся внедиагональный элемент и приводит
его к нулю, и т.д. Поскольку ранее приведенный к нулю элемент при после-
дующих вращениях может стать ненулевым, нельзя ожидать окончания приве-
дения к диагональному виду за конечное число шагов (что противоречило бы
теореме Абеля). По максимуму можно надеяться на то, что бесконечная после-
довательность итераций Якоби сойдется к диагональному виду. Упражнение
6.6.52 показывает, что эта надежда осуществима. В действительности сходи-
мость станет довольно быстрой, как только матрица станет достаточно близ-
кой к диагональной форме. Этот метод был использован Якоби [44] для реше-
ния задачи на собственные значения, возникшей при исследовании возмуще-
ний планетарных орбит. Это была система седьмого порядка, поскольку в то
время было известно лишь семь планет. В статье Якоби подчеркивает легкость
вычислений (вручную!). Ему было легко так говорить, поскольку реальные вы-
числения выполнил студент.
Классическая процедура Якоби вполне приемлема при ручной обработке,
но малоэффективна в компьютерных вычислениях. Человеку, работающему
с маленькой матрицей, не составит труда найти наибольший внедиагональ-
ный элемент, а трудности возникают при выполнении арифметики. Напро-
тив, в компьютерных вычислениях дня больших матриц арифметика выпол-
няется без труда, но дорого обходится поиск наибольшего по модулю эле-
мента. См. упражнение 6.6.51. Поскольку на поиск затрачивается слишком
много времени, был введен класс разновидностей алгоритма Якоби — цикли-
ческие методы Якоби. Циклический метод Якоби пробегает всю матрицу,
приводя элементы к нулю в некотором заранее предписанном порядке, не
обращая внимания на величину модулей элементов. При каждом завершен-
ном проходе каждый внедиагональный элемент зануляется только один раз.
Например, можно выполнить проход по столбцам, зануляя элементы в сле-
дующем порядке:
(2,1), (3,1), ..., (л,1), (3,2), (4,2), ..., (л,2), ..., (л, п - 1). (6.6.3)
В качестве альтернативы можно идти по строкам или диагоналям, например.
Мы будем называть метод, определенный упорядочиванием (6.6.3), специальным
циклическим методом Якоби. Можно показать, что повторяющиеся специальные
циклические проходы Якоби приводят к диагональному виду. В случае класси-
ческого метода Якоби проанализировать это оказывается сложнее.
17 Основы матричных вычислений
514
Глава 6. Собственные значения и собственные векторы II
Ранее мы отметили, что классический алгоритм Якоби сходится довольно
быстро, как только внедиагональные элементы станут достаточно малыми. То
же верно и для циклических методов Якоби. На самом деле, сходимость квад-
ратичная в том смысле, что если все внедиагональные элементы после данного
прохода имеют порядок величины 0(e), то после следующего прохода они бу-
дут иметь порядок 0(е2). Упражнение 6.6.53 показывает ясно, но не строго, по-
чему так происходит.
Точность метода Якоби зависит от критерия остановки. Деммель и Веселик
[14] показали, что если алгоритм выполняется до тех пор, когда каждый элемент
ау не станет много меньше в сравнении как с aih так и с , то все собственные
значения будут вычислены с высокой относительной точностью, т.е. будет дос-
тигнута оценка (6.6.2). Таким образом, метод Якоби точнее Q/f-алгоритма.
Если требуется найти собственные векторы, их можно получить, накапли-
вая произведение вращений Якоби. Вы получите полный набор собственных
векторов, ортогональных с необходимой для работы точностью.
Какой бы ни была работа — просто вычисление собственных значений или
же вычисление и собственных значений, и собственных векторов, метод Яко-
би выполнит ее в несколько раз медленнее, чем приведение к треугольному
виду с последующим применением £?Я-алгоритма.
Алгоритмы для трехдиагональных матриц
В разд. 5.5 мы видели, как можно привести любую вещественную симмет-
ричную матрицу к трехдиагональному виду
’ai Pi
Р| а2 Р2
Р2 аз
P/i-2
Рл-2 ал-1 Рл-1
Рл-1 а«
(6.6.4)
с помощью ортогонального преобразования подобия. Без потери общности
будем предполагать, что все Pz. положительны. Тогда можно привести трехдиа-
гональную матрицу к диагональной форме, например, с помощью 0Я-алго-
ритма (разд. 5.6 и 5.7). Тем не менее, этот второй шаг имеет несколько альтер-
натив.
Факторизованные формы трехдиагональных матриц
Если все ведущие главные подматрицы матрицы А невырожденны (напри-
мер, если Л - положительно определенная), то, по теореме 1.7.30, А имеет раз-
ложение А = LDL1} где L —нижняя треугольная матрица с одной поддиагона-
лью, a D — диагональная. Нетрудно найти это разложение с помощью метода
исключения Гаусса. Если А - трехдиагональная матрица, то вычисления ста-
6.6. Методы для симметричной задачи на собственные значения
515
новятся особенно простыми и недорогими. Достаточно нескольких строчек,
чтобы получить это разложение, даже если бы оно не было специальным слу-
чаем алгоритма, уже обсуждавшегося нами в гл. 1. Поскольку Л - трехдиаго-
нальная матрица, L должна быть бидиагональной, так что равенство А = LDLT
можно представить в явной форме как
(6.6.5)
Упражнение 6.6.6.
(а) Перемножьте матрицы в правой части (6.6.5) и приравняйте элементы
правой и левой частей, чтобы получить 2п - 1 уравнений.
(Ь) Проверьте, что элементы матриц LhD получены из элементов матрицы
А с помощью следующего алгоритма.
dl <-а1
for j = 1, ..., и—1 (6.6.7)
dj+i ~djlj
(с) Сколько приблизительно флопов затратит этот алгоритм? □
Матрица Л определяется 2п - 1 параметрами аь ..., ап и рь ..., pw_P Если мы
выполним разложение Л = LDLT, то получим столько же параметров /ь ..., ln_ j и
db ..., dni содержащих ту же информацию. Упражнение 6.6.6 показывает, что
вторую параметризацию можно получить из первой, затратив 4п флопов. Об-
ратно, мы можем восстановить ан ..., а„ и рь ..., Р„_ i из /ь..., 1„_ । и ..., dn со
сравнимой скоростью. На самом деле, обе параметризации одинаково хорошо
представляют Л.
Однако на практике есть различие. Параметры аь ..., ап и рь ..., рл_ t опре-
деляют все собственные значения матрицы Л с высокой абсолютной точно-
стью, но не с высокой относительной точностью. Т.е. если Л имеет несколько
собственных значений малой по модулю величины, то относительно малые
возмущения ее параметров могут привести к относительно большим возмуще-
ниям этих собственных значений. Параметры /ь ..., ln_ t и di9..., dn в этом отно-
шении ведут себя лучше. В случае положительно определенной матрицы они
определяют все собственные значения матрицы LDLT, даже наименьшие из
них, с высокой относительной точностью [55, 56]. Этим свойством почти все-
гда обладает и неположительный случай, хотя гарантировать это нельзя. Лю-
бая факторизация LDL\ параметры которой определяют собственные значе-
ния с высокой относительной точностью, называется относительно устойчи-
вым представлением (RRR - relatively robust representation) матрицы.
516
Глава 6. Собственные значения и собственные векторы II
Эти наблюдения имеют следующие последствия. Желая получить высоко-
точные алгоритмы, мы должны разрабатывать алгоритмы, использующие фак-
торизованную форму матрицы. Приведенные ниже алгоритмы как раз такие.
После получения факторизованной формы трехдиагональные матрицы боль-
ше не будут вновь формироваться явным образом.
Как мы уже видели, в вычислениях собственных значений обычной опе-
рацией является смещение начала координат, т.е., замена А на А - р/, где р
есть сдвиг. В качестве первой задачи рассмотрим, как можно осуществить
сдвиг матрицы А в факторизованной форме. Пусть мы имеем А в факторизо-
ванной форме LDLT, Наша цель - найти нижнюю бидиагональную матрицу
L с единицами на главной диагонали и диагональную матрицу D такие, что
LDLT - р/ = LDLT. Приравнивая элементы в этом равенстве, легко прове-
рить, что L и D можно вычислить с помощью следующего алгоритма:
<~di "Pi
for j = 1, ..., п-\
dJ+l <-dJ+i +djlj -djlj2 -p
(6.6.8)
Упражнение 6.6.9. Покажите, что если LDLT - pl = LbLT, то
(a) dj + dj- p = dj+ dj-JJ-i при; = 1, ..., n, где /0 = /0 = dQ = d0 = 0.
(b) Ijdj = Ijdj при / = 1, ..., n-\.
(с) Проверьте, что(6.6.8) вычисляетLnD. □
Более устойчивую версию алгоритма можно получить, вводя вспомогатель-
ные величины
= dj _- р = < - (6.6. ю)
где 5j = — р. Легко проверить, что
5у+1 — IjljSj р.
(6.6.11)
Это дает так называемую дифференциальную форму алгоритма:
Даны L, D и р. Алгоритм находит L и D такие, что LDlT = LDLT - pl.
Si <—Pl
for j = 1, ..., n -1
i^iA/dj
Sj+\ <T-ljljSj-p
dn <—dn -k- sn
(6.6.12)
6.6. Методы для симметричной задачи на собственные значения
517
Очевидно, что число флопов, необходимых для выполнения (6.6.12), равно
О(п).
Упражнение 6.6.13.
(а) Покажите, что если s}- определено по (6.6.10) с = - р, то рекурсия
(6.6.11) справедлива. (Например, начните с sj+l = djljlj - djljlj— p и сделайте
пару подстановок, используя равенство /yrfy = Ijdj.)
(b) Проверьте, что (6.6.11) выполняет те же функции, что и (6.6.8). □
Полезную альтернативу £/)£г-разложению можно получить, нарушив оп-
ределенным образом симметрию А. Легко показать, что симметричную трех-
диагональную матрицу А можно привести к виду
где А = diag{8p ..., 8W} — диагональная матрица преобразования подобия (уп-
ражнение 6.6.54). Обратно, любая матрица вида
а, 1
Y1 а? 1
Y2 аз
•. •. 1
У „-2 а 1
Г„-| а»
(6.6.15)
у которой все уу. > 0, диагонально подобна симметричной матрице вида (6.6.4) с
Ру = 1. Это может показаться странным — разрушить симмет-
рию матрицы, но форма (6.6.15) часто оказывается полезной.
Если у матрицы А в (6.6.15) все ведущие главные подматрицы невырожден-
ны, то она имеет ££/-разложение. В контексте определения собственных значе-
ний часто вместо U используется символ Л, так что мы будем говорить об LR-
разложении и писать А = LR. Тогда множители имеют особенно простую форму
518
Глава 6. Собственные значения и собственные векторы II
В принципе, 2п - 1 параметров 1{,1п_{ и г{,..., гп содержат ту же информа-
цию, что и ah ..., a„ и рь ..., Р Однако, как и в случае Лразложения,
элементы матриц L и Я обычно определяют собственные значения с высокой
относительной точностью в отличие от элементов матрицы А. Таким образом,
имеет смысл разрабатывать алгоритмы, использующие непосредственно пара-
метры 7р ..., /n_j и г,2, избегая явного формирования трехдиагональной
матрицы А.
Очевидно, параметры /р ..., 1п_{ и rj, ..., гп дожны быть тесно связаны с
параметрами /ь ..., ln _ j и du ..., dn разложения А = LDLT, И в самом деле,
оказывается, что гу = dj nTj = lj8j_ 8У, где 8У — элементы диагональной мат-
рицы А из (6.6.14).
Упражнение 6.6.17. Пусть А - LD1J\ как в (6.6.5), А - Д-1ЛД, как в (6.6.14),
и А - LR, как в (6.6.16).
(а) Покажите, что L = Д_1ЛД и R = \~XDLT\.
(b) Докажите,чтоTj =/г5/_1/8уприу= 1, ...,n- 1 игу =б/упри/= 1, ...,п. □
Выше мы показали, как можно осуществить сдвиг начала для ГШЛ-разло-
жения, не формируя явным образом А в виде произведения (см. (6.6.12) и
упражнение 6.6.13). Конечно, это же можно сделать и для £Л-разложения.
Предположим, что мы имеем А = LR в факторизованной форме и хотим
найти LR такое, что А - pl= LR, не формируя при этом А явно. Легко пока-
зать (упражнение 6.6.55), что с помощью следующего алгоритма можно полу-
чить L и R из Z, R и р:
Даны £, R и р. Алгоритм находит L и R такие, что LR-RL- р/.
6 <—Р
for J = 1, ..., п -1
<7<-Гу/?у (6.6.18)
Метод рассечения или бисекции
В основе метода рассечения, известного также как бисекция или метод по-
следовательности Штурма, лежат понятия конгруэнтности и инерции. Начнем
с замечания, что для любой симметричной матрицы А е Ляхя и произвольной
матрицы S е Кяхя матрица SAST также является симметричной. Теперь пусть А
кВ — любые две симметричные матрицы в ЯГ4”. Мы говорим, что В конгруэнт-
на Л, если существует невырожденная матрица S е такая, что В = SAST. Ус-
ловие невырожденности здесь существенно.
6.6. Методы для симметричной задачи на собственные значения
519
Упражнение 6.6.19. Покажите, что (а) А конгруэнтна Л, (Ь) если В конгру-
энтна Л, то Л конгруэнтна В, (с) если Л конгруэнтна В, В конгруэнтна С, то Л
конгруэнтна С. Другими словами, конгруэнтность является отношением экви-
валентности. □
Собственные значения симметричной матрицы Л е все вещественные.
Пусть у(Л), £(Л) и л (Л) обозначают соответственно число отрицательных, ну-
левых и положительных собственных значений матрицы Л. Упорядоченная
тройка (у(Л), £(Л), л(А)) называется инерцией матрицы Л. В основе нашего ис-
следования лежит закон инерции Сильвестра, устанавливающий, что конгру-
энтные матрицы имеют одну и ту же инерцию.
Теорема 6.6.20 (закон инерции Сильвестра). Пусть А, В е К"4” — симмет-
ричны, и предположим, что В конгруэнтна А. Тогда у (Л) = v(B), £(Л) = Cfjl)
и л (Л) = л (В).
Доказательство см. в упражнении 6.6.56. Закон Сильвестра поможет
нам расслоить спектр на подмножества. Пусть Хь ..., Хя — собственные
значения матрицы Л, упорядоченные так, что Xj > Х2 > ... > Х„. Предполо-
жим, что для любого заданного рей можно найти инерцию матрицы Л -
р/. Число л(Л - р/) равно числу собственных значений матрицы Л, боль-
ших р. Если л(Л - р7) - /, 0 < i < п, то
Х„ < ... < Х/+1 < р < X, < ... < X,.
Это разделяет спектр на два подмножества. Мы увидим, что повторные рас-
сечения спектра с методично выбираемыми значениями р позволяют опреде-
лить все собственные значения матрицы Л с высокой точностью.
Упражнение 6.6.21. Предположим, что у вас есть подпрограмма, позволяю-
щая быстро вычислять л(Л - р/) для любого значения р. Придумайте алгоритм,
многократно использующий эту подпрограмму, чтобы найти все собственные
значения матрицы Л в некотором указанном интервале с ошибкой, меньшей
некоторого заданного уровня толерантности е > 0. □
Мы только что отметили, что в случае трехдиагональной матрицы Л у нас
есть недорогой способ вычисления л(Л - р/) при любом р. Нужно только найти
разложение
А - р/ = ZpZ>pZ,p (6.6.22)
с нижней треугольной матрицей Zp и диагональной Z)p, затратив на это О(п)
флопов (упражнение 6.6.6). Это равенство говорит о конгруэнтности Л - р/ и
Z)p, так что л(Л - р/) = л(£>р). Поскольку Z)p диагональна, мы определим л(2)р),
пересчитав положительные элементы на ее главной диагонали.
При желании можно сначала разложить Л на множители LDLT, а затем вос-
пользоваться алгоритмом (6.6.12), чтобы получить искомые факторизации со
сдвигом без формирования какой-либо из матриц Л - р/ в явном виде. С дру-
гой стороны, можно привести Л к несимметричной форме Л и найти ГЯ-раз-
ложение. Согласно упражнению 6.6.17 элементы главной диагонали матрицы
520
Глава 6. Собственные значения и собственные векторы II
R те же, что и у D, так что это разложение раскрывает инерцию А. Для получе-
ния разложений сдвинутых матриц мы используем алгоритм (6.6.18).
Как в (6.6.12), так и в (6.6.18) может оказаться, что dj = 0 (соответственно
?j = 0) при некотором у, что может привести к делению на нуль. Это не создает
проблем: например, можно заменить нуль очень малым числом е (к примеру,
Ю~307) и продолжить вычисления. Это даст тот же эффект, как и замена
JyHa dj + ё, которая возмутит спектр пренебрежимо мало.
Теперь, узнав, как найти л(Л - р?) для любого значения р, как можно мето-
дично определять собственные значения матрицы Л? Простое применение би-
секции дает очень хороший результат. Пусть мы хотим найти все собственные
значения на полуинтервале (а, й]. Начнем с вычисления л (Л - а!) и л(Л - ЬГ),
чтобы узнать, как много собственных значений лежит в этом интервале. Если
л(Л - al) = /, а л(Л - Ы) = у, то
а < X, < ... < Ху+1 < Z>,
так что на (a, имеется i - j собственных значений. Теперь положим р =
= (а + Ь)/2, т.е. возьмем середину (a, i] и найдем л(Л - рГ). Так мы можем
узнать, как много собственных значений лежит в каждом из полуинтерва-
лов (а, р] и (р, Ь]. Более точную информацию можно получить бисекцией
каждого из этих подинтервалов, и т.д. Любой интервал, в котором не ока-
залось собственных значений, можно исключить из дальнейшего рассмот-
рения. Интервал, содержащий единственное собственное значение, можно
раз за разом делить пополам, пока оно не будет локализовано с требуемой
точностью. Если мы знаем, что е (рр р2], где р2 - Pj < 2е, то приближе-
ние Xk » (pj + р2) / 2 имеет ошибку меньше £ .
^-алгоритм и алгоритм разделенных разностей
Другой подход к нахождению собственных значений симметричной трех-
диагональной матрицы дает алгоритм разделенных разностей (qd-алгоритм).
Начнем с введения £У?-алгоритма, который послужит нам в качестве ступень-
ки на пути к qd-алгоритму. С этой целью приведем А к несимметричному виду
А = АЧЛД (6.6.15). Для простоты обозначений опустим тильды и будем работать
с несимметричной матрицей
а! 1
у, а2 1
Y2
1
Ул-2 ал-1 1
(6.6.23)
Ул-l а
6.6. Методы для симметричной задачи на собственные значения
521
Если все ведущие главные подматрицы в А невырожденны, то она имеет
/^-разложение
Гп-1 1
гп
(6.6.24)
1
Если мы обратим порядок этих множителей и перемножим их, то получим
г|+/, 1
г2/1 г2 +12 1
г3/2 г3+/3
1
^п-^п-2 Ci-1 + /л-1 1
'Л-! ''л.
(6.6.25)
матрицу того же вида, что и А. Преобразование А в А, которое, как легко ви-
деть, есть преобразование подобия, представляет собой один шаг LR-алгорит-
ма, аналога (?Я-алгоритма. Если мы начнем повторять этот процесс, поддиаго-
нальные элементы будут постепенно сходиться к нулю, раскрывая на главной
диагонали собственные значения. Как и в случае (ZK-алгоритма, сходимость
можно ускорить, используя сдвиги начала отсчета1.
Последовательность £Я-итераций порождает последовательность подоб-
ных матриц А = Ло, А2, А3, ... . Каждая из этих матриц получается из
предыдущей с помощью АЯ-разложения. Мы приходим к алгоритму разде-
ленных разностей (qd), перенося свое внимание с последовательности мат-
риц (Д7) на последовательность промежуточных £Я-разложений. qd-алго-
ритм переходит от одного £Я-разложения к следующему, минуя промежу-
точную трехдиагональную матрицу. Преимущество такой точки зрения в
том, что она приводит нас к более точным алгоритмам, поскольку, как мы
уже указывали, фактризованная форма точнее передает информацию о
спектре матрицы.
1 £/?-алгоритм можно применить и к общим матрицам или к верхним хессенберговым, а не
только к трехдиагональным. Теория сходимости и детали реализации подобны тем, что и у Q-Л-ал-
горитма, но с несколькими существенными отличиями. Прежде всего, неудачный выбор сдвига р
может сделать невозможным £Я-разложение для А - р/. Хуже того, если р близко к «неудачному»
сдвигу, АЛ-разложение будет неустойчивым, порождая ошибки неприемлимой величины. Для
верхних хессенберговых матриц существует метод прогонки выступов с явными простыми или
двойными LK-шагами, аналогичными С/?-шагам. Чтобы умерить нестабильность, можно приме-
нить выбор главного элемента. Однако если с самого начала матрица трехдиагональная, то выбор
главного элемента разрушит трехдиагональную форму.
522
Глава 6. Собственные значения и собственные векторы II
Нетрудно догадаться, как выполнить переход от одного £Л-разложения к
следующему. Предположим, что мы имеем £Я-разложение некоторой итера-
ции матрицы А. Чтобы завершить £Я-итерацию нужным образом, сформиру-
ем А = RL. Переходя к следующей итерации, вычтем сдвиг р из А и выполним
новое разложение А - р/= LR. Теперь наша цель — получить LwR непосредст-
венно из L и R (и р), даже не пытаясь формировать промежуточную матрицу А.
Приравнивая матричные элементы в равенстве RL - р/ = LR, легко найдем
(упражнение 6.6.58), что параметры lj и гу можно получить из /у и с помощью
простого алгоритма
70<-0
for j = 1, п-1
6 <~rj+/j(6.6.26)
Л
rn <- rn
Это - одна итерация алгоритма разделенных разностей со сдвигом (qds). По-
вторяя ее, мы получим последовательность итераций £Л-алгоритма без фор-
мирования «промежуточных» трехдиагональных матриц. При 1п -> 0 последо-
вательность гп сходится к собственному значению.
Есть небольшая особенность в способе применения сдвигов. На каждой
итерации мы вычитаем сдвиг р, но в конце итерации даже не пытаемся вос-
становить его значение. Вместо этого будем следить за накоплением сдвигов.
На каждой итерации мы добавляем новый сдвиг р к суммарному сдвигу, ко-
торый обозначим через р. Каждое полученное собственное значение следует
рассматривать как таковое для сдвинутой матрицы. Чтобы получить соответ-
ствующее собственное значение исходной матрицы, надо прибавить к нему
суммарный сдвиг р.
Чтобы улучшить вычислительные свойства алгоритма, переупорядочим
(6.6.26). Введем вспомогательные величины Sj = гу - р - /у_р где /0 = 0. Тогда
можно записать (6.6.26) как
Итерация дифференциального алгоритма разделенных разностей со сдвигом (dqds)
51 «-А} -р
for j = 1, п -1
(6.6.27)
Ли *-^-Р
Детали рассмотрены в упражнении 6.6.59.
6.6. Методы для симметричной задачи на собственные значения
523
В случае положительной определенности dqds-алгоритм в высшей степени
устойчив. Легко показать, что тогда все величины гу и /7 положительны (уп-
ражнение 6.6.60). В случае р = 0 из (6.6.27) видно, что 5. также обязаны быть
положительными. Это следует из того, что в (6.6.27) нет вычитаний. В един-
ственной операции сложения складываются положительные величины. Сле-
довательно, в (6.6.27) нет сокращений, приводящих к потере точности - ка-
ждая арифметическая операция выполняется с высокой относительной точ-
ностью (см. разд. 2.5) и с высокой же относительной точностью вычисляются
все величины. Если процесс повторяется до достижения сходимости, найден-
ные собственные значения также получаются с высокой относительной точ-
ностью, как бы малы они ни были. Численная иллюстрация приводится в
упражнении 6.6.61.
Сказанное сейчас предполагает, что р = 0 на каждом шаге. Но и при нену-
левом р мы получим тот же результат, если р настолько мало, что А - р/явля-
ется положительно определенной. В этом случае можно показать [55], что
остаются положительными, так что в (6.6.27) все еще выполняется сложение
двух положительных величин. Некоторая потеря точности из-за взаимных со-
кращений неизбежна при вычитании сдвига, но каким бы ни было вычитае-
мое, его величина не превысит суммарного сдвига, который будет добавлен к
вычисленному собственному значению в конце. Отсюда следует (т.е. можно
показать), что каждое собственное значение вычисляется с высокой относи-
тельной точностью.
Таким образом, высокая относительная точность достигается с помо-
щью стратегии выбора сдвига, которая всегда занижает оценку наимень-
шего собственного значения по отношению к уже найденным. Собст-
венные значения определяются в порядке от наименьшего к наиболь-
шему.
Дополним эти выводы следующим. С высокой точностью определя-
ются собственные значения исходной трехдиагональной матрицы. Но
если такая матрица была получена приведением некоторой более пол-
ной симметричной матрицы Т к трехдиагональному виду, то нет ника-
кой гарантии, что собственные значения матрицы Т будут вычислены с
высокой относительной точностью. Алгоритм приведения к трехдиаго-
нальному виду (5.5.4) обратно устойчив по норме, но это не означает,
что небольшие собственные значения матрицы Т будут иметь высокую
относительную точность1.
Замечание по истории вопроса. Наш порядок рассмотрения данной темы
почти точно противоположен историческому. Рутисхаузер ввел qd-алгоритм
(но не его дифференциальную форму) в 1954 г. [57, 58] как метод вычисления
полюсов мероморфных функций. Через несколько лет он представил свои со-
ображения по матрицам и ввел более общий £Я-алгоритм [59]. Это, в свою
очередь, около 1960 г. дало толчок к разработке QR-алгоритма [25, 45]. В тече-
ние многих лет 0Я-алгоритм рассматривался как вершина подобных разрабо-
1 Конечно, все собственные значения вычислены точно относительно || ГЦ, что означает, что
каждое приближение ц собственного значения X удовлетворяет условию | ц - X | / ||Т||» Си при не-
котором С, не намного большем единицы.
524
Глава 6. Собственные значения и собственные векторы II
ток, и в каком-то смысле это так и было. Однако в начале 1990-х гг. Фернандо
и Парлетт [22, 55] осознали, что дифференциальный вариант qd-алгоритма
можно использовать для решения задачи на собственные значения симмет-
ричных трехдиагональных матриц (и соответствующей проблемы сингулярных
чисел) с большей точностью, чем £?Я-алгоритм, и тем самым дали новую
жизнь qd-алгоритму.
Определение собственных векторов методом обратной итерации
После того как мы нашли часть собственных значений с помощью бисек-
ции или dqds-алгоритма, при желании можно найти и соответствующие собст-
венные векторы, например, методом обратной итерации, используя найден-
ные собственные значения в качестве сдвигов, как это описано в разд. 5.3. Для
каждого собственного значения Хк требуется выполнить LDLТ-разложение
(или подобное ему) матрицы А - ХкЦ затратив на это О(п) флопов, и еще один-
два шага обратной итерации, требующих также О(п) флопов. Такая процедура
довольно экономна.
В точной арифметике собственные векторы ситмметричных матриц орто-
гональны. Слабое место подхода с использованием обратной итерации в том,
что получаемые при этом приближения для собственных векторов на самом
деле не ортогональны. В частности, вычисленные собственные векторы, со-
ответствующие плотному кластеру собственных значений могут оказаться да-
леко не ортогональными. Одно из средств избавления от этого заключается в
применении процедуры Грама—Шмидта, чтобы ортонормировать эти векто-
ры. Это обходится в О(пт2) флопов для случая кластера из т собственных
значений, что совсем неплохо для не слишком больших т. Однако для мат-
риц с огромными кластерами собственных значений дополнительные затра-
ты становятся неприемлемыми. Тогда лучше будут перекрученные факториза-
ции (разложения).
Определение точных собственных векторов
с помощью перекрученных разложений
Сверхточные собственные значения, полученные с помощью dqds, могут
помочь нам в определении сверхточных численно ортогональных собственных
векторов при подходящем использовании обратной итерации. И здесь важно
иметь дело с факторизованными формами (т.е. относительно устойчивыми
представлениями) матриц, а не с самими матрицами. Другим ключевым мо-
ментом является использование специальных разложений на множители, ко-
торые называются перекручеными разложениями.
RRR-алгоритм, основанный на использовании этих разложений, выполня-
ет один шаг обратной итерации, затрачивая на это О(п) флопов для каждого
собственного вектора. Таким образом, полное множество собственных значе-
ний и собственных векторов симметричной трехдиагональной матрицы мож-
но получить с помощью О(и2) флопов. Более широко, к собственных значений
и соответствующих собственных векторов можно найти, затратив О(пк) фло-
6.6. Методы для симметричной задачи на собственные значения
525
пов. Поскольку каждый собственный вектор определяется с очень высокой
точностью, найденные собственные векторы автоматически получаются орто-
гональными с необходимой для работы точностью. Поэтому следует избегать
использования упомянутого выше шага Грама—Шмидта из-за его потенциаль-
ной дороговизны. Число флопов О(пк) оптимально в следующем смысле. По-
скольку к собственных векторов определяются всего пк числами и на вычисле-
ние (не говоря уже о выборке, запоминании и т.д.) каждого числа требуется по
крайней мере один флоп, нельзя выполнить эту работу менее чем за О(пк)
флопов.
RRR-алгоритм входит в пакет LAPACK [1]. Его подробное описание доста-
точно сложно. Здесь мы обозначим лишь некоторые основные идеи.
Снова предположим, что мы имеем симметричную трехдиагональную
матрицу, представленную в факторизованной форме LDLT. Мы уже виде-
ли, как можно получить такую факторизованную форму для сдвинутой
матрицы
LDLT - pl = LDLT (6.6.28)
с помощью (6.6.12). Для дальнейшего нам потребуется сопутствующее разло-
жение на множители
LDLT - pI^UDU, (6.6.29)
где U — верхняя бидиагональная матрица с едиицами на главной диагонали:
Из разд. 1.7 мы знаем, что L[/-разложения, а следовательно и £Ш/-разло-
жения вида (6.6.28), являются естественным побочным продуктом гауссова ис-
ключения, выполняемого обычным способом сверху вниз. Наше предпочте-
ние выполнению операций сверху вниз и слева направо — просто дань обы-
чаю. При желании можно начать движение снизу, принимая (п, п)-элемент в
качестве главного при исключении всех расположенных выше элементов и-го
столбца, и затем двигаться вверх и налево. Если выполнять гауссово исключе-
ние именно таким образом, мы получим в качестве побочного продукта разло-
жение вида UL, вариантом которого является И)[Л-разложение в (6.6.29). Та-
ким образом, мы надеемся найти параметры dj и в (6.6.29), двигаясь снизу
526
Глава 6. Собственные значения и собственные векторы II
вверх. И действительно, легко проверить (упражнение 6.6.62), что следующий
алгоритм выполняет это:
Рп *~dn -P
for j = n, ..., 2
’ Pj
Qj-i
«Л1 ‘
Pj-i *" Pjdj-i -P
(6.6.30)
4 <- Р\
Это очень похоже на (6.6.27): наибольшее отличие в том, что алгоритм ра-
ботает снизу вверх.
Процедурам (6.6.28) и (6.6.29) родственны перекрученные разложения, к-е
перекрученное разложение имеет вид
LDLT - р7 = NkDkNk, (6.6.31)
где Dk — диагональная матрица, a Nk - «перекрученная», частично нижняя,
частично верхняя трехдиагональная матрица:
1
4 1
^-1 1 Uk
1 «л-1
1
(6.6.32)
Имеется п перекрученых разложений матрицы LDLT - р/, соответствующих
к = 1, ..., п. Разложения (6.6.29) и (6.6.28) являются перекручеными разложе-
ниями для к = 1 и к = п соответственно. Элементы ,..., lki, как легко видеть,
те же, что и /. в (6.6.28). Подобным образом, элементы ип,..., ик те же, что и в
(6.6.29). Диагональная матрица Dk имеет вид
diag{rf|, ..., dk_l9 5к, dk+i, ..., dn},
6.6. Методы для симметричной задачи на собственные значения
527
..., dk_x взяты из (6.6.28), ad*+1, ..., dn - из (6.6.29). Единственный эле-
мент, который нельзя взять из (6.6.28) и (6.6.29), есть «средний» элемент
из Dk. Сопоставляя (Л,Л)-элементы равенства (6.6.31), находим
dk + dk_ {Гк_х - р = dk_xlk_{ + 8* + dk+xu2k,
откуда
- dk + dk_ \lk_x p dk_xlk_{ dk+[uk.
Используя (6.6.12), (6.6.30) и упражнение 6.6.62, находим, что 8* можно
также представить в виде
8* = sk + pk+{qk. (6.6.33)
Эта формула более устойчива.
Упражнение 6.6.34. Проверьте утверждения предыдущего абзаца. □
Теперь понятно, как можно найти сразу все п перекрученных разложений
на множители. Надо просто вычислить (6.6.28) и (6.6.29), используя соответст-
венно алгоритмы (6.6.12) и (6.6.30) и сохраняя вспомогательные величины spPj
и qp по которым вычисляются 6к по (6.6.33). Это дает нам все составляющие
для всех п перекрученых разложений за О(п) флопов.
RRR-алгоритм использует перекрученные разложения для определения
собственных векторов, соответствующих хорошо разделенным собствен-
ным значениям. Беря найденное собственное значение в качестве сдвига
р, вычислим перекрученные разложения NkDkNk одновременно, как было
только что описано. Теоретически матрица Dk в каждом из разложений
должна иметь нуль на главной диагонали, поскольку LDLT - pl вырожде-
на, если р есть собственное значение. Дальнейшее рассмотрение показы-
вает, что именно 8* должно быть равным нулю. На практике из-за оши-
бок округления ни одно из 8* не равно нулю. Хотя любое из перекручен-
ных разложений может быть использовано при выполнении шага
обратной итерации, с вычислительной точки зрения для этого лучше ис-
пользовать то, для которого | 8* | = min | 8У |. Затем решается уравнение
NkDkNkx - екЪк, где ек есть Л-й стандартный базисный вектор. Вектор х,
или по желанию х /1| х ||2, - очень точный собственный вектор. Множи-
тель 8* вставлен просто ради удобства. В действительности вычисления
легче, чем кажется на первый взгляд. Упражнение 6.6.63 показывает, что
х удовлетворяет уравнению
Nkx = ек,
которое можно решить «обратной подстановкой» следующим образом:
528
Глава 6. Собственные значения и собственные векторы II
for у = Л-1, 1
[ху <- -ljXj+1
(6.6.35)
for j = k, n—\
[xy+, <--w,xy
Эта процедура требует n - 1 умножений и никаких сложений или вычита-
ний. Таким образом, нет потери точности из-за сокращений, и поэтому х оп-
ределяется с высокой относительной точностью. Больше подробностей и ана-
лиз ошибок можно найти в [17].
Для собственных значений, образующих кластер, требуется более сложная
стратегия. Сдвиньте матрицу на р, где р очень близко к кластеру. Вычислите
новое представление с помощью алгоритма (6.6.12). Сдвинутая матрица имеет
много собственных значений вблизи нуля. Хотя абсолютные расстояния меж-
ду этими собственными значениями не отличаются от тех, что были до сдвига,
относительные расстояния между ними стали намного больше, поскольку их
абсолютные величины стали намного меньше. Конечно, их относительная
точность также станет много меньше по величине, так что необходимо выпол-
нить повторные вычисления или уточнения. После их перевычисления с вы-
сокой относительной точностью, можно вычислить их собственные векторы,
воспользовавшись перекрученными разложениями, описанными выше. Эти
высокоточные собственные векторы численно ортогональны как между собой,
так и к другим найденным собственным векторам. Эту процедуру можно при-
менить к каждому из кластеров. Детали можно найти в [16], [17] и [56].
Алгоритм «разделяй и властвуй» Каппена
Что касается этого алгоритма, то болыпиство экспертов считает, что он бу-
дет вытеснен dqds- и RRR-алгоритмами. Дадим здесь краткое описание этой
интересной схемы. Алгоритм входит в состав пакета LAPACK [1]. Подробно-
сти см. в [12], [20].
Симметричная трехдиагональная матрица А может быть представлена в виде
А = А + Н, где
“| Р1
Р1 а2
4
0
А =
Р/-1
Р/-, («,-Р,)
(а,-Р.) Pi+i
Р,+ 1 а,+2
•• Ря-.
P«-i а«
6.6. Методы для симметричной задачи на собственные значения
529
и Н - очень простая матрица ранга один, все ненулевые элементы которой со-
браны в подматрицу
А ₽,-
А ₽/.
в «середине» Н. Это можно сделать для любого /, но нас интересует случай
i« п/2, при котором подматрицы и А2 имеют почти одинаковые размеры.
Задача о собственных значениях матрицы А проще, чем для матрицы Л, по-
скольку она сводится к двум отдельным задачам для и А2, которые можно
решать независимо и, возможно, параллельно. Предположим, что мы знаем
собственные значения и собственные векторы матрицы А. Можно ли из них
получить собственную систему матрицы А = А + Нс помощью простой коррек-
тирующей процедуры? Как мы увидим, ответ будет утвердительным. Алгоритм
Каппена просто применяет эту идею рекурсивно. Дадим набросок этого алго-
ритма. Если А есть 1 х 1-матрица, то ее собственное значение и собственный
вектор будут выданы в качестве результата. В противном случае А приводится
к виду А + Н, указанному выше, и алгоритм вычислит собственные системы
подматриц А{ и Л2, обращаясь к самому себе. Так будет получена собственная
система матрицы А. После этого с помощью корректирующей процедуры,
описанной ниже, будет получена собственная система матрицы А + Н. Эта
простая идея «разделяй и властвуй» работает очень хорошо. На практике мож-
но не доводить поиск подразбиений до нижнего 1 х 1-уровня. Вместо этого
можно установить пороговое значение для размера матрицы (например,
10 х 10) и собственные системы матриц меньших размеров вычислять с помо-
щью (^-алгоритма или какого-то другого метода.
Одноранговые коррекции
Остается показать, как получить собственные значения и собственные век-
торы матрицы А из собственной системы матрицы Л, где А = А + Н и Н имеет
ранг 1.
Упражнение 6.6.36. Пусть Н е R"xw — матрица ранга один.
(а) Покажите, что существуют ненулевые векторы и, v g R" такие, что Я= uvT.
(b) Покажите, что если Н — симметричная матрица, то существуют ненуле-
вые р е Ким g R" такие, что Н = pwwr. Покажите, что w можно выбрать так,
что || w ||2 = 1, и тогда р определится однозначно. Насколько однозначно опре-
деляется w?
(с) Пусть Н = pw'7’ и || w ||2 = 1. Найдите полную собственную систему мат-
рицы Н. □
Теперь мы можем записать А = А + pww7 где || w ||2 = 1. Поскольку мы знаем
всю собственную систему матрицы Л, имеем Л = QDQT, где Q есть ортого-
нальная матрица, столбцами которой являются собственные векторы, a D -
530
Глава 6. Собственные значения и собственные векторы II
диагональная матрица, у которой элементы главной диагонали являются соб-
ственными значениями матрицы А, Таким образом,
A = Q(D + pzzT)Q\
где z = Q Т w. Мы ищем ортогональную Q и диагональную D такие, что А = QDQT.
Если мы сможем найти ортогональную Q и диагональную D такие, что D + pzzT=
= QDQT, то Л = QDQT, где Q - QQ. Таким образом, достаточно рассмотреть
матрицу D + pzz<
Собственные значения матрицы D — это элементы ее главной диагонали
Ji, ...,Зп,& соответствующие собственные векторы суть eh ..., еп - стандартные
базисные векторы пространства IIя. Следующее упражнение показывает, что
некоторые из них могут оказаться собственными парами матрицы Ь + pzzT-
Упражнение 6.6.37. Пусть zt- обозначает Лю компоненту z. Предположим,
что Zj = 0 для некоторого I.
(а) Покажите, что Лй столбец матрицы D + pzzT есть а Ля строка
есть dtej.
(b) Покажите, что d,. есть собственное значение матрицы D + pzzT, которому
соответствует собственный вектор е,.
(с) Покажите, что если q е R" есть собственный вектор матрицы Ь + pzzT с
соответствующим собственным значением X *diy то его Ля компонента рав-
на нулю. □
Из этого упражнения видно, что если = 0, то мы получаем собственную
пару за просто так. Более того, Ле строку и столбец матрицы D + pzzT можно не
учитывать при определении других собственных пар и продуктивно работать с
подматрицей, т.е. понизить размерность задачи.
Другая возможность дефляции появляется в случае, если два или больше из
3, оказываются равными.
Упражнение 6.6.38. Пусть = 32 = ... = dk. Постройте такое отражение U,
что U(D + pzzT) UT = D + pzz T, a ? имел бы k - 1 равных нулю элементов. В ка-
кой момент вы использовали то, чтоdx = ...=dkl □
Из упражнения 6.6.38 видно, что всякий раз, когда имеется к равных d/?
можно сузить поиск на к - 1 собственных пар.
Благодаря этим процедурам понижения порядка можно теперь без потери
общности предположить, что все zt отличны от нуля, arf, все различны. Можно
также предположить, осуществляя при необходимости переупорядочивание,
что Зх <32 < ...<Зп. Нетрудно видеть, как должны выглядеть собственные пары
D + pzzT- Пусть X есть собственное значение, соответствующее собственному
вектору q. Тогда (D + = kq, т.е.
(D - Xiyq + pz(zTq) = 0.
(6.6.39)
6.6. Методы для симметричной задачи на собственные значения
531
Нетрудно показать, что скаляр zTq не равен нулю, и что X отлично от 3{,
Упражнение 6.6.40.
(а) Используя (6.6.39), покажите, что если zTq = 0, то X = nq кратно е, при
некотором i. Докажите, что zt = 0, а это противоречит одному из наших предпо-
ложений.
(Ь) Используя /-ю строку равенства (6.6.39), покажите, что если \ = 3i9 то
либо zTq = 0, либо Zi = 0. Таким образом, X * 3(. □
Поскольку X * dj при всех /, то (5 - ХУ)"1 существует. Умножая равенство
(6.6.39) на (Ь - ХУ)"1, получаем
q + p(D - XI)~xz(zTq) = 0. (6.6.41)
Умножая это равенство слева на zT , а затем деля на ненулевой скаляр zTq,
видим, что
1 + pzT(D - MY'z = 0. (6.6.42)
Так как (D - ХУ)"1 есть диагональная матрица, то (6.6.42) можно записать как
" 72
1 + р^>Л- = °- (6.6.43)
/=| dt -X
Каждое собственное значение матрицы D + pzzT должно удовлетворять
(6.6.43), известному как вековое уравнение. Можно много узнать о решениях
уравнения (6.6.43), исследуя функцию
п 71
ЛМ = 1 + (6.6.44)
i=\dj -X
Это рациональная функция с п различными полюсами 3[9 32, —,Зп.
Упражнение 6.6.45. Пусть f есть функция (6.6.44).
(а) Найдите производную f Покажите, что если р > 0 (р < 0), то/возрастает
(соответственно убывает) на каждом из подинтервалов ее области определения.
(Ь) Нарисуйте график для каждого из случаев р < 0 и р > 0. Покажите, что
вековое уравнение/(X) = 0 имеет точно одно решение между каждой парой по-
люсов функции /
(с) Пусть d{ < d2 < ... < dn обозначают решения векового уравнения. Покажи-
те, что если р > 0, то 3f < dj < J/+Inpn i = 1, ..., n - 1.
(d) Вспомните из упражнения 5.4.53, что след матрицы равен сумме ее соб-
ственных значений. Применяя этот факт к матрице Ь + pzzT9 покажите, что
dn < Зп + р , если р > 0. (Более общий результат см. в упражнении 6.6.64.)
532
Глава 6. Собственные значения и собственные векторы И
(е) Покажите, что если р < 0, то di_i < d, < dt при i = 2, п.
(/) Используя свойство следа матрицы из п. (d), покажите, что если р < 0, то
rfj + р < dx. (Обобщение этого результата см. в упражнении 6.6.64.) □
Благодаря упражнению 6.6.45 мы знаем, что каждый из интервалов (di, d/+1)
содержит точно одно собственное значение матрицы D + рггг, а n-е собствен-
ное значение находится либо в (dn ,dn + р), либо в (dx + р, dx), в зависимости от
знака р. Используя эту информацию, можно численно решить вековое уравне-
ние (6.6.43) и, следовательно, определить собственные значения матрицы
D + pzzr с любой желаемой точностью. Для этого можно использовать, напри-
мер, метод бисекции, ранее введенный в данном разделе. Однако имеются на-
много более быстрые методы. Много сил ушло на разработку решателя в
LAPACK [1], использующего один такой алгоритм.
После того как собственные значения матрицы Ь + pzzr найдены, с помо-
щью (6.6.41) можно получить собственные векторы. Для каждого собственного
значения X соответствующий собственный вектор q дается выражением
q = сф - МУ'г,
где с — любой скаляр, отличный от нуля. Таким образом, компоненты q имеют
вид
В этом кратком наброске мы опустили множество деталей.
Дополнительные упражнения
Упражнение 6.6.46. В этом упражнении покажите, что матрицу
а Ь
Ь а
всегда можно диагонализировать с помощью вращения
вращения Якоби.
(а) Покажите, что
с2 а + s2 d + 2csb
(с2 -s2)b+cs(d-a)
(с2 -s2)b + cs(d-a)
c2d + s2a-2csb
6,6. Методы для симметричной задачи на собственные значения
533
(Ь) Покажите, что если а = d, то QTAQ можно сделать диагональной, поло-
жив с = s = 1 / л/2. В противном случае, полагая
t = —, (6.6.47)
a-d
покажите, что QTAQ есть диагональная матрица тогда и только тогда, когда
где с = cos 0 и 5 = sin 0. Существует единственное 0 е (—тг/4, л/4), для которого
i = tg 20.
(с) Покажите, что для 0 е (-л/4, л/4)
х Л sin 20
tg 0 =-------,
l + cos20
cos 20 = 1 —, sin 20 = cos 20 tg 20,
71+tg220
и
tg 0 =
tg20
1 + Vl+tg2 20
Докажите, что тангенс t = tg 0 угла поворота, преобразующего QTAQ к диа-
гональному виду, равен
i+Vi+f2 ’
(6.6.48)
где величина t та же, что и в (6.6.47). Покажите, что с = cos 0 и s = sin 0 можно
получить из Г, полагая
г____- И S = Ct,
71 + /
(d) Существует возможность (очень малая) переполнения в (6.6.47), если
a-d очень мало. Этого можно избежать, используя обратную дробь всякий
раз, когда | а - d | < | 2Ь |. Пусть
л a-d
к =---.
2b
534
Глава 6. Собственные значения и собственные векторы II
Тогда k - ctg 20, где 0 - искомый угол вращения. Покажите, что выражение
для t = tg 0 имеет вид
sign(fc)
\к\ + ^1 + к2
(6.6.49)
(Перепишите (6.6.48) в терминах к = 1 /i.)
(е) Покажите, что
Упражнение 6.6.50. Используйте формулы, полученные в упражнении
6.6.46, чтобы диагонализировать матрицы
2 1] Г5 6
и
13 6 1
Выполните каждый из расчетов двумя способами: один раз используйте
(6.6.48), а в другой раз используйте (6.6.49). Проверьте ваши ответы, вычислив
собственные значения матриц каким-нибудь другим методом. □
Упражнение 6.6.51. Покажите, что поиск наибольшего внедиагонального
элемента п х и-матрицы требует затрат порядка О(п2) флопов, в то время как
применение вращения Якоби обходится в О(п) флопов. Таким образом, при
больших п классический метод Якоби затрачивает большую часть времени на
поиск. □
Упражнение 6.6.52. Пусть А = QTAQ, где Q есть вращение Якоби, устанавли-
вающее аь в нуль. Пусть Dm D — диагональные матрицы, и пусть Ем Ё — сим-
метричные матрицы с нулями на главной диагонали, однозначно определен-
ные равенствами А = D + Е и А = Ь+ Ё.
(а) Докажите, что
||< = ||М “ 2a# и ||М = IIM+ 2<
Таким образом, вращение Якоби переносит весовой коэффициент la2j с
внедиагональных элементов на элементы главной диагонали.
(Ь) В классическом методе Якоби мы каждый раз избавляемся от внедиаго-
нального элемента, наибольшего по абсолютной величине. Докажите, что
наибольший по модулю внедиагональный элемент всегда удовлетворяет нера-
венству а2} > ||£||f / N, где N = n(n - 1). В качестве следствия, докажите, что
||£||£< (1 - 1 / /V)||£||f. Таким образом, после т шагов классического метода
Якоби || £11 2Е уменьшится по крайней мере в (1 - 1 / N)m раз. Поэтому классиче-
6.6. Методы для симметричной задачи на собственные значения
535
ский метод Якоби гарантирует сходимость, причем не хуже линейной. В уп-
ражнении 6.6.53 будет показано, что на самом деле имеет место квадратичная
сходимость. □
Упражнение 6.6.53. Пусть А е К”4” будет симметричной матрицей с различ-
ными собственными значениями ..., и 8 = min{| X, - Ху- |, i ф j}. Мы все еще
будем использовать обозначение А = D + Е, принятое в упражнении 6.6.52.
Предположим, что в начале циклического очищения Якоби || Е ||F = е, где £
мало в сравнении с 8. Тогда | a J < е при всех i ф j. Элементы должны оставаться
столь же малыми, поскольку || Е ||£ не возрастает. Предположим далее, что || Е ||£
настолько мало, что элементы главной диагонали в А довольно хорошо при-
ближают собственные значения.
(а) Покажите, что каждое вращение, примененное во время чистки, долж-
но удовлетворять условиям | s | < 0(e) и с » 1.
(Ь) Используя результат п. (а), покажите, что как только некоторое aik стало
нулем, последующие вращения не могут сделать его больше О(е2). Таким обра-
зом, в конце полного очищения каждый внедиагональный элемент имеет по-
рядок О(е2) . Это и означает, что сходимость квадратичная.
Более тщательный анализ показывает, что квадратичная сходимость сохра-
няется, даже если не все собственные значения различны. □
Упражнение 6.6.54.
(а) Вычислите матрицу А"1ЛА, где А та же, что и в (6.6.4), а
А = diag{8H ..., 8,,}
и все 8. * 0. Покажите, как выбрать 8у так, чтобы А-1ЛА имела вид (6.6.14). Об-
ратите внимание, что 8t (или любое из 8у.) можно выбрать произвольным обра-
зом, после чего все другие 8. будут определены однозначно.
(Ь) Покажите, что любая матрица вида (6.6.15) с положительными у.является
диагонально подобной матрице вида (6.6.4), у которой Ру = у[у~J = 1,п - 1.
(с) Проверьте, что разложение А - LR, приведенное в (6.6.16), выполняется
при ry = 1,..., п (если положить/^ =0), и = Уу/г}Л = 1,п - 1. □
Упражнение 6.6.55. Это упражнение показывает, как применить сдвиг к
трехдиагональной матрице А в факторизованной форме, не формируя ее яв-
ным образом. Пусть мы имеем разложение А = LR вида (6.6.16) и хотим полу-
чить разложение сдвинутой матрицы: А - р/ = LR.
(а) Покажите, что элементы матриц L и R можно получить прямо из эле-
ментов L и R по алгоритму
г, <- г, -р
for у = 1, ..., п-1
h
fj+i ^-fj+i+Tj-lj-p
536
Глава 6. Собственные значения и собственные векторы П
Это явная форма алгоритма.
(Ь) Введите вспомогательные величины t/. tx = - р, tj+j = Tj - /у - р = rj+1 - rj+,,
j = 1,n - 1. Покажите, что алгоритм п. (а) можно переписать в виде (6.6.18),
который представляет собой дифференциальную форму алгоритма. Она точнее
версии из п. (а). □
Упражнение 6.6.56. В этом упражнении вы докажете закон инерции Силь-
вестра. Пусть Л, В е Л*** — симметричные матрицы.
(а) Покажите, что размерность нуль-пространства матрицы А равна числу
нулевых собственных значений матрицы А.
(Ь) Покажите, что если В конгруэнтна А, то МЛ) и J\T(B) имеют одинаковые
размерности. Докажите, что £(Л) = С(В) и у(Л) + л(Л) = v(B) + л(В).
(с) Покажите, что если В конгруэнтна Л, то существуют диагональные мат-
рицы D и Ей невырожденная матрица С такие, что Е= CTDC, собственные зна-
чения матрицы Л являются элементами главной диагонали матрицы D, а соб-
ственные значения матрицы В являются элементами главной диагонали мат-
рицы Е.
(d) Продолжая (с), число положительных элементов на главных диагона-
лях матриц D и Е равно л (Л) и л(Б) соответственно, и мы хотели бы пока-
зать, что они равны. Предположим, что они не равны, и покажем, что это
ведет к противоречию. Без потери общности предположим, что Е имеет
больше положительных элементов, чем D. Покажите, что имеется ненулевой
вектор х такой, что
х-, = 0, если е/7 < О,
(Сх), = 0, если du > 0.
(Указание: Это однородные линейные уравнения с п неизвестными. Сколь-
ко этих уравнений?)
(е) Пусть х — ненулевой вектор из п. (d) и z = Сх. Покажите, что хТЕх > 0,
zTDz < 0 и хтЕх = zTDz, а это приводит к противоречию.
(f) Покажите, что (у(Л), £(Л), л(Л)) = (v(5), £(£), л(Л)). л лП
Упражнение 6.6.57. Покажите, что если А - р/= LR и RL + р/ = А, то А =
= L~XAL. Таким образом, ZA-итерация есть преобразование подобия. л □
Упражнение 6.6.58. Пусть L и R те же, что и в (6.6.16), и пусть А = RL и
А - р/ = LRy где £и R имеют ту же общую форму, что и в (6.6.16).
(а) Вычислите Л,£, R и проверьте, что с помощью алгоритма (6.6.26) эле-
менты множителей LhR можно получить прямо из элементов матриц LnR.
(b) Покажите, что если ln _ j = 0, то гп есть собственное значение матриц
Л и Л. □
Упражнение 6.6.59. Пусть sy- = гу - р - /у-1 J = 1,..., п, где /0 = 0. Покажите, что
в алгоритме (6.6.26)
(a) Sj = fj - lj,J= 1, ..., n - 1.
(b) 5y+1 = ry+1 - ry+1/y/ry- - p = ry +I5y/ry. - p,J = 1, ..., n - 1.
(с) Убедитесь в эквивалентности алгоритмов (6.6.26) и (6.6.27) в точной
арифметике. □
6.6. Методы для симметричной задачи на собственные значения
537
Упражнение 6.6.60. Пусть Л — трехдиагональная матрица вида (6.6.15), у ко-
торой все у, > 0, и предположим, что А диагонально подобна положительно оп-
ределенной матрице. Тогда Л имеет разложение Л = LR вида (6.6.16). Покажи-
те, что величины r{i..., гп в R все положительны (ср. с упражнением 6.6.17). За-
тем покажите, что элементы 1Х,..., ln_ j из L также положительны. □
Упражнение 6.6.61. Рассмотрим 5 х 5-матрицу
1
1 1
1 1
1 1
1
где т - 123456.
(а) С помощью MATLAB’a умножьте L на R, чтобы получить Л в явном
виде, а затем используйте команду eig, чтобы вычислить собственные значе-
ния матрицы Л. Обратите внимание, что имеются четыре больших собствен-
ных значения вблизи 123456 и одно совсем маленькое. Обратная устойчивость
QR-алгоритма по норме (он используется в eig) гарантирует, что четыре боль-
шие собственные значения вычислены правильно. Пятое собственное значе-
ние, несомненно, близко к нулю, но нет гарантии, что eig вычислила его пра-
вильно в смысле относительной точности.
(Ь) Докажите, что определитель матрицы Л равен 1. Вспомните, что согласно
упражнению 5.4.54, определитель матрицы равен произведению ее собственных
значений. Таким образом, det(/l) = ХД2Х3ХД5. Вычислите используя
собственные значения, вычисленные вами в п. (а), и отметьте, сколь далеко от
единицы это произведение. Это доказывает, что Х5, малое собственное значе-
ние, было вычислено неправильно: оно завышено где-то в миллион раз. Чтобы
получить верное значение, воспользуйтесь уравнением ХД2Х3ХД5 = 1, решив его
относительно Х5: Х5 = Поскольку большие собственные значения
определенно вычислены верно, и эта формула содержит лишь умножения и де-
ления (нет потери точности при взаимосокращении), мы получаем правильное
значение Х5 с точностью приблизительно пятнадцать десятичных знаков. Вос-
пользуйтесь командой format long е, чтобы увидеть все знаки Х5.
(с) Напишите MATLAB-программу, реализующую dqds-алгоритм (6.6.27).
Используйте dqds-алгоритм со сдвигом нуль, чтобы найти разложение матри-
цы А. Если ваша программа работает правильно, то вы получите верное значе-
ние малого собственного значения с пятью десятичными знаками после всего
лишь одной итерации. Выполните вторую итерацию и получите это собствен-
ное значение с точностью до 16 десятичных знаков. □
Упражнение 6.6.62. Покажите, что из равенства (6.6.29) вытекают следую-
щие соотношения: v v v
(a) dj + dj_ xl2j_{ - p = dj + при j = 1, ..., n, где мы положили dQ = /0 =
= i+l = и« = °-
(b) Ijdj = dj^Uj при; = 1, n-1.
538
Глава 6. Собственные значения и собственные векторы II
(с) Соотношения из пп. (а) и (Ь) можно использовать при построении алго-
ритма вычисления матриц U к D. Однако лучшая, дифференциальная форма ал-
горитма получается введением вспомогательных величин
Pj = dJ~ dj+ft - Р.
причем рп = dn - р. Покажите, что = dj - dj _ при j = 2, ..., п, и р} =
= Pj^dj/dj+\} ~ Р при; = 2, ..., п - 1.
(d) Проверьте, что алгоритм (6.6.30) выдает параметры, определяющие
U и D. □
Упражнение 6.6.63. Рассмотрите перекрученное разложение NkDkN? (6.6.31)
с Nk из (6.6.32).
(а) Постройте алгоритм «внутренней подстановки» для решения системы
вида Nkz = w относительно z, где w - заданный вектор. Покажите, что алгоритм
радикально упрощается, когда w = ek, Л-му стандартному единичному вектору:
в самом деле, Nkek = eki так что z = ek.
(b) Покажите, что NkDkN^x = ek§k тогда и только тогда, когда N[x = ek.
(с) Постройте алгоритм «внешней подстановки» для решения систем вида
NTkx = y.
(d) Покажите, что для у = ек алгоритм п. (с) сводится к (6.6.35). □
Упражнение 6.6.64. В данном упражнении уточняются границы собствен-
ного значения из упражнения 6.6.45. Докажите следующие результаты, ис-
пользуя уравнение tr(25 + pzz7) = tr(D) + р t^zz7) и неравенства, доказанные в
упражнении 6.6.44.
(а) Если р > 0, то di < dj+ р при i = 1, ..., п.
(Ь) Если р < 0, то d,- > di+ р при i - 1, ..., п.
(с) Независимо от знака р существуют положительные постоянные ..., сп
такие, что Cq + ... + с„ = 1 и dt^di + с,р при /= 1,..., п. □
Г2 2
Упражнение 6.6.65. Пусть А = •
(d) Запишите А в форме D + pzzr, где D - диагональная матрица.
(Ь) Нарисуйте график функции/(X) из (6.6.44) для данных значений D, р и z.
(с) Найдите собственные значения и собственные векторы матрицы Л, вы-
полнив одноранговую коррекцию. □
6.7. Обобщенная задача на собственные значения
Многочисленные приложения приводят нас к более общей форме задачи
на собственные значения
Av = kBv,
6.7. Обобщенная задача на собственные значения
539
где А, В е Спхп. Эта задача имеет богатую теорию, и для ее решения было созда-
но много различных алгоритмов. В данном разделе дается лишь краткий обзор
этой проблематики.
Задачи на собственные значения такого типа могут появиться при решении
систем дифференциальных уравнений вида
Вх = Ах - Ь.
(6.7.1)
Это уравнение отличается от рассмотренного в разд. 5.1 введением матри-
цы коэффициентов В перед производной. Можно решать эти задачи по суще-
ству теми же методами, что и в разд. 5.1. Сначала рассмотрим однородную
систему
Вх = Ах.
(6.7.2)
Как и в разд. 5.1, мы ищем решение однородной задачи простого видах(0 =
g(/)v, где g(/) - скалярная функция от t, a v — ненулевой вектор, не зависящий
от времени. Подставляя это представление в (6.7.2), находим, что
£ Bv = Av,
g
откуда следует, что величина g/g должна быть постоянной. Обозначим эту по-
стоянную через X. Тогда g = kg (откуда следует, что g(t) = сек1) и
Av - kBv.
Это - обобщенная проблема собственных значений. Каждое ее решение
(X,v) дает решение ek'v уравнения (6.7.2). Таким образом, чтобы решить одно-
родную задачу (6.7.2), нужно решить обобщенную задачу на собственные зна-
чения. В остальном же процедура решения остается прежней — как в задаче,
рассмотренной в разд. 5.1.
Пример 6.7.3. Электрическая схема, приведенная на рис. 6.2, отличается от
схемы, рассмотренной нами в разд. 5.1, наличием индуктора во внутреннем
соединении, разделяющем два контурных тока. Как и прежде, мы можем
Рис. 6.2. Схема с индуктором, общим для двух контурных токов.
540
Глава 6. Собственные значения и собственные векторы II
получить систему дифференциальных уравнений для этой цепи, воспользовав-
шись законом Кирхгофа для напряжений: сумма падений напряжения на каж-
дом из участков замкнутого контура должна быть равна нулю. Для первого
контура падение напряжений на резисторах 1 Ом и 3 Ом равно 1х, В и 3xt В.
Падение напряжения на индукторе 1 Гн равно 2xt В. Падение напряжения на
резисторе 5 Ом равно 5(Х| - х2) В, поскольку ток в верхней части среднего со-
единения равен Х[ - х2 А. Подобным же образом, падение напряжения на ин-
дукторе 4 Гн равно 4(Xj - х2) В. Таким образом, уравнение для первого конту-
ра имеет вид
%! + 3xt + 2xj+ 5(xt - х2) + 4(х, - х2) = О
или
6х{ - 4х2 = -9х{ + 5х2.
Аналогично уравнение для второго контура имеет вид
-4х, + 7х2 = 5Х| - 6х2 + 6.
Объединяя эти два уравнения в одно матричное, получим уравнение
6 -4
-4 7 J [_х2
-9 51Ы-Г0
5 -6 х2 -6
(6.7.4)
т.е. систему дифференциальных уравнений вида Вх = Ах - Ь, как в (6.7.1)1.
В качестве первого шага на пути к решению этой системы найдем какое-
нибудь одно решение z системы (6.7.4). Простейшим решением является ста-
ционарное решение, которое можно найти, полагая в (6.7.4) равными нулю
члены с производными. Выполнив это, получим линейную систему
”9 51Г
5 ”6_ 52
О
-6
Поскольку матрица коэффициентов невырожденна, существует единст-
венное стационарное решение, которое можно найти, решая систему, либо с
карандашом в руках, либо с помощью MATLAB’a. Используя MATLAB, най-
дем, что
1.0345"
1.8621
(6.7.5)
А (амперов).
1 Эти матрицы, кроме того, имеют интересную структуру. Обе матрицы А и В симметричны.
Матрица В положительно определена, а А — отрицательно определена. С другой стороны, мы мо-
жем поменять некоторые знаки и записать систему в виде Вх + Ах = Ь, где обе матрицы А и В поло-
жительно определены.
6.7. Обобщенная задача на собственные значения
541
Следующий шаг — найти общее решение однородной задачи
6 -4 %!
-4 7 х2
’-9 5 ] Г*1 ’
5 -6 хг
Как мы видели выше, для этого требуется решить обобщенную задачу на
собственные значения
6
-4
~41 P'l-J"9
7JLv2J L5
5 j г<
“6 v2
Она достаточно мала и ее можно было бы решить лишь с карандашом и бу-
магой, но вместо этого мы используем MATLAB. Чтобы с помощью MATLAB-
функции eig решить обобщенную задачу на собственные значения Av = kBv,
просто наберем [V, D] = eig (А, В). Вызванная таким образом, команда eig
использует QZ-алгоритм, обобщение 0Л-алгоритма, который мы рассмотрим
позже в данном разделе. Результат оператора [V, D] = eig (А, В) есть матри-
ца И столбцами которой являются (по возможности) линейно независимые
собственные векторы, и диагональная матрица D с соответствующими собст-
венными значениями на главной диагонали. Вместе они удовлетворяют равен-
ству AV= BVD. Как легко проверить, это означает, что Ау = \BvjJ = 1,..., п, где
Vj обозначаету-й столбец матрицы И а \ есть (/у)-элемент матрицы D. Исполь-
зуя eig таким образом при решении обобщенной задачи на собственные зна-
чения, получим собственные значения
= -1.5493 и Х2 = -0.7199,
и соответствующие собственные векторы
’0.9708'
0.2399
0.4126
0.9109
Поскольку эти векторы линейно независимы, общее решение однородной
задачи есть
°-97081 + с е 0 7'^Г°-4126
0.2399J 2 [0-9109
где с{ и с2 — произвольные постоянные. Теперь мы получим общее решение
неоднородной задачи, добавив стационарное решение (6.7.5):
х(0 =
1.0345
1.8621
+ схе
-1.5493/
’0-97081 „Г0.4126
0.2399J 2 [0.9109
(6.7.6)
Отметьте, что обе экспоненциальные функции затухают с ростом t. Так
происходит потому, что оба собственных значения отрицательны. Следова-
542
Глава 6. Собственные значения и собственные векторы II
тельно, какими бы не были контурные токи вначале, они (быстро) перейдут в
стационарный режим. Эта система устойчива.
Теперь предположим, что переключатель в схеме замкнут в нулевой момент
времени. Тогда последующие значения контурных токов даются единствен-
ным решением системы, удовлетворяющим начальным условиям
х(0) =
Полагая в (6.7.6) t = 0 и подставляя эти начальные значения, получим ли-
нейную систему
0.9708 0.4126] ГсЛ _ Г-1.0345’
0.2399 0.9109J [c2J " L"1-8621.
Решая ее, получим с1 = -0.2215 и с2 - -1.9859.
Похожий пример рассмотрен в упражнении 6.7.42.
Основные положения обобщенной проблемы собственных значений
Рассмотрим обобщенную проблему собственных значений
Av = XBv. (6.7.7)
Это обобщенная задача на собственные значения, сводящаяся к стандарт-
ной задаче в случае В-L Ненулевой вектор v g С", удовлетворяющий (6.7.7)
при некотором значении X, называется собственным вектором упорядоченной
пары (А, В), а X называется соответствующим собственным значением. Очевид-
но, (6.7.7) выполняется тогда и только тогда, когда (ХЛ - A)v = 0, так что X есть
собственное значение пары (Л, В) тогда и только тогда, когда удовлетворяется
характеристическое уравнение
det(XZ? - А) = 0.
Легко проверить, что det(XjB - А) есть полином степени не выше п. Он на-
зывается характеристическим многочленом пары (Л, В). Выражение ХВ - Л час-
то называют пучком матриц и при этом говорят о собственных значениях, соб-
ственных векторах, характеристическом уравнении, характеристическом по-
линоме и т.д., матричного пучка.
Упражнение 6.7.8. Проверьте, что det(XB - Л) есть полином степени не
выше п. □
Большинство обобщенных задач на собственные значения можно свести к
стандартным задачам на собственные значения. Например, если В невырож-
денна, собственные значения пары (Л, В) есть просто собственные значения
матрицы В~1А.
6.7. Обобщенная задача на собственные значения
543
Упражнение 6.7.9. Предположим, что В невырожденна.
(а) Покажите, что v есть собственный вектор (А, В) с соответствующим соб-
ственным значением X тогда и только тогда, когда v есть собственный вектор
матрицы В~1А с собственным значением X.
(Ь) Покажите, что v есть собственный вектор (Л, В) с соответствующим соб-
ственным значением X тогда и только тогда, когда Bv есть собственный вектор
матрицы АВ~Х с собственным значением X.
(с) Покажите, что В^{А и АВ~Х — подобные матрицы.
(d) Покажите, что характеристическое уравнение пары (Л, В) по сути то же
самое, что и у матриц В~1А и АВ~Х. □
Из упражнения 6.7.9 видно, что если В невырожденна, то пара (Л, В) долж-
на иметь точно п собственных значений, считая их кратности. Если В вырож-
денка, ситуация меняется. Рассмотрим следующий пример.
Пример 6.7.10. Пусть
и отметьте, что В вырожденка. Вы можете легко проверить, что характеристи-
ческое уравнение пары (Л, В) есть X - 1 = 0 и его степень меньше порядка мат-
риц. Очевидно, пара (Л, В) имеет только одно собственное значение, а имен-
но, X = 1. Как мы сейчас увидим, разумно приписать паре (Л, В) второе собст-
венное значение X = оо. □
Пусть пара (Л, В) имеет ненулевое собственное значение X. Тогда, выпол-
няя в (6.7.7) подстановку ц = 1 / X и умножая обе части на ц, получим
Bv = цЛу,
что является обобщенной задачей на собственные значения для упорядочен-
ной пары (В, А). Отсюда заключаем, что ненулевые собственные значения
пары (В, А) являются обратными величинами собственных значений пары
(Л, В). Теперь предположим, что В вырожденка. Тогда нуль является собствен-
ным значением пары (В, А), В свете соотношения обратных величин, только
что установленного нами, разумно рассматривать оо как собственное значение
пары (Л, В). Мы так и сделаем. В соответствии с этим соглашением большая
часть обобщенных задач на собственные значения имеет п собственных значе-
ний. Имеется, однако, класс задач, которые ведут себя не столь хорошо. Взгля-
нем на такой пример.
Пример 6.7.11. Пусть
Тогда det(X2? - Л) = 0 для всех X, так что каждое комплексное число являет-
ся собственным значением этой пары. □
544
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.7.12.
(а) Пусть (Л, В) та же, что и в примере 6.7.11. Найдите собственный вектор,
соответствующий каждому собственному значению. Найдите нуль-простран-
ства МЛ) й М(В).
(Ь) Пусть Л и В - любые две матрицы, для которых М(А) п М^) * {0}- По-
кажите, что каждое комплексное число является собственным значением пары
(Л, В), а каждый v е A/VO п N(B) есть собственный вектор пары (Л, В), соот-
ветствующий каждому X. □
Любая пара (Л, В), для которой характеристический полином det(XB - Л)
тождественно равен нулю, называется вырожденной. Часто используется тер-
мин сингулярный пучок. Если пара (Л, В) не вырожденка, то говорят, что она ре-
гулярна. Конечно, пара (Л, В) регулярна, когда Л или В является невырожден-
ной матрицей. Как мы только что видели, пара (Л, В) вырожденна, когда МЛ)
и М^) имеют нетривиальное пересечение. Но может случиться, что пара ока-
жется вырожденной, даже если МЛ) п М^) = {0}.
Пример 6.7.13. Пусть
Тогда пара (Л, В) вырожденна, поскольку det(XB - Л) = 0 для всех X. Обе
матрицы Ли В вырожденны, однако ММ п М^) = {0}- □
Упражнение 6.7.14. Проверьте утверждения примера 6.7.13. □
Может оказаться, что пара (Л, В) регулярна, даже если обе матрицы Л и В
вырожденные.
Пример 6.7.15. Пусть
Тогда Л и В вырожденны, но (Л, В) является регулярной парой. □
Упражнение 6.7.16. Пусть Ли В те же, что и в примере 6.7.15.
(а) Покажите, что и Л, и В являются вырожденными матрицами.
(Ь) Найдите характеристический полином пары (Л, В), и докажите регуляр-
ность пары (Л, В). Каковы собственные значения пары (Л, В)? □
В оставшейся части раздела мы ограничимся рассмотрением регулярных
пучков. Дополнительную информацию о сингулярных пучках см. в [13, 75, 82]
и в томе II книги [29].
В большинстве приложений по крайней мере одна из матриц Л или В не-
вырожденна. Независимо от того, какая из них обладает этим свойством,
всегда можно свести обобщенную проблему собственных значений к стан-
дартной для одной из матриц АВ', В~'А, ВА~' или А~'В. Хотя такая возмож-
ность есть, вряд ли стоит руководствоваться этим: имеется несколько при-
чин, почему такой образ действия не является лучшим. Предположим, что
6.7. Обобщенная задача на собственные значения
545
мы вычисляем АВ'1. Если В плохо обусловлена (в смысле гл. 2), собственные
значения вычисленной матрицы АВ'1 могут быть плохим приближением соб-
ственных значений пары (А, В), несмотря на то, что некоторые или все соб-
ственные значения пары (А, В) являются хорошо обусловленными (упражне-
ние 6.7.43). Вторая причина, по которой не стоит вычислять АВ'1, состоит в
том, что А и В могут быть симметричными. Во многих приложениях жела-
тельно сохранить эту симметрию, но АВ'1 часто оказывается несимметрич-
ной. Наконец, Ли В могут быть разреженными, чем мы, конечно, хотели бы
воспользоваться. Но АВ'1 уже не будет разреженной, ибо обращение разре-
женной матрицы обычно не является разреженным. По этим причинам по-
лезно разработать алгоритмы, которые бы прямо решали обобщенную задачу
на собственные значения.
Преобразования эквивалентности
Мы знаем, что две матрицы имеют одни и те же собственные значения,
если они подобны, и этот факт используется во многих алгоритмах. Если
есть желание разработать алгоритмы в этом духе доя обобщенной задачи, не-
обходимо знать, какие преобразования можно применять к парам матриц, не
изменяя их собственных значений. Оказывается что класс таких преобразо-
ваний даже шире класса преобразований подобия. Говорят, что две пары
матриц (А, В) и (А, В) эквивалентны, если существуют такие невырожденные
матрицы U и К что А = UAVn В = UBV. Можно записать это соотношение ко-
роче как А - \В = U(A - XB)V. В следующем упражнении покажите, что эк-
вивалентные пары имеют одни и те же собственные значения.
Упражнение 6.7.17. Пусть (А,В) и (А, В) - эквивалентные пары: А - ХВ =
= U(A - XB)V.
(а) Покажите, что X есть собственное значение пары (А, В) с соответст-
вующим собственным вектором v тогда и только тогда, когда X является
собственным значением пары (А, В) с соответствующим собственным век-
тором К4?.
(Ь) Покажите, что пары (А, В) и (А, В) имеют по существу одно и то же ха-
рактеристическое уравнение. □
Упражнение 6.7.18. Исследуйте преобразования эквивалентности, заданные
каждой из следующих пар невырожденных матриц, предполагая существова-
ние указанных обращений:
(a) 17= В1, V=I, (b) U=I, У=В~\ (с) U=A'X, V= I, (d) U=I, V=A'1.
□
Вычисление обобщенных собственных систем: симметричный случай
Если А, В е IVх" - симметричные матрицы и В является положительно
определенной, то (А,В) называется симметричной парой (пучком). Пусть
дана симметричная пара (А,В) и В имеет разложение Холесского В = RTR,
18 Основы матричных вычислений
546
Глава 6. Собственные значения и собственные векторы II
где R — верхняя треугольная матрица. Преобразование эквивалентности, за-
данное в виде U = и V = /Г1, преобразует обобщенную проблему собст-
венных значений Av = XBv в стандартную задачу на собственные значения
R~TAR~xy = Ху, где у = Rv. Заметьте, что матрица коэффициентов А =
симметрична. Это доказывает, что симметричная пара имеет вещественные
собственные значения и п линейно независимых собственных векторов.
Эти векторы не являются ортогональными в обычном смысле, но они орто-
гональны относительно соответствующим образом подобранного внутрен-
него произведения.
Упражнение 6.7.19. Симметричная матрица А = /ГгЛЛ"1 имеет ортонорми-
рованные собственные векторы ..., v,„ так что ..., являются собст-
венными векторами пары (А,В). Докажите, что они ортонормированны отно-
сительно энергетического внутреннего произведения (х, у)в - уТВх. □
Интересно, что требование положительной определенности В является су-
щественным: недостаточно просто указать, что А и В симметричны. Можно
показать (ср. с [54, с.304]), что каждая С е JR"XW может быть представлена в виде
произведения С = АВ~\ где А и В симметричны. Это означает, что задачу на
собственные значения для любой матрицы С можно сформулировать как
обобщенную проблему собственных значений Av = XBv, где А и В симметрич-
ны. Вы легко найдете примеры пар (А,В), в которых А и В симметричны, но
собственные значения комплексны.
Один из способов решения проблемы собственных значений для симмет-
ричной пары (Л,В) заключается в следующем: надо выполнить преобразова-
ние RTARA и воспользоваться одной из многих имеющихся методик реше-
ния симметричной задачи на собственные значения. Этот подход имеет те же
недостатки, что и преобразование АВ~{\ 1) Если В плохо обусловлена, собст-
венные значения будут определены неточно, и 2) RrTAR~x не наследует свой-
ства разреженности, которым могут обладать Ап В. Второй недостаток не яв-
ляется непреодолимым. Если В разрежена, ее множитель Холесского R часто
также является в какой-то степени разреженным. Например, если В есть лен-
точная матрица, то и R — ленточная. По этой причине возможно применить
методы разреженных матриц, такие как алгоритм Ланцоша (6.3.23), к матри-
це А = R~TAR~X за разумную цену. Этот метод использует А лишь для того,
чтобы вычислить векторы Ах ддя последовательности выбранных значений х.
Для А указанного вида мы можем найти Ах, сначала решая Ry = х относи-
тельно у, затем вычисляя z = Ay и, наконец, решая RTw = z относительно w.
Ясно, что w = Ах. Если R разрежена, то системы Ry = х и RTw = z можно ре-
шить с малыми затратами.
Во многих приложениях обе матрицы А и В - положительно определенные.
Если А обусловлена лучше В, имеет смысл поменять роли А и В и взять разло-
жение Холесского матрицы А.
Имеется множество других подходов к решению симметричной обобщен-
ной задачи на собственные значения. Ряд методов решения стандартной сим-
метричной задачи на собственные значения можно приспособить к решению
обобщенной задачи. Например, метод Якоби и метод бисекции, описанные в
6.7. Обобщенная задача на собственные значения
547
разд. 6.6, были адаптированы к решению обобщенной задачи. Детали и ссыл-
ки можно найти в [54].
Упражнение 6.7.20. Если В симметрична и положительно определена, то
она имеет спектральное разложение В = VDV^ где Vесть ортогональная матри-
ца, a D - диагональная и положительно определенная. Покажите, что это раз-
ложение можно использовать для приведения симметричной обобщенной
проблемы собственных значений к стандартной симметричной задаче. □
Упражнение 6.7.21. Говорят, что две пары (А, В) и (Л, В) конгруэнтны, если
существует невырожденная матрица X е К”4” такая, что А = ХАХТ и В = ХВХ7.
Очевидно, любые две конгруэнтные пары эквивалентны, но не наоборот. По-
кажите, что если (А, В) есть симметричная пара (и в частности матрица В - по-
ложительно определенная), то (А, В) также является симметричной парой. Та-
ким образом, мы сможем сохранить симметрию, используя конгруэнтные пре-
образования. Приведение к стандартной задаче на собственные значения с
помощью множителя Холесского и преобразование, предложенное в упражне-
нии 6.7.20, являются примерами конгруэнтных преобразований. □
Вычисление обобщенных собственных систем: общая задача
Теперь рассмотрим задачу определения собственных значений несиммет-
ричной пары (А, В).
Мы разработаем аналог приведения к верхней хессенберговой форме и
расширение ^-алгоритма. К сожалению, эти алгоритмы не сохраняют сим-
метрию.
Теорема Шура 5.4.11 гарантирует, что любая матрица в Спхп унитарно по-
добна верхней треугольной матрице. Аналогичный результат для обобщенной
задачи на собственные значения дает
Теорема 6.7.22 (обобщенная теорема Шура). Пусть А,Ве Спхп. Тогда сущест-
вуют унитарные матрицы Q,Z е С™ и верхние треугольные матрицы T,Se Спхп
такие, что QAZ = 7 и QBZ = S. Таким образом,
Q\A - XB)Z = Т -XS.
Доказательство приводится в упражнении 6.7.44.
Пара (Т, S) эквивалентна (Л,В), так что она имеет те же собственные значе-
ния. Но собственные значения (Т, S) нам известны, поскольку
det(X5 - Т) = (Х$ц - tx |)(А,522 “ hl) ••• №пп ~ hn)-
Если существует к, для которого и skk, и tkk равны нулю, то характеристиче-
ский полином будет равен нулю, т.е. пара является вырожденной. В против-
ном случае собственные значения равны tkk/skk, i = 1, ..., п. Некоторые из этих
частных могут быть равными оо.
Числа skk и tkk дают нам больше информации, чем отношение tkk/skk. Если
одновременно skk и tkk близки к нулю, то пара (А,В) становится почти вырож-
денной в том смысле, что она близка к вырожденной паре.
548
Глава 6. Собственные значения и собственные векторы II
Упражнение 6.7.23. Воспользуйтесь теоремой 6.7.22, чтобы проверить сле-
дующие факты. Предположим, что (А,В) - регулярная пара. Тогда степень ха-
рактеристического полинома меньше или равна п. Она точно равна п тогда и
только тогда, когда матрица В невырожденна. Если В вырожденка, то пара
(Л,В) имеет, по крайней мере, одно бесконечное собственное значение. Сте-
пень характеристического полинома равна п минус число бесконечных собст-
венных значений. □
Для вещественной пары (А,В) имеется вещественное разложение, подобное
разложению из теоремы Винтнера-Мурнагана (теорема 5.4.22). В данном ва-
рианте Q и Z - вещественные ортогональные матрицы, S - верхняя треуголь-
ная, а Т - квазитреугольная матрицы.
Приведение к хессенберговой треугольной форме
Теорема 6.7.22 и ее вещественный аналог дают примеры простых форм, к
которым мы постараемся привести пары наших матриц. Возможно, мы смо-
жем разработать алгоритм получения последовательности эквивалентных пуч-
ков, сходящейся к одной из этих форм. Большим шагом в этом направлении
является приведение пары (А,В) к хессенберговой треугольной форме, описан-
ное в следующей теореме.
Теорема 6.7.24. Пусть Л, В е С”х". Тогда существуют унитарные матрицы
Q, Z е С"х", верхняя хессенбергова Н е С"х" и верхняя треугольная U е Спхп та-
кие, что
Q\A - XB)Z= Н - kU.
Существует устойчивый прямой алгоритм вычисления матриц Q, Z, Н и U за
О(п3) флопов. Если А и В — вещественные матрицы, то Q, Z, Н и U можно полу-
чить вещественными.
Доказательство. Доказательство будет состоять из описания преобразова-
ния {А,В) в (Н,Ц). Это преобразование будет представлять собой последова-
тельность отражений и вращений, приложенных слева и справа к А и В. Ка-
ждое преобразование, примененное слева (справа) делает свой вклад в 0*
(или в Z). Любое преобразование, примененное к Л, должно быть примене-
но и к В, и наоборот. Мы знаем из гл. 3, что В можно привести к верхней
треугольной форме с помощью последовательности отражений, действую-
щих слева. Применяя эту последовательность отражений к матрицам В и Л,
получаем новую пару (Л,Б), в которой В является верхней треугольной. Ос-
тавшаяся часть алгоритма выполняет приведение Л к верхней хессенберго-
вой форме без нарушения верхней треугольной формы матрицы В. Первым
основным шагом является занесение нулей в первый столбец матрицы Л.
Обнуляется по одному элементу за раз, снизу вверх. Сначала элемент (л,1)
устанавливается в нуль с помощью вращения (или отражения) в (л, л - 1)-
плоскости, действующего на Л слева. При этом изменяются строки п - 1 и п
матрицы Л. Это же преобразование должно быть приложено к В. Легко про-
верить, что эта операция привнесет ненулевой элемент в нижний треуголь-
6.7. Обобщенная задача на собственные значения
549
ник матрицы В, в позицию (и, п - 1). Этот дефект можно устранить, приме-
нив соответствующее вращение к столбцам п и п - 1 матрицы В. Т.е. мы
применяем вращение в (n, п - 1)-плоскости к В справа. Применяя то же
вращение к А, мы не уничтожим нуль, установленный прежде в столбце 1.
Далее применим вращение к строкам п - 2 и п - 1 матрицы А таким обра-
зом, чтобы нуль появился там в позиции (п - 1,1). Применяя то же враще-
ние к В, получим там ненулевой элемент в позиции (п -1, п -2). Его можно
убрать, применив вращение к столбцам п -1 и п -2. Эта операция не затра-
гивает нули в первом столбце в А. Продолжая таким образом, мы получим
нули в позициях (п - 2,1), (п - 3,1), ...,(3,1). Эта схема не позволяет полу-
чить нуль в позиции (2,1). Чтобы сделать это, мы были бы должны приме-
нить вращение к строкам 1 и 2 матрицы А . Это же вращение, примененное
к В, породит ненулевой элемент в позиции (2,1). Мы могли бы устранить
этот элемент, применяя вращение к столбцам 1 и 2 матрицы В. Но, приме-
няя это вращение к столбцам 1 и 2 матрицы А, мы разрушим все нули, с та-
ким усердием созданные нами в столбце 1. Поэтому нужно оставить (2,1)-
элемент матрицы А как он есть и перейти к столбцу 2. Второй основной
шаг заносит нули в позиции (п,2), (п - 1,2), ..., (4,2) столбца 2 по той же
схеме, которой мы пользовались при формировании нулей в столбце 1. Вы
легко убедитесь, что ни одно из вращений, приложенных справа, не оказы-
вает влияния на столбцы 1 и 2, так что все уже сформированные нули со-
храняются. Затем мы переходим к столбцу 3 и т.д. После п - 2 основных
шагов работа оказывается выполненной. □
Упражнение 6.7.25. Подсчитайте, сколько требуется флопов для выполне-
ния алгоритма, описанного при доказательстве теоремы 6.7.24, предполагая,
что (a) Q и Z были сформированы, (b) Q и Z не были сформированы. В каком
из этих случаев число флопов имеет порядок ^(п5)? □
QZ-алгоритм
Теперь мы можем сосредоточить свое внимание на парах (А,В), у которых А
имеет верхнюю хессенбергову форму, а В — верхнюю треугольную. Можно
даже предположить, что А есть правильная хессенбергова матрица, поскольку
иначе задачу на собственные значения можно будет очевидным образом раз-
ложить на подзадачи. Мы также будем предполагать, что В не вырожденка,
хотя это предположение может быть снято. Форма неявного £?Я-алгоритма,
называемая QZ-алгоритмом [51], может быть использована при нахождении
собственных значений таких пар1. Наше изложение будет похоже на приведен-
ное выше при построении 0Я-алгоритма для SVD в разд. 5.9.
На каждом шаге (^-алгоритма фактически будет выполняться шаг ^-ал-
горитма для матриц АВ~Х и В~ХА одновременно. Разумеется, мы хотели бы сде-
лать это, не формируя эти произведения и не обращая В. Начнем, однако, с
1 Когда для решения обобщенной задачи на собственные значения вызывается функция
MATLAB’a eig, она приводит пару к хессенберговой треугольной форме, как описано выше, и за-
вершает свою работу приведением к обощенной форме Шура с помощью QZ-алгоритма.
550
Глава 6. Собственные значения и собственные векторы Л
безыскусной версии алгоритма. Желая выполнить QA-шаги со сдвигом р, нач-
нем с построения QA-разложений
АВ~{ - р/ = QA и B~lA - pl = ZS, (6.7.26)
где Q и Z - унитарные, a R и S - верхние треугольные. Если мы теперь опреде-
лим А и В как
А = Q 'AZ и В = Q{BZ, (6.7.27)
то сразу увидим, что
АВ' = Q-'ABlQ = RQ+ pl (6.7.28)
и
В-'А = Z~lB~'AZ = SZ + pl. (6.7.29)
Таким образом, оба преобразования АВ~' -> АВи В~'А -> В~хА являются
QR- шагами со сдвигом.
Если мы сможем осуществить преобразование (6.7.27), то выполним QR-
шаги неявным образом. Это и будет теперь нашей целью. Для этого нам пона-
добятся матрицы Q и Z, но мы хотели бы получить их без выполнения QA-раз-
ложений и даже без формирования матриц АВ' и В~'А. Каждая из Q и Z есть
произведение вращений:
<2 = <21 ... Q^ hZ = Z, ...Zn_r (6.7.30)
Если мы имеем эти вращения, то можем применить их к (Л,А), одно за дру-
гим, чтобы преобразовать (Л,А) в (Л, В). Возникает задача: найти недорогой
способ построения каждого вращения по мере необходимости, чтобы можно
было выполнить (6.7.27) эффективно. В разд. 5.7 мы показали, как это сделать
для стандартной задачи на собственные значения. Мы можем провести подоб-
ное доказательство и здесь, но вместо этого просто опишем неявный QZ-алго-
ритм, а затем воспользуемся неявной Q-теоремой для его проверки.
Прежде чем перейти к описанию этого алгоритма, убедимся, что QZ-преоб-
разование (6.7.27) сохраняет хессенбергову треугольную форму пары. Если р
не является собственным значением пары (Л,В), то треугольные матрицы R и S
в (6.7.26) невырожденны.
Упражнение 6.7.31. Предположим, что матрицы R и S в (6.7.26) невырож-
денны.
(а) Покажите, что
А(В~1А - рГ) = (ЛА1 - р!)А
и
В(В~'А - рГ) = (АВ~1 - рГ)В.
6.7. Обобщенная задача на собственные значения
551
(Ь) Покажите, что В = RAS~X и В - RBS~X.
(с) Покажите, что если В есть верхняя треугольная матрица, то такова же и В.
(d) Покажите, что если А есть (правильная) верхняя хессенбергова матрица,
то такова же и Л. О
Все эти результаты имеют место, если р не является собственным значени-
ем. Даже если р является собственным значением, они по большей части оста-
ются верными. Например, А будет правильной верхней хессенберговой матри-
цей за исключением того, что w _ i = 0 (указывая на собственное значение).
Мы не будем рассматривать этот случай, поскольку он требует дополнитель-
ных усилий.
Теперь мы можем описать неявный QZ-uiar. Чтобы начать, нам нужен пер-
вый столбец матрицы Q. Из уравнения AB~l - pl -QR из (6.7.26) и того, что R
есть верхняя треугольная матрица, мы видим, что первый столбец в Q пропор-
ционален первому столбцу матрицы АВ Л - pl, который, как легко видеть, равен
auZ>n'-p
°21^11'
X = 0
О
(6.7.32)
Мы можем вычислить х, приложив незначительные усилия. Пусть матри-
ца Qj будет вращением (или отражением) в (1,2)-плоскости и ее первый стол-
бец пропорционален х. Заметьте, что х2 обязательно не равен нулю, из чего
следует, что Qx есть нетривиальное вращение. Преобразуем (А,В) в (QXA,QXB).
Это преобразование воздействует на первые две строки каждой из матриц.
Это не нарушает верхнюю хессенбергову форму Л, но разрушает верхнюю
треугольную форму В, формируя выступ в позиции (2,1). (Сделайте рисунок.)
Поскольку * 0 и 01 есть нетривиальное вращение, выступ обязательно не
равен нулю.
В оставшейся части алгоритма паре возвращается хессенбергова треуголь-
ная форма посредством прогонки выступа. Пусть Z] будет (нетривиальным)
вращением, действующим на столбцы 1 и 2 так, чтобы удалить выступ, т.е. та-
ким вращением, для которого матрица QXBZX опять принимает верхнюю тре-
угольную форму. Применяя то же самое преобразование к Л, получаем QXAZX,
имеющую выступ в позиции (3,1). Так как л32*0и Zx есть нетривиальное вра-
щение, новый выступ будет обязательно не равен нулю. Его можно удалить
умножением слева на нетривиальное вращение 02, действующее в (2,3)-плос-
кости. Эта операция помещает ненулевой элемент в (2,1)-позицию матрицы
Q\Q\AZV Этот элемент не будет изменен под воздействием последующих пре-
образований. Применяя 02 так же и к В, найдем, что 020/ BZX имеет выступ
(конечно, отличный от нуля) в (3,2)-позиции. Сейчас мы перегнали выступ из
552
Глава 6. Собственные значения и собственные векторы II
(2,1)-позиции матрицы В через А обратно в (3,2)-позицию в В. Теперь мы мо-
жем перегнать его в (4,2)-позицию матрицы А, применив справа вращение Z2,
и т.д. Принцип действий теперь ясен. Выступ может быть прогнан вниз до ос-
нования матриц Л и В. Он будет удален окончательно посредством Zn_x, воздей-
ствующего на столбцы п - 1 и п и убирающего выступ из (п,п - 1)-позиции
преобразованной матрицы В, не вставляя его в А . Этим завершается неявный
QZ-шаг. Мы преобразовали (А,В) в (А, В), заданные посредством
А = QAZ, В = Q'BZ, (6.7.33)
где
Q = Q1Q2 ...Qn^nZ = ZXZ2 ... Zn _ P (6.7.34)
Здесь Q и Z - унитарные матрицы, A - верхняя хессенбергова, а В - верх-
няя треугольная матрицы.
Упражнение 6.7.35. Проверьте, что поддиагональные элементы матрицы А
удовлетворяют условиям ак+х к * 0 при к = 1, 2,..., п - 2. (Вы можете, если захо-
тите, показать, что ап п _ j * 0 тогда и только тогда, когда сдвиг р не является
собственным значением пары (Л,/?)) □
Упражнение 6.7.36. Проверьте, что число флопов, необходимых для выпол-
нения неявного QZ-шага, включая накопление преобразующих матриц Q и Z,
равно О(п2). □
Нам хочется показать, что пара (Л, В) по существу совпадает с парой (Л, В),
приведенной в (6.7.27)1. Следующая теорема делает это возможным.
Теорема 6.7.37. Пусть А е С"х” и пусть В е С”™ невырожденна. Предположим,
что В и В — верхние треугольные невырожденные матрицы, А — верхняя хессен-
бергова, А — правильная верхняя хессенбергова, Q,Q, Z, Z - унитарные,
А = Q~'AZ, В = Q-'BZ, (6.7.38)
А = Q-'AZ, В = Q-'BZ. (6.7.39)
Предположим далее, что QuQ имеют по существу одинаковые первые столб-
цы, т.е. q{ = qxdx, где | dx | = 1. Тогда существуют унитарные диагональные мат-
рицы D и Е такие, что Q = QD, Z = ZE,
А = D'AE иВ = D'BE.
Другими словами, пара (Л, В) по существу совпадает с парой (А, В).
Доказательство. Матрица АВ~{ = Q~[AB~lQ является верхней хессенбер-
говой, а АВ~' = Q 1АВ~'<2 — правильной верхней хессенберговой. Поскольку
1 Более того, вращения Qx,..., Qn_x и Zx,... ,Zn_x (по существу) совпадают с вращениями(5,,...,
0л-1 и Zp ..., Zn_x, в соответствии с (6.7.30), но мы не будем доказывать это.
6. 7. Обобщенная задача на собственные значения
553
Q п Q имеют по существу одинаковые первые столбцы, мы можем приме-
нить неявную 0-теорему (теорема 5.7.24) с АВ1, АВ~1и АВ~[, играющими
роль А, А и А соответственно, чтобы показать, что 0 = QD для некоторой
унитарные диагональные матрицы D. Переписывая «Б-части» выражений
(6.7.38) и (6.7.39) как
ZB~' = B~'Q и ZB ' = B-'Q,
и используя 0 = QD, получим
ZB~' = B-'Q = B'QD = Z(B-'D).
Полагая F= ZB~' = Z(B~'D), мы видим, что ZZ?“'h Z(B~'D) являются QR-
разложениями матрицы E Следовательно, ввиду того, что по существу 07?-раз-
ложение единственно (упражнение 3.2.60), Z и Z по существу совпадают, т.е.
существует такая унитарная диагональная матрица Е, что Z = ZE. Остальные
утверждения доказываются так же. □
Чтобы применить эту теорему, заметим, что преобразующая матрица 0 =
= Qi ... Qn-1 из (6.7.34) имеет такой же первый столбец, как и 015 поскольку ка-
ждое из вращений 02,...» 0„_ i действует на все столбцы кроме первого. Но мы
выбрали 0j так, что его первый столбец пропорционален первому столбцу 0 из
(6.7.26) и (6.7.27), так что 0 и 0 имеют по существу одинаковые первые столб-
цы. Теперь мы можем, применяя теорему 6.7.37, заключить, что пара (А, В) из
(6.7.33) по существу та же, что и пара (А, В) из (6.7.27). Вспоминая (6.7.28) и
(6.7.29), видим, что наш неявный QZ-uiar воздействует на АВ1 и В~*А как QR-
итерация. Это завершает проверку неявного 0Z-niara, по крайней мере в слу-
чае, когда сдвиг не является собственным значением.
Теперь предположим, что мы выполнили последовательность 0Z-inaroB,
чтобы получить последовательность эквивалентных пар (Ак,В^. Тогда, если
сдвиги выбраны разумно, матрицы Ск = АкВкх и Ек- Вк{Ак&упуч сходиться к
верхней треугольной или квазитреугольной форме. Таким образом, Ак = СкВк =
ВкЕк будет также сходиться к квазитреугольной форме, из которой обобщен-
ные собственные значения определяются либо очевидным образом, либо по-
сле простых манипуляций.
Еще следует рассмотреть вопрос о выборе сдвига. Из того, что нам известно
о 0А-алгоритме, мы знаем, что имеет смысл в качестве сдвига для Л-го шага
выбирать собственное значение 2 х 2-подматрицы в нижнем правом углу од-
ной из матриц Ak_xBk\{ или Вк1_{Ак_{. Упражнение 6.7.46 показывает, как найти
эти подматрицы, не определяя Вк[{ явно.
Наше рассмотрение предполагает, что В не вырожденна. Однако неявный
0Z-aлгopитм хорошо работает даже если В вырожденна. В этом случае пара
(А,В) имеет бесконечное собственное значение (предполагается, что пара регу-
лярна). Существует по крайней мере один нуль на главной диагонали матрицы
554
Глава 6. Собственные значения и собственные векторы II
В, который устойчиво перемещается вверх посредством ^Z-алгоритма, пока не
появится возможность исключить бесконечное собственное значение наверху
матрицы [78]. Другой подход заключается в дефляции всех бесконечных собст-
венных значений до применения QZ-алгоритма. Этот подход рассмотрен в уп-
ражнении 6.7.47.
Мы вывели одношаговый QZ-алгоритм. Но, конечно, можно рассмотреть и
двухшаговый (JZ-алгоритм по аналогии с двухшаговым (^-алгоритмом, кото-
рый применяется, когда надо избежать использования комплексной арифме-
тики в случае вещественных Ап В. Такой алгоритм возможен и отличается от
одношагового лишь размером выступов.
Упражнение 6.7.40. Постройте двушаговый неявный (^-алгоритм. □
Дополнительные упражнения
Упражнение 6.7.41. Используя MATLAB, проверьте правильность вычисле-
ний примера 6.7.3. Постройте график решения на отрезке 0 < t < 5. (При этом
полезно еще раз просмотреть упражнения 5.1.19 и 5.1.20.) □
Упражнение 6.7.42. Прорабатывая это упражнение, учтите советы из упраж-
нений 5.1.19 и 5.1.20. На рис. 6.3 все сопротивления равны 1 Ом, а все индук-
тивности - 1 Гн, кроме трех помеченных иначе. Исходно все контурные токи
равны нулю, поскольку выключатель не замкнут. Предположите, что выклю-
чатель замыкается в момент 0.
(а) Запишите систему из четырех дифференциальных уравнений для четы-
рех неизвестных контурных токов. Запишите вашу систему в матричной фор-
ме Вх = Ах - Ь.
(Ь) Решите систему Az - b, чтобы получить стационарное решение диффе-
ренциального уравнения.
Рис. 6.3. Найдите контурные токи, изменяющиеся во времени.
6.7. Обобщенная задача на собственные значения
555
(с) Найдите собственные значения и собственные векторы матрицы А и
воспользуйтесь ими при построении общего решения однородного уравне-
ния Bz = Az.
(d) Получите решение начальной задачи Вх = Ах - Ь, х(0) = 0.
(е) Постройте графики контурных токов x{(t), ..., х4(Г) для 0 < t < 6 секунд.
(Контрольный вопрос: они выглядят реалистично?) □
Упражнение 6.7.43. Выполните следующий эксперимент с помощью
MATLAB’a. Постройте две матрицы А и В\
п = 4;
М = randn(п);
А = М'*М
cond(А)
N= randn (n);
В = N'*N
lam = eig(B);
shift = min(lam)-10*eps;
В = В - shift*eye (n);
cond(B)
Это случайные положительно определенные матрицы. В среднем матрица
А будет достаточно хорошо обусловленной. Однако В была модифицирована,
чтобы сделать ее очень плохо обусловленной.
(а) Объясните, почему В должна быть плохо обусловленной.
(Ь) Вычислите собственные значения пары (А,В) двумя различными спосо-
бами:
format long е
lg = eig(А,В)
lb = eig(A*inv(В))
В любом случае получите одно огромное и п - 1 меньших собственных зна-
чений. Сравните оба результата. Вероятно, они будут не очень хорошо согла-
сованы.
(с) Определите, какое из собственных значений лучше, вычисляя не-
сколько собственных векторов (с помощью [V,D] = eig (А, В), напри-
мер) и вычисляя норму каждой невязки || Av - XBv || дважды: один раз, ис-
пользуя 1g «собственное значение», и еще один раз, используя 1b «собст-
венное значение». □
Упражнение 6.7.44. В этом упражнении вам нужно доказать обобщенную
теорему Шура, которая устанавливает, что каждая пара (А, В) унитарно экви-
валентна верхней треугольной паре (7^ 5): Q\A - XB)Z= Т- XS. Докажите ин-
дукцией по п, размерности матрицы.
(а) Убедитесь, что теорема 6.7.22 верна при п = 1.
(Ь) Теперь предположим, что мы имеем задачу размера п > 1. Нам нуж-
но свести ее к задаче размера п - 1, чтобы можно было воспользоваться
556
Глава 6. Собственные значения и собственные векторы II
индукцией. Важно получить пару векторов v и w g С" таких, что || v ||2 = 1,
l|w||2=l,
Av = aw и Bv = pw, (6.7.45)
где a и p - комплексные скаляры. Сначала предположим, что В не вырожден-
на. Тогда пара (Л, В) имеет п собственных значений. Пусть ц - какое-то из них
и v - соответствующий ему собственный вектор такой, что || v ||2 = 1. Определи-
те w как подходящее кратное Av и покажите, что (6.7.45) выполняется при под-
ходящем выборе аир, для которых должно быть ц = а/р.
(с) Теперь предположим, что В вырожденна. Покажите, что если мы выбра-
ли v так, что Bv = 0, то (6.7.45) выполняется при соответствующем выборе w, a
и р. (Рассмотрите две возможности: Av * 0 (бесконечное собственное значе-
ние) и Av = 0 (сингулярный пучок).)
(d) Мы только что установили, что во всех случаях можно найти v и w с еди-
ничной нормой такие, что (6.7.45) выполняется. Пусть Ии РИбудут унитарны -
ми матрицами с первыми столбцами v и w соответственно. Покажите, что
И^ЛИ и РИ*ВИявляются блочными треугольными матрицами, в частности,
(е) Докажите теорему 6.7.22 индукцией по п. □
Упражнение 6.7.46.
(а) Пусть В - невырожденная блочная треугольная матрица,
g = ^11 ^12
[ О В22 '
Покажите, что В~1 имеет блочную треугольную форму
1 = *
_ О В2-21
Определите, какой должна быть матрица X.
(Ь) Пусть В — невырожденная верхняя треугольная матрица. Покажите, как
можно экономно вычислить нижнюю правую к х А:-подматрицу матрицы
при к = 1, 2, 3. Дайте явные выражения.
(с) Пусть пара (Л,В) имеет хессенбергову треугольную форму. Пусть М обо-
значает нижнюю правую 2 х 2-подматрицу матрицы В~'А. Выполнив соответ-
ствующее разбиение матрицы В~1А, покажите, что М зависит лишь от нижней
6.7. Обобщенная задача на собственные значения
557
правой 2 х 2-подматрицы матрицы Л-1. Приведите явные выражения для эле-
ментов матрицы М.
(d) Пусть пара (А,В) имеет хессенбергову треугольную форму. Пусть Nобо-
значает нижнюю правую 2 х 2-подматрицу матрицы ВА~1. Покажите, что N за-
висит лишь от нижней правой 3 х 3-подматрицы матрицы В~{. □
Упражнение 6.7.47. Рассмотрим пару (Л, В), где Л есть верхняя хессенберго-
ва матрица, В - верхняя треугольная и = 0 при некотором J. Покажите, что
бесконечное собственное значение можно исключить из пучка после конеч-
ной последовательности вращений.
(а) Сначала обрисуем алгоритм, позволяющий переместить бесконечное
собственное значение в позицию первого элемента: первое вращение действу-
ет на В справа и устанавливает bj_ । в нуль. После применения этого враще-
ния к Л возникает выступ, который затем может быть перемещен вращением
слева. Это вращение должно быть приложено и к В. Следующее вращение
прилагается к В справа, чтобы занулить bj_2j_2- Это порождает другой выступ в
Л, который можно уничтожить вращением, действующим слева. Покажите,
что можно продолжать этот процесс до тех пор, пока элемент не будет уста-
новлен в нуль; при этом модифицированная матрица В остается верхней тре-
угольной (к тому же Ь22 = 0), а Л — верхней хессенберговой. Примените справа
к Л еще одно вращение, чтобы установить a2i в нуль. Теперь покажите, что бес-
конечное собственное значение может быть исключено с этой позиции.
(Ь) Набросайте алгоритм, аналогичный описанному в п. (а), который пере-
гоняет бесконечное собственное значение в последнюю позицию.
Если j < п/2, выполнение алгоритма из п. (а) обходится дешевле, в против-
ном случае алгоритма из п. (Ь) экономичнее. □
Итерационные методы
для линейных систем
В этой главе мы вернемся к задаче о решении линейной системы Ах = b с
невырожденной п х «-матрицей А. На современных компьютерах эта задача
может быть решена без особых трудностей даже для весьма больших значений
п методом исключения Гаусса. Но если п будет совсем большим (к примеру,
равным нескольким тысячам), а матрица А — очень разреженной (например,
99.9% ее элементов равны нулю), то итерационные методы становятся более
эффективными. Эта глава начинается с раздела, в котором показывается, как
могут возникать такие большие разреженные системы. Затем вводятся и ана-
лизируются классические итерационные методы. Далее обсуждаются методы
спуска, включая эффективный метод сопряженных градиентов для решения
положительно определенных систем. Постоянно показывается важность прие-
мов предобуславливания. Метод сопряженных градиентов трактуется как один
из широкого семейства методов крыловского подпространства. Глава заканчи-
вается кратким обсуждением методов крыловского подпространства для неоп-
ределенных и несимметричных задач.
В этой главе мы ограничиваемся только вещественными системами, но все
сказанное может быть обычным образом перенесено и на комплексный случай.
7.1. Модельная задача
Большие разреженные матрицы неизбежно возникают при численном ре-
шении дифференциальных уравнений с частными производными (УРЧП).
Пройдем весь обычный для этого путь шаг за шагом, начав с простого обыкно-
венного дифференциального уравнения (ОДУ). Оно описывает некоторую од-
номерную задачу — одномерную в том смысле, что есть одна независимая пере-
менная, скажем, х. Пусть функция/(х) задана при 0 < х < 1 и мы хотим найти
функцию м(х), удовлетворяющую ОДУ
-и"(х) = /(х), 0 < х < 1,
(7.1.1)
7.1. Модельная задача
559
и граничным условиям
w(0) = Го, и(1) =
(7.1.2)
Здесь TQ и Т{ — два заданных числа. Граничные задачи такого типа возника-
ют в самых различных постановках. Например, если нужно найти распределе-
ние температуры м(х) внутри однородной стены, то придется решать такую за-
дачу. В ней числа Го и Тх задают температуру окружающей среды на внешних
поверхностях стены, а функция /(х) описывает тепловые источники внутри
стены.
Это очень простая задача. Для некоторых f ее можно легко решить
путем двукратного интегрирования f и использования граничных усло-
вий для нахождения констант интегрирования. Но мы не пойдем по та-
кому пути, а используем эту задачу как промежуточный шаг к более
сложной граничной задаче, включающей УРЧП. Для этого с помощью
метода конечных разностей построим приближенное решение, как в
примере 1.2.12.
Пусть h = 1 / m — малое приращение, где m — достаточно большое положи-
тельное целое (например, 100 или 1000), и обозначим через х, точки, равно-
мерно распределенные на отрезке [0, 1]. Так, х0 = 0, хх = й, х2 = 2й,..., xm = mh = 1
или, более кратко, х, = ih , / = 0, 1, 2, ..., т. Будем искать приближенное реше-
ние уравнения (7.1.1) в точках х0, х1}..., хт. Так как уравнение (7.1.1) выполня-
ется в каждой из этих точек, то
-w"(x,) - f(x^ i = 1, 2, ..., т - 1.
Как отмечалось в примере 1.2.12 (и в упражнении 1.2.21), хорошим при-
ближением для второй производной будет
ujx^-lujx,) +u(xi+[)
(7.1.3)
Подставляя это приближение в ОДУ, получим при i = 1, 2, ..., т - 1:
-и(х^) + 2и(х{) -Ц(х/Ч1)
h2
Хотя это лишь приближенные равенства, их трактовка как уравнений и
последующее точное решение такой системы с целью получить хорошее
приближение к истинному решению в точках сетки х, не противоречит
здравому смыслу. Поэтому пусть ..., um _ j обозначают приближения к
м(х0, ..., u(xm _ J, полученные путем точного решения этих уравнений,
так что
-Uj_ j + 2u( - ui+ j = й2/(х,), i = 1, 2, ..., m - 1.
(7.1.4)
560
Глава 7. Итерационные методы для линейных систем
Здесь для удобства обе части умножены на /г. Так как х0 = 0 и хт = 1, имеет
смысл положить и(} = То и ит = Т\ в соответствии с граничными условиями
(7.1.2). Граничное значение используется в (7.1.4) при / = 1, а граничное зна-
чение ит — при i = in - 1. Тем самым (7.1.4) - это система из т - 1 линейных
уравнений с т - 1 неизвестными wl?..., ит~,, и поэтому она может быть записа-
на в матричном виде как Аи = Ь, где и теперь — это вектор-столбец с неизвест-
ными,
-1
2 -1
-1 2 \
\ -1
-1 2 -1
-1 2
(7.1.5)
и
’ h2f(X]) + T0
h2f(x2)
л2/и3)
A2/(V2>
h2f(xm_l) + T}
Заметим, что граничные значения отнесены к Ь> так как это известные ве-
личины. Матрица коэффициентов А невырожденна (упражнение 7.1.14), так
что система имеет единственное решение. Решив ее, мы получим приближе-
ния к и (х) в точках сетки х,.
Матрица А обладает различными полезными свойствами. Ее симметрия
очевидна. Она к тому же положительно определенная (упражнения 7.1.15 или
7.3.37). Она также весьма разреженная и при этом трехдиагональная. Смысл
последнего ясен: каждое неизвестное прямо связано только с ближайшими
соседями.
Для решения такой простой системы не нужны итерационные методы. Это
простейший случай ленточной матрицы. Лента сохраняется и при выполне-
нии разложения Холесского, так что затраты на решение системы составляют
О(т) флопов. Наряду с методом Холесского можно использовать и метод ис-
ключения Гаусса без частичного выбора главного элемента, поскольку тогда
также сохраняется трехдиагональная структура. Этот вариант даже лучше, ибо
в нем не нужно вычислять т - 1 значений квадратного корня. Но вернемся к
нашему основному вопросу о том, как на практике возникают примеры боль-
ших разреженных систем, для решения которых применение итерационных
методов оказывается предпочтительным.
7.1. Модельная задача
561
Модельное УРЧП (два измерения)
Пусть Q - некоторая ограниченная область плоскости с границей дО,
Дх,у) - заданная на Q функция, ag(x,y) - функция, заданная на д£1. Рассмот-
рим задачу о нахождении функции и(х,у), удовлетворяющей уравнению в част-
ных производных
и граничному условию
и = g на d£L. (7.1.7)
УРЧП (7.1.6) называется уравнением Пуассона. Оно может быть использо-
вано для описания широкого круга явлений, включая распространение тепла,
химическую диффузию, течение жидкости, пластичность и электростатику.
В типичной задаче теплопроводности и(х,у) представляет температуру в точке
(х,у) плоского поперечного сечения Q однородной колонны. Через функцию g
задается температура на поверхности колонны, a f(x,y) описывает источники
тепла внутри колонны. Поскольку независимых переменных теперь два (это х
и у), будем называть такую задачу двумерной.
При определенном выборе/и g решение такой задачи может быть найдено
точно, но обычно оно находится лишь приближенно. Посмотрим, как можно
решить уравнение (7.1.6) численно с помощью метода конечных разностей. Для
простоты ограничимся тем случаем, когда Q = [0, 1] х [0,1] является единичным
квадратом. Обозначим через h = 1 / т приращение и зададим счетную сетку то-
чек в О с шагом h. Точка (/,/) сетки — это (х„ уу) = (ih, jh), где i,j = 0,..., т. Сетка
с h = 1/5 показана на рис. 7.1.
Будем аппроксимировать УРЧП (7.1.6) системой разностных уравнений на
этой сетке. Аппроксимацию, которую мы применяли для обычной производ-
ной и”(х ), можно также использовать и для частных производных, поскольку
Рис. 7.1. Счетная сетка с h = 1/5 в области Q = [0, 1] х [0, 1].
562
Глава 7. Итерационные методы для линейных систем
частная производная определяется как обычная производная по одной пере-
менной при фиксированном значении другой переменной. Следовательно,
(7.1.3) приводит к приближению
Здесь значение переменной у фиксировано. Аналогично для второй произ-
водной по у
д2и . . и(^,>У,-|)-2и(х1,уу) +«(%,,У.+1)
W ?.
Подставляя эти приближения в (7.1.6), мы видим, что решение уравнения
(7.1.6) удовлетворяет приближенному равенству
-^(у1,У7) + 2ц(х/,уу)- к(х/Ч1,уу)
й2
+ -4/(х/,уу 1) + 2Ц(х<.,уу)-Ц(х/,уу+1) *
й2 3
в каждой внутренней точке сетки, т.е. при itj = 1,..., т - 1. Это приближенные
равенства, а не уравнения, но снова трактуя их как уравнения и решая точно,
мы надеемся получить хорошее приближение для истинного решения и(х,у).
Поэтому рассмотрим систему уравнений
+ 2uiJ - u!+iJ -цМ-1 + 2ui,j - ui.j+\ = f
h2 h2 Jij’
которая после очевидного преобразования примет вид
- и - I + - w,.,.+ ! - ui + lJ = h2fij, ij = 1, .... m - 1. (7.1.8)
Здесь введено сокращенное обозначение /у = f(xify).
Каждое уравнение содержит пять неизвестных, относительное расположе-
ние которых на сетке представлено левой диаграммой рис.7.2. Вес каждого из
них указан на правой диаграмме рис. 7.2. Это пятиточечный шаблон для ап-
проксимации уравнения Пуассона.
Граничные значения м/у, входящие в уравнения для тех точек сетки, кото-
рые примыкают к границе, могут быть определены из граничных условий.
Например, уравнения для точек сетки (f, т - 1) (они примыкают к верхней
границе) содержат «неизвестные» uim9 которые задаются граничным условием
uim = При таком понимании (7.1.8) можно рассматривать как систему
(т - I)2 уравнений с (т - I)2 неизвестными ии, ij = 1, ..., т - 1. После ее ре-
7.7. Модельная задача
563
М+1 — 1
i-lj----- i,j ----i+lj — 1 -------- 4----------1
ij-1 —1
Puc. 7.2. Пятиточечный шаблон.
шения на точках сетки получатся приближения » w(xz,yy) решения уравне-
ния (7.1.6) с граничными условиями (7.1.7).
Наши уравнения линейны и поэтому могут быть записаны в матричном
виде Аи= Ь. Но перед этим нужно решить, в каком порядке неизвестные бу-
дут расположены в векторе и. (В случае ОДУ нумерация неизвестных была
очевидной.) В каждой точке сетки есть только одно неизвестное (рис. 7.1).
Можно упорядочить например, по строкам, столбцам или диагоналям сет-
ки. Пусть они упорядочены по строкам. Первая строка содержит ихл,..., ит_ м,
во вторую стоку войдут М| 2, ит _ 12, и т.д. Следовательно, и — это вектор-
столбец, определенный в виде
иТ = [мм, ..., ит _ ит _ и, ...» ит _ L т _ J.
По той же схеме упорядочим элементы h2/^ (и граничные члены там, где
они есть) в векторе Ь. Решив вопрос о порядке перечисления компонент, мож-
но теперь записать (7.1.8) в матричной форме Аи = Ь.
Упражнение 7.1.9. Определите форму матрицы Л, соответствующей системе
(7.1.8) и упорядочиванию уравнений и неизвестных, описанному в предыду-
щем абзаце. □
Как и в одномерном (ОДУ) случае, матрица А очень разрежена. Так как ка-
ждое уравнение в (7.1.8) связывает только пять неизвестных, в каждой строке
матрицы А отличны от нуля не более пяти элементов. Это так независимо от
способа упорядочивания. Снова очевидна причина разреженности: каждое не-
известное непосредственно связано только с четырьмя своими ближайшими
соседями. При выбранном нами (и при любом другом) упорядочивании все
элементы главной диагонали матрицы А равны 4. Это тот коэффициент 4, на
который умножается ии в уравнении, соответствующем точке сетки (JJ). Сразу
перед и после 4 стоит -1, на которую умножаются члены ии_ j и ui i+ 1 с исклю-
чениями вблизи границ. Коэффициенты -1 при Uj_ и ui+lJ- будут расположе-
ны в строке через т - 1 шаг по обе стороны от главной диагонали. Эту конст-
рукцию не очень удобно описывать, но она должна быть понятна тем читате-
лям, которые выполнили упражнение 7.1.9. Ненулевые элементы матрицы А
не сгруппированы так тесно вокруг главной диагонали, как это было в случае
УРЧП, и полуширина ленты теперь равна т. Можно ли надеяться на сжатие
ленты путем изменения способа упорядочивания неизвестных? Это потребо-
вало бы размещения каждой точки сетки сразу после двух из ее ближайших
564
Глава 7. Итерационные методы для линейных систем
соседей и сразу перед двумя другими, что, очевидно, невозможно. Выбранное
нами упорядочивание представляется одним из наиболее подходящих с точки
зрения минимизации ширины ленты. Главное различие между одномерным и
двумерным случаями как раз и составляет ширина ленты.
Описание матрицы А упрощается при использовании блоков. Размеры А
равны п х п, где п = (т - I)2. Можно описать ее как (т - 1) х (т - 1)-блочную
матрицу с блоками размеров (т - 1) х (т - 1):
-/
Т -I
-I Т \
•. -I
-I Т -I
-I т
(7.1.10)
где I - (m - 1) х (щ - 1)-единичная матрица, а Т- (m - 1) х (т - 1)-трехдиаго-
нальная матрица,
-1
4 -1
-1 4
Такой способ записи А наглядно указывает на ее симметрию. Она также не-
вырожденна (упражнение 7.1.16) и даже положительно определена (упражне-
ние 7.1.17). Следовательно, система Аи = b имеет единственное решение, кото-
рое аппроксимирует решение УРЧП.
Перейдем к обсуждению процедуры решения системы Аи = Ь. Наиболее
очевидное различие между одномерным и двумерным случаями состоит в
том, что теперь размеры матрицы стали весьма большими. Теперь порядок
матрицы равен п = (т - 1) х (т - 1), тогда как в одномерном случае п = т - 1.
Поэтому порядок сам по себе может быть проблемой. Например, при шаге
сетки h - 1/101 (это соответствует т = 101) нам придется решать систему из
100 уравнений в одномерном случае и систему из 10000 уравнений в двумер-
ном. Но нам необходимо решать УРЧП. Если полученное приближенное ре-
шение оказывается недостаточно точным, можно улучшить его путем умень-
шения й, т.е. переходом на более мелкую сетку. Это, конечно, увеличивает
порядок системы Аи = Ь. При этом в одномерном случае не возникает ника-
ких серьезных затруднений. Порядок матрицы равен О(т), и такого же по-
рядка будет число флопов, необходимых для решения системы методом ис-
ключения Гаусса в ленточном варианте. При уменьшении h вдвое объем
7.7. Модельная задача
565
вычислений удваивается. В двумерном случае ситуация будет намного хуже.
Тогда порядок матрицы примерно т2, так что уменьшение h вдвое учетверяет
этот порядок. Например, при h = 1/201 придется решать систему из 40000
уравнений.
Порядок системы - это только часть проблемы. Есть также вопрос о ши-
рине ленты, который уже упоминался выше. В одномерном случае полуши-
рина ленты всегда равна 2 независимо от порядка системы. В двумерном слу-
чае полуширина равна т и поэтому увеличивается с уменьшением h. Оценим
затраты на решение системы Аи = Ь ленточным вариантом разложения Холес-
ского, описанным в разд. 1.5. Там отмечалось, что число флопов для реше-
ния системы порядка п с полушириной ленты s составляет примерно п^/2.
Сейчас п = (т - I)2 и s - т, так что ns2/2 « 0.5 ди4. Поэтому при уменьшении h
вдвое, т.е. при удвоении т затраты увеличиваются в 16 раз.
Прикинем расход памяти. У матрицы А менее 5п элементов отличны от
нуля (<5 на строку), так что она может быть расположена в памяти очень ком-
пактно. (В самом деле, нет смысла размещать А целиком - она состоит из чи-
сел 4 и -1, расположенных в определенном порядке. Если известен шаблон их
расположения, то тем самым известна и матрица.) При использовании метода
Холесского нужно вычислять и накапливать множитель Холесского, который
наследует ленточную структуру А, но будет менее разреженным. Тогда как по-
давляющее большинство элементов внутри ленты в А равно нулю, лента в G за-
полнена ненулевыми элементами, которые должны сохраняться. Необходим
объем памяти для ns * т3 чисел. Следовательно, при уменьшении h вдвое по-
требуется в 8 раз больше памяти.
Неизбежны ли такие затраты или есть какая-то возможность обойти их?
Нетрудно получить некоторые основные нижние оценки по памяти и объему
вычислений. Если матрица имеет очень простую форму, ее можно вообще не
хранить. Но представляется неизбежным хранение решения и, состоящего из
п чисел. Следовательно, п — это нижняя оценка требуемой памяти. Для на-
шего модельного УРЧП п » т2. В сравнении с этим уровнем память для хра-
нения т3 элементов в методе Холесского представляется чрезмерной. И на
самом деле это так. Почти все итерационные методы, которые будут обсуж-
даться в этой главе, требуют для своей работы хранения числа элементов,
умеренно кратного п1.
Теперь оценим затраты на сами вычисления. Каждый из п элементов и
должен быть вычислен, и на это нужно потратить хотя бы один флоп, так что
и здесь п годится в качестве нижней оценки вычислительных затрат. Для ре-
шения нашей модельной УРЧП-задачи методом Холесского потребуется
0.5ал4 * 0.5п2 флопов, и поэтому здесь тоже есть над чем подумать. Вряд ли
найдется метод с затратами всего в несколько п флопов, но не стоит отбра-
сывать возможность существования метода с затратами в Сп флопов, где С -
некоторая константа. Оказывается, что лучшие итерационные методы дости-
гают этого уровня затрат по крайней мере для матриц такой простой структу-
1 Одно поучительное исключение - известный GMRES-метод для несимметричных систем.
См. разд. 7.9.
566
Глава 7. Итерационные методы для линейных систем
ры, как в нашей задаче. Постоянная С обычно велика и Сп > 0.5л2 при не
очень больших п. Но при совсем больших п итерационные методы становят-
ся предпочтительней.
Трехмерная задача
Мы живем в трехмерном мире или это нам так кажется. Следовательно, во
многих приложениях есть три независимые переменные. Трехмерный аналог
для (7.1.6) - это трехмерное уравнение Пуассона
где Q — некоторая область в R3. Чтобы не усложнять обсуждения, положим Q =
[0, I]3, т.е. возьмем единичный куб. Граничные условия будем считать задан-
ными в виде (7.1.7). Дискретизация УРЧП, подобных этому, приводит к боль-
шим системам уравнений.
Упражнение 7.1.12. Напишите систему уравнений, аналогичную (7.1.8), ко-
торая будет аппроксимировать решение уравнения (7.1.11). Сколько в ней не-
известных? (Возьмите h = l/т.) Сколько неизвестных входит в каждое уравне-
ние? □
Упражнение 7.1.13. Рассмотрим систему уравнений, получившуюся в пре-
дыдущем упражнении. Пусть неизвестные иик и компоненты fiJk упорядочены
некоторым образом и система записана в матричном виде Аи = Ь. Как и в слу-
чае одного и двух измерений, А будет положительно определенной и ленточ-
ной. Что такое полуширина ленты для Л? Если решать эту систему ленточным
вариантом метода разложения Холесского, то сколько для этого потребуется
памяти? И сколько для этого потребуется флопов? □
Из двух предыдущих упражнений видны трудности решения трехмерных
задач методом исключения Гаусса. Даже на вполне умеренной сетке с шагом
h = 1/100 получается матрица порядка п « 106 и полушириной ленты s « 104. Ре-
шение такой системы методом Холесского потребует 0.5 х 1014 флопов и памя-
ти для Ю10 чисел. При уменьшении h вдвое время счета увеличится в 128 раз, а
расход памяти - в 32 раза. Эти сравнения показывают, что размер ячеек сетки,
при котором итерационные методы становятся предпочтительными, достига-
ется очень быстро. В самом деле, итерационные методы просто необходимы
для решения таких задач.
Тенденция вычислительных задач становиться все более трудными с воз-
растанием числа измерений хорошо известна как повышение сложности по раз-
мерности.
Некоторые заключительные замечания
Изучение дискретизации УРЧП не является целью этой книги. Здесь рас-
сматривались только основные технические приемы. Для более детального оз-
накомления см. библиографию, например, [6, 69].
7. L Модельная задача
567
Наша модельная задача — простейшая из широкого класса эллиптических
граничных задач. Более сложные задачи возникают при рассмотрении облас-
тей с нерегулярными угловыми точками, дифференциальных операторов с пе-
ременными коэффициентами и других типов граничных условий. Итерацион-
ные методы, обсуждаемые в этой главе, могут быть приспособлены для реше-
ния широкого круга таких задач.
Один подход для решения модельной задачи (7.1.8), оставшийся за рамка-
ми этой книги, — так называемые быстрые алгоритмы Пуассона. Это прямые
методы, основанные на быстром преобразовании Фурье, циклической редук-
ции или обеих концепциях вместе. Для нашей модельной задачи и других про-
стых задач они близки к оптимальным, но область их применения ограничена.
Иногда они вставляются в предобуславливатели для более сложных задач.
Краткий обзор по быстрым алгоритмам Пуассона приводится в [6].
Дополнительные упражнения
Упражнение 7.1.14. Покажите в этом упражнении, что матрица Л из (7.1.5)
невырожденна. Один из признаков невырожденности состоит в том, что если
Aw = 0, то обязательно w = 0. Поэтому предположите, что Aw = 0.
(а) Покажите, что уравнение Aw = 0 эквивалентно однородной системе раз-
ностных уравнений
-Wj _ ! + 2Wi - W'r+ j = 0, i = 1, ..., m - 1,
с граничными условиями w0 = 0 и wm = 0. Покажите далее, что
Другими словами, каждое внутреннее значение wz есть среднее своих соседей.
(Ь) Пусть ц = min{w0, ..., wj . Докажите, что если w, = ц в некоторой внут-
ренней точке, то обязательно Wj_ t = wz+1 = ц. (Возможно, проще показать об-
ратное: еСЛИ Wj _ [ > Ц ИЛИ ! > Ц, ТО Wj > ц.)
(с) Пусть ц = maxfwo, ..., wj. Докажите, что ц = 0.
Докажите, что А невырожденна.
При решении этой задачи вы увидели и использовали дискретный вариант
принципа максимума для гармонических функций. □
Упражнение 7.1.15. В упражнении 5.4.37 вы показали, что симметричная
матрица будет положительно определенной тогда и только тогда, когда все ее
собственные значения положительны. Используйте этот факт, теорему Герш-
горина (упражнение 6.5.30) и результат предыдущего упражнения для доказа-
тельства положительной определенности матрицы Л из (7.1.5). □
Упражнение 7.1.16. Используйте рассуждения из упражнения 7.1.14 для до-
казательства невырожденности матрицы А из (7.1.10) (и (7.1.8)). □
Упражнение 7.1.17. Используйте рассуждения из упражнения 7.1.15 для дока-
зательства положительной определенности матрицы А из (7.1.10) (и (7.1.8)). □
568
Глава 7. Итерационные методы для линейных систем
7.2. Классические итерационные методы
Нас интересуют прежде всего разреженные матрицы, но при описании ал-
горитмов мы можем считать, что А е Е"хл - это (почти всегда) любая невырож-
денная матрица. Минимальное требование состоит в том, что все элементы аг,
ее главной диагонали должны быть отличны от нуля. Пусть b е R” и наша цель
- решить систему Ах = b или Аи = Ь. В первых главах неизвестный вектор обо-
значался через х, а в примерах предыдущего раздела - через и, (Это изменение
было сделано потому, что символ х использовался там в другом смысле.) Те-
перь неизвестный вектор будет снова обозначаться через х, но возвращение
здесь к и возможно там, где это будет уместно.
Для начала работы итерационного метода нужно некоторое начальное при-
ближение х(0) - вектор из R", как-то аппроксимирующий точное решение.
Имея х(0), можно использовать его для получения нового приближения х(1), ко-
торое затем применить для получения следующего приближения х(2), и т.д. Так
возникает последовательность приближений (х(*;), которая (как надо на это
надеяться) будет сходиться к точному решению х.
На практике итерации не делаются сколь угодно долго. Когда х(Л) станет
достаточно близким к решению (как это будет видно, например, по величине
|| Ь - Ах{к} ||), итерации прекращаются и х(/° рассматривается как адекватная ап-
проксимация решения. Число итераций зависит от той точности, которой
нужно достигнуть.
Для итерационных методов, которые мы собираемся изучать, не нужно хо-
рошего начального приближения. Если у нас нет хорошего начального при-
ближения для х, будем полагать х(0) = 0. Конечно, знание хорошего начального
приближения полезно, поскольку тогда для получения решения потребуется
меньше итераций.
Возможность применить хорошее начальное приближение и возможность
прекратить итерации, если нужен только грубый результат, - это два важных
преимущества итерационных методов по сравнению с прямыми методами
вроде исключения Гаусса. Последнее не требует применения хорошего на-
чального приближения и сводится к выполнению заранее определенной по-
следовательности действий, приводящей в конце к решению. Если эти дейст-
вия не выполнены до конца, то тогда считается, что результата нет.
Метод Якоби
Каждый из методов этого раздела полностью определяется описанием
того, как известное приближение х(к) используется для получения следующе-
го приближения х(к+ °. Поэтому предположим, что у нас есть х(к\ и попробу-
ем простым способом улучшить его, а именно используем z-e уравнение, что-
бы скорректировать z-e неизвестное. В системе Ах = Ь уравнение с номером i
имеет вид
= />„
/=1
7.2. Классические итерационные методы
569
и его можно переписать, разрешив относительно как
X. = — I bt ~Yauxj4 (7.2.1)
поскольку, как мы предположили, аи * 0. Если в (7.2.1) заменить х на х(к\ ра-
венство там, вообще говоря, будет нарушено. Определим х^+,) так, чтобы z-e
уравнение снова стало точным:
aij \ J* '1 7
(7.2.2)
Выполнив это для i = 1, ..., п, мы получим наше следующее приближение
х(к + °. Такой алгоритм называется методом Якоби для решения линейных
систем.
Конечно, х(к+ ° не будет точным решением системы Ах = Ь, потому что кор-
рекция х\к} -> х<*+1), проводившаяся с помощью только z-го уравнения, по-
влияет на все те другие уравнения, в которые входит неизвестное х,. И повто-
рение процедуры (7.2.2) для к = 0, 1, 2,.. лишь позволяет надеяться на сходи-
мость приближений к точному решению х.
3.902 3.9965 3.99988
х(10) = 2.899 , х<20> = 2.9965 , х<30> = 2.99987
1.914 1.9970 1.99989
0.935 0.9977 0.99992
которые стабильно стремятся к точному решению х = [4, 3, 2, 1]г. Лю-
бой желаемой точности (ограниченной лишь ошибками округления)
здесь можно достичь путем выполнения подходящего числа итераций.
Например, х(80) совпадает с точным решением в двенадцати десятичных
знаках.
Отметим, что элементы главной диагонали матрицы коэффициентов отно-
сительно велики по сравнению с ее внедиагональными элементами. Это обес-
печивает сходимость, как будет показано в следующем разделе. □
570
Глава 7. Итерационные методы для линейных систем
Упражнение 7.2.4. Пусть D — диагональная матрица с такой же диагональю,
как у А. Покажите, что формула (7.2.2), определяющая метод Якоби, может
быть записана в матричном виде
х{к + l> = ZTl[(Z) - А)х{к} + Ь]. (7.2.5)
Покажите далее, что
+ = х(к) + D~lr(k\
где ikk} = b- Ах(к) — невязка после к итераций. □
Упражнение 7.2.6. Напишите простую компьютерную программу, реали-
зующую итерации Якоби (7.2.2), и примените ее для проверки результатов
примера 7.2.3. Отметьте, как легко это программируется на Фортране, С и лю-
бом другом языке. Особенно легко написать MATLAB-программу, реализую-
щую любую из формул, указанных в упражнении (7.2.4). □
Упражнение 7.2.7. Воспользуйтесь своей программой из упражнения 7.2.6
для решения системы
5 1 Г
1 4 1
1 1 3
*1
х2
х3
ТО
12
12
методом Якоби с начальным приближением х(0) = 0. При этом наблюдайте за
приближениями х{к} и невязками = b - Ах{к}. Сколько нужно итераций,
чтобы || ||2 < 10~5? Насколько хорошо х{к} аппроксимирует точное решение
[1,2, 3]гдля этого значения к? □
Нетрудно применить метод Якоби к модельной задаче (7.1.8). Уравнение,
связанное с точкой (ij) счетной сетки, имеет вид
-и. _ 1 ; - М; ; _ 1 + 4«. ; - W; ; + 1 ~ Uj 4 j j = № f j.
t — 1I ,J 1 i,j • J * * • 1 J J ij
Используем его для корректировки соответствующего неизвестного
Разрешая уравнение относительно получим
“и = | [м,- и + M,J- I + uiJ+i + м, + и +
Обозначив текущее приближение через и{к\ запишем новое приближение
и(к + ° в виде
и(к+г> = 1 [и(к) + и(к\ + и(к\ + и(к). . + h2 j ].
l'J 4 1 /-ij /j-i /j+i /+U
Как обычно, граничные значения для и{к\ необходимые при вычислениях в
примыкающих к границе точках сетки, берутся из граничных условий.
7.2. Классические итерационные методы
571
Отметим, что для реализации метода Якоби не нужно записывать систему в
виде Аи = Ь. Не нужно также собирать воедино или запоминать матрицу
(7.1.10), как и упаковывать ии и fj в виде длинных векторов.
Пример 7.2.8. Применим метод Якоби к модельной задаче с функциями
f = 0 и g, заданной в виде
0 при х = 0,
у прих = 1,
g(x,y) = 1
(x-l)sinx приу=0,
х(2-х) приу = 1.
Пусть начальное приближение м(0) = 0. Возьмем три различных счетных сет-
ки с h = 1/10, 1/20 и 1/40. Итерации будем проводить до тех пор, пока измене-
ние в и за итерацию не станет меньше 10“8. Более точно, итерации прекраща-
ются, как только
««'‘•"Hi
Результаты приведены в табл. 7.1. Из нее видно, что сходимость оказалась
медленной и к тому же замедляется с измельчением сетки. Положительным
остается то, что программу для решения этой задачи легко написать и отла-
дить. □
Таблица 7.1. Результаты применения метода Якоби к модельной задаче
h Порядок матрицы Число итераций до сходимости
1/10 81 299
1/20 361 1090
1/40 1521 3908
Метод Гаусса-Зевделя
Теперь рассмотрим следующую простую модификацию метода Якоби.
Пусть нужно решить систему Ах = b, i-e уравнение которой имеет вид
п
Ха‘Л = bi-
/ = !
Как и выше, используем z-e уравнение для коррекции z-ro неизвестного, но
теперь придадим вычислениям последовательный характер. Сначала найдем
из первого уравнения х,(А:+,), затем из второго х^+,), и т.д. На момент решения
z-ro уравнения у нас есть уже найденные х{*+1), ..., х^+1). При нахождении
х^+1) можно использовать эти обновленные значения или взять старые значе-
572
Глава 7. Итерационные методы для линейных систем
ния х\к), ..., х(к). В методе Якоби используются старые значения, а в методе
Гаусса-Зейделя новые, и в этом заключается единственное отличие. Отсюда
вместо (7.2.2) для метода Гаусса-Зейделя получится формула
<>Н
bi
где через ху.} обозначено значение хр полученное последним. Более точно,
итерацию Гаусса-Зейделя можно записать для применения как
for 7=1, ..., n
(7.2.9)
Нет необходимости выделять отдельные ячейки для х{к} и x^+I), достаточ-
но одного массивах. Как только мы вычислим х{(хП1), он будет записан на ме-
сто х\к) (который больше не потребуется) в ячейкухо массива. Таким образом,
на деле итерация (7.2.9) принимает вид
for i =1, .... п
(7.2.10)
Порядок проведения коррекций имеет значение. Если они выполняются,
скажем, в обратном порядке, т.е. для / = п. .... 1, то после итерации получится
другой результат. Будем всегда предполагать, что итерация Гаусса-Зейделя
выполняется в стандартном порядке, для 7=1,..., п. как это записано в (7.2.10),
если не указано что-либо другое. Вопрос о порядке важен, и мы еще вернемся
к нему в связи с модельной задачей (7.1.8).
Возможность сразу запоминать каждое новое значение х,- на месте старого
является преимуществом метода Гаусса-Зейделя по сравнению с методом
Якоби. В некотором отношении это облегчает программирование. Это также
экономит память: для метода Якоби нужно иметь две копии векторах, так как
х{к} приходится хранить до окончания вычисления х(к + °. Если решаемая систе-
ма содержит миллионы неизвестных, каждая копия вектора х потребует для
своего хранения нескольких мегабайтов памяти.
С другой стороны, метод Якоби имеет то преимущество, что все коррекции
(7.2.2) могут выполняться одновременно, и поэтому он очевидным образом
распараллеливается. В противоположность этому вычисления в методе Гаус-
са-Зейделя внешне выглядят на сто процентов последовательными или это
нам так кажется. Ниже будет показано, что распараллеливания можно добить-
ся путем переупорядочивания уравнений.
Теперь на простых примерах оценим быстродействие метода Гаусса-Зейделя.
7.2. Классические итерационные методы
573
Пример 7.2.11. Применение метода Гаусса—Зейделя к простой системе из
примера 7.2.3 дает
4.0013 Г '4.000000142'
х<5) = 2.99929 , х<10) = 2.999999878
1.99990 2.000000018
0.99995 0.999999993
что гораздо лучше, чем итерации по методу Якоби. Совпадение численного
решения с точным в 12 десятичных знаках по методу Якоби наступало после
80 итераций, тогда как в методе Гаусса-Зейделя для этого нужно только 18
итераций. □
Упражнение 7.2.12. Для заданной матрицы А е R"x" следующим образом оп-
ределите матрицы D, Ен F.A^ D- Е- 7; где D диагональна, Е — строго нижняя
треугольная и F - строго верхняя треугольная. Однозначность этого определе-
ния очевидна. Например, -Е есть строго нижняя треугольная часть матрицы А.
(а) Покажите, что итерация Гаусса-Зейделя по формуле (7.2.9) может быть
записана в матричном виде как
х(*+1) = D~\b + Ех«*" + Fx{k}).
(b) В уравнение из п. (а) вектор х(*+1) входит дважды. Разрешив это уравне-
ние относительно х(*+1), вы получите
x(*+I) = (D _ E)~l(b + Fx(k)). (7.2.13)
(с) Пусть М— D- Е. Тем самым М — это нижняя треугольная часть матрицы А,
включая главную диагональ. Убедитесь, что F= М- Л, и затем проверьте формулу
Х(* + О _ х(к) + М~ХГ(к),
где ^к} = Ь- Ах(к) обозначает невязку. □
Упражнение 7.2.14. Напишите простую компьютерную программу для вы-
числениия итераций Гаусса-Зейделя и примените ее для проверки результа-
тов примера 7.2.11. Например, можно написать простую MATLAB-порограм-
му на основе формул из упражнения 7.2.12 или же прорамму на Фортране или
С на основе (7.2.10). □
Упражнение 7.2.15. Используйте вашу программу из упражнения 7.2.14 для
решения методом Гаусса-Зейделя системы
'5 1 Г 1 4 1 1 1 3 '< х2 .*3. = '10' 12 12
с начальным приближением х(0) = 0. Наблюдайте за приближениями х{к) и не-
вязками i*k). Сколько нужно итераций, чтобы || r*k) ||2 < 10~5? Найдите для этого к
574
Глава 7. Итерационные методы для линейных систем
отклонение от точного решения. Сравните эти результаты с тем, что полу-
чилось в упражнении 7.2.7. □
Теперь посмотрим, как метод Гаусса-Зейделя можно применить к модель-
ной задаче (7.1.8). Уравнение, связанное с точкой сетки (ZJ), имеет вид
- и - ии -1 + 4uij - uiJ+i - ui + lJ = h2 fij.
Используем его для корректировки ии. По аналогии с (7.2.10) положим
Uij <- | [«, _ и + «м- I + Uij+l + и,+ и + A2zj. (7.2.16)
Как уже отмечалось, результат итерации Гаусса-Зейделя зависит от поряд-
ка выполнения коррекций. Например, можно двигаться по строкам счетной
сетки (см. рис. 7.1), выполняя коррекции для точек (1,1), (2,1), ..., (т - 1,1),
(1,2), (2,2),..., (т - 1,2),..., (т - \,т - 1). Назовем это стандартным упорядочи-
ванием по строкам. Аналогично определяется стандартное упорядочивание по
столбцам. Можно также ввести обратные упорядочивания по строкам или
столбцам путем обращения прямых упорядочиваний. Результаты итерации для
каждого из упорядочиваний будут немного отличаться друг от друга. Понятно,
что можно рассматривать много других способов упорядочивания.
Пример 7.2.17. Применим метод Гаусса-Зейделя со стандартным упорядо-
чиванием по строкам к модельнной задаче (7.1.8) с граничными условиями из
примера 7.2.8. Результаты расчета представлены в табл. 7.2. Из их сравнения с
результатами примера 7.2.8 видно, что для достижения одинаковой точности в
методе Гаусса-Зейделя нужно лишь чуть больше половины тех итераций, ко-
торые необходимы в методе Якоби. Но и теперь сходимость по-прежнему ос-
тается медленной и при измельчении счетной сетки число итераций возраста-
ет. Тем не менее основные затруднения связаны с большим порядком матри-
цы. Экстраполируя эти результаты, следует ожидать очень медленной
сходимости метода Гаусса-Зейделя на реальных больших задачах. □
Таблица 7.2. Стандартный метод Гаусса—Зевделя для модельной задачи
h Порядок матрицы Число итераций до сходимости
1/10 81 160
1/20 361 581
1/40 1521 2082
Красно-черное и многоцветное упорядочивания в методе Гаусса-Зейделя
Прежде чем перейти к какому-либо более подходящему методу, потратим
немного времени на упорядочивания. Красно-черное упорядочивание1 показа-
но на рис. 7.3. Точки сетки попеременно отмечены как красные и черные на
1 Часто такое упорядочивание называют черно-белым. - Прим, перев.
1.2, Классические итерационные методы
575
шаблоне для их выборки. При красно-черном упорядочивании сначала обновля-
ются значения во всех красных точках, а затем во всех черных. Заметим, что
каждая красная (соответственно черная) точка имеет в качестве своих ближай-
ших соседей только черные (соответственно красные) точки (и в некоторых
случаях граничные точки). Поэтому коррекция Гаусса-Зейделя для каждой
красной точки зависит только от значений и в черных точках, и наоборот. От-
сюда следует, что значения во всех красных точках могут обновляться одно-
временно. Сразу после завершения этой процедуры для красных точек она мо-
жет быть выполнена для черных точек. Красно-черное упорядочивание вос-
станавливает возможность равспараллеливания. При этом для модельной
задачи (7.1.8) скорость сходимости остается такой же, как и в случае стандарт-
ного упорядочивания по строкам. Численные примеры будут приведены ниже.
Теперь рассмотрим упорядочивания в контексте системы Ах = b общего
вида. Для стандартного упорядочивания i = 1, 2, ..., п. Любое другое упорядо-
чивание может быть задано путем применения стандартного упорядочивания
к системе Ах = Ь, получающейся из системы Ах -Ь перенумерацией уравнений
(и перенумерацией неизвестных соответствепнно). Поэтому вопрос об упоря-
дочиваниях может быть сведен к вопросу о перестановках строк и столбцов
матрицы А.
Для красно-черного упорядочивания новая матрица коэффициентов имеет
блочную структуру, а именно
;_Г°| ^1
где и D2 - квадратные диагональные матрицы примерно одного порядка.
Первый блок строк состоит из красных уравнений (со своими соответствую-
щими красными неизвестными), а второй блок - из черных уравнений. Все
неизвестные выбранного цвета можно обновлять одновременно.
Ясно, что большинство систем не допускает красно-черного упорядочива-
ния. Наша модельная задача (7.1.8) и ее трехмерный аналог допускают это, но
многие практические задачи с большими разреженными матрицами не допус-
кают. В таких случаях часто оказывается возможным многоцветное упорядочи-
576
Глава 7. Итерационные методы для линейных систем
вание, при котором используется более двух цветов. Например, при четырех-
цветном упорядочивании
^1 ^12 *13 *14
& _ *21 *2 *23 *24
*31 В32 Е3 В34
_*41 В42 В43 D4
где диагональные матрицы Z>p Z>4 имеют примерно одинаковый порядок.
Все неизвестные в заданном блоке или «цветовом классе» могут обновляться
одновременно.
Симметричная итерация Гаусса-Зейделя
В одной такой итерации объединяются две стандартные итрации Гаус-
са-Зейделя. Первая из них выполняется согласно (7.2.10) в прямом направ-
лении, а вторая, также согласно (7.2.10), - в обратном направлении, т.е. для
«I = п, ..., 1» вместо обычного изменения индекса.
Упражнение 7.2.18. В упражнении 7.2.12 вы узнали, что итерация Гаус-
са-Зейделя может быть представлена в матричной форме (7.2.13).
(а) Выведите аналогичную формулу для итерации Гаусса-Зейделя, когда
индекс в итерации изменяется в обратном порядке.
(Ь) Симметричная итерация Гаусса-Зейделя состоит из прямой итерации
р]
Гаусса-Зейделя, переводящей х(к) вх^ , и следующей за ней итерации Гаус-
са—Зейделя с обратным изменением индекса, переводящей jr 2'вх(Ь1). По-
кажите, что результат симметричной итерации Гаусса-Зейделя удовлетворяет
уравнению
(JD - F)x(k+" = E(D - EY'Fx(k) + [I + E(D - E)~']b.
(с) Покажите, что /+ E(D - E)~[ = D(D - £)_|. Затем используйте это вместе с
уравнением из п. (Ь) для установления того, что результат симметричной ите-
рации Гаусса-Зейделя удовлетворяет уравнению
Мх{к*" = Wx(*> + Z>,
где М= (D- E)D~l(D- F) и N= (D- E)D~'E(D- E)~lF= ED XE Покажите, что М
симметрична, если симметрична А,
(d) Покажите, что для М и N из п. (с) А = М - N. Затем убедитесь, что ре-
зультат симметричной итерации Гаусса-Зейделя удовлетворяет уравнению
Х<* + 1> = х(к) + M-lrU)
с этой матрицей М, где через ИЛ) снова обозначена невязка b - Ах(к). □
7.2. Классические итерационные методы
577
Последовательная верхняя релаксация (SOR)
Процесс коррекции некоторого уравнения путем изменения одного из вхо-
дящих в него неизвестных иногда называют релаксацией. Перед релаксацией
это уравнение не выполняется точно: приравнивание значений обеих его час-
тей возможно лишь с некоторой натяжкой. Коррекция одного из неизвестных
снимает эту неточность. В методе Гаусса-Зейделя происходит последователь-
ная релаксация. Это означает последовательный перебор уравнений и релакса-
цию их друг за другом1.
Во многих случаях сходимость может быть существенно улучшена за счет
верхней релаксации. Это значит, что вместо выполнения коррекции с целью
точно удовлетворить уравнению производится коррекция большего масштаба.
В простейшем случае для этого выбирается множитель релаксации со > 1, на
который каждый раз умножается обычная релаксационная поправка. Это и
есть последовательная верхняя релаксация (SOR — successive overrelaxation), точ-
ная запись которой такова:
for i = 1, ..., п
aii \ J*i 7
8 <— Х-Х,-
х, <- х+со8
(7.2.19)
Из сравнения (7.2.19) с (7.2.10) видно, что SOR совпадает с методом Гаус-
са-Зейделя при со = 1. Можно взять значение со меньше единицы и выпол-
нять тогда нижнюю релаксацию, но это обычно приводит к замедлению схо-
димости.
Так как SOR имеет скорее последовательный (как итерация Гаусса—Зейде-
ля), чем параллельный (как итерация Якоби) характер, для нее нужна только
одна копия вектора х.
Для решения таких небольших задач, как в примерах 7.2.3 и 7.2.11,
верхняя релаксация мало что дает, и поэтому мы сразу перейдем к модель-
ной задаче (7.1.8). Из описания шага (7.2.16) Гаусса-Зейделя видно, что
.для шага SOR
Uij | и + И,7- 1 + UiJ+l + Ul+lJ + Л2/J,
8 <- й - ufJ,
“ij “/j + ®8.
(7.2.20)
Как и для итерации Гаусса-Зейделя, результат SOR-итерации зависит
от порядка проведения обновлений. Обычно используемые упорядочива-
1 В методе Якоби, напротив, производится одновременная релаксация.
19 Основы матричных вычислений
578
Глава 7. Итерационные методы для линейных систем
ния включают стандартные по строкам или столбцам и красно-черное, по-
казанное на рис. 7.3. Можно также применять симметричную SOR-итера-
цию с аббревиатурой SSOR (symmetric SOR), в которой попеременно чере-
дуются прямой и обратный стандартный проходы по строкам (или
столбцам).
Пример 7.2.21. SOR-метод со стандартным упорядочиванием по стро-
кам был применен к модельной задаче (7.1.8) с такими же граничными
условиями, как в примерах 7.2.8 и 7.2.17. Были проведены расчеты с не-
сколькими значениями множителя релаксации со и результаты этих расче-
тов представлены в табл. 7.3. Итерации прекращались в тот момент,
когда
||«(*+1)-<л|2 < 10_8
При со = 1 данные соответствуют методу Гаусса-Зейделя, так что чис-
ла из второй строки совпадают с приведенными в табл. 7.2. Отметим,
что при нижней релаксации (со = 0.8) ситуация ухудшается, а верхняя
релаксация может быть очень эффективной, особенно если в расчете ис-
пользуется значение со, близкое к оптимальному. Для мелкой сетки чис-
ло итераций может уменьшиться в 10 и более раз. Так как SOR-шаг по
объему вычислений лишь немного превосходит шаг Гаусса-Зейделя, со-
кращение числа итераций почти так же сокращает время работы компь-
ютера.
Таблица 7.3. Число SOR-итераций для модельной задачи
Л = 1/10 1/20 1/40
<0 = 0.8 235 845 3018
1.0 160 581 2082
1.4 67 262 955
1.6 42 151 577
1.7 57 96 412
1.8 86 89 252
1.9 176 180 179
2.0 00 00 00
Из приведенных в табл. 7.3 результатов видно, что оптимальное значение
со зависит от размера ячеек счетной сетки (и, конечно, от матрицы коэффи-
циентов А). При h = 1/10 наилучшее со находится вблизи значения 1.6, при
h = 1/20 — вблизи 1.8, а при h = 1/40 — вблизи 1.9. Для большинства задач
оптимальное значение со не известно, но результаты из табл. 7.3 указывают
7.2. Классические итерационные методы
579
на то, что даже при отсутствии подходящего начального приближения с по-
мощью релаксации можно получить существенную экономию. При этом оп-
тимум лучше искать в области верхней, а не нижней релаксации. Однако
SOR расходится при со > 2.
Для нашей модельной задачи оптимальное значение со известно и равно
2
®опт - . . . •
l + sinnA
При h = 1/40 это примерно 1.855. При этом значении со SOR сходится за 137
итераций. □
В качестве упражнения вы можете исследовать сходимость SOR- и
SSOR-метода в случае красно-черного упорядочивания (упражнение
7.2.23). Для модельной задачи (и многих аналогичных ей) SOR-итерации с
красно-черным упорядочиванием или со стандартным упорядочиванием по
строкам имеют такую же скорость сходимости. SSOR-итерации иногда схо-
дятся еще медленнее, но они менее чувствительны к изменению параметра
релаксации со.
Вычисления, описанные в примере 7.2.21, были выполнены по простой
программе на Фортране, в которой была использована формула (7.2.20). Ите-
рацию со стандартным упорядочиванием по строкам можно реализовать в
виде вложенного цикла
for у = 1, ..., т-1
for i = 1, ..., т-1
и <- +И,. Л1 +И/>Л1 +ui+lJ +h2fitj)
8 <r-u-Ui j
Реализация SOR- или SSOR-итерации с красно-черным упорядочиванием
лишь немного сложнее. В частности, при этом не возникает необходимости
формировать и преобразовывать матрицу коэффициентов А и другие связан-
ные с ней матрицы.
В упражнениях 7.2.4 и 7.2.12 вы получили матричные формулы (7.2.5) и
(7.2.13) соответственно для итераций Якоби и Гаусса-Зейделя. Аналогич-
ное выражение может быть получено для SOR-итерации (упражнение
7.2.24). Эти формулы используются при анализе сходимости методов, как
будет показано в разд. 7.3. Они также годятся для написания простых
MATLAB-программ, по которым можно решать небольшие задачи. Но важ-
но знать, что эти формулы непригодны для решения больших задач, по-
скольку тогда реализующие их программы становятся совершенно неэф-
фективными. Вместо этого программирование осуществляется так, как опи-
сано в предыдущем абзаце.
580
Глава 7. Итерационные методы для линейных систем
Блочные итерационные методы
Для всех итерационных методов, рассмотренных в этом разделе, возможны
блочные варианты. Пусть для системы Ах = Ь задано блочное разбиение вида
ь\
Ьг
b<i
где блоки А., на главной диагонали - это квадратные невырожденные матри-
цы. Здесь х. и Ь. обозначают части векторов х и b соответствующей длины.
Блочная итерация Якоби выглядит точно так же, как и обычная, за исключе-
нием того, что в ней участвуют блоки, а не матричные элементы, так что вме-
сто (7.2.2) будем иметь
(7.2.22)
Блочные итерации Гаусса-Зейделя и SOR-итерации изменяются аналогич-
ным образом. Для эффективности блочного алгоритма необходимо, чтобы
блоки Аа на главной диагонали было нетрудно обратить (или вычислить их LU-
разложение).
Рассмотрим, например, матрицу для модельной задачи (7.1.8), записанную
в блочной форме (7.1.10). Чтобы применить блочный алгоритм, использую-
щий такое разбиение, нужно построить £ (/-разложение трехдиагональной
матрицы Г, и мы знаем, что это нетрудно сделать. Каждый блок соответствует
одному ряду (или линии) из полного набора неизвестных на счетной сетке, и
поэтому блочные алгоритмы, основанные на таком разбиении, называют ите-
рациями по линиям (например, итерации Гаусса-Зейделя или SOR-итерации
по линиям).
Итерации Гаусса-Зейделя или SOR-итерации с красно-черным упорядо-
чиванием можно рассматривать как блочные итерации, основанные на (2 х 2)-
разбиении
Л ^12
_Ai Л _
В более общем случае многоцветную итерацию с q цветами можно рассмат-
ривать как блочную итерацию, основанную на (q х ^-разбиении. Здесь обраще-
ние диагональных блоков тривиально, потому что это диагональные матрицы.
Дополнительные упражнения
Упражнение 7.2.23. Напишите программы для решения модельной задачи
(7.1.8) с помощью стандартного метода SOR, SOR с красно-черным упорядо-
7.2. Классические итерационные методы
581
чиванием и SSOR. Используйте каждую из них для решения модельной задачи
с функциями f - 0 и g, заданной в виде
ГО
(x-l)sinx
х(2-х)
при х =0,
при х = 1,
при у = 0,
при у -1,
как в примере 7.2.8. Возьмите сетку с h = 1 / 40. Начиная с м(0) = 0, определите,
сколько итераций требуется для того, чтобы
к‘+,,||2
Так как SSOR-итерации вдвое дороже других, учитывайте каждую SSOR-
итерацию как две другие. Для каждого из этих трех методов попробуйте со = 1.0,
1.1,1.2,..., 1.9. Сравните производительность этих методов между собой. □
Упражнение 7.2.24. (Матричное представление SOR-итерации.)
(а) Взяв SOR-итерацию в форме (7.2.19), покажите, что последовательные
приближения х(к} и х(*+1) связаны между собой равенством
п
.а.х'У*
(Ь) Пусть А= D- Е-F, как в упражнении 7.2.12. Получите следующие соот-
ношения между последовательными SOR-приближениями и х(к + °:
Dx{k + 11 = Dxw + co[Z> + Ех(к + l) + (F - Z>)xw],
-D-.eV+I) = f—D + f\w + b. (7.2.25)
CO J \ CO J
Следовательно, A/x^+° = №(k) + А, где M= — D- E, N=-—— D+ FwA = M- N.
(с) Покажите, что ю ю
х<* + 1) = х(*> + М~^к\
r№Fk} = b-Ax{k\ □
Упражнение 7.2.26. (Матричное представление SSOR-итерации.)
(а) Выведите фрмулу, аналогичную (7.2.25), для SOR-итерации при измене-
нии индекса в обратном порядке.
(Ь) Симметричная SOR-итерация состоит из прямой SOR-итерации, пере-
водящей х(к} в xv , и следующей за ней SOR-итерации с обратным измене-
20 Основы матричных вычислении
582
Глава 7. Итерационные методы для линейных систем
нием индекса, переводящей 2 в х(к+'}. Покажите, что результат SSOR-
итерации удовлетворяет уравнению
(с) Покажите, что I +f——D + ZsV—D-fl = ——D-/A . Затем
СО У^СО ) со ^со )
используйте это вместе с уравнением из п. (Ь) для установления того, что ре-
зультат SSOR-итерации удовлетворяет уравнению
Мх{к + l) = Nx(k} + b,
где
М = -^—D\-D-E I D~‘(-D-F
2-со <со J <со
и
N = 1 — D + F | D' \ — D + F
2-со I со J I со J
Покажите, что М симметрична, если симметрична А.
(d) Покажите, что для М и N из п. (с) А = М - N. Затем убедитесь, что ре-
зультат SSOR-итерации удовлетворяет уравнению
с этой матрицей М, где г{к}-Ь- Ах(к). □
Упражнение 7.2.27. (Эффект сглаживания в итерациях Гаусса-Зейделя.)
Рассмотрим линейную систему Ах = Ь, где А — трехдиагональная матрица из
(7.1.5) размеров 10 х 10, а
Ь = [2 -2 2 -1 0 0 1 -2 2 -2]г.
Нетрудно проверить, что точным решением этой системы является вектор
х= [1 010000 -1 0 -1]г.
7.3. Сходимость итерационных методов
583
Начав с х(0) = 0, выполните по крайней мере 4 итерации Гаусса-Зейделя.
Поскольку точное решение этой системы известно, можно вычислить ошибки
e(i) = х - х(0. Постройте графики ошибок, т.е. для полученного вектора е изо-
бразите точки (/,е,) и соедините их отрезками прямых (на MATLAB’e это
«plot(e)» или «plot( 1 : 10, е)»). Отметьте, что на графике е(0) форма зубцов иде-
альна, но на каждом последующем графике зубцы теряют свою остроту. Гра-
фик е(4) уже совсем гладкий.
Для решения задач с многомерными сетками, подобных (7.1.8), быстрые
итерационные методы с рекуррентным использованием сглаживающих опера-
ций и приближенной коррекцией сетки вполне приемлемы. Метод Гаус-
са-Зейделя является признанным сглаживающим оператором в алгоритмах
для многомерных задач. □
Упражнение 7.2.28.
(а) Повторите упражнение 7.2.27, используя итерации Якоби вместо итера-
ций Гаусса-Зейделя. Отметьте, что метод Якоби не сглаживает ошибку. По-
этому он не применяется для сглаживания при решении многомерых задач.
(Ь) Сглаживающий метод Якоби с коэффициентом сглаживания со < 1 работа-
ет так же, как и обычный метод Якоби, за исключением того, что коррекция
на каждом шаге уменьшается в со раз. Так, вместо х(к+° = х{к} + D~xr{k} (ср. с уп-
ражнением 7.2.4) в сглаживающем методе Якоби нужно выполнять коррекцию
х^к + = х + coZ)"lr
Повторите упражнение 7.2.27, используя сглаживающий метод Якоби при
со=1/2исо = 2/3. Итерации Якоби при 1/2<со<2/3 хорошо сглаживают
результаты. □
7.3. Сходимость итерационных методов
Расщепления
Будем строить теорию сходимости итерационных методов на основе по-
нятия расщепления. Для заданной невырожденной матрицы А размеров п х п
под расщеплением А понимается ее аддитивное разложение А = М - N, где
матрица М также невырожденна. Матрица М называется расщепляющей мат-
рицей. Как будет видно из дальнейшего, ее также можно будет называть пре-
добусловливателем.
Для итерационного метода каждое расщепление можно использовать сле-
дующим образом. Выбрав расщепление, перепишем систему Ах = b в виде
Мх = Nx + b или как х = M~xNx + М~ХЬ и затем определим итерацию одной из
эквивалентных формул
х(*+1) = M~XN х{к} + М~ХЬ
584
Глава 7. Итерационные методы для линейных систем
или
М х(*+1) = Wx(*> + Ь.
(7.3.1)
Для такой схемы невырожденность М — очевидное условие. С практиче-
ской точки зрения важно также, чтобы М можно было легко обратить, т.е. без
особого труда решать системы, для которых Л/служит матрицей коэффициен-
тов. Если приближения сходятся к некоторому х, такое х должно удовлетво-
рять уравнению Мх = Nx + b и тем самым исходному уравнению Ах = Ь, Для
обеспечения быстрой сходимости желательно иметь Л/«Ли7У«0. С этой точ-
ки зрения лучше всего взять М- А и получить результат за одну итерацию, но
для такой матрицы М нарушается условие простоты ее обращения. Поэтому
необходим разумный компромисс: М должна как можно лучше аппроксими-
ровать Л и не иметь слишком сложной структуры.
Все итерационные методы, обсуждавшиеся до сих пор, можно определить с
помощью расщеплений А. В табл. 7.4 для классических итераций указаны рас-
щепляющие матрицы М, введенные в упражнениях 7.2.4, 7.2.12, 7.2.24 и 7.2.26.
Матрицы D, Ен F относятся к разложению А = D - Е - Е где D, -Е и -F- это
соответственно, диагональ, нижняя треугольная и верхняя треугольная части
А. В каждом случае приводится только М, поскольку N = М - А.
Таблица 7.4. Расщепляющие матрицы для классических методов
Метод Расщепляющая матрица (Af) Упражнение
Якоби D 7.2.4
Гаусса-Зейделя D-E 7.2.12
SOR —D-E 7.2.24
со
SSOR ю I 1 е 8 1 sTi"^ Гч ь । 7.2.26
Пример 7.3.2. В теории сходимости удивительно большую роль играет очень
простой метод Ричардсона с расщепляющей матрицей М= — / и 1-А, где
со со
со — коэффициент сглаживания, выбираемый так, чтобы М как можно лучше ап-
проксимировала А. Следовательно, для итерации Ричардсона
х(к+ ° = (/ - соЛ)х(*} + сой.
Свойства метода Ричардсона поясняются в упражнениях 7.3.19, 7.3.20,
7.3.22 и 7.3.37. □
Упражнение 7.3.3. Пусть метод Ричардсона применяется к модельной за-
даче (7.1.8). Как нужно выбрать со, чтобы М как можно лучше аппроксими-
7.3. Сходимость итерационных методов
585
ровала Л? С какой классической итерацией будет совпадать итерация Ри-
чардсона при таком выборе со? □
Сходимость
Рассмотрим итерацию вида (7.3.1). После каждой итерации есть ошибка
е{к} = х - х(А). Это разность между точным решением и его приближением после
к итераций. В процессе решения задачи мы не знаем ошибку поскольку х
еще не известно, но это не мешает нам говорить о ней. Для заданного расщеп-
ления А = М- Nmgxrq пытаться доказать, что е{к} -> 0 при к -> оо. Более того,
можно пытаться оценить быстроту убывания е(к\ поскольку этого нельзя уви-
деть из расчета. Для точного решения уравнения Ах = b мы имеем также Мх =
= Nx + b. Вычитая отсюда (7.3.1), найдем, что Ме(к+Г* - Ne(k). Следовательно,
е(к+" = Ge(k\
где G = M~[N = / - М~ХА. Поскольку это верно для всех к, то e(I) = Gte(0), е(2) =
= Ge([) = G2e(0) и в общем случае
= Gke(Q).
(7.3.4)
Вектор е(0) является исходной ошибкой, и его величина зависит от началь-
ного приближения. Формула (7.3.4) показывает, что, независимо от начально-
го приближения, е(к} -> 0, если Gk -> 0. Так как степени матриц уже были
предметом нашего изучения, не следует удивляться тому, что теория сходимо-
сти итерационных методов будет напоминать анализ степенного метода для
вычисления преобладающего собственного вектора. В частности, основную
роль будут играть собственные значения итерирующей матрицы.
Предположим, что итерирующая матрица G — полупростая. (См. упражне-
ние 7.3.27 для случая, когда это не так.) Это значит, что G имеет п линейно не-
зависимых собственных векторов v2> •••> образующих базис в С”. Пусть че-
рез Aq, %2,..., обозначены соответствующие собственные значения G, так что
Gv, = i = 1,2,..., п. Вместо матриц Gk будем рассматривать непосредственно
ошибки е(к} (но см. упражнение 7.3.26). Так как собственные векторы ..., vn
образуют базис в С", можно выразить исходную ошибку е(0) в виде их линейной
комбинации:
е<0) = C]V| + c2v2 + ... + c„v„.
(7.3.5)
Здесь постоянные cl9 ..., с„ не известны, так как не известна и е(0), и они
могут быть комплексными числами, даже если е(0) вещественна. Но все это
не порождает проблем при проведении анализа. Применяя G к (7.3.5), нахо-
дим, что
е(1) = б?е(0) = + c2k2v2 + ••• + cn^nvm
586
Глава 7. Итерационные методы для линейных систем
и в общем случае
= Gkew = CuxV! + c2x.v2 + ... + c„x«v„.
Следовательно,
Н e<*> || < | c, | | X, Г II v, II + I c2 | | X2 Г || v2 || + ... + | c„ | | X, I* || v„ ||,
где можно использовать любую векторную норму. Так как | |* —> 0 тогда и
только тогда, когда | \. | < 1, можно сказать, что || е(к} || -> 0 для любого началь-
ного приближения х(0) тогда и только тогда, когда max | X | < 1.
/
Пусть через ор((7) обозначен спектр матрицы G, т.е. множество всех ее соб-
ственных значений. Спектральным радиусом p(G) называется максимальное
расстояние от спектра до нуля:
p(G) = max I X I.
Xgct«7)
Используя эту новую терминологию, можно переформулировать заключе-
ние из предыдущего абзаца: для любого начального приближения итерации
сходятся тогда и только тогда, когда p(G) < 1.
Спектральный радиус также дает информацию о скорости сходимости.
Если, скажем, Xj — наибольшее по модулю собственное значение (| Xj | = р(С)),
отсюда сразу следует, что
е(к) « cx'k\vx,
так как другие \к стремятся к нулю быстрее, чем X*, и поэтому для достаточно
больших к
I М = Р(0. (7.3.6)
IIе II
Следовательно, сходимость линейна с коэффициентом сжатия p(G). Чем
меньше р((7), тем быстрее сходятся итерации.
Такой вывод опирается на предположение, что сх ф 0, которое верно почти
для любого выбора х<0). В тех исключительно редких случаях, когда сх = 0, схо-
димость, как правило, должна быть лучше. (Почему?)
Приближенное равенство (7.3.6) определенно имеет место при больших Л,
но при малых к это может быть не так.
Мы почти доказали (ср. с упражнением 7.3.27) следующую теорему.
Теорема 7.3.7. Итерации (7.3.1) сходятся к точному решению системы Ах-Ь
при любом начальном приближении х(0) тогда и только тогда, когда спектраль-
ный радиус итерирующей матрицы G = I - М~{А меньше единицы. Сходимость
7.3. Сходимость итерационных методов
587
линейна, и ее усредненный коэффициент сжатия никогда не превосходит p(G). Он
равен р((7) почти при всех х(0).
В общем случае р((7) вычислить трудно, но в некоторых частных случаях он
известен. В частности для модельной задачи (7.1.8) p(G) известен для итераций
Ричардсона, Якоби, Гаусса-Зейделя и SOR (со стандартным и красно-черным
упорядочиванием). Мы не можем описать здесь вывод всех этих результатов,
изложенных в ряде превосходных публикаций, например в [36], [38], [76], [84].
Поэтому лишь кратко остановимся на этом вопросе.
Итерирующая матрица Якоби G = D~l(E + F) . Для модельной задачи
(7.1.8) G = - (Е + Е7). В упражнении 7.3.35 вы увидите, что в этом случае
4
р((7) = cos(ruA), где й, как всегда, обозначает размер ячеек сетки. Зависи-
мость р((7) от h не должна вас удивлять, особенно в свете результатов из
примера 7.2.8. Всегда p(G) < 1, так что метод Якоби сходится при любом h.
Но при h -> 0 имеем cos(tuA) -> 1, откуда следует, что сходимость стано-
вится очень медленной, когда h делается малым. Чтобы лучше понять это,
возьмем первые члены разложения в ряд Тейлора для cos z - 1 - z2/2\ +
+ O(z4), откуда
rt2
p(G) « I - (7-3-8)
Каждый раз при сокращении h вдвое расстояние между p(G) и 1 сокращает-
ся примерно в 4 раза. Например, при h = 1 / 10, 1 / 20 и 1 / 40 будем иметь со-
ответственно p(G) = .9511, .9877 и .9969.
Ясно, что при спектральном радиусе .9969 сходимость будет очень медлен-
ной. Оценим число итераций, необходимых для уменьшения ошибки в 10 раз.
В силу (7.3.6)
« Р«?Х
Поэтому для уменьшения ошибки в 10 раз потребуется примерно j итера-
ций, где p(G)y « 10-I. После логарифмирования находим, что
. ~ loglO
7 “ -logp(G)
Например, для р - .9969 получим j « 742, т.е. для каждого уменьшения
ошибки в 10 раз нужно делать примерно 742 итерации. Для уменьшения
ошибки, скажем, в 10~8 раз придется сделать около 8 х 742 ® 5930 итера-
ций.
При вычислении j можно использовать логарифмы по любому основанию.
Основание 10 выглядит привлекательным, но для теоретических оценок пред-
588
Глава 7. Итерационные методы для линейных систем
почтительнее основание е. Асимптотическая скорость сходимости итерацион-
ного метода, обозначаемая через RJfi), определяется как
R^G) = -logep(G).
(7.3.9)
Здесь нижний символ оо указывает на то, что это число является реальной
характеристикой, когда число итераций велико (т.е. к -> оо), и может не быть
таковой при небольших к.
Упражнение 7.3.10. Покажите, что при больших к для уменьшения ошибки
в е раз потребуется примерно 1/^(0) итераций. □
При р((7) = 1 будем иметь RJJG) = 0, что говорит об отсутствии сходимости.
Когда р((7) < 1, имеем R^(G) > 0. С уменьшением p(G) увеличивается ^(G).
При р(б) -> 0 будем иметь /^(G) -> оо.
Удвоение RJJG) удваивает скорость сходимости в том смысле, что тогда по-
требуется только около половины итераций для уменьшения ошибки в задан-
ное число раз.
Для метода Якоби применительно к модельной задаче спектральный ради-
ус определен в (7.3.8). Используя его и разложение в ряд Тейлора -log(l - z) =
1 2 1 з
= z + — z + - z + ... , найдем, что
2 3
тг2
RJG) = у h2 + O(h4).
Оставляя здесь главный член, получим R^G) = О(й2). Поэтому при умень-
шении h вдвое RJ.G) уменьшится примерно в 4 раза и тем самым тогда при-
мерно в 4 раза увеличится число итераций, необходимых для достижения за-
данной точности. Этот теоретический результат подтверждается данными из
примера 7.2.8.
Упражнение 7.3.11. Вычислите p(G) и RJ.G ) для метода Якоби, применяе-
мого к модельной задаче (7.1.8) с h = .02 и h = .01. Сколько нужно итераций для
каждого из этих й, чтобы уменьшить ошибку в 10“3 раз? □
Данные из примера 7.2.17 подсказывают, что метод Гаусса-Зейделя схо-
дится несколько быстрее, чем метод Якоби. Это действительно так для мо-
дельной задачи и любой задачи, допускающей красно-черное упорядочивание.
Пусть Gj и Ggs — итерирующие матрицы соответственно для методов Якоби и
Гаусса-Зейделя. В упражнении 7.3.38 вы увидите, что p(G675) = p(Gy)2. Итера-
ции Гаусса-Зейделя со стандартным и красно-черным упорядочиваниями
имеют одинаковые спектральные радиусы, потому что стандартное упорядо-
чивание - это так называемое согласованное упорядочивание [38], [76], [84]. По-
следнее означает, что одна итерация Гаусса-Зейделя дает примерно то же, что
и две итерации Якоби, т.е. первые сходятся в два раза быстрее вторых. Данные
из примеров 7.2.8 и 7.2.17 подтверждают это.
Упражнение 7.3.12. Покажите, что если p(GC5) = p(Gy)2, то R^(Ggs) =
= 2R00(GJ). □
7.3. Сходимост ь итерационных методов
589
Для модельной задачи (7.1.8) р(<76Л) = р(б>)2 = cos2яй и RJ£gs) = n2h2 + 0(h4).
Метод Гаусса-Зейделя столь же плох, как и метод Якоби в том смысле, что
ЛХ(6С6) = O(h2). Каждый раз при уменьшении h вдвое для достижения той же
точности нужно увеличить число итераций в 4 раза.
Пример 7.2.21 показывает, что метод SOR с хорошо подобранным множи-
телем со оказывается существенно лучше метода Гаусса-Зейделя. В самом
деле, можно показать, что для SOR с оптимальным со будем иметь Rt{G) » 2яй.
Этот и другие результаты представлены в табл. 7.5.
Таблица 7.5. Скорость сходимости классических итераций для модельной задачи (7Л.8)
Метод р(0
Якоби cos яй у я2й2 + О(й4)
Гаусса-Зейделя СО52ЯЙ я 2й2 + О(й4)
SOR с оптимальным со 1 - 2яй + О(й2) 2яй + О(й2)
SSOR с хорошим со < 1 - яй + О(й2) > я// 4- О(Й2)
Так как Ях(6) = 0(h). то при уменьшении h вдвое число необходимых для
достижения той же точности итераций для SOR только удваивается. Поэтому
SOR представляется гораздо более эффективным по сравнению с методом Га-
усса-Зейделя при малых h.
Упражнение 7.3ЛЗ. При h = .02 и h = .01 оцените RJJj) для метода SOR с оп-
тимальным со для модельной задачи (7.1.8). Для обоих этих значений h сколько
примерно требуется итераций, чтобы уменьшить ошибку в 10~3 раз? Сравните
ваши результаты с приведенными в упражнении 7.3.11. □
Хотя метод SOR существенно лучше методов Якоби и Гаусса-Зейделя,
он еще не является оптимальным. Идеальным был бы такой метод, для ко-
торого A,. (6) не зависит от h. Тогда число итераций, необходимых для дос-
тижения заданной точности, также не будет зависеть от й. Если для выпол-
нения итерации нужно О(п) флопов (это пропорционально числу уравне-
ний), то для нахождения решения системы с заданной точностью также
потребуется только О(п) флопов, поскольку число необходимых для этого
итераций не зависит от п. Различные типы сеток и разбиение на области
19], [36], [63] помогают достичь этого для модельной задачи (7.1.8) и боль-
шого класса других систем, возникающих при дискретизации уравнений с
частными производными. Обсуждение этих эффективных приемов выходит
за рамки нашей книги.
Теория сходимости классических итерационных методов изложена, напри-
мер, в 136J, [76] и [84]. Для классической задачи Пуассона ее можно считать за-
вершенной, а многие ее результаты применимы к другим положительно опре-
деленным системам, допускающим красно-черное упорядочивание: скорость
сходимости всех классических итерационных методов определяется спек-
тральным радиусом итерирующей матрицы Якоби.
590
Глава 7. Итерационные методы для линейных систем
До сих пор мы ограничивались простыми итерационными методами без
дополнительного расхода памяти. В них х(*+1) получается из х(к) и не нужно
знать х{к ’ ° или еще более ранние приближения. Их преимущество состоит в
том, что они экономичны по памяти, поскольку не нужно запоминать преды-
дущие приближения. Тем не менее можно представить себе, что наличие не-
скольких предыдущих приближений позволит с пользой для дела применить
имеющуюся в них информацию для улучшения качества решения путем экст-
раполяции по этим приближениям. Такой подход успешно реализовали Го-
луб и Варга, создавшие полуитерационный метод типа Чебышева, известный
также как ускорение по Чебышеву. Родственный этому прием - ускорение по
сопряженным градиентам. В обоих случаях х(* + 1) вычисляется только по
и х(к' °. Все это хорошо изложено в [38].
Вместо изложения этих приемов мы пойдем по другому пути. Алгоритм со-
пряженных градиентов будет получен как пример применения метода спуска.
Будет показано, что сходимость алгоритмов спуска может быть существенно
улучшена с помощью предобуславливателей. Оказывается, что использование
метода сопряженных градиентов с предобуславливателем М (как это описано
ниже в данной главе) эквивалентно применению ускорения по сопряженным
градиентам (как описано, например, в [38]) к основной итерации (7.3.1) с рас-
щепляющей матрицей М.
Дополнительные упражнения
Упражнение 7.3.14. В этом и в нескольких следующих за ним упражнени-
ях изучаются вычислительные затраты при реализации методов Гаусса—Зей-
деля и SOR. Матрица коэффициентов модельной задачи (7.1.8) при h = 1/т
порождает п » т2 уравнений с нужным числом неизвестных. Нельзя рассчи-
тывать на решение системы Аи = b без затраты менее чем О(т2) флопов.
В разд. 7.1 мы видели, что ленточный вариант метода исключения Гаусса
требует для этого j ди4 флопов.
(а) Покажите, что в методах Гаусса-Зейделя и SOR для выполнения одной
итерации требуется небольшое кратное от т2 флопов.
(Ь) Покажите, что число итераций по Гауссу—Зейделю для уменьшения
ошибки в фиксированное число с раз равно примерно Ст2, где С= -(loges )/л2.
(с) Оцените полный объем затрат на решение системы Аи= b методом Гаус-
са-Зейделя. Сравните это с затратами для ленточного варианта в методе ис-
ключения Гаусса.
(d) Оцените число SOR-итераций (с оптимальным <о), необходимых для
уменьшения ошибки в фиксированное число е раз.
(е) Покажите, что полный объем затрат для SOR с оптимальным со намного
меньше, чем для ленточного варианта в методе исключения Гаусса, если h дос-
таточно мало.
(f) Сравните SOR с методом, в котором требуется О(т2) флопов на итера-
цию и число итераций до сходимости ограничено и не зависит от h. □
7.3. Сходимость итерационных методов
591
Упражнение 7.3.15. Повторите упражнение 7.3.14 для трехмерной модель-
ной задачи (см. (7.1.11) и упражнения 7.1.12 и 7.1.13), имея в виду то, что неко-
торые из высказанных выше утверждений могут измениться. В частности, как
будет выглядеть сравнение итерационных методов с ленточным вариантом ме-
тода исключения Гаусса? (Спектральные радиусы для трехмерных задач такие
же, как и для двумерных.) □
Упражнение 7.3.16. Решение модельной задачи (7.1.8) - это приближение к
решению граничной задачи. Чем меньше й, тем лучше будет это приближение
и тем выше будет стоимость точного решения системы Аи = Ь. Желательно по
возможности сократить эти затраты. Если точное решение граничной задачи
достаточно гладко, оно будет отличаться отрешения системы (7.1.8) примерно
на величину Сй2, где С — некоторая постоянная. Поэтому имеет смысл решать
систему Аи - Ь с точностью ей2, где с < С.
(а) Пересмотрите пп. (Ь) - (е) из упражнения 7.3.14 с целью найти чис-
ло итераций, необходимых для уменьшения ошибки в ей2 раз. Покажите,
что это изменит результат в точности на множитель К log т (когда т
велико).
(Ь) Вычислите log т для т = 100, 10000, 1000000. Это покажет вам, насколь-
ко медпенно возрастает логарифм.
(с) Важен ли показатель степени у й? Пусть нужно уменьшить ошибку в е hs
раз, где 5 - некоторое число, отличное от 2. Изменит ли это основной вывод
нашего анализа? □
Упражнение 7.3.17. Рассмотрим решение модельной задачи (7.1.8) с функ-
циями f = 0 и g, заданной в виде
g(x,y) = •
У
(x-l)sinx
х(2 - х)
при х = 0,
при х = 1,
при у = 0,
при у = 1,
0
как в примере 7.2.8, и возьмем й = 1 / 10.
(а) Используя табл. 7.5, вычислите р((7) и RJJG) Для метода Якоби в приме-
нении к этой задаче. Опираясь на полученные результаты, найдите примерное
число итераций, необходимых для уменьшения ошибки в 100 раз.
(Ь) Напишите компьютерную программу для проверки теоретических
результатов. Для этого достаточно эскизной MATLAB-программы. Начните
с вычисления достаточно точного решения (с ошибкой < 10|()) системы
Аи = b методом SOR или каким-либо другим методом. Используйте это как
«точное решение», с которым вы будете сравнивать приближения по мето-
ду Якоби, получаемые с начальным приближением м(0) = 0. Каждый раз
вычисляйте норму ошибки || е(*+|) ||2 = || и - м(*+1) ||2 и коэффициент сжатия
|| е(Аг+° ||2/|| е(Л) ||2. Наблюдайте за коэффициентами сжатия примерно на 100
итерациях.
(с) Найдите число итераций, необходимых для уменьшения ошибки || е(к} ||2
с 10~1 до 10 3.
592
Глава 7. Итерационные методы для линейных систем
(d) Первые итерации быстрее приближают к цели по сравнению с после-
дующими. Как можно объяснить это явление? □
Упражнение 7.3.18. Повторите предыдущее упражнение для метода Гаус-
са-Зейделя (со стандартным упорядочиванием) вместо метода Якоби. □
Упражнение 7.3.19 (сходимость метода Ричардсона). Рассмотрим линейную
систему Ах = Ь, для которой собственные значения матрицы А положительны.
Например, А может быть положительно определенной. Пусть Xj и — наи-
меньшее и наибольшее собственные значения Л, a Gw = I- соЛ - итерирующая
матрица для метода Ричардсона, примененного к Л.
(а) Покажите, что все собственные значения (7Ю меньше единицы.
(Ь) Докажите, что метод Ричардсона сходится тогда и только тогда, когда
со < 2 /
(с)---Докажите, что оптимальное значение со (минимизирующее р((7ш)) равно
2
соопт - • Более точно, покажите, что
+Х|
1 -coXt
P(GJ =
при со<сол,
при со = со6,
при со>сол.
(d) Покажите, что для симметричной и положительно определенной мат-
рицы Л
Р«ЧЛЛ>
к2(Л)-1
к2(Л) + 1’
где к2(Л) — спектральное число обусловленности Л (ср. с теоремой 4.2.4 и уп-
ражнением 5.4.46). Следовательно, оптимальный вариант метода Ричардсона
сходится быстро для хорошо обусловленных Л и медленно, если обусловлен-
ность Л плохая.
(е) Покажите, что скорость сходимости оптимального варианта метода Ри-
чардсона равна
R^J = -'°g
где к-1 = 1 / к2(Л). Воспользуйтесь разложениями в ряды Тейлора и покажите,
чтоЛаз((?ш_) = 2к-1 + О(к-2). □
Упражнение 7.3.20. Покажите, что любая итерация, порождаемая расщеп-
лением Л = М- N, может быть представлена как коррекция с помощью невяз-
ки /Л) = b - Лх(к):
1—к 1 |
1 + к"1)
х(к+ ° = х{к} + М {г{к\
(7.3.21)
7.3. Сходимость итерационных методов
593
В частности, итерацию Ричардсона можно записать какх(А: +!) = х{к} + со?Л). □
Упражнение 7.3.22 (Предобусловливатели.) Решая систему Ах = Ь. можно
вместо нее решать эквивалентную систему М 'Ах - М~'Ь с любой невырожден-
ной матрицей М. Когда матрица М используется таким образом, она называет-
ся предобусловливателем. Более основательно предобусловливатели будут рас-
смотрены в разд. 7.5 и 7.6. Подходящие расщепляющие матрицы служат хоро-
шими предобусловливателями. Проверьте следующее утверждение: каждый
итерационный метод, определяемый расщеплением А = М - N, может рассмат-
риваться как метод Ричардсона (с со = 1), применяемый к предобусловленной
системе Л/ '}Ах = М~ХЬ. Это обстоятельство подчеркивает важность метода Ри-
чардсона. □
Упражнение 7.3.23. Сглаживание является способом перевода расходящих-
ся итераций в сходящиеся. Для заданной расщепляющей матрицы Л/, порож-
дающей итерации (7.3.21), соответствующие итерации со сглаживанием, имею-
щие множитель сглаживания со < 1, определяются как
х(к +!) = х(к) + (оЛ/ lrik}.
(7.3.24)
Ясно, что расщепляющая матрица итерации со сглаживанием равна со-1 М.
У нас уже были два примера итераций со сглаживанием: (i) со сглажива-
нием для метода Якоби (упражнение 7.2.28) и (ii) метод Ричардсона сам
по себе.
Покажите, что если собственные значения матрицы М~'А положительны,
то итерации со сглаживанием, порождаемые матрицей Л/, при достаточно ма-
лых со сходятся. □
Упражнение 7.3.25. В принципе, можно выполнять итерации (7.3.24) с
со > 1, и тогда они станут экстраполирующими итерациями. Внешне это на-
поминает SOR, но только внешне. Покажите, что экстраполирующий ме-
тод Гаусса-Зейделя отличается от SOR. (Замечание: SOR - хороший метод,
тогда как экстраполирующий метод Гаусса-Зейделя не обладает этим
свойством.) □
Упражнение 7.3.26. В этом и в следующем упражнениях проанализируйте
сходимость итерационных методов с помощью матричных степеней G*. Для
этого упражнения предположите G полупростой. Тогда G подобна диагональ-
ной матрице: G - ИЛИ"1, где Л = diag{X1?..., XJ. Элементы главной диагонали Л
- это собственные значения матрицы G, а столбцы матрицы И— соответствую-
щие им собственные векторы. Покажите, что при всех к
ЦСМЬ< К2(И) I p(G) f.
Поэтому Gk -> 0 линейно, если p(G) < 1. □
Упражнение 7.3.27. Здесь рассматривается сходимость в случае дефектной
итерирующей матрицы G. Каждая матрица G имеет вид G = XJX{ , где J =
diag(JH ..., Jp) - каноническая форма Жордана (см., например, [42] или [46]).
594
Глава 7. Итерационные методы для линейных систем
Жордановы клетки Jt являются квадратными матрицами различных порядков,
и каждая из них имеет вид
где X - одно из собственных значений G. Каждая клетка является верхней тре-
угольной матрицей с элементами X на главной диагонали, элементами 1 на
первой наддиагонали и нулями во всех других позициях.
(а) Докажите, что степени жордановой клетки имеют вид
xk п*-'
2
kk kkk~l
kkk~l
Xk
Более точно, Jk имеет k + 1 ненулевых диагоналей (или меньше, если мень-
f А
ше размерность /), и элементы J-й наддиагонали равны V ~J5.
vJ
(b) Для заданного целого неотрицательного j определим функцию как
Pj(k) = 1.1- Покажите, что р, является полиномом степени j.
(с) Пусть жорданова клетка / имеет размеры т х т и X * 0. Покажите, что
при достаточно больших к должно быть || = р(к)\ X |*, где р - полином сте-
пени т - 1:
п (к\
р(к) = . •
;=о \J J
(Напомним, что || В Ц* = тах]р£/у|.)
(d) Пусть снова жорданова клетка / имеет размеры т х т, но X = 0. Пока-
жите, что J* = 0 при к > т.
(€} Пусть т будет наибольшим порядком тех жордановых клеток матрицы
J , которые порождаются наибольшим по модулю X (тогда | X | = p(G)). Пока-
7.3. Сходимость итерационных методов
595
жите, что при достаточно больших к для степеней клетки J выполняется ра-
венство || Jк IL = p(k)p(G)k, где р — полином степени т - 1.
(0 Покажите, что при больших к
« P(G).
Упражнение 7.3.28.
(а) Одномерная модельная задача имеет трехдиагональную матрицу ко-
эффициентов (7.1.5). Покажите, что тогда итерирующая матрица для метода
Якоби равна
’О 1
1
О
1
1 °_
(Ь) Будем вычислять спектральный радиус матрицы Н путем нахождения
всех ее собственных значений. Порядок матрицы Я равен т - 1. Покажите, что
v будет собственным вектором матрицы Нс собственным значением X тогда и
только тогда, когда для них выполняется разностное уравнение
vy+1 - 2Xvy- + Vj_ j = 0,j = 1, ..., m - 1 (7.3.29)
и граничные условия
v0 = 0 = vm. (7.3.30)
(с) Так как разностное уравнение (7.3.29) линейно и однородно, оно имеет
два линейно независимых решения, т.е. все его решения образуют двумерное
подпространство. Покажите, что геометрическая прогрессия vy- = / при z * 0 бу-
дет решением уравнения (7.3.29) тогда и только тогда, когда z будет удовлетво-
рять характеристическому уравнению
Z2 - 2Xz + 1 = 0. (7.3.31)
(d) Это квадратное уравнение имеет два решения Zi и z2. Покажите, что
Z\Z2 = 1 (7.3.32)
и
X = |(z, + z2). (7.3.33)
(е) Если решения уравнения (7.3.31) удовлетворяют условию Zi * z2, то об-
щее решение уравнения (7.3.29) имеет вид vy = qz/ + c2z/, гДе с\ и ci ~
596
Глава 7. Итерационные методы для линейных систем
произвольные постоянные. Покажите, что в этом случае для любого ненулево-
го решения, удовлетворяющего также граничным условиям (7.3.30), должно
быть (i) с2 = -Cj, (ii) Zi2m = 1, (iii) Z\ = ekni/m, где к не кратно т (вспомните, что по
предположению zt * z2)- Для каждого значения к возникает собственный век-
тор матрицы Н, который можно пронормировать за счет выбора значения Ср
Покажите, что если взять Cj = — (и тем самым с2 = —-), то для компонент у бу-
2z 2/
дем иметь (iv) = sin(/£n:/w).
(f) С каждым собственным вектором связано некоторое собственное значе-
ние. Покажите с помощью (7.3.33), что при Z| = e*n//w собственное значение Хк =
cos(tcAA:), где h = — - размер ячеек сетки. Покажите, что при к = 1,..., т - 1 полу-
ди
чатся т - 1 различных собственных значений, для которых 1 > Xj > Х2 > ... > Xw_,
> -1. Так как Н имеет не более чем т - 1 собственных значений, то тем самым
все они найдены. (Нетрудно проверить, что значения к вне набора 1,..., т - 1 и
не кратные т будут снова и снова давать те же самые собственные значения.)
(g) Покажите, что Хт _ к = -\к при к = 1, ..., т - 1, и выведите отсюда, что
спектральный радиус матрицы Я равен cos(ttA). □
Упражнение 7.3.34. Здесь изучаются основные свойства матричных произ-
ведений Кронекера, которые будут использованы в следующем упражнении.
Пусть X и Y — матрицы размеров соответственно а х р и у х 8. Тогда произведе-
нием Кронекера или тензорным произведением матриц X и Y называется матрица
размеров ay х р8, обозначаемая через X ® Y и определяемая как
хпУ х,2У ”
х21У х12У •' ” Х2$У
_Ха1^ *а2 У -
(а) Пусть X, Yt Жи Z — матрицы таких размеров, что определены произведе-
ния XW и YZ. Покажите, что определено произведение (X ® Y)(W ® Z) и
(X® Y)(W®Z) = (XIV) ® (YZ). (Отметьте следующий важный специальный
случай: если и и v - такие векторы-столбцы, что определены Хи и Ку, то и ® v
будет (длинным) вектором-столбцом и таким, что (X ® Y)(u ® v) = Хи ®Yv.)
(b) Пусть X — матрица размеров т х т и Y — матрица размеров п х и, а X -
собственное значение матрицы X с соответствующим ему собственным векто-
ром и, и ц - собственное значение матрицы Y с соответствующим ему собст-
венным вектором у.
(i) Покажите, что Хц будет собственным значением матрицы X ® Ус соот-
ветствующим ему собственным вектором и ® у.
(ii) Пусть через 1к обозначена единичная матрица размеров к х к. Покажите,
что X + ц будет собственным значением матрицы X ® In + Im® Yс соответст-
вующим ему собственным вектором и ® у.
7.3. Сходимость итерационных методов
597
(с) Покажите, что если и1эиа образуют систему из а ортонормированных
собственных векторов и v15 vp образуют систему из р ортонормированных
собственных векторов, то и, ® vy, / = 1,..., aj = 1,..., р, образуют систему из ар
ортонормированных собственных векторов. □
Упражнение 7.3.35.
(а) Матрица коэффициентов А двумерной модельной задачи (7.1.8) приве-
дена в (7.1.10). Покажите, что
А = А ® 1т _ । + 1„ _ ! ® А,
где А - матрица (7.1.5) для одномерной модельной задачи.
(Ь) Покажите, что итерирующая матрица метода Якоби для задачи (7.1.8)
имеет вид
G=X-(H®I„_x + 1т_х®Н),
где Н нужно взять из упражнения 7.3.28.
(с) Покажите, что (т - I)2 собственных значений матрицы G равны
kjk = ~(cos(/Ati) + cos(khn)), j,k = 1, ..., т - 1.
(d) Покажите, что р((7) = cos nh. □
Упражнение 7.3.36. Получите для трехмерной модельной задачи результа-
ты, аналогичные приведенным в упражнении 7.3.35. Убедитесь, что в этом
случае, как и раньше, спектральный радиус итерирующей матрицы для метода
Якоби равен cos nh. □
Упражнение 7.3.37.
(а) Покажите, что собственные значения трехдиагональной матрицы А
(7.1.5) для одномерной модельной задачи равны
= 2 - 2008^—^1 = 4sin2f—1 к = 1, ..., т - 1.
V т ) \1т )
(Указание: это простое следствие результатов упражнения 7.3.28, так как
Л = 2(/-Я).)
(Ь) Покажите, что собственные значения матрицы коэффициентов для дву-
мерной модельной задачи (7.1.8) равны
= 4
. 2
+ sm
.., т - 1.
(См. упражнение 7.3.35.)
(с) Покажите, что если метод Ричардсона применяется к модельной задаче
(7.1.8), то оптимальное со = 1/4 (упражнение 7.3.19). Проверьте, что при этом
значении со метод Ричардсона совпадает с методом Якоби (но только для этой
задачи).
598
Глава 7. Итерационные методы для линейных систем
(d) Покажите, что для модельной задачи (7.1.8) к2(Л) = ctg2(7t/i/2). Исполь-
зуйте этот факт для вычисления скорости сходимости метода Ричардсона при
оптимальном со. Проверьте, что это согласуется со скоростью сходимости ме-
тода Якоби, вычисленной в упражнении 7.3.35. □
Упражнение 7.3.38. Рассмотрим систему Лх = Ь, допускающую красно-чер-
ное упорядочивание. Следовательно (после переупорядочивания, если это не-
обходимо)
Л _ Г^1 S12
где и D2 — диагональные матрицы.
(а) Покажите, что итерирующая матрица метода Якоби для этой системы есть
<?/ =
“О
_с2
(7.3.39)
где С\ = и С2 = -А2В2Г
(Ь) Матрицы вида (7.3.39) обладают рядом интересных спектральных
х
свойств. Покажите, что для собственного вектора
х
с собственным значени-
такаже будет собственным с собственным значением - X.
_-yJ
(с) Продолжая п. (Ь), проверьте, что х (если он отличен от нуля) является
собственным вектором для С}С2 и у (если он отличен от нуля) будет собствен-
ным вектором для С2СН а их собственные значения равны X2.
(d) И наоборот, покажите, что если ц является собственным значением,
скажем, для С2 С19 то ±д/ц будут собственными значениями для
ем X вектор
’ О С,
С2 О
. (Ука-
зание: постройте собственные векторы.)
(е) Проверьте, что для А итерирующая матрица Гаусса-Зейделя при крас-
но-черном упорядочивании равна
&GS -
"О С1
О C2Cj
(f) Покажите, что p(GCiy) = р(б>)2. □
Упражнение 7.3.40. Для положительно определенной матрицы коэффици-
ентов А часто оказывается полезным использовать расщепления А - М - в
которых М- также положительно определенная матрица. Проверьте, что у та-
ких А имеются (симметричные и) положительно определенные расщепляю-
щие матрицы для следующих методов: (а) Ричардсона, (Ь) Якоби, (с) симмет-
ричного Гаусса-Зейделя и (d) SSOR (0 < со < 2). □
Упражнение 7.3.41. Для симметричной матрицы А рассмотрим некоторое ее
расщепление А = М- N. В случае несимметричности матрицы М расщепление
7.4. Методы спуска; наискорейший спуск
599
А - МТ - NT будет для А другим. Здесь вы увидите, как с их помощью можно
построить симметричное расщепление. Рассмотрим расщепление, состоящее
из двух полушагов: первый - с расщепляющей матрицей Л/, а второй - с рас-
щепляющей матрицей Мт\
Mxv 2j = №<*> + />,
MTx{k + l) = NTx< 2' + b.
(а) Покажите, что MTx(k+i} = NTM~lNx(k} + (7 + NTM~')b.
(b) Проверьте, что 7+ NTM~{ = HM~X , где Я= M+ NT-M+ Mr-A = A + N+
№. Теперь покажите, что NTM~lN= Мт - НМ~ХА.
(с) Докажите, что для невырожденной Н
Mx(k+i) = Nx^ + b,
где М = МН~{МТ и А = М - N. Это расщепление для полной итерации.
(d) Убедитесь, что расщепляющая матрица М симметрична. Покажите, что
М будет положительно определенной, если таковой является Н.
(е) Проверьте, что SSOR-итерация имеет такую форму в предположении, что
А симметрична. Какова будет Н в этом случае? Покажите, что при положитель-
но определенной А матрица Я будет положительно определенной тогда и только
тогда, когда для множителя релаксации со выполняется условие 0 < со < 2. □
7.4. Методы спуска^лаискорейший спуск
Продолжим изучение алгоритмов решения линейной системы Ах = Ь. При
этом будем считать А симметричной и положительно определенной, если не
оговорено противоположное. Сначала покажем, что задача решения системы
Ах = b может быть переформулирована как некоторая задача минимизации, а
затем займемся изучением методов решения последней. Определим функцию
7: R" -> R как
Лу) = ^УГАУ “ УТь- (7.4.1)
Тогда вектор, минимизирующий 7, будет точным решением системы Ах = Ь.
Теорема 7.4.2. Пусть А е ИГ4” — положительно определенная матрица, b е R"
и / определяется формулой (7.4.1). Тогда найдется единственный вектор хе
для которого
J(x) = min 7(у),
у
и этот х будет решением системы Ах = Ь.
600
Глава 7. Итерационные методы для линейных систем
Доказательство. Функция / квадратична по переменным уь уп, и поэтому
можно выделить ее минимум простым приемом ее дополнения до полного
квадрата. Если х - решение системы Ах = Ь, то
J(y) = угАу - УгАх = ~^УГ^У ~ УТАх + ^хгАх - ^хгАх =
= | (у - х)тА(у - х) - ^хтАх . (7.4.3)
Член i хгАх не зависит от у, так что значение J(y) будет минимальным, если
минимален член i (у - х)тА(у - х). Но он в силу положительной определенно-
сти А будет положительным при у - х ф 0. Следовательно, он достигает своего
минимума тогда и только тогда, когда у = х. □
Во многих задачах функция J имеет физический смысл.
Пример 7.4.4. В задачах упругости J(y) имеет смысл потенциальной энергии
системы в конфигурации у. В положении равновесия потенциальная энергия
системы минимальна. В примере 1.2.10 обсуждалась простая система масс с
пружинами. При этом А называют матрицей жесткости. Член - уТАу выражает
энергию деформации, возникающую в пружинах благодаря их растяжению или
сжатию. Член -утЬ выражает работу системы по противодействию внешним
силам, которые характеризуются вектором Ь. Некоторые детали поясняются в
упражнении 7.4.18. □
Дополнительную информацию здесь можно получить, вычисляя VJ, т.е.
градиент функции J. Вспоминая, что V/ =
пГ
dJ
,--- , после несложных
дуп\
dJ
Эи’
преобразований получим
V/ = Ах - Ь.
Это в точности невязка со знаком минус для у как приближения к решению
системы Ах = Ь. Поэтому единственная точка, в которой градиент обращается
в нуль, это решение системы Ах = Ь. Таким образом, мы еще раз убеждаемся в
том, что единственным вектором, минимизирующим J, является решение сис-
темы Ах = Ь.
В методах спуска система Ах = b решается путем минимизации J. Они яв-
ляются итерационными. В каждом из них сначала задается некоторое на-
чальное приближение х<0), а затем строится такая последовательность при-
ближений х(0), х(1), х(2), хР\ ..., чтобы каждый раз было J(x(*+l)) < а еще
лучше, чтобы J(x(^+l)) < Г(х^). При строгом неравенстве мы будем прибли-
жаться к минимуму на каждой итерации. Если в некоторой точке получится
Ax(k) = b или близко к этому, итерации прекращаются и х^ принимается за
7.4. Методы спуска; наискорейший спуск
601
решение. В противном случае выполняется очередная итерация. Переход от
х(к) к/’1' делается в два этапа: (i) происходит выбор направления поиска и
(ii) осуществляется линейный поиск в выбранном направлении. Выбор на-
правления - это выбор некоторого вектора р(к\ в направлении которого нуж-
но продвинуться от х^к} к х{к^\ Ниже будет рассмотрено несколько стратегий
для выбора р(к). После того, как этот выбор сделан, x(fe+l) выбирается как не-
которая точка на прямой {х(А:) + ар(к) | а е R}, т.е.
х{к +1) = х(к) + a/j)(k)
для некоторого вещественного ак. Процедура выбора ак среди всех а е R
является линейным поиском. Мы хотим выбирать ак таким образом, чтобы
J(x(* + 1)) < J(x(k}). Для выполнения этого условия можно, например, взять ак
так, чтобы J(x(* + I)) = mina eR J(x(k) + ap(k)). Если сделан именно этот вы-
бор ак, будем говорить, что реализован точный линейный поиск. В против-
ном случае будем называть его неточным.
Для некоторых типов функций точный линейный поиск может оказаться
непосильной работой, но для квадратичных функций наподобие (7.4.1) он
тривиален. Следующая теорема показывает, что точное значение ак может
быть выражено в виде формулы.
Теорема 7.4.5. Пусть вектор х(к + ° = х(к) + aip(k) был получен путем точного ли-
нейного поиска. Тогда
р(к)ТГ(к)
к р(к)Г Ар{к}’
где r*k) = Ь - Ах{к\
Доказательство. Положим g(a) = J(xw + apw). Минимизирующий аргумент
для g равен ак. Несложный подсчет показывает, что g(a) = J(x(k}) - ap(k)Tr*k) +
+ а2р(кугЛр(к). Это квадратный полином относительно о, и его единственный
минимум может быть найден как корень уравнения g’(a) - 0. Так как g\a) =
- + то а* = р^Т^/р^ТАр{к\ □
Замечание 7.4.6. Отметим, что ак - 0 тогда и только тогда, когда р{к}7Ук) = 0.
Нужно как-то обойти эту ситуацию и всегда иметь х(*+1) * х(к). Равенство
р<к)т^к) _ q ГОВОрИТ 0 том> что направление поиска ортогонально невязке. По-
этому р(к} обычно выбирается так, чтобы он не был ортогонален ?Л). Это все-
гда возможно за исключением того случая, когда = 0 (но тогда х(к} будет
решением). Если всегда можно выбрать р{к} так, чтобы р(к)7Ук} * 0, то строгое
неравенство JipP* °) < J(xw) всегда будет выполнено. □
Упражнение 7.4.7. В этом упражнении для упрощения обозначений началь-
ное приближение будет записываться как х(1). Тогда р(1) будет первым направ-
лением поиска. Рассмотрим метод, в котором первые п направлений поиска
р(|), ..., р{п} выбраны в виде стандартных единичных векторов ..., е,„ следую-
21 Основы матричных вычислений
602
Глава 7. Итерационные методы для линейных систем
щие п направлений поиска p(w + l), р{1п} снова пробегают значения eh ..., еп,
точно так же выбираются р(2"+1), p(3w), и т.д. Предположим, что на каждой
итерации выполняется точный линейный поиск.
(а) Покажите, что каждая группа из п таких итераций есть одна итерация
метода Гаусса-Зейделя.
(Ь) Проверьте, что совпадение J(x(*+1)) = J(x{k}) может случиться даже тогда,
когда х(к) * х(*+1).
(с) Докажите, что ситуация, описанная в п. (Ь), не может повториться на п
последовательных итерациях. Другими словами, покажите, что J(x^k+n}) < J(dk)),
если х(к} ф х?+ °.
Таким образом, каждая итерация Гаусса-Зейделя понижает потенци-
альную энергию. Из этого факта вытекает доказательство того, что метод
Гаусса-Зейделя в применении к положительно определенной матрице все-
гда сходится. □
Упражнение 7.4.8. Пусть значение со фиксировано. Рассмотрим метод, в ко-
тором направления поиска выбираются, как в предыдущем упражнении, но
х(к + ° = х(к) + соа^р^, где приращения ак определяются точным линейным поис-
ком. Этот метод сводится к предыдущему при со = 1. Если со ф 1, линейный по-
иск неточен.
(а) Покажите, что каждая группа из п итераций является итерацией SOR-
метода с множителем релаксации со.
(Ь) Проверьте, что при * 0 (i) J(x(^+l)) < J(xw), если 0 < со < 2; (ii)
/(x(^ + l)) = J(xw), если со = 0 или со = 2, и (iii) J(x(*+I)) > /(xw), если со < 0 или
со > 2.
(с) Покажите, что при х{к} * х(*+1) (i) /(x(^+w)) < J(xa)), если 0 < со < 2; (ii)
J(x(^+W)) = J(xw), если со = 0 или со = 2, и (iii) J(x(*+W)) > J(xw), если со < 0 или
со > 2.
Отсюда следует, что в применении к положительно определенной матрице
метод SOR сходится тогда и только тогда, когда 0 < со < 2. □
Как уже отмечалось выше, метод SOR может быть существенно лучше
метода Гаусса-Зейделя при удачном выборе со. Это показывает, что при
длительном счете точные линейные поиски не обязательно будут лучше не-
точных.
Наискорейший спуск
В методе наискорейшего спуска полагают p(k} = tk} и делают точные линейные
поиски. Так как № = -VJ(x(^)), направление поиска оказывается направлением
наискорейшего спуска для J в точке х(*\
Проводить поиск в направлении наискорейшего спуска, — это, казалось
бы, вполне естественный подход, однако на практике он работает не очень хо-
рошо. Несмотря на это, метод наискорейшего спуска заслуживает изучения
хотя бы по двум причинам: (i) он способствует пониманию идеи предобусла-
овливания; (ii) незначительные изменения превращают алгоритм наискорей-
шего спуска в эффективный метод сопряженных градиентов.
7.4. Методы спуска; наискорейший спуск
603
Пример 7.4.9. Если применить метод наискорейшего спуска к простой сис-
теме из примера 7.2.3, мы получим
3.9525
3.0508
1.9973
1.0147
3.9980
3.0011
1.9989
0.9997
3.99993
3.00008
1.99999
1.00002
и это лишь немногим лучше того, что получалось по методу Якоби. После 42
итераций наше приближение будет совпадать с точным решением в 12-ти де-
сятичных знаках. □
Алгоритм наискорейшего спуска нетрудно запрограммировать. Рассмот-
рим некоторые основные моменты реализации этого. Начнем с описывающе-
го спуск алгоритма. На каждом шаге наше приближенное решение обновляет-
ся по формуле
Х<*+1) = %(*) + а^(Аг) (7.4.10)
Если делается точный линейный поиск, нужно вычислять ак по формуле из
теоремы 7.4.5. Среди прочих необходимых действий придется найти Ар(к\
Цена этой операции зависит от того, насколько разрежена А. Во многих случа-
ях вычисление этого произведения составляет основные затраты алгоритма, и
поэтому мы должны постараться ограничить число таких операций. Нам так-
же нужна невязка И** = i - Ах(к\ для нахождения которой представляется необ-
ходимым вычисление еще одного произведения, Ах(к). Последнего можно из-
бежать, воспользовавшись простой рекуррентной зависимостью
г(к + " = г(к) _ акАр(к)^ (7.4.11)
которая легко выводится из (7.4.10), и таким способом обновлять невязку на
каждой итерации. Теперь единственное произведение Ар(к) будет вычисляться
только при нахождении ак.
Упражнение 7.4.12. Получите (7.4.11) из (7.4.10). □
Вводя дополнительный вектор q(k) = Ар(к}, можно получить алгоритм спуска
с точным линейным поиском.
Прототип алгоритма спуска с точным линейным поиском
И”
/>(0) <-?
for к =0,1,2, ...
~qw^Apw
ak^pWTrW / pWTqW
x(k+i) +-x(ll} +a-tp(l,}
/*♦>)<_,.(*) _a^*>
(7.4.13)
604
Глава 7. Итерационные методы для линейных систем
Все, что еще необходимо, — это задать правило для определения на-
правления поиска. При р0) = г0) получается метод наискорейшего
спуска.
На практике итерации прекращаются при достижении заданной точ-
ности. В разд. 7.2 использовался критерий, в котором анализировалась
разность между двумя последовательными приближениями. Его можно
применить и здесь, но возможны и другие способы. Например, в алгорит-
ме наискорейшего спуска на каждой итерации вычисляется pTr = гтг = ЦгЦ^,
что позволяет прекращать итерации по малости невязки. При любом кри-
терии, как только он будет выполнен, в качестве приближения к реше-
нию выбирается х(* + 1). Следует подчеркнуть, что если задана слишком
высокая точность, ошибки округления вполне могут воспрепятствовать
ее достижению. Поэтому важно задавать предельно допустимое число
итераций /.
Не нужно запоминать х(0), Xе0, хР} и т.д.: достаточно иметь единственный
вектор х, в который сначала засылается начальное приближение, затем - по-
следовательные приближения на итерациях, а в конце вычислений там остает-
ся полученное решение х. Точно так же единственного вектора г достаточно
для всех невязок. Вначале в г можно поместить правую часть Ь, которая ис-
пользуется только при вычислении начальной невязки ?0). То же самое можно
сказать относительно p(k\ q(k} и ак.
Имея в виду эти замечания, приведем более аккуратную редакцию алго-
ритма.
Алгоритм спуска (с точным линейным поиском) для решения системы Ах = Ь. На входе
начальное приближение должно быть задано в х, а вектор b - в г. Алгоритм помещает в х
свое наилучшее приближение решения и выдает значение указателя (флаг) о том, достигнута
или нет заданная точность.
г <-г-Ах
Р^
Л<-0
выполняется до достижения точности или значения к=1
~q<-Ap
а <?-ргг / ргq (7.4.14)
х t-x+ap
г t-г-aq
Р^
к <- к +1
если точность не достигнута, поставить флаг
Засылка р <- г реализует наискорейший спуск.
Матрица А используется для вычисления произведения Ах, чтобы затем
найти начальную невязку. Кроме этого, она необходима один раз на каж-
дой итерации для вычисления произведения Ар. Такие произведения обыч-
7.4. Методы спуска; наискорейший спуск
605
но вычисляются по выбранной пользователем подпрограмме, для которой
вектор р является входным аргументом, а вектор Ар — выходным. Детали
здесь зависят от формы задания А. Если А задана по соответствующим
правилам как плотная матрица, можно записать непосредственный алго-
ритм матрично-векторного умножения, требующий для своего выполнения
порядка п2 флопов. Но для разреженных А можно использовать разрежен-
ность для вычисления Ар с гораздо меньшими по сравнению с п2 флопов
затратами.
Возьмем, например матрицу Л для модельной задачи (7.1.8). Тогда каждая
строка матрицы А будет содержать не более пяти ненулевых элементов, и по-
этому для вычисления каждого элемента вектора Ар нужно, грубо говоря, не
более пяти флопов, а для всего вектора Ар примерно 5п флопов, т.е. О(п) вме-
сто О(п2) флопов.
Рассмотрим некоторые детали применения метода наискорейшего
спуска к модельной задаче (7.1.8). При обсуждении алгоритма спуска век-
торы х, г, р и т. д. трактовались как обычные векторы-столбцы из JR". На-
пример, рТ = [/?!, ръ ..., р„], а внутреннее произведение ртг в алгоритме
7.4.14 означало
Zag-
/=1
В нашей модельной задаче более естественно представлять неизвестный
вектор (который мы теперь обозначим через и вместо х) в виде двумерного
массива ц7, ij = 1, ..., m - 1. Каждый элемент есть приближение к м(х„уу),
т.е. к значению решения УРЧП в точке сетки {xhy^. Можно оставить эти
обозначения, когда алгоритм 7.4.14 применяется к нашей задаче, и необходи-
мо только подходящим образом интерпретировать выполняемые в нем дейст-
вия. Все векторы расположены в памяти как двумерные массивы. Обновле-
ние и <- и + ар означает, что <- и у + aptj , ij = 1, ..., m - 1. Внутреннее про-
изведение ртг есть
ш—\ т-\
Е ЕА/г
у=1 / = 1
Матрично-векторное произведение q <- Ар интерпретируется как
Чи ~ Pi-и ~ Pij-i + 4 Pij - piJ+l - pi + iJ, i,j = 1, ..., m - 1. (7.4.15)
Как обычно, А не запасается ни в какой форме (краткой или полной). Дру-
гие детали приводятся в упражнении 7.4.19.
Пример 7.4.16. Применим метод наискорейшего спуска к модельной задаче
с теми же условиями, которые были заданы в примере 7.2.8. Результаты пред-
ставлены в табл. 7.6. Сравнивая их с данными таблицы из примера 7.2.8, мы
видим, что алгоритм наискорейшего спуска
606
Глава 7. Итерационные методы для линейных систем
Таблица 7,6. Метод наискорейшего спуска в применении к модельной задаче
h Число элементов матрицы Число итераций до сходимости
1/10 81 304
1/20 361 1114
1/40 1521 4010
сходится так же медленно, как и метод Якоби. Удивительно и совпадение про-
изводительности обоих методов.
Из (7.4.15) видно, что цена операции q <- Ар сравнима с ценой одной ите-
рации Якоби или Гаусса-Зейделя. Но в наискорейшем спуске вычисляются
дополнительные внутренние произведения рТг и pTq, а также обновляются
и <- и + ар и г г - aq, и каждое из этих действий требует примерно п » т2
флопов. Поэтому объем вычислений на итерацию наискорейшего спуска бу-
дет несколько больше, чем на итерацию Якоби или Гаусса-Зейделя. □
Геометрическая интерпретация наискорейшего спуска
Цель метода спуска состоит в минимизации функции J(y). Из (7.4.3) мы
знаем, что J может быть представлена в виде
/(у) = | (у - х)гЛ(у - х) - у,
где х есть решение системы Ах = Ь, а у - некоторая постоянная. Так как
матрица А симметрична, найдется такая ортогональная матрица U, что
IfAU будет диагональной матрицей Л из теоремы 5.4.19. Элементы диаго-
нали Л — это собственные значения матрицы А, причем все они положи-
тельны. Вводя новые координаты z = lfr(y - х) и опуская несущественные
константу у и множитель 1, убеждаемся, что минимизация Ду) эквива-
лентна минимизации
н
J(z) = zTbz = '£\iz?. (7-4.17)
/=1
Чтобы понять поведение функции J, рассмотрим случай 2x2. Тогда J бу-
дет функцией двух переменных, и поэтому ее линии уровней J(£t,z2) = с будут
кривыми на плоскости. В силу (7.4.17) эти линии задаются в виде
XjZ2 + X2Z22 = с,
т.е. являются концентрическими эллипсами, центрированными относительно
нуля. Это эллипсы, а не гиперболы, поскольку собственные значения Xj и л2
имеют одинаковые знаки.
7.4. Методы спуска; наискорейший спуск
607
Рис. 7.4. Наискорейший спуск в случае 2x2.
Ортогональное преобразование координат z = UT(y - х) сохраняет длины и
углы, так что линии уровня функции / будут эллипсами той же формы. Напри-
мер, линии уровня функции /(у), связанной с матрицей
’6
2
3J
2
представлены на рис. 7.4. Решение х = [х, х2]г определяет центр эллипсов.
Полуоси эллипсов равны и ^/с / Х2, а их отношение есть д/х2 /X,.
Собственные значения положительно определенной матрицы совпадают с ее
сингулярными числами, так что ее спектральное число обусловленности равно
отношению ее наибольшего собственного значения к наименьшему (см. тео-
рему 4.2.4 и упражнение 5.4.46). Следовательно, отношение полуосей равно
7к2(Л). Отсюда вытекает, что форма линий уровня зависит от числа обуслов-
ленности матрицы А : чем оно больше, тем больше и эксцентриситет эллипсов.
Рис. 7.4 соответствует случаю хорошей обусловленности.
Штриховые линии на рис. 7.4 отображают четыре шага алгоритма наиско-
рейшего спуска. Из заданной точки поиск ведется в направлении наискорей-
шего спуска, которое ортогонально линии уровня (т.е. направлению с отсутст-
вием спуска). При точном линейном поиске происходит движение по линии
поиска до той точки, в которой J имеет минимум. Функция / убывает до тех
пор, пока линия поиска пересекает линии уровня. Минимум достигается в
точке касания линии поиска некоторой линии уровня. (После этого / начнет
608
Глава 7. Итерационные методы для линейных систем
возрастать.) Так как следующее направление поиска будет ортогонально ли-
нии уровня в этой точке, то тем самым каждое направление поиска ортого-
нально предыдущему направлению. Следовательно, при поиске имеют место
движения вперед и назад в каньоне, образованном функцией J(y), и устойчи-
вое продвижение к минимуму.
Для хорошо обусловленной матрицы А минимум достигается быстро. В
наилучшем случае, при Xj = Х2, линии уровня будут окружностями, направле-
ние наискорейшего спуска (от любой начальной точки) указывает прямо на
центр и точный минимум достигается за одну итерацию. Если А хорошо обу-
словлена, то линии уровня близки к окружностям, направление наискорейше-
го спуска близко к направлению на центр и метод сходится быстро. Но если А
плохо обусловлена, линии уровня будут эллипсами с большим эксцентрисите-
том. Для заданной точки направление наискорейшего спуска почти везде да-
леко от направления на центр и потому не является хорошим для поиска. В
этом случае функция J образует узкий и глубокий каньон. Алгоритм наиско-
рейшего спуска описывает в этом каньоне движения вперед и назад, а продви-
жение к минимуму происходит такими шагами, длина которых стремится к
нулю. Для проявления этого феномена не требуется экстремально плохой обу-
словленности. Даже если система лишь незначительно отклоняется в сторону
плохой обусловленности и при ее решении не требуется слишком высокой
точности, сходимость может быть очень медленной.
До сих пор обсуждался случай 2x2, но указанные трудности не зависят от
размерности. В случае 3x3 поверхности уровней будут эллипсоидами из R3, а
в общем случае - гиперэллипсоидами из R", а их форма будет зависеть от
к2(Л). Для каждого шага наискорейшего спуска направление выбирается орто-
гональным к гиперповерхности уровня, а продвижение по нему происходит до
тех пор, пока оно не станет касательным к другой такой гиперповерхности.
При этом для гиперэллипсоидов с большим эксцентриситетом продвижение к
минимуму будет медленным.
Алгоритмы Якоби, Гаусса-Зейделя и Ричардсона можно рассматривать как
алгоритмы спуска (упражнения 7.4.7 и 7.4.20), и наличие узкого, глубокого
каньона так же отрицательно проявляется в них. См., например, упражнение
7.4.22. Можно вернуться и к упражнению 7.3.19, в котором другими средства-
ми было показано, что сходимость метода Ричардсона быстро ухудшается с
ухудшением обусловленности. Даже не очень плохая обусловленность иногда
может стать причиной крайне медленной сходимости. См. упражнение 7.4.24.
Дополнительные упражнения
Упражнение 7.4.18. Пусть линейная пружина имеет жесткость к Н/м. Тогда,
если она растянута (или сжата) на s метров от своего положения равновесия, то
в ней возникнет сила сопротивления, равная ks Н. Чтобы подсчитать работу, не-
обходимую для растяжения пружины на х метров от своего положения равнове-
х i
сия, нужно проинтегрировать эту силу: J ksds = -к^ Дж (джоулей). Такая работа
о
равна энергии напряжения, запасенной в пружине благодаря ее деформации.
7.4. Методы спуска; наискорейший спуск
609
Рис. 7.5. Система трех тележек.
Теперь рассмотрим систему из трех масс и четырех пружин, изображенную на
рис. 7.5, которая уже знакома нам по примеру 1.2.10. Если внешние силы при-
ложены к тележкам так, как показано на рисунке, тележки перейдут из своего
исходного положения равновесия в новое положение равновесия.
(а) У каждой из пружин жесткость равна 4 Н/м. Покажите, что если тележ-
ки 1, 2 и 3 переместить на у1? у2 и у3 метров из их исходного положения равно-
весия (пусть, например, положительные перемещения будут вправо), то пол-
ная энергия сжатия всех четырех пружин будет равна
| (у? + (У2 - У1)2 + (Уз - Уг )2 + (-Уз)2) Дж.
При этом считайте, что вначале пружины никак не нагружены1.
(Ь) Проверьте, что
, \2 г 1Г 1
(у2 - У1) = [У1 у2] . .
L"1
Затем покажите, что полная энергия сжатия пружин равна где Л-та
же матрица, что и в примере 1.2.10, а у = [у] у2 у3]Т.
(с) Покажите, что если внешние силы в 1, 2 и 3 Н действуют вправо, как
показано на рисунке, то потенциальная энергия, накопленная благодаря рабо-
те против этих сил, равна -утЬ Дж, где b = [1, 2, 3]г.
Следовательно, полная потенциальная энергия системы в конфигурации у
есть /(у) = утАу- утЬ. Искомая конфигурация х, которую тележки будут иметь
в конце, такова, что для нее / достигает минимума и Ах = Ь. □
Упражнение 7.4.19. Напишите программу, реализующую метод наискорей-
шего спуска в применении к модельной задаче (7.1.8). Используйте ее для ре-
шения модельной задачи с f = 0 и g, заданной в виде
ГО
8(х,у) = <
при х = 0,
у при х = 1,
(x-l)sinx при у = 0,
х(2-х) приу = 1,
1 Это предположение упрощает подсчет, но не является существенным.
610
Глава 7. Итерационные методы для линейных систем
как в примере 7.2.8. Возьмите сетки с h = 1/10, 1/20 и 1/40. Начав с м(0) = 0, най-
дите число итераций, необходимых для того, чтобы
||г(*+,>||2< lo-Vlb-
Сравните ваши результаты с результатами из примера 7.4.16. Они должны
быть близки друг к другу, но не должны совпадать полностью, поскольку те-
перь используется другой критерий прекращения итераций. Вот некоторые де-
тали реализации этого плана.
Если записать (7.1.8) в матричном виде Аи = i, то все слагаемые, происходя-
щие из граничных условий, войдут в вектор правой части Ь. Поэтому ваша
программа вначале должна включить все граничные значения в Ь, Рассмот-
рим, например, уравнение, относящееся к точке сетки (хь у3). Оно имеет вид
-«1,2 - «0,3 + 41/1,3 - «2,3 - «1,4 = A2 f(xt> Уз).
Поскольку и0 з соответствует граничной точке сетки, его значение известно
из граничных условий: м0 3 =^(х0,Уз)- Следовательно, этот член не является не-
известным и должен быть перенесен в правую часть уравнения. Таким обра-
зом, уравнение примет вид
-«1,2 + 4и1>3 - и2,з - И|,4 = h2f(xlt Уз) + g(xt,y3),
А1>3 = h2f(xt, Уз) + g(x0,yJ).
Так в каждый элемент Ьц, примыкающий к некоторой граничной точке,
должен быть включен соответствующий граничный член. Каждый угловой
элемент (например, Ь1 л) будет дополняться двумя граничными членами. (Так
как для нашей тестовой задачи /= 0, все ненулевые элементы в b образуются
граничными членами.) После помещения граничных членов в Ь о них можно
забыть, поскольку в программе они больше нигде не используются.
Матрично-векторное произведение должно быть реализовано в виде от-
дельной программы или процедуры, основу которой составляет двойной вло-
женный цикл вида
for i = 1, ..., т-\
for i = 1, ..., т-\
{qv <- -Pi-u - Ри-i + 4pM - pij+, - p,+и
Для правильной работы этой процедуры следует занулять граничные чле-
ны. (Так как граничные условия отнесены к вектору Ь, они не играют ника-
кой роли для матрицы А.) Если в вашей программе граничные значения р/ 0,
Poj, Pmj полагаются равными нулю в самом начале (и аналогично это де-
7.5. Предобусловливатели
611
лается для и) и все время сохраняются таковыми, процедура будет работать
правильно.
Полезно также написать отдельную процедуру для вычисления внутренне-
го произведения при нахождении а □
Упражнение 7.4.20. Покажите, что алгоритм наискорейшего спуска совпа-
дает с методом Ричардсона при переменном сглаживании и в методе Ричард-
сона осуществляется наискорейший спуск с неточным линейным поиском. □
Упражнение 7.4.21. Покажите, что поверхности уровней функции J(y) =
= ~уТАу ~ ЬТу - это гиперэллипсоиды в IV с полуосями /7^, i = 1, ..., п, где
Х|,..., - собственные значения матрицы А. □
Упражнение 7.4.22. Постройте график наподобие рис. 7.4, показывающий
динамику работы метода Гаусса-Зейделя. Постройте другой график, пояс-
няющий медленную сходимость метода Гаусса-Зейделя в случае плохой обу-
словленности Л. □
Упражнение 7.4.23. Постройте график, подтверждающий превосходство ме-
тода SOR над методом Гаусса-Зейделя при подходящем выборе со. □
Упражнение 7.4.24. Возьмите в качестве А матрицу для модельной зада-
чи (7.1.8).
(а) Покажите, что
к2(Л) = cot2(nh/2) ~ 2/(яй)2.
(См. упражнение 7.3.37.)
(Ь) Какую связь можно установить между к2(Л) и известными фактами о
скорости сходимости методов Якоби и Гаусса-Зейделя?
(с) Вычислите к2(Л) при h = 1/40 и убедитесь, что при этом обусловленность
А не очень плохая. □
7.5. Предобусловливатели
В предыдущем разделе отмечалось, что поверхность, описывающая функ-
цию J, представляет собой узкий глубокий каньон, если матрица Л не является
хорошо обусловленной. По этой причине метод наискорейшего спуска (как,
впрочем, и другие методы) сходится очень медленно. Улучшить эту ситуацию
можно путем перехода от системы Ах = Ь к эквивалентной системе Ах = b, у
которой Л будет лучше обусловлена по сравнению с Л. Эта процедура называ-
ется предобусловливанием. Затем можно применять метод спуска к этой новой
или предобусловленной системе.
Есть много способов проведения такого преобразования. Например, пусть
М — некоторая простая матрица, аппроксимирующая Л, т.е. некоторая расще-
пляющая матрица, но теперь мы будем называть ее предобусловливателем. Ум-
ножим обе части уравнения Ах = b на М~х слева и получим новую систему Ах = b,
612
Глава 7, Итерационные методы для линейных систем
1А,х=хиЬ =М 1Ь. К сожалению, А уже не будет симметричной. Для
положительно определенной М можно сохранить симметрию, используя раз-
ложение Холесского М= RTR. Тогда вместо М~1А можно взять другую матрицу
R~rAR "1. Более точно, можно умножить обе части уравнения Ах = Ь слева на
и вставить единичную матрицу R~{R между Я и х, чтобы получить (R~TAR _,)(Лх) =
= R~Tb. Тем самым Ах = Ь, где А - R~TAR~\ х = Rxnb = R~Tb.
Упражнение 7.5.1. Покажите, что А = Я 7/!/?1 - положительно определен-
ная матрица, если таковой является А. В частности, А симметрична. □
Прямой путь учесть предобусловливание состоит в том, чтобы просто при-
менить алгоритм 7.4.14 к преобразованной системе, заменяя там А, г, х и т. д.
на преобразованные величины А, 7, х и тд. Алгоритм выдаст х за относитель-
но меньшее число итераций, поскольку А лучше обусловлена по сравнению с
А. После этого нужно перевести полученный результат в решение исходной
системы, выполнив преобразование х = R~lx.
Более эффективным является выполнение эквивалентных операций в ис-
ходной координатной системе. При этом весь алгоритм выполняется без соз-
дания преобразованных величин. Как мы скоро увидим, большой выигрыш
здесь получается потому, что можно обойтись без вычисления R. Для реализа-
ции метода спуска потребуется только М~х.
Нетрудно записать алгоритм (7.4.14) для преобразованной системы, а затем
строка за строкой перевести его в исходную систему координат. Начнем с ал-
горитма, в котором над всеми векторами стоят тильды и, что особенно важно,
А используется вместо А. Затем для каждой строки запишем эквивалентную
операцию в исходной координатной системе. Например, строка х <- х + ар
перейдет в х х + ар после подстановок х = R~{x и р = R~xp. (При этом не сле-
дует вводить символ а, поскольку а - скаляр, а не вектор и поэтому не зависит
от выбора координатной системы.) Преобразование р = R~xp служит определе-
нием для р. Разумно определить р с помощью такого же преобразования, ка-
ким задается х, ибо это позволяет нам продолжать интерпретировать р как на-
правление поиска при переходе от уже найденного приближения к следующе-
му. Если определить q как q = RTq, строкаq <- Ар перейдет в q <- Ар. Чтобы
вектор г был невязкой, как это всегда имело место до сих пор, его нужно пра-
вильно задать как г = RT7. Тогда строка 7 <— 7 - a q перейдет в г <— г - aq. Заме-
тим также, что рТ7 = ртг и pTq = pTq, и поэтому при вычислении а можно
обойтись величинами без тильд.
До сих пор наши преобразования выглядят как совершенно формальная
процедура. Мы начали с записи алгоритма (7.4.14) в преобразованной системе
координат, используя для этогор, q, 7 и т.д., а затем определили р, q и г так,
чтобы все действия там проводились над объектами без тильд. Результатом
стал исходный алгоритм (7.4.14), как будто он появился впервые.
Нужно еще обсудить преобразование строк р <- ?, и теперь мы сосредото-
чимся на методе наискорейшего спуска. В исходном методе наискорейшего
спуска полагалось р = г, так что и после предобусловливания должно быть р = 7.
7.5. Предобусловливатели
613
Этот момент имеет важное значение. При переводе соотношения р = г обрат-
но в исходную координатную систему нельзя полагать р = г, поскольку р и г
преобразуются по-разному1. Так как р = Rp и г = Л_/г, то р = R~lR~Tr, Вспоми-
ная, что Л/ = RJR, будем иметь р = Л/1/: Благодаря найденной зависимости
символ R исчезает из алгоритма. Следовательно, предобусловленный алгоритм
наискорейшего спуска с предобуславливателем М примет следующий вид:
Предобусловленный алгоритм спуска (с предобусловливателем М ) для решения системы
Ах - Ь. На входе начальное приближение должно быть задано в х, а вектор b - в г. Алгоритм
помещает в х свое наилучшее приближение решения и выдает значение указателя (флаг) о
том, достигнута или нет заданная точность.
г г - Ах
р<г- М -|г
£<-()
выполняется до достижения точности или значения к ~ I
q<~Ap
a+-p]r/prq (7.5.2)
х <-х + ар
Г <- Г -О1]
р <- Л/“'г
к <-к + 1
если точность не достигнута, поставить флаг
Алгоритм (7.5.2) совпадает с алгоритмом (7.4.14) за исключением строк
р <- Л/~‘г. Действительно, алгоритм (7.5.2) есть вариант алгоритма (7.4.14).
Только применение предобусловливателя приводит к тому, что направление
поиска изменяется с г на Л/-1 г.
Упражнение 7.5.3. Проверьте все детали предыдущих рассуждений. Убеди-
тесь, что алгоритм (7.5.2) в самом деле является правильным преобразованием
алгоритма наискорейшего спуска для системы Ах=Ь, где А = R'TAR~} □
Примеры предобусловливателей
В нашем построении предполагалась положительная определенность М.
Поэтому будем искать предобусловливатели среди тех итерационных методов,
которые имеют положительно определенные расщепляющие матрицы.
Пример 7.5.4. Для метода Якоби М = D, т.е. равна диагональной части А, и
М положительно определена вместе с А. Предобусловливателъ Якоби, извест-
ный также как диагональный предобусловливапгель, особенно прост в примене-
нии. Операция р = М'лг сводится к нахождению р, <- r-J аи, 7=1, ..., п. К сожа-
лению, он не является очень эффективным предобусловливателем. □
1 Имеются два закона преобразования. Согласно принципу двойственности, векторы х и р, для
которых z. = R 1 i ipn надлежит основному пространству, а векторы />, г и с/, для которых z = /Г1 z, -
двойственному.
614
Глава 7. Итерационные методы для линейных систем
Упражнение 7.5.5. Покажите, что сходимость алгоритма наискорейшего
спуска для модельной задачи (7.1.8) в целом не ускоряется за счет использова-
ния предобусловливателя Якоби. □
В задачах, у которых элементы главной диагонали матрицы коэффициен-
тов заметно меняются по модулю, предобусловливатель Якоби часто оказыва-
ется эффективным.
Упражнение 7.5.6. Примените алгоритм наискорейшего спуска к системе
10
1
1 *1
1J [_Х2
13"
4
Начиная с х(0) = 0, выполните три итерации (а) без предобусловливателя, (Ь)
с предобусловливателем Якоби. Это можно сделать вручную, но еще лучше на-
писать простую программу на MATLAB’e. Отметьте высокую эффективность
предобусловливателя в этом случае. На MATLAB’e можно сравнить числа обу-
словленности матриц А и А = D~X/1AD “1/2. □
Для небольших задач, подобных рассмотренной в упражнении 7.5.6, можно
без всякого ущерба задать матрицу Л/-1 в явном виде и затем использовать ее
при выполнении процедуры предобусловливания р <- М~1г, но для больших за-
дач это дорого. Обычно операция предобусловливания выполняется некото-
рой подпрограммой, получающей г как входной аргумент и вычисляющей р
без формирования М или М~х. Например, в подпрограмме для предобусловли-
вания Якоби каждый элемент г делится на соответствующий элемент главной
диагонали А.
Процедура применения предобусловливателя Якоби совершенно оче-
видна. Теперь посмотрим, как это делается в более сложных случаях.
Пусть некоторый итерационный метод определяется матрицей расщепле-
ния М. Напомним, что тогда итерация записывается в виде Л/х(* + ,) = Nx{k)
+ b, где А = М - N. После выполнения первой итерации, переводящей х(0) в
х(|), будем иметь
х(1> = х(0) + Л/~’г(0)
(7.5.7)
где г(0) = Ь - Ях(0). Эта формула доя общего случая была приведена в упражне-
нии 7.3.20, а для частных случаев в упражнениях 7.2.4, 7.2.12, 7.2.18, 7.2.24 и
7.2.26. Например, после выполнения SOR-итерации, переводящей х(0) вх(|),
эти два приближения будут связаны формулой (7.5.7), в которой М = — D - Е.
со
Но в SOR-итерации элементы вектора х корректируются последовательно
один за другим, так что здесь мы никогда не формируем и даже не задумыва-
емся о матрице Мили обратной к ней. Если начать сх(0) = 0, то r(0) = Ь и (7.5.7)
дает х(1) = М~х Ь. Это говорит о том, что если для системы Ах = b выполняется
одна итерация с х(0) = 0, то результатом будет М~ХЬ. (Хотя здесь имеется в виду
SOR, это заключение справедливо для любого итерационного метода, задавае-
мого с помощью расщепления.) Для предобусловливания нужно вычислять
7.5. Предобусловливатели
615
M~lr, а не M~xb. Этого можно достичь, используя систему Ах = г вместо Ах = Ь.
В итоге для вычисления р = М~1г нужно применить одну итерацию с х(0) = 0 к
системе Ах = г. Результатом этого будет р.
Использовать SOR в качестве предобусловливателя не следует, так как
его расщепляющая матрица не симметрична. SSOR лучше подходит для
этого.
Пример 7.5.8. В симметричном случае расщепляющая матрица для SSOR
имеет вид
М = —(-D-e}Dl(-D-ET
2-со^со J Vе0
где D и -Е - это главная диагональ и нижняя треугольная часть А соответст-
венно (упражнение 7.2.26). При 0 < со < 2 и положительной определенности А
матрица Мтакже будет положительно определенной (упражнение 7.3.40). Эта
М представляется нам сложной. Но оказывается нетрудным применить М~х
без реального ее задания. Просто выполним одну SSOR-итерацию с нулевым
начальным приближением для системы Ах = г. Напомним, что SSOR-итерация
состоит из прямой SOR-итерации, за которой следует такая же обратная.
В табл. 7.7 приведены некоторые результаты применения метода наиско-
рейшего спуска с SSOR-предобусловливателем к модельной задаче (7.1.8) с
граничными условиями из примера (7.2.8). Использовались h = 1 / 40 и не-
сколько значений релаксационного множителя со. Число итераций 4010 без
предобусловливателя такое же, как и в примере 7.4.16. Видно, что SSOR-npe-
добусловливатель дает принципиальное улучшение вне зависимости от выбора
значения со При хорошем выборе со получаются отличные результаты. Из
сравнения этих результатов с приведенными в примере 7.2.21 видно, что число
итераций, нужных здесь при со = 1.9, намного меньше, чем для SOR с опти-
мальным са Справедливости ради отметим, что итерация наискорейшего спус-
ка с SSOR-предобусловливателем требует в несколько раз больше арифмети-
ческих операций по сравнению с SOR-итерацией, но даже с учетом этого об-
стоятельства наискорейший спуск с SSOR-предобусловливателем остается
сравнимым с методом SOR по быстродействию. □
Таблица 7.7. Метод наискорейшего спуска с SSOR-предобуславливателем
Предобуслов- ливатель co Число итераций до сходимости
нет нет 4010
SSOR 1.0 575
SSOR 1.3 327
SSOR 1.6 171
SSOR 1.9 58
616
Глава 7. Итерационные методы для линейных систем
SSOR-предобусловливатель работает очень хорошо, и его легко использо-
вать, так что он будет и далее фигурировать в наших примерах и мы не видим
необходимости в поисках лучшего.
Некоторые из наиболее употребительных (и первыми опробованных)
предобусловливателей - это /ZtZ-предобусловливатели, основанные на не-
полном L (7-разложении. Поскольку нас интересует прежде всего положи-
тельно определенный случай, ограничим свое рассмотрение предобуслов-
ливателями, опирающимися на неполное разложение Холесского. Для разре-
женной матрицы А ее множитель Холесского обычно оказывается гораздо
менее разреженным. Эти потери происходят при выполнении процедуры
исключения. Неполное разложение Холесского - это приближение А »
RTR , где R — верхняя треугольная матрица, более разреженная по сравне-
нию с точным множителем Холесского. Например, R может иметь тот же
шаблон разреженности, что и А. Можно добиться этого для R, выполняя
обычный алгоритм разложения Холесского, но отказавшись от уменьше-
ния разреженности: числа, обновляющие нулевые позиции, полагаются
равными нулю. Для улучшения аппроксимации можно применять этот
прием в неполном объеме. Критерий, разрешающий заполнение нулевых
позиций, может исходить, например, из величины нового элемента или его
расположения. Было опробовано много разных стратегий. После выполне-
ния неполного разложения Холесского произведение М = RTR может слу-
жить предобусловливателем. Его применение сводится к прямой и обрат-
ной подстановкам для решения систем с очень разреженными треугольны-
ми матрицами.
Другие предобусловливатели строятся на основе многосеточных и много-
областных технологий [9], [36], [63]. В применении к модельной задаче
(7.1.8) и к широкому кругу аналогичных задач лучшие из них оказываются
оптимальными в том смысле, что они порождают такую предобусловленную
матрицу Л, для которой число обусловленности ограничено: к2(Л) < К, где К
не зависит от шага сетки h. Отсюда следует, что число необходимых для
достижения заданной точности итераций также более или менее не будет
зависеть от h.
Дополнительные упражнения
Упражнение 7.5.9. Напишите программу, реализующую алгоритм наис-
корейшего спуска с SSOR-предобусловливателем для модельной задачи
(7.1.8). Ваша подпрограмма для выполнения предобусловливания должна
состоять из двух вложенных циклов, второй из которых выглядит пример-
но так:
for j = т-\, ..., 1
for ..., 1
[ру +A+i,7 +Л-и +гм)
Pij Pij +(£(P-Pi,j>
7.6. Метод сопряженных градиентов
617
Перед выполнением первого цикла вектор р должен быть нулевым (вклю-
чая граничные значения). Для проверки своей программы используйте те же/
g и что и в упражнении 7.4.19. Прекращайте итерации, когдар(*+ 1)7г(*+ ° <
г2р(О)гг(о), где г = 10~8 (см. упражнение 7.5.10). При h = 1 /40 возьмите со = 1.7,
1.75, 1.8, 1.85, 1.9 и 1.95. Убедитесь, что предобусловливатель удовлетворитель-
но функционирует во всем этом интервале значений со □
Упражнение 7.5.10. Покажите, что если р = М-1г, то рТг = ||г |||, а это квад-
рат нормы невязки для преобразованного уравнения. Прикиньте плюсы и
минусы критерия прекращения итераций, основанного на взаимоотношении
IIГ II и II г ||. □
Упражнение 7.5.11. Наше усовершенствование алгоритма (7.5.2) сде-
лано в предположении положительной определенности расщепляющей
матрицы. Но ничто не мешает применять его и для несимметричной
матрицы М. В этом случае нет оснований выбирать направление поиска
в виде р = М~1г, но еще можно осуществлять спуск с точным линейным
поиском.
(а) Попробуйте использовать SOR в качестве предобусловливатели в наис-
корейшем спуске для модельной задачи. Как это выглядит в сравнении с SSOR
и с тем, когда вообще нет предобусловливатели?
(Ь) Попробуйте предобусловливатель, делающий т проходов SOR вместо
одного. Попробуйте это хотя бы для т = 2, 3 и 4. Отметьте, что с ростом т та-
кой предобусловливатель дает лучшие результаты. Конечно, это увеличивает
объем вычислений. □
Упражнение 7.5.12. Для заданного предобусловливателя или расщепляю-
щей матрицы М покажите, что предобусловленный алгоритм наискорейшего
спуска совпадает с итерациями, порождаемыми расщепляющей матрицей
— М, за исключением того, что параметр сглаживания меняется от итерации к
со
итерации. (См. упражнения 7.3.20 и 7.3.23.) □
Упражнение 7.5.13. Пусть А и М - положительно определенные матрицы и
М = RTR. Определим = М~'А и А2 = Я_7ЛЯ_1.
(а) Проверьте, что А1 и А2 подобны, т.е. А2 - 5"1Л15для некоторой невырож-
денной матрицы S.
(Ь) Покажите, что метод Ричардсона в применении как к А1, так и к А2 будет
сходиться при достаточно малых значениях параметра сглаживания со с одной
и той же скоростью сходимости. □
7.6. Метод сопряженных градиентов
Все обсуждавшиеся до этого итерационные методы требовали мало па-
мяти для своей реализации. В каждом из них нужна была только информа-
ция об х(к\ чтобы получить х(к+Г>. Вся информация о более ранних при-
ближениях забывалась. Метод сопряженных градиентов (CG-метод) [39]
618
Глава 7. Итерационные методы для линейных систем
представляет собой простую вариацию наискорейшего спуска, которая ра-
ботает лучше, так как она использует дополнительную информацию о пре-
дыдущих приближениях.
Наш подход состоит в том, чтобы сформулировать нужный алгоритм, срав-
нивая и противопоставляя его методу наискорейшего спуска, и увидеть, на-
сколько хорошо он работает. Выполняя это, мы придем к алгоритму и изучим
его теоретически.
Начнем с основного алгоритма сопряженных градиентов без предобу-
словливания, который приведен ниже, в (7.6.1). На первый взгляд он лишь
незначительно отличается от наискорейшего спуска. Небольшое отличие в
вычислении а выглядит как косметическое. Линейный поиск еще остается
точным и CG-метод видится как частный случай алгоритма 7.4.14. Вначале
р <- г, так что первый шаг есть наискорейший спуск, но дальнейшие шаги
будут другими: вместо р <- г выполняется р <- г + Рр. Невязка или направ-
ление поиска наискорейшего спуска еще играет важную роль в определении
нового направления поиска, но теперь используется также и старое направ-
ление поиска и тем самым оказывается востребованной информация о пре-
дыдущих приближениях. Это небольшое изменение существенно влияет на
результаты.
Алгоритм сопряженных градиентов для решения системы Ах = Ь. На входе начальное при-
ближение должно быть задано в х, а вектор b - в г. Алгоритм помещает в х свое наилучшее
приближение решения и выдает значение указателя (флаг) о том, достигнута или нет задан-
ная точность.
г t-г -Ах
Р<~г
Т
V г
к<-0
выполняется до достижения точности или значения к=/
q<~Ap (7.6.1)
а <- v/p
х <- х + ар
г <-r-aq
т
У+ <-г г
Р <- / V
р<-г + рр
у <— v+
к<-к + 1
если точность не достигнута, поставить флаг
Пример 7.6.2. Применим алгоритм сопряженных градиентов к модельной
задаче при тех же условиях, которые указаны в примере 7.2.8. Результаты
сведены в табл. 7.8. Их сравнение с данными таблицы из примера 7.4.16 по-
7.6. Метод сопряженных градиентов
619
казывает, что CG-алгоритм значительно превосходит применительно к мо-
дельной задаче метод наискорейшего спуска. В самом деле, его производи-
тельность выше
Таблица 7.8. Метод сопряженных градиентов (без предобуславливателя)
h Число итераций до сходимости
1/10 29
1/20 60
1/40 118
по сравнению с SOR (пример 7.2.21) или наискорейшим спуском с SSOR-npe-
добуславливателем (пример 7.5.8). Преимущество метода CG перед двумя по-
следними методами состоит в том, что в нем нет никакого сд оптимальное зна-
чение которого еще нужно как-то оценить. □
Почему же CG-метод настолько лучше наискорейшего спуска? Для упро-
щения выкладок предположим (и это несущественно), что х(0) = 0. Тогда после
j итераций вида х(*+1) = х(*> + акр(к) будем иметь
х0) = аор(О) + а1р(|) + ... + ау_ {ри ~ °.
Следовательно, х° принадлежит пространству S/9 натянутому на J направ-
лений поиска р(0), ..., p(J °. Это верно для обоих алгоритмов, но они опреде-
ляют различные направления поиска. Конечно, в них вычисляются и различ-
ные коэффициенты ак, хотя натянутые на направления поиска пространства
совпадают. В обоих случаях будем иметь 5У = span{i, Ab, A2b, ..., AJ ~ т.е.
крыловское подпространство. Так как в наискорейшем спуске делается
точный линейный поиск, хи) минимизирует функцию энергии J на j пря-
мых х(к) + <хкр{к}. Объединение этих прямых образует узкое вытянутое под-
множество в Sj. Как мы увидим, CG-алгоритм делает нечто гораздо луч-
шее. Забегая немного вперед, скажем, что его действия направлены на по-
строение такого приближения х0), которое минимизирует J во всем
пространстве Sj.
Предобусловленный алгоритм сопряженных градиентов
CG-алгоритм тесно связан с наискорейшим спуском. Его первый шаг тот
же самый, что и для наискорейшего спуска, а каждое последующее направ-
ление поиска частично зависит от направления для наискорейшего спуска.
Поэтому есть некоторые основания надеяться, что CG-алгоритм, как и ал-
горитм наискорейшего спуска, может быть улучшен с помощью предобу-
словливания [10].
Процедура для предобусловливания CG-алгоритма та же самая, что и для
алгоритма наискорейшего спуска. В результате будем иметь
620
Глава 7. Итерационные методы для линейных систем
Алгоритм сопряженных градиентов с предобусловливанием (с предобусловливателем М)
для решения системы Ах = Ь. На входе начальное приближение должно быть задано в х, а
вектор b — в г. Алгоритм помещает в х свое наилучшее приближение решения и выдает зна-
чение указателя (флаг) о том, достигнута или нет заданная точность.
г <-г-Ах
s <- М~{г
v<r-rTs
p<r-s
к <-0
выполняется до достижения точности или значения к=/
~Я+-Ар
Т
Q
а v/ц
х <- х + ар
г <r-r-aq
s <- М~{г
V+ <-ГГ5
Р <- v+ / V
р<-г + $р
V <- v+
к <г-к + \
если точность не достигнута, поставить флаг
(7.6.3)
Мы получили (7.6.3), применив CG-метод к преобразованной системе Ах = b,
где А = R~TAR~\ х = Rx,b = R~Tb и RTR = М. Затем каждое выражение было пе-
реведено в эквивалентное выражение в исходной системе координат. Для
удобства введен новый вектор 5 = М~{г.
Существенное преимущество возвращения в исходную систему координат
состоит в том, что это исключает необходимость вычисления R. В алгоритме
(7.6.3) используется только М~х.
Упражнение 7.6.4. Проверьте, что алгоритм (7.6.3) действительно явля-
ется правильной записью алгоритма сопряженных градиентов для систе-
мы Ах = b. □
Алгоритм (7.6.3) — это еще один вариант алгоритма (7.4.14). В частности,
линейный поиск и здесь остается точным.
Затраты на выполнение CG-алгоритма лишь немногим выше затрат для
метода наискорейшего спуска. Поскольку вычисление коэффициентов а и
р выполняется достаточно экономно, нужно вычислять лишь два внутрен-
них произведения на каждой итерации, которая выглядит так же, как и
для наискорейшего спуска. Все другие затраты примерно одинаковы за ис-
ключением того, что в CG-методе есть дополнительная векторная опера-
ция р <- s + рр, на которую требуется 2п флопов. В CG-методе требуется
хранить 5п чисел (векторы х, г, 5, р и q) плюс что-то еще (если нужно),
7.6. Метод сопряженных градиентов
621
чтобы иметь А и М~{. Это нужно сравнивать с хранением 4п чисел для на-
искорейшего спуска и с хранением п чисел для SOR.
Пример 7.6.5. В табл. 7.9 приведены результаты применения метода CG с
SSOR-предобуславливателем к модельной задаче (7.1.8) с такими же условия-
ми, как в примере 7.2.8. Как и в примере 7.5.8, возьмем h = 1 / 40 и несколько
значений множителя релаксации со. Число необходимых итераций совсем не-
большое и слабо зависит от выбора со.
Таблица 7.9. Метод сопряженных градиентов с SSOR-предобуславливателем
Предобуславли- ватель co Число итераций до сходимости
нет нет 118
SSOR 1.0 49
SSOR 1.3 37
SSOR 1.6 28
SSOR 1.7 26
SSOR 1.8 24
SSOR 1.9 28
Из сравнения с результатами примера 7.2.21 видно, что предобусловлен-
ный CG-метод очевидным образом лучше, чем SOR. □
В упражнении 7.6.6 вы увидите, что преимущество предобусловленного
CG-метода будет возрастать с уменьшением h.
Дополнительные упражнения
Упражнение 7.6.6. Напишите программу реализации алгоритма сопряжен-
ных градиентов с SSOR-предобусловливателем для модельной задачи (7.1.8).
Здесь также можно применить указания из упражнений 7.4.19 и 7.5.9 о выпол-
нении действий р <- Aq и 5 М~хг. Для тестирования вашей программы ис-
пользуйте те же самые/, g и w(0), какие были в упражнении 7.4.19. Прекращайте
итерации, когда $(к+Г>Тг(к + Г> < £2у(0)7?0), где е = 10“8 (см. упражнение 7.5.10).
(а) Опробуйте вашу программу при условиях из примера 7.6.5. У вас долж-
ны получиться сходные, но не идентичные результаты, так как теперь вы ис-
пользуете другой критерий прекращения итераций.
(Ь) Возьмите модельную задачу с h = 1/160. Какой порядок будет у соот-
ветствующей ей матрицы? Какова ширина ее ленты (в предположении естест-
венного упорядочивания по строкам)? Примерно какая часть ее элементов от-
лична от нуля?
(с) При h = 1 / 160 возьмите со = 1.7, 1.75, 1.8, 1.85, 1.9 и 1.95. Убедитесь, что
при этих значениях со предобусловливатель работает удовлетворительно.
(d) Примените SOR с h = 1 / 160 для сравнения с предобусловленным CG-
методом. (Используйте для этого вашу программу из упражнения 7.2.23.)
622
Глава 7. Итерационные методы для линейных систем
Возьмите со = 1.9, 1.95 и 1.962 (оно оптимально при h = 1 / 160). Отметьте здесь
большую чувствительность к выбору со. Как выглядит сравнение SOR с CG,
дополненным SSOR-предобуславливателем?
(е) Задайте значение со, скажем, 1.8 или 1.9, и запустите вашу CG-програм-
му с предобусловливателем с этим со и h = 1 / 10, 1 / 20, 1 / 40, 1 / 80 и 1 / 160.
В каждом случае запомните число необходимых итераций ih. Отметьте, что ih
возрастает с уменьшением й, но этот рост совсем незначительный. (В идеале
не должно быть никакого роста. Это еще одно направление исследований для
улучшения алгоритма.) □
Упражнение 7.6.7. Попробуйте заменить в CG-программе SSOR-предобу-
словливатель на SOR-предобусловливатель. Как будет работать такая програм-
ма? □
Упражнение 7.6.8. В MATLAB’e есть CG-программа peg. Познакомьтесь с
peg с помощью системы help и опробуйте ее для дискретной матрицы Лапла-
са. Используйте команды наподобие следующих:
m = 40;
А = delsq(numgrid('N',m+l)) ;
n = size(A,1)
sol = ones(n,l); % вектор решения из единиц
b = A*sol; % вектор правой части
tol = le-12; maxit = 1000;
[x,flag,relres,iter] = peg(A,b,tol,maxit) ;
err = norm(sol - x)
Генерируемая здесь матрица А в точности совпадает с матрицей для нашей
модельной задачи (7.1.8) при h = 1 / т, В программе применяется упорядочи-
вание «вложенных разбиений» [30]. Наиболее общий вариант использования
peg предполагает явное задание А как разреженной матрицы MATLAB’a, и это
все, что мы делаем здесь. Это далеко от наиболее экономного задания такой
матрицы или эффективной реализации CG-алгоритма, но зато удобно и впол-
не подходит для решения задач не очень высокого порядка. Здесь peg приме-
няется с точностью невязки 10’12, ограничением до 1000 итераций и без предо-
бусловливателя. Выполните эту программу для различных значений т, напри-
мер, для т = 40, 80, 160, и определите число итераций в каждом случае. □
Упражнение 7.6.9. В MATLAB’e есть также программа choline для по-
строения неполных предобусловливателей Холесского (см. разд. 7.5). Позна-
комьтесь с ней с помощью системы help. Повторите упражнение 7.6.8, при-
меняя неполный предобусловливатель Холесского М = RTR с урезающей точ-
ностью 10~2. Это сводится к следующему:
droptol = 1е-2;
R = choline(A,droptol);
spy(A), spy(R), spy(R'+R),
[х,flag,relres,iter] = peg(A,b,tol,maxit,R',R);
Сравните ваши результаты с результатами упражнения 7.6.8. □
7.7. Производная от CG-алгоритма
623
Упражнение 7.6.10. Повторите упражнение 7.6.9 с фиксированным т, ска-
жем, с т = 80, варьируя урезающую точность. Попробуйте, например, 10°, 10’1,
10 2 и 10 Л Оцените эффективность по числу необходимых CG-итераций и по
числу ненулевых элементов в неполном множителе Холесского. Сравните по-
следнее с числом нулей в полном множителе Холесского для А, полученном с
помощью chol. □
Упражнение 7.6.11. Повторите упражнения 7.6.8, 7.6.9 и 7.6.10 для матриц
Вафена различных размеров. Выполните, например, А = gallery('wat-
hen',20,15). Для повышения размеров увеличивайте параметры 20 и 15.
Выполните help private/wathen, чтобы получить информацию о матри-
цах Вафена □
7.7. Производная от CG-алгоритма
Алгоритм сопряженных градиентов является методом спуска, в котором
производится точный линейный поиск. Для завершения формального опреде-
ления алгоритма осталось только решить, как будут выбираться направления
поиска. После некоторой подготовительной работы мы сможем получать на-
правления поиска довольно естественным образом.
В гл. 3 было введено внутреннее произведение
(х, у) = = у1'х = хТу>
которое широко использовалось при обсуждении задач о наименьших квадра-
тах. Тогда нам было нужно только оно, и о нем говорилось так, будто это един-
ственное в своем роде понятие. Теперь пришло время обобщить его. Для дан-
ной положительно определенной матрицы Н определим индуцированное Н
внутреннее произведение как
<х, у) н = утНх = хт Ну.
Внутреннее произведение (7.7.1), которое будем теперь называть стан-
дартным внутренним произведением, индуцируется единичной матрицей I,
Внутреннее произведение, индуцированное Н, обладает теми же основ-
ными алгебраическими свойствами, какие имеются у стандартного внут-
реннего произведения. В частности, (х, х}н > 0, если х * 0. Конечно, связи
с евклидовой нормой, || х ||2 = у1(х,х), теперь нет. Вместо этого можно ис-
пользовать связанное с Н внутреннее произведение для определения дру-
гой нормы
II X II// = у1(х,х)ц .
624
Глава 7. Итерационные методы для линейных систем
В методе спуска положительно определенная система Ах = b решается пу-
тем минимизации функции J(y) = -^угАу- ЬТу Используя наше новое опреде-
ление, перепишем J в виде
Лу) = | (у, у')А - <Ь, у) = (Ь, у).
В задачах упругости член (у, у)А представляет запасенную в деформиро-
ванной структуре энергию напряжения, так что индуцированные матрицей А
внутреннее произведение и норма называются соответственно энергетическим
внутренним произведением и энергетической нормой.
Рассматривая у как приближение к х, т.е. к решению системы Ах = Ь, опре-
делим ошибку е = х - у. Выделяя полные квадраты, как в (7.4.3), получим
Лу) = |ll< - |ll<
Энергетическая норма х - это некоторая вполне определенная константа.
Поэтому минимизация J совпадает с минимизацией энергетической нормы
ошибки.
Метод, в котором применяется точный линейный поиск, на каждом шаге
минимизирует энергетическую норму ошибки на некоторой прямой. Это од-
номерная минимизация. Теперь наша цель состоит в том, чтобы получить ме-
тод, который на основе информации о последних шагах может находить ми-
нимум на подпространствах большей размерности. После j-го шага хотелось
бы получить минимум на всем /-мерном пространстве.
Независимо от способа выбора направления поиска справедливы следую-
щие соотношения. На каждом шаге имеем х(к+° = х(к} + а#(к). Начав с некото-
рого х(0), после j шагов получим
х0) __ х(0) + aQp(0) + _ + ay - о.
На к-м шаге ошибка равна е(к) = х - х(к\ Отсюда ясно, что ошибки удовле-
творяют рекуррентному соотношению е(к+Г* = е(к) - акр{к\ а после j шагов
е0) = е(0) - (аор(О) + ... + ау_ 1ри~ °). (7.7.2)
В идеале хотелось бы выбрать коэффициенты а0,..., ау_! так, чтобы энерге-
тическая норма || е® 11^ была как можно меньше. Согласно (7.7.2) это то же са-
мое, что и минимизация выражения
II ет - IL,
Л=1
7.7. Производная от CG-алгоритма
625
которая сводится к поиску наилучшего приближения к е(0) на подпространстве
Sj = span{p(0), pQ~ °}.
В гл. 3 была доказана основная характеристическая теорема (теорема
3.5.15) о наилучшем приближении в евклидовом пространстве. Наименьшее
расстояние от точки до прямой измеряется по перпендикуляру к ней. В более
общем случае наилучшим приближением к вектору v на подпространстве S бу-
дет единственная точка 5 е 5, для которой ошибка v — s ортогональна каждому
вектору из S. В этом утверждении приближения измеряются в евклидовой
норме, а ортогональность вычисляется на основе стандартного внутреннего
произведения. Теперь же мы будем искать наилучшее приближение в энерге-
тической норме. При этом оказывается, что основное утверждение остается
справедливым, если ортогональность вычисляется через энергетическое внут-
реннее произведение. В действительности теорема верна для любого внутрен-
него произведения и индуцированной им нормы.
Пусть Н - любая положительно определенная матрица. Если (v, w)H = 0, бу-
дем говорить, что векторы у и w Н-ортогональны, и записывать это как v ±я w.
Теорема 7.7.3. Пусть Н е 1ГХЯ - положительно определенная матрица, у е F
и S - подпространство в Тогда существует единственная точка s е S, для
которой
II V - 5 Ня = min II V - w ||я.
Точка s характеризуется тем, что v~slHw для всех w е S.
Эта теорема сводится к теореме 3.5.15 в случае Н=1. Она будет доказана не-
посредственным обобщением доказательства теоремы 3.5.15.
Применяя теорему 7.7.3 к нашей ситуации, мы видим, что || е® Ц, минималь-
на, когда вектор р е 5У выбран так, чтобы ошибка е w = е(0) - р удовлетворяла
условию
р(/) для i = 0, ..., j - 1. (7.7.4)
Два вектора, ортогональные в смысле энергетического внутреннего произ-
ведения, называются сопряженными. Теперь нашей целью будет построение
метода, в котором ошибка на каждом шаге должна быть сопряженной ко всем
предыдущим направлениям поиска.
Следующее утверждение показывает, что частично выполнения (7.7.4)
можно добиться путем использования точного линейного поиска.
Утверждение 7.7.5. Пусть вектор x(*+l) = х(к} + акр(к} получается с помощью
точного линейного поиска. Тогда г(*4 ° ± р(к} и е{к+Г> 1А р(к).
Доказательство. Последовательные невязки связаны рекуррентным соотно-
шением г(к+1} = г(к) - акАр(к) (которое входит как присвоение г <- г - aq во всех
наших алгоритмах). Следовательно,
(г(* + °, р{к}} = (г(к), р{кг) - ак{Ар(к}, р(ку) = О,
так как ак = (г(к), р(к}) / {Ар(к\ р{к)) согласно теореме 7.4.5.
626
Глава 7. Итерационные методы для линейных систем
Нетрудно проверить, что между ошибкой и невязкой существует про-
стая зависимость Ае{к + Х} = г(*+1). Поэтому + р{ку)А = С4е(*+1), р{ку) =
(г(* + 1>,р<*>) = 0. □
Из этого доказательства ясно, что утверждение 7.7.5 в основном является
другой формулировкой теоремы 7.4.5. Оба они являются частными случаями
теоремы 7.7.3, как это будет показано в упражнении 7.7.27.
Утверждение 7.7.5 геометрически очевидно. Минимум функции / на пря-
мой х(к) + ар(к) достигается тогда, когда производная от / по направлению, взя-
тая в направлении поиска, равна нулю. Производная по направлению есть
скалярное произведение градиента и этого направления, так что она будет в
точности равна нулю, когда градиент (в этом случае невязка) ортогонален на-
правлению поиска.
Согласно утверждению 7.7.5, после первого шага будем иметь е(1) 1А р(0).
Тем самым выполнено условие (7.7.4) при j - 1. Из (7.7.4) ясно, что мы
должны добиваться того, чтобы все последующие ошибки были сопряжен-
ными к р(0). Так как все последовательные ошибки удовлетворяют рекур-
рентному соотношению е(*+1) = е(к) - акр(к\ можно дополнить его требова-
нием, чтобы все последовательные направления поиска были сопряженны-
ми к р(0). Если выбрать р(1) так, чтобы р(1) р(0), и выполнить точный
линейный поиск, то в результате получится х(2), для которого ошибка удов-
летворяет условию е(2) 1А р(х). Поэтому е(2) p(i) при i = 0, 1, а это есть усло-
вие (7.7.4) при j = 2. Теперь нужно добиваться сопряженности всех после-
дующих ошибок к обоим р(0) и р(1), выбирая все последующие направления
поиска сопряженными к р(0) и р(1).
Становится ясным, что можно добиться выполнения (7.7.4), выбирая на-
правления поиска так, чтобы р(0 ±А р® для всех i ф j, и сохраняя при этом точ-
ный линейный поиск. Метод, обладающий этими свойствами, называется ме-
тодом сопряженных направлений.
Теорема 7.7.6. Если в некотором методе выбираются сопряженные направле-
ния поиска и выполняются точные линейные поиски, то его ошибки удовлетворя-
ют (7.7.4) при всех j. Более того,
|| е<Л |L = min || е<0) - р ||л,
где Sj = span{p(0), ..., pQ~ °}.
Доказательство. Докажем (7.7.4) индукцией по j. Для j = 1 условие (7.7.4)
выполняется благодаря точному линейному поиску. Теперь для произволь-
ного J предположим, что р(,} при i = 0, ...,/ - 1. Нам нужно показать,
что е0’*0 1А р(,) для i = 0, ..., j. Так как еи + Х) = еф - djp®, то (е0+1), p(i))A =
= (е°\ p(i)}A - а/р®, р(п)А = 0-0 = 0 при i = 0, ...,у - 1. Поэтому нужно толь-
ко установить, что е040 р0. Но это следует из того, что на шаге j + 1
проводится точный линейный поиск.
При выполнении (7.7.4) оптимальное свойство ошибки е^ следует из теоре-
мы 7.7.3, как это уже отмечалось выше. □
7.7. Производная от CG-алгоритма
627
Выбор направлений поиска
Метод сопряженных градиентов является методом сопряженных направле-
ний, в котором очередное направление поиска выбирается путем Л-ортогона-
лизации невязки всем предыдущим направлениям поиска. Первое направле-
ние поиска есть р(0) = И0). Поэтому первый шаг CG-алгоритма совпадает с пер-
вым шагом наискорейшего спуска. После к шагов с сопряженными направле-
ниями поиска р(0), ..., р(к} в CG-алгоритме выбирается
р(* + ,) = r<*+,) - YckiPW> (7.7.7)
/=0
где коэффициенты cki таковы, чтор{к+ ° ±А p(i) при i = 0, ..., к. Легко проверить,
что р{к+Х} 1А p(i) тогда и только тогда, когда
/г(^п (Оч
Это в точности процедура Грама-Шмидта для энергетического внутренне-
го произведения.
Упражнение 7.7.9. Проверьте, что для р(к+Г* из (7.7.7) p(k+v> ±А p(i) тогда и
только тогда, когда cki определяются формулой (7.7.8). □
До тех пор, пока г(к+1) * 0, алгоритм может выполняться, так как (7.7.7) оп-
ределяет ненулевое направление поискар{к + °. Чтобы увидеть это, заметим, что
из равенства Ае{к+ ° = г{к* ° вытекает соотношение {е{к* °, р(0)л = (г(*+1), р(0). По-
этому из (7.7.4) при j = к + 1 следует, что
r(*+I) j_ pd) ПрИ I } £ (7.7.10)
Теперь непосредственно из (7.7.7) будем иметь
(р<* + 1>, Г(дг+ i)> = = ||г(^’)||2. (7.7.11)
Поэтому (р(к* °, г(к + 1)) > 0 при условии, что г(к+1) * 0. Отсюда следует, что
р(к+Г> * 0. Отсюда также вытекает (см. замечание 7.4.6), что каждый CG-inar
обязательно уменьшает энергию: J(x(k+V>) < J(x{k)).
В дальнейшем будут использоваться оба соотношения (7.7.10) и (7.7.11).
Упражнение 7.7.12. Проверьте (7.7.10) и (7.7.11). □
Упражнение 7.7.13. Докажите, что с помощью алгоритма сопряженных гра-
диентов решение системы Ах = b будет получено не более чем за п итераций. □
Эффективная реализация
Теперь, когда определены направления поиска, описание CG-алгоритма
формально завершено. Но остается еще обсудить, как его можно эффек-
628
Глава 7. Итерационные методы для линейных систем
тивно реализовать. Вычисления по формулам (7.7.7) и (7.7.8) видятся
слишком дорогими, и представляется, что было бы кстати запоминать все
предыдущие направления поиска. Но оказывается, что все cki равны нулю,
кроме скк. Поэтому по формуле (7.7.8) нужно вычислять только один коэф-
фициент, а для (7.7.7) нужно запоминать только самое последнее направ-
ление поиска р{к\ В алгоритме (7.6.1) это отражено в виде элегантной ин-
струкции р <- г + Рр.
Доказательство обращения cki в нуль требует некоторой подготовки. Сна-
чала вспомним ряд определений, сделанных в разд. 6.3. Для данного векто-
ра v и целого положительного j крыловское подпространство K/A,v) опреде-
ляется как
/Су(Л,у) = span{v, Av, A2v, ..., А1 ]у}.
Теорема 7.7.14. После j шагов в методе сопряженных градиентов (при № * О
на каждом шаге)
span{p(0), ..., р0)} = span{r(0), ..., r0)} = K,j + 1(Л,г(0)).
Доказательство. Проведем его индукцией по j. Теорема тривиальна при7 = 0,
так как р(0) = г(0). Теперь предположим, что пространства совпадают при j = к,
и постараемся показать, что они будут совпадать также и при j = к + 1. В каче-
стве первого шага проверим, что
span{r<0), ..., г(*+1)} <= ^ + 2(J,r(0)). (7.7.15)
В силу индуктивного предположения достаточно показать, что г(*+1) е
е )Ck+2(A,r(Q)). Вспоминая о рекуррентном соотношении г(к+1) = г(к} - а^р^,
уточним расположение Ар{к\ По предположению имеем: р{к} е /С*+1(Л,г(0)) =
= span{r(0), ..., Л*г(0)}, так что
Ар(к) е span{/4r(0), ..., Л*+1г(0)} с К,к + 2(А,г(0)).
Более того, r(k) е JCk+l(A,r(0)) с /Ск+2(А,г(0)), и поэтому
г(*+1) _ r(k) _ акАр(к) е JCk + 2(Л,г(0)).
Отсюда следует (7.7.15).
В качестве следующего шага установим, что
span{p(0), ..., p(k + v*} a span{r(0), ..., r(*+l)} . (7.7.16)
В силу индуктивного предположения
p(i) е span{r(0), ..., г(к)} при / = 0, ..., к, (7.7.17)
7.7. Производная от CG-алгоритма
629
так что достаточно показать, что р{к*l) е span{r(0),г(к+ °}. Но это непосредст-
венно следует из (7.7.7) после повторного применения (7.7.17).
Объединение (7.7.15) и (7.7.16) показывает, что все три интересующие нас
подпространства вложены друг в друга. Они будут тождественны, если совпа-
дают их размерности. Так как lCk+2(A,r(G)) натянуто на множество из к + 2 век-
торов, его размерность не превосходит к + 2. Если мы сможем показать, что
размерность span{p(0), ..., р(*+ °} в точности равна к + 2, то отсюда будет следо-
вать, что все три пространства имеют размерность к + 2 и поэтому тождествен-
ны. Но мы уже знаем, что р(0), ..., р{к*{} отличны от нуля и ортогональны в
смысле энергетического внутреннего произведения. Поэтому они линейно не-
зависимы и образуют базис в span{ р(0),..., р{к+ °}, размерность которого тем са-
мым равна к + 2. □
Следующий результат сразу вытекает из теорем 7.7.6 и 7.7.14.
Следствие 7.7.18. Ошибка после j шагов CG-алгоритма удовлетворяет условию
eU)lA К/А,г™),1 = 1, 2, 3, ....
Направления поиска р{0), ..., р{к} образуют ортогональный в смысле энерге-
тического внутреннего произведения базис крыловского подпространства
/СЛ + 1(Л,г(0)). Невязки г(0),..., г{к} также образуют базис этого подпространства и
также обладают некоторым свойством ортогональности.
Следствие 7.7.19. Невязки r(Q\ г(|), г(2),..., получаемые в CG-алгоритме, орто-
гональны в смысле стандартного внутреннего произведения. Следовательно,
/СУШ(0)), j = 1, 2, 3, ... .
Доказательство. Нам нужно установить, что r(* + l) ± r(0),...., при всех
к. Это непосредственно следует из (7.7.10), так как span{p(0), ..., р(к)] =
= span{r(0), ..., г(к}]. □
Теперь мы в состоянии показать, что CG-алгоритм может быть реализован
экономно.
Теорема 7.7.20. При i = 0, ..., к - 1 определенные в (7.7.8) коэффициенты cki
равны нулю.
Доказательство Согласно (7.7.8), нужно показать, что (r(k+1), р(iV)A = 0 при i =
= 0,..., к - 1. Так как (г(*+ °, р(0)л = {г{к+ °, Ар®\ достаточно показать, что г(л+° ±^р(0
при i < к. Это можно сделать, дважды применяя теорему 7.7.14. Имеем р(0 е
е span{p(0), ..., р(0} = span{r(0), ..., Л'г(0)}, так что Ap{i} е span{/lr(0), ..., J' + lr(0)} с
с /С/ + 2И/(0)) = span{r(0), ..., г(/ + 1)}. Поскольку ошибка г{к + {} ортогональна
г(0),..., г °+ ° при i < к, можно сделать вывод, что г{к+ ° 1 Лр(0, если i < к. □
Благодаря теореме 7.7.20 формула (7.7.7) сводится к гораздо более простому
выражению
р(* + 1) = г(к) + (7.7.21)
где р* = -скк. Это показывает, что направление р(к+ ° может быть вычислено без
особых затрат и они не растут с увеличением к. Более того, отсюда видно, что
630
Глава 7. Итерационные методы для линейных систем
не нужно хранить предшествующие направления поиска р(0), ...,р(к~{\ так что
расход памяти также не возрастает с увеличением к. Это важное обстоятельст-
во. При выводе CG-алгоритма мы начали с предположения, что можно улуч-
шить метод наискорейшего спуска путем использования информации с пре-
дыдущих шагов. Теперь выяснилось, что поступая так, можно минимизиро-
вать энергетическую норму ошибки в подпространствах все больших и
больших размерностей. При этом формула (7.7.21) показывает, что не нужно
запоминать ничего особенного — вся необходимая информация содержится в
векторе р(к\
Теорема 7.7.20 существенно опирается на свойство симметрии А = АТ. Важ-
ность симметрии нетрудно понять, поскольку Л использовалась во внутреннем
произведении. Без симметрии А энергетическое внутреннее произведение не
может рассматриваться как внутреннее произведение, так как тогда нельзя
считать, что (v, = (w, v)A. Если вспомнить все детали данного раздела, то вы-
яснится, что это свойство использовалось неоднократно, иногда в форме (Av9w)
- (у, Луу). Возможность относить А к любому из векторов во внутреннем произ-
ведении была существенной в наших рассуждениях. Например, при доказа-
тельстве теоремы 7.7.20 использовалось тождество (r(*+1), p{iy)A = (r(* + l), Ар{,у).
Закончим наше теоретическое рассмотрение довольно изящным утвержде-
нием.
Утверждение 7.7.22. Для коэффициентов р* из (7.7.21) имеет место формула
г(Л+1)^
” \r{k\rw)
Упражнение 7.7.23. Учитывая, что р* = -скк1 используйте (7.7.8), (7.4.11),
теорему 7.4.5 и (7.7.11) для доказательства утверждения 7.7.22. □
Подведем итог наших усилий в виде прототипа (базовой версии) CG-алго-
ритма.
Прототип алгоритма сопряженных градиентов
х(0) <-начальное приближение
/0)<-г<0) (7.7.24)
for £=0,1,2,...
а^(г<‘»,О/(^<‘\ У*’)
r(*+i) . Y(k) , n n(k)
A x- А “Г IA pP
r<‘+1> ^r<‘>-vkApw
Благодаря (7.7.11) и утверждению (7.7.22) (И*’, Ил>) трижды используется в
цикле, и это позволяет сделать алгоритм более экономным. Найденные значе-
ния можно применить и для анализа сходимости.
7.7. Производная от CG-алгоритма
631
Нетрудно перевести алгоритм (7.7.24) в алгоритм (7.6.1).
Упражнение 7.7.25. Получите алгоритм (7.6.1) из алгоритма (7.7.24). □
Связь с симметричной процедурой Ланцоша
Теорема 7.7.14 показывает, что невязки CG-алгоритма образуют ортого-
нальные базисы крыловских подпространств span{r(0), ..., г0 - °} = /Су (Дг(0)),
j = 1, 2, 3, ... . Это подсказывает наличие некоторой связи между CG-алго-
ритмом и процедурой Арнольди, в которой также возникают ортогональные
базисы крыловских подпространств. Напомним, что для вещественной и
симметричной матрицы А процедура Арнольди называется симметричной
процедурой Ланцоша. Если начать симметричную процедуру Ланцоша с векто-
ра ^i, кратного вектору г(0), то векторы ql9 q19 q3, получающиеся в ней, бу-
дут пропорциональны г(0), г(1), г(2), ..., так как ортогональный базис для по-
следовательности вложенных пространств определяется однозначно с точно-
стью до скалярных множителей. (Это по существу то же самое, что и
единственность QR-разложений.) Следовательно, в процедурах сопряженных
градиентов и Ланцоша вычисляются по существу одни и те же величины.
Связь между ними выясняется ниже, в упражнении 7.7.28. Благодаря этой
связи оказывается возможным получить информацию о спектре матрицы А
при выполнении CG-алгоритма. Конечно, при использовании предобуслов-
ливателя будет получаться информация о собственных значениях преобразо-
ванной матрицы А, а не исходной матрицы А.
Дополнительные упражнения
Упражнение 7.7.26. Докажите теорему 7.7.3. Другими словами, покажите,
что доказательство теоремы 3.5.15 остается в силе при более общих предполо-
жениях. □
Упражнение 7.7.27. Рассмотрим шаг х(к+ ° = х(к) + акр{к} с точным линейным
поиском. Покажите, что акр{к} является наилучшим приближением к е{к} в од-
номерном пространстве, определяемом вектором р(к\ Затем примените теоре-
му 7.7.3 и установите, что е(*+ ° р{к\ Отсюда следует, что утверждение 7.7.5 —
это частный случай теоремы 7.7.3. □
Упражнение 7.7.28. В этом упражнении рассматриваются взаимосвязи между
CG-алгоритмом и симметричным алгоритмом Ланцоша. В базовом CG-алго-
ритме (7.7.24) наиболее важным в информативном плане является присвоение
х(*+р х(к) + акр(к), так как именно оно делает итерации все более близкими к
точному решению. Заметим однако, что оно не описывает основных вычисле-
ний в алгоритме. Так какх(*} не используется при вычислении коэффициентов
ак и рь можно убрать это присвоение из программы и получить функцию, вы-
числяющую только векторы р(к) и г(к). Поэтому существенными в (7.7.24) будут
присвоения r(k ' ° = г(к) + акАр(к) и р(к+1) = г(к+1) + £>кр(к}. Это пара двухчленных ре-
куррентных формул. Отсюда следует, что векторы р(к} и ИЛ) можно рассматривать
как столбцы матриц, и пусть эти столбцы обозначаются как рк+ j и rk+ j вместо р(к)
и г(к\ Введем Rm~ [г, ... гт] и аналогично определим Рт.
632
Глава 7. Итерационные методы для линейных систем
(а) Пусть qb q2, q3,... — ортогональные векторы из симметричной процедуры
Ланцоша, начинающейся с вектора q}, кратного гх = г(0), и пусть Qm = ... q^.
Покажите, что Qm = RmDm1 где Dm - невырожденная диагональная матрица,
если все гу отличны от нуля.
(Ь) Покажите, что рекуррентно получаемые векторы p(k + i) = г(к+[} + $кр{к\
к = 0,..., т - 2, вместе с условием р(0) = г(0) могут быть представлены в матрич-
ном виде Qm - PmUm, где Um — двухдиагональная верхне-треугольная матрица.
(с) Покажите, что рекуррентно получаемые векторы г(* + 1) = г{к} + $кр{к\
к = 0,..., т - 1, могут быть представлены в матричном виде АРт = QmLm + qm+ ,
где Lm — двухдиагональная нижне-треугольная матрица, а ут - скаляры.
(d) Умножьте обе части матричной формулы из п. (с) на Um справа и полу-
чите матричное соотношение
AQm QmTm +
(7.7.29)
где Тт = LmUm. Проверьте, что Тт трехдиагональна. (Представление Тт - LmUm
является L [/-разложением Тт.)
(е) Покажите, что Тт симметрична. (Умножьте обе части (7.7.29) на£?^ сле-
ва и воспользуйтесь ортогональностью столбцов матрицы Qm.)
Формула (7.7.29) в точности совпадает с формулой (6.3.20), являющейся
матричной формой трехчленной рекуррентной зависимости для симметрич-
ной процедуры Ланцоша. Тем самым мы получили рекуррентную зависимость
для симметричной процедуры Ланцоша из рекуррентных соотношений для
CG-алгоритма. И наоборот, можно получить рекуррентные соотношения для
CG-алгоритма из рекуррентного соотношения для процедуры Ланцоша: начав
с (7.7.29), можно построить L[/-разложение для Тт, ввести векторы Рт как Рт =
QmU~[ и перейти к паре двухчленных рекуррентных соотношений, соответст-
вующих CG-алгоритму. □
7.8. Сходимость^CG-алгоритма
В этом разделе изучаются свойства сходимости CG-алгоритма. Все приве-
денные здесь результаты формулируются для алгоритма без предобусловлива-
ния. Для получения аналогичных результатов при наличии предобусловлива-
ния нужно просто заменить А на преобразованную матрицу А = R~TAR ’.
Теорема 7.8.1. Применение CG-алгоритма к положительно определенной сис-
теме Ах = Ьс матрицей размеров пхп позволяет получить точное решение не бо-
лее чем за п шагов.
Доказательство Если после п - 1 шагов решение х не получено, то согласно
следствию 7.7.19 ненулевые невязки г(0), ..., г{п~ ° составят ортогональный ба-
зис в R". После п шагов
r(«) г(/) при i _ о, ? п _ 1
7.8. Сходимость CG-алгоритма
633
Так как вектор r(w) ортогонален полному базису пространства R", то должно
быть г{п} = 0, e(w) = 0 и x(w) = х. □
Упражнение 7.8.2. Получите два других доказательства теоремы 7.8.1,
основанных (а) на условии е01 p(i\ (b) на минимизации энергетической
нормы. □
Теорема 7.8.1 справедлива для любого метода сопряженных направлений, в
котором проводится точный линейный поиск. На каждом шаге размерность
пространства, в котором проводится поиск, уменьшается на единицу, так как
каждое новое направление поиска сопряжено всем предыдущим таким на-
правлениям.
Теорема 7.8.1 является интересным результатом, но она не имеет непосред-
ственного практического значения. Рассмотрим, например, модельную задачу
(7.1.8) при h = 1 /40. Порядок матрицы коэффициентов равен 392 = 1521, так
что CG-алгоритм (без учета ошибок округления) гарантирует нахождение точ-
ного решения за 1521 или меньшее число шагов. На деле можно надеяться по-
лучить хорошее приближение за гораздо меньшее число шагов, и пример 7.6.5
показывает, что это действительно возможно. В этом примере CG-алгоритм с
SSOR-предобуславливателем позволил получить удовлетворительное прибли-
жение примерно за 30 шагов.
Оставим в стороне конечность числа шагов, каким бы оно ни было, и про-
должим рассматривать CG-алгоритм как итерационный метод. Прежде всего
оценим, насколько быстро приближения сходятся к х. Следующая теорема
дает некоторое представление об этом.
Теорема 7.8.3. Для ошибок е® = х-х® метода сопряженных градиентов спра-
ведлива оценка
>7^(Л) + 1
е0) IL ± 2|| е(0) ||л
Доказательство теоремы 7.8.3 намечено в упражнении 7.8.13. Для этого ис-
пользуется материал, приводимый ниже в данном разделе, а также свойства
полиномов Чебышева, изложенные в упражнении 6.3.38.
Теорема 7.8.3, как и все строгие неравенства для ошибок, имеет некоторый
пессимистический оттенок, поскольку она получается путем непосредствен-
ного объединения целого ряда оценок, а некоторые из них могут быть доволь-
но грубыми. Теорема 7.8.1 показывает, что при j > п этот пессимизм вполне
обоснован. Конечно, мы обычно надеемся прекратить итерации задолго до
того, как j достигнет п.
Несмотря на свою недостаточную точность, теорема 7.8.3 дает нам полез-
ную информацию о работе CG-алгоритма. Для него скорость сходимости не
хуже линейной с коэффициентом отношений
л/к2(Л)-1
7^(Л)+1'
22 Основы матричных вычислении
634
Глава 7. Итерационные методы для линейных систем
Отсюда ясно, что можно обеспечить быструю сходимость, если добиться
хорошей обусловленности А. Это вновь подтверждает тот факт, который впер-
вые был отмечен при обсуждении метода наискорейшего спуска, что его эф-
фективность можно повысить за счет предобусловливателя, заметно умень-
шающего число обусловленности матрицы.
Упражнение 7.8.4. Рассмотрим матрицу Л для модельной задачи (7.1.8).
В упражнении 7.3.37 вы показали, что к2(Л) = ctg2(n/i/2). Следовательно,
( 2 V
к2(>0 « — и
\ith J
д/к2(Л) +1 1 + 7th / 2
Чтобы сравнить это с SOR-методом, обратимся к табл. 7.5, в которой указа-
но, что SOR с оптимальным со обладает линейной сходимостью с коэффици-
ентом отношений р((7) « 1 - 2лй. Казалось бы, отсюда следует, что оптималь-
ный вариант SOR сходится примерно в два раза быстрее по сравнению с CG-
алгоритмом без предобуславливателя. Но такой способ сравнения скоростей
сходимости недостаточно точен. Скорость сходимости SOR была оценена точ-
но, тогда как для CG-метода это лишь грубая оценка сверху. Точнее было бы
сказать, в крайнем случае, что CG-алгоритм без предобуславливания сходится
примерно так же, как оптимальный метод SOR. Это согласуется с тем, что
было отмечено в примерах 7.2.21 и 7.6.2.
Можно ожидать существенного повышения эффективности CG-алгоритма
при его дополнении таким предобуславливанием, в котором А заменяется пре-
образованной матрицей А и при этом к2(Л) « к2(Л). □
Упражнение 7.8.5. Примените разложения в ряды Тейлора для проверки
приближений, использованных в упражнении 7.8.4. □
В доказательстве теоремы 7.8.3 будет использован тот факт, что в CG мини-
мизируется энергетическая норма ошибки в подпространствах все большей и
большей размерности (теорема 7.7.6). В конце данного раздела это свойство
оптимальности будет использовано для вывода ряда утверждений, которые по-
зволят нам доказать теорему 7.8.3 и установить другие полезные свойства CG-
метода.
Теорема 7.8.6. Приближения CG-алгоритма удовлетворяют условию
II X - xw) IL = min{|| х - у IL I у е х(0) + 1С}(А,гт)}.
Доказательство. Это утверждение представляет собой в основном пере-
формулировку теоремы 7.7.6. Теорема 7.7.14 показывает, что пространство S}
из теоремы 7.7.6 есть не что иное как крыловское подпространство К/А, г(0)).
Для выбранного р е 5У положим у = х(0) + р е х(0) + 5У. Отсюда с учетом того,
что х - у = е(0) - р, видно, что минимизация || е(0) - р по всем р из подпро-
странства Sj совпадает с минимизацией || х - у по всем у из сдвинутого под-
пространства х(0) + Sj. □
7.8. Сходимость CG-алгоритма
635
Крыловское подпространство /СУ(Л, г(0)) есть множество всех линейных
комбинаций векторов г(0), Лг(0),Aj~ Поэтому образующие /С/Л,г(0)) век-
торы имеют вид
сог (0) + схАг(0) + ... + с j _ 1Л/’" >(0) -
= (с0/ + с{А + ... + с j _ {Aj ~ 1)г(0) = ^(Л)г(0),
где #(z) = с0 + cxz + ... + су_ xzj~1 - полином степени, меньшейj. И наоборот, для
любого полинома q степени, меньшей у, вектор q(A )г(0) принадлежит /Су(Л, г(0)).
Пусть Р._ j обозначает пространство всех полиномов степени, меньшей j. Тогда
/СУ(Л, г(0)) = Шг(0)|^?Л1}.
В теореме 7.8.6 отмечалось, что х0) - оптимальный в определенном смысле
вектор из х<0) + /СУ(Л, г(0)). Пусть через z обозначен произвольный элемент из х^ +
+ /С/Л, г(0)). Тогда z = х(0) + q(A)r(Q} для некоторого q g Ру_ ь Считая z приближе-
нием к х, рассмотрим е = х - г. Тогда, вспоминая, что г(0) = Ае(0), будем иметь
е = х - х(0) - q(A) r(Q) = е(0) - q(A)A^Q) = (/ - (/(Л)Л)е(0) = p(A)e(Q\
где p(z) = 1 - zq(z)- Заметим, что р р(0) = 1. И наоборот, для любого р е Ру,
удовлетворяющего условию р (0) = 1, существует такой полином q е Ру_ р что
p(z) = 1 - zq(z). Следовательно, е = х - z для некоторого z е х(0) + /Су(Л, г(0)) тогда
и только тогда, когда е = р(Л)е(0) для некоторого р е Ру, удовлетворяющего ус-
ловию р(0) = 1. Это обсуждение позволяет переформулировать теорему 7.8.6
следующим образом.
Теорема 7.8.7. Пусть х 0 есть j-я итерация CG-метода ие^^х-х(/). Тогда
|| eW) lb = min|| р(А)ет |Ь,
pepj
Р(0)=1
где Ру есть пространство полиномов степени не выше j.
Эта теорема позволяет получить практическую оценку для || ][< в терми-
нах собственных значений матрицы А. Пусть до конца этого абзаца vp ..., vn
обозначают полную систему ортонормированных собственных векторов мат-
рицы А. Тогда vh ..., vn образуют базис в R", так что
е(0) = + c2v2 + ... + c„v„,
где ..., сп - однозначно определяемые (но не известные) коэффициенты.
Пусть через ..., обозначены собственные значения, соответствующие
векторам vp ..., vn. Тогда p(A)vk = р (hk)vk для всех к, и поэтому
||АЛ><0)||’ = (р(Л)е«”)гЛр(Л)е<°> =
= Y^ckciP^^kP^k^vk = Zc*W4)2-
£=!/=! *=!
636
Глава 7. Итерационные методы для линейных систем
Объединяя это представление с теоремой 7.8.7, будем иметь
Це(У)Нл = min ^с2кХкр(кк)2. (7.8.8)
pepj к=1
р(0)=1
Для получения результата, не использующего неизвестные коэффициенты
С], ..., сп, заметим, что
п
*=1
и поэтому
п
ЕС*Х*А^-*)2^ max р(^)2||е<0) ||2Я.
*=1 к
Объединяя это неравенство с (7.8.8), приходим к следующей теореме.
Теорема 7.8.9. Пусть е® = х - х® — ошибка после j итераций CG-алгоритма,
применяемого к матрице А с собственными значениями Л,ь ..., Хл. Тогда
II |L <
min maxipCk 3|
pePjtekSn K
U(0)=l J
II e<0) IL
где обозначает пространство полиномов степени, меньшей j + 1.
Теорема 7.8.3 следует из теоремы 7.8.9, когда в качестве р выбраны полино-
мы Чебышева с подходящей нормировкой. См. упражнение 7.8.13.
Разделив обе части неравенства из теоремы 7.8.9 на || е(0) 1^, получим
l|e(y)IL
l|e(0)IL
< min max
pepj k = \.п К
Р(О)=1
(7.8.10)
Здесь отношение в левой части указывает, насколько лучше х0) прибли-
жает х по сравнению с х(0). В задачах, для которых нет априорной информа-
ции о решении, начальное приближение х(0) = 0 будет не хуже любого друго-
го. В этом случае е(0) = х и левая часть (7.8.10) примет вид || х - х® ЦА/ || х 1^,
т.е. будет выражать относительную ошибку приближения х элементом хи\
Следовательно, относительная ошибка ограничена сверху величиной, зави-
сящей только от собственных значений матрицы А. Это случай, когда нет
никакой информации о решении. Но если что-то заранее известно о реше-
нии х, обычно можно выбрать такое х(0), для которого || е(0) ||л < || х (U , и тем
самым улучшить результат.
7.8. Сходимость CG-алгоритма
637
Теорема 7.8.9 позволяет получить еще одно доказательство конечности
числа итераций для CG-алгоритма. Полагая j = п, для любого ре?п при усло-
вии р(0) = 1 будем иметь
|| < (m^lAM) II *(0) IL- (7.8.11)
Теперь пустьp(z) = c(z - Aq)... (z - Хя) e где с выбрано так, чтобыр(0) = 1.
(Это возможно потому, что все Ху отличны от нуля.) Для этого р правая часть
(7.8.11) обращается в нуль, так что e(w) = 0, т.е. x(w) = х.
Свойство конечности итераций можно усилить следующим образом.
Теорема 7.8.12. Предположим, что А имеет только j различных собственных
значений. Тогда в CG-алгоритме точное решение получается не более чем за j
шагов.
Доказательство Пусть ..., - все различные собственные значения мат-
рицы A, ap(z) = c(z - Pi)... (z - и,), где с выбрано так, чтобы р(0) = 1. Тогдар е
иp(kk) = 0 для всех k = 1,..., п, так что е w = 0 в силу теоремы 7.8.9. □
Следовательно, итерации могут закончиться гораздо раньше, если матрица
имеет лишь несколько различных собственных значений высокой кратности.
Рассмотрим в более общем плане матрицу, собственные значения которой
расположены в j плотно заполненных малых кластерах, где j « п . Выберем
p(z) = c(z - Pi)(z - р2) .. (z - ру), где Pi, ..., ру. представляют все эти различные J
кластеров. Так как каждое собственное значение Хк близко к одному из рш и
каждое значение p(pw) равно нулю, то max | p(XJ | должен быть малым. Поэто-
к
му, в силу теоремы 7.8.9, должна быть малой и || е® Ц,. Это означает, что для
матрицы А со спектром, расположенными в j плотно заполненных малых кла-
стерах, приближение будет близко к х.
Предобусловливатель, делающий число обусловленности малым, в дейст-
вительности стягивает собственные значения в один кластер, поскольку число
обусловленности равно отношению Х,2/ Хр Но из нашего обсуждения следует,
что единственность кластера на самом деле не является необходимой. Предо-
бусловливатель, стягивающий спектр в небольшое число кластеров, также бу-
дет эффективным. В частности, если спектр расположится в одном кластере и
выйдет за него лишь несколькими точками, то это не будет хуже случая с не-
сколькими кластерами.
Дополнительные упражнения
Упражнение 7.8.13. В этом упражнении нужно будет доказать теорему 7.8.3.
Пусть собственные значения матрицы А занумерованы так, что Xi < ... < Х„. С
помощью теоремы 7.8.9 можно оценить малость || е® 1^ путем нахождения по-
линома р} е Vj при условии р/0) = 1 и такого, что все значения py(Xi), Д.(Х2), ...,
Ру(Х„) по возможности малы. Один из способов добиться того, чтобы все значе-
ния /?у(Хт) были малы, состоит в построении такого pj9 который был бы мал на
638
Глава 7. Итерационные методы для линейных систем
всем отрезке [Xb XJ. Наилучшим инструментом для решения этой задачи яв-
ляется сдвинутый и отмасштабированный полином Чебышева.
(а) Введите аффинное преобразование w = ах + р, переводящее [Хь Х„]
в [-1,1], причем -> -1 и X) -> 1. Покажите, что при таком преобразовании
О->(1И + М/(*,-*.)•
(Ь) Пусть
Pj(x) =
<Xw+X1-2x>
< “^1 >
у +^|
'К-*,
где Т. есть у-й полином Чебышева (упражнение 6.3.38). Тогда очевидно, что
/г е 77 и /г(0) = 1. Покажите, что
max I рЗх) I =
и
к2(А)-1
(с) Убедитесь, что если Г>0их = с11/> 1, то е' = ch / + sh / = х + д/х2 -1.
Далее покажите, что если х = (к2(Л) + 1) / (к2(Л) - 1), то имеет место е1 =
= (7к2(Л) + 1) / (7к2(Л) - 1).
(d) В п. (f) упражнения 6.3.38 было установлено, что если х > 1 и t > О
таковы, что х = ch t, то 7}(х) > (е'У при всех j. Используйте эту оценку
при х = (к2(Л ) + 1) / (к2(Л) - 1) вместе с тождеством из п. (с) и покажите,
что (для этого частного значения х)
1 ( Jk2(h)+iY
7}(х) > 1 <212 .
2 \^к2(А) -1
(е) Докажите теорему 7.8.3, объединив все эти утверждения. □
Упражнение 7.8.14. В этом упражнении вы убедитесь, что скорость сходимо-
сти CG-метода иногда намного лучше указанной в теореме 7.8.3. Перед его вы-
полнением вам нужно освоить упражнение 7.8.13. Пусть спектр матрицы А рас-
положен в одном малом плотном ядре и выходит за него лишь немногими от-
дельными точками. Обозначим их через Хь ..., Xz, а остальные упорядочим так,
чтобы Х/ +]<...< Х„. Введем «усеченное число обусловленности» к = Х„/ Х/+1. Это
7.9. Методы Крыловского подпространства
639
число обусловленности оператора, получаемого сужением А на инвариантное
подпространство, порождаемое входящими в ядро собственными значениями.
Если самая удаленная отдельная точка будет расположена достаточно далеко от
ядра, то к будет существенно меньше к2(Л). Пусть = с(х - ^(х - Х2)...(х - X,)
и с таково, что &(0) = 1. Для каждого J определим
Т (—2х
W*) = qM J.
у _А±
Нетрудно видеть, что д +у е Р, +у, д +/0) = 1, р, +,(А*) = 0 при Л = 1,..., / и | р, +у |
мал на отрезке [X/+I, XJ. Пусть С = max | q^x) |. Следуя приемам, изложен-
ным в упражнении 7.8.13, докажите, что
( л/ё-1
II |L = 2С|| е<»> ||л
V5/K + 1
Отсюда видно, что после z-й итерации скорость сходимости будет опреде-
ляться величиной к, а не значением к2(Л). Поэтому сходимость будет быстрее
по сравнению с тем, что дает учет только к2(Л). □
Упражнение 7.8.15. Покажите, что приближения предобусловленного CG-
алгоритма с предобусловливателем М удовлетворяют условию
II X - ||л = min{|| х - у ||л I у е xw + /С/ЛУ-'Л, $<0>)} =
= min||p(Af"1^)e(0) ||л,
ре?)
Р(0)=1
где$(0) = A/“lr(0). □
7.9. Методы Крыловского подпространства для неопределенных
и несимметричных задач
CG-алгоритм входит в широкий класс алгоритмов, известных как методы
крыловского подпространства, поскольку они генерируют последовательности
крыловских подпространств. Выше CG-алгоритм был применен для случая
симметричных положительно определенных матриц. Для других типов матриц
применяются другие методы крыловских подпространств. В этом разделе дает-
ся краткий обзор некоторых наиболее распространенных из них. Более пол-
ную информацию об этом можно найти в [5], [26], [34] или [35].
640
Глава 7. Итерационные методы для линейных систем
Начнем с симметричных и неопределенных (т.е. не определенных положи-
тельно - прим, перев.) матриц. Отметим прежде всего, что хотя CG-алгоритм
был введен для положительно определенных матриц, его можно применять и
для не определенных задач, зачастую вполне успешно. Но случается и так, что
он не работает, так как при вычислении ак в (7.7.24) требуется деление на
{Ар(к\ р(к}), а это число может быть равно нулю, если матрица Л не определена.
Естественно поставить вопрос о том, существуют ли алгоритмы, подобные
CG и работающие для симметричных и не определенных матриц. Оказывает-
ся, что ответ на него положителен. Симметричная процедура Ланцоша
(6.3.23), в которой последовательность крыловских подпространств получает-
ся по экономичной трехчленной рекуррентной формуле
Qk + iPfc = АЦк ~ Чк^к “ - 1>
работает для всех симметричных матриц независимо от того, положительно
они определены или нет1. Следовательно, для построения крыловских подпро-
странств можно использовать процедуру Ланцоша.
В качестве следующего шага нужно решить, как находить подходящее при-
ближение в крыловском подпространстве. В CG-алгоритме минимизируется
|| е® |Ь, энергетическая норма ошибки. Так как = Яе0, то || е® = е^ТАё^ =
ги}ТА-1/*0 = ||г(у) || ч , и тем самым CG-алгоритм минимизирует также Л-1-нор-
му невязки. В случае неопределенности ни || х |Ь, ни ||лг|| i не имеют смысла.
Определения || х = у/{Ах,х) и ||х|| । = ^{А~1х,х) становятся некорректными,
поскольку теперь величины под знаком квадратного корня могут быть отрица-
тельными. Поэтому здесь нужен другой критерий доя выбора приближенного
решения. Простейший способ выборах0* состоит в том, чтобы при этом мини-
мизировалась || ||2, евклидова норма невязки. Как и для CG-алгоритма, эта
минимизация делается в сдвинутом крыловском подпространстве х(0) +
/СУ(Л, г(0)). Осуществляющий такую минимизацию алгоритм называется
MINRES (минимизация невязки) [53].
Эта процедура может быть также реализована и для несимметричных за-
дач. Тогда крыловские подпространства получаются с помощью процедуры
Арнольди (6.3.6) вместо симметричной процедуры Ланцоша. Алгоритм, кото-
рый выполняет это, выбирая х0) путем минимизации || ||2 на каждом шаге,
называется GMRES (обобщенная минимизация невязки). В процедуре Ар-
нольди нет коротких рекуррентных формул. Из (6.3.3) видно, что при вычис-
лении каждого нового вектора нужны все предыдущие векторы. Поэтому на
каждом шаге алгоритма необходимо размещать в памяти еще один дополни-
тельный вектор. Объем вычислений на шаге также возрастает линейно. Эти
аргументы накладывают некоторые ограничения на число GMRES-итераций,
1 В упражнении 7.7.28 обсуждалась связь между рекуррентными формулами для алгоритмов Лан-
цоша и CG. Было отмечено, что для перехода о i первой формулы ко второй необходимо построить
L{/-разложение трехдиагональной матрицы Т. В случае ее положительной определенности L(/-раз-
ложение всегда существует, но при отсутствии таковой этого может и не быть. CG-алгоритм не ра-
ботает именно в тех ситуациях, когда L(/-разложение (без выбора главного элемента) невозможно.
7.9. Методы Крыловского подпространства
641
если матрица А слишком большая. Поэтому обычной практикой является ис-
пользование GMRES в «режиме перезапуска». GMRES(w) - это такой вари-
ант GMRES, в котором процедура Арнольди перезапускается после каждой
группы из т итераций и при этом перезапуске последнее полученное при-
ближение используется как новое начальное. В таком режиме нужно хранить
О(т) векторов. К сожалению, нельзя гарантировать сходимость таких итера-
ций. Трудно оценить заранее, как велико должно быть т, чтобы расчет ока-
зался успешным. Несмотря на эти неприятности, GMRES используется
очень широко.
В обсуждавшихся до сих пор алгоритмах выбор нового приближения на ка-
ждом шаге делался с помощью некоторого критерия минимизации. В других
алгоритмах используется критерий, основанный на ортогонализации. Напом-
ним, что в CG-алгоритме х® выбирается так, что ошибка е® ортогональна
г(0)) в смысле энергетического внутреннего произведения, т.е. е® 1А
/С/Л, r(0)) (следствие 7.7.18). Это эквивалентно тому, что невязка ортогональна
/СУ(Л, г(0)) в смысле стандартного внутреннего произведения: 1 JC/A, г(0))
(следствие 7.7.19).
Для CG-алгоритма (при положительно определенной А) свойство ортого-
нальности напрямую связывается с минимальностью || е01 Ц, и ||г(;)||я-1 теоре-
мой 7.7.3, использующей для этого энергетическое внутреннее произведение.
В неопределенном и несимметричном случаях такой связи нет, поскольку
энергетическое внутреннее произведение теперь отсутствует. Это не запреща-
ет нам построить алгоритм, в которомх® выбирается так, чтобы выполнялось
условие Галеркина
1 /С/Л, г(0)). (7.9.1)
Алгоритм SYMMLQ [53] применяется к симметричным неопределенным
матрицам, строит крыловские подпространства с помощью симметричной
процедуры Ланцоша и выбирает на каждом шаге таким образом, чтобы
выполнялось условие (7.9.1). Этот критерий не соответствует минимизации
в некоторой норме, так что SYMMLQ отличается от MINRES. Иногда
этот алгоритм не срабатывает, поскольку может случиться так, что (7.9.1)
как уравнение может не иметь решений или этих решений будет бесконеч-
но много. Отказ на одном шаге не препятствует использованию алгоритма
на следующем шаге, так как основополагающая симметричная процедура
Ланцоша является безотказной. И все же обычно предпочитают применять
MINRES, а не SYMMLQ.
Естественно возникает и еще один вопрос: возможны ли в несиммет-
ричном случае методы крыловского подпространства с короткими рекур-
рентными формулами, позволяющими обойти большой расход памяти и
машинного времени, неизбежный для GMRES? Можно ли построить та-
кой метод, основанный на некотором критерии ортогональности, подоб-
ном (7.9.1), вместо критерия минимизации? Оказывается, что это возмож-
но, но тогда приходится заменять ортогональность более слабым условием,
известным как биортогональность. Алгоритм бисопряженных градиентов
642
Глава 7. Итерационные методы для линейных систем
(BiCG — BiConjugate-Gradient) является обобщением CG-алгоритма: в нем
наряду с обычными векторами генерируются последовательности двойст-
венных векторов г(0), г(1), г(2), ... и р(0), р(1), р(2), ... .
Примерный BiCG—алгоритм
х(0) <-начальное приближение
г(0) <- задается пользователем так, чтобы <г(0), г(0)> *0
р(0) <-г(0)
for Аг=О, 1,2,...
'ак^^к\7^)/{Ар{к\р(к}}
х(*+1) <-х(Л) +акр{к}
+ -П Аг№
Л л Л (Л £</!£/
7^ <-7^ -акАТр(к}
РЛ<-(г(*+1),г(4+,)>/(ИЛ),г(Л)>
р<*+1><-г<‘+1>+₽*//*>
p(*+i)<-r(‘+1)+P*p(*)
(7.9.2)
Из сравнения (7.9.2) с (7.7.24) видно, что они почти идентичны за исключе-
нием того, что в (7.9.2) есть дополнительные рекуррентные соотношения для
вычисления двойственных векторов. Если А симметрична и 7(0) = г(0), то 7(к) =
г(к} и р(к) = р(к) при всех к и (7.9.2) переходит в (7.7.24).
Получаемые в (7.9.2) векторы удовлетворяют нескольким известным соот-
ношениям, которые обосновываются в упражнении 7.9.6. Обобщая теорему
7.7.14, при всех j будем иметь
span{p(0), ..., ри)} = span{r(0), ..., r0)} = /СУ+1(Л, г(0))
и двойственное соотношение
span{p(0), ..., р0)} = span{r(0), ..., r0)} = /СУ+1(ЛГ, г(0)).
К тому же последовательность № биортогональна последовательности г °,
т.е. (г0, 7(к)) = 0 при j ф к. Обычно (rw, 7{ку) ф 0. Если это не так, алгоритм не
может работать дальше, так как тогда невозможно вычислить р*. Перефрази-
руя условия биортогональности в терминах подпространств, получим условия
Петрова—Галеркина
1 /СУ(ЛГ, г(0)) и r0) 1 /С/Л, г(0)),
обобщающие следствие 7.7.19. Последовательности р® и также удовлетво-
ряют некоторому условию биортогональности, а именно условию {Ар®, р(к)) =
7.9. Методы Крыловского подпространства
643
= АТр(к}) = 0 при j * к. Обычно (Ар(к\ р(к)) * 0. Если это не так, алгоритм не
может работать дальше, так как тогда невозможно вычислить о.к.
Сходимость BiCG-алгоритмов подчас имеет нерегулярный характер. В них
возможны различные усовершенствования. В алгоритме QMR (квазиминими-
зация невязки) [27, 28] для построения крыловских подпространств сущест-
венно используются рекуррентные формулы из BiCG, но для выбора прибли-
женного решения применяется критерий, основанный на некоторой квази-
минимизации невязки. Поскольку рекуррентные соотношения иногда не
работают, в QMR часто вставляется некоторый «просмотр вперед», позволяю-
щий избегать возможных отказов.
Особенность BiCG и QMR, которая иногда является их минусом, состоит в
том, что на каждом шаге там приходится умножать вектор на матрицу Ат. В не-
которых приложениях построение А настолько сложно (оно выполняется
большой подпрограммой), что вовсе не ясно, как вычислять Ат. В таких ситуа-
циях необходимы алгоритмы, в которых Ат не используется. Один из них - это
BiCGSTAB (BiCG-стабилизация) [74], в котором вычисление Ат заменяется
еще одним вычислением А и к тому же сходимость оказывается более гладкой.
Есть также и версия QMR с транспонированием. Другой известный алгоритм
такого типа имеет название CGS (CGSquared) [65].
Все алгоритмы BiCG, QMR, BiCGSTAB и CGS основаны на коротких ре-
куррентных формулах, так что расход памяти и объем вычислений на шаг при
их выполнении не возрастают в противоположность тому, что имеет место для
GMRES.
Все описанные в этом разделе методы могут быть модифицированы для их
использования с предобусловливателями. В несимметричном случае нет необ-
ходимости применять симметричный предобусловливатель. Широко исполь-
зуются неполные L[/-разложения, но трудно перечислить все уже опробован-
ные предобусловливатели.
Пока неясно, какие из множества итерационных методов для решения не-
симметричных систем являются наиболее подходящими.
В MATLAB’e есть GMRES, BiCG, BiCGSTAB, CGS и QMR (без «просмот-
ра вперед»). Это не лучшие их реализации, но они удобны.
Упражнение 7.9.3. Используя MATLAB-m-файл condif.m, описанный в уп-
ражнении 1.9.3, сгенерируйте матрицу А = condif (п, с). Пусть п = 50 (или
больше) ис = [0.2 5 ] . Такая несимметричная 2500 х 2500-матрица являет-
ся дискретизацией конвекционно-диффузионного оператора. Опробуйте не-
которые итерационные методы MATLAB’a на этой матрице. Например, вы-
полните
п = 50; с = [0.2 5]; А = condif(п,с);
nn = пА2; sol = randn(пп,1); %вектор решения из случайных
чисел
b = A*sol; %вектор правой части
tol = le-12; maxit = 1000;
х = bicg(A,b,tol,maxit);
error = norm(x-sol)
644
Глава 7. Итерационные методы для линейных систем
Выполните help bicg, чтобы больше узнать о том, как используется
BiCG. После эксперимента с BiCG попробуйте QMR, BiCGSTAB, CGS и
GMRES. □
Упражнение 7.9.4. В MATLAB’e есть программа luinc, вычисляющая не-
полные ИЛразложения для использования их как предобусловливателей. По-
вторите упражнение 7.9.3, применяя предобусловливатель. Например, выпол-
ните
droptol = 1е-1;
[Ml,М2] = luinc(A,droptol);
spy(А)
spy(М1+М2)
х = bicg(A,b,tol,maxit,Ml,M2);
error = norm(x-sol)
Опробуйте различные итерационные методы. Как предобусловливатель
влияет на результаты? Опробуйте несколько точностей прерывания. Как их
вариация влияет на разреженность Мj и М2 и на эффективность предобуслов-
ливателя? □
Упражнение 7.9.5. Познакомьтесь подробнее с итерационными методами
MATLAB’a. Как с их помощью можно наблюдать сходимость, оценивая пове-
дение невязок? Выведите на экран несколько таких графиков в полулогариф-
мическом масштабе, выполнив, например, следующее:
[х,flag,relres,iter,resvecl] = bicg(A,b,tol,maxit,Ml,M2)
xl = 1:size(resvecl,1)
semilogy(xl, resvecl,'b-'); %появится сплошная синяя кривая
Проведите сравнение сходимости, например, для BiCG, QMR и GMRES,
выдав все кривые на одном графике. □
Упражнение 7.9.6. Рассмотрите BiCG-алгоритм (7.9.2), заменив в нем
присвоение р(к + 1) <- г(к+1) + Р*р(А° на (7.7.7) и двойственное присвоение
р(*+1) ^ + i) + $кр<м на аналогичное (7.7.7) выражение с коэффициента-
ми с„.
(а) Пусть условия биортогональности {Ар{,\ р®) = (р(/), Лгр(/)) = 0 при i * j
выполняются для i < к nj < к. Покажите, что {Ар(к+1), р®) = 0 и АТр(к*1)) = О
при j < к + 1 тогда и только тогда, когда
<Лг<*+1>, р«'>> ~ {p^\ATr^} . п
= ----74—74~ и cki = ----74 т 74" '> 1 = °> •> к -
(Ар^\ р(/)) (р°\ Лгр(/))
Следовательно, эти значения cki и ckj обеспечивают биортогональность.
(Ь) Расширяя теорему 7.7.14, покажите индукцией по у, что
span{p(0), ..., р0)} = span{r(0), ..., г0)} = /СУ+1(Л, г(0))
7.9. Методы Крыловского подпространства 645
и
span{p(0), .... р0)} = span{r(0), rG)} = /СУ+1(ЛГ, г(0))
до тех пор, пока {ApQ\ р®) ф 0.
(с) Используя рекуррентные формулы для r(k+l) и r(k + {) из (7.9.2), соот-
ношения биортогональности из п. (а), тождества для подпространств из
п. (Ь) и определение ак из (7.9.2), докажите по индукции, что (г(0, г) = 0
при i * j.
(d) Используя аргументацию, аналогичную доказательству теоремы 7.7.20,
покажите, что cki = 0 и q(. = 0, если i < к.
(е) Покажите, что скк = скк = -рь где р* определяется в (7.9.2). Это завершает
обоснование алгоритма (7.9.2). □
Дополнение
Некоторые источники программного обеспечения для матричных вычислений
Высококачественное программное обеспечение для решения задач линей-
ной алгебры открыто для всех. Одна из основных систем, содержащих такие
программы, - это NETLIB, к которой можно обратиться по адресу
http://www.netlib.org/
В ней есть программы для проведения всех видов численного анализа.
Из нее, в частности, мы упоминали LAPACK [1], большой набор программ
на Фортране для вычислений с плотными матрицами. Там есть также их
С-версия под названием CLAPACK и версия для параллельных вычисле-
ний на машинах с распределенной памятью под названием ScaLAPACK
[8]. Более ранние пакеты LINPACK [18] и EISPACK [64] также еще дос-
тупны в NETLIB.
Другой важный сайт — руководство по открытому математическому обеспе-
чению (Guide to Available Mathematical Software - GAMS) принадлежит На-
циональному институту стандартов и технологии (NIST) и имеет адрес
http://gams.nist.gov/
Здесь вы также можете найти самое разное программно-математическое
обеспечение.
MATLAB распространяется за плату. Если у вас его еще нет, можно обра-
титься по адресу
http: //www. math works, com/store /
к фирме MathWorks1.
1 Или к представляющей ее интересы в России фирме SoftLine (http://www.softline.ru/). - Прим,
перев.
Список литературы
1. Е. Anderson et al. LAPACK Users' Guide. SIAM, Philadelphia, Third edition,
1999. http://www.netlib.org/lapack/lug/lapack_lug.html.
2. W. E. Arnoldi. The principle of minimized iterations in the solution of the matrix
eigenvalue problem. Quart. Appl. Math., 9:17-29, 1951.
3. Z. Bai, J. Demmel, J. Dongarra, A. Ruhe, and H. van der Vorst, editors. Tem-
plates for the Solution of Algebraic Eigenvalue Problems: A Practical Guide. SIAM,
Philadelphia, 2000.
4. Z. Bai, J. Demmel, and M. Gu. Inverse free parallel spectral divide and conquer
algorithms for nonsymmetric eigenproblems. Numer. Math, 76:279-308,1997.
5. R. Barrett et al. Templates for the Solution of Linear Systems: Building Blocks for
Iterative Methods. SIAM, Philadelphia, 1994.
6. G. A. Birkhoff and R. E. Lynch. Numerical Solution of Elliptic Problems. SIAM
Studies in Applied Mathematics. SIAM, Philadelphia, 1984.
7. A. Bjorck. Numerical Methods for Least Squares Problems. SIAM, Philadelphia, 1996.
8. L. S. Blackford et al. ScaLAPACK Users' Guide. SIAM, Philadelphia, 1997.
www.netlib.org/scalapack/slug/scalapack_slug.html.
9. T. E Chan and T P. Mathew. Domain decomposition algorithms. Acta Numerica,
pages 61-143, 1994.
10. P Concus, G. H. Golub, and D. P. O’Leary. A generalize conjugate gradient method
for the numerical solution of elliptic partial differential equations. In J. R. Bunch and
D. J. Rose, editors, Sparse Matrix Computations, New York 1976. Arademic Press.
11. J. K. Cullum and R. A. Willoughby. Lanczos Algorithms for Large Symmetric
Eigenvalue Computations. Birkhauser, Boston, 1985.
12. J. J. M. Cuppen. A divide and conquer method for the symmetric tridiagonal
eigenproblem, Numer. Math., 36:177-195, 1981.
13. J. Demmel and B. Kagstrom. The generalized Schur decomposition of an arbi-
trary pencil A - \B: robust software with error bounds and applications. ACM
Trans. Math. Software, 19:160-201, 1993.
14. J. Demmel and K. Veselic. Jacobi’s method is more accurate than QR. SIAMJ.
Matrix Anal. Appl., 13:1204-1246, 1992.
15. *J. W. Demmel. Applied Numerical Linear Algebra. SIAM, Philadelphia, 1997.
* Звездочкой помечены книги, переведенные на русский язык или имеющиеся на русском
языке. — Прим, перев.
648
Список литературы
16. I. S. Dhillon. A New O(n2) Algorithm for the Symmetric Tridiagonal Eigen-
value/Eigenvector Problem. PhD thesis, University of California, Berkeley, 1997.
17. 1. S. Dhillon and B. N. Parlett. Orthogonal eigenvectors and relative gaps.
LAPACK Working Note 154. Submitted to SIAM J. Matrix Anal. AppL, 2000.
18. J. J. Dongarra, J. R. Bunch, С. B. Moler, and G. W. Stewart. UNPACK Users'
Guide. SIAM, Philadelphia, 1979.
19. J. J. Dongarra, F. G. Gustavson, and A. Karp. Implementing linear algebra algo-
rithms for dense matrices on a vector pipeline machine. SIAM Review, 26:91-112,
1984.
20. J. J. Dongarra and D. C. Sorensen. A fully parallel algorithm for the symmetric
eigenvalue problem. SIAM J. Sci. Stat. Comput., 8:sl39-sl54, 1987.
21. I. S. Duff, A. M. Erisman, and J. K. Reid. Direct Methods for Sparse Matrices.
Oxford University Press, 1986.
22. К. V. Fernando and B. N. Parlett. Accurate singular values and differential qd al-
gorithms. Numer. Math., 67:191-229, 1994.
23. G. E. Forsythe and P. Henrici. The cyclic Jacobi method for computing the prin-
cipal values of a complex matrix. Trans. Amer. Math. Soc., 94:1-23, I960.
24. *G. E. Forsythe and С. B. Moler. Computer Solution of Linear Algebraic Systems.
Prentice-Hall, Englewood Cliffs, NJ, 1967.
25. J. G. F. Francis. The QR transformation, parts I and II. Computer J., 4:265-272,
332-345, 1961.
26. R.W. Freund, G. H. Golub, and N. M. Nachtigal. Iterative solution of linear sys-
tems. Acta Numerica, 1:57-100, 1992.
27. R. W. Freund and N. M. Nachtigal. QMR: A quasi-minimal residual method for
non-hermitian linear systems. Numer. Math., 60:315-339, 1991.
28. R. W. Freund and N. M. Nachtigal. An implementation of the QMR method
based on coupled two-term recurrences. 57AM J. Sci. Comput., 15:313-337, 1994.
29. *F. R. Gantmacher. The Theory of Matrices. Chelsea Publishing Co., New York,
1959.
30. *A. George and J. W. Liu. Computer Solution of Large Sparse Positive Definite Sys-
tems. Prentice-Hall, Englewood Cliffs, NJ, 1981.
31. G. H. Golub. Numerical methods for solving linear least squares problems.
Numer. Math., 7:206-216, 1965.
32. G. H. Golub and W. Kahan. Calculating the singular values and pseudo-inverse
of a matrix. SIAM J. Numer. Anal, 2:202-224, 1965.
33. ‘G. H. Golub and C. F. Van Loan. Matrix Computations. Johns Hopkins Univer-
sity Press, Baltimore, Third edition, 1996.
34. A. Greenbaum. Iterative Methods for Solving Linear Systems. SIAM, Philadelphia,
1997.
35. M. H. Gutknecht. Lanczos-type solvers for nonsymmctric linear systems of equa-
tions. Acta Numerica, 6:271-397, 1997.
36. W. Hackbusch. Iterative Solution of Large, Sparse Systems of Equations, volume 95
of Applied Mathematical Sciences. Springer-Verlag, 1994.
37. C.R.Hadlock. Field Theory and Its Classical Problems. The Cams Mathematical
Monographs. Mathematical Association of America, 1978.
38. *L. A. Hageman and D. M. Young. Applied Iterative Methods. Academic Press,
New York, 1981.
Список литературы
649
39. М. R. Hestenes and Е. Stiefel. Methods of conjugate gradients for solving linear
systems. J. Res. Nat. Bur. Standards, 49:409-436, 1952.
40. D. J. Higham and N. J. Higham. MATLAB Guide. SIAM, Philadelphia, 2000.
41. N. J. Higham. Accuracy and Stability of Numerical Algorithms. SIAM, Philadel-
phia, 1996.
42. ’R. A. Horn and C. A. Johnson. Matrix Analysis. Cambridge University Press,
1985.
43. A. S. Householder. The Theory of Matrices in Numerical Analysis. Blaisdell New
York, 1964. Reprinted by Dover, New York, 1975.
44. C. G. J. Jacobi. Uber ein leichtes Verfahren die in der Theorie der
Sacularstb1 rungen vorkommenden Gleichungen numerisch aufzulosen. J. Reine
Angew. Math., 30:51-94, 1846.
45. ‘V. N. Kublanovskaya On some algorithms for the solution of the complete
eigenvalue problem. USSR Comput. Math, and Math. Phys., 3:637-657, 1961.
46. ‘P. Lancaster and M. Tismenetsky. The Theory of Matrices. Academic Press, Sec-
ond edition, 1985.
47. C. Lanczos. An iteration method for the solution of the eigenvalue problem of
linear differential and integral operators. J. Res. Nat. Bur. Stand., 45:255-282,
1950.
48. *C. L. Lawson and R. J. Hanson. Solving Least Squares Problems. Prentice-Hall,
Englewood Cliffs, NJ, 1974.
49. R. B. Lehoucq, D. C. Sorensen, and C. Yang. ARPACK Users' Guide: Solution of
Large-Scale Eigenvalue Problems with Implicitly Restarted Arnold: Methods.
Philadelphia, 1998. http://www.caam.rice.edu/software/ARPACK/index.html.
50. G. S. Minimis and С. C. Paige. Implicit shifting in the QR and related algo-
rithms. SIAM J. Matrix Anal. Appl, 12:385-400, 1991.
51. С. B. Moler and G. W. Stewart. An algorithm for generalized matrix eigenvalue
problems. SIAM J. Numer. Anal., 10:241-256, 1973.
52. M. L. Overton. Numerical Computing with IEEE Floating Point Arithmetic. SIAM,
Philadelphia, 2001.
53. C. Paige and M. Saunders. Solution of sparse indefinite systems of linear equa-
tions. SIAM J. Numer. Anal., 12:617-629, 1975.
54. *B. N. Parlett. The Symmetric Eigenvalue Problem. Prentice-Hall, Englewood
Cliffs, NJ, 1980. Reprinted by SIAM, Philadelphia, 1997.
55. B. N. Parlett. The new qd algorithm. Acta Numerica, 4:459-491, 1995.
56. B. N. Parlett and I. S. Dhillon. Relatively robust representations of symmetric
tridiagonals. Linear Algebra Appl., 309:121-151, 2000.
57. H. Rutishauser. Der Quotienten-Differenzen-AIgorithmus. Z. angew. Math.
Physik, 5:233-251,1954.
58. *H. Rutishauser. DerQuotienten-Differenzen-Algorithmus. Number 7 in Mitt. Inst,
angew. Math. ETH. Birkhauser, Basel, 1957.
59. H. Rutishauser. Solution of eigenvalue problems with the LR-transformat ion.
Nat. Bur. Standards Appl. Math. Series, 49:47-81, 1958.
60. Y. Saad and M. Schultz. GMRES: a generalized minimal residual algorithm for
solving nonsymmetric linear systems. SIAM J. Sci. Statist. Comput., 1:856-869, 1986.
61. R. D. Skeel. Iterative refinement implies numerical stability for Gaussian elimi-
nation. Math. Comp., 35:817-832, 1980.
650
Список литературы
62. G. L. G. Sleijpen and Н. A. van der Vorst. A Jacobi-Davidson iteration method
for linear eigenvalue problems. SIAM J. Matrix Anal. Appl., 17:401-425, 1996.
63. В. E Smith, P. E. Bjorstad, and W. D. Gropp. Domain Decomposition: Parallel
Multilevel Methods for Elliptic Partial Differential Equations. Cambridge Univer-
sity Press, 1996.
64. В. T. Smith et al. Matrix Eigensystem Routines — E1SPACK Guide. Springer-Ver-
lag, New York, Second edition, 1976.
65. P. Sonneveld. CGS, a fast Lanczos-type solver for nonsymmetric linear systems.
SIAM J. Sci. Statist. Comput., 10:36-52, 1989.
66. G. W. Stewart. Error and perturbation bounds for subspaces associated with cer-
tain eigenvalue problems. SIAM Review, 15:727-764, 1973.
67. G. W. Stewart. Introduction to Matrix Computations. Academic Press, New York,
1973.
68. V. Strassen. Gaussian elimination is not optimal. Numer. Math, 13:354-356, 1969.
69. J. C. Strikwerda Finite Difference Schemes and Partial Differential Equations.
Chapman and Hall, New York, 1989.
70. A. E. Taylor and D. C. Lay. Introduction to Functional Analysis. Krieger, Malabar,
FL, Second edition, 1986.
71. L. N. Trefethen and D. Bau, 111. Numerical Linear Algebra. SIAM, Philadelphia,
1997.
72. A. M. Turing. Rounding-off errors in matrix processes. Quan. J. Appl. Math.,
1:287-308, 1948.
73. E. E. Tyrtyshnikov. A Brief Introduction to Numerical Analysis. Birkhauser, Bos-
ton, 1997.
74. H. A. van der Vorst. Bi-CGSTAB: A fast and smoothly converging variant of Bi-
CG for the solution of nonsymmetric linear systems. SIAM J. Sci. Statist. Com-
put., 13:631-644, 1992.
75. P. Van Dooren. The computation of Kronecker’s canonical form of a singular
pencil. Linear Algebra Appl., 27:103-141,1979.
76. R. S. Varga Matrix Iterative Analysis. Prentice-Hall, Englewood Cliffs NJ, 1962.
77. D. S. Watkins. Fundamentals of Matrix Computations. John Wiley and Sons New
York, First edition, 1991.
78. D. S. Watkins. Performance of the QZ algorithm in the presence of infinite
eigenvalues. SIAM J. Matrix Anal. Appl., 22:364-375, 2000.
79. D. S. Watkins and L. Eisner. Convergence of algorithms of decomposition type
for the eigenvalue problem. Linear Algebra Appl., 143:19-47, 1991.
80. D. S. Watkins and L. Eisner. Theory of decomposition and bulge-chasing algo-
rithms for the generalized eigenvalue problem. SIAM J. Matrix Anal. Appl.,
15:943-967, 1994.
81. *J.H.Wilkinson. The Algebraic Eigenvalue Problem,. Clarendon Press, Oxford
University, 1965.
82. J. H. Wilkinson. Kronecker’s canonical form and the QZ algorithm. Linear Alge-
bra Appl., 28:285-303, 1979.
83. J. H. Wilkinson and C. Reinsch, editors. Handbook for Automatic Computation,
Volume II, Linear Algebra. Springer-Verlag, New York, 1971.
84. D. M. Young. Iterative Solution of Large Linear Systems. Academic Press, New
York, 1971.
Список литературы
651
Работы на русском языке
1. [15] Дж. Деммель. Вычислительная линейная алгебра. - М.: Мир, 2001,
429 с.
2. [24] Дж. Форсайт, К. Молер. Численное решение линейных алгебраичес-
ких уравнений. — М.: Мир, 1969, 167 с..
3. [29] Ф.Р. Гантмахер. Теория матриц. Изд. 3-е. — М.: Наука, 1967, 575 с.
4. [30] А. Джордж, Дж. Лю. Численное решение больших разреженных
систем уравнений. — М.: Мир, 1984.
5. [33] Дж. Голуб, Ч. Ван Лоун. Матричные вычисления. Изд-е 2-е. — М.:
Мир, 1999, 548 с.
6. [38] Л. Хейгеман, Д. Янг. Прикладные итерационные методы. - М.: Мир,
1986, 446 с.
7. Р. Хорн, Ч. Джонсон. Матричный анализ. — М.: Мир, 1989.
8. [45] В.Н. Кублановская. О некоторых алгоритмах для решения полной
проблемы собственх значений. ЖВМ и МФ, 1:3, 1961, 637-657.
9. [46] П. Ланкастер. Теория матриц. Изд. 1-е. - М.: Наука, 1978, 280 с.
10. [48] Ч. Лоусон, Р. Хансон. Численное решение задач метода наименьших
квадратов. - М.: Наука, 1986, 232с.
11. [54] Б. Парлетт. Симметричная проблема собственных значений. - М.:
Мир, 1983, 382 с.
12. [58] Г. Рутисхаузср. Алгоритм частных и разностей. — М.: ИЛ, 1960, 93 с.
13. [81] Дж. X. Уилкинсон. Алгебраическая проблема собственных значений.
- М.: Наука, 1970, 564 с.
Некоторые общие руководства по MATLAB’y на русском языке
1. В.Е. Кондрашов, С. Б. Королев. MATLAB как система программирования
научно-технических расчетов. - М.: Мир, 2002, 350 с.
2. В.Г. Потемкин. MATLAB 6. - М.: Диалог-МИФИ, 2003, 448 с.
3. В.Г. Потемкин. Вычисления в среде MATLAB. - М.: Диалог-МИФИ,
2004, 720 с.
4. Cleve В. Moler. Numerical Computing with MATLAB. SIAM, Philadelphia, 2004.
Электронное издание книги можно найти по адресу
http://www.mathworks.com/n'ioler.
Предметный указатель1
А - ампер, ед. силы тока, эл.
Абель (Abel) 332,513
абсолютное значение матрицы (absolute
value of a matrix) 178, 197
алгоритм (algorithm)
- Банча—Кауфмана (Bunch-Kaufman) 122
- бисопряженных градиентов (biconjugate-
gradient, BiCG) 641
- быстрый Пуассона (fast Poisson’s solver) 567
- Каппена (Cuppen) 528
- обратно устойчивый (backward stable) 163
- обратный Катхилла-Мак-Ки (reverse
Cuthill-MacKee) 77
- прогонки (вытеснения) углового выступа
(bulge-chasing) 402,407,437, 521, 551
- «разделяй и властвуй» («divide-and-con-
quer») 528
- упорядочивания минимальной степени
(minimum-degree ordering) 77
- dqds 522
-LR520
-QL459
- QR 381
— вырожденный случай (singular case) 393
--его дефляция (its deflation) 386
--как итерация с отношением Рэлея (as
Rayleigh quotient iteration) 460
— как одновременная итерация (as simul-
taneous iteration) 455
--неявный (implicit)
-----двухшаговый (double step) 404
-----одношаговый (single step) 398
— с особым сдвигом (with exceptional shift) 393
--co сдвигом на отношеоние Рэлея (with
Rayleigh quotient shift) 387
---co сдвигом Уилкинсона (with Wilkinson
ahift) 390
— с редукцией (with reduction) 390
---с симметричной матрицей (with sym-
metric matrix) 403
— с точным сдвигом (with exact shift) 393
— с ускорением сходимости сдвигом (with
convergence acceleration by shifting) 386
---с хессенберговыми матрицами (with
Hessenberg matrices) 383
---явная и неявная формы (explicit and im-
plicit forms) 399
-QMR 643
- QZ 549
- qd520
---qds (...shifted) 522
---dqds (differential...) 522
— RRR515, 524
---его дифференциальная форма (its differ-
ential form) 516
анализ ошибок (error analysis)
- априорный и апостериорный (a priori and
a posteriori) 154
— обратный и прямой (backward and straight-
forward) 162
- покомпонентный (componentwise) 196
арифметика с плавающей точкой (floating-
point arithmetic) 156
- IEEE-стандарт (IEEE standard) 157
асимптотическая скорость сходимости (as-
ymptotic convergence rate) 588
базис (basis)
- ортонормированный (orthonormal) 242
- подпространства (of a subspace) 246
- стандартый (standard) 242
1 Помимо терминов сюда включены некоторые названия единиц измерения без указания стра-
ниц. — Прим, перев.
Предметный указатель
653
блок Жордана (Jordan block) 331, 594
блочная итерация (block iteration) 580
блочное исключение Гаусса (block Gauss
elimination) 104
быстрые вращения (fast rotations) 215
В - вольт, ед. напряжения , эл.
ведущая подматрица (principal submatrix) 55
вектор (vector)
- Ритца (Ritz) 470,478
— гармонический (harmonic) 495
- сингулярный (singular) 283
- собственный (eigenvector) 314
векторы (vectors)
- биортогональные (biorthogonal) 499, 642
- двойственные (dual) 642
- линейно независимые (linearly independ-
ent) 245
- ортогональные (orthogonal) 208
— сопряженные (conjugate) 625
взаимное уничтожение (сокращение) (can-
cellation) 161
- в методе исключения Гаусса (in Gauss
elimination method) 169
- неприемлемое (catastrofic) 161
внутреннее (скалярное) произведение (inner
product) 207,623
- индуцированное оператором Н (induced
byН)623
- комплексное (complex) 228
- стандартное (standard) 623
- функций (of functions) 269
- энергетическое (energy) 624
вращение (rotation) 210
- быстрое (fast) 215
- в комплексном случае (complex) 28
- в плоскости (plane) 213
- Гивенса (Givens) 213
- его обратная устойчивость (its backward
stability) 227, 232
- Якоби (Jacobi) 513, 532
Вт - ватт, ед. мощности, эл.
второй закон Ньютона (Newton’s second law) 319
выбор главного элемента (pivoting)
- полный (complete) 120
- частичный (partial) 109
выступ (bulge) 400
- его прогонка (chasing) 402
Гн - генри, ед. измерения индуктивности, эл.
главная подматрица (principal submatrix) 55,85
гиперплоскость (hyperplane) 217
градиент (gradient) 600
двойственность при итерации
подпространства (duality in space iteration)
458
дефляция в QR-алгоритме (deflation in QR
aslgorithm) 386
Дж — джоуль, ед. измерения энергии.
дисперсия (variance) 65
дифференциальные уравнения (differential
equations)
- асимптотически устойчивые (asymptoti-
cally stable) 320
— линейные неоднородные (linear nonhomo-
geneous) 316
— однородные (homogeneous) 313
- нелинейные (nonlinear) 320
— неустойчивые (nonstable) 320
— обыкновенью (ordinary — ODE) 311, 558
- с частными производными (with partial de-
rivatives - PDE) 561, 566
доминирующее собственное значение (dom-
inant eigenvalue) 337
дополнение Шура (Shur’s complement) 61,104,
280
задача наименьших квадратов (least square
problem) 202
-дискретная (discrete) 203, 264
- и SVD 296
- ее чувствительность к возмущениям (its
sensitivity to perturbations) 302
— непрерывная (continuous) 268
- с матрицей неполного ранга (with rank-de-
ficient matrix) 237, 296
- с матрицей полного ранга (with full-rank
matrix) 234
закон (law)
- второй Ньютона (Newton’s second) 319
- инерции Сильвестра (Sylvester’s of inertia) 519
— его обоснование (its proof) 536
- Кирхгофа (Kirchhoff’s)
--для напряжений (for voltages) 26
— для токов (for circuits) 24
- Ома (Ohm’s) 25
идеальный компьютер (ideal computer) 159
изометрия (isometry) 243
инвариантное подпространство (invariant
subspace) 443
индуктивность (inductance) 312
инерция матрицы (matrix inetrtia) 519
исключение Гаусса (Gaussian elimination) 84
- без выбора главного элемента (without piv-
oting) 85
654
Предметный указатель
- блочное (block) 104, 118
- в форме внутреннего произведения (in in-
ner product formulation) 95
- для разреженных матриц (for sparse matri-
ces) 122
- его обратная устойчивость (its backward
stability) 182
— общее (generic) 105
- ориентированное по столбцам (column
oriented) 115
— по строкам (row oriented) 115
- с выбором главного элемента (with pivot-
ing) 108
- с выбором главного элемента малой
величины (with small pivot) 172
- с перестановками строк (with rows permu-
tations) 108
исключение Гаусса-Жордана (Gauss-Jor-
dan elimination) 120-121
итерации с отношением Рэлея (iterations
with Rayleigh quotient) 350
- в QR-алгоритме (in QR-algorithm) 460
- их квадратичная сходимость (quadratic
convergence) 352
- их кубическая сходимость (cubic conver-
gence) 352
- скорость сходимости (convergence rate) 351
итерационное уточнение (iterative refine-
ment) 199
итерационные методы (iterative methods) 121
итерация (iteration)
- подпространства (of the subspace) 449
--двойственная (dual) 458
--одновременная (simultaneous) 452
- по линиям (on lines) 580
- последовательной верхней релаксации
(successive overrelaxation - SOR) 577
- симметричная Гаусса-Зейделя (symmetric
Gauss-Seidel) 576
- симметричная SOR (symmetric SOR) 578
- co сглаживанием (with damping) 593
--множитель сглаживания (damping fac-
tor) 593
- экстраполирующая (extrapolated) 593
-QR382
каноническая форма Жордана (Jordan ca-
nonical form) 359, 593
квадратичная сходимость (quadratic conver-
gence) 352
клетка Жордана (Jordan block) 331, 594
конвекционно-диффузионный оператор
(convection-diffusion operator) 123, 125
конгруэнтность матриц (matrix congruence) 518
- пар матриц (matrix pairs) 547
корреляция двух векторов (correlation of two
vectors) 65
коэффициент сжатия (contraction number) 338
кратность (multiplicity)
- алгебраическая (algebraic) 328,446
- геометрическая (geometric) 366,446
- их сравнение (... versus...) 446
круг Гершгорина (Gerschgorin disk) 508
кэш (cache) 20
линейная (linear)
- комбинация (combination) 245
- независимость и зависимость (independ-
ence and dependence) 245
- оболочка векторов (vector’s span) 245
— сходимость (convergence) 338
линейный поиск (line search) 601
- неточный (inexact) 601
- точный (exact) 601
- точный в сравнении с неточным (... versus
...) 601
масштабирование (scaling) 191
- плохое (poor) 142
- по столбцам (column) 191
- по строкам (row) 191
математическая индукция (mathematical in-
duction) 42
матрица (matrix) 11
- Вандермонда (Vandermonde) 254
- Вафена (Wathen) 83
- вырожденная (singular) 24
- Гильберта (Hilbert) 139, 168, 270
- двухдиагональная (bidiagonal) 431
---правильная (proper) 434
- дефектная (defective) 330
- диагональная (diagonal) 98
- единичная (identity) 23
- ее абсолютное значение (absolute value) 178,
197
— ее одноранговые модификации (its one-
rank modifications) 104
---ее многоранговые модификации (its
multi-rank modifications) 231
- ее одноранговые модификации (its one-
rank modifications) 273
- идемпотентная (idempotent) 216
- изометрическая (isometric) 243
- жесткости (stiffness) 28, 600
- Кахана (Kahan) 167, 294
- квазитреугольная (quasi-triangular) 365
Предметный указатель
655
- корреляционная (correlation) 65
- Крылова (Krylov) 418, 478
- кососимметричная (skew symmetric) 371
- косоэрмитова (skew Hermitian) 364
- ленточная(band)68
- Лоткина (Lotkin) 172
- невырожденная (nonsingular) 24
- недефектная (nondefective) 330
- нижняя унитреугольная (lower
unitriangular) 92
- нормальная (normal) 364
- обратимая (inversible) 24
- обратная (inverse) 23
— для разреженной матрицы (for sparse ma-
trix) 72
--ее вычисление (its computation) 118
- ортогональная (orthogonal) 208
- перекрученная (twisted) 526
- перестановок (permutation) 112
- плохо обусловленная (ill conditioned) 137
- положительно (positive)
— определенная (definite) 44
-----с комплексными элементами (with
complex entries) 62
— полуопределенная (semidefinite) 266, 368
- полупростая (semisimple) 315, 330
- псевдообратная (pseudoinverse) 299
- расширенная (augmented) 84
- расщепляющая (splitting) 583
- симметричная (symmetric) 44
- сопровождающая (companion) 332
- стохастическая (stochastic) 356
- стреловидная (arrowhead) 76
- треугольная (triangular) 34
-трехдиагональная (tridiagonal) 68, 373
— правильная (proper) 434
- унитарная (unitary) 228, 360
- Хессенберга верхняя (Hessenberg upper) 353,
373
— неразложимая (unreduced) 391
- хорошо обусловленная (well conditioned) 137
- элементарная (elementary) 84
- эрмитова (Hermitian) 62, 361
- Якоби (якобиан) (Jacobi) 321
- 2-хессенбергова (2-Hessenberg) 406
- j-хессенбергова (j-Hessenberg) 493
матрицы (matrices)
- их тензорное произведение (tensor prod-
uct) 596
- конгруэнтные (congruent) 547
- подобные (similar) 358
маятник с затухающими колебаниями (pen-
dulum with damped oscillations) 322
метод (method)
- алгебраических дополнений (cofactor) 119
- бисекции (bisection) 518
- Гаусса-Зейделя (Gauss-Seidel) 571
— блочный (block) 580
— его скорость сходимости (convergence
rate) 588
— как метод спуска (as descent method) 602
---как сглаживающий в многосеточном
варианте (as smoother in multigrid) 583
---с упорядочиванием (orderings) 574
---симметричный (symmetric) 576
- Дэвидсона (Davidson) 491
- конечных разностей (finite differences) 29,
559,561
— наискорейшего спуска (steepest descent) 602
---его геометрическая интерпретация (its
geometric interpretation) 606
— предобусловленный (preconditioned) 613
- рассечения (slicing) 518
- Ричардсона (Richardson) 584
---его коэффициент сглаживания (its
damped coefficient) 584
- последовательной верхней релаксации
(successive overrelaxation - SOR) 577
— блочный 580
---линейный (linearity) 580
— его скорость сходимости (convergence
rate) 589
---как метод спуска (as descent method) 602
— симметричный (symmetric-SSOR) 578
— с красно-черным упорядочиванием
(with red-black ordering) 580
- сопряженных градиентов (conjugate-gradi-
ent-CG) 617
---его сходимость (convergence) 632
---и процедура Ланцоша (Lanczos process)
631,632, 640
— предобусловленный (preconditioned 619
---производная (derivation) 623
— ускоренный алгоритм (acceleration tech-
nique) 590
- спуска (descent) 600
---Гаусса-Зейделя (Gauss-Seidel) 601
---наискорейшего (steepest) 602
---предобусловленный (preconditioned) 619
---с последовательной верхней релаксаци-
ей (successive overrelaxation - SOR) 602
- сопряженных направлений (conjugate di-
rections) 626
- степенной (power) 337
---его обращение (inverse) 342
656
Предметный указатель
— его скорость сходимости (convergence
rate) 338
- Холесского (Cholesky) 46
— блочный (block) 58
---обратная устойчивость (backward stabil-
ity) 184
---окаймляющая форма (bordered form) 56
---форма внешнего произведения (outer
product form) 54
---форма внутреннего произведения (inner
product form) 48
- Штрассена (Strassen) 22
- Якоби (Jacobi)
---для задачи на собственные значения (for
eigenvalue problem) 512
---циклический (cycle) 513
— для линейных систем (for linear systems) 568
---блочный (block) 580
---скорость сходимости (convergence rate) 589
— сглаживающий (damped) 583
- Якоби-Дэвидсона (Jacobi-Davidson) 491
---приближенный (inexact) 492
---с очищением (with purging) 492
---точный (exact) 491
методы (methods)
- итерационные (iterative) 121, 332
- крыловских подпространств (Krylov
subspaces) 639
- прямые (direct) 332
- спуска (descent) 600
многосеточность (multigrid) 583, 589
- со сглаживанием по Гауссу-Зейделю (with
Gauss-Seidel smoother) 583
— по Якоби (with Jacobi smoother) 583
многоцветное упорядочивание (multicolor
ordering) 574
H - ньютон, ед. силы, мех.
невязка (residual) 153
- и обратная устойчивость (and backward
stability) 163, 496
неравенство (inequality)
- Коши-Шварца (Cauchy-Schwarz) 129, 207
- треугольника (triangle) 128
неявная Q-теорема (implicit Q-theorem) 408,
437,553
Н/м — ньютон/метр, ед. жесткости пружи-
ны, мех.
норма(norm)
- вектора (vector) 128
---евклидова (Euclidean) 128
— манхеттенская (Manhattan) 130
---A-норма (A-norm) 130
— р-норма (p-norm) 130
----1-норма (1-norm) 130
— oo-норма (oo-norm) 135
- матрицы (of matrix) 131
- - индуцированная (induced) 132
----спектральная (2-норма) (spectral) 134
— Фробениуса (Frobenius) 131
— р-норма (p-norm) 134
----1-норма (суммирование по столбцам)
(1-norm) 134
— oo-норма (суммирование по строкам)
(oo-norm) 134
- операторная (operator) 132
- функции (of function) 269
- энергетическая (energy) 624
нормальные уравнения (normal equations) 266
нуль-пространство (null space) 263
область значений преобразования (range) 263
обновление данных в QR-разложении (up-
dating QR-decomposition)
- добавление столбца (adding a column) 275
— добавление строки (adding a row) 271
- удаление столбца (deleting a column) 276
- удаление строки (deleting a row) 273
обобщенная задача на собственные
значения (generalized eigenvalue problem)
538,542
обобщенное обращение Мура—Пенроуза
(generalized Moore-Penrose inverse) 299
оболочка матрицы (matrix envelop) 70
оболочка множества векторов (span of a set
of vectors) 245
обратная (backward)
- подстановка (substitution) 41
- устойчивость (stability) 163
— вращений и отражений (of rotations and
reflections) 227, 232
----и невязки (and residuals) 163, 496
— исключения Гаусса (of Gaussian elimina-
tion) 181
----матричного умножения (of matrix multi-
plication) 232
----метода Холесского (of Cholesky
method) 184
----по норме (normwise) 181
— покомпонентная (componentwise) 181,200
----прямой подстановки (of forward substitu-
tion) 178
обратная (inverse)
- итерация (iteration) 342
----с точным сдвигом (with exact shift) 347
Предметный указатель
657
обратный анализ ошибок (backward error
anaslysis) 162
одновременная итерация (simultaneous itera-
tion) 452
- для разреженных матриц (for aparse matri-
ces) 463
одноранговая коррекция (модификация)
(rank-one update)
— для единичной матрицы (for identity ma-
trix) 104, 230
— для задачи на собственные значения (for
eigenvalue problem) 529
определитель, его вычисление (determinant,
computation of) 119
ортогональная (orthogonal)
- матрица (matrix) 208
- проекция вектора на подпространство
(vector projection onto subspace) 262
- эквивалентность (equivalence) 283, 430
ортогональное (orthogonal)
-дополнение (complement) 261
- разложение (decomposition) 295
ортогоальность (orthogonflity)
- векторов (of vectors) 208
- в энергетической норме (in energy norm) 625
- функций (of functions) 269
ортонормированные векторы (orthonormal
vectors) 242
ортопроектор (orthoprojector) 216
остов (spanning set of subspace) 246
отклонение от нормальности (departure from
normality) 502
относительно устойчивое представление
(relatively robust representation - RRR) 515
отношение Рэлея (Rayleigh quotient) 349
— для нормальной матрицы (of normal ma-
trix) 370
— для сдвига (for shift) 387
---матричное (matrix) 479
отношение сходимости (или коеффициент
сжатия) (convergence ratio) 338
отражение (reflector) 217
- в комплексном случае (complex) 229
- его обратная устойчивость (backward sta-
bility) 227, 232
ошибка (error)
- абсолютная и относительная (absolute and
relative) 158
- округления (round-off) 157
— единичная (identity) 159
пара Ритца (Ritz pair) 470
— гармоническая (harmonic) 494
перекрученная факторизация (twisted
factorization) 524
переопределенная система (overdetermined
system) 204
переполнение (overflow) 157
повышение сложности по размерности
(curse of dimentionality) 566
поглощение (swamping) 173,193
подобие (similarity) 358
- ортогональное (orthogonal) 361
- унитарное (unitary) 361
подпространство (subspace) 244
- инвариантное (invariant) 443
--доминирующее (dominant) 450
- Крылова (Kiylov) 467, 628
- собственное (eigenspace) 443
подстановка (substitution)
- обратная (backward) 41
- прямая (forward) 35
покомпонентная обратая устойчивость
(componentwise backward stability) 200
полиномы Чебышева (Chebyshev polynomi-
als) 480
- и сходимость процедуры Ланцоша (and
convergence of Lanczos process) 482
- и сходимость CG-алгоритма (of CG-algo-
rithm) 638
полный выбор главного элемента (complete
pivoting) 120
полный ранг (full rank) 234
полуширина ленты (half of the band) 68
последовательная верхняя релаксация (suc-
cessive overrelaxation - SOR) 577
- блочная (block) 580
- линейная (line) 580
— с красно-черным упорядочиванием (wi|h
red-black ordering) 580
- симметричная (symmetric) 578
потеря значимости (cancellation) 157
- катастрофическая (catastrophic) 161
- при исключении Гаусса (in Gauss elimina-
tion) 169
правило Крамера (Cramer’s rule) 121
предобусловливание (preconditioning) 611
предобусловливатель (preconditioner) 593,611
- диагональный или Якоби (diagonal or
Jacobi) 613
- и метод Ричардсона (Richardson method) 593
- как расщепляющая матрица (as splitting
matrix) 583
- многосеточный (multigrid) 616
- при неполной факторизации (under in-
complete factorization) 616, 623
658
Предметный указатель
- при разбиении на области (for domain de-
composition) 616
- I LU (incomplited LU) 616
-SSOR615
преобразование (transformation)
- Гаусса (Gauss) 103, 231
- гиперболическое (hyperbolic) 277
- подобия (similarity) 358
- Хаусхолдера (Householder) 217
принцип максимума (maximum principle) 567
проводимость (conductance) 63
проектор (projector) 216
произведение Кронекера (Kronecker product) 596
пространство столбцов (column space) 264
- строк (row...) 264
процедура (process)
- Арнольди (Arnoldi) 465
--ее матричное представление (matrix rep-
resentation) 468
--запускаемая неявно (implicitly restarted,
IRA) 483
-----с точным сдвигом (with exact shift) 485
- Грама-Шмидта (Gram-Schmidt)
— и QR-разложение (QR-decomposition) 248
--классическая (classical) 248
— модифицированная (modified) 250
--с повторой ортогонализацией (with
reorthogonalization) 255
- Ланцоша симметричная (Lanczos symmet-
ric) 472
— ее связь c CG (connection with CG) 631,
632,640
- рекурсивная 38
- Стильтьеса (Stieltjes) 483
прямая подстановка (forward substitution) 35
- блочная (block) 41
- ее обратная устойчивость (backward stabil-
ity) 178
- ориентированная по столбцам (column
oriented) 38
— по строкам (row oriented) 35
прямая сумма подпространств (direct sum of
subspaces) 262
псевдообращение (pseudoinverse) 299
пучок матриц (matrix pencil) 542
— его приведение к хессенберговой
треугольной форме (reduction to
Hessenberg-triangular form) 548
- регулярный (regular) 544
- симметричный (symmetric) 545
- сингулярный (singular) 544
— сравнение регулярного и сингулярного
пучков (regular vs. singular) 544
- эквивалентность пучков (pencil equiva-
lence) 545
пятиточечный шаблон (five-point stencil) 562
разбиение
- на области (domain decomposition) 589
- согласованное (conformable) 19
разложение (decomposition, factorization)
- перекрученное (twisted) 524, 526
- сингулярное (singular, SVD) 283
- спектральное (spectral) 364
- Холесского (Cholesky) 46
— при расширении матрицы (matrix add-
ing) 273
— при сокращении матрицы (matrix delet-
ing) 273, 277, 279
-----на столбец (by column) 276
-----на строку (by row) 274
- Шура (Shur) 362
— LDL99, 514
-LDV98
-LR517
- LU 94
- MDM 99
-QL459
-QR212
---в комплексном случае (complex) 229
— для неквадратных матриц (for non-
square matrices) 234
---его единственность (uniqueness) 225, 244
— его сжатая форма (condensed form) 244
---и процедура Грама-Шмидта (and
Gram- Schmidt process) 248
— посредством вращений (by rotators) 214
-----отражений (by reflectors) 224
— при неполном ранге (rank-deficient case) 238
---с выбором ведущего столбца (with lead-
ing column choice) 238
размерность подпространства (subspace size) 246
ранг (rank) 234, 263
расстояние (distance)
- до ближайшей (to nearest)
— вырожденной матрицы (singular matrix) 295
---матрицы неполного ранга (rank-deficient
matrix) 291
растяжение
- максимальное (maxmag) 139
- минимальное (minmag) 139
расщепление (splitting) 583
редукция (reduction)
-Дулиттла (Doolittle) 95
- Краута (Crout) 95
релаксация (relaxation) 577
Предметный указатель
659
- одновременная (simultaneous) 577
- последовательная (successive) 577
реортогонаолизация (reortogonalization) 254
С - сименс, ед. проводимости, эл.
сглаживающая итерация (damped iteration) 593
сглаживающий метод Якоби (damped Jacobi
method) 583
сдвиг (shift) 342
- на отношение Рэлея (Rayleigh quotient) 386
- особый (exceptional) 393
- предписанный (ultimate) 421
- с обращением (shift-and-invert) 464
- точный (exact) 347, 393
- Уилкинсона (Wilkinson) 390
сингулярное разложение (singular value de-
composition - SVD) 283
- в сравнении со спектральным (singular vs.
spectral) 370
- его вычисление (computation) 427
- его диаграмма (diagram) 284
- его геометрический смысл (geometric in-
terpretation) 426
- его сжатая форма (condensed form) 285
системы уравнений (systems of equations)
- дифференциальных (differential)
— обыкновенных (ordinary - ODE) 311, 539
------асимптотически устойчивые
(asymptotical stable) 320
------линейные неоднородные (linear non-
homogeneous) 316
------однородные (homogeneous) 313
------нелинейные (nonlinear) 321
------неустойчивые (nonstable) 320
--с частными производными (partial dif-
ferential equations - PDE) 561, 566
-линейныеалгебраические (linearalgebraic) 11
---предобусловленные (preconditioned) 611
скорость сходимости (convergence rate)
- итераций (of iterations) 333
- классических методов (of classical meth-
ods) 589
след матрицы (matrix trace) 191,371
собственная пара (eigenpair) 327
собственное значение (eigenvalue) 314, 327,542
- доминирующее (dominant) 337
- его число обусловленности (condition
number) 500
- простое (simple) 500
собственное подпространство (eigenspace)
334, 443
собственные значения нормальной матрицы
(eigenvalues of normal matrix) 369
собственный вектор 327, 542
- доминирующий 337
- его число обусловленности (condition num-
ber) 505
- левый (left) 356, 498
- правый (right) 499
согласованное разбиение (conformable parti-
tion) 19
сопряженное (conjugate) преобразование 62
сопряженные векторы (conjugate vectors) 625
спай-график (spy plot) 79
спектр (spectrum) 327
спектральная теорема (spectral theorem)
— для вещественных симметричных матриц
(for real symmetric matrices) 365
- для нормальных матриц (for normal matri-
ces) 364
— для эрмитовых матриц (for Hermitian ma-
trices) 363
спектральный радиус (spectral radius) 586
сравнение прямых и итерационных методов
(iterative vs. direct methods) 332
стандартный базис (standard basis) 242
стратегия сдвига и обращения (shift-and-in-
vert strategy) 343
— и итерация подпространства (and subspace
iteration) 464
- и процедура Арнольди (and Arnoldi pro-
cess) 472
- и IRA (and IRA) 488
сумма подпространств (sum of subspaces) 262
сходимость (convergence)
- квадратичная (quadratic) 352
- кубическая (cubic) 352
- линейная (linear) 338
- медленнее линейной (slower than lin-
ear) 338
тензорное произведение (tensor product) 596
теорема (theorem)
- Бауэра (Bauer) 193
- Бауэра-Файка (Bauer—Fike) 497
- Винтнера-Мурнагана
(Wintner-Murnaghan) 366
— ее доказательство (proof) 370,447
- о диагонализации (diagonalization) 359
- о наилучшей аппроксимации (best approx-
imation) 265,625
- спектральная (spectral)
— для вещественных симметричных
матриц (for real symmetric matrices) 365
— для нормальных матриц (for normal ma-
trices) 364
660
Предметный указатель
--для эрмитовых матриц (for Hermitian
matrices) 363
- Шура (Schur) 362
--в вещественной форме (in real form) 366
--обобщенная (generalized) 547, 555
теория Перрона—Фробениуса
(Perron-Frobenius theory) 356
точечный график (spy graph) 79
транспонирование (transpose) 44
- с комплексным сопряжением (conjugate) 62
угол между двумя векторами (angle between
two vectors) 208
умножение (multiplication)
- матричное (matrix) 16
- матрично-векторное (matrix-vector) 11
упорядоченная пара матриц (ordered matrix
pair) 542
- вырожденная (singular) 544
- ее собственное значение (eigenvalue) 542
- ее собственый вектор (eigenvector) 542
- ее характеристическое уравнение (charac-
teristic equation) 542
- регулярная (regular) 544
упорядочивание (ordering)
- Катхилла-Мак-Ки, обратное
(Cuthill-McKee, reverse) 77
- красно-черное (red-black) 574
- методом вложенных сечений (nested-dis-
section) 82
- минимальной степени (minimal-degree)
— по столбцам (column) 124
--симметричное (symmetric) 77
- многоцветное (multicolor) 574
- согласованное (consistent) 588
- стандартное по строкам (standard row) 574
--обратное (reverse) 574
--по столбцам (column) 574
уравнение (equation)
- вековое (secular) 531
- Пуассона (Poisson’s) 561
--пятиточечный шаблон для него (five-
point stencil for it) 562
- секулярное (secular) 531
- характеристическое (characteristic) 315,
328,542,595
ускорение по Чебышеву (Chebyshev accelera-
tion) 590
условие (condition)
- Галеркина (Galerkin) 479, 641
- Петрова-Галеркина (Petrov-Galerkin) 642
- Рэлея-Ритца-Галеркина (Rayleigh-Ritz—
Galerkin) 479
флоп (flop) 13
Фортран-90 (Fortran-90) 117
фундамепнтальные подпространства (funda-
mental subapaces) 263, 285
характеристический многочлен (characteris-
tic polynomial) 328, 542
характеристическое уравнение (characteristic
equation) 315, 328, 542, 595
хессенбергова треугольная форма
(Hessenberg triangular form) 548
цепь Маркова (Markov chain) 356
частичный выбор главного элемента (partial
pivoting) 109
число обусловленности (condition num-
ber) 137
- его геометрический смысл (geometric view)
139, 144
--контроль (control) 306
--оценка (estimation) 147
- квадратной матрицы (of square matrix) 137
- неквадратной матрицы (of nonsquare ma-
trix) 254
— отдельного собственного вектора (of sim-
ple eigenvector) 505
- отдельного собственного значения (of
simple eigenvalue) 500
- Шкееля (Skeel) 197
число Ритца (Ritz number) 470, 479
- гармоническое (harmonic) 494
чувствительность линейных систем (sensitiv-
ity of linear systems) 127
шар Фуллера (Bucky ball) 78
ширина ленты (bad width) 68
эквивалентность (equivalence)
- задачи на собственные значения и
многочленных уравнений (eigenvalue
problem and polynomial equations) 331
- линейных систем (linear systems) 83
- матриц (of matrices) 283
- матричных пар (пучков) (of pencils) 545
- ортогональная (orthogonal) 283, 430
элементарные операции над строками (ele-
mentary row operations) 84
энергетическое внутреннее произведение и
норма (energy inner product and norm) 624
энергия деформации (strain energy) 44, 64, 600
ядро (kernel) 263
Сокращения
BLAS 118
BiCG 642
BiCGSTAB 643
CG617
CGS 643
dqds 522
GMRES 640
IEEE 157
IRA 483
LDL99, 514
LDV99
LR520
LU 94
MDM99
MINRES 640
ODE 311
PDE 561,566
QL459
QMR 643
QR212, 381
QZ 549
qd 520
qds 522
RRR515, 524
SOR 602
SSOR 615
SVD 283
SYMMLQ 641
Указатель терминов MATLAB’a
acosh 481 full 346 qrinsert 276
airfoil 82 gallery 83 rand 356
backslash 26 gm res 643 randn 15
bicg 643 help 15 randperm 81
bicgstab 643 hess 380 rank 291
bucky 78 hilb 139 roots 326
cgs 643 inf 165 rsf2csf372
chol52 inv 72, 119 save 67
choline 622 isieee 166 schur 372
colmmd 124 issparse 80 semicolon 16
computer 166 kahan 294 semilogy 644
cond 138 kron 126 size 80
condeig 502 long 171 sort 477
condest 148 lotkin 172 sparfun 77
cosh 481 lu 113 speye 78
cputime 16 luinc 644 spy 79
delsq 82 more 66 svd 286
demo 15 nan 166 symmmd 81
det 119 nnz 80 symrem 81
diag 242 norm 294 tic 81
diary 15 numgrid 82 title 323
eig 323, 541 ones 171 toe 81
eigs 493 peg 622 toeplitz 72
elmat 83 pinv 301 transpose 113
eps 189 plot 205 - conjugate 229
eye 190 poly 326 wathen 83
format 171 print 323 west0479 80
- long 171 qmr 643 xlabel 323
- long e 537 qr 227,242 ylabel 323
- short e 294 qrdelete 277
ОГЛАВЛЕНИЕ
От переводчиков.........................................5
Предисловие.............................................6
Благодарности ........................................ 10
ГЛАВА 1. Гауссово исключение и его варианты.....................11
1.1. Умножение матриц..................................11
1.2. Системы линейных уравнений........................22
1.3. Треугольные системы...............................33
1.4. Положительно определенные системы.
Разложение Холесского..................................44
1.5. Ленточные положительно определенные системы.......67
1.6. Разреженные положительно определенные системы.....76
1.7. Исключение Гаусса и Ш-разложение..................83
1.8. Гауссово исключение с выбором главного элемента..107
1.9. Исключение Гаусса для разреженных матриц.........122
ГЛАВА 2. Чувствительность линейных систем;
влияние ошибок округления......................................127
2.1. Нормы векторов и матриц..........................127
2.2. Числа обусловленности............................136
2.3. Возмущение матрицы коэффициентов.................149
2.4. Апостериорный анализ ошибок с помощью невязок....153
2.5. Ошибки округления; обратная устойчивость.........156
2.6. Распространение ошибок округления
при исключении Гаусса.................................166
2.7. Обратный анализ ошибок для метода исключения Гаусса.175
2.8. Масштабирование..................................191
2.9. Покомпонентный анализ чувствительности...........196
ГЛАВА 3. Задача наименьших квадратов...........................202
3.1. Дискретная задача наименьших квадратов...........202
3.2. Ортогональные матрицы, вращения и отражения......206
3.3. Решение задачи наименьших квадратов..............233
3.4. Процедура Грама-Шмидта...........................242
3.5. Геометрический подход к задаче наименьших квадратов.261
3.6. Обновление ОЯ-разложения.........................271
ГЛАВА 4. Сингулярное разложение (SVD) .........................282
4.1. Введение.........................................282
4.2. Некоторые основные приложения сингулярных чисел..287
664
Оглавление
4.3. SVD и задача наименьших квадратов...................296
4.4. Чувствительность задачи наименьших квадратов........302
ГЛАВА 5. Собственные значения и собственные векторы I............311
5.1. Системы дифференциальных уравнений..................311
5.2. Основные результаты о собственных значениях
и собственных векторах...............................327
5.3. Степенной метод и некоторые простые разложения......336
5.4. Преобразования подобия..............................358
5.5. Приведение к форме Хессенберга
и к трехдиагональной форме............................ 373
5.6. ОЯ-алгоритм ........................................381
5.7. Реализация С?Я-алгоритма ...........................398
5.8. Использование ОЯ-алгоритма при вычислении
собственных векторов ................................420
5.9. Еще раз об SVD .....................................424
ГЛАВА 6. Собственные значения и собственные векторы II ...........442
6.1. Собственные и инвариантные подпространства..........442
6.2. Итерирование подпространства, одновременная итерация
и ОЯ-алгоритм........................................448
6.3. Собственные значения больших разреженных матриц, I.463
6.4. Собственные значения больших разреженных матриц, II.483
6.5. Чувствительность собственных значений
и собственных векторов................................495
6.6. Методы для симметричной задачи на собственные значения ...511
6.7. Обобщенная задача на собственные значения..........538
ГЛАВА 7. Итерационные методы для линейных систем..................558
7.1. Модельная задача....................................558
7.2. Классические итерационные методы....................568
7.3. Сходимость итерационных методов.....................583
7.4. Методы спуска; наискорейший спуск...................599
7.5. Предобусловливатели.................................611
7.6. Метод сопряженных градиентов........................617
7.7. Производная от CG-алгоритма.........................623
7.8. Сходимость CG-алгоритма.............................632
7.9. Методы Крыловского подпространства для неопределенных
и несимметричных задач...............................639
Дополнение...............................................646
Список литературы........................................647
Предметный указатель.................................... 652
Сокращения...............................................661
Указатель терминов MATLAB’a .............................662
Прикладная линейная алгебра — один из наиболее
быстро развивающихся разделов вычислительной
науки. Если говорить именно о вычислениях, то
основная их часть представляет собой решение
задач линейной алгебры — решение линейных
алгебраических систем и оценка спектров матриц.
Поэтому всем вычислителям в той или иной степе-
ни приходится иметь дело с матричными вычисле-
ниями.
Книга представляет несомненный интерес для
студентов и преподавателей вузов, а также для
широкого круга специалистов-практиков самых
разных направлений. Система примеров и упраж-
нений, приведенная в книге, позволяет читателю
приобрести реальные практические навыки в ис-
пользовании основных численных методов линей-
ной алгебры.
ISBN 5-94774-349-3