Matrix Permanent Using Recursion
Computes the permanent of a matrix using recursion. The technique is known as "expansion by minors" or the Laplace expansion. Two versions are included:
1) The MATLAB language routine permanent_mat() is about 8 times faster than equivalent native MATLAB function by Xu plus it has some optimization for sparse matrices.
2) The C language routine permanent()uses the CMEX interface to integrate into MATLAB. It is more than 500 times faster than the native MATLAB function by Xu. Also, I have found it to be faster than more advanced algorithms when the matrix is very sparse. One optimization available in C is that the matrix is kept in-place, in memory. Thus, less memory in consumed and less time is spent copying the matrix.
引用格式
Brian Butler (2024). Matrix Permanent Using Recursion (https://www.mathworks.com/matlabcentral/fileexchange/53434-matrix-permanent-using-recursion), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- MATLAB > Mathematics > Linear Algebra >
标签
致谢
参考作品: Matrix Permanent, Matrix Permanent using Ryser Algorithm
启发作品: Permanent of (0,1) Matrix using Kallman in CMEX, Matrix Permanent using Nijenhuis-Wilf in CMEX.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.3.1.0 | Updated title and description. Very small change to permanent_mat.m to make it cleaner. |
||
1.3.0.0 | Add support for rectangular matrices (more columns than rows). |
||
1.2.0.0 | Fixes to supplementary files; no change to CMEX. |
||
1.1.0.0 | Updated cover figure.
|
||
1.0.0.0 | Edited description Made note of small memory requirement.
|