Optimizing (Reducing run time) of a sparse matrix division
Show older comments
Hi, so I have a sparse matrix as shown below:
[ap ae 0 an 0 0 0 0 0 ...
[aw ap ae 0 an 0 0 0 0 ...
[0 aw ap 0 0 an 0 0 0 ...
[as 0 0 ap ae 0 an 0 0 0 ....
[0 as 0 aw ap ae 0 an 0 0 0 0 ...
and this matrix is multiplied by
[T1,1]
[T1,2]
[T1,3]
[T2,1]
T[2,2]
.
.
.
This is used to solve Ax=T
To find x, I use A\T,
but when the A matrix is really large (1000 x 1000 or even more), the matrix division starts taking up a lot of time, but most of the entries are 0.
I was wondering if there is any way to optimize this to reduce run time, or since it doesnt follow a particular pattern it can't be done?
6 Comments
Torsten
on 31 Mar 2022
And you already work with A, T in sparse format ?
Steven Lord
on 31 Mar 2022
What is "a lot of time" in this context?
Are aw, ap, ae, and/or T variables containing numbers or are they symbolic variables? If the latter, try substituting values for those variables before solving the system.
Walter Roberson
on 31 Mar 2022
If MATLAB is not able to detect one of the special sparse forms such as a bandwidth-limited matrix, then it uses solvers that typically end up needing dense matrices.
Bjorn Gustavsson
on 1 Apr 2022
If the standard methods doesn't "perform", then you can try the different iterative solvers available. You can check the documentation for Systems of Linear Equations for a list of those, or the help and documentation for pcg, bicg, bicgstab, bicgstabl, cgs, gmres, lsqr, minres, qmr, symmlq, or tfqmr.
Santosh Fatale
on 6 Apr 2022
What is the sparsity of the first matrix (Matrix A) in your case?
What are the dimesion for matrix A and matrix T?
As pointed out Steven, are the variables in matrix A are of type syms?
If possible could you provide the data for matrix A and matrix T?
Walter Roberson
on 6 Apr 2022
sparse() matrices cannot hold symbolic variables.
Answers (0)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!