All problems
Pseudoinverse via Normal Equations
Problem
Compute the Moore-Penrose pseudoinverse of an n x 2 matrix A with independent columns:
A+ = (A^T A)^(-1) A^T
Return a 2 x n matrix, or None if A^T A is singular.
Hint
For full column rank, the pseudoinverse is the least squares operator (A^T A)^(-1) A^T.
Test cases
case 1
in: [[[1,0],[0,1],[0,0]]]
expected: [[1,0,0],[0,1,0]]
case 2
in: [[[1,1],[0,1],[1,0]]]
expected: [[0.3333333333333333,-0.3333333333333333,0.6666666666666666],[0.3333333333333333,0.6666666666666666,-0.3333333333333333]]
case 3
in: [[[1,1],[1,1],[1,1]]]
expected: null
case 4
in: [[[1,0],[0,2]]]
expected: [[1,0],[0,0.5]]
case 5
in: [[[2,1],[0,1],[1,1]]]
expected: [[0.5,-0.5,0],[-0.16666666666666663,0.8333333333333334,0.33333333333333337]]
Starter codePython
def pseudoinverse_normal(A):
# Your code here
pass5 test cases · run your code against them in the editor