如何用Python可视化极限的ε-δ准则?
用Matplotlib交互式可视化极限的ε-δ准则
先明确极限的ε-δ准则:
对于任意ε>0,存在δ>0,当0<|x - c|<δ时,|f(x)-L|<ε,其中L是f(x)当x趋近于c时的极限。
下面是一个基于Matplotlib和ipywidgets的交互式实现,你可以通过滑块实时调整ε和δ的值,直观观察两者的对应关系:
import matplotlib.pyplot as plt import numpy as np from ipywidgets import interact, FloatSlider # 定义目标函数、极限点c和极限值L def f(x): return x ** 2 # 可替换为任意你想研究的函数 c = 2 L = f(c) # 设置绘图范围 x_min, x_max = c - 3, c + 3 y_min, y_max = L - 5, L + 5 def update_plot(epsilon, delta): plt.figure(figsize=(10, 6)) x = np.linspace(x_min, x_max, 1000) plt.plot(x, f(x), 'b-', label='$f(x) = x^2$') # 绘制极限点(c, L) plt.scatter(c, L, color='red', zorder=5, label=f'$(c, L)=({c}, {L})$') # 绘制ε对应的y轴区间 [L-ε, L+ε] plt.axhline(y=L + epsilon, color='green', linestyle='--', label=f'$L \pm \epsilon$') plt.axhline(y=L - epsilon, color='green', linestyle='--') plt.fill_between(x, L - epsilon, L + epsilon, color='green', alpha=0.1) # 绘制δ对应的x轴区间 (c-δ, c+δ),排除x=c点 plt.axvline(x=c + delta, color='orange', linestyle='--', label=f'$c \pm \delta$') plt.axvline(x=c - delta, color='orange', linestyle='--') # 高亮满足0<|x-c|<δ的区域 x_delta = np.linspace(c - delta, c + delta, 1000) x_delta = x_delta[x_delta != c] # 排除x=c点 plt.fill_between(x_delta, y_min, y_max, color='orange', alpha=0.1) # 绘制满足|f(x)-L|<ε的x区域(辅助观察) mask = np.abs(f(x) - L) < epsilon plt.fill_between(x[mask], L - epsilon, L + epsilon, color='blue', alpha=0.2) plt.xlabel('x') plt.ylabel('f(x)') plt.title('ε-δ 极限准则可视化') plt.legend() plt.grid(True) plt.xlim(x_min, x_max) plt.ylim(y_min, y_max) plt.show() # 创建滑块控件 interact( update_plot, epsilon=FloatSlider(min=0.1, max=4.0, step=0.1, value=1.0, description='ε:'), delta=FloatSlider(min=0.05, max=2.0, step=0.05, value=0.5, description='δ:') )
代码说明:
- 示例选用二次函数
f(x)=x²,你可以直接修改f(x)函数来研究其他函数的极限(比如线性函数、正弦函数等) - 绿色虚线和填充区域代表ε邻域:所有满足
|f(x)-L|<ε的f(x)值范围 - 橙色虚线和填充区域代表δ邻域:所有满足
0<|x-c|<δ的x值范围 - 蓝色填充区域是同时满足两个条件的部分,拖动滑块可观察:当δ足够小时,δ邻域内的所有x对应的f(x)都会落在ε邻域内
运行代码后,通过滑块调整ε和δ的值,能直观理解"对于任意ε>0,总能找到对应的δ>0"这一核心逻辑。
内容的提问来源于stack exchange,提问作者Createdd
相关产品推荐
相关产品推荐

