The function returns well conditioned Hessian matrix.
Returns well conditioned Hessian matrix and, if 'RFO' is used, also returns the scaled gradient. .
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.
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.
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).
If data input exists, the data output gives diagnostic information such as hessian eigenvalues, condition number, and the number of conditioning iterates.
Version 1.9, authors: David Goodwin