logical

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

Синтаксис

Описание

пример

logical(cond) проверки, ли условие cond isvalid. К условиям испытания, которые требуют предположений или упрощений, использовать 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 ложь).

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

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

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

  • logical обычно игнорирует предположения на переменных.

Представленный в R2012a