Block Tridiagonal Solver

Solves the block tridiagonal system Ax=d, where a, b, and c are the three diagonals of A.
29 téléchargements
Mise à jour 28 mai 2022

Afficher la licence

% Solves the block tridiagonal system Ax=d, where a, b, and c are the three
% diagonals of A. If the size of the block is n-by-n, then b is M*n-by-n, d
% is M*n-by-*, a and c are each (M-1)*n-by-n.
%
% M = 12; n = 3;
% a = rand((M-1)*n,n); b = 3+2*rand(M*n,n); c = rand((M-1)*n,n);
% d = rand(M*n,10);
% x = BlockTriSolve(a, b, c, d);
%
% We can make block matrix A = BlockDiag(a, n, n, -1) + BlockDiag(b, n, n)
% + BlockDiag(c, n, n, 1); and then x = A\d to confirm the solution.
%
% Computational Cost of this method is 2M(13n^3/3+4n^2-4n/3). The cost is
% of order M*n^3. This is better than the backslash which is order (M*n)^3

Citation pour cette source

Lateef Adewale Kareem (2026). Block Tridiagonal Solver (https://fr.mathworks.com/matlabcentral/fileexchange/76078-block-tridiagonal-solver), MATLAB Central File Exchange. Extrait(e) le .

Compatibilité avec les versions de MATLAB
Créé avec R2020a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Version Publié le Notes de version
1.0.3

Eliminated the zeros in front of a

1.0.2

Optimized for speed

1.0.1

Title change for improved visibility

1.0.0