Проверяйте, сохранено ли уравнение или неравенство для всех значений его переменных
isAlways выдает предупреждение при возвращении false для неопределяемых входов. Чтобы подавить предупреждение, установите Unknown опция для false как isAlways(cond,'Unknown','false'). Для получения дополнительной информации см. Handle Output for Undecidable Conditions.
isAlways( проверяет, является ли условие cond)cond действителен для всех возможных значений символьных переменных в cond. При проверке cond, а isAlways функция рассматривает все допущения от переменных в cond. Если условие сохранено, isAlways возвращает логический 1 (true). В противном случае возвращается логический 0 (false).
isAlways( использует дополнительные опции, заданные одним или несколькими cond,Name,Value)Name,Value аргументы в виде пар.
Проверьте, верно ли это неравенство для всех значений x.
syms x isAlways(abs(x) >= 0)
ans = logical 1
isAlways возвращает логический 1 (true) указывая, что неравенство abs(x) >= 0 действителен для всех значений x.
Проверяйте, верно ли это уравнение для всех значений x.
isAlways(sin(x)^2 + cos(x)^2 == 1)
ans = logical 1
isAlways возвращает логический 1 (true), указывающий, что уравнение верно для всех значений x.
Проверьте, является ли хотя бы одно из этих двух условий допустимым. Чтобы проверить, является ли хотя бы одно из нескольких условий допустимым, объедините их с помощью логического оператора or или его ярлык |.
syms x isAlways(sin(x)^2 + cos(x)^2 == 1 | x^2 > 0)
ans = logical 1
Проверьте, действительны ли оба условия. Чтобы проверить, верно ли несколько условий, объедините их с помощью логического оператора and или его ярлык &.
isAlways(sin(x)^2 + cos(x)^2 == 1 & abs(x) > 2*abs(x))
ans = logical 0
Проверьте это условие. Когда isAlways невозможно определить, является ли условие допустимым, оно возвращает логическое 0 (false) и выдает предупреждение по умолчанию.
syms x isAlways(2*x >= x)
Warning: Unable to prove 'x <= 2*x'. ans = logical 0
Чтобы изменить поведение по умолчанию, используйте Unknown. Для примера задайте Unknown как false чтобы подавить предупреждение и сделать isAlways возврат логического 0 (false) если он не может определить валидность условия.
isAlways(2*x >= x,'Unknown','false')
ans = logical 0
Вместо false, можно также задать Unknown как error для возврата ошибки и как true для возврата логического 1 (true).
Проверяйте это неравенство в предположении, что x отрицательно. Когда isAlways проверяет уравнение или неравенство, оно учитывает предположения о переменных в этом уравнении или неравенстве.
syms x assume(x < 0) isAlways(2*x < x)
ans = logical 1
Для дальнейших расчетов очистите предположение о x путем воссоздания его с помощью syms.
syms x
assume | assumeAlso | assumptions | in | isequal | isequaln | isfinite | isinf | isnan | piecewise | sym | syms