Classificacio de formes quadràtiques en

Farem la classificació d'una forma quadràtica a partir de la matriu associada. Això donarà lloc a un conjunt de superficies en que s'anomenen Quàdriques.
DefinicioQuadrica.png

Definim una quadrica

Ordre dels termes:
%------------------------------
%Exemples de Quàdriques: (descomentar per executar)
%------------------------------
p=[3, 2, 3, 0, -2, 0, -2, -4, -2, -5]; % El·lipsoide real
% p=[3, 2, -1, -4, 2, 2, 3, -2, 1, 4.3]; % Hyperboloide d'una fulla
% p=[1, 1, -1, 0, 0, 0, 0, 0, 0, -1]; % Hyperboloide de dues fulles
% p=[3, 0, -2, 0, 0, 0, 0, 0, 0, -1.3]; % Cilindre hiperbòlic
% p=[1, 1, 0, 2, 0, 0, 0, -2, 2, 0]; % Cilindre parabòlic
% p=[3, 2, 0, 0, 0, 0, 0, 0, 0, -1]; % Cilindre el·liptic
% p=[3, -1, 2, 0, 0, 0, -6, -4, 4, 1]; % Con Real
% p=[3, 0, -1, 0, 0, 0, 1.2, 1, -1, 1]; % Paraboloide hiperbòlic
% p=[3, 0, 1, 0, 0, 0, 1.2, 1, -1, 1]; % Paraboloide el·liptic
% definim la matriu A de la quàdrica (simètrica) i la part quadràtica T
A(1,1)=p(1); A(2,2)=p(2); A(3,3)=p(3);
A(1,2)=p(4)/2; A(2,1)=A(1,2);
A(1,3)=p(5)/2; A(3,1)=A(1,3);
A(2,3)=p(6)/2; A(3,2)=A(2,3);
A(1,4)=p(7)/2; A(4,1)=A(1,4);
A(2,4)=p(8)/2; A(4,2)=A(2,4);
A(3,4)=p(9)/2; A(4,3)=A(3,4);
A(4,4)=p(10);
T=A(1:3,1:3) %submatriu 3x3
T = 3×3
3 0 -1 0 2 0 -1 0 3
A
A = 4×4
3 0 -1 -1 0 2 0 -2 -1 0 3 -1 -1 -2 -1 -5

Paràmetres de Classificació d'una quàdrica: valors propis

Les quadriques més importants són les de la següent imatge:
plotsQuad.png
El tipus de quàdrica corresponent a una forma quadràtica, pot classificar-se a partir de la taula següent:
ClassificacioQuadriques.png
% Calculem els VAPS de T
vaps=eig(T);
% mirem quin signe tenen els VAPS
indPos=find(vaps > 0);
indNeg=find(vaps < 0);
indZer=setdiff(1:3,[indPos',indNeg']);
% comptem quants n'hi ha de cada
iPos=length(indPos);
iNeg=length(indNeg);
iZer=length(indZer);
numVaps_Signe=[iPos,iNeg,iZer]
numVaps_Signe = 1×3
3 0 0
%
% Els altres valors de classificació
%
rangA=rank(A)
rangA = 4
detA=det(A)
detA = -128
if (rangA <=2)
error('La quàdrica és degenerada');
end

Classificació de les quàdriques

El·lipsoides

if (iPos ==3 && rangA ==4)
if (detA < 0)
disp('Ellipsoide real');
ellipsoid_plot(vaps(1),vaps(2),vaps(3));
else
disp('Ellipsoide imaginari');
end
end
Ellipsoide real

Hiperboloides

if (iPos ==2 && iNeg ==1 && rangA ==4)
if (detA < 0)
disp('Hiperboloide d''un full');
hyperboloide_one_sheet_plot(vaps(1),vaps(2),vaps(3));
else
disp('Hiperboloide de dos fulls');
hyperboloide_two_sheet_plot(vaps(1),vaps(2),vaps(3));
end
end

Paraboloides

if (iPos ==2 && iZer ==1 && rangA ==4)
disp('Paraboloide El.liptic');
paraboloide_elliptic_plot(vaps(1),vaps(2),vaps(3));
end
if (iPos ==1 && iNeg ==1 && iZer ==1 && rangA ==4)
disp('Paraboloide Hyperbolic');
paraboloide_hyperbolic_plot(vaps(1),vaps(2),vaps(3));
end

Cons

if (iPos ==3 && rangA ==3)
disp('Con imaginari');
end
if (iPos ==3 && iNeg ==1 && rangA ==3)
disp('Con real');
con_plot(vaps(1),vaps(2),vaps(3));
end

Cilindres

if (iPos ==2 && iZer ==1 && rangA ==3)
disp('Cilindre El.liptic');
cilindre_elliptic_plot(vaps(1),vaps(2),vaps(3));
disp('Podria ser també imaginari');
end
if (iPos ==1 && iNeg ==1 && iZer ==1 && rangA ==3)
disp('Cilindre Hyperbolic');
cilindre_hyperbolic_plot(vaps(1),vaps(2));
end
if (iPos ==1 && iZer ==2 && rangA ==3)
disp('Cilindre Parabolic');
cilindre_parabolic_plot(vaps(1));
end
(c) Numerical Factory 2020