softline: Soft (Inexact) Line Search In pracma: Practical Numerical Math Functions

Description

Fletcher's inexact line search algorithm.

Usage

 `1` ```softline(x0, d0, f, g = NULL) ```

Arguments

 `x0` initial point for linesearch. `d0` search direction from `x0`. `f` real function of several variables that is to be minimized. `g` gradient of objective function `f`; computed numerically if not provided.

Details

Many optimization methods have been found to be quite tolerant to line search imprecision, therefore inexact line searches are often used in these methods.

Value

Returns the suggested inexact optimization paramater as a real number `a0` such that `x0+a0*d0` should be a reasonable approximation.

Note

Matlab version of an inexact linesearch algorithm by A. Antoniou and W.-S. Lu in their textbook “Practical Optimization”. Translated to R by Hans W Borchers.

References

Fletcher, R. (1980). Practical Methods of Optimization, Volume 1., Section 2.6. Wiley, New York.

Antoniou, A., and W.-S. Lu (2007). Practical Optimization: Algorithms and Engineering Applications. Springer Science+Business Media, New York.

`gaussNewton`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14``` ```## Himmelblau function f_himm <- function(x) (x[1]^2 + x[2] - 11)^2 + (x[1] + x[2]^2 - 7)^2 g_himm <- function(x) { w1 <- (x[1]^2 + x[2] - 11); w2 <- (x[1] + x[2]^2 - 7) g1 <- 4*w1*x[1] + 2*w2; g2 <- 2*w1 + 4*w2*x[2] c(g1, g2) } # Find inexact minimum from [6, 6] in the direction [-1, -1] ! softline(c(6, 6), c(-1, -1), f_himm, g_himm) # [1] 3.458463 # Find the same minimum by using the numerical gradient softline(c(6, 6), c(-1, -1), f_himm) # [1] 3.458463 ```