Está en la página 1de 250

An alisis Num erico para Ingenieros Civiles

Oscar Javier Garc a-Cabrejo, Edgar Mu noz D az, Jorge Alberto Rodr guez Ordo nez, David G omez Villasante Nelson Obreg on Neira Departamento de Ingenier a Civil Facultad de Ingenier a Ponticia Universidad Javeriana Bogot a, Colombia c 2007

R 2007 Oscar Javier Garc a-Cabrejo, Edgar Mu noz D az, Jorge Alberto Rodr guez Ordo nez, David G omez Villasante, Nelson Obreg on Neira, Depto. Ingenier a Civil, Ponticia Universidad Javeriana, Bogot a, Colombia. Todos los Derechos Reservados. 5ANSI Z39.481984.

10 09 08 07 06 05 04 03 02 01

15 14 13 12 11 10 9 10 Octubre 2007 23 Noviembre 2007 19 Diciembre 2007 5 Febrero 2008

Edici on 0.1 Edici on 0.1 con correcciones Edici on 0.1 con animaciones Edici on 0.2 con correcciones menores

Indice general
Indice de Archivos Indice de Fragmentos Introducci on 1. Error relativo y cifras signicativas 1.1. Introducci on . . . . . . . . . . 1.2. Error Absoluto y Relativo . . . . 1.3. Precisi on y Exactitud . . . . . . 1.4. Error de Redondeo . . . . . . . 1.5. Estabilidad Num erica . . . . . . 1.6. N umero de condici on . . . . . .
VII IX XV

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

1 1 2 4 8 9 14 19 19 19 19 21 22 26 30 33 36 37 38 42 47 47 48 50 51

2. Serie de taylor 2.1. Introducci on . . . . . . . . . . . . 2.2. Serie y Teorema de Taylor . . . . . 2.2.1. Serie de Taylor . . . . . . . 2.2.2. Teorema de Taylor . . . . . 2.2.3. Funci on Exponencial . . . . 2.2.4. Funci on Coseno . . . . . . . 2.2.5. Funci on Seno . . . . . . . . 2.2.6. Funci on Logaritmo natural 2.2.7. Polinomio . . . . . . . . . . 2.3. Error de Truncamiento . . . . . . . 2.4. Diferenciaci on Num erica . . . . . . 2.5. Propagaci on del Error . . . . . . . 3. Soluci on ecuaciones no lineales 3.1. Introducci on . . . . . . . . 3.2. Tipos de Ra ces . . . . . . . 3.3. M etodos Abiertos . . . . . . 3.3.1. M etodo Gr aco . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . . .

. . . .
I

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

II

INDICE GENERAL 3.3.2. M etodo de la Bisecci on . . . . . . 3.4. M etodos Cerrados . . . . . . . . . . . . 3.4.1. M etodo de Newton . . . . . . . . 3.4.2. M etodo de la Secante . . . . . . 3.4.3. M etodo de la Secante Modicado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 66 66 75 82 89 89 89 90 95 95 96 100 100 102 109 109 111 117 119 126 126 128 134 139 139 140 146 147 148 150 150 153 159 161 161 163

4. Polinomios 4.1. Evaluaci on de Polinomios . . . . . . . . . . . . . . . . . . . . . . 4.1.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.1.2. Evaluaci on de polinomios con MATLAB R . . . . . . . . . 4.2. Deaci on Polinomial o Divisi on Sint etica . . . . . . . . . . . . . . 4.2.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.2.2. Divisi on Sint etica de polinomios con MATLAB R . . . . . . 4.3. M etodo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.3.2. Determinaci on de las ra ces de polinomios usando el m etodo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. M etodo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.4.2. Determinaci on de las ra ces de un polinomio usando el m etodo de Bairstow . . . . . . . . . . . . . . . . . . . . . 4.4.3. Divisi on Sint etica por factor cuadr atico . . . . . . . . . . . 4.4.4. Soluci on de la ecuaci on cuadr atica . . . . . . . . . . . . . 4.5. M etodo de Laguerre . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.5.2. Determinaci on de la ra ces de polinomios usando el m etodo de Laguerre . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3. Determinaci on de todas las ra ces de un polinomio . . . . 5. M etodos Directos 5.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1. Tipos de Matrices . . . . . . . . . . . . . . . . . . . . . . . 5.1.2. Matrices Densas y Dispersas . . . . . . . . . . . . . . . . . 5.1.3. Transformaciones Elementales . . . . . . . . . . . . . . . 5.2. Soluci on de sistemas triangulares . . . . . . . . . . . . . . . . . . 5.3. Eliminaci on Gaussiana con Pivoteo . . . . . . . . . . . . . . . . . 5.3.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.3.2. Soluci on de Sistemas de Ecuaciones con Eliminaci on Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.3. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4. Descomposici on LU con pivoteo . . . . . . . . . . . . . . . . . . . 5.4.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.4.2. Procedimineo de Descomposici on LU . . . . . . . . . . . .

INDICE GENERAL 5.4.3. Soluci on de sistemas lineales con descomposici on LU . . . 5.4.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5. Inversa de una matr z . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.5.2. C alculo de la Matr z Inversa . . . . . . . . . . . . . . . . . 5.5.3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6. Descomposici on de Cholesky . . . . . . . . . . . . . . . . . . . . 5.6.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.6.2. Descomposici on de Cholesky . . . . . . . . . . . . . . . . 5.6.3. Soluci on de sistemas de ecuaciones por medio de descomposici on de Cholesky . . . . . . . . . . . . . . . . . . . . . 5.6.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7. Matrices de Coecientes Bandeadas . . . . . . . . . . . . . . . . . 5.7.1. Sistemas Tridiagonales . . . . . . . . . . . . . . . . . . . . 6. M etodos Iterativos 6.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. M etodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3. M etodo de Gauss-Seidel y Relajaci on . . . . . . . . . . . . . . . . 6.3.1. Soluci on de sistemas lineales de ecuaciones . . . . . . . . 6.3.2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4. Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1. Fundamentos conceptuales . . . . . . . . . . . . . . . . . 6.4.2. Interpretaci on gr aca . . . . . . . . . . . . . . . . . . . . 6.4.3. Soluci on usando gradiente conjugado . . . . . . . . . . . 6.4.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5. Gradiente Conjugado Precondicionado . . . . . . . . . . . . . . . 6.5.1. Fundamentos conceptuales . . . . . . . . . . . . . . . . . 6.5.2. Aplicaci on del m etodo del Gradiente conjugado precondicionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5.3. Funci on precondicionador . . . . . . . . . . . . . . . . . .

III

167 171 173 173 173 176 177 177 179 182 185 187 187 195 195 195 197 201 205 210 210 212 214 218 222 222 223 226

IV

INDICE GENERAL

Indice de guras
1.1. Ilustraci on gr aca de los conceptos de exactitud y precisi on . . . 1.2. Interpretaci on geom etrica de los conceptos de error hacia adelante y error hacia atr as . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Interpretaci on geom etrica del error combinado hacia delante y atr as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 10 13

2.1. Un ejemplo gr aco de la serie de Taylor para la funci on cos (x) en x = 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2. Ejemplo del teorema del valor medio. . . . . . . . . . . . . . . . 23 2.3. Gr aca de la funci on exponencial . . . . . . . . . . . . . . . . . . 24 2.4. Gr aca de la funci on coseno . . . . . . . . . . . . . . . . . . . . . 27 2.5. Tri angulo empleado para la denici on de las funciones trigonom etricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.6. Gr aca de la funci on sin (x) . . . . . . . . . . . . . . . . . . . . . 31 2.7. Gr aca de la funci on logaritmo natural . . . . . . . . . . . . . . . 34 3.1. Gr aca de la profundidad contra el valor de la funci on f (h). El valor de la ra z es aproximadamente 6.0 m . . . . . . . . . . . . . 3.2. a). Existe al menos una ra z en el intervalo [xl , xu ] si la funci on cambia de signo. b). Pero puede presentarse la situaci on que exista m as de una ra z si la condici on se cumple. . . . . . . . . . . . . 3.3. En este caso se presenta una situaci on en donde la funci on tiene valores positivos en los extremos del intervalo pero existen ra ces en este. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Lago con forma irregular. Para determinar la dimensi on caracter stica de este se aproxima la forma mediante una cirfunferencia de radio r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Ejemplo de aplicaci on del m etodo de la Bisecci on o b usqueda binaria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6. Interpretaci on geom etrica del m etodo de Newton . . . . . . . . . 3.7. Ejemplo de aplicaci on del m etodo de Newton . . . . . . . . . . .
V

54

56

57

57 58 67 68

VI

INDICE DE FIGURAS 3.8. Interpretaci on geom etrica del m etodo de la secante. La recta secante (en color gris) se dene entre los puntos f (xi1 ) y f (xi ) y con esta se aproxima el nuevo valor de la ra z. . . . . . . . . . . . 3.9. Ejemplo de aplicaci on del m etodo de la secante . . . . . . . . . .

76 78

4.1. Interpretaci on gr aca del m etodo de Muller . . . . . . . . . . . . 101 6.1. Soluci on de un sistema lineal de ecuaciones usando gradiente conjugado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Indice de Archivos
"bairstow.m" Denido por 111. "biseccion.m" Denido por 60. "cambiarFilas.m" Denido por 158a. "Cholesky.m" Denido por 179. "CholeskySol.m" Denido por 182b. "cos_taylor.m" Denido por 28a. "deflacion2.m" Denido por 117c. "deflacion_polinomial.m" Denido por 96. "der_manning.m" Denido por 73a. "evaluacion_polinomio.m" Denido por 90. "exp_taylor.m" Denido por 24a. "funcion_prueba.m" Denido por 109. "GaussSeidel.m" Denido por 201a. "gauss_pivoteo.m" Denido por 154a. "GradienteConjugado.m" Denido por 214a. "laguerre.m" Denido por 128a. "log_taylor.m" Denido por 35a. "LUdec3.m" Denido por 188a. "LUsol3.m" Denido por 189b. "LUSolucion.m" Denido por 167b. "lu_pivoteo.m" Denido por 163a. "matInv.m" Denido por 174a. "muller.m" Denido por 102. "newton.m" Denido por 70a. "PCG.m" Denido por 223a. "precondicionador.m" Denido por 226b. "prueba_manning.m" Denido por 52. "raices_polinomios.m" Denido por 135a. "secante.m" Denido por 79a. "secante_mod.m" Denido por 84. "sin_taylor.m" Denido por 31. "solucion_cuadratica.m" Denido por 119d.

VII

VIII

INDICE DE ARCHIVOS

odigo Indice de Fragmentos de C


Bairstow: Ciclo extracci on de raices de polinomio n >= 3 113a Referenciado en 111. Bairstow: Declaraci on de variables 112b Referenciado en 111. Bairstow: Denici on de la funci on 112a Referenciado en 111. Bairstow: Extracci on de raices de polinomio n <= 2 116c Referenciado en 111. Bisecci on: Ciclo Principal 62a Referenciado en 60. Bisecci on: Declaraci on de la funci on 61a Referenciado en 60. Bisecci on: Inicializaci on de variables 61b Referenciado en 60. Cholesky: Asignaci on de resultados 182a Referenciado en 179. Cholesky: Ciclo Principal 181a Referenciado en 179. Cholesky: Declaraci on de la funci on 180a Referenciado en 179. Cholesky: Inicializaci on de variables 180b Referenciado en 179. CholeskySol: Declaraci on de la funci on 182c Referenciado en 182b. CholeskySol: Descomposici on de Cholesky 183b Referenciado en 182b. CholeskySol: Inicializaci on de variables 183a Referenciado en 182b. CholeskySol: Sustituci on hacia adelante 183c Referenciado en 182b. CholeskySol: Sustituci on hacia atr as 184 Referenciado en 182b. Ciclo Principal Bairstow: Asignaci on de raices obtenidas 116b Referenciado en 113a. Ciclo Principal Bairstow: Calcular error e incrementar contador 115b Referenciado en
113a.

Ciclo Principal Bairstow: Determinar raices 115c Referenciado en 113a. Ciclo Principal Bairstow: Extracci on coecientes Polinomio resultante 116a Referenciado en 113a.

Ciclo Principal Bairstow: Inicializaci on del error 113b Referenciado en 113a. Ciclo Principal Bairstow: Modicar los valores de r y s 114b Referenciado en 113a. Ciclo Principal Bairstow: Realizar divisi on sint etica 114a Referenciado en 113a. Ciclo Principal Bisecci on: Asignaci on de resultados 64b Referenciado en 62a. Ciclo Principal Bisecci on: C alculo de las funciones 62c Referenciado en 62a. Ciclo Principal Bisecci on: C alculo error e incremento iteraciones 64a Referenciado en
62a.

Ciclo Principal Bisecci on: C alculo nueva soluci on 62b Referenciado en 62a. Ciclo Principal Bisecci on: Donde esta la soluci on 63a Referenciado en 62a. Ciclo Principal Cholesky: Asignaci on elementos diagonal 181c Referenciado en 181a. Ciclo Principal Cholesky: Asignaci on elementos fuera diagonal 181b Referenciado en
181a.

Ciclo Principal Descomposici on LU con Pivoteo: cambiar las las 166a Referenciado en
165a.
IX

INDICE DE FRAGMENTOS
Ciclo Principal Descomposici on LU con Pivoteo: chequear si es matr z singular 165c
Referenciado en 165a.

Ciclo Principal Descomposici on LU con Pivoteo: determinar el Pivot 165b Referenciado


en 165a.

Ciclo Principal Descomposici on LU con Pivoteo: fase de eliminaci on 166b Referenciado


en 165a.

Ciclo Principal Gauss: Cambiar las las 157a Referenciado en 155b. Ciclo Principal Gauss: Chequear si es matr z singular 156b Referenciado en 155b. Ciclo Principal Gauss: Determinar el Pivot 156a Referenciado en 155b. Ciclo Principal Gauss: Fase de eliminaci on 157b Referenciado en 155b. Ciclo Principal GaussSeidel: Actualizaci on de la soluci on 204a Referenciado en 203b. Ciclo Principal GaussSeidel: C alculo del error e incremento de las iteraciones 204b
Referenciado en 203b.

Ciclo Principal GradienteConj: Actualizaci on de la soluci on 216b Referenciado en 215b. Ciclo Principal GradienteConj: C alculo del 216a Referenciado en 215b. Ciclo Principal GradienteConj: C alculo del residuo 216c Referenciado en 215b. Ciclo Principal GradienteConj: Calculo de error e incrementar iteraciones 217 Referenciado en 215b.

Ciclo Principal GradienteConj: Determinaci on de direcci on de b usqueda 216d Referenciado en 215b.

Ciclo Principal Inversa: Almacenamiento soluci on 175d Referenciado en 175b. Ciclo Principal Inversa: Soluci on sistema lineal 175c Referenciado en 175b. Ciclo Principal Laguerre: Actualizaci on de la ra z 131b Referenciado en 129b. Ciclo Principal Laguerre: Actualizaci on de valores 131d Referenciado en 129b. Ciclo Principal Laguerre: C alculo de G y H 130b Referenciado en 129b. Ciclo Principal Laguerre: C alculo de error e incremento de iteraciones 131c Referenciado en 129b.

Ciclo Principal Laguerre: C alculo del denominador 130c Referenciado en 129b. Ciclo Principal Laguerre: Chequear si es ra z 130a Referenciado en 129b. Ciclo Principal Laguerre: Determinaci on del signo 131a Referenciado en 129b. Ciclo Principal Laguerre: Prueba de la ra z 129c Referenciado en 129b. Ciclo Principal Muller: Actualizaci on de la ra z 106b Referenciado en 104b. Ciclo Principal Muller: Actualizaci on puntos 107 Referenciado en 104b. Ciclo Principal Muller: C alculo coecientes par abola 105b Referenciado en 104b. Ciclo Principal Muller: C alculo de h y 105a Referenciado en 104b. Ciclo Principal Muller: C alculo del error e incremento de iteraciones 106c Referenciado
en 104b.

Ciclo Principal Muller: C alculo del indicador 105c Referenciado en 104b. Ciclo Principal Muller: Denici on de la correcci on 106a Referenciado en 104b. Ciclo Principal Newton: Actualizaci on soluci on 72a Referenciado en 71b. Ciclo Principal Newton: Asignaci on de resultados 72c Referenciado en 71b. Ciclo Principal Newton: C alculo error e incremento iteraciones 72b Referenciado en
71b.

Ciclo Principal PCG: Actualizaci on de la soluci on 225b Referenciado en 224c. Ciclo Principal PCG: Actualizaci on direcci on de b usqueda 225d Referenciado en 224c. Ciclo Principal PCG: C alculo del 225a Referenciado en 224c.

XI

Ciclo Principal PCG: C alculo del residuo 225c Referenciado en 224c. Ciclo Principal PCG: Calculo de error e incrementar iteraciones 226a Referenciado en
224c.

Ciclo Principal Raices: Correci on de la ra z obtenida 137b Referenciado en 136b. Ciclo Principal Raices: Inicializaci on variables 136c Referenciado en 136b. Ciclo Principal Raices: aplicaci on del m etodo de Laguerre 137a Referenciado en 136b. Ciclo Principal Raices: divisi on sint etica 137c Referenciado en 136b. Ciclo Principal Secante Modicado: Actualizaci on soluci on 86c Referenciado en 86a. Ciclo Principal Secante Modicado: Almacenamiento de resultados 87b Referenciado
en 86a.

Ciclo Principal Secante Modicado: C alculo error e incremento iteraciones 87a Referenciado en 86a.

Ciclo Principal Secante Modicado: c alculo factor de correcci on 86b Referenciado en


86a.

Ciclo Principal Secante: Actualizaci on soluci on 81b Referenciado en 80b. Ciclo Principal Secante: Almacenamiento de resultados 81d Referenciado en 80b. Ciclo Principal Secante: C alculo error e incremento iteraciones 81c Referenciado en
80b.

Ciclo Principal Secante: Evaluaci on funci on dos puntos iniciales 81a Referenciado en
80b.

Ciclo principal Deaci on2: Coecientes 119b Referenciado en 119a. Ciclo principal Deaci on2: Derivada 119c Referenciado en 119a. Coseno Taylor: C alculo sumatoria 29 Referenciado en 28a. Coseno Taylor: Inicializaci on funci on 28b Referenciado en 28a. Deaci on2: Ciclo principal 119a Referenciado en 117c. Deaci on2: Declaraci on funci on 118a Referenciado en 117c. Deaci on2: Inicializaci on de variables 118b Referenciado en 117c. DeacionPolinomial: Ciclo Principal 98 Referenciado en 96. DeacionPolinomial: Declaraci on de la funci on 97a Referenciado en 96. DeacionPolinomial: Inicializaci on de variables 97b Referenciado en 96. Derivada Manning: C alculo derivada 73d Referenciado en 73a. Derivada Manning: Declaraci on de la funci on 73b Referenciado en 73a. Derivada Manning: Inicializaci on de variables 73c Referenciado en 73a. Descomposici on LU con Pivoteo: Asignaci on de resultados 167a Referenciado en 163a. Descomposici on LU con Pivoteo: Ciclo Principal 165a Referenciado en 163a. Descomposici on LU con Pivoteo: Declaraci on de la funci on 163b Referenciado en 163a. Descomposici on LU con Pivoteo: Determinar valores para escalamiento 164b Referenciado en 163a.

Descomposici on LU con Pivoteo: Inicializaci on de variables 164a Referenciado en 163a. Determinaci on de raices: C alculo del discriminante 120d Referenciado en 120c. Determinaci on de raices: Raices diferentes 121a Referenciado en 120c. Determinaci on de raices: Raices iguales 121b Referenciado en 120c. EvaluacionPolinomio: Ciclo principal 92 Referenciado en 90. EvaluacionPolinomio: Declaraci on de Funci on 91a Referenciado en 90. EvaluacionPolinomio: Inicializaci on de Variables 91b Referenciado en 90. Exponencial Taylor: C alculo sumatoria 25 Referenciado en 24a.

XII

INDICE DE FRAGMENTOS

Exponencial Taylor: Inicializaci on funci on 24b Referenciado en 24a. Extracci on raices Polinomio n <= 2: Polinomio grado 1 117b Referenciado en 116c. Extracci on raices Polinomio n <= 2: Polinomio grado 2 117a Referenciado en 116c. Gauss con Pivoteo: Asignaci on de salida 159b Referenciado en 154a. Gauss con Pivoteo: C alculo del determinante 159a Referenciado en 154a. Gauss con Pivoteo: Ciclo principal 155b Referenciado en 154a. Gauss con Pivoteo: Declaraci on de la funci on 154b Referenciado en 154a. Gauss con Pivoteo: Determinar valores para escalamiento 155a Referenciado en 154a. Gauss con Pivoteo: Sustituci on hacia atr as 158b Referenciado en 154a. GaussSeidel: Ciclo Principal 203b Referenciado en 201a. GaussSeidel: Declaraci on de la funci on 201b Referenciado en 201a. GaussSeidel: Escalamiento 202b Referenciado en 201a. GaussSeidel: Inicializaci on de variables 202a Referenciado en 201a. GaussSeidel: Obtener soluci on inicial 203a Referenciado en 201a. GradienteConj: Ciclo principal 215b Referenciado en 214a. GradienteConj: Inicializaci on de variables 215a Referenciado en 214a. GradienteConj: declaraci on de la funci on 214b Referenciado en 214a. GradienteConjugadoPrecond: Ciclo Principal 224c Referenciado en 223a. GradienteConjugadoPrecond: Declaraci on de la funci on 223b Referenciado en 223a. GradienteConjugadoPrecond: Denici on del Precondicionador 224a Referenciado en
223a.

GradienteConjugadoPrecond: Inicializaci on de variables 224b Referenciado en 223a. InversaLU: Chequear si es matr z cuadrada 174c Referenciado en 174a. InversaLU: Ciclo Principal 175b Referenciado en 174a. InversaLU: Declaraci on de la funci on 174b Referenciado en 174a. InversaLU: Inicializaci on de la matr z 175a Referenciado en 174a. LU Sistemas Tridiagonales: Ciclo principal 189a Referenciado en 188a. LU Sistemas Tridiagonales: Declaraci on funci on 188b Referenciado en 188a. LU Sistemas Tridiagonales: Inicializaci on variables 188c Referenciado en 188a. LUSolucion: C alculo del determinante 169a Referenciado en 167b. LUSolucion: Declaraci on de la funci on 168a Referenciado en 167b. LUSolucion: Descomposici on LU 168c Referenciado en 167b. LUSolucion: Inicializaci on de variables 168b Referenciado en 167b. LUSolucion: Organizaci on por pivoteo 169b Referenciado en 167b. LUSolucion: Sustituci on hacia adelante 169c Referenciado en 167b. LUSolucion: Sustituci on hacia atr as 170 Referenciado en 167b. Laguerre: Chequear si se obtuvo ra z 132 Referenciado en 128a. Laguerre: Ciclo Principal 129b Referenciado en 128a. Laguerre: Declaraci on de la funci on 128b Referenciado en 128a. Laguerre: Inicializaci on de variables 129a Referenciado en 128a. Logaritmo Taylor: C alculo de la sumatoria 35c Referenciado en 35a. Logaritmo Taylor: Inicializaci on de la funci on 35b Referenciado en 35a. Modicar r y s: Actualizar r y s 115a Referenciado en 114b. Modicar r y s: C alculo del determinante 114c Referenciado en 114b. Muller: Ciclo Principal 104b Referenciado en 102. Muller: Declaraci on de la Funci on 103 Referenciado en 102.

XIII

Muller: Inicializaci on de variables 104a Referenciado en 102. Newton: Ciclo Principal 71b Referenciado en 70a. Newton: Declaraci on de la funci on 70b Referenciado en 70a. Newton: Inicializaci on de variables 71a Referenciado en 70a. Precondicionador Diagonal 228c Referenciado en 228a. Precondicionador de Gauss-seidel 229a Referenciado en 228a. Precondicionador de Jacobi 228b Referenciado en 228a. Precondicionador de Relajaci on Sucesiva 229b Referenciado en 228a. Precondicionador: Chequear la opci on de precond 227b Referenciado en 226b. Precondicionador: Declaraci on de la funci on 226c Referenciado en 226b. Precondicionador: Inicializaci on de variables 227a Referenciado en 226b. Precondicionador: Seleccionar opci on 228a Referenciado en 226b. Prueba Manning: Declaraci on de la Funci on 53a Referenciado en 52. Prueba Manning: Evaluaci on funci on 53c Referenciado en 52. Prueba Manning: Inicializaci on de variables 53b Referenciado en 52. Raices Polinomios: Ciclo Principal 136b Referenciado en 135a. Raices Polinomios: Declaraci on de la Funci on 135b Referenciado en 135a. Raices Polinomios: Inicializaci on de variables 136a Referenciado en 135a. Secante modicado: Ciclo principal 86a Referenciado en 84. Secante modicado: Declaraci on de la funci on 85a Referenciado en 84. Secante modicado: Inicializaci on de las variables 85b Referenciado en 84. Secante: Ciclo principal 80b Referenciado en 79a. Secante: Declaraci on de la funci on 79b Referenciado en 79a. Secante: Inicializaci on de las variables 80a Referenciado en 79a. Seno Taylor: C alculo sumatoria 32b Referenciado en 31. Seno Taylor: Inicializaci on funci on 32a Referenciado en 31. Soluci on Cuadr atica: Denici on funci on 120a Referenciado en 119d. Soluci on Cuadr atica: Determinaci on de las raices 120c Referenciado en 119d. Soluci on Cuadr atica: Inicializaci on de variables 120b Referenciado en 119d. Soluci on Sistemas Tridiagonales: Declaraci on funci on 189c Referenciado en 189b. Soluci on Sistemas Tridiagonales: Descomposici on LU 190b Referenciado en 189b. Soluci on Sistemas Tridiagonales: Inicializaci on variables 190a Referenciado en 189b. Soluci on Sistemas Tridiagonales: Sustituci on hacia adelante 190c Referenciado en 189b. Soluci on Sistemas Tridiagonales: Sustituci on hacia atr as 191 Referenciado en 189b. Soluci on: ra z en mitad inferior 63b Referenciado en 63a. Soluci on: ra z en mitad superior 63c Referenciado en 63a. Soluci on: ra z encontrada 63d Referenciado en 63a.

XIV

INDICE DE FRAGMENTOS

Introducci on
Wandering an endless journey Dead within a trace Entering a lost dominion soulless and free Visiting a foreign place but yet so known Another dimension opens for me to see . . . en Entrance de Dimmu Borgir La principal pregunta que se debe estar haciendo el lector es: Por qu e raz on se escribi o este libro?. La respuesta: Hasta el conocimiento de los autores, no existe un material que trate sobre m etodos num ericos con una orientaci on especica a Ingenieros Civiles. Este texto fue escrito pensando en una audiencia conformada por estudiantes de Ingenier a Civil de pregrado, que hayan aprobado los cursos de C alculo diferencial e integral, pensamiento algor tmico y probabilidad y estad stica. El pensamiento algor tmico brinda las herramientas necesarias para la implementaci on de los diferentes m etodos num ericos en un lenguaje de programaci on. En este caso particular se va a utilizar MATLAB R , ya que este es una aplicaci on que se ha convertido en un est andar para la implementaci on de procedimientos num ericos en muchos campos de la Ingenier a y la Ingenier a Civil no es la excepci on. A pesar de esto, el libro hace enfasis en la explicaci on de los diferentes m etodos num ericos y no en la programaci on; ya que por lo general la mayor a de los estudiantes de Ingenier a Civil no son programadores, ni Ingenieros de Sistemas, sino que tienen una orientaci on hacia la soluci on de problemas concretos. Los estudiantes que habitualmente toman el curso en Ingenier a Civil quieren conocer sobre los fundamentos de los diferentes m etodos num ericos y como se pueden utilizar para resolver problemas concretos dentro de la disciplina. En esta situaci on no se espera que los estudiantes desarrollen su propio c odigo sino que empleen uno dise nado con anterioridad por dos razones: 1. Poder resolver problemas r apidamente mediante la combinaci on de c odigo ya desarrollado. 2. Adquirir una fundamentaci on mucho m as s olida en programaci on estudiando la forma como un m etodo ha sido implementado en un lenguaje de programaci on
XV

XVI

INTRODUCCION

ltima raz Consideramos que la u on es de vital importancia, ya que una de las labores fundamentales de cualquier persona que se dedique a desarrollar software (a un en la escala que se requiere para los nes del presente curso), consiste en poder leer claramente c odigo desarrollado con el n de integrarlo en aplicaciones que resuelvan problemas particulares. Esta situaci on motiv o a presentar el c odigo explicado usando la metodolog a denominada programaci on literaria. La programaci on literaria es una metodolog a desarrollada por Donald Knuth en 1982 la cual tiene como premisa fundamental que el c odigo de los programas se debe escribir como una obra literaria, con la nalidad del entendimiento del mismo por parte de otros programadores. En la pr actica de la programaci on literaria se combinan la documentaci on destinada a los usuarios del programa y el nico archivo, de tal forma c odigo del programa destinado al computador en un u que se puedan mantener una correspondencia directa entre la documentaci on y el c odigo fuente. La presentaci on de la estructura de los programas se dene de tal manera que maximice el entendimiento por parte del lector. Los libros de an alisis num erico se pueden dividir en dos grandes categor as: los que est an orientados hacia las caracter sticas matem aticas del m etodo o los que se orientan a la utilizaci on de una herramienta particular. Los primeros presentan informaci on importante sobre el m etodo como tal y generalmente incluyen un seudoc odigo que le permite al usuario implementar el procedimiento en cualquier lenguaje de programaci on. En los libros del segundo tipo, tienen un enfoque m as hacia la pr actica con una herramienta particular y por lo tanto no presentan informaci on conceptual detallada del m etodo que es de vital importancia para el entendimiento del mismo. Un texto de an alisis num erico que combine las ventajas de las dos aproximaciones antes mencionadas junto con ejemplos concretos en Ingenier a Civil no existe y este es el espacio que se quiere llenar con el presente trabajo. En este libro se explican los fundamentos conceptuales de cada m etodo, sus principios, ventajas y desventajas y se incluyen tanto ejemplos de c alculos ma nuales como usando MATLAB R Los temas incluyen aquellos tratados en el curso de An alisis Num erico para Ingenieros Civiles, tal y como se dicta en el Depto de Ingenier a Civil de la Ponticia Universidad Javeriana, Bogot a. ltimo esperamos que este texto facilite la apertura de la dimensi Por u on de los m etodos num ericos y que de ahora en adelante ud los pueda usar en diferentes situaciones que se le van a presentar en la universidad, as como en la vida profesional. Los autores, Bogot a, Colombia.

Cap tulo 1 Error relativo y cifras signicativas


1.1. Introducci on

son aproximaciones para la obtenci on de soluciones de modelos matem aticos estos siempre van a tener un cierto grado de error. Cuanticar y entender dicho error es de vital importancia para los Ingenieros Civiles ya que muchas veces se cuenta solamente con el resultado de un modelo num erico para tomar decisiones importantes que involucran costos econ omicos importantes y por lo tanto es importante determinar si las soluciones obtenidas son conables o no. Para la gran mayor a de personas el t ermino error implica algo que se ha hecho mal. Sin embargo en el caso de los m etodos num ericos este t ermino tiene un contexto m as positivo y permite juzgar la calidad de una soluci on obtenida. La gran mayor a de m etodos que se van a tratar en este curso se dise naron de tal forma que aseguran que se obtiene el m nimo error posible, o en otras palabras, que convergen a la soluci on deseada. Estos errores son de vital importancia en el modelamiento num erico ya que en general ninguna medici on y/o estimaci on de par ametros que se ingresan en los modelos num ericos est a libre de error e incertidumbre, y la situaci on se agrava mucho m as cuando se tiene en cuenta la capacidad del computador para manejar las cantidades num ericas. En estos casos es necesario calcular el error que se presenta en las diferentes operaciones aritm eticas (lo cual es tema del siguiente cap tulo), as como tambi en el error presente tanto en los problemas como tal y en los procedimientos num ericos con los que se resuelven estos. Los errores num ericos son algo inevitable y por lo tanto es importante que aprendamos a convivir con ellos. Lo que podemos hacer en este caso es conocer en que situaciones aparecen y como se determinan en situaciones concretas, el cual corresponde al objetivo central de este cap tulo.

ADO QUE LOS M E TODOS NUM E RICOS

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

1.2.

Error Absoluto y Error Relativo

Los errores Absoluto y Relativo son dos tipos de errores con los cuales el analista num erico se va a encontrar todo el tiempo, y por lo tanto se debe estar familiarizado con estos conceptos. Denici on 1 tiles de exacSea x0 una aproximaci on al n umero real x. Las medidas m as u titud son el denominado error absoluto que se dene: EABS = |x x0 | y el error relativo: EREL = |x x0 | |x| (1.2) (1.1)

y el cual no est a denido para x = 0. Este error relativo tambi en se puede expresar como porcentaje de la siguiente forma: EREL = |x x0 | 100 % |x| (1.3)

El error relativo es la medida m as empleada en los problemas de an alisis num erico ya que est a dada en porcentaje y por lo tanto se puede usar para realizar comparaciones.

1.2. ERROR ABSOLUTO Y RELATIVO Ejemplo (Error absoluto y relativo)

Supongamos que ud realiz o unas mediciones en el laboratorio para la determinaci on de la densidad de una muestra de agua de un r o para un estudio de abastecimiento de un acueducto municipal. En condiciones normales la densidad del agua es REAL = 1 gr/cm3 y el resultado de se obtuvo fue de M ED = 1.04 gr/cm3 . En este caso el error absoluto en la densidad est a dado por: EABS = 1.04 gr/cm3 1.0 gr/cm3 = 0.04 gr/cm3 el cual es num ericamente igual al error relativo dado por: EREL = 1.04 gr/cm3 1.0 gr/cm3 = 0.04 gr/cm3 = 4.0 % 1.0 gr/cm3

Como se sabe la densidad del agua en la gran mayor a de ocasiones no es igual a 1.0 gr/cm3 , sino que en este caso tiene un valor igual a REAL = 1.07 gr/cm3 debido a las sales que tiene en soluci on. En este caso el error absoluto es igual a: EABS = 1.04 gr/cm3 1.07 gr/cm3 = 0.03 gr/cm3 y el error relativo: EREL = 1.04 gr/cm3 1.07 gr/cm3 = 0.028 gr/cm3 = 2.8 % 1.07 gr/cm3

El error relativo es un concepto relacionado con las denominadas cifras signicativas. Estas se denen como las primeras cifras que no son cero y todos los digitos subsiguientes. De esta forma 1.7320 tiene 5 cifras signicativas, mientras que 0.0491 tiene solamente 3. A primera vista el concepto de cifras signicativas puede parecer obvio e intuitivo pero esto no es correcto, ya que en muchas situaciones la determinaci on de las mismas se puede volver problem atica. Supongamos que un valor dado x0 tiene p cifras decimales, por lo tanto si nos preguntamos cuantas cifras correctas o cifras signicativas tiene x0 ?, existen solamente p + 1 respuestas posibles. Esto indica que el n umero de cifras signcativas p de un n umero no es una medida conable y denitiva de la precisi on de un valor x0 . De acuerdo a lo expuesto anteriormente se presenta la siguiente denici on de cifras signicativas:

4 Denici on 2

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

Una aproximaci on x0 de x tiene p cifras signicativas si x0 y x se pueden redondear al mismo valor con p cifras signicativas. El procedimiento de redondeo consiste en reemplazar valor dado con el n umero m as cercano con p cifras signicativas usando alguna regla para denir alguna de las cifras cuando hay dos valores cercanos. No existe una forma unicada para determinar cuantas cifras signicativas tiene un n umero, ya que esto depende del procedimiento como se ha determinado (mediciones y c alculos). Sin embargo si existen criterios que facilitan determinar el n umero de cifras signicativas de un n umero dado, y los cuales se presentan a continuaci on: 1. Los d gitos que sean diferentes de ceros son signicativos siempre. 2. Los ceros ubicados antes de otros d gitos no son signicativos; 0.235 tiene 3 cifras signicativas 3. Los ceros ubicados entre otros n umeros son siempre signicativos; 3205.8 tiene 5 cifras signicativas 4. Los ceros ubicados al nal de un n umero son signicativos si est an a la izquierda del punto decimal (como en el numeral anterior), en otro caso no se puede decir nada acerca de si son signicativos o no. Por ejemplo, el n umero 3500 tiene al menos dos cifras signicativas, pero dependiendo de como fue obtenido podr a tener 3 o 4. Con el n de evitar problemas para la comunicaci on efectiva de valores num ericos se ha desarrollado la notaci on cient ca, de tal forma que esta es la manera recomendada para la presentaci on de los valores num ericos. En este caso el n umero de decimales usado en el n umero de la base debe hacerse atendiendo a la forma como se obtuvo dicho valor.

1.3.

Precisi on y Exactitud: Dos conceptos esquivos

La precisi on y exactitud son dos conceptos que se presentan frecuentemente como equivalentes, y en la vida diaria (no t ecnica) pueden emplearse como sin onimos; sin embargo, en este curso de An alisis Num erico se tiene que hacer la diferencia entre estos, de tal forma que se denen a continuaci on:

Y EXACTITUD 1.3. PRECISION Denici on 3

La exactitud se dene como el error absoluto o relativo que tiene una cantidad aproximada o medida. La precisi on de un valor hace referencia al n umero de d gitos/cifras que emplean para expresar dicho valor, y por lo tanto se puede concebir como la exactitud con la cual se presentan los valores y la forma como realizan las operaciones aritm eticas. La exactitud y la precisi on tienen valores num ericos iguales en el caso de operaciones escalares como una suma c = a + b o un producto c = a b. Sin embargo, en algunos casos la exactitud puede ser peor que la precisi on como ocurre en los procedimientos de soluci on de sistemas lineales de ecuaciones. En las aplicaciones cient cas la precisi on se relaciona con el n umero de cifras o d gitos/lugares decimales con las cuales se realizan las mediciones y por lo tanto sirven para expresar los valores num ericos. En este mismo contexto, la exactitud estar a relacionada con la posici on decimal en la cual el valor comienza a tener errores y por lo tanto ya no se puede tener un 100 % de seguridad sobre el mismo. Un aspecto muy importante a tener en cuenta cuando se presenten valores num ericos consiste en que estos se deber an presentar con el n umero de d gitos decimales con que fueron medidos, con el n de no dar una impresi on falsa precisi on. Por ejemplo, se determin o la densidad de una muestra de madera de pino en 500.0 kg/m3 el cual se est a presentando con una cifra decimal, y este valor ser a diferente si se expresara como 500.000 kg/m3 y por lo tanto en la gran mayor a de ocasiones resulta muy dif cil determinar la precisi on real de las mediciones y/o determinaciones reportadas en la literatura. Una forma gr aca de entender los conceptos de precisi on y exactitud se presenta en la Figura 1.1. En esta gura en la parte superior izquierda se presenta un caso en el cual rea blanco. los dardos se encuentran repartidos uniformemente sobre toda el a En este caso particular se la exactitud es baja, ya que los dardos no se aproximan al blanco. En cuanto a la precisi on esta tambi en es baja ya que otra forma de concebir la precisi on es relacion andola con la dispersi on que presentan los valores entre si. La raz on de esta idea corresponde al hecho que si las mediciones tienen una mayor precisi on esto implica que tienen un mayor n umero de decimales y por lo tanto las diferencias entre los valores se van a poder resolver con mejor detalle. Por ejemplo, si se tienen mediciones de fuerzas realizadas con un dinam omentro cuya escala de medici on solo reporta d ecimas de Newton se podr an obtener valores de 12.5 N o 5.4 N. Pero en el caso que se cuente con otro dispositivo de medida cuya escala permita obtener mediciones del tipo 12.549 N o 5.395 N, las diferencias entre estas medidas van a tener m as decimales y

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

Figura 1.1: Ilustraci on gr aca de los conceptos de exactitud y precisi on por lo tanto se consideran que son m as precisas. En la parte superior derecha de la gura se presenta el caso en donde la exactitud mejora considerablemente ya que los dardos se agrupan alrededor del blanco. As mismo la precisi on se incrementa cuando se compara con la situaci on explicada anteriormente, sin embargo la dispersi on alrededor del blanco sigue siendo evidente. En la parte inferior izquierda se aprecia una situaci on en la cual la exactitud es baja (ya que los dardos no se encuentran cerca del blanco), pero la precisi on es alta ya que la dispersi on entre los valores no es tan alta como en el primer caso analizado. En la parte inferior derecha se presenta una situaci on en la cual tanto la precisi on como la exactitud es alta, ya que los valores no presentan una gran dispersi on entre si y se encuentran alrededor del blanco.

Y EXACTITUD 1.3. PRECISION Ejemplo (Exactitud y Precisi on en la medida de la masa de un suelo)

En un trabajo de geot ecnia se han obtenido muestras de un suelo arcilloso y se quiere realizar un ensayo en donde se requieren una muestra de 500 gr. Con el n de separar la cantidad necesaria el laboratorio cuenta con dos balanzas, una de ellas an aloga y la otra digital. La balanza an aloga tiene una escala de medici on en marcas de 100 gr, mientras que la balanza digital tiene un display en donde se pueden hacer lecturas de d ecimas de gramo. Con la balanza an aloga ud puede separar los 500 gr de suelo teniendo cuidado de medir bien usando la escala, mientras que la misma cantidad se puede determinar de forma mucho m as f acil usando la balanza digital debido a que el display tiene un mayor n umero de decimales. En este caso se dice que la balanza digital es m as precisa que la an aloga y que la precisi on es un concepto que est a relacionado con la facilidad con la que se puede medir una cantidad. En este caso esta facilidad de medici on se encuentra relacionada con el n umero de decimales Ahora supongamos que se tiene una muestra de suelo de 300 gr, y esta se pesa utilizando los dos tipos de balanza mencionados anteriormente. En la balanza an aloga la manecilla del indicador marca exactamente 300 gr, mientras que la balanza digital muestra en la pantalla un valor de 307.5894587 gr. Si suponemos que la masa de la muestra de suelo es exactamente 300 gr, entonces quiere decir que la balanza an aloga est a mostrando el valor verdadero y por lo tanto podemos decir que es m as exacta que la balanza digital, ltima nos muestra un mayor n a pesar que esta u umero de decimales en la determinaci on de la masa. Es de vital importancia entender los conceptos de precisi on y exactitud en las mediciones, ya que estas son las que se explican en los cursos de Laboratorio ya sea de F sica y/o Qu mica. Sin embargo en el presente curso se pone especial enfasis en la forma como se aplican estos conceptos en procedimientos/algoritmos num ericos empleados para resolver problemas de Ingenier a. De la discusi on de los p arrafos anteriores se sabe que la exactitud est a relacionada con la facilidad para obtener el valor verdadero (lo cual implica que el error absoluto o relativo sea peque no). En el an alisis num erico este concepto es inherente y propio del algoritmo o procedimiento num erico que se est e empleando y se recomienda seleccionar un m etodo que asegure la obtenci on de la respuesta con el m nimo error posible. Por otra parte, la precisi on ya no depende tanto del algoritmo, sino del equipo con el cual se realicen los c alculo. Hasta hace unos a nos los PC que se utilizaban para labores de escritorio ten an procesadores con 32 bits, caracter sticas que determina la precisi on de las operaciones matem aticas que puede realizar el equipo. Hoy en d a con el desarrollo de los procesadores de 64 bits, los computadores pueden representar n umeros con un mayor n umero de decimales tanto en la mantisa como en el exponente, lo cual es de vital importancia para las personas que se dedican a realizar modelamien-

8 to num erico.

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

1.4.

Error de Redondeo

Un computador no puede almacenar los n umeros con una precisi on perfecta, y este es representado mediante un n umero nito de bytes. La mayor a de los lenguajes de programaci on permiten que el usuario dene si los procedimientos se van a realizar con n umeros de precisi on simple (8 bytes) o de precisi on doble (16 bytes). Sin embargo algunos paquetes computacionales como MATLAB R trabajan por defecto con n umeros de doble precisi on (16 bytes). Para problar la precisi on de MATLAB R se puede emplear el siguiente c odigo: >>x=1; >>for i=1:1:10000;x=x-1.0e-16;end; >>x x = 0.99999999999888978 La cuesti on es que en este caso el valor de x deber a ser igual a 1.0, ya que el valor que se le esta restando es muy cercano a 0. En realidad, si en lugar de 1.0 1016 se coloca 1.0 1017 obs erve como cambia la respuesta. Esto es un indicio del error de redondeo para operaciones entre n umeros de doble precisi on que maneja MATLAB R valor que es igual a = 1.0 1016 . Esto quiere decir que existe un l mite para las diferencias entre n umeros que se van a operar: Si la diferencia entre estos es menor que entonces los dos n umeros se pueden considerar iguales. As mismo en el caso que se operen dos n umeros rdenes de magnitud se va a introducir un error de cuya diferencia sea varios o redondeo que se va a apreciar en la 16-ava cifra decimal, lo cual es aceptable para la gran mayor a de problemas. Esto es evidente en el siguiente c odigo de MATLAB R >>x=pi x = 3.14159265358979312 >>x=x-(5/3)*1e10 x = - 16666666663.5250759 >>x=x+(5/3)*1e10 x =

RICA 1.5. ESTABILIDAD NUME

3.14159202575683594 De este ejemplo resuta claro que el valor de x obtenido al nal no es igual al valor de especicado inicialmente. Esta situaci on se agrava a un m as si el valor que multiplica al 5/3 se incrementa (ver problemas).

1.5.

Estabilidad Num erica: Errores hacia adelante y hacia atr as

La estabilidad num erica de un algoritmo es una caracter stica importante que debe tenerse en cuenta en el momento de seleccionar un procedimiento para resolver un problema particular. Supongamos que un algoritmo num erico brinda una aproximaci on y0 al valor de una funci on dada y = f (x). El valor de y0 en general no ser a igual al valor verdadero y , ya que el procedimiento num erico empleado est a sujeto a diferentes tipos de errores (redondeo, truncamiento, etc). La pregunta importante en estas situaciones es: C omo se puede determinar la calidad de y0 ?. Una posible respuesta a esta inquietud la brinda el concepto del error relativo (ecuaci on 1.2), ya que se busca una soluci on que cumpla EREL (y0 ) p, donde p es la precisi on que maneja la m aquina. As mismo se puede determinar la calidad de una aproximaci on y0 mediante el error absoluto (ecuaci on 1.1), siempre y cuando se conozca el valor verdadero o un valor de referencia para realizar la comparaci on. En estos dos casos se dice que se ha realizado un an alisis de error hacia delante. En la gran mayor a de oportunidades es mejor considerar el error relativo (ecuaci on 1.2) como medida de estabilidad en lugar del error absoluto (ecuaci on 1.1), ya que el primero se expresa como porcentaje y por lo tanto puede ser empleado para realizar comparaciones. Sin embargo el problema de juzgar la calidad de una aproximaci on y0 se puede abordar desde una perspectiva diferente. En lugar de darle importancia al resultado, es decir a y0 , se puede determinar para que valores de x se obtiene dicha aproximaci on. Eso se puede expresar como cu al es el valor m nimo x para el cual se tiene que f (x + x) = y0 ?. Evidentemente existen muchos valores de x para los cuales se cumplen la condici on anterior, pero en este caso se desea determinar el valor m nimo, con lo cual el error quedar a denido como: EAtr as = |x| x (1.4)

El procedimiento de determinar y limitar el valor de EAtr alisis as se denomina an de error hacia atr as y hay dos razones por las cuales es muy importante:

10
x

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS


y = f (x)

Error hacia atras Error hacia delante x + x

y0 = f (x + x)

Figura 1.2: Interpretaci on geom etrica de los conceptos de error hacia adelante y error hacia atr as 1. De acuerdo con la ecuaci on (1.4) los errores de truncamiento se pueden interpretar como perturbaciones en los datos. Si el error hacia atr as es peque no comparado con x entonces la aproximaci on y0 es buena. 2. Limitar el error hacia adelante y y0 se puede analizar mediante herramientas de la teor a de la perturbaci on Una interpretaci on gr aca tanto del error hacia delante como hac a atr as aparece en la gura 1.2. El error hacia delante puede ser cuanticado tanto por el error absoluto como por el error relativo, y para la determinaci on de este se requiere conocer el valor verdadero. Es por esta raz on que este aparece en la parte derecha de la gr aca. En el caso del error hac a atr as este se puede cuanticar usando el valor de x. Denici on 4 Se dice que un algoritmo es estable hacia atr as, si el error hacia atr as es peque no para todos los valores de x. La denici on anterior tiene un problema: denir cuando un valor de error es peque no. Generalmente esta denici on depende del contexto y del problema de estudio, ya que generalmente un valor se puede considerar peque no cuando se aproxima a la precisi on p del computador en donde se calcule.

RICA 1.5. ESTABILIDAD NUME Ejemplo (Topograf a: C alculo del Per metro de un Pol gono)

11

rea triangular, Suponga que se quiere determinar el per metro de un a cuyos lados se midieron con cinta m etricia arrojando los valores a, b y c. Ahora suponga que las mediciones obtenidas con la cinta m etrica tiene un error determinado que corresponden a a, b y c. En este caso el per metro rea en estudio estar del a a dado por: = (a + a) + (b + b) + (c + c) = (a + b + c) + (a + b + c) = P + P P donde P = a + b + c. El error hacia atr as, dado por la ecuaci on (1.4), para esta situaci on corresponder a a: EAtr as (P ) = |P | |a + b + c| = P a+b+c

Debido a que P depende de los valores de a, b y c, se tiene que si estos valores son peque nos entonces el P tambi en ser a peque no. Esto implica que tanto la determinaci on del per metro de un pol gono es una operaci on estable hacia atr as y por lo tanto la suma es una operaci on de este tipo. En este caso particular si tanto a 0, b 0 y c 0 y por lo tanto P 0, el resultado obtenido ser a exacto.

Denici on 5 Se dice que un algoritmo es estable hacia adelante si su error hacia adelante dividido por el n umero de condici on del problema es peque no. El error hacia adelante puede corresponder al error absoluto y/o relativo.

12

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

Ejemplo (Algoritmo estable hacia delante) Se quiere determinar la estabilidad num erica para la funci on f (x) = sqrt(x). En este caso se procede de la siguiente forma: >> y=sqrt(2) y = 1.41421356237310 >> z=y.^2 z = 2.00000000000000 Ahora si calculamos la diferencia entre el valor verdadero 2.0 y z y se obtiene el error absoluto: >>err_a=2-z err_a = -4.440892098500626e-016 y el error relativo en este caso es igual a: err_r=abs(err_r)/2.0 err_r = 2.220446049250313e-016 el cual es muy cercano a la precisi on que maneja MATLAB R para n umeros de doble precisi on. Esto indica que el error relativo obtenido en la determinaci on de la ra z cuadrada del n umero 2 es muy cercano a la precisi on de las operaciones que se est an empleado y por lo tanto esta aproximaci on se considera buena. Para efectos pr acticos se emplea otra denici on de estabilidad num erica denominada estalidad mixta, la cual combina el error hacia delante y el error hacia atr as. Denici on 6 Se dice que un algoritmo tiene estabilidad mixta si existe un x tal que tanto x sea peque no y que f (x + x) y0 sea peque no. y0 + y = f (x + x), |y | |y |, |x| |x| (1.5)

La interpretaci on geom etrica de este error aparece en la gura 1.3. En esta gura se puede apreciar que para un valor x especicado se obtiene una aproximaci on y0 . Pero cuando se especica x + x no se obtiene y0 sino en su lugar se obtiene un valor de y0 + y , lo cual indica que hay otra componente de error

RICA 1.5. ESTABILIDAD NUME

13

presente. Esto hace que aparezca la estabilidad mixta en lugar de los otros tipos de estabilidad ya discutidos.
x y = f (x) Error hacia delante Error hacia atras y0

x + x

f (x + x)

Figura 1.3: Interpretaci on geom etrica del error combinado hacia delante y atr as

14

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

Ejemplo (Funci on trigonom etrica coseno) La funci on cos (x) aparece en un gran n umero de relaciones f sicas que reas de la ingenier se emplean en diferentes a a civil. La mayor a de los procedimientos que existen para calcularla no cumplen la condici on y0 = cos (x + x) para un x peque no, sino que en lugar de esto tienen la caracter stica y0 + y = cos (x + x), donde x y y son valores relativamente peque nos. Por ejemplo, se desea calcular el valor de la funci on y = cos (x) para un x = /2. El valor real en este caso es igual a >>x=0.5*pi; >>y=cos(x) y = 0.00000000000000006 o en t erminos concretos 6 1017 es un valor pr acticamente igual a 0. Si ahora se dene: >>deltax=1.0e-10; >>y1=cos(x+deltax) y1 = - 0.00000000009999995 se puede calcular y como: >>deltay=y1-y deltay = - 0.00000000010000001 lo cual es igual a 11010 . En este caso particular el valor del y es claramente mayor que la precisi on con la que se realizan los c alculos con n umeros de doble precisi on, indicando que el algoritmo para calcularla tiene estabilidad mixta.

1.6. Un concepto Importante: El n umero de Condici on


Una de las grandes interrogantes que surgen en este momento es c omo determinar si un algoritmo num erico es estable o no?, o en otras palabras, c omo se puede determinar a-priori si la soluci on al problema num erico planteado no

1.6. NUMERO DE CONDICION va a presentar incovenientes cuando lo implemente en un computador?.

15

En los m etodos num ericos, el n umero de condici on de un problem particular es una medida de la facilidad con la cual se puede resolver usando c alculo en un computador, es decir, si el computador lo puede resolver sin que se explote durante el intento. Un problema con un n umero de condici on bajo se dice que est a bien condicionado, mientras que un problema en donde este n umero sea alto se denomina mal-condicionado. Tanto el error hacia delante como el error hacia atr as se encuentran relacionados. El punto de conexi on es el denominado n umero de condici on. Esta relaci on se encuentra expresada por: Denici on 7 El n umero de condici on se dene como c(x) = xf (x) f (x) (1.6)

donde f () es la funci on de inter es y f () es su derivada. Este valor mide la sensibilidad que tiene la soluci on como consecuencia en peque nas perturbaciones en los datos de entrada. La denici on anterior se aplica en situaciones en donde se conoce la funci on y una condici on importante que debe cumplir dicha funci on es que sea derivable. A continuaci on se presente un ejemplo para la determinaci on del n umero de condici on:

16

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

Ejemplo (N umero de condici on) Determinar el n umero de condici on para la funci on f (x) = (x) en x = 2. Para esto es necesario determinar la derivada de esta funci on, la cual es igual a: 1 f (x) = x1/2 2 El n umero de condici on se puede determinar f acilmente en MATLAB R de la siguiente forma: >>x=2; >>fx=sqrt(2); >>der_fx=0.5*x.^(-0.5) der_fx = 0.35355339059327 >>num_condicion=abs(x*der_fx/fx) num_condicion = 0.50000000000000 el cual es menor a 1.0 y por lo tanto la determinaci on de la ra z cuadrada de 2 en MATLAB R se puede considerar como una operaci on bien condicionada. As mismo el n umero de condici on se emplea para dar una denici on formal de la estabilidad hacia adelante, lo cual en este caso particular: >>error_delante=abs(err_a)/num_condicion error_delante= 8.881784197001252e-016 obteni endose nuevamente un valor muy cercano a la precisi on con la que MATLAB R maneja las operaciones de n umeros de doble precisi on, con lo cual se corrobora que el algoritmo con el que se calcula la ra z cuadrada es estable hacia delante. La relaci on entre el n umero de condici on y los errores hacia delante y hacia atr as se puede expresar como: Error hacia delante = N umero de Condici on Error hacia atr as (1.7)

aunque el igual se debe tomar con cuidado. Esta ecuaci on implica que un problema mal condicionado se caracterizar por un error hacia delante alto. El n umero de condici on mide que tanto el error en los valores de entrada se propaga durante la obtenci on de la soluci on de un procedimiento num erico y por lo tanto mide la forma como este afecta el error hacia delante. En el caso de la gura 1.2 se puede apreciar para el x dado el valor del error hacia delante es mayor

1.6. NUMERO DE CONDICION

17

que la magnitud de x implicando que se tiene un n umero de condici on mayor a 1.0.

18

CAP ITULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS

Cap tulo 2 Serie de Taylor y Error de Truncamiento


2.1. Introducci on

se explic o que las series de potencia son una herramienta importante en varias ramas de la matem atica tanto pura como aplicada. El ejemplo m as claro de esto corresponde a la posibilidad de emplear dichas series para solucionar ecuaciones diferenciales ordinarias. En este problema, las series son empleadas como un equivalente de la soluci on de dicha ecuaci on diferencial, lo cual implica que estas series se pueden utilizar para aproximar funciones. Esto tiene serias consecuencias para el an alisis num erico, en donde el analista/Ingeniero debe trabajar con aproximaciones a funciones en lugar de las funciones reales. Por lo tanto las series de potencias y especialmente la serie de Taylor, estudiadas en el curso de C aculo I y C alculo vectorial, son un punto de partida para el entendimiento de los errores de representaci on que aparecen en el an alisis num erico. El presente cap tulo es una introducci on a la serie de Taylor y las implicaciones que tiene este en la cuanticaci on del error y la representaci on de modelos matem aticos.

TICAS, N LOS CURSOS PREVIOS DE MATEM A

2.2.
2.2.1.

Serie y Teorema de Taylor


Serie de Taylor

Los polinomios son funciones muy f aciles de calcular ya que involucran solamente operaciones sencillas (sumas, restas, multiplicaciones, entre otras). Sin embargo existen otras funciones que no corresponden a esta categor a (funci on exponencial, trigonom etricas, logaritmos, etc) los cuales no se pueden calcular tan f acilmente. La serie de Taylor permite aproximar dichas funciones como polinomios (ver Figura 2.1, para un ejemplo con la funci on cos (x)) y por lo tanto 19

20

CAP ITULO 2. SERIE DE TAYLOR

til para calcularlas de forma m brinda un medio u as sencilla que con la funci on original. Esto es precisamente lo que hacen las calculadoras y los computadores cuando se invocan cualquiera de estas funciones. A continuaci on se presenta un teorema que dene dichas series: Teorema 1 Sea f una funci on continua en el intervalo cerrado [a, b] y derivable en el intervalo abierto (a, b), entonces f (x) se puede aproximar a partir del valor de f (x0 ) como una serie de potencias de la forma: f (x) f (x0 ) + f (x0 )(x x0 ) +
+

f (x0 ) (x x0 )2 + . . . 2!

=
k=0

f k (x0 ) (x x0 )k k!

(2.1)

donde k ! es el factorial de k , y f (k) (x0 ) corresponde al valor de la k esima derivada de la funci on f () evaluada en el punto x0 . La derivada de orden 0 de f por denici on es igual a f y (x x0 )0 es igual a 1.

1.5

0.5

f(x)

0.5 f(x)=cos(x) f(x)=1f(x)=cos(x) 2 g(x)=1x g(x)=1 /2 f(x)=cos(x) 2 42 g(x)=1x g(x)=1 /2 g(x)=1x /2+x /4! f(x)=cos(x) 2 42 6 4 2 g(x)=1.0 g(x)=1x /2 g(x)=1x g(x)=1x /2+x /4!x /2+x /6! /4! f(x)=cos(x)
2 42 6 4 2 8 6/ f(x)=cos(x) g(x)=1.0x /2 g(x)=1x g(x)=1x /2+x g(x)=1x /4!x /2+x g(x)=1.0 /6!+x /4!x /2+x /8! /6! 4! 2

1.5 6 4 2 0 2

.0

Figura 2.1: Un ejemplo gr aco de la serie de Taylor para la funci on cos (x) en x = 0.0

2.2. SERIE Y TEOREMA DE TAYLOR

21

La importancia de la serie de Taylor radica en que es posible conocer el valor de una funci on f () en un punto x a partir del conocimiento de la funci on en un punto cercano x0 si se conocen todas las derivadas de f en dicho punto. As mismo la serie de Taylor permite expresar cualquier funci on f () como una serie de potencias como la dada en la ecuaci on 2.1, si se conocen la derivadas de la funci on. Esto es de vital importancia en el an alisis num erico, ya que existen muchas funciones que no se pueden calcular directamente pero no ocurre lo mismo con su serie de Taylor; la cual resulta muy sencillo de obtener. Sin embargo queda a un un punto de vital importancia: C omo puede ser de utilidad la serie de Taylor si se trata de una serie innita?. Para resolver este problema es necesario recurrir al denominado Teorema de Taylor.

2.2.2.

Teorema de Taylor

El teorema de Taylor permite llevar al mundo real el importante concepto tra do por la Serie de Taylor: Cualquier funci on se puede aproximar como un polinomio. Este teorema se encuentra enunciado a continuaci on: Teorema 2 Si n 0 es un entero y f es una funci on que es continua y se puede derivar nveces en el intervalo cerrado [a, b], y n + 1-veces diferenciable en el intervalo abierto (a, x), entonces se tiene que :
n

f (x) =
k=0

f k (x0 ) (x x0 )k + Rn k!

(2.2)

donde x, x0 [a, b] y (x) Intervalo entre x y x0 y Rn se le denomina el residuo de la aproximaci on. Este t ermino de residuo est a dado por: Rn = f (n+1) ( (x)) (x x0 )n+1 (n + 1)! (2.3)

Este teorema establece que cualquier funci on f () se puede aproximar como un polinomio cuyos coecientes dependen de las derivadas de la funci on. La gran diferencia con la serie de Taylor corresponde al hecho que para realizar la aproximaci on ahora se tiene una serie con un n umero nito de t erminos m as un t ermino residual. Por lo tanto, este t ermino residual corresponde a una sumatoria innita de t erminos y en general no ser a posible determinarlo. Sin embargo a nivel pr actico se tiene que el residual Rn 0, cuando n + de tal forma que su determinaci on no resulta tan necesaria. Con todo esto el estudio de Rn brinda informaci on importante acerca del error de truncamiento que se incurre cuando se emplea la serie de Taylor, lo cual se tratar a con m as detalle en la secci on 2.3.

22

CAP ITULO 2. SERIE DE TAYLOR

niA pesar que el valor de no se puede determinar de forma concreta, lo u co que podemos decir de este es que se encuentra en el intervalo [x, x0 ]. Esto se desprende del denominado teorema del valor medio. Este teorema se puede enunciar de la siguiente forma: Teorema 3 Sea f : [a, b] R una funci on continua en el intervalor cerrado [a, b] y derivable en el intervalo abierto (a, b), entonces existe un valor c [a, b] tal que: f (b) f (a) f (c) = (2.4) ba Este teorema aparece en el curso de c alculo I y establece que si se tiene una curva suave en un intervalo dado [a, b], existe un punto en dicho intervalo para el cual la derivada de la curva es igual a la derivada promedio de dicha curva en el intervalo. Este teorema se emplea para extraer conclusiones globales acerca de una funci on a partir de informaci on local representada por las derivadas en un conjunto de puntos en un intervalo dado. Este teorema se puede entender usando un ejemplo de cinem atica: Si un veh culo viaja 100 km en una hora, entonces la velocidad promedio de este ser a de 100 km/h. Sin embargo es claro que el veh culo no mantendr a la velocidad igual a 100 km/h durante todo el viaje, ya que habra momentos en los que se viaja m as r apido o m as lento. Sin embargo, lo que establece el teorema del valor medio es que en alg un momento del viaje el veh culo tendra una velocidad exactamente igual a la de 100 km/h. Esto se puede ver gr acamente en la gura 2.2, en donde se tiene una funci on continua y suave denida en el intervalo [a, b]. En este caso particular la pendiente promedio en el intervalo se puede determinar como la pendiente de la secante que une los extremos del intervalo. El teorema del valor medio establece que existe un punto c [a, b] para el cual la pendiente es igual a la pendiente promedio del intervalo.

2.2.3.

Funci on Exponencial

La funci on exponencial (ver gura 2.3) es una de las funciones m as importantes de la matem atica tanto pura como aplicada y corresponde a la operaci on inversa del logaritmo natural. Anal ticamente existen diferentes formas de denir esta funci on, siendo una de las m as conocidas el resultado del l mite: n x (2.5) exp (x) = l m 1 + n+ n Si se quiere aproximar la funci on exponencial mediante series de Taylor es necesario determinar las derivadas de esta funci on. En este caso las derivadas

2.2. SERIE Y TEOREMA DE TAYLOR


. Secante

23

y = f (x)

Figura 2.2: Ejemplo del teorema del valor medio. se obtienen de forma sencilla: f (k) = exp (x) (2.6)

Teniendo estas derivadas la expresi on del teorema de Taylor para esta funci on (ecuaci on 2.2) para x0 = 0 queda expresada por:
n

exp (x) =
k=0

xk + Rn = k!

k=0

xk exp [ (x)] n+1 + x k! (n + 1)!

(2.7)

En este caso particular resulta claro que Rn 0 cuando n + con lo cual se desprecia el t ermino residual y se obtiene:
n

exp (x) =
k=0

xk x2 x3 =1+x+ + + ... k! 2! 3!

(2.8)

La ecuaci on anterior corresponde a la denici on en t erminos de series de la funci on exponencial tal y como se encuentra en diferentes libros de matem aticas.

24
. 6 5 4 3 2 1 . 0

CAP ITULO 2. SERIE DE TAYLOR

y = exp(x)

Figura 2.3: Gr aca de la funci on exponencial A continuaci on se presenta la implementaci on en MATLAB R de la serie de Taylor para la funci on exponencial. La estructura de la funci on es la siguiente:
"exp_taylor.m" 24a Exponencial Taylor: Inicializaci on funci on 24b Exponencial Taylor: C alculo sumatoria 25

En la inicializaci on de la funci on se especican las variables de entrada y de salida de la misma. Las variables de entrada para esta funci on son las siguientes: x: valor para el cual se quiere calcular la funci on n: n umero de t erminos a considerar en la serie de Taylor y la variable de salida es c el valor de la funci on exponencial obtenido con la aproximaci on de la serie de Taylor.
Exponencial Taylor: Inicializaci on funci on 24b function [c]=exp_taylor(x,n)
Fragmento referenciado en 24a.

2.2. SERIE Y TEOREMA DE TAYLOR

25

La serie de Taylor corresponde a una sumatoria innita (que para efectos pr acticos se trunca). Para obtener el valor de la funci on exponencial se emplea la ecuaci on 2.8, y a la variable c se le asigna un valor de 1.0 (ya que este es el primer t ermino de la serie). El valor de la sumatoria se puede obtener a nivel computacional mediante un ciclo for, ya que se conoce el n umero de t erminos sobre el cual se realiza la suma. Lo anterior se puede se puede expresar como:
Exponencial Taylor: C alculo sumatoria 25 c=1.0; for i=1:1:n; c=c+(x.^i)./(factorial(i)); end;
Fragmento referenciado en 24a.

26 Ejemplo MATLAB
R

CAP ITULO 2. SERIE DE TAYLOR (Serie de Taylor para la funci on exp (x))

Aproxime la funci on exponencial por medio de la serie de Taylor en x = 0.5 desde n = 1, . . . 6 a partir del valor de esta funci on en x = 0 usando acilmente mela funci on exp taylor. Este procedimiento se puede realizar f diante el siguiente c odigo: disp([Orden n Valor aproximado Valor Real Error Relativo]); for i=1:1:6; v=exp_taylor(.5,i); t=[i v exp(0.5) 100*abs(exp(0.5)-v)/exp(0.5)]; disp(sprintf(%f %f %f %f,t)); end; el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel.( %) 1 1.500000 1.648721 9.020401 2 1.625000 1.648721 1.438768 3 1.645833 1.648721 0.175162 4 1.648438 1.648721 0.017212 5 1.648698 1.648721 0.001416 6 1.648720 1.648721 0.000100 Ahora como es evidente a medida que el n umero de t erminos en la aproximaci on de Taylor aumenta, el error relativo disminuye.

2.2.4. Funci on Coseno


La funci on coseno corresponde a una funci on trigonom etrica de gran importancia en problemas geom etricos y en el modelamiento de comportamientos peri odicos (ver gura 2.4). A nivel tradicional esta funci on se dene a partir de un tri angulo, como el mostrado en la gura 2.5.

ngulo x se dene como la relaci En este caso el coseno del a on entre la longitud del cateto adyacente con respecto a la hipotenusa del tri angulo: cos (x) = A H

Sin embargo hoy en d a existen otras deniciones de la funci on cos (x) tal como la que daremos a continuaci on en t erminos de series de Taylor. Las derivadas de

2.2. SERIE Y TEOREMA DE TAYLOR


1 y = cos (x) .

27

320

240

160

80 1

80

160

240

320

Figura 2.4: Gr aca de la funci on coseno

Figura 2.5: Tri angulo empleado para la denici on de las funciones trigonom etricas. la funci on cos (x) est an dadas por: f (1) (x) = sin (x) f (2) (x) = cos (x) . . . .. . Estas derivadas se pueden generalizar de la siguiente forma: f (k) (x) = cos x + k , 2 (2.9)

, k

(2.10)

28

CAP ITULO 2. SERIE DE TAYLOR

y aplic andolas en la ecuaci on 2.2 la expansi on en series de Taylor de esta funci on para x0 = 0 quedar a dada por:
n

cos (x) =
k=0

cos x + k!

k 2

xk +

cos (x) +

(n+1) 2

(n + 1)!

xn+1

(2.11)

Del mismo modo el t ermino del residual Rn 0 con lo cual se tiene:


+

cos (x) =
l=0

l) cos (2 2 x 2l = (2l)! +

x 2k (1) (2k )! k=0


k

=1+
k=1

(x2 )k x2 x4 x6 =1 + + ... (2k )! 2! 4! 6!

(2.12)

Una posible implementaci on en MATLAB R de la serie de Taylor para esta funci on se presenta a continuaci on. La estructura de la funci on es la siguiente:
"cos_taylor.m" 28a Coseno Taylor: Inicializaci on funci on 28b Coseno Taylor: C alculo sumatoria 29

Las variables de entrada para esta funci on son las siguientes: x: valor para el cual se quiere calcular la funci on n: n umero de t erminos a considerar en la serie de Taylor y la variable de salida es c el valor de la funci on coseno obtenido con la aproximaci on de la serie de Taylor.
Coseno Taylor: Inicializaci on funci on 28b function [c]=cos_taylor(x,n)
Fragmento referenciado en 28a.

En este caso el resultado de la aproximaci on de Taylor al coseno se va a almacenar en la variable c. Este valor se inicializa en 1.0, ya que este es el primer t ermino de la serie (ecuaci on 2.12). Para realizar la suma de los t erminos de la serie de Taylor se emplea un ciclo for empleando la expresi on dada por la ecuaci on 2.12. Esto a nivel de c odigo se implementa de la siguiente forma:

2.2. SERIE Y TEOREMA DE TAYLOR


Coseno Taylor: C alculo sumatoria 29 c=1.0; for i=1:1:n; c=c+((-x^2)^i)/factorial(2*i); end;
Fragmento referenciado en 28a.

29

30 Ejemplo MATLAB
R

CAP ITULO 2. SERIE DE TAYLOR (Serie de Taylor para la funci on cos (x))

Aproxime la funci on coseno por medio de la serie de Taylor en x = /3 desde n = 1, . . . 6 a partir del valor de esta funci on en x = 0 usando la funci on cos taylor. Este procedimiento se puede realizar f acilmente mediante el siguiente c odigo: disp([Orden n Valor aproximado Valor Real Error Relativo]); for i=1:1:6; v=cos_taylor(pi/3,i); t=[i v cos(pi/3) 100*abs(cos(pi/3)-v)/cos(pi/3)]; disp(sprintf(%f %f %f %f,t)); end; el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel.( %) 1 0.451689 0.500000 9.662271 2 0.501796 0.500000 0.359240 3 0.499965 0.500000 0.007087 4 0.500000 0.500000 0.000087 5 0.500000 0.500000 0.000001 6 0.500000 0.500000 0.000000 Ahora como es evidente a medida que el n umero de t erminos en la aproximaci on de Taylor aumenta, el error relativo disminuye.

2.2.5. Funci on Seno


La funci on seno es otra de las funciones trigonom etricas, y se incluye aqu como ejemplo de la utilizaci on de la serie de Taylor. Para denir esta funci on se emplea el tri angulo representado en la gura 2.5, De acuerdo a este, el seno ngulo x se dene como la relaci del a on entre la longitud del cateto opuesto con respecto a la hipotenusa del tri angulo: O H Para determinar la expresi on de la serie de Taylor es necesario conocer las derivadas de la funci on, las cuales en este caso corresponden a: sin (x) = f (1) = cos (x) f (2) = sin (x) f (3) = cos (x) . . . (2.13)

2.2. SERIE Y TEOREMA DE TAYLOR


. y = sin (x)

31

320

240

160

80 1

80

160

240

320

Figura 2.6: Gr aca de la funci on sin (x) Estas derivadas se pueden generalizar por medio de la siguiente expresi on: f (k) (x) = sin x + k , 2 k (2.14)

con lo cual la expresi on de la serie de Taylor para la funci on sin (x) para x0 = 0 quedar a dada por:
n

sin (x) =
k=0

sin

k 2

k!

x +

sin (x) +

(n+1) 2

(n + 1)!

xn+1

(2.15)

Asumiendo que el resido de Taylor de dicha expansi on cumple Rn+1 0 cuando n +, la expresi on anterior se simplica y se obtiene:
+

sin (x) = x
k=0

(x2 )k (2k + 1)!

(2.16)

Una posible implementaci on de la funci on que permite aproximar la funci on sin (x) usando series de Taylor en MATLAB R tendr a la siguiente estructura:
"sin_taylor.m" 31 Seno Taylor: Inicializaci on funci on 32a Seno Taylor: C alculo sumatoria 32b

Las variables de entrada para esta funci on son las siguientes:

32

CAP ITULO 2. SERIE DE TAYLOR x: valor para el cual se quiere calcular la funci on n: n umero de t erminos a considerar en la serie de Taylor

y la variable de salida es c el valor de la funci on seno obtenido con la aproximaci on de la serie de Taylor.
Seno Taylor: Inicializaci on funci on 32a function [c]=sin_taylor(x,n)
Fragmento referenciado en 31.

La determinaci on del valor de la funci on sin (x) usando la serie de Taylor se basa en la ecuaci on 2.15. Para implementar esta expresi on, se inicializa la variable c en 0 y se realiza la sumatoria mediante un ciclo for. Finalmente el valor resultante de c se multiplica por x y la funci on naliza su ejecuci on.
Seno Taylor: C alculo sumatoria 32b c=0.0; for i=0:1:n; c=c+((-x.^2).^i)/factorial(2*i+1); end; c=x*c;
Fragmento referenciado en 31.

2.2. SERIE Y TEOREMA DE TAYLOR Ejemplo MATLAB


R

33

(Serie de Taylor para la funci on sin (x))

Aproxime la funci on trigonom etrica seno por medio de la serie de Taylor en x = /3 desde n = 1, . . . 6 a partir del valor de esta funci on en x = 0 acilmente usando la funci on sin taylor. Este procedimiento se puede realizar f mediante el siguiente c odigo: disp([Orden n Valor aproximado Valor Real Error Relativo]); for i=1:1:6; v=sin_taylor(pi/3,i); t=[i v sin(pi/3) 100*abs(sin(pi/3)-v)/sin(pi/3)]; disp(sprintf(%f %f %f %f,t)); end; el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel.( %) 1 0.855801 0.866025 1.180638 2 0.866295 0.866025 0.031163 3 0.866021 0.866025 0.000477 4 0.866025 0.866025 0.000005 5 0.866025 0.866025 0.000000 6 0.866025 0.866025 0.000000 Ahora como es evidente a medida que el n umero de t erminos en la aproximaci on de Taylor aumenta, el error relativo disminuye.

2.2.6.

Funci on Logaritmo natural

La funci on logaritmo natural f (x) = ln x es la inversa de la funci on exponencial (ver Figura 2.7). Esta es una funci on que aparece en diversas aplicaciones y es de especial importancia para este tema, debido a que presenta una discontinuidad en x = 0 se hace necesario tenerla en cuenta a la hora de determinar la serie de Taylor. Las derivadas de la funci on Logaritmo natural est an dadas por las siguiente

34

CAP ITULO 2. SERIE DE TAYLOR


. 2 y = log (x) 1

0 1 2 3 4 5

Figura 2.7: Gr aca de la funci on logaritmo natural expresiones: f (1) = 1 x 1 x2 (2.17) 6 x4 2 x3

f (2) = f (3) =

f (4) = . . .

de las cuales es evidente que son polinomios y que forman un claro patr on. Estas derivadas se pueden generalizar de la siguiente forma: (k 1)! xk con lo cual la serie de Taylor para la funci on ln x estar a dada por: f (k) (x) = (1)k1
n

(2.18)

ln (x) =
k=0

(1)k1

(x 1)k 1 (x 1)n+1 + (1)n k (n + 1) n+1 (x)

(2.19)

2.2. SERIE Y TEOREMA DE TAYLOR

35

En este caso particular x0 = 1 ya que esta funci on presenta una discontinuidad en x = 0. El t ermino residual tiende a 0 a medida que inclu mos m as t erminos, con lo cual la serie de Taylor para el logaritmo se simplica y queda como:
+

ln (x) =
k=0

(1)k1

(x 1)2 (x 1)3 (x 1)k = (x 1) + ... k 2 3

(2.20)

Una posible implementaci on de la serie de Taylor para la funci on logaritmo R natural en MATLAB se presenta a continuaci on:
"log_taylor.m" 35a Logaritmo Taylor: Inicializaci on de la funci on 35b Logaritmo Taylor: C alculo de la sumatoria 35c

Al igual que las otras funciones implementadas esta funci on tiene como variables de entrada: x: valor en el cual se quiere aproximar la funci on logaritmo mediante series de Taylor n: n umero de t erminos a considerar en la aproximaci on y la variable de salida c corresponde al valor aproximado de la funci on.
Logaritmo Taylor: Inicializaci on de la funci on 35b function [c]=log_taylor(x,n)
Fragmento referenciado en 35a.

Para calcular el valor de la funci on logaritmo en el punto x usando la serie de Taylor, se utiliza la sumatoria denida en la ecuaci on 2.20, para lo cual el valor de c se inicializa en 0.0. Para implementar dicha sumatoria se emplea un ciclo for, con lo cual resulta el siguiente c odigo:
Logaritmo Taylor: C alculo de la sumatoria 35c c=0.0; for i=1:1:n; c=c+((-1)^(i-1))*((x-1).^i)/i; end;
Fragmento referenciado en 35a.

36 Ejemplo MATLAB
R

CAP ITULO 2. SERIE DE TAYLOR (Serie de Taylor para la funci on ln (x))

Aproxime la funci on logaritmo natural por medio de la serie de Taylor en x = 1.2 desde n = 1, . . . 6 a partir del valor de esta funci on en x = 1 usando la acilmente mediante funci on log taylor. Este procedimiento se puede realizar f el siguiente c odigo: disp([Orden n Valor aproximado Valor Real Error Relativo]); for i=1:1:6; v=log_taylor(1.2,i); t=[i v log(1.2) 100*abs(log(1.2)-v)/log(1.2)]; disp(sprintf(%f %f %f %f,t)); end; el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel.( %) 1 0.200000 0.182322 9.696299 2 0.180000 0.182322 1.273331 3 0.182667 0.182322 0.189286 4 0.182267 0.182322 0.030106 5 0.182331 0.182322 0.004997 6 0.182320 0.182322 0.000854 Ahora como es evidente a medida que el n umero de t erminos en la aproximaci on de Taylor aumenta, el error relativo disminuye.

2.2.7. Polinomio
Supongamos que se quiera aproximar una funci on polinomial de la forma: f (x) = (1 + x)n (2.21)

donde n es un exponente que dene el grado del polinomio. En este caso particular las derivadas son muy f aciles de determinar: f (1) (x) = n(1 + x)n1 f (2) (x) = n(n 1)(1 + x)n2 . . . de tal forma que la n- esima derivada se puede obtener de: f (k) (x) = n(n 1) . . . (n k + 1)(1 + x)nk (2.23) (2.22)

2.3. ERROR DE TRUNCAMIENTO La serie de Taylor para esta funci on quedar a dada por:
n

37

f (x) =
k=0

n(n 1) . . . (n k + 1) k x + k!

n(n 1) . . . (n k ) (1 + (x))n(k+1) xn+1 (n + 1)!

(2.24)

donde (x) [0, 1]. Un caso de inter es corresponde a n = k , o sea, que n es un n umero entero ya que se tiene que Rn+1 (x) = 0 y por lo tanto la aproximaci on es exacta. En este caso se obtiene la famosa f ormula del binomio de Newton: (1 + x)n = 1 + nx + n(n 1) 2 x + . . . + xn 2! (2.25)

2.3.

Serie de Taylor y Error de Truncamiento

Todos los m etodos num ericos realizan aproximaciones de los problemas matem aticos que de una u otra forma afectan las soluciones. Este aspecto es de vital importancia y es aqu donde se hace necesario introducir el concepto del error de truncamiento. Denici on 8 El error de truncamiento se dene como aquel error en el que se incurre cuando se usa una aproximaci on en lugar de un procedimiento matem atico que es exacto. La serie de Taylor (secci on 2.2.1) permite cuanticar el error de truncamiento, ya que para efectos pr acticos la expansi on dada por la ecuaci on 2.1 se trunca teniendo en cuenta solo n t erminos. El t ermino residual (ecuaci on 2.3) es igual a este error de truncamiento y como se vi o en la secci on 2.2.2 su valor exacto no se puede determinar. Sin embargo su conocimiento resulta de vital importancia ya que con este se puede entender como se comporta el error de truncamiento y que factores lo afectan. Para este punto se hace necesario introducir la notaci on de la gran O. Esta notaci on se estudia en la Ingenier a de Sistemas para denotar la eciencia de los algoritmos.

38 Ejemplo (Aproximaci on de Taylor)

CAP ITULO 2. SERIE DE TAYLOR

Aproximar el valor de cos (/4) usando la serie de Taylor y determinar su error de Truncamiento. El error de truncamiento para esta funci on est a dado por el t ermino residual (ecuaci on 2.11) de donde: cos (x) + Rn = y de donde resulta evidente que: cos (x) +
n+ (n+1) 2 (n+1) 2

(n + 1)!

xn+1

(2.26)

l m Rn = l m

n+

(n + 1)!

xn+1 = 0

(2.27)

2.4.

Serie de Taylor y Diferenciaci on Num erica

til para la Como se vi o anteriormente, la Serie de Taylor es una herramienta u denici on de las derivadas de forma num erica. En el problema del paracaidista, se emple o un argumento geom etrico para obtener una expresi on que permitiera solucionar la ecuaci on diferencial del movimiento retardado. Sin embargo algo que resulta curioso en este caso, es que la misma soluci on se puede obtener a partir de las series de Taylor. Si se tiene una funci on que describe la variaci on de la velocidad en el tiempo v (t) esta se puede expandir en los alrededores del punto ti+1 para obtener: v (ti+1 ) = v (ti ) + v (1) (ti )(ti+1 ti ) + v (2) (ti ) (ti+1 ti )2 + . . . 2! (2.28)

lo cual se puede hacer si se conocen todas las derivadas de la funci on v (t). Si la expresi on anterior se trunca hasta el t ermino que contiene la primera derivada se obtiene: v (ti+1 ) = v (ti ) + v (1) (ti )(ti+1 ti ) + R1 (2.29) donde R1 corresponde al t ermino residual. Despejando v (1) (t) se obtiene: v (1) (ti ) = v (ti+1 v (ti )) R1 + ti+1 ti ti+1 ti (2.30)

expresi on cuyo primer t ermino coincide con la f ormula empleada para la soluci on de la ecuaci on diferencial. Sin embargo un aspecto interesante de la ecuaci on 2.30 es que incluye el t ermino del residual y por lo tanto con este es posible

NUME RICA 2.4. DIFERENCIACION

39

estudiar el error de truncamiento para la expresiones que describren las derivadas. De acuerdo al Teorema de Taylor, este t ermino residual es igual a: R1 v (2) ( ) = (ti+1 ti ) ti+1 ti 2! (2.31)

donde v (2) ( ) corresponde a la segunda derivada de la velocidad y es un valor en el intervalo [ti , ti+1 ]. La ecuaci on anterior se puede expresar mejor empleando la notaci on de la Gran O, de la siguiente forma: R1 = O(ti+1 ti ) = O(t) ti+1 ti (2.32)

de donde resulta claro que el error de truncamiento para la expresi on de la derivada dada por la ecuaci on 2.29 es del orden (de ah el nombre de Gran O) o es proporcional a t. Esto quiere decir que si se desea reducir el error es necesario emplear un incremento temporal t menor. La expresi on para la derivada (ecuaci on 2.29) es conocida en el an alisis num erico como diferencia nita, y su expresi on general est a dada por: f (1) (xi ) = f (xi+1 ) f (xi ) + O(xi+1 xi ) xi+1 xi (2.33)

donde el error de truncamiento es del orden del incremento empleado para calcularla. La ecuaci on anterior representa la denominada diferencia nita hacia delante, ya que permite calcular la derivada en un punto particular i usando informaci on de un punto i + 1 ubicado delante de este. El t ermino xi+1 xi representa el incremento empleado para calcular dicha derivada y a nivel general se representa como h. La ecuaci on 2.33 es una de las diferentes formas como se pueden determinar num ericamente las derivadas. Otra posibilidad consiste en realizar la aproximaci on de la serie de Taylor empleando un punto cercano ubicado antes que el punto de inter es: f (xi1 ) = f (xi ) f (1) (xi )(xi xi1 ) + f (2) (xi ) (xi xi1 ) + . . . 2! (2.34)

con lo cual aparece la denominada diferencia nita hacia atr as, la cual se encuentra denida por la siguiente expresi on: f (1) (xi ) f (xi ) f (xi1 ) O(h) xi xi1 (2.35)

En este caso esta diferencia nita tiene el mismo orden de error que la diferencia nita hacia delante, es decir, el error es proporcional al incremento h.

40

CAP ITULO 2. SERIE DE TAYLOR

Otra forma para aproximar la derivada de forma num erica se puede derivar al calcular la diferencia entre la ecuaci on 2.33 y 2.35, con lo cual se obtiene la siguiente expresi on: f (xi+1 ) = f (xi ) + f (1) (xi )(xi+1 xi ) + f (2) (xi ) (xi+1 xi )2 + . . . 2! (2.36)

de donde se despeja la derivada para llegar a: f (xi+1 ) = f (xi1 ) + 2f (1) (xi )h + Si se la expresi on anterior se trunca: f (1) (xi ) = f (xi+1 ) f (xi1 ) O(h2 ) 2h (2.38) 2f (3) (xi ) 2 h + ... 3! (2.37)

se obtiene la denominada diferencia nita central y se llega a la conclusi on que 2 el error es proporcional a h , y por lo tanto presenta un error menor que el caso de la diferencia nita hacia delante o hacia atr as.

NUME RICA 2.4. DIFERENCIACION Ejemplo (Diferenciaci on num erica de la ecuaci on de Manning)

41

La ecuaci on de Manning se emplea para describir el ujo de agua en un canal abierto. Esta ecuaci on se encuentra dada por: Q= 1.49 1/2 S AR2/3 n f

rea transversal donde Q es el caudal, Sf es la pendiente del terreno, A es el a del canal y R es el denominado radio hidra ulico. Se requiere calcular la derivada de Q con respecto a R, cuando R = 2.5 de forma num erica empleando diferencias nitas hacia delante, hacia atr as y centradas. La derivada de la ecuaci on anterior es igual a: 0.993 1/2 dQ = Sf AR1/3 dR n de tal forma que para R = 2.5, n = 1 103 , Sf = 0.001 y A = 4.5 se tiene que Q(1) = 104.1154. Este mismo procedimiento se repite usando la diferencia nita hacia delante haciendo Ri = 2.5 y Ri+1 = 2.6: Q(1) (2.5) = Q(Ri+1 ) Q(Ri ) 400.9107 390.5639 = 103.4681 = Ri+1 Ri 2.6 2.5

Para determinar la diferencia nita hacia atr as se emplea Ri1 = 2.4: Q(1) (2.5) = Q(Ri ) Q(Ri1 ) 390.5639 380.0782 = 104.8574 = Ri Ri1 2.5 2.4

Para calcular la diferencia nita central se hace Ri+1 = 2.6 y Ri1 = 2.4, con lo cual se tiene: Q(1) (2.5) = Q(Ri+1 ) Q(Ri1 ) 400.9107 380.0782 = = 104.1627 2(Ri+1 Ri1 ) 2.6 2.4

De los resultados obtenidos anteriormente es evidente que la mejor aproximaci on de la derivada se obtiene con la diferencia nita central.

42

CAP ITULO 2. SERIE DE TAYLOR

2.5.

Propagaci on del Error

Denici on 9 La propagaci on del error se dene como el efecto que tienen los errores de las variables sobre la incertidumbre en una funci on que se aplica sobre ellas. Generalmente las mediciones de las variables son obtenidas por dispositivos o en el laboratorio y por lo tanto tienen errores que deber an ser tenidos en cuenta en subsecuentes manipulaciones que se hagan a partir de ellas (por ej. la determinaci on de alg un par ametro de inter es mediante una f ormula matem atica) Para el estudio de la propagaci on del error primero se van a considerar las operaciones aritm eticas b asicas (suma, resta, multiplicaci on y divisi on), debido a la importancia que tienen estas en la gran mayor a de los c alculos num ericos. Supongamos que se tienen dos valores medidos, que a nivel general se denominan como x y y , las cuales tienen unos errores cuanticables expresados como x y y respectivamente. A partir de estas se determina una nueva cantidad z mediante una funci on f (x, y ) y por lo tanto se quiere cuanticar cual es el error en la determinaci on de z , es decir, cu al es el valor de z ?. Generalmente las expresiones que permiten calcular este error se dan en los cursos de estad stica b asica y en las sesiones de introducci on en los laboratorios, pero de todas formas se incluyen aqu . La descripci on de estas f ormulas se hace de acuerdo a la operaci on aritm etica involucrada: Suma y Resta z = x + y o z = x y . En este caso se asume una situaci on pesimista. Se va a suponer que los errores x y y tienen valores que hacen que z se desvi e lo m aximo posible del valor real y por lo tanto los errores se acumulan con lo cual: z = x + y (2.39)

En el caso que existan m as t erminos en la suma/resta se tiene que el efecto acumulado es la suma de los errores parciales. Multiplicaci on : Las expresiones del error en la multiplicaci on se pueden obtener de forma sencilla. Sabiendo que z = x y esto se convierte en: z + z = (x + x)(y + y ) = xy + xy + y x + xy (2.40)

ltimo t El u ermino de esta expresi on se puede despreciar si se tiene en cuenta que x x y y y con lo cual se obtiene: z + z = xy + xy + yx y sabiendo que z = xy se puede despejar z : z = xy + yx (2.42) (2.41)

DEL ERROR 2.5. PROPAGACION Multiplicaci on por un escalar : Multiplicar el error por el escalar: z = c x

43

(2.43)

Divisi on : En este caso se asume que z = x/y e introduciendo los errores se obtiene: x + x (2.44) z + z = y + y despejando z se tiene: z = x + x x y (x + x) x(y + y ) x + x z = = y + y y + y y y (y + y ) xy + y x xy xy = y 2 + y y

(2.45)

y simplicando se obtiene: z = y x xy y2 (2.46)

ya que el t ermino y y es peque no comparado con y 2

44

CAP ITULO 2. SERIE DE TAYLOR

Ejemplo (Determinaci on del error de la densidad del Concreto) Como Ingeniero ud debe determinar la densidad de una muestra de concreto. Para esto se emplea la vieja y conocida expresi on: = m V

donde m es la masa de la muestra y V es el volumen. Para su fortuna, la muestra presenta una forma c ubica y por lo tanto la determinaci on del volumen es sencilla, para lo cual ud mide con una regla el lado de la muestra, el cual resulta ser igual a 20.0 cm. Sin embargo esta medici on tiene un error, el cual est a determinado por la escala de graduaci on de la regla y que en este caso es igual a 0.1 cm (1 mm). Debido a la forma de la muestra de concreto, el volumen y su error est an dados por: V + V = l3 + 3l2 l donde V = 3l2 l y con lo cual se tiene que V = 0.008 m3 y V = 1.20 104 m3 . Para la determinaci on de la masa se emple o una balanza y en este caso se obtuvo un valor de 19.72 kg, con un error de 0.05 Kg. De acuerdo con la ecuaci on (2.46), el error en la densidad est a dado por: = V m mV V2

donde m y V son los errores en la masa y el volumen respectivamente, y aplicandola en el caso de la muestra de concreto se obtiene que = 2465.25 kg/m3 y = 30.72 kg/m3 . En el caso que las expresiones matem aticas involucren funciones diferentes a las operaciones aritm eticas tradicionales, la serie de Taylor proporciona una til para la cuanticaci herramienta u on de la propagaci on del error. Se parte de la serie de Taylor (ecuaci on 2.1) y se trunca de tal manera que solo contenga a la primera derivada: f (x) = f (x0 ) + f (x0 )(x x0 ) (2.47) y reorganizando se obtiene: f (x) f (x0 ) = f (x0 )(x x0 ) f (x0 ) = |f (x0 )|(x0 ) (2.48)

DEL ERROR 2.5. PROPAGACION Ejemplo (Ley de Stokes)

45

Considere un conjunto de part culas esf ericas de densidad s y radio R asent andose en un uido de densidad y viscosidad . La velocidad vs con la que se asientan dichas part culas se encuentra descrita por la Ley de Stokes: vs = 2g (s )R2 9

en donde el signo negativo indica que el movimiento ocurre en la direcci on negativa del eje de las y . Suponga que tanto la densidad como el radio de la part cula presentan un error que no se puede ignorar y se quiere determinar cu al de estos factores inuye m as en la velocidad de asentamiento. Para responder a esta pregunta se emplea la ecuaci on 2.48, la cual aplicada en este caso resulta en: dvs d dvs vs = R dR vs = y en donde la derivada de la velocidad con respecto al radio de la part cula es: 4g dvs = (s )R dR 9 y la derivada de la velocidad con respecto a la densidad: dv2 2g = R ds 9 Si se asume que el fen omeno de asentamiento ocurre en un r o y lo que se est a sedimentando es arena de grano no (R = 64m = 64 103 m), esta tiene una densidad de s = 2600 kg/m3 ,el agua tiene una densidad de = 1000 kg/m3 y una viscosidad de = 8.90 104 N s/m2 . La velocidad que tendr an estas part culas es vs = 1.603627465667915 104 m/s, y con esto se obtuvo para R = 1 103 m vs = 501.13 m/s y para s = 1.0 kg/m3 vs = 156.604 m/s. Por lo tanto la variable que tiene m as inuencia en la determinaci on de la velocidad de asentaniento corresponde al Radio de la part cula.

46

CAP ITULO 2. SERIE DE TAYLOR

Cap tulo 3 M etodos para la soluci on de ecuaciones no-lineales


3.1. Introducci on

C IVIL aparecen ecuaciones algebraicas que no se pueden resolver anal ticamente. Un caso particular de esta situaci on corresponde a la ecuaci on de Manning. Esta ecuaci on es muy importante en hidra ulica ya que permite realizar la descripci on del ujo en un canal abierto. 1 (3.1) Q = AR2/3 S 1/2 n donde:

N MUCHOS PROBLEMAS DE LA I NGENIER IA

Q caudal A Area secci on R es el radio hidra ulico S es la pendiente n es el coeciente de Manning El radio hidra ulico se dene como R= A P (3.2)

rea de la secci donde A = a on y P = per metro de la misma. La ecuaci on de Manning (ecuaci on 3.1) queda: 1 Q= A n A P 47
2/ 3

S 1/2

(3.3)

48

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

Para el caso de un canal cuya secci on tiene forma rectangular, el per metro mojado est a dado por: P = b + 2h (3.4) rea: donde b es la base y h es la profundidad del canal respectivamente, y el a A = bh (3.5)

Esto hace que la ecuaci on de manning para un canal de secci on rectangular se pueda expresar como: Q= 1 (bh)5/3 S 1/2 n (b + 2h)2/3 (3.6)

Un problema com un en el dise no de estructuras hidra ulicas consiste en determinar la profundidad h de un canal que pueda conducir un caudal dado Q. Sin embargo como es evidente de la ecuaci on 3.6 la variable h no se puede despejar de forma algebraica y por lo tanto se debe recurrir a una soluci on num erica. Los procedimientos para solucionar dicho problema caen dentro de los denominados m etodos para la soluci on de ecuaciones no lineales y son el tema central del presente cap tulo.

3.2.

Tipos de Ra ces

En la ecuaci on de Manning presentada anteriormente, el problema de determinar el h (la profundidad del canal) se puede reformular escribiendo la ecuaci on 3.6 de la forma f (h) = 0, con lo cual se obtiene: f (h) = 1 (bh)5/3 S 1/2 Q = 0 n (b + 2h)2/3 (3.7)

de tal forma que ahora el problema consiste en determinar los valores de h para los cuales se cumple la ecuaci on anterior. Si se supone que f (h) se puede expresar como un polinomio y recordando los conceptos del Algebra del Bachillerato, este ser a un problema muy similar al de determinar las ra ces de un polinomio. La cuesti on aqu es que a pesar que f (h) no tiene la forma de un polinomio, el concepto anterior sigue aplicando, y la soluci on de las ecuaciones no-lineales se denominan ra ces. Por lo tanto la denici on de este importante concepto se presenta a continuaci on: Denici on 10 Una ra z de una funci on f (x) es un n umero xr para el cual se cumple que f (xr ) = 0

3.2. TIPOS DE RA ICES

49

Sin embargo es de aclarar que una funci on puede tener m as de una ra z xr . En t erminos generales la funci on f (x) puede ser de dos tipos: Polinomios: es una expresi on matem atica de una o m as variables que se construye usando operaciones algebraicas: adici on substracci on multiplicaci on exponenciaci on de constantes racionales (generalmente). Funciones Trascendentales: estas son funciones que no se pueden denir en t erminos de expresiones algebra cas que usen variables y constantes, como las mencionadas anteriormente. Esto quiere decir que estas corresponden a funciones que no se incluyen dentro de las funciones polinomiales y cuyos coecients pueden ser polinomios. Ejemplo de este tipo de funciones incluyen: funciones trigonom etricas, logaritmo en cualquier base, funci on exponencial, y cualquier otra que se dena a partir de estas. Dependiendo del tipo de ecuaci on se pueden tener ra ces de diferentes tipos. Los polinomios de segundo grado son un caso particular que permite ilustrar los lgebra del tipos de ra ces presentes en funciones no lineales. Es bien sabido del a 2 bachillerato que las ecuaciones de la forma ax + bx + c = 0 pueden tener ra ces de 3 tipos: Ra ces reales iguales Ra ces reales diferentes Ra ces complejas conjugadas Combinaci on de la anteriores Un criterio aproximado que puede ser empleado para determinar el n umero de ra ces en una funci on polinomial corresponde a la denominada Regla de los signos de Descartes. Esta regla se puede expresar de la siguiente forma: Denici on 11 Si un polinomio con coecientes reales, de una sola variable, se ordena de forma decreciente de acuerdo al exponente, entonces el n umero de ra ces positivas reales de esa funci on es igual el n umero de cambios de signo entre coecientes consecutivos no-nulos o es menor a este por un m ultiplo entero de 2. Para determinar el n umero de ra ces negativas reales se cambia el signo de las potencias impares y el n umero de ra ces en este caso es igual al n umero de cambios de signo en este polinomio modicado o es menor a este por un m ultipo entero de 2.

50

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

Ejemplo (N umero de Raices Positivas de un Polinomio) Determinar el n umero de ra ces reales positivas del siguiente polinomio: f (x) = x4 3x3 9x2 + x 5 usando la regla de los signos de Descartes. Ordenando el polinomio de la forma requerida y resaltando los cambios de signo se tiene: f (x) = +x4 3x3 9x2 + x 5
Cambio Cambio Cambio

de lo cual se tienen 3 cambios de signos y por lo tanto se tienen las siguientes opciones: 3 ra ces positivas reales, o, 2 ra ces complejas y 1 ra z real positiva Evidentemente las ra ces complejas deben ser conjugadas entre s . Ejemplo (N umero de Raices Negativas de un Polinomio) Determinar el n umero de ra ces reales negativas del siguiente polinomio: f (x) = x4 3x3 9x2 + x 5 usando la regla de los signos de Descartes. Cambiando los signos de las potencias impares como es requerido por el criterio se tiene: f (x) = x4 +3x3 9x2 x 5
Cambio

de tal forma que hay un solo cambio de signo y por lo tanto como m aximo se tiene 1 ra z real negativa.

3.3.

M etodos Abiertos

Denici on 12 Los m etodos abiertos para la determinaci on de ra ces son aquellos en los cuales se hace necesario especicar el intervalo en donde se encuentra la ra z. Dentro de los m etodos abiertos se pueden mencionar:

TODOS ABIERTOS 3.3. ME M etodos Gr acos M etodos de Bisecci on

51

3.3.1.
3.3.1.1.

M etodo Gr aco
Fundamentos Conceptuales

Este m etodo es el m as simple de todos y se basa en el hecho que la ra z xr de una ecuaci on no-lineal f (x) corresponde al punto en donde la gr aca de dicha funci on cruza el eje x. En MATLAB R este m etodo se puede aplicar por medio de diferentes funciones, sin embargo, la m as apropiada es la funci on plot. Esta funci on tiene una s ntaxis muy sencilla: plot(x,y,s) donde x corresponde al vector con las coordenadas x de los puntos que se quieran graca, mientras que y es el vector con las coordenadas y . En cuanto a s es una cadena conformada por tres caracteres. El primero hace referencia al color que se quiere emplear para gracar, el segundo al tipo de marcador y el tercero al tipo de l nea. Las opciones que MATLAB R ofrece para cada uno de ellos se presentan en la tabla 3.1 Caracter b g r c m y k Color azul verde rojo cyan magenta amarillo negro Caracter . o x + * s Marcador punto c rculo marca de x m as asterisco cuadrado Caracter : -. -(ninguno) Tipo de L nea s olida punteada l nea-punto l nea intermitente no l nea

Tabla 3.1: Tabla de opciones de gracaci on de MATLAB

52 Ejemplo MATLAB
R

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION (Jugando con las opciones de gracaci on)

El procedimiento de gracaci on en MATLAB R es relativamente sencillo, ya que existen una gran cantidad de comandos especializados que permiten til corresponobtener gr acas de forma r apida. El comando m as sencillo y u de al plot() . Para realizar las pruebas respectivas se dene un vector de n umeros aleatorios con distribuci on uniforme de la siguiente forma: >>y=rand(100,1); Este vector se puede gr acar f acilmente usando el comando: plot(y); el cual utiliza las opciones de gracaci on por defecto de MATLAB R y que corresponden a l nea azul de color continuo, sin marcadores; es decir, que la instrucci on anterior es equivalente a plot(y,b-). As mismo si el objetivo es resaltar solamente el valor se puede gracar solamente con marcadores de bolita: plot(y,o); o si queremos tanto resaltar la variaci on como los valores se puede construir una gr aca con l nea punteada y con marcadores de puntos: plot(y,-.);

3.3.1.2.

Ecuaci on de Manning

Con el n de aplicar los diferentes m etodos para la determinaci on de las ra ces de una ecuaci on no-lineal es necesario implementar la ecuaci on de Manning en MATLAB R . Esta funci on se encuentre implementada de la siguiente forma:
"prueba_manning.m" 52 Prueba Manning: Declaraci on de la Funci on 53a Prueba Manning: Inicializaci on de variables 53b Prueba Manning: Evaluaci on funci on 53c

3.3.1.2.1. Declaraci on de la Funci on Con el n de simplicar la utilizaci on de esta funci on, solo se tiene una variable de entrada que corresponde a la profundidad del canal h, y como variable de salida f , el valor de la funci on de inter es (ecuaci on 3.7) evaluada en h:

TODOS ABIERTOS 3.3. ME


Prueba Manning: Declaraci on de la Funci on 53a function f=prueba_manning(h)
Fragmento referenciado en 52.

53

3.3.1.2.2. Inicializaci on de Variables En este fragmento de c odigo se especican los valores que son constantes en el problema del canal, los cuales incluyen: b: ancho del canal en m Q: Caudal en m3 /s S : pendiente (medida adimensional) n: Coeciente de rugosidad de manning Esto se en MATLAB
R

implementa de la siguiente forma:

Prueba Manning: Inicializaci on de variables 53b b=30; Q=1000; S=0.002; n=0.022;


Fragmento referenciado en 52.

3.3.1.2.3. Evaluaci on de la funci on Una vez se han denido las diferentes constantes del problema, se puede evaluar la funci on (ecuaci on 3.7):
Prueba Manning: Evaluaci on funci on 53c f = Q-1/n*(b*h).^(5/3)./(b+2*h).^(2/3).*sqrt(S);
Fragmento referenciado en 52.

54 Ejemplo MATLAB
R

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION (Determinaci on de ra ces usando el m etodo Gr aco)

Determine la profundidad del canal h que permite pasar un caudal de q = 1000 m3 /s para un valor de ancho b = 30 m, de pendiente de S = 0.002 y un coeciente de manning de n = 0.022. Para resolver este problema, en primer lugar se dene un vector de profundidades en el que se incluyen los valores para los cuales se desea gracar la funci on de Manning. En este caso se quiere gracar para valores de profundidad entre 0 y 10 m, para lo cual denimos un vector de la siguiente forma: >> h=[0:0.1:10]; Los valores contenidos en el vector h corresponden a los valores que van a ir en el eje x, y por lo tanto se debe denir los valores del eje y , lo cual se hace por medio de: >> f=prueba_manning(h); Para gracar sencillamente se emplea la funci on plot y se especican los valores de x y y : >> plot(h,f) El resultado de este procedimiento se puede apreciar en la gura 3.1 y de la cual es evidente que el valor para el cual f (h) = 0 es de aproximadamente 6 m.

1000

500

funcin f(h)

500

1000

1500

10

Profundidad(m)

Figura 3.1: Gr aca de la profundidad contra el valor de la funci on f (h). El valor de la ra z es aproximadamente 6.0 m

TODOS ABIERTOS 3.3. ME

55

3.3.2.
3.3.2.1.

M etodo de la Bisecci on
Fundamentos Conceptuales

Este es uno de los m etodo m as sencillos que existe y su utilizaci on se basa en la siguiente idea que se presenta como un teorema: Teorema 4 Una ecuaci on de la forma f (x) = 0, donde f (x) es una funci on real continua, tiene al menos una ra z en el intervalo [xl , xu ] si se cumple que f (xl )f (xu ) < 0 La idea expuesta por este teorema aparece representada de forma gr aca en la gura 3.2(a). De esta resulta claro que existe un ra z en el intervalo [xl , xu ]. Sin embargo este teorema garantiza que si la condici on f (xl )f (xu ) se cumple puede existir m as de una ra z tal y como se aprecia en la gura 3.2(b). Ahora es necesario mencionar que el criterio en el que se fundamenta el teorema 4para realizar la b usqueda de las ra ces no es siempre v alido, ya que se puede tener una situaci on en donde f (xl )f (xu ) > 0 y en el intervalo pueden existir una ra z o m as, tal como aparece representado en la gura 3.3 Debido a que la ra z xr se encuentra en el intervalo [xl , xu ] entonces se determina el punto medio xm de este intevalo con lo cual generamos dos nuevos subintervalos: [xl , xm ] [xm , xu ] Ahora es necesario determinar en que intervalo se encuentra la ra z xr . Para esto se eval ua la funci on en xm , es decir se obtiene f (xm ) y se calcula el signo de f (xl )f (xm ). Aqu se tienen dos casos: f (xl )f (xm ) < 0: la ra z xr se encuentra en este intervalo. En este caso el procedimiento se repite nuevamente y se hace que xu = xm . f (xl )f (xm ) > 0: la ra z xr se encuentra en el intervalo f (xm )f (xu ). En este caso el procedimiento se repite haciendo xl = xm EL procedimiento anterior se repite de forma que cada vez el intervalo en donde se encuentra la ra z se va volviendo m as peque no, hasta que al nal se llegue a aislar la ra z x0 . Las desventajas del m etodo de la bisecci on incluyen: La convergencia a la ra z xr puede ser lenta Si la ra z xr se encuentra muy cerca de uno de los extremos del intervalo [xl , xu ] entonces el n umero de iteraciones necesario para que el algoritmo converja ser a muy alto.

56

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

(a)

(b)

Figura 3.2: a). Existe al menos una ra z en el intervalo [xl , xu ] si la funci on cambia de signo. b). Pero puede presentarse la situaci on que exista m as de una ra z si la condici on se cumple. Si se selecciona un intervalo en donde no hay cambio de signo de la funci on, entonces no hay garant a que el procedimiento presente convergencia. Si el intervalo seleccionado [xl , xu ] incluye un punto de singularidad, el procedimiento presentar a convergencia a dicho punto. Ejemplo (Dimensi on caracter stica de un lago) En problemas de transporte de contaminantes en cuerpos de agua es indispensa-

TODOS ABIERTOS 3.3. ME

57

Figura 3.3: En este caso se presenta una situaci on en donde la funci on tiene valores positivos en los extremos del intervalo pero existen ra ces en este.

Figura 3.4: Lago con forma irregular. Para determinar la dimensi on caracter stica de este se aproxima la forma mediante una cirfunferencia de radio r ble conocer las dimensiones caracter sticas. Estas dimensiones caracter sticas se reas, longitudes y/o vol pueden considerar las escalas (representadas por a umenes) en los cuales se puede asumir que una propiedad es representativa o constante. Suponga que se tiene un lago (ver gura 3.4) y se quiere determinar su dimensi on lineal caracter stica usando el m etodo de la bisecci on. En este caso la

58
0.5 n=2 n=1 n=3 n=4 0

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

Raz=2

0.5

1.5 xL xL m xm xm xm L U xU

2 0

0.5

1.5

2.5

Figura 3.5: Ejemplo de aplicaci on del m etodo de la Bisecci on o b usqueda binaria. Se parte del intervalo [xL , xU ] en donde se encuentra una ra z xr , y para el cual se cumple que f (xL ) f (xU ) < 0. Se dene la nueva aproximaci on a la ra z como el punto medio del intervalo xm y se determina para que extremo se cumple que el producto de los valores de la funci on sea menor que 0. En ese momento se modica el intervalo original y el procedimiento se repite nuevamente.

dimensi on lineal caracter stica del lago se asume como el radio de la circunferea supercial. Esta se puede determinar f rencia que tiene la misma a acilmente a partir de la relaci on: AL = 4r2 rea del lago y r es la dimensi en donde AL es el a on caracter stica deseada. ltima variable se tiene: Despejando esta u r= AL 4

de tal manera que la dimensi on lineal caracter stica es equivalente a evaluar la rea del lago es de ra z cuadrada de la un valor espec co. Supongamos que el a

TODOS ABIERTOS 3.3. ME

59

25km2 , con lo cual se tiene que r = 1.4104 y por lo tanto la dimensi on lineal caracter stica es igual a r = 1.9894. Para calcular este valor se emplea la siguiente funci on: f (x) = x2 1.9894 = 0 (3.8)

Para aplicar el m etodo de la bisecci on en la soluci on de este problema debemos especicar el intervalo de b usqueda, el cual en este caso ser a [1, 2]. El punto medio de este intervalo y por lo tanto la primera aproximaci on a la ra z es: x(1) m =
(k )

2.0 + 1.0 = 1.5 2

umero de iteraci on. Para saber si cual extremo donde xm el k representa el n del intervalo se modica, es necesario evaluar la funci on en los 3 puntos xl , xm y xu : f (1.0) = (1.0)2 1.9894 = 1.0 1.9894 = 0.9894 f (1.5) = (1.5)2 1.9894 = 2.25 1.9894 = 0.2606 f (2.0) = (2.0)2 1.9894 = 4.0 1.9894 = 2.0106 De los anteriores valores resulta claro que el extremo superior del intervalo se debe cambiar de 2.0 a 1.5. Para la iteraci on 2 se tiene que el punto medio ahora es igual a: x(2) m = 1.0 + 1.5 = 1.25 2

y al evaluar la funci on en los extremos del intervalo y el punto medio se obtiene: f (1.0) = (1.0)2 1.9894 = 1.0 1.9894 = 0.9894 f (1.25) = (1.25)2 1.9894 = 1.5625 1.9894 = 0.4269 f (1.5) = (1.5)2 1.9894 = 2.25 1.9894 = 0.2606 de donde se determina que se debe cambiar el extremo inferior del intervalo y ahora xl = 1.25. Para la tercera iteraci on, el punto medio es igual a: x(3) m = 1.25 + 1.50 = 1.375 2

y al evaluar la funci on en los extremos del intervalo y el punto medio se obtiene: f (1.25) = (1.25)2 1.9894 = 1.5625 1.9894 = 0.4269 f (1.375) = (1.375)2 1.9894 = 1.890625 1.9894 = 0.098775 f (1.5) = (1.5)2 1.9894 = 2.25 1.9894 = 0.2606

60

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

de donde se determina que se debe cambiar el extremo inferior del intervalo y ahora xl = 1.375. Para la cuarta iteraci on, el punto medio es igual a: x(4) m = 1.375 + 1.5 = 1.4375 2

y al evaluar la funci on en los extremos del intervalo y el punto medio se obtiene: f (1.375) = (1.375)2 1.9894 = 1.8906 1.9894 = 0.0987 f (1.4375) = (1.4375)2 1.9894 = 2.0664 1.9894 = 0.0770062 f (1.5) = (1.5)2 1.9894 = 2.25 1.9894 = 0.2606 El anterior procdimiento se repite hasta que el error relativo de la ra z aproximada sea menor que la tolerancia especicada inicialmente. 3.3.2.2. Determinaci on de ra ces usando el m etodo de la bisecci on
R

Una implementaci on del procedimiento de la bisecci on en MATLAB presenta a continuaci on:


"biseccion.m" 60 Bisecci on: Declaraci on de la funci on 61a Bisecci on: Inicializaci on de variables 61b Bisecci on: Ciclo Principal 62a

se

3.3.2.2.1. Declaraci on de la funci on ci on son la siguientes:

Las variable de entrada de esta fun-

xl , xu : extremo inferior y superior del intervalo de b usqueda f unc: funci on a la cual se le quieren determinar los valores de la ra ces maxit: N umero m aximo de iteraciones errmin: error m nimo de la soluci on Las variables de salida son: xr: valor de la ra z obtenido por este m etodo f : vector con los valores de la funci on para cada una de las iteraciones err: vector con los valores del error obtenido para cada una de las iteraciones xr

TODOS ABIERTOS 3.3. ME iter: n umero de iteraciones empleado para obtener el valor de xr

61

Bisecci on: Declaraci on de la funci on 61a function [x,f,err,iter]=bisection(xl,xu,func,maxit,errmin)


Fragmento referenciado en 60.

3.3.2.2.2. Inicializaci on de Variables En este fragmento de c odigo se inicializan las diferentes variables que se van a utilizar en el resto del procedimiento. El error relativo err se inicializa en 100 %, el n umero de iteraciones iter se inicializa en 0, el valor de la ra z se hace igual al extremo inferior del intervalo xl ,

Bisecci on: Inicializaci on de variables 61b iter=1; er=100; xr=xl; root=0; x(1)=xl; f(1)=feval(func,x(1)); err(1)=er;
Fragmento referenciado en 60.

3.3.2.2.3. Ciclo Principal La b usqueda de la ra z se implementa como un ciclo while ya que no se conoce de antemano el n umero de iteraciones que se van a emplear para obtener la ra z xr. Sin embargo este ciclo se controla mediante el n umero de iteraciones (denido en la variable iter y que contin ue mientras tiene un valor menor a maxiter) y que el error relativo de la ra z actual err sea mayor a cierto valor m nimo de error predenido por el usuario y almacenado en la variable minerr. La estructura de este ciclo principal es la siguiente:

62

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

Bisecci on: Ciclo Principal 62a while (err > errmin & iter < maxit ); Ciclo Principal Bisecci on: C alculo nueva soluci on 62b Ciclo Principal Bisecci on: C alculo de las funciones 62c Ciclo Principal Bisecci on: Donde esta la soluci on 63a Ciclo Principal Bisecci on: C alculo error e incremento iteraciones 64a Ciclo Principal Bisecci on: Asignaci on de resultados 64b end;
Fragmento referenciado en 60.

3.3.2.2.3.1. C alculo nueva soluci on emplea la ecuaci on

Para calcular la nueva soluci on se

Ciclo Principal Bisecci on: C alculo nueva soluci on 62b xold=xr; xr=0.5*(xl+xu);
Fragmento referenciado en 62a.

3.3.2.2.3.2. C alculo de las funciones Se eval ua la funci on en cada uno de los extremos del intervalo [xl , xu ]. Para esto empleamos la funci on de MATLAB R feval.
Ciclo Principal Bisecci on: C alculo de las funciones 62c fr=feval(func,xr); fl=feval(func,xl);
Fragmento referenciado en 62a.

3.3.2.2.3.3. Donde est a la soluci on? Una vez se ha determinado la soluci on en cada uno de los 3 puntos de inter es, se determinar en donde puede encontrarse la soluci on. Para esto existen 3 posibilidades: La ra z se encuentra en la mitad inferior del intervalo La ra z se encuentra en la mitad superior del intervalo El valor actual corresponde al valor de la ra z

TODOS ABIERTOS 3.3. ME


Ciclo Principal Bisecci on: Donde esta la soluci on 63a Soluci on: ra z en mitad inferior 63b Soluci on: ra z en mitad superior 63c Soluci on: ra z encontrada 63d
Fragmento referenciado en 62a.

63

La ra z se encuentra en la mitad inferior si se cumple que f (xr ) f (xl ) < 0, en este caso se asigna como extremo superior del intervalo el valor de xr
Soluci on: ra z en mitad inferior 63b if(fr*fl<0); xu=xr; root=xr;
Fragmento referenciado en 63a.

La ra z se encuentra en la mitad superior del intervalo si se cumple la condici on f (xr ) f (xl ) > 0, en cuyo caso se asigna como extremo inferior del intervalo de b usqueda el valor de xr y se asigna este valor como aproximaci on de la ra z (root).
Soluci on: ra z en mitad superior 63c elseif(fr*fl>0); xl=xr; root=xr;
Fragmento referenciado en 63a.

Si ninguna de las dos condiciones anterior se cumple, entonces esto implica que el valor de xr se puede considerar una ra z de la ecuaci on en estudio y por lo tanto este valor se asigna en root .
Soluci on: ra z encontrada 63d else root=xr; end
Fragmento referenciado en 63a.

64

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

3.3.2.2.3.4. C alculo error e incremento de iteraciones Una vez se ha obtenido una aproximaci on a la ra z de la ecuaci on se determina la calidad num erica de la misma calculando el error relativo. As mismo se incrementa el n umero de iteraciones.
Ciclo Principal Bisecci on: C alculo error e incremento iteraciones 64a er=(abs(xr-xold)/xr)*100; iter=iter+1;
Fragmento referenciado en 62a.

3.3.2.2.3.5. Asignaci on de resultados El valor actual de la ra z xr, as como el valor de la funci on f unc en ese punto y error relativo de la aproximaci on actual de la ra z se almacenan en los respectivos vectores.
Ciclo Principal Bisecci on: Asignaci on de resultados 64b x(iter)=xr; f(iter)=feval(func,xr); err(iter)=er;
Fragmento referenciado en 62a.

TODOS ABIERTOS 3.3. ME Ejemplo MATLAB


R

65

(Soluci on de Manning con el M etodo de la Bisecci on)

Para encontrar la ra z de una funci on empleando el m etodo de la Bisecci on es necesario denir el intervalo en donde se debe realizar la b usqueda. Para este caso particular, los resultados obtenidos del m etodo gr aco (ver Figura 3.1) indica que el valor de la ra z es de aproximadamente 6, de tal forma que el intervalo de b usqueda corresponde a [5, 7], el n umero m aximo de iteraciones es de 100 y el error m nimo deseado para la soluci on es de 1 103 . La soluci on de la ecuaci on de Manning usando el m etodo de la Bisecci on se puede implementar en MATLAB R de la siguiente forma: >>[x,f,err,iter]=bisection(5,7,@prueba_manning,100,1e-3); >> iter iter = 16 >> [x(iter) f(iter) err(iter)] ans = 6.1450 -0.0033 0.0010

De aqu se inere que el valor de la profundidad del canal es de 6.1450 m.

3.3.2.3.

An alisis de Convergencia

A continuaci on se presenta un an alisis de convergencia para el m etodo de la bisecci on. Para realizar dicho an alisis se parte del concepto de error absoluto
0 0 0 Ea = x0 u xl = x

(3.9)

donde los super ndices denen la iteraci on para la cual este importante par ametro se calcula. Para la primera iteraci on el error est a dado por: x0 (3.10) 2 y debido a que en cada iteraci on el error disminuye a la mitad se tiene que:
1 Ea =

x0 (3.11) 2n de tal forma que si se tiene el error que se desea obtener con esta aproximaci on se puede despejar n con lo cual resulta:
n Ea =

n=

log (x0 /Ea,d ) = log2 log 2

x0 Ea,d

(3.12)

66

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

La convergencia del m etodo se encuentra asegurada por la ecuaci on 3.11 en donde es evidente que el error disminuye a medida que el n umero de iteraciones n aumenta.

3.4.

M etodos Cerrados

Denici on 13 Los m etodos cerrados para determinar ra ces de ecuaciones no lineales son aquellos que no requieren especar un intervalo de b usqueda sino solamente un valor inicial de la ra z. Dentro de los m etodos cerrados m as importantes se pueden mencionar: M etodo de Newton M etodo de la secante M etodo de la secante modicado los cuales se explicar an a continuaci on.

3.4.1.
3.4.1.1.

M etodo de Newton
Fundamentos Conceptuales

El m etodo de Newton al ser un m etodo cerrado requiere que se especique un valor inicial de la ra z x0 y este valor se va renando mediante un esquema iterativo. El m etodo de Newton tiene su fundamento en la serie de Taylor aplicada en la funci on f (x), con lo cual se tiene: f (x) = f (x0 ) + f (x0 )(x x0 ) + f (x0 ) (x x0 )2 + 2! (3.13)

y truncando esta serie hasta la primera derivada se obtiene: f (x) = f (x0 ) + f (x0 )(x x0 ) Ahora si se hace x = xr se tiene que f (xr ) = 0: 0 = f (x0 ) + f (x0 )(xr x0 ) y despejando xr : xr = x0 f (x0 ) f (x0 (3.16) (3.15) (3.14)

TODOS CERRADOS 3.4. ME

67

Esta ecuaci on se puede expresar como un esquema iterativo de la siguiente forma: f (xn ) (3.17) xn+1 = xn f (xn+1 ) La idea fundamental del m etodo de Newton consiste en especicar una soluci on inicial x0 y al aplicar la ecuaci on 3.17 para mejorar la estimaci on de la ra z xr . Este procedimiento se repite hasta que las diferencias obtenidas en los valores obtenidos sean menores que una tolerancia especicada por el usuario. El m etodo de Newton tambi en puede interpretado de forma geom etrica usando ngulo tiene la situaci on representada en la gura 3.6. De esta se inere que el a una tangente igual a: f (xi ) 0 (3.18) tan () = xi xi+1 De aqu resulta de inter es el valor de xi+1 ya que este corresponde a la nueva estimaci on de la ra z xr y por lo tanto al despejar se tiene: xi+1 = xi f (xi ) f (xi ) = xi tan () f (xi ) (3.19)

en donde se ha empleado la equivalencia entre la tangente en un punto de una funci on y la derivada de la funci on. Esta ecuaci on es equivalente a la expresi on 3.17 la cual se obtuvo de una forma alternativa.
. f (x) f (xi )

f (xi+1 ) xi+2 xi+1 xi x

Figura 3.6: Interpretaci on geom etrica del m etodo de Newton

A pesar que este procedimiento es uno de los m as empleados en la pr actica para la determinaci on de ra ces tiene limitaciones. Algunas de las desventajas de este m etodo son las siguientes:

68
140

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

120

100

80

60

40

20 Raz=2.3223 0 x3 x2 3 3.5 x1 4 x0 4.5 5

.0

20 0

0.5

1.5

2.5

Figura 3.7: Ejemplo de aplicaci on del m etodo de Newton. En este m etodo se parte de una soluci on inicial x0 y en el punto f (x0 ) se determina una recta tangente, la cual al intersectarse con el eje de las x dene una nueva aproximaci on a la ra z x1 . Este procedimiento se repite hasta que se obtenga un valor lo sucientemente aproximado a la ra z. Las rectas representadas por la l nea continua se construyen empleando el criterio de actualizaci on dado por la ecuaci on 3.17.

Como todo m etodo iterativo la convergencia no est a asegurada. Por ejemplo si se elige mal la soluci on inicial x0 el m etodo en algunas oportunidades puede presentar divergencia. El m etodo presenta divergencia si la ra z xr de la funci on f (x) es tambi en un punto de inexi on de la misma. El m etodo presenta problema en cercan as de puntos m aximos y m nimos ya que en estos puntos f (x) = 0 y por lo tanto la ecuaci on 3.17 no est a denida. En el caso de funciones con m ultiples raices se pueden presentar proble-

TODOS CERRADOS 3.4. ME mas de convergencia por saltos en la determinaci on de xr

69

El m etodo presenta problemas en cercan as de los puntos de inexi on, en donde el signo de la derivada puede cambiar. Ejemplo (Dimensi on caracter stica de un lago) Para aplicar el m etodo de Newton para la soluci on de este problema es necesario especicar: x0 soluci on inicial, que en este caso es 2.0 Derivada de la funci on, que en este caso es f (1) (x) = 2x Tolerancia m nima aceptable, 0.01 % Para la iteraci on 1 se tiene que: x0 = 2.0 f (x0 ) = 2.0106 f
(1)

(3.20)

(x0 ) = 4.0

y por lo tanto el nuevo valor de la ra z es: x1 = x0 = 2.0106 f (x0 ) = 2.0 = 2.0 0.5026 = 1.4973 (1) f (x0 ) 4.0

Para la iteraci on 2 se tiene que: x1 = 1.49735 f (x1 ) = 0.2526 f (1) (x1 ) = 2.9947 y por lo tanto el nuevo valor de la ra z es: x2 = x1 f (x1 ) 0.2526 = 1.49735 = 1.4129 (1) f (x1 ) 2.9947

Para la iteraci on 3 se tiene que: x2 = 1.4129 f (x2 ) = 0.00688 f (1) (x2 ) = 2.8258 y por lo tanto el nuevo valor de la ra z es: x3 = x2 f (x2 ) 0.00688 = 1.4129 = 1.4104 (1) f (x2 ) 2.8258

El anterior procdimiento se repite hasta que el error relativo de la ra z aproximada sea menor que la tolerancia especicada inicialmente.

70 3.4.1.2.

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION Determinaci on de ra ces con el m etodo de Newton

La funci on en MATLAB R que implementa el m etodo de newton se denomina newton.m y tiene la siguiente estructura
"newton.m" 70a Newton: Declaraci on de la funci on 70b Newton: Inicializaci on de variables 71a Newton: Ciclo Principal 71b

3.4.1.2.1. Declaraci on de la funci on riables de entrada:

: Esta funci on tiene las siguientes va-

xguess: valor inicial de la ra z. Generalmente depende del problema y se puede determinar por m etodos gr acos f unc: funci on en estudio y de la cual se quiere determinar la ra z df unc: derivada de la funci on de la cual se quiere determinar la ra z err min: error m nimo que se quiere obtener en la ra z maxit: N umero m aximo de iteraciones Esta funci on tiene como variables de salida las siguientes: x: vector
Newton: Declaraci on de la funci on 70b function [x,f,err,iter]=newton(xguess,func,dfunc,errmin,maxit)
Fragmento referenciado en 70a.

3.4.1.2.2. Inicializaci on de Variables Para realizar la determinaci on de la ra z de la funci on f unc se hace necesario inicializar las variables de salida (explicadas en la secci on anterior) junto con las siguientes variables: iter: contador de iteraciones er valor inicial de error relativo. Se inicializa en 100 % xold: valor de la ra z en la iteraci on anterior (Para calcular el error relativo por iteraci on). Se inicializa con el valor de la ra z inicial.

TODOS CERRADOS 3.4. ME

71

xr: valor de la ra z en la iteraci on actual. Se inicializa con el valor inicial de la ra z.


Newton: Inicializaci on de variables 71a iter=1; er=100; x(1)=xguess; f(1)=feval(func,x(1)); err(1)=er; xrold=xguess; xr=xguess;
Fragmento referenciado en 70a.

3.4.1.2.3. Ciclo Principal Debido a que no se conoce de antemano el n umero de iteraciones necesario para que el procedimiento de obtenci on de la ra z converja a una soluci on satisfactoria, el m etodo de Newton se implementa a nivel computaciona como un ciclo while, controlado tanto por el n umero de iteraciones iter y por el error relativo de la soluci on err. El ciclo se detiene ya sea cuando el n umero de iteraciones supera el valor m aximo max it o cuando el error relativo err es menor al error m nimo tolerable en la soluci on err min. La estructura de este ciclo principal es la siguiente:
Newton: Ciclo Principal 71b while (er>=errmin & iter<maxit) Ciclo Principal Newton: Actualizaci on soluci on 72a Ciclo Principal Newton: C alculo error e incremento iteraciones 72b Ciclo Principal Newton: Asignaci on de resultados 72c end
Fragmento referenciado en 70a.

3.4.1.2.3.1. Actualizaci on de la soluci on Aqu se realiza el procedimiento clave del m etodo de Newton. Dentro de el ciclo la primera tarea que se hace es asignar a xold el valor de la ra z obtenido en la iteraci on anterior, con lo cual se posibilita calcular el error relativo. Posteriormente el valor de la ra z actual se modica usando la ecuaci on 3.17. Para evaluar la funci on y su derivada se emplea el comando de MATLAB R feval.

72

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

Ciclo Principal Newton: Actualizaci on soluci on 72a xrold=xr; xr=xrold-feval(func,xrold)/feval(dfunc,xrold);


Fragmento referenciado en 71b.

3.4.1.2.3.2. C alculo del error e incremento de iteraciones Como se mencion o anteriormente el criterio de convergencia de este m etodo es el error relativo, as que para la soluci on actual se determinar el error relativo obtenido al comparar este valor con el de la ra z obtenida en la soluci on anterior xold. As mismo se incrementa el contador de iteraciones iter, ya que esta es la otra variable que controla el ciclo.
Ciclo Principal Newton: C alculo error e incremento iteraciones 72b er=abs((xr-xrold)/xr)*100; iter=iter+1;
Fragmento referenciado en 71b.

3.4.1.2.3.3. Asignaci on de resultados


Ciclo Principal Newton: Asignaci on de resultados 72c x(iter)=xr; f(iter)=feval(func,xr); err(iter)=er;
Fragmento referenciado en 71b.

3.4.1.3. Derivada de la ecuaci on de Manning Con el n de aplicar el m etodo de Newton para la soluci on de la ecuaci on de Manning es necesario calcular la derivada de la funci on de inter es 3.6 con respecto a la variable que nos interesa despejar, en este caso h. Esta derivada es igual a: f
(1)

1 5 (h) = S 1/2 b n 3

bh b + 2h

2/3

4 3

bh b + 2h

5 /3

La funci on que implementa esta derivada tiene la siguiente estructura:

TODOS CERRADOS 3.4. ME


"der_manning.m" 73a Derivada Manning: Declaraci on de la funci on 73b Derivada Manning: Inicializaci on de variables 73c Derivada Manning: C alculo derivada 73d

73

3.4.1.3.1. Declaraci on de la funci on Al igual que en el caso de la funci on de nica variable de entrada corresponde a la profundidad del canal Manning, la u h, y la variable de salida es el valor de la derivada yp:
Derivada Manning: Declaraci on de la funci on 73b function [yp]=der_manning(h)
Fragmento referenciado en 73a.

3.4.1.3.2.

Inicializaci on de Variables

Derivada Manning: Inicializaci on de variables 73c b=30; n=0.022; Q=1000; S=0.002;


Fragmento referenciado en 73a.

3.4.1.3.3. C alculo de la derivada En este fragmento de c odigo se determina el valor de la derivada de la ecuaci on de Manning (ecuaci on 3.4.1.3), para esto se calcula primero la variable t = (bh)/(b+2h) y con esta se determina f acilmente la derivada:
Derivada Manning: C alculo derivada 73d t = b*h./(b+2*h); yp = -1/n*sqrt(S)*(5/3*b*t.^(2/3)-4/3*t.^(5/3));
Fragmento referenciado en 73a.

74 Ejemplo MATLAB
R

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION (Soluci on de Manning con el M etodo de Newton)

Para aplicar el m etodo de Newton en la soluci on de la ecuaci on de Manning es necesario conocer la derivada de la funci on de inter es (ecuaci on 3.6). La soluci on de la ecuaci on de Manning usando el m etodo de Newton R se puede hacer en MATLAB usando la funci on newton.m de la siguiente forma: >> [x,f,err,iter]=newton(7,@prueba_manning,@der_manning,1e-3,100); >> iter iter = 4 >> [x(iter) f(iter) err(iter)] ans = 6.14494463443898 -0.00000000101147 0.00019019602665

En este caso particular se ha obtenido un valor de profundidad de 6.14 m en 4 iteraciones. Compar ense los resultados con el m etodo de la bisecci on y con el m etodo de la secante. 3.4.1.4. An alisis de convergencia

El an alisis de convergencia del m etodo de Newton se basa en la descomposici on en series de Taylor de una funci on en el punto xi+1 dada por la siguiente expresi on: f (2) ( ) (xi+1 xi )2 (3.21) 2! Sin embargo con el n de simplicar las manipulaciones matem aticas que de esta se derivan, la serie anterior se trunca teniendo en cuenta solamente dos t erminos: f (xi+1 ) f (xi ) + f (1) (xi )(xi+1 xi ) (3.22) f (xi+1 ) = f (xi ) + f (1) (xi )(xi+1 xi ) + Si xr , que es el valor de la ra z de la ecuaci on f (x), se reemplaza en la expresi on anterior se tiene que f (xi+1 ) = 0 y por lo tanto se puede expresar como: 0 = f (xi ) + f (1) (xi )(xr xi ) (3.23) y sustituy endola en la expresi on original (ecuaci on 3.21) 0 = f (xi ) + f (1) (xi )(xi+1 xi ) + f (2) ( ) (xi+1 xi )2 2! (3.24)

TODOS CERRADOS 3.4. ME Restando las ecuaciones 3.23 y 3.24 se obtiene: 0 = f (1) (xi )(xr xi+1 ) + f (2) ( ) (xr xi )2 2!

75

(3.25)

Ahora recordando la denici on de error absoluto se tiene que Er,i+1 = |xi+1 xi | y por lo tanto la ecuaci on anterior se simplica para obtener: f (2) ( ) 2 Er,i (3.26) 0 = f (xi )Er,i+1 + 2! y si se supone que hay convergencia, entonces xi y se deben aproximar a la ra z xr y la ecuaci on anterior se puede expresar como:
(1)

Er,i+1

f (2) (xr ) 2 = (1) E 2f (xr ) r,i

(3.27)

de donde es claro que el error en la iteraci on i + 1 es proporcional al cuadrado del error en la iteraci on i, lo cual indica que el error disminuye y por lo tanto el m etodo converge a la ra z xr .

3.4.2.
3.4.2.1.

M etodo de la Secante
Fundamentos Conceptuales

Una de las grandes desventajas del m etodo de Newton-Raphson es que se tiene que conocer la derivada de la funci on que se est a evaluando, lo cual no siempre es posible; especialmente en el caso de funciones que no tienen deriva til contar da o cuya derivada es muy dif cil de determinar. En estos caso resulta u con un m etodo alternativo que no requiera conocer la derivada de antemano, sino que esta se determine de forma num erica. La derivada de f (x) en el punto xi se puede obtener usando: f (xn ) = f (xn ) f (xn1 ) xn xn1 (3.28)

La ecuaci on anterior se puede reemplazar en la ecuaci on 3.17 con lo cual se obtiene: f (xn )(xn xn1 ) xn+1 = xn (3.29) f (xn ) f (xn1 ) y con la cual se dene la regla de actualizaci on del m etodo de la secante. Como es evidente de la ecuaci on anterior, este m etodo requiere dos valores iniciales x0 , x1 , los cuales no es necesario que denan un intervalo que contenga a la ra z xr que se quiere determinar. Este m etodo tiene las mismas ventajas y desventajas que el m etodo de Newton, y dependiendo de los valores iniciales se puede presentar o no convergencia.

76

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

Este m etodo tambi en admite una interpretaci on geom etrica similar al del m etodo de Newton, la cual aparece en la gura 3.8. Dados dos valores xi y xi1 se dene una l nea recta que una los puntos f (xi ) y f (xi1 ). De esta forma se denen 2 triangulos similares ABE y DCE , con lo cual se establecen las siguientes relaciones: DC AB = AE DE f (xi ) f (xi1 ) = xi xi+1 xi1 + xi+1 y del cual se despeja xi+1 para obtener: xi+1 = xi f (xi )(xi xi1 ) f (xi ) f (xi1 ) (3.31)

(3.30)

Esta ecuaci on se puede expresar como un esquema iterativo con lo cual aparece la ecuaci on 3.29. La aplicaci on de este m etodo puede verse en acci on en la gura 3.9.
.

f (x)

f (xi1 )

f (xi ) E xi+1

D C xi

A xi1

Figura 3.8: Interpretaci on geom etrica del m etodo de la secante. La recta secante (en color gris) se dene entre los puntos f (xi1 ) y f (xi ) y con esta se aproxima el nuevo valor de la ra z.

TODOS CERRADOS 3.4. ME

77

Ejemplo (Dimensi on caracter stica de un lago) Para aplicar el m etodo de la secante para la soluci on de este problema es necesario especicar: x0 soluci on inicial 1, que en este caso es 2.0 y x1 soluci on inicial 2 que este caso corresponde a 1.9 Derivada de la funci on, que en este caso es f (1) (x) = 2x Tolerancia m nima aceptable, 0.01 % Para la iteraci on 1 se tiene que x0 = 2.0 f (x0 ) = 0.00688 x1 = 1.9 f (x1 ) = 1.6206 y por lo tanto la nueva ra z es igual a: x2 = x1 f (x1 )(x1 x0 ) f (x1 ) f (x0 ) 2.0106 (2.0 1.9) = 2.0 2.0000 1.6206 = 2.0000 0.5155 = 1.4844

Para la iteraci on 2 se tiene que: x1 = 1.9 f (x1 ) = 1.6206 x2 = 1.4844 f (x2 ) = 0.2140 y por lo tanto la nueva ra z es igual a: x3 = x2 f (x2 )(x2 x1 ) f (x2 ) f (x1 ) 0.2150 (1.4844 1.9) = 1.4844 0.2140 1.6206 = 1.4844 0.0632 = 1.4211

Para la iteraci on 3 se tiene que: x2 = 1.4844 f (x2 ) = 1.6206 x3 = 1.4211 f (x3 ) = 0.0301

78
140

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

120

100

80

60

40

20 Raz=2.3223 0 x4 x3 3 x2 3.5 x1 4 x0 4.5 5

.0

20 0

0.5

1.5

2.5

Figura 3.9: Ejemplo de aplicaci on del m etodo de la secante.En este m etodo se parte de dos soluciones iniciales x0 y x1 y se traza la recta secante en f (x0 ) y f (x1 ) (l nea roja continua) con la cual se determina el valor de la nueva ra z x2 . Este procedimiento se repite hasta que se encuentra una ra z con un nivel de tolerancia predeterminado. y por lo tanto la nueva ra z es igual a: x4 = x3 f (x3 )(x3 x2 ) f (x3 ) f (x2 ) 0.0301 (1.4211 1.4844) = 1.4211 0.0301 1.6206 = 1.4211 0.0103683 = 1.4107317

El anterior procdimiento se repite hasta que el error relativo de la ra z aproximada sea menor que la tolerancia especicada inicialmente.

TODOS CERRADOS 3.4. ME 3.4.2.2. Determinaci on de ra ces por medio del m etodo de la Secante

79

El m etodo de la secante se encuentra implementado en la funci on secante.m, la cual tiene la siguiente estructura:
"secante.m" 79a Secante: Declaraci on de la funci on 79b Secante: Inicializaci on de las variables 80a Secante: Ciclo principal 80b

3.4.2.2.1. Declaraci on de la Funci on Las variables de entrada a la funci on que implementa el m etodo de la secante son: x0, x1: valores iniciales especicados para la b usqueda de la ra z f unc: funci on a evaluar con el m etodo de la secante errmin: error relativo m nimo usado para chequear la convergencia a una ra z dada itmax: N umero m aximo de iteraciones Las variables de salida de esta funci on son las siguientes: x: vector que contiene los valores de la ra z determinada en cada iteraci on f : vector que contiene los valores de la funci on f unc evaluada en cada uno de los valores contenidos en el vector x er: vector que contiene el error relativo obtenido en cada iteraci on del procedimiento de b usqueda de la ra z.
Secante: Declaraci on de la funci on 79b function [x,f,err,iter]=secante(x0,x1,func,errmin,maxit)
Fragmento referenciado en 79a.

3.4.2.2.2. Inicializaci on de variables Para ejecutar el m etodo de la secante es necesario inicializar las siguientes variables: err: valor de error relativo inicial. Este valor se inicializa en 100 %. xold0, xold1:

80

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION iter: contador de las iteraciones. Este valor se inicializa en 0. x: vector en donde se almacenan los valores de las ra ces obtenidos en cada iteraci on. El primer valor de este vector se hace igual a x0. f : vector en donde se almacenan los valores de la funci on evaluada en cada una de las ra ces obtenidas en cada iteraci on. El primer valor de este vector se inicializa en el valor de la funci on evaluada en x0.

Secante: Inicializaci on de las variables 80a iter=1; er=100; xold0=x0; xold1=x1; x(1)=x1; f(1)=feval(func,x1); err(1)=er;
Fragmento referenciado en 79a.

3.4.2.2.3. Ciclo principal El ciclo principal del m etodo de la secante est a implementado usando un ciclo while controlado por el n umero de iteraciones iter y el err. Este ciclo presenta la siguiente estructura:
Secante: Ciclo principal 80b while (err>errmin) & (iter<maxit); Ciclo Principal Secante: Evaluaci on funci on dos puntos iniciales 81a Ciclo Principal Secante: Actualizaci on soluci on 81b Ciclo Principal Secante: C alculo error e incremento iteraciones 81c Ciclo Principal Secante: Almacenamiento de resultados 81d end;
Fragmento referenciado en 79a.

En este fragmento de c odigo se eval ua la funci on en los dos puntos iniciales, ya que estos se requieren para calcular la derivada de forma num erica.

3.4.2.2.3.1. Evaluaci on funci on en puntos iniciales

TODOS CERRADOS 3.4. ME


Ciclo Principal Secante: Evaluaci on funci on dos puntos iniciales 81a fii=feval(func,xold1); fi=feval(func,xold0);
Fragmento referenciado en 80b.

81

3.4.2.2.3.2. Actualizaci on de la soluci on En este fragmento se calcula la derivada de la funci on usando los dos puntos y se actualiza el valor de la ra z inicial usando la ecuaci on 3.29:
Ciclo Principal Secante: Actualizaci on soluci on 81b xr=xold1-(fii*(xold0-xold1)/(fi-fii));
Fragmento referenciado en 80b.

3.4.2.2.3.3. C alculo de error e incremento de iteraciones Una vez se ha actualizado la ra z se calcula el error relativo de esta aproximaci on a la ra z y se incrementa el n umero de iteraciones. Estas son las variables que controlan el ciclo while.
Ciclo Principal Secante: C alculo error e incremento iteraciones 81c er=abs((xr-xold1)/xr)*100; iter=iter+1;
Fragmento referenciado en 80b.

3.4.2.2.3.4. Almacenamiento de los Resultados El valor de la ra z obtenido hasta el momento xr se almacena en el vector x, as como el valor de la funci on en este punto en el vector f y el error relativo obtenido en esta iteraci on en el vector er. Los valores de los dos puntos necesarios para calcular la derivada se actualizan.
Ciclo Principal Secante: Almacenamiento de resultados 81d x(iter)=xr; f(iter)=feval(func,x(iter)); err(iter)=er; xold0=xold1; xold1=xr;
Fragmento referenciado en 80b.

82 Ejemplo MATLAB
R

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION (Soluci on de Manning con el M etodo de la Secante)

La soluci on de la ecuaci on de Manning usando el m etodo de la Secante se puede implementar en MATLAB R de la siguiente forma: >> format long >> [x,f,err,iter]=secante(6,5,@prueba_manning,1e-10,100); >> iter iter = 6 >> [x(iter) f(iter) err(iter)] ans = 6.14494463443476 -0.00000000006935 0.00000000000471

Los resultados obtenidos indican que el procedimiento converge en 6 iteraciones y que el valor de la profundidad del canal es de aproximadamente 6.14 m.

3.4.3.
3.4.3.1.

M etodo de la Secante Modicado


Fundamentos Conceptuales

El m etodo de la secante se aplica cuando las funciones estudiadas no tienen derivadas o sus derivadas son dif ciles de calcular. La soluci on a este problema consiste en aproximar la derivada de forma num erica empleando dos puntos. Sin embargo esto tambi en puede ser un problema, ya que denir dos puntos no siempre resulta f acil y en la mayor a de las situaciones implica elaborar la gr aca de la funci on. El m etodo de la secante se puede modicar de tal manera que solo sea necesario especicar un punto xn1 deniendo el otro punto como: xn1 = xn + xn donde 0 y con lo cual la ecuaci on 3.28 se modica para obtener: xn+1 = xn f (xn )(xn ) f (xn ) f (xn + xn ) (3.33) (3.32)

En este m etodo de la secante modicada la derivada se vuelve a aproximar de forma num erica, pero ahora el analista selecciona un punto xn y el otro se

TODOS CERRADOS 3.4. ME toma a una distancia de este.

83

Ejemplo (Dimensi on caracter stica de un lago) Para aplicar el m etodo de la secante modicada para la soluci on de este problema es necesario especicar: x0 soluci on inicial 1, que en este caso es 2.0 y = 1.0 106 que es la distancia a la cual se toma el otro punto. Tolerancia m nima aceptable, 0.01 % Para la iteraci on 1 se tiene: x0 = 2.0 f (x0 ) = 2.0106 x1 = x0 + x0 = 2.0 + 2 106 = 2.000002 f (x1 ) = 2.010608 y por lo tanto la ra z es igual a: x2 = x1 + f (x1 )(x1 x0 ) f (x1 ) f (x0 ) 2.010608 1.0 106 = 2.00002 8.0 106 = 2.00002 0.251326 = 1.748676

(3.34)

Para la iteraci on 2 se tiene: x1 = 1.748676 f (x1 ) = 1.0684678 x2 = 1.7486777 + 1.0 106 f (x2 ) = 1.06847719 y por lo tanto la nueva aproximaci on a la ra z es igual a: x3 = x2 f (x2 (x2 x1 )) f (x2 ) f (x1 ) 1.0684678 1.0 106 = 1.748676 5.9 107 = 1.748676 0.1797103 = 1.5689657

Para la iteraci on 3 se tiene: x3 = 1.5689657 f (x3 ) = 0.47225650570889 x4 = 1.5689657 + 1.0 106 f (x4 ) = 0.47225650570889

84

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

y por lo tanto la nueva aproximaci on a la ra z es igual a: x4 = x3 f (x3 (x3 x2 )) f (x3 ) f (x2 ) 0.47225 1.0 106 ) = 1.5689657 3.13 106 = 1.5689657 0.1504982 = 1.4184587

Este procedimiento se repite hasta que el error relativo de la ra z se hace menor que la tolerancia especicada inicialmente.

3.4.3.2.

Determinaci on de ra ces con el m etodo de la Secante modicado

La estructura de la funci on que implementa el m etodo de la Secante modicado es la siguiente:


"secante_mod.m" 84 Secante modicado: Declaraci on de la funci on 85a Secante modicado: Inicializaci on de las variables 85b Secante modicado: Ciclo principal 86a

3.4.3.2.1. Declaraci on de la funci on ci on son las siguientes

Las variables de entrada de esta fun-

x0: soluci on inicial de la ra z especicada por el usuario. Se recomienda que este sea determinado por medio del m etodo gr aco. f unc: Funci on que implementa la ecuaci on no-lineal que se va a analizar. errmin: valor del error m nimo que se esta dispuesto a tolerar en la soluci on obtenida. Este valor se encuentra relacionado con las cifras signicativas que va a tener la soluci on. maxit: N umero m aximo de iteraciones empleadas en el procedimiento de b usqueda. sigma: Valor de incremento con el cual se determina el segundo punto para calcular la derivada en un punto determinado. y las correspondientes variables de salida: x: Vector que almacena los valores de la ra z aproximados en cada iteraci on.

TODOS CERRADOS 3.4. ME

85

f f : Vector que almacena los valores de la funci on para las raices aproximadas en cada iteraci on. err: Vector que almacena los valores del error relativo de cada una de las raices aproximadas. iter: N umero de iteraciones empleado para alcanzar la soluci on deseada.
Secante modicado: Declaraci on de la funci on 85a function [x,ff,err,iter]=secante_mod(x0,func,errmin,maxit,sigma)
Fragmento referenciado en 84.

3.4.3.2.2. Inicializaci on de variables Al igual que en todos los procedimientos vistos anteriormente, antes de proceder a obtener la soluci on de la ecuaci on no-lineal de inter es se hace necesario inicializar las diferentes variables involucradas, y denir otras variables: iter, que corresponde al contador de iteraciones del proceso, se iniciliza en 1 La variables er se dene para almacenar el valor de error de la soluci on actual y se inicializa en 100 % xold se emplea con el n de almacenar el valor de la soluci on en la iteraci on o paso anterior. Este valor se inicializa con el valor inicial de la soluci on x0 x(1), f f (1), err(1) son los vectores en donde se almacenan los valores de la soluci on, de la funci on no lineal de inter es y del error de la soluci on obtenida, respectivamente. Estos vectores se inicializan con la soluci on inicial x0, el valor de la funci on f unc en ese punto y el error inicial del 100 %.
Secante modicado: Inicializaci on de las variables 85b iter=1; er=100; xold=x0; x(1)=x0; ff(1)=feval(func,x(1)); err(1)=er;
Fragmento referenciado en 84.

86

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION

3.4.3.2.3. Ciclo principal El procedimiento de b usqueda de la ra z se encuentra implementado mediante un ciclo while que se encuentra controlado por el n umero de iteraciones y el error relativo de la ra z aproximada, y cuya estructura se presenta a continuaci on:
Secante modicado: Ciclo principal 86a while ((err>errmin) & (iter<maxit)); Ciclo Principal Secante Modicado: c alculo factor de correcci on 86b Ciclo Principal Secante Modicado: Actualizaci on soluci on 86c Ciclo Principal Secante Modicado: C alculo error e incremento iteraciones 87a Ciclo Principal Secante Modicado: Almacenamiento de resultados 87b end;
Fragmento referenciado en 84.

3.4.3.2.3.1. C alculo factor de correcci on El factor de correcci on corresponde al valor que se le debe sumar al valor inicial de la ra z especicado por el usuario y el cual se encuentra denido por la expresi on: cor = f (xn )(xn ) f (xn ) f (xn + xn ) (3.35)

lo cual se encuentra codicado de la siguiente forma:


Ciclo Principal Secante Modicado: c alculo factor de correcci on 86b cor=sigma*xold*feval(func,xold)... /(feval(func,(1+sigma)*xold)-feval(func,xold));
Fragmento referenciado en 86a.

3.4.3.2.3.2. Actualizaci on soluci on Una vez se ha calculado el factor de correcci on se procede a actualizar la soluci on usando la expresi on dada por la ecuaci on 3.33:
Ciclo Principal Secante Modicado: Actualizaci on soluci on 86c xr=xold-cor;
Fragmento referenciado en 86a.

3.4.3.2.3.3. C alculo error e incremento de iteraciones Con la nueva ra z calculada se determina el error relativo de la misma y se incrementa el n umero de iteraciones:

TODOS CERRADOS 3.4. ME


Ciclo Principal Secante Modicado: C alculo error e incremento iteraciones 87a er=abs((xr-xold)/xr)*100; iter=iter+1;
Fragmento referenciado en 86a.

87

3.4.3.2.3.4. Almacenamiento de resultados Una vez se ha calculado el nuevo valor de la ra z as como su error relativo asociado, se procede a almacenar estos resultados en los vectores x y err respectivamente. Tambi en se determina el valor de la funci on para la ra z aproximada y se almacena en el vector f f .
Ciclo Principal Secante Modicado: Almacenamiento de resultados 87b x(iter)=xr; ff(iter)=feval(func,xr); err(iter)=er; xold=xr;
Fragmento referenciado en 86a.

88 Ejemplo MATLAB
R

ECUACIONES NO LINEALES CAP ITULO 3. SOLUCION (Soluci on de Manning con Secante modicado)

La soluci on de la ecuaci on de Manning usando el m etodo de la Secante Modicado se puede implementar de la siguiente forma: >> format long; >> [x,ff,err,iter]=secante_mod(5,@prueba_manning,1e-10,100,1e-6); >> iter iter = 6 >> [x(iter) f(iter) err(iter)] ans = 6.14494463443476 -0.00000000006935 0.00000000000001

Los resultados en MATLAB R indican que el procedimiento converge en 6 iteraciones y que el valor de la profundidad del canal es de aproximadamente 6.14 m.

Cap tulo 4 Polinomios


4.1.
4.1.1.

Evaluaci on de Polinomios
Fundamentos Conceptuales

Debido a que la determinaci on de las raices de los polinomios generalmente se realiza usando procedimientos iterativos, estos requieren la evaluaci on repetida de dichas funciones para diferentes valores de las ra ces que se estan probando; y por lo tanto este procedimiento debe realizarse de la forma m as eciente posible (computacionalmente hablando). Por ejemplo, la evaluaci on directa para un polinomio de grado n se desprende de la expresi on algebraica del mismo, la cual est a dada por:
n n n1 2

Pn (x) = an x + an1 x

+ a2 x + a1 x + a0 =
k=0

ak x k

(4.1)

donde los ai corresponden a los coecientes del polinomio. Computacionalmente hablando, la ecuaci on 4.1 se puede implementar mediante un ciclo for ya que se conoce el grado n junto con los coecientes. Sin embargo esta aproximaci on requiere n sumas y n(n + 1)/2 multiplicaciones, de tal forma que ser a muy ineciente para polinomios de grado alto. Con el n de evitar este problema, la ecuaci on 4.1 se puede reescribir usando una sencilla manipulaci on algebraica. Para mostrar este procedimiento se va a partir de un polinomio de 4 grado, expresado por: P4 (x) = a0 + a1 x + a2 x2 + a3 x3 + a4 x4 Este polinomio se puede reescribir de forma anidada como: P4 (x) = a0 + x(a1 + a2 x(a3 + a4 x)) 89 (4.3) (4.2)

90 y el cual se puede expresar de la siguiente forma: P4 (x) = a4 P3 (x) = a3 + xP4 P2 (x) = a2 + xP3 P1 (x) = a1 + xP2 P0 (x) = a0 + xP1

CAP ITULO 4. POLINOMIOS

(4.4)

El procedimiento anterior se puede generalizar mediante una expresi on recursiva dada por: Pn (x) = an Pi (x) = ai + xPi+1 (x), (4.5)

i = 1, . . . , n 1

y el cual es mucho m as eciente que realizar la evaluaci on del polinomio directamente empleando la ecuaci on 4.1, ya que involucra n sumas y n multiplicaciones. En algunas oportunidades adem as de evaluar el valor del polinomio, se requiere evaluar tanto la primera como segunda derivada. Para esto se deriva la ecuaci on 4.5 para obtener la primera derivada: Pn (x) = 0 Pi (x) = Pi+1 (x) + xPi+1 (x) as como la segunda derivada: Pn (x) = 0 Pi (x) = 2Pi+1 (x) + xPi+1 (x) las cuales nuevamente son funciones recursivas. (4.7) (4.6)

4.1.2.

Evaluaci on de polinomios con MATLAB


R

La estructura de la funci on de MATLAB to es la siguiente:


"evaluacion_polinomio.m" 90

que implementa este procedimien-

EvaluacionPolinomio: Declaraci on de Funci on 91a EvaluacionPolinomio: Inicializaci on de Variables 91b EvaluacionPolinomio: Ciclo principal 92

DE POLINOMIOS 4.1. EVALUACION La funci on tiene dos variables de entrada:

91

a: vector de longitud n 1 que contiene los coecientes ai del Polinomio. Es de aclarar que la ecuaci on 4.1 emplea coecientes cuyos sub ndices comienzan en 0, valor que se encuentra almacenado en la posici on 1. x: valor de x en el cual se quiere evaluar el polinomio. Las variables de salida son las siguientes: p: valor del polinomio denido por los coecientes a en el punto x pd: valor de la primera derivada del polinomio en el punto x sd: valor de la segunda derivada del polinomio en el punto x
EvaluacionPolinomio: Declaraci on de Funci on 91a function [p,pd,sd]=evaluacion_polinomio(a,x)
Fragmento referenciado en 90.

Para realizar el procedimiento recursivo descrito por la ecuaci on 4.5 es necesario conocer el n umero de elementos en el vector a, el cual dene el grado del polinomio. Para esto se emplea la funci on intr nseca length y el resultado se almacena en la variable n. As mismo se inicializan en 0 las variables que continen la primera derivada pd y la segunda derivada sd.
EvaluacionPolinomio: Inicializaci on de Variables 91b n=length(a); p=a(n); pd=0.0; sd=0;
Fragmento referenciado en 90.

Para realizar el c alculo del polinomio p en x y de sus derivadas pd y sd se emplea un ciclo for ya que se conoce el grado del polinomio n. Para calcular el valor del polinomio en x se emplea la ecuaci on 4.5 y para las derivadas se utilizan las ecuaciones 4.6 y 4.7. En este caso particular el c alculo se hace en el siguiente orden: 1. Segunda derivada

92 2. Primera derivada 3. Valor del polinomio

CAP ITULO 4. POLINOMIOS

con el n de calcular los valores de forma correcta:


EvaluacionPolinomio: Ciclo principal 92 for i=n-1:-1:1; sd=2.0*pd+sd*x; pd=p+pd*x; p=a(i)+x*p; end;
Fragmento referenciado en 90.

DE POLINOMIOS 4.1. EVALUACION Ejemplo (Evaluaci on de un Polinomio) Evaluar el polinomio P3 (x) = 3x3 5x2 + 3x 5

93

en el punto x = 2 junto con la primera y segunda derivada. El valor del polinomio en x = 2 es: P3 (2) = 3(2)3 5(2)2 +3(2)5 = 3854+325 = 2420+65 = 5 Para evaluar este polinomio de forma m as eciente se emplean la metodolog a explicada en las ecuaciones 4.5, de tal forma que se tiene: n 3 2 1 0 Expresi on Pn P 3 = a3 P2 (x) = a2 + xP3 (x) P1 (x) = a1 + xP2 (x) P0 (x) = a0 + xP1 (x) Valor Pn 3 5 + (2) (3) 3 + (2) (1) 5 + (2) (5) Acumulado 3 1 5 5

y por lo tanto el valor de P3 (2) es igual a 5. La primera derivada del polinomio est a dada por: P3 (x) = 9x2 10x + 3 P3 (2) = 9 (2)2 10 (2) + 3 = 9 4 10 2 + 3 = 36 20 + 3 = 19 n 3 2 1 0 Expresi on Pn (1) P3 = 0 (1) (1) P2 (x) = P3 (x) + xP3 (x) (1) (1) P1 (x) = P2 (x) + xP2 (x) (1) (1) P0 (x) = P1 (x) + xP1 (x)
(1) (1) (1)

Valor Pn 0 3 + (2) (0) 1 + (2) (3) 5 + (2) (7)

(1)

Acumulado 0 3 7 19

y por lo tanto el valor de la primera derivada de P3 (x) evaluada en 2 es igual a 19.

94 Ejemplo (Evaluaci on de un Polinomio (Cont.))

CAP ITULO 4. POLINOMIOS

La segunda derivada de P3 (x) est a dada por: P3 (x) = 18x 10 y al evaluarla en x = 2 se tiene P3 (2) = 18 (2) 10 = 26. Para evaluar la segunda derivada del polinomio se emplean las expresiones dadas por la ecuaci on 4.7: n 3 2 1 0 Expresi on Pn (x) (2) P3 (x) = 0 (2) (1) (2) P2 (x) = 2P3 + xP3 (x) (2) (1) (2) P1 (x) = 2P2 + xP2 (x) (2) (1) (2) P0 (x) = 2P1 + xP1 (x)
(2) (2) (2)

Valor Pn (x) 0 2 (0) + (2) 0 2 (3) + (2) 0 2 (7) + (2) 6

(2)

Acumulado 0 0 6 26

y el valor de la segunda derivada del polinomio evaluada en x = 2 es igual a 26

POLINOMIAL O DIVISION SINTE TICA 4.2. DEFLACION Ejemplo MATLAB


R

95

(Evaluaci on de un Polinomio)

Evaluar el polinomio P3 (x) = 3x3 5x2 + 3x 5 en el punto x = 2 junto con la primera y segunda derivada. Las instrucciones en MATLAB son las siguientes:
R

que permitir an realizar este procedimiento

>> a=[-5 3 -5 3]; >> x=2; >> [p,pd,sd]=evaluacionpolinomio(a,x) p = 5 pd = 19 sd = 26

4.2.
4.2.1.

Deaci on Polinomial o Divisi on Sint etica


Fundamentos Conceptuales

lgebra del bachillerato se aprendi En el a o un procedimiento para realizar divisi on entre polinomios conocido como la divisi on sint etica. En el caso que una ra z del polinomio xr se haya determinado esta se puede extraer usando este procedimiento para obtener un polinomio de grado n 1. Este procedimiento se puede repetir hasta que todas las raices se hayan determinado. La divisi on sint etica o deaci on polinomial como tambi en se le conoce se dene como el procedimiento de descomponer un polinomio de la forma: Pn (x) = (x xr )Pn1 (x) y en donde Pn1 (x) est a dado por: Pn1 (x) = bn1 xn1 + bn2 xn2 + + b1 x + b0 (4.9) (4.8)

Con el n de presentar el procedimiento con miras a su implementaci on se va a analizar un ejemplo aplicado a un polinomio de cuarto grado, el cual

96 est a dado por:

CAP ITULO 4. POLINOMIOS

P4 (x) = a4 x4 + a3 x3 + a2 x2 + a1 x + a0

(4.10)

y del cual se ha determinado una ra z xr . Esta ra z puede factorizarse usando la ecuaci on ecuaci on 4.8 y al realizar el producto entre el monomio y el polinomio residual se obtiene: P4 = (x xr )(b3 x3 + b2 x2 + b1 x + b0 ) = b3 x4 + (b2 b3 xr )x3 + (b1 b2 xr )x2 + (b0 b1 xr )x b0 xr (4.11)

en donde los coecientes bi denen el polinomio residual. Para determinar los valores de los bi se igualan los coecientes de 4.10 con 4.11: a4 a3 a2 a1 a0 = b3 = b2 b3 x r = b1 b2 x r = b0 b1 x r = b0 xr

(4.12)

y se despejan los bi con lo que se obtiene: b3 b2 b1 b0 = a4 = a3 + b 3 x r = a2 + b 2 x r = a1 + b 1 x r

(4.13)

Este resultado se puede generalizar mediante una relaci on recursiva dada por: bn1 = an bi = ai+1 + bi+1 xr , (4.14)

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

la cual f acilmente se puede implementar en un lenguaje de programaci on.

4.2.2.

Divisi on Sint etica de polinomios con MATLAB


R

La estructura de una funci on en MATLAB es la siguiente:


"deflacion_polinomial.m" 96

que ejecuta este procedimiento

DeacionPolinomial: Declaraci on de la funci on 97a DeacionPolinomial: Inicializaci on de variables 97b DeacionPolinomial: Ciclo Principal 98

POLINOMIAL O DIVISION SINTE TICA 4.2. DEFLACION

97

Es preciso recordar que esta funci on realiza la divisi on entre un polinomio Pn (x) y un monomio de la forma (x xr ) donde xr corresponder a a una constante. De esta forma, las variables de entrada a esta funci on son las siguientes: a: vector de tama no n 1 con los valores de los coecientes del Polinomio al cual se le va aplicar el procedimiento de la divisi on sint etica. Los coecientes van desde el t ermino independiente hasta el coeciente de la potencia n 1. xr: valor constante xr que dene el monomio por el cual se va a dividir el polinomio. La variable de salida b corresponde a un vector con los coecientes del polinomio residual que resulta de la divisi on sint etica.
DeacionPolinomial: Declaraci on de la funci on 97a function [b]=deflacion_polinomial(a,xr)
Fragmento referenciado en 96.

4.2.2.1.

Inicializaci on de variables

Para continuar con el procedimiento de deaci on polinomial se hace necesario denir las siguientes variables: n: Grado del polinomio. b: vector de tama no n en donde van a almacenar los coecientes del polinomio resultante de la divisi on. Este vector se inicializa con 0.
DeacionPolinomial: Inicializaci on de variables 97b n=length(a)-1; b=zeros(n,1); b(n)=a(n+1);
Fragmento referenciado en 96.

4.2.2.2.

Ciclo principal

El ciclo principal del procedimiento de deaci on polinomial permite calcular los coecientes del polinomio resultante, para lo cual se emplean las expresiones dadas por las ecuaciones 4.13 y 4.14. Para esto se emplea un ciclo for que va calculando los coecientes desde las potencias mayores a las menores:

98
DeacionPolinomial: Ciclo Principal 98 for i=n-1:-1:1; b(i)=a(i+1)+b(i+1)*xr; end;
Fragmento referenciado en 96.

CAP ITULO 4. POLINOMIOS

POLINOMIAL O DIVISION SINTE TICA 4.2. DEFLACION Ejemplo (Divisi on Sint etica) Realice la divisi on sint etica del polinomio: P4 (x) = x4 + 6x3 + 7x2 6x 8 entre el polinomio (x 1). Los coecientes de P4 (x) son: Coef a4 a3 a2 a1 a0 Valor 1 6 7 -6 -8

99

y los coecientes del polinomio reducido se obtienen al aplicar las expresiones consignadas en la ecuaci on 4.14: Coeciente b3 b2 b1 b0 Expresi on b 3 = a4 b 2 = a3 + b 3 x b 1 = a2 + b 2 x b 0 = a1 + b 1 x Valor 1 6 + (1) (1) = 7 7 + (7) (1) = 14 6 + (14) (1) = 8

de tal forma que el polinomio resultante del procedimiento de divisi on sint etica es: P3 (x) = x3 + 7x2 + 14x + 8

100 Ejemplo MATLAB


R

CAP ITULO 4. POLINOMIOS (Divisi on Sint etica)

Realice la divisi on del polinomio: P4 (x) = x4 + 6x3 + 7x2 6x 8 = 0 entre el polinomio (x 1). Para realizar este procedimiento tecleamos los siguientes comandos: >>a=[-8 -6 7 6 1]; >>xr1=1; >>[b1]=deflacion_polinomial(a,xr1); >>b1 8 14 7 1 Recuerde que los coecientes se obtienen en orden de menor a mayor y por lo tanto el polinomio resultante es: P3 (x) = x3 + 7x2 + 14x + 8 Realice la conprobaci on mediante operaciones simb olicas en MATLAB R .

4.3.
4.3.1.

M etodo de Muller
Fundamentos Conceptuales

El m etodo de Muller es una generalizaci on del m etodo de la secante ya que no requiere de la derivada de la funci on en estudio, y para el cual es necesario especicar 3 puntos iniciales x0 , x1 , x2 . En lugar de denir una l nea recta, se dene una par abola (ver Figura 4.1) y se utiliza la f ormula para la ecuaci on cuadr atica para obtener una aproximaci on a la ra z. Este m etodo presenta una convergencia mucho m as r apida que el m etodo de la bisecci on y menor que el m etodo de Newton. Para entender este m etodo es necesario denir la ecuaci on de la par abola de la siguiente forma: f (x) = a(x x2 )2 + b(x x2 ) + c (4.15) donde a, b, c son los valores de los coecientes. Se selecciona el valor de x2 de tal forma que sea el valor central. Los 3 puntos requeridos para denir la par abola son [x0 , f (x0 )], [x1 , f (x1 )] y [x2 , f (x2 )], de tal forma que se obtiene:

TODO DE MULLER 4.3. ME

101

Figura 4.1: Interpretaci on gr aca del m etodo de Muller

f (x0 ) = a(x0 x2 )2 + b(x0 x2 ) + c f (x1 ) = a(x1 x2 )2 + b(x1 x2 ) + c f (x2 ) = a(x2 x2 )2 + b(x2 x2 ) + c

(4.16)

ltima ecuaci De la u on se obtiene la conclusi on que f (x2 ) = c, y con este este ecuaci on se puede simplicar para obtener: f (x0 ) f (x2 ) = a(x0 x2 )2 + b(x0 x2 ) f (x1 ) f (x2 ) = a(x1 x2 )2 + b(x1 x2 ) (4.17)

el cual corresponde a un sistema lineal de ecuaciones con dos inc ognitas. La soluci on de este se puede simplicar si se denen: h0 = x1 x0 h1 = x2 x1 f (x2 ) f (x1 ) f (x1 ) f (x0 ) 1 = 0 = x1 x0 x2 x1 con lo cual el sistema denido en 4.17 se puede expresar como: h0 0 + h1 1 = a(h0 + h1 )2 + b(h0 + h1 ) h1 1 = ah2 1 bh1 (4.19)

(4.18)

102

CAP ITULO 4. POLINOMIOS

del cual se pueden obtener los coecientes de la par abola por sustituci on: a= 1 0 h1 h0 b = ah1 + 1 c = f (x2 )

(4.20)

Con estos coecientes se dene la par abola espec ca que pasa por los tres puntos (ecuaci on 4.15) y la ra z xr se determina usando la conocida soluci on de la ecuaci on cuadr atica: a(xr x2 )2 + b(xr x2 ) + c = 0 (4.21)

en donde las ra ces obtenidas corresponden a xr x2 o en otras palabras, estas corresponden a la distancia de separaci on o correcci on entre la ra z aproximada x2 y la ra z real xr , de tal forma que se tiene:x = xr x2 y por lo tanto: xr = x2 + x (4.22)

Una de las grandes ventajas de este m etodo corresponde al hecho que se pueden determinar ra ces tanto reales como complejas.

4.3.2.

Determinaci on de las ra ces de polinomios usando el m etodo de Muller

El m etodo de Muller se encuentra implementado en la funci on muller.m cuya estructura es la siguiente:


"muller.m" 102 Muller: Declaraci on de la Funci on 103 Muller: Inicializaci on de variables 104a Muller: Ciclo Principal 104b

4.3.2.1.

Declaraci on de la funci on

Las variables de entrada de esta funci on son las siguientes: xrr: valor inicial de la ra z f uncion: funci on a evaluar y que se encuentra denida en un archivo funcion.m h: incremento empleado para la denici on de los puntos cercanos a xrr

TODO DE MULLER 4.3. ME maxiter: N umero m aximo de iteraciones

103

errmin: valor de error relativo m nimo usado para controlar la convergencia del procedimiento. Las variables de salida de esta funci on son las siguientes: xr1: valor de la ra z determinada por el m etodo de Muller f f : vector que contiene los valores de la funci on er: vector que almacena los valores del error relativo obtenido para cada iteraci on iter: n umero de iteraciones empleado por el procedimiento para obtener la ra z.
Muller: Declaraci on de la Funci on 103 function [xr1,ff,er,iter]=muller(xrr,funcion,h,maxiter,err_min)
Fragmento referenciado en 102.

4.3.2.2.

Inicializaci on de variables

Para este procedimiento es necesario inicializar las siguientes variables; x0, x1, x2: valores iniciales especicados para denir la par abola con la que trabaja este m etodo. Para denir estos 3 valores en este caso se asume que x1 va a corresponder al punto central y que tanto x0 como x2 van a una distancia h de este punto. err: variable para almacenar el valor del error relativo. Se inicializa en 100 %. iter: Contador para las iteraciones. Se inicializa en 1. xr: valor de la ra z determinada hasta el momento. Se inicializa con el valor de x2 xold: valor de la ra z en la iteraci on inmediatamente anterior empleado para la determinaci on del error relativo. Se inicializan los vectores f f (), er() y xr1()

104
Muller: Inicializaci on de variables 104a x2=xrr*(1+h); x1=xrr; x0=xrr*(1-h); err=100; iter=1; xr=x2; xold=x1; ff(iter,1)=feval(funcion,xr); er(iter,1)=err; xr1(iter,1)=xr;
Fragmento referenciado en 102.

CAP ITULO 4. POLINOMIOS

4.3.2.3. Ciclo principal

Este fragmento implementa la parte m as importante de este m etodo, ya que es donde se determinan las ra ces. La estructura de este procedimiento es la siguiente:

Muller: Ciclo Principal 104b while (iter<=maxiter & err>=err_min); Ciclo Principal Muller: C alculo de h y 105a Ciclo Principal Muller: C alculo coecientes par abola 105b Ciclo Principal Muller: C alculo del indicador 105c Ciclo Principal Muller: Denici on de la correcci on 106a Ciclo Principal Muller: Actualizaci on de la ra z 106b Ciclo Principal Muller: C alculo del error e incremento de iteraciones 106c Ciclo Principal Muller: Actualizaci on puntos 107 end;
Fragmento referenciado en 102.

4.3.2.3.1. C alculo de h y En este fragmento se calculan las diferencias h0, h1, delta0 y delta1 empleando las ecuaciones 4.18 y 4.19:

TODO DE MULLER 4.3. ME


Ciclo Principal Muller: C alculo de h y 105a xold=xr; h0=x1-x0; h1=x2-x1; delta0=(feval(funcion,x1)-feval(funcion,x0) )/h0; delta1=(feval(funcion,x2)-feval(funcion,x1) )/h1;
Fragmento referenciado en 104b.

105

4.3.2.3.2. C alculo coecientes par abola : Los coecientes a, b, c que denen la par abola que pasa por los tres puntos x0, x1, x2 se determinan usando la ecuaci on 4.20:

Ciclo Principal Muller: C alculo coecientes par abola 105b a=(delta1-delta0)/(h1+h0); b=a*h1+delta1; c=feval(funcion,x2);
Fragmento referenciado en 104b.

4.3.2.3.3. C alculo del Indicador : Con los valores de los coecientes a, b, c calculdos, se dene una ecuaci on cuadr atica que permite estimar 2 ra ces.

Ciclo Principal Muller: C alculo del indicador 105c ind=sqrt(b^2-4*a*c);


Fragmento referenciado en 104b.

4.3.2.3.4. Denici on de la correcci on : Con el valor del discriminante cuadr atico ind se puede determinar el incremento que se debe aplicar a la ra z obtenida hasta el momento. Ya que la soluci on de la ecuaci on cuadr atica permite obtener 2 ra ces, se escoge aquella cuyo signo coincida con el signo del coeciente b. Esta elecci on hace que el denominador sea m as grande y por lo tanto la correcci on obtenida ser a menor y la ra z estimada estar a m as cerca de la ra z obtenida en la iteraci on anterior.

106

CAP ITULO 4. POLINOMIOS

Ciclo Principal Muller: Denici on de la correcci on 106a if(abs(b+ind)>abs(b-ind)); den=ind+b; else; den=ind-b; end;
Fragmento referenciado en 104b.

4.3.2.3.5. Actualizaci on de la ra z : Se actualiza el valor de la ra z con la correcci on obtenida de la soluci on de la ecuaci on cuadr atica tal como lo expresa la ecuaci on 4.22:

Ciclo Principal Muller: Actualizaci on de la ra z 106b dxr=-2*c/den; xr=x2+dxr;

Fragmento referenciado en 104b.

4.3.2.3.6. C alculo del error e incremento de iteraciones : Se determina el error relativo de la ra z obtenida y se incrementa el n umero de iteraciones (Recuerde que estas variables son las que controlan el ciclo while).

Ciclo Principal Muller: C alculo del error e incremento de iteraciones 106c err=abs((xr-xold)/xr)*100; iter=iter+1;
Fragmento referenciado en 104b.

4.3.2.3.7. Actualizaci on de puntos : Se actualizan los valores de x0, x1, x2, junto el con valor de xold y se almacenan los resultados de la evaluaci on de la funci on en el vector f f , el error relativo obtenido hasta el momento en el vector er y el valor de la ra z en el vector xr1.

TODO DE MULLER 4.3. ME


Ciclo Principal Muller: Actualizaci on puntos 107 x0=x1; x1=x2; x2=xr; xold=xr; xr1(iter,1)=xr; ff(iter,1)=feval(funcion,xr); er(iter,1)=err;
Fragmento referenciado en 104b.

107

108 Ejemplo MATLAB


R

CAP ITULO 4. POLINOMIOS (Determinaci on de ra ces con el m etodo de Muller)

Use el m etodo de Muller para obtener una ra z del siguiente polinomio: f (x) = x3 3x2 + 1 Para usar la funci on muller.m es necesario denir en MATLAB R la funci on de inter es como una funci on inline o mediante un archivo .m. En este caso se va a hacer de las dos formas. La primera es la m as sencilla y para hacerla se teclea en la l nea de comandos para denir f 1 como una funci on inline >> f1=inline(x.^3-3*x.^2+1) Para obtener la ra z con el m etodo de Muller usamos la funci on muller.m denida anterioremente, y especicamos la ra z inicial xrr = 3, la funci on de inter es f 1, el incremento con el que se calculan los otros puntos h = 0.5, el n umero m aximo de iteraciones maxiter = 100 y el error m nimo aceptable minerr = 1.0e 3: >> [xr1,ff,er,iter]=muller(3,f1,0.5,100,1e-3); con lo cual despu es de 5 iteraciones se obtienen los siguientes resultados: >> [xr1 ff er] ans = 4.5000 31.3750 2.9064 0.2097 2.8787 -0.0055 2.8794 0.0000 2.8794 0.0000

100.0000 54.8284 0.9649 0.0251 0.0001

La primer columna presenta el valor de la ra z para cada iteraci on, la segunda columna el valor de la funci on f 1 para cada una de las ra ces presentadas en la primera columna y el error relativo para cada ra z se presenta en la columna 3.

TODO DE BAIRSTOW 4.4. ME Ejemplo MATLAB


R

109

(Determinaci on de ra ces con el m etodo de Muller)

En este caso se va a determinar la ra z del polinomio empleado en el ejemplo anterior, pero ahora especicando la funci on como un archivo m. Para esto se abre el editor de MATLAT R tecleando edit en la ventana de comandos y copiando el siguiente c odigo:
"funcion_prueba.m" 109 function [y]=funcion_prueba(x) y=x.^3-3*x.^2+1;

Para determinar la ra z con el m etodo de Muller se teclean unos comandos muy similares a los usandos en el ejemplo anterior, pero la diferencia en este caso corresponde a la forma como se especica la funci on (anteponi endole un signo @ al nombre del archivo en donde este implementada): >> [xr1,ff,er,iter]=muller(3,@funcion_prueba,0.5,100,1e-3); con lo cual se obtiene: >> [xr1 ff er] ans = 4.5000 31.3750 2.9064 0.2097 2.8787 -0.0055 2.8794 0.0000 2.8794 0.0000

100.0000 54.8284 0.9649 0.0251 0.0001

Como es evidente los resultados obtenidos usando una funci on contenida en un archivo m son los mismos que en el caso de una funci on inline.

4.4.
4.4.1.

M etodo de Bairstow
Fundamentos Conceptuales

La determinaci on de las ra ces complejas de un polinomio puede ser un problema complicado si se emplean los m etodos convencionales como el de Newton. Un hecho interesante con respecto a los polinomios es que sus ra ces complejas aparecen en pares conjugados y por lo tanto resulta muy f acil determinarlas si se obtienen factores cuadr aticos mediante divisi on sint etica (ver secci on 4.2). Para hacer esto se emplea el mismo procedimiento descrito para

110 un monomio de tal manera que se tiene:

CAP ITULO 4. POLINOMIOS

Pn (x) = (x2 rx s)Pn2 (x) = (x2 rx s)(bn xn2 + bn1 xn3 + . . . + b2 ) + Residual donde el t ermino Residual est a dado por: Residual = b1 (x r) + b0

(4.23)

(4.24)

Para determinar los coecientes bi se tiene que igualar los coecientes de la ecuaci on 4.23 con los coecientes ai del polinomio respectivo, con lo cual se obtiene: b n = an bn1 = an1 + rbn (4.25) bi = ai + rbi+1 + sbi+2 para i = n 2, . . . , 0 El objetivo de introducir la divisi on sint etica para un factor cuadr atico consiste en determinar una ecuaci on cuadr atica para la cual el t ermino Residual = 0, con lo cual se asegura que las ra ces obtenidas correspondan a ra ces del polinomio original. Para esto se debe cumplir que b1 = 0 y b0 = 0. Generalmente esto se puede obtener para una selecci on cuidadosa de los valores de r y s, de tal forma que inicialmente los valores especicados no van a permitir obtener un residuo igual a 0; y por lo tanto se necesita un m etodo con el cual se puedan modicar los valores de r y s de tal forma que permita la obtenci on de las ra ces respectivas. Es aqu donde aparece el m etodo de Bairstow . El m etodo de Bairstow se fundamenta en realizar una expansi on en series de Taylor de los coecientes b0 y b1 suponiendo que son funciones tanto de r como de s. Esto se expresa como: b0 r + r b1 b1 (r + r, s + s) = b1 + r + r b0 (r + r, s + s) = b1 + b0 s s b1 s s

(4.26)

en donde se han despreciado las derivadas de orden igual o mayor a 2. Esta ecuaci on sirve para determinar es r y s que es lo que nos interesa en este momento, para lo cual los t erminos del lado izquierdo de la ecuaci on se hacen iguales a 0 para obtener el siguiente sistema lineal de ecuaciones: b0 r + r b1 r + r b0 s = b0 s b1 s = b1 s

(4.27)

TODO DE BAIRSTOW 4.4. ME

111

en donde los coecientes del sistema corresponden a las derivadas parciales de los coecientes del t ermino residual, las cuales no se conocen. La gran contribuci on de Bairstow fue mostrar que estas derivadas parciales se pueden obtener usando el mismo procedimiento de divisi on sint etica, de la siguiente forma: cn = bn cn1 = bn1 + rcn ci = bi + rci+1 + sci+2

(4.28) para i = n 2, . . . .1

donde los t erminos c1 = b0 /s,c2 = b1 /r y c3 = b1 /s, de tal forma que la ecuaci on 4.27 se puede expresar: c2 r + c3 s = b1 c1 r + c2 s = b2 (4.29)

y al resolver este sistema usando regla de cramer (o m etodo de determinantes) o sustituci on, se pueden obtener los valores de r y s con los cuales se mejoran los r y s especicados inicialmente. Una vez estos valores se han determinado el residuo de la divisi on sint etica es igual a 0 y por lo tanto las ra ces se pueden obtener f acilmente del factor cuadr atico. Sin embargo en este caso no se emplea la famosa soluci on de la ecuaci on cuadr atica, ya que este se encuentra sujeta a errores de redondeo. En su lugar se emplea la siguiente expresi on para la determinaci on de las ra ces: x= b 2c b2 + 4ac (4.30)

4.4.2.

Determinaci on de las ra ces de un polinomio usando el m etodo de Bairstow

Para aplicar el m etodo de Bairstow en la determinaci on de las raices de polinomios es necesario implementar dicho procedimiento en MATLAB R por medio de una funci on con la siguiente estructura:
"bairstow.m" 111 Bairstow: Denici on de la funci on 112a Bairstow: Declaraci on de variables 112b Bairstow: Ciclo extracci on de raices de polinomio n >= 3 113a Bairstow: Extracci on de raices de polinomio n <= 2 116c

4.4.2.1.

Denici on de la funci on

Las variables de entrada en este caso son:

112

CAP ITULO 4. POLINOMIOS a: vector con los coecientes del polinomio de inter es. Recuerde que los valores se deben incluir desde las potencias menores a mayores. r y s: coecientes que denen el factor cuadr atico. maxit: N umero m aximo de iteraciones para la b usqueda de las ra ces. errmin: Error m nimo que se esta dispuesto a tolerar en la determinaci on de las ra ces.

As mismo las variables de salida de la funci on bairstow son: xr: vector que almacena los valores de las ra ces para cada una de las iteraciones ejecutadas por la funci on. f f : vector que almacena el valor del polinomio en las ra ces aproximadas. err: vector que almacena el valor del error relativo de las ra ces obtenidas para cada iteraci on de la funci on. iter: N umero de iteraciones requeridas para obtener la soluci on.
Bairstow: Denici on de la funci on 112a function [xr,ff,err,iter]=bairstow(a,r,s,maxit,errmin)
Fragmento referenciado en 111.

4.4.2.2. Declaraci on de Variables En este fragmento de c odigo se inicializan algunas variables importantes para este procedimiento como son iter o contador de iteraciones que se inicializa en 0, n que corresponde al grado del polinomio que se est a analizando, a1 que es un vector tempora en donde se almacenan los valores de los coecientes de los polinomios resultantes de la divisi on sint etica, y xr que se inicializa como un vector vaci on usando la notaci on del par entesis rectangular [].
Bairstow: Declaraci on de variables 112b iter=0; n=length(a)-1; a1=a; xr=[];
Fragmento referenciado en 111.

TODO DE BAIRSTOW 4.4. ME 4.4.2.3. Ciclo Principal

113

El ciclo principal del m etodo de Bairstow se divide en dos grandes partes que dependen del tipo de polinomio a resolver. Si este polinomio es de grado mayor a 3 es necesario realizar el procedimiento de divisi on sint etica por factor cuadr atico. Si el polinomio obtenido es de grado 2 se determinan las raices y el procedimiento se acaba. La estructura de este ciclo es la siguiente:
Bairstow: Ciclo extracci on de raices de polinomio n >= 3 113a while(n>=3); Ciclo Principal Bairstow: Inicializaci on del error 113b while (er_s>errmin & er_r<errmin & iter<maxit); Ciclo Principal Bairstow: Realizar divisi on sint etica 114a Ciclo Principal Bairstow: Modicar los valores de r y s 114b Ciclo Principal Bairstow: Calcular error e incrementar contador 115b end; Ciclo Principal Bairstow: Determinar raices 115c Ciclo Principal Bairstow: Extracci on coecientes Polinomio resultante 116a Ciclo Principal Bairstow: Asignaci on de raices obtenidas 116b end;
Fragmento referenciado en 111.

4.4.2.3.1. Ciclo Principal Bairstow: Inicializaci on del error En este fragmento de c odigo se inicializa er s y er r que son las variables en donde se almacenan los errores relativos de s y r respectivamente. Estas se inicializan en 100 %.
Ciclo Principal Bairstow: Inicializaci on del error 113b er_s=100; er_r=100;
Fragmento referenciado en 113a.

4.4.2.3.2. Ciclo Principal Bairstow: Realizar divisi on sint etica Con los valores iniciales de r y s se realizar la divisi on sint etica por factor cuadr atico usando la funci on denominada deflacion2 , y se obtienen los coecientes del polinomio resultante b y las derivada parciales de b con respecto a r y a s, las cuales se encuentran almacenadas en el vector c. Esta funci on se encuentra implementada en la secci on 4.4.3

114

CAP ITULO 4. POLINOMIOS

Ciclo Principal Bairstow: Realizar divisi on sint etica 114a [b,c]=deflacion2(a1,r,s);


Fragmento referenciado en 113a.

4.4.2.3.3. Ciclo Principal Bairstow: Modicar los valores de r y s Los valores de r y s se modican con el n de asegurar que el residuo de la divisi on sint etica sea muy cercano a 0.0. Esto se logra por medio de la soluci on de un sistema lineal de ecuaciones de 2 2 (ecuaci on 4.29) usando la regla de cramer. La estructura de este procedimiento es la siguiente:

Ciclo Principal Bairstow: Modicar los valores de r y s 114b Modicar r y s: C alculo del determinante 114c Modicar r y s: Actualizar r y s 115a
Fragmento referenciado en 113a.

4.4.2.3.3.1. C alculo del determinante Con el n de evitar problemas de inestabilidad num erica se calcula el determinante de la matr z de coecientes del sistema lineal de ecuaciones (ecuaci on 4.29):

Modicar r y s: C alculo del determinante 114c det=c(2)*c(2)-c(3)*c(1);


Fragmento referenciado en 114b.

4.4.2.3.3.2. Actualizar r y s Los valores de r y s se actualizan dependiendo de si el determinante se puede considerar mayor a 0, con lo cual el sistema tiene soluci on. En este caso particular debido a la sencillez del sistema lineal a resolver, la soluci on del mismo se obtiene directamente. En el caso que el sistema no tenga soluci on los valores de r y s se cambian y el procedimiento continua.

TODO DE BAIRSTOW 4.4. ME


Modicar r y s: Actualizar r y s 115a if(det>=1.0e-10) then dr=(-b(1)*c(2)+b(0)*c(3))/det; ds=(-b(0)*c(2)+b(1)*c(2))/det; r=r+dr; s=s+ds; else; r=r+1; s=s+1; endif
Fragmento referenciado en 114b.

115

4.4.2.3.4. Ciclo Principal Bairstow: error e iteraciones Con los valores de r y s calculados se determinar el error relativo y se incrementa el contador de las iteraciones del procedimiento:
Ciclo Principal Bairstow: Calcular error e incrementar contador 115b er_s=(abs(ds)/s)*100; er_r=(abs(dr)/r)*100; iter=iter+1;
Fragmento referenciado en 113a.

4.4.2.3.5. Ciclo Principal Bairstow: determinar ra ces Ya con los valores de r y s que dene el t ermino cuadr atico que permite obtener un residual de 0.0 en la divisi on sint etica, se obtienen las raices de dicho factor cuadr atrico de la forma usual y se almacenan en el vector roots:
Ciclo Principal Bairstow: Determinar raices 115c roots=solucion_cuadratica(1,r,s);
Fragmento referenciado en 113a.

4.4.2.3.6. Ciclo Principal Bairstow: Extracci on de coecientes Una vez se hayan obtenido las raices del factor cuadr atico, se hace necesario extraer los valores de los coecientes del polinomio que queda como resultado de la divisi on sint etica. Estos coecientes se encuentran almacenados en el vector b y ahora se guardan en el vector a1 con el n que se puedan seguir extrayendo las raices:

116

CAP ITULO 4. POLINOMIOS

Ciclo Principal Bairstow: Extracci on coecientes Polinomio resultante 116a n=n-2; a1=zeros(n+1,1); a1=b(3:length(b),1);
Fragmento referenciado en 113a.

4.4.2.3.7. Ciclo Principal Bairstow: Asignaci on de raices Una vez las raices del factor cuadr atico considerado se han obtenido estas se almacenan en el vector xr:

Ciclo Principal Bairstow: Asignaci on de raices obtenidas 116b xr=[xr;roots];


Fragmento referenciado en 113a.

4.4.2.4. Extracci on de raices de polinomio n <= 2 Cuando el procedimiento anterior se haya repetido varias veces y el polinomio resultante se de grado 2 o menor se calculan las respectivas raices. En este punto se chequea si el n umero de iteraciones es menor al m aximo especicado inicialmente y se consideran los dos casos mencionados anteriormente:

Bairstow: Extracci on de raices de polinomio n <= 2 116c if(iter<maxit); Extracci on raices Polinomio n <= 2: Polinomio grado 2 117a Extracci on raices Polinomio n <= 2: Polinomio grado 1 117b end;
Fragmento referenciado en 111.

4.4.2.4.1. Polinomio grado 2 Si el polinomio que queda al nal es de grado 2 este se puede resolver mediante la expresi on de la ecuaci on cuadr atica, deniendo de forma correspondiente los coecientes de dicho polinomio:

TODO DE BAIRSTOW 4.4. ME


Extracci on raices Polinomio n <= 2: Polinomio grado 2 117a if(n==2); r=-a1(2)/a1(3); s=-a1(1)/a1(3); roots=solucion_cuadratica(1,r,s); xr=[xr;roots];
Fragmento referenciado en 116c.

117

4.4.2.4.2. Polinomio grado 1 En el caso que el polinomio resultante sea de grado 1, la ra z de este se puede obtener de forma sencilla mediante la expresi on: b0 x = (4.31) b1 y lo cual se puede expresar como:
Extracci on raices Polinomio n <= 2: Polinomio grado 1 117b else xr=[xr;-a1(1)/a1(2)]; end;
Fragmento referenciado en 116c.

4.4.3.

Divisi on Sint etica por factor cuadr atico

La divisi on sint etica por factor cuadr atico aparece representada en la ecuaci on 4.23 y es de vital importancia para el m etodo de Bairstow. La estructura de la funci on que implementa este procedimiento es la siguiente:
"deflacion2.m" 117c Deaci on2: Declaraci on funci on 118a Deaci on2: Inicializaci on de variables 118b Deaci on2: Ciclo principal 119a

4.4.3.1.

Declaraci on de la funci on

Las variables de entrada de esta funci on son las siguientes: a: vector de tama no n 1 con los coecientes del polinomio r y s: factores del t ermino cuadr atico (ver ecuaci on 4.25)

118 y las variables de salida:

CAP ITULO 4. POLINOMIOS

b: vector de tama no n 2 con los coecientes del polinomio resultante de la divisi on. c: vector de tama no n 2 con los valores de la derivada del polinomio.
Deaci on2: Declaraci on funci on 118a function [b,c]=deflacion2(a,r,s)
Fragmento referenciado en 117c.

4.4.3.2.

Inicializaci on de Variables

Para realizar el procedimiento de divisi on sint etica es necesario inicializar las siguientes variables: n: n umero de elementos de los vectores de salida. Este valor se inicializa como la longitud del vector de entrada a menos 2 elementos. El vector b de tama no n 1 y c de tama no (n 1) 1se inicializa en 0.0 Los vectores b y c se inicializan de acuerdo a lo presentado en las ecuaciones 4.254.28 respectivamente.
Deaci on2: Inicializaci on de variables 118b n=length(a)-2; b=zeros(n,1); b(n)=a(n+2); b(n-1)=a(n+1)+r*b(n); c=zeros(n-1,1); c(n-1)=b(n); c(n-2)=b(n-1)+r*c(n);
Fragmento referenciado en 117c.

4.4.3.3.

Ciclo Principal

En este ciclo se determinan los coecientes del polinomio resultante del procedimiento de divisi on sint etica y su derivada:

TODO DE BAIRSTOW 4.4. ME


Deaci on2: Ciclo principal 119a Ciclo principal Deaci on2: Coecientes 119b Ciclo principal Deaci on2: Derivada 119c
Fragmento referenciado en 117c.

119

Ciclo principal Deaci on2: Coecientes 119b for i=n-2:-1:1; b(i)=a(i)+r*b(i+1)+s*b(i+2); end;
Fragmento referenciado en 119a.

Ciclo principal Deaci on2: Derivada 119c for i=n-3:-1:1; c(i)=b(i+1)+r*c(i+1)+s*c(i+2); end;
Fragmento referenciado en 119a.

4.4.4.

Soluci on de la ecuaci on cuadr atica

Con el n de evitar problemas num ericos se hace necesario emplear una formulaci on alternativa de la soluci on de la ecuaci on cuadr atica dada por la ecuaci on 4.30 y la cual en MATLAB R se puede implementar de la siguiente forma:

"solucion_cuadratica.m" 119d Soluci on Cuadr atica: Denici on funci on 120a Soluci on Cuadr atica: Inicializaci on de variables 120b Soluci on Cuadr atica: Determinaci on de las raices 120c

Las variables de entrada a esta funci on son los coecientes a, b y c de la ecuaci on cuadr atica, y la salida corresponde a un vector x de dos elementos con las dos ra ces obtenidas.

120
Soluci on Cuadr atica: Denici on funci on 120a function [x]=solucion_cuadratica(a,b,c);
Fragmento referenciado en 119d.

CAP ITULO 4. POLINOMIOS

En esta funci on solo se hace necesario inicializar el vector x, el cual se iguala a 0.0.
Soluci on Cuadr atica: Inicializaci on de variables 120b x=zeros(2,1);
Fragmento referenciado en 119d.

La determinaci on de las ra ces de la ecuaci on cuadr atica se compone de los siguientes pasos:
Soluci on Cuadr atica: Determinaci on de las raices 120c Determinaci on de raices: C alculo del discriminante 120d Determinaci on de raices: Raices diferentes 121a Determinaci on de raices: Raices iguales 121b
Fragmento referenciado en 119d.

El discriminante est a denido por: disc = b2 4ac y en MATLAB


R

(4.32)

se calcula de la siguiente forma:

Determinaci on de raices: C alculo del discriminante 120d disc=b.^2-4*a*c;


Fragmento referenciado en 120c.

Si el valor del discriminante es mayor a 0.0, se tienen dos raices diferentes, que pueden ser reales o complejas conjugadas; y las cuales se pueden determinar empleando la ecuaci on 4.30

TODO DE BAIRSTOW 4.4. ME


Determinaci on de raices: Raices diferentes 121a if(disc>0.0); x(1)=2*c/(b+sqrt(disc)); x(2)=2*c/(b-sqrt(disc));
Fragmento referenciado en 120c.

121

Si el discriminante tiene un valor muy cercano a 0, entonces las ra ces son reales e iguales, y sus valores se pueden determinar:
Determinaci on de raices: Raices iguales 121b elseif(abs(disc)<1.0e-10); x(1)=2*c/b; x(2)=2*c/b; end
Fragmento referenciado en 120c.

122 Ejemplo (Divisi on sint etica con factor cuadr atico) Dividir el polinomio:

CAP ITULO 4. POLINOMIOS

P4 (x) = x4 + x3 8x2 + 9x 3 por el factor cuadr atico dado por x2 2x + 1. De este factor se puede inferir que r = 2 y s = 1 Los coecientes del polinomio anterior son: Coef a4 a3 a2 a1 a0 Valor 1 1 -8 9 -3

y de acuerdo a la ecuaci on 4.25 se tiene que los coecientes del polinomio resultante de la divisi on sint etica est an dados por: Coeciente b4 b3 b2 b1 b0 Expresi on b 4 = a4 b3 = a3 + rb4 b2 = a2 + rb3 + sb4 b1 = a1 + rb2 + sb3 b0 = a0 + rb1 + sb2 Valor 1.0 1.0 + (2)(1) = 3 8 + (2)(3) + (1)(1) = 3 9 + (2)(3) + (1)(3) = 0 3 + (2)(0) + (1)(3) = 0

De acuerdo a la ecuaci on 4.25 b4 corresponder a al coeciente del t ermino cuadr atico, mientras que b3 ser a el coeciente de x y b2 el t ermino independiete con lo cual se tiene que el polinomio resultante es: Pn2 (x) = x2 + 3x 3 y el t ermino residual est a dado por (ecuaci on 4.24): R = b1 (x r) + b0 = 0 + (x 2) 0 = 0 y por lo tanto la divisi on sint etica es exacta indicando que x2 2x + 1 es un t ermino cuadr atico del polinomio original.

TODO DE BAIRSTOW 4.4. ME Ejemplo MATLAB


R

123

(Divisi on sint etica con factor cuadr atico)

Dividir el polinomio: P4 (x) = x4 + x3 8x2 + 9x 3 por el factor cuadr atico dado por x2 2x + 1. Los coecientes del polinomio se denen de la siguiente forma: a=[-3 9 -8 1 1]; junto con los valores de r y s: r=2;s=-1; de tal forma que para realizar la divisi on sint etica se emplea la funci on deflacion2.m de la siguiente forma: [b,c]=deflacion2(a,r,s) obteni endose los siguientes resultados: b = 0 0 -3 3 1 En este caso particular los dos primeros t erminos del polinomio resultante son iguales a 0 indicando que el residuo es igual a 0 y que la divisi on es exacta.

124

CAP ITULO 4. POLINOMIOS Ejemplo (Determinaci on de ra ces con el m etodo de Bairstow)

Determine todas las ra ces del polinomio: P4 (x) = x4 + x3 8x2 + 9x 3 por medio del m etodo de Bairstow, usando r = s = 1, un m aximo de 100 ite6 raciones y un error m nimno de 1.0 10 . Divisi on sint etica por factor cuadr atico da como resultado: Coeciente b4 b3 b2 b1 b0 Expresi on b 4 = a4 b3 = a3 + rb4 b2 = a2 + rb3 + sb4 b1 = a1 + rb2 + sb3 b0 = a0 + rb1 + sb2 Valor 1.0 1.0 + (1)(1) = 0 8 + (1)(0) + (1)(1) = 9 9 + (1)(9) + (1)(0) = 18 3 + (1)(18) + (1)(9) = 12

y tal como se puede apreciar, los t erminos b0 y b1 son diferentes de 0 y por lo tanto los valores de r y s no son los correctos. Las derivadas de los factores b con respecto a r y s se calculan empleando las ecuaciones 4.28: Coeciente c3 c2 c1 c0 Expresi on c 3 = b4 c2 = b3 + rc3 c1 = b2 + rc2 + sc3 c0 = b1 + rc1 + sc2 Valor 1.0 0 + (1)(1.0) = 1 (9) + (1)(1) + (1)(1.0) = 9 18 + (1)(9) + (1)(1) = 28

De acuerdo a los resultados anteriores se plantea el sistema lineal de ecuaciones para determinar las correcciones de r y s: (1)r + (1.0)s = 18 (9)r + (1.0)s = 9 el cual al resolver permite conocer r = 1.59633027522936 y s = 3.63302752293578. Con estos se calculan los nuevos valores de r y s: r2 = r1 + r = 0.59633027522936 s2 = s1 + s = 2.63302752293578 y se puede determinar el valor del error en cada caso: errr = r 1.59633027 = 100 = 267.69 % r (0.59633027) s 3.3633027 errs = = 100 = 137.97 % s (2.633027)

TODO DE BAIRSTOW 4.4. ME

125

El procedimiento anterior se repite por 22 iteraciones, al nal de la cuales se obtiene que los valores de r = 1.79128782791137 y s = 0.79128783199515, con los cuales los valores de b1 = 0.0 y b0 = 0.0. Con estos valores de r y s se soluciona la ecuaci on cuadr atica x2 rx s = 0 obteni endose de esta forma las ra ces: 2s = 0.9999999 1.0 x1 = r + (r + 4s) 2s = 0.7912878 x2 = r (r + 4s) El polinomio resultante del procedimiento de divisi on sint etica es: P2 = x2 + 2.79128782537684x 3.79128793126949 del cual se pueden obtener las raices aplicando el mismo procedimiento anterior: x3 = 1.00000002210108 x4 = 3.79128784747792 Con lo cual se han obtenido todas las raices del polinomio empleando la soluci on de la ecuaci on cuadr atica!!!.

126 Ejemplo MATLAB


R

CAP ITULO 4. POLINOMIOS (Determin aci on de ra ces con el m etodo de Bairstow)

Determine todas las ra ces del polinomio: P4 (x) = x4 + x3 8x2 + 9x 3 por medio del m etodo de Bairstow, usando r = s = 1, un m aximo de 100 iteraciones y un error m nimno de 1.0 1010 . El primer paso consiste en denir el polinomio de inter es por medio de sus coecientes, para lo cual denimos el siguiente vector: a=[-3 9 -8 1 1]; junto los valores de r y s r=-1;s=-1; El m etodo de Bairstow se encuentra implementado en la funci on bairstow.m , con la cual este problema se puede resolver de la siguiente forma: [xr,ff,err,iter]=bairstow(a,r,s,100,1e-10); y despu es de 66 iteraciones, las ra ces obtenidas son: xr = 1.0000 0.7913 1.0000 -3.7913

4.5.
4.5.1.

M etodo de Laguerre
Fundamentos Conceptuales

El m etodo de Laguerre es uno de los m etodos m as ecientes que existen para la determinaci on de todas las ra ces de un polinomio, incluyendo valores reales y/o complejos. Para entender la losof a de este m etodo es necesario comenzar con la expresi on general para las ra ces de un polinomio: Pn (x) = (x x1 )(x x2 ) (x xn ) (4.33)

TODO DE LAGUERRE 4.5. ME

127

donde xi , i = 1, . . . , n corresponden a cada una de las ra ces de Pn y los cuales son los valores que se quieren determinar. La ecuaci on anterior se puede simplicar para los prop ositos del entendimiento del presente m etodo si se toma el logaritmo. De esto se obtiene: ln |Pn (x)| = ln |x x1 | + ln |x x2 | + + ln |x xn |
n

=
k=1

ln |x xk |

(4.34)

Al derivar la expresi on anterior se obtiene: 1 1 1 P (x) d ln |Pn (x)| = + + + = n dx x x1 x x2 x xn Pn (x) y la segunda derivada de la ecuaci on 4.34 est a dada por: d2 ln |Pn (x)| 1 1 1 = + + + dx2 (x x1 )2 (x x2 )2 (x xn )2 Pn (x) = Pn (x)
2

(4.35)

P (x) n Pn

(4.36)

Ahora para obtener una estimaci on de las ra ces del Polinomio se tienen que hacer las siguientes suposiciones: la distancia entre la ra z x1 y nuestro valor inicial x0 est a dada por a la distancia entre el valor inicial x0 y las restantes ra ces est a dada por b y es la misma para todas las ra ces. x0 x1 = a x0 xi = b, (4.37)

i = 2, 3, . . . , n

Atendiendo a las suposiciones antes mencionadas las ecuaciones 4.35,4.36 se pueden reescribir de la siguiente forma: 1 n1 + =G a b (4.38)

1 n1 + =H (4.39) a2 b2 De la ecuaci on 4.38 se despeja b para reemplazarlo en la ecuaci on 4.39, lo cual permite despejar la distancia a a la ra z y obtener: n (4.40) a= G + (n 1)(nH G2 ) Con lo anterior la primera ra z del polinomio x1 queda denida como: x1 = x0 + a (4.41)

128

CAP ITULO 4. POLINOMIOS

4.5.2.

Determinaci on de la ra ces de polinomios usando el m etodo de Laguerre


R

El m etodo de Laguerre se encuentra implementado en MATLAB funci on laguerre.m cuya estructura es la siguiente:
"laguerre.m" 128a Laguerre: Declaraci on de la funci on 128b Laguerre: Inicializaci on de variables 129a Laguerre: Ciclo Principal 129b Laguerre: Chequear si se obtuvo ra z 132

en la

4.5.2.1.

Declaraci on de la funci on

Las variables de entrada a la funci on son las siguientes: x0: valor inicial de la ra z a: vector de tama no n 1 que contiene los coecientes que denen el polinomio de inter es. niter: valor que representa el n umero de iteraciones errm in: valor de error relativo m nimo que se emplea para chequear la convergencia del m etodo a la ra z buscada. La variable de salida x corresponde a una ra z del polinomio en estudio.
Laguerre: Declaraci on de la funci on 128b function [xr,fx,er,iter]=laguerre(x0,a,maxiter,err_min)
Fragmento referenciado en 128a.

4.5.2.2.

Inicializaci on de Variables

Uno de los aspectos m as interesantes del m etodo corresponde al hecho que converge sin importar cual es el valor inicial especicado. En este caso particular, el valor de la ra z x0 es especicado por el usuario. As mismo es necesario contar con el n umero de elementos del vector a, el cual se almacena en la variable n.

TODO DE LAGUERRE 4.5. ME


Laguerre: Inicializaci on de variables 129a n=length(a)-1; err=100; iter=1; [p pd sd]=evaluacion_polinomio(a,x0); fx(iter,1)=p; er(iter,1)=100; xold=x0; xr(iter,1)=x0;
Fragmento referenciado en 128a.

129

4.5.2.3.

Ciclo Principal

Esta es la parte m as importante del procedimiento ya que aqu se determinan las ra ces del polinomio. Las labores realizadas en este ciclo son las siguientes:
Laguerre: Ciclo Principal 129b while( err >=err_min & iter<=maxiter) Ciclo Principal Laguerre: Prueba de la ra z 129c Ciclo Principal Laguerre: Chequear si es ra z 130a Ciclo Principal Laguerre: C alculo de G y H 130b Ciclo Principal Laguerre: C alculo del denominador 130c Ciclo Principal Laguerre: Determinaci on del signo 131a Ciclo Principal Laguerre: Actualizaci on de la ra z 131b Ciclo Principal Laguerre: C alculo de error e incremento de iteraciones 131c Ciclo Principal Laguerre: Actualizaci on de valores 131d end;
Fragmento referenciado en 128a.

4.5.2.3.1. Prueba de la ra z Para probar la ra z inicial x se utiliza la funci on evaluacion polinomio.m denida en la secci on 4.1. A esta funci on se le especican los coecientes contenidos en el vector a y el valor inicial de la ra z x y se obtienen el valor del polinomio p, la primera y segunda derivadas, las cuales est an contenidas en las variables pd y sd respectivamente.
Ciclo Principal Laguerre: Prueba de la ra z 129c [p pd sd]=evaluacion_polinomio(a,xold);
Fragmento referenciado en 129b.

130

CAP ITULO 4. POLINOMIOS

4.5.2.3.2. Chequear si es ra z Si al evaluar el polinomio en x se obtiene un valor p menor a la tolerancia tol especicada inicialmente entonces se ha determinado una ra z del polinomio. En este caso la funci on termina su ejecuci on y devuelve el control al usuario.

Ciclo Principal Laguerre: Chequear si es ra z 130a if(abs(p)<err_min); er(iter,1)=abs(p); disp([Raiz encontrada en la iteracion num2str(iter)]); return; end;
Fragmento referenciado en 129b.

4.5.2.3.3. C alculo de G y H Si el valor x especicado inicialmente no corresponde a una ra z del polinomio en estudio, entonces la funci on continua su ejecuci on calculando los valores de G y H (ecuaciones 4.38 y 4.39 respectivamente).

Ciclo Principal Laguerre: C alculo de G y H 130b g=pd/p; h=g*g-sd/p;


Fragmento referenciado en 129b.

4.5.2.3.4. C alculo del denominador Una vez los valores de G y H se han calculado se determina el valor del denominador de la ecuaci on 4.40:

Ciclo Principal Laguerre: C alculo del denominador 130c f=sqrt((n-1)*(n*h-g*g));


Fragmento referenciado en 129b.

4.5.2.3.5. Determinaci on del signo Para terminar de calcular el denominador de 4.40 se hace necesario determinar la magnitud de G + H :

TODO DE LAGUERRE 4.5. ME


Ciclo Principal Laguerre: Determinaci on del signo 131a if(abs(g+f)>=abs(g-f)); dx=n/(g+f); else dx=n/(g-f); end;
Fragmento referenciado en 129b.

131

4.5.2.3.6. Actualizaci on de la ra z : Una vez se ha determinado el incremento de la ra z, esta se actualiza usando la ecuaci on 4.41:
Ciclo Principal Laguerre: Actualizaci on de la ra z 131b x=xold-dx;
Fragmento referenciado en 129b.

4.5.2.3.7. C alculo de error e incremento de iteraciones : Con la nueva ra z calculada, se calcula el error relativo de la misma y se incrementa el n umero de iteraciones:
Ciclo Principal Laguerre: C alculo de error e incremento de iteraciones 131c iter=iter+1; err=abs((x-xold)/x)*100;
Fragmento referenciado en 129b.

4.5.2.3.8. Actualizaci on de valores : en este fragmento se actualizan los valores de xold, y se asignan los respectivos valores en los vectores f x() y er():
Ciclo Principal Laguerre: Actualizaci on de valores 131d xold=x; xr(iter,1)=x; fx(iter,1)=p; er(iter,1)=err;
Fragmento referenciado en 129b.

132

CAP ITULO 4. POLINOMIOS

4.5.2.3.9. Chequear si se obtuvo la ra z : Si la ra z no se obtuvo se imprime un mensaje en pantalla que alerta al usuario sobre esta situaci on.
Laguerre: Chequear si se obtuvo ra z 132 if(iter>=maxiter & err>err_min); disp(Metodo de Laguerre no encontro solucion.); disp(Aumente el numero de iteraciones); end;
Fragmento referenciado en 128a.

etodo de Laguerre para la ra z de un polinomio) Ejemplo (M Encuentre una ra z del polinomio: P3 (x) = x3 4.0x2 4.48x + 26.1 asumiendo un valor inicial de x = 3 i. Para mejorar la correcci on de la ra z inicial es necesario evaluar el polinomio (ecuaci on 4.5) as como sus derivadas (ecuaciones 4.6 y 4.7): P3 (x) = x3 4.0x2 4.48x + 26.1 = (18 26i) 4.0 (8 6i) 4.48 (3 i) + 26.1 = 1.34 + 2.48i P3 (x) = 3.0x2 8.0x 4.48 = 3.0 (8 6i) 8.0 (3 1) 4.48 = 4.48 10.0i P3 (x) = 6.0x 8.0 = 6.0 (3 i) 8.0 = 10.0 6i Con estos valores se calcula G(x) usando la ecuaci on 4.35 y H (x) ecuaci on 4.36 con lo que se obtiene: 4.48 10.0i P (x) = = 2.36557 + 3.08462i G(x) = 3 P3 (x) 1.34 + 2.48i P (x) H (x) = G (x) 3 P3 (x)
2 (2) (1) (2) (1)

= (2.36557 + 3.08462i)2 = 0.35995 12.48452i

10.0 6i 1.34 + 2.48i

Con estos valores se puede calcular F (x) como el denominador de la ecuaci on 4.40 de la siguiente forma: F (x) = = = (n 1)[nH (x) G2 (x)] 2 3(0.35995 12.48452i) (2.36557 + 3.08462i)2 5.67822 45.71946i = 5.08670 4.49402i

TODO DE LAGUERRE 4.5. ME

133

Ahora se requiere determinar que factor produce una mayor correcci on en el denominador: |G(x) + F (x)| = |(2.36557 + 3.08462i) + (5.08670 4.49402i)| = |2.72113 1.40940i| = 3.06448 |G(x) F (x)| = |(2.36557 + 3.08462i) (5.08670 4.49402i)| = | 7.45227 + 7.57864i| = 10.62884 que en este caso corresponde al segundo factor, con lo cual el valor de correcci on de la ra z es: r =x n 3 = (3 i) G(x) F (x) 7.45227 + 7.57864i = 3.19790 0.79875i

de tal forma que la ra z corregida es x = 3.19790 0.79875i, la cual se acerca mucho al valor real de x = 3.20 0.80i. Este procedimiento se repite hasta la 4 iteraci on en donde el error relativo obtenido ha llegado ha ser de 1.0 1012

134 Ejemplo MATLAB


R

CAP ITULO 4. POLINOMIOS (M etodo de Laguerre para la ra z de un polinomio)

Determinar la ra z del polinomio P4 (x) = x3 4.0x2 4.48x + 26.1 en MATLAB R a partir del valor inicial 3 i. Para aplicar el procedimiento de Laguerre y resolver este problema es necesario denir el vector con los coecientes del polinomio: a=[26.1 -4.48 -4 1]; y el valor inicial de la ra z: x0=3-i; con lo cual es posible aplicar el m etodo de Laguerre para [xr,fx,er,iter]=laguerre(x0,a,100,1.0e-12); procedimiento que converge en 4 iteraciones: >> iter iter = 4 y del cual se obtiene: >> [xr(iter) fx(iter) er(iter)] ans = 3.1998 - 0.7987i 0.0000 - 0.0000i 0.0000

4.5.3.

Determinaci on de todas las ra ces de un polinomio

Hasta este momento tal y como se ha presentado el m etodo de Laguerre este se puede emplear para la determinaci on de una ra z. Su verdadero potencial emerge cuando este m etodo, tal y como est a implementado en la funci on laguerre.m se combina con la deaci on polinomial (funci on deacionpolinomial.m) para la determinac on sucesiva de ra ces de un polinomio. La idea es muy sencilla y consiste en especicar un valor inicial x0 y con este determinar el valor de la ra z x1 . Con esta ra z determinada se realiza el procedimiento de divisi on sint eti-

TODO DE LAGUERRE 4.5. ME

135

ca y el polinomio resultante nuevamente se somete al m etodo de Laguerre para determinar el valor de otra ra z, la cual corresponder a a x2 . Este procedimiento se repita hasta que todas las ra ces del polinomio hayan sido determinadas. La funci on que implementa este procedimiento se denomina raices polinomios.m y tiene la siguiente estructura:
"raices_polinomios.m" 135a Raices Polinomios: Declaraci on de la Funci on 135b Raices Polinomios: Inicializaci on de variables 136a Raices Polinomios: Ciclo Principal 136b

4.5.3.1.

Declaraci on de la funci on

Las variables de entrada de esta funci on son: x0: valor inicial de la ra z. Este valor sirve para inicializar la b usqueda de las raices cada vez que se ejecuta el procedimiento de laguerre . a: vector con los coecientes que denen el polinomio maxiter: n umero m aximo de iteraciones err min: error o tolerancia m nima con la cual se considera que una soluci on es satisfactoria La variable de salida corresponde a xr un vector con todas las raices del polinomio.
Raices Polinomios: Declaraci on de la Funci on 135b function [xr]=raices_polinomios(x0,a,maxiter,err_min)
Fragmento referenciado en 135a.

4.5.3.2.

Inicializaci on de variables

Para determinar las raices de un polinomio se deben inicializar las siguientes variables n: n umero de raices a determinar. Este valor es igual al n umero de coecientes del polinomio menos 1 (ya que se incluye el t ermino independiente). xr vector de tama no n en donde se van a almacenar las raices.

136
Raices Polinomios: Inicializaci on de variables 136a n=length(a)-1; xr=zeros(n,1);
Fragmento referenciado en 135a.

CAP ITULO 4. POLINOMIOS

4.5.3.3. Ciclo principal La determinaci on de las n raices de un polinomio se hace mediante un ciclo for que tiene la siguiente estructura:

Raices Polinomios: Ciclo Principal 136b for i=1:n; Ciclo Principal Raices: Inicializaci on variables 136c Ciclo Principal Raices: aplicaci on del m etodo de Laguerre 137a Ciclo Principal Raices: Correci on de la ra z obtenida 137b Ciclo Principal Raices: divisi on sint etica 137c end;
Fragmento referenciado en 135a.

4.5.3.3.1. Inicializaci on de Variables Para cada ra z se hace necesario inicializar las variables iter que almacena el n umero de iteraciones y er que almacena el error relativo de la ra z determinada en cada iteraci on:
Ciclo Principal Raices: Inicializaci on variables 136c iter=0; er=100;
Fragmento referenciado en 136b.

4.5.3.3.2. Aplicaci on del m etodo de Laguerre Para encontrar la ra z se aplica el m etodo de laguerre por medio de un ciclo while que controla la convergencia del m etodo. Dentro de este ciclo se incrementa el contador iter, y al emplear la funci on laguerre.m se determinar el error relativo en la aproximaci on de la ra z obtenida.

TODO DE LAGUERRE 4.5. ME


Ciclo Principal Raices: aplicaci on del m etodo de Laguerre 137a while(iter<maxiter & er>errmin); iter=iter+1; [x,fx,er,iter]=laguerre(x0,a,maxiter,errmin); end;
Fragmento referenciado en 136b.

137

4.5.3.3.3. Correcci on de la ra z Si la ra z obtenida en el paso anterior tiene un valor imaginario que es menor al error m nimo especicado inicialmente err min, entonces este valor se puede despreciar y en ese caso se considera solamente la parte real de la ra z obtenida. Al nal se asigna la ra z obtenida en la correspondiente posici on del vector xr
Ciclo Principal Raices: Correci on de la ra z obtenida 137b if(abs(imag(x(iter,1)))<errmin); x(iter,1)=real(x(iter,1)); end; xr(i,1)=x(iter,1);
Fragmento referenciado en 136b.

4.5.3.3.4. Divisi on sint etica Una vez se ha encontrado una de las raices del polinomio se procede a extraerla del mismo usando el procedimiento de divisi on sint etica, para lo cual se emplea la funci on deflacion polinomial.m , y se asignan los coecientes del polinomio resultante al vector a:
Ciclo Principal Raices: divisi on sint etica 137c b=deflacion_polinomial(a,xr(i,1)); a=b;
Fragmento referenciado en 136b.

138 Ejemplo MATLAB


R

CAP ITULO 4. POLINOMIOS (Determinaci on de ra ces con el m etodo de Laguerre)

Determinar todas las ra ces del polinomio P4 (x) = x3 4.0x2 4.48x + 26.1 en MATLAB R a partir del valor inicial 3 i, con un m aximo de 100 iteraciones y una tolerancia de 1.0 106 . Para realizar este procedimiento en MATLAB R es necesario denir el vector de coecientes del polinomio, lo cual se hace de la siguiente forma: >>a=[26.1 -4.48 -4 1]; Tambi en se requiere especicar la soluci on inicial del procedimiento: >>x0=3-i; Con esto ya se puede emplear la funci on raices polinomios.m de la siguiente forma: >>[xr]=raices_polinomios(x0,a,100,1e-6); La primera ra z requiere de 3 iteraciones para converger, mientras que la segunda y tercera ra z requieren solamente 2, de tal forma que los resultados obtenidos en este caso son: >>xr xr = 3.19981247501149 + 0.79868631472850i 3.19981247566068 - 0.79868631463590i -2.39962495067217 Para determinar si estos valores son las ra ces del polinomio anterior puede emplear la funci on evaluacion polinomio.m denida en la secci on 4.1

Cap tulo 5 Soluci on de sistemas lineales de ecuaciones: M etodos directos


5.1. Introducci on

Los sistemas lineales de ecuaciones aparecen en muchos problemas de la ingenier a civil, por lo cual resulta su estudio de vital importancia para cualquier persona que quiera adentrarse en los terrenos del modelamiento num erico. A nivel general, un sistema lineal de ecuaciones se puede expresar de la siguiente forma: a11 x1 + a12 x2 + + a1n xn = b1 a21 x1 + a22 x2 + + a2n xn = b2 a31 x1 + a32 x2 + + a3n xn = b3 (5.1) . . . . . . an1 x1 + an2 x2 + + ann xn = bn en donde los aij corresponden a los denominados coecientes del sistema y los bi a los t erminos independientes. Los valores de xi que hacen que cada una de las igualdades en la ecuaci on 5.1 se cumplan se denominan la soluci on del sistema. El anterior sistema lineal de ecuaciones puede ser expresado de forma compacta usando un elemento denido en el Algebra Lineal: la matr z. Usando matrices el sistema lineal de ecuaciones dado por la ecuaci on (5.1) se puede escribir como: Ax = b (5.2)

donde A representa la matr z de coecientes, x corresponde al vector de inc ognitas y b es el vector con los t erminos independientes. Existen diferentes m etodos para la obtenci on de la soluci on de un sistema lineal de ecuaciones, los cuales pueden agruparse en dos grandes categor as: M etodos directos 139

140 M etodos iterativos

TODOS DIRECTOS CAP ITULO 5. ME

Dentro de los m etodos directos m as comunes se pueden mencionar los siguientes: Eliminaci on gaussiana Descomposici on LU Descomposici on de Cholesky Dentro de los m etodos iterativos m as importantes se encuentran: Gauss-Seidel Sobre-relajaci on Gradiente Conjugado

5.1.1.

Tipos de Matrices

Existen diferentes tipos de matrices y su conocimiento es un requisito fundamental para el estudio de los m etodos de soluci on de sistemas de ecuaciones lineales, ya que existen m etodos espec cos de soluci on para estos tipo de matrices. A continuaci on se presentan los tipos m as importantes de matrices que van a aparecer en el estudio de los sistemas lineales de ecuaciones. 5.1.1.1. Matrices Sim etricas Denici on 14 Una matr z sim etrica es aquella para la cual se cumple que: aij = aji y por lo tanto se tiene que A = AT . (5.3)

Ejemplo La siguiente es un caso muy sencillo de una matr z sim etrica: 4 5 6 5 6 7 6 7 8

5.1. INTRODUCCION 5.1.1.2. Matrices Herm ticas Denici on 15

141

Una matr x Herm tica (o matr z auto-adjunta) es una matr z cuadrada con valores complejos, la cual es igual a su transpuesta conjugada, es decir, que el elemento en la la i y en la columna j es el complejo conjugado del elemento de la la j y la columna i: aij = aji donde a ij representa el complejo conjugado del valor de aij (5.4)

Ejemplo La siguiente matr z es de tipo herm tico; 4 5+i 6i 5i 6 7+i 6+i 7i 8 ya que los elementos cumplen con la condici on expresada por la ecuaci on 5.4.

5.1.1.3.

Matrices Diagonales

Denici on 16 Una matr z diagonal es aquella para la cual los elementos de la diagonal principal son valores reales y los restantes elementos son iguales a 0: d11 0 0 0 0 d22 0 0 D= (5.5) 0 0 d33 0 0 0 0 d44 De aqui se desprende que una matr z Herm tica de valores reales es una matr z sim etrica.

142 Ejemplo

TODOS DIRECTOS CAP ITULO 5. ME

Un ejemplo sencillo de matr z diagonal es el siguiente: 5 0 0 D= 0 4 0 0 0 8

5.1.1.4. Matr z Identidad Denici on 17 La matr z identidad I es aquella para la cual se cumple: IA=A (5.6)

y la cual tiene 1 en las diagonal principal y 0 en los elementos restantes: 1 0 0 0 0 1 0 0 In = (5.7) 0 0 1 0 0 0 0 1

5.1. INTRODUCCION Ejemplo La matr z identidad de 3 3 est a dada por: 1 0 0 I3 = 0 1 0 0 0 1

143

5.1.1.5.

Matr z Tridiagonal

Denici on 18 Las matrices tridiagonales son aquellas que tienen elementos diferentes de 0 en la diagonal principal, y las primeras diagonales superior e inferior: a11 a12 0 0 0 a21 a22 a23 0 0 T = 0 a32 a33 a34 0 (5.8) 0 0 a43 a44 a45 0 0 0 a54 a55

144 Ejemplo

TODOS DIRECTOS CAP ITULO 5. ME

Las matrices tridiagonales son muy importantes porque aparecen en la discretizaci on de ecuaciones diferenciales parciales. Un ejemplo sencillo de este tipo de matrices es: 4 1 0 0 0 1 4 1 0 0 T= 0 1 4 1 0 0 0 1 4 1

5.1.1.6. Matrices Triangulares Denici on 19 La matr z triangular inferior se dene como aquella para la cual los elementos por encima de la diagonal principal son iguales a 0: a11 0 0 0 0 a21 a22 0 0 0 0 L = a31 a32 a33 0 (5.9) a41 a42 a43 a44 0 a51 a52 a53 a54 a55 Denici on 20 De forma equivalente, en una matr z triangular superior los valores por debajo de la diagonal principal son iguales a 0: a11 a12 a13 a14 a15 0 a22 a23 a24 a25 0 a33 a34 a35 U= (5.10) 0 0 0 0 a44 a45 0 0 0 0 a55

5.1. INTRODUCCION Ejemplo Un ejemplo de matr z triangular superior es el siguiente: 1 2 3 4 5 0 3 4 5 6 U= 0 0 5 6 7 0 0 0 7 8 0 0 0 0 9 y de matr z triangular inferior: 1 2 L= 3 4 5

145

0 3 4 5 6

0 0 5 6 7

0 0 0 7 8

0 0 0 8 9

5.1.1.7.

Matrices de Hessemberg

Denici on 21 Las matrices de Hessemberg tambi en se denominan matrices supertriangulares, y son aquellas para las cuales todos los elementos por encima o por debajo de las subdiagonales son iguales a 0. La matr z de Hessemberg superior est a denida de la siguiente forma: a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 0 a a a a HU = (5.11) 32 33 34 35 0 0 a43 a44 a45 0 0 0 a54 a55 y de igual forma la matr z de Hessemberg inferior: a11 a12 0 0 0 a21 a22 a32 0 0 a a a a HL = 31 32 33 34 0 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55

(5.12)

146 Ejemplo

TODOS DIRECTOS CAP ITULO 5. ME

lgeLas matrices de Hessemberg son importantes en diferentes ramas del a bra lineal ya que muchos problemas con matrices totalmente llenas (o densas como tambi en se les conocen) se obtienen matrices de este tipo. Algunos procedimientos para la obtenci on de los valores y vectores propios como la descomposici on QR. Un ejemplo de matr z de Hessemberg es el siguiente: 1 2 0 0 0 3 4 5 0 0 6 7 8 9 0 HU = 10 11 12 13 14 16 17 18 19 20

5.1.2.

Matrices Densas y Dispersas

Denici on 22 Una matr z A se dice que es densa cuando todos sus elementos son diferentes de 0. Por otro lado, una matr z A se dice dispersa si alguno de sus elementos es igual a 0.

Las matrices diagonales, triangulares y de Heseemberg corresponden a tipos espec cos de matrices dispersas.

5.1. INTRODUCCION Ejemplo Un ejemplo sencillo de una matr z densa es el siguiente: 9 8 7 DE = 6 5 4 3 2 1 y de una matr z dispersa: 0.000 0.000 DI = 0.000 0.000 0.000

147

0.000 0.628 0.000 0.849 0.000

0.685 0.000 0.000 0.000 0.000

0.000 0.878 0.000 0.000 0.000

0.000 0.000 0.068 0.000 0.000

Generalmente las matrices dispersas aparecen cuando se discretizan ecuaciones diferenciales parciales. Este tipo de matrices requieren de m etodos especiales para su almacenamiento y para su operaci on, de tal forma que aseguren un manejo de memoria eciente.

5.1.3.

Transformaciones Elementales

Para una matriz A se denen tres transformaciones elementales, las cuales se aplican sobre las ecuaciones que conforman el sistema lineal. Dichas transformaciones elementales permiten cambiar el sistema lineal original en un sistema equivalente, cuya soluci on es la misma que el sistema original. La nalidad verdadera de estas transformaciones consiste en facilitar los procedimientos de soluci on de sistemas lineales de ecuaciones. Las transformaciones elementales son las siguientes: 1. Multiplicar o divir una ecuaci on por un escalar diferente de 0 2. Sumar dos ecuaciones entre si 3. Intercambiar de posici on dos ecuaciones Como es evidente de la lista anterior, las 3 transformaciones elementales mencionadas anteriormente son operaciones que no cambian la soluci on de un sistema lineal de ecuaciones. Por ejemplo, para el siguiente sistema lineal de ecuaciones: a11 a12 a13 a14 x1 b1 a21 a22 a23 a24 x2 b2 a31 a32 a33 a34 x3 = b3 a41 a42 a43 a44 x4 b4

148

TODOS DIRECTOS CAP ITULO 5. ME

tomemos la primera ecuaci on y multipliquemosla por un escalar = 0, con lo que se tiene: a11 x1 + a12 x2 + a13 x3 + a14 x4 = b1 Esta ecuaci on se puede introducir en el sistema original de la siguiente manera: a11 a12 a13 a14 x1 b1 a21 a22 a23 a24 x 2 = b2 a31 a32 a33 a34 x3 b3 a41 a42 a43 a44 x4 b4 con lo cual resulta evidente que el vector soluci on x no cambia. De la misma forma, si se tienen dos ecuaciones: a11 x1 + a12 x2 + a13 x3 + a14 x4 = b1 a21 x1 + a22 x2 + a23 x3 + a24 x4 = b2 y a partir de estas creamos una nueva como la suma entre ellas se tiene: (a11 + a21 )x1 + (a12 + a22 )x2 + (a13 + a23 )x3 + (a14 + a24 )x4 = (b1 + b2 ) Debido a que en este caso particular, se pueden agrupar los coecientes de acuerdo a las varibles respectivas xi , quiere decir que esta ecuaci on es una nueva restricci on que deben cumplir los valores de las inc ognitas, y por lo tanto

5.2.

Soluci on de sistemas triangulares

Si se tiene un sistema lineal de ecuaciones cuya matr z de coecientes A sea del tipo triangular (ya sea superior o inferior), la soluci on del mismo se puede obtener de forma sencilla empleando los procedimientos de sustituci on hacia atr as y hacia delante respectivamente. Este hecho es de vital importancia ya que todos los m etodos directos de soluci on de ecuaciones lineales tratan de llevar el sistema original a uno equivalente, cuya matr z de coecientes sea de tipo triangular. Suponga que se tiene un sistema lineal de ecuaciones de la siguiente forma: u11 u12 u13 u14 x1 b1 0 u22 u23 u24 x2 b2 = (5.13) 0 0 u33 u34 x3 b3 0 0 0 u44 x4 b4 Para obtener todos los elementos del vector soluci on x se procede de la siguiente forma:

DE SISTEMAS TRIANGULARES 5.2. SOLUCION 1. Se despeja x4 usando la expresi on: x4 = b4 u44

149

2. Con el valor de x4 antes obtenido se despeja x3 a partir de la 3 ecuaci on del sistema original u33 x3 + u34 x4 = b3 de lo cual se deprende que: x3 = b3 u34 x4 u33

3. De igual forma se procede para despejar x2 , para lo cual se usa la ecuaci on 2 del sistema original de ecuaciones: u22 x2 + u23 x3 + u24 x4 = b2 de la cual se obtiene: x2 = b2 u24 x4 u23 x3 u22

ltima variable x1 se despeja de una forma similar a partir de la ecua4. La u ci on: b1 u14 x4 u13 x3 u12 x2 x1 = u11 Este procedimiento se denomina sustituci on hacia atr as y se puede generalizar mediante la siguiente expresi on: xk = bk akk
n

(bk1 x k 1 =
j =k+1

akj xj ) akk , k = n 1, n 2, . . . , n

(5.14)

En el caso de un sistema lineal en donde la matr z de coecientes es de tipo triangular inferior, como el presentado a continuaci on: l11 0 0 0 x1 b1 l21 l22 0 0 x2 b2 (5.15) l31 l32 l33 0 x3 = b3 l41 l42 l43 l44 x4 b4 el procedimiento empleado para obtener su soluci on es similar al explicado an nica diferencia consiste en el orden en el que se despejan las teriormente, la u inc ognitas del problema. Este se resume a continuaci on:

150

TODOS DIRECTOS CAP ITULO 5. ME

1. La primera variable que se despeja corresponde a x1 . Este valor es igual a: x1 = b1 l11

2. La segunda inc ognita x2 se puede despejar de la ecuaci on: l21 x1 + l22 x2 = b2 la cual es igual a: x2 = b2 l21 x1 l22

3. La tercera inc ognita x3 se puede obtener de la ecuaci on: l31 x1 + l32 x2 + l33 x3 = b3 de la cual se obtiene: x3 = b3 l31 x1 l32 x2 l33

ltima inc 4. La u ognita se puede despejar de la ecuaci on: x4 = b4 l41 x1 l42 x2 l43 x3 l44

Este procedimiento se denomina sustituci on hacia delante y se puede generalizar mediante la siguiente expresi on: x1 = b1 a11
n

bk xk =
j =k

akj xj akk , k = 2, 3, . . . , n

(5.16)

5.3.
5.3.1.

Eliminaci on Gaussiana con Pivoteo


Fundamentos Conceptuales

La eliminaci on gaussianaes el procedimiento de soluci on de sistemas de ecuaciones lineales m as sencillo e importante que existe.

GAUSSIANA CON PIVOTEO 5.3. ELIMINACION Denici on 23

151

La eliminaci on gaussiana es el procedimiento para la soluci on de un sistema lineal de ecuaciones el cual se basa en la aplicaci on de transformaciones elementales (ver secci on 5.1.3) y que permite convertir: Ax=b en un sistema de la forma: Ux=b donde U es una matr z triangular superior y b es un vector modicado de ltimo sistema se puede resolver mediante t erminos independientes. Este u sustituci on hacia atr as. En el procedimiento de eliminaci on gaussiana el sistema lineal de ecuaciones A x = b se resuelve deniendo la denominada matr z aumentada del sistema. Esta matr z se denota como [A|b] y se encuentra formada por la matr z de coecientes y del vector de t erminos independientes: a11 a12 . . . a1n b1 a21 a22 . . . a2n b2 . . . . . . . . . . . . an1 an2 . . . ann bn

(5.17)

y sobre el cual al aplicar las transformaciones elementales (ver secci on 5.1.3), se convierte en un sistema lineal equivalente dado por: a11 a12 . . . a1n b1 0 a 21 . . . a2n b2 . . .. . 0 . . 0 . . 0 0 0 ann bn

(5.18)

donde la notaci on aij indica que el elemento aij cambi o. Un hecho de vital importancia es que la soluci on x del sistema original (ecuaci on 5.17) es la misma del sistema modicado (ecuaci on 5.18), y por lo tanto resulta de vital importancia estudiar como se resuelven los sistemas lineales cuyas matrices de coecientes son de tipo triangular. Una vez el sistema lineal de ecuaciones ha sido llevado a esta forma triangular superior se puede resolver por sustituci on hacia atr as, de tal forma que del sistema equivalente (ecuaci on 5.18) despejamos la ltima inc u ogita xn , con lo cual se obtiene: xn = bn ann (5.19)

152

TODOS DIRECTOS CAP ITULO 5. ME

Este mismo procedimiento se aplica a la inc ognita xn1 de tal forma que: xn1 = bn1 ann xn an1,n1 (5.20)

y lo cual se puede generalizar de la siguiente forma: n akj xj bk j =k+1 , k = n 1, n 2, . . . , n xk = akk

(5.21)

Se pueden presentar problemas en el caso de que los elementos con los coecientes aii con los que se realiza la eliminaci on sean muy cercanos a la precisi on de la m aquina, ya que se pueden generar inestabilidades num ericas. Existen 2 estretegias con las que se puede evitar este problema, que se denominan escalamiento y pivoteo . El procedimiento de escalamiento consiste en ajustar los valores de los coecientes de cada una de las ecuaciones de tal forma que estos tengan el mismo orden de magnitud. A nivel pr actico existen dos aproximaciones para realizar este procedimiento. En la primera se modica el valor del coeciente aij con respecto al valor m aximo de la ecuaci on: aij = aij m ax (ai, ) (5.22)

donde aij es el valor del coeciente para la ecuaci on i y la variable j , y el valor m aximo se calcula para toda la ecuaci on. La otra aproximaci on de escalamiento consiste en usar como patr on de referencia la norma vectorial del conjunto de coecientes de la ecuaci on, con lo cual el coeciente modicado tiene la forma: aij (5.23) aij = E donde E se dene como: E=
i=1 n

|ai, |

(5.24)

La eliminaci on de coecientes de una ecuaci on requiere la determinaci on del multiplicador aij /aii y en ese caso se debe de evitar que el valor del coeciente aii 0, ya que el valor del multiplicador tender a a + y as se generar a una inestabilidad num erica. El pivoteo permite resolver este problema, el cual consiste en un procedimiento de reorganizaci on de la ecuaciones del sistema lineal

GAUSSIANA CON PIVOTEO 5.3. ELIMINACION

153

(lo que es equivalente a las las) de acuerdo al valor del coeciente ubicado en la diagonal principal aii . Para esto se mueve la ecuaci on que tenga el mayor valor de aii a la primera posici on. Otra aproximaci on alternativa consiste en reorganizar tanto las como columnas, sin embargo este procedimiento resulta bastante complejo de implementar a nivel computacional y no brinda mejoras signicativas con respecto a la aproximaci on tradicional que cambia solamente las las. El pivoteo que involucra cambios tanto de las como columnas se denomina pivoteo completo ; mientras que aquel en donde se cambian solo las las se denomina pivoteo parcial . Generalmente tanto el escalamiento y el pivoteo parcial se aplican de forma secuencial, ya que primero se realiza el escalamiento para luego determinar si es necesario realizar pivoteo.

Podemos resumir el pivoteo (parcial)como sigue: Para elegir el elemento pivote en la primer columna se escoge el elemento mayor (con valor absoluto) de toda la primer columna. Para elegir el elemento pivote en la segunda columna, se escoge el elemento mayor (con valor absoluto ) de toda la segunda columna exceptuando el elemento a12 . Para la tercer columna se except uan los elementos a13 y a23 . En un diagrama matricial, tenemos que los elementos pivotes de cada columna se escogen de entre los siguientes: a11 a21 a22 a31 a32 a33 . . . . . . . . . an1 an2 an3 ann (5.25)

5.3.2.

Soluci on de Sistemas de Ecuaciones con Eliminaci on Gaussiana

La estructura de la funci on que implementa este procedimiento es la siguiente:

154
"gauss_pivoteo.m" 154a

TODOS DIRECTOS CAP ITULO 5. ME

Gauss con Pivoteo: Declaraci on de la funci on 154b Gauss con Pivoteo: Determinar valores para escalamiento 155a Gauss con Pivoteo: Ciclo principal 155b Gauss con Pivoteo: Sustituci on hacia atr as 158b Gauss con Pivoteo: C alculo del determinante 159a Gauss con Pivoteo: Asignaci on de salida 159b

5.3.2.1. Denici on de la funci on Como es costumbre en MATLAB R para denir una funci on es necesario especicar cuales van a ser los argumentos de entrada y de salida. En este caso particular se tienen las siguientes variables de entrada: A: Matr z de coecientes del sistema lineal de ecuaciones. Esta matr z es de tama no n n b: Vector de t erminos independientes. Este es un vector de n 1 y las variables de salida: x: Vector con la soluci on del sistema lineal de ecuaciones. Vector de tama no n 1 detm: Valor del determinante de la matr z de coecientes del sistema lineal.
Gauss con Pivoteo: Declaraci on de la funci on 154b function [x,detm] = gauss_pivoteo(A,b) if (size(b,2) > 1); b = b; end n = length(b); s = zeros(n,1); num_cambios=0;
Fragmento referenciado en 154a.

5.3.2.2. Escalamiento Como se mencion o en la clase, el escalamiento permite mejorar la estabilidad num erica de los diferentes procedimientos de eliminaci on ya que

GAUSSIANA CON PIVOTEO 5.3. ELIMINACION

155

Para realizar el escalamiento en la funci on a implementar en MATLAB R se debe determinar el valor m aximo en cada la de la matr z A, o lo que es equivalente, en cada ecuaci on del sistema lineal a resolver. Para esto hacemos un ciclo for sobre la matr z de coecientes A y extraemos los respectivos coecientes de la ecuaci on, usando la notaci on de acceso r apido propia de MATLAB R .Por ejemplo, si se quisieran extraer los n coecientes de la 3 ecuaci on (es decir, todos los valores de las columnas de la tercera la) esto se puede realizar f acilmente: A(3,1:n) donde n es el n umero de ecuaciones que conforman el sistema lineal. Esto facilita enormemente esta labor, ya que en un lenguaje de programaci on como C++ ser a necesario realizar otro ciclo. Una vez se han extra do dichos valores, se hace necesario determinar cu al es su valor m aximo sin importar si se trata de un valor positivo o negativo; para lo cual usamos las funciones intr nsecas de MATLAB R abs() (valor absoluto) en conjunto con max() (valor m aximo). Estos valores se almacenan en el vector s para su posterior uso.
Gauss con Pivoteo: Determinar valores para escalamiento 155a for i = 1:n; s(i) = max(abs(A(i,1:n))); end
Fragmento referenciado en 154a.

5.3.2.3.

Ciclo Principal

La estructura de este ciclo se presenta a continuaci on:


Gauss con Pivoteo: Ciclo principal 155b for k=1:n-1; Ciclo Principal Gauss: Determinar el Pivot 156a Ciclo Principal Gauss: Chequear si es matr z singular 156b Ciclo Principal Gauss: Cambiar las las 157a Ciclo Principal Gauss: Fase de eliminaci on 157b end;
Fragmento referenciado en 154a.

156

TODOS DIRECTOS CAP ITULO 5. ME

5.3.2.3.1. Determinaci on del Pivot Uno de los objetivos centrales del pivoteo consiste en mejorar la estabilidad num erica del algoritmo de soluci on del sistema de ecuaciones. Para realizar este procedimiento se hace necesario determinar el elemento del Pivot, y lo m as importante consiste en determinar si este elemento se encuentra en la actual ecuaci on o en una ecuaci on que est a por debajo de esta. En ese caso se determina la ecuaci on que tiene el coeciente escalado de mayor magnitud Amax y su correspondiente posici on p.
Ciclo Principal Gauss: Determinar el Pivot 156a [Amax,p] = max(abs(A(k:n,k))./s(k:n)); p = p + k - 1;
Fragmento referenciado en 155b.

5.3.2.3.2. Chequer si la matr z es singular Un criterio ampliamente aceptado para la determinaci on de la singularidad de una matr z corresponde al hecho que su determinante sea igual o muy cercano a 0.0. Sin embargo este criterio es computacionalmente bastante complicado de implementar, ya que los m etodos que se conocen para calcular el determinante de una matr z dada requieren muchas operaciones, m as operaciones que las que se necesitan para resolver un til para sistema lineal de ecuaciones. As que un criterio operacional bastante u nuestros prop ositos corresponde al hecho que una matr z singular en el momento en el que se este convirtiendo en una matr z triangular superior, va a producir un elemento igual o muy cercano a 0.0 en alguna de las diagonales. As que si durante este procedimiento chequeamos que el valor del pivote Amax es menor que la precisi on m nima del MATLAB R (valor para el cual este paquete considera un valor como igual a 0.0, este valor se puede acceder como eps). Si esta condici on se cumple la matr z es singular y el sistema no tiene soluci on (o por lo menos para los efectos del presente curso), y la funci on env a un mensaje de error en pantalla y se detiene. Para hacer esto usamos la funci on intr nseca de MATLAB R error(), con el respectivo mensaje que indica la naturaleza del problema.
Ciclo Principal Gauss: Chequear si es matr z singular 156b if (Amax < eps); error(La Matrix es singular); end
Fragmento referenciado en 155b.

GAUSSIANA CON PIVOTEO 5.3. ELIMINACION

157

5.3.2.3.3. Cambiar Filas La decisi on de cambiar una la o no se hace atendiendo al hecho de la posici on del valor m aximo del pivot p (determinado en la secci on 5.3.2.3.1) con respecto a la ecuaci on actual k . Si el valor m aximo se encuentra en una de la ecuaciones por debajo de la ecuaci on actual entonces se procede a realizar el cambio de forma f sica, es decir, la ecuaci on en la posici on p se cambia a la posici on k usando la funci on cambiarFilas (denida en la secci on 5.3.2.4). Este procedimiento se aplica tanto en la matr z de coecientes A, como en los vectores b (t erminos independientes) y s (m aximos por la/ecuaci on), y el n umero de cambios que se realizan son almacenados en la variable num cambios
Ciclo Principal Gauss: Cambiar las las 157a if(p~=k); num_cambios=num_cambios+1; b = cambiarFilas(b,k,p); s = cambiarFilas(s,k,p); A = cambiarFilas(A,k,p); end
Fragmento referenciado en 155b.

5.3.2.3.4. Fase de Eliminaci on Una vez se han cambiado la posici on de las ecuaciones usando el procedimiento de pivoteo tal como se especic o anteriormente, entonces se puede resolver el sistema de ecuaciones por medio de eliminaci on. Para esto se dene el valor del multiplicador y se almacena en la variable lambda y con este se modican tanto los valores de los coecientes (almacenados en la matr z A), como el de los t erminos independientes (vector b). Este procedimiento arroja como resultado la transformaci on de la matr z de coecientes A en una matr z triangular superior. Si ud est a interesado puede imprimir dicha matr z una vez este procedimiento ha nalizado con el n de comprobar que lo que se esta diciendo es verdad.
Ciclo Principal Gauss: Fase de eliminaci on 157b for i = k+1:n; if (A(i,k)~=0); lambda = A(i,k)/A(k,k); A(i,k:n) = A(i,k:n) - lambda*A(k,k:n); b(i) = b(i) - lambda*b(k); end end
Fragmento referenciado en 155b.

158 5.3.2.4. Funci on cambiarFilas

TODOS DIRECTOS CAP ITULO 5. ME

Debido a que un aspecto importante del procedimiento de pivoteo consisten en cambiar las las, para esta tarea se cre o una funci on especial denominada cambiarFilas. Esta funci on tiene las siguientes variables de entrada: v : vector o matr z sobre la cual se realizar a el cambio de las i: n umero que indica la la/ecuaci on que se va a cambiar j : n umero que indica la la/ecuaci on por la que se va a cambiar la la/ecuaci on i y la variable de salida es la misma variable de entrada v , con lo cual se asegura que los cambios realizados dentro de esta funci on tengan efectos permanentes en este arreglo (tal como se desea). La implementaci on de este procedimiento es muy sencilla y es la siguiente: 1. Almacenamiento de la la/ecuaci o i en la variable temporal temp. Para eso usamos la notaci on de acceso r apido explicada anteriorente. 2. Asignaci on de la la/ecuaci on j en la la i 3. Asignaci on de la la/ecuaci on i almacenada en temp en la posici on j .
"cambiarFilas.m" 158a function [v]=cambiarFilas(v,i,j) temp = v(i,:); v(i,:) = v(j,:); v(j,:) = temp;

5.3.2.5.

Sustituci on hacia atr as

Una vez que A se ha transformado en una matr z triangular superior es posible obtener los valores de las inc ognitas mediante el procedimiento de susti ltima inc tuci on hacia atr as. En este la u ognita se puede despejar directamente, y las restantes cantidades desconocidas se puede determinar f acilmente con un ciclo for.
Gauss con Pivoteo: Sustituci on hacia atr as 158b b(n)=b(n)/A(n,n); for k = n-1:-1:1 b(k) = (b(k) - A(k,k+1:n)*b(k+1:n))/A(k,k); end
Fragmento referenciado en 154a.

GAUSSIANA CON PIVOTEO 5.3. ELIMINACION 5.3.2.6. C alculo del determinante

159

El determinante de una matr z triangular se puede calcular f acilmente como el producto de los elementos de su diagonal. Para realizar dicha operaci on usamos las funciones intr nsecas diag(), para extraer los elementos de la diagonal, y prod(), para realizar el producto de dichos elementos. As mismo debido al pivoteo realizado el signo del determinante cambia, de tal forma que para obtener el valor real es necesario tener en cuenta el n umero de cambios.
Gauss con Pivoteo: C alculo del determinante 159a detm=(-1)^(num_cambios)*prod(diag(A));
Fragmento referenciado en 154a.

5.3.2.7.

Asignaci on de la salida

Una vez se han completado los procedimientos de inter es, la soluci on del sistema lineal de ecuaciones se asigna en la variable x y se termina la funci on.
Gauss con Pivoteo: Asignaci on de salida 159b x = b;
Fragmento referenciado en 154a.

5.3.3.

Ejemplos

Ejemplo (Eliminaci on gaussiana) Resuelva mediante eliminaci on gaussiana el sistema lineal de ecuaciones representado por la siguiente matr z aumentada: 3 1 2 12 1 2 3 11 2 2 1 2 Tal como se explic o anteriormente la soluci on de este sistema se realiza en dos estapas. La primera corresponde a la fase de eliminaci on, mientras que la segunda consiste en la sustituci on hacia atr as. Para la eliminaci on de las variables en las columnas respectivas se hace necesario emplear las transformaciones elementales. Con el n de eliminar las variables de la primera variable se aplican

160 las siguientes operaciones:

TODOS DIRECTOS CAP ITULO 5. ME

3 1 2 12 Ec2Ec2-(1/3)Ec1 0 2.333 7.004 2.333 Ec3Ec3-(2/3)Ec1 0 1.333 2.333 5.999 Para eliminar los coecientes de la segunda variable se aplica la siguiente operaci on: 12 3 1 2 0 2.333 2.333 7.004 0 0 1.000 1.999 Ec3Ec3-(1.333/2.333)Ec2 En este punto se tiene una matr z de coecientes que es de tipo triangular superior, y por lo tanto se pueden despejar las inc ognitas mediante el procedimiento de sustituci on hacia atr as. La primera inc ognita x3 es igual a: x3 = 1.999/ 1.000 = 1.999 Para despejar x2 se emplea la ecuaci on: 2.333x2 + 2.333x3 = 7.004 de la cual se desprende que: x2 = 7.004 2.333 1.999 = 1.004 2.333

y para despejar x3 se usa la siguiente ecuaci on: 3x1 x2 + 2x3 = 12 de la cual se obtiene f acilmente: x1 = 12 2x3 + x2 12 2 (1.999) + 1.004 = = 3.000 3 3.0

LU CON PIVOTEO 5.4. DESCOMPOSICION Ejemplo MATLAB


R

161

(Eliminaci on gaussiana)

Resuelva en MATLAB R mediante eliminaci on gaussiana el siguente sistema lineal de ecuaciones: 3 1 2 x1 12 1 2 3 x2 = 11 2 2 1 x3 2 Para realizar este procedimiento se dene la matr z de coecientes A: A=[3 -1 2;1 2 3;2 -2 -1]; y el correspondiente vector de t erminos independientes b: b=[12 11 2]; Para aplicar el procedimiento de eliminaci on gaussiana con pivoteo se utiliza la funci on denida en la secci on 5.3 denominada gauss pivoteo.m de la siguiente forma: [x,detm] = gauss_pivoteo(A,b); con lo cual se obtiene que el valor del determinante de A es igual a: detm = -7.0000 y el vector soluci on x: x = 3.0000 1.0000 2.0000 Esta es la misma soluci on obtenida anteriormente cuando se aplic o el procedimiento de forma manual.

5.4.
5.4.1.

Descomposici on LU con pivoteo


Fundamentos Conceptuales

Como se vi o en la secci on 5.3, la eliminaci on gaussiana se emplea para la soluci on de sistemas lineales de ecuaciones A x = b deniendo la matr z aumentada del sistema (ecuaci on 5.17). La soluci on x se obtiene al aplicar las

162

TODOS DIRECTOS CAP ITULO 5. ME

transformaciones elementales sobre dicho sistema, el cual incluye tanto los valores de los coecientes aij y de los t erminos independientes bi . En algunas oportunidades se da el caso que se requiere solucionar el sistema A x = b para diferentes vectores bi . Si esto se fuera a resolver usando eliminaci on gaussiana se hace necesario cada vez modicar la matr z aumentada del sistema (ecuaci on 5.17) resultando de esta forma en un procedimiento ineciente a nivel computacional. En este caso resultar a de inter es contar con un procedimiento que actuara solamente sobre la matr z de coecientes A de tal forma que la modicaci on de la misma solo se realizara una vez. Este procedimiento se conoce como descomposici on LU y se dene a continuaci on: Denici on 24 Sea A una matr z cuadrada. La descomposici on LUde A es el procedimiento mediante el cual se expresa dicha matr z como el producto de una matr z triangular inferior L y una matr z triangular superior U de la siguiente forma: A=LU (5.26) y donde el tama no de L y U es el mismo de A. El procedimiento de descomposici on LU se puede realizar por medio de eliminaci on gaussiana, de tal forma que la estructura de la funci on que la implemente es similar a la de gauss pivoteo.m explicada anteriormente, ya que en dicho procedimiento la matr z de coecientes A a11 a12 a13 a14 a21 a22 a23 a24 A= (5.27) a31 a32 a33 a34 a41 a42 a43 a44 se convierte en una matr z triangular superior U: a11 a12 a13 a14 0 a22 a23 a24 U= 0 0 a33 a34 0 0 0 a44

(5.28)

La matr z triangular inferior L de esta descomposici on se obtiene a partir de los multiplicadores denidos en el procedimiento de eliminaci on de variables m orden andolos de la siguiente forma: 1 0 0 0 m21 1 0 0 L= (5.29) m31 m32 1 0 m41 m42 m43 1 donde cada uno de los multiplicadores se dene de la siguiente forma: mij = aij /aii (5.30)

LU CON PIVOTEO 5.4. DESCOMPOSICION

163

5.4.2.

Procedimineo de Descomposici on LU

La estructura de este procedimiento se presenta a continuaci on:


"lu_pivoteo.m" 163a Descomposici on LU con Pivoteo: Declaraci on de la funci on 163b Descomposici on LU con Pivoteo: Inicializaci on de variables 164a Descomposici on LU con Pivoteo: Determinar valores para escalamiento 164b Descomposici on LU con Pivoteo: Ciclo Principal 165a Descomposici on LU con Pivoteo: Asignaci on de resultados 167a

5.4.2.1.

Declaraci on de la funci on

El nombre seleccionado para implementar el procedimiento de descomposici on LU en MATLAB R es lu pivoteo.m y el argumento de entrada corresponde a la matr z de coecientes A. Esta matr z es de tama no n n. Los argumentos de salida son los siguientes: L, U Matr z triangular inferior y matr z triangular superior resultado de la descomposici on. Ambas de tama no n n. perm vector en donde se almacenan los cambios en la posici on de las ecuaciones realizados durante la descomposici on. ltima variable va a ser de gran importancia ya que al resolver el sisteEsta u ma lineal de ecuaciones se hace necesario organizar la soluci on con el n que corresponda a las variables originales.
Descomposici on LU con Pivoteo: Declaraci on de la funci on 163b function [L,U,perm] = lu_pivoteo(A)
Fragmento referenciado en 163a.

5.4.2.2.

Inicializaci on de Variables

Para continuar con el procedimiento de descomposici on se hace necesario denir algunas variables de inter es: n: corresponde al n umero de ecuaciones que forman el sistema de inter es L, U : son las matrices triangulares en donde se almacenaran los resultados de la descomposici on. En este caso se inicializan con valores iguales a 0.0. As mismo la primera la de la matr z U se inicializa con los valores de la primera la de la matr z de coecientes A.

164

TODOS DIRECTOS CAP ITULO 5. ME s es un vector en donde se almacenar an los valores m aximos de cada la (ecuaci on) para realizar el correspondiente escalamiento. Este vector es de tama no n 1 y se inicializa con valores iguales a 0.0. perm es un vector en donde se almacenar an los cambios en las posiciones de las ecuaciones del sistema original. Este vector se inicializa en valores que van desde 1 hasta n y por lo tanto su tama no es de n 1.

Descomposici on LU con Pivoteo: Inicializaci on de variables 164a [nr nc] = size(A); n=nr; L=zeros(n,n); U=zeros(n,n); U(1,:)=A(1,:); s = zeros(n,1); perm=[1:n];
Fragmento referenciado en 163a.

5.4.2.3. Determinar los valores para el escalamiento Al igual que en la secci on 5.3.2.2 es necesario determinar los valores m aximos en cada ecuaci on o la de la matr z de coecientes. Esto se hace mediante un ciclo for y la aplicaci on de las funciones intr nsecas de MATLAB R max() y abs().

Descomposici on LU con Pivoteo: Determinar valores para escalamiento 164b for i = 1:n; s(i) = max(abs(A(i,1:n))); end
Fragmento referenciado en 163a.

5.4.2.4. Ciclo Principal El ciclo principal para realizar la descomposici on sigue exactamente la misma estructura que el ciclo principal de la eliminaci on gaussiana (secci on 5.3.2.3), la cual es la siguiente:

LU CON PIVOTEO 5.4. DESCOMPOSICION


Descomposici on LU con Pivoteo: Ciclo Principal 165a

165

for k=1:n-1; Ciclo Principal Descomposici on LU con Pivoteo: determinar el Pivot 165b Ciclo Principal Descomposici on LU con Pivoteo: chequear si es matr z singular 165c Ciclo Principal Descomposici on LU con Pivoteo: cambiar las las 166a Ciclo Principal Descomposici on LU con Pivoteo: fase de eliminaci on 166b end;
Fragmento referenciado en 163a.

5.4.2.4.1. Determinar el Pivot La determinaci on del pivot es exactamente igual que para el caso de la eliminaci on gaussiana (ver secci on 5.3.2.3.1)

Ciclo Principal Descomposici on LU con Pivoteo: determinar el Pivot 165b [Amax,p] = max(abs(A(k:n,k))./s(k:n)); p = p + k - 1;
Fragmento referenciado en 165a.

5.4.2.4.2. Chequear si es matr z singular El procedimiento para determinar si la matr z A es singular es el mismo que para la eliminaci on gaussiana (ver secci on 5.3.2.3.2)

Ciclo Principal Descomposici on LU con Pivoteo: chequear si es matr z singular 165c

if (Amax < eps); error(La Matrix es singular); end


Fragmento referenciado en 165a.

5.4.2.4.3. Cambiar Filas El procedimiento para cambiar las es similar al empleado en la eliminaci on gaussiana, ya que usa la misma funci on cambiarFilas() (secci on 5.3.2.4). En este caso particular se lleva un registro de las las (ecuaciones) cambiadas en el vector perm. Esto es de vital importancia en los procedimientos de inversi on de matrices.

166

TODOS DIRECTOS CAP ITULO 5. ME

Ciclo Principal Descomposici on LU con Pivoteo: cambiar las las 166a if(p~=k); s = cambiarFilas(s,k,p); A = cambiarFilas(A,k,p); perm=cambiarFilas(perm,k,p); end
Fragmento referenciado en 165a.

5.4.2.5. Fase de eliminaci on

El procedimiento de eliminaci on es similar al emplado en la funci on gaussPiv.m (ver secci on 5.3.2.3.4). En este caso particular el valor del multiplicador lambda es almacenado en la porci on triangular inferior de la matr z A.

Ciclo Principal Descomposici on LU con Pivoteo: fase de eliminaci on 166b for i = k+1:n; if (A(i,k)~=0); lambda = A(i,k)/A(k,k); A(i,k:n) = A(i,k:n) - lambda*A(k,k:n); A(i,k)=lambda; end end
Fragmento referenciado en 165a.

5.4.2.6. Asignaci on de Resultados

Una vez nalizada la fase de eliminaci on, la matr z U corresponde a la matr z triangular superior almacenada en A y L se encuentra conformada por los valores de los multiplicadores lambda. La matr z U se obtiene al extraer la porci on triangular superior de la matr z A por medio de la funci on de MATLAB R triu() y la porci on inferior con tril(). As mismo se impone la condici on que la diagonal de L este formada por 1.0, lo cual se realizar por medio de un ciclo for.

LU CON PIVOTEO 5.4. DESCOMPOSICION


Descomposici on LU con Pivoteo: Asignaci on de resultados 167a U=triu(A); L=tril(A,-1); for i=1:n; L(i,i)=1.0; %Aproximacion de Doolitle end;
Fragmento referenciado en 163a.

167

5.4.3.

Soluci on de sistemas lineales con descomposici on LU

Una vez realizada la descomposici on LU se hace necesario implementar el procedimiento de soluci on de sistemas lineales de ecuaciones empleando este importante m etodo. Esto se hace por medio de la funci on LUSolucion.m, cuya estructura es la siguiente:
"LUSolucion.m" 167b LUSolucion: Declaraci on de la funci on 168a LUSolucion: Inicializaci on de variables 168b LUSolucion: Descomposici on LU 168c LUSolucion: C alculo del determinante 169a LUSolucion: Organizaci on por pivoteo 169b LUSolucion: Sustituci on hacia adelante 169c LUSolucion: Sustituci on hacia atr as 170

5.4.3.1.

Declaraci on de la funci on

Esta funci on tiene como variables de entrada: A matr z de coecientes del sistema lineal de ecuaciones. Su tama no es de n n. b vector con los t erminos independientes del sistema lineal de ecuaciones. Su tama no es de n 1. Las variables de salida de la funci on LUSolucion.m son las siguientes: x vector de tama no n 1 con la soluci on del sistema lineal de ecuaciones detm valor del determinante de la matr z A perm vector con las posiciones actuales de las ecuaciones originales.

168

TODOS DIRECTOS CAP ITULO 5. ME

LUSolucion: Declaraci on de la funci on 168a function [x,detm,perm]=LUSolucion(A,b)


Fragmento referenciado en 167b.

5.4.3.2. Inicializaci on de variables Con el n de proseguir con la soluci on del sistema lineal de ecuaciones se hace necesario denir e inicializar ciertas varibles: n: n umero de ecuaciones del sistema. Se calcula usando la funci on intr nseca de MATLAB R length. x: vector con la soluci on del sistema lineal de ecuaciones. Se inicializa en 0.0. d: vector de tama no n 1 en el que se va a almacenar la soluci on intermedia del sistema de ecuaciones.
LUSolucion: Inicializaci on de variables 168b n=length(b); x=zeros(n,1); d=zeros(n,1);
Fragmento referenciado en 167b.

5.4.3.3. Descomposici on LU Para realizar la descomposici on LU de la matr z A se emplea la funci on Descomposici on LU con Pivoteo denida en la secci on anterior. Como resultado de invocar esta funci on se obtienen las matrices triangulares superior U e inferior L y el vector permcon la posici on de las ecuaciones.
LUSolucion: Descomposici on LU 168c [L U perm]=lu_pivoteo(A);
Fragmento referenciado en 167b.

5.4.3.4. C alculo del determinante El determinante se calcula como el producto de los t erminos que se encuentran sobre la diagonal de la matr z triangular superior U obtenida en la des-

LU CON PIVOTEO 5.4. DESCOMPOSICION

169

composici on LU, ya que la matr z L tiene solamente 1.0 en la diagonal. Para esto usamos la funci on diag() para extraer la diagonal y prod() para calcular su producto.
LUSolucion: C alculo del determinante 169a detm=prod(diag(U));
Fragmento referenciado en 167b.

5.4.3.5.

Organizaci on por el pivoteo

Este es uno de los aspectos m as importantes a tener en cuenta si se va a solucionar un sistema lineal de ecuaciones con el m etodo LU. Debido a que el orden original de las ecuaciones en la matr z A fue cambiado por el pivoteo, se hace necesario cambiar tambien el orden de los t erminos independientes almacenados en el vector b. Los valores ordenados se almacenan en el vector d.
LUSolucion: Organizaci on por pivoteo 169b for i=1:n; d(i)=b(perm(i)); end;
Fragmento referenciado en 167b.

5.4.3.6.

Sustituci on hacia adelante

Con los t erminos independientes ya en el orden correcto se procede a la soluci on del sistema lineal de ecuaciones en dos fases. La primera es una sustituci on hacia adelante usando el vector d denido anteriormente y la matr z triangular inferior L obtenida de la descomposici on LU. La soluci on parcial de este sistema de ecuaciones se almacena en el vector d para su uso posterior. A nivel de ecuaci on esto se representa: Ld=b (5.31)
LUSolucion: Sustituci on hacia adelante 169c for k=2:n; d(k,1)=d(k,1)-L(k,1:k-1)*d(1:k-1); end;
Fragmento referenciado en 167b.

170 5.4.3.7. Sustituci on hacia atr as

TODOS DIRECTOS CAP ITULO 5. ME

Ya habiendo solucionado el sistema lineal de ecuaciones planteado con la matr z triangular inferior L, ahora se plantea un nuevo sistema lineal de ecuaciones dado por: Ux=d (5.32) lo cual se hace mediante una sustituci on hacia atr as. En este caso particular se utilizan como t erminos independientes los valores almacenados en el vector d. La soluci on de este sistema lineal de ecuaciones se almacena en el vector x y constituye la soluci on del sistema original A x = b.
LUSolucion: Sustituci on hacia atr as 170 x=d; for k=n:-1:1; x(k,1)=(x(k,1) - U(k,k+1:n)*x(k+1:n,1))/U(k,k); end;
Fragmento referenciado en 167b.

LU CON PIVOTEO 5.4. DESCOMPOSICION

171

5.4.4.

Ejemplos
R

Ejemplo MATLAB

(Descomposici on LU de una matr z)

Realice la descomposici on LU de la siguiente matr z: 3 1 2 1 2 3 2 2 1 Para realizar este procedimiento se emplea la funci on lu pivoteo.m denida en la secci on 5.4.3, y la cual requiere como par ametro de entrada la matr z a descomponer que en este caso es: A=[3 -1 2;1 2 3;2 -2 -1]; y la descomposici on se realiza especicando la siguiente instrucci on: [L U perm]=lu_pivoteo(A) Los resultados de dicha descomposici on corresponden a la matr z triangular superior U: U = 3.0000 0 0 -1.0000 2.3333 0 2.0000 2.3333 -1.0000

a la matr z triangular inferior L dada por: L = 1.0000 0.3333 0.6667 0 1.0000 -0.5714 0 0 1.0000

y al vector de permutaciones perm que indica la posici on nal de cada una de las ecuaciones que originalmente conformaban el sistema: perm = 1 2 3 En este caso particular los valores inclu dos en este vector indican que no fue necesario realizar el procedimiento de pivoteo.

172 Ejemplo MATLAB


R

TODOS DIRECTOS CAP ITULO 5. ME (Soluci on usando descomposici on LU )

Solucionar en MATLAB R el sistema lineal de ecuaciones: 3 1 2 x1 12 1 2 3 x2 = 11 2 2 1 x3 2 empleando la descomposici on LU. Para realizar este procedimiento en MATLAB la matr z de coecientes A: A=[3 -1 2;1 2 3;2 -2 -1]; y el correspondiente vector de t erminos independientes b: b=[12 11 2]; La funci on que implementa el procedimiento de soluci on de sistemas lineales de ecuaciones por medio de la descomposici on LU se denomina LUSolucion.m y esta funci on se emplea de la siguiente forma: [x,detm,perm]=LUSolucion(A,b) Los resultados obtenidos corresponden al vector soluci on x: x = 3.0000 1.0000 2.0000 al valor del determinante detm de la matr z de coecientes: detm = -7.0000 y al vector de permutaciones perm: perm = 1 2 3
R

se hace necesario denir

5.5. INVERSA DE UNA MATR IZ

173

5.5.
5.5.1.

Inversa de una matr z


Fundamentos Conceptuales

Denici on 25 Sea A una matr z de n n. La matr z inversa de A, denotada como A1 es una matr z B de n n para la cual se cumple que: A B = In B A = In donde In es la matr z identidad de tama no n n. nica, pero no siempre existe dicha matriz Cuando la matriz inversa existe, es u (es decir, no todas las matrices de la forma A de tama no n n, tienen inversa). Un resultado de algebra lineal prueba que la matriz inversa A1 existe si y solo si el determinante de A es distinto de cero. Para desarrollar un procedimiento para la obtenci on de la matr z inversa se hace necesario recurrir a la denici on dada por la ecuaci on 5.33. De esta ecuaci on se puede apreciar que el c alculo de la inversa de A es equivalente a solucionar n sistemas de ecuaciones dados por: A x = bi , i = 1, 2, . . . , n (5.34) (5.33)

donde los bi corresponden a cada una de las columnas de In . El vector con los valores de las inc ognitas en cada uno de estos casos, corresponde a cada una de las columnas de la matr z inversa a determinar. Debido a que la matr z de coecientes de este sistema de ecuaciones no cambia, se puede emplear el procedimiento de descomposici on LU para el c alculo de la inversa sin que exista mucho esfuerzo computacional. En consecuencia, la determinaci on de la matr z 1 inversa A se divide en dos etapas: 1. Descomposici on LU de la matr z A 2. Soluci on de los sistemas de ecuaciones A x = bi La fase de descomposici on se determinan las matrices L y U mediante alguno de los procedimientos de descomposici on estudiados en la secci on 5.4

5.5.2.

C alculo de la Matr z Inversa

El procedimiento para la determinaci on de la matr z inversa tiene la siguiente estructura:

174
"matInv.m" 174a

TODOS DIRECTOS CAP ITULO 5. ME

InversaLU: Declaraci on de la funci on 174b InversaLU: Chequear si es matr z cuadrada 174c InversaLU: Inicializaci on de la matr z 175a InversaLU: Ciclo Principal 175b

5.5.2.1.

Declaraci on de la funci on

En este fragmento se declara la funci on matInv.m. La variable de entrada de esta funci on corresponde a la matr z A de la cual se quiere obtener la inversa.
InversaLU: Declaraci on de la funci on 174b function [AI]=matInv(A)
Fragmento referenciado en 174a.

5.5.2.2. Chequear si es matr z cuadrada Para calcular la matr z inversa se requiere que A sea una matr z cuadrada. Para determinar si esto es cierto se determina el n umero de las y columnas de esta matr z, y se almacenan en las variables nrow y ncol. Si estos valores son iguales la matr z es cuadrada, si no es asi, la funci on emite un mensaje de error y se detiene. El tama no de la matr z se almacena en la variable n para su uso en procedimientos posteriores.
InversaLU: Chequear si es matr z cuadrada 174c [nrow,ncol]=size(A); if(nrow ~= ncol) ; error(La matriz no es cuadrada); end n=nrow;
Fragmento referenciado en 174a.

5.5.2.3. Inicializaci on de la matr z La matr z inversa se va a almacenar en una matr z denominada AI , la cual en este caso se inicializa como una matr z identidad, usando la funci on eye.

5.5. INVERSA DE UNA MATR IZ


InversaLU: Inicializaci on de la matr z 175a AI=eye(n,n);
Fragmento referenciado en 174a.

175

5.5.2.4.

Ciclo Principal

El procedimiento de soluci on de los sistemas lineales de ecuaciones se encuentra implementado mediante un ciclo for, cuya estructura es la siguiente:
InversaLU: Ciclo Principal 175b for i=1:n; Ciclo Principal Inversa: Soluci on sistema lineal 175c Ciclo Principal Inversa: Almacenamiento soluci on 175d end;

Fragmento referenciado en 174a.

5.5.2.4.1. Soluci on del sistema lineal De acuerdo a lo explicado en la secci on 5.5 (ecuaciones (5.34)) el sistema lineal de ecuaciones se soluciona usando descomposici on LU. La soluci on de este se almacena en la variable sol, y d corresponde al determinante de la matr z A.
Ciclo Principal Inversa: Soluci on sistema lineal 175c [sol,d]=LUSolucion(A,AI(:,i));
Fragmento referenciado en 175b.

5.5.2.4.2. Almacenamiento de la soluci on Como se explic o en la secci on 5.5 la soluci on del sistema lineal de ecuaciones corresponde a una columna de la matr z inversa. Esta soluci on se almacena en la respectiva columna de AI .
Ciclo Principal Inversa: Almacenamiento soluci on 175d AI(:,i)=sol;
Fragmento referenciado en 175b.

176

TODOS DIRECTOS CAP ITULO 5. ME

5.5.3.

Ejemplo

Ejemplo MATLAB

(C alculo de la inversa de una matr z)

Determine la inversa de la siguiente matr z: 3 1 2 1 2 3 2 2 1 empleando MATLAB


R

Para avanzar con el procedimiento de determinarci on de la matr z inversa se hace necesario denir la matr z de inter es, lo cual se hace de la siguiente forma: >> A=[3 -1 2;1 2 3;2 -2 -1]; La funci on que permite calcular la matr z inversa se denomina matInv.m y se encuentra denida en la secci on 5.5.2. Esta funci on se usa de la siguiente forma: >> [AI]=matInv(A) de tal forma que se obtiene la matr z inversa dada por: AI = -0.5714 -1.0000 0.8571 0.7143 1.0000 -0.5714 1.0000 1.0000 -1.0000

Para corroborar si el resultado obtenido es correcto se puede realizar el producto matricial entre A y la matr z inversa obtenida AI : >> A*AI ans = 1.0000 -0.0000 -0.0000

0 1.0000 0.0000

-0.0000 0 1.0000

que como se puede ver corresponde a una matr z identidad.

DE CHOLESKY 5.6. DESCOMPOSICION

177

5.6.
5.6.1.

Descomposici on de Cholesky
Fundamentos Conceptuales

Exise otra metodolog a de descomposici on alternativa al procedimiento LU que se aplica sobre matr ces que cumplan las siguientes caracter sticas: Ser sim etricas Ser denidas positivas. La simetr a de una matr z se explic o en la denici on 14, y la segunda caracter stica se dene a continuaci on: Denici on 26 Sea A una matr z cuadrada. Se dice que A es denida positiva si se cumple: xT Ax > 0, x = 0 (5.35)

Esto es equivalente a armar que todos los valores propios de A son positivos. El procedimiento de descomposici on de Cholesky se puede denir de la siguiente forma: Denici on 27 Si A es una matr z sim etrica y denida positiva, entonces la descomposici on de Cholesky permite expresar a A de la siguiente manera: A = L LT donde L es una matr z triangular inferior (ver secci on 5.1.1.6) nica, Una caracter stica muy importante de esta descomposici on es que es u esto es, dada una matr z A que sea sim etrica y denida positiva, existe solo una matr z L para la cual se cumple la ecuaci on 5.36. Esta matr z tiene en la diagonal valores positivos. Al igual que la descomposici on LU ( ver secci on 5.4 ), la descomposici on de Cholesky se puede emplear para la soluci on de sistemas lineales de ecuaciones de la forma A x = b. Para esto se realiza la descomposici on de Cholesky A = L LT , se resuelve el sistema L d = b y luego se resuelve el segundo sistema lineal dado por LT x = d, con lo cual se obtiene el vector soluci on x. Para establecer el procedimiento de la descomposici on de Cholesky, se va a em(5.36)

178

TODOS DIRECTOS CAP ITULO 5. ME

plear un ejemplo sencillo con una matr z de 3 3 con lo cual se tiene: a11 a12 a13 l11 0 0 l11 l12 l13 a21 a22 a23 = l21 l22 0 0 l22 l23 a31 a32 a33 l31 l32 l33 0 0 l33

(5.37)

Para determinar los coecientes lij se realiza el producto entre las matrices del t ermino derecho de la ecuaci on anterior para obtener: a11 a12 a13 a21 a22 a23 = a31 a32 a33 2 (5.38) l11 l11 l21 l11 l31 2 2 l11 l21 l21 l22 l21 l31 + l22 l32 2 2 2 + l33 + l32 l11 l31 l21 l31 + l22 l32 l31 Igualando los elementos de A y L LT se obtienen 6 ecuaciones con 6 inc ognitas, las cuales se pueden simplicar si se resuelven en cierto orden. Esto quiere decir, que es necesario denir si las inc ognitas se van a despejar por las o por columnas. En este caso particular, las inc ognitas se van a despejar por columnas de tal forma que para la primera columna se tiene: 2 a11 = l11 l11 = a11 a21 = l11 l21 l21 =a21 /l11 (5.39) a31 = l11 l31 l31 =a31 /l11 Este mismo procedimiento se repite para los elementos de la segunda columna, para lo cual se hace necesario conocer algunos elementos de la primera columna (ecuaci on 5.39):
2 2 a22 = l21 + l22 2 l22 = a22 l21

(5.40)

a32 = l21 l31 + l22 l32 l32 =(a32 l21 l31 )/l22 De igual forma los valores de las inc ognitas en la tercera columna van a depender de los valores en las columnas anteriores (ecuaciones 5.39 y 5.40):
2 2 2 a33 = l31 + l32 + l33 l33 = 2 2 a33 l31 l32

(5.41)

A pesar que los resultados anteriores se obtuvieron para un ejemplo espec co de una matr z de 3 3, el procedimiento subyacente se puede generalizar ya que un elemento en la parte triangular inferior de L LT se puede expresar:
j

(L L )ij = li1 lj 1 + li2 lj 2 + . . . + lij ljj =


k=1

lik ljk ,

ij

(5.42)

DE CHOLESKY 5.6. DESCOMPOSICION E igualando este t ermino al elemento correspondiente de A se tiene:


j

179

aij =
k=1

lik ljk ,

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

j = 1, 2, . . . , n

(5.43)

en donde el rango de ndices limita los elementos a la parte triangular inferior. Para la columna 1 (j = 1) se obtiene: l11 = a11 lij = ai1 /l11 , i = 2, 3, . . . , n (5.44)

Si se contin ua en las siguientes columnas, las coecientes desconocidos en la ecuaci on 5.43 ya se han calculado, con lo cual queda:
j 1

aij =
k=1

lik ljk + lij ljj

(5.45)

Si i = j (t ermino diagonal), la soluci on es:


j 1

ljj =

ajj
k=1

2 ljk ,

j = 2, 3, . . . , n

(5.46)

y para los t erminos no diagonales:


j 1

lij =

aij
k=1

lik ljk

/ljj , (5.47)

j = 2, 3, . . . , n, i = j + 1, j + 2, . . . , n

5.6.2.

Descomposici on de Cholesky

La funci on que implementa la descomposici on de Cholesky se denomina Cholesky.m y su estructura es la siguiente:


"Cholesky.m" 179 Cholesky: Declaraci on de la funci on 180a Cholesky: Inicializaci on de variables 180b Cholesky: Ciclo Principal 181a Cholesky: Asignaci on de resultados 182a

180 5.6.2.1. Declaraci on de la funci on

TODOS DIRECTOS CAP ITULO 5. ME

La funci on Cholesky.m tiene como variable de entrada la matr z A, de tama no n n, que adem as debe ser una matr z sim etrica y denida positiva. Esta funci on tiene como salida una matr z triangular inferior L, de tama no n n para la cual se cumple: A = L LT (5.48)

Cholesky: Declaraci on de la funci on 180a function [L]=Cholesky(A)


Fragmento referenciado en 179.

5.6.2.2.

Inicializaci on de variables

En este caso particular se chequea si la matr z es cuadrada, para lo cual se emplea la funci on intr nseca size(). Esta funci on devuelve el n umero de las y columnas de la matr z A y estos valores se almacenan en las variables nrow y ncol. Se chequea que nrow sea igual a ncol y si no es as el programa imprime un mensaje de error (usando la funci on error()) y se detiene. Si la matr z es cuadrada se dene la variable n como el n umero de las.

Cholesky: Inicializaci on de variables 180b [nrow ncol]=size(A); if(nrow ~= ncol) ; error(La matriz debe ser de cuadrada); end n=nrow;
Fragmento referenciado en 179.

5.6.2.3.

Ciclo principal

En esta parte se realiza la descomposici on de Cholesky como tal. Este procedimiento se encuentra dividido en dos partes: C alculo de los elementos fuera de la diagonal para luego determinar los valores que van en la diagonal.

DE CHOLESKY 5.6. DESCOMPOSICION


Cholesky: Ciclo Principal 181a for k=1:n; Ciclo Principal Cholesky: Asignaci on elementos fuera diagonal 181b Ciclo Principal Cholesky: Asignaci on elementos diagonal 181c end;
Fragmento referenciado en 179.

181

5.6.2.3.1. Asignaci on de elementos fuera de la diagonal Para determinar los valores que est an fuera de la diagonal se emplea la ecuaci on (5.47), lo cual queda implementado de la siguiente forma:
Ciclo Principal Cholesky: Asignaci on elementos fuera diagonal 181b for i=1:k-1; suma=sum(A(i,1:i-1).*A(k,1:i-1)); A(k,i)=(A(k,i)-suma)/A(i,i); end;
Fragmento referenciado en 181a.

5.6.2.3.2. Asignaci on de elementos de la diagonal Para calcular los elementos de la diagonal se usa la ecuaci on 5.46. En este caso particular se hace necesario determinar que el valor al que se le va a tomar la ra z cuadrada se positivo, lo cual implica que la matr z A sea denida positiva. Para hacer esto el valor dentro de la ra z se almacena en la variable test y se determina si este valor es menor al 0.0 del MATLAB R (cuyo valor corresponde a eps). En el caso que la esta condici on no se cumpla, la funci on imprime en pantalla un mensaje de error y se detiene.
Ciclo Principal Cholesky: Asignaci on elementos diagonal 181c suma=sum(A(k,1:k-1).^2); test=A(k,k)-suma; if(test<eps) ; error(Matriz no es definida positiva); else A(k,k)=sqrt(A(k,k)-suma); end;
Fragmento referenciado en 181a.

182 5.6.2.4. Asignaci on de Resultados

TODOS DIRECTOS CAP ITULO 5. ME

Los resultados de la descomposici on se almacenaban de forma temporal en la matr z A, de tal forma que se extrae la matr z triangular inferior L usando la funci on intr nseca tril() y se termina el procedimiento.
Cholesky: Asignaci on de resultados 182a L=tril(A);
Fragmento referenciado en 179.

5.6.3.

Soluci on de sistemas de ecuaciones por medio de descomposici on de Cholesky

La funci on para realizar la soluci on de sistemas de ecuaciones lineales por medio de la descomposici on de Cholesky se denomina CholeskySol.m y su estructura es la siguiente:
"CholeskySol.m" 182b CholeskySol: Declaraci on de la funci on 182c CholeskySol: Inicializaci on de variables 183a CholeskySol: Descomposici on de Cholesky 183b CholeskySol: Sustituci on hacia adelante 183c CholeskySol: Sustituci on hacia atr as 184

5.6.3.1.

Declaraci on de la funci on

Las variables de entrada de esta funci on corresponden a la matr z de coecientes A (n n) y al vector de t erminos independientes b (n 1) y la funci on devuelve un vector x (n 1) con la soluci on del sistema.
CholeskySol: Declaraci on de la funci on 182c function [x]=CholeskySol(A,b)
Fragmento referenciado en 182b.

5.6.3.2.

Inicializaci on de variables

En este caso particular es necesario denir las siguientes variables:

DE CHOLESKY 5.6. DESCOMPOSICION

183

n: n umero de ecuaciones del sistema lineal. Este se obtiene mediante la funci on length() aplicada en el vector b d: vector de n 1 en donde se va a almacenar la soluci on temporal del sistema lineal de ecuaciones.
CholeskySol: Inicializaci on de variables 183a n=length(b); d=zeros(n,1);
Fragmento referenciado en 182b.

5.6.3.3.

Descomposici on de Cholesky

La descomposici on de Cholesky se realiza por medio de la funci on denida en la secci on anterior. Esta funci on devuelve la matr z triangular inferior L y en este caso particular, la matr z triangular superior U se dene como la trasnpuesta de L.
CholeskySol: Descomposici on de Cholesky 183b L=Cholesky(A); U=L;
Fragmento referenciado en 182b.

5.6.3.4.

Sustituci on hacia adelante

Con la matr z triangular inferior se plantea un sistema lineal de ecuaciones como el de la ecuaci on 5.31. Nuevamente la soluci on de este sistema se almacena en el vector d.
CholeskySol: Sustituci on hacia adelante 183c d=b; d(1,1)=d(1,1)/L(1,1); for k=2:n; d(k,1)=(d(k,1)-L(k,1:k-1)*d(1:k-1))/L(k,k); end;
Fragmento referenciado en 182b.

184 5.6.3.5. Sustituci on hacia atr as

TODOS DIRECTOS CAP ITULO 5. ME

Una vez se ha obtenido la soluci on parcial d, se plantea un nuevo sistema lineal de ecuaciones como el descrito en la ecuaci on 5.32. La soluci on de este nuevo sistema se almacena en el vector x y constituye la soluci on del sistema lineal de ecuaciones.
CholeskySol: Sustituci on hacia atr as 184 x=d; for k=n:-1:1; x(k,1)=(x(k,1) - U(k,k+1:n)*x(k+1:n,1))/U(k,k); end;
Fragmento referenciado en 182b.

DE CHOLESKY 5.6. DESCOMPOSICION

185

5.6.4.

Ejemplos
R

Ejemplo MATLAB

(Descomposici on de Cholesky)
R

Realice en MATLAB matr z:

la descomposici on de Cholesky de la siguiente 4 2 2 A = 2 2 4 2 4 11

Para realizar este procedimiento es necesario denir la matr z A lo cual se puede hacer de la siguiente forma: >>A=[4 -2 2;-2 2 -4;2 -4 11]; La descomposici on de Cholesky se encuentra implementada en la funci on Cholesky.m explicada en la secci on 5.6.1, y para este caso particular se realiza de la siguiente forma: >>L=Cholesky(A); El resultado corresponde a una matr z triangular inferior L dada por: L = 2 -1 1 0 1 -3 0 0 1

La matr z triangular superior corresponde a la transpuesta de la matr z obtenida anteriormente, con lo cual se tiene: >>U=L; Con el n de corroborar si la descomposici on fue realizada correctamente, calculamos el producto de la matr z triangular inferior y la superior: >> L*U ans = 4 -2 2

-2 2 -4

2 -4 11

de donde resulta claro que se obtiene la matr z original.

186 Ejemplo MATLAB


R

TODOS DIRECTOS CAP ITULO 5. ME (Soluci on de un sistema lineal de ecuaciones con Desc. de Cholesky)

Resuelva en MATLAB R el siguiente sistema lineal de ecuaciones: 4 2 2 x1 1 2 2 4 x2 = 1 2 4 11 x3 1 La matr z de coecientes de este sistema se dene de la siguiente forma: >>A=[4 -2 2;-2 2 -4;2 -4 11]; y el vector con los t erminos independientes: >>b=ones(3,1); l procedimiento de soluci E on de sistemas lineales de ecuaciones usando el m etodo de Cholesky se explica en la secci on 5.6.3 y se encuentra implementado en la funci on CholeskySol.m . Para este caso particular la soluci on del sistema se puede obtener de la siguiente forma: >>[x]=CholeskySol(A,b) en donde el vector soluci on x est a dado por: >> x x = 6.0000 16.5000 5.0000

5.7. MATRICES DE COEFICIENTES BANDEADAS

187

5.7.
5.7.1.
5.7.1.1.

Matrices de Coecientes Bandeadas


Sistemas Tridiagonales
Fundamentos conceptuales

Un sistema de ecuaciones tridiagonal es aquel cuya matr z de coecientes A tiene la siguiente forma: d1 e1 0 0 0 c2 d2 e2 0 0 0 c3 d3 e3 0 A= 0 0 c d (5.49) 0 4 4 . . . . . .. . . . . . . . . . . . 0 0 0 cn1 dn lo cual implica que la matr z A es de tipo disperso. Con el n de facilitar la denici on del sistema lineal de ecuaciones y para la determinaci on de su correspondiente soluci on, la denici on de este tipo de sistemas se hace especicando tres vectores: d1 c1 e 1 d2 c2 e2 . . c= . (5.50) d= . e= . . . . . dn1 cn1 en1 dn Para la soluci on del sistema lineal de ecuaciones en donde la matr z de coecientes A es de tipo tridiagonal, se va a emplear una versi on modicada de la descomposici on LU (secci on 5.4.3). Recordemos que este procedimiento consiste en realizar la eliminaci on de variables que se encuentren por debajo del elemento del pivot, que en este caso particular corresponde a solamente un u nico valor (con lo cual el procedimiento es muy eciente a nivel computacional). Este procedimiento se puede expresar de la siguiente forma: Fila (k) Fila (k) multiplicador Fila (k-1) donde el multiplicador est a dado por: multiplicador = (ck1 /dk1 ) (5.52) (5.51)

Los diferentes valores de multiplicadores se almacenan en el vector c en la posici on ck1 conh lo cual se dene la matr z L: ck1 = (ck1 /dk1 ) (5.53)

188 5.7.1.2.

TODOS DIRECTOS CAP ITULO 5. ME Descomposici on LU de sistemas tridiagonales

La funci on que implementa este procedimiento se denomina LUdec3.m y tiene la siguiente estructura:

"LUdec3.m" 188a LU Sistemas Tridiagonales: Declaraci on funci on 188b LU Sistemas Tridiagonales: Inicializaci on variables 188c LU Sistemas Tridiagonales: Ciclo principal 189a

5.7.1.2.1. Declaraci on de la funci on Las variables de entrada de esta funci on son los vectores c,d y e que almacenan los valores que denen la matr z tridiagonal (ecuaci on 5.50). Las variables de salida de esta funci on son los mismos vectores de entrada que han sido modicados y por lo tanto la funci on queda denida de la siguiente forma:
LU Sistemas Tridiagonales: Declaraci on funci on 188b function [c,d,e]=LUdec3(c,d,e)
Fragmento referenciado en 188a.

5.7.1.2.2. Inicializaci on de variables Para realizar la descomposici on LU de una matr z tridiagonal es necesario determinar el n umero de ecuaciones que conforman dicho sistema, variable que se va a almacenar en n:

LU Sistemas Tridiagonales: Inicializaci on variables 188c n=length(d);


Fragmento referenciado en 188a.

5.7.1.2.3. Ciclo principal La descomposici on LU de una matr z tridiagonal se implementa mediante un ciclo for, dentro del cual se dene el valor del multiplicador (ecuaci on 5.52) que en este caso particular se almacena en la variable lambda (ecuaci on 5.53). Este lambda se almacena en el vector c, mientras que el resultado del paso de la eliminaci on se almacena en el vector d:

5.7. MATRICES DE COEFICIENTES BANDEADAS


LU Sistemas Tridiagonales: Ciclo principal 189a for k=2:n; lambda=c(k-1,1)/d(k-1,1); d(k,1)=d(k,1)-lambda*e(k-1,1); c(k-1,1)=lambda; end;
Fragmento referenciado en 188a.

189

5.7.1.3.

Soluci on de sistemas tridiagonales

Una vez se ha realizado la descomposici on LU de la matr z tridiagonal con la funci on LUdec3 es posible avanzar hacia la soluci on del sistema lineal de ecuaciones. Este es el objetivo de la funci on LUsol3 cuya estructura es la siguiente:
"LUsol3.m" 189b Soluci on Sistemas Tridiagonales: Declaraci on funci on 189c Soluci on Sistemas Tridiagonales: Inicializaci on variables 190a Soluci on Sistemas Tridiagonales: Descomposici on LU 190b Soluci on Sistemas Tridiagonales: Sustituci on hacia adelante 190c Soluci on Sistemas Tridiagonales: Sustituci on hacia atr as 191

5.7.1.3.1. Declaraci on de la funci on cedimiento son las siguientes:

Las variables de entrada de este pro-

c, d, e vectores que denen la matr z tridiagonal de coecientes (ver ecuaci on 5.50) b vector con los t erminos independientes del sistema lineal de ecuaciones La variable de salida corresponde al vector x que es donde se almacena la soluci on del sistema.
Soluci on Sistemas Tridiagonales: Declaraci on funci on 189c function [x]=LUsol3(c,d,e,b)
Fragmento referenciado en 189b.

5.7.1.3.2. Inicializaci on de variables La soluci on del sistema lineal con matr z de coecientes tridiagonal requiere conocer el n umero de ecuaciones del sistema, el cual se determina como el n umero de elementos del vector d mediante la funci on length y el cual se almacena en la variable n.

190

TODOS DIRECTOS CAP ITULO 5. ME

Soluci on Sistemas Tridiagonales: Inicializaci on variables 190a n=length(d);

Fragmento referenciado en 189b.

5.7.1.3.3. Descomposici on LU Para obtener la soluci on del sistema lineal de ecuaciones cuya matr z de coecientes es de tipo tridiagonal se hace necesario realizar la descomposici on LU de dicha matr z, lo cual se hace mediante el siguiente fragmento de c odigo:

Soluci on Sistemas Tridiagonales: Descomposici on LU 190b [c,d,e]=LUdec3(c,d,e);


Fragmento referenciado en 189b.

5.7.1.3.4. Sustituci on hacia delante Se hace necesario denir un vector y en donde se va a almacenar la soluci on obtenida en el procedimiento de sustituci on hacia delante. Este procedimiento se realiza de la forma usual, deniendo el multiplicador y almacenando los resultados en el vector y :

Soluci on Sistemas Tridiagonales: Sustituci on hacia adelante 190c y(1,1)=b(1,1); for k=2:n; y(k,1)=b(k,1)-c(k-1,1)*y(k-1,1); end;
Fragmento referenciado en 189b.

5.7.1.3.5. Sustituci on hacia atr as Una vez se ha realizado la sustituci on hacia delante, la soluci on del sistema lineal de ecuaciones especicado inicialmente se obtiene mediante un procedimiento de sustituci on hacia atr as y el resultado se almacena en el vector x.

5.7. MATRICES DE COEFICIENTES BANDEADAS


Soluci on Sistemas Tridiagonales: Sustituci on hacia atr as 191 x(n,1)=y(n,1)/d(n,1); for k=n-1:-1:1; x(k,1)=(y(k,1)-e(k,1)*x(k+1,1))/d(k,1) end;
Fragmento referenciado en 189b.

191

192 5.7.1.4. Ejemplos


R

TODOS DIRECTOS CAP ITULO 5. ME

Ejemplo MATLAB

(Descomposici on LU de una matr z tridiagonal)


R

Realice en MATLAB diagonal:

la descomposici on LU de la siguiente matr z tri 2 1 0 0 0 1 2 1 0 0 0 1 2 1 0 0 0 1 2 1 0 0 0 1 2

A=

En la secci on 5.7.1 se explica que las matrices tridiagonales se denen especicando los valores de las diagonales que son no nulas, y las cuales se designan gen ericamente como c, d y e (ecuaciones 5.49 y 5.50). Para este caso particular estos vectores son de tipo columna y se denen de la siguiente forma: c=[-1 -1 -1 -1]; d=[2 2 2 2 2]; e=[-1 -1 -1 -1]; Para realizar la descomposici on LU de este tipo de matrices se emplea la funci on LUdec3.m denida en la secci on 5.7.1.2, y la cual se utiliza de la siguiente forma: >> [c1,d1,e1]=LUdec3(c,d,e) El resultado de la descomposici on LU de una matr z tridiagonal corresponde a una matr z L y otra matr z U cuyas diagonales tienen los siguientes valores: >> [c1 e1] -0.5000 -0.6667 -0.7500 -0.8000 d1 = 2.0000 1.5000 1.3333 1.2500 1.2000 -1.0000 -1.0000 -1.0000 -1.0000

5.7. MATRICES DE COEFICIENTES BANDEADAS Ejemplo MATLAB


R

193

(Descomposici on LU de una matr z tridiagonal)

Organizando los vectores obtenidos anteriormente se pueden denir las matrices L con la diagonal principal conformada por valores iguales a 1.0 (Descomposici on de Doolitle): 1 0 0 0 0 0.5000 1 0 0 0 0 0 . 6667 1 0 0 L= 0 0 0.7500 1 0 0 0 0 0.8000 1 mientras que para la matr z U la diagonal principal se encuentra conformada por los elementos del vector d1 y la diagonal inferior corresponde al vector c1 2.0000 1 0 0 0 0 1.5000 1 0 0 0 0 1.3333 1 0 U= 0 0 0 1.2500 1 0 0 0 0 1.2000 Ahora estas dos matrices se ingregas en MATLAB R con el n de corroborar si efectivamente estas corresponden a una descomposici on LU de la matr z A, lo cual se puede hacer mediante la siguiente l nea de c odigo: >> L*U ans = 2 -1 0 0 0

-1 2 -1 0 0

0 -1 2 -1 0

0 0 -1 2 -1

0 0 0 -1 2

194 Ejemplo MATLAB


R

TODOS DIRECTOS CAP ITULO 5. ME (Soluci on de un sistema tridiagonal)

Resuelva el siguiente sistema lineal de ecuaciones 2 1 0 0 0 x1 1 2 1 0 0 x2 A= 0 1 2 1 0 x3 = 0 0 1 2 1 x4 0 0 0 1 2 x5

1 1 1 1 1

empleando el procedimiento de descomposici on LU para matrices tridiagonales. Nuevamente la matr z de coecientes se especica deniendo los vectores de los elementos no nulos tal como se explica en la secci on 5.7.1: c=[-1 -1 -1 -1]; d=[2 2 2 2 2]; e=[-1 -1 -1 -1]; y el vector de t erminos independientes b se dene de la siguiente forma: b=ones(5,1); La soluci on de los sistemas lineales de ecuaciones con matrices de coecientes que son matrices tridiagonales se explica en la secci on 5.7.1.3 y se encuentra implementado en la funci on LUsol3.m . Para este problema particular la soluci on del sistema se puede obtener de la siguiente forma: >> [x]=LUsol3(c,d,e,b) y la soluci on obtenida en este caso est a dada por: x = 2.5000 4.0000 4.5000 4.0000 2.5000

Cap tulo 6 Soluci on de sistemas lineales de ecuaciones: M etodos iterativos


6.1. Introducci on

Los m etodos directos estudiados en el cap tulo anterior son importantes en 2 casos: Los sistemas de ecuaciones sean peque nos, es decir, si los tama nos n de los mismos no son mayores a 50. Las matrices de coecientes de dichos sistemas son de tipo denso. En general estas dos caracter sticas aparecen juntas, y en el caso en donde el sistema lineal de ecuaciones sea grande (100 100 o dimensiones mayores), la matr z de coecientes A ser a de tipo disperso. Si las matrices de coecientes son de tipo disperso la utilizaci on de un m etodo directo desperdicia tanto espacio de almacenamiento como operaciones computacionales, por lo que en muchas oportunidades la velocidad de ejecuci on de los mismos se ve seriamente afectada.

6.2.

M etodos Iterativos

La idea central de los m etodos iterativos para la soluci on de un sistema lineal de ecuaciones A x = b consiste en encontrar un vector soluci on xk lo sucientemente cercano al vector soluci on x a partir de una soluci on inicial x0 mediante la aplicaci on de una regla de actualizaci on dada.

195

196

TODOS ITERATIVOS CAP ITULO 6. ME

Una posible forma para denir dicha regla de actualizaci on consiste en suponer que la matr z de coecientes A se puede expresar como A = B + (A B) (6.1)

donde B es una matr z no singular. De acuerdo con esto el sistema lineal de ecuaciones original: Ax=b (6.2) se puede expresar como: [B + (A B)] x = b B x + (A B) x = b (6.3)

de tal forma que si se quiere despejar x debemos premultiplicar por B1 a ambos lados: B1 B x + B1 (A B) x = B1 b (6.4) con lo cual se obtiene: x + B1 (A B) x = B1 b y reorganizando para despejar x: x = B1 (B A) x + B1 b x = (I B1 A) x + B1 b (6.6) (6.5)

con lo cual resulta evidente la raz on por la cual B deber cumplir la condici on de ser no singular. Por lo tanto resolver el sistema lineal original A x = b es equivalente a resolver una ecuaci on no lineal de la forma x = g (x), la cual se puede resolver empleando el procedimiento denominado iteraci on de punto jo, en el cual la soluci on se puede obtener mediante el siguiente esquema iterativo: xk+1 = (I B1 A) xk + B1 b (6.7)

en donde para obtener la soluci on en la iteraci on k + 1 se requiere tener una aproximaci on de la soluci on en la iteraci on anterior k . La ecuaci on anterior se puede expresar de forma compacta como: xk+1 = Gxk + g (6.8)

donde G = (I B1 A) y se denomina la matr z de iteraci on y el vector 1 nico g = B b. Para poder aplicar este esquema iterativo en la pr actica, lo u que se desconoce en la ecuaci on 6.8 es denir la matr z B. Hasta el momento lo nico que se sabe de ella es que no puede ser singular, sin embargo esto no es u

TODO DE GAUSS-SEIDEL Y RELAJACION 6.3. ME

197

un criterio suciente para denirla completamente. Generalmente esta matr z depende de la matr z A, la cual se puede descomponer de la siguiente forma: A = AL + AD + AU donde AL es una matr z triangular de la forma: AL = 0 0 a21 0 . ... ... . . an1 an,n1 0 0 . . . 0 (6.9)

mientras que AD es una matr z diagonal: AD = diag (A) La matr z AU tiene la siguiente forma: 0 a12 a1n . . . . ... ... . AU = . 0 0 an1,1 0 0 0

Cada m etodo iterativo dene su propia matr z B lo que a su vez determinar la matr z de iteraci on particular G, y de ah el m etodo particular y la convergencia del mismo.

6.3.

M etodo de Gauss-Seidel y Relajaci on

El m etodo de Gauss-Seidel, es un m etodo iterativo y por lo mismo, resulta ser un m etodo bastante eciente que se aplica com unmente en problemas en donde la matr z de coecientes es de tipo diagonal dominante. Denici on 28 Se dice que una matr z A es de tipo diagonal dominante si los valores sobre las diagonales son mayores en valor absoluto que la suma de los valores absolutos de los restantes coecientes, es decir:
n

|aii | >
i=1

|aij |,

j = 1, . . . , n,

i=j

(6.10)

198

TODOS ITERATIVOS CAP ITULO 6. ME

Por ejemplo el siguiente sistema lineal de ecuaciones 10x1 + 2x2 + 3x3 = 6 x1 + 8x2 2x3 = 9 3x1 x2 7x3 = 33 se puede expresar como: 10 2 3 x1 6 1 8 2 x2 = 9 3 1 7 x3 33

(6.11)

(6.12)

Comenzamos con nuestro sistema de ecuaciones dado por la ecuaci on 5.1. De la ecuaci on 1 despejamos x1 , de la ecuaci on 2 despejemos x2 ; y as sucesivamente hasta que de la ecuaci on n despejemos xn , con lo cual se obtiene: 7.85 + 0.1x2 + 0.2x3 3 19.3 0.1x1 + 0.3x3 x2 = 7 71.4 0.3x1 + 0.2x2 x3 = 10 x1 = Si suponemos que x2 = 0, x3 = 0 entonces: x1 = 7.85 + 0 + 0 = 2.616667 3 (6.14)

(6.13)

Y este resultado, junto con x3 se reemplaza para obtener: x2 = 19.3 0.1(2.616667) + 0 = 2.794524 7 (6.15)

La primera iteraci on naliza cuando se obtiene x3 x3 = 71.4 0.3(2.616667) + 0.2(2.794524) = 7.005610 10 (6.16)

Si este procedimiento se repite se obtienen los siguientes resultados: Iteraci on 2 3 4 5 x1 2.990557 3.0000319 3.0000004 3.0000000 x2 - 2.4996247 - 2.499988 - 2.500000 -2.500000 x3 7.0002908 6.9999993 7.0000000 7.0000000 0.2095451 0.1087369 0.0001866 0.0000044

Si los valores anteriores de x1 , x2 , x3 se reemplazan nuevamente en las ecuaciones 6.13 se obtiene:

TODO DE GAUSS-SEIDEL Y RELAJACION 6.3. ME

199

b1 a22 x2 a1n xn a11 b2 a21 x1 a2n xn x2 = a22 . . . x1 = xn = bn a11 x1 ann1 xn1 ann

(6.17)

las cuales constituyen las expresiones a emplear en un esquema iterativo para la obtenci on de la soluci on. Para iniciar con dicho procedimiento seleccionamos un conjunto de valores iniciales para las variables x1 , x2 , . . . , xn . Estos valores iniciales pueden ser iguales a 0, o valores aleatorios. Con los valores iniciales de x2 , x3 , . . . , xn es posible obtener un valor actualizado para x1 empleando la expresi on de la ecuaci on 6.17. El sistema lineal de ecuaciones A x = b en notaci on escalar:
n

Aij xj = bi ,
j =1

i = 1, 2, . . . , n

(6.18)

Al extraer los t erminos xj se tiene:


n

Aii xi +
j =1 j =i

Aij xj = bi ,

i = 1, 2, . . . , n

(6.19)

Despejando xi se tiene: xi = 1 b i Aii


n

Aij xj , i = 1, 2, . . . , n (6.20)

j =1 j =i

y del cual se desprende el esquema iterativo: 1 b i xi Aii


n

j =1 j =i

Aij xj ,

i = 1, 2, . . . , n

(6.21)

Con el n de mejorar la velocidad de convergencia del m etodo, el esquema de soluci on (ecuacion 6.21) se modica teniendo en cuenta tanto la soluci on en la iteraci on k como en la iteraci on k 1. La nueva soluci on es un promedio

200 ponderado de soluci on actual y anterior: bi xi Aii


n

TODOS ITERATIVOS CAP ITULO 6. ME

Aij xj + (1 )xi , i = 1, 2, . . . , n (6.22)

j =1 j =i

donde es un factor de ponderaci on que va a controlar la contribuci on de cada una de las soluciones obtenidas hasta el momento. Se pueden considerar dos casos: < 1.0: Este opci on se conoce como la sub-relajaci on > 1.0: sobre-relajaci on El m etodo de Gauss-Seidel para la soluci on de sistemas de ecuaciones lineales se puede expresar como un m etodos iterativo en donde B = (AD + AL ) y por lo tanto la matr z de iteraci on (ecuaci on 6.8) se puede expresar como: G = I B1 A = I (AD + AL )1 (AL + AD + AR ) = (AD + AL )1 AR y el esquema iterativo completo est ar a dado por: xk+1 = (AD + AL )1 AR xk + (AD + AL )1 b (6.24)

(6.23)

Para el caso de la relajaci on, se parte de la ecuaci on anterior y sabiendo que la soluci on del sistema en una iteraci on dada xk+1 depende de la soluci on en la iteraci on actual k + 1 y de la iteraci on anterior k , de tal forma que si se dene la soluci on en la iteraci on actual como zk+1 se tiene: z+1 = (AD + AL )1 AR xk + (AD + AL )1 b (6.25)

con lo cual la soluci on del sistema usando relajaci on se puede obtener: xk+1 = (1 )xk + zk+1
1 1 = (1 )I A D (AL + AR ) xk + AD b G

(6.26)

y donde la matr z B est a dada por: B = AD 1 (6.27)

TODO DE GAUSS-SEIDEL Y RELAJACION 6.3. ME

201

6.3.1.

Soluci on de sistemas lineales de ecuaciones usando el m etodo de GaussSeidel

La soluci on de sistemas lineales de ecuaciones usando este procedimiento viene implementado en una funci on cuya estructura es la siguiente:
"GaussSeidel.m" 201a GaussSeidel: Declaraci on de la funci on 201b GaussSeidel: Inicializaci on de variables 202a GaussSeidel: Escalamiento 202b GaussSeidel: Obtener soluci on inicial 203a GaussSeidel: Ciclo Principal 203b

6.3.1.1.

Gauss-Seidel: Declaraci on de la funci on

Esta funci on tiene las siguientes variables de entrada: A: matr z de coecientes del sistema lineal de ecuaciones b: vector con los t erminos independientes del sistema lineal de ecuaciones x0 : vector de soluci on inicial (pueden ser 0s o valores aleatorios) : Par ametro que controla el nivel de relajaci on para la soluci on del sistema. Si < 1 se tiene el m etodo de sub-relajaci on, si > 1 se tiene el m etodo de sobre-relajaci on y si = 1 se tiene el m etodo de Gauss-Seidel tradicional. maxit: N umero m aximo de iteraciones errmin: error relativo m nimo para la detenci on del procedimiento iterativo Las variables de salida de esta funci on corresponden a: x: vector con la soluci on del sistema lineal de ecuaciones iter: N umero de iteraciones empleado para alcanzar la soluci on
GaussSeidel: Declaraci on de la funci on 201b function [x,iter]=GaussSeidel(A,b,x0,omega,maxit,errmin)
Fragmento referenciado en 201a.

202 6.3.1.2.

TODOS ITERATIVOS CAP ITULO 6. ME Gauss-Seidel: Inicializaci on de variables

En esta secci on se denen las siguientes variables: n almacena el n umero de ecuaciones del sistema lineal en estudio (este n umero se obtiene usando el comando length) x: esta variable corresponde a la soluci on del sistema lineal de ecuaciones y se inicializa con el vector x0 . iter: contador para el n umero de iteraciones. Este valor se inicializa en 0. err: error relativo de la soluci on actual. Este valor se inicializa en 100.
GaussSeidel: Inicializaci on de variables 202a n=length(b); x=x0; iter=0; err=100;
Fragmento referenciado en 201a.

6.3.1.3.

Escalamiento

Para comenzar a solucionar el sistema lineal de ecuaciones, los valores de los coecientes se dividen por el valor del coeciente que se encuentra en la diagonal:
GaussSeidel: Escalamiento 202b for i=1:n; temp=A(i,i); for j=1:n; A(i,j)=A(i,j)/temp; end; b(i)=b(i)/temp; end;
Fragmento referenciado en 201a.

6.3.1.4.

Obtenci on de Soluci on inicial

En esta parte se utilizan los valores de la soluci on inicial x0 y se calcula una nueva soluci on del sistema de ecuaciones.

TODO DE GAUSS-SEIDEL Y RELAJACION 6.3. ME


GaussSeidel: Obtener soluci on inicial 203a for i=1:n; suma=b(i); for j=1:n; if (i~=j); suma=suma+A(i,j)*x(j); end end; x(i)=suma; end;
Fragmento referenciado en 201a.

203

6.3.1.5.

Gauss-Seidel: Ciclo principal

El ciclo principal incluye las operaciones m as importantes del procedimiento de Gauss-Seidel. Estas son:

Actualizaci on de la soluci on: en la cual se propone una nueva soluci on a partir de la soluci on inicial o la obtenida en la iteraci on anterior.

Determinaci on del error: Con la nueva soluci on actualizada se calcula el error relativo con el n de determinar si el procedimiento ha presentado convergencia.

GaussSeidel: Ciclo Principal 203b while (iter<=maxit & err>errmin); Ciclo Principal GaussSeidel: Actualizaci on de la soluci on 204a Ciclo Principal GaussSeidel: C alculo del error e incremento de las iteraciones 204b end;

Fragmento referenciado en 201a.

6.3.1.5.1. Actualizaci on soluci on Aqu es necesario reemplazar los valores de la soluci on actual y con ellos determinar unos nuevos valores de las inc ognitas usando el procedimiento descrito por la ecuaci on 6.21

204

TODOS ITERATIVOS CAP ITULO 6. ME

Ciclo Principal GaussSeidel: Actualizaci on de la soluci on 204a for i=1:n; xold=x(i); suma=b(i); for j=1:n; if (i~=j); suma=suma-A(i,j)*x(j) end end; x(i)=omega*suma+(1.-omega)*xold; end
Fragmento referenciado en 203b.

6.3.1.5.2. C alculo del error En esta parte se calcula cual es el error relativo obtenido por la soluci on propuesta y adem as se incrementa el n umero de iteraciones del procedimiento.
Ciclo Principal GaussSeidel: C alculo del error e incremento de las iteraciones 204b

err=abs((x(i)-xold)./x(i))*100; iter=iter+1;
Fragmento referenciado en 203b.

TODO DE GAUSS-SEIDEL Y RELAJACION 6.3. ME

205

6.3.2.

Ejemplos

Ejemplo (Aplicaci on del m etodo de Gauss-Seidel) Resuelva el siguiente sistema lineal de ecuaciones: 4 1 1 x1 12 1 4 2 x2 = 1 1 2 4 x3 5 usando el m etodo de Gauss-Seidel. Para aplicar este procedimiento iterativo despejamos las inc ognitas x1 ,x2 y x3 con lo cual se obtiene: 12 + x2 x3 x1 = 4 1 + x1 2x3 x2 = 4 5 x1 + 2x2 x3 = 4 y seleccionando como soluci on inicial el vector: 0 x= 0 0 se puede calcular la primera iteraci on del m etodo de Gauss-Seidel usando las ecuaci on 6.21: 12 + 0 0 = 3.0 x1 = 4 1 + 3.0 2 0 x2 = = 0.5 4 5 3.0 + 2 0.5 x3 = = 0.75 4 La segunda iteraci on de este procedimiento nos permite obtener: 12 + 0.5 0.75 = 2.9375 4 1 + 2.9375 2 0.75 x2 = = 0.85938 4 5 2.9375 + 2 0.85938 x3 = = 0.94531 4 x1 =

206 y para la tercera iteraci on se obtiene:

TODOS ITERATIVOS CAP ITULO 6. ME

12 + 0.85938 0.94531 = 2.97852 4 1 + 2.97852 2 0.94531 x2 = = 0.96729 4 5 2.97852 + 2 0.96729 x3 = = 0.98902 4 x1 =

TODO DE GAUSS-SEIDEL Y RELAJACION 6.3. ME Ejemplo MATLAB


R

207

(Aplicaci on del m etodo de Gauss-Seidel)

Resuelva el siguiente sistema lineal de ecuaciones 4 1 1 x1 12 1 4 2 x2 = 1 1 2 4 x3 5 usando el m etodo iterativo de Gauss-Seidel en MATLAB R . Para realizar este procedimiento se procede a la denici on de la matr z de coecientes, lo cual se hace de la siguiente forma: >> A=[4 -1 1;-1 4 -2;1 -2 4]; al igual que el vector de t erminos independientes del sistema: >> b=[12 -1 5]; Debido a que el m etodo de Gauss-Seidel es de naturaleza iterativa, se hace necesario especicar una soluci on inicial x0 que en este caso es un vector cuyos elementos son iguales a 0.0: >> x0=zeros(3,1); Para solucionar este sistema lineal de ecuaciones, se va a utilizar la funci on GaussSeidel.m denida en el presente cap tulo, para la cual es necesario especicar la matr z de coecientes A, el vector de t erminos independientes b, la soluci on inicial x0, el factor que en este caso es igual a 1.0, el n umero m aximo de iteraciones 10 y el error m nimo 1.0 105 de la siguiente forma: >>[x,iter]=GaussSeidel(A,b,x0,1,100,1e-5); El resultado se obtiene en 11 iteraciones, y es el siguiente: >> x x = 3.0000 1.0000 1.0000

208 Ejemplo MATLAB


R

TODOS ITERATIVOS CAP ITULO 6. ME (Aplicaci on del m etodo de la sub-relajaci on )

Resuelva el siguiente sistema lineal de ecuaciones usando el m etodo de sub-relajaci on con un = 0.5, un m aximo de iteraciones de 100 y un error m nimo de 1.0 105 4 1 1 x1 12 1 4 2 x2 = 1 1 2 4 x3 5 Para proceder con la soluci on de este problema en MATLAB R es necesario denir la matr z de coecientes y el vector de t erminos independientes, lo cual se hace como en el ejemplo anterior. Al estar basado en el m etodo de GaussSeidel, la sub-relajaci on requiere de una soluci on inicial, la que en este caso es igual a un vector de 0.0: >> x0=zeros(3,1); El procedimiento de sub-relajaci on se encuentra implementado en la misma funci on GaussSeidel.m de tal forma que para utilizarlo se debe denir el valor del , que en este caso es 0.5. As mismo se dene el n umero m aximo de iteraciones y el error m nimo: >>omega=0.5;max_iter=100;min_err=1.0e-5; con lo cual se puede invocar la funci on respectiva >>[x,iter]=GaussSeidel(A,b,x0,omega,max_iter,min_err); Evidentemente la soluci on obtenida es la misma que en el caso de GaussSeidel: x = 3.0000 1.0000 1.0000 sin embargo esta soluci on y su respectivo valor de tolerancia se han alcanzado en 41 iteraciones, indicando que la sub-relajaci on para este problema particular tiene una velocidad de convergencia m as lenta que GaussSeidel.

TODO DE GAUSS-SEIDEL Y RELAJACION 6.3. ME Ejemplo MATLAB


R

209

(Aplicaci on del m etodo de la sobre-relajaci on)

Resuelva el siguiente sistema lineal de ecuaciones usando el m etodo de sobre-relajaci on con un = 1.5, un m aximo de iteraciones de 100 y un error m nimo de 1.0 105 4 1 1 x1 12 1 4 2 x2 = 1 1 2 4 x3 5 Para proceder con la soluci on de este problema en MATLAB R es necesario denir la matr z de coecientes y el vector de t erminos independientes, lo cual se hace como en el ejemplo anterior. Al estar basado en el m etodo de GaussSeidel, la sobre-relajaci on requiere de una soluci on inicial, la que en este caso es igual a un vector de 0.0: >> x0=zeros(3,1); El procedimiento de sobre-relajaci on se encuentra implementado en la misma funci on GaussSeidel.m de tal forma que para utilizarlo se debe denir el valor del , que en este caso es 0.5. As mismo se dene el n umero m aximo de iteraciones y el error m nimo: >>omega=0.5;max_iter=100;min_err=1.0e-5; con lo cual se puede invocar la funci on respectiva >>[x,iter]=GaussSeidel(A,b,x0,omega,max_iter,min_err); La soluci on obtenida es la misma que en el caso de GaussSeidel: x = 3.0000 1.0000 1.0000 sin embargo esta soluci on y su respectivo valor de tolerancia se han alcanzado en 26 iteraciones, indicando que la sobre-relajaci on tiene una velocidad de convergencia m as lenta que GaussSeidel, pero mayor que el m etodo de la sub-relajaci on.

210

TODOS ITERATIVOS CAP ITULO 6. ME

6.4.
6.4.1.

Gradiente Conjugado
Fundamentos conceptuales

El m etodo del gradiente conjugado es un algoritmo que se emplea para la soluci on de sistemas lineales de ecuaciones Ax = b en los cuales la matr z de coecientes A es sim etrica y denida positiva. As mismo, este m etodo generalmente se aplica cuando el sistema lineal es grande y la matr z de coecientes es de tipo disperso. En estos casos los m etodos directos como la eliminaci on gaussiana y la descomposici on LU presentan problemas de eciencia y por lo tanto este m etodo se convierte en una alternativa viable para la soluci on de este tipo de problemas. Para entender este m etodo es necesario iniciar con la denici on de vectores conjugados: Denici on 29 Se dice que dos vectores v y u son conjugados (con respecto a A) si se cumple: uT Av = 0 (6.28)

La ecuaci on 6.28 corresponde a la denici on del producto escalar de dos vectores, y de lo cual se deduce que dos vectores son conjugados entre ellos si son ortogonales, es decir, si su producto interno es igual a 0. Supongamos que se tiene una secuencia {pk } de n direcciones conjugadas (ortogonales). Entonces, los vectores que representan dichas direcciones pk se pueden considerar como una base del espacio Rn . Denici on 30 Una base B de un espacio vectorial V es un subcojunto linealmente independiente de V que genera ese espacio Vectorial. La importancia de las bases radica en que a partir de los elementos de estas es posible generar todos los elementos que conforman el espacio vectorial en cuesti on. Como ejemplo se pueden mencionar los vectores unitarios i,j y k . Como los vectores pk forman una base del espacio Rn entonces el vector soluci on x de Ax = b se puede expandir en esta base: x = 1 p1 + 2 p2 + + n pn donde los k son los coecientes de dicha expansi on. (6.29)

6.4. GRADIENTE CONJUGADO Reemplazando esta soluci on en el sistema original se tiene: Ax = 1 Ap1 + 2 Ap2 + + n Apn = b Para determinar los coecientes k premultiplicamos por pT k:
T T T T T pT k Ax = pk 1 Ap1 + pk 2 Ap2 + + pk n Apn = k pk Apk = pk b

211

(6.30)

(6.31)

y despejando k se tiene: k = pT kb T pk Apk (6.32)

Con esto se obtienen los coecientes k y se puede resolver el sistema Ax = b. El procedimiento general para aplicar este m etodo es el siguiente: Denir un conjunto de n direcciones conjugadas pk Calcular los coecientes k a partir de las mismas til para la soluci El m etodo del gradiente conjugado es una herramienta u on de sistemas lineales de ecuaciones, tales como los que aparecen en la discretizaci on de ecuaciones diferenciales parciales. Este m etodo se basa en la minimizaci on de la funci on de la norma cuadr atica, la cual est a denida como: 1 f (x) = xT Ax bT x 2 en donde se requiere que A sea sim etrica y denida positiva. Los m etodos de gradiente permite realizar la minimizaci on de la funci on f (x) partiendo de una soluci on inicial x0 , y modicando dicha soluci on: xk = xk1 + k sk (6.34) (6.33)

donde k es el incremento y sk es la direcci on de b usqueda. Debido a que xk+1 debe satisfacer el sistema lineal A x = b se tiene: A(xk + k sk ) = b y el residual se puede denir como: rk = b A xk el cual es igual a: rk = Ask (6.37) (6.36) (6.35)

212

TODOS ITERATIVOS CAP ITULO 6. ME

Para despejar premultiplicamos a ambos lados por sT k con lo cual se obtiene: k = sT k rk T sk Ask (6.38)

Sin embargo a un queda por determinar sk . Para esto se selecciona la direcci on de mayor inclinaci on en cada punto, la cual es igual a f = rk La direcci on de b usqueda m as apropiada corresponde a: sk+1 = rk+1 + k sk de tal forma que: k = rT k+1 Ask sT k Ask (6.40) (6.39)

6.4.2.

Interpretaci on gr aca del m etodo del Gradiente Conjugado

6.1 Con el n de entender mejor el m etodo del gradiente conjugado, se va a presentar de forma gr aca. Suponga que se quiere resolver el siguiente sistema lineal de ecuaciones: 2 2 1 3 x1 x2 = 3 5 (6.41)

empleando el m etodo del gradiente conjugado. La soluci on de este sistema es: x= 1 1 (6.42)

Como se explic o anteriormente, este m etodo de soluci on se basa en la minimizaci on de la Norma cuadr atica (ver ecuaci on 6.33), la cual una vez calculada se representa mediante contornos en la gura 6.1. La soluci on del sistema corresponde al punto en donde dicha funci on es m nima. En este caso particular se asume que la soluci on inicial corresponde al vector: x0 = 4 3

La losof a del m etodo consiste en descender por dicha supercie a partir de una soluci on inicial x0 , estableciendo un conjunto de direcciones conjugadas (perpendiculares u ortogonales) para llegar al m nimo de la funci on de norma cuadr atica. Para esto es necesario establecer la denominada direcci on de b usqueda sk , as como tambi en la distancia que hay que moverse en dicha direcci on k . Una vez se han determinado estos dos valores la nueva soluci on del

6.4. GRADIENTE CONJUGADO

213

sistema lineal de ecuaciones est a dado por la ecuaci on 6.34. Esta nueva soluci on representa otro punto sobre la supercie de la norma cuadr atica y aqu se aplica nuevamente el procedimiento, se determinar una nueva direcci on de b usqueda s1 y se calcula cuanto hay que moverse en esta a1 , con lo cual se dene una nueva soluci on que corresponde a x2 . Este procedimiento se repite hasta que se haya encontrado un punto para el cual la norma del vector residual rk sea menor a la establecida inicialmente, en cuyo caso se dice que se ha encontrado la soluci on del sistema lineal de ecuaciones. Este procedimiento se encuentra representado gr acamente en la gura 6.1, en donde la soluci on del sistema se encuentra representada por el punto de color negro.

10

80 70

60

50

40
30

100

90

0 3 9 80 0 2 7
1

50
60

40

30

20
20 15
8

15

80

10
70

40
50

30 20 15
4
10

10 86

4
2

6
60

30
1

15

20

86

10

50

40

30

20

10

0 2

10

15

20

2
4

8
30
10

6 8
4 3

6
8

5 5

10
0

15
1

20
2 3 4

40
50
5 0

Figura 6.1: Soluci on de un sistema lineal de ecuaciones usando gradiente conjugado

214

TODOS ITERATIVOS CAP ITULO 6. ME

6.4.3.

Soluci on de sistemas de ecuaciones lineales por medio del Gradiente Conjugado

La estructura de la funci on que implementa el m etodo del gradiente conjugado es la misma de cualquier m etodo iterativo, y es la siguiente:
"GradienteConjugado.m" 214a GradienteConj: declaraci on de la funci on 214b GradienteConj: Inicializaci on de variables 215a GradienteConj: Ciclo principal 215b

6.4.3.1.

Declaraci on de la funci on

La funci on que implementa el gradiente conjugado tiene las siguientes variables de entrada: x0: vector de n 1 con la soluci on inicial del sistema (pueden ser 0 o n umeros aleatorios). A: matr z de coecientes del sistema. de tama no n n. b: vector de n 1 con los t erminos independientes del sistema en estudio. itmax: n umero m aximo de iteraciones errmin: error m nimo que debe alcanzar la soluci on para ser considerada como satisfactoria. Las variables de salida son las siguientes: x: vector de n 1 con la soluci on del sistema er: vector con el error incurrido en cada iteraci on par: vector con los valores de y obtenidos en cada iteraci on iter: n umero de iteraciones requeridas para obtener la soluci on.
GradienteConj: declaraci on de la funci on 214b function [x,er,par,iter]=GradienteConjugado(x0,A,b,itmax,errmin)
Fragmento referenciado en 214a.

6.4. GRADIENTE CONJUGADO 6.4.3.2. Inicializaci on de variables

215

Para realizar los diferentes c alculos que requiere la aplicaci on del m etodo del gradiente conjugado es necesario inicializar las siguientes variables: r: vector de n 1 con el residual. s: iter: contador para las iteraciones err: variable para almacenar el error relativo de la iteraci on actual El vector soluci on x se inicializa con el valor de la soluci on inicial.
GradienteConj: Inicializaci on de variables 215a r=b-A*x0; s=r; iter=0; err=100; x=x0;
Fragmento referenciado en 214a.

6.4.3.3.

Ciclo principal

El m etodo del gradiente conjugado al ser un m etodo iterativo requiere de una regla de actualizaci on que se aplica de forma repetida. Ya que no hay manera de saber cuantas iteraciones se requieren para que se presente convergencia a la soluci on deseada, este procedimiento emplea un ciclo while, la estructura del mismo es la siguiente:
GradienteConj: Ciclo principal 215b while ((err>=errmin) & (iter <= itmax)); Ciclo Principal GradienteConj: C alculo del 216a Ciclo Principal GradienteConj: Actualizaci on de la soluci on 216b Ciclo Principal GradienteConj: C alculo del residuo 216c Ciclo Principal GradienteConj: Determinaci on de direcci on de b usqueda 216d Ciclo Principal GradienteConj: Calculo de error e incrementar iteraciones 217 end;
Fragmento referenciado en 214a.

216

TODOS ITERATIVOS CAP ITULO 6. ME

6.4.3.3.1. C alculo del El valor de corresponde al valor de los coecientes de la expansi on de la soluci on
Ciclo Principal GradienteConj: C alculo del 216a alpha=(s*r)/(s*A*s);
Fragmento referenciado en 215b.

6.4.3.3.2. Actualizaci on de la soluci on La nueva soluci on se calcula a partir de la soluci on anterior xk y de la direcci on de b usqueda sk :
Ciclo Principal GradienteConj: Actualizaci on de la soluci on 216b x=x+alpha*s;
Fragmento referenciado en 215b.

6.4.3.3.3. C alculo del residuo Una vez se ha calculado la nueva soluci on es posible determinar el valor del vector residual:
Ciclo Principal GradienteConj: C alculo del residuo 216c r=b-A*x;
Fragmento referenciado en 215b.

6.4.3.3.4. Determinaci on de direcci on de b usqueda Con el vector residual se calcula la nueva direcci on para avanzar hacia la soluci on del sistema lineal, para lo cual se determina el valor de k que corresponde a un factor de correcci on que asegura que la nueva direcci on sea perpendicular a al anterior:
Ciclo Principal GradienteConj: Determinaci on de direcci on de b usqueda 216d bet=-(r*A*s)/(s*A*s); s=r+bet*s;
Fragmento referenciado en 215b.

6.4.3.3.5. Error e incremento de iteraciones El error relativo se calcula como la norma del vector residual, y con esto se puede determinar si el procedimiento ha presentado convergencia:

6.4. GRADIENTE CONJUGADO


Ciclo Principal GradienteConj: Calculo de error e incrementar iteraciones 217 err=abs(max(sum(r.*r))); iter=iter+1; er(iter,1)=err; par(iter,1)=alpha; par(iter,2)=bet;
Fragmento referenciado en 215b.

217

218

TODOS ITERATIVOS CAP ITULO 6. ME

6.4.4.

Ejemplos

Ejemplo (Soluci on de sistema de ecuaciones lineales usando GC) Resuelva el siguiente sistema lineal de ecuaciones diente conjugado: 4 1 1 x1 1 4 2 x2 = 1 2 4 x3 Inicializaci on 0 x0 = 0 0 uasndo el m etodo del gra 12 1 5

calcule el residuo r = b Ax0 0 12 12 4 1 1 = 1 1 4 2 0 = 1 5 1 2 4 0 5 la direcci on de b usqueda queda denida como: 12 s0 = r0 = 1 5 Para calcular el incremento en la direcci on de b usqueda se requiere 4 1 1 12 54 As0 = 1 4 2 1 = 26 1 2 4 5 34 de tal forma que el valor de dicho incremento es igual a: 0 = 122 + (1)2 + 52 sT 0 r0 = = 0.20142 12(54) + (1)(26) + 5(34) sT 0 As0

la nueva soluci on est a dada por: 0 12 2.41704 x1 = x0 + 0 s0 = 0 + 0.20142 1 = 0.20142 0 5 1.00710

6.4. GRADIENTE CONJUGADO y el residuo para esta nueva aproximaci on est a dado por:

219

r1 = b Ax1 12 4 1 1 2.41704 5.59656 = 1 1 4 2 0.20142 = 16.05980 5 1 2 4 1.00710 10.21760 1.12332(54) + 4.23692(26) 1.84828(34) rT 1 As0 = = 0.133107 T 12(54) + (1)(26) + 5(34) s0 As0

0 =

1.12332 12 2.72076 s1 = r1 + 0 s0 = 4.23692 + 0.133107 1 = 4.10380 1.84828 5 1.18268 Iteraci on 1 El incremento en la direcci on de b usqueda es igual a: 1 = sT 1 r1 T s1 As1 2.72076(1.12332) + 4.10380(4.23692) + (1.18268)(1.84828) = 2.72076(5.59656) + 4.10380(16.05980) + (1.18268)(10.21760) = 0.24276

2.41704 2.72076 3.07753 x2 = x1 + 1 s1 = 0.20142 + 0.24276 4.10380 = 0.79482 1.00710 1.18268 0.71999 12 4 1 1 3.07753 r2 = b Ax2 = 1 1 4 2 0.79482 5 1 2 4 0.71999 rT 2 As1 sT 1 As1 (0.23529)(5.59656) + 0.33823(16.05980) + 0.63215(10.21760) = 2.72076(5.59656) + 4.10380(16.05980) + (1.18268)(10.21760) = 0.0251452

1 =

0.23529 2.72076 0.166876 s2 = r2 +1 s1 = 0.33823 +0.0251452 4.10380 = 0.441421 0.63215 1.18268 0.602411

220 Iteraci on 2

TODOS ITERATIVOS CAP ITULO 6. ME

2 =

rT 2 s2 T s2 As2 (0.23529)(0.166876) + 0.33823(0.441421) + 0.63215(0.602411) = (0.166876)(0.506514) + 0.441421(0.727738) + 0.602411(1.359930) = 0.46480

3.07753 0.166876 2.99997 x3 = x2 + 2 s2 = 0.79482 + 0.46480 0.441421 = 0.99999 0.71999 0.602411 0.99999

6.4. GRADIENTE CONJUGADO Ejemplo MATLAB


R

221

(Soluci on de sistema de ecuaciones lineales usando GC)

Resuelva el siguiente sistema lineal de ecuaciones 4 1 1 x1 12 1 4 2 x2 = 1 1 2 4 x3 5 usando el m etodo del Gradiente Conjugado en MATLAB inicial de 0.
R

con una soluci on

Para proceder con la soluci on de este problema se hace necesario denir la matr z de coecientes, lo cual se hace de la siguiente forma: A=[4 -1 1;-1 4 -2;1 -2 4]; junto con el vector de t erminos independientes: b=[12 -1 5]; El vector de soluci on inicial se dene de la siguiente manera: x0=zeros(3,1); y el m etodo del Gradiente conjugado se encuentra implementado en la funci on GradienteConjugado.m , el cual en este caso se ejecuta para un m aximo de 100 iteraciones y con un error m nimo de 1.0 105 : [x,er,par,iter]=GradienteConjugado(x0,A,b,100,1.0e-5); con el cual se obtiene la soluci on en un n umero de iteraciones igual a: iter = 3 siendo la soluci on obtenida: x = 3.0000 1.0000 1.0000

222

TODOS ITERATIVOS CAP ITULO 6. ME

6.5.
6.5.1.

Gradiente Conjugado Precondicionado


Fundamentos conceptuales

La gran mayor a de los sistemas lineales que aparecen de la discretizaci on de las ecuaciones diferenciales parciales se encuentran mal condicionados y por lo tanto su soluci on presentan problemas de estabilidad num erica. En estos casos til la utilizaci resulta u on de un precondicionador de tal forma que el sistema se pueda resolver de forma m as r apida.

Denici on 31 Un precondicionador es una matr z P tal que P1 A tiene un n umero de condici on menor que A de tal forma que al resolver el sistema lineal de ecuaciones dado por P1 Ax = b es mucho m as eciente que la soluci on del sistema original Ax = b Existen diferentes tipos de precondicionador entre los cuales se pueden mencionar: Precondicionador de Jacobi corresponde a una matr z diagonal D con los elementos de la diagonal de A, es decir: P = diag (A) (6.43) Este precondicionador tiene la ventaja de ser f acil de denir, y como es una matr z diagonal, su inversa es muy sencillo de calcular. Precondicionador Diagonal este se dene a patir del valor de la norma vectorial de los coecientes de una ecuaci on particular: P = ||Ai ||, i = 1, . . . , n (6.44)

Precondicionador de Gauss-Seidel :La aplicaci on de este precondicionador se basa en la siguiente descomposici on: A = L + D + LT (6.45) donde L que contiene la porci on triangular inferior de A y D es una matr z con los valores de la diagonal de A. P = (D + L)D1 (D + LT ) (6.46)

Precondicionador de Relajaci on Sucesiva Este precondicionador est a basado en la descomposici on dada por la ecuaci on (6.45) y se dene por: P= D +L D 1 2 D + LT (6.47)

donde es el par ametro de relajaci on y [0, 2]

6.5. GRADIENTE CONJUGADO PRECONDICIONADO

223

6.5.2.

Aplicaci on del m etodo del Gradiente conjugado precondicionado

La funci on que implementa el procedimiento de gradiente conjugado precondicionado para la soluci on de los sistemas de ecuaciones lineales se denomina PCG.m y tiene la siguiente estructura:
"PCG.m" 223a GradienteConjugadoPrecond: Declaraci on de la funci on 223b GradienteConjugadoPrecond: Denici on del Precondicionador 224a GradienteConjugadoPrecond: Inicializaci on de variables 224b GradienteConjugadoPrecond: Ciclo Principal 224c

6.5.2.1.

Declaraci on de la funci on

Las variables de entrada de esta funci on son las siguientes: x0: vector de la soluci on inicial del problema particular. Tama no n 1. A: matr z de tama no n n con los coecientes del sistema b: vector de tama no n 1 con los t erminos independientes del sistema a resolver opcion: variable para denir la opci on de precondicionamiento itmax: n umero m aximo de iteraciones errmin: error m nimo para el cual una soluci on se considera aceptable. Las variables de salida son: x: vector de tama no n 1 con la soluci on del sistema lineal de ecuaciones iter: variable que almacena el n umero de iteraciones que se necesitaron para llegar a la soluci on.
GradienteConjugadoPrecond: Declaraci on de la funci on 223b function [x,iter]=PCG(x0,A,b,opcion,itmax,errmin)
Fragmento referenciado en 223a.

224 6.5.2.2.

TODOS ITERATIVOS CAP ITULO 6. ME Denici on del precondicionador

De acuerdo al valor de opcion se dene la matr z de precondicionamiento por medio de la funci on denominada precondicionador.m :
GradienteConjugadoPrecond: Denici on del Precondicionador 224a M=precondicionador(A,opcion);
Fragmento referenciado en 223a.

6.5.2.3.

Inicializaci on de variables

En este fragmento se denen las variables que van a controlar el procedimiento de obtenci on de la soluci on del sistema lineal de ecuaciones: iter: variable contadora de las iteraciones err: variable para almacenar el error relativo de la soluci on obtenida.
GradienteConjugadoPrecond: Inicializaci on de variables 224b iter=0; err=100;
Fragmento referenciado en 223a.

6.5.2.4.

Ciclo principal

Al ser un m etodo iterativo, el gradiente conjugado precondicionado se implementa mediante un ciclo while cuya estructura es la siguiente:
GradienteConjugadoPrecond: Ciclo Principal 224c while (err>=errmin & iter<=itmax); Ciclo Principal PCG: C alculo del 225a Ciclo Principal PCG: Actualizaci on de la soluci on 225b Ciclo Principal PCG: C alculo del residuo 225c Ciclo Principal PCG: Actualizaci on direcci on de b usqueda 225d Ciclo Principal PCG: Calculo de error e incrementar iteraciones 226a end;
Fragmento referenciado en 223a.

6.5. GRADIENTE CONJUGADO PRECONDICIONADO

225

6.5.2.4.1. C alculo del El valor del que representa la magnitud de la modicaci on que se hace en la direcci on de b usqueda se calcula de la siguiente forma:
Ciclo Principal PCG: C alculo del 225a alpha=(rold*inv(M)*rold)/(s*A*s);
Fragmento referenciado en 224c.

6.5.2.4.2. Actualizaci on de la soluci on Una vez calculado el se puede modicar la soluci on inicial de la siguiente forma:
Ciclo Principal PCG: Actualizaci on de la soluci on 225b x=x+alpha*s;
Fragmento referenciado en 224c.

6.5.2.4.3. C alculo del residuo Con la nueva aproximaci on de la soluci on del sistema se determina su resido para juzgar su calidad:
Ciclo Principal PCG: C alculo del residuo 225c r=rold-alpha*A*s;
Fragmento referenciado en 224c.

6.5.2.4.4.

Actualizaci on direcci on de b usqueda

Ciclo Principal PCG: Actualizaci on direcci on de b usqueda 225d bet=-(r*inv(M)*r)/(rold*A*rold); s=inv(M)*r+bet*s;

Fragmento referenciado en 224c.

6.5.2.4.5.

C alculo de error e incremento de iteraciones

226

TODOS ITERATIVOS CAP ITULO 6. ME

Ciclo Principal PCG: Calculo de error e incrementar iteraciones 226a rold=r; err=abs(max(sum(r.*r))); iter=iter+1;
Fragmento referenciado en 224c.

6.5.3.

Funci on precondicionador

La estructura de la funci on que implementa el precondicionador es la siguiente:


"precondicionador.m" 226b Precondicionador: Declaraci on de la funci on 226c Precondicionador: Inicializaci on de variables 227a Precondicionador: Chequear la opci on de precond 227b Precondicionador: Seleccionar opci on 228a

6.5.3.1.

Declaraci on de la funci on

En este caso las variables de entrada son: A: matr z en estudio y a la cual se le quiere mejorar el n umero de condici on. opcion: opci on de precondicionamiento. En este caso existen 3 opciones que son: opcion = 1 Precondicionador de Jacobi (ver ecuaci on 6.43) opcion = 2 Precondicionador diagonal (ver ecuaci on 6.44) opcion = 3 Precondicionador de Gauss-Seidel (ver ecuaci on 6.45) opcion = 4 Precondicionador de relajaci on sucesiva (ver ecuaci on 6.47)
Precondicionador: Declaraci on de la funci on 226c function [P]=precondicionador(A,opcion)
Fragmento referenciado en 226b.

6.5. GRADIENTE CONJUGADO PRECONDICIONADO 6.5.3.2. Inicializaci on de variables

227

Las variables que se deben inicializar en este caso para controlar el procedimiento de obtenci on de la soluci on son las siguientes: n: n umero de ecuaciones del sistema A x = b P : matr z de precondicionamiento. Este es de tama no n n y se inicializa en 0.0. D: matr z que contiene los valores de la diagonal de A L: matr z triangular que contiene todos los elementos de la porci on triangular de A excepto los valores de la diagonal.
Precondicionador: Inicializaci on de variables 227a [nrow ncol]=size(A); if(nrow ~=ncol) then error(La matriz debe ser cuadrada); end n=nrow; P=zeros(n,n); D=diag(diag(A)); L=tril(A)-D;
Fragmento referenciado en 226b.

6.5.3.3.

Chequear opci on

En este fragmento se determina si la variable opcion, que controla el tipo de precondicionamiento realizado, es v alida; es decir; si es mayor que 0 y menor a 4:
Precondicionador: Chequear la opci on de precond 227b if(opcion<=0 | opcion>4) then error(La opcion de precondicionamiento seleccionada no es correcta); end
Fragmento referenciado en 226b.

6.5.3.4.

Seleccionar opci on

Una vez la variable opcion se ha determinado que es correcta se procede a denir la matr z de precondicionamiento respectiva:

228

TODOS ITERATIVOS CAP ITULO 6. ME

Precondicionador: Seleccionar opci on 228a switch opcion case 1 Precondicionador de Jacobi 228b case 2 Precondicionador Diagonal 228c case 3 Precondicionador de Gauss-seidel 229a case 4 Precondicionador de Relajaci on Sucesiva 229b end

Fragmento referenciado en 226b.

6.5.3.4.1. Precondicionador de Jacobi El precondicionador de Jacobi est a denido como la matr z diagonal formada con los elementos de la diagonal de la matr z A:

Precondicionador de Jacobi 228b P=D; % Precondicionamiento de Jacobi


Fragmento referenciado en 228a.

6.5.3.4.2. Precondicionador Diagonal El precondicionador diagonal est a denido como la matr z diagonal formada con los valores de la norma del vector formado por los coecientes de cada ecuaci on:
Precondicionador Diagonal 228c for i=1:1:n; P(i,i)=norm(A(i,:),2); end;
Fragmento referenciado en 228a.

6.5.3.4.3. Precondicionador de Gauss-Seidel El precondicionador de GaussSeidel se calcula por medio de la expresi on dada por la ecuaci on 6.45:

6.5. GRADIENTE CONJUGADO PRECONDICIONADO


Precondicionador de Gauss-seidel 229a P = (D + L) * inv(D) * (D + L);
Fragmento referenciado en 228a.

229

6.5.3.4.4. Precondicionador de relajaci on sucesiva El precondicionador de relajaci on sucesiva est a denido por la ecuaci on 6.47
Precondicionador de Relajaci on Sucesiva 229b omega = 1.7; %Valor del parametro de relajamiento P = (D + omega*L) * inv(D) * (D + omega*L); P = P* omega/(2-omega);
Fragmento referenciado en 228a.

230

TODOS ITERATIVOS CAP ITULO 6. ME

Indice alfab etico


Algoritmo, 37 Bairstow m etodo de, 110 Bisecci on m etodo de la, 55 seno, 30 trascedental, 49 trigonom etrica, 26

Gauss-Seidel M etodo de, 197 sobrerelajaci on, 200 Condici on subrelajaci` on, 200 N umero de, 15 Gradiente Conjugado etodo de, 210 Deaci on polinomial, v ease Divisi on sint eti- M ca Laguerre Descomposici on m etodo de, 126, 134 Cholesky, 176 LU, 161 Matr z Diferencia Finita denida positiva, 176 Central, 40 densa, 146 Denici on, 39 diagonal, 141 hacia delante, 39 diagonal dominante, 197 Divisi on sint etica, 95, 109 dispersa, 146 herm tica, 141 Ecuaci on hessemberg, 145 Manning, 47 identidad, 142 Eliminaci on gaussiana inversa, 172 m etodo de, 150 sim etrica, 140, 176 pivote, 152 tipos, 140 Error Triangular inferior, 176 truncamiento, 37 triangular inferior, 144 Evaluaci on de Polinomios, 89 triangular superior, 144 Exactidud tridiagonal, 143, 186 Denici on, 5 Muller Funci on m etodo de, 100, 102 coseno, 26 Newton exponencial, 22 desventajas m etodo, 67 logaritmo natural, 33 m etodo de, 66 polinomio, 19, 36, 49, 89, 126 231

232 m etodo, interpretaci on geom etrica, 67 Pivoteo, 152 Precisi on Denici on, 5 Propagaci on del error, 44 Ra ces de funci on, 49 m etodo gr aco, 51 Raices m etodos abiertos, 50 Regla signos Descartes, 49 Secante interpretaci on geom etrica, 76 m etodo, 75 Secante Modicado m etodo, 82 Serie de Taylor, 21, 66, 110 Soluci on ecuaciones lineales Descomposici on de Cholesky, 176 descomposici on LU, 161 eliminaci on gaussiana, 150 M etodo del Gradiente Conjugado, 210 M etodo Gauss-Seidel, 199 m etodos directos, 140 m etodos iterativos, 140 Sistemas tridiagonales, 186 Stokes Ley de, 45 sustituci on hacia atr as, 149 sustituci on hacia delaten, 150 Teorema Taylor, 21 Valor Medio, 22 Transformaciones Elementales, 147

TICO INDICE ALFABE

También podría gustarte