Fast Eigenvalue Computation of Massive 3-by-3 Real Symmetric Matrices

版本 1.13.0.0 (2.2 KB) 作者: Max W.K. Law
For multiple 3x3 real symmetric matrices, vectorized matrix operations, support GPU computation
1.2K 次下载
更新时间 2013/5/10

查看许可证

Calculate the eigenvalues of many 3x3 real symmetric matrices. Computation is non-iterative, based on fully vectorized matlab matrix operations, and GPU computation is supported. It is fast and efficient for processing a number of 3-by-3 matrices at once. This code particularly suits tensor/Riemannian calculus in 3D, visualization/analysis of volumetric tensor images, image Jacobian/Hessian analysis, stress/tensile strength computation on tensor fields, three dimensional diffusion processes, determining the rotation axes of a motion field, etc....

Syntax:
[eigenvalue1,eigenvalue2,eigenvalue3] = eigenvaluefield33( a11, a12, a13, a22, a23, a33);
a11, a12, a13, a22, a23 and a33 specify a set of symmetric 3x3 real matrices (a tensor field, a tensorial image, an array of matrices/tensors, etc....) as:
a11 a12 a13
[ a12 a22 a13 ]
a13 a23 a33
These six inputs must have the same size. They can be 2D, 3D or any dimension. The outputs eigenvalue1, eigenvalue2 and eigenvalue3 follow the size and dimension of these inputs. Trigonometric functions are used. The inputs must be double to maintain the accuracy.

eigenvalue1, eigenvalue2 and eigenvalue3 are the unordered eigenvalues. They are solved using the cubic equation solver, see http://en.wikipedia.org/wiki/Eigenvalue_algorithm
One can obtain the ordered eigenvalues by:
minEigenvalue = min(min(eigenvalue1, eigenvalue2), eigenvalue3);
maxEigenvalue = max(max(eigenvalue1, eigenvalue2), eigenvalue3);
midEigenvalue = eigenvalue1+eigenvalue2+eigenvalue3 - minEigenvalue - maxEigenvalue;

The peak memory consumption of the function is about 1.5 times of the total of all inputs, in addition to the original inputs. GPU computation is automatically enabled if all inputs are matlab GPU arrays.

The following research works exemplify the use of this fast eigenvalue computation routine on curvilinear/tubular structure detection:

1. Max W. K. Law, KengYeow Tay, Andrew E. Leung, Gregory J. Garvin and Shuo Li,
“Dilated Divergence based Scale-Space Representation for Curve Analysis”, ECCV 2012, pp. 557 – 571.
2. Max W. K. Law and Albert C. S. Chung, ``Three Dimensional Curvilinear Structure Detection using Optimally Oriented Flux'', ECCV 2008, pp. 368--382.
Matlab source:
http://www.mathworks.com/matlabcentral/fileexchange/41612-optimally-oriented-flux-oof-for-3d-curvilinear-structure-detection

3. Max W. K. Law and Albert C. S. Chung,
“An Oriented Flux Symmetry based Active Contour Model for Three Dimensional Vessel Segmentation”, ECCV 2010, pp. 720 – 734.

4. Max W. K. Law and Albert C. S. Chung,
“Segmentation of Intracranial Vessels and Aneurysms in Phase Contrast Magnetic Resonance Angiography using Multi-Range Filters and Local Variances”, TIP 2013, 22(3), 845 – 859.

Please refer to http://www.cse.ust.hk/~maxlawwk/ for more details regarding the above publications.

Author: Max W.K. Law
Email: max.w.k.law@gmail.com
Page: http://www.cse.ust.hk/~maxlawwk/

引用格式

Max W.K. Law (2024). Fast Eigenvalue Computation of Massive 3-by-3 Real Symmetric Matrices (https://www.mathworks.com/matlabcentral/fileexchange/40677-fast-eigenvalue-computation-of-massive-3-by-3-real-symmetric-matrices), MATLAB Central File Exchange. 检索时间: .

MATLAB 版本兼容性
创建方式 R2012b
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Eigenvalues & Eigenvectors 的更多信息

Community Treasure Hunt

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

Start Hunting!
版本 已发布 发行说明
1.13.0.0

Updated info.

1.12.0.0

Updated info.

1.11.0.0

Updated info.

1.10.0.0

Updated info.

1.9.0.0

Updated info.

1.8.0.0

Updated info.

1.7.0.0

Updated info., revised the code

1.6.0.0

Updated the title of this package

1.5.0.0

Updated description

1.4.0.0

Updated description

1.3.0.0

Updated description

1.1.0.0

Updated info.

1.0.0.0