https://github.com/cran/fields
Tip revision: 92636eaee56714c89c7b7e7cdc52e0c77aeb79b3 authored by Doug Nychka on 07 February 2005, 00:00:00 UTC
version 2.3
version 2.3
Tip revision: 92636ea
Krig.df.to.lambda.r
"Krig.df.to.lambda" <-
function(df, D, guess = 1, tol = 1.0000000000000001e-05)
{
#
# grab D ( the eigenvalues) if the Krig object is passed
#
if(is.list(D)) {
D <- D$matrices$D
}
if(is.na(df))
return(NA)
if(df < sum(D == 0)) {
warning("df too small to match with a lambda value")
return(NA)
}
if(df > length(D)) {
warning(" df too large to match a lambda value")
return(NA)
}
l1 <- guess
########## find upper lambda
for(k in 1:25) {
tr <- sum(1/(1 + l1 * D))
if(tr <= df)
break
l1 <- l1 * 4
}
########## find lower lambda
##########
l2 <- guess
for(k in 1:25) {
tr <- sum(1/(1 + l2 * D))
if(tr >= df)
break
l2 <- l2/4
}
info <- list(D = D, df = df, N = length(D))
out <- bisection.search(log(l1), log(l2), Krig.fdf, tol = tol, f.extra
= info)$x
+ exp(out)
}