Lanczos3 {NISTnls} | R Documentation |
The Lanczos3
data frame has 24 rows and 2 columns of generated data.
y |
A numeric vector of generated responses. |
x |
A numeric vector of generated input values. |
This data frame contains the following columns:
These data are taken from an example discussed in
Lanczos (1956). The data were generated to 5-digits
of accuracy using
f(x) = 0.0951*exp(-x) + 0.8607*exp(-3*x) + 1.5576*exp(-5*x)
.
Lanczos, C. (1956). Applied Analysis. Englewood Cliffs, NJ: Prentice Hall, pp. 272-280.
library(NISTnls) data(Lanczos3) plot(y ~ x, data = Lanczos3) ## plot log response to see the number of exponential terms plot(y ~ x, data = Lanczos3, log = "y") ## Numerical derivatives do not produce sufficient accuracy to converge fm1 <- nls(y ~ b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x), data = Lanczos3, trace = TRUE, start = c(b1 = 1.2, b2 = 0.3, b3 = 5.6, b4 = 5.5, b5 = 6.5, b6 = 7.6)) fm2 <- nls(y ~ b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x), data = Lanczos3, trace = TRUE, start = c(b1 = 0.5, b2 = 0.7, b3 = 3.6, b4 = 4.2, b5 = 4, b6 = 6.3)) fm3 <- nls(y ~ exp(outer(x,-c(b2, b4, b6))), data = Lanczos3, trace = TRUE, algorithm = "plinear", start = c(b2 = 0.3, b4 = 5.5, b6 = 7.6)) fm4 <- nls(y ~ exp(outer(x,-c(b2, b4, b6))), data = Lanczos3, trace = TRUE, algorithm = "plinear", start = c(b2 = 0.7, b4 = 4.2, b6 = 6.3)) ## Use analytic derivatives Lanczos <- deriv(~ b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x), paste("b", 1:6, sep = ""), function(x, b1, b2, b3, b4, b5, b6){}) fm5 <- nls(y ~ Lanczos(x, b1, b2, b3, b4, b5, b6), data = Lanczos3, trace = TRUE, start = c(b1 = 1.2, b2 = 0.3, b3 = 5.6, b4 = 5.5, b5 = 6.5, b6 = 7.6)) fm6 <- nls(y ~ Lanczos(x, b1, b2, b3, b4, b5, b6), data = Lanczos3, trace = TRUE, start = c(b1 = 0.5, b2 = 0.7, b3 = 3.6, b4 = 4.2, b5 = 4, b6 = 6.3))