我定义了以下变量
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)我定义了所有变量
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)我用子函数替换了这些变量。
subs(F,[DOSE, KA, V, K, TIME], [320, KA1,V1,K1, TIMEt]);
我也尝试使用eval函数,但subs和eval函数都不起作用(输出仍然是符号表达式)。
非常感谢任何关于我做错了什么或任何替代方法的建议。
由于
答案 0 :(得分: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
应用eval
时:eval('(1280*exp(-8))/9 - (1280*exp(-10))/9')
评估为0.0413
。
可能只有;
会阻止您查看结果。