高等数学(五)多元函数微积分¶
章节概述¶
多元函数微积分研究多个自变量的函数的极限、连续、导数和积分。本章将介绍多元函数的基本概念、偏导数、方向导数、梯度和重积分。
学习目标¶
- 理解多元函数的概念
- 掌握偏导数的计算方法
- 理解方向导数和梯度的概念
- 学会计算重积分
- 了解多元函数微积分的应用
(一)多元函数¶
多元函数的定义¶
多元函数是指有多个自变量的函数,如:
二元函数的极限¶
函数 f(x, y) 在点 (x₀, y₀) 处的极限定义为:
重要说明:二元函数的极限存在要求沿任意路径趋近时极限都相同。
二元函数的连续性¶
函数 f(x, y) 在点 (x₀, y₀) 处连续,当且仅当: 1. f(x₀, y₀) 存在 2. lim((x,y)→(x₀,y₀)) f(x, y) 存在 3. lim((x,y)→(x₀,y₀)) f(x, y) = f(x₀, y₀)
多元函数的偏导数¶
高阶偏导数:
克莱罗定理:如果二阶混合偏导数连续,则 ∂²f/∂x∂y = ∂²f/∂y∂x
(二)偏导数¶
偏导数的定义¶
函数 z = f(x, y) 对 x 的偏导数为:
同理,对 y 的偏导数为:
计算方法¶
计算偏导数时,将其他变量视为常数,只对目标变量求导。
全微分¶
函数 z = f(x, y) 的全微分为:
可微的充分条件:如果偏导数 ∂f/∂x 和 ∂f/∂y 在点 (x₀, y₀) 处连续,则函数在该点可微。
复合函数的偏导数(链式法则)¶
设 z = f(u, v),u = φ(x, y),v = ψ(x, y),则:
隐函数的偏导数¶
对于隐函数 F(x, y) = 0,有:
对于隐函数 F(x, y, z) = 0,有:
实例分析¶
实例1:求 f(x, y) = x² + y² 的偏导数
import math
def f(x, y):
"""函数 f(x, y) = x² + y²"""
return x**2 + y**2
def partial_x(func, x, y, h=1e-6):
"""对 x 的偏导数"""
return (func(x + h, y) - func(x - h, y)) / (2 * h)
def partial_y(func, x, y, h=1e-6):
"""对 y 的偏导数"""
return (func(x, y + h) - func(x, y - h)) / (2 * h)
x, y = 2, 3
fx = partial_x(f, x, y)
fy = partial_y(f, x, y)
print(f"∂f/∂x 在 (2, 3) 处: {fx:.4f} (理论值: 4.0)")
print(f"∂f/∂y 在 (2, 3) 处: {fy:.4f} (理论值: 6.0)")
实例2:求 f(x, y) = sin(xy) 的偏导数
def f2(x, y):
"""函数 f(x, y) = sin(xy)"""
return math.sin(x * y)
x, y = 1, 2
fx = partial_x(f2, x, y)
fy = partial_y(f2, x, y)
print(f"∂f/∂x 在 (1, 2) 处: {fx:.4f}")
print(f"∂f/∂y 在 (1, 2) 处: {fy:.4f}")
(三)方向导数与梯度¶
方向导数的定义¶
函数 f(x, y) 在点 (x₀, y₀) 沿方向 u = (cos α, cos β) 的方向导数为:
梯度的定义¶
函数 f(x, y) 的梯度为:
梯度的性质¶
- 梯度方向是函数增长最快的方向
- 梯度的长度表示最大增长率
- 梯度垂直于等值线(面)
梯度的应用¶
1. 梯度下降法(最优化)
其中 α 是学习率。2. 方向导数与梯度的关系
其中 θ 是梯度方向与指定方向的夹角。def gradient(func, x, y, h=1e-6):
"""
计算函数的梯度
参数:
func: 二元函数
x, y: 点的坐标
h: 步长
返回:
tuple: (∂f/∂x, ∂f/∂y)
"""
fx = partial_x(func, x, y, h)
fy = partial_y(func, x, y, h)
return (fx, fy)
def gradient_descent(func, x0, y0, alpha=0.01, iterations=1000):
"""
梯度下降法寻找函数最小值
参数:
func: 二元函数
x0, y0: 初始点
alpha: 学习率
iterations: 迭代次数
返回:
tuple: (最小值点, 最小值)
"""
x, y = x0, y0
for _ in range(iterations):
grad = gradient(func, x, y)
x -= alpha * grad[0]
y -= alpha * grad[1]
return (x, y), func(x, y)
def directional_derivative(func, x, y, u1, u2):
"""
计算方向导数
参数:
func: 二元函数
x, y: 点的坐标
u1, u2: 方向向量
返回:
float: 方向导数
"""
grad = gradient(func, x, y)
return grad[0] * u1 + grad[1] * u2
实例分析¶
实例:计算 f(x, y) = x² + y² 在 (1, 1) 处沿方向 (1/√2, 1/√2) 的方向导数
x, y = 1, 1
u1, u2 = 1/math.sqrt(2), 1/math.sqrt(2)
grad = gradient(f, x, y)
du = directional_derivative(f, x, y, u1, u2)
print(f"梯度: ({grad[0]:.4f}, {grad[1]:.4f})")
print(f"方向导数: {du:.4f}")
(四)重积分¶
二重积分的定义¶
函数 f(x, y) 在区域 D 上的二重积分为:
计算方法¶
1. 直角坐标系
将二重积分转化为累次积分:
2. 极坐标系
对于圆形区域或被积函数含有 x²+y² 时,使用极坐标更方便:
3. 换元法
设变换 x = x(u, v), y = y(u, v),雅可比行列式为:
则:
三重积分¶
直角坐标系:
柱面坐标系(适合柱形区域):
球面坐标系(适合球形区域):
数值计算方法¶
def double_integral(func, x_range, y_range, nx=100, ny=100):
"""
数值计算二重积分
参数:
func: 被积函数
x_range: x 的范围 [a, b]
y_range: y 的范围 [c, d]
nx: x 方向的分割数
ny: y 方向的分割数
返回:
float: 积分的近似值
"""
a, b = x_range
c, d = y_range
hx = (b - a) / nx
hy = (d - c) / ny
result = 0
for i in range(nx):
x = a + (i + 0.5) * hx
for j in range(ny):
y = c + (j + 0.5) * hy
result += func(x, y) * hx * hy
return result
实例分析¶
实例:计算 ∬ᴰ (x² + y²) dxdy,其中 D = [0, 1] × [0, 1]
def integrand(x, y):
"""被积函数 f(x, y) = x² + y²"""
return x**2 + y**2
result = double_integral(integrand, [0, 1], [0, 1])
print(f"∬ᴰ (x² + y²) dxdy ≈ {result:.6f}")
print(f"理论值: 2/3 ≈ {2/3:.6f}")
实战练习¶
练习1:计算偏导数¶
求 f(x, y) = e^(xy) + sin x 的偏导数
def f_exercise(x, y):
"""函数 f(x, y) = e^(xy) + sin x"""
return math.exp(x*y) + math.sin(x)
x, y = 1, 2
fx = partial_x(f_exercise, x, y)
fy = partial_y(f_exercise, x, y)
print(f"∂f/∂x 在 (1, 2) 处: {fx:.6f}")
print(f"∂f/∂y 在 (1, 2) 处: {fy:.6f}")
练习2:计算二重积分¶
计算 ∬ᴰ sin(x + y) dxdy,其中 D = [0, π] × [0, π]
def integrand2(x, y):
"""被积函数 f(x, y) = sin(x + y)"""
return math.sin(x + y)
result = double_integral(integrand2, [0, math.pi], [0, math.pi])
print(f"∬ᴰ sin(x + y) dxdy ≈ {result:.6f}")
练习3:梯度下降法¶
用梯度下降法求 f(x, y) = x² + y² 的最小值
def f_optimize(x, y):
"""目标函数 f(x, y) = x² + y²"""
return x**2 + y**2
# 使用梯度下降法
(x_min, y_min), f_min = gradient_descent(f_optimize, 5, 5, alpha=0.1, iterations=100)
print(f"梯度下降法结果:")
print(f"最小值点: ({x_min:.6f}, {y_min:.6f})")
print(f"最小值: {f_min:.6f}")
print(f"理论最小值: (0, 0), f = 0")
练习4:极坐标下的二重积分¶
计算 ∬ (x² + y²) dxdy,其中 D 是单位圆
def polar_double_integral(func, r_range, theta_range, nr=100, ntheta=100):
"""
极坐标下的二重积分
参数:
func: 被积函数 f(r, theta)
r_range: r 的范围 [r_min, r_max]
theta_range: theta 的范围 [theta_min, theta_max]
"""
r_min, r_max = r_range
theta_min, theta_max = theta_range
dr = (r_max - r_min) / nr
dtheta = (theta_max - theta_min) / ntheta
result = 0
for i in range(nr):
r = r_min + (i + 0.5) * dr
for j in range(ntheta):
theta = theta_min + (j + 0.5) * dtheta
result += func(r, theta) * r * dr * dtheta
return result
# 计算 ∬ (x² + y²) dxdy = ∬ r² · r dr dθ
result = polar_double_integral(lambda r, theta: r**2, [0, 1], [0, 2*math.pi])
print(f"极坐标积分: ∬ (x² + y²) dxdy ≈ {result:.6f}")
print(f"理论值: π/2 ≈ {math.pi/2:.6f}")
章节小结¶
本章介绍了多元函数微积分的基本概念:
- 多元函数:理解多元函数的定义和连续性
- 偏导数:掌握偏导数的计算方法,理解全微分
- 方向导数与梯度:理解概念,掌握计算方法
- 重积分:学会计算二重积分和三重积分
- 坐标变换:掌握极坐标、柱面坐标、球面坐标下的积分
多元函数微积分是处理多变量问题的重要工具。
常见计算公式总结¶
| 概念 | 公式 | 说明 |
|---|---|---|
| 偏导数 | ∂f/∂x, ∂f/∂y | 对单个变量求导 |
| 全微分 | dz = (∂f/∂x)dx + (∂f/∂y)dy | 近似计算 |
| 梯度 | ∇f = (∂f/∂x, ∂f/∂y) | 最速上升方向 |
| 方向导数 | Dᵤf = ∇f · u | 沿指定方向的变化率 |
| 二重积分 | ∬ f(x,y) dxdy | 曲顶柱体体积 |
下一步¶
继续学习第六章:微分方程,学习常微分方程的求解方法。
重点提醒: - 偏导数的计算是多元函数微积分的基础 - 梯度方向是函数增长最快的方向 - 重积分可以通过累次积分计算 - 多元函数微积分在优化和物理中有广泛应用