V enačbo za Q sem namesto x,y,z vstavil dobljeno središče x0, y0, z0 in prištel konstanto 1. Torej Q= A*x0^2 + ....+F*y0*z0 + 1
Za računanje polosi sem vzel absolutno vrednost pod korenom. V nasprotnem primeru lahko pride do korenjenja negativnega števila.
Koda: Izberi vse
A->vhodna matrika
PM = PseudoInverse[A];
V = Table[1, {48}];
res = PM.V
M = ....
MI = PseudoInverse[M];
B={res[[7]]/2,res[[8]]/2,res[[9]]/2}
CENTER = -MI.B;
R1 = Sqrt[Abs[Q/lambda[[1]]]]
R2 = Sqrt[Abs[Q/lambda[[2]]]]
Koda: Izberi vse
lambda = Eigenvalues[M]
vector = Eigenvectors[M]
P={{vector [[1, 1]], vector [[1, 2]], vector [[1, 3]]}, {vector [[2, 1]], vector [[2, 2]], vector [[2,3]]},
{vector [[3, 1]], vector [[3, 2]], vector [[3, 3]]}}
PInv = Inverse[P];
Diag ={{lambda[[1]], 0, 0}, {0, lambda[[2]], 0}, {0,0,0}}
M2 = PInv.Diag.P;
MM = M2.CENTER*-2;
Rezultat tega je hiperbolični cilinder(za moj primer točk).
Na spletu sem našel seznam, kako prepoznati za katero obliko gre; link: http://mathworld.wolfram.com/QuadraticSurface.html .
Iz tabele je razvidno, da ima eliptični cilinder obe lastni vrednosti enakega predznaka. Če v zadnji iteraciji upoštevam še to, potem je rezultat že zelo blizu željenega. Ali pa sem imel samo precej sreče. Rezultat je namreč eliprični cilinder, ki pa ima napačne koordinate centra.
Ali je to posledica tega, kako dobim matriko MM iz katere iščem člene G,H,I? Tam namreč upoštevam "star" center. Nevem kako drugače naj dobim člene G,H,I.
Lp; Jan