201702GraduateEx0600 - dknife/Graduate2017_Autumn GitHub Wiki


import numpy as np

M = np.array(
    [[1,3,3,2,4,9,2,3],
     [2,1,4,2,3,8,2,1],
     [3,2,3,3,4,7,2,2],
     [4,1,4,3,5,6,2,3],
     [5,2,3,2,6,5,3,1],
     [6,1,3,2,7,4,3,2],
     [7,2,4,4,8,3,3,3],
     [8,1,4,5,9,2,3,3]])

b = np.array([100 for x in range(0,8)])

def inverse(Mat):
    u,s,v = np.linalg.svd(Mat)
    Minv = np.dot (v.transpose(), np.dot(np.diag(s**-1),u.transpose()))
    return Minv

Minv = inverse(M)
I2 = Minv.dot(M)

x = Minv.dot(b)
print(x)

print(M.dot(x))