To accelerate the computation, we utilize the precomputed factors of the initial matrix and the solutions to the original system of equations, exploit the sparsity of the matrices and vectors, and apply memoization and parallelization techniques.
A number of approaches, including direct methods, which factor the Schur complement and iterative methods, which use Krylov space solvers, are then available to solve the system. The intactness of the initial matrix allows us to compute its factors only once, and then without refactoring the modified matrix, we solve the augmented system by means of the Schur complement. We characterize the situations when the matrix updates lead to nonsingular systems of equations when the initial matrix is nonsingular. Our approach keeps the initial matrix as a submatrix of the new system of equations and the subsequent updates are accounted for by augmenting the system in blocked form. AMPS, our augmented matrix solver, updates the solution by means of an augmented matrix formulation, in which all changes made to the coefficient matrix are represented by adding rows and columns to the initial matrix. In the power grid problem, the size of the matrix remains unchanged. In the surgical simulations, the dimension of the matrix changes while it is being updated, since the matrix arises from a finite element mesh that is being cut, and we have to remesh around the cut during the update.
MATRIX SOLVER UPDATE
We observe that the changes in both applications result in the matrix's being modified by a low-rank update within a principal submatrix. The second is contingency analysis in the power grids, when their operators need to simulate a large number of scenarios to predict what could happen when elements of the grid fail.
MATRIX SOLVER SIMULATOR
The first is surgical simulations, where a simulator used to train surgeons needs to provide haptic feedback by updating the system ten to hundred times per second. This problem arises in many computational science and engineering applications, and we consider two of them. In this dissertation, the problem of updating in real time the solution to a linear system of equations when a sequence of small changes is made to the data is considered. Shine is now trying to convert the solver into an iPhone app.Augmented Matrix Solvers for Dynamic System of Equations A calculus student uses the matrix solver. My calculus students compared their solutions for the coefficients of a quadratic equation that they had to solve for their carpet friction experiment, which was great because their first answers were wrong. The next step is to turn this into a function or a class that can be used in other codes, but it’s already proved useful.
MATRIX SOLVER CODE
The code above solves the following system of equations: '''Get the shape of the matrix (number of rows and columns)'''
'''Convert the input matrix, m (which is a list) into an array''' With an additional column for the solution'''
'''The coefficient matrix (m) can be any sized square matrix Gaussian Elimination Matrix Solver by Alex Shine (comments by me). I helped him create a Gaussian Elimination solver in Python (which we’ve been using since last year).
MATRIX SOLVER HOW TO
One of my pre-Calculus students convinced me that the best way for him to learn how to work with matrices was for him to program a matrix solver.