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

 Réponse acceptée

Steven Lord
Steven Lord le 18 Sep 2019

1 vote

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 commentaires

Nicolas
Nicolas le 19 Sep 2019
Modifié(e) : Nicolas le 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?
Steven Lord
Steven Lord le 19 Sep 2019
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.
Nicolas
Nicolas le 19 Sep 2019
Thank you Steven. Would you have any recomendation for a constrained banded solver?
Steven Lord
Steven Lord le 19 Sep 2019
What constraints are you trying to place on the solution?
Nicolas
Nicolas le 19 Sep 2019
Modifié(e) : Nicolas le 19 Sep 2019
positivity for half of the unknowns, none on the other half

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by