La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arreglos Scilab J. D. Pope S. ITD.

Presentaciones similares


Presentación del tema: "Arreglos Scilab J. D. Pope S. ITD."— Transcripción de la presentación:

1 Arreglos Scilab J. D. Pope S. ITD

2 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.

3 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.

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: é 1 3 5 ù ê ú a ( 1 : 3 , 1 : 2 : 5 ) = 6 8 10 ê ú ê ú ë 11 13 15 û

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

6 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

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

8 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.

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

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

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

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

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

15 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:

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

17 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

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

19 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

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

21 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

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


Descargar ppt "Arreglos Scilab J. D. Pope S. ITD."

Presentaciones similares


Anuncios Google