微积分不仅是数学工具,更是理解物理世界的钥匙

一、变力做功问题

基本概念与步骤

当物体在变力作用下移动时,由于力随位置变化,功的计算需要用到定积分。以下是解决变力做功问题的一般步骤:

  1. 建立坐标系:确定积分变量(如 x x x r r r)和积分区间 [ a , b ] [a, b] [a,b]
  2. 求功的微元:在区间内取微小位移 d x dx dx,写出力 F ( x ) F(x) F(x) 在此位移上做功的近似值 d W = F ( x ) ⋅ d x dW = F(x) \cdot dx dW=F(x)dx
  3. 积分求总功:将微元功从 a a a b b b 积分,即 W = ∫ a b F ( x )   d x W = \int_{a}^{b} F(x) \, dx W=abF(x)dx

案例1:举高物体克服重力做功

问题:将质量 m m m 的物体从地面(地球半径 R R R)举高 H H H 米,求克服重力所做的功。

解答步骤

  1. 确立变量:以地球中心为原点,物体到地心距离 r r r 为变量,积分区间为 [ R , R + H ] [R, R+H] [R,R+H]
  2. 写出力函数:万有引力 F ( r ) = G M m r 2 F(r) = \frac{GMm}{r^2} F(r)=r2GMm,其中 G G G 为引力常数, M M M 为地球质量。
  3. 写出功的微元 d W = G M m r 2   d r dW = \frac{GMm}{r^2} \, dr dW=r2GMmdr
  4. 计算定积分 W = ∫ R R + H G M m r 2   d r = G M m [ − 1 r ] R R + H = G M m ( 1 R − 1 R + H ) W = \int_{R}^{R+H} \frac{GMm}{r^2} \, dr = GMm \left[ -\frac{1}{r} \right]_{R}^{R+H} = GMm \left( \frac{1}{R} - \frac{1}{R+H} \right) W=RR+Hr2GMmdr=GMm[r1]RR+H=GMm(R1R+H1)

Python代码验证

见calculus/chapter06/note37_test01.py

import sympy as sp

# 定义符号变量
r = sp.symbols('r')
G, M, m, R, H = sp.symbols('G, M, m, R, H', real=True, positive=True) 

# 定义被积函数:万有引力定律
force = G * M * m / (r**2)

# 使用 quad 进行数值积分
W = sp.integrate(force, (r, R, R+H))

print(f"克服重力所做的功 = {W} 焦耳")

结果

克服重力所做的功 = -G*M*m/(H + R) + G*M*m/R 焦耳

案例2:抽出蓄水池中的水所需功

问题:深5米、底面半径10米的圆柱形蓄水池盛满水,将水全部抽出需做多少功?

解答步骤

  1. 确立变量:以水面为原点,垂直向下为 x x x 轴正方向,积分区间 [ 0 , 5 ] [0, 5] [0,5]
  2. 分析微元:深度 x x x 处的一薄层水(厚度 d x dx dx)的质量为 d m = ρ ⋅ π R 2   d x dm = \rho \cdot \pi R^2 \, dx dm=ρπR2dx ρ \rho ρ 为水密度)。
  3. 抽出微元水需做功:此层水需提升 x x x 米, d W = d m ⋅ g ⋅ x = ρ g π R 2 x   d x dW = dm \cdot g \cdot x = \rho g \pi R^2 x \, dx dW=dmgx=ρgπR2xdx
  4. 计算定积分 W = ∫ 0 5 ρ g π R 2 x   d x = ρ g π R 2 ⋅ 1 2 x 2 ∣ 0 5 = 1250 ρ g π W = \int_{0}^{5} \rho g \pi R^2 x \, dx = \rho g \pi R^2 \cdot \frac{1}{2} x^2 \Big|_{0}^{5} = 1250 \rho g \pi W=05ρgπR2xdx=ρgπR221x2 05=1250ρgπ

Python代码验证

见calculus/chapter06/note37_test02.py

import sympy as sp

# 定义符号变量(全部使用符号)
x = sp.symbols('x')
rho, g, R, H = sp.symbols('rho g R H', real=True, positive=True)

# 定义被积函数:dW = ρ * g * π * R^2 * x dx
integrand = rho * g * sp.pi * R**2 * x

# 计算定积分
W = sp.integrate(integrand, (x, 0, H))
W_simplified = sp.simplify(W)

print(f"通用表达式: W = {W_simplified}")

# 代入具体数值验证
values = {R: 10, H: 5, rho: sp.Symbol('rho'), g: sp.Symbol('g')}
W_specific = W_simplified.subs({R: 10, H: 5})

print(f"代入R=10, H=5后: W = {W_specific}")
print(f"即: W = 1250πρg")  # 手动验证系数

结果

