Division-free inverse of a square matrix

This recursive function implements a division-free inverse of a square matrix.
22 Downloads
Updated 1 Feb 2022

View License

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.

Cite As

Marco Cococcioni (2024). 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
Created with R2021a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags
Acknowledgements

Inspired by: inv2(x)

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.0.3

I just added the image (logo)

1.0.2

Added more info about fields of applicability (interpolation and finite element methods).

1.0.1

Improved the description of the function.

1.0.0