Решение задач оптимизации
Пакет оптимизации Optimization Toolbox
Назначение и возможности пакета
Возможности базовой системы MATLAB в решении практически весьма важных задач оптимизации довольно ограничены. Поэтому для решения таких задач интересен пакет оптимизации Optimization Toolbox. Ниже описана реализация пакета 2.3 (Rl3 SP1). Уточнить версию продукта можно, исполнив команду ver.
В MATLAB 7 используется версия 3.0, которая в пределах рассмотрения в данной главе идентична версии 2.3. В новую версию введена функция целочисленного бинарного программирования bintprog, усовершенствованы алгоритмы функций fminunc и exitflag и введены новые опции выхода.
Основные типы таких задач, решаемых системой MATLAB с этим пакетом, представлены в табл. 4.1. С методами оптимизации можно познакомиться по многочисленной литературе, например [47—50].
Таблица 4.1
Типы задач, решаемых пакетом Optimization Toolbox
Тип задачи |
Математическая запись |
Используемая функция MATLAB |
Задачи минимизации |
||
Скалярная (одномерная) минимизация |
mint (а), а, < а < а2 а |
fminbnd |
Безусловная минимизация (без ограничений) |
minf(x) X |
fminunc, fminsearch |
Линейное программирование |
mintтх при условиях X А • х < b, Aeq • х = beq, xL < х < хи |
linprog |
Квадратичное программирование |
min-xTHx + fTx при условиях х 2 А х < b, Aeq х = beq, xL < X < xd |
quadprog |
Минимизация при наличии ограничений |
minf(x)npn условиях c(x) < 0, ceq(x) - 0, A • x < b, Aeq • x = beq, xL < x < хи |
fmincon |
Тип задачи |
Математическая запись |
Используемая функция MATLAB |
Достижение цели |
min у при условиях F(x) — wy < goal, с(х) < 0, ceq(x) - 0, А х < b, Aeq х = beq, xL < x < хи |
fgoalattain |
Минимакс |
min max{F(x)} при условиях X {Fit c(x) < 0, ceq(x) = 0, A • x < b, Aeq • x = beq, XL < X < xd |
fminimax |
Полубесконечная минимизация |
minf(x)npn условиях X K(x,w) < Одля всех w, c(x) < 0, ceq(x) = 0, AxL |
fseminf |
Нахождение решений уравнений |
||
Линейные уравнения |
C - x = d, n уравнений, n переменных |
(оператор левого деления, slash) |
Нелинейное уравнение одной переменной |
f(a) = O |
f zero |
Нелинейные уравнения многих переменных |
F(x) - 0, n уравнений, n неизвестных |
fsolve |
Задачи аппроксимации («подгонки» кривых) |
||
Линейный метод наименьших квадратов (МНК) |
min||c-x-< m уравнений, n переменных |
(оператор левого деления, backslash) |
Неотрицательный линейный МНК |
min||C x - d||j при условии x > 0 |
Isqnonneg |
Линейный МНК при наличии ограничений |
min||C • x - d||? при условиях A • x < b, Aeq ? x = beq, xL |
Isqlin |
Тип задачи |
Математическая запись |
Используемая функция MATLAB |
Нелинейный МНК |
m'4llF(xS=^Ef'2(x) при условии XL < X < Ху |
Isqnonlin |
Нелинейная «подгонка» кривой |
min-||F(x,xdata)- ydata||* х 2 при условии xL <х <хи |
Isqcurvefit |
Принятые обозначения:
- • а — скалярный аргумент; х, у — в общем случае векторные аргументы;
- • Ла),Лх) — скалярные функции; F(x), с(х), ceq(x), K(x,w) — векторные функции,
- • A, Aeq, С, Н — матрицы;
- • b, beq, d, f, w, goal, xdata, ydata — векторы;
- • xL, Хц — соответственно нижняя и верхняя граница области изменения аргумента.