exponenta event banner

логичный

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

Синтаксис

Описание

пример

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