我想让matlab同意以下简单的说法:
(x-a)^b>=0
时x>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 不会"计算"x
和a
之间的差异,因此它不知道x-a
是否大于0
。因此,当您检查条件时,它必须已经知道x-a
大于0
。