Matlab符号代数没有完全评估

时间:2015-02-03 22:13:22

标签: matlab symbolic-math

当我做的时候在Matlab中

syms x d
laplace(heaviside(x)-heaviside(x-4))

我得到了

1/s - exp(-4*s)/s

但如果我这样做

laplace(heaviside(x)-heaviside(x-d))

我得到了

1/s - laplace(heaviside(x - d), x, s)

有没有办法迫使最后一个laplace进行评估?

1 个答案:

答案 0 :(得分:1)

通常,如果您想要通用符号表达式的答案,则需要应用assumptions。使用assume指定参数d为非负数(延迟步骤):

syms x d
assume(d>=0);
laplace(heaviside(x)-heaviside(x-d))

返回

ans =

1/s - exp(-d*s)/s

对于d的任意实数值,拉普拉斯变换的结果是分段函数(如果assume d为负,那么您将获得不同的解决方案)。看起来laplace函数还没有被设计为通过MuPAD的piecewise处理这些情况(除了返回原始调用)。您可以{MathWorks,{3}}询问有关添加此功能的信息。