is an option for DSolve that specifies whether singular solutions should be returned along with the general solution for a nonlinear ordinary differential equation.
IncludeSingularSolutions
is an option for DSolve that specifies whether singular solutions should be returned along with the general solution for a nonlinear ordinary differential equation.
Details
- Singular solutions are also known as envelope solutions or equilibrium solutions.
- Singular solutions cannot be obtained by assigning finite numerical values to the arbitrary constants in the general solution for a nonlinear differential equation. Instead, they can be obtained by constructing the envelope of the family of curves represented by the general solution.
- For example, if the general solution of a first-order ODE is given by the equation
, where
is an arbitrary constant, then the singular solutions can be obtained by solving the envelope equations
and
. - The following illustration shows the singular solution (envelope) for a nonlinear ODE whose general solution is a family of straight lines.
- Singular solutions are closely related to physical phenomena such as caustics and wavefronts in optics that can be explained using envelope constructions.
- Possible settings for IncludeSingularSolutions are:
-
False return only general solutions depending on constants C[i] True return both general and singular solutions
Examples
open all close allBasic Examples (2)
By default, DSolve returns the general solution for this ODE:
DSolve[y'[x] ^ 2 - y'[x] * x + y[x] == 0, y[x], x]Use IncludeSingularSolutions to compute singular solutions along with the general solution:
DSolve[y'[x] ^ 2 - y'[x] * x + y[x] == 0, y[x], x, IncludeSingularSolutions -> True]Visualize the general solution along with the envelope formed by this family:
Plot[Evaluate[{Table[x c - c^2, {c, -3, 3, 1 / 4}], x ^ 2 / 4}], {x, -3, 3}, PlotRange -> {-3, 3}]Find the general solution of a logistic equation:
DSolve[y'[x] == y[x] (1 - y[x]), y[x], x]The singular solutions in this case are the "equilibrium" solutions y=0 and y=1:
DSolve[y'[x] == y[x] (1 - y[x]), y[x], x, IncludeSingularSolutions -> True]Visualize the general solution along with the equilibrium solutions:
Plot[{Table[(E^x/E^x + E^c), {c, -8, 8}], 1, 0}//Evaluate, {x, -12, 12}, PlotRange -> All]Properties & Relations (1)
Obtain the general solution of a nonlinear ODE:
DSolve[y[x] == x * y'[x] + y'[x] ^ 2 - 3y'[x], y[x], x]Construct the envelope for the family of curves defined by the general solution:
sol = y[x] == (y[x] /. %[[1]])Eliminate[{sol, D[sol[[2]], C[1]] == 0}, C[1]]Solve[%, y[x]]Obtain the same result using IncludeSingularSolutions:
DSolve[y[x] == x * y'[x] + y'[x] ^ 2 - 3y'[x], y[x], x, IncludeSingularSolutions -> True]Visualize the general solution along with the envelope formed by this family:
Plot[Evaluate[{Table[-3 c + x c + c ^ 2, {c, -3, 3, 1 / 4}], (1/4) (-9 + 6 x - x^2)}], {x, -4, 7}, PlotRange -> {-3, 1}]See Also
History
Text
Wolfram Research (2022), IncludeSingularSolutions, Wolfram Language function, https://reference.wolfram.com/language/ref/IncludeSingularSolutions.html.
CMS
Wolfram Language. 2022. "IncludeSingularSolutions." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/IncludeSingularSolutions.html.
APA
Wolfram Language. (2022). IncludeSingularSolutions. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/IncludeSingularSolutions.html
BibTeX
@misc{reference.wolfram_2026_includesingularsolutions, author="Wolfram Research", title="{IncludeSingularSolutions}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/IncludeSingularSolutions.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_includesingularsolutions, organization={Wolfram Research}, title={IncludeSingularSolutions}, year={2022}, url={https://reference.wolfram.com/language/ref/IncludeSingularSolutions.html}, note=[Accessed: 12-June-2026]}