Статическая задача оптимизации
Под статическими будем понимать задачи в которых соотношения между показателем качества и параметрами задается в виде алгебраических выражений. Например, рассмотрим задачу определения значений параметров и таких, которые обеспечивают минимальное значения следующей функции: Для решения задачи будут использованы средства пакета программ MATLAB. Вызов функции FMINSEARCH, в которой реализован метод Нелдера-Мида выполняется с помощью следующего скрипта: Файл Main5.m X=fminsearch('fmsfun’, [0, 0]) Папраметрами функции FMINSEARCH являются: fmsfun – имя функции, которая вычисляет значения целевой функции в процессе поиска; [0, 0] – вектор значений параметров, соответствующий начальной точке поиска. Файл fmsfun.m function f=fmsfun(x) f=(1-x(1))*(1-x(1))+100*(x(2)-x(1)*x(1))*(x(2)-x(1)*x(1)); После окончания процесса поиска найденная комбинация параметров отображается в виде вектора в командном окне системы MATLAB. Для наглядного представления поведения целевой функции в найденной точке целесообразно построить графики линий равного уровня функции в рассматриваемой бласти. Дополнительный анализ целевой функции с помощью графиков линий равного уровня целесообразен по следующим причинам: - проверка нахождения глобального минимума; - оценка чувствительности величины целевой функции к изменению параметров. Построение графиков может быть реализовано с помощью следующего MATLAB-скрипта: Файл Main6.m % Задание диапазона построения графиков x1=-4: 0.01: 5; x2=x1; % Формирование вспомогательных структур данных [X1, X2]=meshgrid(x1, x2); Z=(1-X1).^2+100*(X2-X1.^2).^2; % Собственно построение графиков. % Последний параметр функции contour определяет количество % линий на графике и значения функции, для которых % выполняются построения (См. справку MATLAB) contour(X1, X2, Z, [0.5 4 20]);
|