<=>, _equivЛогическая эквивалентность
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
b1 <=> b2 _equiv(b1,b2)
b1 <=> b2 представляет логическую эквивалентность Булевых выражений b1, b2.
a <=> b эквивалентно (a ==> b) and (b ==> a), где a ==> b эквивалентно not a or b.
_equiv(a, b) эквивалентно a <=> b.
MuPAD® использует логику с тремя состояниями с булевыми константами TRUEложь, и UNKNOWN. Они обрабатываются можно следующим образом:
and | TRUE | FALSE | UNKNOWN |
TRUE | TRUE | FALSE | UNKNOWN |
FALSE | FALSE | FALSE | FALSE |
UNKNOWN | UNKNOWN | FALSE | UNKNOWN |
Булевы выражения могут состоять из этих констант, а также из произвольных арифметических выражений. Как правило, уравнения, такие как x = y, и неравенства, такие как x <> y, x < y, x <= y, используются, чтобы создать Булевы выражения.
Комбинации констант TRUEложь, UNKNOWN в Булевом выражении упрощены автоматически. Однако символьные булевы подвыражения, равенства и неравенства не оценены и упрощены логическими операторами. Используйте bool выполнять такие выражения к одной из булевых констант. Отметьте, однако, тот bool может оценить неравенства x < y, x <= y и так далее, только если они состоят из количеств типа Type::Real.
Используйте simplify с опцией logic упростить выражения, включающие символьные булевы подвыражения. Смотрите Пример 1.
Приоритеты логических операторов следующие. Если в сомнении, используйте круглые скобки, чтобы гарантировать, что выражение анализируется, как желаемый.
Оператор not более сильная привязка, чем and, то есть, not b1 and b2 = (not b1) and b2.
Оператор and более сильная привязка, чем xor, то есть, b1 and b2 or b3 = (b1 and b2) xor b3.
Оператор xor более сильная привязка, чем or, то есть, b1 xor b2 or b3 = (b1 xor b2) or b3.
Оператор or более сильная привязка, чем ==>, то есть, b1 or b2 ==> b3 = (b1 or b2) ==> b3.
Оператор ==> более сильная привязка, чем <=>, то есть, b1 ==> b2 <=> b3 = (b1 ==> b2) <=> b3.
В условном контексте ifповторение, и while операторы, Булевы выражения выполнены через “отложенные вычисления” (см. _lazy_and, _lazy_or). В любом другом контексте оценены все операнды.
a <=> b эквивалентно (a ==> b) and (b ==> a), где a ==> b эквивалентно not a or b.
simplify((a <=> b), logic)
![]()
simplify((a ==> b) and (b ==> a), logic)
![]()
|
Булевы выражения |
Булево выражение.
b, b_1, b_2