Dear Laurent,
of course, it is possible to solve systems of linear
equations with SINGULAR. Assume A=(a_{ij}) is a matrix and b
a vector, both with entries in a field F (or, if you
like, of type number). Then you may solve the system
Ax=b in the following manner:
- create the ideal
I = < sum_j (a_{1j}*x_j-b_1) , ... , sum_j (a_{rj}*x_j-b_r) >
and compute a reduced standard basis G of I with respect
to a global monomial ordering (e.g. dp).
- the system Ax=b is solvable over F if and only if
G is not {1}, and then the solutions can be read from G.
You can also solve systems with parameters (i.e., for
different right-hand sides at a time):
Example: Solve the system of linear equations in
x,y,z,u,
3x + y + z - u = a
13x + 8y + 6z - 7u = b
14x +10y + 6z - 7u = c
7x + 4y + 3z - 3u = d
with parameters a,b,c,d. In SINGULAR:
ring R = (0,a,b,c,d),(x,y,z,u),(c,dp);
ideal E = 3x + y + z - u - a,
13x + 8y + 6z - 7u - b,
14x + 10y + 6z - 7u - c,
7x + 4y + 3z - 3u - d;
option(redSB);
simplify(std(E),1); //compute reduced SB
//-> _[1]=u+(6/5a+4/5b+1/5c-12/5d)
//-> _[2]=z+(16/5a-1/5b+6/5c-17/5d)
//-> _[3]=y+(3/5a+2/5b-2/5c-1/5d)
//-> _[4]=x+(-6/5a+1/5b-1/5c+2/5d)
Hence, the (unique) solution is:
x = 1/5 * (6a-b+c-2d),
y = 1/5 * (-3a-2b+2c+d),
z = 1/5 * (-16a+b-6c+17d),
u = 1/5 * (-6a-4b-c+12d).
This and more information about solving you can find in
the new Springer textbook "A SINGULAR Introduction to
Commutative Algebra" (by G.-M. Greuel and G. Pfister).
Concerning your second question: in SINGULAR 'syz(A)' is
the most efficient way to compute the kernel of A.
Best regards, Christoph Lossen.
email:
lossen@mathematik.uni-kl.de Posted in old Singular Forum on: 2002-08-16 13:04:51+02