通用表达式: W = pi*H**2*R**2*g*rho/2
代入R=10, H=5后: W = 1250*pi*g*rho
即: W = 1250πρg

二、水压力问题

基本概念与步骤

液体中深度为 h h h 处的压强 p = ρ g h p = \rho g h p=ρgh。计算平板一侧所受水压力的步骤:

  1. 建立坐标系:通常以液面为原点,垂直向下为 x x x 轴正方向。
  2. 求压力微元:在平板深度 x x x 处取一微小带状区域,其面积 d A dA dA 可求。此带状区域所受压力近似为 d P = p ⋅ d A = ρ g x ⋅ d A dP = p \cdot dA = \rho g x \cdot dA dP=pdA=ρgxdA
  3. 积分求总压力 P = ∫ a b ρ g x   d A P = \int_{a}^{b} \rho g x \, dA P=abρgxdA,其中 [ a , b ] [a, b] [a,b] 是平板在 x x x 方向上的深度区间。

案例3:矩形闸门所受水压力

问题:一个高15米、宽10米的矩形闸门垂直放置,水面恰好淹没闸门顶端,求闸门一侧所受水压力。

解答步骤

  1. 确立变量:以水面为原点,向下为 x x x 轴,积分区间 [ 0 , 15 ] [0, 15] [0,15]
  2. 写出面积微元:在深度 x x x 处取高为 d x dx dx 的水平条带,其面积 d A = 10   d x dA = 10 \, dx dA=10dx
  3. 写出压力微元 d P = ρ g x ⋅ d A = 10 ρ g x   d x dP = \rho g x \cdot dA = 10 \rho g x \, dx dP=ρgxdA=10ρgxdx
  4. 计算定积分 P = ∫ 0 15 10 ρ g x   d x = 10 ρ g ⋅ 1 2 x 2 ∣ 0 15 = 1125 ρ g P = \int_{0}^{15} 10 \rho g x \, dx = 10 \rho g \cdot \frac{1}{2} x^2 \Big|_{0}^{15} = 1125 \rho g P=01510ρgxdx=10ρg21x2 015=1125ρg

Python代码验证

见calculus/chapter06/note37_test03.py

import sympy as sp

# 定义符号变量
x, rho, g, H, w = sp.symbols('x rho g H w', real=True, positive=True)

# 定义被积函数:压力微元 dP = (ρ g x) * (w dx)
integrand = rho * g * x * w

# 计算定积分
P_expr = sp.integrate(integrand, (x, 0, H))
P_simplified = sp.simplify(P_expr)

print(f"通用表达式: P = {P_simplified}")

# 解析解验证
P_analytic = sp.Rational(1, 2) * rho * g * w * H**2
print(f"解析解: P = {P_analytic}")
print(f"一致性验证: {P_simplified.equals(P_analytic)}")

# 代入具体数值
values = {H: 15, w: 10, rho: sp.Symbol('rho'), g: sp.Symbol('g')}
P_specific = P_simplified.subs({H: 15, w: 10})

print(f"代入H=15, w=10后: P = {P_specific}")
print(f"即: P = 1125ρg")  # 手动验证系数

结果

通用表达式: P = H**2*g*rho*w/2
解析解: P = H**2*g*rho*w/2
一致性验证: True
代入H=15, w=10后: P = 1125*g*rho
即: P = 1125ρg

三、质心问题

基本概念与步骤

质心是物体质量分布的平均位置。对于质量均匀的物体,质心也称为形心。计算平面曲线或平面图形质心的一般步骤:

  1. 确定积分变量与区间:根据图形特点选择积分变量 x x x y y y,并确定积分限 [ a , b ] [a, b] [a,b]
  2. 写出质量微元 d m dm dm:对于曲线, d m = ρ ( x ) ⋅ d s dm = \rho(x) \cdot ds dm=ρ(x)ds,其中 d s ds ds 为弧长微元;对于平面图形, d m dm dm 常表示为面积微元乘以面密度。
  3. 写出力矩微元:关于 y y y 轴的力矩微元 d I y = x ⋅ d m dI_y = x \cdot dm dIy=xdm,关于 x x x 轴的力矩微元 d I x = y ⋅ d m dI_x = y \cdot dm dIx=ydm
  4. 计算总质量与总力矩 M = ∫ d m M = \int dm M=dm I y = ∫ x   d m I_y = \int x \, dm Iy=xdm I x = ∫ y   d m I_x = \int y \, dm Ix=ydm
  5. 求质心坐标 X = I y M X = \frac{I_y}{M} X=MIy Y = I x M Y = \frac{I_x}{M} Y=MIx

案例4:求线段的质心

问题:线段 L : y = x   ( 0 ≤ x ≤ 1 ) L: y=x \, (0 \leq x \leq 1) L:y=x(0x1) 上每点的密度等于该点到原点的距离,求其质心 ( X , Y ) (X, Y) (X,Y)

