【问题标题】:Convex Optimization for MatlabMatlab的凸优化
【发布时间】:2013-08-27 19:02:26
【问题描述】:

我想知道如何用matlab解决以下最小化问题:

A 是一个半正定矩阵。 (所有特征值都大于或等于 0) F=F(x_1,...,x_n,y_1,y_2) = (F_1,...,F_2n) 是一个线性函数。

我想找到 (x_1,...,x_n,y_1,y_2) 这样:

F*A*F' 是最小值。 变量没有限制,但注意明显小于向量长度。

我正在尝试缩小统计距离。我在网上找不到要使用的功能。

提前致谢。

【问题讨论】:

  • 这是作业吗?你试过什么了?你被困在哪里了?
  • 没有。这不是家庭作业。而且没有什么可以尝试的。我只是在问是否有人为我的问题提供了新的 matlab 求解器。

标签: matlab mathematical-optimization convex-optimization


【解决方案1】:

对于 MATLAB 中的无约束优化,您可以使用 fminunc。为此,您可以定义成本函数:

function z = costfun(x)
f = F*A*F';    % where F is a function of x=[x_1,...y_n]

然后调用fminunc 找到最小值。提供矢量x0 作为搜索的起点。

[x,zval] = fminunc(@costfun,x0);

【讨论】:

  • 谢谢@ramino。这是一个我不知道的有趣功能。无论如何,我为我的问题找到了一个特定的功能。 x = quadprog(H,f,A,b,Aeq,beq)。它实际上可以表述为二次规划的问题。
猜你喜欢
  • 2012-06-26
  • 1970-01-01
  • 2012-05-21
  • 2016-04-16
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
相关资源
最近更新 更多