首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向量矩阵的CVXR元素乘法

向量矩阵的CVXR元素乘法
EN

Stack Overflow用户
提问于 2019-12-07 17:14:54
回答 1查看 164关注 0票数 2

我想使用CVXR来找到向量的最佳值。在目标函数中,我需要以元素的方式将一个矩阵与一个向量相乘:

b: Nx1向量X:恩智浦矩阵结果:恩智浦矩阵

示例:

代码语言:javascript
复制
# Set the dims
N <- 50
p <- 5
X <- matrix(rnorm(N*p), N, p)

# to find the optimal values using optim() one could simply have a numeric object
# say the optimal values are 0.1, -0.2, 0.3, -0.5, 0.6
b <- c(0.1, -0.2, 0.3, -0.5, 0.6)

# Then we can have the Nxp matrix with the product
# (where column i of X is multiplied by element i of b) is given by
X*b

B是要优化的系数的向量。

使用CVXR必须声明

代码语言:javascript
复制
b <- Variable(p)

由于变量对象with使用矩阵形式,因此以后我们不能像前面的情况那样进行乘法运算。

此外,我们不想创建一个b: Nxp矩阵,因为对于第i列的所有N个观测值,我们需要有一个最佳值(因此mul_elemwise(X,X*b)选项不起作用,因为它将为不同的N观测值提供不同的最佳值-如果我没有记错的话)。

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2019-12-08 03:33:38

重述一下:这是R行为:

代码语言:javascript
复制
> m <- 2
> n <- 3
> A <- matrix(c(1,2,3,4,5,6),m,n)
> A
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
> x <- c(1,2)
> A*x
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    4    8   12
> 

这本质上是

代码语言:javascript
复制
A[i,j]*x[i]

R在幕后扩展(循环)x,使其具有与A一样多的元素,然后以列的方式进行元素乘法。

在CVXR中,事情有点不同。%*%用于矩阵乘法,*用于元素乘法。但是CVXR不做这种回收。因此,对于A*x,它要求A和x具有相同的形状(即(mxn)矩阵)。

这意味着我们需要自己进行扩展(回收)。这可以写成如下:

代码语言:javascript
复制
> x %*% t(rep(1,n))
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    2    2    2

所以我们可以这样写:

代码语言:javascript
复制
> A * (x %*% t(rep(1,n)))
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    4    8   12

这是我们可以在CVXR模型中使用的:

代码语言:javascript
复制
> library(CVXR)
> x <- Variable(m)
> Y <- Variable(m,n)
> e <- t(rep(1,n))
> e
     [,1] [,2] [,3]
[1,]    1    1    1
> problem <- Problem(Minimize(0),list(x == c(1,2), Y == A * (x %*% e)) )
> sol <- solve(problem)
> sol$status
[1] "optimal"
> sol$getValue(x)
     [,1]
[1,]    1
[2,]    2
> sol$getValue(Y)
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    4    8   12
> 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59224555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档