含微分的表达式积分:用SymPy符号求解T(t)的ODE问题
符号化求解常微分方程T(t)
原方程与目标
给定常微分方程:
$$\frac{dT}{dt} = \frac{T_0 - T}{\tau}$$
要求先解出$dT$,再通过两边积分的方式符号化求解$T(t)$。
步骤1:整理出含dT的表达式
将原方程变形,得到$dT$的表达式:
$$dT = \frac{T_0 - T}{\tau} dt$$
步骤2:分离变量
把含$T$的项移至左侧,含$t$的项移至右侧,完成变量分离:
$$\frac{dT}{T_0 - T} = \frac{1}{\tau} dt$$
步骤3:两边积分
对等式两侧分别积分,引入积分常数$C$:
$$\int \frac{dT}{T_0 - T} = \int \frac{1}{\tau} dt + C$$
步骤4:计算积分并整理
左侧积分结果为$-\ln|T_0 - T|$,右侧为$\frac{t}{\tau} + C$,整理得:
$$-\ln|T_0 - T| = \frac{t}{\tau} + C$$
两边取指数并化简(令$A = e^{-C}$,$A$为常数):
$$T_0 - T = A e^{-\frac{t}{\tau}}$$
最终得到$T(t)$的通解:
$$T(t) = T_0 - A e^{-\frac{t}{\tau}}$$
步骤5:用初始条件确定常数
若给定初始条件$t=0$时$T=T(0)=T_1$,代入通解得:
$$A = T_0 - T_1$$
代入后得到特解:
$$T(t) = T_0 - (T_0 - T_1) e^{-\frac{t}{\tau}}$$
SymPy实现代码
import sympy as sp # 定义符号与函数 t, tau, T0, C = sp.symbols('t tau T0 C') T = sp.Function('T')(t) # 原ODE ode = sp.Eq(sp.diff(T, t), (T0 - T)/tau) # 整理得到dT的表达式 dT_expr = sp.Eq(sp.diff(T, t)*sp.dt(t), (T0 - T)/tau * sp.dt(t)) # 分离变量后积分 left_int = sp.integrate(1/(T0 - T), T) right_int = sp.integrate(1/tau, t) + C # 求解T(t) solution = sp.solve(sp.Eq(left_int, right_int), T) print("通解:", solution)
运行代码后会输出通解:[T0 - C*exp(-t/tau)],与手动推导结果一致。
内容的提问来源于stack exchange,提问作者remusconnor
相关产品推荐
相关产品推荐

