# [R] Fwd: Quadratic programming, for loop

Berwin A Turlach berw|n@tur|@ch @end|ng |rom gm@||@com
Fri Jun 29 12:29:25 CEST 2018

```G'day Maija,

On Wed, 27 Jun 2018 08:48:08 +0300
Maija Sirkjärvi <maija.sirkjarvi using gmail.com> wrote:

>
> After the transpose, dvec and Amat are still incompatible.
>
> > d <- -hsmooth
> > dvec <- t(d)
> > c <- dvec*Amat
> Error in dvec * Amat : non-conformable arrays

'*' in R is element-wise multiplication and '%*%' implements
matrix/matrix (matrix/vector) multiplication as defined in matrix
algebra.  I presume you want to use the latter operator here.

> Moreover, I don't understand the following:
>
> > If dvec is of length *J*, then b will be of length J too.
>
> I believe the length of dvec comes from the number of variables and
> the length of b from the number of constraints. In this case they are
> not equal.

As I said:

> > solve.QP solves the quadratic program:
> >          min(-d^T b + 1/2 b^T D b)
> >    where A^T b >= b_0.

The minimisation is with respect to b.

Note that the objective function contains the inner product of d
(passed to dvec) and b, so d and b must have the same
dimension/length.  b contains the parameters/variables over which you
want to minimise.  b_0 (passed to bvec) depends on the number of
constraints.

Cheers,

Berwin

```