Symbolic factorization analysis

Hi, I need a symbolic factorization of the matrix, similar to symbfact in MATLAB. I have a sparse matrix:
A = sparse([ 2 0 0 0 0 1
0 2 1 1 1 1
0 1 2 2 1 1
0 1 2 2 0 2
0 1 1 0 2 2
1 1 1 2 2 0]

Using MATLAB, I get

R = 1 0 0 0 0 1
0 1 1 1 1 1
0 0 1 1 1 1
0 0 0 1 1 1
0 0 0 0 1 1
0 0 0 0 0 1

The link below mentions symbolic factorization, but whether it is possible to obtain a matrix as a result?

What do you mean by symbolic factorization?

1 Like

According to Matlab or User Guide for CHOLMOD, it is a symbolic factorization analysis that returns 0-1 matrix whose structure is that of chol(A), or cholesky(A) in Julia. For example, the matrix

A = sparse([ 2 0 0 0 0 1
             0 2 1 1 1 1
             0 1 2 2 1 1
             0 1 2 2 0 2
             0 1 1 0 2 2
             1 1 1 2 2 0])

is not positive definite, and Cholesky factorization failed, but symbolic factorization in the MATLAB [count,h,parent,post,R] = symbfact(A) gives the result for R matrix, which I need.

I am almost sure that I need results from the function fact_().
https://github.com/JuliaLang/julia/blob/master/stdlib/SuiteSparse/src/cholmod.jl

It’s probably possible to extract it from LDLFactorizations.jl but will require a little hacking. I’ll be happy to review a pull request if you’re interested.

That would be great.

I found a solution, if anyone needs it, functions etree and ereach solve the problem.

Dear Mirsad,

would you have a Julia script to compute a symbolic factorization (e.g., Cholesky) of a matrix with rational entries?

Many thanks in advance,

Victor