[英]how to rearrange differential equation solution using matlab?
我有一个方程:
dC(t)/ dt = -K * C + G
我使用MATLAB求解了该方程,得到了以下解决方案:
C(t)= G / K +(Co-G / K) exp(-K t / V)
如何重新排列此方程以获得K =?
由于您的方程式在指数的内部和外部都具有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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.