我正在用 fortran 编程并尝试使用 Lapack 包中的 DGETRI 矩阵逆变器:
http://www.netlib.org/lapack/explore-html/df/da4/dgetri_8f.html
但非常奇怪的是,它似乎弄乱了我所有的变量。在这个非常简单的例子中,我在程序开始时初始化的矩阵 A 随着 DGETRI 的应用而改变,即使 DGETRI 不涉及 A...
谁能告诉我发生了什么事?谢谢!
PROGRAM solvelinear
REAL(8), dimension(2,2) :: A,Ainv
REAL(8),allocatable :: work(:)
INTEGER :: info,lwork,i
INTEGER,dimension(2) :: ipiv
info=0
lwork=10000
allocate(work(lwork))
work=0
ipiv=0
A = reshape((/1,-1,3,3/),(/2,2/))
Ainv = reshape((/1,-1,3,3/),(/2,2/))
CALL DGETRI(2,Ainv,2,Ipiv,work,lwork,info)
print*,"A = "
do i=1,2
print*,A(i,:)
end do
END PROGRAM solve linear
这是输出:
A =
1.0000000000000000 0.0000000000000000
-1.0000000000000000 0.33333333333333331