|
D.3.2.3 inverse_L
Procedure from library linalg.lib (see linalg_lib).
- Usage:
- inverse_L(A); A = square matrix
- Return:
- list Inv representing a left inverse of A, i.e
- Inv[1] = matrix I and
- Inv[2] = poly p
such that I*A = unitmat(n)*p;
- Note:
- p=1 if 1/det(A) is computable and p=det(A) if not;
the computation computes first det(A) and then uses lift
Example:
| LIB "linalg.lib";
ring r=0,(x,y),lp;
matrix A[3][3]=x,y,1,1,x2,y,x,6,0;
print(A);
==> x,y, 1,
==> 1,x2,y,
==> x,6, 0
list Inv=inverse_L(A);
print(Inv[1]);
==> -6y, 6, -x2+y2,
==> xy, -x, -xy+1,
==> -x3+6,xy-6x,x3-y
print(Inv[2]);
==> -x3+xy2-6xy+6
print(Inv[1]*A);
==> -x3+xy2-6xy+6,0, 0,
==> 0, -x3+xy2-6xy+6,0,
==> 0, 0, -x3+xy2-6xy+6
| inverse, inverse_B
|