Показать допущения, влияющие на символьную переменную, выражение или функцию
Предположим, что переменная 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 и закрыть механизм Toolbox™ символьной математики, связанный с рабочей областью MATLAB, сбросив все ее допущения, используйте эту команду.
clear all