ЗАДАНИЕ №4 Лабораторный практикум
(Выполняется в системе MATLAB)
Задание №4. нахождение минимума функции n переменных.
Пример нахождения минимума функции одной переменной используя стандартную программу МатЛаб:
function optim
global x0;
x0=2
xmim=fminbnd(@foc,-5.0,5.0)
function y=foc(x);
global x0;
y=(x-x0).^2;
return
Результат:
x0 =
2
xmim =
2
Пример нахождения минимума функции двух переменных используя стандартную программу МатЛаб:
function optim
global x0;
x0=0.3
options = optimset('Display','iter','TolX',1.0e-3);
[xmim,fmin]=fminsearch(@foc,[1.0,1.5],options)
function y=foc(x);
global x0; %передача параметра x0 внутрь подпрограммы
x1=x(1);
x2=x(2);
y=-sin(pi*(x1-x0)).*sin(pi*x2); %вставить свою функцию
return
Графическое исследование двумерной функции
function grf;
[x,y]= meshgrid(0:0.1:4,0:0.1:2);
z=-sin(pi*x).*sin(pi*y);
%z=x.^2+y.*(2-x)
subplot(1,2,1);
surfc(x,y,z);
%colormap(winter)
subplot(1,2,2);
%levels = 0:-0.1:-5;
%contour(x,y,z,levels)
contour(x,y,z,10)
%colorbar
colormap(hot) %(jet) (hot) (winter)(gray)
grid on
return
Отчет должен содержать описание указанного метода. В отчете отобразить рельеф функции, траекторию спуска к минимуму при использовании указанного метода. Пояснить каждый шаг метода.
ВАРИАНТЫ ЗАДАНИЙ
1. Метод Гаусса – Зейделя
2. Метод Пауэлла
3. Метод ДСК
4. Метод Розенброка
5. Метод последовательного перебора
6. Метод Хука – Дживса
7. Метод Нелдера – Мида
8. Метод спуска по градиенту
9. Метод Флетчера – Ривса
10. Метод ДФП
11. Метод проективного градиента
12. Метод Мак – Кормика1
13. Метод Мак – Кормика2
14. Метод Гольдфарба
15. Метод Гринстадта
16. Метод Розенброка
Метод оптимизации оформить в виде отдельной процедуры. В качестве теста найти минимум функции Розенброка
ответ
с помощью выбранного метода.
Начальное приближение выбрать самостоятельно, предварительно построив рельеф функции используя средства МатЛаб. Желательно произвести расчеты при нескольких начальных значениях и сравнить результаты со стандартным методом МАТЛАБ.