Why are matrix methods so widely used?

  • Thread starter Thread starter Telemachus
  • Start date Start date
  • Tags Tags
    Matrix
AI Thread Summary
Matrix methods are prevalent in solving partial differential equations (PDEs) due to their theoretical foundation, as all finite-dimensional linear operators can be represented by matrices. This representation simplifies handling boundary conditions, particularly in second-order differential equations. However, storing large, sparse matrices can be memory-intensive, especially when many elements are zero. To address this, sparse matrix techniques can be employed, which optimize storage and computational efficiency. The discussion highlights concerns about high condition numbers in discretized matrices, particularly with finer discretization, which can complicate numerical stability. Reordering terms or adjusting the formulation may help mitigate these issues, but challenges often stem from the inherent properties of the differential equations themselves. Overall, the combination of theoretical advantages and the ability to manage sparse matrices makes matrix methods a popular choice in numerical PDE solutions.
Telemachus
Messages
820
Reaction score
30
Hi there. The question I wanted to ask is: Why are matrix methods so widely used for numerical solution of partial differential equations?

Many times I've found that storing a whole matrix requires much more memory than just doing an iteration scheme to propagate the solution. Sometimes I think it is easier to deal with boundary conditions in matrix form, specially in second order differential equations. But sometimes storing a matrix in a program requires to store a lot of elements that are zero. What I want to know is if there is any advantage to parallelize a program when the system of equations are written in matrix form, or if there is any other reason why matrix methods are so widely used.

Thanks in advance.
 
Technology news on Phys.org
If it is just the logistics of storing large, sparse matrices, there are ways to deal with that. It sounds like you can benefit from techniques related to sparse matrices.
If it is the theory, then remember that all finite dimensional linear operators can be represented by matrices. And differential equations involve linear operators.
So the theory combined with the ability to handle sparse matrices give an appealing approach to solving partial differential equations.
 
  • Like
Likes Telemachus
If you have a large sparse matrix, how do you deal with all the zeros? when I write a fortran program to solve a linear system, I must specify every element in the matrix, even when perhaps 99% of them are just zeros. For big problems that could be problematic, and I can't avoid the fact of having to store all those elements which in some sense are trivial. Is there a way of doing that?
 
There are sparse matrix libraries for several computer languages. Use Google to find one for your language. I have never used one so I am not expert about them.
 
  • Like
Likes Telemachus
Ok, let me ask this anyway, perhaps someone can tell.

I often find that the matrix corresponding to a discretized differential equation has a big condition number, and that the condition number gets bigger when the discretization is finer, because the elements of the matrix tend to be more close to zero for thinner meshes. Should I be able in this cases to get a better suited matrix by a reordering of the terms in the equation? perhaps, dividing by the mesh size, or something like that, or when one faces this type of problems it is inherent to the differential equation and the representation of the discretized operators?
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...

Similar threads

Back
Top