pinverse
Syntax
pinverse(X)
Arguments
X is a matrix.
Details
Calculate the pseudo-inverse matrix of X.
Return Value: a FAST DOUBLE MATRIX
Example
x=1..4$2:2;
x.pinverse()
col1 |
col2 |
---|---|
-2 | 1.5 |
1 | -0.5 |
y=1..8$2:4
y.pinverse();
col1 |
col2 |
---|---|
-1 | 0.85 |
-0.5 | 0.45 |
0 | 0.05 |
0.5 | -0.35 |
s1 = indexedSeries(2012.01.01..2012.01.04, [10, 20, 30, 40])
pinv(s1)
col1 |
col2 |
col3 |
col4 |
---|---|---|---|
0.0033 | 0.0067 | 0.01 | 0.0133 |
m=matrix(1..10, 11..20)
m.rename!(2020.01.01..2020.01.10, `A`B);
m.setIndexedMatrix!()
pinv(m)
col1 |
col2 |
col3 |
col4 |
col5 |
col6 |
col7 |
col8 |
col9 |
col10 |
---|---|---|---|---|---|---|---|---|---|
-0.0945 | -0.0758 | -0.057 | -0.0382 | -0.0194 | -0.0006 | 0.0182 | 0.037 | 0.0558 | 0.0745 |
0.04 | 0.0333 | 0.0267 | 0.02 | 0.0133 | 0.0067 | 0 | -0.0067 | -0.0133 | -0.02 |
For a matrix without a full rank, calculating the inverse will raise an error. The pseudo inverse can be calculated.
x=1 2 3 1 2 3$2:3
inverse(x) // Error: The argument of 'inverse' must be a square matrix.
pinverse(x)
col1 | col2 |
---|---|
-0.1067 | 0.2267 |
0.4133 | -0.2533 |
-0.0667 | 0.2667 |
Related function: inverse