GSL中的广义逆函数

时间:2015-06-09 09:52:01

标签: gsl matrix-inverse

是否有任何函数使用GSL计算矩阵的广义逆? 与R一样,我们有ginv(X, tol = sqrt(.Machine$double.eps))

1 个答案:

答案 0 :(得分:2)

没有。似乎没有例程直接计算矩阵的伪逆(尽管here你可以找到关于如何得到它的讨论。)

然而,很少需要显式伪逆本身。相反,gsl提供例程

int gsl_linalg_SV_solve (const gsl_matrix * U, const gsl_matrix * V, const gsl_vector * S
                       , const gsl_vector * b, gsl_vector * x)

请参阅文档here

它解决了线性系统A x = b,相当于将伪逆A^+应用到b并产生x = A^+ b

在申请之前,必须通过例程gsl_linalg_SV_decomp找到SVD。您提到的容差因子tol可以通过循环遍历奇异值S并将小于tol的值设置为零来合并。

(此外,这里有个人建议:放弃gsl并切换到Eigen,犰狳或类似的现代图书馆)