# Difference between revisions of "Hessreg.m"

The function returns well conditioned Hessian matrix.

## Syntax

    [H,g,data]=hessreg(H,g,reg_param,data)


## Description

Returns well conditioned Hessian matrix and, if 'RFO' is used, also returns the scaled gradient. .

## Arguments

    H - Hessian matrix to be regularised and conditioned.

g - gradient vector to assist regularisation for the 'RFO' method.

reg_param - structure of regularisation options and tolerances.

data - (optional) data structure to modify regularisation diagnostics.


## Returns

    H - Regularised and conditioned Hessian matrix

g - gradient vector from 'RFO' method (may occasionally change from input g).

data - (optional) data structure with regularisation diagnostics if data input was supplied.


## Default Options

Although these options would be automatically generated by optim_tols.m when used with fminnewton.m or fminkrotov.m, if the function is used separately from these functions - the following are its default options:

    reg_param.method

This defines the regularisation strategy. Options are a
Cholesky factorisation ('CHOL'), or the eigendecomposition
based Rational Function Optimisation ('RFO'), Trust Region
regularisation ('TRM') and a reset to the identity ('reset').
(Default 'RFO').

reg_param.n_reg

Maximumnumber of cholesky factorisation trials, or conditioning
iterates allowed (Default 2500).

reg_param.delta

Used in 'TRM' and regularisation. Should be in the form
0<delta and is the constant multiplied by the identity in
H=(H+delta*I), to shift eigenvalues. (Default 1)

reg_param.alpha

Used in 'RFO' and regularisation. Should be in the form
0<alpha and is the uniform scaling factor. (Default 1)

reg_param.cond_method

Either none , 'scaled' or 'iterative'. 'iterative' conditions
the hessian iteratively, reducing the factor delta to
reg_param.phi*alpha at every iterate (default
0.9), until the condition number is less than
reg_param.max_cond.

reg_param.phi

Used in 'RFO' and regularisation as the factor to reduce
scaling with 'iterative' conditioning. Should be 0<phi<1 for
'RFO' (Default 0.9). If used with 'TRM' and 'iterative'
conditions, this factor increases the eigenvalue shift
parameter at each iterate, in this case phi>1 (no Default for
'TRM').

reg_param.max_cond

positive number being the maximum allowed condition number of
the Hessian when reg_param.conditioning 'ioterative' or
'scaled' are used (Default 1e4).



## Notes

If data input exists, the data output gives diagnostic information such as hessian eigenvalues, condition number, and the number of conditioning iterates.