A recursive algorithm for computing the inverse of the Vandermonde matrix

: The inverse of a Vandermonde matrix has been used for signal processing, polynomial interpolation, curve fitting, wireless communication, and system identification. In this paper, we propose a novel fast recursive algorithm to compute the inverse of a Vandermonde matrix. The algorithm computes the inverse of a higher order Vandermonde matrix using the available lower order inverse matrix with a computational cost of O ( n 2 ) . The proposed algorithm is given in a matrix form, which makes it appropriate for hardware implementation. The running time of the proposed algorithm to find the inverse of a Vandermonde matrix using a lower order Vandermonde matrix is compared with the running time of the matrix inversion function implemented in MATLAB.


Introduction
The Vandermonde matrix and its inverse have been widely used in many applications, such as polynomial interpolation (Phillips, 2003), curve fitting (Wilf, 1958), system identification (Barker, Tan, & Godfrey, 2004), signal reconstruction (Olkkonen & Olkkonen, 2010), wireless communication (Wang, Scaglione, Giannakis, & Barbarossa, 1999), and signal processing (Ryan & Debbah, 2009). Computing the inverse of a Vandermonde matrix has been extensively studied over the last four decades. Tou ABOUT THE AUTHOR Youness Aliyari Ghassabeh received the BS degree in electrical engineering from the University of Tehran, Tehran, Iran, in 2004, the MS degree from K.N. Toosi University of Technology, Tehran, in 2006, and the PhD degree in mathematics and engineering from Queen's University, Kingston, ON, Canada, in 2013. He was a postdoctoral fellow at the Toronto Rehabilitation Institute, University Health Network, Toronto, ON between 2013 to 2014. He is currently a manager in Operational Risk Methodology group at Bank of Montreal, Toronto, ON, Canada. His main research interests include machine learning, statistical pattern recognition, probability theory and stochastic processes, image/signal processing, source coding and information theory.

