1
$\begingroup$

Let us say we have a n * n system of equations like KU=F where K is a n*n matrix and U and F are n*1 vectors. K and F are defined and the final goal is to find U values. K is a sparse banded matrix and some of its components depends on U components. This dependence makes the whole problem nonlinear. Since the system of equations is nonlinear, we should use trial-error approach. We are using a decomposition method such as “LU” or “Cholesky” method to find U at each step. My question is about a case where 95% of the equations are linear which means that 95% lines and columns of the K are absolutely constants and only 5% of the equations are depending on U variables. Is there any way to avoid duplication of finding the LU or Cholesky matrices when most of matrix K is constant?

For instance, if we can find a part for the Cholesky matrix which is constant then we can start from that, and then only do the rest of the necessary operations for the 5% changing part of the equations. This will lead in to a lot of operation and time saving.

Any comment, and feedback, reference, ect is highly appreciated!

Best regards Meisam Jalalvand, PhD University of Bristol

$\endgroup$
5
  • $\begingroup$ Can you assume some rows of K do not depend on U? $\endgroup$ Nov 6, 2014 at 20:56
  • 1
    $\begingroup$ How does the nonlinear part look precisely? Can it be formulated as a Lagrange multiplier problem? $\endgroup$ Nov 6, 2014 at 23:29
  • $\begingroup$ Maybe the site scicomp.stackexchange.com would be a better place to ask. They have more specialists in computational sciences and some of them ought to be good with such algorithms. $\endgroup$ Nov 7, 2014 at 16:12
  • $\begingroup$ Yes! a very large number of rows and columns of K is independent of U. @AC_MOSEK $\endgroup$ Nov 8, 2014 at 12:26
  • $\begingroup$ To be honest, I am not sure I know the answer of your question. Can you please cite a reference about formulating a part of a matrix with Lagrange multiplier problem so I can have a look! Many thanks! @TheMaskedAvenger $\endgroup$ Nov 8, 2014 at 12:30

1 Answer 1

1
$\begingroup$

Let us write your matrix equation as the following block format, $$\begin{bmatrix}A & B\\ C & D(x,y) \end{bmatrix}\begin{bmatrix}x\\ y \end{bmatrix}=\begin{bmatrix}b\\ c \end{bmatrix},$$ in which we have reordered the nonlinear portion of the problem into the block $D$. We highlight its nonlinearity by giving it arguments. As you previously explained, 95% of the rows and columns in your system are linear, so $D$ has very few rows and columns.

Considering doing block LU factorization, which results

$$\begin{bmatrix}I & 0\\ CA^{-1} & I \end{bmatrix}\begin{bmatrix}A & 0\\ 0 & S(x,y) \end{bmatrix}\begin{bmatrix}I & A^{-1}B\\ 0 & I \end{bmatrix}\begin{bmatrix}x\\ y \end{bmatrix}=\begin{bmatrix}b\\ c \end{bmatrix},$$ in which the nonlinear Schur complement $S$ is defined

$$S(x,y)=D(x,y)-CA^{-1}B.$$

We have block triangular matrices and block diagonal matrices, which can all be easily inverted to yield a direct solution,

$$\begin{bmatrix}x\\ y \end{bmatrix}=\begin{bmatrix}I & -A^{-1}B\\ 0 & I \end{bmatrix}\begin{bmatrix}A^{-1} & 0\\ 0 & S^{-1}(x,y) \end{bmatrix}\begin{bmatrix}I & 0\\ -CA^{-1} & I \end{bmatrix}\begin{bmatrix}b\\ c \end{bmatrix}.$$ Since $A$ is linear, its Cholesky or LU factorization can be precomputed, making matrix-vector products with $A^{-1}$ very easy. So every part of the decomposition can be precomputed except the inverse of the Schur complement, $S$. The linear part of $S$, namely the portion $CA^{-1}B$ does not change, and can also be precomputed. That final perturbation by $D(x,y)$ cannot be precomputed, but as you note, the block is small, so the cost of doing so is significantly less than redoing the entire LU factorization.

Going through the procedure requires ~5% effort for each new solution of the nonlinear equations, compared to the initial computation of the LU factorization for the subblock $A$, as desired.

Let me know if you have questions and I can refine this answer.

$\endgroup$
6
  • $\begingroup$ Many thanks Richard! That is a very good start for me! $\endgroup$ Nov 8, 2014 at 21:11
  • $\begingroup$ Many thanks Richard! That is a very good start for me! I have now two particular question and I appreciate your answer. 1) Do we need to calculate $A^{-1}$? Since $n$ is very big, finding $A^{-1}$ is a quite heavy calculation. 2) What if $K$ is symmetric and the nonlinear part of the matrix is in the middle $\begin{bmatrix}A & B & 0\\ B & D(x,y,z) & C \\ 0 & C & E \end{bmatrix}\begin{bmatrix}x\\ y \\ z \end{bmatrix}=\begin{bmatrix}b\\ c\\d \end{bmatrix}$? Can we find a precomputed Cholesky matrices for $A$ and $E$ and only perform the factorisation process for $D(x,y,z)$? $\endgroup$ Nov 8, 2014 at 23:07
  • $\begingroup$ You never explicitly compute $A^{-1}.$ You compute its LU factorization $A=LU$ and then every time you need to perform a matrix-product with the inverse, $X=A^{-1}B$, you instead perform via the LU, as in $X=L^{-1}(U^{-1}B)$. The decomposition is expensive but only needs to be done once. $\endgroup$ Nov 9, 2014 at 4:41
  • $\begingroup$ For your second part, you will have to pivot your nonlinear part to the bottom corner, and treat the entire $A,E$ blocks as your "A" block. $\endgroup$ Nov 9, 2014 at 4:43
  • $\begingroup$ Thanks again Richard! That's helpful. One final question: The matrix $K$ is banded. Pivoting $D(x,y,z)$ to the bottom increases the band of the matrix significantly and compromises the operation saving! I really need to keep $D(x,y,z)$ at its position to reduce the band-width of $K$. Isn't any way to do block factorisation while keeping $D(x,y,z)$ at the middle as it is? $\endgroup$ Nov 10, 2014 at 18:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.