PROGRA 2 Aruquipa Silva Einar
PROGRA 2 Aruquipa Silva Einar
PROGRA 2 Aruquipa Silva Einar
INICIO
N= 1 NO
N ≤ 1000 FIN
N= N+ 1
SI
S=0
D=1
NO SI
N Mod D = 0
S=S+D
D = D +1
SI
D<N
NO
NO SI
S=N
NO ES PERFECTO PERFECTO
CODIGO MATLAB
clc,clear
%genera los numeros que la suma de sus digitos al cubo son iguales al
%mismmo numero
for N=1:1:10000
S=0;
D=1;
if mod(N,D)==0
S=S+D;
end
D=D+1;
while D<N
if mod(N,D)==0
S=S+D;
end
D=D+1;
end
if S==N
fprintf('Es un numero perfecto %d \n', N)
end
end
EJECUCION
2.- Encontrar números del 0 al 10000 que cumplan con la siguiente condición: La suma
del cubo de sus dígitos, debe ser igual al mismo número.
FLUJOGRAMA
INICIO
DM = 0
DM ≤ 9 FIN
DM = DM + 1
UM = 0
UM ≤ UM + 1
UM = UM + 1
C=0
C≤9
C=C+1
D=0
D≤9
D = D +1
U=0
U≤9
U=U+1
N = DM*104 + UM*103 +
C*102 + D*10 + U
NO
N = DM 3 + UM 3 +
C3 + D3 + U3
N
CODIGO MATLAB
clc,clear
%genera los numeros que la suma de sus digitos al cubo son iguales al
%mismmo numero
for DM=0:1:9
for UM=0:1:9
for C=0:1:9
for D=0:1:9
for U=0:1:9
N=DM*10000+UM*1000+C*100+D*10+U;
if N==DM^3+UM^3+C^3+D^3+U^3
fprintf('El numero es igual a la suma de sus digitos
al cubo %d \n',N)
end
end
end
end
end
end
EJECUCIÓN
3.- a) Encontrar todos los términos de la serie de Fibonacci tal que el último termino sea menor a
100000, b) Dado el enésimo termino de la serie de Fibonacci, encontrar ese término, c) Calcular la
serie de Fibonacci a partir del Triángulo de Pascal, d) Dibujar la espiral de Fibonacci, hasta el
término enésimo.
FLUJOGRAMA
INICIO
A =0
B = 1
C = 1
I = 1, N, 1
FIB (I)
C = A+ B
A =B
B = C
I = 1, N , 1
FIB (I)
FIN
CODIGO MATLAB
clc, clear
i= 1;
f= [1 1];
while(f(i)+f(i+1)<100000)
f(i+2)=f(i)+f(i+1);
i=i+1;
end
disp(f);
EJECUCION
Columns 1 through 10
1 1 2 3 5 8 13 21 34 55
Columns 11 through 20
Columns 21 through 25
CODIGO MATLAB
clc, clear
n= input('cuantos datos quiere para la serie?');
f= [1 1];
for i=3:n
f=[f f(i-1)+f(i-2)];
end
disp(f);
EJECUCION
Cuantos datos quiere para la serie?>> 5
1 1 2 3 5
d) CODIFICACION DE MATLAB
clc, clear
n= input('cuantos datos quiere para la serie?');
f= [1 1];
for i=3:n
f=[f f(i-1)+f(i-2)];
end
disp(f);
t= 0:0.1:n;
r=50*exp(0.31.*t);
x=r.*cos(t);
y=r.*sin(t);
plot (x, y);
EJECUCION
cuantos datos quiere para la serie?>> 7
1 1 2 3 5 8 13
CODIFICACION DE MATLAB
clc, clear
n= input('cuantos datos quiere graficar?');
f= [1 1];
for i=3:n
f=[f f(i-1)+f(i-2)];
end
t= 0:0.1:n;
r=50*exp(0.31.*t);
x=r.*cos(t);
y=r.*sin(t);
plot (x, y);
EJECUCION
Cuantos datos quiere graficar?>> 10
5.- Usando la serie de Taylor, calcular el valor del seno para un ángulo dado en grados, tal que el
último término de la serie sea menor 10^(-10) (casi cero). Calcular el error relativo porcentual.
INICIO
ALFA
X=(ALFAx∏) /180
TERM = x
Den = 2
2
TERM = - (TERM*x )/(Den(Den+2))
SUMA = x
2
TERM = - (TERM*x )/(Den(Den+2))
Den = Den + 1
SI
-8
|TERM| > 10
NO
ALFA, x, SUMA,
TEST, Error
FIN
CODIGO MATLAB
clc,clear
%Usando la serie de Taylor calcular el valor del seno para un ángulo dado en
grados
%tal que el último término de la serie sea menor 10 -10
%calcular el error relativo porcentual.
alfa=input('ingrese el angulo en grados: ');
x=(alfa*pi)/180;
term=x;
den=2;
term=-(term*(x^2))/(den*(den+1));
suma=x;
while abs(term)>10^-10;
suma=suma+term;
den=den+2;
term=-(term*(x^2))/(den*(den+1));
end
test=sin(x);
error=abs((test-suma)/test)*100;
fprintf('El valor ingresado fue: %d \n',alfa);
fprintf('El valor equivalente en radianes es: %f \n',x);
fprintf('El valor obtenido con la serie de taylor es: %f \n',suma);
fprintf('El valor verdadero es: %f \n',test);
fprintf('El error relativo porcentual: %e \n',error);
6.- Calcular el número pi con n decimales (n= 1,2,3, …, 50). Pi = 3.1416 con n=4 decimales. Realice
una búsqueda del mejor algoritmo.
7.- Las matrices cuyo elemento en la posición (i, j) es 1/ (i + j – 1) se llaman matrices de Hilbert y son
famosas porque, a pesar de ser invertibles en aritmética exacta, “no lo son” en aritmética de punto
flotante como veremos en este ejercicio. Este es un ejemplo típico de matriz mal condicionada.
Construye una matriz de Hilbert de tamaño 12×12 utilizando bucles for–end. Utiliza la ayuda para
saber lo que hace el comando hilb de MATLAB, y compara tu resultado con el de MATLAB. Utiliza el
comando rank para calcular el rango de las matrices de Hilbert de tamaños 9, 12 y 15.
FLUJOGRAMA
INICIO
i=1 NO
i ≤ 12 FIN
i =i +1
SI
j=1
J ≤12
j=j+1
SI
A (i , j) = 1/(i + j – 1)
CODIGO MATLAB
for i=1:1:12;
for j=1:1:12;
A(i,j)=1/(i+j-1);
end
end
%Asi generamos la matriz de orden 12 por 12
A
%Con este comando obtenemos la misma matriz que acabamos de
%programar, ya agregada en los comandos de matlab por defecto
hilb(12)
B=hilb(9);
C=hilb(12);
D=hilb(15);
rank(B)
rank(C)
rank(D)
EJECUCION
8.- El comando conv(p,q) multiplica los polinomios p y q. Por ejemplo, si p(x) = 2x 3 − x + 3 y q(x) = −2x
2
− x + 2 entonces >>p=[2 0 -1 3]; q=[-2 -1 2]; >>conv(p,q) ans = -4 -2 6 -5 -5 6 de modo que el polinomio
p(x)q(x) = −4x 5 − 2x 4 + 6x 3 + · · · . Escribe un ”script” que haga lo siguiente: 1.- calcule los coeficientes
del polinomio p(x) = (x − 2)9 y llame q a dicho polinomio. 2.- Dibuja las gráficas de q(x) y p(x) (ésta en
rojo) para x = 1.920, 1.921, 1.922, . . . , 2.080. Llama al “script” pol29.m. El resultado debe hacerte
observar que q(x) se aproxima muy mal a p(x) cerca de la raíz.
FLUJOGRAMA
INICIO
u = (1 , -2)
q= uxu
i=1 NO
I ≤7 q FIN
i=i+1
SI
q= qxu
CODIGO MATLAB
clc,clear
u=[1 -2];
q=conv(u,u);
for i=1:7;
q=conv(q,u);
end
disp('Es el polinomio q, cuyos coeficientes son el desarrollo');
q
x=[1.920:0.001:2.080];
p=(x-2).^9;
q1=x.^9-18*x.^8+144*x.^7-672*x.^6+2016*x.^5-4032*x.^4+5376*x.^3-
4608*x.^2+2304*x-512;
hold on
plot(x,p,'g');
plot(x,q1,'r');
hold off
grid on
EJECUCION
9.- Realizar un programa para resolver la Torre de Hanoi para n discos.
10.- Realice un subprograma para resolver la ecuación siguiente: = ( )
Encuentre todas las soluciones en el intervalo [0,5]. Realice una gráfica que muestre las
soluciones. Use el método de las medianas.