Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab7

.docx
Скачиваний:
0
Добавлен:
28.06.2026
Размер:
200 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Информатика»

Отчет по лабораторной работе №7

по дисциплине

«Численные методы»

на тему

«Методы многомерной оптимизации.»

Выполнил: студент группы

БИК2207

Проверил:

Москва, 2024 г.

Оглавление

1. Индивидуальное задание. 3

2. Проверка существования минимума функции. 3

3. Решение задачи многомерной оптимизации аналитическим методом. 3

4. Начальная точка итерационного процесса численного решения задачи многомерной оптимизации. 3

5. Выполнение методом наискорейшего спуска (НСА). 4

6. Код. 5

7. Построение траектории поиска минимума методами НСА и ГДШ. 7

8. Решение задачи оптимизации с помощью математического пакета. 7

9. Вывод. 8

  1. Индивидуальное задание.

Целевая функция

Ручной

Программа

16

f(x,y) = 6 x2 + 4 y2 – 5 x + 3 y –13

НСА

ГДШ


  1. Проверка существования минимума функции.

Известно, что всякий глобальный минимум выпуклой функции является одновременно и локальным.

Проверим, что функция является выпуклой на множестве R.

Матрица Гессе для функции :

а угловые миноры:

Таким образом, функция - выпуклая на множестве R.

  1. Решение задачи многомерной оптимизации аналитическим методом.

Необходимые условия существования точки экстремума:

  1. Начальная точка итерационного процесса численного решения задачи многомерной оптимизации.

Выберем начальную точку спуска - x0 = 1, y0 = 0.5.

  1. Выполнение методом наискорейшего спуска (НСА).

Вывод формулы для расчета шага спуска:

где

Построим функцию

Из условия определим параметр λ:

Выполнение по методу НСА:

Полученные результаты сведем в таблицу:

k

x

y

k

0

1

0.5

-9.5

7

7

0.114

1

0.2

-0.3

-14.3

-2.6

0.6

-0.091

2

-0.038

-0.245

-13.298

-5.453

1.039

0.001178

3

-0.31

-0.246

-13.334

После 3-х итераций: Xmin = -31, ymin = -0.246, f = -13.334

  1. Код.

import numpy as np

def function(x, y):

"""

Функция для минимизации.

"""

return 6 * math.pow(x, 2) + 4*math.pow(y, 2) - 5 * x + 3*y-13

def gradient(x, y):

"""

Градиент функции.

"""

return np.array([12*x-5, 8*y+3])

def gradient_descent(x0, y0, tol=1e-4):

"""

Метод градиентного спуска с дроблением шага.

"""

x, y = x0, y0

i = 0

print(f"Итерация {i}: x = {x:.6f}, y = {y:.6f}")

while True:

i += 1

grad = gradient(x, y)

step_size = 1

while function(x - step_size * grad[0], y - step_size * grad[1]) > function(x, y):

step_size /= 2

x -= step_size * grad[0]

y -= step_size * grad[1]

if i < 4:

print(f"Итерация {i}: x = {x:.6f}, y = {y:.6f}")

if np.linalg.norm(grad) < tol:

break

return x, y

# Задаем начальные точки

x0 = 1

y0 = 0.5

# Вычисляем минимум функции

x_min, y_min = gradient_descent(x0, y0)

# Выводим результат

print("Минимум функции находится в точке ({}, {})".format(x_min, y_min))

print("Значение функции в минимуме:", function(x_min, y_min))

Результат:

Итерация 0: x = 1.000000, y = 0.500000

Итерация 1: x = 0.125000, y = -0.375000

Итерация 2: x = 0.562500, y = -0.375000

Итерация 3: x = 0.343750, y = -0.375000

Минимум функции находится в точке (0.4166688919067383, -0.375)

Значение функции в минимуме: -14.604166666636957

  1. Построение траектории поиска минимума методами НСА и ГДШ.

  1. Решение задачи оптимизации с помощью математического пакета.

  1. Вывод.

Были решены задачи многомерной оптимизации с использованием аналитическим методом, методом НСА, методом ГДШ и с помощью математического пакета.

Согласно аналитическому методу, xmin = 0.5, ymin = -0.333333, f (xmin, ymin) = 6.417.

Согласно методу НСА, xmin = 0.871, ymin = -0.085, f (xmin, ymin) = 6.739.

Согласно методу ГДШ, xmin = 0.5, ymin = -0.33334, f (xmin, ymin) = 6.417.

Решение задачи оптимизации с использованием средств пакета Mathcad, составило xmin = 1, y(xmin) = 0.5, f (xmin, ymin) = 8.75.

Соседние файлы в предмете Численные методы