Home Online Manual
Top
Back: leftInverse
Forward: colrank
FastBack:
FastForward:
Up: control_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.11.2.8 rightInverse

Procedure from library control.lib (see control_lib).

Usage:
rightInverse(M); M a module

Return:
module

Purpose:
computes such a matrix L, that ML = Id

Note:
exists only in the case when M is free submodule

Example:
 
LIB "control.lib";
// a trivial example:
ring r = 0,(x,z),dp;
matrix M[1][2] = 1,x2+z;
print(M);
==> 1,x2+z
print( rightInverse(M) );
==> 1,
==> 0 
kill r;
// derived from the TwoPendula example:
ring r=(0,m1,m2,M,g,L1,L2),Dt,dp;
matrix U[1][3];
U[1,1]=(-L2)*Dt^4+(g)*Dt^2;
U[1,2]=(-L1)*Dt^4+(g)*Dt^2;
U[1,3]=(L1*L2)*Dt^4+(-g*L1-g*L2)*Dt^2+(g^2);
module M = module(U);
module L = rightInverse(M);
print(L);
==> (L1^2)/(g^2*L1-g^2*L2), 
==> (-L2^2)/(g^2*L1-g^2*L2),
==> 1/(g^2)                 
// check
print(matrix(M)*matrix(L));
==> 1