Function Repository Resource:

NormalLine

Source Notebook

Compute properties of the normal line to a curve at a given point

Contributed by: Wolfram|Alpha Math Team

ResourceFunction["NormalLine"][expr,{x,a},{y,b}]

returns an association of properties of the normal line to expr, viewed as an equation in x and y, at the point {x,y}={a,b}.

ResourceFunction["NormalLine"][expr,{x,a},{y,b},prop]

returns the value of the normal line property prop. prop can also be a list of properties.

ResourceFunction["NormalLine"][expr,{x,a},y]

returns information relating to one, among possibly several, of the normal lines to expr at x=a.

ResourceFunction["NormalLine"][expr,x,{y,b}]

returns information relating to one, among possibly several, of the normal lines to expr at y=b.

Details

Allowed values of prop are:
"SlopeInterceptEquation"equation of the normal line in slope intercept form
"StandardFormEquation"equation of the normal line in standard form
"PointSlopeEquation"equation of the normal line in point slope form
"Slope"slope of the normal line
"PointOfNormalcy"point at which the normal line is computed
"HorizontalIntercept"horizontal intercept for the normal line equation
"VerticalIntercept"vertical intercept for the normal line equation
"Plot"plot of the normal line equation
Allassociation of information returning all allowed properties
If expr does not have head Equal, then expr is treated as an expression defining y in terms of x. In other words, ResourceFunction["NormalLine"][expr,{x,a},y,] is equivalent to ResourceFunction["NormalLine"][y==expr,{x,a},y,] if expr has a head other than Equal.
If only one coordinate of the intersection point is given, the other coordinate is inferred. For expressions that are multivalued at the given value of x or y, information on only one of potentially several normal lines is returned.

Examples

Basic Examples (2) 

Compute the slope-intercept equation of the normal line to a curve at a given point:

In[1]:=
ResourceFunction["NormalLine"][
 y == x^2 , {x, 1/2}, y, "SlopeInterceptEquation"]
Out[1]=

Visualize this result:

In[2]:=
ResourceFunction["NormalLine"][y == x^2 , {x, 1/2}, y, "Plot"]
Out[2]=

Compute the slope of this normal line:

In[3]:=
ResourceFunction["NormalLine"][y == x^2 + 3, {x, 1/2}, y, "Slope"]
Out[3]=

Compute the horizontal intercept of this normal line:

In[4]:=
ResourceFunction["NormalLine"][
 y == x^2 + 3, {x, 1/2}, y, "HorizontalIntercept"]
Out[4]=

Get the standard-form equation of this normal line:

In[5]:=
ResourceFunction["NormalLine"][
 y == x^2 + 3, {x, 1/2}, y, "StandardFormEquation"]
Out[5]=

Get an Association of properties of a normal line to a curve:

In[6]:=
ResourceFunction["NormalLine"][Sin[4 x], {x, Pi/2}, y]
Out[6]=

Get just the point-slope equation of this normal line:

In[7]:=
ResourceFunction["NormalLine"][
 Sin[4 x], {x, Pi/2}, y, "PointSlopeEquation"]
Out[7]=

Scope (1) 

The first argument to NormalLine can be an implicit definition of a curve:

In[8]:=
ResourceFunction["NormalLine"][
 x^2 + y^2 == 1, {x, Sqrt[3]/2}, {y, 1/2} ]
Out[8]=

Properties and Relations (2) 

If a normal line is parallel to a coordinate axis, its intercept with that axis is None:

In[9]:=
ResourceFunction["NormalLine"][y == 2, {x, 0}, y, "VerticalIntercept"]
Out[9]=

Requesting normal line information about a point that is not on the curve will result in an error message:

In[10]:=
ResourceFunction["NormalLine"][
 y == x Sin[x], {x, 2}, {y, 3}, "SlopeInterceptEquation"]
Out[10]=

Possible Issues (3) 

If one coordinate is not specified, information on only one of the possible normal lines at the given coordinate value is returned:

In[11]:=
ResourceFunction["NormalLine"][x^2 + 3 y^2 == 1, {x, 1/Sqrt[2]}, y]
Out[11]=

Vertical normal lines have infinite slope. Some of their properties may not be defined:

In[12]:=
ResourceFunction["NormalLine"][x^2 + y^2 == 1, {x, 0}, {y, 1}]
Out[12]=

If a function has a cusp or a discontinuity at the given point, no normal line is returned:

In[13]:=
ResourceFunction["NormalLine"][Abs[x], {x, 0}, y]
Out[13]=

Publisher

Wolfram|Alpha Math Team

Version History

  • 3.1.0 – 04 August 2023
  • 3.0.0 – 23 March 2023
  • 2.0.1 – 29 March 2022
  • 2.0.0 – 26 May 2021
  • 1.0.0 – 08 March 2021

Related Resources

Author Notes

To view the full source code for TangentAndNormalLine, evaluate the following:

In[1]:=
SystemOpen[
 FileNameJoin[{DirectoryName[FindFile["ResourceFunctionHelpers`"]], "Lines.wl"}]]

License Information