问题标签 [cvx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4701 浏览

matlab - 如何在 CVX 中平方一个范数?

在 Matlab 的 CVX 包中,我想最小化像 $|Ax-b|_2^2$ 这样的函数。表示 2 范数的平方。我如何在 CVX 中编码?我都试过了:

但两者都抛出了错误。是否有我应该使用的内置函数?

(注意,实际上我正在尝试最小化该范数平方加上另一个范数的总和,这minimize (norm(A*x-b,2)^2 + norm(x,1));就是为什么我试图指定范数平方,而不仅仅是满足于找到未平方范数的最小值。)

0 投票
1 回答
1738 浏览

python - 将半定程序从 CVX 转换为 CVXPY

我想将以下 SDP(仅验证约束的可行性)从 CVX(MATLAB)转换为 CVXPY(Python):

下面是我的 Python 代码,

运行程序时有几个错误。1.当我打印Mblk时,它显示

回溯(最近一次通话最后):

文件“/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py”,第 2820 行,在 run_code

Out[1]: exec code_obj in self.user_global_ns, self.user_ns

文件“”,第 1 行,在

mblk

文件“/usr/lib/python2.7/dist-packages/IPython/core/displayhook.py”,第 247 行,调用中

format_dict, md_dict = self.compute_format_data(结果)

文件“/usr/lib/python2.7/dist-packages/IPython/core/displayhook.py”,第 157 行,compute_format_data

返回 self.shell.display_formatter.format(结果)

文件“/usr/lib/python2.7/dist-packages/IPython/core/formatters.py”,第 152 行,格式

数据 = 格式化程序(obj)

文件“/usr/lib/python2.7/dist-packages/IPython/core/formatters.py”,第 481 行,调用中

打印机.漂亮(obj)

文件“/usr/lib/python2.7/dist-packages/IPython/lib/pretty.py”,第 362 行,漂亮

return _default_pprint(obj, self, cycle)

_default_pprint 中的文件“/usr/lib/python2.7/dist-packages/IPython/lib/pretty.py”,第 482 行

p.text(repr(obj))

array_repr 中的文件“/usr/lib/python2.7/dist-packages/numpy/core/numeric.py”,第 1553 行

', ', “大批(”)

文件“/usr/lib/python2.7/dist-packages/numpy/core/arrayprint.py”,第 454 行,在 array2string 中

分隔符,前缀,格式化程序=格式化程序)

_array2string 中的文件“/usr/lib/python2.7/dist-packages/numpy/core/arrayprint.py”,第 256 行

'int':整数格式(数据),

文件“/usr/lib/python2.7/dist-packages/numpy/core/arrayprint.py”,第 641 行,在init

