Main Content


Show assumptions affecting symbolic variable, expression, or function



assumptions(var) returns all assumptions that affect variable var. If var is an expression or function, assumptions returns all assumptions that affect all variables in var.


assumptions returns all assumptions that affect all variables in MATLAB® Workspace.


Assumptions on Variables

Assume that the variable n is an integer using assume. Return the assumption using assumptions.

syms n
ans =
in(n, 'integer')

The syntax in(n, 'integer') indicates n is an integer.

Assume that n is less than x and that x < 42 using assume. The assume function replaces old assumptions on input with the new assumptions. Return all assumptions that affect n.

syms x
assume(n<x & x<42)
ans =
[ n < x, x < 42]

assumptions returns the assumption x < 42 because it affects n through the assumption n < x. Thus, assumptions returns the transitive closure of assumptions, which is all assumptions that mathematically affect the input.

Set the assumption on variable m that 1 < m < 3. Return all assumptions on m and x using assumptions.

syms m
assumptions([m x])
ans =
[ n < x, 1 < m, m < 3, x < 42]

To see the assumptions that affect all variables, use assumptions without any arguments.

ans =
[ n < x, 1 < m, m < 3, x < 42]	

For further computations, clear the assumptions.

assume([m n x],'clear')

Multiple Assumptions on One Variable

You cannot set an additional assumption on a variable using assume because assume clears all previous assumptions on that variable. To set an additional assumption on a variable, using assumeAlso.

Set an assumption on x using assume. Set an additional assumption on x use assumeAlso. Use assumptions to return the multiple assumptions on x.

syms x
ans =
[ in(x, 'real'), x < 0]

The syntax in(x, 'real') indicates x is real.

For further computations, clear the assumptions.


Assumptions Affecting Expressions and Functions

assumptions accepts symbolic expressions and functions as input and returns all assumptions that affect all variables in the symbolic expressions or functions.

Set assumptions on variables in a symbolic expression. Find all assumptions that affect all variables in the symbolic expression using assumptions.

syms a b c
expr = a*exp(b)*sin(c);
assume(a+b > 3 & in(a,'integer') & in(c,'real'))
ans =
[ 3 < a + b, in(a, 'integer'), in(c, 'real')

Find all assumptions that affect all variables that are inputs to a symbolic function.

syms f(a,b,c)
ans =
[ 3 < a + b, in(a, 'integer'), in(c, 'real')]

Clear the assumptions for further computations.

assume([a b c],'clear')

Restore Old Assumptions

To restore old assumptions, first store the assumptions returned by assumptions. Then you can restore these assumptions at any point by calling assume or assumeAlso.

Solve the equation for a spring using dsolve under the assumptions that the mass and spring constant are positive.

syms m k positive
syms x(t)
dsolve(m*diff(x,t,t) == -k*x, x(0)==0)
ans =

Suppose you want to explore solutions unconstrained by assumptions, but want to restore the assumptions afterwards. First store the assumptions using assumptions, then clear the assumptions and solve the equation. dsolve returns unconstrained solutions.

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)

Restore the original assumptions using assume.


After computations are complete, clear assumptions using assume.

assume([m k],'clear')

Input Arguments

collapse all

Symbolic input for which to show assumptions, specified as a symbolic variable, expression, or function, or a vector, matrix, or multidimensional array of symbolic variables, expressions, or functions.


  • When you delete a symbolic object from the MATLAB workspace by using clear, all assumptions that you set on that object remain in the symbolic engine. If you declare a new symbolic variable with the same name, it inherits these assumptions.

  • To clear all assumptions set on a symbolic variable var use this command.

  • To clear all objects in the MATLAB workspace and close the Symbolic Math Toolbox™ engine associated with the MATLAB workspace resetting all its assumptions, use this command.

    clear all
Introduced in R2012a