Queremos encontrar todos los triángulos equilateros con vértices en tres rectas paralelas dadas.
- Plantea el problema usando variables simbólicas de la forma más directa posible, usando la definición de triángulo equilátero: los tres lados deben ser iguales, y observa como Sage falla miserablemente.
- Mastica un poco el problema, usando algunas de las sugerencias siguientes:
- Evita las raices cuadradas que tienen varias soluciones.
- Fija la primera recta al eje de las x.
- Fija el primer vértice del triángulo al origen de coordenadas.
- Usa una definición alternativa de triángulo equilátero: la rotación de ángulo 60º con vértice p1 lleva p2 a p3.
- Si fijamos dos rectas paralelas a distancia 1: ¿dónde debemos fijar la tercera recta para que el triángulo solución tenga área mínima? Usa por ejemplo la definición de área dadas las coordenadas de los vértices de la wikipedia en inglés: http://en.wikipedia.org/wiki/Area_of_a_triangle#Using_coordinates .
- Calcula el centro y el radio de la circunferencia que pasa por tres puntos del plano, de coordenadas (x1,y1), (x2,y2) y (x3,y3).
- Intenta entender la fórmula obtenida para el radio del círculo, en función de conceptos geométricos intrínsecos como áreas, distancias y ángulos.
Un teorema de álgebra afirma que todo polinomio simétrico se puede expresar en función de los polinomios simétricos elementales:
Por ejemplo:
- Busca a mano una forma de expresar el polinomio en función de los polinomios simétricos elementales en cuatro variables.
- Busca a mano una forma de expresar el polinomio en función de los (tres) polinomios simétricos elementales en dos variables.
- Busca a mano una forma de expresar el polinomio en función de los (tres) polinomios simétricos elementales en dos variables.
- Busca a mano una forma de expresar el polinomio de Taylor de grado k de en función de los (tres) polinomios simétricos elementales en dos variables (indicación: busca un método para calcular el polinomio de Taylor)
El código siguiente:
N = 5
var(','.join(['x%d'%j for j in range(1, N+1)]))
define las N variables simbólicas x1,...,xN.
Si además guardas las variables en una lista, puedes iterar la lista de variables para, por ejemplo, multiplicarlas todas:
N = 5
vs = var(','.join(['x%d'%j for j in range(1, N+1)]))
p = 1
for v in vs:
p = p\*v
print p
- Escribe una función que, dados dos números n y k , construya el polinomio
- Escribe una función que, dado un número k , construya el polinomio simétrico en k variables: :
- Escribe código que compruebe las identidades de Newton , para k desde 2 hasta 5 ( más información ):
sage: N = 5
sage: var(','.join(['x%d'%j for j in range(1, N+1)]))
(x1, x2, x3, x4, x5)
sage: N = 5
sage: vs = var(','.join(['x%d'%j for j in range(1, N+1)]))
sage: p = 1
sage: for v in vs:
... p = p*v
sage: print p
x1*x2*x3*x4*x5
- Escribe código que componga la matriz de van der Monde n x n:
- Demuestra que la matriz de van der Monde es invertible si los números son distintos, para n=2,3 y 4. (Indicación: factoriza el determinante)