Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porVeronica Soriano Villalobos Modificado hace 9 años
1
Arreglos Matlab Dr. Pope ITD
2
Arrays (Vectores y Matrices) En matemáticas es necesario trabajar variables con subíndices. Por ejemplo a 1, a 2, a 3,...., a n. O bien b 11, b 12, b 13,...., b nn. Array unidimensional o lineal ( Vector ): Es un listado de cantidades, donde cada cantidad en la lista se identifica por un nombre dado a toda la lista, así como un número que se refiere a la posición que ocupa la cantidad en la lista. Array bidimensional o rectangular ( Matriz ): Es un arreglo rectangular de cantidades, donde cada cantidad en el arreglo se identifica por un nombre dado a toda el arreglo, así como por dos números separados por una coma, que identifican la posición que en el arreglo ocupa la cantidad. Array multidimensional: Son casos especiales de arreglos que Matlab puede soportar.
3
Declaración de Arreglos Antes de usarse en a mayoria de los lenguajes de programación los arreglos deben declararse, de esta manera se asigna en la memoria el espacio requerido para cada elemento del arreglo. Sin embargo, Matlab es un entorno matricial y todas las variables se consideran matrices.
4
Subconjuntos en arrays Con los elementos de un arreglo de pueden hacer cálculos, ya sea en lo individual o en secciones especificas del arreglo, por lo que es necesario hacer referencia a la sección mediante un subíndice triple de la forma: Subíndice_1 : Tamaño de paso :Subíndice_2 : La ausencia de un subíndice se asigna por Default Ejemplos: 151311 1086 531 )5:2:1,3:1(a
5
Tipos de Arrays Unidimensional Selección A(5) Bidimensional Selección B(4,4) Tridimensional Selección C(3,1,1) Selección C(4,4,2) Selección C(1,3,3) ABC
6
Manipulacion de los elementos de un arreglo. Un arreglo en Matlab es un objeto que contiene elementos que pueden ser variables o constantes. Para asignar valores a las variables en un arreglo, el programador deber conocer el orden en que se leen y se asignan los valores a cada elemento del arreglo. Puesto que cada elemento se identifica mediante un subindice, para asignar valores, modificarlos o realizar operaciones con los elementos del arreglo son necesarios los ciclos for. Para el caso de entrada salida de información los ciclos for se pueden combinar con las proposiciones input. Ejemplo: Entrada desde el teclado de los elementos del vector X for i = 1: n X(i) = input(‘elemento i-esimo del arreglo’ ) end Sin embargo, matlab acepta entrada directa de un vector o matriz
7
Intercambio de valores de dos variables A y B (Swap) En Matlab, asignar un valor a una variable(de cualquier tipo) mediante una proposición v = expresión equivale a “Calcular el valor de la expresión y almacenar ese valor en la localidad de la memoria identificada con el nombre de la variable”. Al efectuar este proceso, cualquier valor que estuviera almacenado en en la dirección de la memoria que corresponde a la variable es destruido y sustituido por el valor calculado en la expresión. Tomando en cuenta lo anterior, para intercambiar los valores de A y B se requiere una variable adicional que funja como almacenamiento temporal. Temp = A (El valor numérico que existía en la localidad A es almacenado en la localidad Temp, destruyendo lo que hubiera almacenado en esta ultima, pero sin destruir el contenido de A. A = B (El contenido de la localidad B es copiado sin destruirlo en la localidad A, destruyendo lo que existía en esta ultima). B = Temp (El valor almacenado en Temp, que es el mismo valor que existía en A, es ahora almacenado en la localidad B)
8
Aplicaciones Matlab tiene una gran cantidad de aplicaciones directas que nos facilitan el trabajo, en el desarrollo de los programas. El uso de estas ventajas es posible en la medida que aprendamos a utilizar el entorno y las bondades de Matlab. Una forma de conocer algunas aplicaciones básicas es ejecutando desde el espacio de trabajo el demo. Hagalo y empiece a conocer mejor esta herramienta de trabajo. En el menu de ayuda encontrara un apoyo importante para conocer operaciones basicas con matrices, operadores, graficos, etc.
9
Algunas aplicaciones usadas en el curso sqrt(x)raiz cuadrada de x abs(x)valor absoluto de la variable x round(x) redondea al entero mas cercano la variable x mod(x,y)reisiduo despues de la división de x entre y size(A) dimensión de la matriz A m x n renglones x columnas length(x) logitud del vector x (numero de elementos) sum(x)suma los elemntos del vector x prod(x)multiplica los elementos del vector x zeros(N)matriz de NxN cuyos elementos son ceros ones(N)matriz de NxN cuyos elementos son unos Otras!Buscale¡
10
Calculo de la media y la desviación estándar de un conjunto de datos Análisis Entrada: Conjunto de datos X Salida : Media y Desviación estándar La Media y la Desviación estándar están dadas por:
11
i = 1 1 i*1< = 1*N Inicio N, X i = 1 1 i*1< = 1*N Sm = Sm + Xi Sd = Sd + ( Xi - Xm )^2 Sm = 0, Sd = 0 Fin Xm, S Calculo de la media y desviación estándar de un conjunto de datos.True..False. Xm = Sm/N Sdt= (Sd /(N-1))
12
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para evaluar la media y desviacion estandar de un conjunto de datos con entrada elemento a elemento disp('Programa para evaluar la media y desviacion estandar de un conjunto de datos ') Suma_m = 0 ;Suma_d=0; % Introduccion de los elementos del vector y Calculo de la media n = input('numero de datos '); for i = 1:n X(i) = input('introducir i-esimo elemento del vector '); Suma_m = Suma_m + X(i); end Xmedia = Suma_m / n; %Calculo de la desviación estándar for i = 1: n Suma_d = Suma_d + (X(i) - Xmedia).^2; end Desviacion = sqrt( Suma_d / (n - 1) ); %Impresión de resultados disp('numero de datos');disp(n) disp('Valor de la media ');disp(Xmedia) disp('Valor de la desviación estándar '); disp(Desviacion)
13
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para evaluar la media y la desviacón estandar de un conjunto de datos con vector de datos dentro del programa disp('Programa para evaluar la media de un conjunto de datos ') X = [ 5.1 6.2 5.7 3.5 9.9 1.2 7.6 5.3 8.7 4.4 ]; n=length(X); Suma_m = 0; Suma_d = 0; % Calculo de la media y la desviación estándar for i = 1: n Suma_m = Suma_m + X(i); end Xmedia = Suma_m / n; %Calculo de la desviación estándar for i = 1: n Suma_d = Suma_d + (X(i) - Xmedia).^2; end Desviacion = sqrt( Suma_d / (n - 1) ); %Impresión de resultados disp('numero de datos');disp(n) disp('Valor de la media ');disp(Xmedia) disp('Valor de la desviación estándar ');disp(Desviacion)
14
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para evaluar la media de un conjunto de datos con entrada de datos en forma directa [X1 X2...Xn] disp('Programa para evaluar la media de un conjunto de datos ') X = input('introducir vector de datos X '); n=length(X); Suma_m = 0; Suma_d=0; % Calculo de la media y la desviación estándar for i = 1: n Suma_m = Suma_m + X(i); end Xmedia = Suma_m / n; %Calculo de la desviación estándar for i = 1: n Suma_d = Suma_d + (X(i) - Xmedia).^2; end Desviacion = sqrt( Suma_d / (n - 1) ); %Impresión de resultados disp(‘Numero de datos');disp(n) disp('Valor de la media ');disp(Xmedia) disp('Valor de la desviación estándar ');disp(Desviacion)
15
Ordenación Generalmente se considera ordenar como el proceso de reorganizar un conjunto dado de objetos en una secuencia especificada. Una lista (array) de datos se dice que esta en orden ascendente si i < j implica que x(i) < = x(j) 4 5 14 21 32 27 y se dice que esta en orden descendente si i = x(j) 81 56 40 30 25 6 5 para todos los elementos de la lista. Los métodos directos de ordenación se pueden clasificar en: 1.- Ordenación por inserción 2.- Ordenación por selección 3.- Ordenación por intercambio
16
44 55 12 42 94 18 06 67 12 44 55 42 94 18 06 67 12 42 44 55 94 18 06 67 12 18 42 44 55 94 06 67 06 12 18 42 44 55 94 67 06 12 18 42 44 55 67 94 Claves iniciales i =2 i =3 i =4 i =5 i =6 I =7 i =8 Ordenación por inserción directa
17
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para ordenar un conjunto de datos por inserción directa disp('Programa para ordenar un conjunto de datos por inserción directa') % Inicio del Programa Inserción n = 8; a= [44 55 12 42 94 18 06 67]; disp('arreglo sin orden') disp(a) for i=2:n aux = a(i); j = i-1; while (a(j)>aux & j>1) a(j+1) = a(j); j = j-1; end if a(j)>aux a(j+1)=a(j);a(j)=aux; else a(j+1) = aux; end disp('arreglo ordenado') disp(a) %fin del Programa Inserción
18
44 55 12 42 94 18 06 67 06 55 12 42 94 18 44 67 06 12 55 42 94 18 44 67 06 12 18 42 94 55 44 67 06 12 18 42 44 55 94 67 06 12 18 42 44 55 67 94 Claves iniciales Ordenación por selección directa
19
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis %Programa para ordenar un conjunto de datos por selección directa disp('Programa para ordenar un datos por selección directa ') % Inicio del Programa Selección n = 8;a = [44 55 12 42 94 18 06 67]; disp('arreglo sin orden'); disp(a) for i = 1: n-1 k = i; x = a(i); for j = i+1: n if (a(j) < x) k = j; x = a(j); end a(k) = a(i); a(i) = x; end disp('arreglo ordenado'); disp(a) % Fin del Programa Selección
20
44 06 06 06 06 06 06 06 55 44 12 12 12 12 12 12 12 55 44 18 18 18 18 18 42 12 55 44 42 42 42 42 94 42 18 55 44 44 44 44 18 94 42 42 55 55 55 55 06 18 94 67 67 67 67 67 67 67 67 94 94 94 94 94 Claves i =2 i =3 i =4 i =5 i =6 I =7 i =8 Ordenación por intercambio directo
21
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para ordenar datos por intercambio disp('Programa para ordenar un conjunto de datos por intercambio ') % Inicio del Programa Intercambio n = 8;a = [44 55 12 42 94 18 06 67]; disp('arreglo sin orden');disp(a) for i = 2: n for j = n:-1: i if (a(j-1) > a(j)) x = a(j-1); a(j-1) = a(j); a(j) = x; end disp('arreglo ordenado');disp(a) % Fin del Programa Intercambio
22
Búsqueda Es una operación que se realiza frecuentemente para encontrar un elemento en una lista(array) con una clave determinada x (información asociada con el elemento buscado). La búsqueda termina cuando se encuentra el elemento o bien cuando se llega al final de la lista. Existen dos métodos importantes para buscar en listas: 1.- Búsqueda lineal o secuencial. Se utiliza en listas no ordenadas y el método consiste en recorrer la lista elemento a elemento comenzando con el primero de la lista, en eficiencia es un método lento. 2.- Búsqueda binaria. Se utiliza en listas ordenadas y se basa en el método divide y vencerás para localizar el elemento deseado, en eficiencia es un método mejor que el de búsqueda lineal.
23
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para buscar un elemento en un conjunto de datos %Inicio del Programa Búsqueda_lineal posicion = 1; n = 6; encontrado = 0; X = [90 39 16 49 2 80]; buscado=input('Elemento buscado en la lista ') while ( posicion <= n & ~encontrado ) if ( buscado == X(posicion)) encontrado = 1; else posicion = posicion + 1; end if (encontrado) disp('Elemento encontrado en la posición'); disp(posicion) else disp('El elemento no existe en la lista') end % Fin Programa Búsqueda_lineal
24
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para buscar un elemento en un conjunto de datos % Inicio del Programa Busqueda_binaria n=11;X=[1279 1331 1373 1555 1824 1898 1995 2002 2335 2665 3103]; Primero = 1; Ultimo = length(X);Encontrado = 0; Buscado=input('Elemento buscado en la lista '); for i=1:n if (Primero > Ultimo | Encontrado ) break ;end Medio = round((Primero + Ultimo)/2); if (Buscado < X(Medio)) Ultimo= Medio - 1; elseif (Buscado > X(Medio)) Primero = Medio + 1; else Encontrado = 1; Posicion = Medio; end if (Encontrado) disp('Elemento encontrado en la posicion ') disp(Posicion) else disp('El elemento no existe en la lista ') end %Fin del Programa Busqueda binaria
25
Interpolación Usando el Polinomio de Lagrange Análisis Entrada: Conjunto de datos x, y, Valor de xx a interpolar Salida : Valor yy de la interpolación El polinomio de interpolación de Lagrange es:
26
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % Programa para interpolar por polinomios de Lagrange YY = 0; % Entrada de Información n = input('Numero de puntos '); X = input('introducir vector X '); Y = input('introducir vector Y '); XX=input('introducir valor de X que deseas interpolar '); % Desarrollo de la Interpolación for i = 1: n Pnum = 1; Pden = 1; for j = 1: n if ( i == j ) disp('Cycle') else Pnum=Pnum*(XX-X(j)); Pden=Pden*(X(i)-X(j)); end YY = YY + Pnum*Y(i)/Pden; end %Salida de Información disp('XX,YY'); [XX YY] %Fin del Programa Lagrange
27
Inicio I = 1 Inc =1 I*1<= m*1 Diagrama de Flujo para Sumar dos Matrices.true..fals e. m,n, A,B Fin A,B,C C(I,J) = A(I,J) + B(I,J) J = 1 Inc =1 J*1<= n*1.true.
28
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % % Programa para sumar dos de matrices disp('Programa para sumar dos matrices') n = 5; a = [4.2 0.0 2.1 4.3 3.2; 3.7 2.2 12.2 2.1 1.4;2.1 -8.0 6.4 20.1 -16.4;-0.5 -12.3 6.6 5.4 80.0;16.2 6.3 2.97.2 6.6] b = [-6.2 4.3 8.6 -2.1 0.4;3.6 -0.8 1.4 -9.2 -7.2;7.4 3.2 -3.2 80.2 31.3;2.5 0.9 1.1 -0.4 4.5;-2.0 1.0 -6.4 -3.1 - 16.3] % Suma de las matrices for i = 1: n % inicio loop1: for j = 1: n % inicio loop2: c (i,j) = a (i,j) + b (i,j); end % fin loop2 end % fin loop1 disp('matriz a'); disp(a) disp('matriz b'); disp(b) disp('matriz c'); disp(c) % Fin Programa Multiplicación de matrices
29
Inicio m,l,n C(I,J) = 0 A,B,CA,B,C A,BA,B I = 1 1 I*1 <= m*1 J = 1 1 J*1 <= n*1 Fin K = 1 1 K*1 <= l*1 C(I,J) = A(I,K)*B(K,J) + C(I,J).true..false..true. Diagrama de Flujo para Multiplicar dos Matrices
30
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % % Programa para Multiplicación de matrices disp('Programa para Multiplicación de matrices') m = 4; l = 3; n = 4; a = [4.0 0.0 2.0;2.0 1.0 5.0;0.0 2.0 6.0;1.0 3.0 4.0] b = [0.0 1.0 3.0 5.0;1.0 4.0 7.0 8.0;2.0 6.0 9.0 1.0] d = a*b for i = 1: m % inicio loop1 for j = 1: n % inicio loop2 c(i,j) = 0; for k = 1: l % inicio loop3 c(i,j) = c(i,j) + a(i,k)*b(k,j); end % fin loop3 end % fin loop2 end % fin loop1 disp('matriz a'); disp(a) disp('matriz b'); disp(b) disp('matriz c'); disp(c) disp('matriz d'); disp(d) % Fin Programa Multiplicación de matrices
31
Mayor elemento en un arreglo y su posición Inicio.True. N,X Xmax = X(1).False. M = 1.False. I = 2 I*inc<=N*inc inc = 1 Xmax < X(I).True. Xmax = X(I) M = I Fin Xmax,M
32
% Instituto Tecnológico de Durango % Departamento de Ingenierias Química y Bioquímica % Programación usando Matlab % Instructor: Dr. José Domingo Pope Solis % % Programa para encontrar el mayor elemento en un conjunto de % datos disp('Programa para encontrar el mayor elemento en un conjunto de datos') % Inicio del Programa N = 10; X= [5.1 6.2 5.7 3.5 9.9 1.2 7.6 5.3 8.7 4.4]; Xmax = X(1); for I = 2: N if (Xmax < X(I)) Xmax = X(I); M = I; end disp('Xmax: ');disp( Xmax) disp('Elemento: ');disp( M) %Fin del programa
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.