解答步骤

  1. 参数化曲线:由于 y = x y=x y=x,弧长微元 d s = 1 + ( d y / d x ) 2   d x = 2   d x ds = \sqrt{1 + (dy/dx)^2} \, dx = \sqrt{2} \, dx ds=1+(dy/dx)2 dx=2 dx
  2. 写出密度函数:点 ( x , y ) (x, y) (x,y) 到原点距离为 x 2 + y 2 = 2 x \sqrt{x^2 + y^2} = \sqrt{2} x x2+y2 =2 x,故线密度 ρ ( x ) = 2 x \rho(x) = \sqrt{2} x ρ(x)=2 x
  3. 写出质量微元 d m = ρ ( x ) ⋅ d s = ( 2 x ) ⋅ ( 2   d x ) = 2 x   d x dm = \rho(x) \cdot ds = (\sqrt{2} x) \cdot (\sqrt{2} \, dx) = 2x \, dx dm=ρ(x)ds=(2 x)(2 dx)=2xdx
  4. 写出力矩微元 d I y = x ⋅ d m = 2 x 2   d x dI_y = x \cdot dm = 2x^2 \, dx dIy=xdm=2x2dx,由对称性, X = Y X = Y X=Y
  5. 计算积分
    • 总质量 M = ∫ 0 1 2 x   d x = x 2 ∣ 0 1 = 1 M = \int_{0}^{1} 2x \, dx = x^2 \Big|_{0}^{1} = 1 M=012xdx=x2 01=1
    • 关于 y y y 轴的总力矩 I y = ∫ 0 1 2 x 2   d x = 2 3 x 3 ∣ 0 1 = 2 3 I_y = \int_{0}^{1} 2x^2 \, dx = \frac{2}{3} x^3 \Big|_{0}^{1} = \frac{2}{3} Iy=012x2dx=32x3 01=32
    • 质心坐标 X = I y M = 2 / 3 1 = 2 3 X = \frac{I_y}{M} = \frac{2/3}{1} = \frac{2}{3} X=MIy=12/3=32,故质心为 ( 2 3 , 2 3 ) (\frac{2}{3}, \frac{2}{3}) (32,32)

Python代码验证

见calculus/chapter06/note37_test04.py

import sympy as sp

# 定义符号变量
x = sp.symbols('x')

# 定义质量微元 dm = 2x dx (因为 ρ(x) = √2 x, ds = √2 dx, dm = ρds = 2x dx)
mass_density = 2 * x

# 定义关于y轴的力矩微元 dI_y = x * dm = 2x² dx
moment_y_density = 2 * x**2

# 使用符号积分计算总质量
M = sp.integrate(mass_density, (x, 0, 1))

# 使用符号积分计算关于y轴的总力矩
I_y = sp.integrate(moment_y_density, (x, 0, 1))

# 计算质心坐标
X = I_y / M
Y = X  # 由对称性

print(f"总质量 M = {M}")
print(f"关于y轴的总力矩 I_y = {I_y}")
print(f"质心坐标 (X, Y) = ({X}, {Y})")

结果

总质量 M = 1
关于y轴的总力矩 I_y = 2/3
质心坐标 (X, Y) = (2/3, 2/3)

案例5:求平面图形的形心

问题:求由抛物线 y = x 2 / 4 y = x^2/4 y=x2/4 与直线 y = x / 2 + 2 y = x/2 + 2 y=x/2+2 所围成平面图形 D D D 的形心(设密度均匀为1)。

