Notas Clases #11 a #15

37
Notas de Clase – 3004578 – Algoritmos y Programación 02/26/07 Ingeniero William Alvarez Montoya http://www.unalmed.edu.co/~walvarem/ ____________________________________________________________________________________________ __________________________________________________________________________________________ [email protected] Página 62 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas. Clase #11 APLICACIONES DE ARREGLOS, SUBPROGRAMAS, ARCHIVOS SOLUCIÓN DE ECUACIONES LINEALES SIMULTÁNEAS «Evolution». Fuente: R.B. Muhama.( Kent State University, 2004,.http://www.cs.kent.edu/~rmuhamma/) Los arreglos (vectores y matrices), los Subprogramas, Los Archivos de datos y los Tipos de Datos Definidos por el Usuario (TDU) son herramientas algortítmicas 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 harán una serie de aplicaciones, en Métodos Numéricos y en otras áreas técnicas y de ingenierías, de los diferentes elementos -tanto de la parte algorítmica como d elas estructuras de datos básicas- para ilustrar la inmensa aplicabilidad d elas técnicas computacionales. En este capítulo 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 específicos de aplicación, reforzar los contenidos cognitivos de las clasea anteriores; los casos de aplicación que se presentan sdon los siguientes: (a) – calcular la matriz transpuesta A mn A t nn ; (b) – Multiplicación de un vector por una matriz a t n = b t m x C mn ; (c) - Multiplicación de matrices C mn = A mp x B pn ; (d) – Algunos problemas de áreas técnicas de ingenierías; (e) – Solución de Ecuaciones Lineales Simultáneas (SELS), por el Método de Gauss ; (iii) – los ejemplos y ejercicios de la práctica #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 A mn : es otra matriz, denotada A t nm , en la cual se cumple que A t i,j = A j,i , para i = 1 has m, j = 1 hasta n. En la figura 11.1 se ilustra el consepto de matriz trnaspuesta. Se requieren dos procesos iterativos, uno dentro del otro, es decir encajados o anidados, para recorrer las dos dimensiones de la matriz A, las filas y las columnas. El proceso se puede representar así: A t (j,i) A(i,j) i=1,…,m; j=1,…,n, mediante el cual el elemento A(i,j) se asigna al elemento A t (j,i). La dimensión de la matriz transpuesta: A(m,n) A t (n,m). La figura 11.2 presenta el esquema algorítmico correspondiente a la figura 11.1. Los pasos de este algotitmo son los siguientes: (i) - dimensión 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. MULTIPLICACIÓN DE VECTOR POR MATRIZ a t n = b t m x C mn : El resultado es un vector, como se ilustra en la figura 11.3. La multiplicación de un vector por una matriz está definida si se cumple uno de los siguientes dos casos: (i) – El número de elementos del vector es igual al número de filas de la matriz, en cuyo caso se multiplica el vector por cada columna de la matriz, FIGURA 11.1 Diagrama esquemático de una matriz A y su transpuesta A t . A= A(m,n) A(m,2) A(m,1) A(i,j) A(2,n) A(2,2) A(2,1) A(1,n) A(1,2) A(1,1) (a) A t = (b) A(n,m) A(2,m) A(1,m) A(j,i) A(n,2) A(2,2) A(1,2) A(n,1) A(2,1) A(1,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 algorítmico que genera la matriz transpuesta A t , a partir de la matriz A.

Transcript of Notas Clases #11 a #15

Page 1: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 62 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

Clase #11 AAPPLLIICCAACCIIOONNEESS DDEE AARRRREEGGLLOOSS,, SSUUBBPPRROOGGRRAAMMAASS,, AARRCCHHIIVVOOSS –– SSOOLLUUCCIIÓÓNN DDEE EECCUUAACCIIOONNEESS LLIINNEEAALLEESS SSIIMMUULLTTÁÁNNEEAASS

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

Los arreglos (vectores y matrices), los Subprogramas, Los Archivos de datos y los Tipos de Datos Definidos por el Usuario

(TDU) son herramientas algortítmicas 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 harán una serie de aplicaciones, en Métodos Numéricos y en otras áreas técnicas y de ingenierías, de los diferentes elementos -tanto de la parte algorítmica como d elas estructuras de datos básicas- para ilustrar la inmensa aplicabilidad d elas técnicas computacionales. EEnn eessttee ccaappííttuulloo ssee ppllaanntteeaann llooss ssiigguuiieenntteess oobbjjeettiivvooss:: ((ii)) –– AAddqquuiirriirr ddeessttrreezzaass eenn eell ddeessaarrrroolllloo ddee aallggoorriittmmooss ppaarraa ssoolluucciioonnaarr pprroobblleemmaass ddee ooppeerraacciioonneess eennttrree vveeccttoorreess yy mmaattrriicceess,, aarrcchhiivvooss ddee ddaattooss,, ssuubbpprrooggrraammaass yy TTDDUU;; ((iiii)) –– mmeeddiiaanntteess ccaassooss eessppeeccííffiiccooss ddee aapplliiccaacciióónn,, rreeffoorrzzaarr llooss ccoonntteenniiddooss ccooggnniittiivvooss ddee llaass ccllaasseeaa aanntteerriioorreess;; llooss ccaassooss ddee aapplliiccaacciióónn qquuee ssee pprreesseennttaann ssddoonn llooss ssiigguuiieenntteess:: ((aa)) –– ccaallccuullaarr llaa mmaattrriizz ttrraannssppuueessttaa AAmmnn AAttnnnn ;; ((bb)) –– MMuullttiipplliiccaacciióónn ddee uunn vveeccttoorr ppoorr uunnaa mmaattrriizz atn = btm x Cmn;; ((cc)) -- MMuullttiipplliiccaacciióónn ddee mmaattrriicceess CCmmnn == AAmmpp xx BBppnn ;; ((dd)) –– AAllgguunnooss pprroobblleemmaass ddee áárreeaass ttééccnniiccaass ddee iinnggeenniieerrííaass;; ((ee)) –– SSoolluucciióónn ddee EEccuuaacciioonneess LLiinneeaalleess SSiimmuullttáánneeaass ((SSEELLSS)),, ppoorr eell MMééttooddoo ddee GGaauussss;; ((iiiiii)) –– llooss eejjeemmppllooss yy eejjeerrcciicciiooss ddee llaa pprrááccttiiccaa ##111111 aayyuuddaann aa eenntteennddeerr llooss tteemmaass ddee llaass sseecccciioonneess ((ii)) yy ((iiii));; ((iivv)) –– llaass aaccttiivviiddaaddeess eexxttrraaccllaassee yy llaass ttaarreeaass ffaacciilliittaann eell rreeffuueerrzzoo eenn eell pprroocceessoo ddee eessttuuddiioo yy ddee aapprreennddiizzaajjee ddee eessttaa ccllaassee.. 1111..11 AALLGGUUNNAASS AAPPLLIICCAACCIIOONNEESS DDEE AARRRREEGGLLOOSS,, SSUUBBPPRROOGGRRAAMMAASS,, AARRCCHHIIVVOOSS,, TTDDUU LLAA TTRRAANNSSPPUUEESSTTAA DDEE UUNNAA MMAATTRRIIZZ AAmmnn: es otra matriz, denotada AAttnnmm,, eenn llaa ccuuaall ssee ccuummppllee qquuee AAttii,,jj = AAjj,,ii , para i = 1 has m, j = 1 hasta n. En la figura 11.1 se ilustra el consepto de matriz trnaspuesta.

Se requieren dos procesos iterativos, uno dentro del otro, es decir encajados o 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 dimensión de la matriz transpuesta: A(m,n) At(n,m). La figura 11.2 presenta el esquema algorítmico correspondiente a la figura 11.1.

Los pasos de este algotitmo son los siguientes: (i) - dimensión 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.

MMUULLTTIIPPLLIICCAACCIIÓÓNN DDEE VVEECCTTOORR PPOORR MMAATTRRIIZZ atn = btm x Cmn: El resultado es un vector, como se ilustra en la figura 11.3. La multiplicación de un vector por una matriz está definida si se cumple uno de los siguientes dos casos: (i) – El número de elementos del vector es igual al número de filas de la matriz, en cuyo caso se multiplica el vector por cada columna de la matriz,

FFIIGGUURRAA 1111..11 Diagrama esquemático de una matriz A y su transpuesta At.

A=

A(m,n) A(m,2) A(m,1)

A(i,j) … A(2,n) … A(2,2) A(2,1)

A(1,n) … A(1,2) A(1,1)

… … … (a)

At=

(b) A(n,m) A(2,m) A(1,m)

A(j,i) … A(n,2) … A(2,2) A(1,2)

A(n,1) … A(2,1) A(1,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

FFIIGGUURRAA 1111..22 Trozo algorítmico que genera la matriz transpuesta At, a partir de la matriz A.

Page 2: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 63 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

njcbam

iijij ,...,1;

1=×=∑

=

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

FFIIGGUURRAA 1111..66 Algoritmo correspondiente al esquema de la figura 11.5.

siendo el vector un vector fila; (ii) – El número de elementos del vector es igual al número 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.

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

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 término a término b*C y se acumula el resultado por cada a(j).

MMUULLTTIIPPLLIICCAACCIIÓÓNN DDEE MMAATTRRIIZZ PPOORR MMAATTRRIIZZ Cmn = Amp x Bpn: Para que las matrices A y B sean multiplicables, el número de columnas de A debe ser igual al número de filas de B. La multiplicación de la fila i de A por la columna j de B se conoce también 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 diagrmáticamente el proceso algoritmo pertinente. Y en la figura 11.6 se presenta el algoritmo respectivo.

A(1,1) … A(1,p) …. A(i,k) …. A(m,1) … A(m,p)

Este algoritmo requiere tres iteraciones definidas encajadas, anidadas, por lo cual su complejidad en número de operaciones es proporcional a N3; esto significa que para valores grandes de N (millones o miles de millones) es ineficiente. Las técnicas del Álgebra Lineal Numérica (véase al capítulo 6 de las aplicaciones en Métodos Numéricos).suministran algoritmos más eficientes para multiplicar matrices extensas.

bt1xm

b1 b2 bi bm ... ..

(a)

a1 … aj am... ... ...

at1xn

(c)

(d)

=

Cmxn

cmn …cm1

………

c1n…c11

(b)

FFIIGGUURRAA 1111..33 Vector por matriz: (a) – Vcetor fila; (b) – La matriz; (c) – El vector resultado; (d) – fórmula implicada.

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

FFIIGGUURRAA 1111..44 Algoritmo para la multiplicación de un vector fila por una matriz.

Fila i B(1,1) … B(1,n) …. B(k,j) …. B(p,1) … B(p,n)

j

=

njmi

bacp

kjkkiji

,...,1;,...,11

,,,

==

×= ∑=

(c)

j

iC(1,1) … C(1,n)

…. C(i,j) …. C(m,1) … C(m,n)

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

FFIIGGUURRAA 1111..55 Esquema diagramático para la multiplicación de dos matrices: (a) – Las matrices Amp y Bpn ; (b) – La matriz resultante Cmn ; (c) – La fórmula simplificada que define.

X

k

(a)

Page 3: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 64 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

a11X1 + a12X2 +...+ a1jXj+... +a1nXn = b1 a21X1 + a22X2 +... + a2jXj+... +a2nXn = b2 ....................................................................................... ai1X1 + ai2X2 + ... + aijXj+ ... +ainXn = bi ...................................................................................... an1X1 + an2X2 +...+anjXj+... +annXn = bn

FFIIGGUURRAA 1111..88 Representación ecuacional de un Sistema de Ecuaciones Lineales Simultáneas.

UUNN AARRCCHHIIVVOO DDEE UUSSUUAARRIIOOSS:: 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 página web http://xue.unalmed.edu.co/~6walvarem/APdocs/ARCHIVOS_DATOS/). Los datos recopilados son: Código del usuario, 6 dígitos enteros; estrato socioecon, de 1 a 6; consumo del tipo de servicio telefónico, en impulsos; consumo de agua, en metros cúbicos; consumo de energía en kilovatio/hora; comuna en la cual reside el usuario; género 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) – ¿Cuántas mujeres y cuántos hombres conforman el conjunto de datos? Y ¿cuál es el procentaje de hombres y de mujeres con respecto al número total de personas presentes en el archivo? (4) – Cuántas y cuáles mujeres del estrato 3, residentes en la comuna 7, tienen un consumo de impulsos telefónicos mayor que el promedio? (5) - ¿Cúantos y cuáles varones del estrato 4 tienen un consumo de agua mayor o igual a 320 metros cúbicos? (6) – Calcular el promedio y la desviación estándar del consumo de energía 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 cálculos del punto (4). 1111..22 SSOOLLUUCCIIÓÓNN DDEE SSIISSTTEEMMAASS DDEE EECCUUAACCIIOONNEESS LLIINNEEAALLEESS SSIINNUULLTTÁÁNNEEAASS ((SSEELLSS)) –– MMÉÉTTOODDOO DDEE GGAAUUSSSS En esta sección se estudia la aplicación de las estructuras algorítmicas (secuencia, selección lógica, iteración), vectores y matrices (arreglos), archivos de datos, subprogramas, en la solución de sistemas de ecuaciones lineales simultáneas (SELS). El método de solución que se explicará es el llmado de Eliminación Gaussiana (el Método de Gauss). Una representación de un SELS es la que se muestra en la figura 11.8.

Un SELS se emplea en muchas áreas técnicas y de ingenierías como herramienta de modelación que representa problemas mediante ecuaciones lineales. Por ejemplo, en procesos de producción (ej: Scheduling – ruta crítica, etc); en procesos administrativos (ej: asignación de recursos, el problema del agente viajero); en otras áeas

FFIIGGUURRAA 1111..77 Archivo, TDU, algoritmos del problema.

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

Definición del TDU llamado USUARIO. Cada campo debe tener un nombre y un tipo de datos estándar. El vector U() se define así: Public U() As USUARIO

(a)

(b)

Open App.Path For Input As # 55 n = 0 ‘… es el contador para el número 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)) 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

(c)

(d)

Page 4: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 65 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

II

kk

0

jj FFIIGGUURRAA 1111..1100 Índices para el algoritmo general del proceso de escalonamiento en el Método de Eliminación Gaussiana.

de Ingeniería (ej: cálculo de esfuerzos en una estructura, por ejemplo). Este SELS se representa matricialmente como: AX = b (11.1). En general, hay dos categorías de métodos para resolver un SELS: (i) - Métodos Directos como el Método de Eliminación de Gauss, y el Métodó de Gauss-Jordan, basado en la matriz inversa; estos métodos obtienen directamente una solución al sistema de ecuaciones 11.1; (ii) - Métodos Iterativos como el Método deJacobi y el Método de Gauss-Seidel se basan en una solución inicial y la mejoran mediante una serie de iteraciones hasta que se cumpla una cierta precisión numérica preestablecida. De todas formas existen problemas de precisión numérica cuando se trata de grandes sistemas, especialmente por los errores de truncamiento y de redondeo debidos a la aritmética finita que maneja internamente la unidad aritmético-lógica de los computadores. EELL MMÉÉTTOODDOO DDEE EELLIIMMIINNAACCIIÓÓNN DDEE GGAAUUSSSS El Método de Eliminación de Gauss se basa en la representación de la figura 11.8 y obtiene –cuando es posible- directamente una solución al sistema de ecuaciones. El Método de Eliminación Gaussiana es un Método Directo. Este método fué ideado por C.F. Gauss, y consiste en realidad en la generalización y enfoque sistemático, empleando algebra de matrices, del método de eliminación conocido desde antiguo y empleado por babilonios, indúes y griegos. El Método de Eliminación Gaussiana consta de dos fases o etapas1: (i) - EESSCCAALLOONNAARR LLAA MMAATTRRIIZZ DDEE CCOOEEFFIICCIIEENNTTEESS. 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) - SSUUSSTTIITTUUIIRR RREEGGRREESSIIVVAAMMEENNTTEE. Despejando las variables desde XXnn hhaassttaa XX11. La generalización del Método de Eliminación Gaussiana parte de la matriz de coeficientes, A, y del vector de términos 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.

