GSL中的特征系统

特征系统

本章描述计算矩阵特征值和特征向量的函数。实对称特征系统、实非对称特征系统、复埃尔米特(自共轭矩阵)特征系统、实广义对称定特征系统、复广义埃尔米特(自共轭矩阵)定特征系统、实广义非对称特征系统的例程。特征值可以用特征向量计算,也可以不用特征向量计算。埃尔米特(自共轭矩阵)和实对称矩阵的算法是对称双对角化和QR约简。非对称算法是弗朗西斯QR双移。广义非对称算法是由Moler和Stewart提出的QZ方法。

    本章描述的函数都声明在头文件gsl_eigen.h中。

15.1 实对称矩阵

    对于实对称矩阵,本库使用对称双对角化和QR约简方法。在Golub & van Loan的第8.3节中有描述。计算得到的特征值精确到ϵ||A||2的绝对精度,其中ϵ是机器精度。

gsl_eigen_symm_workspace

    这个工作空间包含用于求解对称特征值问题的内部参数。

gsl_eigen_symm_workspace * gsl_eigen_symm_alloc(const size_t n)

本函数为计算n×n实对称矩阵的特征值分配了一个工作空间。工作空间的大小是O(2n)。

void gsl_eigen_symm_free(gsl_eigen_symm_workspace * w)

    本函数释放与工作空间w有关的内存。

int gsl_eigen_symm(gsl_matrix * A, gsl_vector * eval,

gsl_eigen_symm_workspace * w)

    本函数计算实对称矩阵A的特征值。必须在w中提供适当大小的额外工作空间。A的对角和下三角部分在计算过程中被破坏,但是严格的上三角部分没有被引用。特征值存储在向量eval中,是无序的。

gsl_eigen_symmv_workspace

    这个工作空间包含求解对称特征值和特征向量问题的内部参数。

gsl_eigen_symmv_workspace * gsl_eigen_symmv_alloc(const size_t n)

    本函数为计算n×n实对称矩阵的特征值和特征向量分配了一个工作空间。工作空间的大小是O(4n)。

void gsl_eigen_symmv_free(gsl_eigen_symmv_workspace * w)

本函数释放与工作空间w有关的内存。

int gsl_eigen_symmv(gsl_matrix * A, gsl_vector * eval, gsl_matrix * evec,

gsl_eigen_symmv_workspace * w)

本函数计算实对称矩阵A的特征值和特征向量。w中必须提供适当大小的额外工作空间。A的对角和下三角部分在计算过程中被破坏,但严格的上三角部分没有被引用。特征值存储在向量eval中,是无序的。对应的特征向量存储在矩阵evec的列中。例如,第一列中的特征向量对应于第一个特征值。保证特征向量相互正交并归一化到单位大小。

猜你喜欢

转载自blog.csdn.net/yxmlhc/article/details/120521290