- •Содержание
- •1. Введение. Постановка задачи.
- •Метод минимальных невязок
- •2. Описание методов решения задачи
- •2.1 Метод минимальных невязок
- •2.2. Метод минимальных поправок
- •2.3. Метод скорейшего спуска
- •2.4. Метод сопряженных градиентов
- •3.1. Метод минимальных невязок
- •3.2. Метод минимальных поправок
- •3.3. Метод скорейшего спуска
- •3.4. Метод сопряженных градиентов
- •4.Руководство пользователя.
- •3. Алгоритмы и блок-схемы решения
- •5. Тестирование и оптимизация.
- •6. Выводы
- •Список использованных источников
- •Приложение 1. Контрольные примеры.
- •Приложение 2. Код программы.
2.2. Метод минимальных поправок
Рассмотрим неявный итерационный метод вида
,
(8)
Запишем этот метод в виде
. (9)
Вектор k =B1rk называется поправкой на (k+1)-й итерации. Она удовлетворяет тому же уравнению, что и погрешность zk=xkx неявного метода, т. е.
уравнению
.
(10)
Будем предполагать, что B=BT>0. Методом минимальных поправок называется неявный итерационный метод (8), в котором параметр k+l выбирается из условия минимума нормы ||k+1||B=(Bk+1,k+1)1/2 при заданном векторе k. В случае B=Е метод минимальных поправок совпадает с методом минимальных невязок.
Найдем выражение для итерационного параметра k+l. Перепишем (10) в виде
и вычислим
.
Отсюда следует, что минимум этого выражения достигается при
. (11)
Для реализации метода минимальных поправок требуется на каждой итерации решить две системы уравнений Bk= rk и Bvk=Ak, откуда найдем вектор vk = B1 Аk (воспользуемся формулой (9)) .
Скорость сходимости метода минимальных поправок определяется границами спектра обобщенной задачи на собственные значения
. (12)
2.3. Метод скорейшего спуска
Рассмотрим явный метод (2) и выберем итерационный параметр k+l из условия минимума ||zk+1||A при заданном векторе zk, где zk+1=xk+1x. Поскольку погрешность zk удовлетворяет уравнению
,
то
.
Следовательно, это выражение достигает минимума, если
.
Величина zk=xkx здесь неизвестна (так как неизвестно точное решение х), поэтому надо учесть, что Azk=rk=Axkf, и вычислять k+l по формуле
. (13)
2.4. Метод сопряженных градиентов
Пусть A - матрица системы . Рассмотрим следующий класс неявных двухшаговых итерационных методов:
. (14)
Здесь
,
k+l,
k+l
- итерационные параметры, которые будут
определены далее. Начальное приближение
x0
будем
задавать произвольно, а вектор x1
вычислять по одношаговой формуле,
которая получается из (14) при k=0
и l=1,
. (15)
Если параметры k+l, k+l найдены, то новое приближение xk+l выражается через два предыдущих значения хk и xk1 по формуле
. (16)
Для погрешности zk=xkx из (16) получаем уравнения
.
Введем, как и ранее, вспомогательную функцию vk=A1/2zk, для которой ||vk||=||zk||A. Функция vk удовлетворяет уравнениям
. (17)
где C=A1/2B1A1/2. Будем считать, что A и B - симметричные положительно определенные матрицы, удовлетворяющие неравенствам
. (18)
Исключая последовательно векторы vl, v2, , vkl из уравнений (17) находим, что
, (19)
где Pk(C) - многочлен степени k от оператора С, удовлетворяющий условию Pk(0)=E.
Поставим задачу выбрать итерационные параметры k, k так, чтобы при любом n=1, 2, ... была бы минимальной ||vn||=||zn||A.
Параметр 1 находится из условия минимума ||v1|| при заданном векторе v0. Так же, как и в методе скорейшего спуска, получаем
. (20)
Отметим, что при таком выборе 1 выполняется равенство (Cv1,v0)=0, т. е. векторы v1 и v0 ортогональны в смысле скалярного произведения
.
Далее, рассмотрим погрешность (19) и запишем многочлен Pk(C) в виде
, (21)
где ai(k) - числовые коэффициенты, определяемые параметрами i, i, i=l, 2, ..., k. Тогда
. (22)
Найдем условия, которым должны удовлетворять коэффициенты ai(k), минимизирующие ||vn||2. Из (22) получаем
, (23)
т. е. ||vn||2 является многочленом второй степени по переменным a1(n), ..., an(n). Приравнивая к нулю частные производные ||vn||2/aj(n), j=1, 2, ..., n, приходим к системе уравнений
, (24)
решение которой ai(n), i=1, 2, ..., n и обращает в минимум ||vn||2.
