我正在研究 fortran 中的特征值问题。我已经使用 Lapack 来解决问题并获得特征值和特征向量。这是针对 201x101 波数、由于对称性只有一半的波空间以及大域(海洋中)中的每个网格点完成的。我正在搜索每个网格点的最大特征值,我不仅想在 201x101 特征值矩阵中选择绝对最大值,而且在波空间中执行方位角平均值 - 然后选择最大平均值。我正在努力寻找如何做到这一点。
起初我是这样编码的:
!波数域
dx=4000.
pi = 4.*atan(1.)
DO m=1,ktot
kx(m) = -(2.*pi)/(dx) + ((m-1)*2.*pi)/(100.*dx)
END DO
DO l=1,ltot
ly(l)= ((l-1)*2.*pi)/(100.*dx)
END DO
!径向距离
DO m=1,ktot
DO l=1,ltot
raddist(m,l)=sqrt(kx(m)**2+ly(l)**2)
END DO
END DO
!方位角平均值(omegai 是我发现的特征值,一个 ktot*ltot 大矩阵)
DO i=1,ltot-1
ind=(raddist(:,i).GE.ly(i).AND.raddist(:,i).LT.ly(i+1))
length=count(ind)
WHERE (ind) average_omegai = sum(omegai)/length
END DO
但似乎我在 ly(i) 和 ly(i+1) 之间对 k 方向上的所有波数求和一个水平块。我宁愿需要在波空间中制作一个半圆来将其间的所有 omegai 值相加。有人能帮忙吗?提前致谢!!