求相关系数fortran程序~~

求相关系数的fortran程序~~。。

function relation(a,b,n)
!本程序计算两列向量的相关系数
!a,b分别是待计算的向量
!n是向量的长度,要求两列向量等长
implicit none

integer,intent(in)::n
real,intent(in)::a(n),b(n)
real::relation !返回的相关系数
integer::i,j !循环控制变量
real::sfenzi,sfenmu1,sfenmu2,s !加法器
real::amean,bmean !a,b向量的平均值

!计算平均值
s=0.
do i=1,n
s=s+a(i)
end do
amean=s/n
s=0.
do i=1,n
s=s+b(i)
end do
bmean=s/n

!计算相关系数
sfenzi=0.
sfenmu1=0.
sfenmu2=0.
do i=1,n
sfenzi=sfenzi+(a(i)-amean)*(b(i)-bmean)
sfenmu1=sfenmu1+(a(i)-amean)**2
sfenmu2=sfenmu2+(b(i)-bmean)**2
end do
relation=sfenzi/sqrt(sfenmu1*sfenmu2)

end function relation
温馨提示:答案为网友推荐,仅供参考
相似回答