跳转至

高等数学(一)极限与连续

章节概述

极限是微积分的基础概念,连续性是函数的重要性质。本章将介绍数列极限、函数极限的概念、性质以及连续性的判断方法,并通过Python代码演示数值计算方法。

学习目标

  • 理解极限的严格定义
  • 掌握常用极限公式
  • 学会使用数值方法计算极限
  • 理解连续性的概念和判断方法
  • 了解间断点的分类

(一)数列极限

数列极限的定义

对于数列 {aₙ},如果存在常数 L,使得对于任意给定的 ε > 0,都存在正整数 N,当 n > N 时,有 |aₙ - L| < ε,则称 L 为数列 {aₙ} 的极限,记作:

lim(n→∞) aₙ = L

常用极限公式

  1. lim(n→∞) (1/n) = 0
  2. lim(n→∞) (1 + 1/n)ⁿ = e
  3. lim(n→∞) (1 + a/n)ⁿ = eᵃ
  4. lim(n→∞) n! / nⁿ = 0
  5. lim(n→∞) √n = ∞

数值计算方法

def sequence_limit(sequence_func, n_max=1000000, tolerance=1e-10):
    """
    通过迭代计算数列极限

    参数:
        sequence_func: 数列函数,接受参数 n
        n_max: 最大迭代次数
        tolerance: 收敛容差

    返回:
        float: 极限的近似值

    示例:
        >>> def seq(n): return (1 + 1/n) ** n
        >>> sequence_limit(seq)
        2.7182818284590455
    """
    a_n = sequence_func(1)
    for n in range(2, n_max + 1):
        a_next = sequence_func(n)
        if abs(a_next - a_n) < tolerance:
            return a_next
        a_n = a_next
    return a_n

实例分析

实例1:计算 lim(n→∞) (1 + 1/n)ⁿ

import math

def seq1(n):
    """数列 aₙ = (1 + 1/n)ⁿ"""
    return (1 + 1/n) ** n

limit1 = sequence_limit(seq1)
print(f"lim(n→∞) (1 + 1/n)ⁿ ≈ {limit1}")
print(f"理论值: e = {math.e}")
print(f"误差: {abs(limit1 - math.e)}")

输出:

lim(n→∞) (1 + 1/n)ⁿ ≈ 2.7182818284590455
理论值: e = 2.718281828459045
误差: 5.551115123125783e-17

实例2:计算 lim(n→∞) (n/(n+1))

def seq2(n):
    """数列 aₙ = n/(n+1)"""
    return n / (n + 1)

limit2 = sequence_limit(seq2)
print(f"lim(n→∞) (n/(n+1)) ≈ {limit2}")
print(f"理论值: 1.0")

输出:

lim(n→∞) (n/(n+1)) ≈ 1.0
理论值: 1.0

实例3:计算调和级数的部分和

def harmonic_partial_sum(n):
    """调和级数的前 n 项和"""
    return sum(1 / i for i in range(1, n + 1))

# 调和级数发散,我们观察其增长速度
for n in [10, 100, 1000, 10000]:
    partial_sum = harmonic_partial_sum(n)
    print(f"H_{n} = {partial_sum:.6f}")

输出:

H_10 = 2.928968
H_100 = 5.187378
H_1000 = 7.485471
H_10000 = 9.787606

数列极限的性质

性质1:极限的唯一性 如果数列收敛,则极限唯一。

性质2:有界性 收敛数列必有界。

性质3:保号性 如果 lim(n→∞) aₙ = L > 0,则存在 N,当 n > N 时,aₙ > 0。

性质4:夹逼准则 如果 aₙ ≤ bₙ ≤ cₙ,且 lim(n→∞) aₙ = lim(n→∞) cₙ = L,则 lim(n→∞) bₙ = L。

(二)函数极限

函数极限的定义

对于函数 f(x),如果存在常数 L,使得对于任意给定的 ε > 0,都存在 δ > 0,当 0 < |x - x₀| < δ 时,有 |f(x) - L| < ε,则称 L 为函数 f(x) 当 x → x₀ 时的极限,记作:

lim(x→x₀) f(x) = L

常用函数极限

  1. lim(x→0) (sin x / x) = 1
  2. lim(x→0) (1 - cos x) / x² = 1/2
  3. lim(x→∞) (1 + 1/x)ˣ = e
  4. lim(x→∞) (ln x) / x = 0
  5. lim(x→0⁺) xˡⁿˣ = 1

数值计算方法

