Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Implementing Rational Functions in Python | Functions and Their Properties
Mathematics for Data Science

bookImplementing Rational Functions in Python

Unlike previous functions, rational functions need special care when plotted in Python. Because they have undefined points and infinite values, you must split the domain to prevent errors.

1. Defining the Function

We define our rational function as:

def rational_function(x):
    return 1 / (x - 1)

Key Considerations:

  • x=1x = 1 must be excluded from calculations to avoid division by zero;
  • The function will be split into two domains (left and right of x=1x = 1).

2. Splitting the Domain

To avoid division by zero, we generate two separate sets of x-values:

x_left = np.linspace(-4, 0.99, 250)  # Left of x = 1
x_right = np.linspace(1.01, 4, 250)  # Right of x = 1

The values 0.99 and 1.01 ensure we never include x=1x = 1, preventing errors.

3. Plotting the Function

plt.plot(x_left, y_left, color='blue', linewidth=2, label=r"$f(x) = \frac{1}{x - 1}$")
plt.plot(x_right, y_right, color='blue', linewidth=2)

The function jumps at x=1x = 1, so we need to plot it in two pieces.

4. Marking Asymptotes and Intercepts

  • Vertical Asymptote (x=1x = 1):
plt.axvline(1, color='red', linestyle='--',
            linewidth=1, label="Vertical Asymptote (x=1)")
  • Horizontal Asymptote (y=0y = 0):
plt.axhline(0, color='green', linestyle='--', 
            linewidth=1, label="Horizontal Asymptote (y=0)")
  • Y-Intercept at x=0x = 0:
y_intercept = rational_function(0)
plt.scatter(0, y_intercept, color='purple', label="Y-Intercept")

5. Adding Directional Arrows

To indicate the function extends infinitely:

plt.annotate('', xy=(x_right[-1], y_right[-1]), xytext=(x_right[-2], y_right[-2]), arrowprops=dict(arrowstyle='->', color='blue', linewidth=1.5))
question mark

Which code correctly defines and plots the rational function f(x)=1x1f(x) = \frac{\raisebox{1pt}{$1$}}{\raisebox{-1pt}{$x - 1$}} while avoiding division by zero?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 1. Chapter 6

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Suggested prompts:

Can you explain why we need to split the domain for rational functions?

How do I handle other types of asymptotes in rational function plots?

Can you walk me through the full code for plotting this rational function?

Awesome!

Completion rate improved to 1.96

bookImplementing Rational Functions in Python

Swipe to show menu

Unlike previous functions, rational functions need special care when plotted in Python. Because they have undefined points and infinite values, you must split the domain to prevent errors.

1. Defining the Function

We define our rational function as:

def rational_function(x):
    return 1 / (x - 1)

Key Considerations:

  • x=1x = 1 must be excluded from calculations to avoid division by zero;
  • The function will be split into two domains (left and right of x=1x = 1).

2. Splitting the Domain

To avoid division by zero, we generate two separate sets of x-values:

x_left = np.linspace(-4, 0.99, 250)  # Left of x = 1
x_right = np.linspace(1.01, 4, 250)  # Right of x = 1

The values 0.99 and 1.01 ensure we never include x=1x = 1, preventing errors.

3. Plotting the Function

plt.plot(x_left, y_left, color='blue', linewidth=2, label=r"$f(x) = \frac{1}{x - 1}$")
plt.plot(x_right, y_right, color='blue', linewidth=2)

The function jumps at x=1x = 1, so we need to plot it in two pieces.

4. Marking Asymptotes and Intercepts

  • Vertical Asymptote (x=1x = 1):
plt.axvline(1, color='red', linestyle='--',
            linewidth=1, label="Vertical Asymptote (x=1)")
  • Horizontal Asymptote (y=0y = 0):
plt.axhline(0, color='green', linestyle='--', 
            linewidth=1, label="Horizontal Asymptote (y=0)")
  • Y-Intercept at x=0x = 0:
y_intercept = rational_function(0)
plt.scatter(0, y_intercept, color='purple', label="Y-Intercept")

5. Adding Directional Arrows

To indicate the function extends infinitely:

plt.annotate('', xy=(x_right[-1], y_right[-1]), xytext=(x_right[-2], y_right[-2]), arrowprops=dict(arrowstyle='->', color='blue', linewidth=1.5))
question mark

Which code correctly defines and plots the rational function f(x)=1x1f(x) = \frac{\raisebox{1pt}{$1$}}{\raisebox{-1pt}{$x - 1$}} while avoiding division by zero?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 1. Chapter 6
some-alt