# Nakafa Framework: LLM
URL: /en/subject/high-school/11/mathematics/function-modeling/asymptote
Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/high-school/11/mathematics/function-modeling/asymptote/en.mdx
Output docs content for large language models.
---
import { LineEquation } from "@repo/design-system/components/contents/line-equation";
import { getColor } from "@repo/design-system/lib/color";
export const metadata = {
  title: "Asymptote",
  description: "Discover vertical, horizontal, and oblique asymptotes with step-by-step examples and interactive visualizations. Master rational function graphing techniques.",
  authors: [{ name: "Nabil Akbarazzima Fatih" }],
  date: "05/18/2025",
  subject: "Functions and Their Modeling",
};
## What is an Asymptote?
Have you ever noticed a function graph that approaches a line but never touches it? Well, that line is called an **asymptote**!
An asymptote is a straight line that is approached by a function graph when its variable value approaches infinity or approaches a certain value. Imagine like you're walking towards a wall but never actually touching it, that's the concept of an asymptote.
## Types of Asymptotes
There are three types of asymptotes you need to know:
### Vertical Asymptote
A vertical asymptote is a vertical line that the graph approaches when the function value approaches positive or negative infinity.
**Definition:** The line  is a vertical asymptote if:
- When  approaches  from the left, 
- When  approaches  from the right, 
**How to find:** For rational functions, vertical asymptotes occur when denominator = 0 (and numerator ≠ 0), or when  and .
### Horizontal Asymptote
A horizontal asymptote is a horizontal line that the graph approaches when  approaches positive or negative infinity.
**Definition:** The line  is a horizontal asymptote if:
- 
- 
### Oblique Asymptote (Oblique)
An oblique asymptote is a slanted line that the graph approaches when  approaches infinity.
**Definition:** The line  is an oblique asymptote if:
## Asymptotes in Rational Functions
Let's focus on rational functions  where  and  are polynomials.
### Finding Vertical Asymptotes
**Steps:**
1. Find the value of  that makes 
2. Check if  at that value
3. If yes, then there is a vertical asymptote at 
**Example:** Determine the vertical asymptote of 
**Solution:**
- Denominator is zero when: , so 
- When , numerator = 
- Therefore, vertical asymptote: 
Let's look at the function behavior around the vertical asymptote:
|     |                        | Description                              |
| -------------------------- | ---------------------------------------------------------------------- | ---------------------------------------- |
|   |  | Approaches  |
|  |                         | Getting more negative                    |
|  |                           | Approaches  |
|   |                              | Getting more positive                    |
      Graph of  with Vertical
      Asymptote
    >
  }
  description={
    <>
      Notice how the graph approaches the vertical line{" "}
       without ever touching it.
    >
  }
  data={[
    {
      points: [
        { x: -2, y: 0.25, z: 0 },
        { x: -1, y: 0.67, z: 0 },
        { x: 0, y: 1.5, z: 0 },
        { x: 1, y: 4, z: 0 },
        { x: 1.5, y: 9, z: 0 },
        { x: 1.8, y: 29, z: 0 },
        { x: 1.9, y: 49, z: 0 },
      ],
      color: getColor("PURPLE"),
      showPoints: false,
      labels: [{ text: "x → 2^{-}", at: 1, offset: [-1, 0.5, 0] }],
    },
    {
      points: [
        { x: 2.1, y: 51, z: 0 },
        { x: 2.2, y: 31, z: 0 },
        { x: 2.5, y: 11, z: 0 },
        { x: 3, y: 6, z: 0 },
        { x: 4, y: 3.5, z: 0 },
        { x: 5, y: 2.67, z: 0 },
        { x: 6, y: 2.25, z: 0 },
      ],
      color: getColor("PURPLE"),
      showPoints: false,
      labels: [{ text: "x → 2^{+}", at: 6, offset: [0.5, -0.5, 0] }],
    },
    {
      points: [
        { x: 2, y: -50, z: 0 },
        { x: 2, y: 0, z: 0 },
        { x: 2, y: 50, z: 0 },
      ],
      color: getColor("ORANGE"),
      showPoints: false,
      labels: [{ text: "x = 2", at: 1, offset: [1, -0.5, 0] }],
    },
  ]}
  cameraPosition={[10, 6, 10]}
  showZAxis={false}
/>
### Finding Horizontal Asymptotes
**Rules for rational functions:**
Let the degree of numerator =  and degree of denominator = 
1. If : Horizontal asymptote is 
2. If : Horizontal asymptote is  (ratio of leading coefficients)
3. If : No horizontal asymptote (but there might be an oblique asymptote)
**Example:** Determine the horizontal asymptote of:
1. 
   **Solution:**
   - Degree of numerator = 1, degree of denominator = 2
   - Since 1 < 2, horizontal asymptote: 
2. 
   **Solution:**
   - Degree of numerator = 2, degree of denominator = 2
   - Since degrees are equal, horizontal asymptote: 
