Первый алгоритм метода
Пусть требуется решить систему линейных алгебраических уравнений
(1)
с положительно определенной матрицей A порядка n.
Рассмотрим функционал
, (2)
представляющий многочлен второго порядка относительно x1, x2, …, xn. Обозначим через решение системы (1), т.е. . В силу симметричности и положительной определенности матрицы, имеем:
При этом знак равенства возможен лишь при . Таким образом, задача решения уравнения (1) сводится к задаче отыскания вектора , обращающего в минимум функционал (2).
Для отыскания такого вектора применим следующий метод.
Пусть – произвольный начальный вектор, а
(4)
– вектор невязок системы. Покажем, что вектор невязок имеет направление нормали к поверхности в точке . В самом деле, направление нормали совпадает с направлением быстрейшего изменения функции в точке . Это направление мы найдем, если найдем среди векторов , для которых , такой вектор, что
имеет наибольшее значение. Но
Но среди векторов постоянный длины достигает максимального значения, если имеет направление вектора или ему противоположное. Утверждение доказано. Будем двигаться из точки в направлении вектора до тех пор, пока функция достигает минимального значения. Это будет при , т.е. при
. (5)
Вектор
(6)
и принимаем за новое приближение к решению.
В методе сопряженных градиентов следующее приближение находится так. Через точку проведем гиперплоскость (n-1) – го измерения
(7)
и через обозначим новую невязку системы
. (8)
Вектор направлен по нормали к поверхности в точке , а вектор параллелен касательной плоскости в этой точке. Поэтому
. (9)
Гиперплоскость (7) проходит через точку , так как
.
При любом вектор параллелен некоторой нормальной плоскости к поверхности в точке . Найдем среди них тот, который лежит в гиперплоскости (7), т.е. ортогонален к . Из условия ортогональности имеем:
,
или
. (10)
Вектор
(11)
имеет направление нормали к сечению поверхности гиперплоскости (7) в точке . Будем двигаться из точки в направлении вектора до тех пор, пока функция достигнет минимума. Это будет при
. (12)
Вектор
примем за новое приближение к решению системы. Вектор невязок
(13)
имеет направление нормали к поверхности в точке . Покажем, что он будет ортогонален к и . В самом деле, используя (9), (11), (12), (13), имеем:
Рассмотрим гиперплоскость (n-2) – х измерений
, (14)
проходящую через точку . Эта гиперплоскость содержит и , так как мы ранее видели, что , а
.
Вектор при любом параллелен гиперплоскости (7), так как
.
Подберем так, чтобы он был параллелен и гиперплоскости (14), т.е. потребуем ортогональности к вектору . Будем иметь:
,
или
(15)
Вектор
(16)
будет иметь направление нормали к сечению поверхности гиперплоскостью (14) в точке . Из точки сместимся в направлении этого вектора так, чтобы функция достигла минимального значения. Это будет при
, (17)
(18)
примем за новое приближение к . Новый вектор невязок будет:
. (19)
Продолжая процесс, получим последовательности векторов , , , определяемые рекуррентными соотношениями:
(20)
Для этих векторов имеют место следующие соотношения:
(21)
(22)
В самом деле, в силу самого построения при i¹j
Далее, при i>j
Если i=j+1, то правая часть равна нулю, в силу определения , если же i>j+1, то , по доказанному, и
.
Продолжая понижение индекса у вектора , через несколько шагов придем к скалярному произведению (по определению ). Таким образом, соотношения (21) доказаны. Для доказательства (22), в силу равноправия индексов i и j, предположим, что i>j. Тогда
.
Так как в n-мерном векторном пространства не может быть более n взаимно ортогональных векторов, то на некотором шаге получим , т.е. будет решением системы (1).
На рис. 1 показана геометрическая картина нашего построения при n=3.
Рис. 1
Второй алгоритм метода
Приведем другой алгоритм метода. Будем обозначать последовательные приближения к решению через и введем обозначения:
. (23)
Первые два приближения и возьмем так, чтобы
. (24)
Предположим, что уже известно приближение (i³1), вычислены и справедливо равенство
. (25)
Будем искать минимум функционала (2) на множестве векторов
. (26)
Приравнивая к нулю частные производные от по и для определения и , получим систему:
(27)
или, учитывая (25),
(28)
Обозначим через решение этой системы:
(29)
и за (i+1) – е приближение к решению примем:
(30)
Из системы (27) следует, что
, (31)
а так как
то из (31) следует:
(32)
Докажем, что если
(33)
то при всех i
(34)
что будет доказывать и сходимость, и конечность второго алгоритма.
В самом деле, при условиях (33)
и
т.е. условие (24) выполнено. Предположим, что уже доказаны равенства
(35)
и докажем равенство
При предположении (35) и, следовательно,
Но из соотношений (20) имеем:
т.е.
Докажем коллинеарность векторов
и (36)
Из (20) и (29) имеем:
а это и доказывает коллинеарность векторов (36).
Вектор дает минимум функционала в плоскости, проходящей через и натянутой на векторы и , а мы показали, что этот минимум лежит на прямой, проходящей через в направлении вектора . Но на этой прямой минимум функционала достигается на векторе . Это и означает, что
Это и доказывает справедливость (34) при всех i.
На первый взгляд кажется, что первый алгоритм лучше, так как на каждом шаге он требует лишь одного умножения матрицы А на вектор , а во втором алгоритме требуется два умножения матрицы А на вектор и , но опыт показал, что применение первого алгоритма приводит к быстрому накоплению ошибок округления, так что для матриц большого порядка возможно существенное отклонение от точного решения. Второй алгоритм менее чувствителен к ошибкам округления и поэтому требует меньшего количество шагов для получения хорошего приближенного решения.
Метод сопряженных градиентов целесообразно использовать для решения систем уравнений, в которых матрица А имеет много нулевых элементов. При решении системы по этому методу элементы матрицы участвуют в арифметических операциях лишь при умножении матрицы на вектор, а умножение матрицы на вектор можно организовать так, чтобы в арифметических операциях участвовали только ненулевые элементы.
Заключение
В данной работе были рассмотрены метод ортогонализации и метод сопряженных градиентов, а также представлена программа на языке программирования С++, реализующая метод ортогонализации на ЭВМ, и ее результаты работы.
Список литературы
1. Березин И.С. и Жидков Н.П. Методы вычислений. т. 1. М.: «Наука», 1965. 633c.
2. Воеводин В.В. Численные методы алгебры (теория и алгоритмы). М.: «Наука», 1966.
3. Подбельский В.В. и Фомин С.С. Программирование на языке Си. М.: «Финансы и статистика», 2000. 599 с.
4. Калиткин Н.Н. Численные методы. М.: «Наука», 1978. 512 с.