Matrix factorization with Symbolics.jl

I want to factorize a small matrix of integers symbolically with Symbols.jl. For examble

A = [0 1; 1 0]

How do I get symbolically the spectral decomposition? I could not find a way to specify a symbolic 1 with Symbolics.jl. In SymPy one would do Sym(1).

if all of the values are numbers then how is it symbolic?

1 is a symbol as well. My goal is to get an expression in terms of fractions/square roots/etc. For example compare

eigvals(Sym[0 0 1 0; 1 0 0 1; 0 1 0 0; 0 0 1 0])

resulting in
image

to

eigvals([0 0 1 0; 1 0 0 1; 0 1 0 0; 0 0 1 0])

4-element Vector{ComplexF64}:
    -0.6299605249474369 - 1.091123635971722im
    -0.6299605249474369 + 1.091123635971722im
 1.6032453817751706e-48 + 0.0im
      1.259921049894875 + 0.0im

I cannot come up with the expression in square roots and fractions from the digit output of the non-symbolic result. I can understand the SymPy output immediately though. The eigenvalues are 0 and roots of unity scaled by 2^(1/3).

1 Like

Worth filing an issue.