Sunteți pe pagina 1din 13

UNIVERSIDAD CATOLICA DE SANTA MARIA FACULTAD DE CIENCIAS E INGENIERAS FISICAS Y FORMALES PROGRAMA PROFESIONAL INGENIERIA MECNICA, MECNICA-ELECTRCA Y MECATRNICA

Laboratorio de Mecnica Computacional II


Tema: MATRICES con MATLAB
Apellidos y Nombres:_____________________________________________

Pgina:1/13 Jefes de Prcticas: Ing. Juan Carlos Cuadros Ing. Henry Zegarra Gago Ing. Sergio Ramos Mestas Cdigo: Semestre: Grupo: Lab. N: 4E04022 IV FECHA:

05

I. OBJETIVOS Comprender los conceptos de estructuras de datos en la programacin y como ayudan a la solucin de problemas. Realizar algoritmos de programacin para la manipulacin de arreglos bidimensionales y solucin de problemas conmatrices. II. MARCO TEORICO Matrices (array bidimensional) Las matrices es un tipo de arreglo en dos dimensiones como semuestra a continuacion: Para saber la nota de un alumno debo saber 2 cosas, su nombre y a que fase se refiere.

Fase 1

Fase 2

Fase 3 10 12 7 8 9 14 15 12 12 14

Aguilar Gutierrez, Fernando Alarcon Llerena, Guillermo Amado Arias AmancaTairo, Ronal Arce Torres, Richard Arcos Huillca, Tony Ari Flores, Edwin Ballon Peafiel, Cesar Oswaldo Bernedo Flores, Carlos Bravo Arredondo, Anthony

9 12 13 9 14 13 11 10 6 11

8 10 13 6 11 12 8 9 8 8

13 14 14 10 15 15 13 12 11 13

En MATLAB, es importante mencionar que la primera fila es 1 y no 0, siendo esto idem para el caso de las columnas. MATLAB tiene como especialidad a las matrices ya que son su esencia y tiene definidas una buena cantidad de funciones y/o comandos para el manejo de stas, sin embargo, veremos en el transcurrir de la prctica que se pueden definir e implementar scripts y/o funciones propias que permitan manejar este tipo de arreglos. Matriz: Se puede definir una matriz, como un conjunto de elementos (nmeros) ordenados en filas y columnas. Para designar una matriz se emplean letras maysculas. Cada uno de los elementos de la matriz (aij) tiene dos subndices. El primero i indica la fila a la que pertenece y el segundo j la columna. Esta es una matriz de m filas y n columnas, es decir, de dimensin m x n. Esta matriz tambin se puede representar de la forma siguiente: A = (aij) m x n. Si el nmero de filas y de columnas es igual ( m = n ), entonces se dice que la matriz es de orden n.

Subsa

Laboratorio de Mecnica Computacional II

Pgina: 2/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

Operaciones con Matrices. Las operaciones son el procesamiento y el tratamiento individual de los elementos del array, se definen las siguientes: Asignacin Lectura/Escritura Recorrido Actualizacin (insertar, borrar, modificar) Transpuesta, suma, resta, multiplicacin, inversa. Bsqueda

Implementaremos algunas de estas operaciones por medio de scripts y/o funciones. Matrices con MATLAB La introduccin de una matriz enMATLABes muy fcil. Introdzcase el siguiente comando en la ventana de comandos deMATLAB: >>m=[1 2 3;4 5 6] Para introducir unamatriz, se escribeuna apertura de corchete, los elementos delaprimera fila de la matriz separados por espacios, un punto y coma para separar a la primera fila de la segunda fila de la matriz, a continuacin los elementos de la segunda fila de la matriz y luego un cierre decorchete. Se pueden usar tambin comas para delimitar las componentes delas filas de la matriz. Por ejemplo: >>m=[1,2,3;4,5,6] El signo = es el operador de asignacin de MATLAB. Se usa este operador para asignarvalores a variables. Para comprobar que la matriz [1,2,3;4,5,6] ha sido asignado a lavariable m introdzcase el siguiente comando en el indicador de MATLAB: >>m Indexado de matrices. Al igual que con vectores, una vez que se ha definido a una matriz, es posible acceder fcilmente a cada uno desus componentes con los comandos de MATLAB, ya que como se menciono, la matriz es una arreglo de datos ordenado por filas y columnas. Por ejemplo, introdzcase la siguiente matriz: >> x=[10,13,19;23,27,31;39,43,51] Ahora prubense los siguientes comandos: >>x(2,3) >>x(3,1) Se puede cambiar fcilmente el contenido de una componente. (Asignacin de valores) >>x(1,2)=99

