Locally Optimal Block Preconditioned Conjugate Gradient
Source : https://github.com/lobpcg/blopex/ in blopex_tools/matlab/lobpcg/lobpcg.m
This main function LOBPCG is a version of the preconditioned conjugate gradient method (Algorithm 5.1) described in A. V. Knyazev, Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method, SIAM Journal on Scientific Computing 23 (2001), no. 2, pp. 517-541. http://dx.doi.org/10.1137/S1064827500366124
A C-version of this code is a part of the https://github.com/lobpcg/blopex
package and is available, e.g., in SLEPc and HYPRE. A scipy version is https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.lobpcg.html
Tested in MATLAB 6.5-7.13-R2019a and available Octave 3.2.3-3.4.2.
Cite As
Andrew Knyazev (2023). Locally Optimal Block Preconditioned Conjugate Gradient (https://github.com/lobpcg/blopex), GitHub. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- AI, Data Science, and Statistics > Statistics and Machine Learning Toolbox > Dimensionality Reduction and Feature Extraction >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
blopex_matlab/driver
blopex_matlab/driver/test_complex
blopex_matlab/driver/test_real
blopex_matlab/matlab_interface/m_files
blopex_tools/matlab/laplacian
blopex_tools/matlab/lobpcg
blopex_tools/matlab/matlab2hypre
Versions that use the GitHub default branch cannot be downloaded
Version | Published | Release Notes | |
---|---|---|---|
4.18 | Revision 4.18 removes the check for the size of operatorA apparently not working for function handles |
|
|
4.17 | Revision 4.17 adds support for single precision |
|
|
4.16 | Revision 4.16 adds support for distributed or codistributed arrays available in MATLAB BigData toolbox, e.g.,: A = codistributed(diag(1:100)); B = codistributed(diag(101:200));
|
|
|
4.15 | updated description on MathWorks, fixed Project Website link |
|
|
4.14 | Linearly depended directions 1-time restart, not failure: 1) Orthogonalization of directions P moved to a different spot.
|
|
|
1.6 | Connected to GitHub |
|
|
1.5 | added a conversion to a toolbox
|
|
|
1.4.0.0 | Editorial changes to make the code Octave-compatible. |
||
1.1.0.0 | License update to free software (BSD). Comments update. |
||
1.0.0.0 | minor update to remove mlint messages |