ffp 发表于 2016-4-13 08:34:26

矩阵求逆问题

大家好,问下,我调用lapack里面的求逆函数,我的原矩阵中有A(i,i)=0的项,说LU分解和求逆有问题,对于这种中间有A(i,i)=0的这种应该怎么调用哪个求逆的函数命令 ,我用下面的这个是不对的
   using LAPACK
                call dgetrf(n,n,bitmp,ldb,ipiv,info)
                if(info.ne.0) then
                WRITE(6,*) 'problem in LU decomposition'
                WRITE(6,*) 'info=',info
                endif
                call dgetri(n,bitmp,ldb,ipiv,work,n,info)
                if(info.ne.0) then
                WRITE(6,*) 'problem in matrix inversion'
                WRITE(6,*) 'info=',info
                endif

fcode 发表于 2016-4-13 08:43:19

不妨把你的输入参数给出来一下

ffp 发表于 2016-4-13 08:50:32

          n   = 5
       ldb = 5
矩阵bitmp是5*5的 数据类似【-2 0 0.47 0 0.9428;1.4 -1.4 -0.33 -0.33 0;0 2.0 0 0.47 -0.9428;1 0 0 0 0;0 1 0 0 0】

fcode 发表于 2016-4-13 09:46:19

代码没有问题
你的这个矩阵接近奇异矩阵。可以试试 svd 或求广义逆。

ffp 发表于 2016-4-14 08:53:49

那Lapack里面有相关的命令吗

ffp 发表于 2016-4-14 08:54:14

fcode 发表于 2016-4-13 09:46
代码没有问题
你的这个矩阵接近奇异矩阵。可以试试 svd 或求广义逆。

那lapack里面有相关的命令吗

fcode 发表于 2016-4-14 08:55:35

在文档里搜 singular value decomposition
页: [1]
查看完整版本: 矩阵求逆问题