You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CVXPY中实现变量向量对常数向量的逐元素幂运算?

在CVXPY中实现向量逐元素的X^C运算(向量化方式)

要实现凸表达式向量X与常数向量C的逐元素幂运算,且避免显式循环带来的求解效率问题,可以采用以下方案:

核心实现方式

利用CVXPY的表达式构建特性,结合列表推导式与堆叠函数(cp.hstack/cp.vstack)完成向量化的表达式定义。这种方式并非运行时循环,而是在表达式构建阶段一次性生成完整的逐元素幂运算节点,求解器会将其作为整体处理,不会增加求解时间。

代码示例

import cvxpy as cp
import numpy as np

# 定义向量维度
n = 5
# 常数指数向量C
C = np.array([0.5, 1.2, 2.0, 0.3, 1.5])
# 定义凸表达式X(此处以变量为例,也可以是其他凸表达式组合)
X = cp.Variable(n)

# 向量化生成逐元素X^C的表达式
X_pow_C = cp.hstack([cp.power(X[i], C[i]) for i in range(n)])

注意事项

  • 若X是列向量,使用cp.vstack替代cp.hstack可保持输出维度与X一致;
  • 部分新版本CVXPY已支持直接调用cp.power(X, C)实现同维度向量的逐元素幂运算,如果你的版本允许,这是更简洁的写法;若遇到版本兼容问题,上述堆叠+列表推导的方式是可靠的替代方案。

内容的提问来源于stack exchange,提问作者Mahdi Hosseini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:34:57