This package implements the Gram-Schmidt algorithm and Modified Gram-Schmidt algorithm (MGS improve numerical stability over GS) for orthogonalizing or orthonormalizing vectors.
Gram-Schmidt algorithm factorizes a matrix X into two matrix Q and R, where Q is an orthogonal or orthonormal matrix and R is a upper triangular matrix and X=Q*R. The difference between orthogonal and orthonormal matrix is that for an orthonormal matrix, each column is orthogonal to others and has unit length.
This package contains following four functions:
gsog.m: Gram-Schmidt orthogonalization
gson.m: Gram-Schmidt orthonormalization which produces the same result as [Q,R]=qr(X,0)
mgsog.m: Modified Gram-Schmidt orthogonalization
mgson.m: Modified Gram-Schmidt orthonormalization which produces the same result as [Q,R]=qr(X,0)
This package is now a part of the PRML toolbox (http://www.mathworks.com/matlabcentral/fileexchange/55826-pattern-recognition-and-machine-learning-toolbox).
Mo Chen (2019). Gram-Schmidt orthogonalization (https://www.mathworks.com/matlabcentral/fileexchange/55881-gram-schmidt-orthogonalization), MATLAB Central File Exchange. Retrieved .
Inspired by: Pattern Recognition and Machine Learning Toolbox