回 帖 发 新 帖 刷新版面

主题:[讨论]计算多次求平均值的问题

我在求一个矩阵的特征值,求一次有误差,想求多次求这个平均值。这是我设计的算法。调用10次矩阵,每次调用矩阵的元素值都可能会不同,所以求得的特征值也有所不同,设置一个二维数组eigen,用列来存放每次得到的特征值,比如第一次调用矩阵得到的特征值放在eigen第一列,第二次调用矩阵得到的特征值放在eigen第二列,等等。大家帮忙看下这样行不
因为特征值都按列排列,所以每次调用矩阵 eigen 就多一列

 open(1,file='new.txt')
  do nx=1,10          !调用次数
  call hmatr(h, n,m)  !调用矩阵

  
  eigenvalue=eig(h,w=eigenvector)  !每次调用以后都求矩阵特征值
   do j=1,4*m*n
     eigen(j,nx)=eigenvalue(j)  !将本次特征值放在eigen的一列
   end do
  write(1,*) eigen(j,nx)
 end do     
!下面是求平均值的过程
  do j=1,4*m*n
   do nx=1,10
     
     eigenvalue(j)=sum(eigen(j,nx))/10.0

    end do
  end do

回复列表 (共2个回复)

沙发

这种方法能将新得到的每列特征值放到矩阵eigen里吗?

板凳

我讲两句吧...
不明白求平均值是什么意思, 就代码而言
  do j=1,4*m*n
   do nx=1,10
     
     eigenvalue(j)=sum(eigen(j,nx))/10.0

    end do
  end do
这个不妥当
  do j=1,4*m*n
    eigenvalue(j)=sum(eigen(j,:))/10.0
  end do
或者
  eigenvalue=0.0
  do j=1,4*m*n
   do nx=1,10
     eigenvalue(j)=eigenvalue(j)+sum(eigen(j,nx))/10.0
    end do
  end do

我来回复

您尚未登录,请登录后再回复。点此登录或注册