Журнал вычислительной математики и математической физики, 2019, T. 59, № 8, стр. 1331-1339
Итерационные методы градиентного спуска для решения линейных уравнений
А. Б. Самохин 1, *, А. С. Самохина 2, А. Я. Скляр 1, Ю. В. Шестопалов 1
1 МИРЭА
119454 Москва, пр-т Вернадского, 78, Россия
2 ИПУ РАН
117997 Москва, ул. Профсоюзная ул., 65, Россия
* E-mail: absamokhin@yandex.ru
Поступила в редакцию 23.03.2018
После доработки 30.03.2019
Принята к публикации 10.04.2019
Аннотация
Представлены результаты по использованию алгоритмов градиентного спуска для построения итерационных методов решения линейных уравнений. Проведено математически строгое обоснование сходимости итераций к решению уравнений. Представлены численные результаты, показывающие эффективность модифицированного итерационного метода градиентного спуска. Библ. 6. Табл. 3.
ВВЕДЕНИЕ
В настоящее время итерационные методы решения систем линейных алгебраических уравнений (СЛАУ) приобретают все большую популярность. Это связано с тем, что во многих случаях необходимо решать СЛАУ огромной размерности N и с плотными матрицами. Подобные задачи возникают, например, при численном решении многомерных интегральных уравнений. Ясно, что в этих случаях практически невозможно решать СЛАУ прямыми методами, типа метода Гаусса, поскольку тогда для получения решения необходимо выполнить $T\sim {{N}^{3}}$ арифметических операций и хранить в памяти компьютера порядка $M\sim {{N}^{2}}$ чисел. Для итерационных методов указанные характеристики алгоритмов T и M оцениваются формулами $T\sim L{{T}_{A}}$ и $M\sim {{M}_{A}}$, где ${{T}_{A}}$ – число арифметических операций для умножения матрицы на вектор, L – количество итераций для получения решения с заданной точностью, а ${{M}_{A}}$ – число различных элементов матрицы.
Используя равномерную сетку для дискретизации многомерных интегральных уравнений и алгоритмы быстрого дискретного преобразования Фурье, для решения многих задач математической физики получаются СЛАУ для которых ${{T}_{A}}\sim N$ и ${{M}_{A}}\sim N$ [1]. Тогда главной проблемой численного решения становится уменьшение числа итераций L, требуемое для получения решения с заданной точностью.
Существует большое число итерационных методов. Их можно разделить на два класса: стационарные и нестационарные методы. К первому классу относятся методы, в которых итерационные параметры определяются до выполнения итераций и в дальнейшем не изменяются. Ко второму классу относятся методы, в которых итерационные параметры определяются в процессе выполнения итераций и зависят от номера итерации. К стационарным относятся методы простой итерации, чебышёвский итерационный метод и другие [2], [3]. К нестационарным относятся методы сопряженных градиентов, минимальных невязок и другие [3]–[5]. Условия применимости стационарных методов для решения уравнений, как правило, более жесткие по сравнению с нестационарными методами. Тем не менее практически у каждого итерационного метода есть класс задач, где его применение наиболее эффективно.
В настоящей работе описываются итерационные методы градиентного спуска для линейных уравнений с несамосопряженным оператором. С использованием функционала от матрицы, в общем случае неэрмитовой и комплексной, строятся однопараметрическая и двухпараметрическая итерационные процедуры, которые сходятся к решению для любых СЛАУ с невырожденными матрицами. Это принципиально отличает представляемые методы от известных градиентных итерационных алгоритмов, где на матрицу, помимо невырожденности, накладываются дополнительные условия. Так, например, в работе [6] излагаются однопараметрический и двухпараметрический градиентные итерационные алгоритмы, которые применимы только для вещественных, симметричных и положительно-определенных матриц.
1. СИСТЕМЫ УРАВНЕНИЙ С ДЕЙСТВИТЕЛЬНЫМИ МАТРИЦАМИ
Рассмотрим сначала систему N линейных алгебраических уравнений с действительными коэффициентами матрицы и правой части вида
Систему линейных уравнений (1.1) можно записать в матричном виде: где A – матрица коэффициентов системы уравнений, а x и f суть N-мерные векторы. Ниже будем полагать, что определитель матрицы не равен нулю и поэтому система уравнений имеет единственное решение при любой правой части. Никаких других ограничений на матрицу A налагать не будем.Определим функции
(1.3)
$\begin{gathered} {{\Phi }_{n}}(x) = \frac{1}{2}{{\left( {\sum\limits_{m = 1}^N {{{a}_{{nm}}}{{x}_{m}} - {{f}_{n}}} } \right)}^{2}},\quad n = 1,\; \ldots ,\;N, \\ \Phi (x) = \sum\limits_{n = 1}^N {{{\Phi }_{n}}(x),\quad x = ({{x}_{1}},\; \ldots ,\;{{x}_{N}}).} \\ \end{gathered} $(1.5)
$\begin{gathered} \frac{\partial }{{\partial {{x}_{m}}}}{{\Phi }_{n}}(x) = {{a}_{{nm}}}\left( {\sum\limits_{m = 1}^N {{{a}_{{nm}}}{{x}_{m}} - {{f}_{n}}} } \right), \\ \frac{\partial }{{\partial {{x}_{m}}}}\Phi (x) = \sum\limits_{n = 1}^N {{{a}_{{nm}}}{{r}_{n}}} ,\quad {{r}_{n}} = \sum\limits_{m = 1}^N {{{a}_{{nm}}}{{x}_{m}} - {{f}_{n}}} . \\ \end{gathered} $Далее, для решения системы уравнений (1.1) будем использовать алгоритм нахождения минимума функции $\Phi (x)$. Будем применять метод градиентного спуска. Из (1.5) следует, что градиент функции $\Phi (x)$ в любой точке x определяется формулой
(1.7)
${{[\operatorname{grad} \Phi (x)]}_{m}} = \sum\limits_{m = 1}^N {{{a}_{{nm}}}{{r}_{n}}} ,\quad m = 1,\; \ldots ,\;N.$Таким образом, процедура итерационного метода градиентного спуска состоит в следующем. Выбирается какое-то начальное значение вектора ${{x}_{0}}$. Затем с использованием формулы (1.11) находится значение вектора следующего приближения ${{x}_{1}}$, затем ${{x}_{2}}$ и т.д. до тех пор, пока не получим требуемую точность. Используя (1.8), (1.11), окончательно запишем итерационную процедуру в векторном виде:
(1.12)
${{x}_{{k + 1}}} = {{x}_{k}} - \frac{{(A{{A}^{{\text{т }}}}{{r}_{k}},{{r}_{k}})}}{{{{{\left\| {A{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{2}}}}{{A}^{{\text{т }}}}{{r}_{k}},\quad {{r}_{k}} = A{{x}_{k}} - f,\quad k = 0,1,\; \ldots \;.$(1.13)
${{x}_{{k + 1}}} = {{x}_{k}} - \frac{{{{{\left\| {{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{2}}}}{{{{{\left\| {A{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{2}}}}{{A}^{{\text{т }}}}{{r}_{k}},\quad {{r}_{k}} = A{{x}_{k}} - f,\quad k = 0,1,\; \ldots \;.$Из (1.13) следует, что последовательные невязки итераций связаны соотношением
(1.14)
${{r}_{{k + 1}}} = {{r}_{k}} - \frac{{{{{\left\| {{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{2}}}}{{{{{\left\| {A{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{2}}}}A{{A}^{{\text{т }}}}{{r}_{k}},\quad k = 0,1,\; \ldots \;.$(1.15)
$\frac{{{{{\left\| {{{r}_{{k + 1}}}} \right\|}}^{2}}}}{{{{{\left\| {{{r}_{k}}} \right\|}}^{2}}}} = 1 - \frac{{{{{\left\| {{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{4}}}}{{{{{\left\| {{{r}_{k}}} \right\|}}^{2}}{{{\left\| {A{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{2}}}}.$(1.16)
$\frac{{{{{\left\| {{{r}_{{k + 1}}}} \right\|}}^{2}}}}{{{{{\left\| {{{r}_{k}}} \right\|}}^{2}}}} = 1 - \frac{{{{{\left| {({{r}_{k}},A{{A}^{{\text{т }}}}{{r}_{k}})} \right|}}^{2}}}}{{{{{\left\| {{{r}_{k}}} \right\|}}^{2}}{{{\left\| {A{{A}^{{\text{т }}}}{{r}_{k}}} \right\|}}^{2}}}} \leqslant 1.$Отметим важное обстоятельство. Поскольку $\left| {\det A} \right| = \left| {\det {{A}^{{\text{т }}}}} \right| > 0$, то, так как ${{r}_{k}} \ne 0$ (а равенство нулю может быть только, если на k-м шаге итерационной процедуры мы получили точное решение), имеем из (1.15), (1.16), что $0 \leqslant \left\| {{{r}_{{k + 1}}}} \right\|{\text{/}}\left\| {{{r}_{k}}} \right\| < 1$. Значит, невязка решения уменьшается на каждой итерации и в пределе получим точное решение. Заметим, что если векторы ${{r}_{k}}$ и $A{{A}^{{\text{т }}}}{{r}_{k}}$ коллинеарные, то на (k + 1)-м шаге итерационной процедуры мы получим точное решение. Можно дать геометрическую интерпретацию этому условию. Если векторы u и $\text{v}$ коллинеарные, то $u = \lambda \text{v}$, где $\lambda $ – константа и поэтому векторы ${{A}^{{ - 1}}}u$ и ${{A}^{{ - 1}}}\text{v}$ тоже коллинеарные. Значит, если векторы ${{r}_{k}}$ и $A{{A}^{{\text{т }}}}{{r}_{k}}$ коллинеарные, то и векторы ${{A}^{{ - 1}}}{{r}_{k}}$ и ${{A}^{{ - 1}}}(A{{A}^{{\text{т }}}}{{r}_{k}}) = {{A}^{{\text{т }}}}{{r}_{k}}$ также коллинеарные. Тогда и векторы $({{x}_{k}} - x)$ и ${{g}_{k}}$ коллинеарные, где x – решение уравнения (1.2), а ${{g}_{k}}$ – вектор в направлении градиента функции $\Phi (x)$в точке ${{x}_{k}}$. Значит, в этом случае луч, проведенный из точки ${{x}_{k}}$ в направлении (–${{g}_{k}}$), проходит через точку x и поэтому на (k + 1)-м шаге итерационной процедуры получим точное решение. Если же луч проходит вблизи точки x, то на этом шаге мы сильно приблизимся к решению.
2. СИСТЕМЫ УРАВНЕНИЙ С КОМПЛЕКСНЫМИ МАТРИЦАМИ
Итерационная процедура (1.13) была получена для случая, когда матрица и правая часть действительны. Однако во многих задачах матрица системы уравнений и правая часть комплексные. Рассмотрим этот общий случай. Пусть задана система уравнений вида
где $H$ и $f$ – комплексные матрица и вектор соответственно. Будем также предполагать, что определитель матрицы не равен нулю. Никаких других ограничений на матрицу H не налагается.Представим комплексную матрицу $H$ и векторы z и f в виде
где $A$, $B$ – действительные матрицы, а $x$, $y$ и ${{f}^{{(1)}}}$, ${{f}^{{(2)}}}$ – действительные векторы. Тогда система (2.1) может быть записана в видеРазделяя действительную и мнимую части в (2.3), получаем, что система уравнений (2.1) эквивалентна следующей системе уравнений с действительными матрицами и векторами вида:
(2.4)
$\left( {\begin{array}{*{20}{c}} A&{ - B} \\ B&A \end{array}} \right)\left( \begin{gathered} x \hfill \\ y \hfill \\ \end{gathered} \right) = \left( \begin{gathered} {{f}^{{(1)}}} \hfill \\ {{f}^{{(2)}}} \hfill \\ \end{gathered} \right).$Невязка k-й итерации для системы (2.4) описывается формулой
(2.5)
$\left( \begin{gathered} r_{k}^{{(1)}} \hfill \\ r_{k}^{{(2)}} \hfill \\ \end{gathered} \right) = \left( {\begin{array}{*{20}{c}} A&{ - B} \\ B&A \end{array}} \right)\left( \begin{gathered} {{x}_{k}} \hfill \\ {{y}_{k}} \hfill \\ \end{gathered} \right) - \left( \begin{gathered} {{f}^{{(1)}}} \hfill \\ {{f}^{{(2)}}} \hfill \\ \end{gathered} \right).$(2.6)
$\left( \begin{gathered} g_{k}^{{(1)}} \hfill \\ g_{k}^{{(2)}} \hfill \\ \end{gathered} \right) = {{\left( {\begin{array}{*{20}{c}} A&{ - B} \\ B&A \end{array}} \right)}^{{\text{т }}}}\left( \begin{gathered} r_{k}^{{(1)}} \hfill \\ r_{k}^{{(2)}} \hfill \\ \end{gathered} \right).$(2.7)
${{\left( {\begin{array}{*{20}{c}} A&{ - B} \\ B&A \end{array}} \right)}^{{\text{т }}}} = \left( {\begin{array}{*{20}{c}} {{{A}^{{\text{т }}}}}&{{{B}^{{\text{т }}}}} \\ { - {{B}^{{\text{т }}}}}&{{{A}^{{\text{т }}}}} \end{array}} \right).$Учитывая вышеизложенное, итерационную процедуру для системы (2.4) можно записать для комплексной системы (2.1) в следующем виде:
Невязки итераций (2.8) будут уменьшаться в соответствии с формулой а итерации будут сходиться к решению (2.1).3. МОДИФИЦИРОВАННЫЙ МЕТОД ГРАДИЕНТНОГО СПУСКА
Рассмотрим обобщение описанного выше метода.
Сначала будем рассматривать систему N линейных алгебраических уравнений с действительными коэффициентами матрицы и правой части вида (1.2). В описанном выше методе новое значение итерации ${{x}_{{k + 1}}}$ ищется в направлении градиента ${{g}_{k}}$ в точке ${{x}_{k}}$. Однако при этом не используется информация о предыдущих итерациях.
Определим следующую итерационную процедуру:
(3.1)
${{x}_{{k + 1}}} = {{x}_{k}} - {{t}_{k}}({{x}_{k}} - {{x}_{{k - 1}}}) - {{h}_{k}}{{g}_{k}},\quad k = 0,1,\; \ldots ,$(3.2)
${{h}_{0}} = \frac{{(A{{A}^{{\text{т }}}}{{r}_{0}},{{r}_{0}})}}{{{{{\left\| {A{{A}^{{\text{т }}}}{{r}_{0}}} \right\|}}^{2}}}}.$Итерационные параметры при $k \geqslant 1$ будем искать из условия минимума квадрата нормы невязки ${{r}_{{k + 1}}}$. Из (3.1), учитывая, что ${{r}_{m}} = A{{x}_{m}} - f$, получаем
(3.3)
${{r}_{{k + 1}}} = {{r}_{k}} - {{t}_{k}}({{r}_{k}} - {{r}_{{k - 1}}}) - {{h}_{k}}A{{g}_{k}},\quad k = 1,2,\; \ldots \;.$(3.4)
$\frac{{\partial F({{t}_{k}},{{h}_{k}})}}{{\partial {{t}_{k}}}} = 0,\quad \frac{{\partial F({{t}_{k}},{{h}_{k}})}}{{\partial {{h}_{k}}}} = 0.$Из (3.3), (3.4) получим, что итерационные параметры определяются из решения системы двух линейных уравнений с двумя неизвестными:
(3.5)
$\begin{gathered} {{t}_{k}}{{\left\| {\Delta {{r}_{k}}} \right\|}^{2}} + {{h}_{k}}(\Delta {{r}_{k}},A{{g}_{k}}) = ({{r}_{k}},\Delta {{r}_{k}}), \\ {{t}_{k}}(\Delta {{r}_{k}},A{{g}_{k}}) + {{h}_{k}}{{\left\| {A{{g}_{k}}} \right\|}^{2}} = ({{r}_{k}},A{{g}_{k}}), \\ \end{gathered} $(3.6)
$Det = {{\left\| {\Delta {{r}_{k}}} \right\|}^{2}}{{\left\| {A{{g}_{k}}} \right\|}^{2}} - {{(\Delta {{r}_{k}},A{{g}_{k}})}^{2}}.$Докажем, что определитель (3.6) не равен нулю при всех значениях $k \geqslant 1$. Из (3.6) ясно, что равенство нулю определителя будет иметь место, если векторы $\Delta {{r}_{k}}$ и $A{{g}_{k}}$ коллинеарные, т.е. $\Delta {{r}_{k}} = \lambda A{{g}_{k}}$, где $\lambda $ – любое число. Поскольку матрица A невырожденная, то тогда ${{x}_{k}} - {{x}_{{k - 1}}} = \lambda {{g}_{k}}$. Кроме этого, определитель будет обращаться в ноль, если $A{{g}_{k}} = 0$, а значит, поскольку матрицы A и ${{A}^{{\text{т }}}}$ имеют обратные, то и ${{r}_{k}} = 0$, это означает, что на предыдущем шаге итерации мы получили точное решение (1.2). Определитель (3.6) также обращается в ноль, если $\Delta {{r}_{k}} = 0$, т.е. ${{x}_{k}} = {{x}_{{k - 1}}}$. Однако это также может иметь место, если на предыдущем шаге итерации получено точное решение (1.2).
Итерационный параметр ${{h}_{0}}$ определяется из условия минимума функции
Тогда имеем
(3.7)
$(A{{g}_{0}},{{r}_{0}} - {{h}_{0}}A{{g}_{0}}) = (A{{g}_{0}},{{r}_{1}}) = ({{g}_{0}},{{A}^{{\text{т }}}}{{r}_{1}}) = ({{g}_{0}},{{g}_{1}}) = 0.$Докажем, что система (3.5) имеет единственное решение при $k > 1$, если на предыдущем шаге мы не получили точное решение уравнения (1.2), т.е. ${{r}_{k}} \ne 0$. Доказательство будем проводить методом математической индукции. Пусть при значении k система (3.5) имеет единственное решение. Докажем, что тогда и при значении $(k + 1)$ система (3.5) будет также иметь единственное решение.
Из условий минимума (3.4) при значении k следует
(3.8)
$\begin{gathered} \left( {({{r}_{k}} - {{r}_{{k - 1}}}),{{r}_{k}} - {{t}_{k}}({{r}_{k}} - {{r}_{{k - 1}}}) - {{h}_{k}}A{{g}_{k}}} \right) = 0, \\ \left( {A{{g}_{k}},{{r}_{k}} - {{t}_{k}}({{r}_{k}} - {{r}_{{k - 1}}}) - {{h}_{k}}A{{g}_{k}}} \right) = 0. \\ \end{gathered} $(3.9)
$(({{r}_{k}} - {{r}_{{k - 1}}}),{{r}_{{k + 1}}}) = (({{x}_{k}} - {{x}_{{k - 1}}}),{{A}^{{\text{т }}}}{{r}_{{k + 1}}}) = (({{x}_{k}} - {{x}_{{k - 1}}}),{{g}_{{k + 1}}}) = 0.$(3.10)
$(A{{g}_{k}},{{r}_{{k + 1}}}) = ({{g}_{k}},{{A}^{{\text{т }}}}{{r}_{{k + 1}}}) = ({{g}_{k}},{{g}_{{k + 1}}}) = 0.$(3.11)
$\left( {{{x}_{k}} - {{x}_{{k + 1}}},{{g}_{{k + 1}}}} \right) = \left( {{{t}_{k}}({{x}_{k}} - {{x}_{{k - 1}}}) + {{h}_{k}}{{g}_{k}},{{g}_{{k + 1}}})} \right) = 0.$Таким образом, из (3.11)) следует, что векторы ${{x}_{{k + 1}}} - {{x}_{k}}$ и ${{g}_{{k + 1}}}$ ортогональны и поэтому не могут быть коллинеарными. Значит, согласно вышеизложенному, при значении $(k + 1)$ система (3.5) будет иметь единственное решение. Поскольку при $k = 1$ рассматриваемая система уравнений имеет единственное решение, то итерационная процедура (3.1), (3.5) является корректной, так как определитель (3.6) не равен нулю при всех значениях $k \geqslant 1$.
Рассмотренная итерационная процедура является обобщением (1.12), для которой, поскольку $\left\| {{{r}_{{k + 1}}}} \right\|{\text{/}}\left\| {{{r}_{k}}} \right\| < 1$, итерации сходятся к решению (1.2). Значит, и итерации (3.1), (3.2), (3.5) также сходятся к решению (1.2).
Отметим важное обстоятельство. Итерации (3.1), (3.5) изменяются в направлении суперпозиции векторов разности последовательных итераций $({{x}_{k}} - {{x}_{{k - 1}}})$ и вектора градиента ${{g}_{k}}$, которые ортогональны. Это позволяет избегать “мертвых” зон, которые могут иметь место в итерационной процедуре, основанной только на использовании вектора градиента ${{g}_{k}}$. Также следует отметить, что, в силу ортогональности векторов $({{x}_{k}} - {{x}_{{k - 1}}})$ и ${{g}_{k}}$, сходимость итерационной процедуры (3.1), (3.5) будет всегда лучше итерационной процедуры (1.13).
Теперь рассмотрим комплексную систему уравнений (2.1).
Скалярное произведение двух действительных векторов
Учитывая изложенное в разд. 2 и (3.12), итерационную процедуру (3.1), (3.2), (3.5) для действительной системы (2.4) можно записать для комплексной системы (2.1) в следующем виде:
(3.13)
$\begin{gathered} {{z}_{1}} = {{z}_{0}} - \frac{{{{{\left\| {H{\text{*}}{{r}_{0}}} \right\|}}^{2}}}}{{{{{\left\| {HH{\text{*}}{{r}_{0}}} \right\|}}^{2}}}}H{\text{*}}{{r}_{0}},\quad {{r}_{0}} = H{{z}_{0}} - f, \\ {{z}_{{k + 1}}} = {{z}_{k}} - {{t}_{k}}({{z}_{k}} - {{z}_{{k - 1}}}) - {{h}_{k}}H{\text{*}}{{r}_{k}},\quad {{r}_{k}} = H{{z}_{k}} - f,\quad k = 1,2, \ldots , \\ \end{gathered} $(3.14)
$\begin{gathered} {{t}_{k}}{{\left\| {\Delta {{r}_{k}}} \right\|}^{2}} + {{h}_{k}}\operatorname{Re} (\Delta {{r}_{k}},HH{\text{*}}{{r}_{k}}) = \operatorname{Re} ({{r}_{k}},\Delta {{r}_{k}}), \\ {{t}_{k}}\operatorname{Re} (\Delta {{r}_{k}},H{{g}_{k}}) + {{h}_{k}}{{\left\| {HH{\text{*}}{{r}_{k}}} \right\|}^{2}} = \operatorname{Re} ({{r}_{k}},HH{\text{*}}{{r}_{k}}), \\ \Delta {{r}_{k}} = {{z}_{k}} - {{z}_{{k - 1}}}. \\ \end{gathered} $Обоснование сходимости итерационных процедур (2.8) и (3.13), (3.14) к решению уравнения (2.1) не требовало того, чтобы оператор H был матрицей. Поэтому очевидно, что итерации также сходятся к решению, если рассматривается операторное уравнение (2.1), например, интегральное уравнение, в гильбертовом пространстве. Единственное требование – оператор H должен иметь ограниченный обратный оператор.
4. ЧИСЛЕННЫЕ РЕЗУЛЬТАТЫ
Рассмотрим применение описанных методов для численного решения СЛАУ. Для итерационных методов сходимость итераций зависит от расположения собственных значений матрицы на комплексной плоскости. Чем больше отношение Q максимального модуля собственного значения к минимальному модулю, тем хуже сходимость.
Ниже приведены численные результаты о сходимости итераций к решению СЛАУ для различных значений Q и размерностей матрицы N. Рассматривались диагональные комплексные матрицы. Тогда собственные значения матрицы совпадают с элементами на главной диагонали. Следует отметить, что в этом случае соответствующие матричные операторы являются несамосопряженными.
В табл. 1 приведены зависимости количества итераций от размерности задачи N = 1000 и диапазона собственных значений Q для чистого градиентного (ЧГ) и модифицированного градиентного методов (МГ). Итерации заканчивались по достижении относительной невязки решения $\delta = \left\| r \right\|{\text{/}}\left\| f \right\|\sim {{10}^{{ - 5}}}$. Вычисления проводились для различных правых частей и для заданного Q разных значений собственных чисел на комплексной плоскости. Количество требуемых итераций мало отличалось друг от друга и в таблицах приводятся усредненные значения.
Таблица 1
Размерность N | Диапазон собственных значений Q | |||||
---|---|---|---|---|---|---|
3 | 4 | 5 | 10 | 100 | 1000 | |
ЧГ 1000 | 36 | 58 | 88 | 300 | 14 000 | 396 000 |
МГ 1000 | 15 | 20 | 25 | 46 | 295 | 1300 |
Как видно из табл. 1 модифицированный градиентный метод значительно более эффективен, по сравнению с чистым градиентным методом.
Следующие численные результаты приводятся только для модифицированного градиентного метода.
В табл. 2 приведены зависимость количества итераций от размерности СЛАУ N и диапазона собственных значений Q по достижении относительной невязки решения $\delta = \left\| r \right\|{\text{/}}\left\| f \right\|\sim {{10}^{{ - 5}}}$.
Таблица 2
Размерность N | Диапазон собственных значений Q | |||||
---|---|---|---|---|---|---|
3 | 4 | 5 | 10 | 100 | 1000 | |
1000 | 15 | 20 | 25 | 46 | 295 | 1300 |
10 000 | 15 | 20 | 25 | 46 | 295 | 1300 |
100 000 | 16 | 20 | 25 | 46 | 300 | 1300 |
1 000 000 | 15 | 20 | 25 | 46 | 300 | 1300 |
Как видно из табл. 2, сходимость итераций при заданном Q практически не зависит от размерности матрицы N.
В табл. 3 приведена зависимость количества итераций от размерности задачи и диапазона собственных значений в зависимости от точности решения.
Таблица 3
Точность $\delta $/Размер матрицы N | Диапазон собственных значений Q = 1000 | Диапазон собственных значений Q = 10 000 | ||||
---|---|---|---|---|---|---|
1000 | 10 000 | 100 000 | 1000 | 10 000 | 100 000 | |
10–3 | 150 | 150 | 150 | 150 | 150 | 150 |
10–4 | 550 | 550 | 550 | 600 | 600 | 600 |
5 × 10–5 | 850 | 850 | 850 | 900 | 950 | 900 |
10–5 | 1300 | 1600 | 1650 | 1350 | 2400 | 2550 |
5 × 10–6 | 1350 | 1950 | 2000 | 1400 | 4200 | 4100 |
10–6 | 1370 | 2800 | 2850 | 1420 | 10 050 | 10 900 |
5 × 10–7 | 1390 | 3100 | 3200 | 1450 | 15 550 | 15 600 |
10–7 | 1400 | 3950 | 4000 | 1480 | 15 580 | 23 800 |
Из приведенных численных результатов видно, что, даже для очень большого разброса диапазона собственных значений, сходимость итераций модифицированного метода градиентного спуска оказывается достаточно хорошей. Полученные данные могут являться ориентиром при численном решении конкретных задач.
ЗАКЛЮЧЕНИЕ
Рассмотрены итерационные методы градиентного спуска для решения линейных уравнений. Проведено математически строгое обоснование сходимости итераций к решению. Отметим, что, в отличие от большинства итерационных методов, рассмотренные методы не требуют никаких дополнительных условий, кроме того, что оператор уравнения имеет ограниченный обратный оператор. Проведенные численные эксперименты показали эффективность предложенного модифицированного итерационного метода градиентного спуска.
Список литературы
Самохин А.Б., Самохина А.С. Эффективные алгоритмы для моделирования трехмерных задач рассеяния волн на прозрачных структурах // Электромагнитные волны и электронные системы. 2012. Т. 17. № 9. С. 28–36.
Samokhin A., Shestopalov Y., Kobayashi K. Stationary iteration methods for solving 3D electromagnetic scattering problems // Appl. Math. and Comput. 2013. V. 222. P. 107–122.
Самарский А.А., Николаев Е.С. Методы решения сеточных уравнений. М.: Наука, 1971. С. 266–355.
Saad Y., Schultz M.N. A generalized minimal residual algorithm for solving nonsymmetric linear systems // SIAM J. Sci. Stat. Comput. 1986. V. 7. № 3. P. 856–869.
Фаддеев Д.К., Фаддева В.Н. Вычислительные методы линейной алгебры. М.: Физматгиз, 1963. С. 486–538.
Поляк Б.Т. Введение в оптимизацию. М.: Наука, 1983. С. 68–76.
Дополнительные материалы отсутствуют.
Инструменты
Журнал вычислительной математики и математической физики