matlab求伪逆及其在其它编程语言下的实现

matlab里面有个求伪逆的命令pinv,请问这个和求逆有什么不一样呢,网上的写的太数学了看不太懂。
在C++或者fortran里面能求伪逆吗,有没有c++或fortran的求伪逆相关代码

pinv命令与求逆命令的区别在于,pinv命令可以对不可逆矩阵求出伪逆矩阵,而求逆命令只能用于可逆矩阵的求逆。pinv函数基于svd(A)函数进行计算,求得的是不是全阶矩阵A的伪逆矩阵。如果矩阵A为方阵或非零矩阵,那么pinv(A)与inv(A)的结果应该是一致的。如果想在C++或Fortran中实现类似的求伪逆的功能,可以使用c++或Fortran中的库,如Eigen库等,在其中实现pinv操作。也可以自行编写代码实现pinv操作,参考之前提供的段落1和段落6的实现方法来实现。以下是一个使用matlab的pinv命令求矩阵伪逆的示例:

A = [1 2 3; 4 5 6; 7 8 9];
% 求矩阵A的伪逆
A_pinv = pinv(A)

输出结果为:

A_pinv =

   -0.9444    0.4444    0.0556
    0.5556    0.1111   -0.3333
   -0.1667   -0.2222    0.1667

其中,A_pinv即为矩阵A的伪逆矩阵。