Слайд 2
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-1.jpg)
Слайд 3
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-2.jpg)
Слайд 4
![(1) (2) (3) (2) (1),](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-3.jpg)
Слайд 5
![(4) (5) (5) (5) (2) (1). (2). (2),](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-4.jpg)
(4)
(5)
(5)
(5)
(2)
(1).
(2).
(2),
Слайд 6
![(1)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-5.jpg)
Слайд 7
![Итак, приступая к поиску минимума функции, необходимо определить интервал, на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-6.jpg)
Итак, приступая к поиску минимума функции, необходимо определить
интервал, на котором
функция могла бы иметь минимум.
Для этого можно использовать:
1) графическое представление функции;
2) аналитический анализ аппроксимирующей функции;
3) сведения о математической модели исследуемого процесса (т.е. законы
Поведения данной функции).
Слайд 8
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-7.jpg)
Слайд 9
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-8.jpg)
Слайд 10
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-9.jpg)
Слайд 11
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-10.jpg)
Слайд 12
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-11.jpg)
Слайд 13
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-12.jpg)
Слайд 14
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-13.jpg)
Слайд 15
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-14.jpg)
Слайд 16
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-15.jpg)
Слайд 17
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-16.jpg)
Слайд 18
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-17.jpg)
Слайд 19
![):](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-18.jpg)
Слайд 20
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-19.jpg)
Слайд 21
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-20.jpg)
Слайд 22
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-21.jpg)
Слайд 23
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-22.jpg)
Слайд 24
![%Программа, иллюстрирующая поиск минимума Data_sheet5.m %функции F(x,y)=(y-sin(x))^2+0.1x^2 %методом покоординатного спуска](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-23.jpg)
%Программа, иллюстрирующая поиск минимума Data_sheet5.m
%функции F(x,y)=(y-sin(x))^2+0.1x^2
%методом покоординатного спуска
%очищаем рабочее пространство
clear all
%задаем
точность близости частных производных
%функции F к нулю
eps=1e-3;
%определяем функцию и ее частные производные
F=@(x,y)(y-sin(x))^2+0.1*x^2;
Fx=@(x,y)-2*cos(x)*(y-sin(x))+0.2*x;
Fxx=@(x,y)2*y*sin(x)+2*cos(2*x)+0.2;
Fy=@(x,y)2*(y-sin(x));
Fyy=@(x,y)2;
%задаем начальное приближение
x(1)=4.5; y(1)=-1;
%задаем счетчик числа шагов в методе спуска и
%максимальное число шагов
k=1; iterm=200;
Слайд 25
![%организуем цикл покоординатного спуска while ((abs(Fx(x(k),y(k)))>eps)|... (abs(Fy(x(k),y(k)))>eps))&(k %цикл спуска по](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-24.jpg)
%организуем цикл покоординатного спуска
while ((abs(Fx(x(k),y(k)))>eps)|...
(abs(Fy(x(k),y(k)))>eps))&(k %цикл спуска по координате x
осуществим с
%помощью метода Ньютона
xs=x(k);
for i=1:2
xs=xs-Fx(xs,y(k))/Fxx(xs,y(k));
end
k=k+1;
x(k)=xs; y(k)=y(k-1);
%цикл спуска по координате y осуществим с
%помощью метода Ньютона
ys=y(k);
for i=1:2
ys=ys-Fy(x(k),ys)/Fyy(x(k),ys);
end
k=k+1;
x(k)=x(k-1); y(k)=ys;
end
Слайд 26
![%подготовительные мероприятия к построению %линий уровня [u v]=meshgrid(-2*pi:0.1:2*pi,-pi:0.1:pi); Func=(v-sin(u)).^2+0.1*u.^2; %определяем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-25.jpg)
%подготовительные мероприятия к построению
%линий уровня
[u v]=meshgrid(-2*pi:0.1:2*pi,-pi:0.1:pi);
Func=(v-sin(u)).^2+0.1*u.^2;
%определяем значения функции, линии уровня
%которых будут
построены
for i=1:5
s(i)=F(x(i),y(i));
end
%построение линий уровня
contour(u,v,Func,s);
hold on
%построение траектории спуска к минимуму
%функции F
line(x,y,'Color','black');
Слайд 27
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-26.jpg)
Слайд 28
![В условиях неупорядоченного рельефа все методы спуска не дают способа](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-27.jpg)
В условиях неупорядоченного рельефа все методы спуска не дают способа поиска
глобального минимума, т.к. из данного начального приближения сходятся к одному-
единственному локальному минимуму. В этих условиях эффективен метод случайного поиска.
Слайд 29
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-28.jpg)
Слайд 30
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-29.jpg)
Слайд 31
![Поиск минимума функций в MATLAB В MATLAB поиск минимума функции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-30.jpg)
Поиск минимума функций в MATLAB
В MATLAB поиск минимума функции одной переменной
осуществляет функция: [х, у]= fminbnd(name, a, b [, options]) для которой:
name - имя М-функции, вычисляющей значение f(x);
а, b - границы интервала, на котором осуществляется поиск минимума;
options - параметры, управляющие ходом решения;
х, у - координаты точки, в которой достигается минимум функции на заданном интервале. Функция f(x) может не являться унимодальной, тогда fminbnd найдёт один из локальных минимумов и не выдаст никаких сообщений о других экстремумах. Минимизируемая функция может быть негладкой и даже разрывной.
[x,fval,exitflag] = fminbnd(...)
[x,fval,exitflag,output] = fminbnd(...)
еxitflag – условия прерывания процесса поиска;
оutput – информация об оптимизации.
Слайд 32
![[x,fval,exitflag] = fminbnd(@cos,3,4,optimset('TolX',1e-12, 'Display','off')) Функцию fminbnd можно использовать и для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-31.jpg)
[x,fval,exitflag] = fminbnd(@cos,3,4,optimset('TolX',1e-12,
'Display','off'))
Функцию fminbnd можно использовать и для вычисления максимума. Для
этого достаточно взять функцию name с противоположным знаком.
Пример: найти минимум функции f(x), на заданном интервале
Слайд 33
![Пример: найти максимум функции. В М-файле с именем mf.m пишем:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-32.jpg)
Пример: найти максимум функции.
В М-файле с именем mf.m пишем:
function y=mf(x)
y=x.^4-0.5*x.^3-28*x.^2+140;
end
Потом в
командном окне пишем:
x=-5:0.1:6;
y=x.^4-0.5*x.^3-28*x.^2+140;
plot(x,y,'-k'), grid
%Максимум функции на интервале [-2 2]
y=-mf(x);
[x,y,]=fminbnd(@mf,-2,2)
Результат:
x =
3.7224e-008
y =
-140.0000
Слайд 34
![Для вычисление экстремума функции многих симплекса по всем переменным не станут меньше заданной погрешности решения.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-33.jpg)
Для вычисление экстремума функции многих
симплекса по всем переменным не станут
меньше заданной погрешности решения.
Слайд 35
![Вычисления реализует команда: [x, z] = fminsearch(name, x0 [, options])](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-34.jpg)
Вычисления реализует команда:
[x, z] = fminsearch(name, x0 [, options])
где: name -
имя М-функции, вычисляющей значение z=f(x1,x2,…,xn), зависящей от n переменных;
x0 – вектор из n элементов, содержащий координаты точки начального приближения;
options – параметры, управляющие ходом решения;
x - из n элементов, содержащий координаты точки, в которой достигается минимум функции;
z – значение функции в точке с координатами x.
[x,fval,exitflag] = fminsearch(...)
[x,fval,exitflag,output] = fminsearch(...)
еxitflag – условия прерывания процесса поиска;
оutput – информация об оптимизации.
[x,fval] = fminsearch(banana, [-1.2, 1],оptimset('TolX',1e-8));
Слайд 36
![Пример: Найти минимум функции min.m [z,f,exitflag,output] = fminsearch(@(x) sqrt(x(1)^2+x(2)^2), [2,2])](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-35.jpg)
Пример:
Найти минимум функции
min.m
[z,f,exitflag,output] = fminsearch(@(x) sqrt(x(1)^2+x(2)^2), [2,2])
%Построение графика
[x y]=meshgrid(-2:0.2:2, -2:0.2:2);
z=sqrt(x.^2+y.^2);
surf(x,y,z);
Результат:
z
=
1.0e-004 *
-0.4133 -0.1015
f =
4.2559e-005
Слайд 37
![Когда минимизируемая функция является достаточно гладкой и дважды дифференцируемой на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-36.jpg)
Когда минимизируемая функция является достаточно гладкой и дважды дифференцируемой на заданном
интервале, то для поиска её минимума можно воспользоваться функцией fminunc, реализующей метод наискорейшего спуска: x= fminunc(@fun,x0)
Для ускорения процесса поиска в функцию fun желательно включить формулы для вычисления градиента (это должно быть оговорено в options).
Пример. Пусть имеется функция f=x13+x23-3x1x2
Слайд 38
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-37.jpg)
Слайд 39
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-38.jpg)
Слайд 40
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-39.jpg)
Слайд 41
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-40.jpg)
Слайд 42
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-41.jpg)
Слайд 43
![Задания. Вычислить минимум функции , определив графически интервал его локализации.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/118700/slide-42.jpg)
Задания.
Вычислить минимум функции , определив графически интервал его локализации. Вычисления провести
с минимальным шагом по аргументу 1*10-5.
2. Вычислить минимум функции двух переменных
с точность 1*10-5.
Координаты начальной точки поиска [1.0, -1.0].
Оба задания выполнить:
используя специальные функции MATLAB; добавить в них вывод данных о процессе поиска exitflag,output; дополнить программы графическим выводом самих функций и выводом на этот же график процесса поиска экстремума;
использовать прилагающиеся программы по отдельным методам оптимизации для решения указанных задач; сравнить количество итераций, затраченное различными методами на поиск экстремумов.
попробовать найти все локальные минимумы в задании 2; попробовать найти локальный максимум на «дне чаши».