Введение в вычислительную математику

Численное решение систем линейных алгебраических уравнений

Разбить на страницы
Показывать лекцию целиком

К численному решению систем линейных алгебраических уравнений (СЛАУ) сводятся многие задачи математической физики. Математические модели, представляющие собой СЛАУ большой размерности, встречаются в математической экономике, биологии и т.п. Теория получения приближенных решений СЛАУ — часть вычислительной линейной алгебры. Сама вычислительная линейная алгебра, по-видимому, является наиболее обширной темой во всем курсе вычислительной математики. По прикладной линейной алгебре существует обширная литература (например, [2.1, 2.2, 2.3, 2.4, 2.5], а программы, реализующие наиболее популярные алгоритмы вычислительной линейной алгебры, являются неотъемлемой частью прикладного программного обеспечения, в частности, современных математических пакетов.

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

Рассмотрим СЛАУ вида

$$$ \mathbf{Au}= \mathbf{f},$$$

где $$\mathbf{A}$$ — невырожденная ( $$\det \mathbf{A}\ne 0$$ ) квадратная матрица размером n x n

$$\mathbf{A}= \left( \begin{array}{cccc} a_{11} a_{12} \ldots a_{1n}\\ a_{21} a_{22} \ldots a_{2n}\\ \ldots \ldots \ldots \ldots \\ a_{n1} a_{n2} \ldots a_{nn}\\ \end{array}\right),$$

$$\mathbf{u}={\{u_1, \ldots , u_n \}}^T$$ — вектор-столбец решения, $$\mathbf{f}={\{f_1, \ldots , f_n \}}^T$$ — вектор-столбец правой части.

Так как матрица системы — невырожденная, $$\Delta = \det\mathbf{A}\ne 0$$, то решение системы (2.1) существует и единственно.

Из курса линейной алгебры [2.6] известно правило Крамера нахождения решения. Так, каждый компонент вектора неизвестных может быть вычислен как

$$$ u_i = \frac{\Delta_i}{\Delta }, $$$

где $$\Delta _{i}$$ — определитель матрицы, получаемой из $$\mathbf{A}$$ заменой i столбца столбцом правых частей. Однако несложные арифметические оценки позволяют понять, что использование этой формулы приводит к неоправданно большим затратам машинного времени [2.3]. Так, например, если одно слагаемое в $$\Delta$$ вычисляется за 10 -6 с, то время расчета для n = 100 на существующих в момент написания книги компьютерах будет измеряться годами.

На самом деле в настоящее время с помощью компьютеров численно решаются СЛАУ намного более высокого порядка (примерно до $$n \approx 10^{6}$$ ). Такие решения осуществляются при помощи прямых или итерационных численных методов. Прямые методы позволяют в предположении отсутствия ошибок округления (при проведении расчетов на идеальном, т.е. бесконечноразрядном компьютере) получить точное решение задачи за конечное число арифметических действий Итерационные методы, или методы последовательных приближений, позволяют вычислить последовательность $$\{{\mathbf{u}}_k\}$$, сходящуюся к решению задач при $$k \to \infty$$ (на практике, разумеется, ограничиваются конечным k, в зависимости от требуемой точности).

Однако неточность в задании правых частей и элементов матрицы $$\mathbf{A}$$ может приводить к значительным погрешностям при вычислении решения (2.1). В первой лекции на примере было показано, что такое явление наблюдается в случае плохо обусловленной системы. Остановимся подробнее на важном вопросе оценки погрешности решения СЛАУ.

Для этого напомним некоторые сведения из функционального анализа, которые понадобятся в дальнейшем.

2.2. Согласованные нормы векторов и матриц

В векторном n -мерном линейном нормированном пространстве введем следующие нормы вектора:

кубическая:

$${\|\mathbf{u}\|}_1 = \max\limits_{1 \le i \le n}|u_i|,$$

октаэдрическая:

$${\|\mathbf{u}\|}_2 = \sum\limits_{i = 1}^n|u_i|,$$

евклидова (в комплексном случае — эрмитова):

$${\|\mathbf{u}\|}_3 ={\left(\sum\limits_{i = 1}^n{|u_i|}^2\right)}^{1/2}={(\mathbf{u}, \mathbf{u})}^{1/2}.$$

Рассмотрим квадратную матрицу $$\mathbf{A}$$ и связанное с ней линейное преобразование $$\mathbf{v}= \mathbf{Au}$$, где $$\mathbf{v}, \mathbf{u} \in L^n$$ ( Lnn -мерное линейное нормированное пространство). Норма матрицы определяется как действительное неотрицательное число, характеризующее это преобразование и определяющееся как

$$$ \|\mathbf{A}\|= \sup\limits_{\|\mathbf{u}\| \ne 0} \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}$$$

Укажем некоторые свойства нормы матрицы:

$$\begin{gather*} \|\mathbf{A + B}\|= \|\mathbf{A}\|+ \|\mathbf{B}\|, \\ \|\mathbf{\lambda A}\|=|\lambda| \|\mathbf{A}\|, \\ \|\mathbf{AB}\| \le \|\mathbf{A}\| \|\mathbf{B}\|, \\ \|\mathbf{A}\|= 0 \text{ тогда и только тогда, когда }\mathbf{A}= 0. \end{gather*}$$

Заметим, что норму матрицы (2.3) называют подчиненной норме вектора. Говорят, что норма матрицы $$\mathbf{A}$$ согласована с нормой вектора $$\mathbf{u}$$, если выполнено условие

$$\|\mathbf{Au}\| \le \|\mathbf{A}\|\|\mathbf{u}\|.$$

Нетрудно видеть, что подчиненная норма согласована с соответствующей метрикой векторного пространства. В самом деле

$$$ \|\mathbf{A}\|= \sup\limits_{\|\mathbf{u}\| \ne 0} \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}\ge \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}\mbox{ откуда }\|\mathbf{Au}\| \le \|\mathbf{A}\|\cdot \|\mathbf{u}\|. $$$

Согласованные с введенными выше нормами векторов нормы матриц будут определяться следующим образом:

$$\begin{gather*} {\|\mathbf{A}\|}_1 = \max\limits_{1 \le i \le n}\sum\limits_{j = 1}^n|a_{ij}|, \\ {\|\mathbf{A}\|}_2 = \max\limits_{1 \le j \le n}\sum\limits_{i = 1}^n{|a_{ij}|}, \\ {\|\mathbf{A}\|}_3 = \sqrt{\max\limits_{1 \le i \le n} \lambda^i (\mathbf{A}^* \cdot \mathbf{A})}. \end{gather*}$$

Покажем, как получается выражение для согласованной нормы матрицы $${\|\mathbf{A}\|}_1 $$, соответствующей норме вектора $${\|\mathbf{u}\|}_1.$$

Вычислим норму вектора $${\|\mathbf{Au}\|}_1$$:

$$\begin{multline*} {\|\mathbf{Au}\|}_1 = \max\limits_i \left|{\sum\limits_j{a_{ij}u_j}}\right| \le \max\limits_i (\sum\limits_j{|{a_{ij}}|}|{u_j}|) \le \\ \le (\max\limits_i \sum\limits_j{|{a_{ij}}|}) \max\limits_j|{u_j}| = (\max\limits_i \sum\limits_j{|{a_{ij}}|}){\|\mathbf{u}\|}_1 , \end{multline*}$$

откуда$$\frac{{\|\mathbf{Au}\|}_1}{{\|\mathbf{u}\|}_1}\le \max\limits_i \sum\limits_j |{a_{ij}}|.$$ По определению нормы матрицы как точной верхней грани отношения$$\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}, \max\limits_j \sum\limits_i{|{a_{ij}}|} = {\|\mathbf{A}\|}_1 ,$$ если существует вектор, на котором точная верхняя грань достигается.

Покажем, что таким вектором является, например,$${\mathbf{v}}_k = \{sign a_{k1}, \ldots , sign a_{kn}\}^T,$$ при этом допустим, что максимум в последнем неравенстве достигается при i = k.

Поскольку $$\|{\mathbf{v}}_k\|= k$$, то $$\sum\limits_j{a_{kj}v_j} = \sum\limits_j {|a_{kj}|} = \max\limits_i \sum\limits_j{|{a_{ij}}|}.$$

Тогда, в соответствии с выражением для первой нормы вектора, получаем

$$\|{\mathbf{Av}}\|}_1 = \max\limits_i \sum\limits_j{|{a_{ij}}|}.$$

Таким образом, точная верхняя грань в рассмотренном неравенстве достижима и действительно $${\|\mathbf{A}\|}_1 = \max \sum\limits_j{|{a_{ij}}|}.$$

Для третьей нормы (2.2в)$$$ {\|\mathbf{A}\|}_3 = \sup\limits_\mathbf{u}\frac{{\|\mathbf{Au}\|}_3}{{\|\mathbf{u}\|}_3}= \sup\limits_\mathbf{u} \sqrt{\frac{(\mathbf{Au,Au})}{(\mathbf{u,u})}}= \\ = \sup\limits_\mathbf{u}\sqrt{\frac{(\mathbf{A}^*\mathbf{Au,u})}{(\mathbf{u,u})}} $$$

Заметим, что матрица $$\mathbf{B}= \mathbf{A}^*\mathbf{A}$$ — симметричная. Без ограничения общности предположим, что все собственные числа матрицы различны. Матрица обладает всеми действительными собственными значениями, и каждому собственному числу соответствует собственный вектор. Все собственные векторы взаимно ортогональны. Можно рассмотреть ортонормированную систему собственных векторов $$\omega _{1}, \dots , \omega _{n}; \lambda _{1}, \dots , \lambda _{n}$$ — соответствующие им собственные значения. Любой вектор $$\mathbf{u}$$ можно представить в виде своего разложения по базису из собственных векторов: $$\sum\limits_i{\xi_i\omega_i}.$$ Кроме того, $$(\mathbf{A}^*\mathbf{A})\omega_i = \lambda_i \omega_i.$$ Поэтому

$$$ \sup\limits_{\|\mathbf{u}\| \ne 0}\sqrt{\frac{(\mathbf{A}^* \mathbf{Au,Au})}{(\mathbf{u,u})}} = \sup\limits_{\|\mathbf{u}\| \ne 0}\sqrt{\sum\limits_i \frac{(\lambda_i\xi_i \omega_i, \xi_i \omega_i)}{(\xi_i\omega_i, \xi_i\omega_i)}} = \\ = \sup\limits_{\|\mathbf{u}\| \ne 0}\sqrt{\frac{\sum \lambda_i{\xi}^2_i}{\sum {\xi}^2_i}} = \sqrt{\max \lambda_i (\mathbf{A}^* \mathbf{A})}, $$$

причем точная верхняя грань достигается при $$\mathbf{u}= \omega_i.$$ Действительно,

$$$ \sup\limits_u \sqrt{\frac{(\mathbf{A}^* \mathbf{A}\omega_i, \omega_i)}{(\omega_i, \omega_i)}} = \sup\limits_u \sqrt{\lambda^i (\mathbf{A}^*\mathbf{A})} = \sqrt{\max\limits_i {\lambda_i (\mathbf{A}^* \mathbf{A})}}, $$$

т.к. $$\mathbf{A}^*\mathbf{A}\omega_i = \lambda_i \omega_i$$, откуда $$(\mathbf{A}^* \mathbf{A}\omega_i, \omega_i) = \lambda_i (\omega_i, \omega_i)$$,

$$$ \frac{(\mathbf{A}^*\mathbf{A}\omega_i, \omega_i)}{(\omega_i, \omega_i)} = \lambda_i. $$$

В важном частном случае симметричной (самосопряженной) матрицы $$\mathbf{A}$$ имеем $$\lambda_{\mathbf{A}^* \mathbf{A}}^i = \lambda_{{\mathbf{A}}^2}^i = {|{\lambda_{\mathbf{A}}^i}|}^2$$, поэтому $${\|\mathbf{A}\|}_3 = \max\limits_i |{\lambda_{\mathbf{A}}^i}|.$$

2.3. Обусловленность СЛАУ. Число обусловленности матрицы

Понятия согласованных норм матриц и векторов позволяют оценить погрешности, возникающие при численном решении СЛАУ. Пусть и матрица, и правая часть системы заданы с некоторой погрешностью, тогда наряду с системой

$$\mathbf{Au}= \mathbf{f}$$

рассматривается система

$$(\mathbf{A}+ \Delta\mathbf{A})(\mathbf{u}+ \Delta\mathbf{u}) = \mathbf{f}+ \Delta\mathbf{f}.$$

Теорема. Пусть правая часть и невырожденная матрица СЛАУ (2.4) вида $$\mathbf{Au}= \mathbf{f}, \mathbf{u} \in L^n, \mathbf{f} \in L^n$$, получили приращения $$\Delta\mathbf{f}$$ и $$\Delta\mathbf{A}$$ соответственно. Пусть существует обратная матрица $$\mathbf{A}^{-1}$$ и выполнены условия $$$ \|\mathbf{A}\| \ne 0, \mu \frac{\|\mathbf{\Delta A}\|}{\|\mathbf{A}\|}< 1 $$$, где $$\mu = \|\mathbf{A}\| \cdot \left\|{\mathbf{A}^{- 1}}\right\| .$$ В этом случае оценка относительной погрешности решения $$\|{\Delta\mathbf{u}}\|/\|\mathbf{u}\|$$ удовлетворяет неравенству

$$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \frac{\mu} {1 - \mu \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}} \left({\frac{\|\Delta \mathbf{f}\|}{\|\mathbf{f}\|}+ \frac{\|\Delta\mathbf{A}\|} {\|\mathbf{A}\|}}\right). $$$

Доказательство.

Из (2.5) следует, что $$\Delta\mathbf{u} = {\mathbf{A}}^{- 1}(\Delta\mathbf{f}- \Delta\mathbf{A} \mathbf{u}- \Delta\mathbf{A} \Delta\mathbf{u}).$$ Переходя в этом равенстве к норме и использовав неравенство треугольника, получаем

$$$ \|{\Delta\mathbf{u}}\| \le \left\|{\mathbf{A}^{- 1}}\right\| \|{\Delta\mathbf{f}}\| + \left\|{\mathbf{A}^{- 1}}\right\| \|{\Delta\mathbf{A}}\| \|\mathbf{u}\| + \left\|{\mathbf{A}^{- 1}}\right\| \|{\Delta\mathbf{A}}\| \|{\Delta\mathbf{u}}\| , \mbox{ или } \\ \|{\Delta\mathbf{u}}\| \le \left\|{\mathbf{A}^{- 1}}\| \frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} \|\mathbf{f}\| + \left\|{\mathbf{A}^{- 1}}\right\| \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|} \|\mathbf{A}\| \|\mathbf{u}\| + \left\|{\mathbf{A}^{- 1}}\right\| \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|} \|\Delta\mathbf{u}\|. $$$

Вводя обозначение $$\mu (\mathbf{A}) = \left\|{\mathbf{A}^{- 1}}\right\| \cdot \|\mathbf{A}\|$$, перепишем последнее равенство в виде

$$$ \|\Delta\mathbf{u}\| \left(1 - \mu \frac{\|\Delta\mathbf{A}\|} {\|\mathbf{A}\|}\right) \le \mu \frac{\|\Delta \mathbf{f}\|}{\|\mathbf{f}\|} \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} + \mu \cdot \frac{\|\Delta \mathbf{A}\|} {\|\mathbf{A}\|} \|\mathbf{u}\| \le \\ \le \mu \frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} \|\mathbf{u}\| + \mu \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|} \|\mathbf{u}\| = \mu \left(\frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} + \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}\right) \|\mathbf{u}\| . $$$

Заметим, что $$$ \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} \le \|\mathbf{u}\| $$$ т.к. $$\|\mathbf{f}\| = \|\mathbf{Au}\| \le \|\mathbf{A}\| \cdot \|\mathbf{u}\|.$$

Тогда для оценки относительной погрешности решения окончательно получим

$$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \frac{\mu} {1 - \mu \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}} (\frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} + \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}). $$$

При $$\Delta A \approx 0$$ получаем оценку при наличии погрешности только правых частей

$$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \mu \frac{\|\mathbf{\Delta f}\|}{\|\mathbf{f}\|},$$$

если в (2.5) положить $$\Delta\mathbf{A} \cdot \Delta \mathbf{u} \approx 0$$, то

$$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \mu (\frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} + \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}). $$$

В результате получено важное соотношение, показывающее, на сколько возрастают относительные ошибки решения СЛАУ в случае наличия относительных ошибок при задании правых частей и элементов матриц.

Величина

$$\mu (\mathbf{A}) = \left\|{\mathbf{A}^{- 1}}\right\| \|\mathbf{A}\|}$$

называется числом обусловленности матрицы $$\mathbf{A}.$$ Число обусловленности определяет, насколько погрешность входных данных может повлиять на решение системы (2.1) . Почти очевидно, что всегда $$\mu \ge 1.$$ Действительно

$$1 = \|\mathbf{E}\| = \left\|{\mathbf{A^{-1}A}}\right\| \le \left\|\mathbf{A^{-1}}\right\| \|\mathbf{A}\| = \mu.$$

При $$\mu \approx 1 \div 10$$ ошибки входных данных слабо сказываются на решении и система (2.1) считается хорошо обусловленной. При $$\mu > > 10^{2} \div 10^{3}$$ система является плохо обусловленной.

Пример. Решением системы

$$\left\{ \begin{array}{l} 100u + 99v = 199 \\ 99u + 98v = 197 \\ \end{array} \right.$$

будет пара чисел u = v = 1.

Внесем возмущение в правые части системы:

$$\left\{ \begin{array}{l} 100u + 99v = 198,99 \\ 99u + 98v = 197,01. \\ \end{array} \right.$$

При этом решение заметно изменится: u = 2,97; v = -0,99. Воспользовавшись выбранными согласованными нормами, получим

$$\begin{gather*} {\|\mathbf{f}\|}_1 = 199,\quad {\|\Delta\mathbf{f}\|}_1 = 10^{- 2}, \\ \delta f = \frac{{\|\Delta\mathbf{f}\|}_1}{{\|\mathbf{f}\|}_1} \approx 0,5 \cdot 10^{- 4} \mbox{ (это очень малая величина),} \\ {\|\mathbf{A}\|}_1 = {\left\|\mathbf{A}^{- 1}\right\|}_1 = 199, \mu = 199 \cdot 199 \approx 4 \cdot 10^4 . \end{gather*} $$

Значит, $$$ \delta u = \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \mu \frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} \approx 4 \cdot 10^4 \cdot \frac{10^{- 4}}{2}= 2 $$$, что согласуется с результатами решения возмущенной и невозмущенной задач. Для невозмущенной задачи $$\|\Delta\mathbf{u}\| \approx 2$$, $$\|\mathbf{u}\| = 1.$$

Рассмотрим еще одно важное свойство. Число обусловленности матрицы, как было показано ранее, можно определить, как $$\delta u/\delta f \le \mu (\mathbf{A})$$, если $$\Delta\mathbf{A} \approx {\mathbf0}$$ при $$$ \delta u = \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|}$.$$ Можно ли найти более тонкую оценку отношения $$\delta u/\delta f$$, учитывающую зависимость обусловленности СЛАУ от выбора правых частей? В этом случае параметр обусловленности системы, вообще говоря, зависит и от $$\mathbf{f}$$, и от $$\Delta \mathbf{f}$$, и удовлетворяет неравенству $$$ \nu(\mathbf{f},\Delta\mathbf{f}) \ge \frac{\delta u}{\delta f} = \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \cdot \frac{\|\mathbf{f}\|} {\|\Delta\mathbf{f}\|} $.$$ Его можно определить как точную верхнюю грань отношения $$$ \frac{\delta u}{\delta f}$$$ по $$\Delta \mathbf{f}$$, что соответствует наихудшей ситуации. Тогда

$$$ \nu (\mathbf{f}) = \sup\limits_{\Delta\mathbf{f}} \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \frac{\|\mathbf{f}\|}{\|\Delta\mathbf{f}\|} = \sup\limits_{\Delta\mathbf{f}} \frac{\|\mathbf{f}\|}{\|\mathbf{u} \|} \frac{\|\Delta\mathbf{u}\|}{\|\Delta\mathbf{f}\|} = \\ = \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \sup\limits_{\Delta\mathbf{f}} \frac{\left\|\mathbf{A}^{- 1}\Delta\mathbf{f}\right\|}{\|\Delta\mathbf{f}\|} = \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \left\|{\mathbf{A}^{- 1}}\right\| . $$$

Далее,

$$$ \sup\limits_\mathbf{f} \left\|{\mathbf{A}^{- 1}}\right\| \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} = \left\|{\mathbf{A}^{- 1}}\right\| \cdot \sup\limits_\mathbf{f} \frac{\|A\mathbf{u}\|}{\|\mathbf{u}\|} = \left\|{\mathbf{A}^{- 1}}\right\| \cdot \|\mathbf{A}\| = \mu (\mathbf{A}), $$$

с другой стороны

$$$ \inf\limits_\mathbf{f}\nu (\mathbf{f}) = \inf\limits_\mathbf{f} \left\|{\mathbf{A}^{- 1}}\right\| \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} = \inf\limits_\mathbf{f} \left\|{\mathbf{A}^{- 1}}\right\| \sup\limits_\mathbf{f} {\left(\frac{\|\mathbf{u}\|}{\|\mathbf{f}\|}\right)}^{- 1} = \\ = \left\|{\mathbf{A}^{- 1}}\right\| {\left(\sup\limits_\mathbf{f}\frac{\left\|{\mathbf{A}^{- 1}\mathbf{f}}\right\|}{\|\mathbf{f}\|}\right)}^{- 1} = 1.$$$

Параметр $$\nu (\mathbf{f})$$, характеризующий обусловленность системы, зависит от правых частей. Более тонкая его оценка есть $$$ \nu (\mathbf{f}) = \left\|{\mathbf{A}^{- 1}}\right\| \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|}$$$, причем $$1 \le \nu (\mathbf{f}) \le \mu .$$ Так как такую оценку провести не всегда возможно, то чаще используется точная верхняя грань $$\left\|{\mathbf{A}^{- 1}} \right\| \|\mathbf{A}\|.$$ Такая оценка, конечно, может быть существенно завышенной.

Можно также показать, что для симметричной матрицы $$\mathbf{A}$$ имеет место $$\mu = \left|{\max\limits_k \lambda_{\mathbf{A}}^k}\right| / \left|{\min\limits_k \lambda_{\mathbf{A}}^k}\right\|$$, т.е. обусловленность СЛАУ зависит от ее спектральных свойств. Это следует из определения третьей нормы матрицы $${\|\mathbf{A}\|}_3 = \left|{\max\limits_k \lambda_{\mathbf{A}}^k}\right|$$ и соотношения $${\left\|{\mathbf{A}^{- 1}}\right\|}_3 = {\left|{\min\limits_k \lambda_{\mathbf{A}}^k}\right|}^{- 1}$$, которое предлагается доказать самостоятельно.

2.4. Прямые методы решения СЛАУ

Трудность численного решения рассматриваемых СЛАУ определяется видом матрицы $$\mathbf{A}.$$ Легко получается решение системы с диагональной матрицей, в этом случае система распадается на n линейных уравнений, каждое из которых содержит лишь одну неизвестную величину. Для диагональной системы очевидны явные формулы

$$u_{k}= f_{k}/ a_{kk}, k = 1 \div n.$$

В случае треугольной матрицы

$$\mathbf{A}= \left( \begin{array}{cccc} a_{11} a_{12} \ldots a_{1n} \\ 0 a_{22} \ldots a_{2n} \\ \ldots \ldots \ldots \ldots \\ 0 0 \ldots a_{nn} \end{array} \right)$$

из последнего уравнения получаем $$u_n = f_n /a_{nn}, (a_{ii} \ne 0 \mbox{, т.к. } \Delta =\det \mathbf{A} \ne 0).$$

Решая систему линейных уравнений с треугольной матрицей "снизу вверх", для uk имеем

$$$ u_k= \frac{1}{a_{kk}}(f_k- a_{kn}u_n - a_{k,n- 1}u_{n - 1} - \ldots - a_{k,k + 1}u_{k + 1}), \\ \mbox{или }u_k= a_{kk}^{- 1}(f_k - \sum\limits_{j = k + 1}^n{a_{kj}u_j}),\quad k = n - 1, n - 2, \ldots , 1. $$$

Можно оценить количество арифметических действий, затрачиваемых на решение такой системы. Оно составляет O(n2) .

Пусть теперь система уравнений имеет матрицу общего вида. Стандартная схема такого решения разделяется на два этапа: прямой ход — приведение матрицы к треугольному виду, и обратный — вычисление решения системы.

2.4.1. Метод исключения Гаусса

Рассматривается система уравнений

