логический

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

Синтаксис

logical(cond)

Описание

пример

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