Дж. Деммель - Вычислительная линейная алгебра (1156793), страница 21
Текст из файла (страница 21)
Число операций с плавающей точкой равно 89 2.7. Специальные линейные системы или примерно половина того, что выполняется в гауссовом исключении. Подобно последнему, алгоритм Холесского может быть модифицирован так, что ббльшвя часть операций с плавающей точкой будет в нем производиться с помощью ВЬАЯ-подпрограмм уровня 3 (см. ЬАРАСК-программу вросгй). Для численной устойчивости алгоритма Холесского выбор главных элементов не является необходимым (по-другому, мы могли бы сказать, что алгоритм остается численно устойчивым при любом способе выбора главных элементов). Это можно показать следующим образом. Анализ, аналогичный анализу гауссова исключения в разд. 2.4.2, свидетельствует, что вычисленное решение х удовлетворяет системе (А + БА)х = Ь, где [ЬА[ < Зпс[Ь[ [Ьт[.
Согласно неравенству Коши — Шварца и утверждению 4 из предложения 2.2, и = ~/ап и. /а; < шах [аь [, и (2.16) поэтому [[[Ь[ [Ьт[[[, < о[[А[[, и [[БА[[, < Зпге[[А[[ 2.7.2. Симметричные незнакоопределенные матрицы 2.7.3. Ленточные матрицы Говорят, что А — ленточная матрица с нижней шириной Ьв и верхней шири- ной Ьи, если ай = 0 при ь ) у + Ьь или 1 < у — Ьи: аы ацьи+ь пг,ьи+г аь,+ьл пьь+г,г а„-Ьп,п ап, -Ьь ав и Естественным образом возникает вопрос, можно ли сэкономить половину времени и памяти при решении системы линейных уравнений с симметричной, но незнакоопределенной матрицей (т. е.
матрицей, не являющейся ни положительно определенной, ни отрицательно определенной). Оказывается, что это возможно, однако требуются более сложные разложение и схема выбора главных элементов. Можно показать, что для невырожденной матрицы А найдутся перестановка Р, нижняя унитреугольная матрица Ь и блочно-диагональная матрица Р с 1 х 1 и 2 х 2 диагональными блоками, такие, что РАРг = ЬЮЬт. Чтобы понять, почему в Р нужно допустить 2 х 2-блоки, достаточно рассмо- [О 11 треть матрицу ~ ~ .
Указанное разложение можно вычислить устойчиво, экономя при этом примерно половину работы и памяти по сравнению со стандартным гауссовым исключением. ЬАРАСК-подпрограмма, вычисляющая зто разложение, называется ввувн. Описание алгоритма дано в [44). Глава 2. Решение линейных уравнений Рис. 2.7. Ленточное 1А1-рэзложение без выбора главных элементов. Ленточные матрицы часто возникают в практических задачах (ниже будет приведен пример); эти матрицы имеет смысл выделить в отдельный класс, поскольку для них треугольные множители Е и У также являются «по существу ленточными», вследствие чего их вычисление и хранение удешевляются. Ниже мы объясним, что понимается под термином «по существу ленточные» матрицы. Однако вначале рассмотрим ЕС-разложение без выбора главных элементов и покажем, что Е и У суть ленточные матрицы в обычном смысле, причем они имеют те же ширины, что и А.
Предложение 2.3. Пусть А — лен«ночная матрица с низкней шириной Ьь и верхней шириной Ьп. Пусть разлоэкение А = И7 вычисляется без вьгбора главных элементов. Тогда Е имеет нижнюю ширину ленты Ьь, а П— верхнюю ширину ленты Ьп. Если Ьп и Ьь малы по сравнению с п, то Е и У можно вычислить приблизительно за 2п Ьп Ьь арифметических операций, при этом требуется память п(Ьс+ Ьп+ 1). Полная стоимость решения системы Ах = 6 составллет 2пЬп . Ьь + 2пЬп + 2пбь операций. Набросок доказательства. Достаточно проследить за одним шагом разложения (см.
рис. 2.7). На шаге у гауссова исключения закрашенная область пере- вычисляется путем вычитания произведения первого столбца и первой строки этой области; ширина ленты при этом не увеличивается. П Предложение 2.4. Пусть А — ленточная матрица с нижней шириной Ьь и верхней шириной Ьп. Тогда после нримепения к А гауссова исключения будут получены ленточная матрица У с верхней шириной лент»6 не превосходящей 6ь+ Ьп, и «по существу ленточная» матрица Е с и экней шириной ленты Ьь. Последнее означает, что в каждом столбце матрицы Е содержится не более чем Ьс + 1 ненулевых элементов; поэтому длл хранения Е достаточно 91 2.7. Специальные линейные системы "и'н Рис. 2.8.
Ленточное ЬП-раэложение с частичным выбором главных элементов. памлти таково же размера, как и длл ленточной зьатрицы с низкней шириной ленты Ьв. Набросок доказательства. Снова проиллюстрируем доказательство изображением области, изменяемой одним шагом алгоритма. Рис. 2.8 показывает, что (частичный) выбор главных элементов может увеличить верхнюю ширину ленты не более чем на Ьс. Последующие перестановки могут переупорядочить элементы ранее вычисленных столбцов, так что в Ь могут появиться элементы, лежащие ниже поддиагонали с номером Ьь. Однако никаких новых ненулевых элементов не появится, поэтому для хранения любого столбца в Ь по-прежнему будет требоваться Ьв слов.
П Гауссово исключение и алгоритм Холесского для ленточных матриц реализованы в ЬАРАСК'е (см., например, программы ввово и верен). Ленточные матрицы часто возникают при дискретизации физических задач с взаимодействиями между ближайшими узлами сетки (предполагается, что неизвестные упорядочены по строкам или по столбцам; см. еще пример 2.9 и рвзд.
6.3). Пример 2.8. Рассмотрим на отрезке ~а, Ь] обыкновенное дифференциальное уравнение (ОДУ) уп(х) — р(х)у'(х) — й(х)у(х) = г(х) с граничными условиями у(а) = о, у(Ь) = Д. Предположим еще, что д(х) > д > О. С помощью данного уравнения можно моделировать, например, распространение тепла в длинном тонком стержне. Чтобы решить дифференциальное уравнение численно, мы дискретизуем его, разыскивая решение лишь на сетке с равноотстоящими узлами х; = а+ И, 1 = О,..., Ф + 1, где 6 = (Ь вЂ” а)/(М + 1) есть шаг сетки. Положим р, = р(хе), г; = г(х,) и ве = д(хе). Нужно вывести уравнения, опре- 92 Глава 2.
Решение линейньгх уравнений деляющие желаемые приближения у; у(х,), где уо = о и уььгт, — — ~3. Для вывода уравнений заменим значение производной у'(х;) следующим конечнорагностным приближением: Уьэ-г Уь — ь 26 о,, Уь ы — 2уь + Уг-ь ьг (Более подробный вывод этого приближения дан в разд. 6.3.1 гл. 6.) Подставляя эти приближения в дифференциальное уравнение, получаем Уь ьь — 2уь+ Уь-1 У ч-ь — Уь-ь г 1 2Ь Запишем эти соотношения как систему линейных уравнений Ау = Ь, где ,ь= —,[ а1 — сь ьг аь — 1+ г Фь 1 г й Ь,=г 1+~р, с,= — 1 — -р) . 1 2 2 — Ь А= сн — Ьгь ам Заметим, что а; > О, а при достаточно малых Ь и Ь, > О, с, > О.
Для вектора у имеем несимметричную трехдиагональную систему уравнений. Покажем, как преобразовать ее в трехдиагональную же, но симметричную положительно определенную систему, для решения которой можно применить ленточный алгоритм Холесского. и о = ььь(ь,д,гь;..., . '*',*,*;;;*,";. ). г.ь Ау = Ь можно перейти к (РАР ')(.Ру) = РЬ, или Ау = Ь, где аь — иьсгЬг — ь/сьЬг аг ьг~сг Ьг — ьььсгЬг — ~/сьь ьЬььь аььь — ~/сь, Ьн Легко видеть, что А — симметричная матрица, имеющая те же собственные значения, что и А, поскольку А и А = РАР ' подобны. (Подробности см.
(Заметьте, что по мере уменьшения Ь правая часть приближает у'(х,) все бо- лее и более точно.) Аналогичным образом можно аппроксимировать вторую производную; 93 2.7. Специальные линейные системы в разд. 4.2 гл. 4.) Чтобы показать, что А еще и положительно определена, воспользуемся следующей теоремой. Теорема 2.9 (Гершгорин). Пусть  — произвольнал матрица.
Тогда все ее собственные значения принадлежат обвединению п кругов Доказательство. Пусть имеем Л и х ф О, такие, что Вх = Лх. Масштабируя х, если это необходимо, будем считать, что 1 = Ох9 = ха. Тогда 2, Ььдхд = Ж Ф Лхь = Л, поэтому Л вЂ” Ььа = ~ ь Ьг хы откуда выводим )Л вЂ” Ьы) < ~~~ ~Ььдх,~ < ~~~ )Ьгг!. Если Ь настолько мало, что ~ "-р, ~ < 1 для всех г, то Ьг Ьг ~ЬА+~,~ =- ~1+-р~+- ~1 — — р~ =1<1+ — 9<1+ — д, =,, 2~, 2',~ 21, 2 ) 2 — 2 Следовательно, все собственные значения матрицы А находятся в кругах радиуса 1 с центрами в точках 1 + Ьгдг/2 > 1+ Ьгу/2; в частности, все собственные значения имеют положительные вещественные части.
Поскольку А— симметричная матрица, ее собственные значения вещественны, а потому положительны; таким образом, А положительно определена. Ее наименьшее собственное значение ограничено снизу числом дЬг/2. Итак, система с матрицей А может быть решена алгоритмом Холесского.
Для решения симметричных положительно определенных трехдиагоиальных систем в 1 АРАСК'е имеется подпрограмма врвво. В разд. 4.3 мы снова воспользуемся теоремой Гершгорина, чтобы вычислить границы возмущений для собственных значений матрицы. О 2.7.4.