PUBLIC INTEREST STATEMENT
The Vandermonde matrix and its inverse have been widely used in many applications, such as polynomial interpolation and signal processing. In this paper, a fast recursive algorithm is proposed to find the inverse of a Vandermonde matrix. We show that the inverse of a (n + 1) × (n + 1) Vandermonde matrix can be computed recursively using the inverse of a reduced size n × n Vandermonde matrix. The size of n × n Vandermonde matrix can be further reduced until we reach to a size small enough that the inverse can be computed easily.
Furthermore, the proposed algorithm can be used for finding the inverse Vandermonde matrix when the entries are observed sequentially. The proposed algorithm in each iteration uses the new entry and the previous inverse matrix to compute the inverse of the increased size Vandermonde matrix.
(1964) and Wertz (1965) used the Lagrange interpolation formula and expressed the elements of the inverse of a Vandermonde matrix as the coefficients of a polynomial. Explicit formulas for finding the inverse of the Vandermonde matrix are given in Kaufman (1969), Neagoe (1996), El-Mikkawya (2003), Respondek (2016). Authors in Gautschi and Inglese (1988) found lower bounds for the condition number of the Vandermonde matrices and showed that the bounds grow exponentially as the size of the matrix increases. Therefore, the Vandermonde matrices are usually ill conditioned and the methods proposed in Kaufman (1969), Neagoe (1996), El-Mikkawya (2003 may fail to accurately compute the elements of the inverse matrix. In later works, fast algorithms are derived in O(n 2 ) and O(n 3 ) to compute the elements of the inverse of the Vandermonde matrix (Eisinberg & Fedele, 2006;Gohberg & Olshevsky, 1997).
In this paper, we propose a novel recursive algorithm for computing the inverse of the Vandermonde matrix. We show that the inverse of a (n + 1) × (n + 1) Vandermonde matrix can be computed recursively using the inverse of a reduced size n × n Vandermonde matrix. The size of n × n Vandermonde matrix can be further reduced until we reach to a size small enough that the inverse can be computed easily. One of the advantages of the proposed recursive algorithm is its capability to update the inverse matrix when the size of the matrix increases due to observing new incoming entries. The entries of the Vandermonde matrix can be considered as a sequence such that by observing each new entry, the size of the matrix increases by one. In the real-world applications, we may confront situations where a complete set of the entries is not available in advance and the matrix entries are observed sequentially (Aliyari Ghassabeh & Abrishami Moghaddam, 2013;Aliyari Ghassabeh, Rudzicz, & Abrishami Moghaddam, 2015). The proposed techniques in Kaufman (1969), Neagoe (1996), El-Mikkawya (2003), Gohberg and Olshevsky (1997), Eisinberg and Fedele (2006) require to have access to the whole entries in advance to find the inverse matrix. In contrast to the previously mentioned methods, the proposed recursive algorithm has the ability to observe the entries sequentially and update the new (increased size) inverse matrix simultaneously. The computational cost for computing the inverse of (n + 1) × (n + 1) Vandermonde matrix using n × n dimensional inverse matrix after observing the new entry is O(n 2 ), which is considerably less than the usual matrix inversion techniques. Furthermore, the proposed recursive algorithm is presented in a matrix form that makes it suitable for hardware implementation and reduces the computational time and complexity.
The paper is organized as follows: Section 2 introduces the new recursive algorithm for computing the inverse of a Vandermonde matrix. The simulation results are given in Section 3, where the running time of the proposed algorithm for computing the inverse of a Vandermonde matrix is compared with the running time of the inverse function implemented in MATLAB. The concluding remarks are given in Section 4.

Proposed recursive algorithm
Let n = (a 1 , a 2 , … , a n ), n ≥ 1 denote an n × n Vandermonde matrix defined over the set of all complex numbers ℂ, (Mirsky, 2011). Therefore, the Vandermonde matrix is nonsingular if and only if the parameters a i , i = 1, … , n are distinct.
Definition 1 Let n = (a 1 , a 2 , … , a n ), n ≥ 1 be an n × n matrix defined by (a 1 , a 2 , … , a n ) = Then we have the following proposition Proposition 1 (Horn & Johnson, 1990) Suppose that n and n are defined as above.
Now we are in a position to prove the following lemma that introduces a recursive algorithm for finding the inverse of a Vandermonde matrix Lemma 1 Let n+1 = (a 1 , a 2 , … , a n+1 ) denote an (n + 1) × (n + 1) Vandermonde matrix such that a i ≠ 0, i = 1, … , n + 1. Let n = (a 1 , a 2 , … , a n ) be an n × n matrix according to Definition 1. Let n denote the identity matrix of order n. Furthermore, let b ij denote the ijth element of −1 n . Then the inverse of the Vandermonde matrix n+1 is given by the following recursive formula where where −1 n is computed using Proposition 1, n+1 is a constant matrix, and c i , i = 1, … , n + 1 are given by Remark 1 (a) The last two equations in 1 can be rewritten in matrix form as follows n = (a 1 , a 2 , … , a n ) = (b) For a two dimensional Vandermonde matrix 2 = (a 1 , a 2 ), where a 1 and a 2 are nonzero and distinct, 2 , 2 , and 2 are given as follows 3 By multiplying these three matrices, we obtain which is the well-known formula for the inverse of a 2 × 2 Vandermonde matrix 1 1 a 1 a 2 .
(c) To compute n , it appears that c 1 cannot be zero. The following lemma guarantees that c 1 is always non-zero. (1) is always a non-zero number.
Expressing the equations in a matrix form reduces the running time and makes the hardware implementation easier. Note that the coefficients c i , i = 2, … , n + 1 are needed to construct n+1 and using (2) they can be computed in O(n 2 ). The complexity of computing the matrix product n+1 n+1 is O(n 2 ) and the complexity of multiplying the result by n+1 is O(n), therefore the inverse of a (n + 1) × (n + 1) Vandermonde matrix −1 n+1 can be found using −1 n in O(n 2 ). The required steps for finding −1 n+1 = −1 (a 1 , a 2 , … , a n+1 ) from −1 n = −1 (a 1 , a 2 , … , a n ) is given as follows (a) Compute −1 n using Proposition 1. (b) Construct n+1 , n+1 , and n+1 using (1) and (2).
(c) The inverse matrix is the product of the matrices in step (b), i.e. The recursive algorithm for finding the inverse of an n × n Vandermonde matrix, −1 n , can be summarized as follows Note that we also can start with a 2 × 2 Vandermonde matrix 2 , increase the dimension of the Vandermonde matrix by one in each iteration and compute its inverse using Lemma 1. The iterations stop until the Vandermonde matrix has the desired size. In the next section, we compare the running time of the proposed algorithm with the running time of the matrix inversion function implemented in MATLAB.

Simulation results
In the following simulations we compute the running time of the proposed algorithm to find the inverse of a Vandermonde matrix in an adaptive manner for polynomial interpolation. The running time is compared with the inverse function implemented in MATLAB. The algorithm is implemented in MATLAB and the simulations run on a PC with Intel Pentium 4, 2.6 GHZ CPU, and 2048 Mb RAM.
Given a set of n observations (x i , y i ), i = 0, 1, … , n − 1, where x i s are distinct and x i ≠ 0, i = 0, 1 … , n − 1, we can find a unique polynomial p of degree n − 1 such that p(x i ) = y i , i = 0, 1, … , n − 1 (Phillips, 2003). Suppose that the interpolation polynomial p is given by p(x) = a 0 + a 1 x + a 2 x … + a n−1 x n−1 . Then the problem can be written in the following matrix form It is a system of n linear equations and the unknown coefficients a i , i = 0, 1, … , n − 1 are given by where n = (x 0 , x 1 , … , x n−1 ) is an n × n Vandermonde matrix. It is clear from (5) that finding the unknown coefficients involves computing the inverse of the associated Vandermonde matrix and multiplying it by [y 0 , y 1 , … , y n−1 ] t .
In the following simulations we assume that the observations are made sequentially and the observed data are used to find the polynomial p that passes through the given points. We assume that the input data are observed in an increasing order, i.e. 0 < x 0 < x 1 < … < x n−1 . As the number of observed data increases the degree of the polynomial p also linearly increases. For example, if we have k pairs of input data, the degree of the polynomial p is k − 1 and by observing the next pair of the data the degree of the polynomial increases to k. In other words, upon arrival of each observation the size of the associated Vandermonde matrix increases by one and we are required to compute the inverse of the new increased size Vandermonde matrix. After each observation, the current matrix inversion algorithms need the whole data set to compute the inverse of the Vandermonde matrix (e.g. the matrix inverse function in MATLAB requires the whole observations to find the inverse matrix). But the proposed algorithm uses only the current observation and the previous inverse matrix to update the inverse of the higher order Vandermonde matrix. As mentioned before, the computational cost for updating the Vandermonde matrix using the proposed algorithm is O(n 2 ), which is much less than most regular matrix inversion techniques.
We compute the required time for updating the Vandermonde matrix using the proposed algorithm as a function of the size of the matrix. The results are compared with the running time of the function implemented in MATLAB for computing the inverse matrix. For each matrix size, we repeated the experiment 100 times and the average running time was found. The initial size of the Vandermonde matrix is 10 and by adding new entries (observing new data) it gradually increases to 80. For the sake of simplicity, the input elements of a k × k Vandermonde matrix are assumed to be 1, 2, … , k, i.e., k = (1, 2, … , k). As mentioned before, for finding the polynomial p with degree n − 1 we need n pairs of observations (x i , y i ), i = 1, 2, … , n. Since our goal here is to test the performance of the proposed algorithm for finding the inverse of the Vandermonde matrix, we just need the first element of each observation. Figure 1 compares the running times of the proposed algorithm with the MATLAB inverse function for finding the inverse of a Vandermonde matrix as a function of the matrix size. The x-axis in Figure 1 is the size of the Vandermonde matrix, and y-axis is the requires time (second) to find the inverse matrix. It can be observed from Figure 1 that the proposed algorithm is faster than the matrix inversion function in MATLAB. 4

Conclusion
Computing the inverse of a Vandermonde matrix arises in many applications such as polynomial interpolation, curve fitting, and signal processing. In this paper, we proposed a fast recursive algorithm to find the inverse of a Vandermonde matrix. The proposed algorithm in each iteration uses the new entry and the previous inverse matrix to compute the inverse of the increased size Vandermonde matrix. The proposed algorithm can be implemented as a recursive function to find the inverse of a Vandermonde matrix recursively. The running times of the proposed algorithm to find the inverse of a Vandermonde matrix are compared with the inverse function implemented in MATLAB and the simulation results showed that for a sequential data the proposed algorithm is faster than the inverse function in MATLAB.

Funding
The author received no direct funding for this research.

Citation information
Cite this article as: A recursive algorithm for computing the inverse of the Vandermonde matrix, Youness Aliyari Ghassabeh, Cogent Engineering (2016), 3: 1175061.

Notes
1. For the sake of simplicity, hereafter we use n to refer to an n × n Vandermonde matrix (a 1 , a 2 , … , a n ). 2. Note that cofA n ij ∕d, i, j = 1, … , n is jith element of −1 n (Horn & Johnson, 1990). 3. We assume that the new entries are added from the left to the Vandermonde matrix. So, for a 2 × 2 Vandermonde matrix 2 = (a 1 , a 2 ), we have 1 = 1 and 1 = a 2 . For the general n × n case, see the Proof of Lemma 1 in Appendix. 4. Note that for the proposed algorithm, the required time for finding the inverse matrix using the previous inverse matrix and the new entry is reported. 5. Otherwise, the determinant of the Vandermonde matrix is zero and the inverse does not exist.
c 2 = −1 + 2a 11 + a 21 + a 31 … a n1 = a 11 − c 1 , c 3 = −1 + a 11 + 2a 21 + a 31 … a n1 = a 21 − c 1 , c 4 = −1 + a 11 + a 21 + 2a 31 … a n1 = a 31 − c 1 , You are free to: Share -copy and redistribute the material in any medium or format Adapt -remix, transform, and build upon the material for any purpose, even commercially. The licensor cannot revoke these freedoms as long as you follow the license terms.
Under the following terms: Attribution -You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

No additional restrictions
You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.