Fortran Coder

标题: 矩阵求逆问题 [打印本页]

作者: ffp    时间: 2016-4-13 08:34
标题: 矩阵求逆问题
大家好,问下,我调用lapack里面的求逆函数,我的原矩阵中有A(i,i)=0的项,说LU分解和求逆有问题,对于这种中间有A(i,i)=0的这种应该怎么调用哪个求逆的函数命令 ,我用下面的这个是不对的
[Fortran] 纯文本查看 复制代码
     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
不妨把你的输入参数给出来一下
作者: ffp    时间: 2016-4-13 08:50
          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
代码没有问题
你的这个矩阵接近奇异矩阵。可以试试 svd 或求广义逆。
作者: ffp    时间: 2016-4-14 08:53
那Lapack里面有相关的命令吗
作者: ffp    时间: 2016-4-14 08:54
fcode 发表于 2016-4-13 09:46
代码没有问题
你的这个矩阵接近奇异矩阵。可以试试 svd 或求广义逆。

那lapack里面有相关的命令吗

作者: fcode    时间: 2016-4-14 08:55
在文档里搜 singular value decomposition




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2