El sistema resultante, esquematizado en la fihura 11.9(d) es equivalente al original, es decir que tiene el mismo vector solución2. El algoritmo que se desarrollará maneja tres índices: i, j, k, cuyos significados se esquematizav en la figura 11.10.

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, también determina la fila pivote y el elemento pivote de la diagonal principal. Su recorrido es desde 1 hasta N-1 (la penúltima columna). El índice i hace referencia a las filas que se transforman por debajo de la diagonal principal.

Su 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

0 1 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.

2 Kaw, Autar K.: «Introduction to Linear Algebra», University of South Florida, 2002, http://numericalmethods.eng.usf.edu/~kaw. // Hadley, G.: «Linear Algebra», Op. Cit.

(a) Matriz de coeficientes (b) Vector de términosindependientes

( c ) Matriz transformada final (d) Esquema del proceso general (escalonar)

aaiijj

FFIIGGUURRAA 1111..99 Elementos iniciales y finales en la fase de escalonamiento para el algoritmo del Método de Eliminación Gaussiana.

Page 5: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 66 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

( ) ( ) ( )11

211.2.2.aaEcEcEc −=

( ) ( ) ( )11

311.3.3.aaEcEcEc −=

FFIIGGUURRAA 1111..1111 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 apóstrofes (a11’, por ejemplo) para facilitar las explicaciones.

ha estipulado desde la columna k hasta la columna N, porque se hace aparte la transformación de los elementos del vector b; pero si se utiliza una matriz ampliada A | b entonces el recorrido del índice j iría desde k hasta N+1. EESSCCCCAALLOONNAARR LLAA MMAATTRRIIZZ AA.. 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 ecuación 2 (k+1), un múltiplo de la ecuación 1, de manera que a21 se vuelva

cero, utilizando el factor multiplicador a21 / a11 : • Para la ecuación 3, restarle un múltiplo de la ecuación 1, así: • En general, para la ecuación i-ésima, la transformación es así: De esta manera, se forman ceros por debajo de la diagonal principal ,en la columna 1, como se ilustra en la figura 11..11.

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 solución X= (XX11, XX22,..., XXnn ); adicionalmente, las operaciones lineales efectuadas garantizan que el determinante de la matriz A no cambia. El algoritmo continúa, ahora, con la columna 2 (k = 2) y las operaciones de la transformación lineal sobre esta columna, con el elemento pivote a22, y la fila 2 (k = 2)como fila pivote, son las siguientes: • Restar a la ecuación 3, un múltiplo de la ecuación 2 (ecuación o fila pivote), de tal manera que a32 se vuelva cero:

• Restar a la ecuación 4, un múltiplo de la ecuación 2 (ecuación o fila pivote), de tal manera que a42 se vuelva cero: • Restar a la ecuación i-ésima, un múltiplo de la ecuación 2 (ecuación o fila pivote), de tal manera que ai2 se vuelva cero:

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 sitúa en la k-ésima columna de la matriz A. En detalle, las operaciones de transformación lineal, con el elemento pivote akk, y la fila k (i = k)como fila pivote ,son las siguientes:

( ) ( ) ( )11

11...aaEciEciEc i−= ((ii == 22,,33,,......,, nn))

( ) ( ) ( )22

322.3.3.aaEcEcEc −= Aquí el factor multiplicador es a32 / a22, lo cual garantiza que el

elemento a32 se convierte en cero. Y los demás elementos de la fila 3 (ecuación 3) son transformados.

( ) ( ) ( )22

422.4.4.aaEcEcEc −=

Aquí el factor multiplicador es a42 / a22, lo cual garantiza que el elemento a42 se convierte en cero. Y los demás elementos de la fila 4 (ecuación 4) son transformados.

FFIIGGUURRAA 1111..1122 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 apóstrofes (a11’, por ejemplo) para facilitar las explicaciones.

( ) ( ) ( )22

22...aaEciEciEc i−= Aquí el factor multiplicador es ai2 / a22, lo cual garantiza que

el elemento ai2 se convierte en cero. Y los demás elementos de la fila i (ecuación i) son transformados.((ii == 33,,......,, nn))

Page 6: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 67 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

FFIIGGUURRAA 1111..1133 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 apóstrofes (a11’, por ejemplo) para facilitar las explicaciones.

• Restar a la ecuación K + 1, un múltiplo de la ecuación K, ecuación o fila pivote, de tal manera que el elemento ak+1,k se

vuelva cero:

• Restar a la ecuación K + 2, un múltiplo de la ecuación K, ecuación o fila pivote, de tal manera que el elemento ak+2,k se vuelva cero:

• Restar a la ecuación i-ésima, un múltiplo de la ecuación K, ecuación o fila pivote, de tal manera que el elemento ai,k se vuelva cero:

Así, para la columna k se obtienen ceros por debajo de la diagonal principal, como se esquematiza en la figura 11.13, mostrada a continuación:

El proceso se continúa 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 síntesis, el proceso iterativo de la triangulación (o

escalonamiento) de la matriz de coeficientes, A, y del vector de términos independientes, b, se puede expresar genéricamente con la ecuaciones de transformación lineal, y rangos de los índices, mostradas en la figura 11.14, presentada a continuación:

( ) ( ) ( )kk

kk

aa

kEckEckEc ,1.1.1. +−+=+Aquí el factor multiplicador es ak+1,k / akk, lo cual garantiza que el elemento ak+1,k se convierte en cero. Y los demás elementos de la fila k+1 (ecuación k+1) son transformados.

( ) ( ) ( )kk

kk

aa

kEckEckEc ,2.2.2. +−+=+Aquí el factor multiplicador es ak+2,k / akk, lo cual garantiza que el elemento ak+2,k se convierte en cero. Y los demás elementos de la fila k+2 (ecuación k+2) son transformados.

( ) ( ) ( )kk

ki

aa

kEciEciEc ,... −=Aquí el factor multiplicador es ai,k / akk, lo cual garantiza que el elemento ai,k se convierte en cero. Y los demás elementos de la fila i-ésima (ecuación i-ésima) son transformados.((ii == kk++11,,......,, nn))

( ) ( ) ( )kk

ik

aakEciEciEc ... −=

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

kk

ikkjijij a

aaaa −=

k = 1,..., n-1; i = k+1,..., n; j = k,..., n

(b) Ecuación de transformación de los elementos de la matriz A

kkk

ikii b

aabb −=

i = k+1,..., n; j = k,..., n

(c) Ecuación de transformación de los elementos del vector b.

FFIIGGUURRAA 1111..1144 Síntesis de las transformaciones lineales involucradas en la etapa de escalonamiento en el Método de Eliminación Gaussiana.

Page 7: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 68 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

( ) ( ) ( )11

211.2.2.aaEcEcEc −=

( ) ( ) ( )11

11...aaEciEciEc i−=

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

FFIIGGUURRAA 1111..1166 Algoritmo para el proceso de escalonamiento de la matriz A de coeficientes originales en el Método de Eliminación Gaussiana.

a11X1 + a12X2 + a13X3 + ... + aijXj + ... + a1,n-1Xn + a1nXn = b1 (1) a22X2 + a23X3 + ... + a2jXj + ... + a2,n-1Xn + a2,nXn = b2 (2) 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)

FFIIGGUURRAA 1111..1177 Sistema final en el proceso de escalonamiento de la matriz A de coeficientes originales en el Método. De Eliminación Gaussiana.

Después de procesar la última columna, el Método de Eliminación Gaussiana habrá generado el sistema aumentado que se ilustra en la figura 11.15.

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 Método de Eliminación Gaussiana. Pero antes, es conveniente comprobar cómo las operaciones de transformación lineal que efectúa esta fase del Algoritmo Gaussiano efectivamente forman ceros por debajo de la diagonal principal d ela matriz de coeficientes.

• Cálculo de los coeficientes y de los términos independientes en cada transformación, COLUMNA 1, ECUACIÓN 2:

a21 = a21 - a11(a21/a11)= 0; a22 = a22 - a12(a21/a11) (en general, es diferente de cero); a2j = a2j - a1j(a21/a11), para j = 1,2,...,n; b2 = b2 - b1(a21/a11); quedando, así, transformada la ecuación 2 (fila 2 de la matriz A), de modo que a21 se hace cero.

• Cálculo de los coeficientes y de los términos independientes en cada transformación, COLUMNA 1, ECUACIÓN i: ai1 = ai1 - a11(ai1/a11)= 0; ai2 = ai2 - a12(ai1/a11) (en general, es diferente de cero); aij = aij – a1j(ai1/a11), para j = 1,2,...,n; bi = bi - b1(ai1/a11); quedando, así, transformada la ecuación i-ésima (fila i-ésima de la matriz A), de modo que ai1 se hace cero.

AALLGGOORRIITTMMOO DDEELL PPRROOCCEESSOO DDEE EESSCCAALLOONNAAMMIIEENNTTOO. Con el análisis 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.

Como técnica de representación del algoritmo se emplea la sintaxis específica de un lenguaje de programación de computadores. En este caso, se emplea la sintaxis de Visual Basic 6.0 (que también es válida para versiones posteriores). Esta versión del algoritmo no tiene en cuenta el caso que se presenta cuando A(k,k) = 0, que entonces implicaría utilizar técnicas de pivoteo (parcial o total), o que -en el peor de los caos- el sistema no tenga solución.

SSUUSSTTIITTUUCCIIÓÓNN RREEGGRREESSIIVVAA. Cuando un Sistema de Ecuaciones Lineales Simultáneas, como el esquematizado en la figura 11.8, tiene solución, entonces se llega a un sistema transformado como el de la figura 11.15, cuyo esquema ecuacional se presenta en la figura 11.17.

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

FFIIGGUURRAA 1111..1155 Matriz transformada aumentada del tipo triangular superior en las N primeras columnas.

nn

nn a

bX = (11.2)

Page 8: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 69 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

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

FFIIGGUURRAA 1111..1188 Algoritmo de Sustitución Regresiva para el Método Eliminación

• Con las fórmulas 11.2 y 11.6 se elabora el Algoritmo de Sustitución Regresiva, para el Método de Eliminación Gaussiana.

Dicho algoritmo se presenta la figura 11.18 mostrada a continuación:

