Skip to content

Matlab implementation of the steepest descent method

Notifications You must be signed in to change notification settings

rensor/fmindescent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

fmindescent

Matlab based optimizer framework based on the steepest descent method. The algorithm can handle linear equality, linear in-equality, non-linear in-equality, and non-linear equality constraints. The constraints are added to the objective function in an external penalization manner. Here, two different methods can be applied. The first method uses a merit function approach, where a global penalty parameters is used to make infeasible constraints expensive for the objective function. Alternatively, the Augmented Lagrange method is also available. This method updates the penalty parameters/Lagrange multipliers in each iteration, see [1] for details. The final Lagrange multipliers are available for the user to analyze. The descent direction can be determined using four different methods. • Conjugate gradient method • Broyden–Fletcher–Goldfarb–Shanno (BFGS) • Davidon–Fletcher–Powell (DFP) • Method of Feasible Directions (MFD) The current implementation of the MFD algorithm relies on the glpk linear solver used in Octave. In future releases, the user should be able to choose among other well-known linear solvers. In each iteration, the step size is determined by use of the golden section method.

[1] Nocedal J, Wright SJ: Numerical Optimization, second edition, ISBN-10:0-387-303003-0, p 514.

Usage: see also examples.m

myProblem = fmindescent(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon); % Default options are applied

myProblem = fmindescent(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options); % Input options structure

myProblem = fmindescent(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon ,'MaxIterations',100); % Input/modify individual options

[x,fval,exitflag,output] = myProblem.solve(); % Solve problem

Available options:

Initialize values to default

options = fmindescent.options();

Algorithm: 'CG' Display: 'off' ConstraintMethod: ‘AL’ LineSearch: ‘Golden’ InfeasibilityPenalization: 1000 MaxFunctionEvaluations: 1000 MaxIterations: 1000 OptimalityTolerance: 1.0000e-06 StepTolerance: 1.0000e-10

About

Matlab implementation of the steepest descent method

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages