view doc/interpreter/optim.txi @ 6741:00116015904d

[project @ 2007-06-18 16:07:14 by jwe]
author jwe
date Mon, 18 Jun 2007 16:07:14 +0000
parents 6ab0a8767780
children 083721ae3dfa
line wrap: on
line source

@c Copyright (C) 1996, 1997 John W. Eaton
@c This is part of the Octave manual.
@c For copying conditions, see the file gpl.texi.

@node Optimization
@chapter Optimization

Octave comes with support for solving various kinds of optimization
problems. Specifically Octave can solve problems in Linear Programming,
Quadratic Programming, Nonlinear Programming, and Linear Least Squares
Minimization.

@menu
* Linear Programming::       
* Quadratic Programming::       
* Nonlinear Programming::       
* Linear Least Squares::        
@end menu

@c @cindex linear programming
@cindex quadratic programming
@cindex nonlinear programming
@cindex optimization
@cindex LP
@cindex QP
@cindex NLP

@node Linear Programming
@section Linear Programming

Octave can solve Linear Programming problems using the @code{glpk}
function.  That is, Octave can solve

@iftex
@tex
$$
  \min_x c^T x
$$
@end tex
@end iftex
@ifnottex
@example
min C'*x
@end example
@end ifnottex
subject to the linear constraints
@iftex
@tex
$Ax = b$ where $x \geq 0$.
@end tex
@end iftex
@ifnottex
@math{A*x = b} where @math{x >= 0}.
@end ifnottex

@noindent
The @code{glpk} function also supports variations of this problem.

@DOCSTRING(glpk)

@node Quadratic Programming
@section Quadratic Programming

Octave can also solve Quadratic Programming problems, this is
@iftex
@tex
$$
 \min_x {1 \over 2} x^T H x + x^T q
$$
@end tex
@end iftex
@ifnottex
@example
min 0.5 x'*H*x + x'*q
@end example
@end ifnottex
subject to
@iftex
@tex
$$
 Ax = b \qquad lb \leq x \leq ub \qquad A_{lb} \leq A_{in} \leq A_{ub}
$$
@end tex
@end iftex
@ifnottex
@example
     A*x = b
     lb <= x <= ub
     A_lb <= A_in*x <= A_ub
@end example
@end ifnottex

@DOCSTRING(qp)

@node Nonlinear Programming
@section Nonlinear Programming

Octave can also perform general nonlinear minimization using a
successive quadratic programming solver.

@DOCSTRING(sqp)

@node Linear Least Squares
@section Linear Least Squares

Octave also supports linear least squares minimization.  That is,
Octave can find the parameter @math{b} such the the model
@iftex
@tex
$y = xb$
@end tex
@end iftex
@ifnottex
@math{y = x*b}
@end ifnottex
fits data @math{(x,y)} as good as possible, assuming zero-mean
Gaussian noise.  If the noise is assumed to be isotropic the problem
can be solved using the @samp{\} or @samp{/} operators, or the @code{ols}
function.  In the general case where the noise is assumed to be anisotropic
the @code{gls} is needed.

@DOCSTRING(ols)

@DOCSTRING(gls)