Matlab 将变量值替换为符号方程(ODE)
我已经定义了以下变量Matlab 将变量值替换为符号方程(ODE),matlab,symbolic-math,Matlab,Symbolic Math,我已经定义了以下变量 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
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函数替换了这些变量
subs(F,[DOSE, KA, V, K, TIME], [320, KA1,V1,K1, TIMEt]);
我还尝试使用eval函数,但是subs和eval函数都不起作用(输出仍然是符号表达式)
任何关于我做错了什么或任何替代方法的建议都非常感谢
谢谢这对我有用:
我尝试了以下代码示例:
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
它可能只是代码>阻止您查看结果