LocateRoot
LocateRoot[f, {x, }] searches for a numerical solution to the equation f == 0, starting with x = .
LocateRoot[f, {x, {, }}] searches for a solution using and as the first two values of x. This form must be used if symbolic derivatives of the equation cannot be found.
LocateRoot[f, {x, xstart, xmin, xmax}] searches for a solution, stopping the search if x ever gets outside the range xmin to xmax.
LocateRoot[{, , ... }, {x, }, {y, }, ... ] searches for a numerical solution to the simultaneous equations .
LocateRoot returns a list of replacements for x, y, ... , in the same form as obtained from SolveEquation.
If you specify only one starting value of x, LocateRoot searches for a solution using Newton's method. If you specify two starting values, LocateRoot uses a variant of the secant method.
If all equations and starting values are real, then LocateRoot will search only for real roots. If any are complex, it will also search for complex roots.
You can always tell LocateRoot to search for complex roots by adding 0. I to the starting value.
See also: LocateMinimum, SolveEquation, SolveODE.
Examples
Using InstantCalculators
Here are the InstantCalculators for the LocateRoot function. Enter the parameters for your calculation and click Calculate to see the result.
In[1]:=
Out[1]=
In[2]:=
Out[2]=
In[3]:=
Out[3]=
Entering Commands Directly
You can paste a template for this command via the Text Input button on the LocateRoot Function Controller.
These two curves intersect at one point.
In[4]:=
This finds a numerical approximation to the x coordinate of the intersection point. The 0.5 is the initial guess.
In[5]:=
Out[5]=
Trigonometric equations typically have an infinite number of roots. If you start sufficiently close to a particular root of an equation, LocateRoot will find that root.
In[6]:=
Out[6]=
Starting closer to another root will give a different solution.
In[7]:=
Out[7]=
You can restrict LocateRoot so that it looks for solutions in one particular region only. Here the initial guess is and the solution is supposed to be between and . There is no such solution.
In[8]:=
Out[8]=
This is what happens when LocateRoot can find no solutions at all.
In[9]:=
Out[9]=
If you want LocateRoot to use complex values in its search, then you need to give a complex starting value.
In[10]:=
Out[10]=
You can use the secant method by giving two starting values.
In[11]:=
Out[11]=
This finds a solution to a set of simultaneous equations. It is a good idea to avoid taking the starting values for x and y to be equal or to take any other "special" combinations of values.
In[12]:=
Out[12]=
The criterion LocateRoot uses for convergence to a root is how close the function is to zero. If the function is very flat, it may be close to zero before the variable is close enough to the root.
In[13]:=
Out[13]=
Here LocateRoot stops when the value of the function is within the accuracy goal (6 digits) of zero, but the root is only good to one decimal place.
In[14]:=
Out[14]=
