qpspecial: Special Quadratic Programming Solver

Description Usage Arguments Details Value Note Author(s) References Examples

View source: R/qpspecial.R

Description

Solves a special Quadratic Programming problem.

Usage

1
qpspecial(G, x, maxit = 100)

Arguments

G

m x n-matrix.

x

column vector of length n, the initial (feasible) iterate; if not present (or requirements on x0 not met), x0 will be found.

maxit

maximum number of iterates allowed; default 100.

Details

Solves the QP problem

min q(x) = || G*x ||_2^2 = x'*(G'*G)*x
s.t. sum(x) = 1
and x >= 0

The problem corresponds to finding the smallest vector (2-norm) in the convex hull of the columns of G.

Value

Returns a list with the following components:

Note

x may be missing, same as if requirements are not met; may stop with an error if x is not feasible.

Author(s)

Matlab code by Anders Skajaa, 2010, under GPL license (HANSO toolbox); converted to R by Abhirup Mallik and Hans W. Borchers, with permission.

References

[Has to be found.]

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
G <- matrix(c(0.31, 0.99, 0.54, 0.20,
              0.56, 0.97, 0.40, 0.38,
              0.81, 0.06, 0.44, 0.80), 3, 4, byrow =TRUE)
qpspecial(G)
# $x
#              [,1]
# [1,] 1.383697e-07
# [2,] 5.221698e-09
# [3,] 8.648168e-01
# [4,] 1.351831e-01
# 
# $d
#           [,1]
# [1,] 0.4940377
# [2,] 0.3972964
# [3,] 0.4886660
# 
# $q
# [1] 0.6407121
# 
# $niter
# [1] 6
# 
# $info
# [1] 0

Example output

$x
             [,1]
[1,] 1.383697e-07
[2,] 5.221698e-09
[3,] 8.648168e-01
[4,] 1.351831e-01

$d
          [,1]
[1,] 0.4940377
[2,] 0.3972964
[3,] 0.4886660

$q
[1] 0.6407121

$niter
[1] 6

$info
[1] 0

pracma documentation built on June 21, 2017, 9:01 a.m.