Покажите предположения, влияющие на символьную переменную, выражение или функцию
assumptions(var)
assumptions
assumptions(
возвращает все предположения, которые влияют на переменную var
)var
. Если var
является выражением или функцией, assumptions
возвращает все предположения, которые влияют на все переменные в var
.
assumptions
возвращает все предположения, которые влияют на все переменные в MATLAB® Workspace.
Примите, что переменная n
является целым числом с помощью assume
. Возвратите предположение с помощью assumptions
.
syms n assume(n,'integer') assumptions
ans = in(n, 'integer')
Синтаксис in(n, 'integer')
указывает на n
, является целым числом.
Примите, что n
является меньше, чем x
и что x < 42
с помощью assume
. Функция assume
заменяет старые предположения на входе с новыми предположениями. Возвратите все предположения, которые влияют на n
.
syms x assume(n<x & x<42) assumptions(n)
ans = [ n < x, x < 42]
assumptions
возвращает предположение x < 42
, потому что это влияет на n
через предположение n < x
. Таким образом assumptions
возвращает переходное закрытие предположений, которое является всеми предположениями, которые математически влияют на вход.
Установите предположение на переменной m
что 1 < m < 3
. Возвратите все предположения на m
и x
с помощью assumptions
.
syms m assume(1<m<3) assumptions([m x])
ans = [ n < x, 1 < m, m < 3, x < 42]
Чтобы видеть предположения, которые влияют на все переменные, используйте assumptions
без любых аргументов.
assumptions
ans = [ n < x, 1 < m, m < 3, x < 42]
Для дальнейших вычислений очистите предположения.
assume([m n x],'clear')
Вы не можете установить дополнительное предположение на переменной с помощью assume
, потому что assume
очищает все предыдущие предположения на той переменной. Установить дополнительное предположение на переменной, с помощью assumeAlso
.
Установите предположение на x
с помощью assume
. Установите дополнительное предположение на использовании x
assumeAlso
. Используйте assumptions
, чтобы возвратить несколько предположений на x
.
syms x assume(x,'real') assumeAlso(x<0) assumptions(x)
ans = [ in(x, 'real'), x < 0]
Синтаксисом in(x, 'real')
указывает на x
, является real
.
Для дальнейших вычислений очистите предположения.
assume(x,'clear')
assumptions
принимает символьные выражения и функции, как введено и возвращает все предположения, которые влияют на все переменные в символьных выражениях или функциях.
Установите предположения на переменных в символьном выражении. Найдите все предположения, которые влияют на все переменные в символьном выражении с помощью assumptions
.
syms a b c expr = a*exp(b)*sin(c); assume(a+b > 3 & in(a,'integer') & in(c,'real')) assumptions(expr)
ans = [ 3 < a + b, in(a, 'integer'), in(c, 'real')
Найдите все предположения, которые влияют на все переменные, которые являются входными параметрами к символьной функции.
syms f(a,b,c)
assumptions(f)
ans = [ 3 < a + b, in(a, 'integer'), in(c, 'real')]
Очистите предположения для дальнейших вычислений.
assume([a b c],'clear')
Чтобы восстановить старые предположения, сначала сохраните предположения, возвращенные assumptions
. Затем можно восстановить эти предположения в любой точке путем вызова assume
или assumeAlso
.
Решите уравнение в течение пружины с помощью dsolve
под предположениями, что массой и коэффициентом упругости является positive
.
syms m k positive syms x(t) dsolve(m*diff(x,t,t) == -k*x, x(0)==0)
ans = C8*sin((k^(1/2)*t)/m^(1/2))
Предположим, что вы хотите исследовать решения, неограниченные предположениями, но хотеть восстановить предположения впоследствии. Сначала сохраните предположения с помощью assumptions
, затем очистите предположения и решите уравнение. dsolve
возвращает неограниченные решения.
tmp = assumptions;
assume([m k],'clear')
dsolve(m*diff(x,t,t) == -k*x, x(0)==0)
ans = C10*exp((t*(-k*m)^(1/2))/m) + C10*exp(-(t*(-k*m)^(1/2))/m)
Восстановите исходные предположения с помощью assume
.
assume(tmp)
После того, как вычисления завершены, очищают предположения с помощью assume
.
assume([m k],'clear')
Когда вы удаляете символьный объект из рабочего пространства MATLAB при помощи clear
, все предположения, что вы устанавливаете на том объекте, остаются в символьном механизме. Если вы объявляете новую символьную переменную с тем же именем, это наследовало эти предположения.
Чтобы очистить весь набор предположений на символьной переменной var
используют эту команду.
assume(var,'clear')
Чтобы очистить все объекты в рабочем пространстве MATLAB и закрыть механизм Symbolic Math Toolbox™, сопоставленный с рабочим пространством MATLAB, сбрасывающим все его предположения, используйте эту команду.
clear all