Переменные и выражения оптимизации являются основными элементами рабочего процесса оптимизации на основе проблем. Для юридических операций с переменными и выражениями оптимизации:
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 для числового или линейного индексирования.
Ограничения - это любые два сравнимых выражения, которые включают один из следующих операторов сравнения: ==, <=, или >=. Сопоставимые выражения имеют одинаковый размер, или одно из выражений должно быть скалярным, что означает размер 1 к 1. Примеры см. в разделе Выражения для ограничений и уравнений.
Внутри системы некоторые функции и операции вызывают только задокументированные поддерживаемые операции. В этих случаях можно получить разумные результаты из функций или операций. Например, в настоящее время squeeze внутренние вызовы reshape, которая является документированной поддерживаемой операцией. Так что, если вы squeeze переменная оптимизации, то можно получить разумное выражение.
fcn2optimexprЕсли целевая функция или функции нелинейных ограничений не поддерживаются, преобразуйте функцию MATLAB ® в выражение оптимизации с помощью fcn2optimexpr. Примеры см. в разделе Преобразование нелинейной функции в выражение оптимизации или в разделе fcn2optimexpr страница ссылки на функцию.
fcn2optimexpr | OptimizationExpression | OptimizationVariable