2D IntervalRootFinding with parameters

Hi all, possibly a simple/silly question: how do I pass parameters to the function for which I want to find the set of roots in two (or more dimensions) using IntervalRootFinding? In 1D I can use an anonymous function roots(x -> f(x,p), X) where p is a struct I’ve previously defined, and X the interval. In 2D I’ve tried roots( (x,y) -> f2d( (x,y), p), X×X), but get a "MethodError: No method matching.
Thanks in advance

Hi, the problem here isnt the parameter its the signature of the anonymous function. Basically, your function gets called with a single argument, not 2 arguments (x and y)

this should work roots( x -> f2d( (x[1],x[2]), p), X×X)

see also Home · IntervalRootFinding.jl

Answering my own question (writing it out helped thinking). This works: roots( ((x,y), ) -> f2d( (x,y), p), X×X). I would think the extra comma is there so that (x,y) is interpreted as a tuple in a tuple with one element. Hope this helps somebody else.
Thanks again

1 Like