Biggs EXP02 Function
Mathematical Definition
\[f(x) = \sum_{i=1}^{10} \left( e^{-t_i x_1} - 5 e^{-t_i x_2} - \left(e^{-t_i} - 5 e^{-10 t_i}\right) \right)^2\]where $t_i = 0.1 \cdot i$.
Biggs EXP02 is a well-known nonlinear least squares benchmark problem used primarily in numerical optimization to test the efficiency and robustness of various algorithms, such as the Levenberg-Marquardt or Gauss-Newton methods. It simulates a “sum of exponentials” fitting problem. These are notoriously tricky because they can be “ill-conditioned”—meaning small changes in the parameters can lead to very similar curves, making it hard for an optimizer to find the exact bottom of the “valley.”
The function belongs to a family of problems (Biggs EXP2 through EXP6) originally proposed by M.C. Biggs in the 1970s to push the limits of optimization software.
Plots

Description and Features
- The function is continuous.
- The function is non-convex.
- The function is defined on 2-dimensional space.
- The function is multimodal.
- The function is differentiable.
- The function is non-separable.
- The function is non-scalable.
Input Domain
The function can be defined on any input domain but it is usually evaluated on $x_1, x_2 \in [0, 20]$.
Global Minima
The function has one global minimum at: $f(\textbf{x}^{\ast})=0$ at $\textbf{x}^{\ast} = (1, 10)$.
Implementation
Python
For Python, the function is implemented in the benchmarkfcns package, which can be installed from command line with pip install benchmarkfcns.
from benchmarkfcns import biggsexp02
print(biggsexp02([[0, 0],
[1, 1]]))MATLAB
An implementation of the Biggs EXP02 Function with MATLAB is provided below.
% Computes the value of the Biggs EXP02 function.
% SCORES = BIGGSEXP02FCN(X) computes the value of the Biggs EXP02
% function at point X. BIGGSEXP02FCN accepts a matrix of size M-by-N and
% returns a vetor SCORES of size M-by-1 in which each row contains the
% function value for the corresponding row of X.
%
% Author: Mazhar Ansari Ardeh
% Please forward any comments or bug reports to mazhar.ansari.ardeh at
% Google's e-mail service or feel free to kindly modify the repository.
function scores = biggsexp02fcn(x)
i = (1:10)';
ti = 0.1 * i; % Column vector (10x1)
yi = exp(-ti) - 5 * exp(-10 * ti); % Column vector (10x1)
x1 = x(:, 1)';
x2 = x(:, 2)';
term1 = exp(-ti * x1);
term2 = 5 * exp(-ti * x2);
residuals_sq = (term1 - term2 - yi).^2;
scores = sum(residuals_sq, 1)';
endThe function can be represented in Latex as follows:
f(x) = \sum_{i=1}^{10} \left( e^{-t_i x_1} - 5 e^{-t_i x_2} - \left(e^{-t_i} - 5 e^{-10 t_i}\right) \right)^2References:
- Biggs, M. C. (1971). “Notes on the Numerical Optimisation Centre’s nonlinear least-squares algorithm”. Technical Report No. 17, Numerical Optimisation Centre, Hatfield Polytechnic, Hatfield, UK
- Jamil, M., & Yang, X. S. (2013). “A literature survey of benchmark functions for global optimization problems”. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150–194.
- Bartholomew-Biggs, M. (2008). Nonlinear Optimization with Engineering Applications. Springer Science & Business Media