我想知道如何使用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'是最小的。 变量没有限制,但请注意,实际上小于矢量长度。
我正在尝试将统计距离缩小。我无法在网上找到使用的功能。
提前致谢。
答案 0 :(得分: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);