0
DSYEV에서 가장 작은 고유 값을 찾고 싶습니다. DSYEV 코드에 무엇을 넣을 지 모르겠습니다.(Fortran) lapack의 DSYEV를 사용하여 (정사각형) 행렬의 고유 값을 계산하려면 어떻게해야합니까?
내 행렬 A가 45x45이고 그 고유 값을 찾고 싶다고 말하십시오. 지금까지 내가 가진 :
subroutine eigenvalues()
implicit none
real(kind=8),allocatable,dimension(:,:)::A
real(kind=8),allocatable,dimension(:)::WORK, W
integer, allocatable, dimension(:)::t
integer::info,k,Z
t = shape(A)
k = t(1)
allocate(W(k))
print *, shape(M)
Z = 3*k-1
call dsyev('N','U',k,M,k,W,WORK,Z,info)
end subroutine eigenvalues
나도 상위 삼각 행렬을 저장하기 위해 선택하여 무엇을 의미하는지 정말 모르겠어요. LWORK이 문서에서 무엇을 의미하는지 아직도 알지 못합니다.
@HighPerformanceMark이 부분이 변경되었습니다. 그러나 세그먼트 오류가 발생합니다. 나는 또한 예제를 추가했다. –
초기화되지 않은 M 행렬로 콜레 스키를 호출합니다. –