This recursive function implements a division-free inverse of a square matrix, but it still requires the possibility to compute the reciprocal of scalar quantities.
Furthermore, the algorithm has a main limitation: it only works when all the elements in the main diagonal are different from zero.
This limitation make the algorithm interesting only from the research point of view, of course, or in very specific cases,
when the required condition holds.
One of such situations is when calculating a cubic B-spline interpolation or cubic NURBS interpolation, where a tridiagonal matrix always occurs, with main diagonal different from zero. Also, in some computations of finite element methods, strictly diagonally dominant matrices can be found.
Keep also in mind that this algorithm is very slow for large matrices, if compared with Matlab builtin 'inv' function, for obvious reasons.
Thus this algorithm is interesting only for data types (Matlab classes) for which the division is unavailable, provided that the reciprocal is available.
The algorithm is due to:
Wang Xingbo, "A Rank-reducing and Division-free Algorithm for Inverse of Square Matrices", OSSC-2011, 2011.
Marco Cococcioni (2021). Division-free inverse of a square matrix (https://www.mathworks.com/matlabcentral/fileexchange/90626-division-free-inverse-of-a-square-matrix), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired by: inv2(x)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!