Hyperbola

hyperbolas confocal
Family of confocal hyperbolas with eccentricities {4., 2.81, 2.17, 1.76, 1.49, 1.28, 1.13, 1.01}, in order of light to dark shade.
Clear[xc,xaalist,xcount]
xc = 1;
xcount = 7;
xaalist = Table[x, {x, .25, .99, (.99 - .25)/xcount}];
ParametricPlot[
 Evaluate@ Table[{a Sec[t], Sqrt[xc^2 - a^2] Tan[t]}, {a, xaalist}],
{t, 0.01, 2 Pi - 0.01},
 PlotStyle -> Map[Function[{Thickness[.01], #1}] , Table[Hue[0, i, 1], {i, .3, 1, (1 - .3)/xcount}]],
 PlotRange -> {{-1, 1}, {-1, 1}}  3  xc, Background -> Hue[0.18],
(* PlotLabels -> xaalist, *)
PlotLabels -> Placed[ xaalist, Left ],
 AspectRatio -> Automatic,
 Prolog -> {{Hue[.75], PointSize[.03], Point[{-1, 0}], Point[{1, 0}]}}]
hyperbola m5nhZ
A Family of hyperbolas with eccentricities Table[ 1/a, {a,.25,.99, (.99-.25)/7}] Sharing vertexes.
Clear[ xhformula, xelist, xhypers ]

xhformula[e_] := Function[{Sec[#], Sqrt[e^2-1] Tan[#]}] ;

(* a Sqrt[ e^2-1] == b *)
(* e = c/a for all conics *)

xelist = Table[ 1/x, {x,.25,.99, (.99-.25)/7}]

xhypers = Table[ xhformula[x][t], {x, xelist}]

ParametricPlot[
	Evaluate@ xhypers  ,
	{t, 0.01, 2 Pi -0.001 },
	AspectRatio->Automatic,
	PlotRange->{{-5,5},{-5,5}},
	PlotStyle-> Map[ Function[{Thickness[.01],#1}], Table[Hue[.75,i,1],{i,.3,1,(1-.3)/7}]],
	Background->Hue[.18],
	Axes->False
]

History

Description

Hyperbola describe a family of curves with single parameter. Together with ellipse and parabola, they make up the conic sections .

Hyperbola is commonly defined as the locus of points P such that the difference of the distances from P to two fixed points F1, F2 (called foci) are constant. That is, Abs[ distance[P,F1] - distance[P,F2] ] == 2 a, where a is a constant. GeoGebra: Two Ripples Traces Conics .

The eccentricity is a number that describe the “flatness” of the hyperbola. Let the distance between foci be 2 c, then eccentricity e is defined by e := c/a, and 1 < e. The larger the eccentricity, the more it resembles two parallel lines. As e approaches 1, the vertexes become more pointed.

The line passing through foci is the axis of the hyperbola. A line passing through center and perpendicular to the axis is the transverse axis. The vertexes are the intersections of the hyperbola and its axis.

Formula

Parametric equation

hyperbola 2025 xT2zd
hyperbola 2025 xT2zd
Clear[xecc]
xecc = 2;
ParametricPlot[{Sec[t], Sqrt[e^2 - 1]  Tan[t]}, {t, -5, 5},
PlotRange -> {{-1,1} 5, {-1,1} 6} ,
Epilog -> {Red, Point[ {-xecc,0} ], Point[ {xecc,0} ]}
]

Cartesian equation

hyperbola 2025 Hy7SD
hyperbola 2025 Hy7SD
Clear[ xecc ]
xecc = 2;
ContourPlot[ x^2 - y^2/(xecc^2-1) == 1 , {x, -5, 5}, {y, -6, 6},
PlotRange -> {{-1,1} 5, {-1,1} 6} ,
GridLines -> Automatic,
Epilog -> {Red, Point[ {-xecc,0} ], Point[ {xecc,0} ]}
]

hyperbola 2025-02-02 085654
hyperbola 2025-02-02 085654
Clear[ xa,xb ]
xa = 1;
xb = 2;
ParametricPlot[
Evaluate[ {{-xa Cosh[t], xb Sinh[t] }, {xa Cosh[t], xb Sinh[t] }} ] , { t, -2, 2},
 PlotRange -> {-3,3}
]

Cartesian equation

hyperbola 2025-02-02 085004
hyperbola 2025-02-02 085004
Clear[aa, bb]
aa = 1;
bb = 2;
ContourPlot[x^2/aa^2 - y^2/bb^2 == 1, {x, -5, 5}, {y, -5, 5},
 GridLines -> Automatic]

The parametric form with Sinh is derived by replacing y in x^2/a^2-y^2/b^2==1 with b*Sinh[t], then solve for x. This is analogous to the ellipse case where we replace a variable in x^2/a^2+y^2/b^2==1 by Cos[t] and solve the other to find {a*Cos[t],b*Sin[t]}.

Rectangular Hyperbola

x y == 1
rectangular hyperbola 2025-02-15 092854
rectangular hyperbolas
ParametricPlot[Evaluate@ Table[{t, i/t}, {i, 1, 20, 5}],
{t, -10, 10},
PlotStyle -> {Hue[0], Hue[.65], Hue[.35]},
 PlotRange -> {{-1, 1}, {-1, 1}} 10, AspectRatio -> Automatic]
rectangular hyperbola 2025-02-15 142721
rectangular hyperbola 2025-02-15 142721
(* plotting 3 curves, with different colored dash lines, showing they overlap *)
Clear[n]; n = 2;
ParametricPlot[
{ {t, n 1/t}, {n t, 1/t}, {t, 1/t} Sqrt[n]},
{t,-12,12},
PlotStyle->{
{Blue, Thickness[.007]},
{Red, Thickness[.007], Dashing[{.05,.1}]},
{Green, Thickness[.007], Dashing[{.025,.1}]}
},
PlotRange->{{-1,1}, {-1,1}} 10,
AspectRatio->Automatic
]

Point-wise construction

This method is derived from the paramteric formula for hyperbola

{a Sec[t], b Tan[t]}

, where a and b are the radiuses of the concentric circles. If a == b , then the curve traced is rectangular hyperbola.

hyperbola point const
GeoGebra: Hyperboda Point-wise Construction
  1. Let O be the origin. Let A and B be points on the positive x-axis.
  2. Let there be a circle centered on O and passing A.
  3. Let there be a circle centered on O and passing B.
  4. Let there be a line a1, that passes A and parallel to y-axis.
  5. Let there be a line b1, that passes B and parallel to y-axis.
  6. Let there be a point D on one of the circle.
  7. Let there be a line OD.
  8. Let A1 := Intersection[Line[O,D],a1]
  9. Let B1 := Intersection[Line[O,D],b1]
  10. Let there be a circle centered on O passing A1. Let the intersection of this circle and positive x-axis be E. Let there be a line g, passing E and parallel to y-axis.
  11. Let there be a line passing B1 and parallel to x-axis.
  12. The locus of intersection g and B1, as D moves on the circle, is a hyperbola.
hyperbola gen a:=1, b:=2
Needs["PlaneCurveGenerator`"]

ListAnimate@ HyperbolaGenerator[{2, 1}, {0, 1.25}, PlotRange -> {{-2, 7}, {-2, 6}}, Ticks -> {Range[-10, 10, 2], Range[-10, 10, 2]}]

Optical Property

Light rays coming from one focus of a hyperbola refract to the other focus.

hyperbola caustics 2025-02-13 050545
hyperbola caustics 2025-02-13 050545
Needs["PlaneCurvePlot`"]

PlaneCurvePlot[{-Sec[t], Tan[t]}, {t, 0, 2 Pi, 2  Pi/50},
 CausticLineLength -> 30, CausticOrigin -> {Sqrt[2], 0},
 PlotDot -> False, PlotRange -> {{-4, 4}, {-4, 4}},
 CausticLineStyle -> Table[Hue[i], {i, 0, 1, 1/50}],
 Epilog -> {Red, Disk[{-Sqrt[2], 0}, 0.1]}, Background -> Black]

The catacaustic and diacaustic.

Pedal

The pedal of a hyperbola with respect to a focus is a circle.

hyperbola pedal 2025-02-17 185358
hyperbola pedal 2025-02-17 185358
Needs[ "PlaneCurvePlot`" ]

Clear[ecc, Hyperbola];
ecc = 1.8;

Hyperbola[ecc_] := Function[{-Sec[#], Sqrt[ecc^2-1] Tan[#]} ]

(* a Sqrt[ ecc^2-1] == b *)
(* ecc = c/a for all conics *)

PlaneCurvePlot[ Hyperbola[ecc][t],
{t, -Pi , Pi , (2 Pi )/50},
PedalPoint->{ecc,0}, PlotDot->False,
PlotCurve->False,
LineStyle->{RandomColor[ ]},
AspectRatio->Automatic,
Axes->False,
PlotRange->{{-1,1},{-1,1}} 2,
Epilog->{ {Hue[.7], PointSize[.02], Point[{-ecc,0}]} } ]

The pedal of a rectangular hyperbola with respect to its center is a lemniscate of Bernoulli

hyperbola pedal 2025-02-17 s32QW
hyperbola pedal 2025-02-17 s32QW
Needs[ "PlaneCurvePlot`" ]

Clear[e, Hyperbola];
e = Sqrt[2];

Hyperbola[ecc_] := Function[{-Sec[#], Sqrt[ecc^2-1] Tan[#]} ]

PlaneCurvePlot[ Hyperbola[e][t], {t, -3.14,3.14, 6.18/40},
PedalPoint->{0,0}, PlotDot->False,
LineStyle->RandomColor[],
AspectRatio->Automatic,
Axes->False,
PlotRange->{{-1,1},{-1,1}} 1.8,
Epilog->{ {Blue, PointSize[.02], Point[{-e,0}], Point[{e,0}]} }
]

Inversion

The inversion of a rectangular hyperbola with respect to its center is a lemniscate of Bernoulli.

hyperbola inversion center 2025-02-19 1e8ac
hyperbola inversion center 2025-02-19 1e8ac
Needs["PlaneCurvePlot`"]
Clear[ecc, Hyperbola];
ecc = Sqrt[2];
Hyperbola[ecc_] := Function[{-Sec[#], Sqrt[ecc^2 - 1]  Tan[#]}]
PlaneCurvePlot[Hyperbola[Sqrt[2]][t], {t, 0, 2  Pi, 2  Pi/54},
InversionCircle -> {{0, 0}, 1},
PlotCurve -> False,
DotStyle -> Table[Hue[tt], {tt, 0, 1, 1/54}],
PlotRange -> {{-1, 1}, {-1, 1}}  2.2,
AspectRatio -> Automatic,
Background -> Black
]

The inversion of a rectangular hyperbola with respect to a vertex is a right strophoid.

rec hyperbola inversion vertex 2025-02-19 1fe61
rec hyperbola inversion vertex 2025-02-19 1fe61
(*Inversion of rectangular hyperbola at the vertex*)
Needs["PlaneCurvePlot`"]
Clear[ecc, Hyperbola];
ecc = Sqrt[2];
Hyperbola[ecc_] := Function[{-Sec[#], Sqrt[ecc^2 - 1] Tan[#]}]
PlaneCurvePlot[Hyperbola[ecc][t], {t, -Pi, Pi, 2 Pi/(4 16)},
 InversionCircle -> {{1, 0}, 2}, PlotDot -> True, PlotCurve -> True,
 CurveColorFunction -> Hue, PlotRange -> {{-1, 1}, {-1, 1}} 3.2,
 DotStyle -> Table[{Hue[tt], PointSize[0.012]}, {tt, 0, 1, 1/(4 16)}],
 Background -> Black, AspectRatio -> Automatic]

The inversion of any hyperbola with respect to a focus is a limacon of Pascal .

Hyperbola inversion focus 2025-02-19 1e66c
Hyperbola inversion focus 2025-02-19 1e66c
Needs["PlaneCurvePlot`"]
Clear[ecc, Hyperbola]
Hyperbola[ecc_] := Function[{-Sec[#], Sqrt[ecc^2 - 1]  Tan[#]}]
ecc = 1.7;
PlaneCurvePlot[Hyperbola[ecc][t], {t, 0, 2  Pi, 2  Pi/80},
 InversionCircle -> {{ecc, 0}, ecc}, PlotCurve -> False,
 DotStyle -> Table[Hue[tt], {tt, 0, 1, 1/80}],
 AspectRatio -> Automatic, PlotRange -> {{-1, 1}, {-1, 1}}  2.1  ecc,
 Epilog -> {Blue, PointSize[.02], Point[{ecc, 0}]} ,
 Background -> Black]

Quadric Surfaces

Equations of polynomials of degree 2 with 2 variables have cross sections that are hyperbola, ellipse, parabola in various ways.

Related Web Sites