$$\left\{ \begin{array}{ccc} {a_{11}u_1 + a_{12}u_2 + \ldots + a_{1n}u_n = f_1 ,} \\ {a_{21}u_1 + a_{22}u_2 + \ldots + a_{2n}u_n = f_2 ,} \\ \ldots \\ {a_{n1}u_1 + a_{n2}u_2 + \ldots + a_{nn}u_n = f_n .} \\ \end{array} \right.$$

Прямой ход метода Гаусса состоит в следующем. Положим, что $$a_{11} \ne 0$$ и исключим u1 из всех уравнений, начиная со второго, для чего ко второму уравнению прибавим первое, умноженное на $$-a_{21}/a_{11} = - \eta _{21}$$, к третьему прибавим первое, умноженное на $$-a_{31}/a_{11} = - \eta _{31}$$ и т.д. После этих преобразований получим эквивалентную систему:

$$\left\{ \begin{array}{l} {a_{11}u_1 + a_{12}u_2 + \ldots + a_{1n}u_n = f_1 ,} \\ {a_{22}^1{u_2} + \ldots + a_{2n}^1{u_n} = f_2 ^1 ,} \\ \ldots \\ {a_{n2}^1{u_2} + \ldots + a_{nn}^1{u_n} = f_n^1 ,} \\ \end{array} \right.$$

в которой коэффициенты и правые части определяются следующим образом:

$$a_{ij}^1 = a_{ij}- \eta_{i1}a_{1j};\quad f_i^1 = f_i - \eta_{i1}f_1;\quad i,j = 2, \ldots , n.$$

Теперь положим $$a_{22}^1 \ne 0.$$ Аналогично, вычислив множители второго шага $$- a_{i2}^1/a_{22}^1 = -\eta_{i2}\quad (i = 3, \ldots , n)$$, исключаем u2 из последних (n - 2) уравнений системы (2.17). В результате преобразований получим новую эквивалентную систему уравнений

$$\left\{ \begin{array}{l} {a_{11}u_1 + a_{12}u_2 + a_{13}u_3 + \ldots + a_{1n}u_n = f_1} \\ {a_{22}^1 u_2 + a_{23}^1 u_3 + \ldots + a_{2n}^1 u_n = f_2^1} \\ {a_{33}^2 u_3 + \ldots + a_{3n}^2 u_n = f_3^2} \\ \ldots \\ {a_{n3}^2 u_3 + \ldots + a_{nn}^2 u_n = f_n^2} \\ \end{array} \right.$$

в которой $$a_{ij}^2 = a_{ij}^1 - \eta_{i2}a_{2j}^1;\quad f_i^2 = f_i^1 - \eta_{i2}f_2^1;\quad i,j = 3, \ldots , n.$$ Продолжая алгоритм, т.е. исключая ui (i = k + 1, ..., n), приходим на n - 1 шаге к системе с треугольной матрицей

$$\left\{ \begin{array}{l} a_{11}u_1 + a_{12}u_2 + a_{13}u_3 + \ldots + a_{1n}u_n = f_1 \\ a_{22}^1 u_2 + a_{23}^1 u_3 + \ldots + a_{2n}^1 u_n = f_2^1 \\ a_{33}^2 u_3 + \ldots + a_{3n}^2 u_n = f_3^2 \\ \ldots \\ a_{nn}^{(n - 1)}u_n = f_n^{(n - 1)}. \\ \end{array} \right.$$

Обратный ход метода Гаусса позволяет определить решение системы линейных уравнений. Из последнего уравнения системы находим un ; подставляем это значение в предпоследнее уравнение, получим un-1. Поступая так и далее, последовательно находим un-2, un-3, ..., u1. Вычисления компонент вектора решения проводятся по формулам

$$\begin{gather*} u_n = f_n^{(n - 1)}/a_{nn}^{(n - 1)}, \\ \ldots \\ u_k = \frac{1}{a_{kk}^{(k - 1)}}(f_k^{(k - 1)}- a_{k,k + 1}^{(k - 1)}u_{k + 1}- \ldots - a_{kn}^{(k - 1)}u_n ),\quad k = n - 1, n - 2, \ldots , 1, \\ \ldots \\ u_2 = \frac{1}{a_{22}^1}(f_2^1 - a_{23}^1 u_3 - \ldots - a_{2n}^1 u_n ), \\ u_1 = \frac{1}{a_{11}}(f_1 - a_{12}u_2 - \ldots - a_{1n}u_n ). \end{gather*} $$

Этот алгоритм прост и легко реализуем при условии, что $$a_{11} \ne 0$$, $$a_{22} \ne 0$$ и т.д. Количество арифметических действий прямого хода $$\approx 2/3n^{3}$$, обратного $$\approx n^{2}.$$ Это уже приемлемая для современных компьютеров величина.

Рассмотрим метод Гаусса с позиции операций с матрицами. Пусть $${\mathbf{A}}_1$$ — матрица системы после исключения первого неизвестного

$${\mathbf{A_1}}_1 = \left( \begin{array}{ccccc} a_{11} a_{12} a_{13} \ldots a_{1n}\\ 0 a^1_{22} a^1_{23} \ldots a^1_{2n}\\ 0 a^1_{32} a^1_{33} \ldots a^1_{3n}\\ \ldots \ldots \ldots \ldots \ldots \\ 0 a^1_{n2} a^1_{n3} \ldots a^1_nn \\ \end{array} \right),\quad {\mathbf{f}}_1 = {\{f_1, f_2^1, \ldots , f_n^1\}}^T.$$

Введем новую матрицу

$${\mathbf{N}}_1 = \left(\begin{array}{ccccc} 1 0 0 \ldots 0 \\ - \eta_{21} 1 0 \ldots 0 \\ - \eta_{31} 0 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ - \eta_{n1} 0 0 \ldots 1 \\ \end{array} \right).$$

Очевидно, $${\mathbf{A}}_1={\mathbf{N}}_1\mathbf{A}$$, $${\mathbf{f}}_1={\mathbf{N}}_1\mathbf{f}.$$ Аналогично, после второго шага система приводится к виду $${\mathbf{A}}_2\mathbf{u}={\mathbf{f}}_2$$, где $${\mathbf{A}}_2={\mathbf{N}}_2{\mathbf{A}}_1$$, $${\mathbf{f}}_2={\mathbf{N}}_2{\mathbf{f}}_1$$,

$${\mathbf{A}}_1 = \left( \begin{array}{ccccc} a_{11} a_{12} a_{13} \ldots a_{1n} \\ 0 a_{22}^1 a_{23}^1 \ldots a_{2n}^1 \\ 0 0 a_{33}^2 \ldots a_{3n}^2 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 a_{n3}^2 \ldots a_{nn}^2 \\ \end{array} \right), \quad {\mathbf{N}}_2 = \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ 0 1 0 \ldots 0 \\ 0 - \eta_{32} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 - \eta_{n2} 0 \ldots 1 \\ \end{array} \right), \\ {{\mathbf{f}}_2} = \left\{{f_1, f_2^1, f_3^2, \ldots , f_n^2}\right\}^T.$$

После n - 1 шага получим $${\mathbf{A}}_{n - 1}\mathbf{u} = {\mathbf{f}}_{n - 1}, {\mathbf{A}}_{n - 1} = {\mathbf{N}}_{n - 1} \cdot {\mathbf{A}}_{n - 2}, {\mathbf{f}}_{n - 1} = {\mathbf{N}}_{n - 1}{\mathbf{f}}_{n - 2}$$,

$${\mathbf{A}}_{n - 1}= \left( \begin{array}{ccccc} a_{11} a_{12} a_{13} \ldots a_{1n} \\ 0 a_{22}^1 a_{23}^1 \ldots a_{2n}^1 \\ 0 0 a_{33}^2 \ldots a_{3n}^2 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 0 \ldots a_{nn}^{(n - 1)} \\ \end{array} \right), \\ {\mathbf{N}}_{n - 1}= \left( \begin{array}{ccccc} 1 0 \ldots 0 0 \\ 0 1 \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots 1 0 \\ 0 0 \ldots - \eta_{n,n}- 1} 1 \\ \end{array} \right),\quad {\mathbf{f}}_{n - 1}= \{f_1, f_2^1, f_3^2, \ldots , f_n^{n - 1}\}^T.$$

В итоге получаются матрица и вектор $${\mathbf{A}}_{n - 1} = {\mathbf{N}}_{n - 1} \ldots {\mathbf{N}}_2{\mathbf{N}}_1\mathbf{A}$$, $${\mathbf{f}}_{(n - 1)} = {\mathbf{N}}_{n - 1} \ldots {\mathbf{N}}_2{\mathbf{N}}_1\mathbf{f}$$, откуда $$\mathbf{A}={\mathbf{N}}_1^{- 1}{\mathbf{N}}_2^{- 1} \ldots {\mathbf{N}}_{n - 1}^{- 1} \cdot {\mathbf{A}}_{n - 1}.$$ При этом

$${\mathbf{N}}_1^{- 1}= \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ \eta_{21} 1 0 \ldots 0 \\ \eta_{31} 0 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ \eta_{n1} 0 0 \ldots 1 \\ \end{array} \right),\quad {\mathbf{N}}_2^{- 1}= \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ 0 1 0 \ldots 0 \\ 0 \eta_{32} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 \eta_{n2} 0 \ldots 1 \\ \end{array} \right), \\ {\mathbf{N}}_{n - 1}^{- 1}= \left( \begin{array}{ccccc} 1 0 \ldots 0 0 \\ 0 1 \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots 1 0 \\ 0 0 \ldots \eta_{n,n}- 1} 1 \\ \end{array} \right).$$

После введения обозначений $$\mathbf{U} = {\mathbf{A}}_{n - 1}$$, $$\mathbf{L} = {\mathbf{N}}_1^{- 1}{\mathbf{N}}_2^{- 1} \ldots {\mathbf{N}}_{n - 1}^{- 1}$$, где

$$\mathbf{L} = \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ \eta_{21} 1 0 \ldots 0 \\ \eta_{31} \eta_{32} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ \eta_{n1} \eta_{n2} \eta_{n3} \ldots 1 \\ \end{array} \right),$$

получим $$\mathbf{A} = \mathbf{LU}.$$

Это представление матрицы $$\mathbf{A}$$ называется LU-разложением (на произведение нижней и верхней треугольных матриц $$\mathbf{L}$$ и $$\mathbf{U}$$ ). Прямой ход метода Гаусса можно рассматривать как один из вариантов представления матрицы в виде произведения двух треугольных матриц, или LU-разложения. Его можно провести и другими способами.

Вспомним "отрицательный" пример из лекции 1. Пусть необходимо решить систему

$$\begin{gather*} -10^{- 7}u_1 + u_2 = 1, \\ u_1 + 2u_2 = 4. \end{gather*}$$

Исключая u1 из первого уравнения и подставляя во второе, получим u2 = (107 + 4)/(107 + 2). После вычислений с семью значащими цифрами получаем u1 = 0,000000, u2 = 1,000000, что неверно (см. второе уравнение). Теперь исключим u1 из второго уравнения и подставим в первое. При этом получим $$$ u_2 = \frac{1 + 4 \cdot 10^{- 7}}{1 + 2 \cdot 10^{- 7}} $.$$ После вычислений с той же точностью имеем: u2 = 1,000000, u1 = 2,000000, что является правильным решением (с заданным количеством значащих цифр).

В реальных вычислениях используются методы с выбором главного (или ведущего ) элемента. Выбор главного элемента по столбцам реализуется следующим образом: перед исключением u1 отыскивается $$\max\limits_i|{a_{i1}}|.$$ Пусть максимум достигается при i = k. В этом случае меняются местами первое и k уравнения (или в матрице меняются местами две строки) и реализуется процедура исключения.

Затем отыскивается $$\max\limits_i|{a_{i2}^1}|$$, и процедура поиска главного элемента в столбцах повторяется. Так же реализуется выбор главного элемента по строкам: перед исключением u1 отыскивается $$\max\limits_j|{a_{kj}}|.$$ Если максимум достигается при i = k, то у u1 и uk меняются номера, то есть максимальный элемент из коэффициентов первого уравнения окажется на месте a11, и т.д. Наиболее эффективным является метод Гаусса с выбором главного элемента по всей матрице. Во многих методах важным является условие диагонального преобладания$$|{a_{ii}}| \ge \sum\limits_{\substack{j = 1 \\ j \ne i}}^n{|{a_{ij}}|}$$ для i = 1, ..., n, при выполнении которого проблемы, появляющиеся в методе Гаусса, не возникают. Если для всех строк матрицы выполняются строгие неравенства, то говорят о строгом диагональном преобладании.

Полученное решение можно улучшить следующим образом. Пусть $${\mathbf{r}}^1 = \mathbf{f} - {\mathbf{Au}}^1$$ есть невязка, допущенная при решении рассматриваемой системы ( $${\mathbf{u}}^1$$ — полученное численное решение) за счет ошибки округлений. Очевидно, что погрешность $${\mathbf{\varepsilon}}^1 = \mathbf{u} - {\mathbf{u}}^1$$ удовлетворяет СЛАУ $${\mathbf{A\varepsilon}}^1 = {\mathbf{r}}^1$$, так как $${\mathbf{A\varepsilon}}^1 = \mathbf{Au} - {\mathbf{Au}}^1 = \mathbf{f}- {\mathbf{Au}}^1.$$

Решив последнюю систему, получаем $$\mathbf{\varepsilon}^1$$, после чего уточняем решение:

$${\mathbf{u}}^2 = {\mathbf{u}}^1 + {\mathbf{\varepsilon }}^1.$$

Эту процедуру можно продолжить.

2.4.2. Модификация метода Гаусса для случая линейных систем с трехдиагональными матрицами — метод прогонки

В приложениях часто возникают системы линейных уравнений с матрицами специального вида. В дальнейшем, например, при интерполяции функции сплайнами, при решении задачи Штурма-Лиувилля, при численном решении уравнений теплопроводности, уравнений Лапласа и Пуассона придется иметь дело с системами, матрицы которых имеют ненулевые элементы лишь на главной диагонали и еще на двух диагоналях — одной под главной, одной над главной. Такие матрицы называются трехдиагональными. Для решения систем с трехдиагональными матрицами существует экономичный (требующий малого количества памяти и арифметических действий) вариант метода Гауссапрогонка. В англоязычной литературе метод прогонки называется алгоритмом Томаса. Подробнее о свойствах метода прогонки речь пойдет в лекции 10 в связи с решением разностными методами задачи Штурма-Лиувилля.

2.4.3. LU-разложение

Среди прямых методов численного решения СЛАУ широко используется также LU-разложение матрицы $$\mathbf{A}$$ и метод Холецкого (или метод квадратного корня).

Если матрица $$\mathbf{A}$$ представима в виде произведений матриц $$\mathbf{LU}$$, то СЛАУ может быть представлена в виде

$$(\mathbf{LU})\mathbf{u} = \mathbf{f}.$$

Перепишем (2.13), вводя вспомогательный вектор $$\mathbf{v}$$, в следующем виде

$$\mathbf{Lv} = \mathbf{f},\quad \mathbf{Uu} = \mathbf{v}.$$

Решение СЛАУ свелось к последовательному решению двух систем с треугольными матрицами. Первый этап решения системы $$\mathbf{Lv} = \mathbf{f}$$:

