Je veux trouver la plus petite valeur propre de DSYEV et je ne suis pas sûr de ce que je suis censé mettre dans le code pour DSYEV.(Fortran) Comment utiliser DSYEV de lapack pour calculer les valeurs propres d'une matrice (carrée)?
Dites ma matrice A est 45x45 et je veux trouver ses valeurs propres. Jusqu'à présent, j'ai:
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
Je ne suis pas vraiment sûr de ce que l'on entend en choisissant de stocker soit la matrice triangulaire supérieure. Je ne sais pas ce que signifie LWORK de la documentation encore.
@HighPerformanceMark Changé cette partie. Pourtant, il arrive avec une erreur de segmentation. J'ai aussi ajouté un exemple. –
Vous appelez votre cholesky avec la matrice M qui n'est pas initialisée –