Минимизация квадратных функций. Градиентный метод наискорейшего спуска

Страницы работы

Содержание работы

Санкт-Петербургский государственный университет

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

Курсовая работа №2: Минимизация квадратных функций. Градиентный метод наискорейшего спуска.

Задание №1

Выполнил: Винницкий Иван

группа 28 

Санкт-Петербург, 2003

Задание 1

Изложить градиентный метод наискорейшего спуска(ГМНС) для отыскания минимума квадратной функции

f(x) = 0,5<Ax,x>+<c,x>        (1)

где x=(x1, … , xn)T, c=(c1, … , cn)T , A=(aij) i,j=1…n – симметричная положительно определённая матрица. Указать скорость его сходимости и связь с решением системы уравнений Ax+b=0.

Задание 2

Реализовать ГМНС на компьютере. В качестве критерия прекращения спуска предусмотреть любой из трёх следующих:

a) ||f’(xk) ||< ξ

b) ||xk-xk-1||< ξ

c) f(xk-1)-f(xk)< ξ

Продемонстрировать работу программы для

/ 1.5  1.6  1.7  1.8  \

A=     |  1.6  2.5  1.2  1.3   |

|  1.7  1.2  3.5  1.4   |

\ 1.8  1.3  1.4  4.5  /

c= (3,4; 3,8; 2,6; 5,8)T

Выходные данные программы: xk, ||xk-xk-1||, k –номер последнего шага

Задание 3

Решить систему и сравнить ||x*-xk|| с ||xk-xk-1||. Проверить вычисления при различных начальных векторах x0 и проследить за зависимостью k от x0.

ОТВЕТ Задание 1

ОПР.(градиент) Рассмотрим вещественную функцию F(x)=F(x1, x2… xn) определённую в Rn. Предполагаем, что функция F(x)=F(x1, x2… xn) имеет непрерывные частные производные. Пусть y – произвольный вектор единичной длины: (y,y)=||y||2=1 и α – вещественное число. Производная функции F(x) по направлению y обозначается ¶F(x)/ ¶y и определяется следующим образом:

F(x)/y = lim{α ®0}[f(x+ αy) – F(x)]/α = ¶F(x+αy)/ ¶α |α=0

Очевидно, имеем:

F(x)/ ¶y = dF(x1+ α y1, x2 + αy2, … xn + αyn)/dα |α=0=(¶F(x)/x1) y1+(F(x)x2) y2+…+ (F(x)xn)yn=(z, y),

где z=  (¶F(x)/¶x1¶F(x)/¶x2 , … ¶F(x)/¶xn )T есть вектор, называемый градиентом функции F(x).

Итак, для производноц функции F(x) по направдению y получили формулу. По неравенству Буняковского:

-||z||2 =<(z,y)=<||z||2

Таким образом, видно, что при y=z/||z||2 производная по направлению ¶F(x)/ ¶y = ||z||2 имеет наибольшее значение, а при y = -z/||z||2 – наименьшее: ¶F(x)/ ¶y = -||z||2. Следовательно, направление градиента в точке x есть направление наибольшей скорости роста функции F(x) в этой точке, а противоположное направление есть направление наибольшей скорости убывания F(x).

.

Рассмотрим функционал в Rn

f(x)= 0,5<Ax,x>+<c,x> -> 2f(x)= <Ax,x>-2<b,x>= H(x)   (1)

и найдём его градиент. Имеем:

H(x+αy)=(A(x+αy),x+αy)-2(b,x+αy)=H(x)+ 2α(Ax-b,y)+ α2(Ay,y), где α –вещественное число, y – произвольный вектор единичной длины.     

Полученное неравенство называется формулой сложения. Из него имеем:

[H(x+αy)-H(x)]/α=2(Ax-b,y)+α(Ay,y)

и, следовательно,

Hy’(x)= 2(Ax-b,y)  {производная H(x) по направлению y }

От сюда вытекает, что градиент функционала H(x) равен 2(Ax-b).

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

Ax=b                 (2)

С этой системой свяжем наш функционал (1).

ТЕОРЕМА 1Решение x* системы (2) доставляет наименьшее значение функционалу (1). Наоборот, вектор x, доставляющий наименьшее значение функционалу (1), совпадает с x*.

Дадим описание метода наискорейшего спуска для решения системы (2). Пусть x(0)– начальное приближение к решению системы (2). Градиент функционала H(x) в точке x(0) имеет направление r(0)=A x(0)-b. В направлении - r(0) функционал H(x) в точке x(0) наиболее быстро убывает. От точки x(0) будем двигаться в этом направлении по прямой x(0) - αr(0) до тех пор, пока на этой прямой H(x) не достигнет наименьшего значения.

По формуле сложения имеем:

H(x(0)+αr(0))=H(x(0))+ 2α(Ax(0)-b,r(0))+ α2(Ar(0),r(0))

Функционал H(x) на рассматриваемой прямой как функция от α является квадратным трёхчленом, у которого коэфициент при α2 равен (Ar(0),r(0)) и, следовательно положителен. Действительно, матрица А положительно определённая, и мы считаем, что начальное приближение x(0) не совпадает с решением системы (2). Значение α = α0, при котором этот квадратный трёхчлен достигает минимума, совпадает с корнем его производной 

-2(r(0),r(0))+2α(Ar(0),r(0)), и мы получаем

α0=(r(0),r(0))/(Ar(0),r(0))

Точка x(1)=x(0)0r(0) принимается за новое приближение к решению системы (2).

Аналогичным путём определяются дальнейшие приближения

x(k)= x(k)0r(k),  k=1,2…

Похожие материалы

Информация о работе

Тип:
Курсовые работы
Размер файла:
84 Kb
Скачали:
0