MGH10                package:NISTnls                R Documentation

_M_o_r_e, _G_a_b_r_o_w _a_n_d _H_i_l_l_s_t_r_o_m _e_x_a_m_p_l_e _1_0

_D_e_s_c_r_i_p_t_i_o_n:

     The 'MGH10' data frame has 16 rows and 2 columns.

_F_o_r_m_a_t:

     This data frame contains the following columns:

     _y A numeric vector of response values.

     _x A numeric vector of input values.


_D_e_t_a_i_l_s:

     This problem was found to be difficult for some very good
     algorithms.

     See More, J. J., Garbow, B. S., and Hillstrom, K. E.  (1981). 
     _Testing unconstrained optimization software._ *ACM Transactions
     on Mathematical Software.* 7(1):  pp. 17-41.

_S_o_u_r_c_e:

     Meyer, R. R. (1970).   Theoretical and computational aspects of
     nonlinear  regression.  In Nonlinear Programming, Rosen, 
     Mangasarian and Ritter (Eds).   New York, NY: Academic Press, pp.
     465-486.

_E_x_a_m_p_l_e_s:

     Try <- function(expr) if (!inherits(val <- try(expr), "try-error")) val
     plot(y ~ x, data = MGH10)
     ## check plot on log scale for shape
     plot(y ~ x, data = MGH10, log = "y")
     ## starting values for this run are ridiculous
     Try(fm1 <- nls(y ~ b1 * exp(b2/(x+b3)), data = MGH10, trace = TRUE,
                start = c(b1 = 2, b2 = 400000, b3 = 25000)))
     Try(fm1a <- nls(y ~ b1 * exp(b2/(x+b3)), data = MGH10,
                     trace = TRUE, alg = "port",
                     start = c(b1 = 2, b2 = 400000, b3 = 25000)))
     Try(fm2 <- nls(y ~ b1 * exp(b2/(x+b3)), data = MGH10, trace = TRUE,
                start = c(b1 = 0.02, b2 = 4000, b3 = 250)))
     Try(fm2a <- nls(y ~ b1 * exp(b2/(x+b3)), data = MGH10,
                     trace = TRUE, alg = "port",
                     start = c(b1 = 0.02, b2 = 4000, b3 = 250)))
     Try(fm3 <- nls(y ~ exp(b2/(x+b3)), data = MGH10, trace = TRUE,
                    start = c(b2 = 400000, b3 = 25000),
                    algorithm = "plinear"))
     Try(fm4 <- nls(y ~ exp(b2/(x+b3)), data = MGH10, trace = TRUE,
                start = c(b2 = 4000, b3 = 250),
                algorithm = "plinear"))

