Matlab 符号代数未完全评估

Matlab Symbolic Algebra not fully evaluated

当我在 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求值?

通常如果你想从一般的符号表达式中得到答案,你需要应用 assumptions. Using assume 来指定你的参数 d 是非负的(延迟步骤):

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

returns

ans =

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

对于 d 的任意实数值,拉普拉斯变换的结果是一个分段函数(如果 assume d 是负数,那么您将获得不同的解决方案) .看起来 laplace function has not been designed to handle these cases via MuPAD's piecewise (except to return the original call). You might file a request for enhancement 与 MathWorks 一起询问添加此功能。