Написание целевой функции в CVXR - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь решить следующую проблему в CVXR. Здесь y - матрица размером n на m, x - размером n на G и m - размером m на G.

b<- Variable(m,G)
b_transpose <- t(b)

expr<-sapply(1:m, function(i) x[,,i] %*% b_transpose[,i])

obj<- sum_squares(y-expr)
prob<- Problem(Minimize(obj))

Я получаю следующую ошибку: Ошибка в y - expr: non-numberri c аргумент бинарного оператора.

Я считаю, что я не передаю матрицу n на m expr так, как ожидает CVXR. Любая помощь будет высоко оценена. Спасибо!

1 Ответ

0 голосов
/ 30 января 2020

Полагаю, это работает.

expr<-lapply(1:m, function(i) sum_squares(y[,i]-x[,,i] %*% b_transpose[,i]))
exp<-Reduce(f = '+', x = expr)
obj<- exp
prob<- Problem(Minimize(obj))
...