Laboratorio de Mecnica Computacional II

Pgina: 3/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

Rangos. Algunas veces es necesario introducir unamatriz con componentes a intervalos regulares.Esto se realiza fcilmente conMATLABcon la estructura:inicio:incremento:fin. Si no seproporciona un incremento,MATLABasume que es 1. >>x1=[0:10;0:10] Se puede seleccionar el propio incremento. >>x2=[0:2:10;0:2:10] Se puede ir incluso hacia atrs. >>x3=[10:-2:1;10:-2:1;10:-2:1] Se puede tambin acceder a un rango de elementos: >>x(:,3) >>x(2,:) Tamao de una matriz Se puede obtener el tamao de unamatriz m con la funcin: >>size(m) La informacin que devuelve indica que la matrizm tiene 2filas y 3 columnas. Transposicin. El operador enMATLABpara transponer es el apstrofe simple . Se puede cambiar as unamatriz de tamao MxN a una matriz de tamao NxM. Ejemplo: >>mt= m Funciones especiales para matrices en MATLAB MATLAB define muchas funciones que permiten el manejo de matrices, algunas de ellas son: >> eye(3) >> ones(3,2) >> zeros(2,3) >> rand(3,3) >>det(m) >>inv(m)

Laboratorio de Mecnica Computacional II

Pgina: 4/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

III. MATERIAL Y EQUIPO Una PC con Sistema Operativo (S.O.) Windows XP. MATLAB 7.0 o superior IV. PROCEDIMIENTO 1. Confeccionar un algoritmo, diagrama de flujo y programa en MATLAB quepermita ingresar valores a una matriz de MxN elementos. Emplear la estructura para y la estructura mientras.
Algoritmo y Comentarios Diagrama de flujo

Inicio Establecer dimenciones Definir un bookle

Cdigo MATLAB

% Inicio de programa clc, clear all input('Apriete ENTER para empezar ...') m=input('ingrese el tamao de la columna: '); n=input('ingrese el tamao de la fila: '); for i=1:1:n for j=1:1:m fprintf('ingrese el valor( %2.0f ,%2.0f ) de la matriz:',i,j); M1(i,j)=input(' '); end end disp('la matriz es'); disp(M1);

% Fin de programa

Laboratorio de Mecnica Computacional II

Pgina: 5/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

Algoritmo y Comentarios

Diagrama de flujo

Inicio Establecer dimenciones Definir un bookle

Cdigo MATLAB

% Inicio de programa clc, clear all input('Apriete ENTER para empezar ...') m=input('ingrese el tamao de la columna: '); n=input('ingrese el tamao de la fila: '); i=1; while i<=n j=1; while j<=m A(i,j)=input(' '); j=j+1; end i=i+1; end A % Fin de programa Elabore el diagrama de flujo y programa en MATLAB para que dado un array de MxN nmeros obtenga el nmero mayor y su posicin.
Algoritmo y Comentarios Diagrama de flujo

2.

Inicio Establecer dimenciones Definir un bookle Buscar numero mayor Posicin numero mayor

Laboratorio de Mecnica Computacional II

Pgina: 6/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

Cdigo MATLAB

% Inicio de programa clc, clear all input('Apriete ENTER para empezar ...') m=input('Ingrese el tamao de las filas : '); n=input('Ingrese el tamao de las columnas: '); for i=1:m for j=1:n fprintf('ingrese M[%d][%d]: ',i,j); M1(i,j)=input(''); end end disp('la matriz formada es: ') disp(M1); max=0; for i=1:m for j=1:n if max<M1(i,j) max=M1(i,j); a=i; b=j; end end end fprintf('el numero mayor es [%2.0f] se encuentra en la posicion M[%d][%d]: ',max,a,b); fprintf('\n');

Laboratorio de Mecnica Computacional II

Pgina: 7/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

3.

% Fin de programa Elabore el diagrama de flujo y programa en MATLAB para que permita ingresar un array deMxN nmeros por teclado y luego obtenga la suma de todos los elementos de un nmero de fila y columna ingresados por el usuario. El resultado se mostrara por pantalla.
Algoritmo y Comentarios Diagrama de flujo

Inicio Establecer dimenciones Definir un bookle Sumar fila Sumar columna

Cdigo MATLAB

