我有一个等式:
dC(t)/ dt = -K * C + G
我使用MATLAB来解决这个等式,我得到了这个解决方案:
C(t)= G / K +(Co-G / K) exp(-K t / V)
如何重新排列此等式以获得K =?
答案 0 :(得分:2)
因为你的方程在指数内外都有K
,你无法得到一个很好的闭合形式解,所以你希望实现的最好是数值近似。
>> syms t C(t) K G C0
>> D=dsolve(diff(C)==-K*C+G,C(0)==C0) %// solve the ODE with an initial condition
D =
(G - exp(-K*t)*(G - C0*K))/K
%// Solve for k given particular values of the other variables
>> k=solve(subs(C(t)==D,{G,t,C,C0},{1,2,1,0.5}),K)
k =
0.91228212986814722960889983912519
如果你忽略了初始条件,你可以得到一个方程式,但它是以Lambert W函数表示的,对任何事情都没有用。
>> syms t C(t) K G
>> D=dsolve(diff(C)==-K*C+G)
D =
(G - C2*exp(-K*t))/K
>> solve(C==D,K)
ans =
(G + (C(t)*lambertw(0, -(C2*t*exp(-(G*t)/C(t)))/C(t)))/t)/C(t)