Get one element of a set

MuPAD® notebooks will be removed in a future release. 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.


solvelib::getElement(S, <Random>)


solvelib::getElement(S) returns an element of S.

S can be a set of any type; see solve for an overview of all sets.

solvelib::getElement returns the value FAIL if:

  • S is the empty set

  • the solver cannot find any element of the set due to the solver's limitations

  • the solver cannot compute the first element of a set. You can use the Random option to check a random element of a set instead of the first element

  • the answer depends on a case analysis on some parameter

With the option Random, the probability to get any particular element of a set is:

  • Roughly equal for the elements of a finite set

  • Proportional to the multiplicities for the elements of a finite multiset of type Dom::Multiset

  • Unspecified for the elements of an infinite set. Practically, the same result does not occur twice for infinite sets.


Example 1

If S is a finite set, the solver returns just one of the elements:

solvelib::getElement({2, 7, a})

Example 2

For image sets, the solver replaces every parameter by a constant:

S:=Dom::ImageSet(k*PI, k, solvelib::BasicSet(Dom::Integer))


Example 3

If the set is empty, the solver cannot find any element:


solvelib::getElement might fail to find an element of a set although that set is not empty.

solvelib::getElement(solve(exp(x) + cos(x) = x^2,x))

Example 4

Without the option Random, solvelib::getElement always produces the same result for a set:

solvelib::getElement({$1..5}) $i=1..5

With the option Random, the returned element varies randomly from call to call:

solvelib::getElement({$1..5}, Random) $i=1..15

The distribution of the returned values is close to the uniform distribution. For multisets, the multiplicity of elements is taken into account:

solvelib::getElement(Dom::Multiset(1$4, 2$2), Random) $i=1..18

Example 5

For the following set parametrized by integers, the solver fails to find an element. This is because the solver tries only the first parameter-value pair k = 0 for which the result is undefined. After that the solver does not try any other parameter-value pairs:


For the sets with the undefined first element, you can get the result calling the solver with the option Random:

solvelib::getElement(1/Z_, Random)



Any set



Returns a random element of a set. Without this option, solvelib::getElement(S) always returns the same element.

Return Values

solvelib::getElement returns a MuPAD® object representing an element of S, or FAIL if no element could be determined.

Overloaded By


See Also

MuPAD Functions