Subido por Carlos Herrera Cata

CONJETURA COLLATZ GOLDBACH-

Anuncio
La conjetura de Collatz y la conjetura
de Goldbach
Taller de Informática 1
2017
La conjetura de Collatz
Definición
 Lothar Collatz (1910-1990). En 1937 propuso la conjetura de




Collatz, la cual permanece sin ser resuelta.
Se la conoce también como conjetura de Siracusa o conjetura de
Ulam.
Collatz estudió en diferentes universidades alemanas incluyendo la
Universidad de Berlín bajo la tutela de Alfred Klose, recibiendo el
doctorado en 1935
Realizó contribuciones a las matemáticas aplicadas para el cálculo
numérico, en el análisis funcional, en la teoría de ecuaciones
diferenciales e integrales
Escribió varios libros de matemáticas aplicadas que fueron
traducidos al inglés
Definición
Definición
 Elijamos un número natural, digamos n, y realicemos los
siguientes cálculos:
 Si n es par dividámoslo por 2
 Si n es impar multipliquémoslo por 3 y sumémosle 1 al resultado
 Con el número obtenido repitamos el proceso, y así
sucesivamente. Por ejemplo, si n=6 la secuencia obtenida es:
Cuando se llega a 1, se
6, 3, 10, 5, 16, 8, 4, 2, 1
termina, dado que a
partir de aquí, se repite
 Pero si n=11, la secuencia es:
la secuencia 4, 2, 1
11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
Definición
 Hay alguna manera de saber la cantidad de elementos de la serie?
 n=27:
27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484,
242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466,
233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890,
445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283,
850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238,
1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102,
2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433,
1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35,
106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1
Grafico:
 Para n=6
16
14
12
10
8
6
4
2
0
1
2
3
4
5
6
7
8
9
Grafico:
 Para n=11
60
50
40
30
20
10
0
0
5
10
15
Grafico:
 Para n=27
10000
9000
8000
7000
6000
5000
4000
3000
2000
1000
0
0
20
40
60
80
100
120
Que sea simple no significa que sea
fácil…
Curiosidad:
 Casi 80 años después nadie ha demostrado su
veracidad, aunque gracias a las computadoras se ha podido
comprobar que para números hasta 2 elevado a 58, la
secuencia acaba siempre en 1. Esto significa que esta
conjetura es cierta para una gran cantidad de números, pero
esto no nos sirve como demostración. Evidentemente, la
intuición nos lleva a pensar que debería ser cierto, pero es
necesaria la demostración para hacerlo universal
 Para jugar un rato:
http://matheroboter.de/collatz.php?berechnen=1&cat=6&zahl=27
Como lo programamos?
function s= collatz(n)
s=[n];
while n>1
if rem(n,2)==0
n = n / 2;
else
n = 3*n + 1;
end
s=[s n];
end
vector=s;
end
Prueba
 Por línea de comandos:
>> s= collatz(6);
>> plot(s)
>> s= collatz(11);
>> plot(s)
>> s= collatz(27);
>> plot(s)
plot: Comando Matlab
para realizar un gráfico!!
Un ejemplo interesante
 Es interesante calcular y graficar la cantidad de valores de la
serie para los primeros n números naturales.
 Para eso usamos la función gcollatz(n) que lo que hace es
calcular la conjetura para n, n-1, n-2,…..,1 y guarda en un
vector la cantidad de elementos que tiene la conjetura para
cada ni. Es decir, no me interesan en este caso cada uno de
los valores de la conjetura sino la cantidad.
 Ejemplo: gcollatz(8)
4 17 9 6 3 8 2 1
Un ejemplo interesante
 Vector= gcollatz(20000)
300
250
200
150
100
50
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
4
x 10
Como lo programamos?
function v= gcollatz(n)
for i=1:n
s= collatz(i);
v(i)=length(s);
end
end
Prueba
 Por línea de comandos:
>> s= gcollatz(6);
>> plot(s, ‘.’)
>> s= gcollatz(11);
>> plot(s, ‘.’)
>> s= gcollatz(27);
>> plot(s, ‘.’)
plot: El segundo
parámetro , o sea, ‘.’ indica
el tipo de línea que quiero
dibujar. Opciones:
‘.’ , ‘*’, ‘o’, ’-’, ‘d’, etc
La conjetura de Goldbach
Definición
 Christian Goldbach (1690-1764). En 1742, en una carta que envió
a Euler, se encontró el enunciado de la conjetura que lleva su
nombre. Euler intentó demostrarla sin éxito.
 Goldbach estudió leyes, idiomas y matemáticas. Realizó viajes a
través de Europa y conoció a varios matemáticos famosos como
Leibniz, Euler y Bernoulli.
 Estudió y demostró varios teoremas sobre potencias perfectas.
Definición
Definición
 Elijamos un número natural par, digamos n, mayor que 2,
podemos decir que puede escribirse como la suma de dos
números primos:
 Por ejemplo, si n=6 se puede escribir como:
3 +3
 Pero si n=16, se puede escribir como :
11 + 5
Curiosidad:
 En
2013, el matemático peruano
Harald Andrés Helfgott dio una
demostración de la conjetura débil de
Goldbach:
 “Todo número impar mayor que 5
es la suma de tres números
primos”
 Sin embargo, esta demostración no representa un avance en la
demostración de la conjetura original, ya que los métodos usados
no funcionan de la misma manera
Gráfico
 El número de las diferentes maneras en las que se puede expresar un
número par n como la suma de dos números primos (4 <= n <=
1,000,000).
Como lo programamos?
function es = EsPrimo(n)
% EsPrimo(n). Funcion logica que indica si n es primo o no.
% Si nada indica lo contrario, el numero sera primo
es = 1;
% Recorremos todos los numeros desde el 2 hasta raiz de n
% comprobando si dividen exactamente a n
for i=2:sqrt(n)
if rem(n,i)==0 % Resto de dividir n entre i
es=0;
Esta función no es muy
eficiente! Realiza todo el
end
ciclo for, incluso luego de
end
averiguar que el numero en
cuestión no es primo!!
Como lo programamos?
function es = EsPrimo(n)
% EsPrimo(n). Funcion logica que indica si n es primo o no.
% Si nada indica lo contrario, el numero sera primo
es = 1;
% El while termina o bien cuando no es primo, o cuando llegamos a la
raiz cuadrada de n
i=2;
while i<=sqrt(n) && es==1
if rem(n,i)==0 % Resto de dividir n entre i
Mucho más eficiente! Si no
es=0;
es primo, termina el ciclo!
end
i=i+1;
end
Como lo programamos?
function [a,b]= goldbach(n)
encontre=0;
a=2;
while ~encontre && a<=n/2
b=n-a;
if EsPrimo(a) && EsPrimo(b)
encontre=1;
else
a=a+1;
end
end
%Si encontré, retorno el resultado, de otro modo, cero
if (~encontre)
a=0;
b=0;
end
end
Tarea: Chequear que n es
mayor que 2 y además es
par (para que cumpla por
completo la conjetura)
Descargar