繁体   English   中英

如何使用Matlab重新排列微分方程解?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM