在Matlab中求解分段方程组,继续得到“函数'lt'未实现MuPAD符号对象”

时间:2012-03-14 09:06:04

标签: matlab piecewise

我试图运行此代码

   syms x m
eq3 = m-['(heaviside(x)-heaviside(x-1))*x^3/6  ']; 
    %...
    % '(heaviside(x-1)-heaviside(x-2))*(1/6)*(-3*x) + ' ...
    % '(heaviside(x-2)-heaviside(x-3))*(1/6)*(3*x^3-24*x^1) + ' ...
    % '(heaviside(x-3)-heaviside(x-4))*(1/6)*(4-x)^3'];
eq2=-x+(.6/.0360)*m;

sol = solve(eq3,eq2);

但我一直收到这个错误

功能' lt'没有为MuPAD符号对象实现。

我搜索并发现我需要将x设为double,所以我尝试了但是当我放入x = double(x)

行时我得到了这个错误

MuPAD命令出错:DOUBLE无法将输入表达式转换为 双阵列。 如果输入表达式包含符号变量,请使用VPA函数 代替。

==>中的错误sym.sym> sym.double at 927             Xstr = mupadmex(' mllib :: double',S.s,0);

如果我使用VPA,并将行x = vpa(x)我得到以下错误

功能' lt'没有为MuPAD符号对象实现。

==>中的错误sym.sym> sym.lt at 803             notimplemented(' LT&#39);

请指教,谢谢!

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?

eq3 = sym('m - (heaviside(x)-heaviside(x-1)) * x^3/6');
solve(eq3)