Operaciones compatibles con variables y expresiones de optimización
Notación de las operaciones compatibles
Las variables y expresiones de optimización son los elementos básicos del Flujo de trabajo de optimización basada en problemas. Para ver las operaciones legales compatibles con las variables y expresiones de optimización:
x
ey
representan arreglos de optimización de tamaño arbitrario (normalmente del mismo tamaño).x2D
ey2D
representan arreglos de optimización bidimensionales.a
es una constante numérica escalar.M
es una matriz numérica constante.c
es un arreglo numérico del mismo tamaño quex
.
Advertencia
El enfoque basado en problemas no es compatible con valores complejos en una función objetivo, igualdades no lineales o desigualdades no lineales. Si el cálculo de una función tiene un valor complejo, incluso como valor intermedio, el resultado final puede ser incorrecto.
Operaciones que devuelven expresiones de optimización
Estas operaciones en variables o expresiones de optimización devuelven una expresión de optimización.
Categoría | Operación | Ejemplo |
---|---|---|
Operaciones aritméticas | Suma de una constante | x+c o c+x |
Suma de una variable | x+y | |
Más unario | +x | |
Resta de una constante | x-c | |
Resta de variables | x–y | |
Menos unario | -x | |
Multiplicación por un escalar constante | a*x o a.*x o x*a o x.*a | |
División entre un escalar constante | x/a o x./a o a\x o a.\x | |
Multiplicación por puntos por un arreglo | c.*x o x.*c | |
División por puntos entre un arreglo | x./c o c.\x | |
Multiplicación por puntos de variables | x.*y | |
Multiplicación matricial de variables | x2D*y2D , o x*y cuando x o y es escalar | |
Multiplicación matricial de variable y matriz | M*x2D o x2D*M | |
Producto punto de variable y arreglo | dot(x,c) o dot(c,x) | |
Combinación lineal de variables | sum(x) , sum(x,dim) donde dim puede ser un escalar o un vector, sum(x,'all') , mean(x) , mean(x,dim) donde dim puede ser un escalar o un vector, y mean(x,'all') | |
Producto de los elementos de un arreglo | prod(x) , prod(x,dim) y prod(x,'all') | |
Traza de una matriz | trace(x2D) | |
Suma o producto acumulado | cumsum(x) o cumprod(x) , incluidas las sintaxis cumsum(x,dim) , cumsum(_,direction) , cumprod(x,dim) y cumprod(_,direction) | |
Diferencias | diff(x) , incluidas las sintaxis diff(x,n) y diff(x,n,dim) | |
Concatenación y remodelación | Traspuesta | x' o x.' |
Concatenación | cat , vertcat y horzcat | |
Remodelación | reshape(x,[10 1]) | |
Crear una matriz diagonal u obtener elementos diagonales de una matriz | diag(x2D) , donde x2D es una matriz o un vector, incluida la sintaxis diag(x2D,k) | |
Funciones elementales | Potencia de matrices cuadradas | x2D^a |
Potencia por puntos | x.^a | |
Raíz cuadrada | sqrt (x ) | |
Norma (euclidiana) |
fcn2optimexpr(@norm,x,Analysis="off") | |
Seno | sin (x ) | |
Coseno | cos (x ) | |
Secante | sec (x ) | |
Cosecante | csc (x ) | |
Tangente | tan (x ) | |
Arcoseno | asin (x ) | |
Arcocoseno | acos (x ) | |
Arcosecante | asec (x ) | |
Arcocosecante | acsc (x ) | |
Arcotangente | atan (x ) | |
Exponencial | exp (x ) | |
Logaritmo | log (x ) | |
Seno hiperbólico | sinh (x ) | |
Coseno hiperbólico | cosh (x ) | |
Secante hiperbólica | sech (x ) | |
Cosecante hiperbólica | csch (x ) | |
Tangente hiperbólica | tanh (x ) | |
Seno hiperbólico inverso | asinh (x ) | |
Coseno hiperbólico inverso | acosh (x ) | |
Secante hiperbólica inversa | asech (x ) | |
Cosecante hiperbólica inversa | acsch (x ) | |
Tangente hiperbólica inversa | atanh (x ) |
Nota
a^x
no es compatible con una variable de optimización x
.
Sin embargo, si se limita a
para que sea estrictamente positivo, se puede utilizar el equivalente exp(x*log(a))
.
Operaciones que devuelven variables de optimización
Estas operaciones en variables de optimización devuelven una variable de optimización.
Operación | Ejemplo |
---|---|
Indexación numérica de N dimensiones (incluye dos puntos y end ) | x(3,5:end) |
Indexación lógica de N dimensiones | x(ind) , donde ind es un arreglo lógico |
Indexación de cadenas de N dimensiones | x(str1,str2) , donde str1 y str2 son cadenas |
Indexación mixta de N dimensiones (combinación de valores numéricos, lógicos, dos puntos, end y cadenas) | x(ind,str1,:) |
Indexación lineal numérica (incluye dos puntos y end ) | x(17:end) |
Indexación lineal lógica | x(ind) |
Indexación lineal de cadenas | x(str1) |
Operaciones en expresiones de optimización
Las expresiones de optimización son compatibles con todas las operaciones que admiten las variables de optimización y devuelven expresiones de optimización. Además, se pueden indexar o asignar expresiones de optimización mediante la indexación numérica, lógica, de cadena o lineal, incluyendo los operadores de dos puntos y end
para la indexación numérica o lineal.
Operaciones que devuelven expresiones de restricción
Las restricciones son dos expresiones comparables cualesquiera que incluyen uno de los siguientes operadores de comparación: ==
, <=
o >=
. Las expresiones comparables son del mismo tamaño o una de las expresiones debe ser escalar, es decir, de tamaño 1 por 1. Para obtener ejemplos, consulte Expressions for Constraints and Equations.
Algunas operaciones no documentadas funcionan con variables y expresiones de optimización
Internamente, algunas funciones y operaciones solo llaman a las operaciones compatibles documentadas. En estos casos, puede obtener resultados razonables de las funciones u operaciones. Por ejemplo, en este momento squeeze
llama internamente a reshape
, que es una operación compatible documentada. Así que si se aplica squeeze
a una variable de optimización entonces se puede obtener una expresión razonable.
Las funciones y operaciones no compatibles requieren fcn2optimexpr
Si su función objetivo o sus funciones de restricción no lineales no son compatibles, convierta una función de MATLAB® en una expresión de optimización utilizando fcn2optimexpr
. Para ver ejemplos, consulte Convertir una función no lineal en una expresión de optimización o la página de referencia de la función fcn2optimexpr
.
Consulte también
OptimizationExpression
| OptimizationVariable
| fcn2optimexpr