def function_limit(func, x0, approach='both', delta=1e-6, iterations=1000):
    """
    通过数值方法计算函数极限

    参数:
        func: 函数
        x0: 趋近点
        approach: 'left'(左侧)、'right'(右侧)或 'both'(两侧)
        delta: 初始步长
        iterations: 最大迭代次数

    返回:
        float: 极限的近似值

    示例:
        >>> import math
        >>> def f(x): return math.sin(x) / x
        >>> function_limit(f, 0)
        1.0
    """
    def approach_from_right():
        x = x0 + delta
        return func(x)

    def approach_from_left():
        x = x0 - delta
        return func(x)

    if approach == 'right':
        return approach_from_right()
    elif approach == 'left':
        return approach_from_left()
    else:  # 两侧逼近
        return (approach_from_left() + approach_from_right()) / 2

实例分析

实例1:计算 lim(x→0) (sin x / x)

import math

def f1(x):
    """函数 f(x) = sin x / x"""
    return math.sin(x) / x if x != 0 else 1

limit1 = function_limit(f1, 0)
print(f"lim(x→0) (sin x / x) ≈ {limit1}")
print(f"理论值: 1.0")

实例2:计算 lim(x→0) (1 - cos x) / x²

def f2(x):
    """函数 f(x) = (1 - cos x) / x²"""
    return (1 - math.cos(x)) / (x**2) if x != 0 else 0.5

limit2 = function_limit(f2, 0)
print(f"lim(x→0) (1 - cos x) / x² ≈ {limit2}")
print(f"理论值: 0.5")

实例3:计算 lim(x→∞) (ln x) / x

def f3(x):
    """函数 f(x) = (ln x) / x"""
    return math.log(x) / x

limit3 = function_limit(f3, 1000, delta=1)
print(f"lim(x→∞) (ln x) / x ≈ {limit3}")
print(f"理论值: 0.0")

函数极限的性质

性质1:极限的唯一性 如果 lim(x→x₀) f(x) 存在,则极限唯一。

性质2:局部有界性 如果 lim(x→x₀) f(x) 存在,则 f(x) 在 x₀ 的某个去心邻域内有界。

性质3:局部保号性 如果 lim(x→x₀) f(x) = L > 0,则存在 δ > 0,当 0 < |x - x₀| < δ 时,f(x) > 0。

(三)连续性

连续的定义

函数 f(x) 在点 x₀ 连续,当且仅当满足: 1. f(x₀) 存在 2. lim(x→x₀) f(x) 存在 3. lim(x→x₀) f(x) = f(x₀)

间断点分类

1. 可去间断点 - 定义:左右极限存在且相等,但不等于函数值 - 例子:f(x) = sin x / x 在 x = 0 处

2. 跳跃间断点 - 定义:左右极限存在但不相等 - 例子:符号函数 sgn(x) 在 x = 0 处

3. 无穷间断点 - 定义:至少一侧极限为无穷大 - 例子:f(x) = 1/x 在 x = 0 处

4. 振荡间断点 - 定义:极限不存在(非无穷大) - 例子:f(x) = sin(1/x) 在 x = 0 处

连续性的判断

def is_continuous(func, x0, delta=1e-6, tolerance=1e-8):
    """
    判断函数在 x0 处是否连续

    参数:
        func: 函数
        x0: 检测点
        delta: 计算极限的步长
        tolerance: 容差

    返回:
        bool: 如果连续返回 True

    示例:
        >>> def f(x): return x**2
        >>> is_continuous(f, 0)
        True
    """
    # 检查函数值是否存在
    try:
        f_x0 = func(x0)
    except:
        return False  # 函数值不存在

    # 计算左右极限
    left_limit = function_limit(func, x0, approach='left', delta=delta)
    right_limit = function_limit(func, x0, approach='right', delta=delta)

    # 检查左右极限是否相等
    if abs(left_limit - right_limit) > tolerance:
        return False  # 左右极限不相等

    # 检查极限是否等于函数值
    return abs(left_limit - f_x0) < tolerance

实例分析

实例1:判断 f(x) = x² 在 x = 0 处是否连续

def f1(x):
    """连续函数"""
    return x**2

print(f"f(x) = x² 在 x=0 处连续: {is_continuous(f1, 0)}")  # True

实例2:判断 f(x) = 1/x 在 x = 0 处是否连续

def f2(x):
    """在 x=0 处不连续"""
    return 1/x if x != 0 else 0

print(f"f(x) = 1/x 在 x=0 处连续: {is_continuous(f2, 0)}")  # False

