#using python to do least squares with svd import numpy as np import numpy.linalg as la data = [[0,0], [1,2], [2,6], [3,12], [4,20], [5,30], [6,42], [7,56] ] avals = [[1,i,i**2] for i,j in data] bvals = [ j for i,j in data] A = np.array(avals) b = np.array(bvals) b = b.reshape(len(b),1) U,s,V = la.svd(A) print A print b print print print U print s print V print "Condition = ", s[0]/s[len(s)-1] x=np.dot(np.transpose(U),b) x=x[0:len(s)] for i in range(len(s)): if s[i] >1e-10: x[i,0]=x[i,0]/s[i] else: print "+ any amount", V[i] x=np.dot(np.transpose(V[0:len(s)]),x) print x