Solve a pair of coupled nonlinear equations within

2019-08-26 19:22发布

问题:

This answer to this question works only for situations in which the desired solution to the coupled functions is not restricted to a certain range.

But what if, for example, we wanted a solution such that 0 < x < 10 and 0 < y < 10? Another way of thinking about this is, what if the coupled functions are undefined when x or y is, e.g., less than zero?

There are functions within scipy.optimize that find roots to a function within a given interval (e.g., brentq), but these work only for functions of one variable.

Why does scipy fall short of providing a root solver that works for multi-variable functions within specific ranges? How might such a solver be implemented?

回答1:

This is algorithmically nontrivial. A future scipy version is likely to have this sort of routine.

Today, you can cast your root finding problem into a least-square problem (minimize the sum of squares of lhs), and use the master branch of the scipy Git repo.