【问题标题】:Matlab Quadprog ConstraintMatlab Quadprog 约束
【发布时间】:2013-09-13 13:42:17
【问题描述】:

我正在尝试在 matlab 中使用 quadprog。 变量是矩阵 X。 我的问题有一个线性约束,即 diag(AX)

【问题讨论】:

    标签: matlab optimization


    【解决方案1】:

    我假设 A 和 X 是大小为 nxn 的方阵。

    什么是对角线元素?有时间我打个电话

    C = diag(A*X)
    

    什么是 C(i,i)?

    C(i,i) = sum(A(i,j)*X(j,i))
    

    其中总和超过 j。本质上,C 的第 i 个对角元素是 A 的第 i 行和 X 的第 i 列之间的点积。这样的点积有 n 个,简单地写成矩阵形式。

    当然,如果 A 和 X 不是方阵,只要它们符合矩阵乘法,同样成立。

    【讨论】:

    • 我想我没有明白你的意思。您的回答是否给了我一种以 AX? (因为这就是 quadprog 接口所需要的。)
    • 是的,可以,但我不会为你做你的工作。即使 X 在您传入时是一个矩阵,矩阵不等式约束也会假设 X 是一个长度为 n^2 的向量。您将需要构建适当的矩阵不等式约束,从本质上提取 X 的适当元素。
    • 您需要了解的是 quadprog 最小化了一个 SCALAR 目标,定义为 0.5*x'Hx+f'*x。因此,即使 X 在您传入时是一个数组,目标也是通过将 X 展开为一个向量来制定的。对于不等式约束也是如此。
    • 好的,现在我开始理解你的提示了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多