在MATLAB中包含椭圆体的最小体积

时间:2017-02-28 18:56:02

标签: matlab optimization minimization

我有以下dataset。目标是使用CVX最小化包围这些点的椭球体积。我使用以下代码完成了此操作:

cvx_begin
    variable A(n,n) symmetric
    variable b(n)
    maximize( det_rootn( A ) )
    subject to
        norms( A * x + b * ones( 1, m ), 2 ) <= 1;


cvx_end


clf
noangles = 200;
angles   = linspace( 0, 2 * pi, noangles );
ellipse  = A \ [ cos(angles) - b(1) ; sin(angles) - b(2) ];
plot( x(1,:), x(2,:), 'ro', ellipse(1,:), ellipse(2,:), 'b-' );
axis off

但是如何才能最大限度地减少一个椭圆体积,其中包含给定的20个点的五个点?不只是随机的5分,而是那些会导致省略号尽可能小的分数?

我的想法是计算椭圆体中心到最远点之间的距离,然后将其从数据集中删除。然后重建一个新的省略号并重复。一步一步地缩小到最后五点。

有人可以帮助代码,或者只是提示如何以更顺畅的方式完成它?

谢谢!

0 个答案:

没有答案