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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

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

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

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

Курсовая работа №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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.