Este procedimiento, conjuntamente con el mostrado en la figura 11.16, conforma –en esa secuencia- el Algoritmo General para el Método de Eliminación Gaussiana que obtiene el vector solución X = (XX11, XX22,..., XXnn ) para un Sistema de Ecuaciones Lineales Simultáneas. La figura 11.19 compendia estas dos fases del Método de Eliminación Gaussiana.

11.3 SSIISSTTEEMMAASS EESSPPEECCIIAALLIIZZAADDOOSS DDEE EECCUUAACCIIOONNEESS LLIINNEEAALLEESS SSIIMMUULLTTÁÁNNEEAASS El método estándar de Gauss, o de Eliminación Gaussiana, efectúa el escalonamiento de la matriz A() –de coeficientes técnicos- de manera estándar, 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 Método de Eliminación Gaussiana, o Método de Gauss, de manera estándar, 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). También 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).

1,1

,111

−−

−−−

−=

nn

nnnnn a

XabX (11.3)

• Con Xn calculado se despeja, en la ecuación (n-1), an-1,n-1Xn-1 + an-1,nXn = bn-1 ,el valor de Xn-1, ecuación 11.3.

( )2,2

,211,222

−−

−−−−−−

+−=

nn

nnnnnnnn a

XaXabX (11.4)

• Con los valores calculados de Xn , ecuación 11.2, y de Xn-1 , ecuación 8.2.3, se puede calcular de la ecuación (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 ecuación 11.4.

( )3,3

,311,322,333

−−

−−−−−−−−−

++−=

nn

nnnnnnnnnnn a

XaXaXabX

(11.5)

• Conociendo los valores de Xn , ecuación 11.2, Xn-1 , ecuación 11.3, Xn-2 , ecuación 11.4, entonces de la ecuación (n-3), en el sistema mostrado en la figura 11.17, an-3,n-3Xn-3 + an-3,n-2Xn-2 + an-3,n-1Xn-1 + an-3,nXn = bn-3 , se puede despejar el valor de Xn-3 con la ecuación 11.5.

1,...,2,1,11

−−=⎟⎟⎠

⎞⎜⎜⎝

⎛−= ∑

+=

nniXaba

Xn

ijjiji

iii (11.6)

• Con las ecuaciones 11.3, 11.4 y 11.5 ya se tienen suficientes elementos de análisis para inducir la fórmula correspondiente a Xi para i = n-1 hasta 1. Dicha fórmula se presenta en la ecuación 11.6.

FFIIGGUURRAA 1111..1199 Las dos fases del Método de Eliminación de Gauss para resolver un Sistema de Ecuaciones Lineales Simultáneas.: (a) – Escalonamiento de la matriz de coeficientes; (b) – Sustitución regresiva para obtener los elementos del vector solución desde XXnn hasta XX11.

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)

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)

Page 9: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 70 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

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). En la figura 11.22 se presentan los programas correspondientes a los Sistemas Especializados SELS de la figura 11.21.

aaiijj

(a)

aaiijj

(b)

aaiijj

(c)

aaiijj

(d)

FFIIGGUURRAA 1111..2200 Los casos (b), (c) y (d) constituyen Sistemas Especializados de Ecuaciones Lineales Simultáneas. Son variantes del algoritmo básico de Eliminación Gaussiana mostrado en (a).

a11X1 = b1 (1) a21X1 + a22X2 = b2 (2) a31X2 + a23X3 + a33X3 = b3 (3) ....................................................... ....................................................... ai,1X1 + ai,2X2 + ai,3X3 + ... + aiiXi + ... + aijXj + ai,j+1Xj+1 = bi (i) ............................................................................................................. an-2,1X1 + an-2,2X2 + an-2,3X3 + ... + an-2,jXj + ... + an-1,n-2Xn-2 = bn-1 (n-2) an-1,1X1 + an-1,2X2 + an-1,3X3 + ... + an-1,jXj + ... + an-1,n-2Xn-2 + an-1,n-1Xn-1 = bn-1 (n-1) an,1X1 + an,2X2 + an,3X3 + ... + an,jXj + ... + an,n-2Xn-2 + an,n-1Xn-1 + an,nXn = bn (n)

aaiijj

(a)

FFIIGGUURRAA 1111..2211 Esquemas ecuacionales de los Sistemas Especializados de SELS mostrados en la figura 11.20.

aaiijj

(b)

a11X1 + a12X2 +...+ a1,jXj+...+ a1,n-3Xn-3 + a1,n-2Xn-2 + a1,n-1Xn-1 + a1,nXn = b1 (1) a21X1 + a22X2 +...+ a2,jXj +... + a2,n-3Xn-3 + a2,n-2Xn-2 + a2,n-1Xn-1 = b2 (2) a31X1 + a32X2+...+ a3,jXj +... + a3,n-3Xn-3 + a3,n-2Xn-2 = b3 (3) ……………...........……………………………………………......….. ai,1X1 + ai,2X2 + ai,3X3 + …. + ai,jXj = bi (i) ……………...........……………………………………………......….. 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)

aaiijj

(c)

a1,nXn = b1 (1) a2,n-1Xn-1 + a2,nXn = b2 (2) a3,n-2Xn-2 + a3,n-1Xn-1 + a3,nXn = b3 (3) …………………………………………………………………......….. ai,jXj + ….. + ai,n-2Xn-2 + ai,n-1Xn-1 + ai,nXn = bi (i) …………………………………………………………………......….. ai+1,j-1Xj-1 + ai+1,jXj + ….. + ai,n-2Xn-2 + ai,n-1Xn-1 + ai,nXn = bi+1 (i+1)

Page 10: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 71 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

K

K

K

K

K

K

Figura 11.23 Un Sistema Especializado de Ecuaciones Lineales Simultáneas 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..

OOTTRROOSS SSIISSTTEEMMAASS EESSPPEECCIIAALLIIZZAADDOOSS,, BBAASSAADDOOSS EENN SSUUBBMMAATTRRIICCEESS A veces, desde el planteamiento de un Modelo de Ecuaciones Lineales Simultáneas, o en ciertos pasos del proceso de escalonamiento, puede llegarse a ciertas categorías 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 continuación, en la figura 11.23, es de tal categoría3.

Desde luego, si N es impar, se generarían otros modelos especializados. Se puede, entonces, establecer una categorización de Modelos Especializados de Sistemas de Ecuaciones Lineales Simultáneas, que se sintetizan en la tabla 11.1. En el capítulo 8 de las aplicaciones

de Métodos Numéricos se encuentran todos los detalles de las categorías relacionadas en la tabla 11.1.

Tabla 8.13.1 Taxonomía de Models Especializados de Ecuaciones Lineales Simultáneas.

CCAATTEEGGOORRÍÍAA DDEESSCCRRIIPPCCIIÓÓNN EESSQQUUEEMMAA DDEE LLOOSS MMOODDEELLOOSS 11

MMAATTRRIICCEESS CCOOMMPPLLEETTAASS,, NN XX NN

44 MMOODDEELLOOSS ((11__11 AA 11__44))

11__11 11__22 11__33 11__44

22

SSUUBBMMAATTRRIICCEESS CCUUAADDRRAADDAASS DDEE OORRDDEENN KK XX KK,, SSIIEENNDDOO K = ½N ,, NN PPAARR.. UUNNAA SSUUBBMMAATTRRIIZZ EESSTTÁÁ LLLLEENNAA;; OOTTRRAA SSUUBBMMAATTRRIIZZ EESS CCEERROO;; YY HHAAYY DDOOSS SSUUBBMMAATTRRIICCEESS QQUUEE SSOONN TTRRIIAANNGGUULLAARREESS..

6644 MMOODDEELLOOSS ((22__11 AA 22__6644))

0 3 Estos modelos especializados son la ampliación de una idea presentada por varios autores sobre el tema de los Sistemas de Ecuaciones Lineales Simultáneas. Véase, por ejemplo a McCracken, D.D. and Dorn, W.S.: «Métodos Numéricos y Programación FORTRAN con aplicaciones en Ingeniería y Ciencia», capítulo 7, Editorial Limusa-Wiley, México, 1968.

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

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

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

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

Page 11: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 72 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

22

SSUUBBMMAATTRRIICCEESS CCUUAADDRRAADDAASS DDEE OORRDDEENN KK XX KK,, SSIIEENNDDOO K = ½N ,, NN PPAARR.. UUNNAA SSUUBBMMAATTRRIIZZ EESSTTÁÁ LLLLEENNAA;; OOTTRRAA SSUUBBMMAATTRRIIZZ EESS CCEERROO;; YY HHAAYY DDOOSS SSUUBBMMAATTRRIICCEESS QQUUEE SSOONN TTRRIIAANNGGUULLAARREESS..

6644 MMOODDEELLOOSS ((22__11 AA 22__6644)),, CCOONNTTIINNUUAACCIIÓÓNN

33

SSUUBBMMAATTRRIICCEESS CCUUAADDRRAADDAASS DDEE OORRDDEENN KK XX KK,, SSIIEENNDDOO K = ½N ,, NN PPAARR.. DDOOSS SSUUBBMMAATTRRIICCEESS SSOONN CCEERROO;; YY LLAASS OOTTRRAASS DDOOSS SSUUBBMMAATTRRIICCEESS SSOONN TTRRIIAANNGGUULLAARREESS..

3322 MMOODDEELLOOSS ((33__11 AA 33__3322))

44

SSUUBBMMAATTRRIICCEESS CCUUAADDRRAADDAASS DDEE OORRDDEENN KK XX KK,, SSIIEENNDDOO K = ½N ,, NN PPAARR.. UUNNAA DDEE LLAASS SSUUBBMMAATTRRIICCEESS EESS CCEERROO;; YY LLAASS OOTTRRAASS TTRREESS SSUUBBMMAATTRRIICCEESS SSOONN TTRRIIAANNGGUULLAARREESS..

225566 MMOODDEELLOOSS ((44__11 AA 44__225566))

SSOOLLUUCCIIÓÓNN DDEE MMOODDEELLOOSS EESSQQUUEEMMAATTIIZZAADDOO EENN LLAASS TTAABBLLAA 1111..11 A modo de ejemplos ilustrativos se presenta a continuación la solución de algunos de los modelos esquemáticos de Sistemas especializados de Ecuaciones Lineales Simultáneas listados en las tablas 8.13.1 a 8.13.5. Como metodología general, para cada modelo que se soluciona, se siguen los siguientes pasos: (1) - Ilustración del diagrama esquemático con las submatrices que constituyen el modelo, especificando -cuando sea pertinente- los parámetros concernientes al modelo en cuestión; (2) - se muestra un esquema de las ecuaciones que involucra tal diagrama esquemático; (3) - deducción de las fórmulas pertinentes para los elementos del vector solución X(), especificando que parte de los elementos se logra calcular con cada fórmula; la deducción de las fórmulas se hace paso a paso, mediante inducción abstracto-lógico-algebraica, que es una subcategoría de un método más general denominado inducción matemática4; la inducción sirve a tres propósitos5: permite descubrir hipótesis, ofrece el soporte evidencial para las generalizaciones, y facilita descubrir algo del futuro (la predicción); se elabora el algoritmo

0 4 Véase, 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.

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

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.

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.

Page 12: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 73 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

K

K

K

K K

K

K

K

N

N

Figura 11.24 Diagrama esquemático del modelo 2_5, relacionado en la tabla 11.1.

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 esquemático del modelo 2_5 presentado en la figura 11.24.

( )11,112,1

21 Xab

aX nn

n−−

−=

( )nn

ba

X1,

11

=

que implementa el proceso de cálculo implicado en las fórmulas 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 acompañan –horizontalmente- a la submatriz cero, y luego emplear esos resultados para obtener los restantes elementos del vector solución X(). Es necesario enfatizar que en todos estos modelos de ecuaciones lineales simultáneas, el objetivo es hallar los elementos del vector X(), siendo A() y B() datos conocidos. Hay dos categorías de posibilidades en la obtención 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 acompaña 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 posición de la submatriz cero. En la figura 11.24 se observa el diagrama esquemático correspondiente al modelo 2_5, listado en la tabla 11.1, siendo K = ½N y N par.

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 continuación.

De dicho esquema ecuacional se puede observar que en la ecuación nª, an,1X1 = bn, se puede resolver para el valor de X1, así, ecuación 11.7:

(11.7).

Con este valor de X1 hallado se puede resolver en la ecuación (n-1)ª para hallar X2 así: an-1,1X1 + an-1,2X2 = bn ⇒

Page 13: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 74 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

( )( )33,322,311,334,3

41 XaXaXab

aX nnnn

n−−−−

++−=

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

⎟⎟⎠

⎞⎜⎜⎝

⎛−−= ∑

=−− nn

K

jjj

nn XaXab

aX ,2

1,22

1,21

1

( )( )22,211,223,2

31 XaXab

aX nnn

n−−−

+−=

