Calculate Inverse of a Large Matrix Faster than Gaussian Elimination

In summary, the Gauss-Seidel iterative method takes longer than a direct method, but you can try Newton-Raphson.
  • #1
eddiechai2003
10
0

Homework Statement



Is there an iterative method to calculate an inverse of a large matrix faster than a direct method (like Gaussian elimination, or inverse of LU, etc...) ?


Homework Equations





The Attempt at a Solution



I tried the Gauss-Seidel iterative method to inverse a matrix, but unfortunately, it takes longer than a direct method.
 
Physics news on Phys.org
  • #2
You can also try Newton-Raphson. Consider first computing the reciprocal of a real number. Given y we want to compute x = 1/y. This amounts to solving the equation:

1/x - y = 0

Newton-Raphson then gives:

x_{n+1} = x_{n} - (1/x_{n} - y)/(-1/x_{n}^2) =

x_{n} + x_{n}[1 - y x_{n}]

This algorithm doesn't contain any divisions itself, so it is a true division algorithm. In case of matrices you can simply take y to be a matrix and start to iterate with some trial inverse x_{0}. Certain conditions have to be met for convergence. But it is clear that if the above algorithm converges, then that means that the second term tends to zero, so the term in the square brackets will then tend to zero, and thatmeans that x_{n} will apprach the inverse of y.
 
  • #3
Hello Count Iblis,

I tried your solution, but it doesn't converge if I randomly choose the value of x_{0}.

What are the conditions for convergence? And how to 'find' the proper x_{0}?

Thanks.
 
  • #5
There are many methods, as inverting matrices is the heart of any FEA solver. Looking through the ANSYS theory reference, aside from a direct solver there is a sparse direct solver which as you mentioned decomposes the matrix into an upper and lower triangular marix. The rest of mostly copy and pasted.

The frontal (or wavefront) solution procedure is discussed by Irons(17) and Melosh and Bamford(25). The number of equations which are active after any element has been processed during the solution procedure is called the wavefront at that point. The method used places a wavefront restriction on the problem definition, which depends upon the amount of memory available for a given problem. Many thousand DOFs (degrees of freedom) on the wavefront can be handled in memory on some currently available computers. Wavefront limits tend to be restrictive only for the analysis of arbitrary 3-D solids. In the wavefront procedure, the sequence in which the elements are processed in the solver (the element “order”) is crucial to minimize the size of the wavefront.
[tex] \sum^L_{j=1} K_{kj}u_j = F_k[/tex]
To eliminate a typical equation, i=k, the equation is first normalized to:
[tex] \sum^L_{j=1} \frac{K_{ij}}{K_{ii}}u_j = \frac{F_i}{K_{ii}}[/tex]
Then rewrite
[tex] \sum^L_{j=1} K_^*{ij}u_j = F^*_i[/tex]
Where
[tex]K^*_{ij} = \frac{K_{ij}}{K_{ii}}[/tex]
[tex]F^*_{ij} = \frac{F_{i}}{K_{ii}}[/tex]
Where Kii is known as the pivot term.

There are also several iterative solvers. There are several conjugate gradient methods along with a few others. I would try and get some research on FEA solvers and you should find many ways to solve linear combinations of equation.
 

What is the purpose of calculating the inverse of a large matrix?

The inverse of a matrix is a mathematical operation that allows us to find the original matrix from its inverse. This is useful for various applications in mathematics, engineering, and science, such as solving linear equations, computing determinants, and performing transformations.

Why is Gaussian elimination not an efficient method for calculating the inverse of a large matrix?

Gaussian elimination is a commonly used method for solving systems of linear equations. However, when it comes to calculating the inverse of a large matrix, it is not the most efficient method. This is because Gaussian elimination involves a lot of computations and is prone to numerical errors, which can be amplified when dealing with large matrices.

What is the fastest method for calculating the inverse of a large matrix?

The fastest method for calculating the inverse of a large matrix is using LU decomposition. This method involves breaking down the original matrix into two triangular matrices, which can then be easily inverted. This method is more efficient than Gaussian elimination as it involves fewer computations and is less prone to numerical errors.

Can parallel computing be used to speed up the calculation of the inverse of a large matrix?

Yes, parallel computing can be used to speed up the calculation of the inverse of a large matrix. This involves breaking down the computations into smaller parts and running them simultaneously on multiple processors. This can significantly reduce the time it takes to calculate the inverse of a large matrix.

Are there any alternative methods for calculating the inverse of a large matrix besides LU decomposition?

Yes, there are other methods for calculating the inverse of a large matrix, such as Cholesky decomposition, QR decomposition, and Schur complement method. These methods may have different advantages and disadvantages, and the choice of method may depend on the specific characteristics of the matrix and the desired level of accuracy.

Similar threads

  • Calculus and Beyond Homework Help
Replies
1
Views
642
  • Engineering and Comp Sci Homework Help
Replies
2
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
10
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
13
Views
6K
  • Programming and Computer Science
Replies
1
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
34
Views
2K
  • Precalculus Mathematics Homework Help
Replies
5
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
6
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
4
Views
13K
Back
Top