Você está na página 1de 37

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.

co/~walvarem/ ____________________________________________________________________________________________

APLICACIONES DE ARREGLOS, SUBPROGRAMAS, ARCHIVOS SOLUCIN DE ECUACIONES LINEALES SIMULTNEAS


Evolution. Fuente: R.B. Muhama.( 2004,.http://www.cs.kent.edu/~rmuhamma/) Kent State

Clase #11
University,

Los arreglos (vectores y matrices), los Subprogramas, Los Archivos de datos y los Tipos de Datos Definidos por el Usuario (TDU) son herramientas algorttmicas y de estructuras de datos que conjuntamente con muchas otras- permiten representar y resolver problemas complejos. A partir de esta clase, en la tercera parte de este curso, se harn una serie de aplicaciones, en Mtodos Numricos y en otras reas tcnicas y de ingenieras, de los diferentes elementos -tanto de la parte algortmica como d elas estructuras de datos bsicas- para ilustrar la inmensa aplicabilidad d elas tcnicas computacionales. En este captulo se plantean los siguientes objetivos: (i) Adquirir destrezas en el desarrollo de algoritmos para solucionar problemas de operaciones entre vectores y matrices, archivos de datos, subprogramas y TDU; (ii) mediantes casos especficos de aplicacin, reforzar los contenidos cognitivos de las clasea anteriores; los casos de aplicacin que se presentan sdon los Atnn ; (b) Multiplicacin de un vector por una matriz atn = btm x Cmn; siguientes: (a) calcular la matriz transpuesta Amn (c) - Multiplicacin de matrices Cmn = Amp x Bpn ; (d) Algunos problemas de reas tcnicas de ingenieras; (e) Solucin de Ecuaciones Lineales Simultneas (SELS), por el Mtodo de Gauss; (iii) los ejemplos y ejercicios de la prctica #111 ayudan a entender los temas de las secciones (i) y (ii); (iv) las actividades extraclase y las tareas facilitan el refuerzo en el proceso de estudio y de aprendizaje de esta clase.

11.1 ALGUNAS APLICACIONES DE ARREGLOS, SUBPROGRAMAS, ARCHIVOS, TDU


LA TRANSPUESTA DE UNA MATRIZ Amn: es otra matriz, denotada Atnm, en la cual se cumple que Ati,j = Aj,i , para i = 1 has m, j = 1 hasta n. En la figura 11.1 se ilustra el consepto de matriz trnaspuesta.

A(1,1) A(1,2) A(1,n) A= A(2,1) A(2,2) A(2,n) A(i,j) (a) A(m,1) A(m,2) A(m,n)

anidados, para recorrer las dos dimensiones de la matriz A, las filas y las columnas. El proceso se puede representar as: At(j,i) A(i,j) i=1,,m; j=1,,n, mediante el cual el elemento A(i,j) se asigna al elemento At(j,i). La dimensin de la matriz transpuesta: A(m,n) At(n,m). La figura 11.2 presenta el esquema algortmico correspondiente a la figura 11.1. Lee n, m, A Dim AT(n,m) For i=1 to m For j=1 to n AT(j,i) = A(i,j) Next j Next i FIGURA 11.2 Trozo algortmico que genera la matriz transpuesta At, a partir de la matriz A. Los pasos de este algotitmo son los siguientes: (i) - dimensin de la matriz transpuesta; (ii) - Se posiciona en la fila i de la matriz A que ser la columna i de la matriz AT; (iii) - Se posiciona en la columna j de la matriz A que ser la fila j de la matriz AT; (iv) - Se le asignan los valores a la matriz AT.

A(1,1) A(2,1) A(n,1) FIGURA 11.1 Diagrama esquemtico de una matriz A y su transpuesta At. A(n,2) At= A(1,2) A(2,2) A(j,i) Se requieren dos procesos iterativos, uno (b) A(1,m) A(2,m) A(n,m) dentro del otro, es decir encajados o

MULTIPLICACIN DE VECTOR POR MATRIZ atn = btm x Cmn: El resultado es un vector, como se ilustra en la figura 11.3. La multiplicacin de un vector por una matriz est definida si se cumple uno de los siguientes dos casos: (i) El nmero de elementos del vector es igual al nmero de filas de la matriz, en cuyo caso se multiplica el vector por cada columna de la matriz, __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 62 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ siendo el vector un vector fila; (ii) El nmero de elementos del vector es igual al nmero de columnas de la matriz, caso en el cual se multiplica el vector por cada fila de la matriz, siendo el vector un vector columna.

bt1xm
b1 b2 ...

(a)

Cmxn
.. bm

(b)

at1xn
(c)

bi

c11 cm1

c1n cmn

FIGURA 11.3 Vector por matriz: (a) Vcetor fila; (b) La matriz; (c) El vector resultado; (d) frmula implicada.

a1 ... aj
m

... ... am
(d)

a j = bi cij ; j = 1,..., n
i =1

La figura 11.4 presenta el algoritmo correspondiente a la figura 11.3.

Lee b(), C(), n, m dim a(n) For j = 1 to n For i = 1 to m a(j) = a(j) + b(i)*C(i,j) Next i Next j

FIGURA 11.4 Algoritmo para la multiplicacin de un vector fila por una matriz. Este algoritmo implica los siguientes pasos: (i) - Lectura de datos, es decir, del vector b(), la matriz C(), los valores n, m; (ii) - Se dimensiona el vector a(), con n elementos; (iii) - Se fija una columna de la matriz C(); (iv) - Se recorren todos los elementos de la columna de C() con los del vector b(); (v) - Se multiplica trmino a trmino b*C y se acumula el resultado por cada a(j).

ci, j =

MULTIPLICACIN DE MATRIZ POR MATRIZ Cmn = Amp x Bpn: Para que las matrices A y B sean multiplicables, el nmero de columnas de A debe ser igual al nmero de filas de B. La multiplicacin de la fila i de A por la columna j de B se conoce tambin como producto interno o escalar. El algoritmo consistir, simplemente, en multiplicar cada fila de la matriz A por cada columna de la matriz B. La figura 11.5 esquematiza diagrmticamente el proceso algoritmo pertinente. Y en la figura 11.6 se presenta el algoritmo respectivo. j j (a) A(1,1) A(1,p) B(1,1) B(1,n) Fila i . C(1,1) C(1,n) X A(i,k) . = . B(k,j) . i A(m,p) A(m,1) . C(i,j) . B(p,1) B(p,n) k C(m,1) C(m,n) p

k =1

a i ,k bk , j

(c)

i = 1,..., m ; j = 1,..., n

Cada entrada C(i,j) es un producto escalar entre la fila i de A y la columna j de B.

(b)

FIGURA 11.5 Esquema diagramtico para la multiplicacin de dos matrices: (a) Las matrices Amp y Bpn ; (b) La matriz resultante Cmn ; (c) La frmula simplificada que define. For I = 1 to m For j = 1 to n For k = 1 to p C(i,j) = C(i,j) + A(i,k)*B(k,j) Next k Next j Next i FIGURA 11.6 Algoritmo correspondiente al esquema de la figura 11.5. Este algoritmo requiere tres iteraciones definidas encajadas, anidadas, por lo cual su complejidad en nmero de operaciones es proporcional a N3; esto significa que para valores grandes de N (millones o miles de millones) es ineficiente. Las tcnicas del lgebra Lineal Numrica (vase al captulo 6 de las aplicaciones en Mtodos Numricos).suministran algoritmos ms eficientes para multiplicar matrices extensas.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 63 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ UN ARCHIVO DE USUARIOS: Se ha recopilado una serie de datos para un conjunto de usuarios y se han grabado dicho datos en un archivo secuencial tipo texto llamado USUARIOS.txt (este archivo de datos se encuentra en la pgina web http://xue.unalmed.edu.co/~6walvarem/APdocs/ARCHIVOS_DATOS/). Los datos recopilados son: Cdigo del usuario, 6 dgitos enteros; estrato socioecon, de 1 a 6; consumo del tipo de servicio telefnico, en impulsos; consumo de agua, en metros cbicos; consumo de energa en kilovatio/hora; comuna en la cual reside el usuario; gnero del usuario (F para femenino, M para masculino). Realizar los siguientes procedimientos: (1) Definir un TDU de nombre USUARIO con los campos mostrados en la figura 11.7(a); (2) Leer todos los registros del archivo en un vector U() tipo usuario,; (3) Cuntas mujeres y cuntos hombres conforman el conjunto de datos? Y cul es el procentaje de hombres y de mujeres con respecto al nmero total de personas presentes en el archivo? (4) Cuntas y cules mujeres del estrato 3, residentes en la comuna 7, tienen un consumo de impulsos telefnicos mayor que el promedio? (5) - Cantos y cules varones del estrato 4 tienen un consumo de agua mayor o igual a 320 metros cbicos? (6) Calcular el promedio y la desviacin estndar del consumo de energa para la zona 5. A modo de ejemplo, la figuras 11.7(c),11.7(d) muestran la lectura del archivo de datos con el paso de todos los registros al vector U() y los clculos del punto (4). FIGURA 11.7 Archivo, TDU, algoritmos del problema. (a)
Type USUARIO Cod as Long Estr As Byte cTel As Integer cAgua As Single cEnerg As Single Cma As Byte Gen as String*1 End Type

Definicin del TDU llamado USUARIO. Cada campo debe tener un nombre y un tipo de datos estndar. El vector U() se define as: Public U() As USUARIO (b)

Open App.Path For Input As # 55 n = 0 es el contador para el nmero de registros Do n = n +1 Redim Preserve U(n) Input#55,U(n).Cod, U(n).Estr, U(n).cTel, _ U(n).cAgua, U(n).cEnerg, U(n).Cma, _ U(n).Gen Loop Until(Eof(55)) (c) Close#55

Dim promTel As Single, nMuj As Integer, STel As Single Stel = 0.0 : nMuj = 0 For k = 1 To n Stel = Stel + U(k).cTel Next k promTel = Stel / n For k = 1 To n If(U(k).Gen = F And U(k).Estr = 3 And U(k).Cma=7 _ And U(k).cTel > promTel)Then nMuj = nMuj + 1 txt_R = txt_R & U(k).Cod & vbTab & U(k).cTel & vbCrLf Next k txt_R = txt_R & No. Mujeres = & nMuj

(d)

11.2 SOLUCIN DE SISTEMAS DE ECUACIONES LINEALES SINULTNEAS (SELS) MTODO DE GAUSS


En esta seccin se estudia la aplicacin de las estructuras algortmicas (secuencia, seleccin lgica, iteracin), vectores y matrices (arreglos), archivos de datos, subprogramas, en la solucin de sistemas de ecuaciones lineales simultneas (SELS). El mtodo de solucin que se explicar es el llmado de Eliminacin Gaussiana (el Mtodo de Gauss). Una representacin de un SELS es la que se muestra en la figura 11.8.

a11X1 + a12X2 +...+ a1jXj+... +a1nXn = b1 a21X1 + a22X2 +... + a2jXj+... +a2nXn = b2
....................................................................................... ......................................................................................

FIGURA 11.8 Representacin ecuacional de un Sistema de Ecuaciones Lineales Simultneas.

ai1X1 + ai2X2 + ... + aijXj+ ... +ainXn = bi an1X1 + an2X2 +...+anjXj+... +annXn = bn

Un SELS se emplea en muchas reas tcnicas y de ingenieras como herramienta de modelacin que representa problemas mediante ecuaciones lineales. Por ejemplo, en procesos de produccin (ej: Scheduling ruta crtica, etc); en procesos administrativos (ej: asignacin de recursos, el problema del agente viajero); en otras eas

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 64 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ de Ingeniera (ej: clculo de esfuerzos en una estructura, por ejemplo). Este SELS se representa matricialmente como: AX = b (11.1). En general, hay dos categoras de mtodos para resolver un SELS: (i) - Mtodos Directos como el Mtodo de Eliminacin de Gauss, y el Mtod de Gauss-Jordan, basado en la matriz inversa; estos mtodos obtienen directamente una solucin al sistema de ecuaciones 11.1; (ii) - Mtodos Iterativos como el Mtodo deJacobi y el Mtodo de Gauss-Seidel se basan en una solucin inicial y la mejoran mediante una serie de iteraciones hasta que se cumpla una cierta precisin numrica preestablecida. De todas formas existen problemas de precisin numrica cuando se trata de grandes sistemas, especialmente por los errores de truncamiento y de redondeo debidos a la aritmtica finita que maneja internamente la unidad aritmtico-lgica de los computadores.

EL MTODO DE ELIMINACIN DE GAUSS


El Mtodo de Eliminacin de Gauss se basa en la representacin de la figura 11.8 y obtiene cuando es posible- directamente una solucin al sistema de ecuaciones. El Mtodo de Eliminacin Gaussiana es un Mtodo Directo. Este mtodo fu ideado por C.F. Gauss, y consiste en realidad en la generalizacin y enfoque sistemtico, empleando algebra de matrices, del mtodo de eliminacin conocido desde antiguo y empleado por babilonios, indes y griegos. El Mtodo de Eliminacin Gaussiana consta de dos fases o etapas1: (i) - ESCALONAR LA MATRIZ DE COEFICIENTES. En esta etapa, el algoritmo ideado por Gauss convierte la matriz de coeficientes, A, en una matriz triengular superior; es decir con ceros por debajo de la diagonal principal; (ii) - SUSTITUIR REGRESIVAMENTE. Despejando las variables desde Xn hasta X1. La generalizacin del Mtodo de Eliminacin Gaussiana parte de la matriz de coeficientes, A, y del vector de trminos independientes, b, conformando una matriz ampliada A | b, sobre la cual se hacen las operaciones lineales de las filas. Los elementos de partida y de resultados, dela fase de escalonamiento, se ilustran en la figura 11.9.

aij
(d) Esquema del proceso general (escalonar)

(a) Matriz de coeficientes

(b) Vector de trminos independientes

( c ) Matriz transformada final

FIGURA 11.9 Elementos iniciales y finales en la fase de escalonamiento para el algoritmo del Mtodo de Eliminacin Gaussiana. El sistema resultante, esquematizado en la fihura 11.9(d) es equivalente al original, es decir que tiene el mismo vector solucin2. El algoritmo que se desarrollar maneja tres ndices: i, j, k, cuyos significados se esquematizav en la figura 11.10.

k
I
Su 0
1

j
0

FIGURA 11.10 ndices para el algoritmo general del proceso de escalonamiento en el Mtodo de Eliminacin Gaussiana. El ndice k determina la columna en la cual se van a obtener ceros por debajo de la diagonal principal; al ser la matriz cuadrada, tambin determina la fila pivote y el elemento pivote de la diagonal principal. Su recorrido es desde 1 hasta N-1 (la penltima columna). El ndice i hace referencia a las filas que se transforman por debajo de la diagonal principal. recorrido va desde k + 1 hasta N. El ndice j permite hacer el recorrido de columnas en cada fila que se transforma. Tradicionalmente, su recorrido se

Dalziel, Stuart: Linear Equations, February 1998, http://www.damtp.cam.ac.uk/lab/people/sd/lectures/nummeth98/linear.htm. // Beers, Kenneth J.: Numerical Methods for Chemical Engineering, applications in MatLab, Massachusetts Institute of Technology, Cambridge University Press, 2006, Chapter 1: Linear Algebra,ISBN-10: 0511254830. // Kaw, Autar: Simultaneous Linear Equations, Hollistic Numerical Methods Institute, University of South Florida, 2006, http://numericalmethods.eng.usf.edu. Kaw, Autar K.: Introduction to Linear Algebra, University of South Florida, 2002, http://numericalmethods.eng.usf.edu/~kaw. // Hadley, G.: Linear Algebra, Op. Cit.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 65 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ ha estipulado desde la columna k hasta la columna N, porque se hace aparte la transformacin de los elementos del vector b; pero si se utiliza una matriz ampliada A | b entonces el recorrido del ndice j ira desde k hasta N+1. ESCCALONAR LA MATRIZ A. En detalle, las operaciones de las transformaciones lineales que obtienen ceros por debajo de la diagonal principal en la columna 1 (k = 1), con el elemento pivote a11, y la fila 1 (k = 1) como fila pivote, son las siguientes: Restar a la ecuacin 2 (k+1), un mltiplo de la ecuacin 1, de manera que a21 se vuelva cero, utilizando el factor multiplicador a21 / a11 : Para la ecuacin 3, restarle un mltiplo de la ecuacin 1, as: En general, para la ecuacin i-sima, la transformacin es as:

(Ec.2 ) = (Ec.2 ) (Ec.1) a21


a11 a11

(Ec .3 ) = (Ec .3 ) (Ec .1) a 31


(Ec .i ) = (Ec .i ) (Ec . 1 ) a i1
a 11

(i = 2,3,..., n)

De esta manera, se forman ceros por debajo de la diagonal principal ,en la columna 1, como se ilustra en la figura 11..11. FIGURA 11.11 Matriz transformada con ceros por debajo de la diagonal principal en la columna 1. Todos los elementos mostrados son los elementos transformados; se omite el uso de comillas o apstrofes (a11, por ejemplo) para facilitar las explicaciones. Las operaciones lineales efectuadas garantizan que el sistema, as transformado, es equivalente al original de la figura 8.2.1, es decir que este sistema y el original tienen el mismo vector solucin X= (X1, X2,..., Xn ); adicionalmente, las operaciones lineales efectuadas garantizan que el determinante de la matriz A no cambia. El algoritmo contina, ahora, con la columna 2 (k = 2) y las operaciones de la transformacin lineal sobre esta columna, con el elemento pivote a22, y la fila 2 (k = 2)como fila pivote, son las siguientes: Restar a la ecuacin 3, un mltiplo de la ecuacin 2 (ecuacin o fila pivote), de tal manera que a32 se vuelva cero:

(Ec . 3 ) = (Ec . 3 ) (Ec . 2 ) a 32

a 22

Aqu el factor multiplicador es a32 / a22, lo cual garantiza que el elemento a32 se convierte en cero. Y los dems elementos de la fila 3 (ecuacin 3) son transformados.

Restar a la ecuacin 4, un mltiplo de la ecuacin 2 (ecuacin o fila pivote), de tal manera que a42 se vuelva cero:

(Ec .4 ) = (Ec .4 ) (Ec .2 ) a 42


a 22

Aqu el factor multiplicador es a42 / a22, lo cual garantiza que el elemento a42 se convierte en cero. Y los dems elementos de la fila 4 (ecuacin 4) son transformados.

Restar a la ecuacin i-sima, un mltiplo de la ecuacin 2 (ecuacin o fila pivote), de tal manera que ai2 se vuelva cero:

(Ec .i ) = (Ec .i ) (Ec . 2 ) a i 2


(i = 3,..., n)

a 22

Aqu el factor multiplicador es ai2 / a22, lo cual garantiza que el elemento ai2 se convierte en cero. Y los dems elementos de la fila i (ecuacin i) son transformados. FIGURA 11.12 Matriz transformada con ceros por debajo de la diagonal principal en la columna 1 y en la columna 2. Todos los elementos mostrados son los elementos transformados; se omite el uso de comillas o apstrofes (a11, por ejemplo) para facilitar las explicaciones.

De esta forma, se obtienen ceros por debajo de la diagonal principal en la columna 2, como se ilustra en la figura 11.12. En general, para la columna k, se obtenien ceros por debajo del k-simo elemento de la diagonal, akk, que se sita en la k-sima columna de la matriz A. En detalle, las operaciones de transformacin lineal, con el elemento pivote akk, y la fila k (i = k)como fila pivote ,son las siguientes: __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 66 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ Restar a la ecuacin K + 1, un mltiplo de la ecuacin K, ecuacin o fila pivote, de tal manera que el elemento ak+1,k se vuelva cero:

(Ec .k + 1) = (Ec .k + 1) (Ec .k )

a k +1, k a kk

Aqu el factor multiplicador es ak+1,k / akk, lo cual garantiza que el elemento ak+1,k se convierte en cero. Y los dems elementos de la fila k+1 (ecuacin k+1) son transformados.

Restar a la ecuacin K + 2, un mltiplo de la ecuacin K, ecuacin o fila pivote, de tal manera que el elemento ak+2,k se vuelva cero:

(Ec .k + 2 ) = (Ec .k

+ 2 ) (Ec .k )

a k + 2 ,k a kk

Aqu el factor multiplicador es ak+2,k / akk, lo cual garantiza que el elemento ak+2,k se convierte en cero. Y los dems elementos de la fila k+2 (ecuacin k+2) son transformados.

Restar a la ecuacin i-sima, un mltiplo de la ecuacin K, ecuacin o fila pivote, de tal manera que el elemento ai,k se vuelva cero:

a (Ec .i ) = (Ec .i ) (Ec . k ) i , k a kk


(i = k+1,..., n)

Aqu el factor multiplicador es ai,k / akk, lo cual garantiza que el elemento ai,k se convierte en cero. Y los dems elementos de la fila i-sima (ecuacin i-sima) son transformados.

As, para la columna k se obtienen ceros por debajo de la diagonal principal, como se esquematiza en la figura 11.13, mostrada a continuacin: FIGURA 11.13 Matriz transformada con ceros por debajo de la diagonal principal desde la columna 1 hasta la columna k. Todos los elementos mostrados son los elementos transformados; se omite el uso de comillas o apstrofes (a11, por ejemplo) para facilitar las explicaciones. El proceso se contina con las columnas k+1, k+2, .., N-1, logrando que la matriz final as transformada- sea una matriz triangular superior con respeto a la diagonal principal (que tenga ceros por debajo de la diagonal principal), como se esquematiza en la figura 11.9(c). En sntesis, el proceso iterativo de la triangulacin (o escalonamiento) de la matriz de coeficientes, A, y del vector de trminos independientes, b, se puede expresar genricamente con la ecuaciones de transformacin lineal, y rangos de los ndices, mostradas en la figura 11.14, presentada a continuacin:

(Ec.i )

= (Ec .i ) (Ec .k )

aik a kk

a ij = a ij a kj

a ik a kk

bi = bi

a ik bk a kk

i = k+1,k+2,..., n; k = 1,2,3,..., n-1 (a) Ecuaciones de transformacin lienal

k = 1,..., n-1; i = k+1,..., n; j = k,..., n (b) Ecuacin de transformacin de los elementos de la matriz A

i = k+1,..., n; j = k,..., n (c) Ecuacin de transformacin de los elementos del vector b.

FIGURA 11.14 Sntesis de las transformaciones lineales involucradas en la etapa de escalonamiento en el Mtodo de Eliminacin Gaussiana. __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 67 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ Despus de procesar la ltima columna, el Mtodo de Eliminacin Gaussiana habr generado el sistema aumentado que se ilustra en la figura 11.15. FIGURA 11.15 Matriz transformada aumentada del tipo triangular superior en las N primeras columnas. La columna N+1 de esta matriz aumentada corresponde a los elementos transformados del vector b. A partrir de este sistema se puede continuar con la segunda fase del Mtodo de Eliminacin Gaussiana. Pero antes, es conveniente comprobar cmo las operaciones de transformacin lineal que efecta esta fase del Algoritmo Gaussiano efectivamente forman ceros por debajo de la diagonal principal d ela matriz de coeficientes. Clculo de los coeficientes y de los trminos independientes en cada transformacin, COLUMNA 1, ECUACIN 2: a21 = a21 - a11(a21/a11)= 0; a22 = a22 - a12(a21/a11) (en general, es diferente de cero); (Ec.2) = (Ec.2) (Ec.1) a21 a2j = a2j - a1j(a21/a11), para j = 1,2,...,n; b2 = b2 - b1(a21/a11); quedando, as, a11 transformada la ecuacin 2 (fila 2 de la matriz A), de modo que a21 se hace cero. Clculo de los coeficientes y de los trminos independientes en cada transformacin, COLUMNA 1, ECUACIN i: a = a - a (a /a )= 0; ai2 = a - a (a /a11) (en general, es diferente de cero); aij (Ec.i ) = (Ec.i ) (Ec.1) ai1 =i1aij i1a1j(a11 /ai1 ), 11 j = 1,2,...,n;i2bi =12 i -i1b1(ai1/a11); quedando, as, transformada la b i1 11 para a11 ecuacin i-sima (fila i-sima de la matriz A), de modo que ai1 se hace cero. ALGORITMO DEL PROCESO DE ESCALONAMIENTO. Con el anlisis efectuado anteriormente, es posible escribir la parte del Algoritmo Gaussiano para trasnformar la matriz original de coeficientes en una matriz triangular superior. La figura 11.16 ilustra dicho algoritmo. For k = 1 to N-1 For i = k+1 to N Factor = A(i,k) / A(k,k) For j = k to N A(i,j) = A(i,j) Factor*A(k,j) Next j B(i) = B(i) Factor*B(k) Next i Next k FIGURA 11.16 Algoritmo para el proceso de escalonamiento de la matriz A de coeficientes originales en el Mtodo de Eliminacin Gaussiana. Como tcnica de representacin del algoritmo se emplea la sintaxis especfica de un lenguaje de programacin de computadores. En este caso, se emplea la sintaxis de Visual Basic 6.0 (que tambin es vlida para versiones posteriores). Esta versin del algoritmo no tiene en cuenta el caso que se presenta cuando A(k,k) = 0, que entonces implicara utilizar tcnicas de pivoteo (parcial o total), o que -en el peor de los caos- el sistema no tenga solucin.

SUSTITUCIN REGRESIVA. Cuando un Sistema de Ecuaciones Lineales Simultneas, como el esquematizado en la figura 11.8, tiene solucin, entonces se llega a un sistema transformado como el de la figura 11.15, cuyo esquema ecuacional se presenta en la figura 11.17. FIGURA 11.17 Sistema final en el proceso de a11X1 + a12X2 + a13X3 + ... + aijXj + ... + a1,n-1Xn + a1nXn = b1 (1) escalonamiento de la matriz A de a22X2 + a23X3 + ... + a2jXj + ... + a2,n-1Xn + a2,nXn = b2 (2) coeficientes originales en el Mtodo. De Eliminacin Gaussiana. a33X3 + ... + a3jXj + ... + a3,n-1Xn + a3nXn = b3 (3)

............................................................... aiiXi + ... + aijXj + ... + ai,n-1Xn + ainXn = bi (i) .............................................................. an-1,n-1Xn-1 + an-1,nXn = bn-1 (n-1) an,nXn = bn (n)

En detalle, los clculos involucrados, a partir del sistema presentado en la figura 8.2.14, son los siguientes: De la ecuacin (n), an,nXn = bn , se despeja el valor de Xn as:

Xn =

bn ann

(11.2)

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 68 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ Con Xn calculado se despeja, en la ecuacin (n-1), an-1,n-1Xn-1 + an-1,nXn = bn-1 ,el valor de Xn-1, ecuacin 11.3. Con los valores calculados de Xn , ecuacin 11.2, y de Xn-1 , ecuacin 8.2.3, se puede calcular de la ecuacin (n-2), en el sistema mostrado en la figura 8.2.14, an-2,n-2Xn-2 + an-2,n-1Xn-1 + an-2,nXn = bn-2 , el valor de Xn-2 con la ecuacin 11.4. Conociendo los valores de Xn , ecuacin 11.2, Xn-1 , ecuacin 11.3, Xn-2 , ecuacin 11.4, entonces de la ecuacin (n-3), en el sistema mostrado en la figura 11.17,

n 1

b n 1 a n 1, n X a n 1, n 1

(11.3)

X n2 =

bn2 (an2,n1 X n1 + an2,n X n ) (11.4) an2,n2

X n3 =

bn3 (an3,n2 X n2 + an3,n1 X n1 + an3,n X n ) an3,n3


(11.5)

an-3,n-3Xn-3 + an-3,n-2Xn-2 + an-3,n-1Xn-1 + an-3,nXn = bn3 , se puede despejar el valor de Xn-3 con la ecuacin 11.5.
Con las ecuaciones 11.3, 11.4 y 11.5 ya se tienen suficientes elementos de anlisis para inducir la frmula correspondiente a Xi para i = n-1 hasta 1. Dicha frmula se presenta en la ecuacin 11.6.

Xi =

n 1 bi aij X j , i = n 1, n 2,..., 1 aii j =i +1

(11.6)

Con las frmulas 11.2 y 11.6 se elabora el Algoritmo de Sustitucin Regresiva, para el Mtodo de Eliminacin Gaussiana. Dicho algoritmo se presenta la figura 11.18 mostrada a continuacin:
X(N) = B(N)/ A(N,N) For i = n-1 to 1 step -1 X(i) = B(i) For j = i+1 to N X(i) = X(i) A(i,j)*X(j) Next j X(i) = X(i)/ A(i,i) Next i 1 for k = 1 To n-1 2 for i = k+1 To n 3 m = aik / akk 4 for j = k To n 5 aij = aij - m*akj 6 next j 7 bi = bi - m*bk 8 next i 9 next k (a)

FIGURA 11.18 Algoritmo de Sustitucin Regresiva para el Mtodo Eliminacin Este procedimiento, conjuntamente con el mostrado en la figura 11.16, conforma en esa secuencia- el Algoritmo General para el Mtodo de Eliminacin Gaussiana que obtiene el vector solucin X = (X1, X2,..., Xn ) para un Sistema de Ecuaciones Lineales Simultneas. La figura 11.19 compendia estas dos fases del Mtodo de Eliminacin Gaussiana.

10 xn = bn / ann 11 for i = n-1 To 1 step -1 12 xi = bi 13 for j = i+1 To n 14 xi = xi - aij * xj 15 next j 16 xi = xi / aii 17 next i (b)

FIGURA 11.19 Las dos fases del Mtodo de Eliminacin de Gauss para resolver un Sistema de Ecuaciones Lineales Simultneas.: (a) Escalonamiento de la matriz de coeficientes; (b) Sustitucin regresiva para obtener los elementos del vector solucin desde Xn hasta X1.

11.3 SISTEMAS ESPECIALIZADOS DE ECUACIONES LINEALES SIMULTNEAS


El mtodo estndar de Gauss, o de Eliminacin Gaussiana, efecta el escalonamiento de la matriz A() de coeficientes tcnicosde manera estndar, formando ceros por debajo de la diagonal principal, transformando la matriz inicial de coeficientes en una matriz triangular superior, como se esquematiza en la figura 11.20(a). El proceso del Mtodo de Eliminacin Gaussiana, o Mtodo de Gauss, de manera estndar, obtiene una matriz triangular superior, es decir, con ceros por debajo de la diagonal principal. Sin embargo, es posible efectuar el proceso de escalonamiento de la matriz de coeficientes, A(), de modo que se obtenga una matriz triangular inferior, es decir con ceros por arriba de la diagonal principal como se ilustra en la figura 11.20(b). Tambin es posible que se obtenga una matriz triangular, superior o inferior, con respecto a la diagonal secundaria, como se esquematiza en las figuras 11.20(c) y 11.20(d). __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 69 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

aij
(a)

aij
(b)

a ij
(c)

aij
(d)

FIGURA 11.20 Los casos (b), (c) y (d) constituyen Sistemas Especializados de Ecuaciones Lineales Simultneas. Son variantes del algoritmo bsico de Eliminacin Gaussiana mostrado en (a). En la figura 11.21 se muestran los esquemas ecuacionales de los sistemas especializados SELS mostrados en las figuras 11.20(b), 11.20(c) y 11.20(c). a11X1 a21X1 + a22X2 a31X2 + a23X3 + a33X3 ....................................................... ....................................................... ai,1X1 + ai,2X2 + ai,3X3 + ... + aiiXi + ... + aijXj + ai,j+1Xj+1 ............................................................................................................. an-2,1X1 + an-2,2X2 + an-2,3X3 + ... + an-2,jXj + ... + an-1,n-2Xn-2 an-1,1X1 + an-1,2X2 + an-1,3X3 + ... + an-1,jXj + ... + an-1,n-2Xn-2 + an-1,n-1Xn-1 an,1X1 + an,2X2 + an,3X3 + ... + an,jXj + ... + an,n-2Xn-2 + an,n-1Xn-1 + an,nXn a11X1 + a12X2 +...+ a1,jXj+...+ a1,n-3Xn-3 + a1,n-2Xn-2 + a1,n-1Xn-1 + a1,nXn a21X1 + a22X2 +...+ a2,jXj +... + a2,n-3Xn-3 + a2,n-2Xn-2 + a2,n-1Xn-1 a31X1 + a32X2+...+ a3,jXj +... + a3,n-3Xn-3 + a3,n-2Xn-2 ................... ai,1X1 + ai,2X2 + ai,3X3 + . + ai,jXj ................... an-2,1X1 + an-2,2X2 + an-2,3X3 an-1,1X1 + an-1,2X2 an,1X1 = b1 (1) = b2 (2) = b3 (3) = bi (i) = bn-1 (n-2) = bn-1 (n-1) = bn (n) = b1 (1) = b2 (2) = b3 (3) = bi (i) = bn-2 (n-2) = bn-1 (n-1) = bn (n) a1,nXn = b1 a2,n-1Xn-1 + a2,nXn a3,n-2Xn-2 + a3,n-1Xn-1 + a3,nXn = b2 = b3

aij
(a)

a ij
(b)

(1) (2) (3) (i) (i+1)

aij
(c)

........ ai,jXj + .. + ai,n-2Xn-2 + ai,n-1Xn-1 + ai,nXn = bi ........ ai+1,j-1Xj-1 + ai+1,jXj + .. + ai,n-2Xn-2 + ai,n-1Xn-1 + ai,nXn = bi+1

FIGURA 11.21 Esquemas ecuacionales de los Sistemas Especializados de SELS mostrados en la figura 11.20. En la figura 11.22 se presentan los programas correspondientes a los Sistemas Especializados SELS de la figura 11.21.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 70 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________
1 For k = 2 To N 2 For i = k - 1 To 1 Step -1 3 Factor = A(i, k) / A(k, k) 4 For j = k To N 5 A(i, j) = A(i, j) - Factor * A(k, j) 6 Next j 7 B(i) = B(i) - Factor * B(k) 8 Next i 9 Next k 10 X(1) = B(1) / A(1, 1) 11 For i = 2 To N 12 Sum1 = 0# 13 For j = 1 To i - 1 14 Sum1 = Sum1 + A(i, j) * X(j) 15 Next j 16 X(i) = (B(i) - Sum1) / A(i, i) 17 Next i 1 For k = 2 To N 2 For i = N - k + 2 To N 3 Factor = A(i, k) / A(N - k + 1, k) 4 For j = k To N 5 A(i, j) = A(i, j) - Factor * A(N - k + 1, j) 6 Next j 7 B(N - k + 2) = B(N - k + 2) - Factor * B(N - k + 1) 8 Next i 9 Next k 10 X(1) = B(N) / A(N, 1) 11 For i = 2 To N 12 Sum1 = 0# 13 For j = 1 To i - 1 14 Sum1 = Sum1 + A(N - i + 1, j) * X(j) 15 Next j 16 X(i) = (B(N - i + 1) - Sum1) / A(N - i + 1, i) 17 Next i

1 For k = 1 To N - 1
2 For i = N - k To 1 Step -1 3 Factor = A(i, k) / A(N - k + 1, k) 4 For j = k To N 5 A(i, j) = A(i, j) - Factor * A(N - k + 1, j) 6 Next j 7 B(N - k) = B(N - k) - Factor * B(N - k + 1) 8 Next i 9 Next k 10 X(N) = B(1) / A(1, N) 11 For i = N - 1 To 1 Step -1 12 Sum1 = 0# 13 For j = n To i + 1 14 Sum1 = Sum1 + A(N - i + 1, j) * X(j) 15 Next j 16 X(i) = (B(i) - Sum1) / A(N - i + 1, i) 17 Next i

Figura 11.22 Esquemas que sintetizan los procesos de resolver los sistemas especializados mostrado en la figura

OTROS SISTEMAS ESPECIALIZADOS, BASADOS EN SUBMATRICES


A veces, desde el planteamiento de un Modelo de Ecuaciones Lineales Simultneas, o en ciertos pasos del proceso de escalonamiento, puede llegarse a ciertas categoras de Sistemas Especializados, en los cuales una o dos de las submatrices, en las cuales se puede dividir la matriz de coeficientes A(), es cero y las otras submatrices son del tipo triangular inferior o superior. Por ejemplo, el sistema que se muestra a continuacin, en la figura 11.23, es de tal categora3.
K K

Figura 11.23 Un Sistema Especializado de Ecuaciones Lineales Simultneas basado en submatrices. Si se supone que la matriz original A() es cuadrada de orden N x N, siendo N par y K = N, entonces todas las submatrices son cuadradas de orden K x K..

Desde luego, si N es impar, se generaran otros modelos especializados. Se puede, entonces, establecer una categorizacin de Modelos Especializados de Sistemas de Ecuaciones K Lineales Simultneas, que se sintetizan en la tabla 11.1. En el captulo 8 de las aplicaciones de Mtodos Numricos se encuentran todos los detalles de las categoras relacionadas en la tabla 11.1.
K K

CATEGORA 1

Tabla 8.13.1 Taxonoma de Models Especializados de Ecuaciones Lineales Simultneas. DESCRIPCIN ESQUEMA DE LOS MODELOS MATRICES COMPLETAS, N X N 4 MODELOS (1_1 A 1_4)

SUBMATRICES CUADRADAS DE ORDEN K X K, SIENDO K = N , N PAR. UNA SUBMATRIZ EST LLENA; OTRA SUBMATRIZ ES CERO; Y HAY DOS SUBMATRICES QUE SON TRIANGULARES. 64 MODELOS (2_1 A 2_64)

1_1

1_2

1_3

1_4

Las submatrices superior derecha e inferior izquierda son triangulares de orden K x K. 16 modelos, 2_1 a 2_16.

0
3

Estos modelos especializados son la ampliacin de una idea presentada por varios autores sobre el tema de los Sistemas de Ecuaciones Lineales Simultneas. Vase, por ejemplo a McCracken, D.D. and Dorn, W.S.: Mtodos Numricos y Programacin FORTRAN con aplicaciones en Ingeniera y Ciencia, captulo 7, Editorial Limusa-Wiley, Mxico, 1968.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 71 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ SUBMATRICES CUADRADAS DE ORDEN K X K, SIENDO K Las submatrices superior = N , N PAR. UNA SUBMATRIZ EST LLENA; OTRA derecha e inferior izquierda son SUBMATRIZ ES CERO; Y HAY DOS SUBMATRICES QUE triangulares de orden K x K. 16 SON TRIANGULARES. 2 modelos, 2_17 a 2_32. 64 MODELOS (2_1 A 2_64), CONTINUACIN
Las submatrices superior izquierda e inferior derecha son triangulares de orden K x K. 16 modelos, 2_33 a 2_48. Las submatrices superior izquierda e inferior derecha son triangulares de orden K x K. 16 modelos, 2_49 a 2_64.

SUBMATRICES CUADRADAS DE ORDEN K X K, SIENDO K = N , N PAR. DOS SUBMATRICES SON CERO; Y LAS OTRAS DOS SUBMATRICES SON TRIANGULARES. 32 MODELOS (3_1 A 3_32)

Las submatrices superior derecha e inferior izquierda son triangulares de orden K x K. 16 modelos, 3_1 a 3_16. Las submatrices superior derecha e inferior izquierda son triangulares de orden K x K. 16 modelos, 3_17 a 3_32. Una de las submatrices es cero; las otras tres son triangulares de orden K x K. 256 modelos, 4_1 a 4_256.

SUBMATRICES CUADRADAS DE ORDEN K X K, SIENDO K = N , N PAR. UNA DE LAS SUBMATRICES ES CERO; Y LAS OTRAS TRES SUBMATRICES SON TRIANGULARES. 256 MODELOS (4_1 A 4_256)

SOLUCIN DE

MODELOS ESQUEMATIZADO EN LAS TABLA

11.1

A modo de ejemplos ilustrativos se presenta a continuacin la solucin de algunos de los modelos esquemticos de Sistemas especializados de Ecuaciones Lineales Simultneas listados en las tablas 8.13.1 a 8.13.5. Como metodologa general, para cada modelo que se soluciona, se siguen los siguientes pasos: (1) - Ilustracin del diagrama esquemtico con las submatrices que constituyen el modelo, especificando -cuando sea pertinente- los parmetros concernientes al modelo en cuestin; (2) - se muestra un esquema de las ecuaciones que involucra tal diagrama esquemtico; (3) - deduccin de las frmulas pertinentes para los elementos del vector solucin X(), especificando que parte de los elementos se logra calcular con cada frmula; la deduccin de las frmulas se hace paso a paso, mediante induccin abstracto-lgico-algebraica, que es una subcategora de un mtodo ms general denominado induccin matemtica4; la induccin sirve a tres propsitos5: permite descubrir hiptesis, ofrece el soporte evidencial para las generalizaciones, y facilita descubrir algo del futuro (la prediccin); se elabora el algoritmo 0
4

Vase, por ejemplo: Cohen, Martin: Topics in High School Mathematics, Educational Consultant, Philadelphia, USA, 2006. // Hillman, Abraham P. & Alexanderson, Gerald L.: Algebra Through Problem Solving, Santa Clara University and Mexico University, Allyn and Bacon, Inc., Boston, Massachussets, USA, January 2006. // Urso, Pascal and Kounalis, Emmanuel: Sound generalizations in mathematical induction, ACM Theoretical Computer Science, Volume 323 , Issue 1-3 (September 2004) Pages: 443 471, Year of Publication: 2004 , ISSN:0304-3975. 5 Feibleman, James K.: On Theory of Induction, Philosophy and Phenomenological Research, Vol. 14, No. 3, March 1954, pp. 332-342. // Raynor, G.E.: Mathematical Induction, The American Mathematical Montly, Vol. 33, No. 7, Aug. - Sept., 1926, pp. 376-377. // Boolos, George: The Justification of Mathematical Induction PSA: Proceedings of the Biennial Meeting of the Philosophy of Science Association, Vol. 1984, Volume Two: Symposia and Invited Papers. (1984), pp. 469-475. // Bundrick, Charles M. And Sherry, David L.: A Note on the Principle of Mathematical Induction, The Two-Year College Mathematics Journal, Vol. 9, No. 1. (Jan., 1978), pp. 17-18.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 72 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ que implementa el proceso de clculo implicado en las frmulas deducidas; (4) - se construye un proyecto en Visual Basic 6.0 que implementa a su vez- el algoritmo planteado en el paso anterior, empleando archivos de prueba. La clave para resolver todos los modelos presentados en la tabla 11.1 consiste en resolver primero para las submarices que acompaan horizontalmente- a la submatriz cero, y luego emplear esos resultados para obtener los restantes elementos del vector solucin X(). Es necesario enfatizar que en todos estos modelos de ecuaciones lineales simultneas, el objetivo es hallar los elementos del vector X(), siendo A() y B() datos conocidos. Hay dos categoras de posibilidades en la obtencin de los Xi, con i= 1 to N: (1) - Resolver primero para X1 hasta Xk, o desde Xk hasta X1; y luego resolver para Xk+1 hasta Xn , o desde Xn hasta Xk+1; siempre se empieza con la submatriz triangular que acompaa a la submatriz cero; (2) - Resolver primero para Xk+1 hasta Xn, o desde Xn hasta Xk+1; y luego resolver para X1 hasta Xk, o desde Xk hasta X1 ; el inicio siempre lo define la posicin de la submatriz cero. En la figura 11.24 se observa el diagrama esquemtico correspondiente al modelo 2_5, listado en la tabla 11.1, siendo K = N y N par.
K K

Figura 11.24 Diagrama esquemtico del modelo 2_5, relacionado en la tabla 11.1.
K N

En este modelo, la submatriz inferior izquierda (vista frontal) permite resolver para X1 hasta Xk, y luego en las submatrices superiores (izquierda y derecha) se resuelve para Xn hasta Xk+1 (o Xn-k+1). Un esquema de las ecuaciones (esquema ecuacional) correspondientes a este modelo se presenta en la figura 11.25, mostrada a continuacin.

K N

a11X1 + a12X2 +...+ a1,kXk + a1,nXn = b1 (1) a21X1 + a22X2 +...+ a2,kXk +a2,n-1Xn-1 +a2,nXn = b2 (2) a31X1 + a32X2+...+ a3,kXk +a3,n-2Xn-2 +a3,n-1Xn-1 +a3,nXn = b3 (3) ................... ai,1X1+ai,2X2+...+ ai,KXK +ai,n-i+1Xn-i+1 +ai,n-2Xn-2 +ai,n-1Xn-1 +ai,nXn = bi (i) ................... ak,1X1+ak,2X2+...+ ak,KXK +ak,k+1Xk+1+ ak,k+2Xk+2 +.... +ak,n-2Xn-2 +ak,n-1Xn-1 +ak,nXn = bk (k) ................... an-3,1X1 + an-3,2X2 + an-3,3X3 + an-3,4X4 = bn-3 (n-3) an-2,1X1 + an-2,2X2 + an-2,3X3 = bn-2 (n-2) an-1,1X1 + an-1,2X2 = bn-1 (n-1) an,1X1 = bn (n)

Figura 11.25 Esquema ecuacional correspondiente al diagrama esquemtico del modelo 2_5 presentado en la figura 11.24. De dicho esquema ecuacional se puede observar que en la ecuacin n, an,1X1 = bn, se puede resolver para el valor de X1, as, ecuacin 11.7:

X1 =

1 (bn ) (11.7). an ,1 Con este valor de X1 hallado se puede resolver en la ecuacin (n-1) para hallar X2 as:
X2 = 1 an 1, 2

an-1,1X1 + an-1,2X2 = bn

(b

n 1

an 1,1 X 1 )

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 73 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ Reemplazando los valores obtenidos de X1 y de X2 en la ecuacin (n-2) se obtiene el valor de as:

an-2,1X1 + an-2,2X2 + an-2,3X3 = bn-2 X 3 =

1 an2,3

(b

n2

(an2,1 X 1 + an2, 2 X 2 ))

Igualmente, con los valores obtenidos de X1, X2, y de X3 se obtiene, de la ecuacin (n-3), el valor de X4 as:

an-3,1X1 + an-3,2X2 + an-3,3X3 + an-3,4X4 = bn-3

X4 =

1 a n 3, 4

(b

n 3

(an 3,1 X 1 + an 3, 2 X 2 + an 3,3 X 3 ))

Con las anteriores ecuaciones se tienen suficientes elementos de anlisis para obtener, por induccin abstracto-lgico-algebrica, la expresin genrica para Xi , con i = 2, K. Esta expresin genrica es la siguiente frmula, ecuacin 11.8: (11.8) Con las ecuaciones 11.7 y 11.8 se puede elaborar el algoritmo que obtiene, a partir de A() y de B(), los valores de X(), desde X1 hasta Xk. La figura 11.26 ilustra tal algoritmo. Figura 11.26 Algoritmo que implementa las frmulas 11.7 y 11.8. Con los valores obtenidos de X1 hasta Xk se puede obtener, ahora, los restantes valores del vector solucin X(), es decir los elementos Xn hasta Xk+1, en las K primeras ecuaciones, correspondientes a las dos submatrices superiores del sistema mostrado en la figura 11.25. De la primera ecuacin :
K a1,1X1+a1,2X2+...+ a1,KXK+ a1,nXn = b1 X n = 1 b1 a 1 , j X j j =1

X(1) = B(N)/A(N,1) FOR i = 2 To K S = 0.0 : P = N i +1 FOR j = 1 To i-1 S = S + A(P,j)*X(j) NEXT j X(i) = (B(P) - S)/A(P,i) NEXT i

a 1, n Con este valor hallado de Xn se puede resolver para Xn-1 en la ecuacin 2 de la siguiente forma:

(11.9)

a2,1X1+a2,2X2+...+ a2,KXK+a2,n-1Xn-1 +a2,nXn = b2

n 1

1 a 2 ,n 1

b2

j =1

a 2, j X

a 2 ,n X

Con los valores hallados de Xn y Xn-1 se puede resolver para Xn-2 en la ecuacin 3 de la siguiente forma:

a3,1X1+a3,2X2+...+a3,KXK+ a3,n-2Xn-2 +a3,n-1Xn-1 +a3,nXn = b3


X n2 =
K 1 b3 a3, j X j (a3,n 1 X n 1 + a3,n X n ) a3,n 2 j =1

Igualmente, con los valores hallados para Xn , Xn-1 y Xn-2 se puede resolver para Xn-3 en la ecuacin 4 de la siguiente forma: a4,1X1+a4,2X2+...+a4,KXK+ a4,n-3Xn-3 + a4,n-2Xn-2 +a4,n-1Xn-1 +a4,nXn = b4

X n 3 =

K b4 a 4 , j X j (a 4 , n 2 X n 2 + a 4 , n 1 X n 1 + a 4 , n X n ) a4,n 3 j =1

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 74 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ Con las ecuaciones anteriores ya se tienen suficientes elementos de juicio y de anlisis para inducir la expresin genrica del clculo de Xi variando i = N-1 hasta 1. Esa expresin genrica es la representada en la frmula siguiente, ecuacin 11.10:

Xi =

1 a n i +1,i

i +1 K bn i +1 a n i +1, j X j a n i +1, j X j=n j =1

, i = n 1, n k + 1

(11.10)

Empleando las ecuaciones 11.9 y 11.10 se puede elaborar el algoritmo que calcula los valores Xn hasta Xk+1 del vector solucin X(). Dicho algoritmo se muestra en la figura 11.27. Sum1 = 0.0 For J = 1 To K Sum1 = Sum1 + A(1,j)*X(j) Next j X(N) = (B(1) Sum1)/A(1,N) For i = N-1 To K+1 Step -1 Sum2 = 0.0 For j = N To i+1 Step-1 Sum2 = Sum2 + A(N-i+1,j)*X(j) Next j X(i) = (B(N-i+1) Sum1 Sum2)/A(N-i+1,i) Netx i X(1) = B(N)/A(N,1) FOR i = 2 To K S = 0.0 : P = N i +1 FOR j = 1 To i-1 S = S + A(P,j)*X(j) NEXT j X(i) = (B(P) - S)/A(P,i) NEXT i Sum1 = 0.0 For J = 1 To K Sum1 = Sum1 + A(1,j)*X(j) Next j X(N) = (B(1) Sum1)/A(1,N) For i = N-1 To K+1 Step -1 Sum2 = 0.0 For j = N To i+1 Step-1 Sum2 = Sum2 + A(N-i+1,j)*X(j) Next j X(i) = (B(N-i+1) Sum1 Sum2)/A(N-i+1,i) Next i Figura 11.27 Algoritmo que implementa el clculo de los valores Xn hasta Xk+1 del vector solucin X(). Dicho vector corresponde al sistema mostrado en la figura 11.25. Con los programas de las figuras 11.26 y 11.27 se estructura un procedimiento integrado que permite calcular todos los elementos del vector solucin X(). En la figura 11.28 se muestra dicha integracin, en la cual primero aparece el programa que calcula los valores de X1 hasta Xk, y luego el programa que calcula los valores de Xn-1 hasta Xk+1.

Figura 11.28 Algoritmo que integra el clculo de los valores X1 hasta Xn del vector solucin X(). Dicho vector corresponde al sistema mostrado en la figura 11.25. En froma similar es posible resolver cualquier modelo especializado de ecuaciones lineales de los presentados en la tabla 11.1. Una variante de la ecuacin 11.10 es la presentada a continuacin.

X ni =

K N i +1 , i = 1, K bi+1 ai+1, j X j ai+1, j X j ai+1,ni j =1 j=N (11.10a)

Esta frmula se puede emplear en lugar de la frmula 7.13.10, para lograr los algoritmos de las figuras 7.13.27 o 7.13.28.

Para probar el algoritmo que calcula todo los elementos del vector solucin X(), correspondientes al sistema mostrado en la figura 11.25, se emplea un archivo de prueba mostrado en la figura 11.29. Dicho archivo de prueba se llama MSELS_2_5.txt y se encuentra en la carpeta ARCHIVOS_DATOS/ de la pgina web http://xue.unalmed.edu.co/~walvarem/APdocs .

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 75 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

11.4 PRCTICA #11 APLICACIONES DE ARREGLOS, SUBPROGRAMAS, ARCHIVOS, TDU, SELS


En la figura 11.29 se muestra el empleo de una matriz 10x10, 10 filas y 10 columnas, para probar los algoritmos de las figuras 11.27 y 11.28

Figura 11.29 Ejemplo ilustrativo de los resultados del algoritmo de las figuras 11.27 y 11.28.

11.5 ACTIVIDADES EXTRACLASE - TAREAS


Hacer un programa que, dados dos vectores ordenados ascendentemente Xn y Ym , cree un tercer vector Zn+m ordenado ascendentemente, empleando archivos y subprogramas. Por ejemplo: X = [9, 11, 18, 27, 78, 90] Xi < Xi+1, i = 1,,n-1 ; Y=[1, 3, 7, 41, 55, 87] Yj < Yj+1, j = 1,,m-1; Z=[1, 3, 7, 9, 11, 18, 27, 41, 55, 78, 87, 90] Zk < Zk+1, k = 1,,m+n. Hacer un programa que permita identificar si una matriz es identidad o no; empleando un subprograma. Resolver modelos especializados de los que aparecen en la tabla 11.1. Por ejemplo en la figura 11.30(a) se presenta un archivo de datos correspondiente al diagrama esquemtico de la figura 11.30(b). En el archivo de datos la ltima columna es el vector B(). Resolver para hallar el vector solucin X(). (a)

(b) Figura 11.30 Archivo de datos y esquema diagramtico para un sistema especializado de ecuaciones lineales simultneas.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 76 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU Ecuaciones Lineales Simultneas.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

SOLUCIN DE ECUACIONES LINEALES SIMULTNEAS / MTODO DE GAUSS-JORDAN


Evolution. Fuente: R.B. Muhama.( 2004,.http://www.cs.kent.edu/~rmuhamma/) Kent State

Clase #12
University,

Gauss, visto en la clase #11, pero aprovecha la relacin AX = b (12.1) para obtener la inversa de la matriz, A-1, mediante la cual es posible obtener el vector solucin X(), ya que de la ecuacin 12.1 se concluye que X = A-1b (12.2). En este captulo se plantean los siguientes objetivos: (i) Descripcin general mtodo de Gauss-Jordan; (ii) - Las dos fases del mtodo de Gauss-Jordan; (iii) - Sntesis del mtodo de Gauss-Jordan; (iv) los ejemplos y ejercicios de la prctica #12 ayudan a entender los temas de las secciones (i) a (iv); (v) las actividades extraclase y las tareas facilitan el refuerzo en el proceso de estudio y de aprendizaje de esta clase.

Otro mtodo directo para resolver Sistemas de Ecuaciones Lineales Simultneas es el denominado Mtodo de GaussJordan. Este mtodo se basa en el algoritmo estndar de

12.1 DESCRIPCIN GENERAL DEL MTODO GAUSS-JORDAN


En la figura 12.1 se esquematizan las dos fases1 constitutivas del Mtodo Gauss-Jordan. En la primera fase se conforma una matriz aumentada, y luego mediante el algoritmo de transformacin se obtiene la inversa de la matriz de coeficientes originales.

A-1

FIGURA 12.1 Esquema diagramtico de las dos fases del Mtodo de GaussJordan.

La matrzi ampliada se obtiene como se muestra en la figura 12.2. A la derecha de la matriz A(), de coeficientes originales se agrega una matriz identidad de orden NxN, de modo que la matriz ampliada, Amp(), queda de orden Nx2N, es decir de N filas y 2N columnas.

En general, los pasos del algoritmo Gauss-Jordan son: (1) - Ampliar la matriz Anxn asignndole a la derecha la matriz Inxn ; (2) - Realizar operaciones algebraicas elementales, correspondientes a transformaciones lineales, sobre la matriz ampliada, Amp(), de orden n x 2n, de tal manera que a la izquierda, donde estaban los elementos de la matriz A(), quede una matriz identidad Inxn ; de acuerdo con las leyes del lgebra Lineal2, las filas (ecuaciones) de un Sistema de Ecuaciones Lineales Simultneas puede multiplicarse por una constante sin alterar la solucin; adicionalmente, las filas (ecuaciones) pueden sumarse y sustraerse entre s; estas transformaciones lineales guan a cambiar la forma del sistema original de modo que la matriz de coeficientes, A(), tenga una estructura que permita obtener el vector solucin X(); (3) al efectuar las transformaciones lineales, entonces, a la derecha quedar (An,n)-1. El efecto general es que se obtienen ceros por arriba y por debajo de la diagonal principal de la matriz de cpeficientes originales, A, quedando a la vez- unos en su diagonal principal, con lo cual se puede emplear la ecuacin 12.2 para obtener los elementos del vector solucin X().

a11 a21 ... an1

a12 a22 ... an2

... a1n ... a2n ... ... ... ann

1 0 0 ... 0 0 1 0 ... 0 ... ... ... ... 0 0 0 ... 1

FIGURA 12.2 Diagrama esquemtico de la matriz ampliada, Amp(), con la cual se inician las transformaciones del Mtodo Gauss-Jordan.

0
1 2

Bauwens, Luc et al.: Direct Methods for Solving Linear Equations, Universit Catholique de Louvain CORE and Department of Economics, Belgium,, 2006. Wikibooks is a registered trademark of the Wikimedia Foundation, Inc., July 2006.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 77 Clase# 12.- Solucin de Ecuaciones Lineales Simultneas / Mtodo Gauss-Jordan.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

12.2 LAS DOS FASES

DEL MTODO GAUSS-JORDAN EN DETALLE

Al efectuarse las dos fases3 del Mtodo Gauss-Jordan lo que se hace- en realidad- es una doble triangulizacin. Los pasos son los siguientes4: (1) - Columna 1: obtener 1 en la posicin (1,1), es decir convertir el elemento a11 en un elemento unitario, para lo cual se divide cada elemento de la fila 1 por a11, as: (Fila 1) = (Fila 1) /a11, lo que implica a su vez- dividir todos los elementos de la fila 1, en la matriz ampliada Amp(), por a11 , o sea que: a1j = a1j / a11, para j = 1,2,..., 2n; esta es una instruccin de asignacin, desde el punto de vista del manejo interno de memoria. (2) - Columna 1: obtener 0 en la posicin (2,1), para lo cual a cada elemento de la fila 2, se le resta un mltiplo de la fila 1; el factor multiplicativo es a21 : (Fila 2) = (Fila 2) - (Fila 1)* a21 , es decir que se debe efectuar la siguiente instruccin de asignacin: a2j = a2j - a1j * a21, para j = 1,2, ..., 2n; (3) - Columna 1: obtener 0 en la posicin (i,1), lo cual implica que a cada elemento de la fila i-sima se le resta un mltiplo de la fila 1; el factor multiplicativo es ai1: (Fila i) = (Fila i) - (Fila 1)*ai1, para i = 2,3,...,n; es decir, que se ha de ejecutar la instruccin de asignacin aij = aij - a1j * ai1, para j = 1,2,..., 2n; el resultado parcial de las operaciones anteriores sobre la columna 1 se muestra en la figura 12.3; obsrvese, tambin, que la columna n+1 se ha transformado.

Una vez terminado el proceso con la columna 1, el algoritmo Gauss-Jordan contina con la columna 2 y efecta las siguientes transformaciones lineales sobre las filas de la matriz ampliada, Amp(): (4) - Columna 2: obtener 1 en la posicin (2,2), para la fila 2, la transformacin lineal consiste en dividir todos los elementos de la fila por el elemento a22, as: (Fila 2) = (Fila 2) /a22 , de modo que desde el punto de vista algortmico- se ejecuta la siguiente instruccin de asignacin de memoria: a2j = a2j / a22, para j= 1,2,.., 2n; (5) - Columna 2: obtener 0 en la posicin (1,2), para lo cual la fila 1 se transforma as: (Fila 1) = (Fila 1) - (Fila 2)*a12, es decir que se deber de ejecutar la siguiente instruccin asignacin: a1j = a1j - a2j* a12 para j = 1,2,..., 2n; (6) - Columna 2: obtener 0 en la posicin (i,2), lo cual para la fila i-sima, la transformacin es: (Fila i) = (Fila i) - (Fila 2)*ai2, para i = 1,3,4,...,n, es decir que se ejecuta la instruccin de asignacin siguiente: ai2 = ai2 - a2j* ai2 para j = 1,2,..., 2n; y el resultado parcial de las operaciones anteriores sobre la columna 1 se muestra en la figura 12.4; obsrvese, tambin, que la columna n+2 se ha transformado.

1 a12 ... 0 a22 ... ... ... ... 0 an2 ...

a1n a2n ... ann

a1 n+1 0 0 ... a2 n+1 1 0 ... ... ... .. ... an n+1 0 0 ...

0 0 .. 1

FIGURA 12.3 Diagrama esquemtico de las operaciones de transformacin lineal efectuadas en la columna 1, en el Mtodo de Gauss-Jordan.

(7) - Columna k: obtener 1 en la posicin (k,k): en la fila k-sima, la transformacin es as: (Fila k) = (Fila k) /akk , es decir, que se ha de ejecutar la siguiente instruccin de asignacin de memoria : akj = akj / akk , para j = 1,2,.., 2n; (8) - Columna k: obtener 0 en la posicin (1,k): para la fila 1 se opera as: (Fila 1) = (Fila 1) - (Fila k)*a1k , es decir, que se ha de ejecutar la instruccin de asignacin siguiente: a1j = a1j akj*a1k, para j = 1,2,..., 2n; (9) Columna k: obtener 0 en la posicin (i,k): En la fila i-sima se opera as: (Fila i) = (Fila i) - (Fila k)*aik, para i = 1,2,...,n, es decir, que se ejecuta la siguiente instruccin de asignacin de memoria: aij = aij akj * aik, para j = 1,2,.., 2n (i k). Ahora, el efecto para la columna k-sima se esquematiza en la figura 12.5 0
3

1 0 ... a1n a1 n+1 a1 n+2 0 ... 0 0 1 ... a2n a2 n+1 a1 n+2 0 ... 0 ................................................ 0 0 ... ann an n+1 a1 n+2 0 ... 1

FIGURA 12.4 Diagrama esquemtico de las operaciones de transformacin lineal efectuadas en la columna 2, en el Mtodo de Gauss-Jordan.

Fox, Geoffrey C.; Williams, Roy D.; Messina, Paul C.: Parallel Computing Works, Caltech Concurrent Computation Program, Pasadena, Califonia, Morgan Kaufmann Publishers, Inc. 1995, ISBN 1-55860-253-4. 4 Numerical Methods Applied to Chemical Engineering, Fall 2005, MitOpenCourseWare, (http://web.mit.edu/ocw/)..

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 78 Clase# 12.- Solucin de Ecuaciones Lineales Simultneas / Mtodo Gauss-Jordan.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

En general: los significados de los ndices utilizados son los siguientes: (i) ndice k : columna donde se va a obtener 1 en el elemento de la diagonal principal y ceros en el resto de la columna respectiva; (ii) ndice i : fila que se est transformando, y que se recorre desde la columna 1 hasta la columna 2n; (iii) ndice j : elemento que se est transformando (este ndice recorre cada fila desde la columna 1 hasta la columna 2n). La figura 12.6 esquematiza los ndices empleados.

1 0 ... 0 a1n a1 n+1 a1 n+2 a1 n+k ... 0 0 1 ... 0 a2n a2 n+1 a1 n+2 a2 n+k ... 0 ................................................ 0 1 ... 1 akn ak n+1 ak n+2 ak n+k ... 0 ................................................ 0 0 ... 0 ann an n+1 an n+2 an n+k ... 1

FIGURA 12.5 Diagrama esquemtico de las operaciones de transformacin lineal efectuadas en la columna k, en el Mtodo de Gauss-Jordan.

J = 1, 2n k
FIGURA 12.6 Esquema de los ndices y sus recorridos en los procesos implicados en el algoritmo GaussJordan. Al recorrer cada fila, se hace la transformacin lineal respectiva si se cumple que i k, ya que el elemento para el cual i = k, elemento de la diagonal principal, ya se ha transformado vonvirtindolo en 1, por lo cual ya no es necesario transformarlo. Aunque el Mtodo Gauss-Jordan es fcil de implementar, el nmero de operaciones es ligeramente superior al del Mtodo Gauss estndar. En general, se puede demostrar que el Mtodo Gauss-Jordan requiere aproximadamente (N3 + N2) operaciones5.

0 i = 1, n 1 0

Columna pivote

12.3 SNTESIS

DEL MTODO GAUSS-JORDAN

En resumen, las operaciones que se efectan en el Mtodo Gauss-Jordan son las siguientes: (i) - En la columna k la transformacin es as: (Fila k) = (Fila k) /akk , para k = 1,2,..,n; y en la fila i-sima: (Fila i) = (Fila i) - (Fila k)*aik, para el ndice i = 1,2,...,2n; con i k. (ii) - Es decir, que los elementos individuales se obtienen de la siguiente forma, ejecutante las respectivas instrucciones de asignacin: akj = akj / akk, i = 1,2,.., n; aij = aij - aik*akj , j = 1,2,.., 2n; (i k), para k = 1,2,.., n. Con las dos fases se obtiene la matriz ampliada transformada, de orden n x 2n, con la matriz In,n a la izquierda, y la matriz (An,n)-1 a la derecha, como se muestra a continuacin en la figura 12.7.

1 0 0 ... 0 a1,n+1 a1,n+2 ... a1,2n 0 1 0 ... 0 a2,n+1 a2,n+2 ... a2,2n ................... ................................ 0 0 0 ... 1 an,n+1 an,n+2 ... an,2n
Esta es la matriz inversa

FIGURA 12.7 Esquema diagramtico de la matriz ampliada trasnformada al culminar las dos fases del Mtodo Gauss-Jordan. Una vez obtenida la matriz inversa, A-1, entonces es posible realizar la ecuacin matricial X = A-1b para obtener el vector solucin X(). Un algoritmo para el Mtodo gauss-Jordan se muestra en la figura 12.8.

0
5

Jahn, Stefan; Margraf, Michael; Habchi, Vincent; Jacob, Raimund: Technical Papers, Free Software Foundation, 2005.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 79 Clase# 12.- Solucin de Ecuaciones Lineales Simultneas / Mtodo Gauss-Jordan.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ For k = 1 to N Factor = Amp(k,k) For j = 1 to 2N Amp(k,j) = Amp(k,j)/Factor Next j For i = 1 to n Factor = Amp(i,k) If(i <> k)Then For j = 1 To 2*N Amp(i,j) = Amp(i,j) Amp(k,j)*Factor Next j End If Next i Next k FIGURA 12.8 Parte nuclear del algoritmo para el Mtodo Gauss-Jordan que resuelve un Sistema de Ecuaciones Lineales Simultneas. En la figura 12.9 se ilustra los resultados de un proyecto Visual Basic que implementa los diferentes procesos del Mtodo Gauss-Jordan. Se emplea una matriz de 5 x 5; y en el mismo archivo de datos se leen los coeficientes de la matriz A() y los elementos del vector B().

FIGURA 12.9 Resultados de un proyecto que implementa el Mtodo Gauss-Jordan para resolver un Sistema de Ecuaciones Lineales Simultneas. __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 80 Clase# 12.- Solucin de Ecuaciones Lineales Simultneas / Mtodo Gauss-Jordan.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

12.3 LA PRCTICA #12 MTODO DE GAUSS-JORDAN


FIGURA 12.9 Interfaz grfica de usuario para un proyecto que implementa el Mtodo Gauss-Jordan. Implementar los diferentes procesos mostrados para el Mtodo Guass-Jordan: (i) - formar la matriz ampliada Amp(); (ii) transformar la matriz ampliada segn el algoritmo de la figura 12.8; (iii) extraer la matriz inversa, A-1; (iv) obtener el vector solucin, X(), realizando la multiplicacin X = A-1b.

Un archivo de datos de ejemplo es el que se muestra en la figura 12.10; en dicho archivo se han grabado los coeficientes de la matriz original, A(), y los elementos del vector de trminos independientes, B(); en cada registro, o lnea de datos, el ltimo dato es un elemento del vector B(). FIGURA 12.10 Ejemplo de un archivo de datos para una matriz A() de 20 x 20.

Para efectos de visualizacin del archivo en este documento, se ha disminuido la ventana del editor de textos WordPad; por eso cada registro (cada fila) de la matriz se despliega en cuatro filas; por ejemplo, los primeros cuatro renglones en esta figura corresponden a la primera fila de la matriz; en la quinta fila aparece el primer elemento del vector B().

12.4 ACTIVIDADES EXTRACLASE - TAREAS


Ejecutar el proyecto anterior con diferentes archivos de datos (matrices de 10 x 10, 30 x 30, etc.) que se pueden descargar de la pgina Web http://xue.unalmed.edu.co/~walvarem/Apdocs/ARCHIVOS_DATOS/. Investigar qu pasa si Amp(k,k) = 0, para cierto paso del proceso iterativo en el Mtodo Gauss-Jordan; qu implicaciones tiene este hecho en la obtencin de la solucin; cules son las diversas estrategias que abordan este problema; cmo se implementan dichas estrategias. Es posible realizar el algoritmo de Gauss-Jordan empezando la iteracin con la columna ensima (k = N), y efectuando las transformaciones de filas con j = 2N, 1? Si es as, implemente el algoritmo en cuestin, ampliando por ejemplo- el proyecto cuya interfaz se muestra en la figura 12.9, crando una opcin adicional en el men tipo barra. Consulte alguna de las siguientes referencias: (i) Chapra, Steven C. And Canale, Raymond P.: Numerical Methods for Engineers, chapter 9; (ii) Mathews, John, H.: Numerical Mtehods for Mathematics, Science and Engineering, chapter 3; (iii) Gerald, Curtis F. And Wheatley, Patrick O.: Applied Numerical Methods, chapter 2, (iv) Alvarez-Montoya, William: Mtodos Numricos y Programacin, 2007, captulo 8 (este captulo es un archivo en formato PDF que se puede descargar de la pgina web: http://xue.unalmed.edu.co/~walvarem/); (v) OHare, Anthony: Numerical Methods for Physicists , 2005, chapter 7.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 81 Clase# 12.- Solucin de Ecuaciones Lineales Simultneas / Mtodo Gauss-Jordan.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

SOLUCIN DE ECUACIONES LINEALES SIMULTNEAS / MTODOS ITERATIVOS: JACOBI, GAUSS-SEIDEL


Evolution. Fuente: R.B. Muhama.( 2004,.http://www.cs.kent.edu/~rmuhamma/) Kent State

Clase #13
University,

Adems de los Mtodos Directos para resolver un Sistema de Ecuaciones Lineales Simultneas, existen los Mtodos Iterativos cuya caracterstica principal es que parten de una solucin supuesta, u obtenida por otros mtodos, y obtienen una solucin mejorada segn cierto criterio estipulado de tolerancia numrica (precisin). El mecanismo general mediante el cual los Mtodos Iterativos realizan su funcionalidad se basa en operaciones repetidas de clculo, calculando una solucin y probando si ya se lleg al nivel de precisin estipulado1. El problema principal de los Mtodos Iterativos es que no siempre hay convergencia a una solucin mejorada, o la convergencia se hace muy lentamente2. Esto es especialmente cierto cuando se trata de grandes sistemas. Para tener una idea de lo que significa grandes sistemas, obsrvese la figura 13.1, que muestra a grandes rasgos la magnitud de problemas que es preciso resolver, en trminos del nmero de incgnitas (m) de un SELS, de los requerimientos de memoria (en funcin de octetos), y del orden de magnitud en nmero de operaciones que implican los algoritmos3. FIGURA 13.1 Un esquema de la magnitud de los problemas representados con SELS. Esta tabla muestra que en unos 60 aos la complejidad de los problemas, en nmero de operaciones, ha crecido constantemente; lo mismo las necesidades de almacenamiento. Esto ha implicado el tener que disponer de mejores mquinas de cmputo y de algoritmos ms eficientes. Son muy variados los Mtodos Iterativos que se han ideado y que se aplican a problemas prcticos en reas tcnicas y de ingenieras, y es imposible cubrirlos todos en el mbito de este captulo; el listado que a continuacin se presenta se ha elegido teniendo en cuenta el estado del arte en el tema y la ejemplificacin del desarrollo histrico de estos mtodos, especialmente en la solucin de grandes sistemas de ecuaciones lineales simultneas; los mtodos son4: (1) Mtodo de Jacobi; (2) Mtodo de Gauss-Seidel; (3) SobreRelajacin Sucesiva (SOR); (4) SobreRelajacin Sucesiva Simtrica (SSOR); (5) Gradiente Conjugado (CG); (6) Minimo Residual (MINRES) y LQ Simtrico (SYMLQ); (7) Gradientes Conjugados y Ecuaciones Normales (CGNE y CGNR); (8) Minimo Residuo Generalizado (GMRES); (9) Gradiente Biconjugado (BiCG); (10) Cuasi-Mnimo Residuo (QMR); (11) Gradiente Conjugado Cuadrado (CGS); (12) Gradiente Biconjugado Estabilizado (Bi-CGSTAB); (13) Iteracin de Chebyshev. En detalle se estudiarn los algoritmos del Mtodo de Jacobi y el correspondiente al Mtodo de Gauss-Seidel; de los dems mtodos se har una breve descripcin. 0
1

Hefferon, Jim: Linear Algebra, chapter one: Chapter OneLinear Systems, Mathematics, Saint Michaels College, Colchester, Vermont, USA, May 2006, http://joshua.smcvt.edu. // William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery: Numerical Recipes in C, The Art of Scientific Computing, Second Edition, Chapter 2: Solution of Linear Algebraic Equations, CAMBRIDGE UNIVERSITY PRESS, Williamstown Road, Port Melbourne, VIC, Australia, 2002. 2 Saad, Yousef: Iterative Methods for Sparce Linear Systems, University of Minnesota, January, 2000. // Burden, Richard L. and Faires, J. Douglas: Numerical Analysis, YOUNGSTOWN STATE UNIVERSITY, 2005. // Murty, Katta G.: Linear equations, Inequalities, Linear Programs (LP), and a New Efficient Algorithm, Department of Industrial and Operations Engineering, University of Michigan, March 2006. 3 Byers, Ralph: A Gentle Introduction to Krylov Subspaces Methods and Preconditioning, University of Kansas, 2000. 4 Richard Barrett, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijkhout, Roldan Pozo, Charles Romine and Henk Van der Vorst :Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, Electronic version of the 2nd edition, available for sale from SIAM, siam.org/books, Last updated August 2006.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 82 Clase# 13.- Solucin de Ecuaciones Lineales Simultneas / Mtodos de Jacobi y Gauss-Seidel.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ En este captulo se plantean los siguientes objetivos: (i) Descripcin general y algoritmo del Mtodo de Jacobi; (ii) - Descripcin general y algoritmo del mtodo de Gauss-Seidel; (iii) los ejemplos y ejercicios de la prctica #13 ayudan a entender los temas de las secciones (i) y (ii); (iv) las actividades extraclase y las tareas facilitan el refuerzo en el proceso de estudio y de aprendizaje de esta clase.

13.1 EL MTODO DE JACOBI


El Mtodo de Jacobi, para resolver un Sistema de Ecuaciones Lineales Simultneas, parte de la representacin5 de cada elemento, Xi, del vector solucin, X(), segn se muestra en la figura 13.2, en la cual se despeja de cada ecuacin i la variable Xi (i = 1,,n).

X1 =

1 (b1 a12X2 a13X3 ... aij X j ... a1nXn ) a11 1 (bi ai1X1 ai2X2 ... ai,i1Xi1 ai,i+1 X i+1 ... ai,n1Xn1 ainXn ) aii 1 (bn an1X1 an2X2 aij X j ... an,n1Xn1 ) ann

FIGURA 13.2 Representacin de cada variable Xi utilizada por el mtodo iterativo de Jacobi.

.......... ..... Xi =
En general, la ecuacin genrica para Xi es as:
Xi = 1 a ii
n bi aij X j , i = 1,2,..., n j =1( j i )

.......... ....... Xn =

(13.1)

Con base a la ecuacin 13.1 se elabora el

algoritmo del Mtodo Iterativo de Jacobi.

DESCRIPCIN DEL MTODO DE JACOBI


El Mtodo Iterativo de Jacobi puede describirse por los siguientes pasos: 1. Establecer un nivel de precisin . 2. Suponer un vector solucin inicial XIn para el sistema de ecuaciones. 3. Reemplazar XIn en el lado derecho de las ecuaciones 13.2 y asignar los resultados a un nuevo vector XF, as: Conocido XI reemplazarlo en las siguientes ecuaciones y obtener XF

bi i ( i = 1 , 2 ,..., n ) XF = 1 a ii

j =1 ( j i )

ij

XI

(13.2)

4. Calcular la diferencia entre la solucin inicial XI y la solucin final XF: ||XI XF|| (esta es la norma de la diferencia entre los dos vectores. 4.1 Si esta diferencia es menor o igual que el nivel de precisin , entonces el vector solucin del sistema es XF. 4.2 De lo contrario, se reemplaza XI por XF, y con estos nuevos valores realizamos los clculos del paso 2. XI(i) = XF(i), para todo i=1,,n. EJEMPLO: Dado el sistema de ecuaciones, mostrado en la figura 13,3 calcular su solucin por el mtodo de Jacobi: 4X1 + 2X2 + 0X3 = 2 2X1 + 10X2 + X3 = 6 0X1 + 4X2 + 7X3 = 5 FIGURA 13.3 Un SELS de ejemplo.

Se toma como solucin inicial XI = [0,0,0] y = 0.001. Otra solucin inicial podra obtenerse utilizando la eliminacin Gaussiana. A partir de ah, se aplicara el mtodo de Jacobi para mejorar dicha solucin inicial. Se despeja de cada ecuacin i, la variable Xi: (1) - XF1 = ( 2 - 2XI2 - 0XI3 )/4; (2) - XF2 = ( 6 - 2XI1 - XI3 ) /10; (3) - XF3 = ( 5 - 0XI1 - 4*XI2)/7 Se toma el vector inicial XI y se remplaza en las ecuaciones 1, 2 y 3, y as se obtiene

0
5

Strong, David M.: Iterative Methods for Solving Ax = b, Journal of Online Mathematics and its Applications, July 2005.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 83 Clase# 13.- Solucin de Ecuaciones Lineales Simultneas / Mtodos de Jacobi y Gauss-Seidel.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ una segunda mejor aproximacin de la solucin XF. PRIMERA ITERACIN: XF1 = ( 2 - 2XI2 - 0XI3 )/4; XF2 = ( 6 - 2XI1- XI3 ) /10; XF3 = ( 5 - 0XI1 - 4XI2 )/7; efectuando las respectivas operaciones aritmticas: XF1 = ( 2 - 0 - 0 )/4 = ; XF2 = ( 6 - 2*0 - 0) /10 =6/10; XF3 = ( 5 - 0- 4*0)/7 = 5/7; Con lo cual el vector Xf es as: XF = [1/2, 6/10, 5/7]; CLCULO DEL ERROR: Error = [(1/2-0)2 + (6/10-0)2 + (5/7-0)2]1/2; Error = 1.058; Como Error > = 0.001 se contina iterando. Se reemplazan los valores de XI por los de XF, y se calcula nuevamente XF. SEGUNDA ITERACIN: La iteracin 2 se hace remplazando el nuevo vector XI que ahora es: XI = [1/2, 6/10, 5/7], en el conjunto de ecuaciones 1, 2, 3. TERCERA ITERACIN: XF1 = ( 1 - XI2 - 0XI3 )/2; XF2 = ( 6 - 2*XI1 - XI3) /10; XF3 = ( 5 - 0XI1 - 4*XI2)/7; que al efectuar las operaciones aritmticas se llega a: XF1 = ( 1 6/10 )/2 = 0.0083; XF2 = ( 6 - 2*1/2 5/7) /10 =0.4286; XF3 = ( 5 4*6/10)/7 = 0.3714; con lo cual el nuevo vector XF es: XF = [0.0083, 0.4286, 0.3714 ]; CLCULO DE ERROR: Error = [(0.0083 0.5)2 + (0.4286 0.6)2 + (0.3714 - 0.7143)2]1/2; Si Error > = 0.001 se contina iterando. ITERACIONES SUBSIGUIENTES: La iteracin 3 se hace remplazando los valores del vector XI por los del ltimo vector XF conseguido, en el conjunto de ecuaciones 1, 2, 3. As se continua hasta que el Error cometido sea menor a 0.001. Entonces la solucin ser el ltimo vector calculado XF
En la figura 13.4 se presenta un algoritmo representado con la sintaxis del lenguaje de programacin. Tambin muestra una interfaz diseada en el entorno de programacin Visual Basic. Do For i = 1 To N S = 0.0 For j = 1 To N If (i <> j) Then S = S + A(i, j) * XI(j) Next j XF(i) = (B(i) - S) / A(i, i) Next i '** Clculo del error en la iteracin ** ERROR = 0 For i = 1 To N ERROR = ERROR + (XI(i) - XF(i)) ^ 2 Next i ERROR = Sqr(ERROR) '** Preparacin del vector XI para la prxima iteracin en caso de no haber alcanzado todava la convergencia For i = 1 To N XI(i) = XF(i) Next i Loop While (ERROR > Epsilon) FIGURA 13.4 Un algoritmo para el Mtodo Iterativo de Jacobi, utilizando como representacin la sintaxis del lenguaje de programacin.

Una interfaz diseada contiene un men tipo barra. Un men tipo barra se disea con el Editor de Men, que es una herramienta disponible en el entorno de diseo de aplicaciones de Visual Basic.

13.2 EL MTODO ITERATIVO DE GAUSS-SEIDEL


El Mtodo Gauss-Seidel6 parte de una solucin inicial y calcula una nueva solucin. Para cada ecuacin se emplea la representacin mostrada en la figuras 13.5(a) hasta 13.5(g); la frmula 13.5(h) es la expresin genrica para calcular cada elemento Xi del vector solucin X(); este mtodo utiliza inmediatamente las Xi que va calculando.

0
6

Dixon, Robert: The Gauss-Seidel Method, Department of Economics at the University of Melbourne, 2005. // Markanda, Rai K.: Matlab and Linear Systems, Department of Mathematics and Natural Sciences, Northern State University, Aberdeen, SD, 2000.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 84 Clase# 13.- Solucin de Ecuaciones Lineales Simultneas / Mtodos de Jacobi y Gauss-Seidel.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

b1 a1 j x j x1 =
(a)
n

j =1 j 1

a11

x2 =

b2 a2 j x j a21 x1
j =3

x3 =

b3 a3 j x j (a31 x1 + a32 x2 )
j =4

(b)

a22
n

(c)

a33

x4 =

b4 a4 j x j (a41 x1 + a42 x2 + a43 x3 )


j =5

(d)
n

a44
n i 1

x5 =

b5 a5 j x j (a51 x1 + a52 x2 + a53 x3 + a54 x4 )


j =6

(e)

a44
n

xn 1 =

bn 1 an 1 j x j aik xk
j =n k =1

bn anj x j xn =
(g)
j =1 jn

bi aij x j xi =
(h)
j =1 j i

an 1,n 1
(f)

ann

aii

, i = 1,2, K , n.

FIGURA 13.5 (a) hasta (g) es la representacin de cada elemento Xi utilizada en el Mtodo Gauss-Seidel; (h) - frmula genrica; estas fromulas son la base para el algoritmo mostrado en la figura 13.6. En la figura 13.6 se visualiza un algoritmo representado utilizando la sintaxis del lenguaje de programacin; tambin se muestra una interfaz efectuada en Visual Basic con los resultados obtenidos. '... Mtodo de Gauss-Seidel (a) ReDim XGJ(N) : nIter = 0 For i = 1 To N XGJ(i) = X(i) .. X(i) se hall por Gauss Next i Do Suma = 0# : gjError = 0.0 : nIter = nIter + 1 For j = 2 To N Suma = Suma + A(1, j) * XGJ(j) Next j XGJ(1) = (B(1) - Suma) / A(1, 1) gjError = gjError + (XGJ(1)-X(1))^2 X(1) = XGJ(1) For i = 2 To N Sum1 = 0# : Sum2 = 0# For j = i + 1 To N Sum1 = Sum1 + A(i, j) * XGJ(j) Next j For k = 1 To i - 1 Sum2 = Sum2 + A(i, k) * XGJ(k) Next k XGJ(i) = (B(i) - Sum1 - Sum2) / A(i, i) gjError = gjError + (XGJ(i)-X(i))^2 X(i) = XGJ(i) Next i gjError = sqr(gjError) Loop Until (gjError <= Epsilon Or nIter >= 100) FIGURA 13.6 Un algoritmo en Visual Basic para el Mtodo Iterativo de Gauss-Seidel, utilizando las frmulas de la figura 13.5.

(b)

(c)

Para el ejemplo tratado, el Mtodo Iterativo de Gauss-Seidel no converge, o lo est haciendo muy lentamente, pues en 100 iteraciones el error no disminuye y los valores de Xi han aumentado excesivamente.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 85 Clase# 13.- Solucin de Ecuaciones Lineales Simultneas / Mtodos de Jacobi y Gauss-Seidel.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

13.3 LA PRCTICA #13 MTODOS DE JACOBI Y DE GAUSS-SEIDEL


En la figura 13.7(a) se muestra la interfaz de un proyecto elaborado en Visual Basic para implementar los algoritmos de los mtodos iterativos de Jacobi y de Gauss-Seidel; en la figura 13.7(b) se ejemplifica la estructura del archivo empleado que incluye tanto los coeficientes de la matriz A() original como los elementos del vector de trminos independientes, B(), que se digita en la ltima columna de cada registro; la matriz A() es de orden 10 x 10. FIGURA 13.7 (a) - Interfaz diseada en Visual Basic; (b) la estructura del archivo de datos empleado. (b) (a)

Para el proyecto correspondiente a esta interfaz implementar los algoritmos de los mtodos de Jacobi y de Gauss-Seidel para resolver un SELS. En el diseo de la interfaz emplee un men tipo barra y formularios MDI y SDI.

13.4 ACTIVIDADES EXTRACLASE - TAREAS


Emplear archivos de datos, como el SELS1.txt o SELS2.txt, que se pueden descargar de la pgina web http://xue.unalmed.edu.co/~walvarem/Apdocs/ARCHIVOS_DATOS/, para probar el proyecto diseado como se muestra en la figura 13.7 Consulte alguna de las siguientes referencias: (i) Chapra, Steven C. And Canale, Raymond P.: Numerical Methods for Engineers, chapter 9; (ii) Mathews, John, H.: Numerical Mtehods for Mathematics, Science and Engineering, chapter 3; (iii) Gerald, Curtis F. And Wheatley, Patrick O.: Applied Numerical Methods, chapter 2, (iv) Alvarez-Montoya, William: Mtodos Numricos y Programacin, 2007, captulo 8 (este captulo es un archivo en formato PDF que se puede descargar de la pgina web: http://xue.unalmed.edu.co/~walvarem/); (v) OHare, Anthony: Numerical Methods for Physicists , 2005, chapter 7; (vi) - Richard Barrett, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijkhout, Roldan Pozo, Charles Romine and Henk Van der Vorst :Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, Electronic version of the 2nd edition, available for sale from SIAM, siam.org/books, Last updated August 2006. Emplee las referencias sugeridas para describir cada uno de los siguientes mtodos iterativos; desarrolle el algoritmo correspondiente de uno de ellos y prubelo mediante un proyecto Visual Basic: (1) - SobreRelajacin Sucesiva (SOR); (2) SobreRelajacin Sucesiva Simtrica (SSOR); (3) Gradiente Conjugado (CG); (4) Minimo Residual (MINRES) y LQ Simtrico (SYMLQ); (5) Gradientes Conjugados y Ecuaciones Normales (CGNE y CGNR); (6) Minimo Residuo Generalizado (GMRES); (7) Gradiente Biconjugado (BiCG); (8) Cuasi-Mnimo Residuo (QMR); (9) Gradiente Conjugado Cuadrado (CGS); (10) Gradiente Biconjugado Estabilizado (Bi-CGSTAB); (11) Iteracin de Chebyshev. Existirn otros mtodos iterativos, adems de los enunciados previamente? Si s as, cules son, en qu consisten, y cules son sus algoritmos? (encuentre por lo menos tres mtodos adicionales).

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 86 Clase# 13.- Solucin de Ecuaciones Lineales Simultneas / Mtodos de Jacobi y Gauss-Seidel.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

AJUSTE DE CURVAS POR EL MTODO DE LOS MNIMOS CUADRADOS


Evolution. Fuente: R.B. Muhama.( 2004,.http://www.cs.kent.edu/~rmuhamma/) Kent State

Clase #14
University,

El mtodo de regresin de mnimos cuadrados consiste en encontrar la curva o funcin que mejor se ajuste a una serie de puntos (Xi,Yi), obtenidos generalmente a partir de un experimento. La estrategia consiste en minimizar las diferencias entre la funcin y los datos observados. El caso o ejemplo ms sencillo es el ajuste de una funcin lineal a la serie de puntos. En esta clase se pretende bsicamente Adquirir destrezas en el manejo y la implementacin del mtodo de regresin de mnimos cuadrados para ajuste de funciones a nubes de puntos (x,y); casos lineal y no-lineal. Los temas a tratar son: (i) Introduccin, bosquejo general del mtodo; (ii) tcnica de regresin lineal; (iii) tcnicas de regresin no-lineal; (iv) - los ejemplos y ejercicios de la prctica #13 ayudan a entender los temas de las secciones (i) a (iii); (iv) las actividades extraclase y las tareas facilitan el refuerzo en el proceso de estudio y de aprendizaje de esta clase.

14.1 INTRODUCCIN EL ANLISIS DE REGRESIN


FIGURA 14.1 Un ejemplo del anlisis de regresin mostrado grficamente. (Fuente: StatPoint, Inc., 2006).

El Anlisis de Regresin1 estima las relaciones entre una o ms variables de respuesta, denominadas tambin variables dependientes, variables explicadas, variables predictivas o regresandos), y usualmente denotadas por Y, y una o ms variables denominadas variables independientes, o predIctores, o variables explicativas, O variables de control, o regresores, y usualmente denotadas por X1,...,Xp). Los modelos de Regresin Multivariada contienen ms de una variable dependiente. En un modelo de regresin, los parmetros son las constantes que miden la magnitud de una regresin entre variables. El Anlisis de Regresin estima los valores de los parmetros. Los parmetros generalmente se denotan por medio de letras del alfabeto griego, como por ejemplo , , , , etc. El valor estimado de los parmetros de regresin, generalmente se denotan por letras romanas; estos estimados pueden utilizarse en clculos para probar la significancia estadstica2 de los parmetros estimados, o para determinar la bondad del ajuste entre las variables dependientes y las independientes. Los primeros modelos de regresin fueron los modelos de Regresin Lineal basados en el Mtodo de los Mnimos Cuadrados, publicado3 por Legendre en 1805, y por Gauss en 1809. En s mismo, el trmino Mnimos Cuadrados fue acuado por Legendre, en su expresin francesa moindres carrs. Sin embargo, Gauss proclamaba un conocimiento del mtodo desde el ao 1795. Legendre y Gauss aplicaron el mtodo al problema de determinar, a partir de observaciones astronmicas, las rbitas de los planetas y otros cuerpos siderales alrededor del Sol. Leonard Euler trabaj el mismo problema (1748) sin mayor xito. Gauss
1

Glover, Jenkins and Doney: Modeling Methods for Marine Science, September 21, 2006. // Simoncelli, Eero: Least Squares Optimization, Center for Neural Science, and Courant Institute of Mathematical Sciences, Last revised: 21 July 2003. // Dragalin, Vladimir and Fedorov, Valerii: The Total Least Squares Method in Individual Bioequivalence Evaluation, SmithKline Beecham Pharmaceuticals, Biostatistics and Data Sciences, South Collegeville Road, PA, USA, 1999. 2 Govaerts, B. and Prato, M. Key : The element of statistical learning, Institut de statistique UCL, chapter 3 : Linear models, 2000. // Lawson, Charles L. and Hanson, Richard J.:Solving Least Squares Problems,SIAM, 1995. // Statgraphics: Simple regression Analysis, 2006. 3 Baryamureeba, Venansius: Solution of Robust Linear regression Problems by Preconditioned Conjugate Gradient Type methods, University of Bergen, Norway, Sisth Copper Mountain Conference on Iterative Methods, 3-7 April 2000. // Linear regression, Linear least squares, Least-squares estimation of linear regression coefficients,Wikipedia, the free encyclopedia, February 2007.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 87 Clase# 14.-Ajuste de Curvas por el Mtodo de los Mnimos Cuadrados.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ public en 1821 un desarrollo ulterior de la teora de los mnimos cuadrados4, incluyendo una versin del ahora llamado Teorema Gauss-Markov. Este Teorema se denomina as en honor de Carl Friederich Gauss y Andrey Markov, quienes establecieron que en un modelo lineal, en el cual los errores tienen esperanza cero, y no estn correlacionados, y adems- poseen varianzas iguales, el mejor estimador lineal insesgado- de los coeficientes del modelo lineal, es el estimador de mnimos cuadrados. En forma ms general, el mejor estimados insesgado de cualquier combinacin lineal de los coeficientes de un modelo lineal, es el estimador de mnimos cuadrados. Esta teora, demostrada matemticamente, ha marcado el surgimiento, desarrollo y afianciamiento de una disciplina cimentada en un conjunto creciente de tcnicas de mnimos cuadrados con ingentes aplicaciones en casi cualquier rea del saber humano5. El trmino "reversin" fue utilizado en el siglo 19 para describir un fenmeno biolgico consistente en que la progenie (los hijos) de individuos excepcionales tienden, en promedio, a ser menos excepcionales que sus padres, y mucho ms como sus ancestros lejanos. Francis Galton estudi este fenmeno al cual le asign el trmino regresin a la mediocridad (padres de individuos excepcionales tienden a ser en promedio menos excepcionales que sus hijos). Para Galton, la regresin tena nicamanete este significado biolgico; sin embargo, el trabajo de Galton fue extendido (entre 1877 y 1885) por Udny Yule y Kart Pearson a un contexto estadstico ms general (en el periodo comprendido entre 1897 y 903). En el trabajo de Yule y Pearson, la distribucin conjunta de las variables de respuesta (dependientes) y las variables explicatorias (independientes) se assume del tipo Gaussiano. Este supuesto fue rebatido por R.A. Fisher, en su trabajo de 1922 y 1925; Fisher plante que la distribucin condicional de las variables dependientes es Gaussiana, pero que la distribucin conjunta no lo es; supuesto que est ms cercano a la formulacin de Gauss en 1821.

14.2 LA TCNICA DE REGRESIN LINEAL


Un Modelo de Regresin Lineal se formula como se ilustra en la figura 14.2, que muestra el ajuste de la nube de puntos a una lnea recta, definida por la ecuacin 14.1. FIGURA 14.2 Ajuste de una nube de puntos a una lnea recta definida por la ecuacin 13.1. 0 Y representa la variable dependiente; X representa a la variable independiente; A, B son los parmetros de regresin lineal; e representa las diferencias entre el modelo lineal y las observaciones.
(14.1)

Y = A + BX + e

Como los datos X, Y son conocidos, el objetivo es entonces encontrar los mejores valores para los coeficientes A, B, los parmetros de regresin, tales que e 0.

Los datos, la nube de puntos, pueden surgir de un experimento, o de otros clculos. El objetivo es minimizar el error que se presenta en la aproximacin, que es la distancia entre el valor real y el aproximado, como se esquematiza en la figura 14.3.

0
4 5

Bjrck, ke: Numerical Methods for Least Squares Problems, SIAM, 1996. Vase, por ejemplo: Dennis, John E., Jr.; Gay, David M.; Walsh, Roy E.: An Adaptive Nonlinear Least-Squares Algorithm, ACM Transactions on Mathematical Software (TOMS), Volume 7 , Issue 3 (September 1981), pp. Pages: 348 368. // WEDIN, P-A: The non-hnear least squares problem from a numerical point of view, I and II Comput Sci Tech Reps, Lund Umv, Lund, Sweden, 1972 and 1974. // Lee, HO Linda and DA MOTTA SINGER, Julio: Generalized least squares methods for bivariate poisson regression, Communications in statistics. Theory and methods (Commun. stat., Theory methods) , vol. 30, no2, 2001, pp. 263-277 ISSN 0361-0926. // Wikibooks, the open-content textbooks collection: Statistics:Numerical Methods/Quantile Regression, July 2006. // Czarna, Aleksandra; Sanjun, Rafael; Gonzlez-Candelas, Fernando; and Wrbel, Borys: Topology testing of phylogenies using least squares methods, BMC Evol Biol. 2006; 6: 105. // Fadili, M.J. and Bullmore, E.T.: Wavelet-generalized least squares: a new BLU estimator of linear regression models with 1/f errors, Centre for Speech and Language, University of Cambridge, United Kingdom, Neuroimage. 2002 Jan;15(1):217-32. // de Jong, Sijmen; Wise, Barry M.; Ricker, N. Lawrence : Canonical partial Least Squares and Continuum Power Regression, Journal of Chemometrics, Volume 15, Issue 2, Pages 85 100, John Wiley & Sons, Ltd., Nov 2000.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 88 Clase# 14.-Ajuste de Curvas por el Mtodo de los Mnimos Cuadrados.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

FIGURA 14.3 Esquema del error, e, en la aproximacin en un modelo de regresin lineal.

e
CRITERIO PARA EL MEJOR AJUSTE: Como se tiene una serie de n puntos (Xi, Yi) (i=1,,n), la acumulacin de los errores est dada por la ecuacin 14.2; y para que los valores de error positivos y negativos no se cancelen entre s, stos se deben elevar al cuadrado, como se ilustra en la ecuacin 14.3.

ei = (Yi A BX i )
i =1 i =1

S = e 2 i = (Yi A BX i ) 2
i =1 i =1

(14.3)

(14.2)

Como el objetivo es encontrar A y B, tal que S sea mnimo, para esto se deriva S parcialmente con respecto a A y B respectivamente y se igualan a cero las ecuaciones obtenidas. Derivar con respecto a A, permaneciendo B como constante; derivar con respecto a B, permaneciendo A como constante. Y Las derivadas parciales de S con respecto a A y a B se hacen cero, como se muestra en las ecuaciones 14.4 y 14.5. De la ecuacin 14.4 se tiene que: Yi A B X i = 0

S = 2 (Y A BX )( 1) = 0 A S = 2 (Y A BX )( X ) = 0 B
i

(14.4)

De la cual se puede despejar el coeficiente A, as:


A= 1 N

(14.5)

Y B N X
2

(14.6)

De la ecuacin 14.5 se puede escribir que:

XY
N

A X i B X i = 0

(14.7)

Con las ecuaciones 14.6 y 14.7, y reorganizando algebraicamente se llega obtener la ecuacin para el coeficiente B, as:

B=

(X
i =1 N i =1

&& && X&)(Yi Y&) ;

&& ( X i X&) 2

&& 1 X& = N

1 & X i ; Y&& = N i =1

Y
i =1

(14.8)

A = Y BX

Las ecuaciones 14.8 son la forma estndar de calcular los coeficientes de la regresin lineal, a partir d elos datos conocidos. LA BONDAD DEL AJUSTE: Para dar una idea de lo preciso que puede ser el ajuste lineal realizado, existe un indicador o coeficiente llamado coeficiente de correlacin lineal R, el cual se puede calcular segn la siguiente frmula:

R=

N N X iYi X i Yi (14.9) i =1 i =1 i =1 2 2 N N N 2 N 2 N X i X i N Yi Yi i =1 i =1 i =1 i =1
N

El coeficiente R, de la ecuacin 14.9, est en el intervalo: -1 R 1. Si R es cercano a 1, hay alta correlacin lineal, es decir que cuando X aumenta, Y aumenta. Si R es cercano a -1, se dice que hay alta correlacin lineal inversa, es decir que, cuando X aumenta Y disminuye. Si R = 0, se dice que no existe correlacin lineal entre los conjuntos de datos X , Y.

En la figura 14.4 se presenta una interfaz diseada en un proyecto Visual Basic que implementa el Mtodo de Mnimos Cuadrados para dos conjuntos de datos Xi, Yi. Igualmente, se muestra la estructura del archivo empleado, y los resultados obtenidos.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 89 Clase# 14.-Ajuste de Curvas por el Mtodo de los Mnimos Cuadrados.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

(b)

(a)

FIGURA 14.4 (a) Interfaz diseada en un proyecto Visual Basic que implementa el mtodode regresin lineal, (b) estructura del archivo empleado.

14.3 FRMULAS

DE REGRESIN NO-LINEAL

Hay problemas paran los cuales la relacin existente entre X y Y no es lineal, sin embargo sta puede ser descrita por algn otro tipo de funcin. Algunos ejemplos se muestran con las ecuaciones 14.10. Y en la figura 14.5 se ilustra una relacin no-lineal entre las variables.

Potencia : Y = AX B Exponencial : Y = Ae BX Logartmica : Y = A + BLog ( X ); Y = BLog ( X ) + Log ( A) Log e (Y ) = BX + Log e ( A) Polinmica : Y = A0 + A1 X + A2 X 2 + ... + AN X N Parablica : Y = A + BX + CX 2
(14.10)

FIGURA 14.5 Un ejemplo de relacin no-lineal entre los datos; podra emplearse una de las ecuaciones 14.10, como curva de regresin. Para cada una de las ecuaciones 14.10 puede deducirse las frmulas mediante las cuales se obtienen los parmetros de regresin. Las ecuaciones 14.11 ilustran los parmetros A, B, R para el caso de relacin no-lineal tipo potencia:= AX B Y
N N Log(Yi ) Log(Xi ) A = exp i=1 B i=1 N N

(14.11a)

B=

X N N Log( Xi ) Log(Yi ) N i=1 (Log( Xi ) * Log(Yi )) i=1 R= N i =1


Log( Xi ) Log( Xi )2 i=1 N i =1
N N 2

N N Log( Xi ) Log(Yi ) i=1 (Log(Xi )Log(Yi )) i=1 N i =1


N 2 2 N N Log( Xi ) N Log(Yi ) N Log(Y )2 i=1 Log( X )2 i=1 i i N N i =1 i =1

(14.11b)

(14.11c)
BX

Con las ecuaciones 14.12 se calculan los parmetros A, B, R de la relacin no-lineal tipo exponencial: Y = Ae __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 90 Clase# 14.-Ajuste de Curvas por el Mtodo de los Mnimos Cuadrados.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ Y las ecuaciones 14.13 permiten calcular los parmetros A, B, R en el caso logartmico:Y = A + BLog ( X )
N Log ( Y i ) B A = exp i = 1 N
N

i =1

Xi N

(14.12a)

A=
N

N 1 N Y i B Log ( X i ) N i =1 i =1

(14.13a)

B=

( X Log (Y ) ) N X Log (Y )
i =1 i i i =1 i

1 N Xi N Xi i =1 i =1
N 2

i =1 2

(14.12b)

B =

Y Log
i =1 i

i =1

N 1 N Log ( X i ) Y i N i =1 i =1 2 1 N 2 ( Log ( X i )) Log ( X i ) (14.13b) N i =1 (X i)

R =

N X i =1

i =1

N N ( X i ) Log ( Y i ) i =1 i =1 ( X i Log ( Y i )) N
N 2 N (X i) N Log ( Y i ) Log ( Y i ) 2 i = 1 N N i =1 2

2 i

i =1

(14.12c)

R=

Y Log( X ) N Log( X ) Y
i =1 i i i =1 i i =1

(14.13c)

2 2 N 2 1 N 1N Log( X i )2 Log( X i ) Yi Yi N i =1 N i =1 i =1

14.4 PRCTICA #14 ANLISIS DE REGRESIN


FIGURA 14.6 Un ejemplo de interfaz para implementar el anlisis de regresin, en un proyecto Visual Basic. Esta interfaz se disea empleando un formulario MDI y uno o ms formularios SDI. En el formulario MDI se disea un men tipo barra, para incluir las diferentes opciones relacionadas con el anlisis de regresin.

14.5 ACTIVIDADES EXTRACLASE - TAREAS


Ampliar la interfaz mostrada en la figura 14.6 con el fin de incluir opciones para las ecuaciones de regresin no-lineal correspondientes a las ecuaciones 14.12 y 14.13. Utilizar grupos extensos de datos (Xi,Yi) generados con la funcin RND. Consulte la siguiente referencia: Chapra, Steven C. And Canale, Raymond P.: Numerical Methods for Engineers, chapter 17. Ampliar y mejorar el proyecto Visual Basic presentado en la figura 14.6 para incluir una comparacin entre diferentes modelos de regresin para un mismo conjunto de datos. Cul modelo se adapta, o explica, mejor a los datos? Por qu? Escoja un rea tcnica de la carrera en la cual usted est inscrito. Recabe suficientes conjuntos de datos para aplicar modelos de regresin. Interprete los resultados. Lea - por lo menos - un artculo tcnico, relacionado con la aplicacin de los modelos de regresin en la solucin de problemas propios de alguna rea tcnica de su carrera.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 91 Clase# 14.-Ajuste de Curvas por el Mtodo de los Mnimos Cuadrados.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

ALGUNAS APLICACIONES ADICIONALES


Evolution. Fuente: R.B. Muhama.( 2004,.http://www.cs.kent.edu/~rmuhamma/) Kent State

Clase #15
University,

A manera de sntesis de las clases anteriores se presentarn algunos ejemplos con problemas especficos de aplicacin de la teora algortmica y de la sintaxis del lenguaje de programacin utilizado en este curso. En esta clase se pretende bsicamente el desarrollo de los siguientes temas: (i) Introduccin, bosquejo general del enfoque algortmico y sus aplicaciones; (ii) se enuncian y resuelven algunos problemas de aplicacin; (iii) - los ejemplos y ejercicios de la prctica #15 ayudan a entender los temas de las secciones (i) a (iii); (iv) las actividades extraclase y las tareas facilitan el refuerzo en el proceso de estudio y de aprendizaje de esta clase.

15.1 INTRODUCCIN EL ENFOQUE ALGORTMICO EN LA SOLUCIN DE PROBLEMAS


El enfoque algortmico aunado al enfoque ecuacional, e implementados por medio de computadores (hardware/software), ha permitido y facilitado desde mediados del siglo 20- abordar y resolver problemas complejos en reas tcnicas e ingenieras. A este respecto se dice que en las ltimas 6 dcadas se ha avanzado ms que en los ltimos 10 milenios, para dar a entender la velocidad y profundidad del cambio dramtico que se ha venido instalando en las culturas humanas, impulsado por los desarrollos y aplicaciones de las tecnologas computacionales en hardware y en software. Son muchos los enfoques y metodologas desarrollados para tratar de sistematizar el proceso de solucin de problemas que seguimos los humanos1. Uno de tales enfoques es TRIZ2 (pronunciado [triz]) que corresponde al acrnimo ruso de "Teoriya Resheniya Izobretatelskikh Zadatch" ( ), una Teora de la inventiva en la solucin de problemas, desarrollado por Genrich Altshuller y sus colegas desde 1946. TRIZ puede considerarse a la vez - como una herramienta metodolgica, una base de conocimientos, y una tecnologa basada en modelos para generar ideas innovativas en la solucin de problemas. TRIZ ya est implementado en software3, es un producto comercial, que suministra herramientas y mtodos para ser utilizados en el proceso de solucin de problemas: (i) identificacin y formulacin del problema, (ii) anlisis y diseo de una estrategia de solucin; (iii) anlisis de fallas, (iv) modelos de la evolucin del sistema. TRIZ, en contraste con otras tcnicas tales como tormenta de ideas (la cual se base en la generacin aleatoria de ideas), proporciona la logstica conceptual y metodolgica para crear un enfoque algortmico en la invencin de un nuevo sistema o en la mejora de un sistema existente. Y el enfoque algortmico est transformando las formas de pensar y de hacer, en especial en la solucin numrica de problemas, pues libera al humano del esfuerzo y tiempo necesitados en los clculos, permitiendo a las personas centrarse en los aspectos ms intrincados y complejos, con altos requerimientos de talentos tpicamente humanos (imaginacin, ideacin, perspicacia, intuicin, inventiva, inspiracin, inteleccin, chispazo creativo, envisionamiento, etc.) que implican la solucin de problema en ciencias e ingenieras. As mismo, propicia el libre y efectivo ejercicio de la inventiva4 en la solucin de problemas complejos. Los problemas que se presentan a continuacin slo son una mnima muestra de posibles aplicaciones tcnicas e ingenieriles, en las cuales el enfoque ecuacional conjuntamente con el enfoque algortmico, e implementados va computadores, facilitan los 0
1 2

Chandrasekaran, B.: Design Problem Solving: A Task Analysis, American Association for Artificial Intelligence., 1990. Wikipedia, the free encyclopedia: TRIZ,February 2007 // Altshuller, Genrich: And Suddenly the Inventor Appeared, translated by Lev Shulyak, Worcester, MA: Technical Innovation Center, 1994.

Hay numerosas implementaciones exitosas en software de TRIZ, que reducen el tiempo y el esfuerzo para resolver problemas innovativamente; tres de ellas son: (1) la desarrollada por Valery Tsourikov de The Invention Machine in Boston, Massachussets (http://www.invention-machine.com/); (2) - la otra es la desarrollada por Zlotin, Zusman and Malkin en Ideation International in Southfield, Michigan (http://www.ideationtriz.com/software.asp); (3) la desarrollada por Yevgeny Karasik de Thoughts Guiding Systems Corporation (http://www3.sympatico.ca/karasik/). 4 Schmitt, Otto H.: Biomimetics in Solving Engineering Problems, On April 26, 1982.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 92 Clase# 15.-Algunas aplicaciones adicionales.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ procesos de solucin de problemas, en especial los procesamientos de grandes volmenes de datos, el calcular intensivamente frmulas extensas y complejas, y las innumerables repeticiones que implican los algoritmos actuales. Los problemas presentados estn dirigidos a estudiantes de los primeros semestres de pregrado, en carreras de Ingeniera.

15.2 ALGUNOS EJEMPLOS DE APLICACIN


Es extremadamente extensa la gama de problemas que se han resuelto y que se pueden resolver- por medio de algoritmos en reas de matemticas, ciencias e ingenieras. En el apretado contexto de estas notas de clase se presentan los siguientes problemas: (1) Una esfera se sumerge hasta cierta profundidad en el agua; utilizando la tercera ley del movimiento, debida a Newton, y el principio de Arqumedes, mostrar cmo este problema se resuelve con una ecuacin no-lineal; (2) Uso de vectores, matrices, subprogramas, archivos, tipos de datos definidos por el usuario (TDU), en el problema de los insectos; (3) la ecuacin de estado de los gases5; (4) del texto de Chapra & Canale, captulo 12, solucin de un problema de estructuras que implica utilizar un sistema de ecuaciones lineales simultneas. EJEMPLO #1 ESFERA SUMERGIDA EN AGUA: Como se ilustra en la figura 15.1, una esfera de radio R se sumerge en agua hasta una altura X. Mediante la tercera ley del movimiento, debida a Newton, y el principio de Arqumedes6, mostrar cmo este problema se resuelve con una ecuacin no-lineal. FIGURA 15.1 Esfera de radio R sumergida en agua, hasta una altura X, para el ejemplo #2.(fuente: Holistic Numerical Mtehods Institute, http://numericalmethods.eng.usf.edu/) Segn la tercera ley de Newton sobre el movimiento, cada accin tiene una reaccin igual y opuesta. Para este caso, el peso de la esfera es balanceado por la fuerza de empuje ascensional del agua: PesoEsfera = Fuerza empuje ascensional (15.1). En la figura 15.2 se esquematiza la ecuacin 15.1. Ahora, el peso de la esfera est dado por: PesoEsfera = (VolumenEsfera)*(DensidadEsfera)*(AceleracinGravedad); esta relacin se expresa matemticamente en la ecuacin 15.2, en la cual las variables utilizadas tienen los siguientes significados: R = radio de la esfera (m); b = densidad de la esfera (kg/m3); g = aceleracin debida a la gravedad terrestre (m/s2). La ecuacin 15.3 es la relacin matemtica que expresa el empuje ascensional del agua.

x R w g (15.3) El empuje ascensional del agua est dado R ( b )( g ) (15.2 3 3 segn el principio de arquinedes: EmpujeAscensional = Peso del volumen de agua desplazado; es decir: EmpujeAscensional = (VolumenEsferaSumetgida)*(DnsidadAgua)*(AceleracinGravedad). Esta relacin en la ecuacin 15.3, en la cual las variables tienen los siguientes significados: X = profundidad de la esfera sumergida ( a prtir de la superficie); w = densidad del agua. Reemplazando las ecuaciones 15.2 y 15.3 en la 15.1 se obtiene la ecuacin 15.4; el tratamiento algebraico da que:
3 2

4 3 x R b g = x 2 R w g 3 3

4R3b 3x2 Rw + x3 w = 0
(15.4)

(15.5)

4 R 3 b 3 x 2 R + x 3 = 0

4R3

b 3x2R + x3 = 0 w

donde la gravedad especfica de la esfera, b, est dada por la

b =

Si se tiene que R = 5.5 cms = 0.055 m, y b= 0.6, entonces al reemplazar en la ecuacin 15.5 se tiene la ecuacin 15.6, que es una ecuacin no-lineal, cuya solucin por ejemplo- con el mtodo de Newton da el valor de X, la parte sumergida de la esfera. 4 2 3 4 ( 0 . 055 ) 3 ( 0 . 6 ) 3 x 2 ( 0 . 055 ) + x 3 = 0 (15.6) 3 . 993 10 0 . 165 x + x = 0 La figura 15.3 muestra una parte de la interfaz diseada en Visual Basic para resolver el problema definido por la ecuacin 15.6 0
5 6

b w

Carnaham, Brice; Luther, H.A.; Wilkes, James O.: Applied Numercial Methods, John Wikley and Sons, Inc., 1969, pp. 173 177. Kaw, Autar : Physical Problem for Nonlinear Equations for General Engineering, Holistic Numerical Methods institute, University of South Florida, Tampa, FL, USA, http://numericalmethods.eng.usf.edu/ , 2006.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 93 Clase# 15.-Algunas aplicaciones adicionales.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

FIGURA 15.3 Solucin de la ecuacin 15.6 empleando el mtodo de Bolzano (Biseccin), en el intervalo [-5.0, 5.0]. En trminos prcticos, la esfera con un radio de 5.5 cms y densidad 0.6 se sumerge 4.37 cms en el agua. La funcin f(x), definida por la ecuacin 15.6, tiene una raz real y dos races complejas (vase la grfica de f(x) en la figura 15.3). EJEMPLO #2 USO DE VECTORES, MATRICES, SUBPROGRAMAS, ARCHIVOS, TDU: EL PROBLEMA DE LOS INSECTOS. En el laboratorio de entomologa se ha recopilado un conjunto extenso de datos sobre algunas variedades de insectos y las zonas geogrficas de su habitat. La figura 15.4 presenta un ejemplo de la estructura del archivo organizado. FIGURA 15.4 Estructura del archivo de datos para el problema de los insectos. En este archivo cada registro (linea de datos) posee 6 campos separados por tabulador y cuyos significados son los siguientes: (i) un cdigo entero de 6 cifras; (ii) el peso en gramos; (iii) la vida en das; (iv) la variedad de insecto, de 1 a 7; (v) el gnero del insecto, M para macho, H para hembra; (vi) la zona geogrfica del hbitat, de 1 a 5. El proyecto Visual Basic que se elabore debe efectuar los siguientes procesos : (1) Definir un tipo de datos llamado INSECTOS con los campos del archivo mostrado en la figura 15.4, igualmente se declara un arreglo S() tipo INSECTOS, y se declaran las otras variables necesarias; (2) Leer todos los registros del archivo en el arreglo S(); (3) Calcular el promedio, la desviacin estndar de los pesos de los insectos por cada variedad; (4) En cada zona geogrfica cuntos y cules son los insectos con mayor duracin en das; (5) Cuntos insectos macho y cuntos insectos hembra hay en el conjunto de datos, y cules son los porcentajes con respecto al total de insectos. En la figura 15.5 se muestra la definicin de variables y del TDU, y la
Private Sub mnu_LEER_Click() Open App.Path & "\INSECTOS.txt" For Input As 7 N=0 Do N=N+1 ReDim Preserve S(N) Input #7, S(N).Cod, S(N).Peso, S(N).Vida, _ S(N).Var, S(N).Gen, S(N).Zona Loop Until (EOF(7)) Close #7 End Sub (b)

(a)

FIGURA 15.5 (a) - Declaracin del TDU y otras variables; (b) procedimiento que realiza la lectura del archivo de datos. lectura del archivo de datos. La figura 15.6 presenta una interfaz diseada y los resultados de la lectura de datos. Mediante un arreglo estructurado, S(), del tipo INSECTOS, es posible mezclar diferentes

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 94 Clase# 15.-Algunas aplicaciones adicionales.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ tipo de datos en un vector.

(a)

(b)

FIGURA 15.6 (a) Interfaz conformada por un formulario MDI y un formulario SDI; (b) Muestra de los registros ledos del archivo de datos. En la figura 15.7 se muestra un procedimiento que calcula el promedio y las desviaciones estndar d elos pesos de acda variedad de insectos; igualmente, se muestran los resultados pertinentes.
Private Sub mnu_CALC_Click() ReDim promPeso(nVar), nroVar(nVar), dePeso(nVar) (1) For j = 1 To nVar promPeso(j) = 0#: nroVar(j) = 0: dePeso(j) = 0# Next j For k = 1 To N (2) (a) For j = 1 To nVar If (S(k).Var = j) Then promPeso(j) = promPeso(j) + S(k).Peso nroVar(j) = nroVar(j) + 1 End If Next j Next k Form1.Text1 = Form1.Text1 & vbCrLf & String(55, "_") & vbCrLf & "Var." & vbTab & _ "nroVar()" & vbTab & "promPeso()" & vbTab & "dePeso()" & vbCrLf & String(55, "_") & vbCrLf For j = 1 To nVar (3) promPeso(j) = promPeso(j) / nroVar(j) For k = 1 To N If (S(k).Var = j) Then dePeso(j) = dePeso(j) + (S(k).Peso promPeso(j)) ^ 2 Next k dePeso(j) = Sqr(dePeso(j) / (nroVar(j) - 1)) Form1.Text1 = Form1.Text1 & j & vbTab & nroVar(j) & vbTab & vbTab & Format(promPeso(j), "00.000000") & _ vbTab & Format(dePeso(j), "00.000000") & vbCrLf Next j Form1.Text1 = Form1.Text1 & vbCrLf & String(55, "_") & vbCrLf End Sub

(b)

FIGURA 15.7 (a) Procedimiento elaborado en Visual Basic; (b) Resultados obtenidos. El uso de arreglos y de arreglos estructurados (del tipo TDU) facilita el efectuar los clculos. En la seccin (1) de este procedimiento se redefinen los arreglos; nVar es una constante: nVar = 7. En la seccin (2) calcula el acumulado del peso para cada variedad y el nmero de elementos de cada variedad; al final de esta seccin se despliegan los ttulos y encabezados mostrados en la figura 15.7(b). En la seccin (3) se calcula, para cada variedad, el promedio y la desviacin estndar del peso, desplegando cada registro de salida. De igual forma, se pueden realizar los dems clculos para este problema.

EJEMPLO #3 ECUACIN DE ESTADO DE LOS GASES: Muchas ecuaciones de estado han sido desarrolladas para describir las relaciones P-V-T de los gases (Presin-Volumen-Temperatura). Una de las ecuaciones de estado mejor conocida, es la de Beattie-Bridgeman7, mostrada en la ecuacin 15.7: donde P es la presin; V es el volumen molar; , , son parmetros (15.7) caractersticos del gas, dependientes de la temperatura; y R es la constante universal de los gases, en unidades compatibles. El segundo, tercero y cuarto trmino, en el lado derecho de la ecuacin anterior, pueden considerarse correcciones a la ecuacin de los gases ideales, ecuacin 15.8; dichos trminos expresan el comportamiento no-ideal de un gas. Los parmetros , , se definen por medio de las ecuaciones 15.9: (15.8) (15.9) En la ecuacin 0
7

Carnaham, Brice; Luther, H.A.; Wilkes, James O.: Applied Numercial Methods, John Wikley and Sons, Inc., 1969, pp. 173 177.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 95 Clase# 15.-Algunas aplicaciones adicionales.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ 15.9 las constantes A0, B0, A, B, C son constantes que se encuentran tabuladas, determinadas por datos experimentales y son diferentes para cada gas. Utilizando unidades de atmsferas ( 1atm 14.7lbf / in2) para P; litros/g-mol para V (1 g-mol de metano [ CH4 ] es aproximadamente 16 gramos); K para T (K C + 273.15); la constante de los gases, R, es igual a 0.08205 litros-Atm / K-g-mol. Para estas unidades seleccionadas las constantes para el metano son: Ao = 2.2769, Bo = 0.05587; A = 0.01855; B = -0.01587; C = 12.83*104. Para un gas especfico, y dado un valor fijo de V, calcular los correspondientes de P si T vara en el rango [-100.0, +100.0], con incrementos de 5.0. En la figura 15.8 se muestra un programa para la ecuacin 15.7 escrita como f(V) que se muestra en la ecuacin 15.10, donde tambin se presenta la derivada f(V), con el fn de utilizar el mtodo de Newton, cuya ecuacin ser 15.11. RT f (V ) = + 2 + 3 + 4 P=0 f (V ) La figura 15.8 tambin muestra los (15.11) V k +1 = V k V V V V resultados obtenidos considerando las f ' (V ) RT 2 3 4 ecuaciones 15.10 y 15.11 y los valores de las constantes f ' (V ) = 2 3 4 5 V V V V arriba estipulados. Es posible indagar por las constantes para otros gases y adaptar el proyecto Visual Basic para efectuar los clculos respectivos. (15.10)
Private Sub Command2_Click() Dim iTer As Integer, mm$ A = 0.01855: Acero = 2.2769: B = -0.01587 Bcero = 0.05587: C = 128300#: R = 0.08205 Open App.Path & "\BeattieBridgeman.txt" For Input As 7 Do Input #7, TC, P '... calcular parmetros dependientes de la temperatura T = TC + 273.15 Beta = (R * T * Bcero) - Acero - (R * C / (T ^ 2)) Gama = (-R * T * Bcero * B) + (Acero * A) - (R * C * Bcero) / (T ^ 2) Delta = (R * Bcero * B * C) / (T ^ 2) '.. ley de gases ideales para estimar el volumen inicial V0 = R * T / P '... se inicia la iteracin del mtodo de Newton iTer = 0 Do iTer = iTer + 1 If (df(V0) <> 0#) Then DeltaV = f(V0) / df(V0) V = V0 - DeltaV V0 = V End If If (iTer >= iTmax) Then Exit Do Loop Until (Abs((V - V0) / V) <= Epsilon) Z = (P * V) / (R * T) ... compresibilidad del gas Text1 = Text1 & iTer & vbTab & TC & vbTab & P & _ vbTab & Z & vbCrLf Loop Until (EOF(7)) Close #7 (a) End Sub

(b)

Public Function f(V As Single) As Single f = ((R * T) / V) + (Beta / (V ^ 2)) + (Gama / (V ^ 3)) + (Delta / (V ^ 4)) End Function Public Function df(V As Single) As Single df = ((-R * T) / (V ^ 2)) + ((-2 * Beta / (V ^ 3))) + ((-3 * Gama / (V ^ 4))) _ + ((-4 * Delta / (V ^ 5))) (c) End Function

FIGURA 15.8 (a) Procedimiento elaborado en Visual Basic para el ejemplo #3; (b) Resultados obtenidos; (c) .Las funciones f(x) y df(x), esta ltima es la derivada.

EJEMPLO #4 ANLISIS DE UNA CERCHA ESTTICAMENTE DETERMINADA: Un importante problema en Ingeniera estructural es el relacionado con la obtencin de las fuerzas y reacciones de una cercha estticamente determinada8, cuyo esquema diagramtico se presenta en la figura 15.9. Las fuerzas (Fi) representan tensiones o compresiones sobre los componentes de la cercha. Las reacciones externas (H2, V2, y V3) son fuerzas que caracterizan el cmo la estructura interacta con la superficie que la soporta. El empotramiento en el nodo 2, figura 15.9(a), puede transmitir fuerzas tanto vertical como horizontalmente a la superficie de soporte; mientras que en el nodo 3 se transmiten slo fuerzas verticalmente. Se observa que el efecto de una carga externa de 1000 lb se 0
8

Chapra, Steven C. And Canale, Raymond P.: Numerical Methods for Engineers, Fourth edition, McGraw-Hill, 2002, chapter 12: Engineering Applications: Linear Algebraic Equations, PP. 305 326.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 96 Clase# 15.-Algunas aplicaciones adicionales.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ distribuye entre los diversos componentes de la cercha. La solucin de este tipo de problema se puede efectuar representando la estructura como un sistema de ecuaciones lineales simultneas. Los diagramas de cuerpo libre, para cada nodo, se muestran en las figuras 15.9(b), 15.9(c), 15.9(d).
(a) (c)

(b)

(d)

FIGURA 15.9 (a) Diagrama esquemtico de las fuerzas en una cercha estticamente determinada; (b), (c), (d) Diagramas de cuerpo libre para cada nodo (fuente: Chapra & Canale, cap. 12). En la figura 15 las sumas de las fuerzas en las direcciones horizontal y vertical deben ser cero, en cada nodo, pues el sistema est en reposo. Las ecuaciones resultantes son las mostradas en la figura 15.10. EN EL NODO 1: FH = 0 = -F1Cos(30) + F3Cos(60) + F1,h FV = 0 = -F1Sin(30) + F3Sin(60) + F1,v EN EL NODO 2: FH = 0 = -F2 + F1Cos(30) + F2,h + H2 FV = 0 = F1Sin(30) + F2,v + V2 EN EL NODO 3: FH = 0 = -F2 F3Cos(60) + F3,h FV = 0 = F3Sin(60) + F3,v + V3 FIGURA 15.10 La estructura de la figura 15.9(a) se modela, o se representa, mediante este sistema de ecuaciones lineales simultneas.

La solucin de este sistema de ecuaciones lineales simultneas se puede efectuar con alguno de los mtodos vistos para resolver este tipo de modelo lineal. Por ejemplo, empleando el Mtodo de Eliminacin Gaussiana con pivoteo parcial, pues como se muestra en la figura 15.11(a) hay elementos ceros en la diagonal principal de la matriz de coeficientes. El vector solucin corresponde al vector (F1, F21, F31, H2, V2, V3), cuyo esquema grfico se muestra en las figuras 15.11(b) y 15.11(c) para dos diferentes direcciones de los vientos. La figura 15.11(b) para vientos desde la izquierda; la figura 15.11(c) para vientos desde la derecha. 0.866 0.0 -0.5 0.0 0.0 0.0 0.5 0.0 0.866 0.0 0.0 0.0 -0.866 -1.0 0.0 -1.0 0.0 0.0 -0.5 0.0 0.0 0.0 -1.0 0.0 0.0 1.0 0.5 0.0 0.0 0.0 0.0 0.0 -0.866 0.0 0.0 -1.0 F1 F2 F3 H2 V2 V3 0.0 -1000.0 0.0 = 0.0 0.0 0.0 (a)

(b)

(c)

FIGURA 15.11 (a) Sistema de ecuaciones lineales simultneas para el problema #4; (b) valores de la solucin para vientos que soplan desde la izquierda; (c) valores de la solucin para vientos que soplan desde la derecha. El vector solucin para el caso de la figura 1511(b) es: (F)T = (-866, 250, -500, -2000, -433,433). El vector solucin para el caso de la figura 15.11(c) es: (F)T = (-866, -1250, 500, 2000, 433, -433). El enfoque de sistema de ecuaciones lineales simultneas resulta muy til para modelar estructuras complejas. En la prctica de Ingeniera, es a veces necesario resolver cerchas con centenares, y an miles, de componentes estructurales. Los modelos de ecuaciones lineales son una til herramienta para estudiar el comportamiento de este tipo de estructuras. __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 97 Clase# 15.-Algunas aplicaciones adicionales.

Notas de Clase 3004578 Algoritmos y Programacin 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________

15.3 PRCTICA#15 APLICACIONES VARIAS


FIGURA 15.12 Ejemplo de men tipo barra y formulario MDI, para implementar varias aplicaciones. En esta prctica se disea una interfaz con un formulario MDI, con un me{u tipo barra como se muestra en la figura 15.12, y varios formularios SDI, uno para cada aplicacin. Para cada aplicacin se disea un submen que incluye por lo menos- la lectura de datos y los clculos y resultados. Se incluye manejo de archivos, subprogramas definidos por el usuario, tipo de datos definido por el usuario (TDU), despliegue en formulario distinto al principal.

15.4 ACTIVIDADES EXTRACLASE - TAREAS


Completar la interfaz de la figura 15.12, desarrollando las opciones mostradas, y complementando con otras aplicaciones. Indagar creativamente por aplicaciones propias de la carrera en la cual est inscrito(a). Por ejemplo, en el rea de Ingeniera Civil, se ha desarrollado con Visual Basic 6.0 el programa EduShake9 que permite el diseo de diferentes tipos de estructuras. Este programa es de uso libre (FreeWare) y se puede descargar gratuitamente- con el manual de operacin- de la Internet, por ejemplo en el sitio: http://www.proshake.com/download.htm. Otros programas de el rea de Ingeniera Civil se pueden hallar en: http://www.unhas.ac.id/~teknik/ce/ceonline/freeware.html. Desde Canad hasta la Argentina, y desde Espaa hasta Japn, pasando por China y Australia, se pueden recabar innumerables aplicaciones elaboradas con Visual Basic en reas tcnicas y de ingenieras. Una muestra de casos se puede conseguir en el sitio oficial de Microsoft, http://www.microsoft.com. Hay muchsimos sitios en la Internet dedicados a aplicaciones de los computadores en las ingenieras. Vistese, por ejemplo, el del Instituto Holstico de Mtodos Numricos en la Universidad del Sur de Florida: http://numericalmethods.eng.usf.edu/. Tambin las fuentes bibliogrficas son muchsimas en las cuales se pueden recabar ejemplos de aplicaciones de los computadores en la solucin de problemas de ingeniera, de la administracin de las empresas, y de muchas otras reas. Dos ejemplos son los siguientes: (1) En la Universidad de los Andes, en Bogot, Colombia, ; (2) En el texto de Chapra y Canale, utilizado como referencia del curso, se encuentran muchos casos, algunos de ellos son: (i) en el captulo 8, se aplican los mtodos para hallar races de ecuaciones no-lineales, mediante los problemas: leyes de los gases ideales y noideales, desde una perspectiva diferente de la tratada en el ejemplo #3; flujo en un canal abierto; diseo de un circuito elctrico; anlisis de vibraciones mecnicas; (ii) en el captulo 12 se aplican los mtodos para resolver ecuaciones lineales simultnes, resolviendo problemas como: anlisis de una cercha estticamente determinada, tratada en el ejemplo#4; anlisis de estado-estable de un sistema de reactores; corrientes y voltajes en circuitos resistores; sistemas de masas en resortes.

0
9

EduPro Civil Systems, Inc. Redmond, Washington, USA, 1991 - 2007.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 98 Clase# 15.-Algunas aplicaciones adicionales.

Você também pode gostar