Минимум функции методом сопряженных направлений Пауэлла. Примеры решений

Пример №1. Минимизировать функцию f(x) методом сопряженных направлений, заканчивая вычисления при |d(x)/dx| < 10-3, i=1,2,..,n.
x14+2*x24+x12*x22+2*x1+x2

Решение находим с помощью калькулятора Метод сопряженных направлений.
Градиент функции

▽ f(X) =
4*x13+2*x1*x22+2
2*x12*x2+8*x23+1

Итерация №0.
▽ f(X0) =
2
1

Проверим критерий остановки:
|▽f(X0)| < ε

Вычислим значение функции в начальной точке f(X0) = 0.
Направление поиска:
p1 = [1;0]T
p2 = [0;1]T
Шаг №1. Сделаем шаг вдоль направления поиска p2 = [0;1]T
X1 = X0 + hp2 =
0
0
+ h
0
1
=
0
h

f(X1) = (0)4+2*(h)4+(0)2*(h)2+2*(0)+(h) → min
f(X1) = 2.0*h4+h → min
Найдем такой шаг h, чтобы целевая функция достигала минимума вдоль этого направления. Из необходимого условия существования экстремума функции (f'(x1)=0):
8.0*h3+1.0 = 0
Получим шаг: h = -0.5
Выполнение этого шага приведет в точку:
X1 =
0
0
-0.5
0
1
=
0
-0.5

Шаг №2. Сделаем шаг вдоль другого направления поиска p1 = [1;0]T
X2 = X1 + hp1 =
0
-0.5
+ h
1
0
=
h
-0.5

f(X2) = (h)4+2*(-0.5)4+(h)2*(-0.5)2+2*(h)+(-0.5) → min
f(X2) = h4+0.25*h2+2.0*h-0.375 → min
Найдем такой шаг h, чтобы целевая функция достигала минимума вдоль этого направления. Из необходимого условия существования экстремума функции (f'(x2)=0):
4.0*h3+0.5*h+2.0 = 0
Получим шаг: h = -0.7413
Выполнение этого шага приведет в точку:
X2 =
0
-0.5
-0.7413
1
0
=
-0.7413
-0.5

Шаг №3. Повторно сделаем шаг вдоль направления поиска p2 = [0;1]T
X3 = X2 + hp2 =
-0.7413
-0.5
+ h
0
1
=
-0.74129
h-0.5

f(X3) = (-0.74129)4+2*(h-0.5)4+(-0.74129)2*(h-0.5)2+2*(-0.74129)+(h-0.5) → min
f(X3) = 2.0*h4-4.0*h3+3.5495*h2-0.5495*h-1.4182 → min
Найдем такой шаг h, чтобы целевая функция достигала минимума вдоль этого направления. Из необходимого условия существования экстремума функции (f'(x3)=0):
8.0*h3-12.0*h2+7.099*h-0.5495 = 0
Получим шаг: h = 0.09038
Выполнение этого шага приведет в точку:
X3 =
-0.7413
-0.5
+ 0.09038
0
1
=
-0.7413
-0.4096

Ответ: X = [-0.7413;-0.4096]T

Итерация №1.

▽ f(X3) =
0.122
7.0E-5

Проверим критерий остановки:
|▽f(X3)| < ε

Вычислим значение функции в новой точке f(X3) = -1.442.
Направление поиска:
p1 = [1;0]T
p2 = [-0.741;0.0904]T
Шаг №1. Сделаем шаг вдоль направления поиска p2 = [-0.741;0.0904]T
X4 = X3 + hp2 =
-0.7413
-0.4096
+ h
-0.741
0.0904
=
-0.7413*h-0.7413
0.0904*h-0.4096

f(X4) = (-0.7413*h-0.7413)4+2*(0.0904*h-0.4096)4+(-0.7413*h-0.7413)2*(0.0904*h-0.4096)2+2*(-0.7413*h-0.7413)+(0.0904*h-0.4096) → min
f(X4) = 0.3066*h4+1.1738*h3+1.8436*h2-0.090289*h-1.4417 → min
Найдем такой шаг h, чтобы целевая функция достигала минимума вдоль этого направления. Из необходимого условия существования экстремума функции (f'(x4)=0):
1.2264*h3+3.5213*h2+3.6872*h-0.090289 = 0
Получим шаг: h = 0.02394
Выполнение этого шага приведет в точку:
X4 =
-0.7413
-0.4096
+ 0.02394
-0.741
0.0904
=
-0.759
-0.4074

Шаг №2. Сделаем шаг вдоль другого направления поиска p1 = [1;0]T
X5 = X4 + hp1 =
-0.759
-0.4074
+ h
1
0
=
h-0.75904
-0.40744

f(X5) = (h-0.75904)4+2*(-0.40744)4+(h-0.75904)2*(-0.40744)2+2*(h-0.75904)+(-0.40744) → min
f(X5) = h4-3.0362*h3+3.6229*h2-0.0012937*h-1.4428 → min
Найдем такой шаг h, чтобы целевая функция достигала минимума вдоль этого направления. Из необходимого условия существования экстремума функции (f'(x5)=0):
0.33201*h+4.0*(h-0.75904)3+1.748 = 0
Получим шаг: h = 0.000178
Выполнение этого шага приведет в точку:
X5 =
-0.759
-0.4074
+ 0.000178
1
0
=
-0.7589
-0.4074

Шаг №3. Повторно сделаем шаг вдоль направления поиска p2 = [-0.741;0.0904]T
X6 = X5 + hp2 =
-0.7589
-0.4074
+ h
-0.741
0.0904
=
-0.7413*h-0.75887
0.0904*h-0.40744

f(X6) = (-0.7413*h-0.75887)4+2*(0.0904*h-0.40744)4+(-0.7413*h-0.75887)2*(0.0904*h-0.40744)2+2*(-0.7413*h-0.75887)+(0.0904*h-0.40744) → min
f(X6) = 0.3066*h4+1.2028*h3+1.9281*h2-0.00093611*h-1.4428 → min
Найдем такой шаг h, чтобы целевая функция достигала минимума вдоль этого направления. Из необходимого условия существования экстремума функции (f'(x6)=0):
1.2264*h3+3.6085*h2+3.8562*h-0.00093611 = 0
Получим шаг: h = 0.000243
Выполнение этого шага приведет в точку:
X6 =
-0.7589
-0.4074
+ 0.000243
-0.741
0.0904
=
-0.759
-0.4074

Ответ: X = [-0.759;-0.4074]T

Итерация №2.

▽ f(X6) =
-0.00093
-0.0103

Проверим критерий остановки:
|▽f(X6)| < ε

Вычислим значение функции в новой точке f(X6) = -1.443.
Направление поиска: p1 = [1;0]T, p2 = [0;0]T
Одно из направлений поиска p2 = [0;0]T. Заканчиваем процесс итераций.
Ответ: X = [-0.759;-0.4074]T
загрузка...