Programaci´on y metodos num´ericos: Correcci´on 1o parcial

Mateo Andr´es Dur´an Barraza
8 de octubre de 2015

1. Ejercicio 1
1.1. Problema
Se tiene que un n´ umero X es abundante si la suma de sus divisores es mayor que el n´ umero en si,
deficiente si la suma es menor que el n´
umero y perfecto si ambas son iguales. Se tiene que crear un c´odigo
umeros son deficientes, decrecientes o perfectos: 4400 8128 10! 240 666666666.
que halle si estos n´

1.2. Soluci´
on
Se cre´o un c´
odigo que determinaba si un n´ umero N es deficiente, perfecto o abundante. Para esto se
creo un ciclo en el que si X es divisible por alg´
un n´
umero, ese n´umero se sumaria al resto de divisores y
luego al obtener la suma total de divisores se compar´o con N y se obtuvo a que clasificaci´on pertenec´ıa.

1.3. Resultados
4400 es un numero abundante, 8128 es un numero perfecto, 3628800 es un numero abundante, para
240 GNU OCTAVE dice que el rango es invalido por lo tanto no se pudo realizar para este n´ umero, con
666666666 el c´ odigo no arroj´o resultado, se dejo por m´as de 5 minutos y segu´ıa calculando as´ı que se
prefiri´
o dejarlo sin resolver.

1.4. Conclusiones y c´
odigo
1. Los n´
umeros impares son deficientes.

2. El c´
odigo es u´til para n´
umeros relativamente peque˜ nos pero para n´umeros m´as grandes el tiempo
invertido es grande, esto se debe a que el c´odigo por dentro tiene muy poca matem´atica.

A. C´odigo
function problema1(x)
s=0;
for n=1:(floor((x/2)+1))
a=mod(x,n);
if a==0
s=s+n;
end
end
if s<x
fprintf("%d es un numero deficiente\n",x)
elseif s>x
fprintf("%d es un numero abundante\n",x)
else s==x
fprintf("%d es un numero perfecto\n",x)
end

1

Ejercicio 2 2. 4x6.1. 2. octave:14> a a = 7 9 4 5 5 0 4 2 4 3 5 6 octave:15> b b = 2 9 8 2 0 1 3 1 2 8 8 0 octave:16> c c = 8 7 5 7 4 4 0 0 5 1 3 5 4 7 0 1 0 8 7 7 8 8 5 7 2 . 2 Ahora se procede a usar el c´ odigo para 3 matrices de dimension 6x2. 1 Se usa el c´ odigo y se halla el m(x) y e(x) para un vector de 7 columnas. 2. octave:7> a a = 4 6 9 5 8 8 9 octave:8> problema2(a) m = 7 e = 8. Soluci´ on El c´ odigo realizado hallaba los m(x) y e(x) tanto para vectores como para matrices. Problema XN XN Realizar un c´ odigo que calcule m(x) = ( xi )/N y e(x)=log(( exi )/N ) para cualquier vector.2.3. Resultados Ejemplo. luego se cogieron tres matrices de tama˜ no mxn aleatorio y se compararon sus m(x) y e(x) para hallar el porcentaje para el que m(x) es mayor que e(x). i=1 i=1 luego se debe aplicar a una matriz de tama˜ no mxn donde m corresponde a vectores y averiguar para que porcentaje m(x) ≥ e(x). 4x3.0875 Ejemplo.2.

A. m e 3.8083 3.0000 5. x = 100 y x = 1000. Para cualquier vector e(x) ≥ m(x).6201 octave:18> problema2(b) m = 6. Se debe que hallar un programa tal que dado un i=1 i 2 3 4 n´ umero x.5000 2.c]=size(x).6201 4. Conclusiones y c´ odigo 1.0000 e = 6. C´odigo function problema2(x) [f. En otras palabras. Ejercicio 3 3.3090 7.0000 3. Problema N X 1 1 1 1 Se tiene la serie √ = 1 + √ + √ + √ +.2153 1. m=(sum(a))/c.0000 4.8333 2. es decir que m(x) es mayor que e(x) en el 0 % de los casos. . e=log((sum(e.6201 5.5000 3. 2.5000 5.0000 2. como se puede observar siempre e(x) ≥ m(x). 3 .3136 3.3333 1.3333 7.4338 3. no se coloca el estricto ya que nada nos dice que no pueda ser de esa forma.3567 Los m(x) correspondientes a e(x) est´ an colocados en columna.5947 octave:19> problema2(c) m = 5.4.5359 7. se debe calcular el menor n´ umero entero N tal que N X 1 √ ≥x i=1 i Hallar el valor de N para x = 10.3333 e = 8.3333 3.octave:17> problema2(a) m = 8.4338 4. diga cuantos t´erminos hay que sumar para que la suma parcial exceda x por primera vez.^a))/c).1. .5000 e = 8.3090 2. a=x’.9816 6.

2. Resultados Se hall´ o el N para los tres valores dados octave:29> problema3(10) N = 33 octave:30> problema3(100) N = 2574 octave:31> problema3(1000) N = 250731 3. donde k corresponde la exponente de 2 y m a la parte impar de N. 3. Problema Todo n´umero N puede ser representado de la forma N = 2k m. if s(N)>x N break end end 4.3. 4. Soluci´ on El programa calcula la serie uno por uno y a penas encuentra un valor mayor que x arroja el N correspondiente. C´odigo function problema3(x) s(1)=1. m.3. Conclusiones y c´ odigo 1. for N=2:999999.3. Ejercicio 4 4.1. A mayor x mayor es el valor de i ya que cada vez aumenta menos.2.2. Se debe crear un c´odigo que calcule k. Soluci´ on Se cre´ o un c´ odigo que calculaba la parte impar de N y por lo tanto su parte par(si el n´ umero tenia). s(N)=s(N-1)+(1/sqrt(N)). Resultados Se hall´ o el valor de k y m para el N solicitado octave:38> problema4(2113123909632) k = 34 m = 123 4 . El programa es muy lento ya que no tiene mucha matem´atica interna. y en particular el k y m de N=2113123909632. 4. A.4.

A. m=x.2). C´odigo function problema4(x) if 0==mod(x. esto se debe a que solo divide el n´ umero por 2 y cuando no puede ese valor es la parte impar. end k m 5 .4. m=x. while (a==0) x=x/2. El c´ odigo es relativamente r´apido.2). Conclusiones y c´ odigo 1.2) k=0.2) k=0. end else 0~=mod(x. k=k+1. a=mod(x. a=mod(x.4.