$$\left\{ \begin{array}{l} v_1 = f_1 , \\ l_{21}v_1 + v_2 = f_2 , \\ \ldots \\ l_{n1}v_1 + l_{n2}v_2 + \ldots + l_{n,n - 1}v_{n - 1}+ v_n = f_n , \\ \end{array} \right.$$

откуда можно вычислить все vk последовательно по формулам

$$v_k = f_k - \sum\limits_{j = 1}^{k - 1}{l_{kj}v_j};\quad k = 2, \ldots , n.$$

Далее рассмотрим систему $$\mathbf{Uu} = \mathbf{v}$$ или

$$\left\{ \begin{array}{l} d_{11}u_1 + d_2 u_2 + \ldots + d_{1n} u_n = v_1 , \\ d_{22}u_2 + \ldots + d_{2n} u_n = v_2 , \\ \ldots \\ d_{nn}u_n = v_n , \\ \end{array} \right.$$

решение которой находится в обратном порядке, т.е. при k = n - 1, ..., 1 по очевидным формулам $$u_k = d_{kk}^{- 1}(v_k - \sum\limits_{j = k + 1}^n{d_{kj}u_j )}.$$ Условия существования такого разложения даются следующей теоремой [2.5] (без доказательства).

Теорема. Если все главные миноры квадратной матрицы $$\mathbf{A}$$ отличны от нуля, то существуют единственные нижняя и верхняя треугольные матрицы $$\mathbf{L} = l_{ij}$$ и $$\mathbf{U} = d_{ij}$$ такие, что $$\mathbf{A}= \mathbf{LU}.$$ При этом все диагональные коэффициенты матрицы $$\mathbf{L}$$ фиксированы и равны единице.

Опишем алгоритм нахождения элементов lijdij матриц $$\mathbf{L}, \mathbf{U}.$$ Выписав равенство $$\mathbf{A} = \mathbf{LU}$$ в компонентах, получим

$$\left( \begin{array}{cccc} a_{11} a_{12} \ldots a_{1n} \\ a_{21} a_{22} \ldots a_{2n} \\ \ldots \ldots \ldots \ldots \\ a_{n1} a_{n2} \ldots a_{nn} \\ \end{array} \right) = \left( \begin{array}{cccc} 1 0 \ldots 0 \\ l_{21} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \\ l_{n1} l_{n2} \ldots 1 \\ \end{array} \right) \left( \begin{array}{cccc} d_{11} d_{12} \ldots d_{1n} \\ 0 d_{22} \ldots d_{2n} \\ \ldots \ldots \ldots \ldots \\ 0 0 \ldots d_{nn} \\ \end{array} \right) $$

Выполнив умножение матриц, приходим к системе линейных уравнений размером n x n:

$$\begin{gather*} d_{11} = a_{11}, d_{12}= a_{12}, \ldots , d_{1n} = a_{1n}, \\ l_{21}d_{11} = a_{21}, l_{21}d_{12}+ d_{22} = a_{22}, \ldots , l_{21}d_{1n}+ d_{2n} = a_{2n}, \\ \ldots \\ l_{n1}d_{11} = a_{n1}, l_{n1}d_{12} + l_{n2}d_{22} = a_{n2}, \ldots , l_{n1}d_{1n} + \ldots + l_{n,n-1}d_{n-1,n} + d_{nn} = a_{nn} \end{gather*}$$

относительно неизвестных d11, d12, ..., d1n, l21, d22, ..., d2n, ln1, ln2, ..., dnn.

Специфика этой системы позволяет решить ее последовательно. Из первой строки находим d1j= a1j(j = 1, ..., n).

Из уравнений, входящих в первый столбец приведенной выше системы, находим li1= ai1/d11, i = 1, ...dots, n. Теперь можно из уравнений второй строки найти d2j= a2j- l21d1j, j = 2, ..., n, а из уравнений, входящих во второй столбец, получим $$l_{i2}= d_{22}^{-1}(a_{i2}- l_{i1}d_{12}), i = 2, \ldots, n$$ и так далее. Последним вычисляется элемент

$$d_{nn} = a_{nn}- \sum\limits_{k = 1}^{n - 1}{l_{nk}d_{kn}}.$$

Можно выписать общий вид этих формул:

$$\begin{gather*} d_{ij}= a_{ij} - \sum\limits_{k = 1}^{j - 1}{l_{ik}d_{kj}},\quad i \le j, \\ l_{ij}= d_{ij}^{- 1}\left({a_{ij} - \sum\limits_{k = 1}^{j - 1}{l_{ik}d_{kj}}}\right),\quad i > j. \end{gather*}$$

Приведение матриц к треугольному виду аналогично приведению матрицы в методе Гаусса и также требует количества арифметических действий порядка O(n3), точнее, $$\approx 2n^{3}.$$

2.4.4. Метод Холецкого (метод квадратного корня)

Пусть матрица рассматриваемой линейной системы $$\mathbf{A}$$ — симметричная, т.е. aij = aji, положительная матрица. Тогда она представима в виде $$\mathbf{A} = \mathbf{LL}^T$$, где

$${\mathbf{L}}^T = \left( \begin{array}{cccc} l_{11} l_{12} \ldots l_{1n} \\ 0 l_{22} \ldots l_{2n} \\ \ldots \ldots \ldots \ldots \\ 0 0 \ldots l_{nn} \end{array} \right), \mathbf{L} = \left( \begin{array}{cccc} l_{11} 0 \cdots 0 \\ l_{12} l_{22} \ldots 0 \\ \ldots \ldots \ldots \ldots \\ l_{1n} l_{2n} \ldots l_{nn} \end{array} \right)$$

Далее, как и в случае LU-разложения, решение СЛАУ $$\mathbf{Au} = \mathbf{f}$$ сводится к последовательному решению двух линейных систем с треугольными матрицами $$\mathbf{Lv} = \mathbf{f}$$, $${\mathbf{L}}^T{\mathbf{u}} = \mathbf{v}$$, для решения которых требуется примерно 2n2 арифметических действий.

Первая из этих линейных систем

$$\begin{gather*} l_{11}v_1 = f_1 ,\\ l_{12}v_1 + l_{22}v_2 = f_2 ,\\ \ldots\\ l_{1n}v_1 + l_{2n}v_2 + \ldots + l_{nn}v_n = f_n , \end{gather*}$$

она легко решается. Для решения получаем очевидные формулы

$$v_i = l_{ii}^{- 1}(f_i - \sum\limits_{k = 1}^{i-1}{l_{ki}}v_k )},\quad i = 1,\ldots, n.$$

Вторая система уравнений есть

l11u1  + l12u2  +  ...  + l1nun  = v1 , l22u2  +  ...  + l2nun  = v2, ... lnnun  = vn.

Из нее находим значения переменных ui в обратном порядке по формуле

$$u_k= l_{ii}^{- 1}(v_k - \sum\limits_{j = k + 1}^n{l_{kj}u_j)}.$$

Определенной опасностью при реализации этого метода являются возможная близость к нулю lii и отрицательность подкоренных выражений при вычислении lii (последнего не должно быть при симметричной положительной матрице $$\mathbf{A}$$ )

Элементы матрицы $$\mathbf{L}$$ находим из уравнения $${\mathbf{LL}}^T = \mathbf{A}$$, приравнивая соответствующие элементы матриц $${\mathbf{LL}}^T$$ и $$\mathbf{A}.$$ В результате получим систему уравнений

$$\begin{gather*} l_{11}^2 = a_{11}, \\ l_{i1}l_{11} = a_{i1}, i = 2, \ldots ,n, \\ l_{21}^2 + l_{22}^2 = a_{22}, \\ l_{i1}l_{21} + l_{i2}l_{22} = a_{i2}, i = 3, \ldots , n, \\ \ldots\\ l_{k1}^2 + l_{k2}^2 + \ldots + l_{kk}^2 = a_{kk}, \\ l_{i1}l_{k1} + l_{i2}l_{k2} + \ldots + l_{ik}l_{kk} = a_{kk}, i = k + 1, \ldots , n. \end{gather*}$$

Решение этой системы легко находится:

$$\begin{gather*} l_{11} = \sqrt{a_{11}},\\ l_{i1} = a_{i1}/l_{11}, i = 2, \ldots , n, \\ l_{22} = \sqrt{a_{22}- l_{21}^2}, \\ l_{i2} = (a_{i2}- l_{i1}l_{21})/l_{22}, i = 3, \ldots ,n, \\ \ldots \\ l_{kk} = \sqrt{a_{kk}- l_{k1}^2 - l_{k2}^2 - \ldots - l_{k,k - 1}^2}, \\ l_{ik} = (a_{ik}- l_{i1}l_{k1}- l_{i2}l_{k2}- \ldots - l_{i,k - 1}l_{k,k - 1})/l_{kk},i = k + 1, \ldots , n, \end{gather*}$$

Метод также называется методом квадратного корня.

Внимание! Не следует путать матрицу (оператор) $$\mathbf{L}$$ с оператором $$\mathbf{A}^{1/2}$$ — квадратным корнем из самосопряженного положительного оператора.

2.5. Итерационные методы решения СЛАУ

2.5.1. Метод простой итерации

Рассмотрим систему линейных алгебраических уравнений

$$\mathbf{Au}= \mathbf{f}.$$

Проведем несколько равносильных преобразований. Умножим обе части системы на один и тот же скалярный множитель $$\tau,$$ затем прибавим к правой и левой частям системы вектор $$\mathbf{u}.$$ Систему уравнений можно теперь записать в виде, удобном для итераций:

$$\mathbf{u}= \mathbf{Bu}+ \mathbf{F},$$

где $$\mathbf{B} = \mathbf{E} - \tau \mathbf{A},\quad \mathbf{F} = \tau \mathbf{f}.$$

Теперь построим последовательность приближений к решению системы. Выберем произвольный вектор $${\mathbf{u}}_0$$ — начальное приближение к решению. Чаще всего его просто полагают нулевым вектором. Скорее всего, начальное приближение не удовлетворяет (2.15) и, следовательно, исходной системе. При подстановке его в исходное уравнение возникает невязка $${\mathbf{r}}_0 = \mathbf{f} - \mathbf{A}{\mathbf{u}}_0.$$ Вычислив невязку, с помощью (2.15) можно уточнить приближение к решению, считая, что

$${\mathbf{u}}_1 ={\mathbf{u}}_0 + \tau{\mathbf{r}}_0.$$

По первому приближению снова вычисляется невязка, процесс продолжается. В ходе итерации получаем $${\mathbf{u}}_{k + 1} = {\mathbf{u}}_k + \tau{\mathbf{r}}_k, {\mathbf{r}}_k = \mathbf{f} - {\mathbf{Au}}_k.$$ Эквивалентная формулировка метода, называемого методом простых итераций, заключается в следующем. Решение (2.15) находится как предел последовательности $$\{{\mathbf{u}}_0, {\mathbf{u}}_1, {\mathbf{u}}_2, \ldots\}$$ приближений, члены которой связаны рекуррентным соотношением (оно эквивалентно приведенному выше, из записи исключен вектор невязки):

$${\mathbf{u}}_{{k + 1}} = {\mathbf{Bu}}_k + {\mathbf{F}},$$

$${\mathbf{u}}_0 = 0$$ (или любому произвольному вектору). Если предел такой последовательности существует, то говорят о сходимости итерационного процесса к решению СЛАУ.

Существуют другие формы записи метода итераций, например

$${\mathbf{u}}_{k + 1} = ({\mathbf{E}} - \tau\mathbf{A}){\mathbf{u}}_k + \tau\mathbf{f}.$$

Канонической формой записи двухслойного итерационного процесса называется следующая:

$$$ {\mathbf{D}}_{k + 1}\frac{{\mathbf{u}}_{k + 1} - {\mathbf{u}}_k}{\tau_{k + 1}} + {\mathbf{Au}}_k = \mathbf{f}. $$$

При $${\mathbf{D}}_k = {\mathbf{E}}$$, $$\tau _{k} = \tau$$ последняя формула соответствует однопараметрическому итерационному процессу — рассмотренному выше методу простых итераций. При $${\mathbf{D}}_k = \mathbf{E}$$, $$\tau_k= \left\{{\tau_k, k= 1, \ldots , n}\right\}$$ — n -шаговому явному итерационному процессу, при $${\mathbf{D}}_k = \mathbf{D^{\prime}}$$, $$\tau _{k} = 1$$ — методу простой итерации без итерационного параметра. В случае, когда $$\mathbf{D} \ne \mathbf{E}$$, итерационный метод называется неявным — для вычисления следующего приближения к решению придется решать (как правило, более простую, чем исходную) систему линейных уравнений.

Теорема (достаточное условие сходимости метода простой итерации ). Итерационный процесс (2.16) сходится к решению $$\mathbf{U}$$ СЛАУ $$\mathbf{Au} = \mathbf{F}$$ со скоростью геометрической прогрессии при выполнении условия: $$\|{\mathbf{B}}\| \le q < 1.$$

Доказательство.

Пусть $$\mathbf{U}$$ — точное решение системы (2). Вычитая из (2.16)-(2.15), получим $${\mathbf{u}}_k - {\mathbf{U}} = \mathbf{B}({\mathbf{u}}_{k - 1} - \mathbf{U})$$, или, обозначив погрешность $${\mathbf{\varepsilon }}_k = {\mathbf{u}}_k - {\mathbf{U}}$$, получим для эволюции погрешности уравнение $${\mathbf{\varepsilon}}_k = {\mathbf{B\varepsilon}}_{k - 1}.$$ Справедлива цепочка неравенств: $$\|{{\mathbf{u}}_k - {\mathbf{U}}}\| = \|{{\mathbf{\varepsilon}}_k}\| \le \|{\mathbf{B}}\| \cdot \|{{\mathbf{\varepsilon}}_{k - 1}}\| \le q\|{{\mathbf{\varepsilon}}_{k - 1}}\| \le \ldots \le q^k\|{{\mathbf{\varepsilon}}_0}\| = q^k\|{{\mathbf{u}}_0 - {\mathbf{U}}}\|$$, где $$0 < q \le \|{\mathbf{B}}\|.$$

Отсюда следует, что при $$q < 1 \lim\limits_{k \to \infty}{\mathbf{u}}_k = \mathbf{U}.$$

Из неравенства $$\|{{\mathbf{\varepsilon}}_k}\| \le q^k\|{{\mathbf{\varepsilon}}_0}\|$$ можно получить оценку количества итераций,необходимых для достижения точности $$\varepsilon,$$ т.е. для выполнения условия $$\|{{\mathbf{u}}_k - \mathbf{U}}\| = \|{{\mathbf{\varepsilon}}_k}\| \le \varepsilon.$$ Эта оценка имеет вид $$$ k \ge \left({\ln{\frac{\mathbf{\varepsilon}}{\|{{\mathbf{\varepsilon}}_0}\|}}}\right)/\ln{q} $.$$

Теорема (критерий сходимости метода простой итерации (без доказательства)). Пусть СЛАУ (2.15) имеет единственное решение. Тогда для сходимости итерационного процесса (2.16) необходимо и достаточно, чтобы все собственные значения матрицы $${\mathbf{B}$$ по абсолютной величине были меньше единицы.

Сравним по количеству арифметических действий прямые и итерационные методы. Метод Гаусса без выбора главного элемента при $$n \gg 1$$ требует $$$ \approx (\frac{2}{3}n^3) $$$ арифметических действий; метод простой итерации (2.16) $$\approx (2n^2 \cdot I)$$, где i — число приближений, необходимое для достижения заданной точности. Значит, при I < n/3 метод итераций становится предпочтительнее. В реальных задачах, в основном, $$I \ll n.$$ Кроме того, итерационные методы можно делать более эффективными, изменяя итерационные параметры. В ряде случаев итерационные методы оказываются более устойчивыми по отношению к накоплению ошибок округления, чем прямые.

2.5.2. Влияние ошибок округления на результат численного решения

Будем трактовать суммарный эффект ошибок округления при выполнении одного итерационного шага как возмущение правой части в итерационном процессе

$${\mathbf{u}}_k = {\mathbf{Bu}}_{k - 1} + {\mathbf{F}}.$$

Результат вычислений на каждой итерации при наличии ошибок округления представим в виде

$${\mathbf{u}}_k^M = {\mathbf{Bu}}_{k - 1}^M + {\mathbf{F}} + {\mathbf{\delta }}_k,$$

где $${\mathbf{\delta }}_k$$ — суммарная погрешность округления. Норму разности между реальным и идеальным (т.е. в отсутствии ошибки округления) результатами расчетов получим, вычитая (2.19) из (2.20). Учтем, что $$\|\mathbf{B}\| < q < 1$$,

$$\begin{multline*} \|{{\mathbf{u}}_k^M - {\mathbf{u}}_k}\| \le q \|{{\mathbf{u}}_{k - 1}^M - {\mathbf{u}}_{k - 1}}\| + \\ + \|{{\mathbf{\delta }}_k}\| \le q^2\|{{\mathbf{u}}_{k - 2}^M - {\mathbf{u}}_{k - 2}}\| + q\|{{\mathbf{\delta }}_{k - 1}}\| + \|{{\mathbf{\delta }}_k}\| \le \ldots \le q^k\|{{\mathbf{u}}_0^M - {\mathbf{u}}_0}\| + \\ + (\max\limits_i \|{{\mathbf{\delta }}_i}\|) (1 + q + \ldots + q^{k - 1}), i = 1, \ldots, k. \end{multline*} $$

Так как начальное приближение задано точно $$\|{{\mathbf{u}}_0^M - {\mathbf{u}}_0}\| = 0.$$ Обозначим $$\delta = \max\limits_i \|{{\mathbf{\delta }}_i}\|$$ и вычислим сумму членов геометрической прогрессии. Получим $$$ \|{{\mathbf{u}}_k^M - {\mathbf{u}}_k}\| \le \delta \frac{q^k - 1}{q - 1} \le \frac{\delta }{1 - q} $$$, то есть погрешность, вносимая в решение из-за конечной разрядности мантиссы, не зависит от количества итераций. Этот результат является характеристикой устойчивости рассматриваемого вычислительного процесса.

2.5.3. Методы Якоби, Зейделя, верхней релаксации

Представим матрицу $$\mathbf{A}$$ в виде

$$\mathbf{A} = \mathbf{L} + \mathbf{D} + \mathbf{U},$$

где $$\mathbf{L}$$ и $$\mathbf{U}$$ — нижняя и верхняя треугольные матрицы с нулевыми элементами на главной диагонали, $$\mathbf{D}$$ — диагональная матрица. Рассматриваемая СЛАУ может быть переписана в следующем эквивалентном виде:

$$\mathbf{Lu}+ \mathbf{Du} + \mathbf{Uu} = \mathbf{f}.$$

Построим два итерационных метода $$\mathbf{Lu}_k + \mathbf{Du}_{k+1} + \mathbf{Uu}_k = \mathbf{f} $$

и

$$\mathbf{Lu}_{k+1} + \mathbf{Du}_{k+1} + \mathbf{Uu}_k = \mathbf{f},$$

или, соответственно,

$${\mathbf{u}}_{k+1} = -\mathbf{D}^{- 1}(\mathbf{L} + \mathbf{U}){\mathbf{u}}_k + \mathbf{D}^{-1}\mathbf{f}$$

и

$${\mathbf{u}}_{k+1} = -(\mathbf{L} + \mathbf{D})^{- 1}{\mathbf{Uu}}_k + (\mathbf{L} + \mathbf{D})^{-1}\mathbf{f}.$$

Очевидно, что эти формулы описывают итерационные процессы вида (2.16), если положить в (2.22)

$$\mathbf{B} = -\mathbf{D}^{-1}(\mathbf{L} + \mathbf{U}), \mathbf{F} = \mathbf{D}^{-1}\mathbf{f}$$

или

$$\mathbf{B} = -(\mathbf{L}+\mathbf{D})^{-1}\mathbf{U}, \mathbf{F} = (\mathbf{L} + \mathbf{D})^{-1}\mathbf{f}.$$

Эти итерационные процессы называются методами Якоби и Зейделя . Представим их в компонентной записи. Метод Якоби будет иметь вид (перенесем итерационный индекс k вверх):

$$\begin{gather*} u_1^{k + 1} = - (a_{12}u_2^k + a_{13}u_3^k + \ldots + a_{1n}u_n^k - f_1 )/a_{11}, \\ u_2^{k + 1} = - (a_{21}u_1^k + a_{23}u_3^k + \ldots + a_{2n}u_n^k - f_2 )/a_{22}, \\ \ldots \\ u_n^{k + 1} = - (a_{n1}u_1^k + a_{n2}u_2^k + \ldots + a_{n,n - 1}u_{n - 1}^k - f_n )/a_{nn}. \end{gather*}$$

Метод Зейделя можно представить следующим образом:

$$\begin{gather*} u_1^{k + 1} = - (a_{12}u_2^k+ a_{13}u_3^k+ \ldots + a_{1n}u_n^k - f_1 )/a_{11}, \\ u_2^{k + 1} = - (a_{21}u_1^{k + 1}+ a_{23}u_3^k + \ldots + a_{2n}u_n^k - f_2 )/a_{22}, \\ \ldots \\ u_n^{k + 1} = - (a_{n1}u_1^{k + 1} + a_{n2}u_2^{k + 1} + \ldots + a_{n,n - 1}u_{n - 1}^{k + 1}- f_n )/a_{nn}. \end{gather*}$$

Эти формулы легко выводятся, если учесть, что элементами матрицы D -1 являются $$d_{ii} = a_{ii}^{- 1}.$$

Теорема (достаточное условие сходимости метода Якоби ) Итерационный метод Якоби сходится к решению соответствующей СЛАУ, если выполнено условие диагонального преобладания

$${|{a_{ii}}| > \sum\limits_{\substack{j = 1 \\ (j \ne i)}}^n{| {a_{ij}}|}}, {i=1, \ldots, n}.$$

Доказательство.

Выполненные условия (2.24) означает, что в любой строке матрицы перехода

$${\mathbf{B}} = \left( \begin{array}{cccccc} 0 {- \frac{a_{12}}{a_{11}}} {- \frac{a_{13}}{a_{11}}} \ldots {- \frac{a_{1n-1}}{a_{11}}} {- \frac{a_{1n}}{a_{11}}}\\ {- \frac{a_{21}}{a_{22}}} 0 {- \frac{a_{23}}{a_{22}}} \ldots {- \frac{a_{2n-1}}{a_{22}}} {- \frac{a_{2n}}{a_{22}}}\\ \ldots \ldots \ldots \ldots \ldots \ldots \\ {- \frac{a_{n1}}{a_{nn}}} {- \frac{a_{n2}}{a_{nn}}} {- \frac{a_{n3}}{a_{nn}}} \ldots {- \frac{a_{n,n-1}}{a_{nn}}} 0 \\ \end{array} \right),$$

сумма модулей элементов меньше единицы. В этом случае по крайней мере одна из норм матрицы $$\mathbf{B}$$ меньше единицы. Тогда выполняется достаточное условие сходимости метода простых итераций.

Теорема (критерий сходимости итерационного метода Якоби ). Для сходимости итерационного метода Якоби необходимо и достаточно, чтобы все корни уравнения

$$\left| \begin{array}{cccc} {\lambda a_{11}} {a_{12}} \ldots {a_{1n}}\\ {a_{21}} {\lambda a_{22}} \ldots {a_{2n}}\\ \ldots \ldots \ldots \ldots \\ {{a}_{n1}} {{a}_{n2}} \ldots {{\lambda a}_{nn}}\\ \end{array} \right| = 0$$

по модулю не превосходили единицы.

Доказательство.

Легко проверить, что в силу диагональности $$\mathbf{D}$$ имеет место

$$\det ({\mathbf{B}}- \lambda {\mathbf{E}}) = \det \left[{-{\mathbf{D}}^{- 1}({\mathbf{L}} + {\mathbf{U}}) - \lambda {\mathbf{E}}}\right] = \det ( -{\mathbf{D}}^{- 1}) \cdot \det \left[{({\mathbf{L}} + {\mathbf{U}}) +{\mathbf{D}}\lambda}\right].$$

Собственными значениями матрицы $$\mathbf{B} = -\mathbf{D}^{- 1}(\mathbf{L} + \mathbf{U})$$ являются корни уравнения

$$\det \left[{({\mathbf{L}}+{\mathbf{U}}) + {\mathbf{D}}\lambda}\right] = 0,$$

которые в соответствии с критерием сходимости метода простой итерации должны быть по модулю меньше единицы.

Аналогичную теорему можно доказать и для метода Зейделя, однако матрица в этой теореме будет иметь другой вид:

$$\left( \begin{array}{cccc} {\lambda a_{11}} {a_{12}} \ldots {a_{1n}}\\ {\lambda a_{12}} {\lambda a_{22}} \ldots {a_{2n}}\\ \ldots \ldots \ldots \ldots \\ {\lambda a_{n1}} {\lambda a_{n2}} \ldots {\lambda a_{nn}}\\ \end{array} \right)$$

Теорема (достаточное условие сходимости метода Зейделя (без доказательства)). Пусть $$\mathbf{A}$$ — вещественная, симметричная, положительно определенная матрица. В этом случае итерационный метод Зейделя сходится.

Доказательство этой теоремы сводится к проверке того, что выполнение условий теоремы для матрицы $$\mathbf{A}= \mathbf{L} + \mathbf{D} + {\mathbf{L}}^{T}$$ влечет выполнение условия сходимости итерационного метода с матрицей перехода — $${(\mathbf{L}+\mathbf{D})}^{-1}\mathbf{L}^T.$$ СЛАУ с вещественной матрицей $$\mathbf{A}$$ такой, что $$\det \mathbf{A} \ne 0$$ может быть симметризована умножением на матрицу $${\mathbf{A}}^T$$:

$$({\mathbf{A}}^{T}\mathbf{A})\mathbf{u} = \mathbf{A}^{T}\mathbf{f} $$

(симметризация Гаусса).

Развитием метода Зейделя является метод релаксации. В этом методе вводится итерационный параметр $$\tau,$$ называемый параметром релаксации. Представим метод релаксации в матричной форме:

$$(\tau {\mathbf{Lu}}_{k + 1} + {\mathbf{Du}}_{k + 1}) + (\tau - 1){\mathbf{Du}}_k + \tau{\mathbf{Uu}}_k = \tau\mathbf{f}.$$

Выбирая $$\tau,$$ можно существенно изменять скорость сходимости итерационного метода. Выразим $${\mathbf{u}}_{k+1}$$

$${\mathbf{u}}_{k + 1} = - ({\mathbf{D}} + \tau{\mathbf{L}})^{- 1}\left[{(\tau - 1) {\mathbf{D}} + \tau{\mathbf{L}}}\right]{\mathbf{u}}_k + \tau ({\mathbf{D}}+ \tau {\mathbf{L}})^{- 1}\mathbf{f}.$$

В общем случае задача вычисления $$\tau _{опт}$$ (оптимального итерационного параметра) не решена, однако известно, что $$1 < \tau _{опт} < 2.$$ В этом случае итерационный метод называется методом последовательной верхней релаксации или SОR — Successive Over Relaxation. Иногда встречается термин "сверхрелаксация" при $$1 < \tau _{опт} < 2.$$ При $$0 < \tau < 1$$ имеем метод нижней релаксации.

2.6. Вариационные итерационные методы

2.6.1. Связь между вариационной задачей и задачей решения СЛАУ

Пусть $$\mathbf{u} \in L^n $$, где Ln есть n -мерное евклидово пространство. Рассмотрим квадратичный функционал от $$\mathbf{u}$$, называемый функционалом энергии:

$$\Phi (\mathbf{u}) = (\mathbf{Au,u}) - 2(\mathbf{f,u}) + c,$$

где $$\mathbf{A}$$ — линейный оператор, $$\mathbf{f} \in L^n$$, c — константа. Этот функционал совпадает с квадратичным функционалом $$\Phi (\mathbf{u}) = (\mathbf{A}^*\mathbf{u,u}) - 2(\mathbf{f,u}) + c$$, где $$\mathbf{A}^*$$ — сопряженный к $$\mathbf{A}$$ оператор. Действительно, $$(\mathbf{Au,u}) \equiv (\mathbf{u},\mathbf{A}^*\mathbf{u})$$ по определению сопряженного оператора и $$(\mathbf{u},\mathbf{A}^*\mathbf{u}) = (\mathbf{A}^*\mathbf{u},\mathbf{u})$$ в силу коммутативности скалярного произведения. Тогда

$$$ \Phi (\mathbf{u}) = \left( {\frac{\mathbf{A} + \mathbf{A}^*}{2}\mathbf{u,u}}\right) - 2(\mathbf{f,u}) + c, $$$ $$$ \mbox{так как } \frac{1}{2}(\mathbf{Au,u}) + \frac{1}{2}(\mathbf{A}^*\mathbf{u,u}) = \left({\frac{\mathbf{A} + \mathbf{A}^*}{2}\mathbf{u,u}}\right). $$$

Без ограничения общности предположим, что оператор $$\mathbf{A}$$ — самосопряженный, $$\mathbf{A} = \mathbf{A}^*.$$ В противном случае будем рассматривать задачу с оператором $$\frac{1}{2}(\mathbf{A}+{\mathbf{A}^*}) $$ при решении вариационной задачи.

Будем также считать, что $$\mathbf{A}$$ — положительный оператор, т.е. $$\mathbf{A} > 0$$, это означает, что для любого ненулевого вектора $$\mathbf{u}$$ выполнено $${(\mathbf{Au}, \mathbf{u}) > 0}.$$

Поставим задачу об отыскании элемента $$\mathbf{v}$$, придающего наименьшее значение функционалу $$\Phi (\mathbf{u})$$:

$$\Phi ({\mathbf{v}}) = \min\limits_{\mathbf{u} \in L^n}\Phi (\mathbf{u}).$$

Теорема. Пусть $$\mathbf{A} = {\mathbf{A}*} > 0.$$ В этом случае существует единственный элемент $${\mathbf{v}} \in L^n $$, придающий наименьшее значение квадратичному функционалу $$\Phi (\mathbf{u}) = (\mathbf{Au,u}) - (2\mathbf{f,u}) + c$$, являющийся решением СЛАУ $$\mathbf{Au}= \mathbf{f}.$$

Доказательство.

СЛАУ $$\mathbf{Au}= \mathbf{f}$$ имеет единственное решение $$\mathbf{v}$$, поскольку $$\mathbf{A}$$ является невырожденным оператором в силу его положительной определенности. Покажем, что в этом случае при $${\mathbf{Av}} - \mathbf{f} = 0$$ для любого вектора $$\Delta$$ имеет место $$\Phi ({\mathbf{v}} + {\mathbf{\Delta }}) > \Phi ({\mathbf{v}})$$, т.е. при $$\mathbf{u} = \mathbf{v}$$ достигается минимум квадратичного функционала $$\Phi (\mathbf{u}).$$

Действительно,

$$\begin{gather*} \Phi (\mathbf{v} + \mathbf{\Delta }) = (\mathbf{A}(\mathbf{v} + \mathbf{\Delta }), \mathbf{v} + \mathbf{\Delta }) - 2(\mathbf{f,v} + \mathbf{\Delta }) + c = \\ = (\mathbf{Av} + \mathbf{A\Delta }\mathbf{,v} + \mathbf{\Delta }) - 2(\mathbf{f,v} + \mathbf{\Delta }) + c = \\ = (\mathbf{Av,v}) + (\mathbf{Av}\mathbf{,\Delta }) + (\mathbf{A\Delta } \mathbf{,v}) + (\mathbf{A\Delta }\mathbf{,\Delta }) - 2(\mathbf{f}\mathbf{,v}) - 2(\mathbf{f}\mathbf{,\Delta }) + c = \\ = (\mathbf{Av}\mathbf{,v}) + 2(\mathbf{Av}\mathbf{,\Delta }) + (\mathbf{A\Delta }\mathbf{,\Delta }) - 2(\mathbf{f}\mathbf{,v}) - 2(\mathbf{f}\mathbf{,\Delta }) + c = \\ = \left[{(\mathbf{Av}\mathbf{,v}) - 2(\mathbf{f}\mathbf{,v}) + c}\right] + 2(\mathbf{Av}\mathbf{,\Delta }) - 2(\mathbf{f}\mathbf{,\Delta }) + (\mathbf{A\Delta }\mathbf{,\Delta }) = \\ = \Phi (\mathbf{v}) + 2(\mathbf{Av}-\mathbf{f},\mathbf{\Delta }) + (\mathbf{A\Delta }\mathbf{,\Delta }) = \Phi (\mathbf{v}) + (\mathbf{A\Delta }\mathbf{,\Delta }) > \Phi (\mathbf{v}), \end{gather*}$$

т.е. при $$\mathbf{Av} = \mathbf{f}$$ и любом $$\Delta$$ имеет место $$\min\limits_\mathbf{u}\Phi (\mathbf{u}).$$ Докажем, что верно и обратное утверждение. Если элемент доставляет минимальное значение функционалу энергии, то он является решением системы линейных уравнений $$\mathbf{Av} = \mathbf{f}.$$ Из курса математического анализа известно, что в точке минимума должно выполняться условие $$grad \Phi (\mathbf{u}) = 0,\quad \mathbf{A} > 0.$$ Вычисляя градиент, приходим к условию минимума функционала $$grad \Phi (\mathbf{u}) = 2\mathbf{Au}- 2\mathbf{f}= 0.$$ Таким образом установлена эквивалентность вариационной задачи (отыскание элемента, придающего минимум $$\Phi (\mathbf{u})$$ ) и задачи о нахождении решения СЛАУ.

Заметим, что СЛАУ с самосопряженным и положительно определенным оператором $$\mathbf{A}$$ представляют собой важный класс задач в математической физике, в частности, они возникают при решении краевых задач для эллиптических уравнений. При необходимости можно произвести симметризацию по Гауссу исходной системы.

2.6.2. Методы градиентного и наискорейшего спуска

Метод градиентного спуска состоит в нахождении следующего приближения в итерационном процессе из предыдущего, путем смещения в направлении градиента функционала

$${\Phi(\mathbf{u}) = ({\mathbf{Au,u}}) - 2({\mathbf{f,u}})}$$ $${\mathbf{u}}_{k + 1} = {\mathbf{u}}_k - \alpha_k \cdot grad \Phi ({\mathbf{u}}_k),$$

где $$\mathbf{A}$$ — положительно определенная симметричная матрица; $${\alpha}_k$$ — параметр, определяемый из заданных условий; например, из условия минимума величины

$$\Phi \left[{{\mathbf{u}}_k - \alpha_k \cdot grad \Phi ({\mathbf{u}}_k)}\right].$$

В этом случае итерационный метод называется методом наискорейшего спуска. Так как $$grad \Phi (\mathbf{u}) = 2(\mathbf{Au}- \mathbf{f})$$, то (2.26) приобретает вид

$${\mathbf{u}}_{k + 1} = {\mathbf{u}}_k - \tau_k (\mathbf{Au}_k - \mathbf{f}),\quad \mbox{где}\quad {\tau_k= 2\alpha_k},$$

что соответствует записи итерационного метода в форме {2.17). Здесь $$\tau _{k}$$ является итерационным параметром, который в методе наискорейшего спуска определяется из условия минимума функции $$\Phi (\tau_k, {\mathbf{u}}_{k + 1})$$ по $$\tau _{k}.$$ Найдем условие этого минимума:

$$0 = 2(\mathbf{Au}_{k + 1} - \mathbf{f}, {({\mathbf{u}}_{k + 1})^{\prime}}_{\tau_k}) = - 2(\mathbf{Au}_{k + 1}- \mathbf{f}, \mathbf{Au}_k - \mathbf{f}).$$

Здесь учтено соотношение: $$({\mathbf{Au^{\prime}}},\mathbf{u}) = ({\mathbf{u^{\prime}}},\mathbf{A}^*\mathbf{u}) = (\mathbf{Au}{\mathbf{,u^{\prime}}})$$, поскольку $$\mathbf{A} = \mathbf{A}^*$$ и $$(\mathbf{v,Aw}) = (\mathbf{Aw,v})$$ в силу самосопряженности оператора $$\mathbf{A}.$$ Подставим в последние равенства $${\mathbf{u}}_{k+1}$$ из (2.27), получим $$(\mathbf{Au}_k - \mathbf{f}- \tau_k\mathbf{A}(\mathbf{Au}_k - \mathbf{f}),\mathbf{Au}_k - \mathbf{f}) = 0$$, откуда следует

$$\mathbf{Au}_k - \mathbf{f},\mathbf{Au}_k - \mathbf{f}) - \tau_k(\mathbf{A}(\mathbf{Au}_k - \mathbf{f}), \mathbf{Au}_k - \mathbf{f}) = 0,$$

$$\tau_k = (\mathbf{Au}_k - \mathbf{f},\mathbf{Au}_k - \mathbf{f})/(\mathbf{A}(\mathbf{Au}_k - \mathbf{f}),\mathbf{Au}_k - \mathbf{f})$$, или $$$ \tau_k = \frac{({\mathbf{r}}_k,{\mathbf{r}}_k)}{({\mathbf{Ar}}_k,{\mathbf{r}}_k)}$$, где $${\mathbf{r}}_k = \mathbf{Au}_k - \mathbf{f} $.$$

Вектор $${\mathbf{r}}_k$$ называют вектором невязки.

2.6.3. Метод минимальных невязок

Этот итерационный метод определяется следующим образом. Пусть $${\mathbf{u}}_{k+ 1} = {\mathbf{u}}_k - \tau_k{\mathbf{r}}_k$$, как и ранее, $${\mathbf{r}}_k = \mathbf{Au}_k - \mathbf{f}.$$ Итерационный параметр $$\tau _{k}$$ на каждой итерации выбирается так, чтобы минимизировать евклидову норму невязки $${\mathbf{r}_{k+1}}.$$ Заметим, что итерационный процесс $${\mathbf{u}}_{n + 1} = {\mathbf{u}}_n + \tau_n{\mathbf{r}}_{n}$$ может быть представлен в равносильном виде в терминах невязки $${\mathbf{r}}_{n + 1} = {\mathbf{r}}_{n} + \tau_n{\mathbf{Ar}}_n.$$ Тогда для квадрата евклидовой (третьей) нормы невязки получаем условие

$$({\mathbf{r}}_{{k+ 1}},{\mathbf{r}}_{{k+ 1}}) = ({\mathbf{r}}_k,{\mathbf{r}}_k) - 2\tau_k({\mathbf{Ar}}_k,{\mathbf{r}}_k) + \tau_k^2 ({\mathbf{Ar}}_k,{\mathbf{Ar}}_k).$$

Для отыскания минимума невязки на следующей итерации приравняем нулю производную последнего выражения по итерационному параметру $$\tau _{k}.$$ Получим равенство

$$- 2({\mathbf{Ar}}_k,{\mathbf{r}}_k) + 2\tau_k({\mathbf{Ar}}_k,{\mathbf{Ar}}_k) = 0.$$

Из последнего соотношения находим значение итерационного параметра $$$ \tau_k= \frac{({\mathbf{Ar}}_k,{\mathbf{r}}_k)}{({\mathbf{Ar}}_k,{\mathbf{Ar}}_k)}. $$$

2.6.4. Метод сопряженных градиентов

Этот метод применяется для решения систем уравнений с самосопряженной положительной матрицей $$\mathbf{A} = \mathbf{A}^* > 0.$$ Оптимизируем градиентный метод, выбирая параметры $$\tau$$ таким образом, чтобы на последующем шаге невязка была ортогональна всем предыдущим. На первом шаге невязку ищем аналогично методу наискорейшего спуска. Получим невязки, образующие ортогональный базис. На последнем шаге невязка становится равна нулю, так как пространство конечномерно, и единственный элемент, ортогональный всем базисным векторам конечномерного пространства — нулевой. Получаем точное решение за конечное число шагов ( прямой метод ). Однако этот метод работает не всегда, так как при плохой обусловленности матрицы он становится вычислительно неустойчивым.

Идея метода состоит в следующем. Выбираем произвольное начальное приближение и вычисляем по нему вектор невязки $${\mathbf{r}}^0 = \mathbf{Au}^0 - \mathbf{f}$$, тогда первое приближение $$\mathbf{u}^1 = \mathbf{u}^0 + \tau_0{\mathbf{r}}^0 .$$

Из условия ортогональности невязок на двух первых шагах находим значение итерационного параметра $$$ \tau_0 = - \frac{({\mathbf{r}}^0,{\mathbf{r}}^0 )}{({\mathbf{Ar}}^0 ,{\mathbf{r}}^0 )} $.$$

Построим такое приближение, чтобы учитывались две предыдущие — трехслойный итерационный метод. Фактически, при построении его применяется процесс ортогонализации Грамма-Шмидта. Если $$\left({{\mathbf{Ar}}^{n - 2},{\mathbf{r}}^{n - 1}}\right) = 0$$, то $${\mathbf{r}}^{n - 2},{\mathbf{r}}^{n - 1}$$ — $$\mathbf{A}$$ - сопряженные невязки.

Имеем метод сопряженных градиентов.

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

Приведем последовательность расчетных формул одного из вариантов метода сопряженных градиентов.

$$\begin{gather*} {{\mathbf{u}}_1 = (\mathbf{E} - {\tau}_1\mathbf{A}){{\mathbf{u}}_0 + {\tau}_1 \mathbf{f}}}, \\ \ldots \\ {\mathbf{u}}_{k + 1}= \alpha_{k + 1}({\mathbf{E}}- \tau_{k + 1}\mathbf{A}){\mathbf{u}}_k + (1 - \alpha_{k + 1}){\mathbf{u}}_{k - 1}+ \alpha_{k + 1}\tau_{k + 1}\mathbf{f}, \end{gather*}$$

где

$$$ \tau_{k + 1} = \frac{({\mathbf{r}}_k,{\mathbf{r}}_k)}{(\mathbf{A}{\mathbf{r}}_k,{\mathbf{r}}_k)}, $$$ $$$ \alpha_1 = 1; \alpha_{k+ 1}= {\left[{1 - \frac{1}{\alpha_k} \cdot \frac{\tau_{k+ 1}}{\tau_k} \cdot \frac{({\mathbf{r}}_k,{\mathbf{r}}_k)}{({\mathbf{r}}_{k- 1},{\mathbf{r}}_{k- 1})}}\right]}^{- 1},\quad k= 1, 2, \ldots $$$

В вычислительной практике этот метод используется при умеренном числе обусловленности, больших n и неизвестных границах спектра матрицы $$\mathbf{A}$$, как итерационный метод, поскольку k0 обычно достаточно большое число. Подробнее о методах сопряженных градиентов можно прочитать в [2.2].

2.7. О спектральных задачах

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

Рассмотрим два алгоритма для самосопряженных матриц. Первый — степенной алгоритм, для вычисления наибольшего по абсолютной величине собственного числа. Выбираем произвольный ненулевой вектор $${\mathbf{u}}_0$$ и строим последовательность векторов

$${\mathbf{u}}_{k + 1} = \mathbf{Au}_{k}.$$

Легко показать, что выражение

$$$ \lambda \approx \frac{(\mathbf{Au}_k,{\mathbf{u}}_k)}{({\mathbf{u}}_k,{\mathbf{u}}_k)} = \frac{({\mathbf{u}}_{k+ 1},{\mathbf{u}}_k)}{({\mathbf{u}}_k,{\mathbf{u}}_k)} $$$

приближает максимальное по абсолютной величине собственное значение с точностью $$O(\lambda_{N}/\lambda_{N- 1})^k.$$ Здесь $$\lambda _{N}/\lambda _{N - 1}$$ — отношение самого большого по модулю собственного числа матрицы к следующему по абсолютной величине.

Для решения полной самосопряженной проблемы собственных значений применяется метод вращений.

Определение собственных значений самосопряженной матрицы $$\mathbf{A}$$ эквивалентно отысканию такой ортогональной матрицы $$\mathbf{T}$$, что

$$\mathbf{\Lambda } = \mathbf{T^{\prime}AT},$$

матрица $$\mathbf{\Lambda }$$ — диагональная. Среди всех ортогональных преобразований данное минимизирует сумму квадратов внедиагональных элементов исходной матрицы. Построим итерационный метод, минимизирующий эту сумму на каждой итерации. Пусть каждое преобразование подобия на каждой итерации содержит лишь одну матрицу вращения $${\mathbf{\hat A}} = {\mathbf{T^{\prime}}}_{ij}{\mathbf{AT}}_{ij}$$, где матрица $$\mathbf{T}_{ij}$$ есть матрица поворота в плоскости $${\mathbf{u}}_i {\mathbf{u}}_j$$ на угол $$\alpha.$$ Эта матрица отличается от матрицы $$\mathbf{A}$$ только двумя строками и двумя столбцами (с номерами i и j ). Так как евклидова норма матрицы не изменяется при ортогональных преобразованиях, то легко получить соотношение между суммами квадратов внедиагональных элементов старой и новой матриц:

$$$ \sum\limits_{i \ne j}{\hat{a}_{ij}^2} = \sum\limits_{i \ne j}{{a}_{ij}^2} - 2{a}_{ij}^2 + \frac{1}{2}{\left({(a_{jj} - a_{ii})\sin 2\alpha + 2a_{ij}\cos 2\alpha}\right)}^2. $$$

Очевидны условия минимизации суммы в левой части последнего равенства. Следует на текущей итерации выбирать индексы так, чтобы выполнялось условие $$|{a_{ij}}| = \max\limits_{k \ne l}|{a_{kl}}|$$, а угол поворота выбирается из условия $$0 = {\left({(a_{jj}} - a_{ii})\sin 2\alpha + 2a_{ij}\cos 2\alpha}\right)}^2 .$$ Тогда он удовлетворяет условию $$$ \tg 2\alpha = \frac{2a_{ij}}{a_{ii} - a_{jj}},\quad |{\alpha }| \le \frac{\pi}{4} $.$$

Независимо от наличия кратных собственных значений метод вращений обладает квадратичной сходимостью.

Выбор максимального по модулю внедиагонального элемента — затратная операция, поэтому часто реализуется метод вращений с барьерами. Его идея состоит в следующем. При переборе внедиагональных значений вращение производится тогда, когда значение элемента по абсолютной величине превосходит некоторую величину (барьер). Если все элементы меньше барьера, его значение уменьшается, например, на порядок, и снова начинается циклический перебор внедиагональных элементов. Подробнее о методе вращений смотри в [2.1].

Другие алгоритмы решения спектральных задач описаны в специальной литературе [2.1, 2.3, 2.10].

