I found this code from the library:
here’s the link also: https://bit.ly/3wN1bsX
% Section 8.4.1, Boyd & Vandenberghe “Convex Optimization”
% Almir Mutapcic - 10/05
% (a figure is generated)
%
% Given a finite set of points x_i in R^2, we find the minimum volume
% ellipsoid (described by matrix A and vector b) that covers all of
% the points by solving the optimization problem:
%
% maximize log det A
% subject to || A x_i + b || <= 1 for all i
%
% CVX cannot yet handle the logdet function, but this problem can be
% represented in an equivalent way as follows:
%
% maximize det(A)^(1/n)
% subject to || A x_i + b || <= 1 for all i
%
% The expression det(A)^(1/n) is SDP-representable, and is implemented
% by the MATLAB function det_rootn().
% Generate data
x = [ 0.55 0.0;
0.25 0.35
-0.2 0.2
-0.25 -0.1
-0.0 -0.3
0.4 -0.2 ]’;
[n,m] = size(x);
% Create and solve the model
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
% Plot the results
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
But A matrix and b vector doesn’t match to find the rotation angle and major and minor axis of the ellipse. Can you give me any idea for that? I need to get the rotation angle, major and minor axis…