assume

Установите предположение на символьном объекте

Описание

пример

assume(condition) состояния, что condition isvalid. assume не дополнение. Вместо этого это автоматически удаляет все предыдущие предположения на переменных в condition.

пример

assume(expr,set) состояния, что expr принадлежит set. assume удаляет предыдущие предположения на переменных в expr.

пример

assume(expr,'clear') очищает все предположения на всех переменных в expr.

Примеры

Общие предположения

Установите предположение с помощью связанного синтаксиса.

Примите, что ‘x’Синтаксис
действительныйassume(x,'real')
рациональныйassume(x,'rational')
положительныйassume(x,'positive')
положительное целое числоassume(x,{'positive','integer'})
меньше чем-1 или больше, чем 1assume(x<-1 | x>1)
целое число от 2 до 10assume(in(x,'integer') & x>2 & x<10)
не целое числоassume(~in(z,'integer'))
не равняются 0assume(x ~= 0)
дажеassume(x/2,'integer')
нечетныйassume((x-1)/2,'integer')
от 0 до 2πassume(x>0 & x<2*pi)
кратное πassume(x/pi,'integer')

Примите, что переменная является четной или нечетная

Примите x является четным путем принятия того x/2 целое число. Примите x является нечетным путем принятия того (x-1)/2 целое число.

Примите x является четным.

syms x
assume(x/2,'integer')

Найдите все четные числа между 0 и 10 использование solve.

solve(x>0,x<10,x)
ans =
 2
 4
 6
 8

Примите x является нечетным. assume не дополнение, но вместо этого автоматически удаляет предыдущее предположение in(x/2, 'integer').

assume((x-1)/2,'integer')
solve(x>0,x<10,x)
ans =
 1
 3
 5
 7
 9

Очистите предположения на x для дальнейших расчетов.

assume(x,'clear')

Несколько предположений

Последовательный assume команды не устанавливают несколько предположений. Вместо этого каждый assume команда удаляет предыдущие предположения и устанавливает новые предположения. Установите несколько предположений при помощи assumeAlso или & оператор.

Примите x > 5 и затем x < 10 при помощи assumeИспользование assumptions проверять, что только второе предположение существует потому что assume удаленный первое предположение при установке второго.

syms x
assume(x > 5)
assume(x < 10)
assumptions
ans =
x < 10

Примите первое предположение в дополнение к второму при помощи assumeAlso. Проверяйте, что существуют оба предположения.

assumeAlso(x > 5)
assumptions
ans =
[ 5 < x, x < 10]

Очистите предположения на x.

assume(x,'clear')

Примите оба условия с помощью & оператор. Проверяйте, что существуют оба предположения.

assume(x>5 & x<10)
assumptions
ans =
[ 5 < x, x < 10]

Очистите предположения на x для будущих вычислений.

assume(x,'clear')

Предположения на подынтегральном выражении

Вычислите неопределенный интеграл с и без предположения на символьном параметре a.

Используйте assume установить предположение что a не равняется -1.

syms x a
assume(a ~= -1)

Вычислите этот интеграл.

int(x^a,x)
ans =
x^(a + 1)/(a + 1)

Теперь очистите предположение и вычислите тот же интеграл. Без предположений, int возвращает этот кусочный результат.

assume(a,'clear')
int(x^a, x)
ans =
piecewise(a == -1, log(x), a ~= -1, x^(a + 1)/(a + 1))

Предположения на параметрах и переменных уравнения

Используйте предположения, чтобы ограничить возвращенные решения уравнения к конкретному интервалу.

Решите это уравнение.

syms x
eqn = x^5 - (565*x^4)/6 - (1159*x^3)/2 - (2311*x^2)/6 + (365*x)/2 + 250/3;
solve(eqn, x)
ans =
   -5
   -1
 -1/3
  1/2
  100

Используйте assume ограничить решения интервала –1 <= x <= 1.

assume(-1 <= x <= 1)
solve(eqn, x)
ans =
   -1
 -1/3
  1/2

Установите несколько предположений одновременно при помощи логических операторов and, or, xor, not, или их ярлыки. Например, все отрицательные решения меньше, чем -1 и все положительные решения, больше, чем 1.

assume(x < -1 | x > 1)
solve(eqn, x)
ans =
  -5
 100

Для дальнейших расчетов очистите предположения.

assume(x,'clear')

Используйте предположения для упрощения

Установка соответствующих предположений может привести к более простым выражениям.

Попытайтесь упростить выражение sin(2*pi*n) использование simplify. simplify функция не может упростить вход и возвращает вход как есть.

syms n
simplify(sin(2*n*pi))
ans =
sin(2*pi*n)

Примите n целое число. simplify теперь упрощает выражение.

assume(n,'integer')
simplify(sin(2*n*pi))
ans =
0

