双反转符号

时间:2014-04-19 00:30:05

标签: matlab

当我运行如下定义函数的简单集成时,

clear all;
syms z tau;
deltav=tau^(1/(3*z))-tau^(1/(4*z));
deltax=1/(0.5+12*z)*(tau^(1/(3*z))-tau^(1/(4*z)));
a=1;
b=9;
tau=0.5;
mu_vx=int(deltav*deltax,a,b);
mu_x2=int(deltax^2,a,b);
ratio=double(mu_vx/mu_x2);

我从MATLAB收到错误消息“???使用==> mupadmex时出错 MuPAD命令出错:DOUBLE无法将输入表达式转换为 双精度数组。如果输入表达式包含符号变量,请使用VPA 而不是功能。“

所以我将“deltav”和“deltax”的表达式插入到集成中,然后运行

clear all;
syms z tau;
deltav=tau^(1/(3*z))-tau^(1/(4*z));
deltax=1/(0.5+12*z)*(tau^(1/(3*z))-tau^(1/(4*z)));
a=1;
b=9;
tau=0.5;
mu_vx=int((tau^(1/(3*z))-tau^(1/(4*z)))*1/(0.5+12*z)*(tau^(1/(3*z))-   tau^(1/(4*z))),a,b);
mu_x2=int((1/(0.5+12*z)*(tau^(1/(3*z))-tau^(1/(4*z))))^2,a,b);
ratio=double(mu_vx/mu_x2)

这次有效。我想知道如何在不插入长表达式的情况下使第一种方式工作。谢谢。

1 个答案:

答案 0 :(得分:0)

有时需要solve才能找到明确的解决方案

mu_vx=int(solve(deltav*deltax),a,b);
mu_x2=int(solve(deltax^2),a,b);
ratio=double(mu_vx/mu_x2);