Multibody system

From formulasearchengine
Revision as of 21:22, 31 January 2014 by en>Catskul (Minimal coordinates: fix awkward non-standard term for software.)
Jump to navigation Jump to search

In numerical optimization, the nonlinear conjugate gradient method generalizes the conjugate gradient method to nonlinear optimization. For a quadratic function f(x):

f(x)=Axb2

The minimum of f is obtained when the gradient is 0:

xf=2A(Axb)=0.

Whereas linear conjugate gradient seeks a solution to the linear equation AAx=Ab, the nonlinear conjugate gradient method is generally used to find the local minimum of a nonlinear function using its gradient xf alone. It works when the function is approximately quadratic near the minimum, which is the case when the function is twice differentiable at the minimum.

Given a function f(x) of N variables to minimize, its gradient xf indicates the direction of maximum increase. One simply starts in the opposite (steepest descent) direction:

Δx0=xf(x0)

with an adjustable step length α and performs a line search in this direction until it reaches the minimum of f:

α0:=argminαf(x0+αΔx0),
x1=x0+α0Δx0

After this first iteration in the steepest direction Δx0, the following steps constitute one iteration of moving along a subsequent conjugate direction sn, where s0=Δx0:

  1. Calculate the steepest direction: Δxn=xf(xn),
  2. Compute βn according to one of the formulas below,
  3. Update the conjugate direction: sn=Δxn+βnsn1
  4. Perform a line search: optimize αn=argminαf(xn+αsn),
  5. Update the position: xn+1=xn+αnsn,

With a pure quadratic function the minimum is reached within N iterations (excepting roundoff error), but a non-quadratic function will make slower progress. Subsequent search directions lose conjugacy requiring the search direction to be reset to the steepest descent direction at least every N iterations, or sooner if progress stops. However, resetting every iteration turns the method into steepest descent. The algorithm stops when it finds the minimum, determined when no progress is made after a direction reset (i.e. in the steepest descent direction), or when some tolerance criterion is reached.

Within a linear approximation, the parameters α and β are the same as in the linear conjugate gradient method but have been obtained with line searches. The conjugate gradient method can follow narrow (ill-conditioned) valleys where the steepest descent method slows down and follows a criss-cross pattern.

Three of the best known formulas for βn are titled Fletcher-Reeves (FR), Polak-Ribière (PR), and Hestenes-Stiefel (HS) after their developers. They are given by the following formulas:

  • Fletcher–Reeves:
βnFR=ΔxnΔxnΔxn1Δxn1
  • Polak–Ribière:
βnPR=Δxn(ΔxnΔxn1)Δxn1Δxn1
  • Hestenes-Stiefel:
βnHS=Δxn(ΔxnΔxn1)sn1(ΔxnΔxn1).

These formulas are equivalent for a quadratic function, but for nonlinear optimization the preferred formula is a matter of heuristics or taste. A popular choice is β=max{0,βPR} which provides a direction reset automatically.

Newton based methods - Newton-Raphson Algorithm, Quasi-Newton methods (e.g., BFGS method) - tend to converge in fewer iterations, although each iteration typically requires more computation than a conjugate gradient iteration as Newton-like methods require computing the Hessian (matrix of second derivatives) in addition to the gradient. Quasi-Newton methods also require more memory to operate (see also the limited memory L-BFGS method).

External links

ru:Метод сопряжённых градиентов

Template:Optimization algorithms