- 4. Ітераційні методи для систем
- 4.1. Ітераційні методи розв’язання СЛАР
- 4.1.1. Метод простої ітерації
- 4.1.2. Метод Якобі
- 4.1.3. Метод Зейделя
- 4.1.4. Матрична інтерпретація методів Якобі і Зейделя
- 4.1.5. Однокрокові (двошарові) ітераційні методи
- 4.1.6. Збіжності стаціонарних ітераційних процесів у випадку симетричних матриць
- 4.1.7. Метод верхньої релаксації
- 4.1.8. Методи варіаційного типу
- 4.2. Методи розв’язання нелінійних систем
- 4.1. Ітераційні методи розв’язання СЛАР
4. Ітераційні методи для систем
4.1. Ітераційні методи розв’язання СЛАР
Література:
Систему
\begin{equation} \label{eq:4.1.1} A \vec x = \vec b \end{equation}
зводимо до вигляду
\begin{equation} \label{eq:4.1.2} \vec x = B \vec x + \vec f. \end{equation}
Будь яка система
\begin{equation} \label{eq:4.1.3} \vec x = \vec x - C \cdot (A \vec x - \vec b) \end{equation}
має вигляд \eqref{eq:4.1.2} і при еквівалентна системі \eqref{eq:4.1.1}. Наприклад, для :
\begin{equation} \vec x = \vec x - \tau \cdot (A \vec x - \vec b). \tag{3’} \end{equation}
4.1.1. Метод простої ітерації
Цей метод застосовується до рівняння \eqref{eq:4.1.2}
\begin{equation} \label{eq:4.1.4} \vec x^{(k + 1)} = B \vec x^{(k)} + \vec f, \end{equation}
де — початкове наближення, задано.
Теорема: Ітераційний процес збігається, тобто
\begin{equation} \left| \vec x^{(k)} - \vec x\right| \xrightarrow[k\to\infty]{} 0, \end{equation}
якщо
\begin{equation} \label{eq:4.1.5} |B| \le q < 1. \end{equation}
При цьому має місце оцінка
\begin{equation} \label{eq:4.1.6} \left|\vec x^{(n)} - \vec x\right| \le \dfrac{q^n}{1-q}\cdot\left|\vec x^{(1)} - \vec x^{(0)}\right|. \end{equation}
4.1.2. Метод Якобі
Припустимо : . Зведемо систему \eqref{eq:4.1.1} до вигляду
\begin{equation} x_i = -\Sum_{j = 1}^{i - 1} \dfrac{a_{i,j}}{a_{i,i}} \cdot x_j - \Sum_{j = i + 1}^n \dfrac{a_{i,j}}{a_{i,i}} \cdot x_j + \dfrac{b_i}{a_{i,i}}, \end{equation}
де .
Ітераційний процес запишемо у вигляді
\begin{equation} \label{eq:4.1.7} x_i^{(k+1)} = -\Sum_{j=1}^{i-1} \dfrac{a_{i,j}}{a_{i,i}} \cdot x_j^{(k)} - \Sum_{j=i+1}^n \dfrac{a_{i,j}}{a_{i,i}} \cdot x_j^{(k)} + \dfrac{b_i}{a_{i,i}}, \end{equation}
де , а .
Теорема: Ітераційний процес збігається до розв’язку, якщо виконується умова
\begin{equation} \forall i: \Sum_{\substack{j = 1 \\ i \ne j}}^n |a_{i,j}| \le |a_{i,i}|. \end{equation}
Це умова діагональної переваги матриці .
Теорема: Якщо ж
\begin{equation} \label{eq:4.1.8} \forall i: \Sum_{\substack{j = 1 \\ i \ne j}}^n |a_{i,j}| \le q\cdot|a_{i,i}|, \quad 0 \le q < 1. \end{equation}
то має місце оцінка точності:
\begin{equation} \left|\vec x^{(n)} - \vec x\right| \le \dfrac{q^n}{1-q} \cdot \left|\vec x^{(0)}-\vec x\right|. \end{equation}
4.1.3. Метод Зейделя
В компонентному вигляді ітераційний метод Зейделя записується так:
\begin{equation} \label{eq:4.1.9} x_i^{(k+1)} = -\Sum_{j=1}^{i-1} \dfrac{a_{i,j}}{a_{i,i}} \cdot x_j^{(k+1)} - \Sum_{j=i+1}^n \dfrac{a_{i,j}}{a_{i,i}} \cdot x_j^{(k)} + \dfrac{b_i}{a_{i,i}}, \end{equation}
де , а .
На відміну від методу Якобі на -му-кроці попередні компоненти розв’язку беруться з -ої ітерації.
Теорема: Достатня умова збіжності методу Зейделя — .
4.1.4. Матрична інтерпретація методів Якобі і Зейделя
Подамо матрицю у вигляді
\begin{equation} A = A_1 + D + A_2, \end{equation}
де — нижній трикутник матриці , — верхній трикутник матриці , — її діагональ. Тоді систему \eqref{eq:4.1.1} запишемо у вигляді
\begin{equation} D \vec x = A_1 \vec x + A_2 \vec x + \vec b, \end{equation}
або
\begin{equation} \vec x = D^{-1} A_1 \vec x + D^{-1} A_2 \vec x + D^{-1} \vec b, \end{equation}
Матричний запис методу Якобі:
\begin{equation} \vec x^{(k+1)} = D^{-1} A_1 \vec x^{(k)} + D^{-1} A_2 \vec x^{(k)} + D^{-1} \vec b, \end{equation}
методу Зейделя:
\begin{equation} \vec x^{(k+1)} = D^{-1} A_1 \vec x^{(k+1)} + D^{-1} A_2 \vec x^{(k)} + D^{-1} \vec b, \end{equation}
Теорема: Необхідна і достатня умова збіжності методу Якобі: всі корені рівняння
\begin{equation} \det(D + \lambda(A_1 + A_2 )) = 0 \end{equation}
по модулю більше 1.
Теорема: Необхідна і достатня умова збіжності методу Зейделя: всі корені рівняння
\begin{equation} \det(A_1 + D + \lambda A_2) = 0 \end{equation}
по модулю більше 1.
4.1.5. Однокрокові (двошарові) ітераційні методи
Канонічною формою однокрокового ітераційного методу розв’язку СЛАР є його запис у вигляді
\begin{equation} \label{eq:4.1.10} B_k \dfrac{\vec x^{(k+1)} - \vec x^{(k)}}{\tau_{k+1}} + A \vec x^{(k)} = \vec b, \end{equation}
Тут — послідовність матриць (пере-обумовлюючі матриці), що задають ітераційний метод на кожному кроці; — ітераційні параметри.
Означення: Якщо , то ітераційний процес називається явним
\begin{equation} \vec x^{(k+1)} = \vec x^{(k)} - \tau_{k+1} \left(A \vec x^{(k)} + \vec b\right). \end{equation}
Означення: Якщо , то ітераційний процес називається неявним
\begin{equation} B_k \vec x^{(k+1)} = F^k. \end{equation}
У цьому випадку на кожній ітерації необхідно розв’язувати СЛАР.
Означення: Якщо , , то ітераційний процес називається стаціонарним; інакше — нестаціонарним.
Методам, що розглянуті вище відповідають:
-
методу простої ітерації: , ;
-
методу Якобі: , ;
-
методу Зейделя: , .
4.1.6. Збіжності стаціонарних ітераційних процесів у випадку симетричних матриць
Розглянемо випадок симетричних матриць і стаціонарний ітераційний процес , .
Нехай для справедливі нерівності
\begin{equation} \label{eq:4.1.11} \gamma_1 E \le A \le \gamma_2 E, \quad \gamma_1, \gamma_2 > 0. \end{equation}
Тоді при виборі ітераційний процес збігається. Найбільш точним значенням , при яких виконуються обмеження \eqref{eq:4.1.11} є , . Тоді
\begin{equation} q = q_0 = \dfrac{\gamma_2 - \gamma_1}{\gamma_2 + \gamma_1} = \dfrac{1-\xi}{1+\xi}, \quad \xi = \dfrac{\gamma_1}{\gamma_2}. \end{equation}
і справедлива оцінка
\begin{equation} \left|\vec x^{(n)} - \vec x\right| \le \dfrac{q^n}{1-q} \cdot \left|\vec x^{(0)} - \vec x\right|. \end{equation}
Зауваження: аналогічно обчислюється і для методу релаксації розв’язання нелінійних рівнянь, де , .
Явний метод з багатьма параметрами :
\begin{equation} B \equiv E, \quad {\tau_k}: \Min_\tau q(\tau), \quad n=n(\epsilon)\to\min, \end{equation}
які обчислюються за допомогою нулів багаточлена Чебишова, називаються ітераційним методом з чебишевським набором параметрів.
4.1.7. Метод верхньої релаксації
Узагальненням методу Зейделя є метод верхньої релаксації:
\begin{equation} (D + \omega A_1) \cdot\dfrac{\vec x^{(k+1)} + \vec x^{(k)}}{\omega} + A \vec x^{(k)} = \vec b, \end{equation}
де — діагональна матриця з елементами по діагоналі. — заданий числовий параметр.
Тепер , . Якщо , то метод верхньої релаксації збігається при умові . Параметр підбирається експериментально з умови мінімальної кількості ітерацій.
4.1.8. Методи варіаційного типу
До цих методів відносяться: метод мінімальних нев’язок, метод мінімальних поправок, метод найшвидшого спуску, метод спряжених градієнтів. Вони дозволяють обчислювати наближення без використання апріорної інформації про , в \eqref{eq:4.1.11}.
Нехай . Для методу мінімальних нев’язок параметри обчислюються з умови
\begin{equation} \begin{aligned} \left|\vec r^{(k+1)}\right|^2 &= \left|\vec r^{(k)}\right|^2 - 2\tau_{k+1}\cdot\left\langle\vec r^{(k)}, A\vec r^{(k)}\right\rangle + \newline &\quad + \tau_{k+1}^2 \cdot\left|A\vec r^{(k)}\right|^2 \to \min. \end{aligned} \end{equation}
Тому
\begin{equation} \tau_{k+1} = \dfrac{\left\langle A\vec r^{(k)}, \vec r^{(k)}\right\rangle }{\left|\vec r^{(k)}\right|^2}, \end{equation}
де — нев’язка.
Умова для завершення ітераційного процесу:
\begin{equation} \left|\vec r^{(n)}\right| < \epsilon. \end{equation}
Швидкість збіжності цього методу співпадає із швидкістю методу простої ітерації з одним оптимальним параметром .
Аналогічно будуються методи з . Матриця називається переобумовлювачем і дозволяє підвищити швидкість збіжності ітераційного процесу. Його вибирають з умов
-
легко розв’язувати СЛАР (діагональний, трикутній, добуток трикутніх та інше);
-
зменшення числа обумовленості матриці у порівнянні з .
4.2. Методи розв’язання нелінійних систем
Література:
Розглянемо систему рівнянь
\begin{equation} \left\{ \begin{aligned} & f_1(x_1, \ldots, x_n) = 0, \newline & \ldots \newline & f_n(x_1,\ldots,x_n) = 0. \end{aligned} \right. \end{equation}
Перепишемо її у векторному вигляді:
\begin{equation} \label{eq:4.2.1} \vec f(\vec x) = 0. \end{equation}
4.2.1. Метод простої ітерації
В цьому методі рівняння \eqref{eq:4.2.1} зводиться до еквівалентного вигляду
\begin{equation} \label{eq:4.2.2} \vec x = \vec \Phi(\vec x). \end{equation}
Ітераційний процес представимо у вигляді:
\begin{equation} \label{eq:4.2.3} \vec x^{(k+1)} = \vec \Phi\left(\vec x^{(k)}\right). \end{equation}
початкове наближення — задано.
Нехай оператор визначений на множині . За теоремою про стискуючі відображення ітераційний процес \eqref{eq:4.2.3} сходиться, якщо виконується умова
\begin{equation} \label{eq:4.2.4} \left| \vec \Phi(\vec x) - \vec \Phi(\vec y) \right| \le q \cdot |\vec x - \vec y|, \quad 0 < q < 1, \end{equation}
або
\begin{equation} \label{eq:4.2.5} \left| \vec \Phi’(\vec x)\right| \le q < 1, \end{equation}
де , . Для похибки справедлива оцінка
\begin{equation} \left| \vec x^{(m)} - \vec x\right| \le \dfrac{q^n}{1 - q} \cdot\left|\vec x^{(0)} - \vec x\right|. \end{equation}
Частинним випадком методу простої ітерації є метод релаксації для рівняння \eqref{eq:4.2.1}:
\begin{equation} \vec x^{(k+1)} = \vec x^{(k)} - \tau \cdot \vec F\left(\vec x^{(k)}\right), \end{equation}
де .
4.2.2. Метод Ньютона
Розглянемо рівняння
\begin{equation} \vec F(\vec x) = 0. \end{equation}
Представимо його у вигляді
\begin{equation} \label{eq:4.2.6} \vec F\left(\vec x^{(k)}\right) + \vec F’\left(\vec \xi^{(k)}\right)\cdot\left(\vec x - \vec x^{(k)}\right) = 0, \end{equation}
де
\begin{equation} \vec \xi^{(k)} = \vec x^{(k)} + \theta_k \cdot \left(\vec x^{(k)} - \vec x\right), \end{equation}
де . Тут — матриця Якобі для . Можемо наближено вважати . Тоді з \eqref{eq:4.2.6} матимемо
\begin{equation} \label{eq:4.2.7} \vec F\left(\vec x^{(k)}\right) + \vec F’\left(\vec x^{(k)}\right) \cdot\left(\vec x^{(k+1)} - \vec x^{(k)}\right) = 0. \end{equation}
Ітераційний процес представимо у вигляді:
\begin{equation} \label{eq:4.2.8} \vec x^{(k+1)} = \vec x^{(k)} - \vec F’\left(\vec x^{(k)}\right)^{-1} \cdot \vec F\left(\vec x^{(k)}\right). \end{equation}
Для реалізації методу Ньютона потрібно, щоб існувала обернена матриця
\begin{equation} \vec F’\left(\vec x^{(k)}\right)^{-1}. \end{equation}
Можна не шукати обернену матрицю, а розв’язувати на кожній ітерації СЛАР
\begin{align} A_k \vec z^{(k)} &= \vec F\left(\vec x^{(k)}\right), \label{eq:4.2.9} \newline \vec x^{(k + 1)} &= \vec x^{(k)} - \vec z^{(k)}, \nonumber \end{align}
де , і — задано, а матриця .
Метод має квадратичну збіжність, якщо добре вибрано початкове наближення. Складність методу (при умові використання методу Гаусса розв’язання СЛАР \eqref{eq:4.2.9} на кожній ітерації , де — розмірність системи \eqref{eq:4.2.1}.
4.2.3. Модифікований метод Ньютона
Ітераційний процес має вигляд:
\begin{equation} \vec x^{(k+1)} = \vec x^{(k)} - \vec F’\left(\vec x^{(0)}\right)^{-1} \cdot\vec F\left(\vec x^{(k)}\right). \end{equation}
Тепер обернена матриця обчислюється тільки на нульовій ітерації. На інших — обчислення нового наближення зводиться до множення матриці на вектор та додавання до .
Запишемо метод у вигляді системи лінійних рівнянь (аналог \eqref{eq:4.2.9})
\begin{align} A_0 \vec z^{(k)} &= \vec F\left(\vec x^{(k)}\right), \label{eq:4.2.10} \newline \vec x^{(k + 1)} &= \vec x^{(k)} - \vec z^{(k)}, \nonumber \end{align}
де .
Оскільки матиця розкладається на трикутні (або обертається) один раз, то складність цього методу на одній ітерації (окрім нульової) . Але цей метод має лінійну швидкість збіжності.
Можливе циклічне застосування модифікованого методу Ньютона, тобто коли обернену матрицю похідних шукаємо та обертаємо через певне число кроків ітераційного процесу.
Задача 9: Побудувати аналог методу січних для систем нелінійних рівнянь.