ReferenceequilibriumCurve

<equilibriumCurve>

An equilibrium curve of a dynamical system, rendered solid if stable or dashed if unstable

<equilibriumCurve> extends <curve> to mark a curve of equilibria of a dynamical system. Use it to display a nullcline that consists of equilibrium points along a curve (for example in a bifurcation diagram or in a phase plane) while making the stability visually apparent. The component accepts the full set of <curve> attributes, including spline through points and flipFunction for swapping the role of the variables.

Attributes and Properties

Attributes for <equilibriumCurve>

Number display (5)
avoidScientificNotation

boolean. Default value: false. Whether to render numbers in full decimal form rather than scientific notation.

displayDecimals

integer. Default value: 2. Number of decimal places to display when rendering this number.

displayDigits

integer. Default value: 3. Number of significant digits to display when rendering this number.

displaySmallAsZero

number. Default value: 1e-14. Threshold below which numbers are displayed as zero.

padZeros

boolean. Default value: false. Whether to pad displayed numbers with trailing zeros to fill the requested digits/decimals.

Labels (1)
labelIsName

boolean. Default value: false. Whether to use this component's name as its rendered label.

Other (21)
applyStyleToLabel

boolean. Default value: false. Whether to apply this component's selected style to its label.

draggable

boolean. Default value: true. Whether the curve can be dragged on a graph.

extrapolateBackward

boolean. Default value: false. Whether to extrapolate the curve before its first defined point.

extrapolateForward

boolean. Default value: false. Whether to extrapolate the curve beyond its last defined point.

fillOpacity

number. Opacity of fills, 0 to 1.

flipFunction

boolean. Default value: false. Whether to swap the function and its argument (i.e., reflect across y=x).

labelPosition

keyword. Position of the curve's label relative to the curve.

ValueDescription
upperRight (default)Place the label above and to the right of the curve.
upperLeftPlace the label above and to the left of the curve.
lowerRightPlace the label below and to the right of the curve.
lowerLeftPlace the label below and to the left of the curve.
topPlace the label directly above the curve.
bottomPlace the label directly below the curve.
leftPlace the label directly to the left of the curve.
rightPlace the label directly to the right of the curve.
layer

integer. Default value: 0. Z-order layer index used to stack graphical components (higher values render on top).

lineWidth

number. Stroke width for lines, in pixels.

nearestPointAsCurve

boolean. Default value: false. Whether nearest-point queries should treat this as a curve in the plane rather than a graph y = f(x).

numDiscretizationPoints

number. Default value: 1000. Number of points used when discretizing the curve for rendering.

parMax

math. Maximum value of the curve's parameter (for parametric curves).

parMin

math. Minimum value of the curve's parameter (for parametric curves).

periodic

boolean. Default value: false. Whether the curve is treated as periodic when interpolating between control points.

showCoordsWhenDragging

boolean. Default value: true. Whether to show coordinate labels while dragging the curve.

splineForm

keyword. Form of spline used to interpolate between control points.

ValueDescription
centripetal (default)Centripetal Catmull-Rom spline (avoids self-intersection at sharp turns).
uniformUniform Catmull-Rom spline with evenly spaced parameterization.
splineTension

number. Default value: 0.8. Tension parameter used when fitting a spline through control points.

stable

boolean. Default value: true. Whether the equilibrium is stable (rendered solid) or unstable (rendered dashed).

boolean. Default value: false. Whether the user can toggle the stability of this equilibrium by clicking it.

through

pointList. Points the interpolated curve passes through.

variable

_variableName. Default value: \(x\). Name of the curve's parameter or independent variable.

Common to all components (9)
copy

reference. Create an independent copy of another component by reference. Enter a references a $name.

disabled

boolean. Default value: false. Whether this component is disabled and cannot be interacted with.

extend

reference. Extend another component by reference, inheriting its children and attributes. Enter a reference as $name.

fixed

boolean. Default value: false. Whether this component's value is fixed and cannot be modified.

fixLocation

boolean. Default value: false. Whether this component's location is fixed (preventing it from being moved while still allowing other modifications).

hide

boolean. Default value: false. Whether to hide this component from the rendered output.

isResponse

boolean. Default value: false. Whether this component is treated as a response for the purposes of assessment.

name

text. The name used to reference this component from elsewhere in the document.

styleNumber

integer. Default value: 1. The style number used to select this component's visual styling from the available style definitions.

Properties for <equilibriumCurve name="e">

Number display (5)
$e.avoidScientificNotation

boolean. Whether to render numbers in full decimal form rather than scientific notation.

$e.displayDecimals

integer. Number of decimal places to display when rendering this number.

$e.displayDigits

