【问题标题】:cost function - optimization matlab成本函数 - 优化 matlab
【发布时间】:2015-05-31 23:28:50
【问题描述】:

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

我还有其他 599 个信号 X2, X3, ...,X600 的长度相同 (N)X1。 这些信号可以假定值 >0 和

我知道所有600个信号的总和总是正的,等于信号S
S = X1 + X2 + ... + X600

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

在最好的情况下S = X2' + X3' + ... + X600' 其中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);

【问题讨论】:

    标签: matlab optimization cost-based-optimizer


    【解决方案1】:

    您似乎希望通过 (A) 最小化以下目标 (J):

    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 中),但我不确定

    【讨论】:

    • 嗨!我认为缺少一个括号......也许在最后?那么在哪里可以找到negativehockeystick函数呢?
    • negativehockeystick = @(x) -min(x, 0)
    • 嗨,亚历山大。感谢您的澄清。您的代码是否适用于我在问题中给出的示例?我在您第一次回答后编辑了我的问题...
    • % 信号 x1 x=rand(1000,1); x(x
    • 现在 B 是目标变量,b/c 您将 A 称为 X 值,如果可行,我将编辑原始答案
    猜你喜欢
    • 2016-03-06
    • 2012-10-15
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多