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 一起询问添加此功能。
当我在 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 一起询问添加此功能。