Working Through Domain And Range Problems Without Losing Your Mind
I used to avoid finding domains and ranges until the last minute before tests. Then I sat down and worked through enough practice problems to recognize the patterns. Here is what I actually did and how you can do it too. The quickest way to find the domain is to look for things that break math. Division by zero, square roots of negative numbers, and logarithms of non-positive values are the usual suspects. The range is harder because it requires you to think about what outputs are actually possible, not just what the formula allows. My approach starts with the domain. I write down every restriction the function has, solve each one separately, then combine them using intersection. For the range, I graph the function if it is simple enough, or I use algebraic manipulation for more complex cases.
One edge case that tripped me up repeatedly involved piecewise functions where the domain restrictions overlapped. I was working with a function defined as f(x) = x^2 for x less than 0 and f(x) = sqrt(x) for x greater than or equal to 0. The mistake I kept making was treating the two pieces independently and missing that the range of the first piece was positive values only, while the second piece gave non-negative outputs. The correct range turned out to be all non-negative real numbers. I started drawing separate number lines for each piece before combining them, which eliminated that error entirely. For rational functions like f(x) = (2x + 1)/(x - 3), the domain excludes only x = 3. Finding the range requires solving for x in terms of y. You set y = (2x + 1)/(x - 3), multiply both sides by x - 3, rearrange to isolate x, and find that x = (3y + 1)/(y - 2). This shows y cannot equal 2, so the range is all real numbers except 2. I always verify by checking what happens as x approaches the excluded value from both sides. The function approaches infinity on one side and negative infinity on the other, confirming the horizontal asymptote at y = 2 is never reached. Quadratic functions follow a different pattern. For f(x) = x^2 - 4x + 3, the domain is all real numbers. To find the range, I complete the square: f(x) = (x - 2)^2 - 1. The vertex is at (2, -1), and since the parabola opens upward, the minimum output is -1. The range is all real numbers greater than or equal to -1. I used to forget whether to include the endpoint or not, but writing the inequality with the proper symbol each time locked it in.
Radical functions require checking the expression under the root. For f(x) = sqrt(5 - 2x), I set 5 - 2x greater than or equal to 0 and solve to get x less than or equal to 2.5. That is the domain. For the range, since square roots only produce non-negative outputs, the range is all real numbers greater than or equal to 0. I sometimes second-guessed whether negative outputs were possible, but the principal square root function by definition returns only non-negative values. Exponential functions like f(x) = 3^x have domain all real numbers and range all positive real numbers. The graph never touches the x-axis no matter how far left you go. I learned this by plotting several points and watching the curve approach but never reach zero. The same logic applies to any exponential function with a positive base. Logarithmic functions flip the restriction. For f(x) = log(x + 2), I need x + 2 to be strictly greater than 0, so x must be greater than -2. The domain is x greater than -2. The range is all real numbers because logarithms can produce any output value. I verified this by testing large positive and negative inputs and confirming the outputs covered the full number line.
Get the Full Details
When you combine functions through composition, both domain and range change. For f(g(x)) where g(x) = sqrt(x) and f(x) = 1/x, the domain of g is x greater than or equal to 0, but f introduces a new restriction: g(x) cannot equal 0. This means x cannot be 0. The domain becomes x greater than 0. The range requires tracing outputs from g through f, which gives all positive real numbers. I always track restrictions through each layer instead of trying to handle everything at once. Trigonometric functions introduce periodicity and bounded outputs. For f(x) = sin(x), the domain is all real numbers and the range is [-1, 1]. For f(x) = tan(x), the domain excludes odd multiples of pi/2 because cosine equals zero there. The range is all real numbers. I memorized the unit circle values early on, which made evaluating these functions significantly faster during practice sessions. The most common mistake I see is confusing domain restrictions with range restrictions. Students will write x cannot equal 3 for a rational function and then somehow conclude the range also excludes 3. These are independent questions. The domain asks what inputs work. The range asks what outputs are possible. Keeping them separate in your notes prevents this confusion.
Another pitfall involves absolute value functions. For f(x) = |x - 2|, the domain is all real numbers. The range is all real numbers greater than or equal to 0 because absolute value never produces negatives. I used to incorrectly include negative outputs until I remembered the V-shape of the graph and its vertex at (2, 0). For practice, I recommend starting with linear and quadratic functions, then moving to rational and radical functions, and finally tackling piecewise and composite functions. Work through at least ten problems of each type before mixing them together. The pattern recognition that comes from repetition makes exam problems feel routine rather than surprising. Here is a set of problems to try on your own:
Find the domain and range of f(x) = 1/(x^2 - 4). Find the domain and range of f(x) = sqrt(x^2 - 9). Find the domain and range of f(x) = log(2x - 6).

Find the domain and range of f(x) = 2|x + 1| - 3. Find the domain and range of f(x) = (x + 1)/(x^2 - 1). The answers follow the same methods outlined above. Check each restriction carefully and verify your range by considering the behavior of the function at its boundaries and critical points.