Arreglos Scilab J. D. Pope S. ITD.

Slides:



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

Programación Orientada a Objetos (con Java)
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.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Arreglos (vectores, matrices, ….)
Unidad 3 Punteros.
Vectores en java.
Semana 5 Subprogramas..
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
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.
Métodos iterativos para sistemas lineales
ANALISIS MATEMÁTICO PARA ECONOMISTAS IV
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Estructuras de Datos Arreglos.
Clase 10: Estructuras de datos y arreglos.
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.
El lenguaje de programación C - Vectores y matrices -
Aplicación de estructuras de datos
75.40 Algoritmos y Programación I
M A T R I C E S MATRICES matrices.
EXPRESIONES Y SENTENCIAS
Vectores y Matrices.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Programación en C para electrónicos
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
003 MATRICES MATRICES.
Clase 6 COMPUTACION 2009 C lase 8 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros.
Matrices Prof. Flor Narciso Departamento de Computación
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Al finalizar el curso el alumno será capaz de: Diseñar algoritmos utilizando estructuras estáticas de datos y programación modular.
003 MATRICES MATRICES.
MENORES Y COFACTORES.
MATRICES.
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
Paso de Parámetros a una Función Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de.
Grupo de Modelamiento de Sistemas Programa de Ingeniería Civil UdeA.
MEMORIA DINÁMICA.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Tipos de Datos abstractos
Expositor Lic. José Aragón Tapia. Introducción a la programación. Datos y expresiones, Operadores. Algoritmos, concepto, características. Definición de.
NÚMEROS ALEATORIOS DEPARTAMENTO DE INFORMATICA UNSL-2007.
Cálculo simbólico con GeoGebra David Benítez Mojica Universidad de Caldas Innatituto Geogebra del Tolima.
ALGEBRA CON VECTORES Y MATRICES Uso de MatLab.
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,....,
MODELOS LINEALES ALGEBRA DE MATRICES Uso de MatLab.
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
Copyright © 2006, SAS Institute Inc. All rights reserved. Techie Tips para mejorar tu código Arrays con SAS Marcel Almeida SAS BI Sr Consultant Pablo Fondevila.
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.
Nivelación de Matemática (MA240) SEMANA 5-SESIÓN 2 - Expresiones Algebraicas. - Polinomios : Grado, Valor Numérico.
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.
Funciones Polinomiales 4° Medio Electivo. Objetivos Hallar la expresión en coeficientes y el grado de un polinomio. Operar con Polinomios. Calcular el.
Definición de matriz Se llama matriz de orden m×n a todo conjunto rectangular de elementos a ij dispuestos en m líneas horizontales (filas) y n verticales.
Dr. J. D. Pope S.. Archivos Script No acepta argumentos de entrada o proporciona argumentos de salida Opera con datos proporcionados en la consola Son.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
JANITH SULAY JAIMES PABON GIOVANNY JIMÉNEZ GÓMEZ JOHN ANDRES AYALA ANGARITA SERGIO ANDRES ARAQUE BERMUDEZ GESTIÓN DE ALMACENAMIENTO SECUNDARIO.
Programación de Algoritmos Autor: Luis Eduardo Villavicencio Prof.: Ing. Danilo Jaramillo.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
Tabla bidimensional En cantidades abstractas Pueden sumarse y multiplicarse Sistema de ecuaciones lineales.
Representación en espacio de estado
Arreglos. en Lenguaje C n
·El lenguaje algebraico ·Expresiones algebraicas.Valor numérico ·Monomios ·Polinomios ·Potencias de polinomios.
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.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 7 – Funciones y Procedimientos.
“Estructuras de datos”
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Unidad VI Registros y Archivos Matlab Dr. J. D. Pope S. ITD.
MATLAB 6.5 Clase 3: Funciones básicas e Introducción a la Programación
Transcripción de la presentación:

Arreglos Scilab J. D. Pope S. ITD

Arrays (Vectores y Matrices) En matemáticas es necesario trabajar variables con subíndices. Por ejemplo a1, a2 , a3, ...., an. O bien b11, b12 , b13, ...., bnn. 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 Scilab puede soportar.

Declaración de Arreglos Antes de usarse en la mayoría 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, Scilab 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: é 1 3 5 ù ê ú a ( 1 : 3 , 1 : 2 : 5 ) = 6 8 10 ê ú ê ú ë 11 13 15 û

Tipos de Arrays A B C 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)

Manipulación de los elementos de un arreglo. Un arreglo en Scilab 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, Scilab acepta entrada directa de un vector o matriz

Intercambio de valores de dos variables A y B (Swap) En Scilab, 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 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 Scilab 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 Scilab. Una forma de conocer algunas aplicaciones básicas es ejecutando desde el espacio de trabajo el demo. Hágalo y empiece a conocer mejor esta herramienta de trabajo. En el menú de ayuda encontrara un apoyo importante para conocer operaciones básicas con matrices, operadores, gráficos, 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 modulo(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:

Calculo de la media y desviación estándar de un conjunto de datos Inicio N, X Sm = 0, Sd = 0 .False. .True. i = 1 1 i*1< = 1*N Xm = Sm/N Sm = Sm + Xi .False. .True. i = 1 1 i*1< = 1*N Sdt= (Sd /(N-1)) Sd = Sd + ( Xi - Xm )^2 Xm, S Fin

// Instituto Tecnológico de Durango // Departamento de Ingenierías Química y Bioquímica // Programación usando Matlab // Instructor: Dr. José Domingo Pope Solis // Programa para evaluar la media y desviación estándar de un //conjunto de datos con entrada elemento a elemento disp('Programa para evaluar la media y desviación estándar de un conjunto de datos ') Suma_m = 0 ;Suma_d=0; // Introducción 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; 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 Scilab // 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 Suma_d = Suma_d + (X(i) - Xmedia).^2; 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 Scilab // 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 Suma_d = Suma_d + (X(i) - Xmedia).^2; 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)

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; //Salida de Información disp('XX,YY'); [XX YY] //Fin del Programa Lagrange

Diagrama de Flujo para Sumar dos Matrices Inicio I = 1 Inc =1 I*1<= m*1 Diagrama de Flujo para Sumar dos Matrices .true. .false. m,n, A,B Fin A,B,C C(I,J) = A(I,J) + B(I,J) J = 1 J*1<= n*1

// Instituto Tecnológico de Durango // Departamento de Ingenierías Química y Bioquímica // Programación usando Scilab // 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

Multiplicar dos Matrices Inicio Diagrama de Flujo para Multiplicar dos Matrices m,l,n A,B .false. I = 1 1 I*1 <= m*1 .true. .false. J = 1 1 J*1 <= n*1 .true. C(I,J) = 0 .false. K = 1 1 K*1 <= l*1 .true. C(I,J) = A(I,K)*B(K,J) + C(I,J) A,B,C Fin

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

Mayor elemento en un arreglo y su posición Inicio .True. N,X Xmax = X(1) .False. M = 1 I = 2 I*inc<=N*inc inc = 1 Xmax < X(I) Xmax = X(I) M = I Fin Xmax,M

// Instituto Tecnológico de Durango // Departamento de Ingenierías Química y Bioquímica // Programación usando Scilab // 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