home *** CD-ROM | disk | FTP | other *** search
- function [invhess,directn]=updhess(xnew,xold,gradxnew,gradxold,invhess,para)
- %UPDHESS Performs the Inverse Hessian Update.
- % Returns direction of search for use with
- % unconstrained optimization problems.
-
- % Copyright (c) 1990 by the MathWorks, Inc.
- % Andy Grace 7-9-90.
-
- u=xnew-xold;
- v=gradxnew-gradxold;
- if para(1,6)==0
- % The BFGS Hessian Update formula:
- invhess=invhess + v*v'/(v'*u) -invhess*u*u'*invhess'/(u'*invhess*u);
- directn=-invhess\gradxnew;
-
- elseif para(1,6)==1
-
- % The DFP formula
- a=u*u'/(u'*v);
- b=-invhess*v*v'*invhess'/(v'*invhess*v);
- invhess=invhess + a + b;
- directn=-invhess*gradxnew;
-
- elseif para(1,6)==3
-
- % A formula given by Gill and Murray
- a = 1/(v'*u);
- invhess=invhess - a*(invhess*v*u'+u*v'*invhess)+a*(1+v'*invhess*v*a)*u*u' ;
- directn=-invhess*gradxnew;
- elseif para(1,6)==2
- % Steepest Descent
- directn=-gradxnew;
- end
-
-