abcd
abcd

Reputation: 10781

Solve a pair of coupled nonlinear equations within certain limits

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?

Upvotes: 0

Views: 2538

Answers (1)

ev-br
ev-br

Reputation: 26090

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.

EDIT : scipy.optimize.least_squares is available in released scipy for a long long time now (was not so in 2015 when this question was asked).

Upvotes: 0

Related Questions