Code
import sympy as sp
from funciones import x, y, u, v, coeficientes, clasificar_conica, angulo_rotacion, rotar_ecuacion
ecuacion = 5*x**2 - 6*x*y + 5*y**2 - 8Antes de usar nuestras funciones, las probamos con cónicas cuya respuesta ya conocemos:
assert clasificar_conica(1, 0, 1) == "elipse" # x² + y² = r²
assert clasificar_conica(0, 0, 1) == "parábola" # y² = 4px
assert clasificar_conica(1, 0, -1) == "hipérbola" # x² - y² = 1
assert clasificar_conica(0, 1, 0) == "hipérbola" # xy = 4
assert angulo_rotacion(1, 0, 4) == 0 # Sin término xy
assert angulo_rotacion(0, 1, 0) == sp.pi / 4 # xy = 4: 45°
assert angulo_rotacion(7, -6*sp.sqrt(3), 13) == sp.pi / 6
print("Todas las pruebas pasaron ✅")Todas las pruebas pasaron ✅
A = 5 B = -6 C = 5 D = 0 E = 0 F = -8
B² - 4AC = -64 → elipse
Como \(B^2 - 4AC = -64 < 0\), la cónica es una elipse.
El ángulo que elimina el término \(xy\) cumple \(\tan 2\theta = \frac{B}{A - C}\). Como \(A = C\), el denominador es cero y \(2\theta = 90°\):
Con \(x = u\cos\theta - v\sin\theta\) y \(y = u\sin\theta + v\cos\theta\):
\[\frac{u^2}{4} + \frac{v^2}{1} = 1\]
a, b = 2, 1
c = sp.sqrt(a**2 - b**2)
R = sp.Matrix([[sp.cos(theta), -sp.sin(theta)], [sp.sin(theta), sp.cos(theta)]])
def a_xy(punto):
"""Convierte un punto de las coordenadas (u, v) a (x, y)."""
return tuple(sp.simplify(R * sp.Matrix(punto)))
print("c =", c, " e =", c / a)
print("Vértices:", a_xy((a, 0)), a_xy((-a, 0)))
print("Covértices:", a_xy((0, b)), a_xy((0, -b)))
print("Focos:", a_xy((c, 0)), a_xy((-c, 0)))c = sqrt(3) e = sqrt(3)/2
Vértices: (sqrt(2), sqrt(2)) (-sqrt(2), -sqrt(2))
Covértices: (-sqrt(2)/2, sqrt(2)/2) (sqrt(2)/2, -sqrt(2)/2)
Focos: (sqrt(6)/2, sqrt(6)/2) (-sqrt(6)/2, -sqrt(6)/2)
| Elemento | En \((u, v)\) | En \((x, y)\) |
|---|---|---|
| Centro | \((0, 0)\) | \((0, 0)\) |
| Vértices | \((\pm 2, 0)\) | \((\sqrt{2}, \sqrt{2})\), \((-\sqrt{2}, -\sqrt{2})\) |
| Covértices | \((0, \pm 1)\) | \(\left(-\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right)\), \(\left(\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}\right)\) |
| Focos | \((\pm\sqrt{3}, 0)\) | \(\left(\frac{\sqrt{6}}{2}, \frac{\sqrt{6}}{2}\right)\), \(\left(-\frac{\sqrt{6}}{2}, -\frac{\sqrt{6}}{2}\right)\) |
| Excentricidad | \(e = \frac{c}{a} = \frac{\sqrt{3}}{2}\) | |
| Eje focal | Eje \(u\) | La recta \(y = x\) |