
Re: How to speed up FindRoot with Map or MapThread
Posted:
Jan 7, 2013 11:04 PM


h1 = Range[3];
phi1 = Range[0, Pi/4, Pi/8];
X = Table[2 Pi {n, n  1/2, n + 1/2}, {n, 2}];
Flatten[ Outer[{#1, #2, #3, FindRoot[ Sin[2*theta] + 2*#1*Sin[theta  #2] == 0, {theta, Sequence @@ #3}]} &, h1, phi1, X, 1], 2] // Grid
Bob Hanlon
On Mon, Jan 7, 2013 at 12:39 AM, <o.sandig@googlemail.com> wrote: > Hi, > I would like to speed up FindRoot. > In this special case I'm looking for roots of the equation > > sin[2*theta]+2*h*sin[theta  phi] > > for different h's and phi's. > To do this I specify for each h the region within which the solution has to be found: X = {x_middle, x_left, x_right}, e.g.: > > FindRoot[sin[2*theta] + 2*h1*sin[theta  phi1] == 0 , {theta, x_middle, x_left, x_right}] > > That means that h is an mx1 matrix and X is an nx3 matrix (X = {x_middle, x_left, x_right}). > > The question: > How can I use Map or MapThread to combine each element of h with the whole matrix X inside FindRoot to speed it up? > > Thanks for any idea. >

