linalg::intBasis -- basis for
the intersection of vector spaces
Introductionlinalg::intBasis(S1, S2...) returns a
basis for the intersection of the vector spaces spanned by the vectors
in S1, S2, ....
Call(s)linalg::intBasis(S1, S2...)
ParametersS1, S2... |
- | either sets or lists of n-dimensional
vectors (a vector is an n x 1 or 1 x n matrix of
a domain of category Cat::Matrix) |
Returnsa set or a list of vectors, according to the domain type of the
parameter S1.
Related
Functionslinalg::basis,
linalg::sumBasis
DetailsS1.Cat::Field.
Example
1We define three vectors v[1],v[2],v[3] in Q^2:
>> MatQ := Dom::Matrix(Dom::Rational): v1 := MatQ([[3, -2]]); v2 := MatQ([[1, 0]]); v3 := MatQ([[5, -3]])
+- -+
| 3, -2 |
+- -+
+- -+
| 1, 0 |
+- -+
+- -+
| 5, -3 |
+- -+
A basis for the vector space V1 intersect V2 intersect V3 with V1=<{v[1],v[2],v[3]}>, V2=<{v[1],v[3]}> and V3=<{v[1]+v[2],v[2],v[1]+v[3]}> is:
>> linalg::intBasis([v1, v2, v3], [v1, v3], [v1 + v2, v2, v1 + v3])
-- +- -+ +- -+ --
| | 4, -2 |, | 1, 0 | |
-- +- -+ +- -+ --
Example
2The intersection of the two vector spaces spanned by the
vectors in S1 and S2, respectively:
>> S1 := {matrix([[1, 0, 1, 0]]), matrix([[0, 1, 0, 1]])};
S2 := {matrix([[1, 2, 1, 1]]), matrix([[-1, -2, 1, 0]])}
{ +- -+ +- -+ }
{ | 0, 1, 0, 1 |, | 1, 0, 1, 0 | }
{ +- -+ +- -+ }
{ +- -+ +- -+ }
{ | -1, -2, 1, 0 |, | 1, 2, 1, 1 | }
{ +- -+ +- -+ }
is the zero-dimensional space:
>> linalg::intBasis(S1, S2)
{}