# Nakafa Framework: LLM
URL: /en/subject/high-school/12/mathematics/function-transformation/vertical-dilation
Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/high-school/12/mathematics/function-transformation/vertical-dilation/en.mdx
Output docs content for large language models.
---
export const metadata = {
  title: "Vertical Dilation",
  description: "Master vertical dilation of functions with clear examples. Learn how to stretch or compress graphs vertically using scale factors and apply transformations.",
  authors: [{ name: "Nabil Akbarazzima Fatih" }],
  date: "05/26/2025",
  subject: "Function Transformation",
};
import { getColor } from "@repo/design-system/lib/color";
import { LineEquation } from "@repo/design-system/components/contents/line-equation";
## Basic Concepts of Vertical Dilation
Vertical dilation is a geometric transformation that changes the size of a function graph vertically, like stretching or compressing a rubber band up and down. Imagine pulling a photo with both hands, one above and one below, then stretching or compressing it vertically without changing the width of the photo.
If we have a function , then vertical dilation produces a new function  where  is the scale factor that determines how much the vertical size changes.
### Rules of Vertical Dilation
For any function , vertical dilation is defined as:
Where  is the scale factor that affects the transformation:
- If , the graph is stretched vertically (enlarged)
- If , the graph is compressed vertically (reduced)
- If , the graph does not change
- If , the graph undergoes reflection as well as dilation
## Visualization of Vertical Dilation
Let's see how vertical dilation works on the quadratic function  with various scale factors.
Vertical Dilation of Quadratic Function >}
  description="Notice how the graph is stretched or compressed vertically with different scale factors."
  showZAxis={false}
  cameraPosition={[12, 8, 12]}
  data={[
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: x * x, z: 0 };
      }),
      color: getColor("PURPLE"),
      labels: [{ text: "f(x) = x²", offset: [3.5, 1, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: 2 * x * x, z: 0 };
      }),
      color: getColor("ORANGE"),
      labels: [{ text: "g(x) = 2x²", offset: [3.5, 2, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: 0.5 * x * x, z: 0 };
      }),
      color: getColor("SKY"),
      labels: [{ text: "h(x) = 0.5x²", offset: [3.5, 0.5, 0] }],
      showPoints: false,
    },
  ]}
/>
From the visualization above, we can observe:
- The original function  as reference
- Function  is vertically stretched by factor 2
- Function  is vertically compressed by factor 0.5
- All graphs have the same vertex at 
## Vertical Dilation on Linear Functions
Now let's apply the same concept to the linear function .
Vertical Dilation of Linear Function >}
  description="The dilated line has slope that changes according to the scale factor."
  showZAxis={false}
  cameraPosition={[10, 6, 10]}
  data={[
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        return { x, y: x + 1, z: 0 };
      }),
      color: getColor("AMBER"),
      labels: [{ text: "f(x) = x + 1", offset: [2, 1.5, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        return { x, y: 3 * (x + 1), z: 0 };
      }),
      color: getColor("TEAL"),
      labels: [{ text: "g(x) = 3(x + 1)", offset: [1, 2, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        return { x, y: 0.5 * (x + 1), z: 0 };
      }),
      color: getColor("ROSE"),
      labels: [{ text: "h(x) = 0.5(x + 1)", offset: [2, 0.5, 0] }],
      showPoints: false,
    },
  ]}
/>
Notice that:
- The original function  has slope 1
- Function  has slope 3 (stretched)
- Function  has slope 0.5 (compressed)
- All lines still intersect the y-axis, but at different points
## Important Properties of Vertical Dilation
### Effect on Coordinate Points
If point  is on the graph of , then the corresponding point on the graph of  is .
### Domain and Range
- **Domain**: Does not change after vertical dilation
- **Range**: Changes according to the scale factor 
If the range of the original function is , then the range after vertical dilation with factor  becomes .
### Axis Intercepts
- **x-intercept**: Does not change (except if )
- **y-intercept**: Changes according to the scale factor
## Application Examples
### Exponential Function
Let's look at vertical dilation on the exponential function .
Vertical Dilation of Exponential Function >}
  description="The exponential curve undergoes height changes according to the scale factor."
  showZAxis={false}
  cameraPosition={[8, 6, 8]}
  data={[
    {
      points: Array.from({ length: 31 }, (_, i) => {
        const x = (i - 15) * 0.3;
        return { x, y: Math.pow(2, x), z: 0 };
      }),
      color: getColor("INDIGO"),
      labels: [{ text: "f(x) = 2^x", offset: [2, 1, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 31 }, (_, i) => {
        const x = (i - 15) * 0.3;
        return { x, y: 2 * Math.pow(2, x), z: 0 };
      }),
      color: getColor("EMERALD"),
      labels: [{ text: "g(x) = 2 · 2^x", offset: [1, 2, 0] }],
      showPoints: false,
    },
  ]}
/>
For exponential functions:
- The horizontal asymptote remains at  for both functions
- The y-intercept changes from  to 
- The growth rate of the function increases according to the scale factor
## Vertical Dilation with Negative Factor
Let's see what happens when the scale factor is negative.
Vertical Dilation with Negative Factor >}
  description="Negative scale factor causes reflection as well as dilation."
  showZAxis={false}
  cameraPosition={[10, 6, 10]}
  data={[
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: x * x, z: 0 };
      }),
      color: getColor("CYAN"),
      labels: [{ text: "f(x) = x²", offset: [1, 1, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: -2 * x * x, z: 0 };
      }),
      color: getColor("PINK"),
      labels: [{ text: "g(x) = -2x²", offset: [1, -2, 0] }],
      showPoints: false,
    },
  ]}
