Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Scilab 5.4.0
Change language to: English - Français - Português - 日本語 -

Please note that the recommended version of Scilab is 6.1.0. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Linear Algebra > Kernel > im_inv

# im_inv

inverse image

### Calling Sequence

[X,dim]=im_inv(A,B [,tol])
[X,dim,Y]=im_inv(A,B, [,tol])

### Arguments

A,B

two real or complex matrices with equal number of columns

X

orthogonal or unitary square matrix of order equal to the number of columns of A

dim

integer (dimension of subspace)

Y

orthogonal matrix of order equal to the number of rows of A and B.

### Description

[X,dim]=im_inv(A,B) computes (A^-1)(B) i.e vectors whose image through A are in range(B)

The dim first columns of X span (A^-1)(B)

tol is a threshold used to test if subspace inclusion; default value is tol = 100*%eps. If Y is returned, then [Y*A*X,Y*B] is partitioned as follows: [A11,A12;0,A22],[B1;0]

where B1 has full row rank (equals rank(B)) and A22 has full column rank and has dim columns.

### Examples

A=[rand(2,5);[zeros(3,4),rand(3,1)]];B=[[1,1;1,1];zeros(3,2)];
W=rand(5,5);A=W*A;B=W*B;
[X,dim]=im_inv(A,B)
svd([A*X(:,1:dim),B])   //vectors A*X(:,1:dim) belong to range(B)
[X,dim,Y]=im_inv(A,B);[Y*A*X,Y*B]