Установите предположение на символьном объекте
assume( состояния, что condition)condition isvalid. assume не дополнение. Вместо этого это автоматически удаляет все предыдущие предположения на переменных в condition.
Установите предположение с помощью связанного синтаксиса.
| Примите, что ‘x’ | Синтаксис |
|---|---|
| действительный | assume(x,'real') |
| рациональный | assume(x,'rational') |
| положительный | assume(x,'positive') |
| положительное целое число | assume(x,{'positive','integer'}) |
| меньше чем-1 или больше, чем 1 | assume(x<-1 | x>1) |
| целое число от 2 до 10 | assume(in(x,'integer') & x>2 & x<10) |
| не целое число | assume(~in(z,'integer')) |
| не равняются 0 | assume(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, orxor, 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.
Создайте символьную матрицу 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')
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
and | assumeAlso | assumptions | in | isAlways | not | or | piecewise | sym | syms