Переменные и выражения являются базовым элементом рабочего процесса оптимизации на основе задач. Для легальных операций с переменными оптимизации и выражениями:
x
и y
представляют оптимизационные массивы произвольного размера (обычно того же размера).
x2D
и y2D
представляют 2-D оптимизационные массивы.
a
является скалярной числовой константой.
M
является постоянной числовой матрицей.
c
- числовой массив того же размера, что и x
.
Предупреждение
Основанный на проблеме подход не поддерживает комплексные числа в целевой функции, нелинейных равенствах и нелинейных неравенствах. Если при вычислении функции встретится комплексное число, даже как промежуточное значение, конечный результат может оказаться неправильным.
Эти использования с переменных оптимизации или выражениями возвращают выражение оптимизации.
Категория | Операция | Пример |
---|---|---|
Арифметика | Добавьте константу | x+c или c+x |
Добавить переменную | x+y | |
Унарный плюс | +x | |
Вычесть константу | x-c | |
Вычитайте переменные | x–y | |
Унарный минус | -x | |
Умножьте на постоянный скаляр | a*x или a.*x или x*a или x.*a | |
Разделите на постоянный скаляр | x/a или x./a или a\x или a.\x | |
Точечное умножение на массив | c.*x или x.*c | |
Точечное деление на массив | x./c или c.\x | |
Точечное умножение переменных | x.*y | |
Матричные переменные умножения | x2D*y2D , или x*y когда x или y является скаляром | |
Матричная переменная умножения и матрица | M*x2D или x2D*M | |
Скалярный продукт переменной и массива | dot(x,c) или dot(c,x) | |
Линейная комбинация переменных | sum(x) , sum(x,dim) , sum(x,'all') , mean(x) , и mean(x,dim) | |
Произведение элементов массива | prod(x) , prod(x,dim) , и prod(x,'all') | |
Трассировка матрицы | trace(x2D) | |
Совокупная сумма или продукт | cumsum(x) или cumprod(x) , включая синтаксисы cumsum(x,dim) , cumsum(_,direction) , cumprod(x,dim) , и cumprod(_,direction) | |
Различия | diff(x) , включая синтаксисы diff(x,n) и diff(x,n,dim) | |
Конкатенация и изменение формы | Переместить | x' или x.' |
Конкатенация | cat , vertcat , и horzcat | |
Измениться | reshape(x,[10 1]) | |
Создайте диагональную матрицу или получите диагональные элементы матрицы | diag(x2D) , где x2D является матрицей или вектором, включая синтаксис diag(x2D,k) | |
Элементарные функции | Степень квадратной матрицы | x2D^a |
Точечная степень | x.^a | |
Квадратный корень | sqrt (x ) | |
Норма (евклидова) | norm (x ), который вычисляет sqrt(sum(x.^2,'all')) | |
Синус | sin (x ) | |
Косинус | cos (x ) | |
Секанс | sec (x ) | |
Косеканс | csc (x ) | |
Тангенс | tan (x ) | |
Arcsine | asin (x ) | |
Arccosine | acos (x ) | |
Arcsecant | asec (x ) | |
Arccosecant | acsc (x ) | |
Арктангенс | atan (x ) | |
Экспоненциал | exp (x ) | |
Логарифм | log (x ) | |
Гиперболический синус | sinh (x ) | |
Гиперболический косинус | cosh (x ) | |
Гиперболический секант | sech (x ) | |
Гиперболический косекант | csch (x ) | |
Гиперболический тангенс | tanh (x ) | |
Обратный гиперболический синус | asinh (x ) | |
Обратный гиперболический косинус | acosh (x ) | |
Обратный гиперболический секант | asech (x ) | |
Обратный гиперболический косекант | acsch (x ) | |
Обратный гиперболический тангенс | atanh (x ) |
Примечание
a^x
не поддерживается для переменной оптимизации x
.
Однако, если вы связались a
чтобы быть строго положительным, вы можете использовать эквивалентный exp(x*log(a))
.
Эти операции с переменными оптимизации возвращают переменную оптимизации.
Операция | Пример |
---|---|
N-D числовая индексация (включает двоеточие и end ) | x(3,5:end) |
N-D логическая индексация | x(ind) , где ind является логическим массивом |
Индексирование N-D строк | x(str1,str2) , где str1 и str2 являются строками |
Смешанная индексация N-D (комбинация числа, логики, двоеточия, конца и строки) | x(ind,str1,:) |
Линейная числовая индексация (включает двоеточие и end ) | x(17:end) |
Линейная логическая индексация | x(ind) |
Линейная индексация строк | x(str1) |
Выражения оптимизации поддерживают все операции, которые поддерживают переменные оптимизации, и возвращают выражения оптимизации. Кроме того, можно индексировать в или назначить в выражение оптимизации с помощью числового, логического, строкового или линейного индексирования, включая двоеточие и end
операторы для числовой или линейной индексации.
Ограничениями являются любые две comparable expressions, которые включают один из следующих операторов сравнения: ==
, <=
, или >=
. Сопоставимые выражения имеют тот же размер, или одно из выражений должно быть скаляр, то есть размер 1 на 1. Для примеров смотрите Выражения для ограничений и уравнений.
Внутренне некоторые функции и операции вызывают только документированные поддерживаемые операции. В этих случаях можно получить разумные результаты из функций или операций. Для примера, в настоящее время squeeze
внутренние вызовы reshape
, которая является документированной поддерживаемой операцией. Так что, если вы squeeze
переменная оптимизации, тогда вы можете получить разумное выражение.
Если ваша целевая функция или нелинейные функции ограничений не поддерживаются, преобразуйте MATLAB® функцию в выражение оптимизации при помощи fcn2optimexpr
. Для примеров смотрите Преобразование нелинейной функции в выражение оптимизации или fcn2optimexpr
страница с описанием функции.
fcn2optimexpr
| OptimizationExpression
| OptimizationVariable