Autor Tema: Calculadora de factorización y raíces exactas de polinomios

0 Usuarios y 1 Visitante están viendo este tema.

28 Septiembre, 2020, 05:25 pm
Leído 997 veces

alpertron

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 9
  • País: ar
  • Karma: +1/-0
Gente:

En la página Web https://www.alpertron.com.ar/FACTPOL.HTM hice una calculadora que permite factorizar polinomios enteros (hasta grado 1000) utilizando el algoritmo de Van Hoeij, que es sumamente rápido. Hay que tener en cuenta que es posible que la factorización no termine por problemas de memoria si el grado del polinomio es muy elevado.

Además el programa puede factorizar polinomios módulo una potencia de un número primo.

En el caso de polinomios enteros, también muestra las raíces exactas del polinomio usando sumas, restas, multiplicación, división, raíces y funciones trigonométricas para los polinomios irreducibles de grado menor o igual que 5. Hay que tener en cuenta que la gran mayoría de las ecuaciones de grado 5 no se pueden representar mediante las operaciones indicadas. También muestra las raíces de polinomios ciclotómicos, que son aquéllos de la forma x^n-1 y sus divisores), y los polinomios de las formas ax^n + b y ax^(2n) + bx^n + c.

Como ejemplo, les muestro una de las raíces de x^51-1 halladas por la calculadora:

x44 = cos (80*pi/51) + i *sen(80*pi/51) = -(1/32)*(-1+17^(1/2)-(34-2*17^(1/2))^(1/2)+2*(17+3*17^(1/2)+(170+38*17^(1/2))^(1/2))^(1/2)) + (1/16)*(3)^(1/2)*(34-2*17^(1/2)-2*(34-2*17^(1/2))^(1/2)+4*(17+3*17^(1/2)-(170+38*17^(1/2))^(1/2))^(1/2))^(1/2)-(i/32)*(3)^(1/2)*(-1+17^(1/2)-(34-2*17^(1/2))^(1/2)+2*(17+3*17^(1/2)+(170+38*17^(1/2))^(1/2))^(1/2))-(i/16)*(34-2*17^(1/2)-2*(34-2*17^(1/2))^(1/2)+4*(17+3*17^(1/2)-(170+38*17^(1/2))^(1/2))^(1/2))^(1/2)

Por último, agregué soporte para lectores de pantalla, para que gente que no pueda ver el monitor escuche los resultados.

Por favor, avísenme si encuentran errores o si creen que falta algo.

29 Septiembre, 2020, 07:48 pm
Respuesta #1

mathtruco

  • Moderador Global
  • Mensajes: 5,348
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Hola alpertron, se ve bueno tu sitio, debe haber mucho trabajo ahí. Además noté que compartes el código que hay detrás en github, lo que me parece excelente.

29 Septiembre, 2020, 08:51 pm
Respuesta #2

geómetracat

  • Moderador Global
  • Mensajes: 2,589
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Está muy bien la calculadora, y parece que funciona bastante rápido.

Pero he encontrado un fallo: cuando introduces un polinomio que tiene factores repetidos, como \( x^2+2x+1 \) te dice que el polinomio es irreducible, cuando claramente no lo es.
La ecuación más bonita de las matemáticas: \( d^2=0 \)

29 Septiembre, 2020, 09:32 pm
Respuesta #3

alpertron

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 9
  • País: ar
  • Karma: +1/-0
Acabo de corregir el error. Refresca la página para asegurar que la fecha diga 29 de septiembre y prueba de nuevo.

29 Septiembre, 2020, 10:08 pm
Respuesta #4

geómetracat

  • Moderador Global
  • Mensajes: 2,589
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Acabo de corregir el error. Refresca la página para asegurar que la fecha diga 29 de septiembre y prueba de nuevo.

Ahora va perfecto, gracias.
La ecuación más bonita de las matemáticas: \( d^2=0 \)

05 Octubre, 2020, 12:21 am
Respuesta #5

alpertron

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 9
  • País: ar
  • Karma: +1/-0
Cuando el polinomio irreducible tiene grado >= 5, ahora mi código factoriza este polinomio módulo diferentes primos menores que 100.

Si las condiciones del paper de Keith Conrad, que se puede ver en https://kconrad.math.uconn.edu/blurbs/galoistheory/galoisSnAn.pdf , son verdaderas, entonces el grupo de Galois es \( A_n \) o \( S_n \), y en ese caso mi aplicación indica que las raíces del polinomio no se pueden expresar mediante radicales, mostrando también las condiciones que llevan a esa conclusión.

