This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Free indeterminates of an expression

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.


freeIndets(object, <All>)


freeIndets(object) returns the free indeterminates of object as a set.

An identifier occurring in object is free if it cannot be replaced by another identifier without changing the mathematical meaning of object.

By default, freeIndets does not return free identifiers that occur only in the 0th operand of subexpressions of object.

The special identifiers PI, EULER, CATALAN are not free indeterminates. See Example 1.

If object is a polynomial, a function environment, a procedure, or a built-in kernel function, then freeIndets returns the empty set. See Example 3.


Example 1

Find free identifiers in the following image set. In this set, PI is a mathematical constant; therefore, it is not a free identifier. The operand f is a 0th operand. The variable k is not a free identifier because you can replace it by any other letter like m or n without changing the mathematical meaning. Therefore, only u is a free identifier:

e:= Dom::ImageSet(k*f(u)+PI, k, Z_)


To find all identifiers in the same image set, use indets:


Example 2

Use the All option to return free identifiers including the 0th operands of subexpressions. For example, compare the sets of free identifiers returned by freeIndets with the All option and without this option:

e := Dom::ImageSet(k*f(u)+PI, k, Z_):
freeIndets(e, All);

Example 3

freeIndets assumes that polynomials and functions do not have free indeterminates:

delete x, y:
freeIndets(poly(x*y, [x, y])),
freeIndets(x -> x^2+1)



An arbitrary object



Do not exclude free identifiers that occur in the 0th operand of subexpressions of object.

With this option, freeIndets does not exclude the 0th operand. If the 0th operand of a subexpression is an indeterminate, such as sin, the freeIndets function includes this operand in the result. See Example 2.

Return Values

set of identifiers.

Overloaded By



If object is an element of a library domain T that has a slot "freeIndets", then MuPAD® calls the slot routine T::freeIndets with object as an argument. You can use this approach to extend the functionality of freeIndets to user-defined domains. If no such slot exists, then freeIndets regards all identifiers occurring in elements of that domain as free, with the exception of mathematical constants.

See Also

MuPAD Functions

Was this topic helpful?