Los 20 algoritmos matemáticos

13
Tema: Los 20 algoritmos matemáticos mas famosos División por tentativa De Wikipedia, la enciclopedia libre La división por tentativa es el algoritmo de factorización de enteros más sencillo y fácil de entender. Dado un entero compuesto n (a lo largo de este artículo, n será "el entero a factorizar"), la división por tentativa consiste en intentar dividir n entre todo número primo menor o igual a . Si se encuentra un número que es divisor de n, en división entera, ese número es un factor de n. Es posible determinar un límite para los factores primos. Supón que P(i) es el i-ésimo primo, de modo que P(1) = 2, P(2) = 3, etc. Entonces el valor del último número primo probado como un posible factor de n es P(i) donde P(i + 1) 2 > n; la igualdad aquí querría decir que P(i + 1) es un factor. Aunque todo esto está muy bien, normalmente el inconveniente de inspeccionar un n concreto para determinar el valor correcto de i es más costoso que simplemente probar con el único candidato innecesario P(i + 1) que estaría incluido en la tentativa con todos los P(i) tales que . Puede la raíz cuadrada de n ser entera, entonces es un factor y n es un cuadrado perfecto , pero no es esta una manera buena de encontrarlos. La división por tentativa garantiza encontrar un factor de n, puesto que comprueba todos los factores primos posibles de n. Por tanto, si el algoritmo no encuentra ningún factor, es una prueba de que n es primo. En el peor caso , la división por tentativa es un algoritmo costoso. Si se empieza en 2 y se va subiendo hasta la raíz cuadrada de n, el algoritmo requiere Nombre: Carlos Iván Chicaiza Tamayo+ Curso : Trc260 41

Transcript of Los 20 algoritmos matemáticos

Page 1: Los 20 algoritmos matemáticos

Tema: Los 20 algoritmos matemáticos mas famosos

División por tentativa

De Wikipedia, la enciclopedia libre

La división por tentativa es el algoritmo de factorización de enteros más sencillo y fácil de entender.

Dado un entero compuesto n (a lo largo de este artículo, n será "el entero a factorizar"), la división por tentativa consiste en intentar dividir n entre todo número primo menor o

igual a . Si se encuentra un número que es divisor de n, en división entera, ese número es un factor de n.

Es posible determinar un límite para los factores primos. Supón que P(i) es el i-ésimo primo, de modo que P(1) = 2, P(2) = 3, etc. Entonces el valor del último número primo probado como un posible factor de n es P(i) donde P(i + 1)2 > n; la igualdad aquí querría decir que P(i + 1) es un factor. Aunque todo esto está muy bien, normalmente el inconveniente de inspeccionar un n concreto para determinar el valor correcto de i es más costoso que simplemente probar con el único candidato innecesario P(i + 1) que

estaría incluido en la tentativa con todos los P(i) tales que . Puede la raíz cuadrada de n ser entera, entonces es un factor y n es un cuadrado perfecto, pero no es esta una manera buena de encontrarlos.

La división por tentativa garantiza encontrar un factor de n, puesto que comprueba todos los factores primos posibles de n. Por tanto, si el algoritmo no encuentra ningún factor, es una prueba de que n es primo.

En el peor caso, la división por tentativa es un algoritmo costoso. Si se empieza en 2 y se va subiendo hasta la raíz cuadrada de n, el algoritmo requiere

tentativas, donde π(x) es la función contador de primos, el número de primos menores que x. En lo anterior no se ha tenido en cuenta la sobrecarga del test de primalidad para obtener los números primos candidatos a ser factores. Si se utiliza una variante sin el test de primalidad, sencillamente dividiendo por todo número impar menor que la raíz cuadrada de n, ya sea primo o no, puede llegar a necesitarse alrededor de

tentativas, que para un n grande es peor.

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 2: Los 20 algoritmos matemáticos

Esto significa que para un n con factores primos grandes de tamaños similares (como aquellos empleados en la criptografía asimétrica), la división por tentativa es computacionalmente impracticable.

Sin embargo, para un n con al menos un factor pequeño, la división por tentativa puede ser un método rápido para encontrar ese factor pequeño. Vale la pena percatarse de que para un n aleatorio, existe un 50% de probabilidad de que 2 sea un factor de n, un 33% de probabilidad de que 3 sea un factor, y así sucesivamente. Se puede observar que el 88% de todos los enteros positivos tiene un factor menor que 100, y que el 91% tiene un factor menor que 1000.