Un ejemplo de la nueva salida:

Polinomio ingresado
\( x^{183} + 332x^{73} − 1 \)

Factores irreducibles del polinomio
El polinomio es irreducible

Raíces
Las 183 raíces son:
x1 a x183 : Las raíces del polinomio no se pueden expresar mediante expresiones radicales. Los grados de los factores del polinomio módulo 37 son 1, 3, 8, 10, 11, 28 y 122 (el grupo de Galois contiene un ciclo de longitud 3) y los grados de los factores del polinomio módulo 7 son 1, 2, 4, 13 y 163 (el grupo de Galois contiene un ciclo de longitud primo mayor que la mitad del grado del polinomio)

14 Diciembre, 2020, 03:51 am
Respuesta #6

alpertron

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 9
  • País: ar
  • Karma: +1/-0
Acabo de agregar salida TeX a esta calculadora. De esta manera se pueden copiar los factores o las raíces directamente al foro. Solo hay que seleccionar salida TeX antes de apretar el botón de factorizar.

Por ejemplo, las raíces del polinomio \( x^{17}-1 \) son:

\(
\begin{array}{l}
\bullet\,\,x_{1} = 1\\
\bullet\,\,x_{2} = \cos{ \frac{2\pi }{17}} + i \sin{\frac{2\pi }{17}} = \frac{1}{16}\left(-1+\sqrt{17}+\sqrt{34-2\sqrt{17}}+2\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34-2\sqrt{17}+2\sqrt{34-2\sqrt{17}}-4\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}}\\
\bullet\,\,x_{3} = \cos{ \frac{4\pi }{17}} + i \sin{\frac{4\pi }{17}} = \frac{1}{16}\left(-1+\sqrt{17}-\sqrt{34-2\sqrt{17}}+2\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34-2\sqrt{17}-2\sqrt{34-2\sqrt{17}}+4\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}}\\
\bullet\,\,x_{4} = \cos{ \frac{6\pi }{17}} + i \sin{\frac{6\pi }{17}} = \frac{1}{16}\left(-1-\sqrt{17}+\sqrt{34+2\sqrt{17}}+2\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34+2\sqrt{17}+2\sqrt{34+2\sqrt{17}}-4\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{5} = \cos{ \frac{8\pi }{17}} + i \sin{\frac{8\pi }{17}} = \frac{1}{16}\left(-1+\sqrt{17}+\sqrt{34-2\sqrt{17}}-2\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34-2\sqrt{17}+2\sqrt{34-2\sqrt{17}}+4\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}}\\
\bullet\,\,x_{6} = \cos{ \frac{10\pi }{17}} + i \sin{\frac{10\pi }{17}} = -\frac{1}{16}\left(1+\sqrt{17}-\sqrt{34+2\sqrt{17}}+2\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34+2\sqrt{17}+2\sqrt{34+2\sqrt{17}}+4\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{7} = \cos{ \frac{12\pi }{17}} + i \sin{\frac{12\pi }{17}} = -\frac{1}{16}\left(1+\sqrt{17}+\sqrt{34+2\sqrt{17}}-2\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34+2\sqrt{17}-2\sqrt{34+2\sqrt{17}}+4\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{8} = \cos{ \frac{14\pi }{17}} + i \sin{\frac{14\pi }{17}} = -\frac{1}{16}\left(1+\sqrt{17}+\sqrt{34+2\sqrt{17}}+2\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34+2\sqrt{17}-2\sqrt{34+2\sqrt{17}}-4\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{9} = \cos{ \frac{16\pi }{17}} + i \sin{\frac{16\pi }{17}} = -\frac{1}{16}\left(1-\sqrt{17}+\sqrt{34-2\sqrt{17}}+2\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}\right) + \frac{i}{8}\sqrt{34-2\sqrt{17}-2\sqrt{34-2\sqrt{17}}-4\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}}\\
\bullet\,\,x_{10} = \cos{ \frac{18\pi }{17}} + i \sin{\frac{18\pi }{17}} = -\frac{1}{16}\left(1-\sqrt{17}+\sqrt{34-2\sqrt{17}}+2\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34-2\sqrt{17}-2\sqrt{34-2\sqrt{17}}-4\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}}\\
\bullet\,\,x_{11} = \cos{ \frac{20\pi }{17}} + i \sin{\frac{20\pi }{17}} = -\frac{1}{16}\left(1+\sqrt{17}+\sqrt{34+2\sqrt{17}}+2\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34+2\sqrt{17}-2\sqrt{34+2\sqrt{17}}-4\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{12} = \cos{ \frac{22\pi }{17}} + i \sin{\frac{22\pi }{17}} = -\frac{1}{16}\left(1+\sqrt{17}+\sqrt{34+2\sqrt{17}}-2\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34+2\sqrt{17}-2\sqrt{34+2\sqrt{17}}+4\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{13} = \cos{ \frac{24\pi }{17}} + i \sin{\frac{24\pi }{17}} = -\frac{1}{16}\left(1+\sqrt{17}-\sqrt{34+2\sqrt{17}}+2\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34+2\sqrt{17}+2\sqrt{34+2\sqrt{17}}+4\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{14} = \cos{ \frac{26\pi }{17}} + i \sin{\frac{26\pi }{17}} = \frac{1}{16}\left(-1+\sqrt{17}+\sqrt{34-2\sqrt{17}}-2\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34-2\sqrt{17}+2\sqrt{34-2\sqrt{17}}+4\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}}\\
\bullet\,\,x_{15} = \cos{ \frac{28\pi }{17}} + i \sin{\frac{28\pi }{17}} = \frac{1}{16}\left(-1-\sqrt{17}+\sqrt{34+2\sqrt{17}}+2\sqrt{17-3\sqrt{17}+\sqrt{170-38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34+2\sqrt{17}+2\sqrt{34+2\sqrt{17}}-4\sqrt{17-3\sqrt{17}-\sqrt{170-38\sqrt{17}}}}\\
\bullet\,\,x_{16} = \cos{ \frac{30\pi }{17}} + i \sin{\frac{30\pi }{17}} = \frac{1}{16}\left(-1+\sqrt{17}-\sqrt{34-2\sqrt{17}}+2\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34-2\sqrt{17}-2\sqrt{34-2\sqrt{17}}+4\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}}\\
\bullet\,\,x_{17} = \cos{ \frac{32\pi }{17}} + i \sin{\frac{32\pi }{17}} = \frac{1}{16}\left(-1+\sqrt{17}+\sqrt{34-2\sqrt{17}}+2\sqrt{17+3\sqrt{17}-\sqrt{170+38\sqrt{17}}}\right)-\frac{i}{8}\sqrt{34-2\sqrt{17}+2\sqrt{34-2\sqrt{17}}-4\sqrt{17+3\sqrt{17}+\sqrt{170+38\sqrt{17}}}}\\
\end{array}
 \)

14 Diciembre, 2020, 04:57 am
Respuesta #7

mathtruco

  • Moderador Global
  • Mensajes: 5,348
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Se ve excelente, sólo por cuirioso, ¿Podrías describirnos un poco la tecnología que hay detrás del sitio? A menos, claro, que prefieras guardarlo como secreto.

14 Diciembre, 2020, 03:49 pm
Respuesta #8

alpertron

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 9
  • País: ar
  • Karma: +1/-0
El programa está escrito en C, y uso la plataforma Emscripten para generar WebAssembly y Javascript. Esto último es para navegadores viejos como IE11 que no soportan WebAssembly.

La mayor parte de los algoritmos que uso en el programa se encuentra en la ayuda que se ve apretando el botón con ese nombre.

17 Diciembre, 2020, 08:23 pm
Respuesta #9

mathtruco

  • Moderador Global
  • Mensajes: 5,348
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
El programa está escrito en C, y uso la plataforma Emscripten para generar WebAssembly y Javascript. Esto último es para navegadores viejos como IE11 que no soportan WebAssembly.

La mayor parte de los algoritmos que uso en el programa se encuentra en la ayuda que se ve apretando el botón con ese nombre.

Gracias por la información.

¿No has pensado unirte a algún grupo de desarrollo de software libre? Por ejemplo, Maxima está muy relacionado con el proyecto que haces, pero hasta donde sé sin versión web. Puede ser una gran idea presentarte ahí con tu trabajo. Quizás hacer el desarrollo web de ese software, podría ser algo tremendo. Estoy pensado en lo ocurrido con geogebra, que inicialmente era un software que se instalaba en el pc, y ahora tiene un sitio web con todo disponible online.

Por si acaso, yo no tengo nada que ver con ese proyecto, pero soy sólo un fan del sofware libre.