MATLAB: Linear System Speed Up Ax=b

linear solvelinear systemMATLAB

Dear All,
I have a linear solve embedded in the right hand side function of a large system of ODEs that I am trying to solve using ode45 or ode15s.
I see that the profiling result on my code indicates that most of my time is spent evaluating the linear solves…
I have a right hand side matrix b continuously changing at each time point. There are three types of linear solves that I am calling: (1) a constant tri-diagonal matrix of dimension nxn where n is around 1000, (2) an upper triangular matrix with the diagonal and a line above the diagonal filled with numbers but all others are zero, (3) a lower triangular matrix with the diagonal and a line below the diagonal filled with numbers buit all others are zero.
in each case, I am specifying an option to indicate if matrix is either upper or lower triangular matrix. Then, I am using linsolve… but the code is slow… Do you think there is a practical way to speed up the linear solve evaluation in the code? the coefficient matrices are so sparse in this case and I think that there may be ways that we can exploit this… But not sure what exactly to do…
Thank you so much! 🙂

Best Answer

the coefficient matrices are so sparse in this case and I think that there may be ways that we can exploit this
If those matrices are being held in sparse data form, then the sparsity should be exploited alread