Stretching, Shrinking, and Reflecting Graphs
Multiplying a parent function changes its size and orientation: \(a\cdot f(x)\) rescales every output, and a negative factor flips the graph — a reflection.
By the end you'll be able to read \(a\cdot f(x)\) and \(f(bx)\) and say, without plotting a single point, whether the graph stretches, shrinks, and/or reflects — and by how much.
Predict: what does \(a=-2\) do to the graph? Set \(a=-2\) on the slider and check.
The faint dotted V is the parent parent function \(f(x)=|x|\). Drag a to plot \(a\cdot f(x)\) and watch the marked point at x = 1 track \(a\) exactly — its height is always \(a\cdot f(1) = a\). Push \(|a|\) above 1 to stretch, below 1 to shrink, and drag \(a\) negative to see the reflection emerge.
a = 2.0: g(x) = 2.0·|x|; point (1, 2.0); opens upward, same orientation as the parent; stretched ×2.0 vs f(x) = |x|.
Where translations slide a graph, scalings resize it and reflections flip it — multiplication is the tool behind both, and the sign of the factor decides which one you get.
Picture the faint parent V, \(f(x)=|x|\), sitting at the origin. Multiplying the whole function by \(a\) grabs every point and pulls it toward or away from the x-axis: \(a=3\) triples every height (a steeper, narrower-looking V); \(a=0.25\) squashes every height to a quarter (a flatter V). Once \(a\) crosses zero into negative territory, every point that was above the x-axis lands the same distance below it — the V turns upside down. That's a reflection across the x-axis, riding along for free whenever \(a<0\).
Starting from a parent function \(f(x)\), multiplication does two different jobs depending on where it lands:
- Vertical stretch/shrink: \(a\cdot f(x)\) multiplies every OUTPUT by \(a\). If \(|a| > 1\) the graph stretches vertically (taller); if \(0 < |a| < 1\) it shrinks (flatter). Here \(|a|\) is the size of the factor, separate from its sign.
- Horizontal stretch/shrink: \(f(bx)\) multiplies the INPUT before \(f\) sees it. This one runs backwards from intuition: \(|b|>1\) compresses the graph horizontally, and \(0<|b|<1\) stretches it — because \(f(2x)\) reaches the parent's behavior in half the horizontal distance.
- Reflection: a negative factor flips the graph across an axis. \(-f(x)\) negates outputs, reflecting across the x-axis; \(f(-x)\) negates inputs, reflecting across the y-axis.
An audio engineer scales a waveform's amplitude by a gain factor: turning the gain up (\(|a|>1\)) makes it louder (taller peaks), turning it down (\(0<|a|<1\)) makes it quieter, and flipping the gain negative inverts the signal — the exact same math as reflecting \(f(x)\) across the x-axis.
Let the parent be \(f(x)=|x|\), and graph \(g(x)=-2|x|\). The factor is \(a=-2\): split it into size (2) and sign (negative). Vertical stretch by 2: every output doubles, so the parent point \((1,1)\) rises in size to \((1,2)\). Reflection by the negative: outputs negate, so \((1,2)\) becomes \((1,-2)\), flipping the V to open downward. Confirm: \(g(1)=-2|1|=-2\) and \(g(-3)=-2|-3|=-6\) — a downward V, twice as steep as the parent.
Same parent, different factor: \(h(x) = -0.5|x|\). \(|a| = 0.5\), which is less than 1, so the graph shrinks toward the x-axis; and \(a\) is negative, so it's also reflected across the x-axis. Now finish it: \(h(2) = -0.5\cdot|2| = -0.5\cdot 2 =\) ____
Reveal the answer
\(h(2) = -0.5 \cdot 2 = \) -1. Set \(a = -0.5\) on the slider above and check the tracked point — at \(x=1\) it should read \((1, -0.5)\), half the parent's height and flipped below the axis.
More info — why f(bx) runs backwards from a·f(x)
\(a\cdot f(x)\) acts on the function's output, so bigger \(a\) means bigger outputs — intuitive. But \(f(bx)\) acts on the INPUT before \(f\) ever sees it: to reach the same output the parent reached at some \(x\), \(f(bx)\) only needs an input of \(x/b\). If \(b=2\), you get there in half the horizontal distance, so the whole graph looks squeezed toward the y-axis even though \(b>1\). This is the same shift-and-scale toolkit you'll use again once shifts are combined with scaling — see the Math is Fun link in Dive deeper for a live graph of both rules side by side.
Check your understanding
For \(g(x) = 4|x|\), what is \(g(3)\)?
How does \(h(x) = \dfrac{1}{4}f(x)\) compare to the parent \(f(x)\)?
Given \(g(x) = -f(x)\) and \(h(x) = f(-x)\), which statement is correct?
Compare \(y = -3\cdot f(x-1)\) to \(y = f(x-1)\).
Recap
- \(a\cdot f(x)\) rescales OUTPUTS: \(|a|>1\) stretches vertically (taller); \(0<|a|<1\) shrinks (flatter).
- \(f(bx)\) rescales INPUTS and runs backwards: \(|b|>1\) compresses horizontally; \(0<|b|<1\) stretches horizontally.
- A negative factor reflects the graph: \(-f(x)\) flips across the x-axis (outputs negate); \(f(-x)\) flips across the y-axis (inputs negate).
- A negative \(a\) both scales by \(|a|\) AND reflects — don't lose the flip while tracking the size.
Dive deeper
- Khan Academy — Transformations of Functions (Algebra 2) Practice vertical and horizontal stretches and reflections on graded problems.
- Math is Fun — Function Transformations Manipulate stretch, shrink, and reflection factors on a live graph.
- OpenStax College Algebra 2e — Transformation of Functions Read the full rules for scaling and reflecting with worked examples.
Sources
- Stretching, Shrinking, and Reflecting Graphs