MATLAB 对称引擎在逻辑语句上失败



我想让matlab同意以下简单的说法:

(x-a)^b>=0x>0, a>0, b<0, x>a

为了做到这一点,我写:

syms x a b
assume(x>0 & a>0 & b<0 & x>a);
isAlways((x-a)^b>=0,'Unknown','error')

并收到以下错误消息:

Error using symengine
Cannot prove '0 <= (x - a)^b'.
Error in sym/isAlways (line 38)
Y = mupadmex('symobj::isAlways',X.s,isMath,['"Unknown' p.Unknown '"'],9);

为什么 MATLAB 不同意这样一个明显的说法?

我不知道为什么,但与其用作假设x>a,不如使用x-a > 0.我认为 MATLAB 不会"计算"xa之间的差异,因此它不知道x-a是否大于0。因此,当您检查条件时,它必须已经知道x-a大于0

相关内容

  • 没有找到相关文章

最新更新