принять

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

Синтаксис

assume(condition)
assume(expr,set)
assume(expr,'clear')

Описание

пример

assume(condition) состояния, что condition допустим. 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)

Установите предположение x 2 –  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.

Создайте символьный матричный A 2 на 2 с автоматически сгенерированными элементами. Задайте 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', 'real' или '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

Для просмотра документации необходимо авторизоваться на сайте