# Lanczos2: Generated data In NISTnls: Nonlinear least squares examples from NIST

## Description

The `Lanczos2` data frame has 24 rows and 2 columns of generated data.

## Format

This data frame contains the following columns:

y

A numeric vector of generated responses.

x

A numeric vector of generated input values.

## Details

These data are taken from an example discussed in Lanczos (1956). The data were generated to 6-digits of accuracy using `f(x) = 0.0951*exp(-x) + 0.8607*exp(-3*x) + 1.5576*exp(-5*x)`.

## Source

Lanczos, C. (1956). Applied Analysis. Englewood Cliffs, NJ: Prentice Hall, pp. 272-280.

## 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50``` ```Try <- function(expr) if (!inherits(val <- try(expr), "try-error")) val plot(y ~ x, data = Lanczos2) ## plot log response to see the number of exponential terms plot(y ~ x, data = Lanczos2, log = "y") ## Numerical derivatives do not produce sufficient accuracy to converge Try(fm1 <- nls(y ~ b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x), data = Lanczos2, trace = TRUE, start = c(b1 = 1.2, b2 = 0.3, b3 = 5.6, b4 = 5.5, b5 = 6.5, b6 = 7.6))) Try(fm1a <- nls(y ~ b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x), data = Lanczos2, trace = TRUE, alg = "port", start = c(b1 = 1.2, b2 = 0.3, b3 = 5.6, b4 = 5.5, b5 = 6.5, b6 = 7.6))) ## Numerical derivatives do not produce sufficient accuracy to converge Try(fm2 <- nls(y ~ b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x), data = Lanczos2, trace = TRUE, start = c(b1 = 0.5, b2 = 0.7, b3 = 3.6, b4 = 4.2, b5 = 4, b6 = 6.3))) Try(fm2a <- nls(y ~ b1*exp(-b2*x) + b3*exp(-b4*x) + b5*exp(-b6*x), data = Lanczos2, trace = TRUE, alg = "port", start = c(b1 = 0.5, b2 = 0.7, b3 = 3.6, b4 = 4.2, b5 = 4, b6 = 6.3))) ## Numerical derivatives do not produce sufficient accuracy to converge Try(fm3 <- nls(y ~ exp(outer(x,-c(b2, b4, b6))), data = Lanczos2, trace = TRUE, algorithm = "plinear", start = c(b2 = 0.3, b4 = 5.5, b6 = 7.6))) ## Numerical derivatives do not produce sufficient accuracy to converge Try(fm4 <- nls(y ~ exp(outer(x,-c(b2, b4, b6))), data = Lanczos2, 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){}) Try(fm5 <- nls(y ~ Lanczos(x, b1, b2, b3, b4, b5, b6), data = Lanczos2, trace = TRUE, start = c(b1 = 1.2, b2 = 0.3, b3 = 5.6, b4 = 5.5, b5 = 6.5, b6 = 7.6))) Try(fm5a <- nls(y ~ Lanczos(x, b1, b2, b3, b4, b5, b6), data = Lanczos2, trace = TRUE, alg = "port", start = c(b1 = 1.2, b2 = 0.3, b3 = 5.6, b4 = 5.5, b5 = 6.5, b6 = 7.6))) Try(fm6 <- nls(y ~ Lanczos(x, b1, b2, b3, b4, b5, b6), data = Lanczos2, trace = TRUE, start = c(b1 = 0.5, b2 = 0.7, b3 = 3.6, b4 = 4.2, b5 = 4, b6 = 6.3))) Try(fm6a <- nls(y ~ Lanczos(x, b1, b2, b3, b4, b5, b6), data = Lanczos2, trace = TRUE, alg = "port", start = c(b1 = 0.5, b2 = 0.7, b3 = 3.6, b4 = 4.2, b5 = 4, b6 = 6.3))) ```

NISTnls documentation built on May 29, 2017, 3:49 p.m.