## requires pass by position?
fr_pos <- function(x) { ## Rosenbrock Banana function
x1 <- x[1]
x2 <- x[2]
100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
pars <- list(a = -1.2, b = 1)
pars$a
#> [1] -1.2
optim(pars, fr_pos)
#> $par
#> a b
#> 1.000260 1.000506
#>
#> $value
#> [1] 8.825241e-08
#>
#> $counts
#> function gradient
#> 195 NA
#>
#> $convergence
#> [1] 0
#>
#> $message
#> NULL
fr_list <- function(x) { ## Rosenbrock Banana function
x1 <- x$a
x2 <- x$b
100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
pars <- list(a = -1.2, b = 1)
optim(pars, fr_list)
#> Error in x$a: $ operator is invalid for atomic vectors
fr_named_vect <- function(x) { ## Rosenbrock Banana function
x1 <- x[["a"]]
x2 <- x[["b"]]
100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
pars <- list(a = -1.2, b = 1)
optim(pars, fr_named_vect)
#> $par
#> a b
#> 1.000260 1.000506
#>
#> $value
#> [1] 8.825241e-08
#>
#> $counts
#> function gradient
#> 195 NA
#>
#> $convergence
#> [1] 0
#>
#> $message
#> NULL
optim(pars, fr_pos)
#> $par
#> a b
#> 1.000260 1.000506
#>
#> $value
#> [1] 8.825241e-08
#>
#> $counts
#> function gradient
#> 195 NA
#>
#> $convergence
#> [1] 0
#>
#> $message
#> NULLCreated on 2025-05-30 with reprex v2.1.1
Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.5.0 (2025-04-11)
#> os macOS Sonoma 14.5
#> system aarch64, darwin20
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Australia/Hobart
#> date 2025-05-30
#> pandoc 3.6.3 @ /Applications/Positron.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
#> quarto 1.7.31 @ /usr/local/bin/quarto
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> cli 3.6.5 2025-04-23 [1] CRAN (R 4.5.0)
#> digest 0.6.37 2024-08-19 [1] CRAN (R 4.5.0)
#> evaluate 1.0.3 2025-01-10 [1] CRAN (R 4.5.0)
#> fastmap 1.2.0 2024-05-15 [1] CRAN (R 4.5.0)
#> fs 1.6.6 2025-04-12 [1] CRAN (R 4.5.0)
#> glue 1.8.0 2024-09-30 [1] CRAN (R 4.5.0)
#> htmltools 0.5.8.1 2024-04-04 [1] CRAN (R 4.5.0)
#> knitr 1.50 2025-03-16 [1] CRAN (R 4.5.0)
#> lifecycle 1.0.4 2023-11-07 [1] CRAN (R 4.5.0)
#> reprex 2.1.1 2024-07-06 [1] CRAN (R 4.5.0)
#> rlang 1.1.6 2025-04-11 [1] CRAN (R 4.5.0)
#> rmarkdown 2.29 2024-11-04 [1] CRAN (R 4.5.0)
#> sessioninfo 1.2.3 2025-02-05 [1] CRAN (R 4.5.0)
#> withr 3.0.2 2024-10-28 [1] CRAN (R 4.5.0)
#> xfun 0.52 2025-04-02 [1] CRAN (R 4.5.0)
#> yaml 2.3.10 2024-07-26 [1] CRAN (R 4.5.0)
#>
#> [1] /Users/nick_1/Library/R/arm64/4.5/library
#> [2] /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/library
#>
#> ──────────────────────────────────────────────────────────────────────────────