fminl - Linux
Overview
fminl is a Linux command used to numerically minimize a nonlinear function of one variable. It utilizes the Limited-memory BFGS (L-BFGS) algorithm, a powerful optimization technique for finding local minima. fminl is particularly useful for optimizing functions that are not differentiable or have complex relationships.
Syntax
fminl [options] function parameters
Options/Flags
- -a : Absolute tolerance. Lowerbound for the absolute size of the objective function at the minimum point.
- -c : Cut-off. Frobenius norm of the (projected) gradient of the objective function after which the iterations are stopped.
- -e : Output file. Writes the optimization result to a specified file.
- -F : Function. Objective function to be minimized. Represented as a string enclosed in double quotation marks.
- -G : Columns. Number of variables in
parameters
. - -i : Maximum number of iterations. Upperbound for the number of iterations performed by the L-BFGS algorithm.
- -l : Lower bound. Lower bound for
parameters
. - -L : Lower bound cut-off. The L-BFGS algorithm stops if the lower bound is exceeded.
- -m : Maximum number of corrections. Upperbound for the number of corrections.
- -R : Rows. Number of parameters in
parameters
. - -r : Upper bound. Upper bound for
parameters
. - -R : Upper bound cut-off. The L-BFGS algorithm stops if the upper bound is exceeded.
- -v : Verbosity. Controls the level of output verbosity. Higher values provide more detailed information.
- -x : Initial point. Initial guesses for the minimum point specified in the form of a string.
Examples
Simple example: Minimize the function f(x) = x^2 + 1
within a range of 0
to 10
.
fminl -F "x**2 + 1" -l 0 -r 10
Complex example: Minimize the Rosenbrock function f(x, y) = (1 - x)^2 + 100 * (y - x^2)^2
with initial guesses of x = 1
and y = 2
.
fminl -F "(1 - x)**2 + 100 * (y - x**2)**2" -x "1 2"
Common Issues
- Convergence issues: Ensure the objective function is well-behaved and has a unique minimum within the specified range.
- Runtime errors: Check for incorrect function syntax or inconsistent bounds.
- Inaccurate results: Adjust the absolute tolerance (
-a
) and cut-off (-c
) parameters to achieve the desired precision.
Integration
fminl can be used in conjunction with other commands for advanced tasks:
- Python: Use the SciPy Python library’s
minimize
function to integrate fminl with Python code. - Shell scripts: Combine fminl with shell commands to automate optimization tasks.
- Other optimization tools: Connect fminl to other optimization tools, such as fmincon for constrained optimization.
Related Commands
- fmincon: Optimization for nonlinear functions with constraints.
- fminunc: Unconstrained optimization for nonlinear functions.
- scipy.optimize.minimize: Python library function for general optimization tasks.