integer. Number of significant digits to display when rendering this number.

$e.displaySmallAsZero

number. Threshold below which numbers are displayed as zero.

$e.padZeros

boolean. Whether to pad displayed numbers with trailing zeros to fill the requested digits/decimals.

Labels (2)
$e.label

label. The label rendered with this component.

$e.labelIsName

boolean. Whether to use this component's name as its rendered label.

Other (38)
$e.applyStyleToLabel

boolean. Whether to apply this component's selected style to its label.

$e.controlPoints

[ math ]. The Bezier control points (vertex + offset) for each through-point.

$e.controlVectors

[ math ]. The Bezier control vectors at each through-point.

$e.curvatureChangePoints

[ number ]. Points where the curve's curvature changes sign (inflection points).

$e.disabled

boolean. Whether this component is disabled and cannot be interacted with.

$e.draggable

boolean. Whether the curve can be dragged on a graph.

$e.extrapolateBackward

boolean. Whether to extrapolate the curve before its first defined point.

$e.extrapolateBackwardMode

text. The extrapolation style used before the first through-point (e.g., 'line', 'parabolaHorizontal', 'parabolaVertical').

$e.extrapolateForward

boolean. Whether to extrapolate the curve beyond its last defined point.

$e.extrapolateForwardMode

text. The extrapolation style used beyond the last through-point (e.g., 'line', 'parabolaHorizontal', 'parabolaVertical').

$e.f

function. The first component function of the curve as a function of its parameter.

$e.fixed

boolean. Whether this component's value is fixed and cannot be modified.

$e.fixLocation

boolean. Whether this component's location is fixed (preventing it from being moved while still allowing other modifications).

$e.flipFunction

boolean. Whether to swap the function and its argument (i.e., reflect across y=x).

$e.fs

[ function ]. The component functions of the curve as functions of its parameter.

$e.hidden

boolean. Whether this component is hidden from the rendered output.

$e.hiddenControls

[ boolean ]. Whether each control vector is currently hidden.

$e.labelPosition

text. Position of the curve's label relative to the curve.

$e.layer

integer. Z-order layer index used to stack graphical components (higher values render on top).

$e.numCurvatureChangePoints

integer. The number of points where the curve's curvature changes sign.

$e.numDimensions

number. Number of dimensions the curve lives in.

$e.numDiscretizationPoints

number. Number of points used when discretizing the curve for rendering.

$e.numXCriticalPoints

integer. The number of x-critical points (horizontal tangents) on the curve.

$e.numYCriticalPoints

integer. The number of y-critical points (vertical tangents) on the curve.

$e.parMax

number. Maximum value of the curve's parameter.

$e.parMin

number. Minimum value of the curve's parameter.

$e.periodic

boolean. Whether the curve is treated as periodic when interpolating between control points.

$e.showCoordsWhenDragging

boolean. Whether to show coordinate labels while dragging the curve.

$e.splineForm

text. Form of spline used to interpolate between control points.

$e.splineTension

number. Tension parameter used when fitting a spline through control points.

$e.stable

boolean. Whether the equilibrium is stable (rendered solid) or unstable (rendered dashed).

$e.styleDescription

text. A textual description of the curve's style.

$e.styleDescriptionWithNoun

text. Style description including the word "curve".

$e.switchable

boolean. Whether the user can toggle the stability of this equilibrium by clicking it.

$e.throughPoints

[ math ]. Points the curve is constrained to pass through.

$e.vectorControlDirections

[ text ]. Direction symmetry of each control vector pair.

$e.xCriticalPoints

[ number ]. The x-critical points (horizontal tangents) on the curve.

$e.yCriticalPoints

[ number ]. The y-critical points (vertical tangents) on the curve.

Common to all components (4)
$e.doenetML

text. The DoenetML source code that produced this component.

$e.hide

boolean. Whether to hide this component from the rendered output.

$e.isResponse

boolean. Whether this component is treated as a response for the purposes of assessment.

$e.styleNumber

integer. The style number used to select this component's visual styling from the available style definitions.

Examples

Example: Stable and unstable equilibrium curves

Two spline curves of equilibria; the right curve is drawn solid (stable) and the left is dashed (unstable). The stable attribute defaults to true; setting it to false switches the rendering to dashed.


Example: Sketching a saddle-node bifurcation diagram

A pair of <equilibriumCurve> components sketches the upper (stable) and lower (unstable) branches of a saddle-node bifurcation diagram for x˙=rx2\dot x = r - x^2.

Attribute Examples

Attribute Example: switchable

When switchable is set, clicking the curve toggles its stable state and the solid/dashed rendering. This supports interactive classification of nullclines in phase-plane exercises.