象征性地评估不等式

Evaluating an inequality symbolically

我正在尝试使用 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)

对于变量 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)

这两个表达式都 return 为真。

您可以通过输入例如assumptions(rho)。如果你不使用 assumeAlso,你会看到 > 0 假设消失了。