Provides a derivative-based optimization framework that allows users to combine eight convergence criteria. Unlike standard optimization functions, this package includes a built-in mechanism to verify the positive definiteness of the Hessian matrix at the point of convergence. This additional check helps prevent the solver from falsely identifying non-optimal solutions, such as saddle points, as valid minima.
optimflex provides a highly flexible suite of derivative-based
non-linear optimization algorithms. It is specifically designed for
researchers who require rigorous convergence control, particularly
in complex models like SEM.
Standard optimization functions often rely on a single, fixed stopping
rule. optimflex offers:
# install.packages("devtools")
# devtools::install_github("yourusername/optimflex")
library(optimflex)
rosenbrock <- function(x) {
100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2
}
res <- double_dogleg(
start = c(-1.2, 1.0),
objective = rosenbrock,
control = list(
use_grad = TRUE,
use_rel_x = TRUE,
use_posdef = TRUE
)
)
print(res$par)
#> [1] 0.9999955 0.9999910
| Flag | Description |
|---|---|
use_abs_f |
Absolute function change |
use_rel_f |
Relative function change |
use_abs_x |
Absolute parameter change |
use_rel_x |
Relative parameter change |
use_grad |
Gradient infinity norm |
use_posdef |
Hessian Verification |
use_pred_f |
Predicted Decrease |