Function Repository Resource:

InflectionPoints

Source Notebook

Find the inflection points of a function of one variable

Contributed by: Wolfram|Alpha Math Team

ResourceFunction["InflectionPoints"][expr, x]

computes the inflection points of the expression expr with respect to variable x.

ResourceFunction["InflectionPoints"][{expr,constraint},x]

computes the inflection points expr, subject to the given condition constraint on x.

ResourceFunction["InflectionPoints"][, "Properties"]

computes the inflection points of a function, along with function properties at these points.

Details and Options

Inflection points are returned as a list of rules for the independent variable x. When the "Properties" directive is invoked, inflection points are listed along with properties such as "rising", "falling", "stationary" and "non-stationary".
For functions with a repeating pattern of inflection points, ResourceFunction["InflectionPoints"] returns results in terms of one or more undetermined constants, which can take any integer value.
In ResourceFunction["InflectionPoints"][{expr,constraint},x], the constraint argument should be an inequality involving x.

Examples

Basic Examples (4) 

Find the inflection points of a cubic function:

In[1]:=
func = x^3;
inflPts = ResourceFunction["InflectionPoints"][func, x]
Out[2]=

Plot the function and its inflection points found above:

In[3]:=
Plot[{func}, {x, -3, 3}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[1, 2]], func /. #}] & /@ inflPts]]
Out[3]=

Repeat the calculation, classifying inflection points:

In[4]:=
ResourceFunction["InflectionPoints"][func, x, "Properties"]
Out[4]=

Find and classify the inflection points of a polynomial function:

In[5]:=
func = 1 + 3 x^2 + x^3;
inflPts = ResourceFunction["InflectionPoints"][func, x, "Properties"]
Out[6]=

Plot the function and its inflection points:

In[7]:=
Plot[{func}, {x, -4, 2}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[2]], func /. #}] & /@ inflPts[[All, 1]]]]
Out[7]=

Find and classify the inflection points of another polynomial function:

In[8]:=
func = (x - 1) (x - 2) (x - 3) (x - 3.2);
inflPts = ResourceFunction["InflectionPoints"][func, x, "Properties"]
Out[9]=

Plot the function and its inflection points:

In[10]:=
Plot[{func}, {x, 0.7, 3.9}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[2]], func /. #}] & /@ inflPts[[All, 1]]]]
Out[10]=

Find and classify the inflection points of a trigonometric function:

In[11]:=
func = Sin[x];
inflPts = ResourceFunction["InflectionPoints"][func, x, "Properties"]
Out[12]=

Plot the function and a single cycle's worth of its inflection points:

In[13]:=
Plot[{func}, {x, -5, 7}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[2]], func /. #}] /. C[1] -> 0 & /@ inflPts[[All, 1]]]]
Out[13]=

Options (2) 

Find and classify the inflection points of a function, specifying the range of the independent variable to include:

In[14]:=
func = E^Sin[x^3] - 1;
inflPts = ResourceFunction["InflectionPoints"][{func, -2 <= x <= 2}, x, "Properties"]
Out[15]=

Plot the function and its inflection points:

In[16]:=
Plot[{func}, {x, -2.2, 2.3}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[2]], func /. #}] & /@ inflPts[[All, 1]]]]
Out[16]=

Properties and Relations (3) 

InflectionPoints will sometimes return results in terms of Root objects:

In[17]:=
func = (x^5 + x^9 - x - 1)^3;
inflPts = ResourceFunction["InflectionPoints"][func, x]
Out[18]=

Applying N to these outputs converts to an ordinary numeric result:

In[19]:=
N[inflPts]
Out[19]=

Plot the function and its inflection points:

In[20]:=
Plot[{func}, {x, -1.1, 1.5}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[1, 2]], func /. #}] & /@ inflPts]]
Out[20]=

For functions with a repeating pattern of inflection points, InflectionPoints returns results in terms of one or more undetermined constants, which can take any integer value:

In[21]:=
func = x + Sin[x];
ResourceFunction["InflectionPoints"][func, x, "Properties"]
Out[22]=

Plot the function and a single period's worth of its inflection points:

In[23]:=
Plot[{func}, {x, -7, 7}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[2]], func /. #}] /. C[1] -> 0 & /@ %[[All, 1]]]]
Out[23]=

Find the inflection points of another periodic function:

In[24]:=
func = Sin[x]^3;
inflPts = ResourceFunction["InflectionPoints"][func, x]
Out[25]=

Plot the function and a single cycle's worth of its inflection points:

In[26]:=
Plot[{func}, {x, 0, 15}, Epilog -> Join[{Red, PointSize@Large}, Point[{#[[1, 2]], func /. #}] /. C[1] -> 1 & /@ inflPts]]
Out[26]=

Publisher

Wolfram|Alpha Math Team

Version History

  • 5.0.0 – 23 March 2023
  • 4.0.0 – 01 April 2020
  • 3.0.0 – 06 September 2019
  • 2.0.0 – 12 June 2019
  • 1.0.0 – 22 February 2019

Related Resources

License Information