矩阵求逆问题
大家好,问下,我调用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 不妨把你的输入参数给出来一下 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】 代码没有问题
你的这个矩阵接近奇异矩阵。可以试试 svd 或求广义逆。 那Lapack里面有相关的命令吗 fcode 发表于 2016-4-13 09:46
代码没有问题
你的这个矩阵接近奇异矩阵。可以试试 svd 或求广义逆。
那lapack里面有相关的命令吗
在文档里搜 singular value decomposition
页:
[1]