Borrar filtros
Borrar filtros

How can we calculate particular elements of inverse of a matrix (e.g. elements of A^(-1)) when the matrix (i.e. A) is given ?

3 visualizaciones (últimos 30 días)
I have a fairly large matrix (250*250) in symbolic form in MATLAB. Matrix is square invertible with size multiple of 2. I have to calculate the first two elements of the first two rows of its inverse (i.e. first 2x2 block). Matrix is very large and in symbolic form ,so, Matlab is not able to calculate the whole inverse due to time limitations. I have tried guassian elimination, LU factorization, block wise inverse technique. I have also tried the simple method of cofactors and determinent. In all the cases the problem is the same: very long time in the range of hours. A symbolic matrix of order greater 10*10 causes hanging on core i5 processor & 8GB RAM. Can anyone suggest some technique?

Respuestas (2)

John D'Errico
John D'Errico el 12 de Mayo de 2017
Just because you want to do something does not mean it is possible, at least computationally possible, with the hardware available. A symbolic matrix of that size will result in an immense number of terms in any element of the inverse. Trying to do the job by hand, so to speak, thus using determinants, Gaussian elimination, etc., will be as nasty.
Sorry. But you need to rethink your needs. You can't have what you want in this case. Of course, if you are willing to wait a sufficient number of years for Moore's law to catch up to you, then no problem! No, I don't know how long that will take. And there are some valid reasons to wonder if Moore's law might at some point reach a fundamental impasse, at least based on the current hardware trends.

Walter Roberson
Walter Roberson el 12 de Mayo de 2017
The inverse of a symbolic matrix has various elements each divided by the determinant of the matrix.
The determinant of a general N x N symbolic matrix involves adding factorial(N) terms, each of length N. For a 250 x 250 matrix, this would be 250! * 250 elements, which is about 8 * 10^494 elements.
The number of elementary particles in the universe is estimated to be about 10^80 . It would therefore be necessary to store about 8 * 10^414 elements worth of information per elementary particle in the universe in order to express the determinant of a general 250 x 250 matrix.
If each elementary particle that we know of somehow turned out to be a universe as large as the one we know, and each of the elementary particles in those subuniverses turned out to be universes themselves, and each of those sub-subuniverses turned out.... well, you would need about 8 layers of nesting of universes just to have enough elementary particles to be able to represent the terms at one element per particle.
In other words, you have not even the slightest sliver of a smidgen of a morsel of a wafer of a hope of being able to do what you want to do.
Unless, that is, your symbolic matrix turns out to be pretty sparse. In particular it is not nearly as bad to calculate if your matrix is tridiagonal

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by