跳转到内容

怎么又是微分方程

在 MATLAB 里面大战微分方程(失败

Section titled “在 MATLAB 里面大战微分方程(失败”

前置复习:解方程,但是是微分方程

根据常识,我们知道物体的降温速度受到物体温度 T(t)T(t) 和室温 TsT_s 之差的影响,即

dTdt=−k(T−Ts)\frac{dT}{dt} = -k(T - T_s)

其中 kk 是冷却系数,一个常数

由上面那个式子可以积分再整理就可以得到

T(t)=Ts+Ce−ktT(t) = T_s+Ce^{-kt}

此时题目应该会给一些可以代入的数值,代进去就能求解答案了

在 MATLAB 中,log(x)表示 ln⁡x\ln x,exp(x)表示 exe^x

设一次服药量为 AA,c(t)c(t) 为血液中药物浓度,kk 为浓度衰减系数,那么对于单次服药显然有

dcdt=−kc\frac{dc}{dt}=-kc

又由于 c(0)=Ac(0)=A,于是

c(t)=Ae−ktc(t)=Ae^{-kt}

那对于多次服药呢?可以把第 nn 次服药后的浓度设为 CnC_n,服药间隔为 TT,于是就可以递推得到

C1=Ac(T)=C1e−kTC2=C1e−kT+A⋯Cn+1=Cne−kT+A\begin{aligned} C_1&=A \\ c(T)&=C_1e^{-kT} \\ C_2&=C_1e^{-kT} + A \\ &\cdots \\ C_{n+1} &= C_ne^{-kT}+A \end{aligned}

展开再展开可以发现

Cn=A(1+e−kT+e−2kT+⋯+e−(n−1)kT)C_n=A(1+e^{-kT}+e^{-2kT}+\cdots+e^{-(n-1)kT})

然后我们发现这就是个等比数列求和,得到

Cn=A1−e−nkT1−e−kTC_n=A\frac{1-e^{-nkT}}{1-e^{-kT}}

显然 lim⁡n→∞\lim_{n \to \infty} 时,e−nkT→0e^{-nkT}\to 0,于是 Cmax=A1−e−kT\displaystyle C_{\text{max}} = \frac{A}{1-e^{-kT}},Cmin=Cmaxe−kTC_{\text{min}} = C_{\text{max}}e^{-kT}

© 2026 依月的备忘录 · 本站原创内容采用 CC BY-SA 4.0 许可