成本函数 - 优化matlab

时间:2015-03-27 15:11:40

标签: matlab optimization cost-based-optimizer

我有一个信号X1 = [a1,...aN],其中值[a1,....,aN]始终> 0

我还有其他599个信号X2, X3, ...,X600 (N) X1 S
S = X1 + X2 + ... + X600
。 这些信号可以采用值> 0和<0。

我知道所有600个信号的总和总是正的并且等于信号S = X2' + X3' + ... + X600'

我想分发第一个信号X1,以便以最佳方式减少其他信号的负值...你能建议我怎么做(我用matlab)吗?

X2', X3'的最佳情况下,其中% signal x1 x=rand(1,1000); x(x<0)=0.01; % signals x2,....,x599 contained in the rows of A A=rand(599,1000); 等是正信号。

谢谢

修改

{{1}}

1 个答案:

答案 0 :(得分:0)

您似乎希望最小化以下目标(J)而不是(A):

J = sum( abs( x(:,1) - A*x(:,1)) ) +...
             sum(negativehockeystick( x(:, 2:end) + A.*x(:,1))

其中A是599 * N矩阵(优化的变量)。

和'negativehockeystick'是函数-min(x,0)

我认为cvx可以处理这个问题,因为它看起来很凸(在A中),但我不确定