From b33b390f7e9280b4bfac5ca444718ddf8cf6a766 Mon Sep 17 00:00:00 2001 From: ale Date: Sun, 5 Mar 2017 21:32:55 -0300 Subject: [PATCH] falta todavia --- HO_problema1a.py | 9 +++++++++ HO_problema1b.py | 24 ++++++++++++++++++++++++ HO_problema1c.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ HO_problema2.py | 41 +++++++++++++++++++++++++++++++++++++++++ HO_problema3.py | 15 +++++++++++++++ tabla.dat | 10 ++++++++++ 6 files changed, 144 insertions(+) create mode 100644 HO_problema1a.py create mode 100644 HO_problema1b.py create mode 100644 HO_problema1c.py create mode 100644 HO_problema2.py create mode 100644 HO_problema3.py create mode 100644 tabla.dat diff --git a/HO_problema1a.py b/HO_problema1a.py new file mode 100644 index 0000000..a968b0b --- /dev/null +++ b/HO_problema1a.py @@ -0,0 +1,9 @@ +# Programa que suma los multiplos de tres o cinco hasta 1000 + +a=range(0,1001,3) +b=range(0,1001,5) +c=set(a)|set(b) + +d=sum(c) + +print d diff --git a/HO_problema1b.py b/HO_problema1b.py new file mode 100644 index 0000000..b2d0e61 --- /dev/null +++ b/HO_problema1b.py @@ -0,0 +1,24 @@ +# Este programa suma los numeros impares de la serie de Fibonacci menores a un millon +suma=0 +iter_1=1 +iter_2=2 +a=[1,2] +while suma<=1e6-iter_1: + suma=iter_1+iter_2 + iter_1=iter_2 + iter_2=suma + + a.append(suma) + + +total=0 +b=[] +for i in a: + elem_guard=i%2 + if elem_guard!=0: + b.append(i) +for i in b: + total=total+i + +print total + diff --git a/HO_problema1c.py b/HO_problema1c.py new file mode 100644 index 0000000..c039f93 --- /dev/null +++ b/HO_problema1c.py @@ -0,0 +1,45 @@ +# Este programa calcula el factor primo mas grande de algun numero + +numero1= 600851475143 # Numero al que queremos calcularle el factor primo +raiz=numero1**(0.5) # Solo calculamos los factores hasta este numero (teorema) +numero=int(raiz)+1 # Le sumamos uno para tener el entero mayor + +a=range(1,numero+1,1) # Vamos a dividir la raiz por todos estos numeros a ver cuales son divisores +b=[] +c=[] +d=[] +f=[] +g=[] + +for i in a: + multiplos_2=i%2 + multiplos_3=i%3 + multiplos_5=i%5 + + if multiplos_2!=0 and multiplos_3!=0 and multiplos_5!=0: + b.append(i) # Descartamos los divisores 2,3,5 y todos sus multiplos + +for i in b: + multiplo=numero1%i + if multiplo==0: + c.append(i) #Vemos cual de los anteriores son divisores de nustro numero +print c + +# Ahora tenemos que ver cual de esos es el mayor primo--> repetimos el codigo anterior +# Estos valores seguro que no son multiplos de 2,3,5 +for i in c: + raiz_2=int(i**(0.5))+1 # Un vector con los numeros a los cuales buscarles los divisores + l=raiz_2 + d.append(raiz_2) + for i in d: + e=range(1,i+1,1) # Posibles divisores del divisor de nuestro numero + print raiz_2 + for i in e: + nuevo_multiplo=raiz_2%i + if nuevo_multiplo==0: + f.append(raiz_2/i) + if len(f)<=2: + g.append((raiz_2-1)**2) +print g + + diff --git a/HO_problema2.py b/HO_problema2.py new file mode 100644 index 0000000..5fbad22 --- /dev/null +++ b/HO_problema2.py @@ -0,0 +1,41 @@ +# Dado un set de datos, obtener un grafico tipo scatter de X en funcion de Y +# Se hace un ajuste lineal + +# Importamos librerias +import numpy as np +from scipy.optimize import curve_fit +import matplotlib.pyplot as pp + +# Datos a graficar y ajustar +datos_x=[] +datos_y=[] +fileId=open("tabla.dat") +for line in fileId: + l = line.split(",") + datos_x.append(float(l[0])) + datos_y.append(float(l[1])) +#print datos_x,datos_y +fileId.close + + +# Definimos la funcion con la cual ajustar y hacemos el ajuste +def fitLineal(y,a,b): + return a*y+b +def otra(y): + return 0.86599663*y+17.79571199 + +#ruido=np.random.normal(-1,1)*np.amax(datos_y)*1e-3 +fitParams, fitCovariances=curve_fit(fitLineal,datos_x,datos_y) +sigma=[fitCovariances[0,0],fitCovariances[1,1]] + +print 'Los parametros del ajuste son',fitParams +print 'La matriz de covarianza es:', fitCovariances + + +# Graficamos los datos +pp.xlabel("datos_x") +pp.ylabel("datos_y") +#pp.scatter(datos_x,datos_y) +#pp.plot(datos_x,fitLineal(datos_x,0.86599663,17.79571199)) +pp.plot(datos_x,otra(datos_x)) +pp.show() \ No newline at end of file diff --git a/HO_problema3.py b/HO_problema3.py new file mode 100644 index 0000000..c93123c --- /dev/null +++ b/HO_problema3.py @@ -0,0 +1,15 @@ +# Este programa grafica un polinomio y su derivada, y los puntos extremos +import numpy as np +import matplotlib.pyplot as pp + +def p_0(x): + return x**3+x**2-4*x+4 + +def p_1(x): + return 3*x**2+2*x-4 + +t=np.linspace(-1,1,num=100) + +pp.plot(t,p_0(t)) +pp.show() + diff --git a/tabla.dat b/tabla.dat new file mode 100644 index 0000000..868f2f8 --- /dev/null +++ b/tabla.dat @@ -0,0 +1,10 @@ +7.5,28.66 +4.48,20.37 +8.60,22.33 +7.73,26.35 +5.28,22.29 +4.25,21.74 +6.99,23.11 +6.31,23.13 +9.15,24.68 +5.06,21.89