Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab6.docx
Скачиваний:
0
Добавлен:
28.06.2026
Размер:
168.82 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» (МТУСИ)

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

Дисциплина: Численные методы

Лабораторная работа №6

Одномерная оптимизация

Выполнил:

студент группы БИК2207

Москва 2024

Содержание

1.Постановка задачи………………………………………………………………3

2.Исследование индивидуального варианта задания…………….……………..4

3.Метод золотого сечения………………………………………………………...6

4.Метод дихотомии……………………………………………………………….9

5.Вычислить число итераций, необходимых, чтобы локализовать точку минимума с точностью E1 = 10-4 методами дихотомии и золотого сечения……………………………………………………………………………12

6.Оптимизация с помощью пакета Mathcad……………………………………13

7.Выводы…………………………………………………………………………13

1.Постановка задачи

1.Выбрать индивидуальное задание по номеру варианта из таблицы для решения задачи одномерной оптимизации: функцию f(x), минимум которой необходимо найти.

2.Провести исследование индивидуального варианта задания: построить график функции , выбрать начальный отрезок неопределенности (отрезок, содержащий точку минимума), проверить выполнение аналитического условия унимодальности функции на выбранном отрезке.

3.Создать в сценарии функцию для проведения значений 3-х итераций определить длину отрезка, содержащего точку минимума, после трех итераций.

4.Написать и выполнить программу, реализующую программу метода, вычисляющую координаты точки минимума функции с заданной точностью 10-4.

5.Вычислить число итераций, необходимых, чтобы локализовать точку минимума с точностью E1 = 10-4 методами дихотомии и золотого сечения.

6.Решить задачу оптимизации с использованием функции minimize пакета Mathcad.

вар.

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

16

2.Исследование индивидуального варианта задания

График функции, построенный на достаточно большом отрезке ОДЗ функции:

Выберем по построенному графику функции начальный отрезок неопределенности (отрезок, содержащий точку минимума): отрезок [1.3;1.7]

Проверим унимодальность функции на данном отрезке:

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

3.Метод золотого сечения

Проведём расчёт трёх итераций методом золотого сечения в программе Mathcad:

Результаты работы:

N

a

b

x1

x2

f(x1)

f(x2)

Δn

0

1.3

1.7

1.453

1.547

-0.1398

-0.2127

0.247

1

1.453

1.7

1.547

1.606

-0.2127

-0.165

0.153

2

1.453

1.606

1.511

1.547

-0.2044

-0.2127

0.094

3

1.511

1.606

Проведём расчёт методом золотого сечения с помощью программы:

import math

a = 1.3

b = 1.7

E = 0.0001

def Q(x):

return math.sin(math.e**x)-math.e**(-x)+1

k2 = (-1 + math.sqrt(5)) / 2

k1 = 1 - k2

x1 = a + k1 * (b - a)

x2 = a + k2 * (b - a)

Q1 = Q(x1)

Q2 = Q(x2)

iteration_count = 0

while abs(b - a) > E:

iteration_count += 1

print(f"Текущие значения: a={a}, b={b}, x1={x1}, x2={x2}, Q1={Q1}, Q2={Q2}, Длина интервала={b-a}")

if Q1 > Q2:

a = x1

x1 = x2

Q1 = Q2

x2 = a + k2 * (b - a)

Q2 = Q(x2)

else:

b = x2

x2 = x1

Q2 = Q1

x1 = a + k1 * (b - a)

Q1 = Q(x1)

min_x = (a + b) / 2

min_Q = Q(min_x)

print(f"Итоговые значения: a={a}, b={b}, x1={x1}, x2={x2}, Q1={Q1}, Q2={Q2}, Длина интервала={b-a}")

print(f'Минимум в точке x={min_x} равен {min_Q} с точностью {E}')

print(f'Всего итераций: {iteration_count}')

Результат работы кода:

0 итерация

значения: a=1.452786404500042, b=1.7, x1=1.547213595499958, x2=1.605572809000084, Q1=-0.21274180824887434, Q2=-0.16499141858103483, Длина интервала=0.24721359549995792

1 итерация

значения: a=1.452786404500042, b=1.605572809000084, x1=1.5111456180001681, x2=1.547213595499958, Q1=-0.2044166084757575, Q2=-0.21274180824887434, Длина интервала=0.152786404500042

