derFreeMethods

BDF(mapp, x0, options)

BDF is a derivative-free algorithm for solving systems of nonlinear equations \(f(x) = 0\), x in \(R^m\) using the nonlinear unconstrained minimization \(\textrm{min}\ \psi(x) = 1/2 ||f(x)||^2\) s.t. x in \(R^m\).

USAGE:

[x_best, psi_best, out] = BDF(mapp, x0, options)

INPUTS:

mapp: function handle provides f(x) and gradient f(x) x0: initial point options: structure including the parameteres of scheme

  • .MaxNumIter - maximum number of iterations

  • .MaxNumMapEval - maximum number of function evaluations

  • .TimeLimit - maximum running time

  • .epsilon - accuracy parameter

  • .x_opt - optimizer

  • .psi_opt - optimum

  • .alpha - constant with \(\alpha < 2 \sigma\)

  • .beta - reduction constant of the line search

  • .flag_x_error - 1: saves \(x_{error}\), 0: do not saves \(x_{error}\) (default)

  • .flag_psi_error - 1:saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .flag_time - 1: saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .Stopping_Crit - stopping criterion:

    1. stop if \(||nfxk|| \leq \epsilon\)

    2. stop if MaxNumIter is reached

    3. stop if MaxNumMapEval is reached

    4. stop if TimeLimit is reached

    5. stop if (default) \(||hxk|| \leq \epsilon\) or MaxNumIter is reached

OUTPUTS:

x_best: the best approximation of the optimizer psi_best: the best approximation of the optimum out: structure including more output information

  • .T - running time

  • .Niter - total number of iterations

  • .Nmap - total number of mapping evaluations

  • .merit_func - array including all merit function values

  • .x_error - relative error \(norm(x_k(:)-x_{opt}(:))/norm(x_{opt})\)

  • .psi_error - relative error \((\psi_k-\psi_{opt})/(\psi_0-\psi_{opt}))\)

  • .Status - reason of termination

CSDF(mapp, x0, options)

CSDF is a derivative-free algorithm for solving systems of nonlinear equations \(f(x) = 0\), x in \(R^m\) using the nonlinear unconstrained minimization \(\textrm{min}\ \psi(x) = 1/2 ||f(x)||^2\) s.t. x in \(R^m\).

USAGE:

[x_best, psi_best, out] = CSDF(mapp, x0, options)

INPUTS:

mapp: function handle provides f(x) and gradient f(x) x0: initial point options: structure including the parameteres of scheme

  • .MaxNumIter - maximum number of iterations

  • .MaxNumMapEval - maximum number of function evaluations

  • .TimeLimit - maximum running time

  • .epsilon - accuracy parameter

  • .x_opt - optimizer

  • .psi_opt - optimum

  • .sigma - strong duplomonotone parameter

  • .l - Lipschitz continuity constant of f

  • .tauBar - a constant for determining the step-size

  • .flag_x_error - 1: saves \(x_{error}\), 0: do not saves \(x_{error}\) (default)

  • .flag_psi_error - 1:saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .flag_time - 1: saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .Stopping_Crit - stopping criterion:

    1. stop if \(||nfxk|| \leq \epsilon\)

    2. stop if MaxNumIter is reached

    3. stop if MaxNumMapEval is reached

    4. stop if TimeLimit is reached

    5. stop if (default) \(||hxk|| \leq \epsilon\) or MaxNumIter is reached

OUTPUTS:

x_best: the best approximation of the optimizer psi_best: the best approximation of the optimum out: structure including more output information

  • .T - running time

  • .Niter - total number of iterations

  • .Nmap - total number of mapping evaluations

  • .merit_func - array including all merit function values

  • .x_error - relative error \(norm(x_k(:)-x_{opt}(:))/norm(x_{opt})\)

  • .psi_error - relative error \((\psi_k-\psi_{opt})/(\psi_0-\psi_{opt}))\)

  • .Status - reason of termination

DBDF(mapp, x0, options)

DBDF is a derivative-free algorithm for solving systems of nonlinear equations \(f(x) = 0\), x in \(R^m\) using the nonlinear unconstrained minimization \(\textrm{min}\ \psi(x) = 1/2 ||f(x)||^2\) s.t. x in \(R^m\).

USAGE:

[x_best, psi_best, out] = DBDF(mapp, x0, options)

INPUTS:

mapp: function handle provides f(x) and gradient f(x) x0: initial point options: structure including the parameteres of scheme

  • .MaxNumIter - maximum number of iterations

  • .MaxNumMapEval - maximum number of function evaluations

  • .TimeLimit - maximum running time

  • .epsilon - accuracy parameter

  • .x_opt - optimizer

  • .psi_opt - optimum

  • .alpha - constant with \(\alpha < 2 \sigma\)

  • .beta - reduction constant of the line search

  • .lambda_min - lower bound of the step-size

  • .lambda_max - upper bound of the step-size

  • .flag_x_error - 1: saves \(x_{error}\), 0: do not saves \(x_{error}\) (default)

  • .flag_psi_error - 1:saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .flag_time - 1: saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .Stopping_Crit - stopping criterion:

    1. stop if \(||nfxk|| \leq \epsilon\)

    2. stop if MaxNumIter is reached

    3. stop if MaxNumMapEval is reached

    4. stop if TimeLimit is reached

    5. stop if (default) \(||hxk|| \leq \epsilon\) or MaxNumIter is reached

