如何在 Python 中可视化 epsilon-delta 标准?

How can I visualize the epsilon-delta criterion in Python?

提问人:Createdd 提问时间:4/19/2023 更新时间:4/19/2023 访问量:108

问:

我是一名数学学生,我试图理解极限的 epsilon-delta 标准。我知道该标准说,对于每个 epsilon > 0,都存在一个 delta > 0,这样如果 0 < |x - c|<增量,则 |f(x) - L|< epsilon,其中 L 是 x 接近 c 时 f(x) 的极限。

我想使用 Matplotlib 在 Python 中可视化这个概念,这样我就可以探索 epsilon 和 delta 的不同值,并查看它们如何影响函数 f(x)。理想情况下,我想创建一个交互式绘图,在其中我可以使用滑块更改 epsilon 和 delta 的值。

Python 函数 数学 可视化 限制

评论


答:

2赞 Createdd 4/19/2023 #1

下面完成这项工作,如下所示:

enter image description here

import matplotlib.pyplot as plt
import numpy as np
from ipywidgets import interact, FloatSlider

def f(x):
    return np.sin(x)

def plot_epsilon_delta(epsilon, delta):
    # Define the limit point L
    L = 0

    # Define the range of x values and the point c
    xmin, xmax = -5, 5
    c = 0

    # Create the plot
    fig, ax = plt.subplots(figsize=(8, 6))

    # Plot the function and the limit point
    x = np.linspace(xmin, xmax, 1000)
    y = f(x)
    ax.plot(x, y, label='f(x)')
    ax.axhline(L, color='k', linestyle='--', label='Limit L')

    # Plot the horizontal lines at L +/- epsilon
    ax.axhline(L + epsilon, color='r', linestyle='--', label='L + epsilon')
    ax.axhline(L - epsilon, color='r', linestyle='--', label='L - epsilon')

    # Plot the vertical line at c
    ax.axvline(c, color='g', linestyle='--', label='x approaches c')

    # Plot the buffer zone around c
    ax.axvline(c + delta, color='b', linestyle='--', label='c + delta')
    ax.axvline(c - delta, color='b', linestyle='--', label='c - delta')

    # Plot the region where |f(x) - L| < epsilon
    x_region = np.linspace(c - delta, c + delta, 100)
    y_region = f(x_region)
    ax.fill_between(x_region, L - epsilon, L + epsilon, where=np.abs(y_region - L) < epsilon, alpha=0.3, color='gray', label='|f(x) - L| < epsilon')

    # Set the plot title and axis labels
    ax.set_title('Epsilon-Delta Criterion')
    ax.set_xlabel('x')
    ax.set_ylabel('f(x)')

    # Add a legend to the plot
    ax.legend()

    plt.show()

# Create sliders for epsilon and delta
epsilon_slider = FloatSlider(min=0.1, max=1.0, step=0.1, value=0.5, description='Epsilon:')
delta_slider = FloatSlider(min=0.1, max=1.0, step=0.1, value=0.5, description='Delta:')

# Create the interactive plot
interact(plot_epsilon_delta, epsilon=epsilon_slider, delta=delta_slider)

评论

0赞 Stef 4/19/2023
棒!传说可能只是.x approaches cc
0赞 President James K. Polk 4/20/2023
哈哈,我很惊讶有人拥有您正在寻找的确切软件。然后我向下滚动,看到是你!
0赞 Createdd 4/20/2023
是的,我在做作业时就研究了它,并认为它可能值得分享。与其说是关于技术堆栈,不如说是使用 python 将其可视化;)