PROGRA 2 Aruquipa Silva Einar

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

NOMBRE: ARUQUIPA SILVA EINAR CHRISTIAN

DOCENTE: ING. ROBERTO PARRA ZEBALLO


CARRERA: INGENIERIA AMBIENTAL
MATERIA: PROGRAMACIÓN PRQ-404
FECHA: 04/06/20
A
Práctica # 1
1.- Encontrar números perfectos del 1 al 10000
 Flujograma

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

89 144 233 377 610 987 1597 2584 4181 6765

Columns 21 through 25

10946 17711 28657 46368 75025

 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

4.- Programe un menú de selección.


El gráfico debe programarlo con MATLAB.

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

SUMA = SUMA + TERM

SI
-8
|TERM| > 10

NO

TEST = Sen (ALFA)

Error = |(TEST–SUMA)/TEST| x 100%

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.

También podría gustarte