Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Expresión contiene oInfNaN

Las funciones de modelado de optimización no permiten especificar valores ni complejos.InfNaN Sin embargo, o las expresiones pueden surgir durante las operaciones ordinarias.InfNaN A menudo, estas expresiones conducen a soluciones erróneas.

Expresiones de optimización que contienen o no se pueden mostrar.InfNaN Por ejemplo, el número real más grande en aritmética de doble precisión es aproximadamente.1.8e308 Así que desborda a.2e308Inf

x = optimvar('x'); y = 1e308; expr = 2*x*y
expr =     OptimizationExpression      Expression contains Inf or NaN.

De forma similar, porque no se puede mostrar la siguiente expresión.Inf - Inf = NaN

expr = 2*x*y - 3*x*y
expr =     OptimizationExpression      Expression contains Inf or NaN.

Si alguna de las expresiones de optimización contiene o, intente eliminar estos valores antes de llamar.InfNaNsolve Para hacerlo:

  • Busque estas expresiones utilizando, o las funciones equivalentes.showexprshowconstrshowproblemwrite

  • Compruebe si las expresiones proceden de una división por cero o de la adición o multiplicación de grandes cantidades. Si es así, elimine o corrija las expresiones.

  • Normalmente, estas expresiones aparecen como resultado de errores. Sin embargo, a veces surgen de la mala escala. Si es necesario, divida cada expresión relevante por un escalar lo suficientemente grande para que la expresión ya no se desborde o utilice otra operación de escalado.

Consulte también

| | | | |

Temas relacionados