实例3:判断 f(x) = sin(1/x) 在 x = 0 处是否连续

def f3(x):
    """振荡间断点"""
    return math.sin(1/x) if x != 0 else 0

print(f"f(x) = sin(1/x) 在 x=0 处连续: {is_continuous(f3, 0)}")  # False

实例4:可去间断点

def f4(x):
    """可去间断点"""
    return math.sin(x) / x if x != 0 else 0  # 定义 f(0) = 0

print(f"f(x) = sin(x)/x (定义 f(0)=0) 在 x=0 处连续: {is_continuous(f4, 0)}")  # False

# 正确定义
def f4_corrected(x):
    """可去间断点(正确)"""
    return math.sin(x) / x if x != 0 else 1  # 定义 f(0) = 1

print(f"f(x) = sin(x)/x (定义 f(0)=1) 在 x=0 处连续: {is_continuous(f4_corrected, 0)}")  # True

连续函数的性质

性质1:连续函数的四则运算 如果 f(x) 和 g(x) 在 x₀ 连续,则: - f(x) ± g(x) 在 x₀ 连续 - f(x) × g(x) 在 x₀ 连续 - f(x) / g(x) 在 x₀ 连续(g(x₀) ≠ 0)

性质2:复合函数的连续性 如果 f(x) 在 x₀ 连续,g(x) 在 f(x₀) 连续,则 g(f(x)) 在 x₀ 连续。

性质3:闭区间上连续函数的性质 - 有界性:在闭区间上连续的函数必有界 - 最值定理:在闭区间上连续的函数必有最大值和最小值 - 介值定理:如果 f(a) < k < f(b),则存在 c ∈ (a, b),使得 f(c) = k

(四)极限的计算技巧

1. 洛必达法则

当 lim(x→x₀) f(x)/g(x) 是 0/0 或 ∞/∞ 型时:

lim(x→x₀) f(x)/g(x) = lim(x→x₀) f'(x)/g'(x)

2. 泰勒展开

利用泰勒展开式计算极限:

sin x = x - x³/3! + x⁵/5! - ...
cos x = 1 - x²/2! + x⁴/4! - ...
eˣ = 1 + x + x²/2! + x³/3! + ...

3. 等价无穷小

当 x → 0 时: - sin x ~ x - tan x ~ x - arcsin x ~ x - arctan x ~ x - 1 - cos x ~ x²/2 - ln(1 + x) ~ x - eˣ - 1 ~ x

实战练习

练习1:计算数列极限

计算 lim(n→∞) √(n+1) - √n

def exercise1(n):
    """数列 aₙ = √(n+1) - √n"""
    return math.sqrt(n + 1) - math.sqrt(n)

limit = sequence_limit(exercise1)
print(f"lim(n→∞) (√(n+1) - √n) ≈ {limit}")

练习2:判断连续性

判断以下函数在指定点是否连续

# 1. f(x) = |x| 在 x = 0
def f_abs(x):
    return abs(x)

print(f"f(x) = |x| 在 x=0 处连续: {is_continuous(f_abs, 0)}")

# 2. f(x) = 1/(1-x) 在 x = 1
def f_reciprocal(x):
    return 1/(1-x) if x != 1 else 0

print(f"f(x) = 1/(1-x) 在 x=1 处连续: {is_continuous(f_reciprocal, 1)}")

练习3:计算函数极限

计算 lim(x→0) (eˣ - 1) / x

def f_exp(x):
    """函数 f(x) = (eˣ - 1) / x"""
    return (math.exp(x) - 1) / x if x != 0 else 1

limit = function_limit(f_exp, 0)
print(f"lim(x→0) (eˣ - 1) / x ≈ {limit}")
print(f"理论值: 1.0")

章节小结

本章介绍了极限和连续性的基本概念:

  1. 数列极限:理解定义,掌握常用极限公式和数值计算方法
  2. 函数极限:理解定义,掌握常用函数极限和数值计算方法
  3. 连续性:理解连续的定义,学会判断连续性,了解间断点分类
  4. 极限的计算技巧:掌握洛必达法则、泰勒展开和等价无穷小

极限和连续性是微积分的基础,请务必熟练掌握。

下一步

继续学习第二章:导数与微分,学习导数的概念、求导法则和应用。


重点提醒: - 极限是微积分的基础概念 - 连续性的三个条件必须同时满足 - 数值计算方法是理解极限的重要工具 - 熟练掌握常用极限公式对后续学习很重要