记一次微分方程求解

在看论文时,看到这样的几个公式

dmdt=pkm d m d t = − p − k m

Solve this function, we get:
m=cektpk m = c e − k t − p k

Let m(0)=M,m(T)=0 m ( 0 ) = M , m ( T ) = 0

Then p=MketkT1ekT p = M k e t − k T 1 − e − k T

不知道这是怎么算的,然后同伴在百度上找到了[求微分方程 dy/dx=a-by的解 a,和b 是常数](求微分方程 dy/dx=a-by的解 a,和b 是常数)

按照这个过程,把上的公式算了一下。

dmdtdmp+kmdmp+km1kln(p+km)+Cln(p+km)p+kmm=pkm=dt=dt=t+C′′=kt+kC′′′=Cekt=Cektpk(8)(9)(10)(11)(12)(13)(14) (8) d m d t = − p − k m (9) d m p + k m = − d t (10) ∫ d m p + k m = ∫ − d t (11) 1 k l n ( p + k m ) + C ′ = − t + C ″ (12) l n ( p + k m ) = − k t + k C ‴ (13) p + k m = C e − k t (14) m = C e − k t − p k

完毕。

后来发现,用MatLab可以直接解,代码如下

syms m(t) p k
X=dsolve(diff(m)==-p-k*m)
simplify(X)
pretty(X)

运行结果

>> my_d

X =

-(p - C19*exp(-k*t))/k


ans =

-(p - C19*exp(-k*t))/k

  p - C19 exp(-k t)
- -----------------
          k

>> 

你可能感兴趣的:(记一次微分方程求解)