max_str_len = max(len(str(maximum.reduce(data))),

文件“/usr/local/lib/python2.7/dist-packages/cvxpy/constraints/leq_constraint.py”,第 67 行,非零

引发异常(“无法评估约束的真值。”)

例外:无法评估约束的真值。

当我踏上这条线时,

表明

Traceback(最近一次通话最后一次):文件

“.../sdp.py”,第 22 行,在

ValueError:使用序列设置数组元素。

如何解决这些问题?

0 投票
1 回答
359 浏览

matlab - 关于 CVX 优化的错误

我正在尝试使用 cvx 模型来解决优化问题;这是我的代码:

R 是可变的,其他的已经设置好了。错误消息是:

未定义的函数或变量“op”。

cvx/power>power_p 中的错误(第 104 行)cvx_dcp_error(errs, op);

cvx_binary_op 中的错误(第 107 行)z = p.funcs{vu(1)}(vec(x), vec(y), varargin{:});

cvx/power 中的错误(第 31 行)z = cvx_binary_op(BP, x, y);

cvx/mpower 错误(第 11 行) z = power( x, y, '^' );

test_1 中的错误(第 75 行) f(eth)=3*(sum(u))^3;

那么,谁能说出我的代码中有什么问题?

0 投票
1 回答
340 浏览

matlab - 如何将 MATLAB 符号/符号传递给 cvx sdp 求解器?

我有一个 3D 矩阵Atn x n x nvarnvar变量y1...y25。我很容易将变量输入 cvx:

但是,最后一行的相等性给了我这个错误:

我试图用几种不同的方式来建立这种平等:

使用我最初创建的相同for循环At(使用Cfun双精度矩阵):

这给出了这个错误:

我真的没想到它会起作用,但认为它值得一试。

我也尝试使用bsxfun在 cvx 中创建矩阵,但我不相信 bsxfun 能够处理符号。repmat是我现在正在研究的“bsxfun”(有人告诉我)的替代品。

The reason I am trying to do the problem in this way is to create a routine that can use cvx to solve an optimal power flow for any number/combination of buses, without have to create variable individually each time.

0 投票
0 回答
256 浏览

matlab - 使用 CVX 的简单线性约束 MatLab 的高效二次优化

(对不起格式化,我会尽力的)我想解决的:

其中A是一个NxH逻辑矩阵(大约一半是零,一半是一),b是一个Hx1常数向量,其中每个条目都是相同的(例如,b = (0.1,0.1,0.1,...). 是概率p的常数向量,所以所有条目都在 中。最优也是一个分布,所以所有其条目的个数应该在 中。请注意,在实践中,例如非常大,例如相对较小,例如。Nx1[0,1]x[0,1]H2 millionN150

我目前正在使用 CVX 来解决这个问题。明确地说,我的代码是:

这会产生正确的结果。但是,当它很大时,它相当慢H。鉴于我的优化程序的结构(逻辑 A、恒定约束、如果没有约束,则具有解析解的问题等),有没有更好的方法来解决这个问题?这里推荐CVX吗?

谢谢您的帮助。

0 投票
1 回答
872 浏览

matlab - l1 魔术错误 - matlab

我正在尝试使用比信号维度更少的观察来重建图像(压缩感知)。我正在尝试运行以下代码 -

但是在运行代码时出现以下错误。

当感知矩阵是 dct 矩阵而不是 dft 矩阵时,上面的代码恢复了解决方案。有人可以指出错误所在吗?这是 l1-magic 固有的问题吗?使用不同的求解器对我有用吗?

注意:l1qc_logbarrier 是库 l1 魔术中的一个函数。http://users.ece.gatech.edu/justin/l1magic/index.html

l1qc_logbarrier 解决 -

l1 最小化

0 投票
1 回答
754 浏览

matlab - 使用 MATLAB 和 CVX 进行 Frobenius 范数最小化

我有以下形式的 SVM 问题:

其中Q是方阵,x_i是训练样例, 是训练样例l_i的标签。

有没有办法使用现有的 MATLAB 优化工具使用内置优化例程或 CVX、libsvm 或其他优化包来解决这个问题?

0 投票
1 回答
879 浏览

matlab - 2D 融合 Lasso 与 Matlab CVX

我在这里写了一个二维融合套索代码。

奇怪的是,节目报道,

在 cvxprob(第 28 行)中 在 cvx_begin(第 41 行)使用 cvxprob/newcnstr 时出错(第 192 行)有纪律的凸编程错误:
无效约束:{convex} == {constant}

== 中的错误(第 12 行) b = newcnstr( evalin( 'caller', 'cvx_problem', '[]' ), x, y, '==' );

在我删除abs()约束后,程序可以运行,但这不是我期望的约束。

0 投票
2 回答
824 浏览

matlab - 在 Matlab 中并行运行 CVX

我正在并行运行具有不同参数的 CVX。串行运行时,我没有收到任何警告,但并行运行(使用 parfor),我得到以下信息:

我以前没有见过这个,我不知道如何解决它。任何帮助表示赞赏。

0 投票
1 回答
287 浏览

matlab - CVXGEN 程序的任意尺寸

我想解决MatLab使用CVXGEN. 我偏爱CVXGENover CVX,因为CVXGEN它要快得多。特别想解决

其中f(x)是二次形式,并且X是紧凑的、凸的,并且由线性函数定义。问题的大小因运行而异。我想尽可能地自动化这个过程。为了说明,一个 CVXGEN代码示例是:

​此代码输入于cvxgen.com。然后,在这个网站上,我可以生成给我一个唯一编号的 C 代码。然后我可以使用唯一编号将其编译成 MEX 代码。csolve最后,我可以通过运行以下代码从 MatLab调用此 MEX 代码 ( )

但是,此过程需要针对n我要运行的问题的每个维度,我需要转到cvxgen.com、更改n、编译代码,然后运行我的MatLab代码。是否可以让n输入作为参数?这样,我只需要编译一次代码,然后在我的MatLab代码集中params.n = nparams.Q = eye(n,n),然后调用[vars, status] = csolve(params);.