U = [[.5, .5, .5, .5], [.5, -.5, -.5, .5], [.5, .5, -.5, -.5], [.5, -.5, .5, -.5]] %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Integer matrices % % with integer eigenvalues % %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Eigenvalues: 1, -1, -3, 3 U*diag([1, -1, -3, 3])*U' = [[0, 2, 0, -1], [2, 0, -1, 0], [0, -1, 0, 2], [-1, 0, 2, 0]] % Eigenvalues: 1, -3, -5, -1 U*diag([1, -3, -5, -1])*U' = [[-2, 2, 1, 0], [2, -2, 0, 1], [1, 0, -2, 2], [0, 1, 2, -2]] % Eigenvalues: 1, 3, -1, 5 U*diag([1, 3, -1, 5])*U' = [[2, 1, 0, -2], [1, 2, -2, 0], [0, -2, 2, 1], [-2, 0, 1, 2]] % Eigenvalues: 2, -4, -2, 4 U*diag([2, -4, -2, 4])*U' = [[0, 3, -1, 0], [3, 0, 0, -1], [-1, 0, 0, 3], [0, -1, 3, 0]] % Eigenvalues: 1, -5, -3, 3 U*diag([1, -5, -3, 3])*U' = [[-1, 3, -1, 0], [3, -1, 0, -1], [-1, 0, -1, 3], [0, -1, 3, -1]] % Eigenvalues: 3, -1, -3, 5 U*diag([3, -1, -3, 5])*U' = [[1, 3, 0, -1], [3, 1, -1, 0], [0, -1, 1, 3], [-1, 0, 3, 1]] % Eigenvalues: 5, -3, -5, -1 U*diag([5, -3, -5, -1])*U' = [[-1, 3, 2, 1], [3, -1, 1, 2], [2, 1, -1, 3], [1, 2, 3, -1]] % Eigenvalues: 3, 1, -5, 5 U*diag([3, 1, -5, 5])*U' = [[1, 3, 1, -2], [3, 1, -2, 1], [1, -2, 1, 3], [-2, 1, 3, 1]] % Eigenvalues: 1, -1, -3, 7 U*diag([1, -1, -3, 7])*U' = [[1, 3, -1, -2], [3, 1, -2, -1], [-1, -2, 1, 3], [-2, -1, 3, 1]] % Eigenvalues: 1, -7, -1, 3 U*diag([1, -7, -1, 3])*U' = [[-1, 3, -2, 1], [3, -1, 1, -2], [-2, 1, -1, 3], [1, -2, 3, -1]] % Eigenvalues: 4, -4, -6, -2 U*diag([4, -4, -6, -2])*U' = [[-2, 3, 2, 1], [3, -2, 1, 2], [2, 1, -2, 3], [1, 2, 3, -2]] % Eigenvalues: 4, -4, -2, 6 U*diag([4, -4, -2, 6])*U' = [[1, 4, -1, 0], [4, 1, 0, -1], [-1, 0, 1, 4], [0, -1, 4, 1]] % Eigenvalues: 4, -4, 2, -6 U*diag([4, -4, 2, -6])*U' = [[-1, 0, 1, 4], [0, -1, 4, 1], [1, 4, -1, 0], [4, 1, 0, -1]] % Eigenvalues: 4, -4, 2, 6 U*diag([4, -4, 2, 6])*U' = [[2, 3, -2, 1], [3, 2, 1, -2], [-2, 1, 2, 3], [1, -2, 3, 2]] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Matrices with at most 1 digit % % beyond the decimal point % % with integer eigenvalues % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Eigenvalues: 1, -2, -1, 2 U*diag([[10, -20, -10, 20]])*U'/10 = [[0, 1.5, -.5, 0], [1.5, 0, 0, -.5], [-.5, 0, 0, 1.5], [0, -.5, 1.5, 0]] % Eigenvalues: 1, -3, -2, 2 U*diag([[10, -30, -20, 20]])*U'/10 = [[-.5, 2, -.5, 0], [2, -.5, 0, -.5], [-.5, 0, -.5, 2], [0, -.5, 2, -.5]] % Eigenvalues: 1, -2, 2, 3 U*diag([[10, -20, 20, 30]])*U'/10 = [[1, 1, -1.5, .5], [1, 1, .5, -1.5], [-1.5, .5, 1, 1], [.5, -1.5, 1, 1]] % Eigenvalues: 2, -3, -2, -1 U*diag([[20, -30, -20, -10]])*U'/10 = [[-1, 1.5, .5, 1], [1.5, -1, 1, .5], [.5, 1, -1, 1.5], [1, .5, 1.5, -1]] % Eigenvalues: 2, -2, -1, 3 U*diag([[20, -20, -10, 30]])*U'/10 = [[.5, 2, -.5, 0], [2, .5, 0, -.5], [-.5, 0, .5, 2], [0, -.5, 2, .5]] % Eigenvalues: 1, -2, -1, -4 U*diag([[10, -20, -10, -40]])*U'/10 = [[-1.5, 0, 1, 1.5], [0, -1.5, 1.5, 1], [1, 1.5, -1.5, 0], [1.5, 1, 0, -1.5]] % Eigenvalues: 1, -2, -1, 4 U*diag([[10, -20, -10, 40]])*U'/10 = [[.5, 2, -1, -.5], [2, .5, -.5, -1], [-1, -.5, .5, 2], [-.5, -1, 2, .5]] % Eigenvalues: 1, -1, 2, -4 U*diag([[10, -10, 20, -40]])*U'/10 = [[-.5, -1, .5, 2], [-1, -.5, 2, .5], [.5, 2, -.5, -1], [2, .5, -1, -.5]] % Eigenvalues: 1, -1, 2, 4 U*diag([[10, -10, 20, 40]])*U'/10 = [[1.5, 1, -1.5, 0], [1, 1.5, 0, -1.5], [-1.5, 0, 1.5, 1], [0, -1.5, 1, 1.5]]