Проверяйте валидность уравнения или неравенства
logical(cond)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
1isAlways(sin(x)/cos(x) ~= tan(x))
Warning: Unable to prove 'sin(x)/cos(x) ~= tan(x)'. ans = logical 0
Для символьных уравнений logical возвращает логический 1 (true), только если левые и правые стороны идентичны. В противном случае возвращается логический 0 (false).
Для символьных неравенств, созданных с ~=, logical возвращает логический 0 (false), только если левые и правые стороны идентичны. В противном случае это возвращает логический 1 (true).
Для всех других неравенств (созданный с <, <=, > или >=), logical возвращает логический 1, если может оказаться, что неравенством является допустимый и логический 0, если может оказаться, что неравенство недопустимо. Если logical не может определить, допустимо ли такое неравенство или нет, это выдает ошибку.
logical выполняет выражения с обеих сторон уравнения или неравенства, но не упрощает или математически преобразовывает их. Чтобы сравнить два выражения, применяющие математические преобразования и упрощения, используйте isAlways.
logical обычно игнорирует предположения на переменных.
assume | assumeAlso | assumptions | in | isAlways | isequal | isequaln | isfinite | isinf | isnan | sym | syms