The domain tells what goes in. The range tells what comes out. Every function transforms its inputs into outputs, but not every number appears as a result. The squaring function never produces a negative. The sine function never exceeds one. The reciprocal function never reaches zero.
The range is the complete set of output values — every number the function actually produces as the input varies across the entire domain. Finding it requires understanding not just what the function does at particular points, but what it can and cannot do overall.
What is Range
The range of a function is the set of all output values the function produces. As the input varies across the entire domain, the range collects every resulting output.
Consider f(x)=x2 with domain (−∞,∞). Squaring any real number produces a non-negative result: 0,1,4,9,0.25, and so on. Negative outputs never appear. The range is [0,∞).
Consider g(x)=2x+1 with domain (−∞,∞). As x takes every real value, 2x+1 also takes every real value — there is no output this linear function cannot reach. The range is (−∞,∞).
The range depends on both the rule and the domain. The same formula with different domains can produce different ranges. If f(x)=x2 is restricted to domain [1,3], the outputs span from 12=1 to 32=9, giving range [1,9].
Range answers the question: what values can this function actually produce? It is the complete collection of outputs, nothing more and nothing less.
Expressing Range
Range is expressed using the same notations that describe domain — the difference is that range describes vertical extent (outputs) rather than horizontal extent (inputs).
Interval notation captures continuous ranges. The range [0,∞) means all non-negative real numbers. The range (−1,1) means all numbers strictly between −1 and 1. Brackets include endpoints; parentheses exclude them.
Set-builder notation describes the range by a property. The set {y∣y≥0} is equivalent to [0,∞). This notation handles complex conditions: {y∣y=0} describes all nonzero real numbers.
Inequality notation states the condition directly: y≥−3 or 0<y≤5.
Union notation handles disconnected ranges. The range (−∞,−1]∪[1,∞) consists of all numbers at most −1 together with all numbers at least 1, excluding everything strictly between.
For functions with finitely many outputs, the range is a discrete set listed explicitly. If a function takes only the values 2, 5, and 7, the range is {2,5,7}.
Range vs Codomain
The codomain is the set where outputs are declared to live. The range is the set of outputs actually produced. The range is always a subset of the codomain, but they need not be equal.
If a function f:R→R is defined by f(x)=x2, the codomain is all real numbers — that is where outputs are said to land. But the range is only [0,∞), because negative numbers never actually appear as outputs.
In elementary algebra, the codomain is usually taken to be all real numbers by default, and the focus falls on the range. The distinction becomes important in abstract mathematics, where functions are defined precisely as mappings from domain to codomain.
A function is onto (or surjective) when every element of the codomain is actually achieved — that is, when the range equals the codomain. The function f(x)=x3 from R to R is onto: every real number is the cube of some real number. The function f(x)=x2 from R to R is not onto: negative numbers are in the codomain but not in the range.
Finding Range Algebraically
One algebraic method for finding range reverses the input-output relationship. Write y=f(x), then solve for x in terms of y. The values of y for which this is possible — where a real solution x exists in the domain — form the range.
For f(x)=2x+5, write y=2x+5 and solve:
x=2y−5
This produces a real x for every real y. The range is (−∞,∞).
For f(x)=x2, write y=x2 and solve:
x=±y
This produces real solutions only when y≥0. The range is [0,∞).
For f(x)=x−31, write y=x−31 and solve:
x−3=y1
x=3+y1
This requires y=0. The range is (−∞,0)∪(0,∞).
The method works well for rational, quadratic, and simple radical functions. For more complex functions, other approaches may be needed.
Finding Range by Analyzing Behavior
Understanding how a function behaves — its extrema, its trends, its limits — reveals its range without explicit algebraic solving.
A function with an absolute minimum m and no upper bound has range [m,∞). A function with an absolute maximum M and no lower bound has range (−∞,M]. A function bounded both above and below has range contained in some interval [m,M].
Monotonic functions — those that only increase or only decrease — are easier to analyze. A strictly increasing function on domain [a,b] has range [f(a),f(b)]. A strictly decreasing function on [a,b] has range [f(b),f(a)].
End behavior determines whether the range extends to infinity. If f(x)→∞ as x→∞, the range has no upper bound. If f(x)→−∞ as x→−∞, the range has no lower bound.
Horizontal asymptotes suggest range boundaries. If f(x)→2 as x→∞, the value 2 is approached but may or may not be achieved. Whether 2 is in the range requires further analysis — checking if any x actually produces f(x)=2.
Finding Range from Graph
When a function is presented graphically, the range is read as the vertical extent — the set of y-values that the graph actually reaches.
Trace the graph and observe: what is the lowest point? What is the highest point? Does the graph extend upward or downward without bound?
Solid dots at endpoints indicate included values. If the highest point on the graph is a solid dot at y=5, then 5 is in the range. Use a bracket.
Open dots indicate excluded values. If the graph approaches but never reaches y=5, the range excludes 5. Use a parenthesis.
Horizontal asymptotes mark values the function approaches but typically does not achieve. A graph approaching y=0 as x→∞ suggests 0 is a boundary of the range, likely excluded.
Gaps in the graph vertically appear as values of y with no corresponding point on the curve. If no point on the graph has y-coordinate 3, then 3 is not in the range.
For functions on restricted domains, check only the portion of the graph over that domain. The range may be smaller than the range on the natural domain.
Range of Common Function Types
Each function family has characteristic range patterns.
Linear functions f(x)=mx+b with m=0 have range (−∞,∞). The line extends infinitely up and down. Constant functions f(x)=c have range {c}, a single value.
Quadratic functions f(x)=ax2+bx+c have range [k,∞) when a>0 and (−∞,k] when a<0, where k is the y-coordinate of the vertex.
Absolute value functions f(x)=∣x∣ have range [0,∞). The output is never negative.
Square root functions f(x)=x have range [0,∞). Cube root functions f(x)=3x have range (−∞,∞).
Exponential functions f(x)=ax with a>0, a=1 have range (0,∞). Outputs are always positive but never zero.
Logarithmic functions f(x)=loga(x) have range (−∞,∞). Every real number is a possible output.
Sine and cosine have range [−1,1]. Tangent has range (−∞,∞).
These patterns provide quick answers for standard functions and anchor the analysis for transformed versions.
Effect of Transformations on Range
Transformations modify a function's graph, and vertical transformations directly affect the range.
Vertical translation shifts the range. If f(x) has range [a,b], then f(x)+k has range [a+k,b+k]. Adding 3 to a function shifts its entire range up by 3.
Vertical stretch and compression scale the range. If f(x) has range [a,b], then c⋅f(x) has range [ca,cb] when c>0, and [cb,ca] when c<0 (the interval reverses).
Vertical reflection flips the range. If f(x) has range [a,b], then −f(x) has range [−b,−a]. A function with range [0,∞) becomes a function with range (−∞,0].
Horizontal transformations — shifts, stretches, reflections in the y-axis — do not change the range directly. They change which x-values produce which outputs, but not the collection of outputs itself. A horizontal shift moves the graph left or right without altering its vertical extent.
Combining transformations requires tracking each effect. For g(x)=2f(x−3)+5, the range of f is first scaled by 2, then shifted up by 5. The horizontal shift by 3 does not affect the range.
Range from Context
In applications, the range carries physical meaning and may be constrained by real-world limits.
A function modeling height produces only non-negative outputs. A ball thrown upward cannot have negative height (assuming ground level is zero). The range is bounded below by 0 and above by the maximum height reached.
A function modeling population produces positive integers — or positive real numbers if continuous approximation is acceptable. Population cannot be negative, and zero means extinction.
Probabilities lie between 0 and 1 inclusive. A function giving probability as output has range contained in [0,1].
Percentages lie between 0 and 100. Temperatures may have physical lower bounds (absolute zero) or practical bounds from the context.
Context can also reveal the range conceptually. If C(x) represents the cost of producing x items and includes a fixed startup cost of \500,thentherangebeginsat500$ or higher, not at zero.
Interpreting the range means translating mathematical bounds into real-world meaning. "The range is [0,256]" might mean "the brightness level varies from completely dark to maximum intensity."
Range and Invertibility
The range of a function becomes the domain of its inverse, and the domain of a function becomes the range of its inverse. This swap is fundamental to understanding inverse functions.
If f(x)=x2 with domain [0,∞) has range [0,∞), then its inverse f−1(x)=x has domain [0,∞) and range [0,∞).
If g(x)=ex with domain (−∞,∞) has range (0,∞), then its inverse g−1(x)=ln(x) has domain (0,∞) and range (−∞,∞).
The swap is symmetric and complete. Every output of f is an input of f−1. Every input of f is an output of f−1.
When a function is not one-to-one on its natural domain, restricting the domain restricts the range as well. The function f(x)=x2 on (−∞,∞) has range [0,∞). Restricting to domain [0,∞) keeps the range as [0,∞). Restricting to domain [−3,0] changes the range to [0,9].
Understanding this relationship is essential for correctly defining and working with inverse functions.