2016-07-25 26 views
2

我已经定义了以下变量替换的变量值插入到一个符号方程(ODE)

syms DOSE TIME KA K V ETA1 THETA1 ETA2 THETA2 ETA3 THETA3 ; 

求解微分方程我收到一些符号表达式其中之一如下所示后。

F= -(DOSE*KA*(exp(-K*TIME) - exp(-KA*TIME)))/(V*(K - KA)); 

我想替换K,KA,DOSE等的值来找到F的数值。我试着用下面的代替变量的值。

1)I中定义的所有变量

TIMEt = Data(:,2); 

THETAa=THETA(1); 
THETAb=THETA(2); 
THETAc=THETA(3); 

ETAa=ETA(1); 
ETAb=ETA(2); 
ETAc=ETA(3); 

KA1 = THETA(1)*exp(ETA(1)); 
V1 = THETA(2)*exp(ETA(2)); 
K1 = THETA(3)*exp(ETA(3)); 

2)I取代使用潜艇功能的那些变量。

subs(F,[DOSE, KA, V, K, TIME], [320, KA1,V1,K1, TIMEt]); 

我也尝试使用eval函数,但subs和eval函数都不起作用(输出仍然是符号表达式)。

任何有关我做错了什么或任何替代方法的建议是非常感谢。

感谢

回答

0

它的工作对我来说:

我试着下面的代码示例:

syms DOSE TIME KA K V ETA1 THETA1 ETA2 THETA2 ETA3 THETA3 ; 
F= -(DOSE*KA*(exp(-K*TIME) - exp(-KA*TIME)))/(V*(K - KA)); 

TIMEt = 1; 

THETAa=2; 
THETAb=3; 
THETAc=4; 

ETAa=5; 
ETAb=6; 
ETAc=7; 

KA1 = 8; 
V1 = 9; 
K1 = 10; 

eval(subs(F,[DOSE, KA, V, K, TIME], [320, KA1,V1,K1, TIMEt])) 

下面的表达式subs(F,[DOSE, KA, V, K, TIME], [320, KA1,V1,K1, TIMEt])结果是:(1280*exp(-8))/9 - (1280*exp(-10))/9

当应用evaleval('(1280*exp(-8))/9 - (1280*exp(-10))/9')评估板到0.0413

它可能只是;,阻止你看到结果。