Переменные и выражения оптимизации являются базовыми элементами Основанного на проблеме Рабочего процесса Оптимизации. Для легальных операций на переменных и выражениях оптимизации:
x
и y
представляйте массивы оптимизации произвольного размера (обычно тот же размер).
x2D
и y2D
представляйте 2D массивы оптимизации.
a
скалярная числовая константа.
M
постоянная числовая матрица.
c
числовой массив одного размера с x
.
Предупреждение
Основанный на проблеме подход не поддерживает комплексные числа в целевой функции, нелинейных равенствах и нелинейных неравенствах. Если при вычислении функции встретится комплексное число, даже как промежуточное значение, конечный результат может оказаться неправильным.
Эти операции на переменных оптимизации или выражения возвращают выражение оптимизации.
Категория | Операция | Пример |
---|---|---|
Арифметика | Добавьте постоянный | x+c или c+x |
Переменная Add | x+y | |
Унарный плюс | +x | |
Вычтите константу | x-c | |
Вычтите переменные | x–y | |
Унарный минус | -x | |
Умножьтесь постоянным скаляром | a*x или a.*x или x*a или x.*a | |
Разделитесь на постоянный скаляр | x/a или x./a или a\x или a.\x | |
Pointwise умножаются массивом | c.*x или x.*c | |
Pointwise делятся на массив | x./c или c.\x | |
Pointwise умножают переменные | x.*y | |
Умножение матриц переменные | x2D*y2D , или x*y когда x или y isscalar | |
Умножение матриц переменная и матрица | 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 |
Степень Pointwise | 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
переменная оптимизации затем можно получить разумное выражение.
fcn2optimexpr
Если ваша целевая функция или нелинейные ограничительные функции не поддерживаются, преобразуют функцию MATLAB® в выражение оптимизации при помощи fcn2optimexpr
. Для примеров смотрите, Преобразуют Нелинейную Функцию в Выражение Оптимизации или fcn2optimexpr
страница ссылки на функцию.
fcn2optimexpr
| OptimizationExpression
| OptimizationVariable