#This function calculates the coefficients of the spline H in an alternative way. ComputeSplineHk <- function(K,Y,S,Mat0){ p <- length(S)-2 #Mat <- matrix(0,nrow=2*K + p, ncol=2*K+p) Mat <- Mat0[1:(2*K+p),1:(2*K+p)] for(i in 1:K){ Mat[i,1:(2*K-2*(i-1))] <- (S[1])^{(2*K-1-2*(i-1)):0}/factorial((2*K-1-2*(i-1)):0) } for(i in 2:(p+1)){ Mat[K+i-1,1:(2*K+ i-1)] <- c((S[i])^{(2*K-1):0}/factorial((2*K-1):0),(S[i]-S[2:i])^{2*K-1}/factorial(2*K-1)) } for(i in 1:K){ Mat[i+K+p,1:(2*K-2*(i-1))] <- (S[p+2])^{(2*K-1-2*(i-1)):0}/factorial((2*K-1-2*(i-1)):0) Mat[i+K+p,(2*K+1):(2*K+p)] <- (S[p+2]-S[2:(p+1)])^{2*K-1-2*(i-1)}/factorial(2*K-1-2*(i-1)) } #Mat rcond.Mat <- rcond.svd.Matrix(svd.Matrix(Mat)) #cat("rcond= ",rcond.Mat,"\n") Alpha <- solve.svd.Matrix(svd.Matrix(Mat),Y,tol=rcond.Mat*0.5) #rm(Mat) Alpha }