2013-08-27 90 views
0

我想知道我怎么能解决以下最小化问题与MATLAB:凸优化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”是最小的。 这些变量没有限制,但注意到其中的矢量长度要小得多。

我正在尝试minicime统计距离。我无法在网上找到要使用的功能。

在此先感谢。

+1

这功课吗?你试过什么了?你卡在哪里? – Schorsch

+0

不,这不是家庭作业。没有什么可尝试的。我只是问是否有人为我的问题新增了一个matlab求解器。 – Manuel

回答

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); 
+1

谢谢@ramino。这是一个我不知道的有趣功能。无论如何,我为我的问题找到了一个特定的功能。 x = quadprog(H,f,A,b,Aeq,beq)。这个问题实际上可以表述为二次规划。 – Manuel