Rul: http://es.wikipedia.org/wiki/Divisi%C3%B…

2.- Algoritmo original de Euclides

AB y CD son segmentos conmensurables.

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 3: Los 20 algoritmos matemáticos

Ejemplo del algoritmo original de Euclides.

En la concepción griega de la matemática, los números se entendían como magnitudes geométricas. Un tema recurrente en la geometría griega es el de la conmensurabilidad de dos segmentos: dos segmentos (números) AB y CD son conmensurables cuando existe un tercer segmento PQ el cual cabe exactamente un número entero de veces en los primeros dos, es decir, PQ «mide» (mensura: medida) a los segmentos AB y CD.

No cualquier par de segmentos es conmensurable, como encontraron los pitagóricos

cuando establecen que no es un número racional, pero en el caso de dos segmentos conmensurables se desea hallar la mayor medida común posible.

Euclides describe en la proposición VII.2 de sus Elementos un método que permite hallar la mayor medida común posible de dos números (segmentos) que no sean primos entre sí, aunque de acuerdo a la época tal método se explica en términos geométricos, lo que se ilustra en la siguiente transcripción.

Para encontrar la máxima medida común de dos números que no sean primos entre sí.

Sean AB y CD los dos números que no son primos uno al otro. Se necesita entonces encontrar la máxima medida común de AB y CD.

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 4: Los 20 algoritmos matemáticos

Si CD mide AB entonces es una medida común puesto que CD se mide a sí mismo. Y es manifiesto que también es la mayor medida pues nada mayor a CD puede medir a CD. Pero si CD no mide a AB entonces algún número quedará de AB y CD, el menor siendo continuamente restado del mayor y que medirá al número que le precede. Porque una unidad no quedará pues si no es así, AB y CD serán primos uno del otro [Prop. VII.1], lo cual es lo contrario de lo que se supuso.

Por tanto, algún número queda que medirá el número que le precede. Y sea CD midiendo BE dejando EA menor que sí mismo y sea EA midiendo DF dejando FC menor que sí mismo y sea FC medida de AE. Entonces, como FC mide AE y AE mide DF, FC será entonces medida de DF. Y también se mide a sí mismo. Por tanto también medirá todo CD. Y CD mide a BE. Entonces CF mide a BE y también mide a EA. Así mide a todo BA y también mide a CD. Esto es, CF mide tanto a AB y CD por lo que es una medida común de AB y CD.

Afirmo que también es la mayor medida común posible porque si no lo fuera, entonces un número mayor que CF mide a los números AB y CD, sea éste G. Dado que G mide a CD y CD mide a BE, G también mide a BE. Además, mide a todo BA por lo que mide también al residuo AE. Y AE mide a DF por lo que G también mide a DF. Mide también a todo DC por lo que mide también al residuo CF, es decir el mayor mide al menor, lo cual es imposible.

Por tanto, ningún número mayor a CF puede medir a los números AB y CD. Entonces CF es la mayor medida común de AB y CD, lo cual se quería demostrar.

Rul: http://es.wikipedia.org/wiki/Algoritmo_d…

3.- Algoritmo de eliminación de Gauss-Jordan1. Ir a la columna no cero extrema izquierda 2. Si el primer renglón tiene un cero en esta columna, intercambiarlo con otro que

no lo tenga

3. Luego, obtener ceros debajo de este elemento delantero, sumando múltiplos adecuados del renglón superior a los renglones debajo de él

4. Cubrir el renglón superior y repetir el proceso anterior con la submatriz restante. Repetir con el resto de los renglones (en este punto la matriz se encuentra en la forma de escalón)

5. Comenzando con el último renglón no cero, avanzar hacia arriba: para cada renglón obtener un 1 delantero e introducir ceros arriba de este sumando múltiplos correspondientes a los renglones correspondientes

Una variante interesante de la eliminación de Gauss es la que llamamos eliminación de Gauss-Jordan, (debido al mencionado Gauss y a Wilhelm Jordan), esta consiste en ir obteniendo los 1 delanteros durante los pasos uno al cuatro (llamados paso directo) así para cuando estos finalicen ya se obtendrá la matriz en forma escalonada reducida

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 5: Los 20 algoritmos matemáticos

Ejemplo

