Main Content

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