2

Consider a $n\times n$ Hankel Matrix

$$ H = \begin{bmatrix} x_{1} & x_{2} & \dots & x_{n} \\ x_{2} & x_{3} & \dots & x_{n+1} \\ \vdots \\ x_{n} & x_{n+1} & \dots & x_{2n} \end{bmatrix} $$ , where all $x_i \in \mathbb{Z}_p = \{ 0,\dots,p-1 \}$, where $p$ is prime.

What is the most efficient way to test whether the matrix is invertible or not. More concretely: Is there a more efficient than computing the determinant? If not, is there a more efficient way of computing the determinant of such a matrix?

Cryptonaut
  • 287
  • 2
  • 9

2 Answers2

1

There is an algorithm called Levinson Recursion for Toeplitz matrices which is $\mathcal{O}(n^{2})$. There is exists a similar algorithm for Hankel matrices called Hankel Recursion. It appears to be based on the Lanczos algorithm. People don't generally compute determinants the normal way. E.g. they form a matrix decomposition since the following

$$ A = LU \implies det(A) = det(LU) =det(L)det(U)$$

after this is done.

$$ det(L)det(U) =\prod_{i=1}^{n} l_{ii} \prod_{i=1}^{n} u_{ii} $$

Similarly with the QR decomp

$$ A =QR \implies det(A) = det(Q)det(R) $$

since the determinant of $ Q $ is 1 $$ det(A) = 1 \cdot \prod_{i=1}^{n} r_{ii} $$

However, in general, you don't want to use determinant to see if it is invertible. Just extra steps...

  • Thank you ver much for the link! I will try find and understand what I need from there. What do you mean by your last sentence "you don't want to use the determinant to see if it is invertible." What should I do instead? Solving the system of linear equations is basically as expensive at the very least, no? – Cryptonaut Jul 17 '18 at 19:30
  • @NoKnowledge do you have to use the determinant? The standard time complexity for determinants is $ \mathcal{O}(n!)$ they actually solve the system before hand and then the determinant to my understanding. So if you want to simply check if a system is invertible the fastest way it be similar to the cholesky decomp as hankel matrices are symmetric. –  Jul 17 '18 at 19:34
  • No I don't have to use anything. I just thought this may be a good approach. I just need some method to determine, whether the matrix is invertible or not. I need no other information about the matrix. – Cryptonaut Jul 17 '18 at 19:35
  • @NoKnowledge I think like the other person said there are technically faster methods based on the FFT but I have no idea how to implement them. It would take some searching. –  Jul 17 '18 at 19:37
  • One thing I noticed is that we are working in $\mathbb Z_p$, which is a little different than what I'm used to as I have an applied math background. But I bet the FFT ideas are also applicable in this setting. – littleO Jul 18 '18 at 00:14
  • @littleO the FFT is actually faster over prime numbers. It's usually over multiples of 2 but there is also algorithms for prime numbers. https://en.wikipedia.org/wiki/Prime-factor_FFT_algorithm . Has to do with the Chinese remainder theorem. –  Jul 18 '18 at 00:16
0

This is not a full answer, but it's too long for a comment. The Hankel matrix $$ H = \begin{bmatrix} x_1 & x_2 & x_3 & x_4 \\ x_2 & x_3 & x_4 & x_5 \\ x_3 & x_4 & x_5 & x_6 \\ x_4 & x_5 & x_6 & x_7 \\ \end{bmatrix} $$ can be enlarged to an anti-circulant matrix $$ \tilde H = \left[ \begin{array}{c|c} \begin{array}{c c c c} x_1 & x_2 & x_3 & x_4 \\ x_2 & x_3 & x_4 & x_5 \\ x_3 & x_4 & x_5 & x_6 \\ x_4 & x_5 & x_6 & x_7 \\ \end{array} & \begin{array}{c c c} x_5 & x_6 & x_7 \\ x_6 & x_7 & x_1 \\ x_7 & x_1 & x_2 \\ x_1 & x_2 & x_3\\ \end{array} \\ \hline \begin{array}{c c c c} x_5 & x_6 & x_7 & x_1 \\ x_6 & x_7 & x_1 & x_2 \\ x_7 & x_1 & x_2 & x_3 \\ \end{array} & \begin{array}{c c c} x_2 & x_3 & x_4 \\ x_3 & x_4 & x_5 \\ x_4 & x_5 & x_6\\ \end{array} \end{array} \right]. $$ I think some discrete Fourier transform techniques are available to perform computations with anti-circulant matrices efficiently. See this post for example: https://math.stackexchange.com/a/1377399/40119 Perhaps this would help with computations involving $H$, though I'm not certain.

littleO
  • 54,048
  • what are exactly the requirements to call a matrix circulant? What do you mean exactly by "it is diagonalized by the discrete Fourier basis"? What is the relation between the determinant of this matrix and the hankel matrix we started with? – Cryptonaut Jul 17 '18 at 18:44
  • that is not a circulant matrix.. – Exodd Jul 18 '18 at 11:37
  • @Exodd Oh, thanks, good point. The linear transformation $z \mapsto \tilde H z$ is not shift-invariant. I edited to use the term anti-circulant instead. – littleO Jul 18 '18 at 12:55