使用cvxpy优化受二阶圆锥约束的成本函数

时间:2018-07-17 21:14:54

标签: python numpy optimization cvxpy

我遇到以下形式的问题:  Constraints


其中X ^ _JW:

enter image description here


和delta_R_LV:

enter image description here

位置:

-所有大写的delta和epsilon都是常量

-R_WV是3,3个旋转矩阵,具有1000个样本

-R ^ _LV是一个3,3恒定旋转矩阵

-I是一个3,3旋转矩阵

-Delta_R_LV是我们要解决的3,3矩阵

-X_JLI是具有1000个样本的3,1向量

-T_LV是我们要解决的3,1向量

-T_VW是具有1000个样本的3,1向量

-X * _JW是具有1000个样本的3,1向量

我很难理解如何将1000个样本的3,3个矩阵拟合为2d形式,以便进行优化。我的想法是将最后一个维度展平,以得到维度为1000,9的矩阵,但我不了解这些矩阵如何对3,1向量进行运算。

我了解这些示例如何处理暗(N,1)的样本矢量,以及如何通过示例将类似的内容转换为矩阵:

objective = cp.Minimize(cp.sum_squares(A*x - b))
constraints = [0 <= x, x <= 1]
prob = cp.Problem(objective, constraints)

# The optimal objective value is returned by `prob.solve()`.
result = prob.solve()
# The optimal value for x is stored in `x.value`.
print(x.value)
# The optimal Lagrange multiplier for a constraint is stored in
# `constraint.dual_value`.
print(constraints[0].dual_value)


x = cp.Variable((1275,3))
objective = cp.Minimize(cvx.sum_squares(A*x - b))
constraints = [0 <= x, x <= 1]
prob = cvx.Problem(objective, constraints)

在此链接中还有另一个例子可能更接近我的问题:

http://nbviewer.jupyter.org/github/cvxgrp/cvx_short_course/blob/master/intro/control.ipynb

1 个答案:

答案 0 :(得分:0)

对于numpyR,您可以尝试使用{strong> X个矩阵的列表。对于 Sum(R*X) = Y(1x3) X(3x3) 2个样本和向量{{ 1}}(1x3)。看起来像:

R