【问题标题】:Double inverting symbolic双反转符号
【发布时间】:2014-04-19 00:30:04
【问题描述】:

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

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 收到错误消息,说“??? Error using ==> 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)

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

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

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

    【讨论】:

    • 我已经试过你的答案了。它也不起作用 mu_vx=int(solve(deltavdeltax),a,b);或通过 mu_vx=solve(int(deltavdeltax,a,b));
    • 使用 Matlab 2013a 我得到了结果1
    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多