% Inicio de programa clc, clear all input('Apriete ENTER para empezar ...') m=input('Ingrese el tamao de las filas : '); n=input('Ingrese el tamao de las columnas: '); for i=1:m for j=1:n fprintf('ingrese M[%d][%d]: ',i,j); M1(i,j)=input(''); end end m1=input('ingrese la fila a sumar: '); n1=input('ingrese la columna asumar: '); suma=0; for i=1:1:m suma=suma+M1(m1,i); end suma1=0;

Laboratorio de Mecnica Computacional II

Pgina: 8/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

for j=1:1:n suma1=suma1+M1(j,n1); end disp('la matriz formada es: '); disp(M1); fprintf('la suma de la fila [%d] es : [%d]',m1,suma); fprintf('\n'); fprintf('la suma de la columna [%d] es : [%d]',n1,suma1); fprintf('\n');

4.

% Fin de programa Elaborar un algoritmo, diagrama de flujo y una funcin en MATLAB permita sumar dos matrices de la misma dimensin. Si las matrices ingresadas no son de la misma dimensin el programa emitir un mensaje las matrices deben ser de las misma dimensin.

Laboratorio de Mecnica Computacional II

Pgina: 9/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

Algoritmo y Comentarios

Diagrama de flujo

Inicio Establecer dimensiones primera matriz Establecer dimensiones segunda matriz Definir un bookle si Dimencion 1=dimencion 2 Sumar matrices no las matrices deben ser de las misma dimensin

Cdigo MATLAB

% Inicio de la funcin clc, clear all input('Apriete ENTER para empezar ...') m=input('Ingrese la dimension de la primera matriz : '); n=input('Ingrese la dimension de la segunda matriz: '); for i=1:m for j=1:m fprintf('ingrese M[%d][%d] matriz 1: ',i,j); M1(i,j)=input(''); end end disp('==================================== ===================='); for i=1:n for j=1:n fprintf('ingrese M[%d][%d] matriz 2: ',i,j); M2(i,j)=input(''); end end for i=1:m for j=1:n M3(i,j)=0; if(m==n) M3(i,j)=M1(i,j)+M2(i,j); else disp('deben ser de la misma

Laboratorio de Mecnica Computacional II

Pgina: 10/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

dimension'); end end end disp('MATRIZ N1'); disp(M1); disp('MATRIZ N2'); disp(M2); disp('LA SUMA ES: '); disp(M3);

% Fin de programa V. CUESTIONARIO FINAL 1. Disee un algoritmo diagrama de flujo y programa en MATLAB que lea una matrizde MxN elementos; luego lea un nmero cualquiera Wque identifica a una columna de la matriz y luego ordene los elementos de dicha columna. La parte de ordenacin de la columna deber ser implementada por una funcin externa.

Laboratorio de Mecnica Computacional II

Pgina: 11/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

Algoritmo y Comentarios

Diagrama de flujo

Inicio Establecer dimensiones de la matriz Definir un bookle Ingrese un numero Si W=n columna La matriz es: La columna es: La ordenacin es: No No existe columna

Laboratorio de Mecnica Computacional II

Pgina: 12/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

Cdigo MATLAB

% Inicio de la funcin clc, clear all

input('apriente ENTER para

empezar...') m=input('ingrese ladimension de las filas: '); n=input('ingrese la dimension de las columnas: '); for i=1:1:m for j=1:1:n fprintf('ingrese M[%d][%d] :',i,j); M1(i,j)=input(' '); end end w=0; w=input('ingrese un numero'); y=length(M1); [q x]=size(M1); if(1<=w&&w<=x) c=M1(:,w); asc=sort(c); disp('la matriz es:'); disp(M1); disp('la columna es:'); disp(c); disp('la ordenacion es:'); disp(asc); else disp(' no existe la columna'); end

Laboratorio de Mecnica Computacional II

Pgina: 13/13

Tema: MATRICES con MATLAB

LAB N5

JCC- HZG - SRM

% Fin de programa

VI. OBSERVACIONES Y CONCLUSIONES Haga sus observaciones y emita al menos cinco conclusiones en torno al trabajo realizado -Con las matrices de matlab podemos facilitarnos al buscar nuestras calificaciones buscar en un rango dentro de la matriz con gran rapidez -el uso de while y for son muy efectivos para ejecutar una matriz -el uso de funciones especiales define mucho funciones que permiten el manejo de matrices

S-ar putea să vă placă și