Arreglos Matlab Dr. Pope ITD. Arrays (Vectores y Matrices) En matemáticas es necesario trabajar variables con subíndices. Por ejemplo a 1, a 2, a 3,....,

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

Programación Orientada a Objetos (con Java)
PROF. ING. JULIO CESAR CANO RAMIREZ
Estructuras de Datos (ARRAYS)
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
MANEJO DE ARRAYS EN C.
PROGRAMACION DE ESTRUCTURAS DE DATOS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
Estructuras de control
Arreglos Ing. Nahiby Castillo.
VECTORES.
Unidad 3 Punteros.
Vectores en java.
Ordenación, Clasificación
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Arrays (introducción)
Informática empresarial
Programación en Matlab
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
UNIDAD V Arreglos y Cadenas
ANALISIS MATEMÁTICO PARA ECONOMISTAS IV
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 4 - Arrays Índice del Capítulo 4.1Introducción 4.2Arrays 4.3Declaración de Arrays 4.4Ejemplos.
Introducción al análisis de algoritmos
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Capítulo 1 “Elementos de Programación”
ESTRUCTURA DE DATOS EN JAVA
Estructuras de Datos Arreglos.
Clase 10: Estructuras de datos y arreglos.
Tablas de Hash.
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
(Organización y Manejo de Archivos)
Aplicación de estructuras de datos
Informática Ingeniería en Electrónica y Automática Industrial
Ordenación y Búsqueda.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
EXPRESIONES Y SENTENCIAS
Arreglos Programación I MC Beatriz Beltrán Martínez.
Programación en C para electrónicos
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Inicialización de arreglos de 2 variables INTEGER, DIMENSIÓN (4, 3) : : ini DO i=1, 4 DO j= 1,3 ini(i, j) = j END DO i=1123 i=2123 i=3123 i=4123 j=1j=2j=3.
Matrices Prof. Flor Narciso Departamento de Computación
Algoritmos y Estructura de Datos Tema: Vectores 2
Vectores y Matrices.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Ordenamiento en lenguaje c
Estructura de datos I CIS - UABJB.
Arreglos Vectores y Matrices.
Introducción a los TADs
Computación I. CI-2125 Tema VII
Lic. Carla Aguirre Montalvo
MATRICES.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Programación de Sistemas
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Grupo de Modelamiento de Sistemas Programa de Ingeniería Civil UdeA.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Lenguaje de Programación Computación y Programación
Tipos de Datos abstractos
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
ALGEBRA CON VECTORES Y MATRICES Uso de MatLab.
Uso de MatLab. Introducción El entorno de trabajo de MatLab El Escritorio de Matlab (Matlab Desktop) El menú inicio Command Window Command History Browser.
Arreglos Scilab J. D. Pope S. ITD.
Estatutos en Scilab 3.1 De entrada y salida estándar.
Introducción a la programación 2.1 Análisis de algoritmos computacionales 2.2 Tipos de datos definidos por el usuario 2.3Declaración de variables y constantes.
Estatutos en Matlab 3.1 De entrada y salida estándar. 3.2 De control o selección if. 3.3 De ciclos: for, while. 3.4 Otros estatutos.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Programación secuencial Dr. J. D. Pope S.. Transformación de coordenadas polares a rectangulares Análisis Entrada: Radio y ángulo Salida: X, Y La transformación.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

Arreglos Matlab Dr. Pope ITD

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.

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.

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:            )5:2:1,3:1(a

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

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

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)

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.

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¡

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:

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))

% 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)

% 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 = [ ]; 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)

% 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)

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) y se dice que esta en orden descendente si i = x(j) 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

Claves iniciales i =2 i =3 i =4 i =5 i =6 I =7 i =8 Ordenación por inserción directa

% 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= [ ]; 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

Claves iniciales Ordenación por selección directa

% 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 = [ ]; 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

Claves i =2 i =3 i =4 i =5 i =6 I =7 i =8 Ordenación por intercambio directo

% 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 = [ ]; 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

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.

% 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 = [ ]; 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

% 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=[ ]; 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

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:

% 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

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.

% 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 = [ ; ; ; ; ] b = [ ; ; ; ; ] % 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

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

% 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 = [ ; ; ; ] b = [ ; ; ] 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

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

% 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= [ ]; 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