Reemplazando los valores obtenidos de X1 y de X2 en la ecuación (n-2)ª se obtiene el valor de así: an-2,1X1 + an-2,2X2 + an-2,3X3 = bn-2 ⇒ Igualmente, con los valores obtenidos de X1, X2, y de X3 se obtiene, de la ecuación (n-3)ª, el valor de X4 así: an-3,1X1 + an-3,2X2 + an-3,3X3 + an-3,4X4 = bn-3 ⇒ Con las anteriores ecuaciones se tienen suficientes elementos de análisis para obtener, por inducción abstracto-lógico-algebráica, la expresión genérica para Xi , con i = 2, K. Esta expresión genérica es la siguiente fórmula, ecuación 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 fórmulas 11.7 y 11.8. Con los valores obtenidos de X1 hasta Xk se puede obtener, ahora, los restantes valores del vector solución 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 ecuación : a1,1X1+a1,2X2+...+ a1,KXK+ a1,nXn = b1 ⇒

Con este valor hallado de Xn se puede resolver para Xn-1 en la ecuación 2ª de la siguiente forma: a2,1X1+a2,2X2+...+ a2,KXK+a2,n-1Xn-1 +a2,nXn = b2 ⇒ Con los valores hallados de Xn y Xn-1 se puede resolver para Xn-2 en la ecuación 3ª de la siguiente forma: a3,1X1+a3,2X2+...+a3,KXK+ a3,n-2Xn-2 +a3,n-1Xn-1 +a3,nXn = b3 ⇒

Igualmente, con los valores hallados para Xn , Xn-1 y Xn-2 se puede resolver para Xn-3 en la ecuación 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 ⇒

⎟⎟⎠

⎞⎜⎜⎝

⎛−= ∑

=

K

jjj

nn Xab

aX

1,11

,1

1 (11.9)

(11.8)

( )⎟⎟⎠

⎞⎜⎜⎝

⎛++−−= −−−−

=−− ∑ nnnnnn

K

jjj

nn XaXaXaXab

aX ,411,422,4

1,44

3,43

1

( )⎟⎟⎠

⎞⎜⎜⎝

⎛+−−= −−

=−− ∑ nnnn

K

jjj

nn XaXaXab

aX ,311,3

1,33

2,32

1

Page 14: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 75 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

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

Con las ecuaciones anteriores ya se tienen suficientes elementos de juicio y de análisis para inducir la expresión genérica del cálculo de Xi variando i = N-1 hasta 1. Esa expresión genérica es la representada en la fórmula siguiente, ecuación 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 solución X(). Dicho algoritmo se muestra en la figura 11.27.

Figura 11.27 Algoritmo que implementa el cálculo de los valores Xn hasta Xk+1 del vector solución 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 solución X(). En la figura 11.28 se muestra dicha integración, 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 cálculo de los valores X1 hasta Xn del vector solución 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 ecuación 11.10 es la presentada a continuación. Esta fórmula se puede emplear en lugar de la fórmula 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 solución 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 página web http://xue.unalmed.edu.co/~walvarem/APdocs .

1,1,1 1

,11

,11,1

+−−=⎟⎟⎠

⎞⎜⎜⎝

⎛−−= ∑∑

+

=+−

=+−+−

+−

knniXaXaba

Xi

njjjin

K

jjjinin

iini

(11.10)

(11.10a) ⎟⎟⎠

⎞⎜⎜⎝

⎛−−= ∑∑

+−

=+

=++

−+−

1

,11

,11,1

1 iN

Njjji

K

jjjii

iniin XaXab

aX , i = 1, K

Page 15: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 76 Clase# 11.- Aplicaciones de Arreglos, Subprogramas, Archivos, TDU – Ecuaciones Lineales Simultáneas.

1111..44 PPRRÁÁCCTTIICCAA ##1111 –– AAPPLLIICCAACCIIOONNEESS DDEE AARRRREEGGLLOOSS,, SSUUBBPPRROOGGRRAAMMAASS,, AARRCCHHIIVVOOSS,, TTDDUU,, SSEELLSS 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 1111..55 AACCTTIIVVIIDDAADDEESS EEXXTTRRAACCLLAASSEE -- TTAARREEAASS • 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 esquemático de la figura 11.30(b). En el archivo de datos la última columna es el vector B(). Resolver para hallar el vector solución X().

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

Figura 11.30 Archivo de datos y esquema diagramático para un sistema especializado de ecuaciones lineales simultáneas.

(a)

(b)

Page 16: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 77 Clase# 12.- Solución de Ecuaciones Lineales Simultáneas / Método Gauss-Jordan.

a11 a12 ... a1n 1 0 0 ... 0 a21 a22 ... a2n 0 1 0 ... 0 ... ... ... ... ... ... ... ... an1 an2 ... ann 0 0 0 ... 1

FFIIGGUURRAA 1122..22 Diagrama esquemático de la matriz ampliada, Amp(), con la cual se inician las transformaciones del Método Gauss-Jordan.

Clase #12 SSOOLLUUCCIIÓÓNN DDEE EECCUUAACCIIOONNEESS LLIINNEEAALLEESS SSIIMMUULLTTÁÁNNEEAASS // MMÉÉTTOODDOO DDEE GGAAUUSSSS--JJOORRDDAANN

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

Otro método directo para resolver Sistemas de Ecuaciones Lineales Simultáneas es el denominado Método de Gauss-

Jordan. Este método se basa en el algoritmo estándar de Gauss, visto en la clase #11, pero aprovecha la relación AX = b (12.1) para obtener la inversa de la matriz, A-1, mediante la cual es posible obtener el vector solución X(), ya que de la ecuación 12.1 se concluye que X = A-1b (12.2).

EEnn eessttee ccaappííttuulloo ssee ppllaanntteeaann llooss ssiigguuiieenntteess oobbjjeettiivvooss:: ((ii)) –– DDeessccrriippcciióónn ggeenneerraall mmééttooddoo ddee GGaauussss--JJoorrddaann;; ((iiii)) -- LLaass ddooss ffaasseess ddeell mmééttooddoo ddee GGaauussss--JJoorrddaann;; ((iiiiii)) -- SSíínntteessiiss ddeell mmééttooddoo ddee GGaauussss--JJoorrddaann;; ((iivv)) –– llooss eejjeemmppllooss yy eejjeerrcciicciiooss ddee llaa pprrááccttiiccaa ##1122 aayyuuddaann aa eenntteennddeerr llooss tteemmaass ddee llaass sseecccciioonneess ((ii)) aa ((iivv));; ((vv)) –– llaass aaccttiivviiddaaddeess eexxttrraaccllaassee yy llaass ttaarreeaass ffaacciilliittaann eell rreeffuueerrzzoo eenn eell pprroocceessoo ddee eessttuuddiioo yy ddee aapprreennddiizzaajjee ddee eessttaa ccllaassee.. 1122..11 DDEESSCCRRIIPPCCIIÓÓNN GGEENNEERRAALL DDEELL MMÉÉTTOODDOO GGAAUUSSSS--JJOORRDDAANN En la figura 12.1 se esquematizan las dos fases1 constitutivas del Método Gauss-Jordan. En la primera fase se conforma una matriz aumentada, y luego mediante el algoritmo de transformación se obtiene la inversa de la matriz de coeficientes originales. 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 asignándole 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 Simultáneas puede multiplicarse por una constante sin alterar la solución; adicionalmente, las filas (ecuaciones) pueden sumarse y sustraerse entre sí; estas transformaciones lineales guían a cambiar la forma del sistema original de modo que la matriz de coeficientes, A(), tenga una estructura que permita obtener el vector solución 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 ecuación 12.2 para obtener los elementos del vector solución X().

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

II AA II AA--11 FFIIGGUURRAA 1122..11 Esquema diagramático de las dos fases del Método de Gauss-Jordan.

Page 17: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 78 Clase# 12.- Solución de Ecuaciones Lineales Simultáneas / Método Gauss-Jordan.

11 a12 ... a1n a1 n+1 0 0 ... 0 00 a22 ... a2n a2 n+1 1 0 ... 0 ... ... ... ... ... ... .. ... .. 0 an2 ... ann an n+1 0 0 ... 1

FFIIGGUURRAA 1122..33 Diagrama esquemático de las operaciones de transformación lineal efectuadas en la columna 1, en el Método de Gauss-Jordan.

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

FFIIGGUURRAA 1122..44 Diagrama esquemático de las operaciones de transformación lineal efectuadas en la columna 2, en el Método de Gauss-Jordan.

