np.random and np.linalg added
some attempts at polyfitting
polynomial working