isAlways

Проверяйте, сохранено ли уравнение или неравенство для всех значений его переменных

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

Входные параметры

свернуть все

Условие проверки, заданное как символьное условие или вектор, матрица или многомерный массив символьных условий.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: isAlways(cond,'Unknown',true) делает isAlways возврат логического 1 (true), когда указанное условие не может быть определено.

Возвращаемое значение для неопределяемого условия, заданное как разделенная запятыми пара 'Unknown' и одно из этих значений.

falseWithWarning (по умолчанию)На неопределяемых входах возвращает логическое 0 (false) и предупреждение о том, что условие не может быть доказано.
falseНа неопределяемых входах возвращает логическое 0 (false).
trueНа неопределяемых входах возвращает логическое 1 (true).
errorПри неопределяемых входах возвращает ошибку.
Введенный в R2012a