Supongamos que es necesario encontrar los números x, y, z, que satisfacen simultáneamente estas ecuaciones:

Esto es llamado un sistema lineal de ecuaciones. El objetivo es reducir el sistema a otro equivalente, que tenga las mismas soluciones. Las operaciones (llamadas elementales) son estas:

Multiplicar una ecuación por un escalar no nulo. Intercambiar de posición dos ecuaciones

Sumar a una ecuación un múltiplo de otra.

Estas operaciones pueden representarse con matrices elementales que se usan también en otros procedimientos como la factorización LU o la diagonalización por congruencia de una matriz simétrica.

En nuestro ejemplo, eliminamos x de la segunda ecuación sumando 3/2 veces la primera ecuación a la segunda y después sumamos la primera ecuación a la tercera. El resultado es:

Ahora eliminamos y de la primera ecuación sumando -2 veces la segunda ecuación a la primera, y sumamos -4 veces la segunda ecuación a la tercera para eliminar y.

Finalmente eliminamos z de la primera ecuación sumando -2 veces la tercera ecuación a la primera, y sumando 1/2 veces la tercera ecuación a la segunda para eliminar z.

Despejando, podemos ver las soluciones:

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 6: Los 20 algoritmos matemáticos

Para clarificar los pasos (y es en realidad lo que las computadoras manejan), se trabaja con la matriz aumentada. Podemos ver los 3 pasos en su notación matricial:

Primero:

Después,

Por último.

Si el sistema fuera incompatible, entonces nos encontraríamos con una fila como esta:

Que representa la ecuación: 0x + 0y + 0z = 1, es decir, 0 = 1 que no tiene solución.

Rul: http://es.wikipedia.org/wiki/Eliminaci%C…

4.- Algoritmo de HornerDe Wikipedia, la enciclopedia libre

En el campo matemático del análisis numérico, el Algoritmo de Horner, llamado así por William George Horner, es un algoritmo para evaluar de forma eficiente polinomios de una forma monomial.

Dado el polinomio

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 7: Los 20 algoritmos matemáticos

donde son números reales, queremos evaluar el polinomio a un valor específico de , digamos .

Para llevar a cabo el procedimiento, definimos una nueva secuencia de constantes como se muestra a continuación:

Entonces es el valor de .

Para ver como funciona esto, nótese que el polinomio puede escribirse de la forma

Después, sustituyendo iterativamente la bi en la expresión (después de: "a1+" va x0 y no x),

url: http://es.wikipedia.org/wiki/Algoritmo_d…

6.- Algoritmo de StrassenDe Wikipedia, la enciclopedia libre

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 8: Los 20 algoritmos matemáticos

En la disciplina matemática del álgebra lineal, el algoritmo de Strassen, llamado así por Volker Strassen, es un algoritmo usado para la multiplicación de matrices. Es asintóticamente más rápido que el algoritmo de multiplicación de matrices estándar, pero más lento que el algoritmo más rápido conocido, y es útil en la práctica para matrices grandes.

url http://es.wikipedia.org/wiki/Algoritmo_d…

7.- Test de primalidad AKSDe Wikipedia, la enciclopedia libre

(Redirigido desde Análisis de primalidad AKS)

Saltar a navegación, búsqueda

El test de primalidad AKS o algoritmo AKS es un algoritmo determinista que decide en tiempo polinómico si un número natural es primo o compuesto. Fue diseñado por los científicos de computación Manindra Agrawal, Neeraj Kayal y Nitin Saxena del Instituto tecnológico hindú de Kanpur en el año 2002, y eventualmente mejorado por otros investigadores del área. Su descubrimiento pone fin a uno de los más grandes problemas de la teoría de números y teoría de la complejidad computacional.

url: http://es.wikipedia.org/wiki/An%C3%A1lis…

8.- Algoritmo de RischDe Wikipedia, la enciclopedia libre

El algoritmo de Risch, nombrado en honor a Robert H. Risch, es un algoritmo utilizado en el cálculo de integrales indefinidas, o sea para encontrar la función primitiva. El algoritmo transforma el problema de integración en un problema de álgebra. El algoritmo se basa en la forma de la función que se integra y en el uso de métodos para integrar funciones racionales, radicales, logaritmos, y funciones exponenciales. Risch desarrolló el algoritmo en 1968, denominándolo un procedimiento de decisión, porque es un método para decidir si una función posee como integral indefinida una función elemental; y en el caso que la tuviera permite calcularla. En 1976 se desarrolló el algoritmo de Risch-Norman, que aunque es más rápido es una técnica menos poderosa.