解答步骤

  1. 求交点确定积分区间:联立方程解得交点横坐标 x = − 2 x = -2 x=2 x = 4 x = 4 x=4
  2. 写出面积微元:在 x x x 处取竖直小条,高为 [ ( x / 2 + 2 ) − ( x 2 / 4 ) ] [ (x/2 + 2) - (x^2/4) ] [(x/2+2)(x2/4)],宽为 d x dx dx,面积微元 d A = ( x 2 + 2 − x 2 4 ) d x dA = \left( \frac{x}{2} + 2 - \frac{x^2}{4} \right) dx dA=(2x+24x2)dx
  3. 写出形心坐标:小条的形心近似在其中心,即 x x x 坐标就是 x x x y y y 坐标为上下边中点的平均值 1 2 [ ( x / 2 + 2 ) + ( x 2 / 4 ) ] = x 4 + 1 + x 2 8 \frac{1}{2} \left[ (x/2 + 2) + (x^2/4) \right] = \frac{x}{4} + 1 + \frac{x^2}{8} 21[(x/2+2)+(x2/4)]=4x+1+8x2。但更准确的做法是使用公式 Y = 1 2 A ∫ a b [ f 1 ( x ) 2 − f 2 ( x ) 2 ] d x Y = \frac{1}{2A} \int_a^b [f_1(x)^2 - f_2(x)^2] dx Y=2A1ab[f1(x)2f2(x)2]dx,其中 f 1 ( x ) f_1(x) f1(x) 是上曲线, f 2 ( x ) f_2(x) f2(x) 是下曲线。本例中上曲线为 y = x / 2 + 2 y = x/2 + 2 y=x/2+2,下曲线为 y = x 2 / 4 y = x^2/4 y=x2/4
  4. 计算积分
    • 总面积 A = ∫ − 2 4 ( x 2 + 2 − x 2 4 ) d x = 9 A = \int_{-2}^{4} \left( \frac{x}{2} + 2 - \frac{x^2}{4} \right) dx = 9 A=24(2x+24x2)dx=9
    • 关于 y y y 轴的静矩 M y = ∫ − 2 4 x ⋅ ( x 2 + 2 − x 2 4 ) d x = 9 M_y = \int_{-2}^{4} x \cdot \left( \frac{x}{2} + 2 - \frac{x^2}{4} \right) dx = 9 My=24x(2x+24x2)dx=9
    • 关于 x x x 轴的静矩 M x = 1 2 ∫ − 2 4 [ ( x 2 + 2 ) 2 − ( x 2 4 ) 2 ] d x = 72 5 M_x = \frac{1}{2} \int_{-2}^{4} \left[ \left( \frac{x}{2} + 2 \right)^2 - \left( \frac{x^2}{4} \right)^2 \right] dx = \frac{72}{5} Mx=2124[(2x+2)2(4x2)2]dx=572
    • 形心坐标 X = M y A = 9 9 = 1 X = \frac{M_y}{A} = \frac{9}{9} = 1 X=AMy=99=1 Y = M x A = 72 / 5 9 = 8 5 Y = \frac{M_x}{A} = \frac{72/5}{9} = \frac{8}{5} Y=AMx=972/5=58

Python代码验证

见calculus/chapter06/note37_test05.py

import sympy as sp

# 定义符号变量
x = sp.symbols('x')

# 定义抛物线 y = x^2/4 和直线 y = x/2 + 2
parabola = x**2 / 4
line = x/2 + 2

# 计算交点(确定积分区间)
solutions = sp.solve(line - parabola, x)
print(f"两条曲线的交点横坐标: {solutions}")

# 面积微元 dA = [上曲线 - 下曲线] dx = [(x/2 + 2) - (x^2/4)] dx
area_element = line - parabola

# 关于y轴的静矩微元 dM_y = x * dA = x * [(x/2 + 2) - (x^2/4)] dx
moment_y_element = x * (line - parabola)

# 关于x轴的静矩微元 dM_x = 1/2 * [(上曲线)^2 - (下曲线)^2] dx
moment_x_element = sp.Rational(1, 2) * (line**2 - parabola**2)

# 使用SymPy进行符号积分
A = sp.integrate(area_element, (x, -2, 4))                    # 总面积
M_y = sp.integrate(moment_y_element, (x, -2, 4))              # 关于y轴的静矩
M_x = sp.integrate(moment_x_element, (x, -2, 4))              # 关于x轴的静矩

# 计算形心坐标
X = M_y / A
Y = M_x / A

print(f"图形面积 A = {A}")
print(f"关于y轴的静矩 M_y = {M_y}")
print(f"关于x轴的静矩 M_x = {M_x}")
print(f"形心坐标 (X, Y) = ({X}, {Y})")

结果

两条曲线的交点横坐标: [-2, 4]
图形面积 A = 9
关于y轴的静矩 M_y = 9
关于x轴的静矩 M_x = 72/5
形心坐标 (X, Y) = (1, 8/5)

关键要点总结

  1. 微元法核心思想:将整体问题分解为无穷多个微小部分,在微小区间内用常量近似变量,积分求和。
  2. 几何意义辅助理解:定积分表示曲边梯形的面积,在物理应用中可理解为累积效应。
  3. 解题通用步骤:画图 → 选择积分变量 → 确定积分区间 → 求微元 → 积分计算。
  4. 物理量对应关系
    • 位移的积分:速度对时间积分得路程。
    • 压力的积分:压强对面积积分得总压力。
    • 力矩的积分:用于求质心。

希望这份分步详解能帮助您更好地掌握定积分在物理中的应用。


往期精彩回顾

专栏导航目录 《程序员AI之路:从Python起步》完全学习导航

完整代码已开源 ai-learning-path,欢迎Star和Fork!


参考资料

  1. 扈志明《微积分》教材

互动邀请:如果你对本章内容有独特的理解或在实际应用中遇到过有趣的问题,欢迎在评论区分享交流!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