# Wolfram Function Repository

Instant-use add-on functions for the Wolfram Language

Function Repository Resource:

Compute the stationary points of a function of one or more variables

Contributed by:
Wolfram|Alpha Math Team

ResourceFunction["StationaryPoints"][ computes the stationary points of | |

ResourceFunction["StationaryPoints"][{ computes the stationary points of | |

ResourceFunction["StationaryPoints"][…, " limits the stationary points returned to those of the given type. |

Allowed values of the optional "*type*" argument are "Maxima", "Minima", and "SaddlePoints". Using Automatic or omitting the "*type*" argument returns an Association of stationary points keyed according to their types.

ResourceFunction["StationaryPoints"][*expr*,{*var*_{1},…},"*type*"] returns a list of results, each of the form {*val*_{j},{*var*_{1}→*sol*_{1j},*val*_{2}→*sol*_{2j}}} where the list of rules represents the location of the *j*th stationary point and *val*_{j} is the value of *expr* at that point.

For functions with a repeating pattern of stationary points, ResourceFunction["StationaryPoints"] returns results in terms of one or more undetermined constants *c*_{i}, which can take any integer value.

In ResourceFunction["StationaryPoints"][{*expr*,*domain*},…], the argument *domain* should be a Boolean expression, typically an equality, inequality or logical combination thereof, involving the *var*_{i}.

Find the stationary points of a function of one variable:

In[1]:= |

Out[1]= |

Plot the function and its stationary points found above:

In[2]:= |

Out[2]= |

Find the stationary points of a periodic function:

In[3]:= |

Out[3]= |

In[4]:= |

Out[4]= |

Find the stationary points of a function over a restricted domain:

In[5]:= |

Out[5]= |

In[6]:= |

Out[6]= |

Find stationary points of a function of two variables:

In[7]:= |

Out[7]= |

Find stationary points of a function of three variables when restricting to a plane:

In[8]:= |

Out[8]= |

Using the "Type" option will return only stationary points of the given type:

In[9]:= |

Out[9]= |

In[10]:= |

Out[10]= |

In[11]:= |

Out[11]= |

Using Automatic as the second argument gives an Association of all stationary points:

In[12]:= |

Out[12]= |

StationaryPoints will sometimes return results in terms of Root objects:

In[13]:= |

Out[13]= |

Results such as these can be numericized by applying N:

In[14]:= |

Out[14]= |

For functions with a repeating pattern of stationary points, StationaryPoints returns results in terms of one or more undetermined constants *c*_{i}, which can take any integer value:

In[15]:= |

Out[15]= |

For functions possessing one or more families of non-isolated stationary points, StationaryPoints may return only the isolated stationary points. For example, the function sin(*x*^{3}*y*^{3}) has lines of stationary points along both the *x*- and *y*- axes, as can be seen in the following plot:

In[16]:= |

Out[16]= |

These, however, are excluded from the results of StationaryPoints:

In[17]:= |

Out[17]= |

- Stationary Point–Wolfram MathWorld
- Critical Point–Wolfram MathWorld
- First Derivative Test–Wolfram MathWorld
- Second Derivative Test–Wolfram MathWorld

- 6.0.0 – 23 March 2023
- 5.0.0 – 08 April 2020
- 4.0.0 – 06 September 2019
- 3.0.0 – 12 June 2019
- 2.0.0 – 12 June 2019
- 1.0.0 – 22 February 2019

This work is licensed under a Creative Commons Attribution 4.0 International License