Let's see how the function approaches the horizontal asymptote:
|     |                               | Approaches                |
| -------------------------- | ----------------------------------------------------------------------------------- | ------------------------- |
|    |  |  |
|   |                             |  |
|  |                        |  |
      Graph of  with
      Horizontal Asymptote
    >
  }
  description={
    <>
      The graph approaches  when{" "}
      .
    >
  }
  data={[
    {
      points: Array.from({ length: 40 }, (_, i) => {
        const x = -10 + i * 0.5;
        const y = (3 * x * x - 1) / (2 * x * x + 5);
        return { x, y, z: 0 };
      }),
      color: getColor("TEAL"),
      showPoints: false,
    },
    {
      points: [
        { x: -10, y: 1.5, z: 0 },
        { x: 0, y: 1.5, z: 0 },
        { x: 10, y: 1.5, z: 0 },
      ],
      color: getColor("AMBER"),
      showPoints: false,
      labels: [{ text: "y = 1.5", at: 1, offset: [2, 0.5, 0] }],
    },
  ]}
  cameraPosition={[10, 6, 10]}
  showZAxis={false}
/>
### Finding Oblique Asymptotes
Oblique asymptotes appear when the degree of numerator = degree of denominator + 1.
**How to find:** Perform polynomial division.
**Example:** Determine the oblique asymptote of 
**Solution:**
Using polynomial division:
  
When , the term 
Therefore, oblique asymptote: 
      Graph of  with
      Oblique Asymptote
    >
  }
  description={
    <>
      The graph approaches the line  when{" "}
      .
    >
  }
  data={[
    {
      points: Array.from({ length: 30 }, (_, i) => {
        const x = -8 + i * 0.3;
        if (Math.abs(x - 1) < 0.1) return null;
        const y = (x * x + 2 * x - 1) / (x - 1);
        return { x, y, z: 0 };
      }).filter((p) => p !== null),
      color: getColor("PURPLE"),
      showPoints: false,
    },
    {
      points: Array.from({ length: 30 }, (_, i) => {
        const x = 1.3 + i * 0.3;
        const y = (x * x + 2 * x - 1) / (x - 1);
        return { x, y, z: 0 };
      }),
      color: getColor("PURPLE"),
      showPoints: false,
    },
    {
      points: [
        { x: -8, y: -5, z: 0 },
        { x: 0, y: 3, z: 0 },
        { x: 10, y: 13, z: 0 },
      ],
      color: getColor("PINK"),
      showPoints: false,
      labels: [{ text: "y = x + 3", at: 1, offset: [3, 1.5, 0] }],
    },
    {
      points: [
        { x: 1, y: -10, z: 0 },
        { x: 1, y: 0, z: 0 },
        { x: 1, y: 15, z: 0 },
      ],
      color: getColor("ORANGE"),
      showPoints: false,
      labels: [{ text: "x = 1", at: 1, offset: [1, -0.5, 0] }],
    },
  ]}
  cameraPosition={[10, 6, 10]}
  showZAxis={false}
/>
## Drawing Graphs with Asymptotes
Asymptotes are very helpful in drawing function graphs. Here are the steps:
1. **Determine all asymptotes** (vertical, horizontal, or oblique)
2. **Draw asymptotes with dashed lines**
3. **Find intercepts** with the axes
4. **Determine some additional points**
5. **Draw the curve** that approaches the asymptotes
**Complete Example:** Draw the graph of 
**Step 1:** Find asymptotes
- Vertical asymptote:  (denominator = 0)
- Horizontal asymptote:  (same degree, coefficient ratio = 1/1)
**Step 2:** Intercepts
- y-axis: 
- x-axis: , so 
**Step 3:** Behavior around asymptotes
- When : 
- When : 
- When : 
**Step 4:** Value table to help with drawing
|   |                   | Description                      |
| ------------------------ | ----------------------------------------------------------------- | -------------------------------- |
|  |  | Point in quadrant I              |
|  |     | x-axis intercept                 |
|   |    | y-axis intercept                 |
|   |      | Approaching vertical asymptote   |
|   |        | Right of asymptote               |
|   |        | Approaching horizontal asymptote |
      Complete Graph of 
    >
  }
  description={
    <>
      Graph with vertical asymptote  and horizontal
      asymptote .
    >
  }
  data={[
    {
      points: Array.from({ length: 40 }, (_, i) => {
        const x = -5 + i * 0.175;
        if (Math.abs(x - 2) < 0.05) return null;
        const y = (x + 1) / (x - 2);
        if (Math.abs(y) > 20) return null;
        return { x, y, z: 0 };
      }).filter((p) => p !== null),
      color: getColor("SKY"),
      showPoints: false,
    },
    {
      points: Array.from({ length: 40 }, (_, i) => {
        const x = 2.05 + i * 0.175;
        const y = (x + 1) / (x - 2);
        if (Math.abs(y) > 20) return null;
        return { x, y, z: 0 };
      }).filter((p) => p !== null),
      color: getColor("SKY"),
      showPoints: false,
    },
    {
      points: [
        { x: 2, y: -20, z: 0 },
        { x: 2, y: 0, z: 0 },
        { x: 2, y: 20, z: 0 },
      ],
      color: getColor("ORANGE"),
      showPoints: false,
      labels: [{ text: "x = 2", at: 1, offset: [2, -0.5, 0] }],
    },
    {
      points: [
        { x: -5, y: 1, z: 0 },
        { x: 0, y: 1, z: 0 },
        { x: 9, y: 1, z: 0 },
      ],
      color: getColor("AMBER"),
      showPoints: false,
      labels: [{ text: "y = 1", at: 1, offset: [1, 0.5, 0] }],
    },
    {
      points: [{ x: -1, y: 0, z: 0 }],
      color: getColor("TEAL"),
      showPoints: true,
      labels: [{ text: "(-1, 0)", at: 0, offset: [-1, -0.5, 0] }],
    },
    {
      points: [{ x: 0, y: -0.5, z: 0 }],
      color: getColor("TEAL"),
      showPoints: true,
      labels: [{ text: "(0, -0.5)", at: 0, offset: [-1.5, -1, 0] }],
    },
  ]}
  cameraPosition={[10, 6, 10]}
  showZAxis={false}
