Documentation |
Field of numbers
This functionality does not run in MATLAB.
Dom::Numerical(x)
Dom::Numerical is the field of numbers.
Dom::Numerical is the domain of numbers represented by one of the kernel domains DOM_INT, DOM_RAT, DOM_FLOAT, or DOM_COMPLEX.
Dom::Numerical is of category Cat::Field due to pragmatism. This domain actually is not a field because bool(1.0 = float(3) / float(3)) returns FALSE, for example.
Elements of Dom::Numerical are usually not created explicitly. However, if one creates elements using the usual syntax, it is checked whether the input expression can be converted into a number (see below).
This means that Dom::Numerical is a façade domain which creates elements of domain type DOM_INT, DOM_RAT, DOM_FLOAT or DOM_COMPLEX. Every system function dealing with numbers can be applied, and computations in this domain are performed efficiently.
Dom::Numerical has no normal representation, because 0 and 0.0 both represent zero.
Viewed as a differential ring, Dom::Numerical is trivial. It only contains constants.
If x is a constant arithmetical expression such as sin(2) or PI + 2, the system function float is applied to convert x into a floating-point approximation.
An error message is issued if the result of this conversion is not of domain type DOM_FLOAT or DOM_COMPLEX.
Ax::canonicalRep, Ax::systemRep, Ax::efficientOperation("_divide"), Ax::efficientOperation("_mult"), Ax::efficientOperation("_invert")
Dom::Numerical contains numbers of the domains DOM_INT, DOM_RAT, DOM_FLOAT and DOM_COMPLEX:
Dom::Numerical(2), Dom::Numerical(2/3), Dom::Numerical(3.141), Dom::Numerical(2 + 3*I)
Constant arithmetical expressions are converted into a real and complex floating-point number, respectively, i.e., into an element of the domain DOM_FLOAT or DOM_COMPLEX (see the function float for details):
Dom::Numerical(exp(5)), Dom::Numerical(sin(2/3*I) + 3)
Note that the elements of this domain are elements of kernel domains, there are no elements of the domain type Dom::Numerical!
An error message is issued for non-constant arithmetical expressions:
Dom::Numerical(sin(x))
Error: The arguments are invalid. [Dom::Numerical::new]
Dom::Numerical is regarded as a field, and it therefore can be used as a coefficient ring of polynomials or as a component ring of matrices, for example.
We create the domain of matrices of arbitrary size (see Dom::Matrix) with numerical components:
MatN := Dom::Matrix(Dom::Numerical)
Next we create a banded matrix, such as:
A := MatN(4, 4, [-PI, 0, PI], Banded)
and a row vector with four components as a 1 ×4 matrix:
v := MatN([[2, 3, -1, 0]])
Vector-matrix multiplication can be performed with the standard operator * for multiplication:
v * A
Finally we compute the determinant of the matrix A, using the function det:
det(A)