Для дальнейших расчетов очистите предположение.

assume(n,'clear')

Предположения по выражениям

Установите предположение на символьном выражении.

Можно установить предположения не только на переменных, но также и по выражениям. Например, вычислите этот интеграл.

syms x
f = 1/abs(x^2 - 1);
int(f,x)
ans =
-atanh(x)/sign(x^2 - 1)

Установите предположение x2 –  1> 0, чтобы привести к более простому результату.

assume(x^2 - 1 > 0)
int(f,x)
ans =
-atanh(x)

Для дальнейших расчетов очистите предположение.

assume(x,'clear')

Предположения, чтобы доказать отношения

Докажите отношения, которые содержат при определенных обстоятельствах первым принятием условий и затем использованием isAlways.

Докажите тот sin(pi*x) никогда не равно 0 когда x не целое число. isAlways функция возвращает логический 1 TRUE), что означает, что условие содержит для всех значений x под предположениями набора.

syms x
assume(~in(x,'integer'))
isAlways(sin(pi*x) ~= 0)
ans =
  logical
   1

Предположения на элементах матрицы

Установите предположения на всех элементах матричного использования sym.

Создайте символьную матрицу 2 на 2 A с автоматически сгенерированными элементами. Задайте set как rational.

A = sym('A',[2 2],'rational')
A =
[ A1_1, A1_2]
[ A2_1, A2_2]

Возвратите предположения на элементах A использование assumptions.

assumptions(A)
ans =
[ in(A1_1, 'rational'), in(A1_2, 'rational'),...
  in(A2_1, 'rational'), in(A2_2, 'rational')]

Можно также использовать assume установить предположения на всех элементах матрицы. Теперь примите все элементы A имейте положительные рациональные значения. Установите предположения как ячейку векторов символов {'positive','rational'}.

assume(A,{'positive','rational'})

Возвратите предположения на элементах A использование assumptions.

assumptions(A)
ans =
[ 0 < A1_1, 0 < A1_2, 0 < A2_1, 0 < A2_2,...
  in(A1_1, 'rational'), in(A1_2, 'rational'),...
  in(A2_1, 'rational'), in(A2_2, 'rational')]

Для дальнейших расчетов очистите предположения.

assume(A,'clear')

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

свернуть все

Оператор Assumption в виде символьного выражения, уравнения, отношения или вектора или матрицы символьных выражений, уравнений или отношений. Также можно объединить несколько предположений при помощи логических операторов and, or, xor, not, или их ярлыки.

Выражение, чтобы установить предположение на в виде символьной переменной, выражения, вектора или матрицы. Если expr вектор или матрица, затем assume(expr,set) устанавливает предположение что каждый элемент expr принадлежит set.

Ряд допущений в виде вектора символов, массива строк или массива ячеек. Доступными предположениями является 'integer', 'rational'действительный, или 'positive'.

Можно объединить несколько предположений путем определения массива строк или массива ячеек из символьных векторов. Например, примите положительное рациональное значение путем определения set как ["positive" "rational"] или {'positive','rational'}.

Советы

  • assume удаляет любые предположения, ранее установленные на символьных переменных. Чтобы сохранить предыдущие предположения при добавлении предположения, используйте assumeAlso.

  • Когда вы удаляете символьную переменную из MATLAB® использование рабочей области clear, все предположения, что вы устанавливаете на той переменной, остаются в символьном механизме. Если вы позже объявляете новую символьную переменную с тем же именем, это наследовало эти предположения.

  • Очистить весь набор предположений на символьной переменной var, используйте эту команду.

    assume(var,'clear')
  • Чтобы удалить все объекты в рабочем пространстве MATLAB и закрыть механизм Symbolic Math Toolbox™, сопоставленный с рабочим пространством MATLAB, очищающим все предположения, используйте эту команду:

    clear all
  • Комплексные числа проектов MATLAB в неравенствах к вещественной оси. Если condition неравенство, затем обе стороны неравенства должны представлять вещественные значения. Неравенства с комплексными числами недопустимы, потому что поле комплексных чисел не является упорядоченным полем. (Невозможно сказать ли 5 + i больше или меньше, чем 2 + 3*i.), Например, x > i становится x > 0, и x <= 3 + 2*i становится x <= 3.

  • Тулбокс не поддерживает предположения на символьных функциях. Сделайте предположения на символьных переменных и выражениях вместо этого.

  • Когда вы создаете новое символьное переменное использование sym и syms, также можно установить предположение, что переменная является действительной, положительной, целочисленной, или рациональной.

    a = sym('a','real');
    b = sym('b','rational');
    c = sym('c','positive');
    d = sym('d','positive');
    e = sym('e',{'positive','integer'});

    или более эффективно

    syms a real
    syms b rational
    syms c d positive
    syms e positive integer
Представленный в R2012a