Задачи

  • Методом Гаусса решить систему линейных уравнений $$\mathbf{Ax} = \mathbf{f}$$, где

    $$\mathbf{A} ={\left( \begin{array}{ccc} 5 0 1 \\ 2 6 {-2}\\ -3 2 10 \\ \end{array}\right)}, \mathbf{f} = {(11, 8, 6)}^{\mathbf{T}}$$

    или

    $$\begin{gather*} 5{x}_1 + 0 \cdot{x}_2 +{x}_3 = 11, \\ 2{x}_1 + 6 \cdot{x}_2 + 2{x}_3 = 8, \\ - 3{x}_1 + 2 \cdot{x}_2 + 10{x}_3 = 6. \end{gather*} $$

    Решение.Расширенная матрица $$$ \tilde{\mathbf{A}}$$$ имеет вид

    $$$\tilde{\mathbf{A}} = \left( \begin{array}{cccc} {{a}_{11}} {{a}_{12}} {{a}_{13}} {f}_1 \\ {{a}_{21}} {{a}_{22}} {{a}_{23}} {f}_2 \\ {{a}_{31}} {{a}_{32}} {{a}_{33}} {f_3}\\ \end{array}\right) = \left( \begin{array}{cccc} 5 0 1 11\\ 2 6 {-2} 8 \\ -3 2 10 6 \\ \end{array}\right) $$$

    Разделив элементы первой строки на ведущий элемент a11= 5 получаем первую опорную строку (1, 0, 0.2, 2.2).

    Далее умножим ее на a21= 2 и вычтем из второй строки, после чего умножим опорную строку на a31= 3 и вычтем из третьей. Получаем матрицу $$$ \tilde{\mathbf{A}}_1 $$$

    $$$ \tilde{\mathbf{A}} = \left( \begin{array}{cccc} {{a}_{11}} {{a}_{12}} {{a}_{13}} {{f}_1}\\ 0 {\tilde{a}_{22}} {\tilde{a}_{23}} {\tilde{f}_2}\\ 0 {\tilde{a}_{32}} {\tilde{a}_{33}} {\tilde{f}_3}\\ \end{array}\right) = \left( \begin{array}{cccc} 1 0 0.2 2.2\\ 0 6 {-2.4} 3.6 \\ 0 2 10.6 12.6 \\ \end{array}\right) $$$

    Вторая опорная строка — результат деления второй строки матрицы $$$ \tilde{\mathbf{A}}_1 $$$ на

    $$a_{22}^1 = 6$$:
    (0, 1, - 0.4, 0.6)

    Матрицы $$$ \tilde{\mathbf{A}}_2 $$$ после умножения опорной строки на 2 и вычитания ее из третьей

    $$$ \tilde{\mathbf{A}}= \left( \begin{array}{cccc} {{a}_{11}} {{a}_{12}} {{a}_{13}} {f}_1 \\ 0 {\tilde{a}_{22}} {\tilde{a}_{23}} {\tilde{f}_2}\\ 0 0 {\tilde{\tilde{a}}_{33}} {\tilde{\tilde{f}}_3}\\ \end{array}\right) = \left( \begin{array}{cccc} 1 0 0.2 2.2\\ 0 6 {-0.4} 0.6 \\ 0 0 11.4 11.4 \\ \end{array}\right) $$$

    Третья опорная строка (результат деления третьей строки на 11,4 ) есть (0,0,1,1) .

    Матрица $$$ \tilde{\mathbf{A}}_3 $$$ будет

    $$$ \tilde{\mathbf{A}}_1 = \left( \begin{array}{cccc} 1 0 {0,2} {2,2}\\ 0 1 {- 0,4} {0,6}\\ 0 0 1 1 \\ \end{array}}\right). $$$

    Обратный ход метода Гаусса.

    Система уравнений с матрицей $$$ \tilde{\mathbf{A}}_3 $$$

    $$\begin{gather*} {x}_1 + 0 \cdot{x}_2 + 0,2{x}_3 = 2,2 , \\ {x}_2 - 0,4{x}_3 = 0,6 , \\ {x}_3 = 1. \end{gather*} $$

    Разрешая эту систему, начиная с последнего уравнения, получим

    x3  = 1,  x2  = 1,  x1  = 2.

    Определитель матрицы $$\det \mathbf{A}$$ можно вычислить как произведение ведущих элементов

    $$\det \mathbf{A} = 5 \cdot 6 \cdot 11,4 = 342.$$
  • Показать, что решение системы линейных уравнений

    $$\begin{gather*} {x}_1 + 2{x}_2 + 3{x}_3 + 4{x}_4 = 2, \\ {x}_1 + 3{x}_2 + {x}_3 + 2{x}_4 = - 1, \\ 2{x}_1 + 3{x}_2 + 8{x}_3 + 7{x}_4 = 10, \\ 2{x}_1 + 5{x}_2 + 3{x}_3 + 7{x}_4 = 3 \end{gather*}$$

    методом Гаусса невозможно.

    Решение. Преобразование матрицы рассматриваемой системы будет

    $$\left( \begin{array}{ccccc} 1 2 3 4 2 \\ 1 3 1 2 {- 1}\\ 2 3 8 7 {10}\\ 2 5 3 7 3 \\ \end{array}\right) \to \left( \begin{array}{ccccc} 1 2 3 4 2 \\ 0 1 {- 2} {- 2} {- 3}\\ 0 {- 1} 2 {- 1} 6 \\ 0 1 {- 3} {- 1} 1 \\ \end{array}\right) \to \left( \begin{array}{ccccc} 1 2 3 4 2 \\ 0 1 {- 2} {- 2} {- 3}\\ 0 0 0 {- 3} {- 3}\\ 0 0 {- 1} 1 2 \\ \end{array}\right)$$

    Поскольку $${a^2_{33}} = 0$$ то вычисление третьей опорной строки невозможно.

  • Показать, что

    $$$ \mu (\mathbf{A}) \ge \frac{|{\max\limits_i \lambda_i(\mathbf{A})}|}{|{\min\limits_i \lambda_i (\mathbf{A})}|}. $$$

    Рассмотреть случай симметричной матрицы $$\mathbf{A}.$$

    Решение. Для собственного вектора $$\omega,$$ соответствующего наибольшему по модулю собственному значению матрицы, выполняется равенство $$\mathbf{A}\omega = \lambda \omega $$, откуда

    $$\|{\mathbf{A\omega}}\| = \left|{\max\limits_i\lambda_i}\right|{\|\omega\|}.$$

    Учитывая, что $$\|{\mathbf{A}\omega }\| \le \|\mathbf{A}\|{\|\omega\|}$$, получим $$\|\mathbf{A}\| \ge \left|{\max\limits_i \lambda_i (\mathbf{A})}\right|.$$ Для обратной матрицы $$\mathbf{A}^{-1}$$ максимальным по модулю является собственное число $$\min\limits_i \lambda_i^{-1}$$, откуда $$\left\|{\mathbf{A}^{- 1}}\right\| \ge {\left|{\min\limits_i\lambda_i(\mathbf{A})}\right|}^{- 1}.$$ Объединяя два последних неравенства, получим

    $$$ \mu (\mathbf{A}) = {\left\|{\mathbf{A}^{- 1}}\right\|}\|\mathbf{A}\| \ge \frac{|{\max\limits_i \lambda_i (\mathbf{A})}|}{|{\min\limits_i \lambda_i (\mathbf{A})}|}. $$$

    В случае симметричной матрицы $$\mathbf{A}(\mathbf{A}^* = \mathbf{A})$$ имеем

    $$\|\mathbf{A}\|}_3 = \sqrt{\lambda_{\max}(\mathbf{A}^*\mathbf{A})} = \sqrt{\lambda_{\max}(\mathbf{A}^2 )}= \sqrt{\lambda_{\max}^2(\mathbf{A})} = |{\lambda_{\max}(\mathbf{A})}|$$,

    т.к. из $${\mathbf{A\omega}}_i = \lambda_i\omega_i$$ следует $$({\mathbf{A\omega}}_i )^2 = \lambda_i^2\omega_i^2 .$$ Аналогично

    $${\left\|{\mathbf{A}^{- 1}}\right\|}_3 = \sqrt{\lambda_{\max}[(\mathbf{A}^{- 1})^* (\mathbf{A}^{- 1})]} = \sqrt{\lambda_{\max}[(\mathbf{A}^{- 1})]^2} = \\ = \sqrt{\lambda_{\min}^{- 1}(\mathbf{A}^2 )} = |{\lambda_{\min}^{- 1}(\mathbf{A})}|.$$

    Тогда $$\mu (\mathbf{A}) = {\|\mathbf{A}\|}_3{\left\|{\mathbf{A}^{- 1}}\right\|}_3 = |{\lambda_{\max}(\mathbf{A})}|/|{\lambda_{\min}(\mathbf{A})}|.$$

  • Найти число обусловленности матрицы $$\mathbf{A}$$, выразив его через число обусловленности матрицы $$\mathbf{B}$$, если $$\mathbf{A} = {\mathbf{B}}^*{\mathbf{B}} > 0.$$

    Решение. Для самосопряженной положительной матрицы $$\mathbf{A}$$ имеем

    $$$ \|\mathbf{A}\| = \sup\limits_{\|\mathbf{u}\| \ne 0}\frac{(\mathbf{u}, \mathbf{Au})}{(\mathbf{u}, \mathbf{u})}. $$$

    Тогда

    $$$ \mu (\mathbf{A}) = {\|\mathbf{A}\|}_3 \left\|{{\mathbf{A}}^{- 1}}\right\|}_3 = \sup\limits_{\|\mathbf{u}\| \ne 0}\frac{(\mathbf{u, Au})}{(\mathbf{u, u})} \sup\limits_{\|{u}\| \ne 0}\frac{(\mathbf{u}, \mathbf{A}^{- 1}\mathbf{u})}{(\mathbf{u, u})} = \\ = \sup\limits_{\|\mathbf{u}\| \ne 0} \frac{({\mathbf{Bu, Bu}})}{(\mathbf{u,u})}\sup\limits_{\|\mathbf{u}\| \ne 0}\frac{({\mathbf{B}}^{- 1}\mathbf{u},{\mathbf{B}}^{- 1}\mathbf{u})}{(\mathbf{u, u})} = {\|{\mathbf{B}}\|}_3^2 {\left\|{{\mathbf{B}}^{- 1}}\right\|}_3^2, $$$

    откуда

    $$\mu (\mathbf{A}) = \mu ^2({\mathbf{B}}).$$
  • Показать, что норма матрицы

    $${\|\mathbf{A}\|}_2 = \max\limits_{1 \le j \le n}\sum\limits_{j= 1}^n{|{a_{ij}}|}$$

    согласована с нормой вектора

    $${\|\mathbf{u}\|}_2 = \sum\limits_{i = 1}^n{|{u_i}|}.$$

    Решение.

    $${\|\mathbf{Au}\|}_2 = \sum\limits_{i = 1}^n{\left|{\sum\limits_{j= 1}^n{a_{ij}u_j}}\right|} \le \sum\limits_{i = 1}^n{\sum\limits_{j = 1}^n{|{a_{ij}}|}} \cdot |{u_j}| \le \sum\limits_{j = 1}^n{|{u_j}|} \cdot \sum\limits_{i = 1}^n{|{a_{ij}}|} \le \\ \le (\max\limits_{1 \le i \le n}\sum\limits_j{|{a_{ij}}|}) \cdot {\|\mathbf{u}\|}_2 = {\|\mathbf{A}\|}_2 {\|\mathbf{u}\|}_2.$$

    Положим

    $$\max \sum\limits_{i = 1}^n{|{a_{ij}}|} = \sum\limits_{i = 1}^n{|{a_{ik}}|}.$$

    Покажем, что существует вектор $$\mathbf{v}$$, для которого достигается равенство. В качестве такового можно взять вектор $$\mathbf{v}$$ с компонентами $${v}_i = 0, i \ne k, {v}_k = 1.$$

    Таким образом, норма матрицы $${\|\mathbf{A}\|}_2 = \max\limits_{1 \le j \le n}\sum {|{u_{ij}}|}$$ согласована с нормой вектора $${\|\mathbf{u}\|}_2 = \sum\limits_{i = 1}^n{|{u_i}|}.$$

  • Дана жорданова клетка порядка n

    $$\mathbf{A}= \left( \begin{array}{ccccccc} 1 {d} 0 \ldots \ldots 0 0 \\ 0 1 {d} \ldots \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots 1 {d} \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots \ldots \ldots 1 {d}\\ 0 0 \ldots \ldots \ldots \ldots 1 \\ \end{array} \right).$$

    Найти $$\mu (\mathbf{A})$$ и оценить возмущение в компоненте $$u_1$$ решения системы $$\mathbf{Au} = \mathbf{f}$$, если компонент fn вектора f возмущен на величину $$\varepsilon.$$

    Решение. Из $$\mathbf{Au}= \mathbf{f}$$ следует, что $$\mathbf{u}=\mathbf{A}^{- 1}\mathbf{f}.$$

    С помощью обратной подстановки un = 1, un - 1 = ... находим компоненты матрицы

    $$\mathbf{A}^{- 1}= \left( \begin{array}{ccccccc} 1 {- d} {d^2} \ldots \ldots {( - d)^{n - 2}} {( - d)^{n - 1}}\\ 0 1 {- d} \ldots \ldots {( - d)^{n - 3}} {( - d)^{n - 2}}\\ 0 0 1 \ldots \ldots {( - d)^{n - 4}} {( - d)^{n - 3}}\\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 0 \ldots \ldots 1 {- d}\\ 0 0 0 \ldots \ldots 0 1 \\ \end{array} \right).$$

    В этом случае $$$ {\|\mathbf{A}\|}_1 = 1 + |{d}|, {\left\|{\mathbf{A}^{- 1}}\right\|}_1 = 1 + |{d}|+{d}^2 + \ldots + {|{d}|}^{n - 1} = \frac{{|{d}|}^n - 1}{|{d}| - 1} $;$$

    Видно, что при | d | > 1 матрица $$\mathbf{A}$$ плохо обусловлена, при | d | < 1 - хорошо. При n = 20 и d = 5 имеем $$\mu (\mathbf{A}) \approx 10^{14}.$$

    Компонент $$$ \tilde{u}_1 $$$ решения возмущенной системы $$\tilde{\mathbf{u}} = {\mathbf{A}}^{- 1}{\mathbf{\tilde{f}}}$$ будет

    $$$ \tilde{\mathbf{u}}_1 = f_1 - df_2 + d^2f_3 + \ldots + {(- d)}^{n - 2}f_{n - 1} + {( - d)}^{n - 1}(f_n + \varepsilon ) = u_1 + {(- d)}^{n - 1}\varepsilon, $$$

    где u1 — компонент решения невозмущенной системы $$\mathbf{Au} = \mathbf{f}$$

    Отсюда видно, что при | d | > 1 возмущение в n компоненте вектора $$\mathbf{f}$$ увеличивается в компоненте u1 вектора $$\mathbf{u}$$ в | d |n - 1 раз, а при | d | < 1 — в | d |n - 1 раз убывает.

  • Пусть в системе линейных уравнений
    u1  + 0,99u2  = f1, 
    0,99u1  + u2  = f2

    вектор $$\mathbf{f} = {(f_1, f_2)}^{T}$$ получает приращение $$\mathbf{\Delta f} = {(\delta f_1, \delta f_2)}^{T}$$, а решение получает приращение $$\Delta\mathbf{u} = {(\delta u_1, \delta u_2)}^{T}$$, Найти наименьшее число $$\mu,$$ при котором независимо от $$\mathbf{f}$$ и $$\Delta \mathbf{f}$$ выполняется оценка$$\frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \mu \frac{\|{\Delta \mathbf{f}}\|}{\|\mathbf{f}\|}.$$

    Решить задачу, используя нормы матриц $${\|\cdot\|}_1, {\|\cdot\|}_2 , {\|\cdot\|}_3.$$

    Решение. Для возмущенной задачи $$\mathbf{A}(\mathbf{u} + \Delta\mathbf{u}) = \mathbf{f} + \Delta\mathbf{f}$$, из линейности системы следует $$\mathbf{A}\Delta\mathbf{u} = \Delta\mathbf{f}.$$ Для возмущения решения выполняется равенство $$\Delta\mathbf{u} = {\mathbf{A}}^{- 1}\Delta\mathbf{f}.$$ Тогда $$$ \|{\Delta\mathbf{u}}\| \le \|{\mathbf{A}^{- 1}}\| \cdot \|\mathbf{A}\| \cdot \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|} \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} $.$$

    Отсюда сразу следует $$$ \|{\Delta\mathbf{u}}\| \le \left\|{{\mathbf{A}}^{- 1}}\right\| \cdot \|\mathbf{A}\| \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|}\|\mathbf{u}\| $$$, так как $$$ \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} \le \|{\Delta\mathbf{u}}\| $.$$

    Тогда искомая оценка будет $$$ \frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \left\|{{\mathbf{A}}^{- 1}}\| \cdot \|\mathbf{A}\| \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|}.$$ Обозначим $$\mu = \|{{\mathbf{A}}^{- 1}}\| \cdot \|\mathbf{A}\| $.$$ В этом случае наименьшим числом, при котором выполняется оценка $$$ \frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \mu \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|} $$$, является $$\mu = \|{{\mathbf{A}}^{- 1}}\| \cdot \|\mathbf{A}\|.$$ Это — число обусловленности системы уравнений. Численное решение в соответствующих нормах получается легко.

  • При заданном фиксированном $$\mathbf{f}$$ найти наименьшее число $$\nu,$$ при котором независимо от $$\mathbf{\Delta f}$$ выполняется оценка

    $$$ \frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \nu (f) \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|} $.$$

    Найти такую правую часть системы $$\mathbf{f}$$, которой соответствует наименьшее $$\nu,$$ а также само это значение при использовании третьей нормы матрицы.

    Решение.

    По условию задачи $$$ \nu \ge \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \cdot \frac{\|{\Delta\mathbf{u}}\|}{\|{\Delta\mathbf{f}}\|} $.$$ Рассмотрим, какие значения может принимать это число. Точная нижняя грань для такой оценки, очевидно, $$$ \inf\limits_{\|{\Delta\mathbf{f}}\| \ne 0}\nu = \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \cdot \sup\limits_{\|{\Delta\mathbf{f}}\| \ne 0} \frac{\left\|{{\mathbf{A}}^{- 1} \cdot \Delta\mathbf{f}}\right\|}{\|{\Delta\mathbf{f}}\|} $.$$ Так как надо найти оценку, не зависящую от начального возмущения (при решении конкретной задачи оно, очевидно, неизвестно), получим

    $$$ \nu = \inf\limits_{\|{\Delta\mathbf{f}}\| \ne 0}\nu = {\left\|{{\mathbf{A}}^{- 1}}\right\|} \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|}. $$$

    Для точной нижней грани выполнено $$$ \inf\limits_\mathbf{f}\nu (\mathbf{f}) = \left\|{{\mathbf{A}}^{- 1}}\right\| \times \\ \times {\left({\sup\frac{\|{{\mathbf{A}}^{- 1}\mathbf{f}}\|}{\|\mathbf{f}\|}}\right)}^{- 1} = 1 $.$$ Можно оценить и точную верхнюю грань:

    $$$ \sup\limits_\mathbf{f}\nu = \left\|{{\mathbf{A}}^{- 1}}\right\| \sup\limits_{\mathbf{u}}\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \left\|{{\mathbf{A}}^{- 1}}\right\| \cdot \|\mathbf{A}\| = \mu $$$

    Таким образом, $$1 \le \nu \le \mu.$$

    Ответим на вопрос, при каких $$\mathbf{f}$$ достигается $$\sup\limits_{\mathbf{f}}\nu $$ и $$\inf\limits_{\mathbf{f}}\nu.$$ Для этого используем разложение вектора правой части системы по базису из собственных векторов матрицы $${\mathbf{A}}^2$$ (без ограничения общности полагаем, что такой базис существует). В этом базисе$$\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \sqrt{\frac{({\mathbf{A}}^*\mathbf{Au, u})}{(\mathbf{u, u})}} - \sqrt{\frac{(\sum{\lambda_i\xi_i\omega_i, \xi_i\omega_i})}{(\xi_i\omega_i, \xi_i\omega_i )}} = \sqrt{\frac{\sum{\lambda_i\xi_i^2}}{\sum{\xi_i^2}}},$$ $$$ \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A})} \le \sqrt{\frac{\sum {\lambda_i\xi_i^2}}{\sum{\xi_i^2}}} = \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} \le \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A})} $.$$

    Для самосопряженной положительной матрицы $${\mathbf{A}}^* = \mathbf{A} > 0$$ получаем

    $$$ |{\lambda_{\min}(\mathbf{A})}| \le \sqrt{\frac{\sum\limits_i {\lambda_i \xi_i^2}}{\sum\limits_i{\xi_i^2}}} = \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} \le |{\lambda_{\max}(\mathbf{A})}|. $$$

    В то же время

    $$$ \frac{\|{{\mathbf{A\omega}}_i}\|}{\|{\omega_i}\|} = \sqrt{\frac{(\mathbf{A}*{\mathbf{A\omega}}_i, \omega_i )}{(\omega_i, \omega_i )}} = \sqrt{\frac{\lambda_i (\omega_i, \omega_i )}{(\omega_i ,\omega_i )}} = \sqrt{\lambda_i (\mathbf{A}*\mathbf{A})}, $$$

    для самосопряженной положительной матрицы $$$ \frac{\|{{\mathbf{A\omega}}_i}\|}{\|{\omega_i}\|} = |{\lambda_i (\mathbf{A})}| $.$$

    $$$ \sup\limits_\omega\frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A})};\quad \inf\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A})}. $$$

    В случае $${\mathbf{A}}^* = \mathbf{A} > 0$$ получаем $$\sup\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = |{\lambda_{\max}(\mathbf{A})}| \inf\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = |{\lambda_{\min}(\mathbf{A})}| $.$$

    Таким образом,

    $$$ \sup\limits_\mathbf{u} \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A});} \sup\limits_\omega\frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A})}, $$$

    $$$ \inf\limits_\mathbf{u}\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A});} \inf\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A})}. $$$

  • Выписать формулы итерационных методов Якоби, Зейделя, верхней релаксации для СЛАУ

    $$\mathbf{Ax}= \mathbf{f}, \mathbf{A}= \left( \begin{array}{cc} 2 1 \\ 1 2 \\ \end{array}\right), \mathbf{x} = {(1,-1)}^{T}, \mathbf{f} = {(1,-1)}^{T}$$

    или

    2u + v = 1, 
    u + 2v = - 1.

    Оценить количество итераций для метода Якоби.

    (Решение системы: u = 1; v = -1 ).

    Решение.

    Итерационные методы Якоби, Зейделя, релаксации соответственно записываются

    $$\left\{ \begin{array}{ccc} u_{k + 1} = - \frac{1}{2}v_k + \frac{1}{2}, \\ v_{k + 1} = - \frac{1}{2}u_k - \frac{1}{2}, \\ \end{array} \right.$$ $$(u_0, v_0 ) = (u_0^0, v_0^0 )$$,

    или $${\mathbf{x}}_{k+ 1} = {\mathbf{Bx}}_k + \mathbf{f}$$,

    $${\mathbf{B}}= \left( \begin{array}{cc} 0 {- 0,5}\\ {- 0,5} 0 \\ \end{array} \right),$$

    $$\begin{gather*} u_{k + 1} = - \frac{1}{2}v_k + \frac{1}{2}, \\ v_{k + 1} = - \frac{1}{2}u_{k + 1} - \frac{1}{2}; \\ u_{k + 1} = (1 - \tau )u_k + \frac{\tau}{2}(1 - v_k), \\ v_{k + 1} = (1 - \tau )v_k - \frac{\tau}{2}(1 + u_k). \end{gather*} $$

    Оценка количества итераций проводится по формуле

    $$$ k \approx \ln \frac{\varepsilon }{\varepsilon_0 }/\ln \|\mathbf{B}\| = \ln 10^{- 3}/\ln \frac{1}{2}. $$$
  • Представить графическую интерпретацию итерационного метода Якоби для СЛАУ

    $$\begin{gather*} a_{11}u + a_{12}v = f_1, \\ a_{21}u + a_{22}v= f_2, \\ a_{11} \ne 0, a_{22} \ne 0 \end{gather*}$$

    Решение. Итерационный процесс Якоби записывается как

    $$\begin{gather*}u_{k+ 1} = - \frac{a_{12}}{a_{11}}v_k + \frac{f_1}{a_{11}}, \\ v_{k+ 1} = - \frac{a_{21}}{a_{22}}u_k + \frac{f_2}{a_{22}}. \end{gather*}$$(рис 2.1)

    Первое уравнение соответствует прямой 1, второе — прямой 2. Вычисление u1 соответствует проведению отрезка, параллельного оси 0u и (при v = v0 ) до пересечения с прямой 1 ; точка пересечения даст первое приближение u1. Вычислению v1 соответствует проведение из точки A1 прямой, параллельной оси 0v до пересечения с прямой 2 и т.д. до сходимости итераций к точке пересечения прямых 1 и 2 (Ak) с заданной точностью.

  • При каких a,b сходится метод простой итерации $${\mathbf{u}}_{k+ 1} = {\mathbf{Bu}}_k + \mathbf{f}$$, где

    $${\mathbf{B}} = \left( \begin{array}{ccc} {a} {b} 0 \\ {b} {a} {b}\\ 0 {b} {a} \\ \end{array} \right).$$

    Решение. Для того, чтобы метод простой итерации сходился к решению соответствующей СЛАУ, необходимо и достаточно, чтобы все собственные значения матрицы $$\mathbf{B}$$ по модулю были меньше единицы: $$|\lambda _{i}| < 1.$$ Решаем характеристическое уравнение

    $$\begin{gather*} det (\mathbf{B}- \lambda \mathbf{E}) = {\left| \begin{array}{ccc} {a - \lambda } {b} 0 \\ {b} {{a}-{\lambda}} {b}\\ 0 {b} {{a}-{\lambda}}\\ \end{array} \right|} = \\ = (a - \lambda ) {\left| \begin{array}{cc} {{a}-{\lambda}} {b}\\ {b} {{a}-{\lambda}}\\ \end{array} \right|} - b{\left| \begin{array}{cc} {b} {a}\\ 0 {{a}-{\lambda}}\\ \end{array} \right|} = \\ = (a - \lambda )\left[{{(a - \lambda )}^2 - b^2}\right] - b^2 (a - \lambda ) = \\ = (a - \lambda )(a - \lambda - \sqrt{2b})(a - \lambda + \sqrt{2b}) = 0, \end{gather*}$$

    откуда получим условие сходимости итерационного метода

    $$|{a}| < 1, |{a \pm \sqrt{2b}}| < 1.$$
  • Найти условие сходимости итерационных методов Якоби и Зейделя для СЛАУ $$\mathbf{Au} = \mathbf{f}$$ с матрицей

    $$\mathbf{A}$$ вида$$\mathbf{A} = \left( \begin{array}{ccc} {a} {b} 0 \\ {b} {a} {b}\\ 0 {b} {a}\\ \end{array} \right).$$

    Решение. Для метода Якоби

    $${\mathbf{u}}_{k + 1} = {\mathbf{Bu}}_k + \mathbf{f},\quad \mbox{где}\quad {\mathbf{B}} = -{\mathbf{D}}^{- 1}({\mathbf{L}} + {\mathbf{U}}).$$

    Имеет место уравнение:

    $${\mathbf{B\omega}} = \lambda \omega$$, где $$\lambda$$ и $$\mathbf{\omega}$$ — собственное число и собственный вектор, соответственно. В таком случае $$- {\mathbf{D}}({\mathbf{L}} + {\mathbf{U}})\omega = \lambda\omega$$, или: $$({\mathbf{L}} + {\mathbf{U}} + \lambda{\mathbf{D}}) \omega = 0$$, откуда (предполагаем наличие нетривиальных решений у последней СЛАУ ):

    $$\det ({\mathbf{L}} + {\mathbf{U}} + \lambda{\mathbf{D}}) = 0.$$

    Решим это уравнение:

    $$\det {\left| \begin{array}{ccc} \lambda a b 0\\ b \lambda a b\\ 0 b \lambda a \end{array} \right|} = 0,$$

    откуда получим условия сходимости итерационного метода Якоби:

    $$$ |{\frac{b}{a}}| < 2^{- \frac{1}{2}}. $$$

    Для метода Зейделя имеем

    $${\mathbf{B}} = {- (\mathbf{D} + \mathbf{L})}^{- 1}{\mathbf{U}},\quad {\mathbf{B\omega}} = \lambda\omega.$$

    В таком случае

    $${- (\mathbf{D} + \mathbf{L})}^{- 1}{\mathbf{U\omega}} = \lambda\omega$$,

    откуда следует уравнение

    $$\det (\lambda{\mathbf{L}} + \lambda {\mathbf{D}} + {\mathbf{U}}) = 0$$,

    Вычислив детерминант, придем к алгебраическому уравнению

    $$\det {\left( \begin{array}{ccc} \lambda a b 0 \\ \lambda b \lambda a b \\ 0 \lambda b \lambda a \end{array} \right) } = a{\lambda}^2(a^2\lambda - 2b^2) = 0.$$

    В таком случае, поскольку $$$ \lambda_{1,2}= 0, \lambda_3 = 2\frac{b^2}{a^2} $$$, получим условие сходимости метода Зейделя: $$$ \frac{b}{a} < 2^{- \frac{1}{2}}$.$$ Видно, что в данном случае условия сходимости для обоих методов совпадают.

  • Страницы:

    К численному решению систем линейных алгебраических уравнений (СЛАУ) сводятся многие задачи математической физики. Математические модели, представляющие собой СЛАУ большой размерности, встречаются в математической экономике, биологии и т.п. Теория получения приближенных решений СЛАУ — часть вычислительной линейной алгебры. Сама вычислительная линейная алгебра, по-видимому, является наиболее обширной темой во всем курсе вычислительной математики. По прикладной линейной алгебре существует обширная литература (например, [2.1, 2.2, 2.3, 2.4, 2.5], а программы, реализующие наиболее популярные алгоритмы вычислительной линейной алгебры, являются неотъемлемой частью прикладного программного обеспечения, в частности, современных математических пакетов.

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

    Рассмотрим СЛАУ вида

    $$$ \mathbf{Au}= \mathbf{f},$$$

    где $$\mathbf{A}$$ — невырожденная ( $$\det \mathbf{A}\ne 0$$ ) квадратная матрица размером n x n

    $$\mathbf{A}= \left( \begin{array}{cccc} a_{11} a_{12} \ldots a_{1n}\\ a_{21} a_{22} \ldots a_{2n}\\ \ldots \ldots \ldots \ldots \\ a_{n1} a_{n2} \ldots a_{nn}\\ \end{array}\right),$$

    $$\mathbf{u}={\{u_1, \ldots , u_n \}}^T$$ — вектор-столбец решения, $$\mathbf{f}={\{f_1, \ldots , f_n \}}^T$$ — вектор-столбец правой части.

    Так как матрица системы — невырожденная, $$\Delta = \det\mathbf{A}\ne 0$$, то решение системы (2.1) существует и единственно.

    Из курса линейной алгебры [2.6] известно правило Крамера нахождения решения. Так, каждый компонент вектора неизвестных может быть вычислен как

    $$$ u_i = \frac{\Delta_i}{\Delta }, $$$

    где $$\Delta _{i}$$ — определитель матрицы, получаемой из $$\mathbf{A}$$ заменой i столбца столбцом правых частей. Однако несложные арифметические оценки позволяют понять, что использование этой формулы приводит к неоправданно большим затратам машинного времени [2.3]. Так, например, если одно слагаемое в $$\Delta$$ вычисляется за 10 -6 с, то время расчета для n = 100 на существующих в момент написания книги компьютерах будет измеряться годами.

    На самом деле в настоящее время с помощью компьютеров численно решаются СЛАУ намного более высокого порядка (примерно до $$n \approx 10^{6}$$ ). Такие решения осуществляются при помощи прямых или итерационных численных методов. Прямые методы позволяют в предположении отсутствия ошибок округления (при проведении расчетов на идеальном, т.е. бесконечноразрядном компьютере) получить точное решение задачи за конечное число арифметических действий Итерационные методы, или методы последовательных приближений, позволяют вычислить последовательность $$\{{\mathbf{u}}_k\}$$, сходящуюся к решению задач при $$k \to \infty$$ (на практике, разумеется, ограничиваются конечным k, в зависимости от требуемой точности).

    Однако неточность в задании правых частей и элементов матрицы $$\mathbf{A}$$ может приводить к значительным погрешностям при вычислении решения (2.1). В первой лекции на примере было показано, что такое явление наблюдается в случае плохо обусловленной системы. Остановимся подробнее на важном вопросе оценки погрешности решения СЛАУ.

    Для этого напомним некоторые сведения из функционального анализа, которые понадобятся в дальнейшем.

    2.2. Согласованные нормы векторов и матриц

    В векторном n -мерном линейном нормированном пространстве введем следующие нормы вектора:

    кубическая:

    $${\|\mathbf{u}\|}_1 = \max\limits_{1 \le i \le n}|u_i|,$$

    октаэдрическая:

    $${\|\mathbf{u}\|}_2 = \sum\limits_{i = 1}^n|u_i|,$$

    евклидова (в комплексном случае — эрмитова):

    $${\|\mathbf{u}\|}_3 ={\left(\sum\limits_{i = 1}^n{|u_i|}^2\right)}^{1/2}={(\mathbf{u}, \mathbf{u})}^{1/2}.$$

    Рассмотрим квадратную матрицу $$\mathbf{A}$$ и связанное с ней линейное преобразование $$\mathbf{v}= \mathbf{Au}$$, где $$\mathbf{v}, \mathbf{u} \in L^n$$ ( Lnn -мерное линейное нормированное пространство). Норма матрицы определяется как действительное неотрицательное число, характеризующее это преобразование и определяющееся как

    $$$ \|\mathbf{A}\|= \sup\limits_{\|\mathbf{u}\| \ne 0} \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}$$$

    Укажем некоторые свойства нормы матрицы:

    $$\begin{gather*} \|\mathbf{A + B}\|= \|\mathbf{A}\|+ \|\mathbf{B}\|, \\ \|\mathbf{\lambda A}\|=|\lambda| \|\mathbf{A}\|, \\ \|\mathbf{AB}\| \le \|\mathbf{A}\| \|\mathbf{B}\|, \\ \|\mathbf{A}\|= 0 \text{ тогда и только тогда, когда }\mathbf{A}= 0. \end{gather*}$$

    Заметим, что норму матрицы (2.3) называют подчиненной норме вектора. Говорят, что норма матрицы $$\mathbf{A}$$ согласована с нормой вектора $$\mathbf{u}$$, если выполнено условие

    $$\|\mathbf{Au}\| \le \|\mathbf{A}\|\|\mathbf{u}\|.$$

    Нетрудно видеть, что подчиненная норма согласована с соответствующей метрикой векторного пространства. В самом деле

    $$$ \|\mathbf{A}\|= \sup\limits_{\|\mathbf{u}\| \ne 0} \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}\ge \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}\mbox{ откуда }\|\mathbf{Au}\| \le \|\mathbf{A}\|\cdot \|\mathbf{u}\|. $$$

    Согласованные с введенными выше нормами векторов нормы матриц будут определяться следующим образом:

    $$\begin{gather*} {\|\mathbf{A}\|}_1 = \max\limits_{1 \le i \le n}\sum\limits_{j = 1}^n|a_{ij}|, \\ {\|\mathbf{A}\|}_2 = \max\limits_{1 \le j \le n}\sum\limits_{i = 1}^n{|a_{ij}|}, \\ {\|\mathbf{A}\|}_3 = \sqrt{\max\limits_{1 \le i \le n} \lambda^i (\mathbf{A}^* \cdot \mathbf{A})}. \end{gather*}$$

    Покажем, как получается выражение для согласованной нормы матрицы $${\|\mathbf{A}\|}_1 $$, соответствующей норме вектора $${\|\mathbf{u}\|}_1.$$

    Вычислим норму вектора $${\|\mathbf{Au}\|}_1$$:

    $$\begin{multline*} {\|\mathbf{Au}\|}_1 = \max\limits_i \left|{\sum\limits_j{a_{ij}u_j}}\right| \le \max\limits_i (\sum\limits_j{|{a_{ij}}|}|{u_j}|) \le \\ \le (\max\limits_i \sum\limits_j{|{a_{ij}}|}) \max\limits_j|{u_j}| = (\max\limits_i \sum\limits_j{|{a_{ij}}|}){\|\mathbf{u}\|}_1 , \end{multline*}$$

    откуда$$\frac{{\|\mathbf{Au}\|}_1}{{\|\mathbf{u}\|}_1}\le \max\limits_i \sum\limits_j |{a_{ij}}|.$$ По определению нормы матрицы как точной верхней грани отношения$$\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|}, \max\limits_j \sum\limits_i{|{a_{ij}}|} = {\|\mathbf{A}\|}_1 ,$$ если существует вектор, на котором точная верхняя грань достигается.

    Покажем, что таким вектором является, например,$${\mathbf{v}}_k = \{sign a_{k1}, \ldots , sign a_{kn}\}^T,$$ при этом допустим, что максимум в последнем неравенстве достигается при i = k.

    Поскольку $$\|{\mathbf{v}}_k\|= k$$, то $$\sum\limits_j{a_{kj}v_j} = \sum\limits_j {|a_{kj}|} = \max\limits_i \sum\limits_j{|{a_{ij}}|}.$$

    Тогда, в соответствии с выражением для первой нормы вектора, получаем

    $$\|{\mathbf{Av}}\|}_1 = \max\limits_i \sum\limits_j{|{a_{ij}}|}.$$

    Таким образом, точная верхняя грань в рассмотренном неравенстве достижима и действительно $${\|\mathbf{A}\|}_1 = \max \sum\limits_j{|{a_{ij}}|}.$$

    Для третьей нормы (2.2в)$$$ {\|\mathbf{A}\|}_3 = \sup\limits_\mathbf{u}\frac{{\|\mathbf{Au}\|}_3}{{\|\mathbf{u}\|}_3}= \sup\limits_\mathbf{u} \sqrt{\frac{(\mathbf{Au,Au})}{(\mathbf{u,u})}}= \\ = \sup\limits_\mathbf{u}\sqrt{\frac{(\mathbf{A}^*\mathbf{Au,u})}{(\mathbf{u,u})}} $$$

    Заметим, что матрица $$\mathbf{B}= \mathbf{A}^*\mathbf{A}$$ — симметричная. Без ограничения общности предположим, что все собственные числа матрицы различны. Матрица обладает всеми действительными собственными значениями, и каждому собственному числу соответствует собственный вектор. Все собственные векторы взаимно ортогональны. Можно рассмотреть ортонормированную систему собственных векторов $$\omega _{1}, \dots , \omega _{n}; \lambda _{1}, \dots , \lambda _{n}$$ — соответствующие им собственные значения. Любой вектор $$\mathbf{u}$$ можно представить в виде своего разложения по базису из собственных векторов: $$\sum\limits_i{\xi_i\omega_i}.$$ Кроме того, $$(\mathbf{A}^*\mathbf{A})\omega_i = \lambda_i \omega_i.$$ Поэтому

    $$$ \sup\limits_{\|\mathbf{u}\| \ne 0}\sqrt{\frac{(\mathbf{A}^* \mathbf{Au,Au})}{(\mathbf{u,u})}} = \sup\limits_{\|\mathbf{u}\| \ne 0}\sqrt{\sum\limits_i \frac{(\lambda_i\xi_i \omega_i, \xi_i \omega_i)}{(\xi_i\omega_i, \xi_i\omega_i)}} = \\ = \sup\limits_{\|\mathbf{u}\| \ne 0}\sqrt{\frac{\sum \lambda_i{\xi}^2_i}{\sum {\xi}^2_i}} = \sqrt{\max \lambda_i (\mathbf{A}^* \mathbf{A})}, $$$

    причем точная верхняя грань достигается при $$\mathbf{u}= \omega_i.$$ Действительно,

    $$$ \sup\limits_u \sqrt{\frac{(\mathbf{A}^* \mathbf{A}\omega_i, \omega_i)}{(\omega_i, \omega_i)}} = \sup\limits_u \sqrt{\lambda^i (\mathbf{A}^*\mathbf{A})} = \sqrt{\max\limits_i {\lambda_i (\mathbf{A}^* \mathbf{A})}}, $$$

    т.к. $$\mathbf{A}^*\mathbf{A}\omega_i = \lambda_i \omega_i$$, откуда $$(\mathbf{A}^* \mathbf{A}\omega_i, \omega_i) = \lambda_i (\omega_i, \omega_i)$$,

    $$$ \frac{(\mathbf{A}^*\mathbf{A}\omega_i, \omega_i)}{(\omega_i, \omega_i)} = \lambda_i. $$$

    В важном частном случае симметричной (самосопряженной) матрицы $$\mathbf{A}$$ имеем $$\lambda_{\mathbf{A}^* \mathbf{A}}^i = \lambda_{{\mathbf{A}}^2}^i = {|{\lambda_{\mathbf{A}}^i}|}^2$$, поэтому $${\|\mathbf{A}\|}_3 = \max\limits_i |{\lambda_{\mathbf{A}}^i}|.$$

    2.3. Обусловленность СЛАУ. Число обусловленности матрицы

    Понятия согласованных норм матриц и векторов позволяют оценить погрешности, возникающие при численном решении СЛАУ. Пусть и матрица, и правая часть системы заданы с некоторой погрешностью, тогда наряду с системой

    $$\mathbf{Au}= \mathbf{f}$$

    рассматривается система

    $$(\mathbf{A}+ \Delta\mathbf{A})(\mathbf{u}+ \Delta\mathbf{u}) = \mathbf{f}+ \Delta\mathbf{f}.$$

    Теорема. Пусть правая часть и невырожденная матрица СЛАУ (2.4) вида $$\mathbf{Au}= \mathbf{f}, \mathbf{u} \in L^n, \mathbf{f} \in L^n$$, получили приращения $$\Delta\mathbf{f}$$ и $$\Delta\mathbf{A}$$ соответственно. Пусть существует обратная матрица $$\mathbf{A}^{-1}$$ и выполнены условия $$$ \|\mathbf{A}\| \ne 0, \mu \frac{\|\mathbf{\Delta A}\|}{\|\mathbf{A}\|}< 1 $$$, где $$\mu = \|\mathbf{A}\| \cdot \left\|{\mathbf{A}^{- 1}}\right\| .$$ В этом случае оценка относительной погрешности решения $$\|{\Delta\mathbf{u}}\|/\|\mathbf{u}\|$$ удовлетворяет неравенству

    $$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \frac{\mu} {1 - \mu \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}} \left({\frac{\|\Delta \mathbf{f}\|}{\|\mathbf{f}\|}+ \frac{\|\Delta\mathbf{A}\|} {\|\mathbf{A}\|}}\right). $$$

    Доказательство.

    Из (2.5) следует, что $$\Delta\mathbf{u} = {\mathbf{A}}^{- 1}(\Delta\mathbf{f}- \Delta\mathbf{A} \mathbf{u}- \Delta\mathbf{A} \Delta\mathbf{u}).$$ Переходя в этом равенстве к норме и использовав неравенство треугольника, получаем

    $$$ \|{\Delta\mathbf{u}}\| \le \left\|{\mathbf{A}^{- 1}}\right\| \|{\Delta\mathbf{f}}\| + \left\|{\mathbf{A}^{- 1}}\right\| \|{\Delta\mathbf{A}}\| \|\mathbf{u}\| + \left\|{\mathbf{A}^{- 1}}\right\| \|{\Delta\mathbf{A}}\| \|{\Delta\mathbf{u}}\| , \mbox{ или } \\ \|{\Delta\mathbf{u}}\| \le \left\|{\mathbf{A}^{- 1}}\| \frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} \|\mathbf{f}\| + \left\|{\mathbf{A}^{- 1}}\right\| \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|} \|\mathbf{A}\| \|\mathbf{u}\| + \left\|{\mathbf{A}^{- 1}}\right\| \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|} \|\Delta\mathbf{u}\|. $$$

    Вводя обозначение $$\mu (\mathbf{A}) = \left\|{\mathbf{A}^{- 1}}\right\| \cdot \|\mathbf{A}\|$$, перепишем последнее равенство в виде

    $$$ \|\Delta\mathbf{u}\| \left(1 - \mu \frac{\|\Delta\mathbf{A}\|} {\|\mathbf{A}\|}\right) \le \mu \frac{\|\Delta \mathbf{f}\|}{\|\mathbf{f}\|} \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} + \mu \cdot \frac{\|\Delta \mathbf{A}\|} {\|\mathbf{A}\|} \|\mathbf{u}\| \le \\ \le \mu \frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} \|\mathbf{u}\| + \mu \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|} \|\mathbf{u}\| = \mu \left(\frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} + \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}\right) \|\mathbf{u}\| . $$$

    Заметим, что $$$ \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} \le \|\mathbf{u}\| $$$ т.к. $$\|\mathbf{f}\| = \|\mathbf{Au}\| \le \|\mathbf{A}\| \cdot \|\mathbf{u}\|.$$

    Тогда для оценки относительной погрешности решения окончательно получим

    $$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \frac{\mu} {1 - \mu \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}} (\frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} + \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}). $$$

    При $$\Delta A \approx 0$$ получаем оценку при наличии погрешности только правых частей

    $$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \mu \frac{\|\mathbf{\Delta f}\|}{\|\mathbf{f}\|},$$$

    если в (2.5) положить $$\Delta\mathbf{A} \cdot \Delta \mathbf{u} \approx 0$$, то

    $$$ \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \mu (\frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} + \frac{\|\Delta\mathbf{A}\|}{\|\mathbf{A}\|}). $$$

    В результате получено важное соотношение, показывающее, на сколько возрастают относительные ошибки решения СЛАУ в случае наличия относительных ошибок при задании правых частей и элементов матриц.

    Величина

    $$\mu (\mathbf{A}) = \left\|{\mathbf{A}^{- 1}}\right\| \|\mathbf{A}\|}$$

    называется числом обусловленности матрицы $$\mathbf{A}.$$ Число обусловленности определяет, насколько погрешность входных данных может повлиять на решение системы (2.1) . Почти очевидно, что всегда $$\mu \ge 1.$$ Действительно

    $$1 = \|\mathbf{E}\| = \left\|{\mathbf{A^{-1}A}}\right\| \le \left\|\mathbf{A^{-1}}\right\| \|\mathbf{A}\| = \mu.$$

    При $$\mu \approx 1 \div 10$$ ошибки входных данных слабо сказываются на решении и система (2.1) считается хорошо обусловленной. При $$\mu > > 10^{2} \div 10^{3}$$ система является плохо обусловленной.

    Пример. Решением системы

    $$\left\{ \begin{array}{l} 100u + 99v = 199 \\ 99u + 98v = 197 \\ \end{array} \right.$$

    будет пара чисел u = v = 1.

    Внесем возмущение в правые части системы:

    $$\left\{ \begin{array}{l} 100u + 99v = 198,99 \\ 99u + 98v = 197,01. \\ \end{array} \right.$$

    При этом решение заметно изменится: u = 2,97; v = -0,99. Воспользовавшись выбранными согласованными нормами, получим

    $$\begin{gather*} {\|\mathbf{f}\|}_1 = 199,\quad {\|\Delta\mathbf{f}\|}_1 = 10^{- 2}, \\ \delta f = \frac{{\|\Delta\mathbf{f}\|}_1}{{\|\mathbf{f}\|}_1} \approx 0,5 \cdot 10^{- 4} \mbox{ (это очень малая величина),} \\ {\|\mathbf{A}\|}_1 = {\left\|\mathbf{A}^{- 1}\right\|}_1 = 199, \mu = 199 \cdot 199 \approx 4 \cdot 10^4 . \end{gather*} $$

    Значит, $$$ \delta u = \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \le \mu \frac{\|\Delta\mathbf{f}\|}{\|\mathbf{f}\|} \approx 4 \cdot 10^4 \cdot \frac{10^{- 4}}{2}= 2 $$$, что согласуется с результатами решения возмущенной и невозмущенной задач. Для невозмущенной задачи $$\|\Delta\mathbf{u}\| \approx 2$$, $$\|\mathbf{u}\| = 1.$$

    Рассмотрим еще одно важное свойство. Число обусловленности матрицы, как было показано ранее, можно определить, как $$\delta u/\delta f \le \mu (\mathbf{A})$$, если $$\Delta\mathbf{A} \approx {\mathbf0}$$ при $$$ \delta u = \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|}$.$$ Можно ли найти более тонкую оценку отношения $$\delta u/\delta f$$, учитывающую зависимость обусловленности СЛАУ от выбора правых частей? В этом случае параметр обусловленности системы, вообще говоря, зависит и от $$\mathbf{f}$$, и от $$\Delta \mathbf{f}$$, и удовлетворяет неравенству $$$ \nu(\mathbf{f},\Delta\mathbf{f}) \ge \frac{\delta u}{\delta f} = \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \cdot \frac{\|\mathbf{f}\|} {\|\Delta\mathbf{f}\|} $.$$ Его можно определить как точную верхнюю грань отношения $$$ \frac{\delta u}{\delta f}$$$ по $$\Delta \mathbf{f}$$, что соответствует наихудшей ситуации. Тогда

    $$$ \nu (\mathbf{f}) = \sup\limits_{\Delta\mathbf{f}} \frac{\|\Delta\mathbf{u}\|}{\|\mathbf{u}\|} \frac{\|\mathbf{f}\|}{\|\Delta\mathbf{f}\|} = \sup\limits_{\Delta\mathbf{f}} \frac{\|\mathbf{f}\|}{\|\mathbf{u} \|} \frac{\|\Delta\mathbf{u}\|}{\|\Delta\mathbf{f}\|} = \\ = \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \sup\limits_{\Delta\mathbf{f}} \frac{\left\|\mathbf{A}^{- 1}\Delta\mathbf{f}\right\|}{\|\Delta\mathbf{f}\|} = \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \left\|{\mathbf{A}^{- 1}}\right\| . $$$

    Далее,

    $$$ \sup\limits_\mathbf{f} \left\|{\mathbf{A}^{- 1}}\right\| \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} = \left\|{\mathbf{A}^{- 1}}\right\| \cdot \sup\limits_\mathbf{f} \frac{\|A\mathbf{u}\|}{\|\mathbf{u}\|} = \left\|{\mathbf{A}^{- 1}}\right\| \cdot \|\mathbf{A}\| = \mu (\mathbf{A}), $$$

    с другой стороны

    $$$ \inf\limits_\mathbf{f}\nu (\mathbf{f}) = \inf\limits_\mathbf{f} \left\|{\mathbf{A}^{- 1}}\right\| \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} = \inf\limits_\mathbf{f} \left\|{\mathbf{A}^{- 1}}\right\| \sup\limits_\mathbf{f} {\left(\frac{\|\mathbf{u}\|}{\|\mathbf{f}\|}\right)}^{- 1} = \\ = \left\|{\mathbf{A}^{- 1}}\right\| {\left(\sup\limits_\mathbf{f}\frac{\left\|{\mathbf{A}^{- 1}\mathbf{f}}\right\|}{\|\mathbf{f}\|}\right)}^{- 1} = 1.$$$

    Параметр $$\nu (\mathbf{f})$$, характеризующий обусловленность системы, зависит от правых частей. Более тонкая его оценка есть $$$ \nu (\mathbf{f}) = \left\|{\mathbf{A}^{- 1}}\right\| \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|}$$$, причем $$1 \le \nu (\mathbf{f}) \le \mu .$$ Так как такую оценку провести не всегда возможно, то чаще используется точная верхняя грань $$\left\|{\mathbf{A}^{- 1}} \right\| \|\mathbf{A}\|.$$ Такая оценка, конечно, может быть существенно завышенной.

    Можно также показать, что для симметричной матрицы $$\mathbf{A}$$ имеет место $$\mu = \left|{\max\limits_k \lambda_{\mathbf{A}}^k}\right| / \left|{\min\limits_k \lambda_{\mathbf{A}}^k}\right\|$$, т.е. обусловленность СЛАУ зависит от ее спектральных свойств. Это следует из определения третьей нормы матрицы $${\|\mathbf{A}\|}_3 = \left|{\max\limits_k \lambda_{\mathbf{A}}^k}\right|$$ и соотношения $${\left\|{\mathbf{A}^{- 1}}\right\|}_3 = {\left|{\min\limits_k \lambda_{\mathbf{A}}^k}\right|}^{- 1}$$, которое предлагается доказать самостоятельно.

    2.4. Прямые методы решения СЛАУ

    Трудность численного решения рассматриваемых СЛАУ определяется видом матрицы $$\mathbf{A}.$$ Легко получается решение системы с диагональной матрицей, в этом случае система распадается на n линейных уравнений, каждое из которых содержит лишь одну неизвестную величину. Для диагональной системы очевидны явные формулы

    $$u_{k}= f_{k}/ a_{kk}, k = 1 \div n.$$

    В случае треугольной матрицы

    $$\mathbf{A}= \left( \begin{array}{cccc} a_{11} a_{12} \ldots a_{1n} \\ 0 a_{22} \ldots a_{2n} \\ \ldots \ldots \ldots \ldots \\ 0 0 \ldots a_{nn} \end{array} \right)$$

    из последнего уравнения получаем $$u_n = f_n /a_{nn}, (a_{ii} \ne 0 \mbox{, т.к. } \Delta =\det \mathbf{A} \ne 0).$$

    Решая систему линейных уравнений с треугольной матрицей "снизу вверх", для uk имеем

    $$$ u_k= \frac{1}{a_{kk}}(f_k- a_{kn}u_n - a_{k,n- 1}u_{n - 1} - \ldots - a_{k,k + 1}u_{k + 1}), \\ \mbox{или }u_k= a_{kk}^{- 1}(f_k - \sum\limits_{j = k + 1}^n{a_{kj}u_j}),\quad k = n - 1, n - 2, \ldots , 1. $$$

    Можно оценить количество арифметических действий, затрачиваемых на решение такой системы. Оно составляет O(n2) .

    Пусть теперь система уравнений имеет матрицу общего вида. Стандартная схема такого решения разделяется на два этапа: прямой ход — приведение матрицы к треугольному виду, и обратный — вычисление решения системы.

    2.4.1. Метод исключения Гаусса

    Рассматривается система уравнений

    $$\left\{ \begin{array}{ccc} {a_{11}u_1 + a_{12}u_2 + \ldots + a_{1n}u_n = f_1 ,} \\ {a_{21}u_1 + a_{22}u_2 + \ldots + a_{2n}u_n = f_2 ,} \\ \ldots \\ {a_{n1}u_1 + a_{n2}u_2 + \ldots + a_{nn}u_n = f_n .} \\ \end{array} \right.$$

    Прямой ход метода Гаусса состоит в следующем. Положим, что $$a_{11} \ne 0$$ и исключим u1 из всех уравнений, начиная со второго, для чего ко второму уравнению прибавим первое, умноженное на $$-a_{21}/a_{11} = - \eta _{21}$$, к третьему прибавим первое, умноженное на $$-a_{31}/a_{11} = - \eta _{31}$$ и т.д. После этих преобразований получим эквивалентную систему:

    $$\left\{ \begin{array}{l} {a_{11}u_1 + a_{12}u_2 + \ldots + a_{1n}u_n = f_1 ,} \\ {a_{22}^1{u_2} + \ldots + a_{2n}^1{u_n} = f_2 ^1 ,} \\ \ldots \\ {a_{n2}^1{u_2} + \ldots + a_{nn}^1{u_n} = f_n^1 ,} \\ \end{array} \right.$$

    в которой коэффициенты и правые части определяются следующим образом:

    $$a_{ij}^1 = a_{ij}- \eta_{i1}a_{1j};\quad f_i^1 = f_i - \eta_{i1}f_1;\quad i,j = 2, \ldots , n.$$

    Теперь положим $$a_{22}^1 \ne 0.$$ Аналогично, вычислив множители второго шага $$- a_{i2}^1/a_{22}^1 = -\eta_{i2}\quad (i = 3, \ldots , n)$$, исключаем u2 из последних (n - 2) уравнений системы (2.17). В результате преобразований получим новую эквивалентную систему уравнений

    $$\left\{ \begin{array}{l} {a_{11}u_1 + a_{12}u_2 + a_{13}u_3 + \ldots + a_{1n}u_n = f_1} \\ {a_{22}^1 u_2 + a_{23}^1 u_3 + \ldots + a_{2n}^1 u_n = f_2^1} \\ {a_{33}^2 u_3 + \ldots + a_{3n}^2 u_n = f_3^2} \\ \ldots \\ {a_{n3}^2 u_3 + \ldots + a_{nn}^2 u_n = f_n^2} \\ \end{array} \right.$$

    в которой $$a_{ij}^2 = a_{ij}^1 - \eta_{i2}a_{2j}^1;\quad f_i^2 = f_i^1 - \eta_{i2}f_2^1;\quad i,j = 3, \ldots , n.$$ Продолжая алгоритм, т.е. исключая ui (i = k + 1, ..., n), приходим на n - 1 шаге к системе с треугольной матрицей

    $$\left\{ \begin{array}{l} a_{11}u_1 + a_{12}u_2 + a_{13}u_3 + \ldots + a_{1n}u_n = f_1 \\ a_{22}^1 u_2 + a_{23}^1 u_3 + \ldots + a_{2n}^1 u_n = f_2^1 \\ a_{33}^2 u_3 + \ldots + a_{3n}^2 u_n = f_3^2 \\ \ldots \\ a_{nn}^{(n - 1)}u_n = f_n^{(n - 1)}. \\ \end{array} \right.$$

    Обратный ход метода Гаусса позволяет определить решение системы линейных уравнений. Из последнего уравнения системы находим un ; подставляем это значение в предпоследнее уравнение, получим un-1. Поступая так и далее, последовательно находим un-2, un-3, ..., u1. Вычисления компонент вектора решения проводятся по формулам

    $$\begin{gather*} u_n = f_n^{(n - 1)}/a_{nn}^{(n - 1)}, \\ \ldots \\ u_k = \frac{1}{a_{kk}^{(k - 1)}}(f_k^{(k - 1)}- a_{k,k + 1}^{(k - 1)}u_{k + 1}- \ldots - a_{kn}^{(k - 1)}u_n ),\quad k = n - 1, n - 2, \ldots , 1, \\ \ldots \\ u_2 = \frac{1}{a_{22}^1}(f_2^1 - a_{23}^1 u_3 - \ldots - a_{2n}^1 u_n ), \\ u_1 = \frac{1}{a_{11}}(f_1 - a_{12}u_2 - \ldots - a_{1n}u_n ). \end{gather*} $$

    Этот алгоритм прост и легко реализуем при условии, что $$a_{11} \ne 0$$, $$a_{22} \ne 0$$ и т.д. Количество арифметических действий прямого хода $$\approx 2/3n^{3}$$, обратного $$\approx n^{2}.$$ Это уже приемлемая для современных компьютеров величина.

    Рассмотрим метод Гаусса с позиции операций с матрицами. Пусть $${\mathbf{A}}_1$$ — матрица системы после исключения первого неизвестного

    $${\mathbf{A_1}}_1 = \left( \begin{array}{ccccc} a_{11} a_{12} a_{13} \ldots a_{1n}\\ 0 a^1_{22} a^1_{23} \ldots a^1_{2n}\\ 0 a^1_{32} a^1_{33} \ldots a^1_{3n}\\ \ldots \ldots \ldots \ldots \ldots \\ 0 a^1_{n2} a^1_{n3} \ldots a^1_nn \\ \end{array} \right),\quad {\mathbf{f}}_1 = {\{f_1, f_2^1, \ldots , f_n^1\}}^T.$$

    Введем новую матрицу

    $${\mathbf{N}}_1 = \left(\begin{array}{ccccc} 1 0 0 \ldots 0 \\ - \eta_{21} 1 0 \ldots 0 \\ - \eta_{31} 0 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ - \eta_{n1} 0 0 \ldots 1 \\ \end{array} \right).$$

    Очевидно, $${\mathbf{A}}_1={\mathbf{N}}_1\mathbf{A}$$, $${\mathbf{f}}_1={\mathbf{N}}_1\mathbf{f}.$$ Аналогично, после второго шага система приводится к виду $${\mathbf{A}}_2\mathbf{u}={\mathbf{f}}_2$$, где $${\mathbf{A}}_2={\mathbf{N}}_2{\mathbf{A}}_1$$, $${\mathbf{f}}_2={\mathbf{N}}_2{\mathbf{f}}_1$$,

    $${\mathbf{A}}_1 = \left( \begin{array}{ccccc} a_{11} a_{12} a_{13} \ldots a_{1n} \\ 0 a_{22}^1 a_{23}^1 \ldots a_{2n}^1 \\ 0 0 a_{33}^2 \ldots a_{3n}^2 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 a_{n3}^2 \ldots a_{nn}^2 \\ \end{array} \right), \quad {\mathbf{N}}_2 = \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ 0 1 0 \ldots 0 \\ 0 - \eta_{32} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 - \eta_{n2} 0 \ldots 1 \\ \end{array} \right), \\ {{\mathbf{f}}_2} = \left\{{f_1, f_2^1, f_3^2, \ldots , f_n^2}\right\}^T.$$

    После n - 1 шага получим $${\mathbf{A}}_{n - 1}\mathbf{u} = {\mathbf{f}}_{n - 1}, {\mathbf{A}}_{n - 1} = {\mathbf{N}}_{n - 1} \cdot {\mathbf{A}}_{n - 2}, {\mathbf{f}}_{n - 1} = {\mathbf{N}}_{n - 1}{\mathbf{f}}_{n - 2}$$,

    $${\mathbf{A}}_{n - 1}= \left( \begin{array}{ccccc} a_{11} a_{12} a_{13} \ldots a_{1n} \\ 0 a_{22}^1 a_{23}^1 \ldots a_{2n}^1 \\ 0 0 a_{33}^2 \ldots a_{3n}^2 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 0 \ldots a_{nn}^{(n - 1)} \\ \end{array} \right), \\ {\mathbf{N}}_{n - 1}= \left( \begin{array}{ccccc} 1 0 \ldots 0 0 \\ 0 1 \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots 1 0 \\ 0 0 \ldots - \eta_{n,n}- 1} 1 \\ \end{array} \right),\quad {\mathbf{f}}_{n - 1}= \{f_1, f_2^1, f_3^2, \ldots , f_n^{n - 1}\}^T.$$

    В итоге получаются матрица и вектор $${\mathbf{A}}_{n - 1} = {\mathbf{N}}_{n - 1} \ldots {\mathbf{N}}_2{\mathbf{N}}_1\mathbf{A}$$, $${\mathbf{f}}_{(n - 1)} = {\mathbf{N}}_{n - 1} \ldots {\mathbf{N}}_2{\mathbf{N}}_1\mathbf{f}$$, откуда $$\mathbf{A}={\mathbf{N}}_1^{- 1}{\mathbf{N}}_2^{- 1} \ldots {\mathbf{N}}_{n - 1}^{- 1} \cdot {\mathbf{A}}_{n - 1}.$$ При этом

    $${\mathbf{N}}_1^{- 1}= \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ \eta_{21} 1 0 \ldots 0 \\ \eta_{31} 0 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ \eta_{n1} 0 0 \ldots 1 \\ \end{array} \right),\quad {\mathbf{N}}_2^{- 1}= \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ 0 1 0 \ldots 0 \\ 0 \eta_{32} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 \eta_{n2} 0 \ldots 1 \\ \end{array} \right), \\ {\mathbf{N}}_{n - 1}^{- 1}= \left( \begin{array}{ccccc} 1 0 \ldots 0 0 \\ 0 1 \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots 1 0 \\ 0 0 \ldots \eta_{n,n}- 1} 1 \\ \end{array} \right).$$

    После введения обозначений $$\mathbf{U} = {\mathbf{A}}_{n - 1}$$, $$\mathbf{L} = {\mathbf{N}}_1^{- 1}{\mathbf{N}}_2^{- 1} \ldots {\mathbf{N}}_{n - 1}^{- 1}$$, где

    $$\mathbf{L} = \left( \begin{array}{ccccc} 1 0 0 \ldots 0 \\ \eta_{21} 1 0 \ldots 0 \\ \eta_{31} \eta_{32} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \\ \eta_{n1} \eta_{n2} \eta_{n3} \ldots 1 \\ \end{array} \right),$$

    получим $$\mathbf{A} = \mathbf{LU}.$$

    Это представление матрицы $$\mathbf{A}$$ называется LU-разложением (на произведение нижней и верхней треугольных матриц $$\mathbf{L}$$ и $$\mathbf{U}$$ ). Прямой ход метода Гаусса можно рассматривать как один из вариантов представления матрицы в виде произведения двух треугольных матриц, или LU-разложения. Его можно провести и другими способами.

    Вспомним "отрицательный" пример из лекции 1. Пусть необходимо решить систему

    $$\begin{gather*} -10^{- 7}u_1 + u_2 = 1, \\ u_1 + 2u_2 = 4. \end{gather*}$$

    Исключая u1 из первого уравнения и подставляя во второе, получим u2 = (107 + 4)/(107 + 2). После вычислений с семью значащими цифрами получаем u1 = 0,000000, u2 = 1,000000, что неверно (см. второе уравнение). Теперь исключим u1 из второго уравнения и подставим в первое. При этом получим $$$ u_2 = \frac{1 + 4 \cdot 10^{- 7}}{1 + 2 \cdot 10^{- 7}} $.$$ После вычислений с той же точностью имеем: u2 = 1,000000, u1 = 2,000000, что является правильным решением (с заданным количеством значащих цифр).

    В реальных вычислениях используются методы с выбором главного (или ведущего ) элемента. Выбор главного элемента по столбцам реализуется следующим образом: перед исключением u1 отыскивается $$\max\limits_i|{a_{i1}}|.$$ Пусть максимум достигается при i = k. В этом случае меняются местами первое и k уравнения (или в матрице меняются местами две строки) и реализуется процедура исключения.

    Затем отыскивается $$\max\limits_i|{a_{i2}^1}|$$, и процедура поиска главного элемента в столбцах повторяется. Так же реализуется выбор главного элемента по строкам: перед исключением u1 отыскивается $$\max\limits_j|{a_{kj}}|.$$ Если максимум достигается при i = k, то у u1 и uk меняются номера, то есть максимальный элемент из коэффициентов первого уравнения окажется на месте a11, и т.д. Наиболее эффективным является метод Гаусса с выбором главного элемента по всей матрице. Во многих методах важным является условие диагонального преобладания$$|{a_{ii}}| \ge \sum\limits_{\substack{j = 1 \\ j \ne i}}^n{|{a_{ij}}|}$$ для i = 1, ..., n, при выполнении которого проблемы, появляющиеся в методе Гаусса, не возникают. Если для всех строк матрицы выполняются строгие неравенства, то говорят о строгом диагональном преобладании.

    Полученное решение можно улучшить следующим образом. Пусть $${\mathbf{r}}^1 = \mathbf{f} - {\mathbf{Au}}^1$$ есть невязка, допущенная при решении рассматриваемой системы ( $${\mathbf{u}}^1$$ — полученное численное решение) за счет ошибки округлений. Очевидно, что погрешность $${\mathbf{\varepsilon}}^1 = \mathbf{u} - {\mathbf{u}}^1$$ удовлетворяет СЛАУ $${\mathbf{A\varepsilon}}^1 = {\mathbf{r}}^1$$, так как $${\mathbf{A\varepsilon}}^1 = \mathbf{Au} - {\mathbf{Au}}^1 = \mathbf{f}- {\mathbf{Au}}^1.$$

    Решив последнюю систему, получаем $$\mathbf{\varepsilon}^1$$, после чего уточняем решение:

    $${\mathbf{u}}^2 = {\mathbf{u}}^1 + {\mathbf{\varepsilon }}^1.$$

    Эту процедуру можно продолжить.

    2.4.2. Модификация метода Гаусса для случая линейных систем с трехдиагональными матрицами — метод прогонки

    В приложениях часто возникают системы линейных уравнений с матрицами специального вида. В дальнейшем, например, при интерполяции функции сплайнами, при решении задачи Штурма-Лиувилля, при численном решении уравнений теплопроводности, уравнений Лапласа и Пуассона придется иметь дело с системами, матрицы которых имеют ненулевые элементы лишь на главной диагонали и еще на двух диагоналях — одной под главной, одной над главной. Такие матрицы называются трехдиагональными. Для решения систем с трехдиагональными матрицами существует экономичный (требующий малого количества памяти и арифметических действий) вариант метода Гауссапрогонка. В англоязычной литературе метод прогонки называется алгоритмом Томаса. Подробнее о свойствах метода прогонки речь пойдет в лекции 10 в связи с решением разностными методами задачи Штурма-Лиувилля.

    2.4.3. LU-разложение

    Среди прямых методов численного решения СЛАУ широко используется также LU-разложение матрицы $$\mathbf{A}$$ и метод Холецкого (или метод квадратного корня).

    Если матрица $$\mathbf{A}$$ представима в виде произведений матриц $$\mathbf{LU}$$, то СЛАУ может быть представлена в виде

    $$(\mathbf{LU})\mathbf{u} = \mathbf{f}.$$

    Перепишем (2.13), вводя вспомогательный вектор $$\mathbf{v}$$, в следующем виде

    $$\mathbf{Lv} = \mathbf{f},\quad \mathbf{Uu} = \mathbf{v}.$$

    Решение СЛАУ свелось к последовательному решению двух систем с треугольными матрицами. Первый этап решения системы $$\mathbf{Lv} = \mathbf{f}$$:

    $$\left\{ \begin{array}{l} v_1 = f_1 , \\ l_{21}v_1 + v_2 = f_2 , \\ \ldots \\ l_{n1}v_1 + l_{n2}v_2 + \ldots + l_{n,n - 1}v_{n - 1}+ v_n = f_n , \\ \end{array} \right.$$

    откуда можно вычислить все vk последовательно по формулам

    $$v_k = f_k - \sum\limits_{j = 1}^{k - 1}{l_{kj}v_j};\quad k = 2, \ldots , n.$$

    Далее рассмотрим систему $$\mathbf{Uu} = \mathbf{v}$$ или

    $$\left\{ \begin{array}{l} d_{11}u_1 + d_2 u_2 + \ldots + d_{1n} u_n = v_1 , \\ d_{22}u_2 + \ldots + d_{2n} u_n = v_2 , \\ \ldots \\ d_{nn}u_n = v_n , \\ \end{array} \right.$$

    решение которой находится в обратном порядке, т.е. при k = n - 1, ..., 1 по очевидным формулам $$u_k = d_{kk}^{- 1}(v_k - \sum\limits_{j = k + 1}^n{d_{kj}u_j )}.$$ Условия существования такого разложения даются следующей теоремой [2.5] (без доказательства).

    Теорема. Если все главные миноры квадратной матрицы $$\mathbf{A}$$ отличны от нуля, то существуют единственные нижняя и верхняя треугольные матрицы $$\mathbf{L} = l_{ij}$$ и $$\mathbf{U} = d_{ij}$$ такие, что $$\mathbf{A}= \mathbf{LU}.$$ При этом все диагональные коэффициенты матрицы $$\mathbf{L}$$ фиксированы и равны единице.

    Опишем алгоритм нахождения элементов lijdij матриц $$\mathbf{L}, \mathbf{U}.$$ Выписав равенство $$\mathbf{A} = \mathbf{LU}$$ в компонентах, получим

    $$\left( \begin{array}{cccc} a_{11} a_{12} \ldots a_{1n} \\ a_{21} a_{22} \ldots a_{2n} \\ \ldots \ldots \ldots \ldots \\ a_{n1} a_{n2} \ldots a_{nn} \\ \end{array} \right) = \left( \begin{array}{cccc} 1 0 \ldots 0 \\ l_{21} 1 \ldots 0 \\ \ldots \ldots \ldots \ldots \\ l_{n1} l_{n2} \ldots 1 \\ \end{array} \right) \left( \begin{array}{cccc} d_{11} d_{12} \ldots d_{1n} \\ 0 d_{22} \ldots d_{2n} \\ \ldots \ldots \ldots \ldots \\ 0 0 \ldots d_{nn} \\ \end{array} \right) $$

    Выполнив умножение матриц, приходим к системе линейных уравнений размером n x n:

    $$\begin{gather*} d_{11} = a_{11}, d_{12}= a_{12}, \ldots , d_{1n} = a_{1n}, \\ l_{21}d_{11} = a_{21}, l_{21}d_{12}+ d_{22} = a_{22}, \ldots , l_{21}d_{1n}+ d_{2n} = a_{2n}, \\ \ldots \\ l_{n1}d_{11} = a_{n1}, l_{n1}d_{12} + l_{n2}d_{22} = a_{n2}, \ldots , l_{n1}d_{1n} + \ldots + l_{n,n-1}d_{n-1,n} + d_{nn} = a_{nn} \end{gather*}$$

    относительно неизвестных d11, d12, ..., d1n, l21, d22, ..., d2n, ln1, ln2, ..., dnn.

    Специфика этой системы позволяет решить ее последовательно. Из первой строки находим d1j= a1j(j = 1, ..., n).

    Из уравнений, входящих в первый столбец приведенной выше системы, находим li1= ai1/d11, i = 1, ...dots, n. Теперь можно из уравнений второй строки найти d2j= a2j- l21d1j, j = 2, ..., n, а из уравнений, входящих во второй столбец, получим $$l_{i2}= d_{22}^{-1}(a_{i2}- l_{i1}d_{12}), i = 2, \ldots, n$$ и так далее. Последним вычисляется элемент

    $$d_{nn} = a_{nn}- \sum\limits_{k = 1}^{n - 1}{l_{nk}d_{kn}}.$$

    Можно выписать общий вид этих формул:

    $$\begin{gather*} d_{ij}= a_{ij} - \sum\limits_{k = 1}^{j - 1}{l_{ik}d_{kj}},\quad i \le j, \\ l_{ij}= d_{ij}^{- 1}\left({a_{ij} - \sum\limits_{k = 1}^{j - 1}{l_{ik}d_{kj}}}\right),\quad i > j. \end{gather*}$$

    Приведение матриц к треугольному виду аналогично приведению матрицы в методе Гаусса и также требует количества арифметических действий порядка O(n3), точнее, $$\approx 2n^{3}.$$

    2.4.4. Метод Холецкого (метод квадратного корня)

    Пусть матрица рассматриваемой линейной системы $$\mathbf{A}$$ — симметричная, т.е. aij = aji, положительная матрица. Тогда она представима в виде $$\mathbf{A} = \mathbf{LL}^T$$, где

    $${\mathbf{L}}^T = \left( \begin{array}{cccc} l_{11} l_{12} \ldots l_{1n} \\ 0 l_{22} \ldots l_{2n} \\ \ldots \ldots \ldots \ldots \\ 0 0 \ldots l_{nn} \end{array} \right), \mathbf{L} = \left( \begin{array}{cccc} l_{11} 0 \cdots 0 \\ l_{12} l_{22} \ldots 0 \\ \ldots \ldots \ldots \ldots \\ l_{1n} l_{2n} \ldots l_{nn} \end{array} \right)$$

    Далее, как и в случае LU-разложения, решение СЛАУ $$\mathbf{Au} = \mathbf{f}$$ сводится к последовательному решению двух линейных систем с треугольными матрицами $$\mathbf{Lv} = \mathbf{f}$$, $${\mathbf{L}}^T{\mathbf{u}} = \mathbf{v}$$, для решения которых требуется примерно 2n2 арифметических действий.

    Первая из этих линейных систем

    $$\begin{gather*} l_{11}v_1 = f_1 ,\\ l_{12}v_1 + l_{22}v_2 = f_2 ,\\ \ldots\\ l_{1n}v_1 + l_{2n}v_2 + \ldots + l_{nn}v_n = f_n , \end{gather*}$$

    она легко решается. Для решения получаем очевидные формулы

    $$v_i = l_{ii}^{- 1}(f_i - \sum\limits_{k = 1}^{i-1}{l_{ki}}v_k )},\quad i = 1,\ldots, n.$$

    Вторая система уравнений есть

    l11u1  + l12u2  +  ...  + l1nun  = v1 , l22u2  +  ...  + l2nun  = v2, ... lnnun  = vn.

    Из нее находим значения переменных ui в обратном порядке по формуле

    $$u_k= l_{ii}^{- 1}(v_k - \sum\limits_{j = k + 1}^n{l_{kj}u_j)}.$$

    Определенной опасностью при реализации этого метода являются возможная близость к нулю lii и отрицательность подкоренных выражений при вычислении lii (последнего не должно быть при симметричной положительной матрице $$\mathbf{A}$$ )

    Элементы матрицы $$\mathbf{L}$$ находим из уравнения $${\mathbf{LL}}^T = \mathbf{A}$$, приравнивая соответствующие элементы матриц $${\mathbf{LL}}^T$$ и $$\mathbf{A}.$$ В результате получим систему уравнений

    $$\begin{gather*} l_{11}^2 = a_{11}, \\ l_{i1}l_{11} = a_{i1}, i = 2, \ldots ,n, \\ l_{21}^2 + l_{22}^2 = a_{22}, \\ l_{i1}l_{21} + l_{i2}l_{22} = a_{i2}, i = 3, \ldots , n, \\ \ldots\\ l_{k1}^2 + l_{k2}^2 + \ldots + l_{kk}^2 = a_{kk}, \\ l_{i1}l_{k1} + l_{i2}l_{k2} + \ldots + l_{ik}l_{kk} = a_{kk}, i = k + 1, \ldots , n. \end{gather*}$$

    Решение этой системы легко находится:

    $$\begin{gather*} l_{11} = \sqrt{a_{11}},\\ l_{i1} = a_{i1}/l_{11}, i = 2, \ldots , n, \\ l_{22} = \sqrt{a_{22}- l_{21}^2}, \\ l_{i2} = (a_{i2}- l_{i1}l_{21})/l_{22}, i = 3, \ldots ,n, \\ \ldots \\ l_{kk} = \sqrt{a_{kk}- l_{k1}^2 - l_{k2}^2 - \ldots - l_{k,k - 1}^2}, \\ l_{ik} = (a_{ik}- l_{i1}l_{k1}- l_{i2}l_{k2}- \ldots - l_{i,k - 1}l_{k,k - 1})/l_{kk},i = k + 1, \ldots , n, \end{gather*}$$

    Метод также называется методом квадратного корня.

    Внимание! Не следует путать матрицу (оператор) $$\mathbf{L}$$ с оператором $$\mathbf{A}^{1/2}$$ — квадратным корнем из самосопряженного положительного оператора.

    2.5. Итерационные методы решения СЛАУ

    2.5.1. Метод простой итерации

    Рассмотрим систему линейных алгебраических уравнений

    $$\mathbf{Au}= \mathbf{f}.$$

    Проведем несколько равносильных преобразований. Умножим обе части системы на один и тот же скалярный множитель $$\tau,$$ затем прибавим к правой и левой частям системы вектор $$\mathbf{u}.$$ Систему уравнений можно теперь записать в виде, удобном для итераций:

    $$\mathbf{u}= \mathbf{Bu}+ \mathbf{F},$$

    где $$\mathbf{B} = \mathbf{E} - \tau \mathbf{A},\quad \mathbf{F} = \tau \mathbf{f}.$$

    Теперь построим последовательность приближений к решению системы. Выберем произвольный вектор $${\mathbf{u}}_0$$ — начальное приближение к решению. Чаще всего его просто полагают нулевым вектором. Скорее всего, начальное приближение не удовлетворяет (2.15) и, следовательно, исходной системе. При подстановке его в исходное уравнение возникает невязка $${\mathbf{r}}_0 = \mathbf{f} - \mathbf{A}{\mathbf{u}}_0.$$ Вычислив невязку, с помощью (2.15) можно уточнить приближение к решению, считая, что

    $${\mathbf{u}}_1 ={\mathbf{u}}_0 + \tau{\mathbf{r}}_0.$$

    По первому приближению снова вычисляется невязка, процесс продолжается. В ходе итерации получаем $${\mathbf{u}}_{k + 1} = {\mathbf{u}}_k + \tau{\mathbf{r}}_k, {\mathbf{r}}_k = \mathbf{f} - {\mathbf{Au}}_k.$$ Эквивалентная формулировка метода, называемого методом простых итераций, заключается в следующем. Решение (2.15) находится как предел последовательности $$\{{\mathbf{u}}_0, {\mathbf{u}}_1, {\mathbf{u}}_2, \ldots\}$$ приближений, члены которой связаны рекуррентным соотношением (оно эквивалентно приведенному выше, из записи исключен вектор невязки):

    $${\mathbf{u}}_{{k + 1}} = {\mathbf{Bu}}_k + {\mathbf{F}},$$

    $${\mathbf{u}}_0 = 0$$ (или любому произвольному вектору). Если предел такой последовательности существует, то говорят о сходимости итерационного процесса к решению СЛАУ.

    Существуют другие формы записи метода итераций, например

    $${\mathbf{u}}_{k + 1} = ({\mathbf{E}} - \tau\mathbf{A}){\mathbf{u}}_k + \tau\mathbf{f}.$$

    Канонической формой записи двухслойного итерационного процесса называется следующая:

    $$$ {\mathbf{D}}_{k + 1}\frac{{\mathbf{u}}_{k + 1} - {\mathbf{u}}_k}{\tau_{k + 1}} + {\mathbf{Au}}_k = \mathbf{f}. $$$

    При $${\mathbf{D}}_k = {\mathbf{E}}$$, $$\tau _{k} = \tau$$ последняя формула соответствует однопараметрическому итерационному процессу — рассмотренному выше методу простых итераций. При $${\mathbf{D}}_k = \mathbf{E}$$, $$\tau_k= \left\{{\tau_k, k= 1, \ldots , n}\right\}$$ — n -шаговому явному итерационному процессу, при $${\mathbf{D}}_k = \mathbf{D^{\prime}}$$, $$\tau _{k} = 1$$ — методу простой итерации без итерационного параметра. В случае, когда $$\mathbf{D} \ne \mathbf{E}$$, итерационный метод называется неявным — для вычисления следующего приближения к решению придется решать (как правило, более простую, чем исходную) систему линейных уравнений.

    Теорема (достаточное условие сходимости метода простой итерации ). Итерационный процесс (2.16) сходится к решению $$\mathbf{U}$$ СЛАУ $$\mathbf{Au} = \mathbf{F}$$ со скоростью геометрической прогрессии при выполнении условия: $$\|{\mathbf{B}}\| \le q < 1.$$

    Доказательство.

    Пусть $$\mathbf{U}$$ — точное решение системы (2). Вычитая из (2.16)-(2.15), получим $${\mathbf{u}}_k - {\mathbf{U}} = \mathbf{B}({\mathbf{u}}_{k - 1} - \mathbf{U})$$, или, обозначив погрешность $${\mathbf{\varepsilon }}_k = {\mathbf{u}}_k - {\mathbf{U}}$$, получим для эволюции погрешности уравнение $${\mathbf{\varepsilon}}_k = {\mathbf{B\varepsilon}}_{k - 1}.$$ Справедлива цепочка неравенств: $$\|{{\mathbf{u}}_k - {\mathbf{U}}}\| = \|{{\mathbf{\varepsilon}}_k}\| \le \|{\mathbf{B}}\| \cdot \|{{\mathbf{\varepsilon}}_{k - 1}}\| \le q\|{{\mathbf{\varepsilon}}_{k - 1}}\| \le \ldots \le q^k\|{{\mathbf{\varepsilon}}_0}\| = q^k\|{{\mathbf{u}}_0 - {\mathbf{U}}}\|$$, где $$0 < q \le \|{\mathbf{B}}\|.$$

    Отсюда следует, что при $$q < 1 \lim\limits_{k \to \infty}{\mathbf{u}}_k = \mathbf{U}.$$

    Из неравенства $$\|{{\mathbf{\varepsilon}}_k}\| \le q^k\|{{\mathbf{\varepsilon}}_0}\|$$ можно получить оценку количества итераций,необходимых для достижения точности $$\varepsilon,$$ т.е. для выполнения условия $$\|{{\mathbf{u}}_k - \mathbf{U}}\| = \|{{\mathbf{\varepsilon}}_k}\| \le \varepsilon.$$ Эта оценка имеет вид $$$ k \ge \left({\ln{\frac{\mathbf{\varepsilon}}{\|{{\mathbf{\varepsilon}}_0}\|}}}\right)/\ln{q} $.$$

    Теорема (критерий сходимости метода простой итерации (без доказательства)). Пусть СЛАУ (2.15) имеет единственное решение. Тогда для сходимости итерационного процесса (2.16) необходимо и достаточно, чтобы все собственные значения матрицы $${\mathbf{B}$$ по абсолютной величине были меньше единицы.

    Сравним по количеству арифметических действий прямые и итерационные методы. Метод Гаусса без выбора главного элемента при $$n \gg 1$$ требует $$$ \approx (\frac{2}{3}n^3) $$$ арифметических действий; метод простой итерации (2.16) $$\approx (2n^2 \cdot I)$$, где i — число приближений, необходимое для достижения заданной точности. Значит, при I < n/3 метод итераций становится предпочтительнее. В реальных задачах, в основном, $$I \ll n.$$ Кроме того, итерационные методы можно делать более эффективными, изменяя итерационные параметры. В ряде случаев итерационные методы оказываются более устойчивыми по отношению к накоплению ошибок округления, чем прямые.

    2.5.2. Влияние ошибок округления на результат численного решения

    Будем трактовать суммарный эффект ошибок округления при выполнении одного итерационного шага как возмущение правой части в итерационном процессе

    $${\mathbf{u}}_k = {\mathbf{Bu}}_{k - 1} + {\mathbf{F}}.$$

    Результат вычислений на каждой итерации при наличии ошибок округления представим в виде

    $${\mathbf{u}}_k^M = {\mathbf{Bu}}_{k - 1}^M + {\mathbf{F}} + {\mathbf{\delta }}_k,$$

    где $${\mathbf{\delta }}_k$$ — суммарная погрешность округления. Норму разности между реальным и идеальным (т.е. в отсутствии ошибки округления) результатами расчетов получим, вычитая (2.19) из (2.20). Учтем, что $$\|\mathbf{B}\| < q < 1$$,

    $$\begin{multline*} \|{{\mathbf{u}}_k^M - {\mathbf{u}}_k}\| \le q \|{{\mathbf{u}}_{k - 1}^M - {\mathbf{u}}_{k - 1}}\| + \\ + \|{{\mathbf{\delta }}_k}\| \le q^2\|{{\mathbf{u}}_{k - 2}^M - {\mathbf{u}}_{k - 2}}\| + q\|{{\mathbf{\delta }}_{k - 1}}\| + \|{{\mathbf{\delta }}_k}\| \le \ldots \le q^k\|{{\mathbf{u}}_0^M - {\mathbf{u}}_0}\| + \\ + (\max\limits_i \|{{\mathbf{\delta }}_i}\|) (1 + q + \ldots + q^{k - 1}), i = 1, \ldots, k. \end{multline*} $$

    Так как начальное приближение задано точно $$\|{{\mathbf{u}}_0^M - {\mathbf{u}}_0}\| = 0.$$ Обозначим $$\delta = \max\limits_i \|{{\mathbf{\delta }}_i}\|$$ и вычислим сумму членов геометрической прогрессии. Получим $$$ \|{{\mathbf{u}}_k^M - {\mathbf{u}}_k}\| \le \delta \frac{q^k - 1}{q - 1} \le \frac{\delta }{1 - q} $$$, то есть погрешность, вносимая в решение из-за конечной разрядности мантиссы, не зависит от количества итераций. Этот результат является характеристикой устойчивости рассматриваемого вычислительного процесса.

    2.5.3. Методы Якоби, Зейделя, верхней релаксации

    Представим матрицу $$\mathbf{A}$$ в виде

    $$\mathbf{A} = \mathbf{L} + \mathbf{D} + \mathbf{U},$$

    где $$\mathbf{L}$$ и $$\mathbf{U}$$ — нижняя и верхняя треугольные матрицы с нулевыми элементами на главной диагонали, $$\mathbf{D}$$ — диагональная матрица. Рассматриваемая СЛАУ может быть переписана в следующем эквивалентном виде:

    $$\mathbf{Lu}+ \mathbf{Du} + \mathbf{Uu} = \mathbf{f}.$$

    Построим два итерационных метода $$\mathbf{Lu}_k + \mathbf{Du}_{k+1} + \mathbf{Uu}_k = \mathbf{f} $$

    и

    $$\mathbf{Lu}_{k+1} + \mathbf{Du}_{k+1} + \mathbf{Uu}_k = \mathbf{f},$$

    или, соответственно,

    $${\mathbf{u}}_{k+1} = -\mathbf{D}^{- 1}(\mathbf{L} + \mathbf{U}){\mathbf{u}}_k + \mathbf{D}^{-1}\mathbf{f}$$

    и

    $${\mathbf{u}}_{k+1} = -(\mathbf{L} + \mathbf{D})^{- 1}{\mathbf{Uu}}_k + (\mathbf{L} + \mathbf{D})^{-1}\mathbf{f}.$$

    Очевидно, что эти формулы описывают итерационные процессы вида (2.16), если положить в (2.22)

    $$\mathbf{B} = -\mathbf{D}^{-1}(\mathbf{L} + \mathbf{U}), \mathbf{F} = \mathbf{D}^{-1}\mathbf{f}$$

    или

    $$\mathbf{B} = -(\mathbf{L}+\mathbf{D})^{-1}\mathbf{U}, \mathbf{F} = (\mathbf{L} + \mathbf{D})^{-1}\mathbf{f}.$$

    Эти итерационные процессы называются методами Якоби и Зейделя . Представим их в компонентной записи. Метод Якоби будет иметь вид (перенесем итерационный индекс k вверх):

    $$\begin{gather*} u_1^{k + 1} = - (a_{12}u_2^k + a_{13}u_3^k + \ldots + a_{1n}u_n^k - f_1 )/a_{11}, \\ u_2^{k + 1} = - (a_{21}u_1^k + a_{23}u_3^k + \ldots + a_{2n}u_n^k - f_2 )/a_{22}, \\ \ldots \\ u_n^{k + 1} = - (a_{n1}u_1^k + a_{n2}u_2^k + \ldots + a_{n,n - 1}u_{n - 1}^k - f_n )/a_{nn}. \end{gather*}$$

    Метод Зейделя можно представить следующим образом:

    $$\begin{gather*} u_1^{k + 1} = - (a_{12}u_2^k+ a_{13}u_3^k+ \ldots + a_{1n}u_n^k - f_1 )/a_{11}, \\ u_2^{k + 1} = - (a_{21}u_1^{k + 1}+ a_{23}u_3^k + \ldots + a_{2n}u_n^k - f_2 )/a_{22}, \\ \ldots \\ u_n^{k + 1} = - (a_{n1}u_1^{k + 1} + a_{n2}u_2^{k + 1} + \ldots + a_{n,n - 1}u_{n - 1}^{k + 1}- f_n )/a_{nn}. \end{gather*}$$

    Эти формулы легко выводятся, если учесть, что элементами матрицы D -1 являются $$d_{ii} = a_{ii}^{- 1}.$$

    Теорема (достаточное условие сходимости метода Якоби ) Итерационный метод Якоби сходится к решению соответствующей СЛАУ, если выполнено условие диагонального преобладания

    $${|{a_{ii}}| > \sum\limits_{\substack{j = 1 \\ (j \ne i)}}^n{| {a_{ij}}|}}, {i=1, \ldots, n}.$$

    Доказательство.

    Выполненные условия (2.24) означает, что в любой строке матрицы перехода

    $${\mathbf{B}} = \left( \begin{array}{cccccc} 0 {- \frac{a_{12}}{a_{11}}} {- \frac{a_{13}}{a_{11}}} \ldots {- \frac{a_{1n-1}}{a_{11}}} {- \frac{a_{1n}}{a_{11}}}\\ {- \frac{a_{21}}{a_{22}}} 0 {- \frac{a_{23}}{a_{22}}} \ldots {- \frac{a_{2n-1}}{a_{22}}} {- \frac{a_{2n}}{a_{22}}}\\ \ldots \ldots \ldots \ldots \ldots \ldots \\ {- \frac{a_{n1}}{a_{nn}}} {- \frac{a_{n2}}{a_{nn}}} {- \frac{a_{n3}}{a_{nn}}} \ldots {- \frac{a_{n,n-1}}{a_{nn}}} 0 \\ \end{array} \right),$$

    сумма модулей элементов меньше единицы. В этом случае по крайней мере одна из норм матрицы $$\mathbf{B}$$ меньше единицы. Тогда выполняется достаточное условие сходимости метода простых итераций.

    Теорема (критерий сходимости итерационного метода Якоби ). Для сходимости итерационного метода Якоби необходимо и достаточно, чтобы все корни уравнения

    $$\left| \begin{array}{cccc} {\lambda a_{11}} {a_{12}} \ldots {a_{1n}}\\ {a_{21}} {\lambda a_{22}} \ldots {a_{2n}}\\ \ldots \ldots \ldots \ldots \\ {{a}_{n1}} {{a}_{n2}} \ldots {{\lambda a}_{nn}}\\ \end{array} \right| = 0$$

    по модулю не превосходили единицы.

    Доказательство.

    Легко проверить, что в силу диагональности $$\mathbf{D}$$ имеет место

    $$\det ({\mathbf{B}}- \lambda {\mathbf{E}}) = \det \left[{-{\mathbf{D}}^{- 1}({\mathbf{L}} + {\mathbf{U}}) - \lambda {\mathbf{E}}}\right] = \det ( -{\mathbf{D}}^{- 1}) \cdot \det \left[{({\mathbf{L}} + {\mathbf{U}}) +{\mathbf{D}}\lambda}\right].$$

    Собственными значениями матрицы $$\mathbf{B} = -\mathbf{D}^{- 1}(\mathbf{L} + \mathbf{U})$$ являются корни уравнения

    $$\det \left[{({\mathbf{L}}+{\mathbf{U}}) + {\mathbf{D}}\lambda}\right] = 0,$$

    которые в соответствии с критерием сходимости метода простой итерации должны быть по модулю меньше единицы.

    Аналогичную теорему можно доказать и для метода Зейделя, однако матрица в этой теореме будет иметь другой вид:

    $$\left( \begin{array}{cccc} {\lambda a_{11}} {a_{12}} \ldots {a_{1n}}\\ {\lambda a_{12}} {\lambda a_{22}} \ldots {a_{2n}}\\ \ldots \ldots \ldots \ldots \\ {\lambda a_{n1}} {\lambda a_{n2}} \ldots {\lambda a_{nn}}\\ \end{array} \right)$$

    Теорема (достаточное условие сходимости метода Зейделя (без доказательства)). Пусть $$\mathbf{A}$$ — вещественная, симметричная, положительно определенная матрица. В этом случае итерационный метод Зейделя сходится.

    Доказательство этой теоремы сводится к проверке того, что выполнение условий теоремы для матрицы $$\mathbf{A}= \mathbf{L} + \mathbf{D} + {\mathbf{L}}^{T}$$ влечет выполнение условия сходимости итерационного метода с матрицей перехода — $${(\mathbf{L}+\mathbf{D})}^{-1}\mathbf{L}^T.$$ СЛАУ с вещественной матрицей $$\mathbf{A}$$ такой, что $$\det \mathbf{A} \ne 0$$ может быть симметризована умножением на матрицу $${\mathbf{A}}^T$$:

    $$({\mathbf{A}}^{T}\mathbf{A})\mathbf{u} = \mathbf{A}^{T}\mathbf{f} $$

    (симметризация Гаусса).

    Развитием метода Зейделя является метод релаксации. В этом методе вводится итерационный параметр $$\tau,$$ называемый параметром релаксации. Представим метод релаксации в матричной форме:

    $$(\tau {\mathbf{Lu}}_{k + 1} + {\mathbf{Du}}_{k + 1}) + (\tau - 1){\mathbf{Du}}_k + \tau{\mathbf{Uu}}_k = \tau\mathbf{f}.$$

    Выбирая $$\tau,$$ можно существенно изменять скорость сходимости итерационного метода. Выразим $${\mathbf{u}}_{k+1}$$

    $${\mathbf{u}}_{k + 1} = - ({\mathbf{D}} + \tau{\mathbf{L}})^{- 1}\left[{(\tau - 1) {\mathbf{D}} + \tau{\mathbf{L}}}\right]{\mathbf{u}}_k + \tau ({\mathbf{D}}+ \tau {\mathbf{L}})^{- 1}\mathbf{f}.$$

    В общем случае задача вычисления $$\tau _{опт}$$ (оптимального итерационного параметра) не решена, однако известно, что $$1 < \tau _{опт} < 2.$$ В этом случае итерационный метод называется методом последовательной верхней релаксации или SОR — Successive Over Relaxation. Иногда встречается термин "сверхрелаксация" при $$1 < \tau _{опт} < 2.$$ При $$0 < \tau < 1$$ имеем метод нижней релаксации.

    2.6. Вариационные итерационные методы

    2.6.1. Связь между вариационной задачей и задачей решения СЛАУ

    Пусть $$\mathbf{u} \in L^n $$, где Ln есть n -мерное евклидово пространство. Рассмотрим квадратичный функционал от $$\mathbf{u}$$, называемый функционалом энергии:

    $$\Phi (\mathbf{u}) = (\mathbf{Au,u}) - 2(\mathbf{f,u}) + c,$$

    где $$\mathbf{A}$$ — линейный оператор, $$\mathbf{f} \in L^n$$, c — константа. Этот функционал совпадает с квадратичным функционалом $$\Phi (\mathbf{u}) = (\mathbf{A}^*\mathbf{u,u}) - 2(\mathbf{f,u}) + c$$, где $$\mathbf{A}^*$$ — сопряженный к $$\mathbf{A}$$ оператор. Действительно, $$(\mathbf{Au,u}) \equiv (\mathbf{u},\mathbf{A}^*\mathbf{u})$$ по определению сопряженного оператора и $$(\mathbf{u},\mathbf{A}^*\mathbf{u}) = (\mathbf{A}^*\mathbf{u},\mathbf{u})$$ в силу коммутативности скалярного произведения. Тогда

    $$$ \Phi (\mathbf{u}) = \left( {\frac{\mathbf{A} + \mathbf{A}^*}{2}\mathbf{u,u}}\right) - 2(\mathbf{f,u}) + c, $$$ $$$ \mbox{так как } \frac{1}{2}(\mathbf{Au,u}) + \frac{1}{2}(\mathbf{A}^*\mathbf{u,u}) = \left({\frac{\mathbf{A} + \mathbf{A}^*}{2}\mathbf{u,u}}\right). $$$

    Без ограничения общности предположим, что оператор $$\mathbf{A}$$ — самосопряженный, $$\mathbf{A} = \mathbf{A}^*.$$ В противном случае будем рассматривать задачу с оператором $$\frac{1}{2}(\mathbf{A}+{\mathbf{A}^*}) $$ при решении вариационной задачи.

    Будем также считать, что $$\mathbf{A}$$ — положительный оператор, т.е. $$\mathbf{A} > 0$$, это означает, что для любого ненулевого вектора $$\mathbf{u}$$ выполнено $${(\mathbf{Au}, \mathbf{u}) > 0}.$$

    Поставим задачу об отыскании элемента $$\mathbf{v}$$, придающего наименьшее значение функционалу $$\Phi (\mathbf{u})$$:

    $$\Phi ({\mathbf{v}}) = \min\limits_{\mathbf{u} \in L^n}\Phi (\mathbf{u}).$$

    Теорема. Пусть $$\mathbf{A} = {\mathbf{A}*} > 0.$$ В этом случае существует единственный элемент $${\mathbf{v}} \in L^n $$, придающий наименьшее значение квадратичному функционалу $$\Phi (\mathbf{u}) = (\mathbf{Au,u}) - (2\mathbf{f,u}) + c$$, являющийся решением СЛАУ $$\mathbf{Au}= \mathbf{f}.$$

    Доказательство.

    СЛАУ $$\mathbf{Au}= \mathbf{f}$$ имеет единственное решение $$\mathbf{v}$$, поскольку $$\mathbf{A}$$ является невырожденным оператором в силу его положительной определенности. Покажем, что в этом случае при $${\mathbf{Av}} - \mathbf{f} = 0$$ для любого вектора $$\Delta$$ имеет место $$\Phi ({\mathbf{v}} + {\mathbf{\Delta }}) > \Phi ({\mathbf{v}})$$, т.е. при $$\mathbf{u} = \mathbf{v}$$ достигается минимум квадратичного функционала $$\Phi (\mathbf{u}).$$

    Действительно,

    $$\begin{gather*} \Phi (\mathbf{v} + \mathbf{\Delta }) = (\mathbf{A}(\mathbf{v} + \mathbf{\Delta }), \mathbf{v} + \mathbf{\Delta }) - 2(\mathbf{f,v} + \mathbf{\Delta }) + c = \\ = (\mathbf{Av} + \mathbf{A\Delta }\mathbf{,v} + \mathbf{\Delta }) - 2(\mathbf{f,v} + \mathbf{\Delta }) + c = \\ = (\mathbf{Av,v}) + (\mathbf{Av}\mathbf{,\Delta }) + (\mathbf{A\Delta } \mathbf{,v}) + (\mathbf{A\Delta }\mathbf{,\Delta }) - 2(\mathbf{f}\mathbf{,v}) - 2(\mathbf{f}\mathbf{,\Delta }) + c = \\ = (\mathbf{Av}\mathbf{,v}) + 2(\mathbf{Av}\mathbf{,\Delta }) + (\mathbf{A\Delta }\mathbf{,\Delta }) - 2(\mathbf{f}\mathbf{,v}) - 2(\mathbf{f}\mathbf{,\Delta }) + c = \\ = \left[{(\mathbf{Av}\mathbf{,v}) - 2(\mathbf{f}\mathbf{,v}) + c}\right] + 2(\mathbf{Av}\mathbf{,\Delta }) - 2(\mathbf{f}\mathbf{,\Delta }) + (\mathbf{A\Delta }\mathbf{,\Delta }) = \\ = \Phi (\mathbf{v}) + 2(\mathbf{Av}-\mathbf{f},\mathbf{\Delta }) + (\mathbf{A\Delta }\mathbf{,\Delta }) = \Phi (\mathbf{v}) + (\mathbf{A\Delta }\mathbf{,\Delta }) > \Phi (\mathbf{v}), \end{gather*}$$

    т.е. при $$\mathbf{Av} = \mathbf{f}$$ и любом $$\Delta$$ имеет место $$\min\limits_\mathbf{u}\Phi (\mathbf{u}).$$ Докажем, что верно и обратное утверждение. Если элемент доставляет минимальное значение функционалу энергии, то он является решением системы линейных уравнений $$\mathbf{Av} = \mathbf{f}.$$ Из курса математического анализа известно, что в точке минимума должно выполняться условие $$grad \Phi (\mathbf{u}) = 0,\quad \mathbf{A} > 0.$$ Вычисляя градиент, приходим к условию минимума функционала $$grad \Phi (\mathbf{u}) = 2\mathbf{Au}- 2\mathbf{f}= 0.$$ Таким образом установлена эквивалентность вариационной задачи (отыскание элемента, придающего минимум $$\Phi (\mathbf{u})$$ ) и задачи о нахождении решения СЛАУ.

    Заметим, что СЛАУ с самосопряженным и положительно определенным оператором $$\mathbf{A}$$ представляют собой важный класс задач в математической физике, в частности, они возникают при решении краевых задач для эллиптических уравнений. При необходимости можно произвести симметризацию по Гауссу исходной системы.

    2.6.2. Методы градиентного и наискорейшего спуска

    Метод градиентного спуска состоит в нахождении следующего приближения в итерационном процессе из предыдущего, путем смещения в направлении градиента функционала

    $${\Phi(\mathbf{u}) = ({\mathbf{Au,u}}) - 2({\mathbf{f,u}})}$$ $${\mathbf{u}}_{k + 1} = {\mathbf{u}}_k - \alpha_k \cdot grad \Phi ({\mathbf{u}}_k),$$

    где $$\mathbf{A}$$ — положительно определенная симметричная матрица; $${\alpha}_k$$ — параметр, определяемый из заданных условий; например, из условия минимума величины

    $$\Phi \left[{{\mathbf{u}}_k - \alpha_k \cdot grad \Phi ({\mathbf{u}}_k)}\right].$$

    В этом случае итерационный метод называется методом наискорейшего спуска. Так как $$grad \Phi (\mathbf{u}) = 2(\mathbf{Au}- \mathbf{f})$$, то (2.26) приобретает вид

    $${\mathbf{u}}_{k + 1} = {\mathbf{u}}_k - \tau_k (\mathbf{Au}_k - \mathbf{f}),\quad \mbox{где}\quad {\tau_k= 2\alpha_k},$$

    что соответствует записи итерационного метода в форме {2.17). Здесь $$\tau _{k}$$ является итерационным параметром, который в методе наискорейшего спуска определяется из условия минимума функции $$\Phi (\tau_k, {\mathbf{u}}_{k + 1})$$ по $$\tau _{k}.$$ Найдем условие этого минимума:

    $$0 = 2(\mathbf{Au}_{k + 1} - \mathbf{f}, {({\mathbf{u}}_{k + 1})^{\prime}}_{\tau_k}) = - 2(\mathbf{Au}_{k + 1}- \mathbf{f}, \mathbf{Au}_k - \mathbf{f}).$$

    Здесь учтено соотношение: $$({\mathbf{Au^{\prime}}},\mathbf{u}) = ({\mathbf{u^{\prime}}},\mathbf{A}^*\mathbf{u}) = (\mathbf{Au}{\mathbf{,u^{\prime}}})$$, поскольку $$\mathbf{A} = \mathbf{A}^*$$ и $$(\mathbf{v,Aw}) = (\mathbf{Aw,v})$$ в силу самосопряженности оператора $$\mathbf{A}.$$ Подставим в последние равенства $${\mathbf{u}}_{k+1}$$ из (2.27), получим $$(\mathbf{Au}_k - \mathbf{f}- \tau_k\mathbf{A}(\mathbf{Au}_k - \mathbf{f}),\mathbf{Au}_k - \mathbf{f}) = 0$$, откуда следует

    $$\mathbf{Au}_k - \mathbf{f},\mathbf{Au}_k - \mathbf{f}) - \tau_k(\mathbf{A}(\mathbf{Au}_k - \mathbf{f}), \mathbf{Au}_k - \mathbf{f}) = 0,$$

    $$\tau_k = (\mathbf{Au}_k - \mathbf{f},\mathbf{Au}_k - \mathbf{f})/(\mathbf{A}(\mathbf{Au}_k - \mathbf{f}),\mathbf{Au}_k - \mathbf{f})$$, или $$$ \tau_k = \frac{({\mathbf{r}}_k,{\mathbf{r}}_k)}{({\mathbf{Ar}}_k,{\mathbf{r}}_k)}$$, где $${\mathbf{r}}_k = \mathbf{Au}_k - \mathbf{f} $.$$

    Вектор $${\mathbf{r}}_k$$ называют вектором невязки.

    2.6.3. Метод минимальных невязок

    Этот итерационный метод определяется следующим образом. Пусть $${\mathbf{u}}_{k+ 1} = {\mathbf{u}}_k - \tau_k{\mathbf{r}}_k$$, как и ранее, $${\mathbf{r}}_k = \mathbf{Au}_k - \mathbf{f}.$$ Итерационный параметр $$\tau _{k}$$ на каждой итерации выбирается так, чтобы минимизировать евклидову норму невязки $${\mathbf{r}_{k+1}}.$$ Заметим, что итерационный процесс $${\mathbf{u}}_{n + 1} = {\mathbf{u}}_n + \tau_n{\mathbf{r}}_{n}$$ может быть представлен в равносильном виде в терминах невязки $${\mathbf{r}}_{n + 1} = {\mathbf{r}}_{n} + \tau_n{\mathbf{Ar}}_n.$$ Тогда для квадрата евклидовой (третьей) нормы невязки получаем условие

    $$({\mathbf{r}}_{{k+ 1}},{\mathbf{r}}_{{k+ 1}}) = ({\mathbf{r}}_k,{\mathbf{r}}_k) - 2\tau_k({\mathbf{Ar}}_k,{\mathbf{r}}_k) + \tau_k^2 ({\mathbf{Ar}}_k,{\mathbf{Ar}}_k).$$

    Для отыскания минимума невязки на следующей итерации приравняем нулю производную последнего выражения по итерационному параметру $$\tau _{k}.$$ Получим равенство

    $$- 2({\mathbf{Ar}}_k,{\mathbf{r}}_k) + 2\tau_k({\mathbf{Ar}}_k,{\mathbf{Ar}}_k) = 0.$$

    Из последнего соотношения находим значение итерационного параметра $$$ \tau_k= \frac{({\mathbf{Ar}}_k,{\mathbf{r}}_k)}{({\mathbf{Ar}}_k,{\mathbf{Ar}}_k)}. $$$

    2.6.4. Метод сопряженных градиентов

    Этот метод применяется для решения систем уравнений с самосопряженной положительной матрицей $$\mathbf{A} = \mathbf{A}^* > 0.$$ Оптимизируем градиентный метод, выбирая параметры $$\tau$$ таким образом, чтобы на последующем шаге невязка была ортогональна всем предыдущим. На первом шаге невязку ищем аналогично методу наискорейшего спуска. Получим невязки, образующие ортогональный базис. На последнем шаге невязка становится равна нулю, так как пространство конечномерно, и единственный элемент, ортогональный всем базисным векторам конечномерного пространства — нулевой. Получаем точное решение за конечное число шагов ( прямой метод ). Однако этот метод работает не всегда, так как при плохой обусловленности матрицы он становится вычислительно неустойчивым.

    Идея метода состоит в следующем. Выбираем произвольное начальное приближение и вычисляем по нему вектор невязки $${\mathbf{r}}^0 = \mathbf{Au}^0 - \mathbf{f}$$, тогда первое приближение $$\mathbf{u}^1 = \mathbf{u}^0 + \tau_0{\mathbf{r}}^0 .$$

    Из условия ортогональности невязок на двух первых шагах находим значение итерационного параметра $$$ \tau_0 = - \frac{({\mathbf{r}}^0,{\mathbf{r}}^0 )}{({\mathbf{Ar}}^0 ,{\mathbf{r}}^0 )} $.$$

    Построим такое приближение, чтобы учитывались две предыдущие — трехслойный итерационный метод. Фактически, при построении его применяется процесс ортогонализации Грамма-Шмидта. Если $$\left({{\mathbf{Ar}}^{n - 2},{\mathbf{r}}^{n - 1}}\right) = 0$$, то $${\mathbf{r}}^{n - 2},{\mathbf{r}}^{n - 1}$$ — $$\mathbf{A}$$ - сопряженные невязки.

    Имеем метод сопряженных градиентов.

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

    Приведем последовательность расчетных формул одного из вариантов метода сопряженных градиентов.

    $$\begin{gather*} {{\mathbf{u}}_1 = (\mathbf{E} - {\tau}_1\mathbf{A}){{\mathbf{u}}_0 + {\tau}_1 \mathbf{f}}}, \\ \ldots \\ {\mathbf{u}}_{k + 1}= \alpha_{k + 1}({\mathbf{E}}- \tau_{k + 1}\mathbf{A}){\mathbf{u}}_k + (1 - \alpha_{k + 1}){\mathbf{u}}_{k - 1}+ \alpha_{k + 1}\tau_{k + 1}\mathbf{f}, \end{gather*}$$

    где

    $$$ \tau_{k + 1} = \frac{({\mathbf{r}}_k,{\mathbf{r}}_k)}{(\mathbf{A}{\mathbf{r}}_k,{\mathbf{r}}_k)}, $$$ $$$ \alpha_1 = 1; \alpha_{k+ 1}= {\left[{1 - \frac{1}{\alpha_k} \cdot \frac{\tau_{k+ 1}}{\tau_k} \cdot \frac{({\mathbf{r}}_k,{\mathbf{r}}_k)}{({\mathbf{r}}_{k- 1},{\mathbf{r}}_{k- 1})}}\right]}^{- 1},\quad k= 1, 2, \ldots $$$

    В вычислительной практике этот метод используется при умеренном числе обусловленности, больших n и неизвестных границах спектра матрицы $$\mathbf{A}$$, как итерационный метод, поскольку k0 обычно достаточно большое число. Подробнее о методах сопряженных градиентов можно прочитать в [2.2].

    2.7. О спектральных задачах

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

    Рассмотрим два алгоритма для самосопряженных матриц. Первый — степенной алгоритм, для вычисления наибольшего по абсолютной величине собственного числа. Выбираем произвольный ненулевой вектор $${\mathbf{u}}_0$$ и строим последовательность векторов

    $${\mathbf{u}}_{k + 1} = \mathbf{Au}_{k}.$$

    Легко показать, что выражение

    $$$ \lambda \approx \frac{(\mathbf{Au}_k,{\mathbf{u}}_k)}{({\mathbf{u}}_k,{\mathbf{u}}_k)} = \frac{({\mathbf{u}}_{k+ 1},{\mathbf{u}}_k)}{({\mathbf{u}}_k,{\mathbf{u}}_k)} $$$

    приближает максимальное по абсолютной величине собственное значение с точностью $$O(\lambda_{N}/\lambda_{N- 1})^k.$$ Здесь $$\lambda _{N}/\lambda _{N - 1}$$ — отношение самого большого по модулю собственного числа матрицы к следующему по абсолютной величине.

    Для решения полной самосопряженной проблемы собственных значений применяется метод вращений.

    Определение собственных значений самосопряженной матрицы $$\mathbf{A}$$ эквивалентно отысканию такой ортогональной матрицы $$\mathbf{T}$$, что

    $$\mathbf{\Lambda } = \mathbf{T^{\prime}AT},$$

    матрица $$\mathbf{\Lambda }$$ — диагональная. Среди всех ортогональных преобразований данное минимизирует сумму квадратов внедиагональных элементов исходной матрицы. Построим итерационный метод, минимизирующий эту сумму на каждой итерации. Пусть каждое преобразование подобия на каждой итерации содержит лишь одну матрицу вращения $${\mathbf{\hat A}} = {\mathbf{T^{\prime}}}_{ij}{\mathbf{AT}}_{ij}$$, где матрица $$\mathbf{T}_{ij}$$ есть матрица поворота в плоскости $${\mathbf{u}}_i {\mathbf{u}}_j$$ на угол $$\alpha.$$ Эта матрица отличается от матрицы $$\mathbf{A}$$ только двумя строками и двумя столбцами (с номерами i и j ). Так как евклидова норма матрицы не изменяется при ортогональных преобразованиях, то легко получить соотношение между суммами квадратов внедиагональных элементов старой и новой матриц:

    $$$ \sum\limits_{i \ne j}{\hat{a}_{ij}^2} = \sum\limits_{i \ne j}{{a}_{ij}^2} - 2{a}_{ij}^2 + \frac{1}{2}{\left({(a_{jj} - a_{ii})\sin 2\alpha + 2a_{ij}\cos 2\alpha}\right)}^2. $$$

    Очевидны условия минимизации суммы в левой части последнего равенства. Следует на текущей итерации выбирать индексы так, чтобы выполнялось условие $$|{a_{ij}}| = \max\limits_{k \ne l}|{a_{kl}}|$$, а угол поворота выбирается из условия $$0 = {\left({(a_{jj}} - a_{ii})\sin 2\alpha + 2a_{ij}\cos 2\alpha}\right)}^2 .$$ Тогда он удовлетворяет условию $$$ \tg 2\alpha = \frac{2a_{ij}}{a_{ii} - a_{jj}},\quad |{\alpha }| \le \frac{\pi}{4} $.$$

    Независимо от наличия кратных собственных значений метод вращений обладает квадратичной сходимостью.

    Выбор максимального по модулю внедиагонального элемента — затратная операция, поэтому часто реализуется метод вращений с барьерами. Его идея состоит в следующем. При переборе внедиагональных значений вращение производится тогда, когда значение элемента по абсолютной величине превосходит некоторую величину (барьер). Если все элементы меньше барьера, его значение уменьшается, например, на порядок, и снова начинается циклический перебор внедиагональных элементов. Подробнее о методе вращений смотри в [2.1].

    Другие алгоритмы решения спектральных задач описаны в специальной литературе [2.1, 2.3, 2.10].

    Задачи

  • Методом Гаусса решить систему линейных уравнений $$\mathbf{Ax} = \mathbf{f}$$, где

    $$\mathbf{A} ={\left( \begin{array}{ccc} 5 0 1 \\ 2 6 {-2}\\ -3 2 10 \\ \end{array}\right)}, \mathbf{f} = {(11, 8, 6)}^{\mathbf{T}}$$

    или

    $$\begin{gather*} 5{x}_1 + 0 \cdot{x}_2 +{x}_3 = 11, \\ 2{x}_1 + 6 \cdot{x}_2 + 2{x}_3 = 8, \\ - 3{x}_1 + 2 \cdot{x}_2 + 10{x}_3 = 6. \end{gather*} $$

    Решение.Расширенная матрица $$$ \tilde{\mathbf{A}}$$$ имеет вид

    $$$\tilde{\mathbf{A}} = \left( \begin{array}{cccc} {{a}_{11}} {{a}_{12}} {{a}_{13}} {f}_1 \\ {{a}_{21}} {{a}_{22}} {{a}_{23}} {f}_2 \\ {{a}_{31}} {{a}_{32}} {{a}_{33}} {f_3}\\ \end{array}\right) = \left( \begin{array}{cccc} 5 0 1 11\\ 2 6 {-2} 8 \\ -3 2 10 6 \\ \end{array}\right) $$$

    Разделив элементы первой строки на ведущий элемент a11= 5 получаем первую опорную строку (1, 0, 0.2, 2.2).

    Далее умножим ее на a21= 2 и вычтем из второй строки, после чего умножим опорную строку на a31= 3 и вычтем из третьей. Получаем матрицу $$$ \tilde{\mathbf{A}}_1 $$$

    $$$ \tilde{\mathbf{A}} = \left( \begin{array}{cccc} {{a}_{11}} {{a}_{12}} {{a}_{13}} {{f}_1}\\ 0 {\tilde{a}_{22}} {\tilde{a}_{23}} {\tilde{f}_2}\\ 0 {\tilde{a}_{32}} {\tilde{a}_{33}} {\tilde{f}_3}\\ \end{array}\right) = \left( \begin{array}{cccc} 1 0 0.2 2.2\\ 0 6 {-2.4} 3.6 \\ 0 2 10.6 12.6 \\ \end{array}\right) $$$

    Вторая опорная строка — результат деления второй строки матрицы $$$ \tilde{\mathbf{A}}_1 $$$ на

    $$a_{22}^1 = 6$$:
    (0, 1, - 0.4, 0.6)

    Матрицы $$$ \tilde{\mathbf{A}}_2 $$$ после умножения опорной строки на 2 и вычитания ее из третьей

    $$$ \tilde{\mathbf{A}}= \left( \begin{array}{cccc} {{a}_{11}} {{a}_{12}} {{a}_{13}} {f}_1 \\ 0 {\tilde{a}_{22}} {\tilde{a}_{23}} {\tilde{f}_2}\\ 0 0 {\tilde{\tilde{a}}_{33}} {\tilde{\tilde{f}}_3}\\ \end{array}\right) = \left( \begin{array}{cccc} 1 0 0.2 2.2\\ 0 6 {-0.4} 0.6 \\ 0 0 11.4 11.4 \\ \end{array}\right) $$$

    Третья опорная строка (результат деления третьей строки на 11,4 ) есть (0,0,1,1) .

    Матрица $$$ \tilde{\mathbf{A}}_3 $$$ будет

    $$$ \tilde{\mathbf{A}}_1 = \left( \begin{array}{cccc} 1 0 {0,2} {2,2}\\ 0 1 {- 0,4} {0,6}\\ 0 0 1 1 \\ \end{array}}\right). $$$

    Обратный ход метода Гаусса.

    Система уравнений с матрицей $$$ \tilde{\mathbf{A}}_3 $$$

    $$\begin{gather*} {x}_1 + 0 \cdot{x}_2 + 0,2{x}_3 = 2,2 , \\ {x}_2 - 0,4{x}_3 = 0,6 , \\ {x}_3 = 1. \end{gather*} $$

    Разрешая эту систему, начиная с последнего уравнения, получим

    x3  = 1,  x2  = 1,  x1  = 2.

    Определитель матрицы $$\det \mathbf{A}$$ можно вычислить как произведение ведущих элементов

    $$\det \mathbf{A} = 5 \cdot 6 \cdot 11,4 = 342.$$
  • Показать, что решение системы линейных уравнений

    $$\begin{gather*} {x}_1 + 2{x}_2 + 3{x}_3 + 4{x}_4 = 2, \\ {x}_1 + 3{x}_2 + {x}_3 + 2{x}_4 = - 1, \\ 2{x}_1 + 3{x}_2 + 8{x}_3 + 7{x}_4 = 10, \\ 2{x}_1 + 5{x}_2 + 3{x}_3 + 7{x}_4 = 3 \end{gather*}$$

    методом Гаусса невозможно.

    Решение. Преобразование матрицы рассматриваемой системы будет

    $$\left( \begin{array}{ccccc} 1 2 3 4 2 \\ 1 3 1 2 {- 1}\\ 2 3 8 7 {10}\\ 2 5 3 7 3 \\ \end{array}\right) \to \left( \begin{array}{ccccc} 1 2 3 4 2 \\ 0 1 {- 2} {- 2} {- 3}\\ 0 {- 1} 2 {- 1} 6 \\ 0 1 {- 3} {- 1} 1 \\ \end{array}\right) \to \left( \begin{array}{ccccc} 1 2 3 4 2 \\ 0 1 {- 2} {- 2} {- 3}\\ 0 0 0 {- 3} {- 3}\\ 0 0 {- 1} 1 2 \\ \end{array}\right)$$

    Поскольку $${a^2_{33}} = 0$$ то вычисление третьей опорной строки невозможно.

  • Показать, что

    $$$ \mu (\mathbf{A}) \ge \frac{|{\max\limits_i \lambda_i(\mathbf{A})}|}{|{\min\limits_i \lambda_i (\mathbf{A})}|}. $$$

    Рассмотреть случай симметричной матрицы $$\mathbf{A}.$$

    Решение. Для собственного вектора $$\omega,$$ соответствующего наибольшему по модулю собственному значению матрицы, выполняется равенство $$\mathbf{A}\omega = \lambda \omega $$, откуда

    $$\|{\mathbf{A\omega}}\| = \left|{\max\limits_i\lambda_i}\right|{\|\omega\|}.$$

    Учитывая, что $$\|{\mathbf{A}\omega }\| \le \|\mathbf{A}\|{\|\omega\|}$$, получим $$\|\mathbf{A}\| \ge \left|{\max\limits_i \lambda_i (\mathbf{A})}\right|.$$ Для обратной матрицы $$\mathbf{A}^{-1}$$ максимальным по модулю является собственное число $$\min\limits_i \lambda_i^{-1}$$, откуда $$\left\|{\mathbf{A}^{- 1}}\right\| \ge {\left|{\min\limits_i\lambda_i(\mathbf{A})}\right|}^{- 1}.$$ Объединяя два последних неравенства, получим

    $$$ \mu (\mathbf{A}) = {\left\|{\mathbf{A}^{- 1}}\right\|}\|\mathbf{A}\| \ge \frac{|{\max\limits_i \lambda_i (\mathbf{A})}|}{|{\min\limits_i \lambda_i (\mathbf{A})}|}. $$$

    В случае симметричной матрицы $$\mathbf{A}(\mathbf{A}^* = \mathbf{A})$$ имеем

    $$\|\mathbf{A}\|}_3 = \sqrt{\lambda_{\max}(\mathbf{A}^*\mathbf{A})} = \sqrt{\lambda_{\max}(\mathbf{A}^2 )}= \sqrt{\lambda_{\max}^2(\mathbf{A})} = |{\lambda_{\max}(\mathbf{A})}|$$,

    т.к. из $${\mathbf{A\omega}}_i = \lambda_i\omega_i$$ следует $$({\mathbf{A\omega}}_i )^2 = \lambda_i^2\omega_i^2 .$$ Аналогично

    $${\left\|{\mathbf{A}^{- 1}}\right\|}_3 = \sqrt{\lambda_{\max}[(\mathbf{A}^{- 1})^* (\mathbf{A}^{- 1})]} = \sqrt{\lambda_{\max}[(\mathbf{A}^{- 1})]^2} = \\ = \sqrt{\lambda_{\min}^{- 1}(\mathbf{A}^2 )} = |{\lambda_{\min}^{- 1}(\mathbf{A})}|.$$

    Тогда $$\mu (\mathbf{A}) = {\|\mathbf{A}\|}_3{\left\|{\mathbf{A}^{- 1}}\right\|}_3 = |{\lambda_{\max}(\mathbf{A})}|/|{\lambda_{\min}(\mathbf{A})}|.$$

  • Найти число обусловленности матрицы $$\mathbf{A}$$, выразив его через число обусловленности матрицы $$\mathbf{B}$$, если $$\mathbf{A} = {\mathbf{B}}^*{\mathbf{B}} > 0.$$

    Решение. Для самосопряженной положительной матрицы $$\mathbf{A}$$ имеем

    $$$ \|\mathbf{A}\| = \sup\limits_{\|\mathbf{u}\| \ne 0}\frac{(\mathbf{u}, \mathbf{Au})}{(\mathbf{u}, \mathbf{u})}. $$$

    Тогда

    $$$ \mu (\mathbf{A}) = {\|\mathbf{A}\|}_3 \left\|{{\mathbf{A}}^{- 1}}\right\|}_3 = \sup\limits_{\|\mathbf{u}\| \ne 0}\frac{(\mathbf{u, Au})}{(\mathbf{u, u})} \sup\limits_{\|{u}\| \ne 0}\frac{(\mathbf{u}, \mathbf{A}^{- 1}\mathbf{u})}{(\mathbf{u, u})} = \\ = \sup\limits_{\|\mathbf{u}\| \ne 0} \frac{({\mathbf{Bu, Bu}})}{(\mathbf{u,u})}\sup\limits_{\|\mathbf{u}\| \ne 0}\frac{({\mathbf{B}}^{- 1}\mathbf{u},{\mathbf{B}}^{- 1}\mathbf{u})}{(\mathbf{u, u})} = {\|{\mathbf{B}}\|}_3^2 {\left\|{{\mathbf{B}}^{- 1}}\right\|}_3^2, $$$

    откуда

    $$\mu (\mathbf{A}) = \mu ^2({\mathbf{B}}).$$
  • Показать, что норма матрицы

    $${\|\mathbf{A}\|}_2 = \max\limits_{1 \le j \le n}\sum\limits_{j= 1}^n{|{a_{ij}}|}$$

    согласована с нормой вектора

    $${\|\mathbf{u}\|}_2 = \sum\limits_{i = 1}^n{|{u_i}|}.$$

    Решение.

    $${\|\mathbf{Au}\|}_2 = \sum\limits_{i = 1}^n{\left|{\sum\limits_{j= 1}^n{a_{ij}u_j}}\right|} \le \sum\limits_{i = 1}^n{\sum\limits_{j = 1}^n{|{a_{ij}}|}} \cdot |{u_j}| \le \sum\limits_{j = 1}^n{|{u_j}|} \cdot \sum\limits_{i = 1}^n{|{a_{ij}}|} \le \\ \le (\max\limits_{1 \le i \le n}\sum\limits_j{|{a_{ij}}|}) \cdot {\|\mathbf{u}\|}_2 = {\|\mathbf{A}\|}_2 {\|\mathbf{u}\|}_2.$$

    Положим

    $$\max \sum\limits_{i = 1}^n{|{a_{ij}}|} = \sum\limits_{i = 1}^n{|{a_{ik}}|}.$$

    Покажем, что существует вектор $$\mathbf{v}$$, для которого достигается равенство. В качестве такового можно взять вектор $$\mathbf{v}$$ с компонентами $${v}_i = 0, i \ne k, {v}_k = 1.$$

    Таким образом, норма матрицы $${\|\mathbf{A}\|}_2 = \max\limits_{1 \le j \le n}\sum {|{u_{ij}}|}$$ согласована с нормой вектора $${\|\mathbf{u}\|}_2 = \sum\limits_{i = 1}^n{|{u_i}|}.$$

  • Дана жорданова клетка порядка n

    $$\mathbf{A}= \left( \begin{array}{ccccccc} 1 {d} 0 \ldots \ldots 0 0 \\ 0 1 {d} \ldots \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots 1 {d} \ldots 0 \\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 \ldots \ldots \ldots 1 {d}\\ 0 0 \ldots \ldots \ldots \ldots 1 \\ \end{array} \right).$$

    Найти $$\mu (\mathbf{A})$$ и оценить возмущение в компоненте $$u_1$$ решения системы $$\mathbf{Au} = \mathbf{f}$$, если компонент fn вектора f возмущен на величину $$\varepsilon.$$

    Решение. Из $$\mathbf{Au}= \mathbf{f}$$ следует, что $$\mathbf{u}=\mathbf{A}^{- 1}\mathbf{f}.$$

    С помощью обратной подстановки un = 1, un - 1 = ... находим компоненты матрицы

    $$\mathbf{A}^{- 1}= \left( \begin{array}{ccccccc} 1 {- d} {d^2} \ldots \ldots {( - d)^{n - 2}} {( - d)^{n - 1}}\\ 0 1 {- d} \ldots \ldots {( - d)^{n - 3}} {( - d)^{n - 2}}\\ 0 0 1 \ldots \ldots {( - d)^{n - 4}} {( - d)^{n - 3}}\\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 0 \ldots \ldots 1 {- d}\\ 0 0 0 \ldots \ldots 0 1 \\ \end{array} \right).$$

    В этом случае $$$ {\|\mathbf{A}\|}_1 = 1 + |{d}|, {\left\|{\mathbf{A}^{- 1}}\right\|}_1 = 1 + |{d}|+{d}^2 + \ldots + {|{d}|}^{n - 1} = \frac{{|{d}|}^n - 1}{|{d}| - 1} $;$$

    Видно, что при | d | > 1 матрица $$\mathbf{A}$$ плохо обусловлена, при | d | < 1 - хорошо. При n = 20 и d = 5 имеем $$\mu (\mathbf{A}) \approx 10^{14}.$$

    Компонент $$$ \tilde{u}_1 $$$ решения возмущенной системы $$\tilde{\mathbf{u}} = {\mathbf{A}}^{- 1}{\mathbf{\tilde{f}}}$$ будет

    $$$ \tilde{\mathbf{u}}_1 = f_1 - df_2 + d^2f_3 + \ldots + {(- d)}^{n - 2}f_{n - 1} + {( - d)}^{n - 1}(f_n + \varepsilon ) = u_1 + {(- d)}^{n - 1}\varepsilon, $$$

    где u1 — компонент решения невозмущенной системы $$\mathbf{Au} = \mathbf{f}$$

    Отсюда видно, что при | d | > 1 возмущение в n компоненте вектора $$\mathbf{f}$$ увеличивается в компоненте u1 вектора $$\mathbf{u}$$ в | d |n - 1 раз, а при | d | < 1 — в | d |n - 1 раз убывает.

  • Пусть в системе линейных уравнений
    u1  + 0,99u2  = f1, 
    0,99u1  + u2  = f2

    вектор $$\mathbf{f} = {(f_1, f_2)}^{T}$$ получает приращение $$\mathbf{\Delta f} = {(\delta f_1, \delta f_2)}^{T}$$, а решение получает приращение $$\Delta\mathbf{u} = {(\delta u_1, \delta u_2)}^{T}$$, Найти наименьшее число $$\mu,$$ при котором независимо от $$\mathbf{f}$$ и $$\Delta \mathbf{f}$$ выполняется оценка$$\frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \mu \frac{\|{\Delta \mathbf{f}}\|}{\|\mathbf{f}\|}.$$

    Решить задачу, используя нормы матриц $${\|\cdot\|}_1, {\|\cdot\|}_2 , {\|\cdot\|}_3.$$

    Решение. Для возмущенной задачи $$\mathbf{A}(\mathbf{u} + \Delta\mathbf{u}) = \mathbf{f} + \Delta\mathbf{f}$$, из линейности системы следует $$\mathbf{A}\Delta\mathbf{u} = \Delta\mathbf{f}.$$ Для возмущения решения выполняется равенство $$\Delta\mathbf{u} = {\mathbf{A}}^{- 1}\Delta\mathbf{f}.$$ Тогда $$$ \|{\Delta\mathbf{u}}\| \le \|{\mathbf{A}^{- 1}}\| \cdot \|\mathbf{A}\| \cdot \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|} \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} $.$$

    Отсюда сразу следует $$$ \|{\Delta\mathbf{u}}\| \le \left\|{{\mathbf{A}}^{- 1}}\right\| \cdot \|\mathbf{A}\| \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|}\|\mathbf{u}\| $$$, так как $$$ \frac{\|\mathbf{f}\|}{\|\mathbf{A}\|} \le \|{\Delta\mathbf{u}}\| $.$$

    Тогда искомая оценка будет $$$ \frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \left\|{{\mathbf{A}}^{- 1}}\| \cdot \|\mathbf{A}\| \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|}.$$ Обозначим $$\mu = \|{{\mathbf{A}}^{- 1}}\| \cdot \|\mathbf{A}\| $.$$ В этом случае наименьшим числом, при котором выполняется оценка $$$ \frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \mu \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|} $$$, является $$\mu = \|{{\mathbf{A}}^{- 1}}\| \cdot \|\mathbf{A}\|.$$ Это — число обусловленности системы уравнений. Численное решение в соответствующих нормах получается легко.

  • При заданном фиксированном $$\mathbf{f}$$ найти наименьшее число $$\nu,$$ при котором независимо от $$\mathbf{\Delta f}$$ выполняется оценка

    $$$ \frac{\|{\Delta\mathbf{u}}\|}{\|\mathbf{u}\|} \le \nu (f) \frac{\|{\Delta\mathbf{f}}\|}{\|\mathbf{f}\|} $.$$

    Найти такую правую часть системы $$\mathbf{f}$$, которой соответствует наименьшее $$\nu,$$ а также само это значение при использовании третьей нормы матрицы.

    Решение.

    По условию задачи $$$ \nu \ge \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \cdot \frac{\|{\Delta\mathbf{u}}\|}{\|{\Delta\mathbf{f}}\|} $.$$ Рассмотрим, какие значения может принимать это число. Точная нижняя грань для такой оценки, очевидно, $$$ \inf\limits_{\|{\Delta\mathbf{f}}\| \ne 0}\nu = \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|} \cdot \sup\limits_{\|{\Delta\mathbf{f}}\| \ne 0} \frac{\left\|{{\mathbf{A}}^{- 1} \cdot \Delta\mathbf{f}}\right\|}{\|{\Delta\mathbf{f}}\|} $.$$ Так как надо найти оценку, не зависящую от начального возмущения (при решении конкретной задачи оно, очевидно, неизвестно), получим

    $$$ \nu = \inf\limits_{\|{\Delta\mathbf{f}}\| \ne 0}\nu = {\left\|{{\mathbf{A}}^{- 1}}\right\|} \cdot \frac{\|\mathbf{f}\|}{\|\mathbf{u}\|}. $$$

    Для точной нижней грани выполнено $$$ \inf\limits_\mathbf{f}\nu (\mathbf{f}) = \left\|{{\mathbf{A}}^{- 1}}\right\| \times \\ \times {\left({\sup\frac{\|{{\mathbf{A}}^{- 1}\mathbf{f}}\|}{\|\mathbf{f}\|}}\right)}^{- 1} = 1 $.$$ Можно оценить и точную верхнюю грань:

    $$$ \sup\limits_\mathbf{f}\nu = \left\|{{\mathbf{A}}^{- 1}}\right\| \sup\limits_{\mathbf{u}}\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \left\|{{\mathbf{A}}^{- 1}}\right\| \cdot \|\mathbf{A}\| = \mu $$$

    Таким образом, $$1 \le \nu \le \mu.$$

    Ответим на вопрос, при каких $$\mathbf{f}$$ достигается $$\sup\limits_{\mathbf{f}}\nu $$ и $$\inf\limits_{\mathbf{f}}\nu.$$ Для этого используем разложение вектора правой части системы по базису из собственных векторов матрицы $${\mathbf{A}}^2$$ (без ограничения общности полагаем, что такой базис существует). В этом базисе$$\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \sqrt{\frac{({\mathbf{A}}^*\mathbf{Au, u})}{(\mathbf{u, u})}} - \sqrt{\frac{(\sum{\lambda_i\xi_i\omega_i, \xi_i\omega_i})}{(\xi_i\omega_i, \xi_i\omega_i )}} = \sqrt{\frac{\sum{\lambda_i\xi_i^2}}{\sum{\xi_i^2}}},$$ $$$ \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A})} \le \sqrt{\frac{\sum {\lambda_i\xi_i^2}}{\sum{\xi_i^2}}} = \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} \le \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A})} $.$$

    Для самосопряженной положительной матрицы $${\mathbf{A}}^* = \mathbf{A} > 0$$ получаем

    $$$ |{\lambda_{\min}(\mathbf{A})}| \le \sqrt{\frac{\sum\limits_i {\lambda_i \xi_i^2}}{\sum\limits_i{\xi_i^2}}} = \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} \le |{\lambda_{\max}(\mathbf{A})}|. $$$

    В то же время

    $$$ \frac{\|{{\mathbf{A\omega}}_i}\|}{\|{\omega_i}\|} = \sqrt{\frac{(\mathbf{A}*{\mathbf{A\omega}}_i, \omega_i )}{(\omega_i, \omega_i )}} = \sqrt{\frac{\lambda_i (\omega_i, \omega_i )}{(\omega_i ,\omega_i )}} = \sqrt{\lambda_i (\mathbf{A}*\mathbf{A})}, $$$

    для самосопряженной положительной матрицы $$$ \frac{\|{{\mathbf{A\omega}}_i}\|}{\|{\omega_i}\|} = |{\lambda_i (\mathbf{A})}| $.$$

    $$$ \sup\limits_\omega\frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A})};\quad \inf\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A})}. $$$

    В случае $${\mathbf{A}}^* = \mathbf{A} > 0$$ получаем $$\sup\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = |{\lambda_{\max}(\mathbf{A})}| \inf\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = |{\lambda_{\min}(\mathbf{A})}| $.$$

    Таким образом,

    $$$ \sup\limits_\mathbf{u} \frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A});} \sup\limits_\omega\frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\max}({\mathbf{A}}^*\mathbf{A})}, $$$

    $$$ \inf\limits_\mathbf{u}\frac{\|\mathbf{Au}\|}{\|\mathbf{u}\|} = \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A});} \inf\limits_\omega \frac{\|{{\mathbf{A\omega}}}\|}{\|\omega\|} = \sqrt{\lambda_{\min}({\mathbf{A}}^*\mathbf{A})}. $$$

  • Выписать формулы итерационных методов Якоби, Зейделя, верхней релаксации для СЛАУ

    $$\mathbf{Ax}= \mathbf{f}, \mathbf{A}= \left( \begin{array}{cc} 2 1 \\ 1 2 \\ \end{array}\right), \mathbf{x} = {(1,-1)}^{T}, \mathbf{f} = {(1,-1)}^{T}$$

    или

    2u + v = 1, 
    u + 2v = - 1.

    Оценить количество итераций для метода Якоби.

    (Решение системы: u = 1; v = -1 ).

    Решение.

    Итерационные методы Якоби, Зейделя, релаксации соответственно записываются

    $$\left\{ \begin{array}{ccc} u_{k + 1} = - \frac{1}{2}v_k + \frac{1}{2}, \\ v_{k + 1} = - \frac{1}{2}u_k - \frac{1}{2}, \\ \end{array} \right.$$ $$(u_0, v_0 ) = (u_0^0, v_0^0 )$$,

    или $${\mathbf{x}}_{k+ 1} = {\mathbf{Bx}}_k + \mathbf{f}$$,

    $${\mathbf{B}}= \left( \begin{array}{cc} 0 {- 0,5}\\ {- 0,5} 0 \\ \end{array} \right),$$

    $$\begin{gather*} u_{k + 1} = - \frac{1}{2}v_k + \frac{1}{2}, \\ v_{k + 1} = - \frac{1}{2}u_{k + 1} - \frac{1}{2}; \\ u_{k + 1} = (1 - \tau )u_k + \frac{\tau}{2}(1 - v_k), \\ v_{k + 1} = (1 - \tau )v_k - \frac{\tau}{2}(1 + u_k). \end{gather*} $$

    Оценка количества итераций проводится по формуле

    $$$ k \approx \ln \frac{\varepsilon }{\varepsilon_0 }/\ln \|\mathbf{B}\| = \ln 10^{- 3}/\ln \frac{1}{2}. $$$
  • Представить графическую интерпретацию итерационного метода Якоби для СЛАУ

    $$\begin{gather*} a_{11}u + a_{12}v = f_1, \\ a_{21}u + a_{22}v= f_2, \\ a_{11} \ne 0, a_{22} \ne 0 \end{gather*}$$

    Решение. Итерационный процесс Якоби записывается как

    $$\begin{gather*}u_{k+ 1} = - \frac{a_{12}}{a_{11}}v_k + \frac{f_1}{a_{11}}, \\ v_{k+ 1} = - \frac{a_{21}}{a_{22}}u_k + \frac{f_2}{a_{22}}. \end{gather*}$$(рис 2.1)

    Первое уравнение соответствует прямой 1, второе — прямой 2. Вычисление u1 соответствует проведению отрезка, параллельного оси 0u и (при v = v0 ) до пересечения с прямой 1 ; точка пересечения даст первое приближение u1. Вычислению v1 соответствует проведение из точки A1 прямой, параллельной оси 0v до пересечения с прямой 2 и т.д. до сходимости итераций к точке пересечения прямых 1 и 2 (Ak) с заданной точностью.

  • При каких a,b сходится метод простой итерации $${\mathbf{u}}_{k+ 1} = {\mathbf{Bu}}_k + \mathbf{f}$$, где

    $${\mathbf{B}} = \left( \begin{array}{ccc} {a} {b} 0 \\ {b} {a} {b}\\ 0 {b} {a} \\ \end{array} \right).$$

    Решение. Для того, чтобы метод простой итерации сходился к решению соответствующей СЛАУ, необходимо и достаточно, чтобы все собственные значения матрицы $$\mathbf{B}$$ по модулю были меньше единицы: $$|\lambda _{i}| < 1.$$ Решаем характеристическое уравнение

    $$\begin{gather*} det (\mathbf{B}- \lambda \mathbf{E}) = {\left| \begin{array}{ccc} {a - \lambda } {b} 0 \\ {b} {{a}-{\lambda}} {b}\\ 0 {b} {{a}-{\lambda}}\\ \end{array} \right|} = \\ = (a - \lambda ) {\left| \begin{array}{cc} {{a}-{\lambda}} {b}\\ {b} {{a}-{\lambda}}\\ \end{array} \right|} - b{\left| \begin{array}{cc} {b} {a}\\ 0 {{a}-{\lambda}}\\ \end{array} \right|} = \\ = (a - \lambda )\left[{{(a - \lambda )}^2 - b^2}\right] - b^2 (a - \lambda ) = \\ = (a - \lambda )(a - \lambda - \sqrt{2b})(a - \lambda + \sqrt{2b}) = 0, \end{gather*}$$

    откуда получим условие сходимости итерационного метода

    $$|{a}| < 1, |{a \pm \sqrt{2b}}| < 1.$$
  • Найти условие сходимости итерационных методов Якоби и Зейделя для СЛАУ $$\mathbf{Au} = \mathbf{f}$$ с матрицей

    $$\mathbf{A}$$ вида$$\mathbf{A} = \left( \begin{array}{ccc} {a} {b} 0 \\ {b} {a} {b}\\ 0 {b} {a}\\ \end{array} \right).$$

    Решение. Для метода Якоби

    $${\mathbf{u}}_{k + 1} = {\mathbf{Bu}}_k + \mathbf{f},\quad \mbox{где}\quad {\mathbf{B}} = -{\mathbf{D}}^{- 1}({\mathbf{L}} + {\mathbf{U}}).$$

    Имеет место уравнение:

    $${\mathbf{B\omega}} = \lambda \omega$$, где $$\lambda$$ и $$\mathbf{\omega}$$ — собственное число и собственный вектор, соответственно. В таком случае $$- {\mathbf{D}}({\mathbf{L}} + {\mathbf{U}})\omega = \lambda\omega$$, или: $$({\mathbf{L}} + {\mathbf{U}} + \lambda{\mathbf{D}}) \omega = 0$$, откуда (предполагаем наличие нетривиальных решений у последней СЛАУ ):

    $$\det ({\mathbf{L}} + {\mathbf{U}} + \lambda{\mathbf{D}}) = 0.$$

    Решим это уравнение:

    $$\det {\left| \begin{array}{ccc} \lambda a b 0\\ b \lambda a b\\ 0 b \lambda a \end{array} \right|} = 0,$$

    откуда получим условия сходимости итерационного метода Якоби:

    $$$ |{\frac{b}{a}}| < 2^{- \frac{1}{2}}. $$$

    Для метода Зейделя имеем

    $${\mathbf{B}} = {- (\mathbf{D} + \mathbf{L})}^{- 1}{\mathbf{U}},\quad {\mathbf{B\omega}} = \lambda\omega.$$

    В таком случае

    $${- (\mathbf{D} + \mathbf{L})}^{- 1}{\mathbf{U\omega}} = \lambda\omega$$,

    откуда следует уравнение

    $$\det (\lambda{\mathbf{L}} + \lambda {\mathbf{D}} + {\mathbf{U}}) = 0$$,

    Вычислив детерминант, придем к алгебраическому уравнению

    $$\det {\left( \begin{array}{ccc} \lambda a b 0 \\ \lambda b \lambda a b \\ 0 \lambda b \lambda a \end{array} \right) } = a{\lambda}^2(a^2\lambda - 2b^2) = 0.$$

    В таком случае, поскольку $$$ \lambda_{1,2}= 0, \lambda_3 = 2\frac{b^2}{a^2} $$$, получим условие сходимости метода Зейделя: $$$ \frac{b}{a} < 2^{- \frac{1}{2}}$.$$ Видно, что в данном случае условия сходимости для обоих методов совпадают.

  • Вернуться к учебному плану