Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将变量值替换为符号方程(ODE)_Matlab_Symbolic Math - Fatal编程技术网

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

它可能只是
阻止您查看结果