假设有一套未正交的矢量集,设为C1,C2,…,每个矢量Ci由v1,v2,…,等基矢量构成。在进行对称正交化的时候,这样进行:
首先v1,v2,...,之间的重叠积分要知道,设为小s,基矢量正交的话s即为I了。
计算各个Ci,Cj之间的内积,注意是四重循环,因为小s的影响。获得重叠矩阵大S。
对角化S,获得本证值D和本征矢量X,对每个D值^(-1/2)获得D^(-0.5),(开根号后再倒数);然后X'D^(0.5)X,获得变换矩阵,设为d。
(可以检验一下d’*S*d=I)
然后Ck1(New)=dj1*Ck1+dj2*Ck2+...,获得最后的正交归一基矢。NewC
! ——————————– ! Acquire the new vector ! ——————————–
X=C C=0.0d0 do i=1,ndim do j=1,ndim do k=1,ndim C(k,i)=C(k,i)+D(j,i)*X(k,j) end do end do end do
!———————————-
最后满足的是NewC'*s*NewC=I 这里是s,不是S