/>
## Practice Problems
1. Determine all asymptotes of 
2. Determine the asymptotes of 
3. The average cost function of a product is . Determine the minimum cost per unit that can be achieved.
4. Draw a sketch of the graph  complete with its asymptotes.
### Answer Key
**Answer 1:**
- Degree of numerator (2) = degree of denominator (1) + 1
- There is an oblique asymptote. By division: 
- Vertical asymptote: 
- Oblique asymptote: 
**Answer 2:**
- Vertical asymptote: , so  and 
- But when , numerator = 0, so  is not an asymptote
- When , numerator = 0, so  is not an asymptote
- Horizontal asymptote:  (same degree, ratio = 1/1)
**Answer 3:**
When , 
So minimum cost per unit = 3
**Answer 4:**
- Vertical asymptotes:  and 
- Horizontal asymptote:  (degree of numerator < degree of denominator)
- The graph has three separate parts due to two vertical asymptotes
Value table for :
|     |                               | Description |
| -------------------------- | ------------------------------------------------------- | ----------- |
|    |      | Left part   |
|  |  | Middle part |
|     |                  | Intercept   |
|   |  | Middle part |
|     |        | Right part  |
      Graph of  with Two Vertical
      Asymptotes
    >
  }
  description={
    <>
      Graph with vertical asymptotes at  and{" "}
      , and horizontal asymptote{" "}
      .
    >
  }
  data={[
    {
      points: Array.from({ length: 20 }, (_, i) => {
        const x = -3 + i * 0.095;
        const y = x / (x * x - 1);
        if (Math.abs(y) > 10) return null;
        return { x, y, z: 0 };
      }).filter((p) => p !== null),
      color: getColor("PURPLE"),
      showPoints: false,
    },
    {
      points: Array.from({ length: 20 }, (_, i) => {
        const x = -0.95 + i * 0.09;
        const y = x / (x * x - 1);
        if (Math.abs(y) > 10) return null;
        return { x, y, z: 0 };
      }).filter((p) => p !== null),
      color: getColor("PURPLE"),
      showPoints: false,
    },
    {
      points: Array.from({ length: 20 }, (_, i) => {
        const x = 1.05 + i * 0.095;
        const y = x / (x * x - 1);
        if (Math.abs(y) > 10) return null;
        return { x, y, z: 0 };
      }).filter((p) => p !== null),
      color: getColor("PURPLE"),
      showPoints: false,
    },
    {
      points: [
        { x: -1, y: -10, z: 0 },
        { x: -1, y: 0, z: 0 },
        { x: -1, y: 10, z: 0 },
      ],
      color: getColor("ORANGE"),
      showPoints: false,
      labels: [{ text: "x = -1", at: 1, offset: [-2, 1, 0] }],
    },
    {
      points: [
        { x: 1, y: -10, z: 0 },
        { x: 1, y: 0, z: 0 },
        { x: 1, y: 10, z: 0 },
      ],
      color: getColor("ORANGE"),
      showPoints: false,
      labels: [{ text: "x = 1", at: 1, offset: [2, -0.5, 0] }],
    },
    {
      points: [
        { x: -3, y: 0, z: 0 },
        { x: 0, y: 0, z: 0 },
        { x: 3, y: 0, z: 0 },
      ],
      color: getColor("AMBER"),
      showPoints: false,
      labels: [{ text: "y = 0", at: 1, offset: [1, 0.5, 0] }],
    },
  ]}
  cameraPosition={[10, 6, 10]}
  showZAxis={false}
/>