Banded Matrix Solver in Matlab

Hello,
I cannot find any banded matrix specific solver in Matlab.
Does anyone has a recomendation on how to do it in Matlab or do I have to go to Python/C++/fortran?
Thanks

 Accepted Answer

Steven Lord
Steven Lord on 18 Sep 2019
Since you've tagged this question with "sparse", try just using the backslash operator. The flowchart on that documentation page indicates when it will use a banded solver. Alternately, call decomposition with the 'banded' option and use the backslash operator on the decomposition object.

5 Comments

Nicolas
Nicolas on 19 Sep 2019
Edited: Nicolas on 19 Sep 2019
Do you know which banded routine the backlash operator calls? Probably a wrapper of fortran sovler sgbtrs, dgbtrs, cgbtrs, zgbtrs but which one?
Generally we don't provide details of the specific implementation.
I would like to point out the four routines you mentioned differ only in the type of data they accept. Generally the LAPACK naming scheme uses the first letter of a routine's name to indicate the type of data on which that routine operates. Routines whose names start with S work with real single data, D work on real double, C work on complex single, and Z work on complex double.
If you open their documentation pages on Netlib in browser tabs and quickly Tab between them, the only main differences between D and S should be the type of the AB and B inputs, and similarly for Z and C.
Thank you Steven. Would you have any recomendation for a constrained banded solver?
What constraints are you trying to place on the solution?
Nicolas
Nicolas on 19 Sep 2019
Edited: Nicolas on 19 Sep 2019
positivity for half of the unknowns, none on the other half

Sign in to comment.

More Answers (0)

Asked:

on 18 Sep 2019

Edited:

on 19 Sep 2019

Community Treasure Hunt

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

Start Hunting!