2 итерация

значения: a=1.5111456180001681, b=1.605572809000084, x1=1.547213595499958, x2=1.5695048315002944, Q1=-0.21274180824887434, Q2=-0.20393025404001763, Длина интервала=0.09442719099991592

3 итерация

значения: a=1.5111456180001681, b=1.5695048315002944, x1=1.5334368540005046, x2=1.547213595499958, Q1=-0.21272785867107236, Q2=-0.21274180824887434, Длина интервала=0.058359213500126295

4 итерация

значения: a=1.5334368540005046, b=1.5695048315002944, x1=1.547213595499958, x2=1.5557280900008412, Q1=-0.21274180824887434, Q2=-0.21069387688572716, Длина интервала=0.03606797749978985

5 итерация

значения: a=1.5334368540005046, b=1.5557280900008412, x1=1.5419513485013878, x2=1.547213595499958, Q1=-0.21321490593005432, Q2=-0.21274180824887434, Длина интервала=0.022291236000336667

6 итерация

значения: a=1.5334368540005046, b=1.547213595499958, x1=1.5386991009990745, x2=1.5419513485013878, Q1=-0.21320991440603643, Q2=-0.21321490593005432, Длина интервала=0.013776741499453404

7 итерация

значения: a=1.5386991009990745, b=1.547213595499958, x1=1.5419513485013878, x2=1.5439613479976446, Q1=-0.21321490593005432, Q2=-0.21310479753534461, Длина интервала=0.008514494500883485

8 итерация

значения: a=1.5386991009990745, b=1.5439613479976446, x1=1.540709100495331, x2=1.5419513485013878, Q1=-0.2132396263938734, Q2=-0.21321490593005432, Длина интервала=0.0052622469985701414

9 итерация

значения: a=1.5386991009990745, b=1.5419513485013878, x1=1.5399413490051312, x2=1.540709100495331, Q1=-0.21323842570708074, Q2=-0.2132396263938734, Длина интервала=0.0032522475023133435

10 итерация

значения: a=1.5399413490051312, b=1.5419513485013878, x1=1.540709100495331, x2=1.541183597011188, Q1=-0.2132396263938734, Q2=-0.21323407938949623, Длина интервала=0.002009999496256576

11 итерация

значения: a=1.5399413490051312, b=1.541183597011188, x1=1.5404158455209882, x2=1.540709100495331, Q1=-0.2132406511761069, Q2=-0.2132396263938734, Длина интервала=0.0012422480060567676

12 итерация

значения: a=1.5399413490051312, b=1.540709100495331, x1=1.540234603979474, x2=1.5404158455209882, Q1=-0.21324036743840247, Q2=-0.2132406511761069, Длина интервала=0.0007677514901998084

13 итерация

значения: a=1.540234603979474, b=1.540709100495331, x1=1.5404158455209882, x2=1.5405278589538172, Q1=-0.2132406511761069, Q2=-0.21324047630858534, Длина интервала=0.0004744965158569592

14 итерация

значения: a=1.540234603979474, b=1.5405278589538172, x1=1.5403466174123033, x2=1.5404158455209882, Q1=-0.21324062545896272, Q2=-0.2132406511761069, Длина интервала=0.00029325497434307124

15 итерация

значения: a=1.5403466174123033, b=1.5405278589538172, x1=1.5404158455209882, x2=1.5404586308451322, Q1=-0.2132406511761069, Q2=-0.21324061597034505, Длина интервала=0.00018124154151388794

16 итерация

значения: a=1.5403466174123033, b=1.5404586308451322, x1=1.5403894027364473, x2=1.5404158455209882, Q1=-0.21324065341515297, Q2=-0.2132406511761069, Длина интервала=0.00011201343282896126

17 итерация

Итоговые значения: a=1.5403466174123033, b=1.5404158455209882, x1=1.540373060196844, x2=1.5403894027364473, Q1=-0.2132406473439432, Q2=-0.21324065341515297, Длина интервала=6.922810868492668e-05

Минимум в точке x=1.5403812314666459 равен -0.213240651091412 с точностью 0.0001

Всего итераций: 18

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