区分
(函数来自 pyomo.core.expr.calculus.derivatives)
- pyomo.core.expr.calculus.derivatives.differentiate(expr, wrt=None, wrt_list=None, mode=Modes.reverse_numeric)[source]
返回表达式的导数。
此函数返回表达式expr相对于一个或多个变量的导数。返回值的类型取决于参数wrt、wrt_list和mode。详情见下文。
- Parameters:
expr (pyomo.core.expr.numeric_expr.NumericExpression) – 要微分的表达式
wrt (pyomo.core.base.var.VarData) – 如果指定,此函数将返回关于wrt的导数。wrt通常是一个VarData,但也可能是一个ParamData。wrt和wrt_list不能同时指定。
wrt_list (list of pyomo.core.base.var.VarData) – 如果指定,此函数将返回相对于wrt_list中每个元素的导数。将返回一个列表,其中的值是相对于wrt_list中相应条目的导数。
mode (pyomo.core.expr.calculus.derivatives.Modes) –
指定用于微分的方法。应该是Modes枚举的成员之一:
- Modes.sympy:
pyomo表达式将被转换为sympy表达式。然后使用sympy进行微分,结果将转换回pyomo表达式。sympy模式仅进行符号微分。sympy模式要求必须指定wrt或wrt_list中的一个。
- Modes.reverse_symbolic:
将直接在pyomo表达式中以反向模式执行符号微分。如果未指定wrt或wrt_list,则返回一个ComponentMap,其中将为表达式树中的每个节点提供一个键,值将是符号导数。
- Modes.reverse_numeric:
将直接在pyomo表达式中以反向模式执行数值微分。如果未指定wrt或wrt_list,则返回一个ComponentMap,其中将为表达式树中的每个节点提供一个键,值将是变量当前值下的导数的浮点值。
- Returns:
res – 导数的值或表达式
- Return type:
浮点数,
NumericExpression,ComponentMap, 或列表