/>
When the scale factor is negative:
- The graph undergoes reflection across the x-axis
- Simultaneously undergoes dilation according to the absolute value of the scale factor
- A parabola that opens upward becomes one that opens downward
## Exercises
1. Given the function . Determine the equation of the function resulting from vertical dilation with scale factor 3.
2. If the graph of function  undergoes vertical dilation with factor , determine:
   - The equation of the resulting dilated function
   - The range of the function after dilation
3. Function  undergoes vertical dilation with factor -1. Determine the vertex of the resulting dilated function.
### Answer Key
1. Vertical dilation with factor 3: 
   Function  and Its Dilation Result>}
     description="The original parabola is vertically stretched by factor 3 producing a taller parabola."
     showZAxis={false}
     cameraPosition={[12, 8, 12]}
     data={[
       {
         points: Array.from({ length: 41 }, (_, i) => {
           const x = (i - 20) * 0.25;
           return { x, y: x * x - 4 * x + 3, z: 0 };
         }),
         color: getColor("PURPLE"),
         labels: [{ text: "f(x) = x² - 4x + 3", offset: [1, 1, 0] }],
         showPoints: false,
       },
       {
         points: Array.from({ length: 41 }, (_, i) => {
           const x = (i - 20) * 0.25;
           return { x, y: 3 * (x * x - 4 * x + 3), z: 0 };
         }),
         color: getColor("ORANGE"),
         labels: [{ text: "f'(x) = 3x² - 12x + 9", offset: [1, -3, 0] }],
         showPoints: false,
       },
     ]}
   />
2. Equation of the resulting dilated function:
    
   - Vertical dilation: 
   - Range after dilation:  becomes  but with smaller maximum values
   Visualization:
   Function  and Its Dilation Result>}
     description="The square root curve is vertically compressed by factor 0.5 producing a lower curve."
     showZAxis={false}
     cameraPosition={[8, 6, 8]}
     data={[
       {
         points: Array.from({ length: 21 }, (_, i) => {
           const x = i * 0.25;
           return { x, y: Math.sqrt(x), z: 0 };
         }),
         color: getColor("VIOLET"),
         labels: [{ text: "g(x) = √x", offset: [2, 1, 0] }],
         showPoints: false,
       },
       {
         points: Array.from({ length: 21 }, (_, i) => {
           const x = i * 0.25;
           return { x, y: 0.5 * Math.sqrt(x), z: 0 };
         }),
         color: getColor("TEAL"),
         labels: [{ text: "g'(x) = 0.5√x", offset: [2, 0.5, 0] }],
         showPoints: false,
       },
     ]}
   />
3. The original function  has its vertex at .
   After vertical dilation with factor -1: , the vertex becomes .
   Function  and Its Dilation Result>}
     description="The absolute value function undergoes reflection and dilation with factor -1."
     showZAxis={false}
     cameraPosition={[10, 6, 10]}
     data={[
       {
         points: Array.from({ length: 41 }, (_, i) => {
           const x = (i - 20) * 0.25;
           return { x, y: Math.abs(x - 1) + 2, z: 0 };
         }),
         color: getColor("INDIGO"),
         labels: [{ text: "h(x) = |x - 1| + 2", offset: [1, -1.5, 0] }],
         showPoints: false,
       },
       {
         points: Array.from({ length: 41 }, (_, i) => {
           const x = (i - 20) * 0.25;
           return { x, y: -(Math.abs(x - 1) + 2), z: 0 };
         }),
         color: getColor("EMERALD"),
         labels: [{ text: "h'(x) = -|x - 1| - 2", offset: [1, 1.5, 0] }],
         showPoints: false,
       },
     ]}
   />