Установите допущение на символьный объект
assume(
утверждает, что condition
)condition
является допустимым. 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
, 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
.
Создайте символьную матрицу 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