Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESGE-FIAG
I.
Objetivos
1. Aprender a utilizar el Matlab, mediante su programacin para la resolucin de problemas matemticos, para su posterior aplicacin en problemas del mbito laboral.
II.
Fundamento terico
1. MATLAB :
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemtico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M). Est disponible para las plataformas Unix, Windows y Mac OS X. Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de datos y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI). Adems, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets). Matlab, a parte del clculo matricial y lgebra lineal, tambin puede manejar polinomios, funciones, ecuaciones diferenciales ordinarias, grficos.
COMPUTACION E INFORMATICA
Pgina 1
ESGE-FIAG
Contenido del Matlab: Vectores/Matrices. Funciones. Cadenas de Texto. Graficas 2D. Graficas 3D. GUI y GUIDE. Scripts y Funciones. Estructuras de Control. Celdas. Aplicaciones. Excel. Data Acquisition
III.
Resolucin de Practica
1.- Desarrolle un diagrama de flujo de programas que calcule el rea de un tringulo conociendo las coordenadas de sus vrtices en el plano. Adems, progrmelo con MATLAB.
INICIO
LEER: x1,Y1,x2,y2,x3,y3
A= [
ESCRIBIR A
ESGE-FIAG
CODIFICACION EN EDITOR MATLAB % Este programa calcula el area de un Triangulo cualquiera % vertices: (x1,y1);(x2,y2);(x3,y3) disp('ingrese los vertices del triangulo: '); x1=input('ingrese el valor del vertice x1: '); y1=input('ingrese el valor del vertice y1: '); x2=input('ingrese el valor del vertice x2: '); y2=input('ingrese el valor del vertice y2: '); x3=input('ingrese el valor del vertice x3: '); y3=input('ingrese el valor del vertice y3: '); d1=sqrt((x2-x1)^2+(y2-y1)^2) d2=sqrt((x3-x2)^2+(y3-y2)^2) d3=sqrt((x3-x1)^2+(y3-y1)^2) P=(d1+d2+d3)/2 A=sqrt(P*(P-d1)*(P-d2)*(P-d3)) disp(A)
COMPUTACION E INFORMATICA
Pgina 3
ESGE-FIAG
2.- Disee un diagrama de flujo de programas que calcule la pendiente de una recta conociendo el Angulo de inclinacin. Haga el programa en MATLAB. Adems progrmelo con MATLAB.
INICIO
LEER M
M=tan(anglULO*pi/180);
ESCRIBIR M
FIN
CODIFICACION EN EDITOR MATLAB angle=input('ingreso el angulo de inclinacion: \n'); m=tan(angle*pi/180); fprintf('La pendiente seria %4.2f \n',m) %disp(m) PRUEBA EN MATLAB- Command Ingreso el angulo de inclinacion: 4 La pendiente seria 0.07
COMPUTACION E INFORMATICA
Pgina 4
ESGE-FIAG
3.- Disee un diagrama de flujo gras que calcule el rea y volumen de un cilindro cuyo radio (R) y la altura (H) se leen desde teclado .Adems progrmelo con MATLAB.
INICIO
LEER R,H
A V
xR^2 AxH
ESCRIBIR A, V
FIN
CODIFICACION EN EDITOR MATLAB %problema 3:area y volumen de un cilindro R=input('ingrese el radio: '); H=input('ingrese la altura: '); A=3.1416*R^2; V=A*H; disp(A) disp(V)
COMPUTACION E INFORMATICA
Pgina 5
ESGE-FIAG
PRUEBA EN MATLAB- Command ingrese radio: 2 ingrese altura: 6 el area y volumen es 100.53 y 75.40.
4.- Disee un diagrama de flujo tal que ingresado un numero cualquiera N, muestre si dicho nmero es positivo o negativo. Adems progrmelo con MATLAB.
INICIO
LEER N
n=positivo n=negativo
N>0
Escribir N=positivo Escribir N=negativo
FIN
COMPUTACION E INFORMATICA
Pgina 6
ESGE-FIAG
CODIFICACION EN EDITOR MATLAB N=input('ingresar un numero cualquiera:') if N<0 disp('negativo') end if N>0 disp('positivo') end
PRUEBA EN MATLAB- Command ingresar un numero cualquiera:85 N= 85 Positivo ingresar un numero cualquiera:-952 N= -952 negativo
COMPUTACION E INFORMATICA
Pgina 7
ESGE-FIAG
5.- Disee un diagrama de flujo de programas tal que ingresado dos nmeros A y B muestre cul de los valores ledos es el mayor .Adems, progrmelo con MATLAB.
INICIO
LEER AYB
IF A>B
A - MAYOR
IF B>A
FIN
CODIFICACION EN EDITOR MATLAB a=input('ingrese el primer valor: \n'); b=input('ingrese el segundo valor: \n'); if a>b fprintf('%d es el mayor,\n',a); else fprintf('%d es el menor,\n',b); if b>a fprintf('%d es el mayor,\n',b); else fpritf('%d es el menor,\n',a); end end
COMPUTACION E INFORMATICA
Pgina 8
ESGE-FIAG
PRUEBA EN MATLAB- Command ingrese el primer valor: 80 ingrese el segundo valor: 98 98 es el menor, 98 es el mayor,
COMPUTACION E INFORMATICA
Pgina 9
ESGE-FIAG
6.- Disee un diagrama de flujo de programas tal que ingresado dos nmeros A y B muestre la suma de los dos nmeros, solo si la suma es par. Adems, progrmelo con MATLAB.
INICIO
LEER N (A,B)
A+B =2N
ESCRIBIR N
FIN
CODIFICACION EN EDITOR MATLAB a=input('ingrese el primer valor: \n'); b=input('ingrese el segundo valor: \n'); c=a+b; if rem(c,2)==0 fprintf('La suma es: %6.2f \n',c); break end
PRUEBA EN MATLAB- Command ingrese el primer valor: 48 ingrese el segundo valor: 96 La suma es: 144.00.
COMPUTACION E INFORMATICA
Pgina 10
ESGE-FIAG
7.- Disee un diagrama de flujo de programas tal que ingresado tres valores A ,B y C muestre cual es el mayor y el menor .Para este caso se asume que los tres valores ledos por el teclado son distintos. Adems, progrmelo con MATLAB.
INICIO
LEER A, B Y C
IF A>B B>C
C ES MENOR
A ES MAYOR
C ES MAYOR
A ES MENOR
ESCRIBIR A,B Y C
FIN
COMPUTACION E INFORMATICA
Pgina 11
ESGE-FIAG
CODIFICACION EN EDITOR MATLAB a=input('ingrese el primer valor: \n'); b=input('ingrese el segundo valor: \n'); c=input('ingrese el tercer valor: \n'); if a>b if a>c fprintf('%d es el mayor de todos \n',a) if b>c fprintf('%d es el menor de todos \n',c) else fprintf('%d es menor de todos \n',b) end else fprintf('%d es el mayor de todos,%g es el menor de todos \n ',c,b); end else if a>c fprintf('%d es el mayor de todos y %g es menor de que todos \n',b,c) else fprintf('%d es el mayor de todos y %g es menor de que todos \n',b,a) end end PRUEBA EN MATLAB- Command ingrese el primer valor: 85 ingrese el segundo valor: 65 ingrese el tercer valor: 94 94 es el mayor de todos,65 es el menor de todos
COMPUTACION E INFORMATICA
Pgina 12
ESGE-FIAG
8.- Disee un diagrama de flujo de programas que calcule la suma de los n primeros nmeros naturales. Adems, progrmelo con MATLAB
DIAGRAMA DE FLUJO
INICIO
LEER: n
S=0
I=1, n
S = S+I
ESCRIBIR S
FIN
COMPUTACION E INFORMATICA
Pgina 13
ESGE-FIAG
CODIFICACION EN EDITOR MATLAB %Este programa calcula la suma de los n primeros numeros n=input('ingrese el numero de terminos:'); S=0; for I=1:n; S=S+I; end disp(S)
COMPUTACION E INFORMATICA
Pgina 14
ESGE-FIAG
9.- Disee un Diagrama de Flujo de programas que calcule la suma de los n primeros nmeros naturales impares. Adems, progrmelo con MATLAB DIAGRAMA DE FLUJO
INICIO
LEER: n
S=0
I=1, n
S = S+2*I-1
I = I+1
ESCRIBIR S
FIN
COMPUTACION E INFORMATICA
Pgina 15
ESGE-FIAG
CODIFICACION EN MATLAB %este programa calcula la suma de los n numeros impares n=input('ingrese los n numeros impares:'); S=0; for I=1:n S=S+2*I-1; I=I+1; end disp(S)
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 16
ESGE-FIAG
10.- Disee un Diagrama de Flujo de programas que calcule la suma de los n primeros nmeros naturales pares. Adems, progrmelo con MATLAB DIAGRAMA DE FLUJO
INICIO
LEER: n
S=0
I=1, n
S = S+2*I
I = I+1
ESCRIBIR S
FIN
COMPUTACION E INFORMATICA
Pgina 17
ESGE-FIAG
CODIFICACION EN MATLAB %este programa calcula la suma de los n numeros pares n=input('ingrese los n numeros pares:'); S=0; I=1; for I=1:n S=S+2*I; I=I+1; end disp(S)
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 18
ESGE-FIAG
DIAGRAMA DE FLUJO
INICIO
LEER: n
S=1
I=1, n
S = S*I
ESCRIBIR S
FIN
COMPUTACION E INFORMATICA
Pgina 19
ESGE-FIAG
CODIFICACION EN MATLAB %este programa calcula el factorial de un numero entero n=input('ingrese el n numero :'); S=1; for I=1:n; S=S*I; end disp(S)
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 20
ESGE-FIAG
12.- Disee un diagrama de flujo de programas que calcule la suma de los n primeros trminos de la sucesin DIAGRAMA DE FLUJO . Adems, progrmelo con MATLAB
INICIO
LEER: n
S=0
I=1, n
S = S + n/(n+1)
ESCRIBIR S
FIN
COMPUTACION E INFORMATICA
Pgina 21
ESGE-FIAG
CODIFICACION EN MATLAB % Este programa calcula la suma de los primero n terminos de la sucesion: % s = 1/2 + 2/3 + 3/4 + 4/5... %------------------------N=input('Ingrese el numero de terminos de la sucesion: '); s=0; for I=1:N s=s+N/(N+1); end disp(s)
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 22
ESGE-FIAG
13. - Disee un diagrama de flujo de programas que calcule la suma de los n primeros trminos de la sucesin DIAGRAMA DE FLUJO
INICIO
LEER: n
I=1
S=0
WHILE I <= n
FIN
COMPUTACION E INFORMATICA
Pgina 23
ESGE-FIAG
CODIFICACION EN MATLAB %este programa calcula el sueldo de trabajadores n=input('ingrese el nmero de trabajadores:'); S=0; I=1; while I<=n Nombre=input('ingrese el nombre del trabajador:'); Sueldo=input('ingrese el sueldo del trabajador:'); descuento=Sueldo*13/100 SueldoFinal=Sueldo-descuento S=S+SueldoFinal; I=I+1; end fprintf('El total a pagar a todos los trabajadores es:%5.2f\n',S)
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 24
ESGE-FIAG
14. En el curso de Programacin Aplicada a la ingeniera, 25 estudiantes rindieron su primera evaluacin. Disee un diagrama de flujo de programas que muestre: a) Nota promedio b) El nmero de estudiantes aprobados (nota mayor o igual a)
COMPUTACION E INFORMATICA
Pgina 25
ESGE-FIAG
CODIFICACION EN MATLAB % En el curso de Programacin Aplicada a la Ingeniera 25 estudiantes % rindieron su primera evaluacin. Disee un diagrama de flujo de programas que muestre: %problema 14: nota promedio y aprobados x1=input('ingresar nota: '); x2=input('ingresar nota: '); x3=input('ingresar nota: '); x4=input('ingresar nota: '); x5=input('ingresar nota: '); x6=input('ingresar nota: '); x7=input('ingresar nota: '); x8=input('ingresar nota: '); x9=input('ingresar nota: '); x10=input('ingresar nota: '); x11=input('ingresar nota: '); x12=input('ingresar nota: '); x13=input('ingresar nota: '); x14=input('ingresar nota: '); x15=input('ingresar nota: '); x16=input('ingresar nota: '); x17=input('ingresar nota: '); x18=input('ingresar nota: '); x19=input('ingresar nota: '); x20=input('ingresar nota: ');
COMPUTACION E INFORMATICA Pgina 26
ESGE-FIAG
x21=input('ingresar nota: '); x22=input('ingresar nota: '); x23=input('ingresar nota: '); x24=input('ingresar nota: '); x25=input('ingresar nota: '); suma=(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+... x11+x12+x13+x14+x15+x16+x17+x18+x19+x20+... x21+x22+x23+x24+x25+x25); prom=suma/25; disp('nota promedio'); disp(prom);
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 27
ESGE-FIAG
1 5. Disee un diagrama de flujo con programas tal que ingresando n nmeros naturales mostrar el menor y la suma de los n nmeros .Adems progrmelo en MATLAB.
COMPUTACION E INFORMATICA
Pgina 28
ESGE-FIAG
CODIFICACION EN MATLAB n=input('ingrese el "n" numeros: '); for i=1:n fprintf('ingrese numero %d: ',i); N(i)=input(''); end %k=length(N); a=max(N); b=min(N); fprintf('El maximo de %d es: %d \nEl menor de %d es: %d \n',n,a,n,b);
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 29
ESGE-FIAG
16. Disee un diagrama de flujo tal que ingresando n nmeros naturales mostrar el promedio. Progrmelo en MATLAB.
COMPUTACION E INFORMATICA
Pgina 30
ESGE-FIAG
CODIFICACION EN MATLAB %el promedio de n numeros clc; N=input('Ingrese la cantidad de numeros='); x=[]; for i=1:N numero=input('Ingrese numero='); x=[x numero]; end for i=1:1 prom = mean(x); disp('promedio:') disp(prom) end
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 31
ESGE-FIAG
17. Disee un diagrama de flujo de programas que calcule la suma de los n primeros t rminos de la sucesin: .Adems progrmelo en MATLAB.
INICIO
ESCRIBIR: N, x
S=0
i=0:N-1
S=S+x^i/factorial(i)
ESCRIBIR:S
FIN
COMPUTACION E INFORMATICA
Pgina 32
ESGE-FIAG
CODIFICACION EN MATLAB %Este diagrama muestra la suma de los 'n' primeros trminos de la %sucesin:1,x,x^2/2!,x^3/3!,... N= input('Ingrese el nmero de trminos de la serie = '); x= input('Ingrese el valor de x = '); S=0; for i= 0:N-1 S= S + x^i/factorial(i); end; disp('La sumatoria da ='); disp(S);
PRUEBA EN MATLAB
18. Disee un diagrama de flujo de programas que calcule la suma de los n primeros
trminos de la sucesin:
COMPUTACION E INFORMATICA
ESGE-FIAG
INICIO
ESCRIBIR N, X
S=0
i=0:N
(rem(i,2)==0)
S=S-(X^(2*i))/factorial(2*i-1)
S=S+(X^(2*i))/factorial(2*i-1)
ESCRIBIR S FIN
COMPUTACION E INFORMATICA
Pgina 34
ESGE-FIAG
CODIFICACION EN MATLAB %Este diagrama muestra la suma de los 'n' primeros terminos de la %sucesin:1,-x^3/3!,x^5/5!,x^7/7!,... disp('Serie de N trminos'); X= input('Ingrese el valor de X ='); N= input('Ingrese numero de terminos de la serie ='); S=0; for i= 1:N if (rem(i,2)==0) S=S-(X^(2*i-1))/factorial(2*i-1); else S=S+(X^(2*i-1))/factorial(2*i-1); end; end; disp(S);
COMPUTACION E INFORMATICA
Pgina 35
ESGE-FIAG
19. Disee un diagrama de flujo de programas que calcule la suma de los n primeros
trminos de la sucesin:
INICIO
ESCRIBIR N, X
S=0
i=0:N-1
(rem(i,2)==0)
S=S-(X^(2*i))/factorial(2*i)
S=S+(X^(2*i))/factorial(2*i)
ESCRIBIR S FIN
COMPUTACION E INFORMATICA
Pgina 36
ESGE-FIAG
CODIFICACION EN MATLAB %Este diagrama muestra la suma de los 'n' primeros terminos de la %sucesion:1,-x^2/2!,x^4/4!,x^6/6!,... disp('Serie de N trminos'); X= input('Ingrese el valor de X ='); N= input('Ingrese numero de terminos de la serie ='); S=0; for i= 0:N-1 if (rem(i,2)==0) S=S+(X^(2*i))/factorial(2*i); else S=S-(X^(2*i))/factorial(2*i); end; end; disp(S); PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 37
ESGE-FIAG
20. Disee un diagrama de flujo de los programas que calcule la suma de los elementos de la diagonal principal de una matriz cuadrada. A adems progrmelo a Matlab. DIAGRAMA DE FLUJO
INICIO
LEER: n
Suma=0
K= 1:n
Suma=suma +v(i,j)
RESULTADO Suma
FIN
COMPUTACION E INFORMATICA
Pgina 38
ESGE-FIAG
CODIFICACION EN MATLAB n=input('ingrese numero fila y columnas: '); suma=0; %for k=1:n for i=1:n for j=1:n v(i,j)=input('ingrese valor \n'); if i==j suma=suma+v(i,j); end end end %end suma
PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 39
ESGE-FIAG
21. Disee un diagrama de flujo de programa que calcule el producto de dos matrices. Adems, progrmelo con Matlab DIAGRAMA DE FLUJO
INICIO
LEER: n; m; a; b
S=0
K= 1:n
RESULTADO
c=v*b
FIN
COMPUTACION E INFORMATICA
Pgina 40
ESGE-FIAG
CODIFICANDO EN EL MATLAB n=input('ingrese numero fila Matriz A: '); m=input('ingrese numero columnas Matriz A: '); a=input('ingrese numero fila Matriz B: '); b=input('ingrese numero columnas Matriz B: '); s=0; for i=1:n for j=1:m fprintf('Ingrese valores (%d,%d) de la Matriz A: ',i,j); v(i,j)=input(''); end end for i=1:a for j=1:b fprintf('Ingrese valores (%d,%d) de la Matriz B: ',i,j); b(i,j)=input(''); end end c=v*b PRUEBA EN MATLAB
COMPUTACION E INFORMATICA
Pgina 41
ESGE-FIAG
22. Disee un Diagrama de flujo de programas que calcule el determinante de una matriz cuadrada. Adems, progrmelo con Matlab. DIAGRAMA DE FLUJO
INICIO
LEER: n
Suma=0
K= 1:n
RESULTADO Det(v)
FIN
COMPUTACION E INFORMATICA
Pgina 42
ESGE-FIAG
CODIFICANDO EN EL MATLAB n=input('ingrese numero fila y columnas: '); suma=0; %for k=1:n for i=1:n for j=1:n v(i,j)=input('ingrese valor \n'); end end %v det(v)
PRUEBA EN EL MATLAB
COMPUTACION E INFORMATICA
Pgina 43
ESGE-FIAG
23. Disee un Diagrama de flujo de programas que determine el mayor y el menor elemento de un arreglo unidimensional. Adems, progrmelo con Matlab. DIAGRAMA DE FLUJO
INICIO
LEER: n
I = 1:n
c=max(v)
d=min(v)
ESCRIBIR c;d
FIN
CODIFICANDO EN EL MATLAB n=input('ingrese numero elementos de Vector: '); for i=1:n fprintf('Ingrese elemento (1,%d): ',i); v(i)=input(''); end c=max(v); d=min(v); fprintf('El mayor elemento es %d \nEl menor elemento es %d\n',c,d);
COMPUTACION E INFORMATICA
Pgina 44
ESGE-FIAG
PRUEBA EN EL MATLAB
24. Disee un Diagrama de flujo de programas que elimine un elemento de un arreglo unidimensional. Adems, progrmelo con Matlab. DIAGRAMA DE FLUJO
INICIO
LEER: n
I = 1:n
v(i) ESCRIBIR m
COMPUTACION E INFORMATICA
FIN
Pgina 45
ESGE-FIAG
CODIFICANDO EN EL MATLAB n=input('ingrese numero elementos de Vector: '); for i=1:n fprintf('Ingrese elemento (1,%d): ',i); v(i)=input(''); end m=input('ingrese elemento a eliminar (posicion): ');
PRUEBA EN EL MATLAB
COMPUTACION E INFORMATICA
Pgina 46
ESGE-FIAG
25. Disee un Diagrama de flujo de programas que reemplace un elemento de un arreglo unidimensional. Adems, progrmelo con Matlab. DIAGRAMA DE FLUJO
INICIO
v(i)
ESCRIBIR m; n v(:,m)=[n]
FIN
CODIFICANDO EN EL MATLAB n=input('ingrese numero elementos de Vector: '); for i=1:n fprintf('Ingrese elemento (1,%d): ',i); v(i)=input(''); end m=input('ingrese elemento a eliminar (posicion): '); n=input('ingrese para sustituir : '); v(:,m)=[n]; v
COMPUTACION E INFORMATICA Pgina 47
ESGE-FIAG
PRUEBA EN EL MATLAB ingrese numero elementos de Vector: 5 Ingrese elemento (1,1): 4 Ingrese elemento (1,2): 3 Ingrese elemento (1,3): 4 Ingrese elemento (1,4): 9 Ingrese elemento (1,5): 1 ingrese elemento a eliminar (posicion): 3 ingrese para sustituir : 2 v= 4 3 2 9 1
COMPUTACION E INFORMATICA
Pgina 48
ESGE-FIAG
VI.
Conclusiones
1. Gracias a los ejercicios hechos en el trabajo se pudo afianzar los conocimientos bsicos de la programacin en Matlab, utilizando principalmente el editor y ejecutarlo en el command matlab. 2. Mediante la utilizacin del Matlab, podemos resolver problemas matemticos y del mbito laboral, facilitando su resolucin.
VII. Bibliografa
http://civilgeeks.com/2011/01/09/matlab-aplicado-a-ciencias-eingenieria/ http://es.wikipedia.org/wiki/MATLAB
COMPUTACION E INFORMATICA
Pgina 49