Файл: В чем состоит свойство унимодальности функций.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 113

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Вычислим f(λ1) = 5.7352, f(μ1) = 6.3348
Итерация №1.
Поскольку f(λ1) < f(μ1), то b2 = 1.736, a2 = a1, μ2 = 1.264, f(μ2)=6.3348
λ2 = a2 + (1-0.618)(b2 - a2) = 0.5 + (1-0.618)(1.736 - 0.5) = 1.264, f(1.264) = 5.7352
Итерация №2.
Поскольку f(λ2) > f(μ2), то a3 = 0.9722, b3 = b2, λ3 = 1.264, f(λ3)=10.8963
μ3 = a3 + 0.618(b3 - a3) = 0.9722 + 0.618(1.736 - 0.9722) = 1.4442, f(1.4442) = 5.7352
Итерация №3.
Поскольку f(λ3) > f(μ3), то a4 = 1.264, b4 = b3, λ4 = 1.4442, f(λ4)=5.7352
μ4 = a4 + 0.618(b4 - a4) = 1.264 + 0.618(1.736 - 1.264) = 1.5557, f(1.5557) = 5.241
Итерация №4.
Поскольку f(λ4) < f(μ4), то b5 = 1.5557, a5 = a4, μ5 = 1.4442, f(μ5)=5.4478
λ5 = a5 + (1-0.618)(b5 - a5) = 1.264 + (1-0.618)(1.5557 - 1.264) = 1.4442, f(1.4442) = 5.241

|5.2384-5.2384|≤0.001
Находим x как середину интервала [a,b]:
x=(1.4313+1.4304)/2=1.4308140069917
Ответ: x = 1.4308140069917; F(x) = 5.2384

Используем для этого Метод Фибоначчи.
Важнейшая особенность этого метода состоит в том, что он позволяет для заранее заданного числа вычислений функции построить оптимальную процедуру поиска минимума унимодальной функции.
Предположим, что заданный начальный интервал неопределенности [a1,b1], [ai,bi] является интервалом неопределенности, полученным на i-той итерации. Рассмотрим две точки λi и μi из интервала [ai,bi], заданные с помощью соотношений:


где n - заданное число вычислений функции; Fk - последовательность чисел Фибоначчи, заданная с помощью рекуррентной формулы:
Fk+1 = Fk + Fk-1, k = 1,2, … , где F0 = F1 = 1
Новый интервал неопределенности (ai+1,bi+1) равен (λi,bi), если f(λi) > f(μi), и равен (ai, μi), если f(λi) < f(μi). Тогда в первом случае, новый интервал неопределенности имеет длину:

Отсюда следует, что в любом случае на i-той итерации интервал неопределенности сжимается в Fn-i/Fn-i+1 раз. На (i+1)-ой итерации либо λ
i+1 = μi, либо μi+1 = λi. Поэтому на каждом шаге вычисляется только одно новое значение функции. На (n-1)-ой итерации λn-1 = μn-1,и значение функции не вычисляется.
Если ε есть точность вычисления значения функции, n – максимально возможное число вычислений функции, то конечный интервал неопределенности будет равен:

Решение.
Последовательность чисел Фибоначчи имеет вид: 1,1,2,3,5,8,13,21,34,55,89,144,
Итерация 1.
Вычислим точки


f(λ1) = 5.7349; f(μ1) = 6.3345
Так как f(λ1) < f(μ1), то сокращаем интервал неопределенности и принимаем на 2-й итерации:
a2 = a1 = 0.5; b2 = μ1 = 1.736
Итерация 2.
Вычислим точки


f(λ2) = 10.9047; f(μ2) = 5.7349
Так как f(λ2) > f(μ2), то сокращаем интервал неопределенности и принимаем на 3-й итерации:
a3 = λ2 = 0.97191011235955; b3 = b2 = 1.736


Итерация 3.
Вычислим точки


f(λ3) = 5.7349; f(μ3) = 5.2408
Так как f(λ3) > f(μ3), то сокращаем интервал неопределенности и принимаем на 4-й итерации:
a4 = λ3 = 1.2640449438202; b4 = b3 = 1.736
Итерация 4.
Вычислим точки


f(λ4) = 5.2408; f(μ4) = 5.4493
Так как f(λ4) < f(μ4), то сокращаем интервал неопределенности и принимаем на 5-й итерации:
a5 = a4 = 1.2640449438202; b5 = μ4 = 1.5562
Все вычисления сведены в таблицу. Вычисления продолжаются, пока не найдены 10 новых точек.


Вычисляем точку минимума функции

f(xmin) = 5.2398
Ответ: x = 1.4213; F(x) = 5.2398
Количество итераций, N = 10

  1. Дана функция Розенброка ƒ(х) = 100(х2 − (х1)2)2 + (1 − х1)2 и начальная точках(0) = (−1, 2; 0). Найдите точку локального минимума этой функции, пользуясь методом покоординатного спуска, с точностью до 0,2.

X0=(-1;2).
Вычислим значение функции в начальной точке f(X0) = 104.
В качестве направления поиска выберем вектор градиент в текущей точке:

▽ f(X) =

-400x1(-x12+x2)+2x1-2

-200x12+200x2















Значение градиента в точке X0:

▽ f(X0) =

396

200














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

Сделаем шаг вдоль направления антиградиента.

X1 = X0 - λ1▽ f(X0) =

-1

2










- λ1

396

200










=

-396.0λ1-1.0

2.0-200.0λ1














Вычислим значение функции в новой точке.
f(X1) = 100*((2.0-200.0*λ1)-((-396.0*λ1-1.0))2)2+(1-(-396.0*λ1-1.0))2
Найдем такой шаг, чтобы целевая функция достигала минимума вдоль этого направления. Из необходимого условия существования экстремума функции (f'(X)=0):
3.1363*10^5*λ1+2.4591*10^12*(-4.0*λ1-0.012652)*(-0.0012754*λ1-(-λ1-0.0025253)^2+1.2754*10^(-5))+1584.0 = 0
Получим шаг: λ1 = 0.000879
Выполнение этого шага приведет в точку:

X1 =

-1

2










- 0.000879

396

200










=

-1.3479

1.8243

















  1. В процессе поиска точки минимума функции Розенброка (см. предыдущее упражнение) получены две первые точки х(0) = (−1,2; 1), х(1) = (−1,3; 1,07). Определите направление поиска из точки х(1), пользуясь следующими градиентными методами: а) методом наискорейшего спуска, б) методом Ньютона.

В качестве направления поиска выберем ньютоновское направление, для этого вычислим градиент:

▽ f(X) =

-400.0x1(-x12+x2)+2.0x1-2.0

-200.0x12+200.0x2














Значение градиента в точке X0:

▽ f(X0) =

396

200














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

Сделаем шаг вдоль ньютоновского направления:
X1 = X0 - G-1▽f(X0)
Найдем матрицу Гессе и обратный гессиан.



Матрица Гессе:

G =

402

400

400

200














Обратный гессиан:
detG = 402•400 - 200•200 = -79600



200

-400

-400

402