Michael Bynum
Michael Bynum
For the example in this problem, FBBT + identify_variables is more than 100 times faster than newton's method.
These are from single runs, so take them with a grain of salt: - `calculate_variable_from_constraint` with `sympy`: 0.3047 seconds - `calculate_variable_from_constraint` with `reverse_symbolic`: 0.0004 seconds - `calculate_variable_from_constraint` with `reverse_numeric`: 0.0005...
So FBBT is not really faster if you use `reverse_symbolic` or `reverse_numeric`, but it could still help with bad initialization.
Great suggestion. I agree.
I've already done that on a branch of Pyomo.
I'm not sure I see a way to fix this...
This should all be possible. We can compute symbolic derivatives with respect to both variables and parameters: ``` In [1]: import pyomo.environ as pe ...: from pyomo.core.expr.calculus.diff_with_pyomo import reverse_sd ...:...
Just in case anyone else is tracking this issue, @adowling2's notebook has a nice example of this.
Where to put things is always a challenge, but reducing duplicate is always good. Maybe we should we start adding some structure to contrib?
@emma58, your review is blocking, but I think it is outdated.