象征性地评估不平等

我正在尝试使用Matlab中的符号求解器来验证不等式。 Matlab可以告诉我,下面的第一个不等式是正确的,但是第二个不等式失败了。我在这里做错什么,还是Matlab的第二个复杂表达式?

syms mu sigma rho lambdaP

assume(mu>0)
assume(sigma>0)
assume(rho>0)
assume(lambdaP>0)
assume(rho>mu)

b=(mu-0.5*sigma^2);
isAlways(sqrt(b^2+2*sigma^2)>=0)
isAlways(sqrt(b^2+2*sigma^2*(rho+lambdaP))>=0)
z81452418 回答:象征性地评估不平等

对于变量rhomu的第二个假设,应使用assumeAlso而不是assume。再次在符号变量上调用assume会删除第一个假设。您还可以通过将假设添加到符号变量的声明中来删除所有单独的assume

syms mu sigma rho lambdaP positive

assumeAlso(rho>mu)

b=(mu-0.5*sigma^2);
isAlways(sqrt(b^2+2*sigma^2)>=0)
isAlways(sqrt(b^2+2*sigma^2*(rho+lambdaP))>=0)

这两个表达式都将返回true。

您可以通过键入以下内容检查每个变量的假设: assumptions(rho)。如果您不使用assumeAlso,将会看到> 0的假设已经消失。

本文链接:https://www.f2er.com/3057639.html

大家都在问