MATLAB代码
%plot confidence ellipse
%run in MATLAB2018b
t = [0.9 1.1 4.8 3.2 7.8 6.8 11.6 1.6 1.2 7.2 3.2]';
x1 = [67.3 111.3 173.0 80.8 199.7 139.4 368.2 95.7 109.6 196.2 102.2]';
% t = rand(100,1);
% x1 = rand(100,1);
A = [t,x1];
p = 0.95;
errorEllipse(A,p)
function errorEllipse(datamatrix,p)
%print 2-demension confidence ellipse
%In:n×2 matrix, confidence probability p
data = datamatrix;
covariance = cov(data);
[eigenvec,eigenval] = eig(covariance);
[sortEigenval,index] = sort(diag(eigenval),'descend');
sortEigenvec = eigenvec(:,index);
largestEigenval = sortEigenval(1);
smallestEigenval = sortEigenval(end); %find the minimum eigenvalue
largestEigenvec = sortEigenvec(:,1); %find the maximum eigenvector
angle = atan2(largestEigenvec(2), largestEigenvec(1)); %calculate the angle between x-axis and the maximum eigenvector, [-pi,pi]