Проверка достоверности уравнения или неравенства
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