powerMean_PDM: powerMean_PDM

Description Usage Author(s) Examples

View source: R/powerMean.R

Description

Poer Mean algorithm, as published on IEEE Transactions on Signal Processing (2017), 65 (9) : 2211 - 2220. https://hal.archives-ouvertes.fr/hal-01500514/document

Usage

1
2
powerMean_PDM(Mat_list, p, w = NULL, zeta = 1e-05, initialX = NULL,
  maxIt = dim(Mat_list[[1]])[1] * length(Mat_list))

Author(s)

Livio Finos, Marco Congedo

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Mat_list=lapply(1:10,function(i) matrix(rnorm(400),20,20))
for(i in 1:length(Mat_list))
  Mat_list[[i]]=Mat_list[[i]]%*%t(Mat_list[[i]])+diag(20)
  min(sapply(Mat_list,function(x) eigen(x)$values))
  w=rep(1,length(Mat_list)); w=w/length(Mat_list)
  H=w[1]*(Mat_list[[1]])
  invisible(
    lapply(2:length(Mat_list),function(i){ 
        H <<- H + w[i]*(Mat_list[[i]])
          }))
          norm(H-powerMean_PDM(Mat_list ,1,zeta=1E-10),type="F")
          H=w[1]*solve(Mat_list[[1]])
          invisible(
            lapply(2:length(Mat_list),function(i){ 
                H <<- H + w[i]*solve(Mat_list[[i]])
                  }))
          H=solve(H)
          norm(H-powerMean_PDM(Mat_list ,-1,zeta=1E-7),type="F")
          
          p=c(-1,-.75,-.5,-.25,-.005,.005,.25,.5,.75,1)
          pmf=lapply(p,function(p)powerMean_PDM(Mat_list ,p,zeta=1E-7))
          res=sapply(pmf,function(mat)c(log(det(mat)), log(sum(diag(mat)))))
          plot(res[1,],res[2,])
          
          powerMean_PDM(Mat_list ,-1,zeta=1E-8)
          
          powerMean_PDM(Mat_list ,0,zeta=1E-8)

livioivil/Riemann documentation built on May 18, 2019, 1:26 a.m.