1122..22 LLAASS DDOOSS FFAASSEESS DDEELL MMÉÉTTOODDOO GGAAUUSSSS--JJOORRDDAANN EENN DDEETTAALLLLEE Al efectuarse las dos fases3 del Método Gauss-Jordan lo que se hace- en realidad- es una doble triangulización. Los pasos son los siguientes4: (1) - Columna 1: obtener 1 en la posición (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 instrucción de asignación, desde el punto de vista del manejo interno de memoria. (2) - Columna 1: obtener 0 en la posición (2,1), para lo cual a cada elemento de la fila 2, se le resta un múltiplo de la fila 1; el factor multiplicativo es a21 : (Fila 2)’ = (Fila 2) - (Fila 1)’* a21 , es decir que se debe efectuar la siguiente instrucción de asignación: a2j = a2j - a1j * a21, para j = 1,2, ..., 2n; (3) - Columna 1: obtener 0 en la posición (i,1), lo cual implica que a cada elemento de la fila i-ésima se le resta un múltiplo 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 instrucción de asignación 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; obsérvese, también, que la columna n+1 se ha transformado.

Una vez terminado el proceso con la columna 1, el algoritmo Gauss-Jordan continúa con la columna 2 y efectúa las siguientes transformaciones lineales sobre las filas de la matriz ampliada, Amp(): (4) - Columna 2: obtener 1 en la posición (2,2), para la fila 2, la transformación 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 algorítmico- se ejecuta la siguiente instrucción de asignación de memoria: a2j = a2j / a22, para j= 1,2,.., 2n; (5) - Columna 2: obtener 0 en la posición (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 instrucción asignación: a1j = a1j - a2j* a12 para j = 1,2,..., 2n; (6) - Columna 2: obtener 0 en la posición (i,2), lo cual para la fila i-ésima, la transformación es: (Fila i)’ = (Fila i) - (Fila 2)’*ai2, para i = 1,3,4,...,n, es decir que se ejecuta la instrucción de asignación 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; obsérvese, también, que la columna n+2 se ha transformado.

((77)) -- CCoolluummnnaa kk:: oobbtteenneerr 11 eenn llaa ppoossiicciióónn ((kk,,kk)):: een la fila k-ésima, la transformación es así: (Fila k)’ = (Fila k) /akk , es decir, que se ha de ejecutar la siguiente instrucción de asignación de memoria : akj = akj / akk ,

para j = 1,2,.., 2n; (8) - CCoolluummnnaa kk:: oobbtteenneerr 00 eenn llaa ppoossiicciióónn ((11,,kk)):: para la fila 1 se opera así: (Fila 1)’ = (Fila 1) - (Fila k)*a1k , es decir, que se ha de ejecutar la instrucción de asignación siguiente: a1j = a1j – akj*a1k, para j = 1,2,..., 2n; (9) - CCoolluummnnaa kk:: oobbtteenneerr 00 eenn llaa ppoossiicciióónn ((ii,,kk)):: 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 instrucción de asignación 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 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/)..

Page 18: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 79 Clase# 12.- Solución de Ecuaciones Lineales Simultáneas / Método Gauss-Jordan.

FFIIGGUURRAA 1122..55 Diagrama esquemático de las operaciones de transformación lineal efectuadas en la columna k, en el Método de Gauss-Jordan.

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

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.

Al recorrer cada fila, se hace la transformación 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 vonvirtiéndolo en 1, por lo cual ya no es necesario transformarlo. Aunque el Método Gauss-Jordan es fácil de implementar, el número de operaciones es ligeramente superior al del Método Gauss estándar. En general, se puede demostrar que el Método Gauss-Jordan requiere aproximadamente ½(N3 + N2) operaciones5.

1122..33 SSÍÍNNTTEESSIISS DDEELL MMÉÉTTOODDOO GGAAUUSSSS--JJOORRDDAANN En resumen, las operaciones que se efectúan en el Método Gauss-Jordan son las siguientes: (i) - EEnn llaa ccoolluummnnaa kk la transformación 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 asignación: 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 continuación en la figura 12.7.

Una vez obtenida la matriz inversa, A-1, entonces es posible realizar la ecuación matricial X = A-1b para obtener el vector solución X().

Un algoritmo para el Método 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.

kk

ii == 11,, nn

0

1

0

JJ == 11,, 22nn

Columna pivote

FFIIGGUURRAA 1122..66 Esquema de los índices y sus recorridos en los procesos implicados en el algoritmo Gauss-Jordan.

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

FFIIGGUURRAA 1122..77 Esquema diagramático de la matriz ampliada trasnformada al culminar las dos fases del Método Gauss-Jordan.

Esta es la matriz inversa

Page 19: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 80 Clase# 12.- Solución de Ecuaciones Lineales Simultáneas / Método Gauss-Jordan.

En la figura 12.9 se ilustra los resultados de un proyecto Visual Basic que implementa los diferentes procesos del Método 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().

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

FFIIGGUURRAA 1122..88 Parte nuclear del algoritmo para el Método Gauss-Jordan que resuelve un Sistema de Ecuaciones Lineales Simultáneas.

FFIIGGUURRAA 1122..99 Resultados de un proyecto que implementa el Método Gauss-Jordan para resolver un Sistema de Ecuaciones Lineales Simultáneas.

Page 20: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 81 Clase# 12.- Solución de Ecuaciones Lineales Simultáneas / Método Gauss-Jordan.

1122..33 LLAA PPRRÁÁCCTTIICCAA ##1122 –– MMÉÉTTOODDOO DDEE GGAAUUSSSS--JJOORRDDAANN

• Implementar los diferentes procesos mostrados

para el Método Guass-Jordan: (i) - formar la matriz ampliada Amp(); (ii) – transformar la matriz ampliada según el algoritmo de la figura 12.8; (iii) – extraer la matriz inversa, A-1; (iv) – obtener el vector solución, X(), realizando la multiplicación 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 términos independientes, B(); en cada registro, o línea de datos, el último dato es un elemento del vector B().

Para efectos de visualización 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().

1122..44 AACCTTIIVVIIDDAADDEESS EEXXTTRRAACCLLAASSEE -- TTAARREEAASS • Ejecutar el proyecto anterior con diferentes archivos de datos (matrices de 10 x 10, 30 x 30, etc.) que se pueden descargar de

la página 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 Método Gauss-Jordan; qué implicaciones

tiene este hecho en la obtención de la solución; cuáles son las diversas estrategias que abordan este problema; cómo se implementan dichas estrategias.

• Es posible realizar el algoritmo de Gauss-Jordan empezando la iteración con la columna enésima (k = N), y efectuando las

transformaciones de filas con j = 2N, 1? Si es así, implemente el algoritmo en cuestión, ampliando –por ejemplo- el proyecto cuya interfaz se muestra en la figura 12.9, crando una opción 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: «Métodos Numéricos y Programación», 2007, capítulo 8 (este capítulo es un archivo en formato PDF que se puede descargar de la página web: http://xue.unalmed.edu.co/~walvarem/); (v) – O’Hare, Anthony: « Numerical Methods for Physicists », 2005, chapter 7.

FFIIGGUURRAA 1122..99 Interfaz gráfica de usuario para un proyecto que implementa el Método Gauss-Jordan.

FFIIGGUURRAA 1122..1100 Ejemplo de un archivo de datos para una matriz A() de 20 x 20.

Page 21: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 82 Clase# 13.- Solución de Ecuaciones Lineales Simultáneas / Métodos de Jacobi y Gauss-Seidel.

FFIIGGUURRAA 1133..11 Un esquema de la magnitud de los problemas representados con SELS.

Clase #13 SSOOLLUUCCIIÓÓNN DDEE EECCUUAACCIIOONNEESS LLIINNEEAALLEESS SSIIMMUULLTTÁÁNNEEAASS // MMÉÉTTOODDOOSS IITTEERRAATTIIVVOOSS:: JJAACCOOBBII,, GGAAUUSSSS--SSEEIIDDEELL

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

Además de los Métodos Directos para resolver un Sistema de Ecuaciones Lineales Simultáneas, existen los Métodos

Iterativos cuya característica principal es que parten de una solución supuesta, u obtenida por otros métodos, y obtienen una solución mejorada según cierto criterio estipulado de tolerancia numérica (precisión). El mecanismo general mediante el cual los Métodos Iterativos realizan su funcionalidad se basa en operaciones repetidas de cálculo, calculando una solución y probando si ya se llegó al nivel de precisión estipulado1. El problema principal de los Métodos Iterativos es que no siempre hay convergencia a una solución 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”, obsérvese la figura 13.1, que muestra a grandes rasgos la magnitud de problemas que es preciso resolver, en términos del número de incógnitas (m) de un SELS, de los requerimientos de memoria (en función de octetos), y del orden de magnitud en número de operaciones que implican los algoritmos3.

Esta tabla muestra que en unos 60 años la complejidad de los problemas, en número de operaciones, ha crecido constantemente; lo mismo las necesidades de almacenamiento. Esto ha implicado el tener que disponer de mejores máquinas de cómputo y de algoritmos más eficientes. Son muy variados los Métodos Iterativos que se han ideado y

que se aplican a problemas prácticos en áreas técnicas y de ingenierías, y es imposible cubrirlos todos en el ámbito de este capítulo; el listado que a continuación se presenta se ha elegido teniendo en cuenta el estado del arte en el tema y la ejemplificación del desarrollo histórico de estos métodos, especialmente en la solución de grandes sistemas de ecuaciones lineales simultáneas; los métodos son4: (1) – Método de Jacobi; (2) – Método de Gauss-Seidel; (3) – SobreRelajación Sucesiva (SOR); (4) – SobreRelajación Sucesiva Simétrica (SSOR); (5) – Gradiente Conjugado (CG); (6) – Minimo Residual (MINRES) y LQ Simétrico (SYMLQ); (7) – Gradientes Conjugados y Ecuaciones Normales (CGNE y CGNR); (8) – Minimo Residuo Generalizado (GMRES); (9) – Gradiente Biconjugado (BiCG); (10) – Cuasi-Mínimo Residuo (QMR); (11) – Gradiente Conjugado Cuadrado (CGS); (12) – Gradiente Biconjugado Estabilizado (Bi-CGSTAB); (13) – Iteración de Chebyshev. En detalle se estudiarán los algoritmos del Método de Jacobi y el correspondiente al Método de Gauss-Seidel; de los demás métodos se hará una breve descripción.

0 1 Hefferon, Jim: «Linear Algebra», chapter one: Chapter OneLinear Systems, Mathematics, Saint Michael’s 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.

Page 22: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 83 Clase# 13.- Solución de Ecuaciones Lineales Simultáneas / Métodos de Jacobi y Gauss-Seidel.

( )

( )

( )1n1nn,2n21n1nnn

n

nini,iii,2i21i1iii

i

n1n313212111

1

Xa...XaXaba1X

.................

XaXaXa...XaXaba1X

...............

Xa...XaXaba1X

−−

−−++−−

−−−−−=

−−−−−−−−=

−−−−−−=

jij

nniii

jij

Xa

Xa

Xa

1111,11 ...

... FFIIGGUURRAA 1133..22 Representación de cada variable Xi utilizada por el mëtodo iterativo de Jacobi.

4X1 + 2X2 + 0X3 = 2 2X1 + 10X2 + X3 = 6 0X1 + 4X2 + 7X3 = 5

FFIIGGUURRAA 1133..33 Un SELS de ejemplo.

EEnn eessttee ccaappííttuulloo ssee ppllaanntteeaann llooss ssiigguuiieenntteess oobbjjeettiivvooss:: ((ii)) –– DDeessccrriippcciióónn ggeenneerraall yy aallggoorriittmmoo ddeell MMééttooddoo ddee JJaaccoobbii;; ((iiii)) -- DDeessccrriippcciióónn ggeenneerraall yy aallggoorriittmmoo ddeell mmééttooddoo ddee GGaauussss--SSeeiiddeell;; ((iiiiii)) –– llooss eejjeemmppllooss yy eejjeerrcciicciiooss ddee llaa pprrááccttiiccaa ##1133 aayyuuddaann aa eenntteennddeerr llooss tteemmaass ddee llaass sseecccciioonneess ((ii)) yy ((iiii));; ((iivv)) –– llaass aaccttiivviiddaaddeess eexxttrraaccllaassee yy llaass ttaarreeaass ffaacciilliittaann eell rreeffuueerrzzoo eenn eell pprroocceessoo ddee eessttuuddiioo yy ddee aapprreennddiizzaajjee ddee eessttaa ccllaassee.. 1133..11 EELL MMÉÉTTOODDOO DDEE JJAACCOOBBII El Método de Jacobi, para resolver un Sistema de Ecuaciones Lineales Simultáneas, parte de la representación5 de cada elemento, Xi, del vector solución, X(), según se muestra en la figura 13.2, en la cual se despeja de cada ecuación i la variable Xi (i = 1,…,n).

En general, la ecuación genérica para Xi es así: Con base a la ecuación 13.1 se elabora el

algoritmo del Método Iterativo de Jacobi. DDEESSCCRRIIPPCCIIÓÓNN DDEELL MMÉÉTTOODDOO DDEE JJAACCOOBBII El Método Iterativo de Jacobi puede describirse por los siguientes pasos: 1. Establecer un nivel de precisión ε. 2. Suponer un vector solución 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í: 4. Calcular la diferencia entre la solución inicial XI y la solución 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 precisión ε, entonces el vector solución del sistema es XF. 4.2 De lo contrario, se reemplaza XI por XF, y con estos nuevos valores realizamos los cálculos del paso 2. XI(i) = XF(i), para todo i=1,…,n.

EEJJEEMMPPLLOO: Dado el sistema de ecuaciones, mostrado en la figura 13,3 calcular su solución por el método de Jacobi:

• Se toma como solución inicial XI = [0,0,0] y ε = 0.001. • Otra solución inicial podría obtenerse utilizando la eliminación Gaussiana. A partir de ahí,

se aplicaría el método de Jacobi para mejorar dicha solución inicial. • Se despeja de cada ecuación 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.

niXabn

ijjjiji ,...,2,1,

)(1

=⎟⎟⎠

⎞⎜⎜⎝

⎛−= ∑

≠=iii a

1X (13.1)

),...,2,1(

,)(1

ni

XIabXFn

ijjjiji

=

⎟⎟⎠

⎞⎜⎜⎝

⎛−= ∑

≠=iii a

1(13.2) Conocido XI reemplazarlo en las siguientes

ecuaciones y obtener XF

Page 23: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 84 Clase# 13.- Solución de Ecuaciones Lineales Simultáneas / Métodos de Jacobi y Gauss-Seidel.

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 '** Cálculo del error en la iteración ** ERROR = 0 For i = 1 To N ERROR = ERROR + (XI(i) - XF(i)) ^ 2 Next i ERROR = Sqr(ERROR) '** Preparación del vector XI para la próxima iteración en caso de no haber alcanzado todavía la convergencia For i = 1 To N XI(i) = XF(i) Next i Loop While (ERROR > Epsilon)

FFIIGGUURRAA 1133..44 Un algoritmo para el Método Iterativo de Jacobi, utilizando como representación la sintaxis del lenguaje de programación.

una segunda “mejor” aproximación de la solución XF. • PPRRIIMMEERRAA IITTEERRAACCIIÓÓNN: XF1 = ( 2 - 2XI2 - 0XI3 )/4; XF2 = ( 6 - 2XI1- XI3 ) /10; XF3 = ( 5 - 0XI1 - 4XI2 )/7; efectuando las

respectivas operaciones aritméticas: 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]; • CCÁÁLLCCUULLOO DDEELL EERRRROORR: Error = [(1/2-0)2 + (6/10-0)2 + (5/7-0)2]1/2; Error = 1.058; Como Error > ε = 0.001 se continúa

iterando. Se reemplazan los valores de XI por los de XF, y se calcula nuevamente XF. • SSEEGGUUNNDDAA IITTEERRAACCIIÓÓNN: La iteración 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. • TTEERRCCEERRAA IITTEERRAACCIIÓÓNN: XF1 = ( 1 - XI2 - 0XI3 )/2; XF2 = ( 6 - 2*XI1 - XI3) /10; XF3 = ( 5 - 0XI1 - 4*XI2)/7; que al efectuar las

operaciones aritméticas 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 ];

• CCÁÁLLCCUULLOO DDEE EERRRROORR: Error = [(0.0083 – 0.5)2 + (0.4286 – 0.6)2 + (0.3714 - 0.7143)2]1/2; Si Error > ε = 0.001 se continúa iterando.

• IITTEERRAACCIIOONNEESS SSUUBBSSIIGGUUIIEENNTTEESS: La iteración 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 solución será el último vector calculado XF

En la figura 13.4 se presenta un algoritmo representado con la sintaxis del lenguaje de programación. También muestra una interfaz diseñada en el entorno de programación Visual Basic.

Una interfaz diseñada contiene un menú tipo barra. Un menú tipo barra se diseña con el Editor de Menú, que es una herramienta disponible en el entorno de diseño de aplicaciones de Visual Basic.

1133..22 EELL MMÉÉTTOODDOO IITTEERRAATTIIVVOO DDEE GGAAUUSSSS--SSEEIIDDEELL El Método Gauss-Seidel6 parte de una solución inicial y calcula una nueva solución. Para cada ecuación se emplea la representación mostrada en la figuras 13.5(a) hasta 13.5(g); la fórmula 13.5(h) es la expresión genérica para calcular cada elemento Xi del vector solución X(); este método 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.

Page 24: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 85 Clase# 13.- Solución de Ecuaciones Lineales Simultáneas / Métodos de Jacobi y Gauss-Seidel.

'... Método de Gauss-Seidel 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)

FFIIGGUURRAA 1133..66 Un algoritmo en Visual Basic para el Método Iterativo de Gauss-Seidel, utilizando las fórmulas de la figura 13.5. (a)

(b)

(c)

En la figura 13.6 se visualiza un algoritmo representado utilizando la sintaxis del lenguaje de programación; también se muestra una interfaz efectuada en Visual Basic con los resultados obtenidos.

Para el

ejemplo tratado, el Método 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.

FFIIGGUURRAA 1133..55 (a) hasta (g) es la representación de cada elemento Xi utilizada en el Método Gauss-Seidel; (h) - fórmula genérica; estas f´romulas son la base para el algoritmo mostrado en la figura 13.6.

