from __future__ import division
import numpy as np
import numpy.linalg as la
n = 5
np.random.seed(70)
eigvecs = np.random.randn(n, n)
eigvals = np.sort(np.random.randn(n))
A = np.dot(la.solve(eigvecs, np.diag(eigvals)), eigvecs)
print eigvals
X = np.random.randn(n, n)
# Run this cell in-place (Ctrl-Enter) many times.
Q, R = la.qr(X)
X = np.dot(A, Q)
print Q
la.norm(
np.dot(np.dot(Q, R), Q.T)
- A)
np.set_printoptions(linewidth=100)
np.dot(np.dot(Q.T, A), Q)