Large symbolic linear system, solution is too slow

4 Ansichten (letzte 30 Tage)
john ulster
john ulster am 7 Okt. 2015
Bearbeitet: john ulster am 8 Okt. 2015
Hello, I have to solve a linear system Ax=b, where A is a 539x539 matrix. A is very sparse and it contains a symbolic parameter 's'. I'm trying to solve it using x=A\b but it takes hours. How can i solve the problem in a reasonable time?

Antworten (3)

John D'Errico
John D'Errico am 7 Okt. 2015
Bearbeitet: John D'Errico am 7 Okt. 2015
You simply can't.
The solution will be immense. Everybody wants things done immediately. They think their computer is infinitely fast, and that if they can't solve their problem, then there must be some magic trick.
Computers are not infinitely capable. (Well, except on tv or in the movies.) They have limits, and your problem is well beyond those capabilities. (You don't say HOW sparse it is.) Try it again in 5 or 10 or 20 years. :) Even then, make sure you have some capable hardware, and lots of memory.

Walter Roberson
Walter Roberson am 7 Okt. 2015
You solve the problem in a "reasonable" time by redefining "reasonable" to extend to numerous hours.
If you had been asked 20 years ago what a "reasonable" time was to solve such a system, would you have answered "a few minutes" ? "reasonable" is not an absolute quantity: it is based upon expectations, and sometimes those expectations do not have a lot of connection to what is feasible with affordable equipment.

john ulster
john ulster am 8 Okt. 2015
Bearbeitet: john ulster am 8 Okt. 2015
I'm following the solution strategy suggested by my thesis supervisor and he assured me on the feasibility of the calculation. I'm helping him with a research he is doing. Not with my laptop of course, but with a machine that has much much much more power. I was just impatient to try in the meanwhile here at home, but i will start working seriously on it from the next week. I've worked on simpler problems so far, from a computational point of view, so i didn't have any idea of the amount of time that this problem would require. I have already solved the problem with a smaller number of unknowns just to do a benchmark of the method but i need to write more equations in order to obtain a more representative physical solution.
John D'Errico, what do you mean with try in 20 years? That i can't solve the problem with MY computer, or that i cannot solve it at all?
  2 Kommentare
Walter Roberson
Walter Roberson am 8 Okt. 2015
We do not know how sparse your matrix is or what the structure of it is. For example, a tridiagonal band matrix might have a much more efficient solution than a system whose entries are scattered at more or less random through the entire entire array.
john ulster
john ulster am 8 Okt. 2015
Bearbeitet: john ulster am 8 Okt. 2015
It's formed by a lot of tridiagonal matrices put side by side. Each matrix is 49x49 and tridiagonal and the matrix A is formed by 11x11 matrices, and thus it's a 539x539 matrix.
The system represents a physical system divided in 49 parts. For each parts 7 balance equations and 4 algebraic bonds are written, for a total of 11 unknowns.
Thus every 49x49 sub-matrix contains the 49 coefficients of one of the eleven unknowns for the 49 equations of one of the eleven types of balances/bonds.
For example, a given sub-matrix contains the coefficients of the temperature which appears in the energy balance equation. Another matrix represents the coefficients of the temperature in the momentum equation, and so on. The equations are laplace transformed and thus 's' appears. They must be Laplace transformed for the purpose of the work. I'm not interested in the solution of the differential equations in time. As a further information, this is not a finite differences problem, since the only variable which appears in the derivates is the time. The other variables are linked by algebraic bonds.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by