OUTPUTS:

x_best: the best approximation of the optimizer psi_best: the best approximation of the optimum out: structure including more output information

  • .T - running time

  • .Niter - total number of iterations

  • .Nmap - total number of mapping evaluations

  • .merit_func - array including all merit function values

  • .x_error - relative error \(norm(x_k(:)-x_{opt}(:))/norm(x_{opt})\)

  • .psi_error - relative error \((\psi_k-\psi_{opt})/(\psi_0-\psi_{opt}))\)

  • .Status - reason of termination

InitialDuplo(options)

Function for initializing the parameters of DuploBacktrack, DuploConStep, and DuploDoubBacktrack. If some parameters specified by the user InitialDuplo uses these parameters. Otherwise, the default values will be used.

USAGE:

[MaxNumIter, MaxNumMapEval, TimeLimit, epsilon, alpha, beta, sigma, l, tauBar, lambda_min, lambda_max, flag_x_error, flag_psi_error, flag_time, Stopping_Crit] = InitialDuplo(options)

INPUTS:

options: structure including the parameteres of scheme

  • .MaxNumIter - maximum number of iterations

  • .MaxNumMapEval - maximum number of function evaluations

  • .TimeLimit - maximum running time

  • .epsilon - accuracy parameter

  • .x_opt - optimizer

  • .psi_opt - optimum

  • .alpha - constant with \(\alpha < 2 \sigma\)

  • .beta - reduction constant of the line search

  • .sigma - strong duplomonotone parameter

  • .l - Lipschitz continuity constant of f

  • .tauBar - a constant for determining the step-size

  • .lambda_min - lower bound of the step-size

  • .lambda_max - upper bound of the step-size

  • .flag_x_error - 1: saves \(x_{error}\), 0: do not saves \(x_{error}\) (default)

  • .flag_psi_error - 1: saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .flag_time - 1: saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default)

  • .Stopping_Crit - stopping criterion

    1. stop if \(||nfxk|| \leq \epsilon\)

    2. stop if MaxNumIter is reached

    3. stop if MaxNumMapEval is reached

    4. stop if TimeLimit is reached

    5. stop if (default) \(||hxk|| \leq \epsilon\) or MaxNumIter is reached

OUTPUTS:

MaxNumIter: maximum number of iterations MaxNumMapEval: maximum number of function evaluations TimeLimit: maximum running time epsilon: accuracy parameter x_opt: optimizer psi_opt: optimum alpha: a constant beta: a constant flag_x_error: 1: saves \(x_{error}\), 0: do not saves \(x_{error}\) (default) flag_psi_error: 1: saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default) flag_time: 1: saves \(\psi_{error}\), 0: do not saves \(\psi_{error}\) (default) Stopping_Crit: stopping criterion

Rate_function(opt, varargin)

USAGE:

Rate_function(opt, varargin)

INPUTS:

xk: current point; opt: structure includes required parameters;

  • .FR - concatenation of forward and reverse stoichiometric matrix

  • .A - Reduced forward stoichiometric matrix

  • .B - Reduced reverse stoichiometric matrix

  • .k - initial kinetic

OUTPUT:

fxk: the vector f(xk)

StopCritDuplo(nfxk, Niter, Nmap, T, MaxNumIter, MaxNumMapEval, TimeLimit, epsilon, Stopping_Crit)

Function checking that one of the stopping criteria holds to terminate LLM and GLM. It perepares the status determining why the algorithm is stopped.

USAGE:

[StopFlag, Status] = StopCritDuplo(nfxk,Niter, Nmap, T, MaxNumIter, MaxNumMapEval, TimeLimit, epsilon, Stopping_Crit)

INPUTS:

nhxk: the norm 2 of h(xk) Niter: the number of iterations Nmap: the number of mapping calls T: the running time MaxNumIter: maximum number of iterations MaxNumMapEval: maximum number of function evaluations TimeLimit: maximum running time epsilon: accuracy parameter Stopping_Crit: stopping criterion:

  1. stop if \(||nfxk|| \leq \epsilon\)

  2. stop if MaxNumIter is reached

  3. stop if MaxNumMapEval is reached

  4. stop if TimeLimit is reached

  5. stop if (default) \(||hxk|| \leq \epsilon\) or MaxNumIter is reached

OUTPUTS:

StopFlag: 1: if one of the stopping criteria holds, 0: if none of the stopping criteria holds Status: the reason of the scheme termination