11

11

11

1 a

xab

x

n

jj

jj∑≠=

=

(a) (b) 22

1213

22

2 a

xaxabx

n

jjj −−

=∑=

(c) 33

2321314

33

3

)(

a

xaxaxabx

n

jjj +−−

=∑=

(d) 44

3432421415

44

4

)(

a

xaxaxaxabx

n

jjj ++−−

=∑=

(e) 44

4543532521516

55

5

)(

a

xaxaxaxaxabx

n

jjj +++−−

=∑=

(f) 1,1

1

111

1−−

==−−

∑∑ −−=

nn

i

kkik

n

njjjnn

n a

xaxabx

nn

n

njj

jnjn

n a

xab

x

∑≠=

=1

(g)

.,,2,1,1

nia

xab

xii

n

ijj

jiji

i K=

=

∑≠=

(h)

Page 25: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 86 Clase# 13.- Solución de Ecuaciones Lineales Simultáneas / Métodos de Jacobi y Gauss-Seidel.

FFIIGGUURRAA 1133..77 (a) - Interfaz diseñada en Visual Basic; (b) – la estructura del archivo de datos empleado.

(a)

(b)

1133..33 LLAA PPRRÁÁCCTTIICCAA ##1133 –– MMÉÉTTOODDOOSS DDEE JJAACCOOBBII YY DDEE GGAAUUSSSS--SSEEIIDDEELL En la figura 13.7(a) se muestra la interfaz de un proyecto elaborado en Visual Basic para implementar los algoritmos de los métodos 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 términos independientes, B(), que se digita en la última columna de cada registro; la matriz A() es de orden 10 x 10.

Para el proyecto correspondiente a esta interfaz implementar los algoritmos de los métodos de Jacobi y de Gauss-Seidel para resolver un SELS. En el diseño de la interfaz emplee un menú tipo barra y formularios MDI y SDI. 1133..44 AACCTTIIVVIIDDAADDEESS EEXXTTRRAACCLLAASSEE -- TTAARREEAASS • Emplear archivos de datos, como el SELS1.txt o SELS2.txt, que se pueden descargar de la página web

http://xue.unalmed.edu.co/~walvarem/Apdocs/ARCHIVOS_DATOS/, para probar el proyecto diseñado 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: «Métodos Numéricos y Programación», 2007, capítulo 8 (este capítulo es un archivo en formato PDF que se puede descargar de la página web: http://xue.unalmed.edu.co/~walvarem/); (v) – O’Hare, 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 métodos iterativos; desarrolle el algoritmo correspondiente de uno de ellos y pruébelo mediante un proyecto Visual Basic: (1) - SobreRelajación Sucesiva (SOR); (2) – SobreRelajación Sucesiva Simétrica (SSOR); (3) – Gradiente Conjugado (CG); (4) – Minimo Residual (MINRES) y LQ Simétrico (SYMLQ); (5) – Gradientes Conjugados y Ecuaciones Normales (CGNE y CGNR); (6) – Minimo Residuo Generalizado (GMRES); (7) – Gradiente Biconjugado (BiCG); (8) – Cuasi-Mínimo Residuo (QMR); (9) – Gradiente Conjugado Cuadrado (CGS); (10) – Gradiente Biconjugado Estabilizado (Bi-CGSTAB); (11) – Iteración de Chebyshev.

• ¿Existirán otros métodos iterativos, además de los enunciados previamente? Si s así, ¿cuáles son, en qué consisten, y

cuáles son sus algoritmos? (encuentre por lo menos tres métodos adicionales).

Page 26: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 87 Clase# 14.-Ajuste de Curvas por el Método de los Mínimos Cuadrados.

FFIIGGUURRAA 1144..11 Un ejemplo del análisis de regresión mostrado gráficamente. (Fuente: StatPoint, Inc., 2006).

Clase #14 AAJJUUSSTTEE DDEE CCUURRVVAASS PPOORR EELL MMÉÉTTOODDOO DDEE LLOOSS MMÍÍNNIIMMOOSS CCUUAADDRRAADDOOSS

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

El método de regresión de mínimos cuadrados consiste en encontrar la curva o función 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 función y los datos observados. El caso o ejemplo más sencillo es el ajuste de una función lineal a la serie de puntos. En esta clase se pretende básicamente Adquirir destrezas en el manejo y la implementación del método de regresión de mínimos cuadrados para ajuste de funciones a nubes de puntos (x,y); casos lineal y no-lineal. Los temas a tratar son: ((ii)) –– IInnttrroodduucccciióónn,, bboossqquueejjoo ggeenneerraall ddeell mmééttooddoo;; ((iiii)) –– ttééccnniiccaa ddee rreeggrreessiióónn lliinneeaall;; ((iiiiii)) –– ttééccnniiccaass ddee rreeggrreessiióónn nnoo--lliinneeaall;; (iv) - llooss eejjeemmppllooss yy eejjeerrcciicciiooss ddee llaa pprrááccttiiccaa ##1133 aayyuuddaann aa eenntteennddeerr llooss tteemmaass ddee llaass sseecccciioonneess ((ii)) aa ((iiiiii));; ((iivv)) –– llaass aaccttiivviiddaaddeess eexxttrraaccllaassee yy llaass ttaarreeaass ffaacciilliittaann eell rreeffuueerrzzoo eenn eell pprroocceessoo ddee eessttuuddiioo yy ddee aapprreennddiizzaajjee ddee eessttaa ccllaassee.. 1144..11 IINNTTRROODDUUCCCCIIÓÓNN –– EELL AANNÁÁLLIISSIISS DDEE RREEGGRREESSIIÓÓNN

El Análisis de Regresión1 estima las relaciones entre una o más variables de respuesta, denominadas también variables dependientes, variables explicadas, variables predictivas o regresandos), y usualmente denotadas por Y, y una o más variables denominadas variables independientes, o predIctores, o variables explicativas, O variables de control, o regresores, y usualmente denotadas por X1,...,Xp). Los modelos de Regresión Multivariada contienen más de una variable dependiente. En un modelo de regresión, los parámetros son las constantes que miden la magnitud de una regresión entre variables. El Análisis de

Regresión estima los valores de los parámetros. Los parámetros generalmente se denotan por medio de letras del alfabeto griego, como por ejemplo θ, λ, µ, γ, etc. El valor estimado de los parámetros de regresión, generalmente se denotan por letras romanas; estos estimados pueden utilizarse en cálculos para probar la significancia estadística2 de los parámetros estimados, o para determinar la bondad del ajuste entre las variables dependientes y las independientes.

Los primeros modelos de regresión fueron los modelos de Regresión Lineal basados en el Método de los Mínimos Cuadrados, publicado3 por Legendre en 1805, y por Gauss en 1809. En sí mismo, el término «Mínimos Cuadrados» fue acuñado por Legendre, en su expresión francesa «moindres carrés». Sin embargo, Gauss proclamaba un conocimiento del método desde el año 1795.

Legendre y Gauss aplicaron el método al problema de determinar, a partir de observaciones astronómicas, las órbitas de los planetas y otros cuerpos siderales alrededor del Sol. Leonard Euler trabajó el mismo problema (1748) sin mayor éxito. Gauss

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

Page 27: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 88 Clase# 14.-Ajuste de Curvas por el Método de los Mínimos Cuadrados.

eBXAY ++=

FFIIGGUURRAA 1144..22 Ajuste de una “nube de puntos” a una línea recta definida por la ecuación 13.1.

(14.1)

publicó en 1821 un desarrollo ulterior de la teoría de los mínimos cuadrados4, incluyendo una versión 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 están correlacionados, y –además- poseen varianzas iguales, el mejor estimador lineal –insesgado- de los coeficientes del modelo lineal, es el estimador de mínimos cuadrados. En forma más general, el mejor estimados insesgado de cualquier combinación lineal de los coeficientes de un modelo lineal, es el estimador de mínimos cuadrados. Esta teoría, demostrada matemáticamente, ha marcado el surgimiento, desarrollo y afianciamiento de una disciplina cimentada en un conjunto creciente de técnicas de mínimos cuadrados con ingentes aplicaciones en casi cualquier área del saber humano5.

El término "reversión" fue utilizado en el siglo 19 para describir un fenómeno biológico consistente en que la progenie (los hijos) de individuos excepcionales tienden, en promedio, a ser menos excepcionales que sus padres, y mucho más como sus ancestros lejanos. Francis Galton estudió este fenómeno al cual le asignó el término “regresión a la mediocridad” (padres de individuos excepcionales tienden a ser – en promedio menos excepcionales que sus hijos). Para Galton, la regresión tenía únicamanete este significado biológico; sin embargo, el trabajo de Galton fue extendido (entre 1877 y 1885) por Udny Yule y Kart Pearson a un contexto estadístico más general (en el periodo comprendido entre 1897 y 903). En el trabajo de Yule y Pearson, la distribución 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 distribución condicional de las variables dependientes es Gaussiana, pero que la distribución conjunta no lo es; supuesto que está más cercano a la formulación de Gauss en 1821. 1144..22 LLAA TTÉÉCCNNIICCAA DDEE RREEGGRREESSIIÓÓNN LLIINNEEAALL Un Modelo de Regresión Lineal se formula como se ilustra en la figura 14.2, que muestra el ajuste de la nube de puntos a una línea recta, definida por la ecuación 14.1.

0 Y representa la variable dependiente; X representa a la variable independiente; A, B son los parámetros de regresión lineal; e representa las diferencias entre el modelo lineal y las observaciones.

Como los datos X, Y son conocidos, el objetivo es entonces encontrar los mejores valores para los coeficientes A, B, los parámetros de regresión, tales que e 0.

Los datos, la “nube de puntos”, pueden surgir de un experimento, o de otros cálculos. El objetivo es minimizar el error que se presenta en la aproximación, que es la distancia entre el valor real y el aproximado, como se esquematiza en la figura 14.3.

0 4 Björck, Åke: «Numerical Methods for Least Squares Problems», SIAM, 1996. 5 Véase, 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; Sanjuán, Rafael; González-Candelas, Fernando; and Wróbel, 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.

Page 28: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 89 Clase# 14.-Ajuste de Curvas por el Método de los Mínimos Cuadrados.

FFIIGGUURRAA 1144..33 Esquema del error, e, en la aproximación en un modelo de regresión lineal.

Y

X

e

=−−−=∂∂

=−−−=∂∂

