gpt4 book ai didi

matrix - 使用 lapack 计算逆矩阵

转载 作者:行者123 更新时间:2023-12-01 02:22:08 48 4
gpt4 key购买 nike

我想计算复数矩阵的求逆。它发生在我身上
lapack 包含许多与代数计算相关的例程,
所以我找到了子程序ZGETRI。没想到编译完成后
以下代码带有“ifort -o out -heap-arrays test.f90 -mkl”和
运行文件“out”,出现错误

检测到 glibc ./out:free():invalid pointer: 0x00007fee68f76010***”

其次是内存映射,最后是“中止(核心转储)”。
这对我来说很奇怪,我不知道错误在哪里。
顺便说一句,当一些错误不是在编译过程中而是在
正在运行的进程,有没有办法检测这个错误在哪里
从?

program test
Implicit none
integer,parameter::M=300
complex*16,allocatable,dimension(:,:)::A
complex*16,allocatable,dimension(:)::WORK
integer,allocatable,dimension(:)::IPIV
integer i,j,info,error

allocate(A(M,M),WORK(M),IPIV(M),stat=error)
if (error.ne.0)then
print *,"error:not enough memory"
stop
end if

!definition of the test matrix A
do i=1,M
do j=1,M
if(j.eq.i)then
A(i,j)=(1,0)
else
A(i,j)=0
end if
end do
end do

call ZGETRI(M,A,M,IPIV,WORK,M,info)
if(info .eq. 0) then
write(*,*)"succeded"
else
write(*,*)"failed"
end if
deallocate(A,IPIV,WORK,stat=error)
if (error.ne.0)then
print *,"error:fail to release"
stop
end if
end

最佳答案

来自 documentation :

ZGETRI computes the inverse of a matrix using the LU factorization
computed by ZGETRF.

您需要运行 ZGETRF第一的:
program test
Implicit none
integer,parameter::M=300
complex*16,allocatable,dimension(:,:)::A
complex*16,allocatable,dimension(:)::WORK
integer,allocatable,dimension(:)::IPIV
integer i,j,info,error

allocate(A(M,M),WORK(M),IPIV(M),stat=error)
if (error.ne.0)then
print *,"error:not enough memory"
stop
end if

!definition of the test matrix A
do i=1,M
do j=1,M
if(j.eq.i)then
A(i,j)=(1,0)
else
A(i,j)=0
end if
end do
end do

call ZGETRF(M,M,A,M,IPIV,info)
if(info .eq. 0) then
write(*,*)"succeded"
else
write(*,*)"failed"
end if

call ZGETRI(M,A,M,IPIV,WORK,M,info)
if(info .eq. 0) then
write(*,*)"succeded"
else
write(*,*)"failed"
end if
deallocate(A,IPIV,WORK,stat=error)
if (error.ne.0)then
print *,"error:fail to release"
stop
end if
end

关于matrix - 使用 lapack 计算逆矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19655114/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com