Скачиваний:
0
Добавлен:
20.12.2023
Размер:
193.13 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)

Факультет Радиотехнологий связи

Учебная дисциплина «Прикладные методы оптимизации в радиотехнических системах»

ОТЧЁТ

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

Выполнили:

Приняла:

Санкт-Петербург 2023

Цель работы: изучение и анализ поисковых алгоритмов минимизации функции одной переменной: дихотомического, Фибоначчи и «золотого сечения».

Блок-схемы:

Метод дихотомии.

Метод Фибоначчи.

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

Аналитическое нахождение:

, изначальное уравнение (9 вариант)

Промежуток

, находим производную

, приравниваем ее к 0

, находим значение х из уравнения

, х относится к промежутку

находим значение функции от х

Коды для методов:

Метод дихотомии

script

clc;

clear;

a=0;

b=1;

e=0.001;

n=0;

while abs(b-a)>2*e

x=(b+a)/2;

x1=x-e/2;

x2=x+e/2;

y1=x1^5-x1^2;

y2=x2^5-x2^2;

if y1>y2

a=x1;

else

b=x2;

end

n=n+1;

end

XX=0:0.001:1;

YY=XX.^5-XX.^2;

plot(XX,YY); hold on;

last=(a+b)/2;

ygrek=last.^5-last.^2;

plot(last, ygrek,'-ko');

grid on;

disp(strcat('x=',num2str(last)));

disp(strcat('y=',num2str(ygrek)));

n=10

x=0.73658

y=-0.32573

Метод Фибоначчи

script

clc

clear

n=7;

a=0;

b=1;

F1=1;

F2=1;

for i=1:n

F=F1+F2;

F1=F2;F2=F;

Fk(i)=F;

end

while n>2

L=abs(b-a);

x1=a+(Fk(n-1)/Fk(n))*L;

x2=b-(Fk(n-1)/Fk(n))*L;

f1=x1^5-x1^2;

f2=x2^5-x2^2;

if f1>f2

b=x1;

f1=f2;

x1=x2;

L=abs(b-a);

x2=a+(b-x1);

f2=(x2)^5-(x2)^2;

else

a=x2;

f2=f1;

x2=x1;

L=abs(b-a);

x1=b-(x2-a);

f1=(x1)^5-(x1)^2;

end

n=n-1;

end

funn=f1-f2;

if funn<0

FF=f1;

XF=x1;

else

FF=f2;

XF=x2;

end

xx=0:0.01:1;

yy=xx.^5-xx.^2;

plot(xx,yy); hold on;

plot(XF,FF,'-ko')

disp(strcat('x=',num2str(XF)));

disp(strcat('y=',num2str(FF)));

x=0.73529

y=-0.32572

Метод «золотого сечения»:

script

clc;

clear;

a=0;

b=1;

l=1;

t=0.618;

e=0.01;

n=0;

while abs(a-b)>e

n=n+1;

x1=a+l*t;

x2=b-l*t;

y1=x1^5-x1^2;

y2=x2^5-x2^2;

if y1>y2

b=x1;

y1=y2;

x1=x2;

l=b-a;

x2=a+(b-x1);

y2=x2^5-x2^2;

else

a=x2;

y2=y1;

x2=x1;

l=b-a;

x1=b-(x2-a);

y1=x1^5-x1^2;

end

end

funn=y1-y2;

if funn<0

FF=y1;

XF=x1;

else

FF=y2;

XF=x2;

end

xx=0:0.01:1;

yy=xx.^5-xx.^2;

disp(num2str(n));

plot(xx,yy); hold on;

plot(XF,FF,'-ko');

disp(strcat('x=',num2str(XF)));

disp(strcat('y=',num2str(FF)));

n=10

x=0.73765

y=-0.32573

Зависимость количества повторений от выбранной точности

17

14

10

7

4

1

24

20

15

10

5

1

Вывод:

Были изучены различные методы одномерной оптимизации. Было установлено, что зависимость числа повторений от точности зависит обратно пропорционально (чем меньше, тем n больше). Экспериментальным путем было установлено, что при равных значениях точности в методе Фибоначчи меньшее число повторений n.