STA: "CharPoly-vs-MinPoly.txt" Wednesday, 08Nov2023: ========================================= Matrices B1 B2 B3 with the same Char-Poly but different Min-Polys ========================================= (setq *POLY-var* "t") (progn (set-ring-modulus 7) (use-ring Modsym-M-ring)) ;;; Making some Jordan-blocks: (defaliasqq mms mat-make-square) (setq J1 (mms -1 0 0 0 -1 0 0 0 -1) J2 (mms -1 1 0 0 -1 0 0 0 -1) J3 (mms -1 1 0 0 -1 1 0 0 -1) ) ;;Let's look at the three matrices. (mat-Horiz-concat J1 J2 J3) [ -1 0 0 -1 1 0 -1 1 0 ] [ 0 -1 0 0 -1 0 0 -1 1 ] [ 0 0 -1 0 0 -1 0 0 -1 ] ;; Make a random invertible matrix. (setq U (mms 2 -3 -1 -1 -3 0 1 0 -1 ) ) (setq InvU (mat-inverse? U)) (defun Conj (matrix) (mat-mul InvU matrix U)) ;;Conjugation fnc... (setq B1 (conj J1) B2 (conj J2) B3 (conj J3)) ;; ...applied. ;; Our new matrices, similar to J1 J2 J3, respectively. (mat-Horiz-concat B1 B2 B3) [ -1 0 0 2 2 0 -2 2 -3 ] [ 0 -1 0 -1 3 0 0 3 -1 ] [ 0 0 -1 3 2 -1 -1 2 3 ] ;;For convenience, multiply CharPolys by -1. (defun NegCP (matrix) (poly-scale-by (mat-CharPoly matrix) -1)) ;;Compute CharPolys (essentially). (setq p1 (NegCP B1) p2 (NegCP B2) p3 (NegCP B3)) ;;Compute MinPolys. (setq m1 (mat-MinPoly B1) m2 (mat-MinPoly B2) m3 (mat-MinPoly B3)) ;; Compare CharPolys to MinPolys: (list p1 p2 p3) => t^3 + 3t^2 + 3t + 1, t^3 + 3t^2 + 3t + 1, t^3 + 3t^2 + 3t + 1 (list m1 m2 m3) => t + 1, t^2 + 2t + 1, t^3 + 3t^2 + 3t + 1 ;; Written differently: (list p1 p2 p3) => [t + 1]^3 , [t + 1]^3 , [t + 1]^3 (list m1 m2 m3) => t + 1 , [t + 1]^2 , [t + 1]^3 END: "CharPoly-vs-MinPoly.txt" ;; Compare CharPolys to MinPolys: (list p1 p2 p3) => t³+3t²+3t+1 , t³+3t²+3t+1 , t³+3t²+3t+1 (list m1 m2 m3) => t+1 , t²+2t+1 , t³+3t²+3t+1 ;; Written differently: (list p1 p2 p3) => [t+1]³ , [t+1]³ , [t+1]³ (list m1 m2 m3) => t+1 , [t+1]² , [t+1]³