Я хочу найти наименьшее собственное значение от DSYEV, и я не уверен, что я намерен внести в код для DSYEV.(Fortran) Как использовать DSYEV из lapack для вычисления собственных значений (квадратной) матрицы?
Скажите, что моя матрица 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, которая не инициализирована –