Table of Contents
QccMatrixOrthogonalize - generate orthonormal basis for range of
matrix
#include "libQccPack.h"
int QccMatrixOrthogonalize(const
QccMatrix matrix1, int num_rows, i num_cols, QccMatrix matrix2, int *num_cols2);
QccMatrixOrthogonalize() creates an orthonormal basis for
the range of matrix1 which is a matrix of size num_rows x num_cols. This
orthonormal basis is returned as the columns of matrix2; that is, the
columns of matrix2 span the same space as the columns of matrix1. matrix2
must be allocated to be of size num_rows x num_cols prior to calling QccMatrixOrthogonalize().
The number of basis vectors in the orthogonal basis is returned as num_cols2.
If matrix1 is rank-deficient, then num_cols2 will be less than num_cols.
In this case, num_cols - num_cols2 columns of matrix2 will be zero.
QccMatrixOrthogonalize()
is implemented via a call to QccMatrixSVD(3)
to generate the singular
value decomposition of matrix1. Then, the left singular vectors corresponding
to nonzero singular values are returned in matrix2.
QccMatrixSVD(3)
,
QccMatrix(3)
, QccPack(3)
Copyright (C) 1997-2021 James E. Fowler
Table of Contents