0))((2

0)1)((2

XBXAYBS

BXAYAS

(14.4)

(14.5)

⎥⎥⎦

⎢⎢⎣

⎡⎟⎠

⎞⎜⎝

⎛−

⎥⎥⎦

⎢⎢⎣

⎡⎟⎠

⎞⎜⎝

⎛−

⎟⎠

⎞⎜⎝

⎛⎟⎠

⎞⎜⎝

⎛−

=

∑ ∑∑∑

∑ ∑∑

= ===

= ==

N

i

N

iii

N

ii

N

ii

N

i

N

ii

N

iiii

YYNXXN

YXYXR

1

2

1

22

11

2

1 11

(14.9)

CCRRIITTEERRIIOO PPAARRAA EELL MMEEJJOORR AAJJUUSSTTEE: Como se tiene una serie de n puntos (Xi, Yi) (i=1,…,n), la acumulación de los errores está dada por la ecuación 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 ecuación 14.3.

Como el objetivo es encontrar A y B, tal que S sea mínimo, 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 ecuación 14.4 se tiene que: De la cual se puede despejar el coeficiente A, así:

De la ecuación 14.5 se puede escribir que: Con las ecuaciones 14.6 y 14.7, y reorganizando algebraicamente se llega obtener la ecuación para el coeficiente B, así:

Las ecuaciones 14.8 son la forma estándar de calcular los coeficientes de la regresión lineal, a partir d elos datos conocidos.

LLAA BBOONNDDAADD DDEELL AAJJUUSSTTEE: Para dar una idea de lo preciso que puede ser el ajuste lineal realizado, existe un indicador o coeficiente llamado coeficiente de correlación lineal R, el cual se puede calcular según la siguiente fórmula:

• El coeficiente R, de la ecuación 14.9, está en el

intervalo: -1 ≤ R ≤ 1. • Si R es cercano a 1, hay alta correlación lineal, es

decir que cuando X aumenta, Y aumenta. • Si R es cercano a -1, se dice que hay alta

correlación lineal inversa, es decir que, cuando X aumenta Y disminuye. • Si R = 0, se dice que no existe correlación lineal entre los conjuntos de datos X , Y.

En la figura 14.4 se presenta una interfaz diseñada en un proyecto Visual Basic que implementa el Método de Mínimos Cuadrados para dos conjuntos de datos Xi, Yi. Igualmente, se muestra la estructura del archivo empleado, y los resultados obtenidos.

∑∑==

−−=n

iii

n

ii BXAYe

11)(

(14.2)

(14.3) ∑∑==

−−==n

iii

n

ii BXAYeS

1

2

1

2 )(

∑∑∑ =−− 0ii XBAY

∑ ∑ ⎟⎠⎞

⎜⎝⎛−= X

NBY

NA 11

(14.6)

∑ ∑ ∑ =−− 02iiii XBXAYX (14.7)

∑ ∑∑

∑= =

=

= ==−

−−=

N

i

N

iiiN

ii

N

iii

YN

YXN

XXX

YYXXB

1 1

1

2

1 1;1;)(

))((&&&&&&

&&&

&&&&&&

(14.8) XBYA −=

Page 29: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 90 Clase# 14.-Ajuste de Curvas por el Método de los Mínimos Cuadrados.

X

Y FFIIGGUURRAA 1144..55 Un ejemplo de relación no-lineal entre los datos; podría emplearse una de las ecuaciones 14.10, como curva de regresión.

1144..33 FFÓÓRRMMUULLAASS DDEE RREEGGRREESSIIÓÓNN NNOO--LLIINNEEAALL Hay problemas paran los cuales la relación existente entre X y Y no es lineal, sin embargo ésta puede ser descrita por algún otro tipo de función. Algunos ejemplos se muestran con las ecuaciones 14.10. Y en la figura 14.5 se ilustra una relación no-lineal entre las variables.

Para cada una de las ecuaciones 14.10 puede deducirse las fórmulas mediante las cuales se obtienen los parámetros de regresión. Las ecuaciones 14.11 ilustran

los parámetros A, B, R para el caso de relación no-lineal tipo potencia:

Con las ecuaciones 14.12 se calculan los parámetros A, B, R de la relación no-lineal tipo exponencial:

FFIIGGUURRAA 1144..44 (a) – Interfaz diseñada en un proyecto Visual Basic que implementa el métodode regresión lineal, (b) – estructura del archivo empleado.

(a)

(b)

2

2210

:

...:

)()()()();(:

::

CXBXAYParabólica

XAXAXAAYPolinómica

ALogBXYLogALogXBLogYXBLogAYaLogarítmic

AeYlExponenciaAXYPotencia

NN

ee

BX

B

++=

++++=

+=+=+=

=

=

(14.10)

BAXY =

⎟⎟⎟⎟

⎜⎜⎜⎜

−=∑∑==

N

XLogB

N

YLogA

N

ii

N

ii

11)()(

exp (14.11a)

( )

N

XLogXLog

N

YLogXLogYLogXLog

BN

iiN

ii

N

i

N

ii

N

ii

ii

2

1

1

2

1

11

)()(

)()()(*)(

⎟⎠

⎞⎜⎝

⎟⎠

⎞⎜⎝

⎛⎟⎠

⎞⎜⎝

−=

∑∑

∑∑∑

=

=

=

==

(14.11b)

( ) ( )

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎡⎟⎠

⎞⎜⎝

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎡⎟⎠

⎞⎜⎝

⎟⎠

⎞⎜⎝

⎛⎟⎠

⎞⎜⎝

−=

∑∑

∑∑

∑∑∑

=

=

=

=

=

==

N

i

N

ii

i

N

i

N

ii

i

N

i

N

ii

N

ii

ii

N

YLogYLog

N

XLogXLog

N

YLogXLogYLogXLog

R

1

2

12

1

2

12

1

11

)()(

)()(

)()())()((

(14.11c)

BXAeY =

Page 30: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 91 Clase# 14.-Ajuste de Curvas por el Método de los Mínimos Cuadrados.

FFIIGGUURRAA 1144..66 Un ejemplo de interfaz para implementar el análisis de regresión, en un proyecto Visual Basic.

Y las ecuaciones 14.13 permiten calcular los parámetros A, B, R en el caso logarítmico:

1144..44 PPRRÁÁCCTTIICCAA ##1144 –– AANNÁÁLLIISSIISS DDEE RREEGGRREESSIIÓÓNN

Esta interfaz se diseña empleando un formulario MDI y uno o más formularios SDI.

En el formulario MDI se diseña un menú tipo barra, para incluir las diferentes opciones relacionadas con el análisis de regresión.

1144..55 AACCTTIIVVIIDDAADDEESS EEXXTTRRAACCLLAASSEE -- TTAARREEAASS Ampliar la interfaz mostrada en la figura 14.6 con el fin de incluir opciones para las ecuaciones de regresión no-lineal

correspondientes a las ecuaciones 14.12 y 14.13. Utilizar grupos extensos de datos (Xi,Yi) generados con la función 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 comparación entre diferentes modelos de regresión para un mismo conjunto de datos. ¿Cuál modelo se adapta, o explica, mejor a los datos? ¿Por qué?

Escoja un área técnica de la carrera en la cual usted está inscrito. Recabe suficientes conjuntos de datos para aplicar modelos de regresión. Interprete los resultados.

Lea - por lo menos - un artículo técnico, relacionado con la aplicación de los modelos de regresión en la solución de problemas propios de alguna área técnica de su carrera.

⎥⎥⎥⎥

⎢⎢⎢⎢

−=∑∑==

N

XB

N

YLogA

N

ii

N

ii

11)(

exp (14.12a)

( )2

11

2

111

1

)(1)(

⎟⎠

⎞⎜⎝

⎛−

⎟⎠

⎞⎜⎝

⎛⎟⎠

⎞⎜⎝

⎛−

=

∑∑

∑∑∑

==

===

N

ii

N

ii

N

ii

N

ii

N

iii

XN

X

YLogXN

YLogXB (14.12b)

( ) ( )

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎡⎟⎠

⎞⎜⎝

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎡⎟⎠

⎞⎜⎝

⎟⎠

⎞⎜⎝

⎛⎟⎠

⎞⎜⎝

−=

∑∑

∑∑

∑∑∑

=

=

=

=

=

==

N

i

N

ii

i

N

i

N

ii

i

N

i

N

ii

N

ii

ii

N

YLogYLog

N

XX

N

YLogXYLogX

R

1

2

12

1

2

12

1

11

)()(

)(

)()())((

(14.12c)

)( XBLogAY +=

⎟⎠

⎞⎜⎝

⎛−= ∑∑

==

N

ii

N

ii XLogBY

NA

11)(1 (14.13a)

∑ ∑

∑ ∑∑

= =

= ==

⎟⎠

⎞⎜⎝

⎛−

⎟⎠

⎞⎜⎝

⎛⎟⎠

⎞⎜⎝

⎛−

=N

i

N

iii

N

i

N

ii

N

iiii

XLogN

XLog

YXLogN

XLogYB

1

2

1

2

1 11

)(1))((

)(1)(

(14.13b)

( )⎥⎥⎦

⎢⎢⎣

⎡⎟⎠

⎞⎜⎝

⎛−

⎥⎥⎦

⎢⎢⎣

⎡⎟⎠

⎞⎜⎝

⎛−

⎟⎠

⎞⎜⎝

⎛⎟⎠

⎞⎜⎝

⎛−

=

∑∑∑

∑∑∑

===

===

2

11

22

1

2

1

2

11

1)(1)(

)(1)(

N

ii

N

ii

N

iii

N

ii

N

ii

N

iii

YN

YXLogN

XLog

YXLogN

XLogYR

(14.13c)

Page 31: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 92 Clase# 15.-Algunas aplicaciones adicionales.

Clase #15 AALLGGUUNNAASS AAPPLLIICCAACCIIOONNEESS AADDIICCIIOONNAALLEESS

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

A manera de síntesis de las clases anteriores se presentarán algunos ejemplos con problemas específicos de aplicación de la

teoría algorítmica y de la sintaxis del lenguaje de programación utilizado en este curso.

En esta clase se pretende básicamente el desarrollo de los siguientes temas: ((ii)) –– IInnttrroodduucccciióónn,, bboossqquueejjoo ggeenneerraall ddeell eennffooqquuee aallggoorrííttmmiiccoo yy ssuuss aapplliiccaacciioonneess;; ((iiii)) –– ssee eennuunncciiaann yy rreessuueellvveenn aallgguunnooss pprroobblleemmaass ddee aapplliiccaacciióónn;; (iii) - llooss eejjeemmppllooss yy eejjeerrcciicciiooss ddee llaa pprrááccttiiccaa ##1155 aayyuuddaann aa eenntteennddeerr llooss tteemmaass ddee llaass sseecccciioonneess ((ii)) aa ((iiiiii));; ((iivv)) –– llaass aaccttiivviiddaaddeess eexxttrraaccllaassee yy llaass ttaarreeaass ffaacciilliittaann eell rreeffuueerrzzoo eenn eell pprroocceessoo ddee eessttuuddiioo yy ddee aapprreennddiizzaajjee ddee eessttaa ccllaassee.. 1155..11 IINNTTRROODDUUCCCCIIÓÓNN –– EELL EENNFFOOQQUUEE AALLGGOORRÍÍTTMMIICCOO EENN LLAA SSOOLLUUCCIIÓÓNN DDEE PPRROOBBLLEEMMAASS El enfoque algorítmico 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 técnicas e ingenierías. A este respecto se dice que en las últimas 6 décadas se ha avanzado más que en los últimos 10 milenios, para dar a entender la velocidad y profundidad del cambio dramático que se ha venido instalando en las culturas humanas, impulsado por los desarrollos y aplicaciones de las tecnologías computacionales en hardware y en software. Son muchos los enfoques y metodologías desarrollados para tratar de sistematizar el proceso de solución de problemas que seguimos los humanos1. Uno de tales enfoques es TRIZ2 (pronunciado [triz]) que corresponde al acrónimo ruso de "Teoriya Resheniya Izobretatelskikh Zadatch" (Теория решения изобретательских задач), una “Teoría de la inventiva en la solución de problemas”, desarrollado por Genrich Altshuller y sus colegas desde 1946. TRIZ puede considerarse – a la vez - como una herramienta metodológica, una base de conocimientos, y una tecnología basada en modelos para generar ideas innovativas en la solución de problemas. TRIZ ya está implementado en software3, es un producto comercial, que suministra herramientas y métodos para ser utilizados en el proceso de solución de problemas: (i) – identificación y formulación del problema, (ii) – análisis y diseño de una estrategia de solución; (iii) – análisis de fallas, (iv) – modelos de la evolución del sistema. TRIZ, en contraste con otras técnicas tales como “tormenta de ideas” (la cual se base en la generación aleatoria de ideas), proporciona la logística conceptual y metodológica para crear un enfoque algorítmico en la invención de un nuevo sistema o en la mejora de un sistema existente.

Y el enfoque algorítmico está transformando las formas de pensar y de hacer, en especial en la solución numérica de problemas, pues libera al humano del esfuerzo y tiempo necesitados en los cálculos, permitiendo a las personas centrarse en los aspectos más intrincados y complejos, con altos requerimientos de talentos típicamente humanos (imaginación, ideación, perspicacia, intuición, inventiva, inspiración, intelección, “chispazo” creativo, envisionamiento, etc.) que implican la solución de problema en ciencias e ingenierías. Así mismo, propicia el libre y efectivo ejercicio de la inventiva4 en la solución de problemas complejos.

Los problemas que se presentan a continuación sólo son una mínima muestra de posibles aplicaciones técnicas e ingenieriles, en las cuales el enfoque ecuacional conjuntamente con el enfoque algorítmico, e implementados vía computadores, facilitan los

0 1 Chandrasekaran, B.:« Design Problem Solving: A Task Analysis», American Association for Artificial Intelligence., 1990. 2 Wikipedia, the free encyclopedia: «TRIZ»,February 2007 // Altshuller, Genrich: «And Suddenly the Inventor Appeared», translated by Lev Shulyak, Worcester,

MA: Technical Innovation Center, 1994. 3 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.

Page 32: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 93 Clase# 15.-Algunas aplicaciones adicionales.

FFIIGGUURRAA 1155..11 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/)

procesos de solución de problemas, en especial los procesamientos de grandes volúmenes de datos, el calcular intensivamente fórmulas extensas y complejas, y las innumerables repeticiones que implican los algoritmos actuales. Los problemas presentados están dirigidos a estudiantes de los primeros semestres de pregrado, en carreras de Ingeniería. 1155..22 AALLGGUUNNOOSS EEJJEEMMPPLLOOSS DDEE AAPPLLIICCAACCIIÓÓNN Es extremadamente extensa la gama de problemas que se han resuelto –y que se pueden resolver- por medio de algoritmos en áreas de matemáticas, ciencias e ingenierías. 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 Arquímedes, mostrar cómo este problema se resuelve con una ecuación 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 ecuación de estado de los gases5; (4) – del texto de Chapra & Canale, capítulo 12, solución de un problema de estructuras que implica utilizar un sistema de ecuaciones lineales simultáneas.

EEJJEEMMPPLLOO ##11 –– EESSFFEERRAA SSUUMMEERRGGIIDDAA EENN AAGGUUAA: 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 Arquímedes6, mostrar cómo este problema se resuelve con una ecuación no-lineal.

Según la tercera ley de Newton sobre el movimiento, “cada acción tiene una reacción 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 ecuación 15.1. Ahora, el peso de la esfera está dado por: PesoEsfera = (VolumenEsfera)*(DensidadEsfera)*(AceleraciónGravedad); esta relación se expresa matemáticamente en la ecuación 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 = aceleración debida a la gravedad terrestre (m/s2). La ecuación 15.3 es la relación matemática que expresa el empuje ascensional del agua. El empuje ascensional del agua está dado según el principio de arquinedes: EmpujeAscensional = Peso del volumen de agua desplazado; es decir: EmpujeAscensional = (VolumenEsferaSumetgida)*(DnsidadAgua)*(AceleraciónGravedad). Esta relación en la ecuación 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 ecuación 15.4; el tratamiento algebraico da que:

Si se tiene que R = 5.5 cms = 0.055 m, y γb= 0.6, entonces al reemplazar en la ecuación 15.5 se tiene la ecuación 15.6, que es una ecuación no-lineal, cuya solución –por ejemplo- con el método de Newton da el valor de X, la parte sumergida de la esfera. La figura 15.3 muestra una parte de la interfaz diseñada en Visual Basic para resolver el problema definido por la ecuación 15.6 0 5 Carnaham, Brice; Luther, H.A.; Wilkes, James O.: «Applied Numercial Methods», John Wikley and Sons, Inc., 1969, pp. 173 – 177. 6 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.

( )( )gR bρπ ⎟⎠⎞

⎜⎝⎛ 3

34

(15.2 gxRx wρπ ⎟⎠⎞

⎜⎝⎛ −

32

(15.3)

gxRxgR wb ρπρπ ⎟⎠⎞

⎜⎝⎛ −=

334 23

(15.4) 034 323 =+− wwb xRxR ρρρ 034 323 =+− xRxR

w

b

ρρ⇒

034 323 =+− xRxR bγ⇒ (15.5)

w

bb ρ

ργ =donde la gravedad específica de la esfera, γb, está dada por la

0)055.0(3)6.0()055.0(4 323 =+− xx 0165.010993.3 324 =+−× − xx⇒ (15.6)

Page 33: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 94 Clase# 15.-Algunas aplicaciones adicionales.

FFIIGGUURRAA 1155..44 Estructura del archivo de datos para el problema de los insectos.

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

FFIIGGUURRAA 1155..55 (a) - Declaración del TDU y otras variables; (b) – procedimiento que realiza la lectura del archivo de datos.

(a)

(b)

En términos prácticos, la esfera con un radio de 5.5 cms y densidad 0.6 se sumerge 4.37 cms en el agua. La función f(x), definida por la ecuación 15.6, tiene una raíz real y dos raíces complejas (véase la gráfica de f(x) en la figura 15.3). EEJJEEMMPPLLOO ##22 –– UUSSOO DDEE VVEECCTTOORREESS,, MMAATTRRIICCEESS,, SSUUBBPPRROOGGRRAAMMAASS,, AARRCCHHIIVVOOSS,, TTDDUU: EELL PPRROOBBLLEEMMAA DDEE LLOOSS IINNSSEECCTTOOSS. En el laboratorio de entomología se ha recopilado un conjunto extenso de datos sobre algunas variedades de insectos y las zonas geográficas de su habitat. La figura 15.4 presenta un ejemplo de la estructura del archivo organizado.

En este archivo cada registro (linea de datos) posee 6 campos separados por tabulador y cuyos significados son los siguientes: (i) – un código entero de 6 cifras; (ii) – el peso en gramos; (iii) – la vida en días; (iv) – la variedad de insecto, de 1 a 7; (v) – el género del insecto, “M” para macho, “H” para hembra; (vi) – la zona geográfica del hábitat, 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 desviación estándar de los pesos de los insectos por cada variedad; (4) – En cada zona geográfica cuántos y cuáles son los insectos con mayor duración en días; (5) – Cuántos insectos macho y cuántos insectos hembra hay en el conjunto de datos, y cuáles son los porcentajes con respecto al total de insectos. En la figura 15.5 se muestra la definición de variables y del TDU, y la

lectura del archivo de datos. La figura 15.6 presenta una interfaz diseñada y los resultados de la lectura de datos. Mediante un arreglo estructurado, S(), del tipo INSECTOS, es posible mezclar diferentes

FFIIGGUURRAA 1155..33 Solución de la ecuación 15.6 empleando el método de Bolzano (Bisección), en el intervalo [-5.0, 5.0].

Page 34: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 95 Clase# 15.-Algunas aplicaciones adicionales.

Private Sub mnu_CALC_Click() ReDim promPeso(nVar), nroVar(nVar), dePeso(nVar) For j = 1 To nVar promPeso(j) = 0#: nroVar(j) = 0: dePeso(j) = 0# Next j For k = 1 To N 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 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

FFIIGGUURRAA 1155..77 (a) – Procedimiento elaborado en Visual Basic; (b) – Resultados obtenidos.

(a)

(b)

(1)

(2)

(3)

tipo de datos en un vector. En la figura 15.7 se muestra un procedimiento que calcula el promedio y las desviaciones estándar d elos pesos de acda variedad de insectos; igualmente, se muestran los resultados pertinentes.

El uso de arreglos y de arreglos estructurados (del tipo TDU) facilita el efectuar los cálculos. En la sección (1) de este procedimiento se redefinen los arreglos; nVar es una constante: nVar = 7. En la sección (2) calcula el acumulado del peso para cada variedad y el número de elementos de cada variedad; al final de esta sección se despliegan los títulos y encabezados mostrados en la figura 15.7(b). En la sección (3) se calcula, para cada variedad, el promedio y la desviación estándar del peso, desplegando cada registro de salida. De igual forma, se pueden realizar los demás cálculos para este problema. EEJJEEMMPPLLOO ##33 –– EECCUUAACCIIÓÓNN DDEE EESSTTAADDOO DDEE LLOOSS GGAASSEESS: Muchas

ecuaciones de estado han sido desarrolladas para describir las relaciones P-V-T de los gases (Presión-Volumen-Temperatura). Una de las ecuaciones de estado mejor conocida, es la de Beattie-Bridgeman7, mostrada en la ecuación 15.7:

donde P es la presión; V es el volumen molar; β, γ, δ son parámetros característicos del gas, dependientes de la temperatura; y R es la constante

universal de los gases, en unidades compatibles. El segundo, tercero y cuarto término, en el lado derecho de la ecuación anterior, pueden considerarse correcciones a la ecuación de los gases ideales, ecuación 15.8; dichos términos expresan el comportamiento no-ideal de un gas. Los parámetros β, γ, δ se definen por medio de las

ecuaciones 15.9: En la ecuación

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

FFIIGGUURRAA 1155..66 (a) – Interfaz conformada por un formulario MDI y un formulario SDI; (b) – Muestra de los registros leídos del archivo de datos.

(a) (b)

(15.7)

(15.8) (15.9)

Page 35: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 96 Clase# 15.-Algunas aplicaciones adicionales.

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 paràmetros 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 iteración del método 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 End Sub

FFIIGGUURRAA 1155..88 (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.

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

(a)

(b)

(c)

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 atmósferas ( 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 específico, y dado un valor fijo de V, calcular los correspondientes de P si T varía en el rango [-100.0, +100.0], con incrementos de 5.0. En la figura 15.8 se muestra un programa para la ecuación 15.7 escrita como f(V) que se muestra en la ecuación 15.10, donde también se presenta la derivada f’(V), con el fín de utilizar el método de Newton, cuya ecuación será 15.11.

La figura 15.8 también muestra los resultados obtenidos considerando las

ecuaciones 15.10 y 15.11 y los valores de las constantes arriba estipulados. Es posible indagar por las constantes para otros gases y adaptar

el proyecto Visual Basic para efectuar los cálculos respectivos.

EEJJEEMMPPLLOO ##44 –– AANNÁÁLLIISSIISS DDEE UUNNAA CCEERRCCHHAA EESSTTÁÁTTIICCAAMMEENNTTEE DDEETTEERRMMIINNAADDAA: Un importante problema en Ingeniería estructural es el relacionado con la obtención de las fuerzas y reacciones de una cercha estáticamente determinada8, cuyo esquema diagramático 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 cómo la estructura interactúa 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 sólo 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.

5432

432

432)('

0)(

VVVVRTVf

PVVVV

RTVf

δγβ

δγβ

−−−−=

=−+++=

(15.10)

)(')(

1 VfVfVV kk −=+

(15.11)

Page 36: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 97 Clase# 15.-Algunas aplicaciones adicionales.

EENN EELL NNOODDOO 11: ΣFH = 0 = -F1Cos(30º) + F3Cos(60º) + F1,h Σ FV = 0 = -F1Sin(30º) + F3Sin(60º) + F1,v EENN EELL NNOODDOO 22: ΣFH = 0 = -F2 + F1Cos(30º) + F2,h + H2 Σ FV = 0 = F1Sin(30º) + F2,v + V2 EENN EELL NNOODDOO 33: ΣFH = 0 = -F2 – F3Cos(60º) + F3,h Σ FV = 0 = F3Sin(60º) + F3,v + V3

FFIIGGUURRAA 1155..1100 La estructura de la figura 15.9(a) se modela, o se representa, mediante este sistema de ecuaciones lineales simultáneas.

distribuye entre los diversos componentes de la cercha. La solución de este tipo de problema se puede efectuar representando la estructura como un sistema de ecuaciones lineales simultáneas. Los diagramas de cuerpo libre, para cada nodo, se muestran en las figuras 15.9(b), 15.9(c), 15.9(d). 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.

La solución de este sistema de ecuaciones lineales simultáneas se puede efectuar con alguno de los métodos vistos para resolver este tipo de modelo lineal. Por ejemplo, empleando el Método de Eliminación 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 solución corresponde al vector (F1, F21, F31, H2, V2, V3), cuyo esquema gráfico 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. El vector solución para el caso de la figura 1511(b) es: (F)T = (-866, 250, -500, -2000, -433,433). El vector solución 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 simultáneas resulta muy útil para modelar estructuras complejas. En la práctica de Ingeniería, es a veces necesario resolver cerchas con centenares, y aún miles, de componentes estructurales. Los modelos de ecuaciones lineales son una útil herramienta para estudiar el comportamiento de este tipo de estructuras.

(b) (c)

0.866 0.0 -0.5 0.0 0.0 0.0 F1 0.0 0.5 0.0 0.866 0.0 0.0 0.0 F2 -1000.0 -0.866 -1.0 0.0 -1.0 0.0 0.0 F3 0.0 -0.5 0.0 0.0 0.0 -1.0 0.0 H2 0.0 0.0 1.0 0.5 0.0 0.0 0.0 V2 0.0 0.0 0.0 -0.866 0.0 0.0 -1.0 V3 0.0

(a)

FFIIGGUURRAA 1155..1111 (a) – Sistema de ecuaciones lineales simultáneas para el problema #4; (b) – valores de la solución para vientos que soplan desde la izquierda; (c) – valores de la solución para vientos que soplan desde la derecha.

(a) (b) (c)

(d)

FFIIGGUURRAA 1155..99 (a) – Diagrama esquemático de las fuerzas en una cercha estáticamente determinada; (b), (c), (d) – Diagramas de cuerpo libre para cada nodo (fuente: Chapra & Canale, cap. 12).

=

Page 37: Notas Clases #11 a #15

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

__________________________________________________________________________________________ [email protected] Página 98 Clase# 15.-Algunas aplicaciones adicionales.

FFIIGGUURRAA 1155..1122 Ejemplo de menú tipo barra y formulario MDI, para implementar varias aplicaciones.

1155..33 PPRRÁÁCCTTIICCAA##1155 –– AAPPLLIICCAACCIIOONNEESS VVAARRIIAASS

En esta práctica se diseña 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 aplicación.

Para cada aplicación se diseña un submenú que incluye – por lo menos- la lectura de datos y los cálculos 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.

1155..44 AACCTTIIVVIIDDAADDEESS EEXXTTRRAACCLLAASSEE -- TTAARREEAASS

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 Ingeniería Civil, se ha desarrollado con Visual Basic 6.0 el programa EduShake9 que permite el diseño de diferentes tipos de estructuras. Este programa es de uso libre (FreeWare) y se puede descargar gratuitamente- con el manual de operación- de la Internet, por ejemplo en el sitio: http://www.proshake.com/download.htm. Otros programas de el área de Ingeniería Civil se pueden hallar en: http://www.unhas.ac.id/~teknik/ce/ceonline/freeware.html.

Desde Canadá hasta la Argentina, y desde España hasta Japón, pasando por China y Australia, se pueden recabar innumerables aplicaciones elaboradas con Visual Basic en áreas técnicas y de ingenierías. Una muestra de casos se puede conseguir en el sitio oficial de Microsoft, http://www.microsoft.com.

Hay muchísimos sitios en la Internet dedicados a aplicaciones de los computadores en las ingenierías. Visítese, por ejemplo, el del Instituto Holístico de Métodos Numéricos en la Universidad del Sur de Florida: http://numericalmethods.eng.usf.edu/.

También las fuentes bibliográficas son muchísimas en las cuales se pueden recabar ejemplos de aplicaciones de los computadores en la solución de problemas de ingeniería, de la administración 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 capítulo 8, se aplican los métodos para hallar raíces de ecuaciones no-lineales, mediante los problemas: leyes de los gases ideales y no-ideales, desde una perspectiva diferente de la tratada en el ejemplo #3; flujo en un canal abierto; diseño de un circuito eléctrico; análisis de vibraciones mecánicas; (ii) – en el capítulo 12 se aplican los métodos para resolver ecuaciones lineales simultánes, resolviendo problemas como: análisis de una cercha estáticamente determinada, tratada en el ejemplo#4; análisis 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.