linalg::normalize
-- normalize
a vectorlinalg::normalize
(v)
normalizes the vector
v with respect to the 2-norm (|v|=sqrt( v*v
)).
linalg::normalize(v)
v |
- | a vector, i.e., an n x 1 or 1 x
n matrix of a domain of category Cat::Matrix |
a vector of the same domain type as v
.
linalg::normalize
(v)
is a
vector that has norm 1 and the same direction as v
.linalg::scalarProduct
.norm
, which is overloaded for vectors.
See the method "norm"
of the domain constructor Dom::Matrix
for details.v
, then an error occurs (see
example 2).We define the following vector:
>> u := matrix([[1, 2]])
+- -+ | 1, 2 | +- -+
Then the vector of norm 1 with the same direction as
u
is given by:
>> linalg::normalize(u)
+- -+ | 1/2 1/2 | | 5 2 5 | | ----, ------ | | 5 5 | +- -+
The following computation fails because the vector [1,2] cannot be normalized over the rationals:
>> v := Dom::Matrix(Dom::Rational)([[1, 2]]): linalg::normalize(v)
Error: can't normalize given vector over its component ring [l\ inalg::normalize]
If we define v
over the real numbers, then
we get the normalized vector of v
as follows:
>> w := Dom::Matrix(Dom::Real)(v): linalg::normalize(w)
+- -+ | 1/2 1/2 | | 5 2 5 | | ----, ------ | | 5 5 | +- -+