# Nakafa Framework: LLM
URL: /en/subject/high-school/12/mathematics/function-transformation/horizontal-dilation
Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/high-school/12/mathematics/function-transformation/horizontal-dilation/en.mdx
Output docs content for large language models.
---
export const metadata = {
  title: "Horizontal Dilation",
  description: "Understand horizontal dilation in functions with clear examples. Learn how to stretch or compress graphs horizontally and apply these concepts to various functions.",
  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 Horizontal Dilation
Horizontal dilation is a geometric transformation that changes the size of a function graph horizontally, like pulling or compressing a rubber band left and right. Imagine holding a photo with both hands on the left and right sides, then stretching or compressing it horizontally without changing the height of the photo.
If we have a function , then horizontal dilation produces a new function  where  is the scale factor that determines how much the horizontal size changes.
### Rules of Horizontal Dilation
For any function , horizontal dilation is defined as:
Where  is the scale factor that affects the transformation:
- If , the graph is compressed horizontally (reduced)
- If , the graph is stretched horizontally (enlarged)
- If , the graph does not change
- If , the graph undergoes reflection as well as dilation
Note that the effect of horizontal dilation is counterintuitive: a larger scale factor actually compresses the graph.
## Visualization of Horizontal Dilation
Let's see how horizontal dilation works on the quadratic function  with various scale factors.
Horizontal Dilation of Quadratic Function >}
  description="Notice how the graph is compressed or stretched horizontally with different scale factors."
  showZAxis={false}
  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: [4, 2, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: (2 * x) * (2 * x), z: 0 };
      }),
      color: getColor("ORANGE"),
      labels: [{ text: "g(x) = (2x)²", offset: [4, 3, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: (0.5 * x) * (0.5 * x), z: 0 };
      }),
      color: getColor("SKY"),
      labels: [{ text: "h(x) = (0.5x)²", offset: [4, 1, 0] }],
      showPoints: false,
    },
  ]}
/>
From the visualization above, we can observe:
- The original function  as reference
- Function  is horizontally compressed by factor 2
- Function  is horizontally stretched by factor 0.5
- All graphs have the same vertex at 
## Horizontal Dilation on Linear Functions
Now let's apply the same concept to the linear function .
Horizontal Dilation of Linear Function >}
  description="The dilated line has slope that changes according to the scale factor."
  showZAxis={false}
  data={[
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        return { x, y: x + 2, z: 0 };
      }),
      color: getColor("AMBER"),
      labels: [{ text: "f(x) = x + 2", offset: [2, 0.5, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        return { x, y: (2 * x) + 2, z: 0 };
      }),
      color: getColor("TEAL"),
      labels: [{ text: "g(x) = 2x + 2", offset: [1, 1.5, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        return { x, y: (0.5 * x) + 2, z: 0 };
      }),
      color: getColor("ROSE"),
      labels: [{ text: "h(x) = 0.5x + 2", offset: [3, -0.5, 0] }],
      showPoints: false,
    },
  ]}
/>
Notice that:
- The original function  has slope 1
- Function  has slope 2 (horizontally compressed)
- Function  has slope 0.5 (horizontally stretched)
- All lines intersect the y-axis at the same point 
## Important Properties of Horizontal 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**: Changes according to the scale factor 
- **Range**: Does not change after horizontal dilation
If the domain of the original function is , then the domain after horizontal dilation with factor  becomes .
### Axis Intercepts
- **x-intercept**: Changes according to the scale factor
- **y-intercept**: Does not change
## Application Examples
### Exponential Function
Let's look at horizontal dilation on the exponential function .
Horizontal Dilation of Exponential Function >}
  description="The exponential curve undergoes width 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: Math.pow(2, 2 * x), z: 0 };
      }),
      color: getColor("EMERALD"),
      labels: [{ text: "g(x) = 2^(2x)", offset: [1, 2, 0] }],
      showPoints: false,
    },
  ]}
/>
For exponential functions:
- The horizontal asymptote remains at  for both functions
- The y-intercept remains the same at 
- The growth rate of the function changes according to the scale factor
## Horizontal Dilation with Negative Factor
Let's see what happens when the scale factor is negative.
Horizontal 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 + 1, z: 0 };
      }),
      color: getColor("CYAN"),
      labels: [{ text: "f(x) = x² + 1", offset: [2, 1, 0] }],
      showPoints: false,
    },
    {
      points: Array.from({ length: 41 }, (_, i) => {
        const x = (i - 20) * 0.25;
        return { x, y: (-2 * x) * (-2 * x) + 1, z: 0 };
      }),
      color: getColor("PINK"),
      labels: [{ text: "g(x) = (-2x)² + 1", offset: [3, 2, 0] }],
      showPoints: false,
    },
  ]}
/>
When the scale factor is negative:
- The graph undergoes reflection across the y-axis
- Simultaneously undergoes dilation according to the absolute value of the scale factor
- The graph shape remains the same because the quadratic function is symmetric
## Exercises
1. Given the function . Determine the equation of the function resulting from horizontal dilation with scale factor 3.
2. If the graph of function  undergoes horizontal dilation with factor , determine:
   - The equation of the resulting dilated function
   - The domain of the function after dilation
3. Function  undergoes horizontal dilation with factor -1. Determine the vertex of the resulting dilated function.
### Answer Key
1. Horizontal dilation with factor 3: 
   Function  and Its Dilation Result>}
     description="The original parabola is horizontally compressed by factor 3 producing a narrower 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 - 2 * x + 1, z: 0 };
         }),
         color: getColor("PURPLE"),
         labels: [{ text: "f(x) = x² - 2x + 1", offset: [4, 1, 0] }],
         showPoints: false,
       },
       {
         points: Array.from({ length: 41 }, (_, i) => {
           const x = (i - 20) * 0.25;
           return { x, y: 9 * x * x - 6 * x + 1, z: 0 };
         }),
         color: getColor("ORANGE"),
         labels: [{ text: "f'(x) = 9x² - 6x + 1", offset: [3, 2, 0] }],
         showPoints: false,
       },
     ]}
   />
2. Equation of the resulting dilated function:
    
   - Horizontal dilation: 
   - Domain after dilation:  becomes  (unchanged because the scale factor is positive)
   Visualization:
   Function  and Its Dilation Result>}
     description="The square root curve is horizontally stretched by factor 0.5 producing a wider curve."
     showZAxis={false}
     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: Math.sqrt(0.5 * x), z: 0 };
         }),
         color: getColor("TEAL"),
         labels: [{ text: "g'(x) = √(x/2)", offset: [3, 0.5, 0] }],
         showPoints: false,
       },
     ]}
   />
3. The original function  has its vertex at .
   After horizontal 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 - 2), z: 0 };
         }),
         color: getColor("INDIGO"),
         labels: [{ text: "h(x) = |x - 2|", offset: [2.5, 1, 0] }],
         showPoints: false,
       },
       {
         points: Array.from({ length: 41 }, (_, i) => {
           const x = (i - 20) * 0.25;
           return { x, y: Math.abs(-x - 2), z: 0 };
         }),
         color: getColor("EMERALD"),
         labels: [{ text: "h'(x) = |-x - 2|", offset: [2.5, 2, 0] }],
         showPoints: false,
       },
     ]}
   />