我有以下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分,而是那些会导致省略号尽可能小的分数?
我的想法是计算椭圆体中心到最远点之间的距离,然后将其从数据集中删除。然后重建一个新的省略号并重复。一步一步地缩小到最后五点。
有人可以帮助代码,或者只是提示如何以更顺畅的方式完成它?
谢谢!