R. H. Risch (1969). «The Problem of Integration in Finite Terms». Transactions of the American Mathematical Society 139: pp. 167-189. doi:10.2307/1995313.[1]

Maxwell Rosenlicht (1972). «Integration in finite terms». American Mathematical Monthly 79: pp. 963-972.

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 9: Los 20 algoritmos matemáticos

Geddes, Czapor, Labahn (1992). Algorithms for Computer Algebra, Kluwer Academic Publishers. ISBN 0-7923-9259-0.

Manuel Bronstein (2005). Symbolic Integration I, Springer. ISBN 3-540-21493-3.

Manuel Bronstein(1998)."Symbolic Integration Tutorial".

MathWorld entry on the Risch Algorithm

URL: http://es.wikipedia.org/wiki/Algoritmo_d…

9.- El algoritmos del Fibonacci

El cual permite encontrar el Fibonacci de una serie de números:

10.- El algoritmos de factores:

Este algoritmos permite buacar el factor común con en una operación matematica en este algoritmo permite hacerlo mediante un program que al final nos va a dar un mismo resultado.

11.-Algoritmo de matrices:

El cual permite sacar una operación mediante la dirección de matrices indicadas según el vector o matriz ingresada.

12.- el algoritmo de cálculo potencial

Es el algoritmo en el cual nos permite resolver un calculo matemático según las especificaciones que requiera.

13.- Algoritmos del e aplicación para los números romanos:

Permite encontrar todos los numero romanos en un numero determinado ingresado.

14.- Algoritmo de geometría de inversión

1. Pon una jaula esférica en mitad de la selva. 2. Enciérrate dentro de ella.

3. Haz un inversión con respecto a la jaula. Ahora, el exterior está dentro de la jaula, con TODOS los leones, y tu estás fuera de la jaula.

15.-Algoritmo de teoría de la medida

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 10: Los 20 algoritmos matemáticos

1. La selva es un espacio separable, por tanto, existe una sucesión de puntos que converge al león.

2. Seguimos estos puntos silenciosamente para acercarnos al león tanto como queramos, con el equipo adecuado, y lo matamos.

16.-Algoritmo topológico

1. Observamos que el león tiene, como mínimo, la conectividad de un toro.

2. Por tanto, lo podemos llevar a un espacio cuatri-dimensional.

3. Lo manipulamos para hacerle un nudo cuando lo devolvamos al espacio tridimensional. Estará indefenso.

17.-Algoritmo termodinámico

1. Construimos una membrana semipermeable, permeable a todo excepto a los leones.

2. La paseamos por la selva.

18.-Algoritmo de Schrödinger

1. En todo momento existe una probabilidad de que el león esté dentro de la jaula.

2. Ciérrala y siéntate a esperar.

19.-Algoritmo de la geometría proyectiva

1. Sin pérdida de generalidad, podemos ver la selva como una superficie plana.

2. Proyectamos esta superficie sobre una recta.

3. Luego, proyectamos esta recta sobre un punto dentro de la jaula.

4. El león habrá sido aplicado al interior de la jaula.

20.-Algoritmo de Bolzano-Weierstrass

1. Dividimos la selva en dos partes y las vallamos. El león tiene que estar en una de las dos partes.

2. Identificamos la zona en la que está el león, y volvemos a dividirla en dos partes, construyendo otra valla por la mitad.

3. Procedemos iterativamente construyendo vallas que dividan en dos la zona en la que esta el león. Finalmente, tendremos al león encerrado por una valla tan pequeña como queramos.

21.-Algoritmo de Peano

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41

Page 11: Los 20 algoritmos matemáticos

1. Construimos una curva de Peano que recorra toda la selva. 2. Esta curva puede ser recorrida en un tiempo arbitrariamente

pequeño. Así que, lo único que tienes que hacer es coger una lanza y recorrer la curva en un tiempo menor que el que tarda el león en moverse una distancia igual a su tamaño. Seguro que lo pinchas en el camino.

url: http://www.frikipedia.es/friki/Algoritmo

Nombre: Carlos Iván Chicaiza Tamayo+Curso : Trc260 41