Learn R Programming

limSolve (version 1.4)

ldp: Least Distance Programming

Description

Solves the following inverse problem: $$\min(\sum {x_i}^2)$$ subject to $$Gx>=h$$

uses least distance programming subroutine ldp (FORTRAN) from Linpack

Usage

ldp(G, H, tol=sqrt(.Machine$double.eps), verbose=TRUE)

Arguments

G
numeric matrix containing the coefficients of the inequality constraints $Gx>=H$; if the columns of G have a names attribute, they will be used to label the output.
H
numeric vector containing the right-hand side of the inequality constraints.
tol
tolerance (for inequality constraints).
verbose
logical to print ldp error messages.

Value

  • a list containing:
  • Xvector containing the solution of the least distance problem.
  • residualNormscalar, the sum of absolute values of residuals of violated inequalities; should be zero or very small if the problem is feasible.
  • solutionNormscalar, the value of the quadratic function at the solution, i.e. the value of $\sum {w_i*x_i}^2$.
  • IsErrorlogical, TRUE if an error occurred.
  • typethe string "ldp", such that how the solution was obtained can be traced.

References

Lawson C.L.and Hanson R.J. 1974. Solving Least Squares Problems, Prentice-Hall

Lawson C.L.and Hanson R.J. 1995. Solving Least Squares Problems. SIAM classics in applied mathematics, Philadelphia. (reprint of book)

See Also

ldei, which includes equalities.

Examples

Run this code
# parsimonious (simplest) solution
G <- matrix(nr=2,nc=2,data=c(3,2,2,4))
H <- c(3,2)

ldp(G,H)

Run the code above in your browser using DataLab