logical

Проверяйте валидность уравнения или неравенства

Синтаксис

Описание

пример

logical(cond) проверяет, является ли условие cond является допустимым. Чтобы проверить условия, которые требуют допущений или упрощений, используйте isAlways вместо logical.

Примеры

Тестирование условия с использованием logical

Использование logical проверить, 3/5 ли меньше 2/3:

logical(sym(3)/5 < sym(2)/3)
ans =
  logical
   1

Тестовое уравнение с использованием logical

Проверяйте валидность этого уравнения, используя logical. Без дополнительного предположения, что x неотрицательно, это уравнение недопустимо.

syms x
logical(x == sqrt(x^2))
ans =
  logical
   0

Использовать assume чтобы задать предположение, что x неотрицательная. Теперь выражение sqrt(x^2) вычисляет, чтобы x, и logical возвращает 1:

assume(x >= 0)
logical(x == sqrt(x^2))
ans =
  logical
   1

Обратите внимание, что logical обычно игнорирует допущения к переменным.

syms x
assume(x == 5)
logical(x == 5)
ans =
  logical
   0

Чтобы сравнить выражения с учетом допущений по их переменным, используйте isAlways:

isAlways(x == 5)
ans =
  logical
   1

Для дальнейших расчетов очистите предположение о x путем воссоздания его с помощью syms:

syms x

Протестируйте несколько условий с помощью logical

Проверьте, действительны ли оба следующих условия. Чтобы проверить, действительны ли несколько условий одновременно, объедините эти условия с помощью логического оператора and или его ярлык &.

syms x
logical(1 < 2 & x == x)
ans =
  logical
   1

Тестируйте неравенство используя logical

Проверяйте это неравенство. Обратите внимание, что logical оценивает левую часть неравенства.

logical(sym(11)/4 - sym(1)/2 > 2)
ans =
  logical
   1

logical также оценивает более сложные символьные выражения с обеих сторон уравнений и неравенств. Для примера он оценивает интеграл в левой части этого уравнения:

syms x
logical(int(x, x, 0, 2) - 1 == 1)
ans =
  logical
   1

Выдержать сравнение logical и isAlways

Не используйте logical проверить уравнения и неравенства, которые требуют упрощения или математических преобразований. Для таких уравнений и неравенств logical может привести к непредвиденным результатам. Для примера, logical не распознает математическую эквивалентность этих выражений:

syms x
logical(sin(x)/cos(x) == tan(x))
ans =
  logical
   0

logical также не понимает, что это неравенство недопустимо:

logical(sin(x)/cos(x) ~= tan(x))
ans =
  logical
   1

Чтобы проверить валидность уравнений и неравенств, которые требуют упрощения или математических преобразований, используйте isAlways:

isAlways(sin(x)/cos(x) == tan(x))
ans =
  logical
     1
isAlways(sin(x)/cos(x) ~= tan(x))
Warning: Unable to prove 'sin(x)/cos(x) ~= tan(x)'.
ans =
  logical
   0

Входные параметры

свернуть все

Вход, заданный как символьное уравнение, неравенство или символьный массив уравнений или неравенств. Можно также объединить несколько условий при помощи логических операторов and, or, xor, notили их ярлыки.

Совет

  • Для символьных уравнений, logical возвращает логический 1 (true) только если левая и правая стороны идентичны. В противном случае возвращается логический 0 (false).

  • Для символьных неравенств, построенных с ~=, logical возвращает логический 0 (false) только если левая и правая стороны идентичны. В противном случае возвращается логический 1 (true).

  • Для всех других неравенств (построенных с <, <=, >, или >=), logical возвращает логический 1 если это может доказать, что неравенство является допустимым и логическим 0 если это может доказать, что неравенство недопустимо. Если logical не может определить, является ли такое неравенство допустимым или нет, это выдает ошибку.

  • logical оценивает выражения с обеих сторон уравнения или неравенства, но не упрощает или математически не преобразует их. Чтобы сравнить два выражения, применяющие математические преобразования и упрощения, используйте isAlways.

  • logical обычно игнорирует допущения к переменным.

Введенный в R2012a