# \donttest{
### functional covariate
phi1 <- function(x) -cos(pi*x/10)/sqrt(5)
phi2 <- function(x) sin(pi*x/10)/sqrt(5)
lambdaX <- c(4,2)
# training set
n <- 100
N <- 50
tgrid <- seq(0,10,length.out = N)
Xi <- matrix(rnorm(2*n),nrow=n,ncol=2)
CovX <- lambdaX[1] * phi1(tgrid) %*% t(phi1(tgrid)) + lambdaX[2] * phi2(tgrid) %*% t(phi2(tgrid))
comp1 = lambdaX[1]^(1/2) * Xi[,1] %*% t(phi1(tgrid))
comp2 = lambdaX[2]^(1/2) * Xi[,2] %*% t(phi2(tgrid))
SampleX <- comp1 + comp2
I <- array(0, c(n,n,N,N))
for (u in 1:N){
for (v in 1:N){
temp1 <- SampleX[,u]
temp2 <- SampleX[,v]
I[,,u,v] <- outer(temp1, temp2, function(v1,v2){
(v1 - v2)^2
})
}
}
result_cov <- ObjCov(tgrid, I, 2)
result_cov$lambda #4 2
sC <- result_cov$sC
sum((sC-CovX)^2) / sum(sC^2)
sum((phi1(tgrid)-result_cov$phi[,1])^2)/sum(phi1(tgrid)^2)
# }
Run the code above in your browser using DataLab