You are on page 1of 250

An´lisis Num´rico para Ingenieros a e Civiles

Oscar Javier Garc´ ıa-Cabrejo, Edgar Mu˜ oz D´ n ıaz, Jorge Alberto Rodr´ ıguez Ordo˜ ez, David G´mez n o Villasante Nelson Obreg´n Neira o Departamento de Ingenier´ Civil ıa Facultad de Ingenier´ ıa Pontificia Universidad Javeriana Bogot´, Colombia a c 2007

R 2007 Oscar Javier Garc´ ıa-Cabrejo, Edgar Mu˜ oz D´ Jorge Alberto Rodr´ n ıaz, ıguez Ordo˜ ez, David G´mez Villasante, Nelson Obreg´n Neira, Depto. Ingenier´ Cin o o ıa vil, Pontificia Universidad Javeriana, Bogot´, Colombia. a Todos los Derechos Reservados. 5ANSI Z39.48–1984.

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´n 0.1 o Edici´n 0.1 con correcciones o Edici´n 0.1 con animaciones o Edici´n 0.2 con correcciones menores o

´ndice general I
´ndice de Archivos I ´ndice de Fragmentos I Introducci´ n o 1. Error relativo y cifras significativas 1.1. Introducci´n . . . . . . . . . . o 1.2. Error Absoluto y Relativo . . . . 1.3. Precisi´n y Exactitud . . . . . . o 1.4. Error de Redondeo . . . . . . . 1.5. Estabilidad Num´rica . . . . . . e 1.6. N´ mero de condici´n . . . . . . u o
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´n . . . . . . . . . . . . o 2.2. Serie y Teorema de Taylor . . . . . 2.2.1. Serie de Taylor . . . . . . . 2.2.2. Teorema de Taylor . . . . . 2.2.3. Funci´n Exponencial . . . . o 2.2.4. Funci´n Coseno . . . . . . . o 2.2.5. Funci´n Seno . . . . . . . . o 2.2.6. Funci´n Logaritmo natural o 2.2.7. Polinomio . . . . . . . . . . 2.3. Error de Truncamiento . . . . . . . 2.4. Diferenciaci´n Num´rica . . . . . . o e 2.5. Propagaci´n del Error . . . . . . . o 3. Soluci´ n ecuaciones no lineales o 3.1. Introducci´n . . . . . . . . o 3.2. Tipos de Ra´ ıces . . . . . . . 3.3. M´todos Abiertos . . . . . . e 3.3.1. M´todo Gr´fico . . . e a

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . . .

. . . .
I

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

II

´NDICE GENERAL I 3.3.2. M´todo de la Bisecci´n . . . . . . e o 3.4. M´todos Cerrados . . . . . . . . . . . . e 3.4.1. M´todo de Newton . . . . . . . . e 3.4.2. M´todo de la Secante . . . . . . e 3.4.3. M´todo de la Secante Modificado e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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´n de Polinomios . . . . . . . . . . . . . . . . . . . . . . o 4.1.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.1.2. Evaluaci´n de polinomios con MATLAB R . . . . . . . . . o 4.2. Deflaci´n Polinomial o Divisi´n Sint´tica . . . . . . . . . . . . . . o o e 4.2.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.2.2. Divisi´n Sint´tica de polinomios con MATLAB R . . . . . . o e 4.3. M´todo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . . . e 4.3.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.3.2. Determinaci´n de las ra´ de polinomios usando el m´too ıces e do de Muller . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. M´todo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . . . e 4.4.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.4.2. Determinaci´n de las ra´ o ıces de un polinomio usando el m´todo de Bairstow . . . . . . . . . . . . . . . . . . . . . e 4.4.3. Divisi´n Sint´tica por factor cuadr´tico . . . . . . . . . . . o e a 4.4.4. Soluci´n de la ecuaci´n cuadr´tica . . . . . . . . . . . . . o o a 4.5. M´todo de Laguerre . . . . . . . . . . . . . . . . . . . . . . . . . e 4.5.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 4.5.2. Determinaci´n de la ra´ de polinomios usando el m´too ıces e do de Laguerre . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3. Determinaci´n de todas las ra´ o ıces de un polinomio . . . . 5. M´todos Directos e 5.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 5.1.1. Tipos de Matrices . . . . . . . . . . . . . . . . . . . . . . . 5.1.2. Matrices Densas y Dispersas . . . . . . . . . . . . . . . . . 5.1.3. Transformaciones Elementales . . . . . . . . . . . . . . . 5.2. Soluci´n de sistemas triangulares . . . . . . . . . . . . . . . . . . o 5.3. Eliminaci´n Gaussiana con Pivoteo . . . . . . . . . . . . . . . . . o 5.3.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.3.2. Soluci´n de Sistemas de Ecuaciones con Eliminaci´n Gauso o siana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.3. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4. Descomposici´n LU con pivoteo . . . . . . . . . . . . . . . . . . . o 5.4.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.4.2. Procedimineo de Descomposici´n LU . . . . . . . . . . . . o

´NDICE GENERAL I 5.4.3. Soluci´n de sistemas lineales con descomposici´n LU . . . o o 5.4.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5. Inversa de una matr´ . . . . . . . . . . . . . . . . . . . . . . . . ız 5.5.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.5.2. C´lculo de la Matr´ Inversa . . . . . . . . . . . . . . . . . a ız 5.5.3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6. Descomposici´n de Cholesky . . . . . . . . . . . . . . . . . . . . o 5.6.1. Fundamentos Conceptuales . . . . . . . . . . . . . . . . . 5.6.2. Descomposici´n de Cholesky . . . . . . . . . . . . . . . . o 5.6.3. Soluci´n de sistemas de ecuaciones por medio de descomo posici´n de Cholesky . . . . . . . . . . . . . . . . . . . . . o 5.6.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7. Matrices de Coeficientes Bandeadas . . . . . . . . . . . . . . . . . 5.7.1. Sistemas Tridiagonales . . . . . . . . . . . . . . . . . . . . 6. M´todos Iterativos e 6.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 6.2. M´todos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . e 6.3. M´todo de Gauss-Seidel y Relajaci´n . . . . . . . . . . . . . . . . e o 6.3.1. Soluci´n de sistemas lineales de ecuaciones . . . . . . . . o 6.3.2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4. Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1. Fundamentos conceptuales . . . . . . . . . . . . . . . . . 6.4.2. Interpretaci´n gr´fica . . . . . . . . . . . . . . . . . . . . o a 6.4.3. Soluci´n usando gradiente conjugado . . . . . . . . . . . o 6.4.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5. Gradiente Conjugado Precondicionado . . . . . . . . . . . . . . . 6.5.1. Fundamentos conceptuales . . . . . . . . . . . . . . . . . 6.5.2. Aplicaci´n del m´todo del Gradiente conjugado precondio e cionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5.3. Funci´n precondicionador . . . . . . . . . . . . . . . . . . o

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 ´NDICE GENERAL I .

. . Pero puede presentarse la situaci´n que exiso ta m´s de una ra´ si la condici´n se cumple. . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . .0 m . . 34 a o 3. . . . Un ejemplo gr´fico de la serie de Taylor para la funci´n cos (x) en a o x = 0. . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . .5. o e e 3. . . . . . . . . . . . . o e V 54 56 57 57 58 67 68 . . . Lago con forma irregular. . . . . . . Gr´fica de la funci´n sin (x) . . .7. 23 2. . . . . . . . . . . . . . . . . . 31 a o 2. . . . 20 2. . . . . .5. . Gr´fica de la funci´n exponencial . . . . . . . . 3. .2. . . . . . . . . . . . . . . . . . . . . . . a ız o 3. Tri´ngulo empleado para la definici´n de las funciones trigonom´tria o e cas. . .4. Gr´fica de la funci´n logaritmo natural . . . . . . . . . . . . . . . . . xu ] si la funci´n ız o cambia de signo. . . . . . . . . . . .3. . . . .7. .6. Gr´fica de la funci´n coseno . . . . . . . . . . . . . . . . . . . . . . . Para determinar la dimensi´n caraco ter´ ıstica de este se aproxima la forma mediante una cirfunferencia de radio r . . . . . . . Interpretaci´n geom´trica del error combinado hacia delante y o e atr´s . . . . . . . . . 27 2. .0 . . . . El a o valor de la ra´ es aproximadamente 6. . . . .3. . . . . . . . . . . . . 27 a o 2. . . .6. 24 a o 2. a 1. a 6 10 13 2. . . Interpretaci´n geom´trica del m´todo de Newton .3. . . . . . . . . 3. . . o a o 1.1. . . b). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . En este caso se presenta una situaci´n en donde la funci´n tiene o o valores positivos en los extremos del intervalo pero existen ra´ ıces en este. . . . . . . . Ejemplo de aplicaci´n del m´todo de la Bisecci´n o b´ squeda o e o u binaria. . Gr´fica de la profundidad contra el valor de la funci´n f (h).2. . . . . . . . . . . . . . . . a). . . Existe al menos una ra´ en el intervalo [xl . . .1. . . .´ndice de figuras I 1. . . . . Ejemplo de aplicaci´n del m´todo de Newton . . . . . . . . . . . . Interpretaci´n geom´trica de los conceptos de error hacia adelano e te y error hacia atr´s . . . . . . Ilustraci´n gr´fica de los conceptos de exactitud y precisi´n . . . . . . . . . . ız 3. . . . . Ejemplo del teorema del valor medio. .4. .1. .

. . .1. .VI ´NDICE DE FIGURAS I 3. . . 213 . . . . . . . . . . . .9. . . .1. . . . . . . . . . . . . . . . 3.8. ız. . . . Soluci´n de un sistema lineal de ecuaciones usando gradiente o conjugado . . . o e 76 78 4. . . . . . . . . Interpretaci´n geom´trica del m´todo de la secante. . . . Interpretaci´n gr´fica del m´todo de Muller . La recta seo e e cante (en color gris) se define entre los puntos f (xi−1 ) y f (xi ) y con esta se aproxima el nuevo valor de la ra´ . Ejemplo de aplicaci´n del m´todo de la secante . . . . . 101 o a e 6. . . . . .

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

VIII ´NDICE DE ARCHIVOS I .

Ciclo Principal Bairstow: Determinar raices 115c Referenciado en 113a. Ciclo Principal Bairstow: Inicializaci´n del error 113b Referenciado en 113a. o o Bairstow: Extracci´n de raices de polinomio n <= 2 116c Referenciado en 111. o o CholeskySol: Descomposici´n de Cholesky 183b Referenciado en 182b. o a Ciclo Principal Bisecci´n: C´lculo error e incremento iteraciones 64a Referenciado en o a 62a. Cholesky: Declaraci´n de la funci´n 180a Referenciado en 179. o CholeskySol: Inicializaci´n de variables 183a Referenciado en 182b. o CholeskySol: Declaraci´n de la funci´n 182c Referenciado en 182b. o Bairstow: Declaraci´n de variables 112b Referenciado en 111. o o Cholesky: Inicializaci´n de variables 180b Referenciado en 179.o Indice de Fragmentos de C´ digo Bairstow: Ciclo extracci´n de raices de polinomio n >= 3 113a Referenciado en 111. Ciclo Principal Bisecci´n: C´lculo nueva soluci´n 62b Referenciado en 62a. o CholeskySol: Sustituci´n hacia atr´s 184 Referenciado en 182b. o e Ciclo Principal Bisecci´n: Asignaci´n de resultados 64b Referenciado en 62a. o a o Ciclo Principal Bisecci´n: Donde esta la soluci´n 63a Referenciado en 62a. o CholeskySol: Sustituci´n hacia adelante 183c Referenciado en 182b. o Cholesky: Ciclo Principal 181a Referenciado en 179. o Bisecci´n: Ciclo Principal 62a Referenciado en 60. o Bairstow: Definici´n de la funci´n 112a Referenciado en 111. Ciclo Principal Descomposici´n LU con Pivoteo: cambiar las filas 166a Referenciado en o 165a. o Ciclo Principal Cholesky: Asignaci´n elementos fuera diagonal 181b Referenciado en o 181a. o o Cholesky: Asignaci´n de resultados 182a Referenciado en 179. Ciclo Principal Bairstow: Realizar divisi´n sint´tica 114a Referenciado en 113a. IX . o Ciclo Principal Bairstow: Modificar los valores de r y s 114b Referenciado en 113a. o Bisecci´n: Declaraci´n de la funci´n 61a Referenciado en 60. o a Ciclo Principal Bairstow: Asignaci´n de raices obtenidas 116b Referenciado en 113a. o Ciclo Principal Bairstow: Calcular error e incrementar contador 115b Referenciado en 113a. o o Ciclo Principal Bisecci´n: C´lculo de las funciones 62c Referenciado en 62a. Ciclo Principal Bairstow: Extracci´n coeficientes Polinomio resultante 116a Refereno ciado en 113a. o o o Bisecci´n: Inicializaci´n de variables 61b Referenciado en 60. o o Ciclo Principal Cholesky: Asignaci´n elementos diagonal 181c Referenciado en 181a.

o Ciclo Principal Inversa: Soluci´n sistema lineal 175c Referenciado en 175b. o Ciclo Principal Laguerre: Prueba de la ra´ 129c Referenciado en 129b. Ciclo Principal Muller: C´lculo del indicador 105c Referenciado en 104b. Ciclo Principal PCG: Actualizaci´n de la soluci´n 225b Referenciado en 224c. Ciclo Principal Laguerre: C´lculo del denominador 130c Referenciado en 129b. Ciclo Principal Descomposici´n LU con Pivoteo: fase de eliminaci´n 166b Referenciado o o en 165a. ız Ciclo Principal Gauss: Determinar el Pivot 156a Referenciado en 155b. o o u Ciclo Principal PCG: C´lculo del α 225a Referenciado en 224c. o Ciclo Principal Laguerre: C´lculo de G y H 130b Referenciado en 129b. o o Ciclo Principal GradienteConj: C´lculo del α 216a Referenciado en 215b. o Ciclo Principal Muller: C´lculo coeficientes par´bola 105b Referenciado en 104b. o o Ciclo Principal PCG: Actualizaci´n direcci´n de b´ squeda 225d Referenciado en 224c. o Ciclo Principal Newton: C´lculo error e incremento iteraciones 72b Referenciado en a 71b. o Ciclo Principal Laguerre: Actualizaci´n de la ra´ 131b Referenciado en 129b. ız Ciclo Principal Laguerre: Determinaci´n del signo 131a Referenciado en 129b. a Ciclo Principal Muller: C´lculo del error e incremento de iteraciones 106c Referenciado a en 104b. a a Ciclo Principal Muller: C´lculo de h y δ 105a Referenciado en 104b. a Ciclo Principal Laguerre: Chequear si es ra´ 130a Referenciado en 129b. o o Ciclo Principal Newton: Asignaci´n de resultados 72c Referenciado en 71b. Ciclo Principal Inversa: Almacenamiento soluci´n 175d Referenciado en 175b. o ız Ciclo Principal Laguerre: Actualizaci´n de valores 131d Referenciado en 129b. o o Ciclo Principal Newton: Actualizaci´n soluci´n 72a Referenciado en 71b. a Ciclo Principal GradienteConj: C´lculo del residuo 216c Referenciado en 215b. Ciclo Principal GradienteConj: Actualizaci´n de la soluci´n 216b Referenciado en 215b. Ciclo Principal Descomposici´n LU con Pivoteo: determinar el Pivot 165b Referenciado o en 165a. o Ciclo Principal GaussSeidel: Actualizaci´n de la soluci´n 204a Referenciado en 203b. a Ciclo Principal Laguerre: C´lculo de error e incremento de iteraciones 131c Referena ciado en 129b. a Ciclo Principal GradienteConj: Calculo de error e incrementar iteraciones 217 Referenciado en 215b. o ız Ciclo Principal Muller: Actualizaci´n puntos 107 Referenciado en 104b. Ciclo Principal GradienteConj: Determinaci´n de direcci´n de b´ squeda 216d Refeo o u renciado en 215b. Ciclo Principal Gauss: Cambiar las filas 157a Referenciado en 155b. a . ız Ciclo Principal Muller: Actualizaci´n de la ra´ 106b Referenciado en 104b. Ciclo Principal Gauss: Chequear si es matr´ singular 156b Referenciado en 155b. o o Ciclo Principal GaussSeidel: C´lculo del error e incremento de las iteraciones 204b a Referenciado en 203b.X ´NDICE DE FRAGMENTOS I Ciclo Principal Descomposici´n LU con Pivoteo: chequear si es matr´ singular 165c o ız Referenciado en 165a. Ciclo Principal Gauss: Fase de eliminaci´n 157b Referenciado en 155b. a Ciclo Principal Muller: Definici´n de la correcci´n 106a Referenciado en 104b.

Descomposici´n LU con Pivoteo: Inicializaci´n de variables 164a Referenciado en 163a. o o EvaluacionPolinomio: Inicializaci´n de Variables 91b Referenciado en 90. a Derivada Manning: Declaraci´n de la funci´n 73b Referenciado en 73a. o o DeflacionPolinomial: Ciclo Principal 98 Referenciado en 96. o Coseno Taylor: C´lculo sumatoria 29 Referenciado en 28a. o Deflaci´n2: Declaraci´n funci´n 118a Referenciado en 117c. o e Ciclo Principal Secante Modificado: Actualizaci´n soluci´n 86c Referenciado en 86a. Ciclo Principal Secante Modificado: c´lculo factor de correcci´n 86b Referenciado en a o 86a. EvaluacionPolinomio: Declaraci´n de Funci´n 91a Referenciado en 90. o o Deflaci´n2: Ciclo principal 119a Referenciado en 117c. Ciclo Principal Secante: Actualizaci´n soluci´n 81b Referenciado en 80b. o ız Ciclo Principal Raices: Inicializaci´n variables 136c Referenciado en 136b. o o Ciclo Principal Secante Modificado: Almacenamiento de resultados 87b Referenciado en 86a. o o Determinaci´n de raices: C´lculo del discriminante 120d Referenciado en 120c. o o Ciclo Principal Secante: Almacenamiento de resultados 81d Referenciado en 80b. o o o Descomposici´n LU con Pivoteo: Determinar valores para escalamiento 164b Refereno ciado en 163a. o Descomposici´n LU con Pivoteo: Declaraci´n de la funci´n 163b Referenciado en 163a. a Coseno Taylor: Inicializaci´n funci´n 28b Referenciado en 28a. a . o Derivada Manning: C´lculo derivada 73d Referenciado en 73a. Ciclo Principal Secante Modificado: C´lculo error e incremento iteraciones 87a Refea renciado en 86a. o a Determinaci´n de raices: Raices diferentes 121a Referenciado en 120c. o o o Deflaci´n2: Inicializaci´n de variables 118b Referenciado en 117c.XI Ciclo Principal PCG: C´lculo del residuo 225c Referenciado en 224c. Ciclo principal Deflaci´n2: Coeficientes 119b Referenciado en 119a. o Ciclo principal Deflaci´n2: Derivada 119c Referenciado en 119a. o o DeflacionPolinomial: Inicializaci´n de variables 97b Referenciado en 96. a Ciclo Principal PCG: Calculo de error e incrementar iteraciones 226a Referenciado en 224c. o Determinaci´n de raices: Raices iguales 121b Referenciado en 120c. DeflacionPolinomial: Declaraci´n de la funci´n 97a Referenciado en 96. o o Derivada Manning: Inicializaci´n de variables 73c Referenciado en 73a. o Exponencial Taylor: C´lculo sumatoria 25 Referenciado en 24a. Ciclo Principal Secante: Evaluaci´n funci´n dos puntos iniciales 81a Referenciado en o o 80b. o Descomposici´n LU con Pivoteo: Asignaci´n de resultados 167a Referenciado en 163a. o e Ciclo Principal Raices: divisi´n sint´tica 137c Referenciado en 136b. Ciclo Principal Secante: C´lculo error e incremento iteraciones 81c Referenciado en a 80b. o EvaluacionPolinomio: Ciclo principal 92 Referenciado en 90. Ciclo Principal Raices: Correci´n de la ra´ obtenida 137b Referenciado en 136b. o Ciclo Principal Raices: aplicaci´n del m´todo de Laguerre 137a Referenciado en 136b. o o Descomposici´n LU con Pivoteo: Ciclo Principal 165a Referenciado en 163a.

o o Modificar r y s: Actualizar r y s 115a Referenciado en 114b. o Extracci´n raices Polinomio n <= 2: Polinomio grado 2 117a Referenciado en 116c. GaussSeidel: Declaraci´n de la funci´n 201b Referenciado en 201a. InversaLU: Declaraci´n de la funci´n 174b Referenciado en 174a. o o LU Sistemas Tridiagonales: Inicializaci´n variables 188c Referenciado en 188a. GradienteConjugadoPrecond: Declaraci´n de la funci´n 223b Referenciado en 223a. GradienteConjugadoPrecond: Inicializaci´n de variables 224b Referenciado en 223a. o a GaussSeidel: Ciclo Principal 203b Referenciado en 201a.XII ´NDICE DE FRAGMENTOS I Exponencial Taylor: Inicializaci´n funci´n 24b Referenciado en 24a. Gauss con Pivoteo: Declaraci´n de la funci´n 154b Referenciado en 154a. o LUSolucion: Sustituci´n hacia adelante 169c Referenciado en 167b. o o Gauss con Pivoteo: Determinar valores para escalamiento 155a Referenciado en 154a. o GradienteConj: declaraci´n de la funci´n 214b Referenciado en 214a. LU Sistemas Tridiagonales: Declaraci´n funci´n 188b Referenciado en 188a. a Gauss con Pivoteo: Ciclo principal 155b Referenciado en 154a. o o GradienteConjugadoPrecond: Ciclo Principal 224c Referenciado en 223a. GaussSeidel: Inicializaci´n de variables 202a Referenciado en 201a. o GradienteConj: Ciclo principal 215b Referenciado en 214a. o Gauss con Pivoteo: C´lculo del determinante 159a Referenciado en 154a. Modificar r y s: C´lculo del determinante 114c Referenciado en 114b. o o GradienteConjugadoPrecond: Definici´n del Precondicionador 224a Referenciado en o 223a. o o . o LUSolucion: Inicializaci´n de variables 168b Referenciado en 167b. o InversaLU: Chequear si es matr´ cuadrada 174c Referenciado en 174a. o GaussSeidel: Obtener soluci´n inicial 203a Referenciado en 201a. o o Extracci´n raices Polinomio n <= 2: Polinomio grado 1 117b Referenciado en 116c. Muller: Declaraci´n de la Funci´n 103 Referenciado en 102. o Gauss con Pivoteo: Asignaci´n de salida 159b Referenciado en 154a. o LUSolucion: C´lculo del determinante 169a Referenciado en 167b. Gauss con Pivoteo: Sustituci´n hacia atr´s 158b Referenciado en 154a. o o GaussSeidel: Escalamiento 202b Referenciado en 201a. a LUSolucion: Declaraci´n de la funci´n 168a Referenciado en 167b. o o InversaLU: Inicializaci´n de la matr´ 175a Referenciado en 174a. o LUSolucion: Organizaci´n por pivoteo 169b Referenciado en 167b. o o LUSolucion: Descomposici´n LU 168c Referenciado en 167b. GradienteConj: Inicializaci´n de variables 215a Referenciado en 214a. o a Laguerre: Chequear si se obtuvo ra´ 132 Referenciado en 128a. ız Laguerre: Ciclo Principal 129b Referenciado en 128a. o ız LU Sistemas Tridiagonales: Ciclo principal 189a Referenciado en 188a. o LUSolucion: Sustituci´n hacia atr´s 170 Referenciado en 167b. o Logaritmo Taylor: C´lculo de la sumatoria 35c Referenciado en 35a. a Logaritmo Taylor: Inicializaci´n de la funci´n 35b Referenciado en 35a. a Muller: Ciclo Principal 104b Referenciado en 102. o o Laguerre: Inicializaci´n de variables 129a Referenciado en 128a. ız InversaLU: Ciclo Principal 175b Referenciado en 174a. Laguerre: Declaraci´n de la funci´n 128b Referenciado en 128a.

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

XIV ´NDICE DE FRAGMENTOS I .

2. que hayan aprobado ıa los cursos de C´lculo diferencial e integral. A pesar de esto. en Entrance de Dimmu Borgir La principal pregunta que se debe estar haciendo el lector es: Por qu´ raz´n e o se escribi´ este libro?. ıa ıa ni Ingenieros de Sistemas. . Poder resolver problemas r´pidamente mediante la combinaci´n de c´digo a o o ya desarrollado. no o existe un material que trate sobre m´todos num´ricos con una orientaci´n espee e o cifica a Ingenieros Civiles. ya que por lo e e o general la mayor´ de los estudiantes de Ingenier´ Civil no son programadores. el libro hace ´nfasis en la explicaci´n o e o de los diferentes m´todos num´ricos y no en la programaci´n. . En esta situaci´n no se espera que los estudiantes desarrollen su o propio c´digo sino que empleen uno dise˜ ado con anterioridad por dos razones: o n 1. Los estudiantes que habitualmente toman el curso en Ingenier´ Civil quieren conocer sobre los fundamentos de los diferentes m´todos ıa e num´ricos y como se pueden utilizar para resolver problemas concretos dentro de e la disciplina. La respuesta: Hasta el conocimiento de los autores. Este texto fue escrito pensando en una audiencia conformada por estudiantes de Ingenier´ Civil de pregrado. Adquirir una fundamentaci´n mucho m´s s´lida en programaci´n estuo a o o diando la forma como un m´todo ha sido implementado en un lenguaje e de programaci´n o XV .Introducci´ n o 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 . ya que este o es una aplicaci´n que se ha convertido en un est´ndar para la implementaci´n o a o de procedimientos num´ricos en muchos campos de la Ingenier´ y la Ingenier´ e ıa ıa Civil no es la excepci´n. En este caso particular se va a utilizar MATLAB R . pensamiento algor´ a ıtmico y probabilidad y estad´ ıstica. El pensamiento algor´ ıtmico brinda las herramientas necesarias para la implementaci´n de los diferentes m´todos num´ricos en un lenguaje de o e e programaci´n. sino que tienen una orientaci´n hacia la soluci´n de o o problemas concretos.

con la finalidad del entendimiento del mismo por parte de otros programadores. consiste u en poder leer claramente c´digo desarrollado con el fin de integrarlo en aplicao ciones que resuelvan problemas particulares. Los primeros o presentan informaci´n importante sobre el m´todo como tal y generalmente ino e cluyen un seudoc´digo que le permite al usuario implementar el procedimiento o en cualquier lenguaje de programaci´n. as´ como en la vida proı fesional. ya que una de las o labores fundamentales de cualquier persona que se dedique a desarrollar software (a´ n en la escala que se requiere para los fines del presente curso). En este libro se explican los fundamentos conceptuales de cada m´todo. Colombia. En la pr´ctica de la programaci´n litea o raria se combinan la documentaci´n destinada a los usuarios del programa y el o ´ c´digo del programa destinado al computador en un unico archivo. tienen o un enfoque m´s hacia la pr´ctica con una herramienta particular y por lo tana a to no presentan informaci´n conceptual detallada del m´todo que es de vital o e importancia para el entendimiento del mismo. de tal forma o que se puedan mantener una correspondencia directa entre la documentaci´n y o el c´digo fuente. ventajas y desventajas y se incluyen tanto ejemplos de c´lculos maa ˙os temas incluyen aquellos tratados en el curso nuales como usando MATLAB R L de An´lisis Num´rico para Ingenieros Civiles. Bogot´. Los libros de an´lisis num´rico se pueden dividir en dos grandes categor´ a e ıas: los que est´n orientados hacia las caracter´ a ısticas matem´ticas del m´todo o los a e que se orientan a la utilizaci´n de una herramienta particular.XVI ´ INTRODUCCION ´ Consideramos que la ultima raz´n es de vital importancia. sus e principios. tal y como se dicta en el Depto de a e Ingenier´ Civil de la Pontificia Universidad Javeriana. Los autores. Esta situaci´n motiv´ a presentar o o el c´digo explicado usando la metodolog´ denominada programaci´n literaria. ıa a ´ Por ultimo esperamos que este texto facilite la apertura de la dimensi´n de los o m´todos num´ricos y que de ahora en adelante ud los pueda usar en diferentes e e situaciones que se le van a presentar en la universidad. Bogot´. La presentaci´n de la estructura de los programas se define de o o tal manera que maximice el entendimiento por parte del lector. o ıa o La programaci´n literaria es una metodolog´ desarrollada por Donald Knuth en o ıa 1982 la cual tiene como premisa fundamental que el c´digo de los programas o se debe escribir como una obra literaria. En los libros del segundo tipo. Un texto de an´lisis num´rico a e que combine las ventajas de las dos aproximaciones antes mencionadas junto con ejemplos concretos en Ingenier´ Civil no existe y este es el espacio que se ıa quiere llenar con el presente trabajo. a .

Cap´tulo 1 ı Error relativo y cifras significativas 1. Introducci´ n o son aproximaciones para la obtenci´n o de soluciones de modelos matem´ticos estos siempre van a tener un cierto a grado de error. Sin embargo en el caso de los e m´todos num´ricos este t´rmino tiene un contexto m´s positivo y permite juze e e a gar la calidad de una soluci´n obtenida. Lo que podemos hacer en este caso es conocer en que situaciones aparecen y como se determinan en situaciones concretas. La gran mayor´ de m´todos que se van o ıa e a tratar en este curso se dise˜ aron de tal forma que aseguran que se obtiene el n m´ ınimo error posible. que convergen a la soluci´n deseada.1. o en otras palabras. as´ como tambi´n el error presente tanto en los problemas ı e como tal y en los procedimientos num´ricos con los que se resuelven estos. D ADO QUE LOS M ´ TODOS NUM ´ RICOS E E 1 . o Estos errores son de vital importancia en el modelamiento num´rico ya que en e general ninguna medici´n y/o estimaci´n de par´metros que se ingresan en los o o a modelos num´ricos est´ libre de error e incertidumbre. Los e errores num´ricos son algo inevitable y por lo tanto es importante que aprene damos a convivir con ellos. Cuantificar 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´rico para tomar decisiones importantes que involucran e costos econ´micos importantes y por lo tanto es importante determinar si las o soluciones obtenidas son confiables o no. En estos casos es necesario calcular el error e que se presenta en las diferentes operaciones aritm´ticas (lo cual es tema del e siguiente cap´ ıtulo). y la situaci´n se agrae a o va mucho m´s cuando se tiene en cuenta la capacidad del computador para a manejar las cantidades num´ricas. Para la gran mayor´ de personas el ıa t´rmino error implica algo que se ha hecho mal. el cual corresponde al objetivo central de este cap´ ıtulo.

2 CAP´TULO 1.3) El error relativo es la medida m´s empleada en los problemas de an´lisis a a num´rico ya que est´ dada en porcentaje y por lo tanto se puede usar para e a realizar comparaciones. Las medidas m´s utiles de exaco u a ´ titud son el denominado error absoluto que se define: EABS = |x − x0 | y el error relativo: EREL = |x − x0 | |x| (1.2) (1.2. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I 1. Definici´ n 1 o Sea x0 una aproximaci´n al n´ mero real x.1) y el cual no est´ definido para x = 0. . y por lo tanto se debe estar e familiarizado con estos conceptos. Este error relativo tambi´n se puede a e expresar como porcentaje de la siguiente forma: EREL = |x − x0 | × 100 % |x| (1. Error Absoluto y Error Relativo Los errores Absoluto y Relativo son dos tipos de errores con los cuales el analista num´rico se va a encontrar todo el tiempo.

04 gr/cm3 = 4.0 gr/cm3 = 0.04 gr/cm3 − 1.04 gr/cm3 el cual es num´ricamente igual al error relativo dado por: e EREL = 1.04 gr/cm3 − 1. por lo tanto si nos preguntamos cuantas cifras correctas o cifras significativas tiene x0 ?. De acuerdo a lo expuesto anteriormente se presenta la siguiente definici´n de o cifras significativas: . En este caso el error absoluto en la densidad est´ dado por: a EABS = 1. En condiciones normales la densidad del agua es ρREAL = 1 gr/cm3 y el resultado de se obtuvo fue de ρM ED = 1. En este caso el error o absoluto es igual a: EABS = 1.07 gr/cm3 debido a las sales que tiene en soluci´n. ERROR ABSOLUTO Y RELATIVO Ejemplo (Error absoluto y relativo) 3 Supongamos que ud realiz´ unas mediciones en el laboratorio para la o determinaci´n de la densidad de una muestra de agua de un r´ para un o ıo estudio de abastecimiento de un acueducto municipal. Estas se definen como las primeras cifras que no son cero y todos los digitos subsiguientes.0 gr/cm3 .028 gr/cm3 = 2. ya que en muchas situaciones la determinaci´n de las mismas se puede volver problem´tio a ca.0 % 1. existen solamente p + 1 respuestas posibles. mientras que 0.03 gr/cm3 y el error relativo: EREL = 1.07 gr/cm3 = 0. Esto indica que el n´ mero de cifras signfiu cativas p de un n´ mero no es una medida confiable y definitiva de la precisi´n u o de un valor x0 .0 gr/cm3 = 0.04 gr/cm3 − 1.0 gr/cm3 Como se sabe la densidad del agua en la gran mayor´ de ocasiones no es ıa igual a 1.2.07 gr/cm3 El error relativo es un concepto relacionado con las denominadas cifras significativas.7320 tiene 5 cifras significativas.04 gr/cm3 − 1.1. Supongamos que un valor dado x0 tiene p cifras decimales. sino que en este caso tiene un valor igual a ρREAL = 1.04 gr/cm3 .8 % 1. A primera vista el concepto de cifras significativas puede parecer obvio e intuitivo pero esto no es correcto. De esta forma 1.07 gr/cm3 = 0.0491 tiene solamente 3.

de tal forma que esta es la manera recomendada para la presentaci´n de los valores num´ricos. 2.4 Definici´ n 2 o CAP´TULO 1. Precisi´ n y Exactitud: Dos conceptos esquivos o La precisi´n y exactitud son dos conceptos que se presentan frecuentemente o como equivalentes. en otro caso no se puede decir nada acerca de si son significativos o no. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I Una aproximaci´n x0 de x tiene p cifras significativas si x0 y x se pueden o redondear al mismo valor con p cifras significativas. 3205. En eso e te caso el n´ mero de decimales usado en el n´ mero de la base debe hacerse u u atendiendo a la forma como se obtuvo dicho valor. de tal forma que se definen a continuaci´n: o . Sin embargo si existen criterios que facilitan a determinar el n´ mero de cifras significativas de un n´ mero dado. y en la vida diaria (no t´cnica) pueden emplearse como e sin´nimos. No existe una forma unificada para determinar cuantas cifras significativas tiene un n´ mero. pero dependiendo de u como fue obtenido podr´ tener 3 o 4. sin embargo. ıa Con el fin de evitar problemas para la comunicaci´n efectiva de valores o num´ricos se ha desarrollado la notaci´n cient´ e o ıfica. Los ceros ubicados antes de otros d´ ıgitos no son significativos. el n´ mero 3500 tiene al menos dos cifras significativas. en este curso de An´lisis Num´rico se tiene que hacer o a e la diferencia entre estos. Los ceros ubicados entre otros n´ meros son siempre significativos. 0. Los d´ ıgitos que sean diferentes de ceros son significativos siempre.3. 1. Por ejemplo. Los ceros ubicados al final de un n´ mero son significativos si est´n a la u a izquierda del punto decimal (como en el numeral anterior).8 u tiene 5 cifras significativas 4. El procedimiento de redondeo consiste en reemplazar valor dado con el n´ meu ro m´s cercano con p cifras significativas usando alguna regla para definir algua na de las cifras cuando hay dos valores cercanos. y los cuales se u u presentan a continuaci´n: o 1. ya que esto depende del procedimiento como se ha deteru minado (mediciones y c´lculos).235 tiene 3 cifras significativas 3.

si se tienen mediciones de fuerzas realizadas con un dinam´mentro cuya escala de medici´n solo reporta d´cimas de Newton se o o e podr´n obtener valores de 12.0 kg/m3 el cual se est´ presentando con una cifra decimal. la e exactitud estar´ relacionada con la posici´n decimal en la cual el valor comienıa o za a tener errores y por lo tanto ya no se puede tener un 100 % de seguridad sobre el mismo. Por ejemplo.1. ya que los dardos no se aproximan al blanco. La precisi´n de un valor hace referencia al n´ meo u ro de d´ ıgitos/cifras que emplean para expresar dicho valor. Una forma gr´fica de entender los conceptos de precisi´n y exactitud se prea o senta en la Figura 1.4 N. PRECISION Y EXACTITUD Definici´ n 3 o 5 La exactitud se define como el error absoluto o relativo que tiene una cantidad aproximada o medida.000 kg/m3 y por lo tanto en la ıa gran mayor´ de ocasiones resulta muy dif´ determinar la precisi´n real de las ıa ıcil o mediciones y/o determinaciones reportadas en la literatura. e La exactitud y la precisi´n tienen valores num´ricos iguales en el caso de o e operaciones escalares como una suma c = a + b o un producto c = a × b.5 N o 5.395 N. con el fin de no dar una impresi´n falsa o precisi´n. en algunos casos la exactitud puede ser peor que la precisi´n como o ocurre en los procedimientos de soluci´n de sistemas lineales de ecuaciones.´ 1. En esta figura en la parte superior izquierda se presenta un caso en el cual ´ los dardos se encuentran repartidos uniformemente sobre toda el area blanco. Sin embargo. 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´ticas. En este mismo contexto. y este a valor ser´ diferente si se expresara como 500. Pero en el caso que se cuente con otro a dispositivo de medida cuya escala permita obtener mediciones del tipo 12. Por ejemplo. se determin´ la densidad de una muestra de madera de o o pino en 500.549 N o 5. En cuanto a la precisi´n esta tambi´n es baja ya que otra forma o e de concebir la precisi´n es relacion´ndola con la dispersi´n que presentan los o a o valores entre si. las diferencias entre estas medidas van a tener m´s decimales y a .3. o En las aplicaciones cient´ ıficas la precisi´n se relaciona con el n´ mero de cio u fras o d´ ıgitos/lugares decimales con las cuales se realizan las mediciones y por lo tanto sirven para expresar los valores num´ricos. La raz´n de esta idea corresponde al hecho que si las medicioo nes tienen una mayor precisi´n esto implica que tienen un mayor n´ mero de o u decimales y por lo tanto las diferencias entre los valores se van a poder resolver con mejor detalle. En este caso particular se la exactitud es baja. Un aspecto muy importante a tener en cuenta cuando se presenten valores num´ricos consiste en que estos se deber´ presentar con el n´mero de d´ e ıan u ıgitos decimales con que fueron medidos.

En la parte o inferior izquierda se aprecia una situaci´n en la cual la exactitud es baja (ya que o los dardos no se encuentran cerca del blanco). En la parte superior derecha a de la figura se presenta el caso en donde la exactitud mejora considerablemente ya que los dardos se agrupan alrededor del blanco. sin o embargo la dispersi´n alrededor del blanco sigue siendo evidente. .6 CAP´TULO 1. ya que los valores no presentan una gran dispersi´n o entre si y se encuentran alrededor del blanco. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I Figura 1. En o la parte inferior derecha se presenta una situaci´n en la cual tanto la precisi´n o o como la exactitud es alta.1: Ilustraci´n gr´fica de los conceptos de exactitud y precisi´n o a o por lo tanto se consideran que son m´s precisas. pero la precisi´n es alta ya que la o dispersi´n entre los valores no es tan alta como en el primer caso analizado. As´ mismo la precisi´n ı o se incrementa cuando se compara con la situaci´n explicada anteriormente.

miena tras que la balanza digital muestra en la pantalla un valor de 307. Hasta hace a unos a˜ os los PC que se utilizaban para labores de escritorio ten´ procesan ıan dores con 32 bits. En la balanza an´loga la manecilla del indicador marca exactamente 300 gr. mientras que la misma cantidad se puede determinar de forma mucho m´s f´cil usando la balanza digital debido a a a que el display tiene un mayor n´ mero de decimales.´ 1. Sin embargo en el presente curso se pone especial ´nfasis en la forma como se aplican estos conceptos en procedimiene tos/algoritmos num´ricos empleados para resolver problemas de Ingenier´ De e ıa. PRECISION Y EXACTITUD Ejemplo (Exactitud y Precisi´n en la medida de la masa de un suelo) o 7 En un trabajo de geot´cnia se han obtenido muestras de un suelo arcilloso e y se quiere realizar un ensayo en donde se requieren una muestra de 500 gr. o Es de vital importancia entender los conceptos de precisi´n y exactitud en o las mediciones. la precisi´n ya no depende tanto o del algoritmo. los computadores pueden representar n´ meros con un u mayor n´ mero de decimales tanto en la mantisa como en el exponente. Hoy en d´ con el desarrollo de los a ıa procesadores de 64 bits. Con la e balanza an´loga ud puede separar los 500 gr de suelo teniendo cuidado a de medir bien usando la escala. entonces quiere decir que la balanza an´loga est´ mostrando el valor verdaa a dero y por lo tanto podemos decir que es m´s exacta que la balanza digital.3. En este caso se dice u que la balanza digital es m´s precisa que la an´loga y que la precisi´n es un a a o concepto que est´ relacionado con la facilidad con la que se puede medir una a cantidad. sino del equipo con el cual se realicen los c´lculo. La balanza an´loga tiene una a a escala de medici´n en marcas de 100 gr.5894587 gr. lo cual u es de vital importancia para las personas que se dedican a realizar modelamien- . En este caso esta facilidad de medici´n se encuentra relacionada con o el n´ mero de decimales u Ahora supongamos que se tiene una muestra de suelo de 300 gr. Con el fin de separar la cantidad necesaria el laboratorio cuenta con dos balanzas. Si suponemos que la masa de la muestra de suelo es exactamente 300 gr. a ´ a pesar que esta ultima nos muestra un mayor n´ mero de decimales en la u determinaci´n de la masa. ya que estas son las que se explican en los cursos de Laboratorio ya sea de F´ ısica y/o Qu´ ımica. y esta se pesa utilizando los dos tipos de balanza mencionados anteriormente. Por otra parte. mientras que la balanza digital tiene o un display en donde se pueden hacer lecturas de d´cimas de gramo. una de ellas an´loga y la otra digital. En el an´lisis num´rico este concepto es inn a e herente y propio del algoritmo o procedimiento num´rico que se est´ empleando e e y se recomienda seleccionar un m´todo que asegure la obtenci´n de la respuese o ta con el m´ ınimo error posible. caracter´ ısticas que determina la precisi´n de las operaciones o matem´ticas que puede realizar el equipo. la discusi´n de los p´rrafos anteriores se sabe que la exactitud est´ relacionada o a a con la facilidad para obtener el valor verdadero (lo cual implica que el error absoluto o relativo sea peque˜ o).

>>x x = 0. La mayor´ de los u ıa lenguajes de programaci´n permiten que el usuario define si los procedimientos o se van a realizar con n´ meros de precisi´n simple (8 bytes) o de precisi´n doble u o o (16 bytes). e CAP´TULO 1. u o Para problar la precisi´n de MATLAB R se puede emplear el siguiente c´dio o go: >>x=1. >>for i=1:1:10000.8 to num´rico.4. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I 1.99999999999888978 La cuesti´n es que en este caso el valor de x deber´ ser igual a 1. u o y este es representado mediante un n´ mero finito de bytes.5250759 >>x=x+(5/3)*1e10 x = . ya que o ıa el valor que se le esta restando es muy cercano a 0. lo cual es aceptable para la gran mayor´ de problemas. Esto e es un indicio del error de redondeo para operaciones entre n´ meros de doble u precisi´n que maneja MATLAB R valor que es igual a = 1.14159265358979312 >>x=x-(5/3)*1e10 x = .0 × 10−16 se coloca 1.x=x-1.end. Esto o quiere decir que existe un l´ ımite para las diferencias entre n´ meros que se van u a operar: Si la diferencia entre estos es menor que entonces los dos n´ meros u se pueden considerar iguales.0. Esto es evidente en el siguiente c´digo de ıa o MATLAB R >>x=pi x = 3.0e-16.0 × 10−16 .16666666663. Error de Redondeo Un computador no puede almacenar los n´ meros con una precisi´n perfecta. si en lugar de 1.0 × 10−17 obs´rve como cambia la respuesta. En realidad. As´ mismo en el caso que se operen dos n´ meros ı u ´ cuya diferencia sea varios ordenes de magnitud se va a introducir un error de redondeo que se va a apreciar en la 16-ava cifra decimal. Sin embargo algunos paquetes computacionales como MATLAB R trabajan por defecto con n´ meros de doble precisi´n (16 bytes).

1). La pregunta importante en estas situaciones es: C´mo se puede determinar la calidad de y0 ?. siempre y o o cuando se conozca el valor verdadero o un valor de referencia para realizar la comparaci´n. pero en este caso se desea o determinar el valor m´ ınimo.2) como medida de estabilidad en lugar del error absoluto o (ecuaci´n 1. Sin embargo el problema de juzgar la calidad de una aproximaci´n y0 se puede o abordar desde una perspectiva diferente. es decir a y0 . Supongamos que un algoritmo num´rico brinda una aproximaci´n y0 al valor e o de una funci´n dada y = f (x). donde p es la o precisi´n que maneja la m´quina. Evidentemente existen muchos valores de ∆x para los cuales se cumplen la condici´n anterior. se puede determinar para que valores de x se obtiene dicha aproximaci´n.14159202575683594 De este ejemplo resuta claro que el valor de x obtenido al final no es igual al valor de π especificado inicialmente. Una posio ble respuesta a esta inquietud la brinda el concepto del error relativo (ecuaci´n o 1. Estabilidad Num´rica: Errores hacia adelante e y hacia atr´s a La estabilidad num´rica de un algoritmo es una caracter´ e ıstica importante que debe tenerse en cuenta en el momento de seleccionar un procedimiento para resolver un problema particular. etc). 1. Esta situaci´n se agrava a´ n m´s si el valor o u a que multiplica al 5/3 se incrementa (ver problemas). En la gran mayor´ de oportunidades es mejor considerar el error ıa relativo (ecuaci´n 1. En estos dos casos se dice que se ha realizado un an´lisis de error o a hacia delante. ESTABILIDAD NUMERICA 9 3.´ 1. ya que se busca una soluci´n que cumpla EREL (y0 ) ≈ p.5.2). As´ mismo se puede determinar la calidad o a ı de una aproximaci´n y0 mediante el error absoluto (ecuaci´n 1. truncamiento. ya que el primero se expresa como porcentaje y por lo tanto o puede ser empleado para realizar comparaciones. En lugar de darle importancia al resultado. El valor de y0 en general no ser´ igual al valor o a verdadero y. ya que el procedimiento num´rico empleado est´ sujeto a diferene a tes tipos de errores (redondeo. Eso se puede expresar como cu´l es el valor m´ o a ınimo ∆x para el cual se tiene que f (x + ∆x) = y0 ?.5.4) El procedimiento de determinar y limitar el valor de EAtr´s se denomina an´lisis a a de error hacia atr´s y hay dos razones por las cuales es muy importante: a . con lo cual el error quedar´ definido como: ıa EAtr´s = a |∆x| x (1.1).

4) los errores de truncamiento se pueden o interpretar como perturbaciones en los datos.2: Interpretaci´n geom´trica de los conceptos de error hacia adelante o e y error hacia atr´s a 1. n o 2.2. De acuerdo con la ecuaci´n (1. Definici´ n 4 o Se dice que un algoritmo es estable hacia atr´s. Limitar el error hacia adelante y − y0 se puede analizar mediante herramientas de la teor´ de la perturbaci´n ıa o Una interpretaci´n gr´fica tanto del error hacia delante como hac´ atr´s o a ıa a aparece en la figura 1. Es por esta raz´n que este aparece en o la parte derecha de la gr´fica. n La definici´n anterior tiene un problema: definir cuando un valor de error es o peque˜o. si el error hacia atr´s es a a peque˜ o para todos los valores de x. o . Si el error hacia atr´s es a peque˜ o comparado con ∆x entonces la aproximaci´n y0 es buena. y para la determinaci´n de este o se requiere conocer el valor verdadero.10 x CAP´TULO 1. ya que generalmente un valor se puede considerar peque˜ o cuando se n aproxima a la precisi´n p del computador en donde se calcule. El error hacia delante puede ser cuantificado tanto por el error absoluto como por el error relativo. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I y = f (x) Error hacia atras Error hacia delante x + ∆x y0 = f (x + ∆x) Figura 1. Generalmente esta definici´n depende del contexto y del problema de n o estudio. En el caso del error hac´ atr´s este se puede a ıa a cuantificar usando el valor de ∆x.

∆b y ∆c.5.4). dado por la ecuaci´n (1. El error hacia u o n adelante puede corresponder al error absoluto y/o relativo. ESTABILIDAD NUMERICA Ejemplo (Topograf´ C´lculo del Per´ ıa: a ımetro de un Pol´ ıgono) 11 ´ Suponga que se quiere determinar el per´ ımetro de un area triangular. e Ahora suponga que las mediciones obtenidas con la cinta m´trica tiene un e error determinado que corresponden a ∆a. se tiene que si estos valores son peque˜ os entonces el ∆P tambi´n ser´ peque˜ o. a o para esta situaci´n corresponder´ a: o ıa EAtr´s (P ) = a |∆P | |∆a + ∆b + ∆c| = P a+b+c Debido a que ∆P depende de los valores de ∆a. ∆b y ∆c. En este caso el per´ ımetro ´ del area en estudio estar´ dado por: ıa ˆ P = (a + ∆a) + (b + ∆b) + (c + ∆c) = (a + b + c) + (∆a + ∆b + ∆c) = P + ∆P donde ∆P = ∆a + ∆b + ∆c.´ 1. ∆b → 0 y ∆c → 0 y por lo tanto ∆P → 0. . el resultado obtenido ser´ exacto. cuyos lados se midieron con cinta m´tricia arrojando los valores a. ıa Definici´ n 5 o Se dice que un algoritmo es estable hacia adelante si su error hacia adelante dividido por el n´ mero de condici´n del problema es peque˜ o. b y c. El error hacia atr´s. Esto implica n e a n que tanto la determinaci´n del per´ o ımetro de un pol´ ıgono es una operaci´n o estable hacia atr´s y por lo tanto la suma es una operaci´n de este tipo. a o En este caso particular si tanto ∆a → 0.

En esta o e figura se puede apreciar que para un valor x especificado se obtiene una aproximaci´n y0 . Para efectos pr´cticos se emplea otra definici´n de estabilidad num´rica dea o e nominada estalidad mixta. |∆x| ≤ ν|x| (1. n n y0 + ∆y = f (x + ∆x).3. |∆y| ≤ |y|.5) La interpretaci´n geom´trica de este error aparece en la figura 1. la cual combina el error hacia delante y el error hacia atr´s.41421356237310 >> z=y.12 CAP´TULO 1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I Ejemplo (Algoritmo estable hacia delante) Se quiere determinar la estabilidad num´rica para la funci´n f (x) = e o sqrt(x). Esto indica que el error relativo obtenido en la determio naci´n de la ra´ cuadrada del n´ mero 2 es muy cercano a la precisi´n de o ız u o las operaciones que se est´n empleado y por lo tanto esta aproximaci´n se a o considera buena.00000000000000 Ahora si calculamos la diferencia entre el valor verdadero 2.0 err_r = 2.440892098500626e-016 y el error relativo en este caso es igual a: err_r=abs(err_r)/2. a Definici´ n 6 o Se dice que un algoritmo tiene estabilidad mixta si existe un ∆x tal que tanto ∆x sea peque˜ o y que f (x + ∆x) − y0 sea peque˜ o.0 y z y se obtiene el error absoluto: >>err_a=2-z err_a = -4. Pero cuando se especifica x + ∆x no se obtiene y0 sino en su lugar o se obtiene un valor de y0 + ∆y.^2 z = 2. lo cual indica que hay otra componente de error .220446049250313e-016 el cual es muy cercano a la precisi´n que maneja MATLAB R para n´ meros o u de doble precisi´n. En este caso se procede de la siguiente forma: >> y=sqrt(2) y = 1.

5.´ 1. x y = f (x) Error hacia delante Error hacia atras y0 x + ∆x ∆y f (x + ∆x) Figura 1.3: Interpretaci´n geom´trica del error combinado hacia delante y atr´s o e a . Esto hace que aparezca la estabilidad mixta en lugar de los otros tipos de estabilidad ya discutidos. ESTABILIDAD NUMERICA 13 presente.

>>y=cos(x) y = 0. donde ∆x y ∆y son valores relativamente peque˜ os.5*pi. indicando que el algoritmo para calcularla tiene estabilidad o mixta.14 CAP´TULO 1. >>y1=cos(x+deltax) y1 = .0. se desea calcular el valor de la funci´n y = cos (x) n o para un x = π/2. o en otras palabras.0e-10. Por ejemplo.00000000010000001 lo cual es igual a 1×10−10 . sino que en lugar de esto tienen la caracn ter´ ıstica y0 + ∆y = cos (x + ∆x).00000000000000006 o en t´rminos concretos 6 × 10−17 es un valor pr´cticamente igual a 0. 1.6. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I Ejemplo (Funci´n trigonom´trica coseno) o e La funci´n cos (x) aparece en un gran n´ mero de relaciones f´ o u ısicas que ´ se emplean en diferentes areas de la ingenier´ civil. La mayor´ de los ıa ıa procedimientos que existen para calcularla no cumplen la condici´n y0 = o cos (x + ∆x) para un ∆x peque˜ o. El valor real en este caso es igual a >>x=0. En este caso particular el valor del ∆y es claramente mayor que la precisi´n con la que se realizan los c´lculos con n´ meros de o a u doble precisi´n.0. Un concepto Importante: El n´ mero de Condiu ci´ n o Una de las grandes interrogantes que surgen en este momento es c´mo deo terminar si un algoritmo num´rico es estable o no?.00000000009999995 se puede calcular ∆y como: >>deltay=y1-y deltay = . Si e a ahora se define: >>deltax=1. c´mo e o se puede determinar a-priori si la soluci´n al problema num´rico planteado no o e .

es decir.6) donde f (·) es la funci´n de inter´s y f (·) es su derivada. Tanto el error hacia delante como el error hacia atr´s se encuentran relacionados. mientras que un problema en donde este n´ mero sea a u alto se denomina mal-condicionado. Un problema con un n´ mero de condici´n bajo se dice que u o est´ bien condicionado. 15 En los m´todos num´ricos. El punto de conexi´n es el denominado a o n´mero de condici´n. o o A continuaci´n se presente un ejemplo para la determinaci´n del n´ mero de o o u condici´n: o .6.´ ´ 1. Esta relaci´n se encuentra expresada por: u o o Definici´ n 7 o El n´ mero de condici´n se define como u o c(x) = xf (x) f (x) (1. NUMERO DE CONDICION va a presentar incovenientes cuando lo implemente en un computador?. Este valor mide la o e sensibilidad que tiene la soluci´n como consecuencia en peque˜ as perturbao n ciones en los datos de entrada. si el computador lo puede resolver sin que se explote durante el intento. La definici´n anterior se aplica en situaciones en donde se conoce la funci´n y o o una condici´n importante que debe cumplir dicha funci´n es que sea derivable. el n´ mero de condici´n de un problem particular e e u o es una medida de la facilidad con la cual se puede resolver usando c´lculo en a un computador.

7) aunque el igual se debe tomar con cuidado. la cual es o igual a: 1 f (x) = x−1/2 2 El n´ mero de condici´n se puede determinar f´cilmente en MATLAB R de u o a la siguiente forma: >>x=2. En el caso de la figura 1. El n´ mero u de condici´n mide que tanto el error en los valores de entrada se propaga duo rante la obtenci´n de la soluci´n de un procedimiento num´rico y por lo tanto o o e mide la forma como este afecta el error hacia delante.0 y por lo tanto la determinaci´n de la ra´ cuadrada de o ız 2 en MATLAB R se puede considerar como una operaci´n bien condicionada.35355339059327 >>num_condicion=abs(x*der_fx/fx) num_condicion = 0.16 CAP´TULO 1. >>der_fx=0.5*x.50000000000000 el cual es menor a 1. Esta ecuaci´n implica que un probleo ma mal condicionado se caracterizar por un error hacia delante alto. Para esto es necesario determinar la derivada de esta funci´n.881784197001252e-016 obteni´ndose nuevamente un valor muy cercano a la precisi´n con la que e o MATLAB R maneja las operaciones de n´ meros de doble precisi´n. >>fx=sqrt(2). La relaci´n entre el n´ mero de condici´n y los errores hacia delante y hacia o u o atr´s se puede expresar como: a Error hacia delante = N´ mero de Condici´n × Error hacia atr´s u o a (1. ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I Ejemplo (N´mero de condici´n) u o Determinar el n´ mero de condici´n para la funci´n f (x) = (x) en x = u o o 2.2 se puede apreciar para el ∆x dado el valor del error hacia delante es mayor . con lo u o cual se corrobora que el algoritmo con el que se calcula la ra´ cuadrada es ız estable hacia delante. o As´ mismo el n´ mero de condici´n se emplea para dar una definici´n formal ı u o o de la estabilidad hacia adelante.^(-0.5) der_fx = 0. lo cual en este caso particular: >>error_delante=abs(err_a)/num_condicion error_delante= 8.

NUMERO DE CONDICION 17 que la magnitud de ∆x implicando que se tiene un n´ mero de condici´n mayor u o a 1. .6.´ ´ 1.0.

ERROR RELATIVO Y CIFRAS SIGNIFICATIVAS I .18 CAP´TULO 1.

El ejemplo m´s claro de esto corresponde a la posibilidad a de emplear dichas series para solucionar ecuaciones diferenciales ordinarias. Esto tiene serias consecuencias para el an´lisis a num´rico. en donde el analista/Ingeniero debe trabajar con aproximaciones a e funciones en lugar de las funciones reales. estudiadas en el curso de C´culo I y C´lcua a lo vectorial. En este problema. Serie y Teorema de Taylor Serie de Taylor Los polinomios son funciones muy f´ciles de calcular ya que involucran soa lamente operaciones sencillas (sumas.1.2. multiplicaciones. son un punto de partida para el entendimiento de los errores de representaci´n que aparecen en el an´lisis num´rico.1. 2. Sin embargo existen otras funciones que no corresponden a esta categor´ (funci´n ıa o exponencial. 2.2. restas. logaritmos. las series son empleadas como un equivalente de la soluci´n o de dicha ecuaci´n diferencial. Introducci´ n o se explic´ que las series de poteno cia son una herramienta importante en varias ramas de la matem´tica tanto a pura como aplicada. o o a E ´ N LOS CURSOS PREVIOS DE MATEM A TICAS . La serie de Taylor permite aproximar dichas funciones como poa linomios (ver Figura 2. trigonom´tricas. para un ejemplo con la funci´n cos (x)) y por lo tanto o 19 .1. Por lo tanto las series de potencias y especialmente la serie de Taylor.Cap´tulo 2 ı Serie de Taylor y Error de Truncamiento 2. lo cual implica que estas series se pueden utilio zar para aproximar funciones. entre otras). El presente cap´ o a e ıtulo es una introducci´n a la serie de Taylor y las implicaciones que tiene este en la o cuantificaci´n del error y la representaci´n de modelos matem´ticos. etc) los cuales no se pueden calcular e tan f´cilmente.

La derivada de orden 0 o de f por definici´n es igual a f y (x − x0 )0 es igual a 1. Esto es precisamente lo que hacen las calculadoras y los computadores cuando se invocan cualquiera de estas funciones. b).0 −6 −4 −2 0 2 4 6 2 −1 −1. . A continuaci´n se presenta un o teorema que define dichas series: Teorema 1 Sea f una funci´n continua en el intervalo cerrado [a.0−x /8! g(x)=1−x /4!−x6/6!+x8/6! g(x)=1−x2/2+x/4! /2+x4/4!−x6 /2 g(x)=1.0 .5 f(x) 0 −0. 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 + .0 x Figura 2. o 1. . 2! = k=0 f k (x0 ) (x − x0 )k k! (2. SERIE DE TAYLOR I ´ brinda un medio util para calcularlas de forma m´s sencilla que con la funci´n a o original.5 .5 1 0. b] y derivable en el o intervalo abierto (a.20 CAP´TULO 2. y f (k) (x0 ) corresponde al valor de la k−´sima e derivada de la funci´n f (·) evaluada en el punto x0 .1) donde k! es el factorial de k.1: Un ejemplo gr´fico de la serie de Taylor para la funci´n cos (x) en a o x = 0.5 f(x)=cos(x) f(x)=1f(x)=cos(x) g(x)=1−x2/2 f(x)=cos(x) g(x)=1 g(x)=1−x2f(x)=cos(x) g(x)=1 /2 g(x)=1−x2/2+x4/4! g(x)=1−x2/2 g(x)=1−x2/2+x42g(x)=1.0 g(x)=1−x /4!−x6/6! /2+x4/4! f(x)=cos(x) f(x)=cos(x) g(x)=1−x2/2+x42g(x)=1.

este t´rmino residual corresponde a una sumatoe e ria infinita de t´rminos y en general no ser´ posible determinarlo. Por lo tanto. Teorema de Taylor El teorema de Taylor permite llevar al mundo real el importante concepto tra´ por la Serie de Taylor: Cualquier funci´n se puede aproximar como un ıdo o polinomio. x0 ∈ [a. Este t´rmino de residuo est´ dado por: o e a Rn = f (n+1) (ξ(x)) (x − x0 )n+1 (n + 1)! (2. Sin embargo queda a´ n un punto de vital importancia: C´mo puede ser de utilidad u o la serie de Taylor si se trata de una serie infinita?. La o gran diferencia con la serie de Taylor corresponde al hecho que para realizar la aproximaci´n ahora se tiene una serie con un n´ mero finito de t´rminos m´s un o u e a t´rmino residual.2. x). Con todo esto el estudio de Rn o brinda informaci´n importante acerca del error de truncamiento que se incurre o cuando se emplea la serie de Taylor. lo cual se tratar´ con m´s detalle en la a a secci´n 2.3.2. Sin embargo e ıa a nivel pr´ctico se tiene que el residual Rn → 0. y n + 1-veces diferenciable en el intervalo abierto (a. la cual resulta muy sencillo de obtener.3) Este teorema establece que cualquier funci´n f (·) se puede aproximar como o un polinomio cuyos coeficientes dependen de las derivadas de la funci´n. ya que exiso a e ten muchas funciones que no se pueden calcular directamente pero no ocurre lo mismo con su serie de Taylor. cuando n → +∞ de tal forma a que su determinaci´n no resulta tan necesaria. Este teorema se encuentra enunciado a continuaci´n: o Teorema 2 Si n ≥ 0 es un entero y f es una funci´n que es continua y se puede derivar no veces en el intervalo cerrado [a. Esto es de vital importancia en el an´lisis num´rico. b] y ξ(x) ∈ Intervalo entre x y x0 y Rn se le denomina el residuo de la aproximaci´n. o .2.2.1. entonces se tiene que : n f (x) = k=0 f k (x0 ) (x − x0 )k + Rn k! (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´n f (·) en un punto x a partir del conocimiento de la funci´n o o en un punto cercano x0 si se conocen todas las derivadas de f en dicho punto. si se conocen la derivadas o de la funci´n. 2. Para resolver este problema es necesario recurrir al denominado Teorema de Taylor. As´ mismo la serie de Taylor permite expresar cualquier funci´n f (·) como una ı o serie de potencias como la dada en la ecuaci´n 2.2) donde x. b].

Esto se puede ver gr´ficamente en la figura 2. b]. Sin a a a embargo. Este teorema se puede entender usando un ejemplo de cinem´tica: Si un veh´ a ıculo viaja 100 km en una hora. 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.22 CAP´TULO 2. Este teorema se emplea para extraer conclusiones globales acerca de una funci´n a partir de informaci´n local representada por las derivadas en o o un conjunto de puntos en un intervalo dado. b] y o derivable en el intervalo abierto (a. entonces existe un valor c ∈ [a.5) exp (x) = l´ ım 1 + n→+∞ n Si se quiere aproximar la funci´n exponencial mediante series de Taylor es o necesario determinar las derivadas de esta funci´n. b] → R una funci´n continua en el intervalor cerrado [a. En este caso las derivadas o .3) es una de las funciones m´s imporo a tantes de la matem´tica tanto pura como aplicada y corresponde a la operaci´n a o inversa del logaritmo natural. Sin embargo es claro a que el veh´ ıculo no mantendr´ la velocidad igual a 100 km/h durante todo el a viaje. 2.3. lo que establece el teorema del valor medio es que en alg´ n momento u del viaje el veh´ ıculo tendra una velocidad exactamente igual a la de 100 km/h. x0 ]. Anal´ ıticamente existen diferentes formas de definir esta funci´n. El teorema del valor medio establece que existe un punto c ∈ [a. b].2. Este teorema se puede enunciar de la siguiente forma: Teorema 3 Sea f : [a. entonces la velocidad promedio de este ser´ de 100 km/h.4) b−a Este teorema aparece en el curso de c´lculo I y establece que si se tiene una a curva suave en un intervalo dado [a. lo unico que podemos decir de este es que se encuentra en el intervalo [x. En este caso particular la o pendiente promedio en el intervalo se puede determinar como la pendiente de la secante que une los extremos del intervalo. b] para el cual la pendiente es igual a la pendiente promedio del intervalo. SERIE DE TAYLOR I ´ A pesar que el valor de ξ no se puede determinar de forma concreta. Esto se desprende del denominado teorema del valor medio. siendo una de las m´s conocidas el resultado del l´ o a ımite: n x (2. b] tal que: f (b) − f (a) f (c) = (2. b). ya que habra momentos en los que se viaja m´s r´pido o m´s lento. Funci´ n Exponencial o La funci´n exponencial (ver figura 2. en donde se tiene una funa ci´n continua y suave definida en el intervalo [a.2.

..2.2: Ejemplo del teorema del valor medio.7) En este caso particular resulta claro que Rn → 0 cuando n → +∞ con lo cual se desprecia el t´rmino residual y se obtiene: e n exp (x) = k=0 xk x2 x3 =1+x+ + + . Secante 23 y = f (x) a c b .2. k! 2! 3! (2.8) La ecuaci´n anterior corresponde a la definici´n en t´rminos de series de la funo o e ci´n exponencial tal y como se encuentra en diferentes libros de matem´ticas. se obtienen de forma sencilla: f (k) = exp (x) (2.2) para x0 = 0 queda expresada por: o n exp (x) = k=0 xk + Rn = k! n k=0 xk exp [ξ(x)] n+1 + x k! (n + 1)! (2.6) Teniendo estas derivadas la expresi´n del teorema de Taylor para esta funci´n o o (ecuaci´n 2. o a . SERIE Y TEOREMA DE TAYLOR . Figura 2.

Las variables de entrada para esta funci´n son las siguientes: o x: valor para el cual se quiere calcular la funci´n o n: n´ mero de t´rminos a considerar en la serie de Taylor u e y la variable de salida es c el valor de la funci´n exponencial obtenido con la o aproximaci´n de la serie de Taylor. SERIE DE TAYLOR I y = exp(x) 1 2 3 Figura 2. . La estructura de la funci´n es la siguiente: o o "exp_taylor.n) Fragmento referenciado en 24a.3: Gr´fica de la funci´n exponencial a o A continuaci´n se presenta la implementaci´n en MATLAB R de la serie de o o Taylor para la funci´n exponencial.m" 24a ≡ Exponencial Taylor: Inicializaci´n funci´n 24b o o Exponencial Taylor: C´lculo sumatoria 25 a En la inicializaci´n de la funci´n se especifican las variables de entrada y de o o salida de la misma. o Exponencial Taylor: Inicializaci´n funci´n 24b ≡ o o function [c]=exp_taylor(x. 6 5 4 3 2 1 .24 . 0 CAP´TULO 2.

2. El valor de la sumatoria se puede obtener a nivel e computacional mediante un ciclo for. Lo anterior se puede se puede expresar como: Exponencial Taylor: C´lculo sumatoria 25 ≡ a c=1. y a la variable c se le asigna un valor de 1.0.2. Fragmento referenciado en 24a.0 (ya que este es el o primer t´rmino de la serie). for i=1:1:n. c=c+(x.8./(factorial(i)). SERIE Y TEOREMA DE TAYLOR 25 La serie de Taylor corresponde a una sumatoria infinita (que para efectos pr´ctia cos se trunca). . end. ya que se conoce el n´ mero de t´rminos u e sobre el cual se realiza la suma. Para obtener el valor de la funci´n exponencial se emplea la o ecuaci´n 2.^i).

.017212 5 1.648720 1.175162 4 1. .500000 1.2.4.5.625000 1.4). o 2.648698 1.648721 0.t)).438768 3 1. disp(sprintf(’%f %f %f %f’.648721 0.648721 9. v=exp_taylor(. end.( %) 1 1. SERIE DE TAYLOR I (Serie de Taylor para la funci´n exp (x)) o Aproxime la funci´n exponencial por medio de la serie de Taylor en o x = 0.020401 2 1. t=[i v exp(0. el error relativo disminuye. Este procedimiento se puede realizar f´cilmente meo diante el siguiente c´digo: o disp([’Orden n’ ’Valor aproximado’ ’Valor Real ’ ’Error Relativo’]). 6 a partir del valor de esta funci´n en x = 0 usando o a la funci´n exp taylor.648438 1. for i=1:1:6.000100 Ahora como es evidente a medida que el n´ mero de t´rminos en la aproxiu e maci´n de Taylor aumenta.i).5.648721 0. . Funci´ n Coseno o La funci´n coseno corresponde a una funci´n trigonom´trica de gran imo o e portancia en problemas geom´tricos y en el modelamiento de comportamientos e peri´dicos (ver figura 2. Las derivadas de o e .648721 0. a ´ En este caso el coseno del angulo x se define como la relaci´n entre la longitud o del cateto adyacente con respecto a la hipotenusa del tri´ngulo: a cos (x) = A H Sin embargo hoy en d´ existen otras definiciones de la funci´n cos (x) tal como ıa o la que daremos a continuaci´n en t´rminos de series de Taylor.5)]. el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel. A nivel tradicional esta funci´n se define a partir de o o un tri´ngulo.5)-v)/exp(0.5) 100*abs(exp(0.645833 1.001416 6 1.26 Ejemplo MATLAB R CAP´TULO 2.648721 1. como el mostrado en la figura 2.5 desde n = 1.

27 −320 −240 −160 −80 80 160 240 320 −1 . 2 (2. ∀k (2... . Estas derivadas se pueden generalizar de la siguiente forma: f (k) (x) = cos x + πk .9) . la funci´n cos (x) est´n dadas por: o a f (1) (x) = sin (x) f (2) (x) = cos (x) . .10) . SERIE Y TEOREMA DE TAYLOR 1 y = cos (x) .4: Gr´fica de la funci´n coseno a o Figura 2.2.. Figura 2.2.5: Tri´ngulo empleado para la definici´n de las funciones trigonom´tria o e cas.

12).11) Del mismo modo el t´rmino del residual Rn → 0 con lo cual se tiene: e +∞ cos (x) = l=0 cos π(2l) 2l 2 x = (2l)! +∞ x2k (−1) (2k)! k=0 k +∞ =1+ k=1 (−x2 )k x2 x4 x6 =1− + − + .. o Coseno Taylor: Inicializaci´n funci´n 28b ≡ o o function [c]=cos_taylor(x. La estructura de la funci´n es la siguiente: o o o "cos_taylor.28 CAP´TULO 2.0. ya que este es el primer t´rmino de la serie (ecuaci´n 2. Para realizar la suma de los t´rminos de e o e la serie de Taylor se emplea un ciclo for empleando la expresi´n dada por la o ecuaci´n 2.n) Fragmento referenciado en 28a. Este valor se inicializa en 1.m" 28a ≡ Coseno Taylor: Inicializaci´n funci´n 28b o o Coseno Taylor: C´lculo sumatoria 29 a Las variables de entrada para esta funci´n son las siguientes: o x: valor para el cual se quiere calcular la funci´n o n: n´ mero de t´rminos a considerar en la serie de Taylor u e y la variable de salida es c el valor de la funci´n coseno obtenido con la o aproximaci´n de la serie de Taylor.12) Una posible implementaci´n en MATLAB R de la serie de Taylor para esta o funci´n se presenta a continuaci´n. Esto a nivel de c´digo se implementa de la siguiente forma: o o .12. SERIE DE TAYLOR I y aplic´ndolas en la ecuaci´n 2. En este caso el resultado de la aproximaci´n de Taylor al coseno se va a almao cenar en la variable c.2 la expansi´n en series de Taylor de esta funci´n a o o o para x0 = 0 quedar´ dada por: ıa n cos (x) = k=0 cos x + k! πk 2 xk + cos ξ(x) + π(n+1) 2 (n + 1)! xn+1 (2.. (2k)! 2! 4! 6! (2.

Fragmento referenciado en 28a. for i=1:1:n.2. end. c=c+((-x^2)^i)/factorial(2*i). SERIE Y TEOREMA DE TAYLOR Coseno Taylor: C´lculo sumatoria 29 ≡ a c=1. 29 .2.0.

y se incluye aqu´ coo e ı mo ejemplo de la utilizaci´n de la serie de Taylor. .500000 0. SERIE DE TAYLOR I (Serie de Taylor para la funci´n cos (x)) o Aproxime la funci´n coseno por medio de la serie de Taylor en x = π/3 o desde n = 1. el error relativo disminuye.t)).500000 0. .662271 2 0. . Este procedimiento se puede realizar f´cilmente mediante o a el siguiente c´digo: o disp([’Orden n’ ’Valor aproximado’ ’Valor Real ’ ’Error Relativo’]). Para definir esta funci´n se o o emplea el tri´ngulo representado en la figura 2. De acuerdo a este.500000 0.000000 Ahora como es evidente a medida que el n´ mero de t´rminos en la aproxiu e maci´n de Taylor aumenta. t=[i v cos(pi/3) 100*abs(cos(pi/3)-v)/cos(pi/3)].500000 9.500000 0. for i=1:1:6.( %) 1 0.500000 0.30 Ejemplo MATLAB R CAP´TULO 2.13) .500000 0. o 2.2.501796 0.500000 0.500000 0. v=cos_taylor(pi/3. disp(sprintf(’%f %f %f %f’.451689 0.5. Funci´ n Seno o La funci´n seno es otra de las funciones trigonom´tricas.5. el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel. las cuales en este caso corresponden a: o sin (x) = f (1) = cos (x) f (2) = − sin (x) f (3) = − cos (x) . el seno a ´ del angulo x se define como la relaci´n entre la longitud del cateto opuesto con o respecto a la hipotenusa del tri´ngulo: a O H Para determinar la expresi´n de la serie de Taylor es necesario conocer las o derivadas de la funci´n.i).499965 0. . 6 a partir del valor de esta funci´n en x = 0 usando la o funci´n cos taylor. (2.000087 5 0. .007087 4 0.000001 6 0. end.359240 3 0.

m" 31 ≡ Seno Taylor: Inicializaci´n funci´n 32a o o Seno Taylor: C´lculo sumatoria 32b a Las variables de entrada para esta funci´n son las siguientes: o . y = sin (x) 31 1 −320 −240 −160 −80 80 160 240 320 −1 .15) Asumiendo que el resido de Taylor de dicha expansi´n cumple Rn+1 → 0 cuando o n → +∞.16) Una posible implementaci´n de la funci´n que permite aproximar la funci´n o o o sin (x) usando series de Taylor en MATLAB R tendr´ la siguiente estructura: ıa "sin_taylor.2. −2 Figura 2. SERIE Y TEOREMA DE TAYLOR .6: Gr´fica de la funci´n sin (x) a o Estas derivadas se pueden generalizar por medio de la siguiente expresi´n: o f (k) (x) = sin x + πk . 2 ∀k (2.14) con lo cual la expresi´n de la serie de Taylor para la funci´n sin (x) para x0 = 0 o o quedar´ dada por: ıa n sin (x) = k=0 sin πk 2 k! x + k sin ξ(x) + π(n+1) 2 (n + 1)! xn+1 (2.2. la expresi´n anterior se simplifica y se obtiene: o +∞ sin (x) = x k=0 (−x2 )k (2k + 1)! (2.

. se inicializa la vao o riable c en 0 y se realiza la sumatoria mediante un ciclo for.32 CAP´TULO 2.^2). Fragmento referenciado en 31. c=c+((-x.^i)/factorial(2*i+1). SERIE DE TAYLOR I x: valor para el cual se quiere calcular la funci´n o n: n´ mero de t´rminos a considerar en la serie de Taylor u e y la variable de salida es c el valor de la funci´n seno obtenido con la aproo ximaci´n de la serie de Taylor. o o Seno Taylor: C´lculo sumatoria 32b ≡ a c=0. La determinaci´n del valor de la funci´n sin (x) usando la serie de Taylor se o o basa en la ecuaci´n 2. for i=0:1:n. c=x*c. Finalmente el valor resultante de c se multiplica por x y la funci´n finaliza su ejecuci´n.n) Fragmento referenciado en 31. end. Para implementar esta expresi´n.15. o Seno Taylor: Inicializaci´n funci´n 32a ≡ o o function [c]=sin_taylor(x.0.

866025 0. SERIE Y TEOREMA DE TAYLOR Ejemplo MATLAB R 33 (Serie de Taylor para la funci´n sin (x)) o Aproxime la funci´n trigonom´trica seno por medio de la serie de Taylor o e en x = π/3 desde n = 1. t=[i v sin(pi/3) 100*abs(sin(pi/3)-v)/sin(pi/3)].2.866025 1.2. for i=1:1:6. disp(sprintf(’%f %f %f %f’.000005 5 0.866021 0.866025 0.t)).000477 4 0. Esta es una funci´n que aparece en diversas aplicaciones y o es de especial importancia para este tema. .866025 0.6.866025 0.000000 Ahora como es evidente a medida que el n´ mero de t´rminos en la aproxiu e maci´n de Taylor aumenta. el error relativo disminuye. debido a que presenta una discontinuidad en x = 0 se hace necesario tenerla en cuenta a la hora de determinar la serie de Taylor.866025 0.7). el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel.( %) 1 0. o 2. end. .866025 0.866025 0.866025 0.2.000000 6 0.855801 0. Funci´ n Logaritmo natural o La funci´n logaritmo natural f (x) = ln x es la inversa de la funci´n exponeno o cial (ver Figura 2.031163 3 0.180638 2 0. 6 a partir del valor de esta funci´n en x = 0 o a usando la funci´n sin taylor. Las derivadas de la funci´n Logaritmo natural est´n dadas por las siguiente o a . Este procedimiento se puede realizar f´cilmente o mediante el siguiente c´digo: o disp([’Orden n’ ’Valor aproximado’ ’Valor Real ’ ’Error Relativo’]).866295 0.i). . v=sin_taylor(pi/3.

2 y = log (x) 1 0 1 2 3 4 5 −1 . Figura 2. .19) .17) 6 x4 2 x3 f (2) = − f (3) = f (4) = − . SERIE DE TAYLOR I .18) ln (x) = k=0 (−1)k−1 (x − 1)k 1 (x − 1)n+1 + (−1)n k (n + 1) ξ n+1 (x) (2. .7: Gr´fica de la funci´n logaritmo natural a o expresiones: f (1) = 1 x 1 x2 (2. Estas o derivadas se pueden generalizar de la siguiente forma: (k − 1)! xk con lo cual la serie de Taylor para la funci´n ln x estar´ dada por: o ıa f (k) (x) = (−1)k−1 n (2. de las cuales es evidente que son polinomios y que forman un claro patr´n.34 CAP´TULO 2.

m" 35a ≡ Logaritmo Taylor: Inicializaci´n de la funci´n 35b o o Logaritmo Taylor: C´lculo de la sumatoria 35c a Al igual que las otras funciones implementadas esta funci´n tiene como variao bles de entrada: x: valor en el cual se quiere aproximar la funci´n logaritmo mediante seo ries de Taylor n: n´ mero de t´rminos a considerar en la aproximaci´n u e o y la variable de salida c corresponde al valor aproximado de la funci´n. SERIE Y TEOREMA DE TAYLOR 35 En este caso particular x0 = 1 ya que esta funci´n presenta una discontinuidad o en x = 0. end.20.2. k 2 3 (2. Para implementar dicha sumatoria se emplea un ciclo for. for i=1:1:n.0. o Logaritmo Taylor: Inicializaci´n de la funci´n 35b ≡ o o function [c]=log_taylor(x. El t´rmino residual tiende a 0 a medida que inclu´ e ımos m´s t´rminos. para lo cual el valor o de c se inicializa en 0.n) Fragmento referenciado en 35a. .^i)/i. se utiliza la sumatoria definida en la ecuaci´n 2. Para calcular el valor de la funci´n logaritmo en el punto x usando la serie de o Taylor.2. Fragmento referenciado en 35a. a e con lo cual la serie de Taylor para el logaritmo se simplifica y queda como: +∞ ln (x) = k=0 (−1)k−1 (x − 1)2 (x − 1)3 (x − 1)k = (x − 1) − + − ..0. con lo cual resulta el siguiente c´digo: o Logaritmo Taylor: C´lculo de la sumatoria 35c ≡ a c=0.20) Una posible implementaci´n de la serie de Taylor para la funci´n logaritmo o o R se presenta a continuaci´n: natural en MATLAB o "log_taylor.. c=c+((-1)^(i-1))*((x-1).

004997 6 0.21) donde n es un exponente que define el grado del polinomio.182667 0. .7. . t=[i v log(1. SERIE DE TAYLOR I (Serie de Taylor para la funci´n ln (x)) o Aproxime la funci´n logaritmo natural por medio de la serie de Taylor en o x = 1. o 2.182322 0.180000 0. de tal forma que la n-´sima derivada se puede obtener de: e f (k) (x) = n(n − 1) . end.189286 4 0.696299 2 0.030106 5 0.182320 0.2.273331 3 0. Polinomio Supongamos que se quiera aproximar una funci´n polinomial de la forma: o f (x) = (1 + x)n (2.2.182322 9. el error relativo disminuye. 6 a partir del valor de esta funci´n en x = 1 usando la o a funci´n log taylor.2 desde n = 1.i).23) (2.182331 0. .22) .182322 1. v=log_taylor(1. .182322 0. (n − k + 1)(1 + x)n−k (2.( %) 1 0. for i=1:1:6.t)).200000 0.2) 100*abs(log(1. En este caso particular las derivadas son muy f´ciles de determinar: a f (1) (x) = n(1 + x)n−1 f (2) (x) = n(n − 1)(1 + x)n−2 .2)-v)/log(1.182322 0.182267 0.36 Ejemplo MATLAB R CAP´TULO 2. Este procedimiento se puede realizar f´cilmente mediante o el siguiente c´digo: o disp([’Orden n’ ’Valor aproximado’ ’Valor Real ’ ’Error Relativo’]).000854 Ahora como es evidente a medida que el n´ mero de t´rminos en la aproxiu e maci´n de Taylor aumenta. .2)]. . . el cual una vez corrido arroja los siguientes resultados: Orden n Valor Aproximado Valor Real Error Rel.182322 0. disp(sprintf(’%f %f %f %f’.

2 su valor exacto no o o se puede determinar.2.1 se trunca a o o teniendo en cuenta solo n t´rminos. . Esta notaci´n se estudia en la Ingenier´ de Sistemas para denotar o ıa la eficiencia de los algoritmos.3. En este caso se obtiene la famosa f´rmula del binomio de Newton: o (1 + x)n = 1 + nx + n(n − 1) 2 x + .2. . ERROR DE TRUNCAMIENTO La serie de Taylor para esta funci´n quedar´ dada por: o ıa n 37 f (x) = k=0 n(n − 1) . . 1]. Este aspecto es de a vital importancia y es aqu´ donde se hace necesario introducir el concepto del ı error de truncamiento. Un caso de inter´s corresponde a n = k. (n − k) (1 + ξ(x))n−(k+1) xn+1 (n + 1)! (2. La serie de Taylor (secci´n 2.3) es igual e e o a este error de truncamiento y como se vi´ en la secci´n 2.25) 2. + xn 2! (2. . Para este punto se hace necesario introducir la notaci´n o de la gran O. ya que para efectos pr´cticos la expansi´n dada por la ecuaci´n 2.3.2. o sea. .1) permite cuantificar el error de truncamieno to. que n es un e n´ mero entero ya que se tiene que Rn+1 (x) = 0 y por lo tanto la aproximaci´n u o es exacta. 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. . (n − k + 1) k x + k! n(n − 1) . Serie de Taylor y Error de Truncamiento Todos los m´todos num´ricos realizan aproximaciones de los problemas mae e tem´ticos que de una u otra forma afectan las soluciones. . El t´rmino residual (ecuaci´n 2.24) donde ξ(x) ∈ [0. Definici´ n 8 o El error de truncamiento se define como aquel error en el que se incurre cuando se usa una aproximaci´n en lugar de un procedimiento matem´tico o a que es exacto.

26) l´ Rn = l´ ım ım n→+∞ (n + 1)! xn+1 = 0 (2. Despejando v (1) (t) se obtiene: e v (1) (ti ) = v(ti+1 − v(ti )) R1 + ti+1 − ti ti+1 − ti (2. Sin embargo algo o que resulta curioso en este caso.30) expresi´n cuyo primer t´rmino coincide con la f´rmula empleada para la soluo e o ci´n de la ecuaci´n diferencial. Sin embargo un aspecto interesante de la ecuao o ci´n 2. la Serie de Taylor es una herramienta util para la o definici´n de las derivadas de forma num´rica. En el problema del paracaidista.27) 2.11) de donde: o cos ξ(x) + Rn = y de donde resulta evidente que: cos ξ(x) + n→+∞ π(n+1) 2 π(n+1) 2 (n + 1)! xn+1 (2.38 Ejemplo (Aproximaci´n de Taylor) o CAP´TULO 2.28) lo cual se puede hacer si se conocen todas las derivadas de la funci´n v(t). es que la misma soluci´n se puede obtener a o partir de las series de Taylor.30 es que incluye el t´rmino del residual y por lo tanto con este es posible o e . SERIE DE TAYLOR I Aproximar el valor de cos (π/4) usando la serie de Taylor y determinar su error de Truncamiento. Si la o expresi´n anterior se trunca hasta el t´rmino que contiene la primera derivada o e se obtiene: v(ti+1 ) = v(ti ) + v (1) (ti )(ti+1 − ti ) + R1 (2. o e se emple´ un argumento geom´trico para obtener una expresi´n que permitiera o e o solucionar la ecuaci´n diferencial del movimiento retardado.4. El error de truncamiento para esta funci´n est´ dado por el t´rmino resio a e dual (ecuaci´n 2. Si se tiene una funci´n que describe la variaci´n o o 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. Serie de Taylor y Diferenciaci´ n Num´rica o e ´ Como se vi´ anteriormente. .29) donde R1 corresponde al t´rmino residual. .

DIFERENCIACION NUMERICA 39 estudiar el error de truncamiento para la expresiones que describren las derivadas. 2! (2.35) En este caso esta diferencia finita tiene el mismo orden de error que la diferencia finita hacia delante. es decir. La expresi´n para la derivada (ecuaci´n 2.32) de donde resulta claro que el error de truncamiento para la expresi´n de la deo rivada dada por la ecuaci´n 2. .31) donde v (2) ( ) corresponde a la segunda derivada de la velocidad y ξ es un valor en el intervalo [ti . ti+1 ]. . y su expresi´n general est´ dada por: o a f (1) (xi ) = f (xi+1 ) − f (xi ) + O(xi+1 − xi ) xi+1 − xi (2. De acuerdo al Teorema de Taylor. La ecuaci´n anterior se puede expresar mejor empleando o la notaci´n de la Gran O. el error es proporcional al incremento h. la cual se ena cuentra definida por la siguiente expresi´n: o f (1) (xi ) ≈ f (xi ) − f (xi−1 ) − O(h) xi − xi−1 (2.34) con lo cual aparece la denominada diferencia finita hacia atr´s. El t´rmino xi+1 − xi reo e presenta el incremento empleado para calcular dicha derivada y a nivel general se representa como h.33) donde el error de truncamiento es del orden del incremento empleado para calcularla. .29 es del orden (de ah´ el nombre de Gran O) o es o ı proporcional a ∆t. este t´rmino residual es igual a: e R1 v (2) (ξ) = (ti+1 − ti ) ti+1 − ti 2! (2. La ecuaci´n anterior representa la denominada diferencia finita hacia o delante.4. Esto quiere decir que si se desea reducir el error es necesario emplear un incremento temporal ∆t menor. Otra posibilidad consiste en realizar la aproximae ci´n de la serie de Taylor empleando un punto cercano ubicado antes que el o punto de inter´s: e f (xi−1 ) = f (xi ) − f (1) (xi )(xi − xi−1 ) + f (2) (xi ) (xi − xi−1 ) + . de la siguiente forma: o R1 = O(ti+1 − ti ) = O(∆t) ti+1 − ti (2.29) es conocida en el an´lisis num´rio o a e co como diferencia finita. ya que permite calcular la derivada en un punto particular i usando informaci´n de un punto i + 1 ubicado delante de este. La ecuaci´n 2.33 es una de las diferentes formas como se pueden determinar o num´ricamente las derivadas.´ ´ 2.

con lo cual se obtiene la o siguiente expresi´n: o f (xi+1 ) = f (xi ) + f (1) (xi )(xi+1 − xi ) + f (2) (xi ) (xi+1 − xi )2 + .40 CAP´TULO 2.33 y 2. y por lo tanto presenta un error menor que el caso de la diferencia finita hacia delante o hacia atr´s.38) 2f (3) (xi ) 2 h + ..36) de donde se despeja la derivada para llegar a: f (xi+1 ) = f (xi−1 ) + 2f (1) (xi )h + Si se la expresi´n anterior se trunca: o f (1) (xi ) = f (xi+1 ) − f (xi−1 ) − O(h2 ) 2h (2. . 3! (2.. . a .37) se obtiene la denominada diferencia finita central y se llega a la conclusi´n que o 2 el error es proporcional a h .35. SERIE DE TAYLOR I Otra forma para aproximar la derivada de forma num´rica se puede derivar e al calcular la diferencia entre la ecuaci´n 2. 2! (2.

con lo cual se tiene: Q(1) (2.8574 = Ri − Ri−1 2. n = 1 × 10−3 .9107 − 390.0782 = = 104.4 De los resultados obtenidos anteriormente es evidente que la mejor aproximaci´n de la derivada se obtiene con la diferencia finita central. Este mismo procedimiento se repite usando la diferencia finita hacia delante haciendo Ri = 2.5.4681 = Ri+1 − Ri 2.5 y Ri+1 = 2. DIFERENCIACION NUMERICA Ejemplo (Diferenciaci´n num´rica de la ecuaci´n de Manning) o e o 41 La ecuaci´n de Manning se emplea para describir el flujo de agua en un o canal abierto.4: a Q(1) (2.5639 − 380. hacia atr´s y centradas.5) = Q(Ri ) − Q(Ri−1 ) 390.5 se tiene que Q(1) = 104. o .993 1/2 dQ = Sf AR−1/3 dR n de tal forma que para R = 2.5) = Q(Ri+1 ) − Q(Ri−1 ) 400.6 − 2.6 y Ri−1 = 2. Sf = 0.49 1/2 S AR2/3 n f ´ donde Q es el caudal.5639 = 103. Sf es la pendiente del terreno.5 de forma num´rica empleando e diferencias finitas hacia delante.1154. A es el area transversal del canal y R es el denominado radio hidra´ lico.6: Q(1) (2.5 − 2.6 − 2.4.5 Para determinar la diferencia finita hacia atr´s se emplea Ri−1 = 2.0782 = 104. cuando R = 2.001 y A = 4.´ ´ 2.9107 − 380.5) = Q(Ri+1 ) − Q(Ri ) 400.1627 2(Ri+1 − Ri−1 ) 2. Se requiere calcular la deriu vada de Q con respecto a R. Esta ecuaci´n se encuentra dada por: o Q= 1.4.4 Para calcular la diferencia finita central se hace Ri+1 = 2. a La derivada de la ecuaci´n anterior es igual a: o 0.

41) .40) ´ El ultimo t´rmino de esta expresi´n se puede despreciar si se tiene en e o 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. o o operaci´n aritm´tica involucrada: o e Suma y Resta z = x + y o z = x − y.42) (2. A partir de estas se determina una nueva cantidad z mediante una funci´n f (x.42 CAP´TULO 2. o Generalmente las mediciones de las variables son obtenidas por dispositivos o en el laboratorio y por lo tanto tienen errores que deber´ ser tenidos en ıan cuenta en subsecuentes manipulaciones que se hagan a partir de ellas (por ej. es decir. la determinaci´n de alg´ n par´metro de inter´s mediante una f´rmula o u a e o matem´tica) a Para el estudio de la propagaci´n del error primero se van a considerar las o operaciones aritm´ticas b´sicas (suma. y) y por lo tanto se quiere cuantificar cual es el error o en la determinaci´n de z. pero de todas fora o mas se incluyen aqu´ La descripci´n de estas f´rmulas se hace de acuerdo a la ı.39) En el caso que existan m´s t´rminos en la suma/resta se tiene que el efecto a e acumulado es la suma de los errores parciales. las cuales tienen unos errores cuantificables expresados como ∆x y ∆y respectivamente. SERIE DE TAYLOR I 2.5. ıa a e Supongamos que se tienen dos valores medidos. Generalmente las o a expresiones que permiten calcular este error se dan en los cursos de estad´ ıstica b´sica y en las sesiones de introducci´n en los laboratorios. Propagaci´ n del Error o Definici´ n 9 o La propagaci´n del error se define como el efecto que tienen los errores de o las variables sobre la incertidumbre en una funci´n que se aplica sobre ellas. que a nivel general se denominan como x y y. Sabiendo que z = x × y esto se convierte en: z + ∆z = (x + ∆x)(y + ∆y) = xy + x∆y + y∆x + ∆x∆y (2. resta. En este caso se asume una situaci´n o pesimista. Se va a suponer que los errores ∆x y ∆y tienen valores que hacen que z se desvi´ lo m´ximo posible del valor real y por lo tanto los e a errores se acumulan con lo cual: ∆z = ∆x + ∆y (2. cu´l es el valor de ∆z?. Multiplicaci´ n : Las expresiones del error en la multiplicaci´n se pueden obteo o ner de forma sencilla. multiplicaci´n y divisi´n). debido e a o o a la importancia que tienen estas en la gran mayor´ de los c´lculos num´ricos.

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 − x∆y = y 2 + y∆y (2.´ 2. PROPAGACION DEL ERROR Multiplicaci´ n por un escalar : Multiplicar el error por el escalar: o ∆z = c × ∆x 43 (2.45) y simplificando se obtiene: ∆z = y∆x − x∆y y2 (2.5.46) ya que el t´rmino y∆y es peque˜ o comparado con y 2 e n .43) Divisi´ n : En este caso se asume que z = x/y e introduciendo los errores se o obtiene: x + ∆x (2.

008 m3 y ∆V = 1. SERIE DE TAYLOR I Ejemplo (Determinaci´n del error de la densidad del Concreto) o Como Ingeniero ud debe determinar la densidad de una muestra de concreto.44 CAP´TULO 2. De acuerdo con la ecuaci´n (2. Para esto se emplea la vieja y conocida expresi´n: o ρ= m V donde m es la masa de la muestra y V es el volumen.25 kg/m3 y ∆ρ = 30. En el caso que las expresiones matem´ticas involucren funciones diferentes a a las operaciones aritm´ticas tradicionales. con un error de 0.72 kg/m3 .46). el o cual est´ determinado por la escala de graduaci´n de la regla y que en este a o caso es igual a 0.48) .72 kg. el cual resulta ser igual a 20.1) y se trunca de tal manera que solo contenga a o la primera derivada: f (x) = f (x0 ) + f (x0 )(x − x0 ) (2. la serie de Taylor proporciona una e ´ herramienta util para la cuantificaci´n de la propagaci´n del error.20 × 10−4 m3 . Para su fortuna. la muestra presenta una forma c´ bica y por lo tanto la determinaci´n del voluu o men es sencilla. Sin embargo esta medici´n tiene un error.05 Kg. el volumen y su error est´n dados por: a V + ∆V = l3 + 3l2 ∆l donde ∆V = 3l2 ∆l y con lo cual se tiene que V = 0. y aplicandola en el caso de la muestra de concreto se obtiene que ρ = 2465. Debido a la forma de la muestra de concreto. Para la determinaci´n de la masa se emple´ una balanza y en este caso o o se obtuvo un valor de 19.1 cm (1 mm).0 cm. Se parte de o o la serie de Taylor (ecuaci´n 2.47) y reorganizando se obtiene: f (x) − f (x0 ) = f (x0 )(x − x0 ) ∆f (x0 ) = |f (x0 )|∆(x0 ) (2. para lo cual ud mide con una regla el lado de la muestra. el error en la densidad est´ dado por: o a ∆ρ = V ∆m − m∆V V2 donde ∆m y ∆V son los errores en la masa y el volumen respectivamente.

´ 2. La velocidad vs con la a 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´n o negativa del eje de las y.48. Para a a responder a esta pregunta se emplea la ecuaci´n 2. Por lo tanto la variable que tiene m´s influencia en la a determinaci´n de la velocidad de asentaniento corresponde al Radio de la o part´ ıcula.5. y con esto se obtuvo para ∆R = 1 × 10−3 m ∆vs = 501. la cual aplicada en o 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 dρs 9µ Si se asume que el fen´meno de asentamiento ocurre en un r´ y lo que o ıo se est´ sedimentando es arena de grano fino (R = 64µm = 64 × 10−3 m). 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´l de estos factores influye m´s en la velocidad de asentamiento.90 × 10−4 N ∆s/m2 .el agua tiene una densidad de ρ = 1000 kg/m3 y una viscosidad de µ = 8. La velocidad que tendr´ estas part´ ıan ıculas es vs = 1.0 kg/m3 ∆vs = 156. . PROPAGACION DEL ERROR Ejemplo (Ley de Stokes) 45 Considere un conjunto de part´ ıculas esf´ricas de densidad ρs y radio R e asent´ndose en un fluido de densidad ρ y viscosidad µ.604 m/s. a esta tiene una densidad de ρs = 2600 kg/m3 .603627465667915×104 m/s.13 m/s y para ∆ρs = 1.

SERIE DE TAYLOR I .46 CAP´TULO 2.

1) Q = AR2/3 S 1/2 n donde: E N MUCHOS PROBLEMAS DE LA I NGENIER´ IA Q caudal ´ A Area secci´n o R es el radio hidra´ lico u S es la pendiente n es el coeficiente de Manning El radio hidra´ lico se define como u R= A P (3.3) .1.2) ´ donde A = area de la secci´n y P = per´ o ımetro de la misma. 1 (3.1) queda: o 1 Q= A n A P 47 2/3 S 1/2 (3. Esta ecuaci´n es muy imporo o o tante en hidra´ lica ya que permite realizar la descripci´n del flujo en un canal u o abierto. Introducci´ n o C IVIL aparecen ecuaciones algebraicas que no se pueden resolver anal´ ıticamente. Un caso particular de esta situaci´n corresponde a la ecuaci´n de Manning.Cap´tulo 3 ı M´todos para la soluci´ n de e o ecuaciones no-lineales 3. La ecuaci´n de o Manning (ecuaci´n 3.

6 de la forma f (h) = 0.4) ´ donde b es la base y h es la profundidad del canal respectivamente.6) Un problema com´ n en el dise˜ o de estructuras hidra´ licas consiste en deteru n u minar la profundidad h de un canal que pueda conducir un caudal dado Q. 3. Tipos de Ra´ces ı En la ecuaci´n de Manning presentada anteriormente. Los o e procedimientos para solucionar dicho problema caen dentro de los denominados m´todos para la soluci´n de ecuaciones no lineales y son el tema central del e o presente cap´ ıtulo.5) Esto hace que la ecuaci´n de manning para un canal de secci´n rectangular o o se pueda expresar como: Q= 1 (bh)5/3 S 1/2 n (b + 2h)2/3 (3.6 la variable h no se puede despejar o de forma algebraica y por lo tanto se debe recurrir a una soluci´n num´rica. o ı el concepto anterior sigue aplicando. este ser´ un problema muy similar al de determinar las ra´ de un polinomio.48 ´ CAP´TULO 3. Por lo tanto la definici´n de este importante concepto se o presenta a continuaci´n: o Definici´ n 10 o Una ra´ de una funci´n f (x) es un n´ mero xr para el cual se cumple que ız o u f (xr ) = 0 . Sin embargo como es evidente de la ecuaci´n 3. con lo cual se obtiene: o f (h) = 1 (bh)5/3 S 1/2 − Q = 0 n (b + 2h)2/3 (3. el problema de deo terminar el h (la profundidad del canal) se puede reformular escribiendo la ecuaci´n 3. Si se supone que f (h) se puede expreo sar como un polinomio y recordando los conceptos del Algebra del Bachillerato.7) de tal forma que ahora el problema consiste en determinar los valores de h para los cuales se cumple la ecuaci´n anterior. SOLUCION ECUACIONES NO LINEALES I Para el caso de un canal cuya secci´n tiene forma rectangular.2. y la soluci´n de las ecuaciones no-lineales o se denominan ra´ ıces. ıa ıces La cuesti´n aqu´ es que a pesar que f (h) no tiene la forma de un polinomio. el per´ o ımetro mojado est´ dado por: a P = b + 2h (3. y el area: A = bh (3.

de una sola variable. Esta regla se puede expresar de la siguiente forma: Definici´ n 11 o Si un polinomio con coeficientes reales. o a ız En t´rminos generales la funci´n f (x) puede ser de dos tipos: e o Polinomios: es una expresi´n matem´tica de una o m´s variables que se o a a construye usando operaciones algebraicas: • adici´n o • substracci´n o • multiplicaci´n o • exponenciaci´n de constantes racionales (generalmente). Es bien sabido del algebra del ıces 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´n de la anteriores o Un criterio aproximado que puede ser empleado para determinar el n´ mero u de ra´ ıces en una funci´n polinomial corresponde a la denominada Regla de los o signos de Descartes.2. o Dependiendo del tipo de ecuaci´n se pueden tener ra´ o ıces de diferentes tipos. Esto quiere decir que estas corresponden a funciones que no se incluyen dentro de las funciones polinomiales y cuyos coeficients pueden ser polinomios. logaritmo en cualquier e base.3. TIPOS DE RA´CES I 49 Sin embargo es de aclarar que una funci´n puede tener m´s de una ra´ xr . y cualquier otra que se defina a partir de estas. funci´n exponencial. Los polinomios de segundo grado son un caso particular que permite ilustrar los ´ tipos de ra´ presentes en funciones no lineales. se ordena de forma decreciente de acuerdo al exponente. Para determinar el n´ mero de ra´ u ıces negativas reales se cambia el signo de las potencias impares y el n´ mero de ra´ u ıces en este caso es igual al n´ mero de cambios de signo en este polinomio modificado o es menor a este u por un m´ ltipo entero de 2. entonces el n´ mero de ra´ u ıces positivas reales de esa funci´n es igual el n´ mero de cambios de signo entre o u coeficientes consecutivos no-nulos o es menor a este por un m´ ltiplo entero u de 2. o Funciones Trascendentales: estas son funciones que no se pueden definir en t´rminos de expresiones algebra´ e ıcas que usen variables y constantes. como las mencionadas anteriormente. Ejemplo de este tipo de funciones incluyen: funciones trigonom´tricas. u .

50 ´ CAP´TULO 3. 2 ra´ ıces complejas y 1 ra´ real positiva ız Evidentemente las ra´ ıces complejas deben ser conjugadas entre s´ ı. Ejemplo (N´mero de Raices Negativas de un Polinomio) u Determinar el n´ mero de ra´ reales negativas del siguiente polinomio: u ıces f (x) = x4 − 3x3 − 9x2 + x − 5 usando la regla de los signos de Descartes. o. ız 3. 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´ximo a se tiene 1 ra´ real negativa. M´todos Abiertos e Definici´ n 12 o Los m´todos abiertos para la determinaci´n de ra´ e o ıces son aquellos en los cuales se hace necesario especificar el intervalo en donde se encuentra la ra´ ız. Dentro de los m´todos abiertos se pueden mencionar: e .3. SOLUCION ECUACIONES NO LINEALES I Ejemplo (N´mero de Raices Positivas de un Polinomio) u Determinar el n´ mero de ra´ u ı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.

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´s a asterisco cuadrado Caracter : -.3. el segundo al tipo de marcador y el tercero al tipo de l´ ınea.1.1: Tabla de opciones de graficaci´n de MATLAB o R .1. 3.y. En cuanto a s es una cadena conformada por tres caracteres. o En MATLAB R este m´todo se puede aplicar por medio de diferentes funcioe nes. la m´s apropiada es la funci´n plot. METODOS ABIERTOS M´todos Gr´ficos e a M´todos de Bisecci´n e o 51 3. M´todo Gr´fico e a Fundamentos Conceptuales Este m´todo es el m´s simple de todos y se basa en el hecho que la ra´ xr de e a ız una ecuaci´n no-lineal f (x) corresponde al punto en donde la gr´fica de dicha o a funci´n cruza el eje x.s) donde x corresponde al vector con las coordenadas x de los puntos que se quieran grafica. sin embargo.3. -(ninguno) Tipo de L´nea ı s´lida o punteada l´ ınea-punto l´ ınea intermitente no l´ ınea Tabla 3. Las opciones que MATLAB R ofrece para cada uno de ellos se presentan en la tabla 3.´ 3. mientras que y es el vector con las coordenadas y.1. El primero hace referencia al color que se quiere emplear para graficar.3. Esta funci´n tiene una a o o s´ ıntaxis muy sencilla: plot(x.

Declaraci´ n de la Funci´ n Con el fin de simplificar la utilizaci´n o o o de esta funci´n. Este vector se puede gr´ficar f´cilmente usando el comando: a a plot(y). el cual utiliza las opciones de graficaci´n por defecto de MATLAB R y que o corresponden a l´ ınea azul de color continuo.2.1.’).3. SOLUCION ECUACIONES NO LINEALES I (Jugando con las opciones de graficaci´n) o El procedimiento de graficaci´n en MATLAB R es relativamente sencillo.m" 52 ≡ Prueba Manning: Declaraci´n de la Funci´n 53a o o Prueba Manning: Inicializaci´n de variables 53b o Prueba Manning: Evaluaci´n funci´n 53c o o 3.1). es decir. Ecuaci´ n de Manning o Con el fin de aplicar los diferentes m´todos para la determinaci´n de las e o ra´ ıces de una ecuaci´n no-lineal es necesario implementar la ecuaci´n de Mano o ning en MATLAB R . Esta funci´n se encuentre implementada de la siguiente o forma: "prueba_manning.’-. Para realizar las pruebas respectivas se define un vector de n´ meros aleatorios con distribuci´n uniforme de la siguiente forma: u o >>y=rand(100. el valor de la funci´n de o inter´s (ecuaci´n 3.’o’).’b-’). 3. As´ mismo si el objetivo o ı es resaltar solamente el valor se puede graficar solamente con marcadores de bolita: plot(y.7) evaluada en h: e o . o si queremos tanto resaltar la variaci´n como los valores se puede construir o una gr´fica con l´ a ınea punteada y con marcadores de puntos: plot(y. sin marcadores.52 Ejemplo MATLAB R ´ CAP´TULO 3. y como variable de salida f .2.3.1. El comando m´s sencillo y util correspona a a de al plot(·) . solo se tiene una variable de entrada que corresponde a la o profundidad del canal h. que la instrucci´n anterior es equivalente a plot(y. o ya que existen una gran cantidad de comandos especializados que permiten ´ obtener gr´ficas de forma r´pida.1.

2. METODOS ABIERTOS Prueba Manning: Declaraci´n de la Funci´n 53a ≡ o o function f=prueba_manning(h) Fragmento referenciado en 52. Inicializaci´ n de Variables En este fragmento de c´digo se eso o pecifican los valores que son constantes en el problema del canal.3. . Q=1000.´ 3.2. 53 3.002.^(2/3). S=0./(b+2*h).*sqrt(S).3.1. Evaluaci´ n de la funci´ n Una vez se han definido las diferentes o o constantes del problema. Fragmento referenciado en 52. los cuales incluyen: b: ancho del canal en m Q: Caudal en m3 /s S: pendiente (medida adimensional) n: Coeficiente de rugosidad de manning Esto se en MATLAB R implementa de la siguiente forma: Prueba Manning: Inicializaci´n de variables 53b ≡ o b=30. Fragmento referenciado en 52.^(5/3). se puede evaluar la funci´n (ecuaci´n 3.2.022.3. 3.1.3. n=0.7): o o Prueba Manning: Evaluaci´n funci´n 53c ≡ o o f = Q-1/n*(b*h).

en primer lugar se define un vector de profundidades en el que se incluyen los valores para los cuales se desea graficar la funci´n de Manning.0 m ız . de pendiente de S = 0.f) El resultado de este procedimiento se puede apreciar en la figura 3. Los valores contenidos en el vector h corresponden a los valores que van a ir en el eje x.1:10]’.1: Gr´fica de la profundidad contra el valor de la funci´n f (h). Para resolver este problema.022. El valor a o de la ra´ es aproximadamente 6.002 y un coeficiente de manning de n = 0. 1000 500 función f(h) 0 −500 −1000 −1500 0 2 4 6 8 10 Profundidad(m) Figura 3.54 Ejemplo MATLAB R ´ CAP´TULO 3. y por lo tanto se debe definir los valores del eje y. Para graficar sencillamente se emplea la funci´n plot y se especifican los o valores de x y y: >> plot(h. SOLUCION ECUACIONES NO LINEALES I (Determinaci´n de ra´ usando el m´todo Gr´fico) o ıces e a Determine la profundidad del canal h que permite pasar un caudal de q = 1000 m3 /s para un valor de ancho b = 30 m. para lo cual definimos un vector de la siguiente forma: >> h=[0:0. En este caso o se quiere graficar para valores de profundidad entre 0 y 10 m. lo cual se hace por medio de: >> f=prueba_manning(h).1 y de la cual es evidente que el valor para el cual f (h) = 0 es de aproximadamente 6 m.

xu ].3.2(b).2.3. a ız Ahora es necesario mencionar que el criterio en el que se fundamenta el teorema 4para realizar la b´ squeda de las ra´ u ıces no es siempre v´lido. M´todo de la Bisecci´ n e o Fundamentos Conceptuales Este es uno de los m´todo m´s sencillos que existe y su utilizaci´n se basa e a o en la siguiente idea que se presenta como un teorema: Teorema 4 Una ecuaci´n de la forma f (x) = 0. ız Las desventajas del m´todo de la bisecci´n incluyen: e o La convergencia a la ra´ xr puede ser lenta ız Si la ra´ xr se encuentra muy cerca de uno de los extremos del intervalo ız [xl . f (xl )f (xm ) > 0: la ra´ xr se encuentra en el intervalo f (xm )f (xu ). xu ] si se cumple que f (xl )f (xu ) < 0 ız La idea expuesta por este teorema aparece representada de forma gr´fica en la a figura 3.1. xu ] entonces se deız termina el punto medio xm de este intevalo con lo cual generamos dos nuevos subintervalos: [xl . Para ız esto se eval´ a la funci´n en xm . 3. Aqu´ se tienen dos casos: ı f (xl )f (xm ) < 0: la ra´ xr se encuentra en este intervalo. a . es decir se obtiene f (xm ) y se calcula el signo u o de f (xl )f (xm ). METODOS ABIERTOS 55 3. En este ız 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´ se va volviendo m´s peque˜ o. En este caso el ız procedimiento se repite nuevamente y se hace que xu = xm . xm ] [xm . Sin ız embargo este teorema garantiza que si la condici´n f (xl )f (xu ) se cumple puede o existir m´s de una ra´ tal y como se aprecia en la figura 3.2. hasta que al final se llegue a ız a n aislar la ra´ x0 . De esta resulta claro que existe un ra´ en el intervalo [xl .3 ız a Debido a que la ra´ xr se encuentra en el intervalo [xl . o o tiene al menos una ra´ en el intervalo [xl . xu ] Ahora es necesario determinar en que intervalo se encuentra la ra´ xr .´ 3. xu ] entonces el n´ mero de iteraciones necesario para que el algoritmo u converja ser´ muy alto. ya que a se puede tener una situaci´n en donde f (xl )f (xu ) > 0 y en el intervalo pueden o existir una ra´ o m´s. donde f (x) es una funci´n real continua.2(a). tal como aparece representado en la figura 3.3.

b). ız o Si se selecciona un intervalo en donde no hay cambio de signo de la funci´n. Existe al menos una ra´ en el intervalo [xl . a Ejemplo (Dimensi´n caracter´ o ıstica de un lago) En problemas de transporte de contaminantes en cuerpos de agua es indispensa- .2: a). entonces no hay garant´ que el procedimiento presente convergeno ıa cia. xu ] si la funci´n ız o cambia de signo.56 ´ CAP´TULO 3. Si el intervalo seleccionado [xl . el procedimiento presentar´ convergencia a dicho punto. xu ] incluye un punto de singularidad. Pero puede presentarse la situaci´n que exista m´s de una o a ra´ si la condici´n se cumple. SOLUCION ECUACIONES NO LINEALES I (a) (b) Figura 3.

3.´ 3.4) y se quiere determinar su dimensi´n lineal caracter´ o ıstica usando el m´todo de la bisecci´n. Suponga que se tiene un lago (ver figura 3. Estas dimensiones caracter´ ısticas se ´ pueden considerar las escalas (representadas por areas. METODOS ABIERTOS 57 Figura 3. Figura 3.4: Lago con forma irregular. longitudes y/o vol´ meu nes) en los cuales se puede asumir que una propiedad es representativa o constante. Para determinar la dimensi´n caracter´ o ıstica de este se aproxima la forma mediante una cirfunferencia de radio r ble conocer las dimensiones caracter´ ısticas. En este caso la e o .3: En este caso se presenta una situaci´n en donde la funci´n tiene o o valores positivos en los extremos del intervalo pero existen ra´ ıces en este.

5 n=2 n=1 n=3 n=4 0 ´ CAP´TULO 3. Esta se puede determinar f´cilmente a a partir de la relaci´n: o AL = 4πr2 ´ en donde AL es el area del lago y r es la dimensi´n caracter´ o ıstica deseada.58 0. xU ] en donde se encuentra una ra´ xr .5 −1 −1. Se parte del intervalo [xL . En ese moo mento se modifica el intervalo original y el procedimiento se repite nuevamente. Se define la nueva aproximaci´n a la o ra´ como el punto medio del intervalo xm y se determina para que extremo se ız cumple que el producto de los valores de la funci´n sea menor que 0.5 1 1.5: Ejemplo de aplicaci´n del m´todo de la Bisecci´n o b´ squeda binao e o u ria.5 xL xL m xm xm xm L U xU −2 0 0. ´ Despejando esta ultima variable se tiene: r= AL 4π de tal manera que la dimensi´n lineal caracter´ o ıstica es equivalente a evaluar la ´ ra´ cuadrada de la un valor espec´ ız ıfico.5 2 2. Supongamos que el area del lago es de . dimensi´n lineal caracter´ o ıstica del lago se asume como el radio de la circunfe´ rencia que tiene la misma area superficial.5 3 Figura 3. SOLUCION ECUACIONES NO LINEALES I Raíz=2 −0. y para el ız cual se cumple que f (xL ) × f (xU ) < 0.

098775 f (1.5)2 − 1.25)2 − 1.0 − 1.25 2 y al evaluar la funci´n en los extremos del intervalo y el punto medio se obtiene: o f (1.375)2 − 1.5625 − 1.0)2 − 1.25 − 1.5)2 − 1. Para saber si cual extremo del intervalo se modifica.2606 de donde se determina que se debe cambiar el extremo inferior del intervalo y ahora xl = 1.9894 = 2. el cual en este caso ser´ [1.9894 f (1.0 − 1. El punto u ıa medio de este intervalo y por lo tanto la primera aproximaci´n a la ra´ es: o ız x(1) = m (k) 2.9894 = 2. con lo cual se tiene √ r = 1.0) = (1.5 = 1.9894 = 0. Para la iteraci´n 2 se tiene que el punto medio ahora es igual a: o x(2) = m 1.9894 = 1.9894 = 4.5 2 u o donde xm el k representa el n´ mero de iteraci´n.9894 = −0.9894 = 1.0) = (2.0 a 1. 2].9894.4269 f (1.25.0)2 − 1.25)2 − 1.5) = (1.2606 .0106 De los anteriores valores resulta claro que el extremo superior del intervalo se debe cambiar de 2.9894 = 2. el punto medio es igual a: o x(3) = m 1.0 + 1.0 − 1.5)2 − 1.5) = (1.9894 = 1.25) = (1.25 − 1.9894 = 2.9894 = 0.375 2 y al evaluar la funci´n en los extremos del intervalo y el punto medio se obtiene: o f (1.50 = 1.9894 f (1.9894 = 1.9894 = −0.4104 y por lo tanto la dimensi´n lineal que o caracter´ ıstica es igual a r = 1. es necesario evaluar la funci´n en los 3 puntos xl .890625 − 1.5) = (1. Para la tercera iteraci´n.5.0 + 1. Para calcular este valor se emplea la siguiente funci´n: o f (x) = x2 − 1.0 = 1.9894 = 0 (3.4269 f (1.´ 3.3.25) = (1.25 + 1.9894 = −0.2606 f (2.0)2 − 1.375) = (1.5625 − 1.9894 = −0.9894 = 0.8) Para aplicar el m´todo de la bisecci´n en la soluci´n de este problema debemos e o o especificar el intervalo de b´ squeda.9894 = 1. xm o y xu : f (1.25 − 1. METODOS ABIERTOS 59 25km2 .9894 = −0.0) = (1.

2.25 − 1.5 = 1.m" 60 ≡ Bisecci´n: Declaraci´n de la funci´n 61a o o o Bisecci´n: Inicializaci´n de variables 61b o o Bisecci´n: Ciclo Principal 62a o se 3.375)2 − 1. xu : extremo inferior y superior del intervalo de b´ squeda u f unc: funci´n a la cual se le quieren determinar los valores de la ra´ o ıces maxit: N´ mero m´ximo de iteraciones u a errmin: error m´ ınimo de la soluci´n o Las variables de salida son: xr: valor de la ra´ obtenido por este m´todo ız e f : vector con los valores de la funci´n para cada una de las iteraciones o err: vector con los valores del error obtenido para cada una de las iteraciones xr .60 ´ CAP´TULO 3.4375)2 − 1.9894 = −0.375 + 1.0987 f (1. Para la cuarta iteraci´n. SOLUCION ECUACIONES NO LINEALES I de donde se determina que se debe cambiar el extremo inferior del intervalo y ahora xl = 1. el punto medio es igual a: o x(4) = m 1.2.9894 = 2.3.9894 = 2.8906 − 1.4375 2 y al evaluar la funci´n en los extremos del intervalo y el punto medio se obtiene: o f (1.5) = (1.5)2 − 1.9894 = 0. 3. Determinaci´ n de ra´ces usando el m´todo de la bisecci´ n o ı e o R Una implementaci´n del procedimiento de la bisecci´n en MATLAB o o presenta a continuaci´n: o "biseccion.2606 El anterior procdimiento se repite hasta que el error relativo de la ra´ aproxiız mada sea menor que la tolerancia especificada inicialmente.4375) = (1.3.1.2.0664 − 1.9894 = 0.375) = (1.375. Declaraci´ n de la funci´ n o o ci´n son la siguientes: o Las variable de entrada de esta fun- xl .9894 = 1.0770062 f (1.2.

3. x(1)=xl.func.2. La estructura de este ciclo principal es la siguiente: .3. 3.err.´ 3. root=0.iter]=bisection(xl. Ciclo Principal La b´ squeda de la ra´ se implementa como un u ız ciclo while ya que no se conoce de antemano el n´ mero de iteraciones que se van u a emplear para obtener la ra´ xr. Sin embargo este ciclo se controla mediante ız el n´ mero de iteraciones (definido en la variable iter y que contin´ e mientras u u tiene un valor menor a maxiter) y que el error relativo de la ra´ actual err sea ız mayor a cierto valor m´ ınimo de error predefinido por el usuario y almacenado en la variable minerr.2. f(1)=feval(func.2.2.2. Bisecci´n: Inicializaci´n de variables 61b ≡ o o iter=1. El error relativo err se inicializa en 100 %. METODOS ABIERTOS iter: n´ mero de iteraciones empleado para obtener el valor de xr u 61 Bisecci´n: Declaraci´n de la funci´n 61a ≡ o o o function [x.errmin) Fragmento referenciado en 60. er=100. el n´ mero de iteraciones iter se iniu cializa en 0. Inicializaci´ n de Variables En este fragmento de c´digo se iniciao o lizan las diferentes variables que se van a utilizar en el resto del procedimiento.3.x(1)).f. xr=xl.3. el valor de la ra´ se hace igual al extremo inferior del intervalo ız xl . 3. Fragmento referenciado en 60.xu. err(1)=er.maxit.

C´lculo de las funciones Se eval´ a la funci´n en cada uno a u o de los extremos del intervalo [xl . Para esto empleamos la funci´n de MATLAB o R feval. 3.xl). Ciclo Principal Bisecci´n: C´lculo nueva soluci´n 62b o a o Ciclo Principal Bisecci´n: C´lculo de las funciones 62c o a Ciclo Principal Bisecci´n: Donde esta la soluci´n 63a o o Ciclo Principal Bisecci´n: C´lculo error e incremento iteraciones 64a o a Ciclo Principal Bisecci´n: Asignaci´n de resultados 64b o o end.3.62 ´ CAP´TULO 3.xr). fl=feval(func.3.2. Fragmento referenciado en 62a.5*(xl+xu).2. 3. Donde est´ la soluci´ n? Una vez se ha determinado la soa o luci´n en cada uno de los 3 puntos de inter´s. Fragmento referenciado en 60.2. Fragmento referenciado en 62a.3.3.2.2.3.3.2. xu ]. SOLUCION ECUACIONES NO LINEALES I Bisecci´n: Ciclo Principal 62a ≡ o while (err > errmin & iter < maxit ).1. Ciclo Principal Bisecci´n: C´lculo de las funciones 62c ≡ o a fr=feval(func. se determinar en donde puede o e encontrarse la soluci´n.2.3. 3. xr=0. Para esto existen 3 posibilidades: o La ra´ se encuentra en la mitad inferior del intervalo ız La ra´ se encuentra en la mitad superior del intervalo ız El valor actual corresponde al valor de la ra´ ız . C´lculo nueva soluci´ n a o emplea la ecuaci´n o Para calcular la nueva soluci´n se o Ciclo Principal Bisecci´n: C´lculo nueva soluci´n 62b ≡ o a o xold=xr.

root=xr. en ız este caso se asigna como extremo superior del intervalo el valor de xr Soluci´n: ra´ en mitad inferior 63b ≡ o ız if(fr*fl<0).3. en cuyo caso se asigna como extremo inferior del intervalo de b´ squeda el valor de xr y se asigna este valor como aproximaci´n de la ra´ u o ız (root). end Fragmento referenciado en 63a. Fragmento referenciado en 63a.´ 3. entonces esto implica que el valor de xr se puede considerar una ra´ de la ecuaci´n en estudio y por lo ız o tanto este valor se asigna en root . Soluci´n: ra´ en mitad superior 63c ≡ o ız elseif(fr*fl>0). 63 La ra´ se encuentra en la mitad inferior si se cumple que f (xr ) × f (xl ) < 0. root=xr. xl=xr. METODOS ABIERTOS Ciclo Principal Bisecci´n: Donde esta la soluci´n 63a ≡ o o Soluci´n: ra´ en mitad inferior 63b o ız Soluci´n: ra´ en mitad superior 63c o ız Soluci´n: ra´ encontrada 63d o ız Fragmento referenciado en 62a. Soluci´n: ra´ encontrada 63d ≡ o ız else root=xr. xu=xr. . La ra´ se encuentra en la mitad superior del intervalo si se cumple la condici´n ız o f (xr ) × f (xl ) > 0. Si ninguna de las dos condiciones anterior se cumple. Fragmento referenciado en 63a.

err(iter)=er. u Ciclo Principal Bisecci´n: C´lculo error e incremento iteraciones 64a ≡ o a er=(abs(xr-xold)/xr)*100. . ız Ciclo Principal Bisecci´n: Asignaci´n de resultados 64b ≡ o o x(iter)=xr.2. C´lculo error e incremento de iteraciones Una vez se ha a obtenido una aproximaci´n a la ra´ de la ecuaci´n se determina la calidad o ız o num´rica de la misma calculando el error relativo.3. f(iter)=feval(func.5.2. as´ coo ız ı mo el valor de la funci´n f unc en ese punto y error relativo de la aproximaci´n o o actual de la ra´ se almacenan en los respectivos vectores.2. Fragmento referenciado en 62a. Asignaci´ n de resultados El valor actual de la ra´ xr.3.64 ´ CAP´TULO 3. 3.3. iter=iter+1.4. As´ mismo se incrementa el e ı n´ mero de iteraciones. Fragmento referenciado en 62a.xr). SOLUCION ECUACIONES NO LINEALES I 3.3.2.

´ 3.3. METODOS ABIERTOS Ejemplo MATLAB
R

65

(Soluci´n de Manning con el M´todo de la Bisecci´n) o e o

Para encontrar la ra´ de una funci´n empleando el m´todo de la Bisecız o e ci´n es necesario definir el intervalo en donde se debe realizar la b´ squeda. o u Para este caso particular, los resultados obtenidos del m´todo gr´fico (ver e a Figura 3.1) indica que el valor de la ra´ es de aproximadamente 6, de tal ız forma que el intervalo de b´ squeda corresponde a [5, 7], el n´ mero m´ximo u u a de iteraciones es de 100 y el error m´ ınimo deseado para la soluci´n es de o 1 × 10−3 . La soluci´n de la ecuaci´n de Manning usando el m´todo de la o o e Bisecci´n se puede implementar en MATLAB R de la siguiente forma: o >>[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 infiere que el valor de la profundidad del canal es de 6.1450 m. ı

3.3.2.3.

An´lisis de Convergencia a

A continuaci´n se presenta un an´lisis de convergencia para el m´todo de la o a e bisecci´n. Para realizar dicho an´lisis se parte del concepto de error absoluto o a
0 Ea = x0 − x0 = ∆x0 u l

(3.9)

donde los super´ ındices definen la iteraci´n para la cual este importante par´meo a tro se calcula. Para la primera iteraci´n el error est´ dado por: o a ∆x0 (3.10) 2 y debido a que en cada iteraci´n el error disminuye a la mitad se tiene que: o
1 Ea =

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

n=

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

∆x0 Ea,d

(3.12)

66

´ CAP´TULO 3. SOLUCION ECUACIONES NO LINEALES I

La convergencia del m´todo se encuentra asegurada por la ecuaci´n 3.11 en e o donde es evidente que el error disminuye a medida que el n´ mero de iteraciones u n aumenta.

3.4.

M´todos Cerrados e

Definici´ n 13 o Los m´todos cerrados para determinar ra´ e ıces de ecuaciones no lineales son aquellos que no requieren espeficar un intervalo de b´ squeda sino solamente u un valor inicial de la ra´ ız. Dentro de los m´todos cerrados m´s importantes se pueden mencionar: e a M´todo de Newton e M´todo de la secante e M´todo de la secante modificado e los cuales se explicar´n a continuaci´n. a o

3.4.1.
3.4.1.1.

M´todo de Newton e
Fundamentos Conceptuales

El m´todo de Newton al ser un m´todo cerrado requiere que se especifique e e un valor inicial de la ra´ x0 y este valor se va refinando mediante un esquema ız iterativo. El m´todo de Newton tiene su fundamento en la serie de Taylor aplicada en e la funci´n f (x), con lo cual se tiene: o 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)

´ 3.4. METODOS CERRADOS

67

Esta ecuaci´n se puede expresar como un esquema iterativo de la siguiente foro ma: f (xn ) (3.17) xn+1 = xn − f (xn+1 ) La idea fundamental del m´todo de Newton consiste en especificar una soluci´n e o inicial x0 y al aplicar la ecuaci´n 3.17 para mejorar la estimaci´n de la ra´ xr . o o ız Este procedimiento se repite hasta que las diferencias obtenidas en los valores obtenidos sean menores que una tolerancia especificada por el usuario. El m´todo de Newton tambi´n puede interpretado de forma geom´trica usando e e e ´ la situaci´n representada en la figura 3.6. De esta se infiere que el angulo θ tiene o una tangente igual a: f (xi ) − 0 (3.18) tan (θ) = xi − xi+1 De aqu´ resulta de inter´s el valor de xi+1 ya que este corresponde a la nueva ı e estimaci´n de la ra´ xr y por lo tanto al despejar se tiene: o ız 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´n y la derivada de la funci´n. Esta ecuaci´n es equivalente a la expresi´n o o o o 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´n geom´trica del m´todo de Newton o e e

A pesar que este procedimiento es uno de los m´s empleados en la pr´ctica para a a la determinaci´n de ra´ tiene limitaciones. Algunas de las desventajas de este o ıces m´todo son las siguientes: e

68
140

´ CAP´TULO 3. SOLUCION ECUACIONES NO LINEALES I

120

100

80

60

40

20 Raíz=2.3223 0 x3 x2 3 3.5 x1 4 x0 4.5 5

.0

−20 0

0.5

1

1.5

2

2.5

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

Como todo m´todo iterativo la convergencia no est´ asegurada. Por ejeme a plo si se elige mal la soluci´n inicial x0 el m´todo en algunas oportunidao e des puede presentar divergencia. El m´todo presenta divergencia si la ra´ xr de la funci´n f (x) es tambi´n e ız o e un punto de inflexi´n de la misma. o El m´todo presenta problema en cercan´ de puntos m´ximos y m´ e ıas a ınimos ya que en estos puntos f (x) = 0 y por lo tanto la ecuaci´n 3.17 no est´ deo a finida. En el caso de funciones con m´ ltiples raices se pueden presentar probleu

´ 3.4. METODOS CERRADOS mas de convergencia por saltos en la determinaci´n de xr o

69

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

(3.20)

(x0 ) = 4.0

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

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

Para la iteraci´n 3 se tiene que: o x2 = 1.4129 f (x2 ) = 0.00688 f (1) (x2 ) = 2.8258 y por lo tanto el nuevo valor de la ra´ es: ız x3 = x2 − f (x2 ) 0.00688 = 1.4129 − = 1.4104 (1) (x ) f 2.8258 2

El anterior procdimiento se repite hasta que el error relativo de la ra´ aproxiız mada sea menor que la tolerancia especificada inicialmente.

2.dfunc. Se inicializa en 100 % xold: valor de la ra´ en la iteraci´n anterior (Para calcular el error relativo ız o por iteraci´n).2.1. Se inicializa con el valor de la ra´ inicial.func.70 3. Inicializaci´ n de Variables Para realizar la determinaci´n de la o o ra´ de la funci´n f unc se hace necesario inicializar las variables de salida (exız o plicadas en la secci´n anterior) junto con las siguientes variables: o iter: contador de iteraciones er valor inicial de error relativo.iter]=newton(xguess. SOLUCION ECUACIONES NO LINEALES I Determinaci´ n de ra´ces con el m´todo de Newton o ı e La funci´n en MATLAB R que implementa el m´todo de newton se denomina o e newton. Declaraci´ n de la funci´ n o o riables de entrada: : Esta funci´n tiene las siguientes vao xguess: valor inicial de la ra´ Generalmente depende del problema y se ız.2.f. puede determinar por m´todos gr´ficos e a f unc: funci´n en estudio y de la cual se quiere determinar la ra´ o ız df unc: derivada de la funci´n de la cual se quiere determinar la ra´ o ız err min: error m´ ınimo que se quiere obtener en la ra´ ız maxit: N´ mero m´ximo de iteraciones u a Esta funci´n tiene como variables de salida las siguientes: o x: vector Newton: Declaraci´n de la funci´n 70b ≡ o o function [x.1. ´ CAP´TULO 3.2. o ız .errmin. 3.4.err.m y tiene la siguiente estructura "newton.1.4.4.1.m" 70a ≡ Newton: Declaraci´n de la funci´n 70b o o Newton: Inicializaci´n de variables 71a o Newton: Ciclo Principal 71b 3.maxit) Fragmento referenciado en 70a.

Se inicializa con el valor inicial ız o de la ra´ ız. METODOS CERRADOS 71 xr: valor de la ra´ en la iteraci´n actual.4. f(1)=feval(func.3.2. Ciclo Principal Debido a que no se conoce de antemano el n´ meu ro de iteraciones necesario para que el procedimiento de obtenci´n de la ra´ o ız converja a una soluci´n satisfactoria. . 3.17.1. con lo cual ız o se posibilita calcular el error relativo. Para evaluar la funci´n y su derivada se o o emplea el comando de MATLAB R feval. Actualizaci´ n de la soluci´ n Aqu´ se realiza el procedimieno o ı to clave del m´todo de Newton. Posteriormente el valor de la ra´ actual ız se modifica usando la ecuaci´n 3. 3.x(1)).4. el m´todo de Newton se implementa a o e nivel computaciona como un ciclo while.´ 3.1. El ciclo se detiene ya sea o cuando el n´ mero de iteraciones supera el valor m´ximo max it o cuando el u a error relativo err es menor al error m´ ınimo tolerable en la soluci´n err min. err(1)=er.2. controlado tanto por el n´ mero de iteu raciones iter y por el error relativo de la soluci´n err.4.1. x(1)=xguess. Newton: Inicializaci´n de variables 71a ≡ o iter=1. o La estructura de este ciclo principal es la siguiente: Newton: Ciclo Principal 71b ≡ while (er>=errmin & iter<maxit) Ciclo Principal Newton: Actualizaci´n soluci´n 72a o o Ciclo Principal Newton: C´lculo error e incremento iteraciones 72b a Ciclo Principal Newton: Asignaci´n de resultados 72c o end Fragmento referenciado en 70a. Dentro de el ciclo la primera tarea que se hace e es asignar a xold el valor de la ra´ obtenido en la iteraci´n anterior.3. Fragmento referenciado en 70a. xrold=xguess. er=100. xr=xguess.

xr).3. xr=xrold-feval(func. f(iter)=feval(func. err(iter)=er. ya que esta es la otra ı variable que controla el ciclo. C´lculo del error e incremento de iteraciones Como se a mencion´ anteriormente el criterio de convergencia de este m´todo es el error o e relativo.2. SOLUCION ECUACIONES NO LINEALES I Ciclo Principal Newton: Actualizaci´n soluci´n 72a ≡ o o xrold=xr. Ciclo Principal Newton: C´lculo error e incremento iteraciones 72b ≡ a er=abs((xr-xrold)/xr)*100. Fragmento referenciado en 71b. ız o As´ mismo se incrementa el contador de iteraciones iter.72 ´ CAP´TULO 3.1.xrold). iter=iter+1.3. Fragmento referenciado en 71b. Asignaci´ n de resultados o Ciclo Principal Newton: Asignaci´n de resultados 72c ≡ o x(iter)=xr.4. Fragmento referenciado en 71b.3. 3.2.3. 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´n que implementa esta derivada tiene la siguiente estructura: o . en este caso h.4.2.1.1. 3.xrold)/feval(dfunc.4. Derivada de la ecuaci´ n de Manning o Con el fin de aplicar el m´todo de Newton para la soluci´n de la ecuaci´n e o o de Manning es necesario calcular la derivada de la funci´n de inter´s 3. 3.6 con o e respecto a la variable que nos interesa despejar. as´ que para la soluci´n actual se determinar el error relativo obtenido ı o al comparar este valor con el de la ra´ obtenida en la soluci´n anterior xold.

Q=1000.4.3.´ 3.1./(b+2*h).1. C´lculo de la derivada En este fragmento de c´digo se determina a o el valor de la derivada de la ecuaci´n de Manning (ecuaci´n 3.^(5/3)).3.1.022. METODOS CERRADOS "der_manning.4.3.2. Declaraci´ n de la funci´ n Al igual que en el caso de la funci´n de o o o ´ Manning.4. y la variable de salida es el valor de la derivada yp: Derivada Manning: Declaraci´n de la funci´n 73b ≡ o o function [yp]=der_manning(h) Fragmento referenciado en 73a.002. Fragmento referenciado en 73a.3.^(2/3)-4/3*t. S=0. . 3.4. Inicializaci´ n de Variables o Derivada Manning: Inicializaci´n de variables 73c ≡ o b=30.m" 73a ≡ Derivada Manning: Declaraci´n de la funci´n 73b o o Derivada Manning: Inicializaci´n de variables 73c o Derivada Manning: C´lculo derivada 73d a 73 3. n=0.4.1. Fragmento referenciado en 73a. 3.1. yp = -1/n*sqrt(S)*(5/3*b*t.3). para esto o o se calcula primero la variable t = (bh)/(b+2h) y con esta se determina f´cilmente a la derivada: Derivada Manning: C´lculo derivada 73d ≡ a t = b*h. la unica variable de entrada corresponde a la profundidad del canal h.

@der_manning.23) y sustituy´ndola en la expresi´n original (ecuaci´n 3.22) f (xi+1 ) = f (xi ) + f (1) (xi )(xi+1 − xi ) + Si xr . Compar´nse los resultados con el m´todo de la bisecci´n y con e e o el m´todo de la secante.1e-3.00019019602665 En este caso particular se ha obtenido un valor de profundidad de 6. >> iter iter = 4 >> [x(iter) f(iter) err(iter)] ans = 6.m de la siguiente se puede hacer en MATLAB o forma: >> [x.24) . la serie anterior se trunca teniendo en cuenta solamente dos t´rminos: e f (xi+1 ) ≈ f (xi ) + f (1) (xi )(xi+1 − xi ) (3.6). An´lisis de convergencia a El an´lisis de convergencia del m´todo de Newton se basa en la descompoa e sici´n en series de Taylor de una funci´n en el punto xi+1 dada por la siguiente o o expresi´n: o f (2) (ξ) (xi+1 − xi )2 (3.iter]=newton(7. se reemplaza en la ız o expresi´n anterior se tiene que f (xi+1 ) = 0 y por lo tanto se puede expresar o como: 0 = f (xi ) + f (1) (xi )(xr − xi ) (3. que es el valor de la ra´ de la ecuaci´n f (x).f.@prueba_manning. SOLUCION ECUACIONES NO LINEALES I (Soluci´n de Manning con el M´todo de Newton) o e Para aplicar el m´todo de Newton en la soluci´n de la ecuaci´n de Mane o o ning es necesario conocer la derivada de la funci´n de inter´s (ecuaci´n o e o 3.21) e o o 0 = f (xi ) + f (1) (xi )(xi+1 − xi ) + f (2) (ξ) (xi+1 − xi )2 2! (3. La soluci´n de la ecuaci´n de Manning usando el m´todo de Newton o o e R usando la funci´n newton.00000000101147 0.4.74 Ejemplo MATLAB R ´ CAP´TULO 3. e 3.4.err.100).14 m en 4 iteraciones.1.14494463443898 -0.21) 2! Sin embargo con el fin de simplificar las manipulaciones matem´ticas que de a esta se derivan.

M´todo de la Secante e Fundamentos Conceptuales Una de las grandes desventajas del m´todo de Newton-Raphson es que se e tiene que conocer la derivada de la funci´n que se est´ evaluando.2. 3.i (3. lo cual indica que el error disminuye y por lo tanto el o m´todo converge a la ra´ xr . La derivada de f (x) en el punto e xi se puede obtener usando: f (xn ) = f (xn ) − f (xn−1 ) xn − xn−1 (3.i+1 + 2! y si se supone que hay convergencia. En estos caso resulta util contar ıcil con un m´todo alternativo que no requiera conocer la derivada de antemano.i (3. entonces xi y ξ se deben aproximar a la ra´ xr y la ecuaci´n anterior se puede expresar como: ız o (1) Er.27) de donde es claro que el error en la iteraci´n i + 1 es proporcional al cuadrado o del error en la iteraci´n i.28) La ecuaci´n anterior se puede reemplazar en la ecuaci´n 3.23 y 3. lo cual no o a siempre es posible.2.4.4. .i+1 f (2) (xr ) 2 = − (1) E 2f (xr ) r. Como o e es evidente de la ecuaci´n anterior.24 se obtiene: 0 = f (1) (xi )(xr − xi+1 ) + f (2) (ξ) (xr − xi )2 2! 75 (3. Este m´todo tiene las mismas ventajas y desventae jas que el m´todo de Newton.26) 0 = f (xi )Er. METODOS CERRADOS Restando las ecuaciones 3. e sino que esta se determine de forma num´rica.1. e ız 3.´ 3.29) f (xn ) − f (xn−1 ) y con la cual se define la regla de actualizaci´n del m´todo de la secante. x1 . este m´todo requiere dos valores iniciales o e x0 .17 con lo cual se o o obtiene: f (xn )(xn − xn−1 ) xn+1 = xn − (3.i+1 = |xi+1 − xi | o y por lo tanto la ecuaci´n anterior se simplifica para obtener: o f (2) (ξ) 2 Er.4.25) Ahora recordando la definici´n de error absoluto se tiene que Er. los cuales no es necesario que definan un intervalo que contenga a la ra´ ız xr que se quiere determinar. especialmente en el caso de funciones que no tienen deriva´ da o cuya derivada es muy dif´ de determinar. y dependiendo de los valores iniciales se puede e presentar o no convergencia.

. con lo cual se establecen las siguientes relaciones: DC AB = AE DE f (xi ) f (xi−1 ) = xi − xi+1 xi−1 + xi+1 y del cual se despeja xi+1 para obtener: xi+1 = xi − f (xi )(xi − xi−1 ) f (xi ) − f (xi−1 ) (3. Dados dos valores xi y xi−1 se define una l´ ınea recta que una los puntos f (xi ) y f (xi−1 ). f (x) f (xi−1 ) B f (xi ) E xi+1 D C xi A xi−1 x . La recta secante o e e (en color gris) se define entre los puntos f (xi−1 ) y f (xi ) y con esta se aproxima el nuevo valor de la ra´ ız. . La aplicaci´n de este m´todo puede verse en acci´n en la figuo o e o ra 3.76 ´ CAP´TULO 3.8: Interpretaci´n geom´trica del m´todo de la secante. Figura 3.9. De esta forma se definen 2 triangulos similares ABE y DCE.30) Esta ecuaci´n se puede expresar como un esquema iterativo con lo cual aparece o la ecuaci´n 3.8. la cual aparece en la figura 3.31) (3.29. SOLUCION ECUACIONES NO LINEALES I Este m´todo tambi´n admite una interpretaci´n geom´trica similar al del m´toe e o e e do de Newton.

01 % Para la iteraci´n 1 se tiene que o x0 = 2.4211 f (x3 ) = 0.4844 f (x2 ) = 0.00688 x1 = 1.6206 = 1.9) = 1.4211 Para la iteraci´n 3 se tiene que: o x2 = 1.0000 − 1.´ 3.2140 − 1.9 f (x1 ) = 1.0 − 2.0632 = 1.6206 x2 = 1.0106 × (2.0 f (x0 ) = 0.4844 Para la iteraci´n 2 se tiene que: o x1 = 1. METODOS CERRADOS 77 Ejemplo (Dimensi´n caracter´ o ıstica de un lago) Para aplicar el m´todo de la secante para la soluci´n de este problema es necee o sario especificar: x0 soluci´n inicial 1. que en este caso es f (1) (x) = 2x o Tolerancia m´ ınima aceptable.6206 = 2.0 − 1.0 y x1 soluci´n inicial 2 que este o o caso corresponde a 1.2140 y por lo tanto la nueva ra´ es igual a: ız x3 = x2 − f (x2 )(x2 − x1 ) f (x2 ) − f (x1 ) 0.9 f (x1 ) = 1.4844 − 0.2150 × (1.0000 − 0. que en este caso es 2.5155 = 1.4844 f (x2 ) = 1.9) = 2.4844 − 0.6206 x3 = 1. 0.4.4844 − 1.6206 y por lo tanto la nueva ra´ es igual a: ız x2 = x1 − f (x1 )(x1 − x0 ) f (x1 ) − f (x0 ) 2.0301 .9 Derivada de la funci´n.

0103683 = 1.5 x1 4 x0 4.5 1 1.0 −20 0 0.En este m´todo se o e e 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´ x2 .78 140 ´ CAP´TULO 3.0301 − 1.5 5 .0301 × (1.6206 = 1. ız Este procedimiento se repite hasta que se encuentra una ra´ con un nivel de ız tolerancia predeterminado.4844) = 1. .3223 0 x4 x3 3 x2 3.4211 − 1.4211 − 0.9: Ejemplo de aplicaci´n del m´todo de la secante. y por lo tanto la nueva ra´ es igual a: ız x4 = x3 − f (x3 )(x3 − x2 ) f (x3 ) − f (x2 ) 0.5 Figura 3.5 2 2.4107317 El anterior procdimiento se repite hasta que el error relativo de la ra´ aproxiız mada sea menor que la tolerancia especificada inicialmente.4211 − 0. SOLUCION ECUACIONES NO LINEALES I 120 100 80 60 40 20 Raíz=2.

4. METODOS CERRADOS 3.m" 79a ≡ Secante: Declaraci´n de la funci´n 79b o o Secante: Inicializaci´n de las variables 80a o Secante: Ciclo principal 80b 3. e o la cual tiene la siguiente estructura: "secante.4.errmin.x1.´ 3.iter]=secante(x0. 3.f. Secante: Declaraci´n de la funci´n 79b ≡ o o function [x.2.1. xold1: . Determinaci´ n de ra´ces por medio del m´todo de la Secante o ı e 79 El m´todo de la secante se encuentra implementado en la funci´n secante. Este valor se inicializa en 100 %.func.m. xold0. x1: valores iniciales especificados para la b´ squeda de la ra´ u ız f unc: funci´n a evaluar con el m´todo de la secante o e errmin: error relativo m´ ınimo usado para chequear la convergencia a una ra´ dada ız itmax: N´ mero m´ximo de iteraciones u a Las variables de salida de esta funci´n son las siguientes: o x: vector que contiene los valores de la ra´ determinada en cada iteraci´n ız o f : vector que contiene los valores de la funci´n f unc evaluada en cada o uno de los valores contenidos en el vector x er: vector que contiene el error relativo obtenido en cada iteraci´n del o procedimiento de b´ squeda de la ra´ u ız.maxit) Fragmento referenciado en 79a. Inicializaci´ n de variables Para ejecutar el m´todo de la secante o e es necesario inicializar las siguientes variables: err: valor de error relativo inicial.2.2.2. Declaraci´ n de la Funci´ n Las variables de entrada a la funci´n o o o que implementa el m´todo de la secante son: e x0.2.4.4.err.2.2.

3. o Secante: Inicializaci´n de las variables 80a ≡ o iter=1.4. x: vector en donde se almacenan los valores de las ra´ ıces obtenidos en cada iteraci´n. er=100. Ciclo Principal Secante: Evaluaci´n funci´n dos puntos iniciales 81a o o Ciclo Principal Secante: Actualizaci´n soluci´n 81b o o Ciclo Principal Secante: C´lculo error e incremento iteraciones 81c a Ciclo Principal Secante: Almacenamiento de resultados 81d end.x1). o f : vector en donde se almacenan los valores de la funci´n evaluada en o cada una de las ra´ obtenidas en cada iteraci´n.3. xold0=x0. x(1)=x1.1.4. Fragmento referenciado en 79a. err(1)=er. Fragmento referenciado en 79a.3. xold1=x1. Ciclo principal El ciclo principal del m´todo de la secante est´ ime a plementado usando un ciclo while controlado por el n´ mero de iteraciones iter u y el err. e 3.80 ´ CAP´TULO 3.2. El primer valor de este vector se hace igual a x0. SOLUCION ECUACIONES NO LINEALES I iter: contador de las iteraciones. ya o u o que estos se requieren para calcular la derivada de forma num´rica. En este fragmento de c´digo se eval´ a la funci´n en los dos puntos iniciales. Este valor se inicializa en 0.2. El primer valor de este ıces o vector se inicializa en el valor de la funci´n evaluada en x0.2. f(1)=feval(func. Este ciclo presenta la siguiente estructura: Secante: Ciclo principal 80b ≡ while (err>errmin) & (iter<maxit). Evaluaci´ n funci´ n en puntos iniciales o o .2.

Fragmento referenciado en 80b. 3.xold1). as´ como el valor de la ı funci´n en este punto en el vector f y el error relativo obtenido en esta iterao ci´n en el vector er. fi=feval(func.3. Ciclo Principal Secante: Almacenamiento de resultados 81d ≡ x(iter)=xr.xold0). Almacenamiento de los Resultados El valor de la ra´ obız tenido hasta el momento xr se almacena en el vector x. 81 3. err(iter)=er.4.29: o Ciclo Principal Secante: Actualizaci´n soluci´n 81b ≡ o o xr=xold1-(fii*(xold0-xold1)/(fi-fii)). 3.4. Fragmento referenciado en 80b. xold0=xold1.4. Actualizaci´ n de la soluci´ n En este fragmento se calcula o o la derivada de la funci´n usando los dos puntos y se actualiza el valor de la ra´ o ız inicial usando la ecuaci´n 3. C´lculo de error e incremento de iteraciones Una vez se a ha actualizado la ra´ se calcula el error relativo de esta aproximaci´n a la ra´ ız o ız y se incrementa el n´ mero de iteraciones.2. Fragmento referenciado en 80b.3. Ciclo Principal Secante: C´lculo error e incremento iteraciones 81c ≡ a er=abs((xr-xold1)/xr)*100.4. xold1=xr.2.2. .´ 3.2. f(iter)=feval(func.3. Estas son las variables que controlan u el ciclo while.2. METODOS CERRADOS Ciclo Principal Secante: Evaluaci´n funci´n dos puntos iniciales 81a ≡ o o fii=feval(func. Los valores de los dos puntos necesarios para calcular la o derivada se actualizan.4.3.2. Fragmento referenciado en 80b.x(iter)).2. iter=iter+1.

4.1.82 Ejemplo MATLAB R ´ CAP´TULO 3.14494463443476 -0.14 m.33) (3. ya que definir dos puntos e no siempre resulta f´cil y en la mayor´ de las situaciones implica elaborar la a ıa gr´fica de la funci´n. M´todo de la Secante Modificado e Fundamentos Conceptuales El m´todo de la secante se aplica cuando las funciones estudiadas no tienen e derivadas o sus derivadas son dif´ ıciles de calcular.4.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.5. a o El m´todo de la secante se puede modificar de tal manera que solo sea necee sario especificar un punto xn−1 definiendo el otro punto como: xn−1 = xn + σxn donde σ → 0 y con lo cual la ecuaci´n 3.iter]=secante(6.1e-10.3. SOLUCION ECUACIONES NO LINEALES I (Soluci´n de Manning con el M´todo de la Secante) o e La soluci´n de la ecuaci´n de Manning usando el m´todo de la Secante o o e se puede implementar en MATLAB R de la siguiente forma: >> format long >> [x. pero ahora el analista selecciona un punto xn y el otro se e . 3. >> iter iter = 6 >> [x(iter) f(iter) err(iter)] ans = 6. 3.f.err. La soluci´n a este problema o consiste en aproximar la derivada de forma num´rica empleando dos puntos.28 se modifica para obtener: o xn+1 = xn − f (xn )(σxn ) f (xn ) − f (xn + σxn ) (3.100).3. e Sin embargo esto tambi´n puede ser un problema.32) En este m´todo de la secante modificada la derivada se vuelve a aproximar e de forma num´rica.@prueba_manning.

34) Para la iteraci´n 2 se tiene: o x1 = 1. 83 Ejemplo (Dimensi´n caracter´ o ıstica de un lago) Para aplicar el m´todo de la secante modificada para la soluci´n de este problee o ma es necesario especificar: x0 soluci´n inicial 1.010608 × 1.000002 f (x1 ) = 2.´ 3.5689657 f (x3 ) = 0. Tolerancia m´ ınima aceptable. 0.748676 − 0.01 % Para la iteraci´n 1 se tiene: o x0 = 2.0684678 x2 = 1.47225650570889 x4 = 1. que en este caso es 2.0 + 2 × 10−6 = 2.06847719 y por lo tanto la nueva aproximaci´n a la ra´ es igual a: o ız x3 = x2 − f (x2 (x2 − x1 )) f (x2 ) − f (x1 ) 1.1797103 = 1.748676 f (x1 ) = 1.0 × 10−6 = 2.00002 − 8.010608 y por lo tanto la ra´ es igual a: ız x2 = x1 + f (x1 )(x1 − x0 ) f (x1 ) − f (x0 ) 2.5689657 + 1.0 × 10−6 que es la o distancia a la cual se toma el otro punto.47225650570889 .0 × 10−6 f (x2 ) = 1.0 y σ = 1.00002 − 0.0106 x1 = x0 + σx0 = 2.0 × 10−6 = 2.9 × 10−7 = 1.0 f (x0 ) = 2.251326 = 1.0684678 × 1.0 × 10−6 = 1.748676 − 5.4.7486777 + 1.0 × 10−6 f (x4 ) = 0.5689657 Para la iteraci´n 3 se tiene: o x3 = 1. METODOS CERRADOS toma a una distancia σ de este.748676 (3.

84 ´ CAP´TULO 3. Declaraci´ n de la funci´ n o o ci´n son las siguientes o Las variables de entrada de esta fun- x0: soluci´n inicial de la ra´ especificada por el usuario. 3.2.1. Se recomienda o ız que este sea determinado por medio del m´todo gr´fico.5689657 − 0. o o errmin: valor del error m´ ınimo que se esta dispuesto a tolerar en la soluci´n obtenida. o . SOLUCION ECUACIONES NO LINEALES I y por lo tanto la nueva aproximaci´n a la ra´ es igual a: o ız x4 = x3 − f (x3 (x3 − x2 )) f (x3 ) − f (x2 ) 0.2. e a f unc: Funci´n que implementa la ecuaci´n no-lineal que se va a analizar.4.1504982 = 1.m" 84 ≡ Secante modificado: Declaraci´n de la funci´n 85a o o Secante modificado: Inicializaci´n de las variables 85b o Secante modificado: Ciclo principal 86a 3.4.13 × 10−6 = 1. u sigma: Valor de incremento con el cual se determina el segundo punto para calcular la derivada en un punto determinado. o maxit: N´ mero m´ximo de iteraciones empleadas en el procedimiento de u a b´ squeda. Determinaci´ n de ra´ces con el m´todo de la Secante modificado o ı e La estructura de la funci´n que implementa el m´todo de la Secante modifio e cado es la siguiente: "secante_mod.5689657 − 3. Este valor se encuentra relacionado con las cifras significao tivas que va a tener la soluci´n.3.3.0 × 10−6 ) = 1. y las correspondientes variables de salida: x: Vector que almacena los valores de la ra´ aproximados en cada iteraız ci´n.4184587 Este procedimiento se repite hasta que el error relativo de la ra´ se hace menor ız que la tolerancia especificada inicialmente.47225 × 1.

err. x(1)=x0. f f (1). err(1) son los vectores en donde se almacenan los valores de la soluci´n. ff(1)=feval(func. 3. er=100.4.ff.2.4.x(1)). Inicializaci´ n de variables Al igual que en todos los procedio mientos vistos anteriormente. .maxit. Fragmento referenciado en 84. iter: N´ mero de iteraciones empleado para alcanzar la soluci´n deseada.3. xold=x0.func.2. err(1)=er. METODOS CERRADOS 85 f f : Vector que almacena los valores de la funci´n para las raices aproxio madas en cada iteraci´n. respectivamente. Este valor se inicializa con el valor inicial de la o soluci´n x0 o x(1). se iniciliza en 1 La variables er se define para almacenar el valor de error de la soluci´n o actual y se inicializa en 100 % xold se emplea con el fin de almacenar el valor de la soluci´n en la iteo raci´n o paso anterior. o err: Vector que almacena los valores del error relativo de cada una de las raices aproximadas.´ 3. u o Secante modificado: Declaraci´n de la funci´n 85a ≡ o o function [x. de la funci´n no lineal de inter´s y del error de la soluci´n o o e o obtenida.iter]=secante_mod(x0. Estos vectores se inicializan con la soluci´n o inicial x0. antes de proceder a obtener la soluci´n de la o ecuaci´n no-lineal de inter´s se hace necesario inicializar las diferentes variao e bles involucradas. Secante modificado: Inicializaci´n de las variables 85b ≡ o iter=1. que corresponde al contador de iteraciones del proceso. y definir otras variables: iter. el valor de la funci´n f unc en ese punto y el error inicial del o 100 %.errmin.sigma) Fragmento referenciado en 84.

Actualizaci´ n soluci´ n Una vez se ha calculado el factor de o o correcci´n se procede a actualizar la soluci´n usando la expresi´n dada por la o o o ecuaci´n 3.35) lo cual se encuentra codificado de la siguiente forma: Ciclo Principal Secante Modificado: c´lculo factor de correcci´n 86b ≡ a o cor=sigma*xold*feval(func. Ciclo Principal Secante Modificado: c´lculo factor de correcci´n 86b a o Ciclo Principal Secante Modificado: Actualizaci´n soluci´n 86c o o Ciclo Principal Secante Modificado: C´lculo error e incremento iteraciones 87a a Ciclo Principal Secante Modificado: Almacenamiento de resultados 87b end.3. Fragmento referenciado en 84. y cuya estrucu ız tura se presenta a continuaci´n: o Secante modificado: Ciclo principal 86a ≡ while ((err>errmin) & (iter<maxit)).3.2.(1+sigma)*xold)-feval(func. 3.2.4.4.3.xold).4. C´lculo factor de correcci´ n El factor de correcci´n corresa o o ponde al valor que se le debe sumar al valor inicial de la ra´ especificado por el ız usuario y el cual se encuentra definido por la expresi´n: o cor = f (xn )(σxn ) f (xn ) − f (xn + σxn ) (3. SOLUCION ECUACIONES NO LINEALES I 3.3.2.4..2. C´lculo error e incremento de iteraciones Con la nueva a ra´ calculada se determina el error relativo de la misma y se incrementa el ız n´ mero de iteraciones: u . Ciclo principal El procedimiento de b´ squeda de la ra´ se enu ız cuentra implementado mediante un ciclo while que se encuentra controlado por el n´ mero de iteraciones y el error relativo de la ra´ aproximada.3.3.1.33: o Ciclo Principal Secante Modificado: Actualizaci´n soluci´n 86c ≡ o o xr=xold-cor. 3. Fragmento referenciado en 86a.86 ´ CAP´TULO 3.2. 3.3.3. Fragmento referenciado en 86a.xold))..3. /(feval(func.

87 3. err(iter)=er.3. Tambi´n se e determina el valor de la funci´n para la ra´ aproximada y se almacena en el o ız vector f f .3. Almacenamiento de resultados Una vez se ha calculado el nuevo valor de la ra´ as´ como su error relativo asociado.4.4.´ 3. Fragmento referenciado en 86a. Fragmento referenciado en 86a.xr). METODOS CERRADOS Ciclo Principal Secante Modificado: C´lculo error e incremento iteraciones 87a ≡ a er=abs((xr-xold)/xr)*100. ff(iter)=feval(func. xold=xr.4.2. se procede a alız ı macenar estos resultados en los vectores x y err respectivamente. Ciclo Principal Secante Modificado: Almacenamiento de resultados 87b ≡ x(iter)=xr. . iter=iter+1.

@prueba_manning.88 Ejemplo MATLAB R ´ CAP´TULO 3. SOLUCION ECUACIONES NO LINEALES I (Soluci´n de Manning con Secante modificado) o La soluci´n de la ecuaci´n de Manning usando el m´todo de la Secante o o e Modificado se puede implementar de la siguiente forma: >> format long.00000000006935 0.100.1e-6). >> [x.1e-10.err.iter]=secante_mod(5. .14 m. >> iter iter = 6 >> [x(iter) f(iter) err(iter)] ans = 6.14494463443476 -0.ff.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.

3) (4. o o Para mostrar este procedimiento se va a partir de un polinomio de 4 grado. Con el fin de evitar este problema. y por lo tanto este procedimiento debe realizarse de la forma m´s a eficiente posible (computacionalmente hablando).1 se puede reescribir usando una sencilla manipulaci´n algebraica.1. la ecuaci´n 4.1. Evaluaci´ n de Polinomios o Fundamentos Conceptuales Debido a que la determinaci´n de las raices de los polinomios generalmente o se realiza usando procedimientos iterativos. Computacionalmente hablando.1) donde los ai corresponden a los coeficientes del polinomio. la evaluaci´n o directa para un polinomio de grado n se desprende de la expresi´n algebraica o del mismo. Sin embargo esta aproximaci´n o requiere n sumas y n(n + 1)/2 multiplicaciones. la ecuaci´n 4.1.Cap´tulo 4 ı Polinomios 4. 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.1 se puede implementar mediante un ciclo for ya que o se conoce el grado n junto con los coeficientes. 4.2) . Por ejemplo. la cual est´ dada por: a n n n−1 2 Pn (x) = an x + an−1 x + · · · a2 x + a1 x + a0 = k=0 ak x k (4. de tal forma que ser´ muy inıa eficiente para polinomios de grado alto. estos requieren la evaluaci´n reo petida de dichas funciones para diferentes valores de las ra´ ıces que se estan probando.

5) i = 1. (4.1. Para esto se deriva la ecuaci´n o 4. .2.1. POLINOMIOS I (4.6) 4. . En algunas oportunidades adem´s de evaluar el valor del polinomio. se requiere a evaluar tanto la primera como segunda derivada.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´TULO 4.7) (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.m" 90 ≡ que implementa este procedimien- EvaluacionPolinomio: Declaraci´n de Funci´n 91a o o EvaluacionPolinomio: Inicializaci´n de Variables 91b o EvaluacionPolinomio: Ciclo principal 92 . Evaluaci´ n de polinomios con MATLAB o R R La estructura de la funci´n de MATLAB o to es la siguiente: "evaluacion_polinomio. . ya que involucra n sumas y n multio plicaciones.4) El procedimiento anterior se puede generalizar mediante una expresi´n reo cursiva dada por: Pn (x) = an Pi (x) = ai + xPi+1 (x). . (4. n − 1 y el cual es mucho m´s eficiente que realizar la evaluaci´n del polinomio a o directamente empleando la ecuaci´n 4.

1. el cual define el grado del u polinomio. o x: valor de x en el cual se quiere evaluar el polinomio.´ 4.x) Fragmento referenciado en 90. Es de aclarar que la ecuaci´n 4.5 es necesao rio conocer el n´ mero de elementos en el vector a. Para realizar el c´lculo del polinomio p en x y de sus derivadas pd y sd se emplea a un ciclo for ya que se conoce el grado del polinomio n.pd.6 y 4. Fragmento referenciado en 90. EvaluacionPolinomio: Inicializaci´n de Variables 91b ≡ o n=length(a). As´ mismo se inicializan en 0 las variables que continen ı la primera derivada pd y la segunda derivada sd. Segunda derivada . Para esto se emplea la funci´n intr´ o ınseca length y el resultado se almacena en la variable n. p=a(n). valor que se encuentra almacenado en la posici´n 1.0. Para realizar el procedimiento recursivo descrito por la ecuaci´n 4. EVALUACION DE POLINOMIOS La funci´n tiene dos variables de entrada: o 91 a: vector de longitud n × 1 que contiene los coeficientes ai del Polinomio.7. sd=0.sd]=evaluacion_polinomio(a. pd=0.5 y para las derivadas se utilizan las o ecuaciones 4. Para calcular el valor del polinomio en x se emplea la ecuaci´n 4.1 emplea coeficientes cuyos sub´ o ındices comienzan en 0. Las variables de salida son las siguientes: p: valor del polinomio definido por los coeficientes 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´n de Funci´n 91a ≡ o o function [p. En este caso particular el c´lculo se hace en el siguiente a orden: 1.

Primera derivada 3.92 2. p=a(i)+x*p. Valor del polinomio CAP´TULO 4. POLINOMIOS I con el fin de calcular los valores de forma correcta: EvaluacionPolinomio: Ciclo principal 92 ≡ for i=n-1:-1:1. Fragmento referenciado en 90.0*pd+sd*x. pd=p+pd*x. sd=2. end. .

´ 4. . El valor del polinomio en x = 2 es: P3 (2) = 3×(2)3 −5×(2)2 +3×(2)−5 = 3×8−5×4+3×2−5 = 24−20+6−5 = 5 Para evaluar este polinomio de forma m´s eficiente se emplean la metodoa log´ explicada en las ecuaciones 4.5. EVALUACION DE POLINOMIOS Ejemplo (Evaluaci´n de un Polinomio) o Evaluar el polinomio P3 (x) = 3x3 − 5x2 + 3x − 5 93 en el punto x = 2 junto con la primera y segunda derivada. de tal forma que se tiene: ıa n 3 2 1 0 Expresi´n Pn o 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´ dada por: a 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´n Pn o (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.1.

Para evaluar la segunda derivada del polinomio se emplean las expresiones dadas por la ecuaci´n 4.94 Ejemplo (Evaluaci´n de un Polinomio (Cont. POLINOMIOS I La segunda derivada de P3 (x) est´ dada por: a P3 (x) = 18x − 10 y al evaluarla en x = 2 se tiene P3 (2) = 18 × (2) − 10 = 26.7: o n 3 2 1 0 Expresi´n Pn (x) o (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 .)) o CAP´TULO 4.

En el caso que una o o e ra´ del polinomio xr se haya determinado esta se puede extraer usando este ız procedimiento para obtener un polinomio de grado n − 1. Deflaci´ n Polinomial o Divisi´ n Sint´tica o o e Fundamentos Conceptuales ´ En el algebra del bachillerato se aprendi´ un procedimiento para realizar dio visi´n entre polinomios conocido como la divisi´n sint´tica.2.sd]=evaluacionpolinomio(a. >> [p. 4. Este procedimiento se puede repetir hasta que todas las raices se hayan determinado.1.2. DEFLACION POLINOMIAL O DIVISION SINTETICA Ejemplo MATLAB R 95 (Evaluaci´n de un Polinomio) o Evaluar el polinomio P3 (x) = 3x3 − 5x2 + 3x − 5 en el punto x = 2 junto con la primera y segunda derivada.2. >> x=2. Las instrucciones en MATLAB son las siguientes: R que permitir´ realizar este procedimiento ıan >> a=[-5 3 -5 3]’.9) (4.pd. La divisi´n sint´tica o deflaci´n polinomial como tambi´n se le conoce se deo e o e fine como el procedimiento de descomponer un polinomio de la forma: Pn (x) = (x − xr )Pn−1 (x) y en donde Pn−1 (x) est´ dado por: a Pn−1 (x) = bn−1 xn−1 + bn−2 xn−2 + · · · + b1 x + b0 (4.´ ´ ´ 4. el cual .x) p = 5 pd = 19 sd = 26 4.8) Con el fin de presentar el procedimiento con miras a su implementaci´n o se va a analizar un ejemplo aplicado a un polinomio de cuarto grado.

10 con 4.10) y del cual se ha determinado una ra´ xr . .2. (4. a o 4.11) en donde los coeficientes bi definen el polinomio residual. POLINOMIOS I P4 (x) = a4 x4 + a3 x3 + a2 x2 + a1 x + a0 (4.8 y al realizar el producto entre el monomio y el polinomio o o 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. .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.11: a4 a3 a2 a1 a0 = b3 = b2 − b3 x r = b1 − b2 x r = b0 − b1 x r = −b0 xr (4.14) i = 1.2. (n − 2) la cual f´cilmente se puede implementar en un lenguaje de programaci´n.96 est´ dado por: a CAP´TULO 4. . Divisi´ n Sint´tica de polinomios con MATLAB o e R R La estructura de una funci´n en MATLAB o es la siguiente: "deflacion_polinomial. 2. Para determinar los valores de los bi se igualan los coeficientes de 4. . Esta ra´ puede factorizarse usando la ız ız ecuaci´n ecuaci´n 4.m" 96 ≡ que ejecuta este procedimiento DeflacionPolinomial: Declaraci´n de la funci´n 97a o o DeflacionPolinomial: Inicializaci´n de variables 97b o DeflacionPolinomial: Ciclo Principal 98 .13) Este resultado se puede generalizar mediante una relaci´n recursiva dada por: o bn−1 = an bi = ai+1 + bi+1 xr .

Los o e coeficientes van desde el t´rmino independiente hasta el coeficiente de la e potencia n − 1.´ ´ ´ 4.xr) Fragmento referenciado en 96.2. ıa De esta forma.2. Para esto se emplea un ciclo for que va calculando los coeficientes desde las potencias mayores a las menores: . o DeflacionPolinomial: Inicializaci´n de variables 97b ≡ o n=length(a)-1. Ciclo principal El ciclo principal del procedimiento de deflaci´n polinomial permite calcular o los coeficientes del polinomio resultante.2. Inicializaci´ n de variables o Para continuar con el procedimiento de deflaci´n polinomial se hace necesao rio definir las siguientes variables: n: Grado del polinomio. Este vector se inicializa con 0. Fragmento referenciado en 96. b(n)=a(n+1). b: vector de tama˜ o n en donde van a almacenar los coeficientes del polin nomio resultante de la divisi´n. para lo cual se emplean las expresiones dadas por las ecuaciones 4. 4. xr: valor constante xr que define el monomio por el cual se va a dividir el polinomio. o e DeflacionPolinomial: Declaraci´n de la funci´n 97a ≡ o o function [b]=deflacion_polinomial(a.14.13 y 4. 4.1).2. DEFLACION POLINOMIAL O DIVISION SINTETICA 97 Es preciso recordar que esta funci´n realiza la divisi´n entre un polinomio Pn (x) o o y un monomio de la forma (x − xr ) donde xr corresponder´ a una constante. las variables de entrada a esta funci´n son las siguientes: o a: vector de tama˜ o n × 1 con los valores de los coeficientes del Polinon mio al cual se le va aplicar el procedimiento de la divisi´n sint´tica.2. La variable de salida b corresponde a un vector con los coeficientes del polinomio residual que resulta de la divisi´n sint´tica. b=zeros(n.2.1.

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

CAP´TULO 4. POLINOMIOS I

´ ´ ´ 4.2. DEFLACION POLINOMIAL O DIVISION SINTETICA Ejemplo (Divisi´n Sint´tica) o e Realice la divisi´n sint´tica del polinomio: o e P4 (x) = x4 + 6x3 + 7x2 − 6x − 8 entre el polinomio (x − 1). Los coeficientes de P4 (x) son: Coef a4 a3 a2 a1 a0 Valor 1 6 7 -6 -8

99

y los coeficientes del polinomio reducido se obtienen al aplicar las expresiones consignadas en la ecuaci´n 4.14: o Coeficiente b3 b2 b1 b0 Expresi´ n o 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´n sint´tio e ca es: P3 (x) = x3 + 7x2 + 14x + 8

100 Ejemplo MATLAB
R

CAP´TULO 4. POLINOMIOS I (Divisi´n Sint´tica) o e

Realice la divisi´n del polinomio: o 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 coeficientes 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´n mediante operaciones simb´licas en MATLAB R . o o

4.3.
4.3.1.

M´todo de Muller e
Fundamentos Conceptuales

El m´todo de Muller es una generalizaci´n del m´todo de la secante ya que e o e no requiere de la derivada de la funci´n en estudio, y para el cual es necesario o especificar 3 puntos iniciales x0 , x1 , x2 . En lugar de definir una l´ ınea recta, se define una par´bola (ver Figura 4.1) y se utiliza la f´rmula para la ecuaci´n a o o cuadr´tica para obtener una aproximaci´n a la ra´ Este m´todo presenta una a o ız. e convergencia mucho m´s r´pida que el m´todo de la bisecci´n y menor que el a a e o m´todo de Newton. e Para entender este m´todo es necesario definir la ecuaci´n de la par´bola de la e o a siguiente forma: f (x) = a(x − x2 )2 + b(x − x2 ) + c (4.15) donde a, b, c son los valores de los coeficientes. Se selecciona el valor de x2 de tal forma que sea el valor central. Los 3 puntos requeridos para definir la par´bola a son [x0 , f (x0 )], [x1 , f (x1 )] y [x2 , f (x2 )], de tal forma que se obtiene:

´ 4.3. METODO DE MULLER

101

Figura 4.1: Interpretaci´n gr´fica del m´todo de Muller o a e

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)

´ De la ultima ecuaci´n se obtiene la conclusi´n que f (x2 ) = c, y con este este o o ecuaci´n se puede simplificar para obtener: o 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´gnitas. La o soluci´n de este se puede simplificar si se definen: o 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 definido en 4.17 se puede expresar como: h0 δ0 + h1 δ1 = a(h0 + h1 )2 + b(h0 + h1 ) −h1 δ1 = ah2 − bh1 1 (4.19)

(4.18)

102

CAP´TULO 4. POLINOMIOS I

del cual se pueden obtener los coeficientes de la par´bola por sustituci´n: a o a= δ1 − δ0 h1 − h0 b = ah1 + δ1 c = f (x2 )

(4.20)

Con estos coeficientes se define la par´bola espec´ a ıfica que pasa por los tres puntos (ecuaci´n 4.15) y la ra´ xr se determina usando la conocida soluci´n de o ız o la ecuaci´n cuadr´tica: o a 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´n o correcci´n entre la ra´ aproximada o o ız x2 y la ra´ real xr , de tal forma que se tiene:∆x = xr − x2 y por lo tanto: ız xr = x2 + ∆x (4.22)

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

4.3.2.

Determinaci´ n de las ra´ces de polinomios usando el o ı m´todo de Muller e

El m´todo de Muller se encuentra implementado en la funci´n muller.m cuya e o estructura es la siguiente:
"muller.m" 102 ≡ Muller: Declaraci´n de la Funci´n 103 o o Muller: Inicializaci´n de variables 104a o Muller: Ciclo Principal 104b

4.3.2.1.

Declaraci´ n de la funci´ n o o

Las variables de entrada de esta funci´n son las siguientes: o xrr: valor inicial de la ra´ ız f uncion: funci´n a evaluar y que se encuentra definida en un archivo funo cion.m h: incremento empleado para la definici´n de los puntos cercanos a xrr o

x2: valores iniciales especificados para definir la par´bola con la a que trabaja este m´todo.3.ff.2. Se inicializa con el ız valor de x2 xold: valor de la ra´ en la iteraci´n inmediatamente anterior empleado ız o para la determinaci´n del error relativo.err_min) Fragmento referenciado en 102. METODO DE MULLER maxiter: N´ mero m´ximo de iteraciones u a 103 errmin: valor de error relativo m´ ınimo usado para controlar la convergencia del procedimiento. iter: Contador para las iteraciones. Se inicializa en 1.er. er(·) y xr1(·) . Se inicializa en 100 %. Las variables de salida de esta funci´n son las siguientes: o xr1: valor de la ra´ determinada por el m´todo de Muller ız e f f : vector que contiene los valores de la funci´n o er: vector que almacena los valores del error relativo obtenido para cada iteraci´n o iter: n´ mero de iteraciones empleado por el procedimiento para obtener u la ra´ ız. Muller: Declaraci´n de la Funci´n 103 ≡ o o function [xr1. Para definir estos 3 valores en este caso se asume e que x1 va a corresponder al punto central y que tanto x0 como x2 van a una distancia h de este punto.3.funcion.maxiter. o Se inicializan los vectores f f (·).iter]=muller(xrr. xr: valor de la ra´ determinada hasta el momento. x0. err: variable para almacenar el valor del error relativo.h. Inicializaci´ n de variables o Para este procedimiento es necesario inicializar las siguientes variables.2.´ 4. 4. x1.

a h1.104 Muller: Inicializaci´n de variables 104a ≡ o x2=xrr*(1+h).xr).3. delta0 y delta1 empleando las ecuaciones 4.3. xr1(iter. x1=xrr. err=100. xold=x1. Fragmento referenciado en 102.3.1)=feval(funcion.2. iter=1. CAP´TULO 4. La estructura de este procedimiento es la siguiente: Muller: Ciclo Principal 104b ≡ while (iter<=maxiter & err>=err_min).3.2.18 y 4. ya que a e es donde se determinan las ra´ ıces. Ciclo principal Este fragmento implementa la parte m´s importante de este m´todo.1)=err. xr=x2. 4. x0=xrr*(1-h).1. POLINOMIOS I 4. Fragmento referenciado en 102. C´lculo de h y δ En este fragmento se calculan las diferencias h0. Ciclo Principal Muller: C´lculo de h y δ 105a a Ciclo Principal Muller: C´lculo coeficientes par´bola 105b a a Ciclo Principal Muller: C´lculo del indicador 105c a Ciclo Principal Muller: Definici´n de la correcci´n 106a o o Ciclo Principal Muller: Actualizaci´n de la ra´ 106b o ız Ciclo Principal Muller: C´lculo del error e incremento de iteraciones 106c a Ciclo Principal Muller: Actualizaci´n puntos 107 o end.19: . ff(iter.1)=xr. er(iter.

delta0=(feval(funcion. 4.x1) )/h1. b. C´lculo coeficientes par´bola : Los coeficientes a. h1=x2-x1. METODO DE MULLER Ciclo Principal Muller: C´lculo de h y δ 105a ≡ a xold=xr.3. b. b=a*h1+delta1. 105 4. C´lculo del Indicador : Con los valores de los coeficientes a.3. c=feval(funcion. Definici´ n de la correcci´ n : Con el valor del discriminante cuadr´tio o a co ind se puede determinar el incremento que se debe aplicar a la ra´ obtenida ız hasta el momento. Fragmento referenciado en 104b.x1)-feval(funcion.x0) )/h0. se escoge aquella cuyo signo coincida con el signo del coeficiente b. x2 se determinan usando la a ecuaci´n 4. Esta elecci´n hace que el denominador sea m´s grande y por lo tanto la correcci´n o a o obtenida ser´ menor y la ra´ estimada estar´ m´s cerca de la ra´ obtenida en a ız a a ız la iteraci´n anterior.2. Ciclo Principal Muller: C´lculo del indicador 105c ≡ a ind=sqrt(b^2-4*a*c).x2). o . c que defia a nen la par´bola que pasa por los tres puntos x0.´ 4.4.2.2.3.x2)-feval(funcion. delta1=(feval(funcion. x1.2.3. Ya que la soluci´n de la ecuaci´n cuadr´tica permite obtener o o a 2 ra´ ıces. 4. Fragmento referenciado en 104b.3.3.3. h0=x1-x0. Fragmento referenciado en 104b. se define una ecuaci´n cuadr´tica que permite estimar 2 ra´ o a ıces.20: o Ciclo Principal Muller: C´lculo coeficientes par´bola 105b ≡ a a a=(delta1-delta0)/(h1+h0).3. c a calculdos.

ız . Ciclo Principal Muller: C´lculo del error e incremento de iteraciones 106c ≡ a err=abs((xr-xold)/xr)*100. el error relativo obtenido hasta el momento en el vector o er y el valor de la ra´ en el vector xr1. x1. Actualizaci´ n de la ra´z : Se actualiza el valor de la ra´ con la o ı ız correcci´n obtenida de la soluci´n de la ecuaci´n cuadr´tica tal como lo expresa o o o a la ecuaci´n 4. 4.2. xr=x2+dxr.3. Actualizaci´ n de puntos : Se actualizan los valores de x0. C´lculo del error e incremento de iteraciones : Se determina a el error relativo de la ra´ obtenida y se incrementa el n´ mero de iteraciones ız u (Recuerde que estas variables son las que controlan el ciclo while). POLINOMIOS I Ciclo Principal Muller: Definici´n de la correcci´n 106a ≡ o o if(abs(b+ind)>abs(b-ind)). den=ind-b. else.3.2.3. Fragmento referenciado en 104b.3.3.2. Fragmento referenciado en 104b.7.5. o junto el con valor de xold y se almacenan los resultados de la evaluaci´n de la o funci´n en el vector f f . x2.22: o Ciclo Principal Muller: Actualizaci´n de la ra´ 106b ≡ o ız dxr=-2*c/den. end. den=ind+b. 4. Fragmento referenciado en 104b. iter=iter+1.6.106 CAP´TULO 4. 4.3.

1)=feval(funcion.3. xold=xr.1)=xr. ff(iter. 107 .xr).´ 4. er(iter. Fragmento referenciado en 104b. xr1(iter. METODO DE MULLER Ciclo Principal Muller: Actualizaci´n puntos 107 ≡ o x0=x1. x2=xr.1)=err. x1=x2.

5000 31.1e-3).^2+1’) Para obtener la ra´ con el m´todo de Muller usamos la funci´n muller. La primera es la m´s sencilla y para hacerla a se teclea en la l´ ınea de comandos para definir f 1 como una funci´n inline o >> f1=inline(’x. la funci´n ız o de inter´s f 1.0001 La primer columna presenta el valor de la ra´ para cada iteraci´n.9064 0.3750 2.0.9649 0.er.m.5.0e − 3: >> [xr1.5.0000 100. .m es necesario definir en MATLAB R la funci´n o o de inter´s como una funci´n inline o mediante un archivo .8787 -0.f1. En este caso e o se va a hacer de las dos formas.8794 0. e el n´ mero m´ximo de iteraciones maxiter = 100 y el error m´ u a ınimo aceptable minerr = 1.0055 2. el incremento con el que se calculan los otros puntos h = 0.8284 0.m ız e o definida anterioremente.108 Ejemplo MATLAB R CAP´TULO 4. y especificamos la ra´ inicial xrr = 3. la segunda ız o columna el valor de la funci´n f 1 para cada una de las ra´ o ıces presentadas en la primera columna y el error relativo para cada ra´ se presenta en la ız columna 3.0251 0.100. con lo cual despu´s de 5 iteraciones se obtienen los siguientes resultados: e >> [xr1 ff er] ans = 4.0000 54.ff. POLINOMIOS I (Determinaci´n de ra´ con el m´todo de Muller) o ıces e Use el m´todo de Muller para obtener una ra´ del siguiente polinomio: e ız f (x) = x3 − 3x2 + 1 Para usar la funci´n muller.8794 0.2097 2.iter]=muller(3.^3-3*x.0000 2.

8794 0. METODO DE BAIRSTOW Ejemplo MATLAB R 109 (Determinaci´n de ra´ con el m´todo de Muller) o ıces e En este caso se va a determinar la ra´ del polinomio empleado en el ız ejemplo anterior. 4.2097 2. Para hacer esto se emplea el mismo procedimiento descrito para o .100.5000 31. M´todo de Bairstow e Fundamentos Conceptuales La determinaci´n de las ra´ o ıces complejas de un polinomio puede ser un problema complicado si se emplean los m´todos convencionales como el de e Newton.0001 Como es evidente los resultados obtenidos usando una funci´n contenida en o un archivo m son los mismos que en el caso de una funci´n inline. pero ahora especificando la funci´n como un archivo m.1e-3).´ 4.9064 0.4.3750 2.^3-3*x.0000 2.9649 0.^2+1.0.4. o Para esto se abre el editor de MATLAT R tecleando edit en la ventana de comandos y copiando el siguiente c´digo: o "funcion_prueba.1.2). o 4.8787 -0.iter]=muller(3.0251 0. 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´cil dea terminarlas si se obtienen factores cuadr´ticos mediante divisi´n sint´tica (ver a o e secci´n 4.er. pero la diferencia en este caso corresponde a la forma como se especifica la funci´n (anteponi´ndole o e un signo @ al nombre del archivo en donde este implementada): >> [xr1. Para determinar la ra´ con el m´todo de Muller se teclean unos comandos ız e muy similares a los usandos en el ejemplo anterior.4.0000 100.8794 0.m" 109 ≡ function [y]=funcion_prueba(x) y=x.5.0000 54.8284 0.ff. con lo cual se obtiene: >> [xr1 ff er] ans = 4.0055 2.@funcion_prueba.

Es aqu´ donde aparece el m´todo de Bairstow . de o tal forma que inicialmente los valores especificados no van a permitir obtener un residuo igual a 0. s + ∆s) = b1 + ∆r + ∂r b0 (r + ∆r. para lo cual los t´rminos del lado izquierdo de la ecuaci´n se hacen e o 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. o a e con lo cual se asegura que las ra´ ıces obtenidas correspondan a ra´ ıces del polinomio original.26) en donde se han despreciado las derivadas de orden igual o mayor a 2.110 un monomio de tal manera que se tiene: CAP´TULO 4.23) (4. Generalmente esto se puede obtener para una selecci´n cuidadosa de los valores de r y s. 0 El objetivo de introducir la divisi´n sint´tica para un factor cuadr´tico consiso e a te en determinar una ecuaci´n cuadr´tica para la cual el t´rmino Residual = 0.25) bi = ai + rbi+1 + sbi+2 para i = n − 2. y por lo tanto se necesita un m´todo con el cual se puedan e modificar los valores de r y s de tal forma que permita la obtenci´n de las ra´ o ıces respectivas. Para esto se debe cumplir que b1 = 0 y b0 = 0. . s + ∆s) = b1 + ∂b0 ∆s ∂s ∂b1 ∆s ∂s (4. . con lo cual se o obtiene: b n = an bn−1 = an−1 + rbn (4. . .27) . Esta ecuaci´n sirve para determinar es ∆r y ∆s que es lo que nos interesa en este o momento. . + b2 ) + Residual donde el t´rmino Residual est´ dado por: e a Residual = b1 (x − r) + b0 (4. .24) Para determinar los coeficientes bi se tiene que igualar los coeficientes de la ecuaci´n 4. ı e El m´todo de Bairstow se fundamenta en realizar una expansi´n en series de e o Taylor de los coeficientes b0 y b1 suponiendo que son funciones tanto de r como de s. POLINOMIOS I Pn (x) = (x2 − rx − s)Pn−2 (x) = (x2 − rx − s)(bn xn−2 + bn−1 xn−3 + .23 con los coeficientes ai del polinomio respectivo. Esto se expresa como: ∂b0 ∆r + ∂r ∂b1 b1 (r + ∆r.

. METODO DE BAIRSTOW 111 en donde los coeficientes del sistema corresponden a las derivadas parciales de los coeficientes del t´rmino residual.4. de tal forma que la e ecuaci´n 4.1 donde los t´rminos c1 = ∂b0 /∂s.m" 111 ≡ Bairstow: Definici´n de la funci´n 112a o o Bairstow: Declaraci´n de variables 112b o Bairstow: Ciclo extracci´n de raices de polinomio n >= 3 113a o Bairstow: Extracci´n de raices de polinomio n <= 2 116c o 4. . Determinaci´ n de las ra´ces de un polinomio usando el o ı m´todo de Bairstow e Para aplicar el m´todo de Bairstow en la determinaci´n de las raices de polie o nomios es necesario implementar dicho procedimiento en MATLAB R por medio de una funci´n con la siguiente estructura: o "bairstow.4.´ 4. de la siguiente forma: o e cn = bn cn−1 = bn−1 + rcn ci = bi + rci+1 + sci+2 (4.c2 = ∂b1 /∂r y c3 = ∂b1 /∂s. .27 se puede expresar: o c2 ∆r + c3 ∆s = −b1 c1 ∆r + c2 ∆s = −b2 (4. las cuales no se conocen. se pueden obtener los valores de ∆r y ∆s con los cuales se mejoran o los r y s especificados inicialmente.28) para i = n − 2.2.30) 4.2. Sin embargo en este caso no se emplea a a la famosa soluci´n de la ecuaci´n cuadr´tica. ya que este se encuentra sujeta o o a a errores de redondeo.4.29) y al resolver este sistema usando regla de cramer (o m´todo de determinantes) o e sustituci´n. . Una vez estos valores se han determinado el residuo de la divisi´n sint´tica es igual a 0 y por lo tanto las ra´ o e ıces se pueden obtener f´cilmente del factor cuadr´tico.1. En su lugar se emplea la siguiente expresi´n para la o determinaci´n de las ra´ o ıces: x= b± √ 2c b2 + 4ac (4. La gran contrie buci´n de Bairstow fue mostrar que estas derivadas parciales se pueden obtener o usando el mismo procedimiento de divisi´n sint´tica. Definici´ n de la funci´ n o o Las variables de entrada en este caso son: .

n que corresponde al grado del polinomio que se est´ analizando. u o Bairstow: Definici´n de la funci´n 112a ≡ o o function [xr.maxit.2.err. o o iter: N´ mero de iteraciones requeridas para obtener la soluci´n.4. a1=a.iter]=bairstow(a. o o e Bairstow: Declaraci´n de variables 112b ≡ o iter=0.errmin) Fragmento referenciado en 111.ff. r y s: coeficientes que definen el factor cuadr´tico. xr=[]. n=length(a)-1. . ıces err: vector que almacena el valor del error relativo de las ra´ obtenidas ıces para cada iteraci´n de la funci´n. o f f : vector que almacena el valor del polinomio en las ra´ aproximadas. As´ mismo las variables de salida de la funci´n bairstow son: ı o xr: vector que almacena los valores de las ra´ ıces para cada una de las iteraciones ejecutadas por la funci´n. a1 que a es un vector tempora en donde se almacenan los valores de los coeficientes de los polinomios resultantes de la divisi´n sint´tica.112 CAP´TULO 4.2. Fragmento referenciado en 111.r. Recuerde que los e valores se deben incluir desde las potencias menores a mayores. POLINOMIOS I a: vector con los coeficientes del polinomio de inter´s. y xr que se inicializa como un o e vector vaci´n usando la notaci´n del par´ntesis rectangular []. 4. a maxit: N´ mero m´ximo de iteraciones para la b´ squeda de las ra´ u a u ıces. Declaraci´ n de Variables o En este fragmento de c´digo se inicializan algunas variables importantes o para este procedimiento como son iter o contador de iteraciones que se inicializa en 0. errmin: Error m´ ınimo que se esta dispuesto a tolerar en la determinaci´n o de las ra´ ıces.s.

Ciclo Principal Bairstow: Realizar divisi´ n sint´tica Con los vao e lores iniciales de r y s se realizar la divisi´n sint´tica por factor cuadr´tico usano e a do la funci´n denominada deflacion2 .3. La estructura de este ciclo es la siguiente: Bairstow: Ciclo extracci´n de raices de polinomio n >= 3 113a ≡ o while(n>=3). y se obtienen los coeficientes del polio nomio resultante b y las derivada parciales de b con respecto a r y a s.4. Estas se inicializan en 100 %.3 o . er_r=100.´ 4.2.2.1. 4. Ciclo Principal Bairstow: Inicializaci´n del error 113b ≡ o er_s=100. Ciclo Principal Bairstow: Determinar raices 115c Ciclo Principal Bairstow: Extracci´n coeficientes Polinomio resultante 116a o Ciclo Principal Bairstow: Asignaci´n de raices obtenidas 116b o end. las cuales se encuentran almacenadas en el vector c.3. 4. METODO DE BAIRSTOW 4. Si el polinomio obtenido es de grado 2 se determinan las raices y el a procedimiento se acaba. Fragmento referenciado en 113a.4. Ciclo Principal 113 El ciclo principal del m´todo de Bairstow se divide en dos grandes partes e que dependen del tipo de polinomio a resolver. Ciclo Principal Bairstow: Realizar divisi´n sint´tica 114a o e Ciclo Principal Bairstow: Modificar los valores de r y s 114b Ciclo Principal Bairstow: Calcular error e incrementar contador 115b end.4. Esta funci´n se encuentra implemeno tada en la secci´n 4. Si este polinomio es de grado mayor a 3 es necesario realizar el procedimiento de divisi´n sint´tica por factor o e cuadr´tico.2. Fragmento referenciado en 111. Ciclo Principal Bairstow: Inicializaci´ n del error En este frago mento de c´digo se inicializa er s y er r que son las variables en donde se alo macenan los errores relativos de s y r respectivamente. Ciclo Principal Bairstow: Inicializaci´n del error 113b o while (er_s>errmin & er_r<errmin & iter<maxit).4.3.2.4.

3.29): o Modificar r y s: C´lculo del determinante 114c ≡ a det=c(2)*c(2)-c(3)*c(1).4.3.3.2. la soluci´n del mismo se obtiene directamente.r.4.3.4.2.3.3. Fragmento referenciado en 114b. o La estructura de este procedimiento es la siguiente: Ciclo Principal Bairstow: Modificar los valores de r y s 114b ≡ Modificar r y s: C´lculo del determinante 114c a Modificar r y s: Actualizar r y s 115a Fragmento referenciado en 113a.2.114 CAP´TULO 4.s). Ciclo Principal Bairstow: Modificar los valores de r y s Los valores de r y s se modifican con el fin de asegurar que el residuo de la divisi´n o sint´tica sea muy cercano a 0. 4. Actualizar r y s Los valores de r y s se actualizan dependiendo de si el determinante se puede considerar mayor a 0. 4. Fragmento referenciado en 113a. En el caso que o el sistema no tenga soluci´n los valores de r y s se cambian y el procedimiento o continua. En este caso particular debido a la sencillez del sistema o lineal a resolver. . con lo cual el sistema tiene soluci´n.2. C´lculo del determinante Con el fin de evitar problemas de a inestabilidad num´rica se calcula el determinante de la matr´ de coeficientes e ız del sistema lineal de ecuaciones (ecuaci´n 4. POLINOMIOS I Ciclo Principal Bairstow: Realizar divisi´n sint´tica 114a ≡ o e [b.1.29) usando la regla de cramer.c]=deflacion2(a1. Esto se logra por medio de la soluci´n de un e o sistema lineal de ecuaciones de 2 × 2 (ecuaci´n 4. 4.0.

er_r=(abs(dr)/r)*100.3. Ciclo Principal Bairstow: determinar ra´ces Ya con los valores ı de r y s que define el t´rmino cuadr´tico que permite obtener un residual de 0. METODO DE BAIRSTOW Modificar r y s: Actualizar r y s 115a ≡ if(det>=1.4. endif Fragmento referenciado en 114b.´ 4. Fragmento referenciado en 113a. iter=iter+1. r=r+1.3.2. 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.0e-10) then dr=(-b(1)*c(2)+b(0)*c(3))/det. 4. Ciclo Principal Bairstow: Extracci´ n de coeficientes Una vez o se hayan obtenido las raices del factor cuadr´tico.4.s).5.2.0 e a en la divisi´n sint´tica. s=s+1. ds=(-b(0)*c(2)+b(1)*c(2))/det. 4. r=r+dr.4.4.6.3. Estos coeficientes se encuentran almacenados en el vector b y o e ahora se guardan en el vector a1 con el fin que se puedan seguir extrayendo las raices: . s=s+ds. else. se obtienen las raices de dicho factor cuadr´trico de la o e a forma usual y se almacenan en el vector roots: Ciclo Principal Bairstow: Determinar raices 115c ≡ roots=solucion_cuadratica(1. Fragmento referenciado en 113a.r. 115 4. se hace necesario extraer a los valores de los coeficientes del polinomio que queda como resultado de la divisi´n sint´tica.4.2.

7.2.4.116 CAP´TULO 4.2.2. a1=b(3:length(b). a1=zeros(n+1.roots]. Extracci´n raices Polinomio n <= 2: Polinomio grado 2 117a o Extracci´n raices Polinomio n <= 2: Polinomio grado 1 117b o end. Extracci´ n de raices de polinomio n <= 2 o 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´ mero de iteraciones es menor al m´ximo especificado u a inicialmente y se consideran los dos casos mencionados anteriormente: Bairstow: Extracci´n de raices de polinomio n <= 2 116c ≡ o if(iter<maxit). 4.1).4. Fragmento referenciado en 111.1). Fragmento referenciado en 113a. Ciclo Principal Bairstow: Asignaci´ n de raices Una vez las raio ces del factor cuadr´tico considerado se han obtenido estas se almacenan en el a vector xr: Ciclo Principal Bairstow: Asignaci´n de raices obtenidas 116b ≡ o xr=[xr.3.4. 4. o o a definiendo de forma correspondiente los coeficientes de dicho polinomio: . Polinomio grado 2 Si el polinomio que queda al final es de grado 2 este se puede resolver mediante la expresi´n de la ecuaci´n cuadr´tica.4. 4. POLINOMIOS I Ciclo Principal Bairstow: Extracci´n coeficientes Polinomio resultante 116a ≡ o n=n-2.4.1. Fragmento referenciado en 113a.

s). Declaraci´ n de la funci´ n o o Las variables de entrada de esta funci´n son las siguientes: o a: vector de tama˜ o n × 1 con los coeficientes del polinomio n r y s: factores del t´rmino cuadr´tico (ver ecuaci´n 4. s=-a1(1)/a1(3).2. la ra´ de este se puede obtener de forma sencilla mediante la expreız si´n: o b0 x∗ = − (4.-a1(1)/a1(2)].´ 4.2.4. 117 4. r=-a1(2)/a1(3). roots=solucion_cuadratica(1.4. La estructura de o e la funci´n que implementa este procedimiento es la siguiente: o "deflacion2.4.r. METODO DE BAIRSTOW Extracci´n raices Polinomio n <= 2: Polinomio grado 2 117a ≡ o if(n==2).4.m" 117c ≡ Deflaci´n2: Declaraci´n funci´n 118a o o o Deflaci´n2: Inicializaci´n de variables 118b o o Deflaci´n2: Ciclo principal 119a o 4.3. end. Fragmento referenciado en 116c. xr=[xr.31) b1 y lo cual se puede expresar como: Extracci´n raices Polinomio n <= 2: Polinomio grado 1 117b ≡ o else xr=[xr.23 y es de vital importancia para el m´todo de Bairstow. Divisi´ n Sint´tica por factor cuadr´tico o e a La divisi´n sint´tica por factor cuadr´tico aparece representada en la ecuao e a ci´n 4.roots].4.3. 4.1.25) e a o . Polinomio grado 1 En el caso que el polinomio resultante sea de grado 1. Fragmento referenciado en 116c.

3. 4. b=zeros(n. 4.0 n n Los vectores b y c se inicializan de acuerdo a lo presentado en las ecuaciones 4.1).3. Este valor se inicializa u como la longitud del vector de entrada a menos 2 elementos. o c: vector de tama˜ o n × 2 con los valores de la derivada del polinomio. Deflaci´n2: Inicializaci´n de variables 118b ≡ o o n=length(a)-2.118 y las variables de salida: CAP´TULO 4. c(n-2)=b(n-1)+r*c(n). Ciclo Principal En este ciclo se determinan los coeficientes del polinomio resultante del procedimiento de divisi´n sint´tica y su derivada: o e .3.254. El vector b de tama˜ o n × 1 y c de tama˜ o (n − 1) × 1se inicializa en 0.4. Inicializaci´ n de Variables o Para realizar el procedimiento de divisi´n sint´tica es necesario inicializar o e las siguientes variables: n: n´ mero de elementos de los vectores de salida.r.28 respectivamente.c]=deflacion2(a.1). b(n)=a(n+2).2. n Deflaci´n2: Declaraci´n funci´n 118a ≡ o o o function [b. POLINOMIOS I b: vector de tama˜ o n × 2 con los coeficientes del polinomio resultante de n la divisi´n. Fragmento referenciado en 117c.s) Fragmento referenciado en 117c. c=zeros(n-1. c(n-1)=b(n).4. b(n-1)=a(n+1)+r*b(n).

m" 119d ≡ Soluci´n Cuadr´tica: Definici´n funci´n 120a o a o o Soluci´n Cuadr´tica: Inicializaci´n de variables 120b o a o Soluci´n Cuadr´tica: Determinaci´n de las raices 120c o a o Las variables de entrada a esta funci´n son los coeficientes a. Soluci´ n de la ecuaci´ n cuadr´tica o o a Con el fin de evitar problemas num´ricos se hace necesario emplear una e formulaci´n alternativa de la soluci´n de la ecuaci´n cuadr´tica dada por la o o o a ecuaci´n 4.4. b y c de la ecuaci´n o o cuadr´tica.4.´ 4.30 y la cual en MATLAB R se puede implementar de la siguiente o forma: "solucion_cuadratica. Ciclo principal Deflaci´n2: Derivada 119c ≡ o for i=n-3:-1:1. Fragmento referenciado en 119a. end. . Fragmento referenciado en 119a. 119 Ciclo principal Deflaci´n2: Coeficientes 119b ≡ o for i=n-2:-1:1.4. METODO DE BAIRSTOW Deflaci´n2: Ciclo principal 119a ≡ o Ciclo principal Deflaci´n2: Coeficientes 119b o Ciclo principal Deflaci´n2: Derivada 119c o Fragmento referenciado en 117c. b(i)=a(i)+r*b(i+1)+s*b(i+2). c(i)=b(i+1)+r*c(i+1)+s*c(i+2). y la salida corresponde a un vector x de dos elementos con las dos a ra´ ıces obtenidas. 4. end.

el cual se iguala a o 0. Si el valor del discriminante es mayor a 0. Fragmento referenciado en 119d. El discriminante est´ definido por: a disc = b2 − 4ac y en MATLAB R (4.30 o . La determinaci´n de las ra´ o ıces de la ecuaci´n cuadr´tica se compone de los o a siguientes pasos: Soluci´n Cuadr´tica: Determinaci´n de las raices 120c ≡ o a o Determinaci´n de raices: C´lculo del discriminante 120d o a Determinaci´n de raices: Raices diferentes 121a o Determinaci´n de raices: Raices iguales 121b o Fragmento referenciado en 119d. se tienen dos raices diferentes. Fragmento referenciado en 120c.1).^2-4*a*c.120 Soluci´n Cuadr´tica: Definici´n funci´n 120a ≡ o a o o function [x]=solucion_cuadratica(a.c). Fragmento referenciado en 119d.0.32) se calcula de la siguiente forma: Determinaci´n de raices: C´lculo del discriminante 120d ≡ o a disc=b. y las cuales se pueden determinar empleando la ecuaci´n 4. POLINOMIOS I En esta funci´n solo se hace necesario inicializar el vector x. CAP´TULO 4.0. Soluci´n Cuadr´tica: Inicializaci´n de variables 120b ≡ o a o x=zeros(2. que pueden ser reales o complejas conjugadas.b.

0e-10). y sus valores se pueden determinar: Determinaci´n de raices: Raices iguales 121b ≡ o elseif(abs(disc)<1. 121 Si el discriminante tiene un valor muy cercano a 0. end Fragmento referenciado en 120c. x(2)=2*c/b.0).4. entonces las ra´ son reales ıces e iguales. x(2)=2*c/(b-sqrt(disc)). x(1)=2*c/b. . x(1)=2*c/(b+sqrt(disc)). Fragmento referenciado en 120c. METODO DE BAIRSTOW Determinaci´n de raices: Raices diferentes 121a ≡ o if(disc>0.´ 4.

25 se tiene que los coeficientes del polinomio o resultante de la divisi´n sint´tica est´n dados por: o e a Coeficiente b4 b3 b2 b1 b0 Expresi´ n o b 4 = a4 b3 = a3 + rb4 b2 = a2 + rb3 + sb4 b1 = a1 + rb2 + sb3 b0 = a0 + rb1 + sb2 Valor 1.0 1. mientras que b3 ser´ el coeficiente de x y b2 el t´rmino indepena ıa e diete con lo cual se tiene que el polinomio resultante es: Pn−2 (x) = x2 + 3x − 3 y el t´rmino residual est´ dado por (ecuaci´n 4.25 b4 corresponder´ al coeficiente del t´rmino o ıa e cuadr´tico.24): e a o R = b1 (x − r) + b0 = 0 + (x − 2) × 0 = 0 y por lo tanto la divisi´n sint´tica es exacta indicando que x2 − 2x + 1 es un o e t´rmino cuadr´tico del polinomio original. De este factor se puede inferir a que r = 2 y s = −1 Los coeficientes del polinomio anterior son: Coef a4 a3 a2 a1 a0 Valor 1 1 -8 9 -3 y de acuerdo a la ecuaci´n 4.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´n 4.122 Ejemplo (Divisi´n sint´tica con factor cuadr´tico) o e a Dividir el polinomio: CAP´TULO 4. e a . POLINOMIOS I P4 (x) = x4 + x3 − 8x2 + 9x − 3 por el factor cuadr´tico dado por x2 − 2x + 1.

junto con los valores de r y s: r=2. .´ 4.s) obteni´ndose los siguientes resultados: e b = 0 0 -3 3 1 En este caso particular los dos primeros t´rminos del polinomio resultante e son iguales a 0 indicando que el residuo es igual a 0 y que la divisi´n es o exacta.c]=deflacion2(a. Los coeficientes del polinomio a se definen de la siguiente forma: a=[-3 9 -8 1 1]’.r. METODO DE BAIRSTOW Ejemplo MATLAB R 123 (Divisi´n sint´tica con factor cuadr´tico) o e a Dividir el polinomio: P4 (x) = x4 + x3 − 8x2 + 9x − 3 por el factor cuadr´tico dado por x2 − 2x + 1. de tal forma que para realizar la divisi´n sint´tica se emplea la funci´n o e o deflacion2.s=-1.m de la siguiente forma: [b.4.

63302752293578 y se puede determinar el valor del error en cada caso: errr = ∆r 1.63302752293578. Las derivadas de los factores b con respecto a r y s se calculan empleando las ecuaciones 4. un m´ximo de 100 itee a −6 raciones y un error m´ ınimno de 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.59633027) ∆s 3.0 1. POLINOMIOS I Ejemplo (Determinaci´n de ra´ con el m´todo de Bairstow) o ıces e Determine todas las ra´ ıces del polinomio: P4 (x) = x4 + x3 − 8x2 + 9x − 3 por medio del m´todo de Bairstow.28: Coeficiente c3 c2 c1 c0 Expresi´ n o c 3 = b4 c2 = b3 + rc3 c1 = b2 + rc2 + sc3 c0 = b1 + rc1 + sc2 Valor 1.59633027522936 s2 = s1 + ∆s = 2.124 CAP´TULO 4.3633027 errs = = × 100 = 137. Con estos se calculan los nuevos valores de r y s: r2 = r1 + ∆r = 0.59633027 = × 100 = 267.0) = −1 (−9) + (−1)(−1) + (−1)(1.59633027522936 y ∆s = 3.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.0 0 + (−1)(1. Divisi´n sint´tica por factor cuadr´tico da como resultado: o e a Coeficiente b4 b3 b2 b1 b0 Expresi´ n o b 4 = a4 b3 = a3 + rb4 b2 = a2 + rb3 + sb4 b1 = a1 + rb2 + sb3 b0 = a0 + rb1 + sb2 Valor 1.0)∆s = −18 (−9)∆r + (−1.0)∆s = 9 el cual al resolver permite conocer ∆r = 1.69 % r (0. usando r = s = −1. los t´rminos b0 y b1 son diferentes de 0 y por lo e tanto los valores de r y s no son los correctos.633027) .97 % s (2.0 × 10 .

al final de la cuales se obtiene que los valores de r = 1.00000002210108 x4 = −3.´ 4. METODO DE BAIRSTOW 125 El procedimiento anterior se repite por 22 iteraciones. con los cuales los valores de b1 = 0.79128784747792 Con lo cual se han obtenido todas las raices del polinomio empleando la soluci´n o de la ecuaci´n cuadr´tica!!!.0 x1 = r + (r + 4s) 2s = 0.0 y b0 = 0.9999999 ≈ 1.4.79128793126949 del cual se pueden obtener las raices aplicando el mismo procedimiento anterior: x3 = 1.0. o a . Con estos valores de r y s se soluciona la ecuaci´n cuadr´tica x2 − rx − s = 0 obteni´ndose de esta forma las o a e ra´ ıces: 2s = 0.79128782537684x − 3.79128783199515.7912878 x2 = r − (r + 4s) El polinomio resultante del procedimiento de divisi´n sint´tica es: o e P2 = x2 + 2.79128782791137 y s = −0.

r. incluyendo valores reales y/o complejos.iter]=bairstow(a. El primer paso consiste en definir el polinomio de inter´s por medio de sus e coeficientes.ff. las ra´ e ıces obtenidas son: xr = 1.7913 4.s=-1.5.100. junto los valores de r y s r=-1.126 Ejemplo MATLAB R CAP´TULO 4.err.0000 0.s. usando r = s = −1. 4.0 × 10−10 .0000 -3.5. M´todo de Laguerre e Fundamentos Conceptuales El m´todo de Laguerre es uno de los m´todos m´s eficientes que existen para e e a la determinaci´n de todas las ra´ o ıces de un polinomio. y despu´s de 66 iteraciones. El m´todo de Bairstow se encuentra implementado en la funci´n bairstow. un m´ximo de 100 e a iteraciones y un error m´ ınimno de 1. para lo cual definimos el siguiente vector: a=[-3 9 -8 1 1]’.7913 1. e o con la cual este problema se puede resolver de la siguiente forma: [xr. POLINOMIOS I (Determin´ci´n de ra´ con el m´todo de Bairstow) a o ıces e Determine todas las ra´ ıces del polinomio: P4 (x) = x4 + x3 − 8x2 + 9x − 3 por medio del m´todo de Bairstow.33) .1.m .1e-10). Para entender la filosof´ de este m´todo es necesario comenzar con la expresi´n ıa e o general para las ra´ ıces de un polinomio: Pn (x) = (x − x1 )(x − x2 ) · · · (x − xn ) (4.

lo o o cual permite despejar la distancia a a la ra´ y obtener: ız n (4.41) .34) Al derivar la expresi´n anterior se obtiene: o 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´n 4. n Atendiendo a las suposiciones antes mencionadas las ecuaciones 4.36) Ahora para obtener una estimaci´n de las ra´ o ıces del Polinomio se tienen que hacer las siguientes suposiciones: la distancia entre la ra´ x1 y nuestro valor inicial x0 est´ dada por a ız a la distancia entre el valor inicial x0 y las restantes ra´ ıces est´ dada por b y a es la misma para todas las ra´ ıces. .35) P (x) − n Pn (4.4. 3.5. . . n corresponden a cada una de las ra´ ıces de Pn y los cuales son los valores que se quieren determinar.39) a2 b De la ecuaci´n 4.36 se pueden reescribir de la siguiente forma: 1 n−1 + =G a b (4. .37) i = 2. La ecuaci´n anterior se puede simo plificar para los prop´sitos del entendimiento del presente m´todo si se toma el o e logaritmo.34 est´ dada por: o a − d2 ln |Pn (x)| 1 1 1 = + + ··· + dx2 (x − x1 )2 (x − x2 )2 (x − xn )2 Pn (x) = Pn (x) 2 (4. . (4. METODO DE LAGUERRE 127 donde xi .´ 4. x0 − x1 = a x0 − xi = b.38) 1 n−1 + 2 =H (4. .38 se despeja b para reemplazarlo en la ecuaci´n 4. . .40) a= G + (n − 1)(nH − G2 ) Con lo anterior la primera ra´ del polinomio x1 queda definida como: ız x1 = x0 + a (4.39.35. i = 1. De esto se obtiene: ln |Pn (x)| = ln |x − x1 | + ln |x − x2 | + · · · + ln |x − xn | n = k=1 ln |x − xk | (4.

POLINOMIOS I 4.m" 128a ≡ Laguerre: Declaraci´n de la funci´n 128b o o Laguerre: Inicializaci´n de variables 129a o Laguerre: Ciclo Principal 129b Laguerre: Chequear si se obtuvo ra´ 132 ız en la 4. Declaraci´ n de la funci´ n o o Las variables de entrada a la funci´n son las siguientes: o x0: valor inicial de la ra´ ız a: vector de tama˜ o n × 1 que contiene los coeficientes que definen el n polinomio de inter´s.5. ız Laguerre: Declaraci´n de la funci´n 128b ≡ o o function [xr.5. As´ mismo es necesario ız ı contar con el n´ mero de elementos del vector a. Determinaci´ n de la ra´ces de polinomios usando el o ı m´todo de Laguerre e R El m´todo de Laguerre se encuentra implementado en MATLAB e funci´n laguerre.5. Inicializaci´ n de Variables o Uno de los aspectos m´s interesantes del m´todo corresponde al hecho que a e converge sin importar cual es el valor inicial especificado. el valor de la ra´ x0 es especificado por el usuario. 4. . e niter: valor que representa el n´ mero de iteraciones u errm in: valor de error relativo m´ ınimo que se emplea para chequear la convergencia del m´todo a la ra´ buscada.128 CAP´TULO 4.2.err_min) Fragmento referenciado en 128a.m cuya estructura es la siguiente: o "laguerre.2.2.iter]=laguerre(x0.er. e ız La variable de salida x corresponde a una ra´ del polinomio en estudio. el cual se almacena en la variau ble n. En este caso particular.2.fx.maxiter.1.a.

3.1)=x0.2. 129 4. 4. xold=x0.5.1.x0). iter=1. Fragmento referenciado en 128a. A esta funci´n se le especio o fican los coeficientes contenidos en el vector a y el valor inicial de la ra´ x y ız se obtienen el valor del polinomio p. err=100. Prueba de la ra´z Para probar la ra´ inicial x se utiliza la funci´n ı ız o evaluacion polinomio.5. xr(iter. la primera y segunda derivadas.1)=100.3.1)=p.1.2. 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´ 129c ız Ciclo Principal Laguerre: Chequear si es ra´ 130a ız Ciclo Principal Laguerre: C´lculo de G y H 130b a Ciclo Principal Laguerre: C´lculo del denominador 130c a Ciclo Principal Laguerre: Determinaci´n del signo 131a o Ciclo Principal Laguerre: Actualizaci´n de la ra´ 131b o ız Ciclo Principal Laguerre: C´lculo de error e incremento de iteraciones 131c a Ciclo Principal Laguerre: Actualizaci´n de valores 131d o end. a Ciclo Principal Laguerre: Prueba de la ra´ 129c ≡ ız [p pd sd]=evaluacion_polinomio(a.xold). Fragmento referenciado en 128a.m definida en la secci´n 4. las cuales est´n contenidas en las variables pd y sd respectivamente. fx(iter. . METODO DE LAGUERRE Laguerre: Inicializaci´n de variables 129a ≡ o n=length(a)-1.´ 4.5. Ciclo Principal Esta es la parte m´s importante del procedimiento ya que aqu´ se determinan a ı las ra´ ıces del polinomio. [p pd sd]=evaluacion_polinomio(a. er(iter. Fragmento referenciado en 129b.

C´lculo del denominador Una vez los valores de G y H se han a calculado se determina el valor del denominador de la ecuaci´n 4.2. POLINOMIOS I 4.2.5. En este caso la funci´n termina su ejecuci´n y ız o o devuelve el control al usuario. Ciclo Principal Laguerre: Chequear si es ra´ 130a ≡ ız if(abs(p)<err_min).3. entonces la funci´n continua su ız o ejecuci´n calculando los valores de G y H (ecuaciones 4.2.40 se hace necesario determinar la magnitud de G + H: .130 CAP´TULO 4.3. 4. er(iter.3.40: o Ciclo Principal Laguerre: C´lculo del denominador 130c ≡ a f=sqrt((n-1)*(n*h-g*g)). Chequear si es ra´z Si al evaluar el polinomio en x se obtiene un ı valor p menor a la tolerancia tol especificada inicialmente entonces se ha determinado una ra´ del polinomio. 4. C´lculo de G y H Si el valor x especificado inicialmente no coa rresponde a una ra´ del polinomio en estudio. Fragmento referenciado en 129b. Fragmento referenciado en 129b. Determinaci´ n del signo Para terminar de calcular el denominao dor de 4.2.5. end. return. Ciclo Principal Laguerre: C´lculo de G y H 130b ≡ a g=pd/p. Fragmento referenciado en 129b. 4. h=g*g-sd/p. disp([’Raiz encontrada en la iteracion ’ num2str(iter)]).1)=abs(p).38 y 4.2.5.4.3.39 respectivao mente).3.5.5.

2. else dx=n/(g-f).2. METODO DE LAGUERRE Ciclo Principal Laguerre: Determinaci´n del signo 131a ≡ o if(abs(g+f)>=abs(g-f)).3.8. end. err=abs((x-xold)/x)*100. er(iter.´ 4.1)=p. 4. Actualizaci´ n de valores : en este fragmento se actualizan los o valores de xold. 131 4. Fragmento referenciado en 129b. 4.2.7. Fragmento referenciado en 129b. xr(iter.5.3.1)=err. Fragmento referenciado en 129b. fx(iter. .6. Fragmento referenciado en 129b. y se asignan los respectivos valores en los vectores f x(·) y er(·): Ciclo Principal Laguerre: Actualizaci´n de valores 131d ≡ o xold=x.5. se calcula el error relativo de la misma y se incrementa el n´ mero de u iteraciones: Ciclo Principal Laguerre: C´lculo de error e incremento de iteraciones 131c ≡ a iter=iter+1. C´lculo de error e incremento de iteraciones : Con la nueva ra´ a ız calculada.41: ız. Actualizaci´ n de la ra´z : Una vez se ha determinado el increo ı mento de la ra´ esta se actualiza usando la ecuaci´n 4.1)=x. dx=n/(g+f).5.3. o Ciclo Principal Laguerre: Actualizaci´n de la ra´ 131b ≡ o ız x=xold-dx.5.

49402i .48i P (x) H(x) = G (x) − 3 P3 (x) 2 (2) (1) (2) (1) = (−2.0 × (8 − 6i) − 8.08462i)2 5.7): o ı P3 (x) = x3 − 4.9.48 − 10.132 CAP´TULO 4.08670 − 4. o Laguerre: Chequear si se obtuvo ra´ 132 ≡ ız if(iter>=maxiter & err>err_min).0 = 10.48 = −4.0x2 − 4.0i P (x) = = −2.35995 − 12. end.48i Con estos valores se puede calcular F (x) como el denominador de la ecuaci´n 4.34 + 2. Chequear si se obtuvo la ra´z : Si la ra´ no se obtuvo se imprime ı ız un mensaje en pantalla que alerta al usuario sobre esta situaci´n.0 − 6i −1.0 × (3 − 1) − 4.1 = (18 − 26i) − 4.1 asumiendo un valor inicial de x = 3 − i.0x2 − 4.36 o o con lo que se obtiene: −4.08462i)2 − = 0.0 × (3 − i) − 8. Fragmento referenciado en 128a.0x − 4. e ız Ejemplo (M´todo de Laguerre para la ra´ de un polinomio) Encuentre una ra´ del polinomio: ız P3 (x) = x3 − 4.48x + 26.36557 + 3. Para mejorar la correcci´n de la ra´ inicial es necesario evaluar el polinomio o ız (ecuaci´n 4.35 y H(x) ecuaci´n 4. POLINOMIOS I 4.40 de la siguiente forma: o F (x) = = = √ (n − 1)[nH(x) − G2 (x)] 2 × 3(0.6 y 4.67822 − 45.5) as´ como sus derivadas (ecuaciones 4. disp(’Aumente el numero de iteraciones’).0 − 6i Con estos valores se calcula G(x) usando la ecuaci´n 4.48x + 26.5.48452i) − (−2.’).48 × (3 − i) + 26.48 = 3. disp(’Metodo de Laguerre no encontro solucion.36557 + 3.0x − 8.34 + 2.1 = −1.0i P3 (x) = 6.36557 + 3.0 = 6.34 + 2.71946i = 5.08462i G(x) = 3 P3 (x) −1.0 × (8 − 6i) − 4.48452i 10.3.0x2 − 8.35995 − 12.48i P3 (x) = 3.48 − 10.2.

49402i)| = |2.19790 − 0.79875i.36557 + 3.5.36557 + 3.0 × 10−12 o .08462i) + (5.´ 4. la cual se acerca ız mucho al valor real de x = 3.45227 + 7.19790 − 0.08462i) − (5.57864i| = 10.49402i)| = | − 7.06448 |G(x) − F (x)| = |(−2.08670 − 4. METODO DE LAGUERRE 133 Ahora se requiere determinar que factor produce una mayor correcci´n en el o denominador: |G(x) + F (x)| = |(−2.80i.62884 que en este caso corresponde al segundo factor.20 − 0.72113 − 1.57864i = 3.79875i de tal forma que la ra´ corregida es x = 3.40940i| = 3.08670 − 4. con lo cual el valor de correcci´n o de la ra´ es: ız r =x− n 3 = (3 − i) − G(x) − F (x) −7. Este procedimiento se repite hasta la 4 iteraci´n en donde el error relativo obtenido ha llegado ha ser de 1.45227 + 7.

1.0000 .3. y el valor inicial de la ra´ ız: x0=3-i.100. procedimiento que converge en 4 iteraciones: >> iter iter = 4 y del cual se obtiene: >> [xr(iter) fx(iter) er(iter)] ans = 3. tal y como est´ implementado en la funci´n laguee a o rre.134 Ejemplo MATLAB R CAP´TULO 4. Determinaci´ n de todas las ra´ces de un polinomio o ı Hasta este momento tal y como se ha presentado el m´todo de Laguerre este e se puede emplear para la determinaci´n de una ra´ Su verdadero potencial o ız.0000 4. POLINOMIOS I (M´todo de Laguerre para la ra´ de un polinomio) e ız Determinar la ra´ del polinomio ız P4 (x) = x3 − 4. La idea es muy senciı´ ıces lla y consiste en especificar un valor inicial x0 y con este determinar el valor de la ra´ x1 .7987i 0.a.48 -4 1]’.0.0x2 − 4.fx. Para aplicar el procedimiento de Laguerre y resolver este problema es necesario definir el vector con los coeficientes del polinomio: a=[26. con lo cual es posible aplicar el m´todo de Laguerre para e [xr.0e-12).iter]=laguerre(x0.1 -4.1998 .0.m) o o para la determinac´on sucesiva de ra´ de un polinomio.5. Con esta ra´ determinada se realiza el procedimiento de divisi´n sint´tiız ız o e .1 en MATLAB R a partir del valor inicial 3 − i.m se combina con la deflaci´n polinomial (funci´n deflacionpolinomial.0000i 0. emerge cuando este m´todo.er.48x + 26.

m o y tiene la siguiente estructura: "raices_polinomios. Este procedimiento ız.err_min) Fragmento referenciado en 135a. La funci´n que implementa este procedimiento se denomina raices polinomios.2.3. Este valor es igual al n´ mero de coefiu u cientes del polinomio menos 1 (ya que se incluye el t´rmino independiene te).3.´ 4.5. METODO DE LAGUERRE 135 ca y el polinomio resultante nuevamente se somete al m´todo de Laguerre para e determinar el valor de otra ra´ la cual corresponder´ a x2 . xr vector de tama˜ o n en donde se van a almacenar las raices.m" 135a ≡ Raices Polinomios: Declaraci´n de la Funci´n 135b o o Raices Polinomios: Inicializaci´n de variables 136a o Raices Polinomios: Ciclo Principal 136b 4. 4. Declaraci´ n de la funci´ n o o Las variables de entrada de esta funci´n son: o x0: valor inicial de la ra´ Este valor sirve para inicializar la b´ squeda de ız.a.5.1. u las raices cada vez que se ejecuta el procedimiento de laguerre .5. a: vector con los coeficientes que definen el polinomio maxiter: n´ mero m´ximo de iteraciones u a err min: error o tolerancia m´ ınima con la cual se considera que una soluci´n es satisfactoria o La variable de salida corresponde a xr un vector con todas las raices del polinomio. n . Inicializaci´ n de variables o Para determinar las raices de un polinomio se deben inicializar las siguientes variables n: n´ mero de raices a determinar.maxiter. Raices Polinomios: Declaraci´n de la Funci´n 135b ≡ o o function [xr]=raices_polinomios(x0. ıa se repita hasta que todas las ra´ ıces del polinomio hayan sido determinadas.

er=100.1). Ciclo principal La determinaci´n de las n raices de un polinomio se hace mediante un ciclo o for que tiene la siguiente estructura: Raices Polinomios: Ciclo Principal 136b ≡ for i=1:n. o ız .5. 4.3.5.m se determinar el error relativo en la aproximao ci´n de la ra´ obtenida. Fragmento referenciado en 135a. xr=zeros(n.2. Dentro de este ciclo se incrementa el contador iter.5.3.3. y al e emplear la funci´n laguerre.1. Fragmento referenciado en 135a. 4. CAP´TULO 4.3. Fragmento referenciado en 136b.136 Raices Polinomios: Inicializaci´n de variables 136a ≡ o n=length(a)-1.3.3. Ciclo Principal Raices: Inicializaci´n variables 136c o Ciclo Principal Raices: aplicaci´n del m´todo de Laguerre 137a o e Ciclo Principal Raices: Correci´n de la ra´ obtenida 137b o ız Ciclo Principal Raices: divisi´n sint´tica 137c o e end. POLINOMIOS I 4. Inicializaci´ n de Variables Para cada ra´ se hace necesario inio ız cializar las variables iter que almacena el n´ mero de iteraciones y er que almau cena el error relativo de la ra´ determinada en cada iteraci´n: ız o Ciclo Principal Raices: Inicializaci´n variables 136c ≡ o iter=0. Aplicaci´ n del m´todo de Laguerre Para encontrar la ra´ se o e ız aplica el m´todo de laguerre por medio de un ciclo while que controla la cone vergencia del m´todo.

3. Divisi´ n sint´tica Una vez se ha encontrado una de las raices o e del polinomio se procede a extraerla del mismo usando el procedimiento de divisi´n sint´tica.iter]=laguerre(x0.´ 4. Fragmento referenciado en 136b. .5. Al final se asigna la ra´ obtenida en la ız ız correspondiente posici´n del vector xr o Ciclo Principal Raices: Correci´n de la ra´ obtenida 137b ≡ o ız if(abs(imag(x(iter. xr(i. 137 4. Fragmento referenciado en 136b.1)=x(iter.xr(i.5.4.3.1)=real(x(iter. METODO DE LAGUERRE Ciclo Principal Raices: aplicaci´n del m´todo de Laguerre 137a ≡ o e while(iter<maxiter & er>errmin). x(iter.3.5. o e o y se asignan los coeficientes del polinomio resultante al vector a: Ciclo Principal Raices: divisi´n sint´tica 137c ≡ o e b=deflacion_polinomial(a.3. end. 4.errmin). Correcci´ n de la ra´z Si la ra´ obtenida en el paso anterior tieo ı ız ne un valor imaginario que es menor al error m´ ınimo especificado inicialmente err min.er. end.fx.m . a=b. entonces este valor se puede despreciar y en ese caso se considera solamente la parte real de la ra´ obtenida.1)).1).1)).3. [x. Fragmento referenciado en 136b. para lo cual se emplea la funci´n deflacion polinomial.maxiter. iter=iter+1.a.1)))<errmin).

48 -4 1]’.79868631472850i 3.m definida en la secci´n 4.1e-6).19981247501149 + 0.100.48x + 26.1 -4.a.19981247566068 .0.138 Ejemplo MATLAB R CAP´TULO 4. lo cual se hace de la siguiente forma: >>a=[26. Para realizar este procedimiento en MATLAB R es necesario definir el vector de coeficientes del polinomio.1 o o .0 × 10−6 .39962495067217 Para determinar si estos valores son las ra´ ıces del polinomio anterior puede emplear la funci´n evaluacion polinomio.79868631463590i -2. con un m´ximo de 100 iteraa ciones y una tolerancia de 1. de tal forma que los resultados ız obtenidos en este caso son: >>xr xr = 3. mientras que la ız segunda y tercera ra´ requieren solamente 2.0x2 − 4. La primera ra´ requiere de 3 iteraciones para converger. Con esto ya se puede emplear la funci´n raices polinomios.m de la sio guiente forma: >>[xr]=raices_polinomios(x0. POLINOMIOS I (Determinaci´n de ra´ con el m´todo de Laguerre) o ıces e Determinar todas las ra´ ıces del polinomio P4 (x) = x3 − 4. Tambi´n se requiere especificar la soluci´n inicial del procedimiento: e o >>x0=3-i.1 en MATLAB R a partir del valor inicial 3 − i.

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.2) donde A representa la matr´ de coeficientes. los cuales pueden agruparse en dos grandes categor´ ıas: M´todos directos e 139 .1) .1) se puede escribir como: o Ax = b (5.Cap´tulo 5 ı Soluci´ n de sistemas lineales de o ecuaciones: M´todos directos e 5. . an1 x1 + an2 x2 + · · · + ann xn = bn en donde los aij corresponden a los denominados coeficientes del sistema y los bi a los t´rminos independientes. . o o El anterior sistema lineal de ecuaciones puede ser expresado de forma compacta ´ usando un elemento definido en el Algebra Lineal: la matr´ Usando matrices el ız.1 se cumplan se denominan la soluci´n del sistema. A e nivel general. Introducci´ n o Los sistemas lineales de ecuaciones aparecen en muchos problemas de la ingenier´ civil. . Los valores de xi que hacen que cada una de las e igualdades en la ecuaci´n 5. por lo cual resulta su estudio de vital importancia para cualquier ıa persona que quiera adentrarse en los terrenos del modelamiento num´rico. sistema lineal de ecuaciones dado por la ecuaci´n (5. x corresponde al vector de inc´gniız o tas y b es el vector con los t´rminos independientes. . e Existen diferentes m´todos para la obtenci´n de la soluci´n de un sistema lie o o neal de ecuaciones.1. .

1. Matrices Sim´tricas e Definici´ n 14 o Una matr´ sim´trica es aquella para la cual se cumple que: ız e aij = aji y por lo tanto se tiene que A = AT .1.140 M´todos iterativos e ´ CAP´TULO 5. (5. ya que existen m´todos espec´ e ıficos de soluci´n para estos tipo de mao trices. METODOS DIRECTOS I Dentro de los m´todos directos m´s comunes se pueden mencionar los sie a guientes: Eliminaci´n gaussiana o Descomposici´n LU o Descomposici´n de Cholesky o Dentro de los m´todos iterativos m´s importantes se encuentran: e a Gauss-Seidel Sobre-relajaci´n o Gradiente Conjugado 5. 5.1. Tipos de Matrices Existen diferentes tipos de matrices y su conocimiento es un requisito fundamental para el estudio de los m´todos de soluci´n de sistemas de ecuaciones e o lineales.3) Ejemplo La siguiente es un caso muy sencillo de una matr´ sim´trica: ız e   4 5 6  5 6 7  6 7 8 .1. A continuaci´n se presentan los tipos m´s importantes de matrices que o a van a aparecer en el estudio de los sistemas lineales de ecuaciones.1.

la cual es igual a su transpuesta conjugada. Matrices Herm´ticas ı Definici´ n 15 o 141 Una matr´ Herm´ ıx ıtica (o matr´ auto-adjunta) es una matr´ cuadrada con ız ız valores complejos.1.1. e .4) Ejemplo La siguiente matr´ es de tipo herm´ ız ıtico.´ 5.   4 5+i 6−i  5−i 6 7+i  6+i 7−i 8 ya que los elementos cumplen con la condici´n expresada por la ecuaci´n o o 5. INTRODUCCION 5. es decir.5)  0 0 d33 0  0 0 0 d44 De aqui se desprende que una matr´ Herm´ ız ıtica de valores reales es una matr´ ız sim´trica. 5.4. Matrices Diagonales Definici´ n 16 o Una matr´ diagonal es aquella para la cual los elementos de la diagonal ız principal son valores reales y los restantes elementos son iguales a 0:   d11 0 0 0  0 d22 0 0   D= (5.2. que el elemento en la fila i y en la columna j es el complejo conjugado del elemento de la fila j y la columna i: ¯ aij = −aji donde aij representa el complejo conjugado del valor de aij ¯ (5.1.1.1.3.

1. Matr´z Identidad ı Definici´ n 17 o La matr´ identidad I es aquella para la cual se cumple: ız I·A=A (5.1.7)  0 0 1 0  0 0 0 1 .4.142 Ejemplo ´ CAP´TULO 5. METODOS DIRECTOS I Un ejemplo sencillo de matr´ diagonal es el siguiente: ız   5 0 0 D= 0 4 0  0 0 8 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.

Matr´z Tridiagonal ı Definici´ n 18 o Las matrices tridiagonales son aquellas que tienen elementos diferentes de 0 en la diagonal principal.1.1.8)   0  0 a43 a44 a45 0 0 0 a54 a55 .´ 5. INTRODUCCION Ejemplo La matr´ identidad de 3 × 3 est´ dada por: ız a   1 0 0 I3 =  0 1 0  0 0 1 143 5.5.1. y las primeras diagonales superior e inferior:   a11 a12 0 0 0  a21 a22 a23 0 0     0 a32 a33 a34 0  T= (5.

Un ejemplo sencillo de o 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.6.144 Ejemplo ´ CAP´TULO 5. Matrices Triangulares Definici´ n 19 o La matr´ triangular inferior se define como aquella para la cual los elemenız tos por encima de la diagonal principal son iguales a 0:   a11 0 0 0 0  a21 a22 0 0 0     a31 a32 a33 0 0  L= (5.9)   a41 a42 a43 a44 0  a51 a52 a53 a54 a55 Definici´ n 20 o De forma equivalente.1.1.10)    0  0 0 a44 a45 0 0 0 0 a55 . METODOS DIRECTOS I Las matrices tridiagonales son muy importantes porque aparecen en la discretizaci´n de ecuaciones diferenciales parciales. en una matr´ triangular superior los valores por ız debajo de la diagonal principal son iguales a 0:   a11 a12 a13 a14 a15  0 a22 a23 a24 a25    0 a33 a34 a35  U= 0 (5.

12) .1.1. Matrices de Hessemberg Definici´ n 21 o Las matrices de Hessemberg tambi´n se denominan matrices supertriangue lares. La matr´ de Hessemberg supeız rior est´ definida de la siguiente forma: a   a11 a12 a13 a14 a15  a21 a22 a23 a24 a25    HU =  0 a32 a33 a34 a35  (5.1. y son aquellas para las cuales todos los elementos por encima o por debajo de las subdiagonales son iguales a 0.7.11)    0 0 a43 a44 a45  0 0 0 a54 a55 y de igual forma la matr´ de Hessemberg inferior: ız  a11 a12 0 0 0  a21 a22 a32 0 0  HL =  a31 a32 a33 a34 0   a41 a42 a43 a44 a45 a51 a52 a53 a54 a55       (5.´ 5. INTRODUCCION Ejemplo Un ejemplo de matr´ triangular superior es el siguiente: ız   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´ triangular inferior: ız  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.

.2. Las matrices diagonales. triangulares y de Heseemberg corresponden a tipos espec´ ıficos de matrices dispersas. Algunos e procedimientos para la obtenci´n de los valores y vectores propios como la o descomposici´n QR. METODOS DIRECTOS I ´ Las matrices de Hessemberg son importantes en diferentes ramas del algebra lineal ya que muchos problemas con matrices totalmente llenas (o densas como tambi´n se les conocen) se obtienen matrices de este tipo. Matrices Densas y Dispersas Definici´ n 22 o Una matr´ A se dice que es densa cuando todos sus elementos son difeız rentes de 0. una matr´ A se dice dispersa si alguno de sus ız elementos es igual a 0.146 Ejemplo ´ CAP´TULO 5. Un ejemplo de matr´ de Hessemberg es el siguiente: o ız   1 2 0 0 0  3 4 5 0 0    HU =  6 7 8 9 0     10 11 12 13 14  16 17 18 19 20 5. Por otro lado.1.

000 147 0.000 0. La finalidad o verdadera de estas transformaciones consiste en facilitar los procedimientos de soluci´n de sistemas lineales de ecuaciones.000 0.3.000 0.000       Generalmente las matrices dispersas aparecen cuando se discretizan ecuaciones diferenciales parciales.000  DI =  0.1.000 0.000 0.000 0. las 3 transformaciones elementales mencionadas anteriormente son operaciones que no cambian la soluci´n de un o sistema lineal de ecuaciones.000 0.000 0.000 0. Este tipo de matrices requieren de m´todos e especiales para su almacenamiento y para su operaci´n.1. 5. Por ejemplo.000 0.000  0. cuya soluci´n es la misma que el sistema original.068 0.´ 5.849 0. Transformaciones Elementales Para una matriz A se definen tres transformaciones elementales. las cuales se aplican sobre las ecuaciones que conforman el sistema lineal. de tal forma que o aseguren un manejo de memoria eficiente. Sumar dos ecuaciones entre si 3. Intercambiar de posici´n dos ecuaciones o Como es evidente de la lista anterior.000 0.000 0. Multiplicar o divir una ecuaci´n por un escalar αdiferente de 0 o 2.000 0.628 0. 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 . INTRODUCCION Ejemplo Un ejemplo sencillo de una matr´ densa es el siguiente: ız   9 8 7 DE =  6 5 4  3 2 1 y de una matr´ dispersa: ız  0.878 0.000 0.000   0.000 0. Dichas transformaciones elementales permiten cambiar el sistema lineal original en un sistema equivalente. o Las transformaciones elementales son las siguientes: 1.685 0.

o De la misma forma. ız 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. la soluci´n del mismo se puede o obtener de forma sencilla empleando los procedimientos de sustituci´n hacia o atr´s y hacia delante respectivamente.13)  0 0 u33 u34   x3   b3  0 0 0 u44 x4 b4 Para obtener todos los elementos del vector soluci´n x se procede de la siguiente o forma: . METODOS DIRECTOS I tomemos la primera ecuaci´n y multipliquemosla por un escalar α = 0. Este hecho es de vital importancia ya que a todos los m´todos directos de soluci´n de ecuaciones lineales tratan de llevar el sise o tema original a uno equivalente. quiere decir que esta ecuaci´n es una nueva o restricci´n que deben cumplir los valores de las inc´gnitas. con lo o que se tiene: αa11 x1 + αa12 x2 + αa13 x3 + αa14 x4 = αb1 Esta ecuaci´n se puede introducir en el sistema original de la siguiente mao nera:      αa11 αa12 αa13 αa14 x1 αb1  a21 a22 a23 a24   x2   b2    =   a31 a32 a33 a34   x3   b3  a41 a42 a43 a44 x4 b4 con lo cual resulta evidente que el vector soluci´n x no cambia.2. cuya matr´ de coeficientes sea de tipo triangular. 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 coeficientes de acuerdo a las varibles respectivas xi . Soluci´ n de sistemas triangulares o Si se tiene un sistema lineal de ecuaciones cuya matr´ de coeficientes A sea ız del tipo triangular (ya sea superior o inferior). y por lo tanto o o 5.148 ´ CAP´TULO 5.

n − 2.2. Este se resume a continuaci´n: o o .14) En el caso de un sistema lineal en donde la matr´ de coeficientes es de tipo ız triangular inferior. como el presentado a continuaci´n: o      l11 0 0 0 x1 b1  l21 l22 0 0   x2   b2       (5. La ultima variable x1 se despeja de una forma similar a partir de la ecuaci´n: o b1 − u14 x4 − u13 x3 − u12 x2 x1 = u11 Este procedimiento se denomina sustituci´n hacia atr´s y se puede generalio a zar mediante la siguiente expresi´n: o xk = bk akk n (bk−1 − xk−1 = j=k+1 akj xj ) akk . . k = n − 1. Con el valor de x4 antes obtenido se despeja x3 a partir de la 3 ecuaci´n o del sistema original u33 x3 + u34 x4 = b3 de lo cual se deprende que: x3 = b3 − u34 x4 u33 3. . para lo cual se usa la ecuaci´n o 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 ´ 4.´ 5. SOLUCION DE SISTEMAS TRIANGULARES 1. . Se despeja x4 usando la expresi´n: o x4 = b4 u44 149 2. n (5.15)  l31 l32 l33 0   x3  =  b3  l41 l42 l43 l44 x4 b4 el procedimiento empleado para obtener su soluci´n es similar al explicado ano ´ teriormente. De igual forma se procede para despejar x2 . . la unica diferencia consiste en el orden en el que se despejan las inc´gnitas del problema.

k = 2. La tercera inc´gnita x3 se puede obtener de la ecuaci´n: o o l31 x1 + l32 x2 + l33 x3 = b3 de la cual se obtiene: x3 = b3 − l31 x1 − l32 x2 l33 ´ 4. La segunda inc´gnita x2 se puede despejar de la ecuaci´n: o o l21 x1 + l22 x2 = b2 la cual es igual a: x2 = b2 − l21 x1 l22 3. a . . METODOS DIRECTOS I 1. n (5. 3. . Eliminaci´ n Gaussiana con Pivoteo o Fundamentos Conceptuales La eliminaci´n gaussianaes el procedimiento de soluci´n de sistemas de ecuao o ciones lineales m´s sencillo e importante que existe.16) 5. La ultima inc´gnita se puede despejar de la ecuaci´n: o o x4 = b4 − l41 x1 − l42 x2 − l43 x3 l44 Este procedimiento se denomina sustituci´n hacia delante y se puede generalizar o mediante la siguiente expresi´n: o x1 = b1 a11 n bk − xk = j=k akj xj akk .150 ´ CAP´TULO 5.3. . 5.3. . Este valor es igual a: x1 = b1 l11 2. La primera variable que se despeja corresponde a x1 .1.

. . . Este ultimo sistema se puede resolver mediante e sustituci´n hacia atr´s. 0 0 0 ann bn (5. . 0 .´ 5. ..18) donde la notaci´n aij indica que el elemento aij cambi´. .19) .  . . . . .18) despejamos la a o ´ ultima inc´gita xn . . .  .. . a1n b1  0 a  21 . a2n b2     .17) es la misma o o del sistema modificado (ecuaci´n 5. a1n b1  a21 a22 . Un hecho de vital imo o portancia es que la soluci´n x del sistema original (ecuaci´n 5. ız Esta matr´ se denota como [A|b] y se encuentra formada por la matr´ de coefiız ız cientes y del vector de t´rminos independientes: e  a11 a12 . . de tal forma que del sistema equivalente (ecuaci´n 5.1. . . ELIMINACION GAUSSIANA CON PIVOTEO Definici´ n 23 o 151 La eliminaci´n gaussiana es el procedimiento para la soluci´n de un sistema o o lineal de ecuaciones el cual se basa en la aplicaci´n de transformaciones o elementales (ver secci´n 5.1. y por lo tanto resulta de vital imporo tancia estudiar como se resuelven los sistemas lineales cuyas matrices de coeficientes son de tipo triangular.   . a2n b2    .3.3) y que permite convertir: o A·x=b en un sistema de la forma: U·x=b donde U es una matr´ triangular superior y b es un vector modificado de ız ´ t´rminos independientes. an1 an2 . . o a En el procedimiento de eliminaci´n gaussiana el sistema lineal de ecuaciones o A · x = b se resuelve definiendo la denominada matr´ aumentada del sistema. o se convierte en un sistema lineal equivalente dado por:   a11 a12 .18). . ann bn  (5.3). . con lo cual se obtiene: o xn = bn ann (5. Una vez el sistema lineal de ecuaciones ha sido llevado a esta forma triangular superior se puede resolver por sustituci´n hacia o atr´s.   0 . . .17) y sobre el cual al aplicar las transformaciones elementales (ver secci´n 5. .

21) Se pueden presentar problemas en el caso de que los elementos con los coeficientes aii con los que se realiza la eliminaci´n sean muy cercanos a la precisi´n o o de la m´quina. En la primera se modifica el valor del coeficiente aij con respecto al valor m´ximo de la ecuaci´n: a o aij = aij m´x (ai. ya que se pueden generar inestabilidades num´ricas. . El procedimiento de escalamiento consiste en ajustar los valores de los coeficientes de cada una de las ecuaciones de tal forma que estos tengan el mismo orden de magnitud. k = n − 1. n xk =    akk (5. A nivel pr´ctico existen dos aproximaciones para realizar a este procedimiento. El pivoteo permite resolver este problema. el cual cone siste en un procedimiento de reorganizaci´n de la ecuaciones del sistema lineal o .20) y lo cual se puede generalizar de la siguiente forma:   n akj xj bk −   j=k+1  .n−1 (5. .24) La eliminaci´n de coeficientes de una ecuaci´n requiere la determinaci´n del o o o multiplicador aij /aii y en ese caso se debe de evitar que el valor del coeficiente aii ≈ 0. que se denominan escalamiento y pivoteo . a o La otra aproximaci´n de escalamiento consiste en usar como patr´n de refeo o rencia la norma vectorial del conjunto de coeficientes de la ecuaci´n. ) a (5.152 ´ CAP´TULO 5. con lo o cual el coeficiente modificado tiene la forma: aij (5. ya que el valor del multiplicador tender´ a +∞ y as´ se generar´ una ıa ı ıa inestabilidad num´rica. y el valor o m´ximo se calcula para toda la ecuaci´n.23) aij = E donde E se define como: E= i=1 n |ai. | (5. METODOS DIRECTOS I Este mismo procedimiento se aplica a la inc´gnita xn−1 de tal forma que: o xn−1 = bn−1 − ann xn an−1. . n − 2. .22) donde aij es el valor del coeficiente para la ecuaci´n i y la variable j. Existen 2 a e estretegias con las que se puede evitar este problema.

o Otra aproximaci´n alternativa consiste en reorganizar tanto filas como columo nas. . an1 an2 an3 · · · ann        (5.3. mientras que aquel en donde se cambian solo las filas se denomina pivoteo parcial .25) 5. . 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. . Generalmente tanto el escalamiento y el pivoteo parcial se aplican de forma secuencial. ELIMINACION GAUSSIANA CON PIVOTEO 153 (lo que es equivalente a las filas) de acuerdo al valor del coeficiente ubicado en la diagonal principal aii . . u En un diagrama matricial.´ 5. se escoge el elemento mayor (con valor absoluto ) de toda la segunda columna exceptuando el elemento a12 . . . tenemos que los elementos pivotes de cada columna se escogen de entre los siguientes:        a11 a21 a22 a31 a32 a33 . . Para esto se mueve la ecuaci´n que tenga el mayor o valor de aii a la primera posici´n. ya que primero se realiza el escalamiento para luego determinar si es necesario realizar pivoteo. sin embargo este procedimiento resulta bastante complejo de implementar a nivel computacional y no brinda mejoras significativas con respecto a la aproximaci´n tradicional que cambia solamente las filas. Para elegir el elemento pivote en la segunda columna.2. El pivoteo que involucra o cambios tanto de filas como columnas se denomina pivoteo completo .3. Para la tercer columna se except´ an los elementos a13 y a23 . . Soluci´ n de Sistemas de Ecuaciones con Eliminaci´ n o o Gaussiana La estructura de la funci´n que implementa este procedimiento es la siguieno te: .

end n = length(b).b) if (size(b.2.154 "gauss_pivoteo. En este caso particular se tienen las siguientes variables de entrada: A: Matr´ de coeficientes del sistema lineal de ecuaciones. Escalamiento Como se mencion´ en la clase. 5.2.m" 154a ≡ ´ CAP´TULO 5.3. Fragmento referenciado en 154a. num_cambios=0. Gauss con Pivoteo: Declaraci´n de la funci´n 154b ≡ o o function [x.1). Definici´ n de la funci´ n o o Como es costumbre en MATLAB R para definir una funci´n es necesario o especificar cuales van a ser los argumentos de entrada y de salida. el escalamiento permite mejorar la estabilidad o num´rica de los diferentes procedimientos de eliminaci´n ya que e o . s = zeros(n.detm] = gauss_pivoteo(A.1. b = b’. METODOS DIRECTOS I Gauss con Pivoteo: Declaraci´n de la funci´n 154b o o Gauss con Pivoteo: Determinar valores para escalamiento 155a Gauss con Pivoteo: Ciclo principal 155b Gauss con Pivoteo: Sustituci´n hacia atr´s 158b o a Gauss con Pivoteo: C´lculo del determinante 159a a Gauss con Pivoteo: Asignaci´n de salida 159b o 5.2) > 1). Vector de tao ma˜ o n × 1 n detm: Valor del determinante de la matr´ de coeficientes del sistema liız neal. Esta matr´ es ız ız de tama˜ o n × n n b: Vector de t´rminos independientes.2.3. Este es un vector de n × 1 e y las variables de salida: x: Vector con la soluci´n del sistema lineal de ecuaciones.

ya que en un lenguaje de programaci´n como o C++ ser´ necesario realizar otro ciclo. Ciclo Principal La estructura de este ciclo se presenta a continuaci´n: o Gauss con Pivoteo: Ciclo principal 155b ≡ for k=1:n-1.3.3.3.´ 5. si se quisieran extraer los n coeficientes de la 3 ecuaci´n (es deo cir. en cada ecuaci´n del sistema lineal a resolver. o lo que es equia ız valente. . Esto fau cilita enormemente esta labor. Gauss con Pivoteo: Determinar valores para escalamiento 155a ≡ for i = 1:n. Fragmento referenciado en 154a. ELIMINACION GAUSSIANA CON PIVOTEO 155 Para realizar el escalamiento en la funci´n a implementar en MATLAB R se o debe determinar el valor m´ximo en cada fila de la matr´ A. Para esto hacemos un o ciclo for sobre la matr´ de coeficientes A y extraemos los respectivos coeficienız tes de la ecuaci´n. s(i) = max(abs(A(i. usando la notaci´n de acceso r´pido propia de MATLAB R o o a . todos los valores de las columnas de la tercera fila) esto se puede realizar f´cilmente: a A(3. end Fragmento referenciado en 154a. Estos a valores se almacenan en el vector s para su posterior uso.1:n) donde n es el n´ mero de ecuaciones que conforman el sistema lineal. ıa ıdo se hace necesario determinar cu´l es su valor m´ximo sin importar si se trata de a a un valor positivo o negativo.1:n))).2. para lo cual usamos las funciones intr´ ınsecas de MATLAB R abs() (valor absoluto) en conjunto con max() (valor m´ximo). Una vez se han extra´ dichos valores. 5.Por ejemplo. Ciclo Principal Gauss: Determinar el Pivot 156a Ciclo Principal Gauss: Chequear si es matr´ singular 156b ız Ciclo Principal Gauss: Cambiar las filas 157a Ciclo Principal Gauss: Fase de eliminaci´n 157b o end.

Ciclo Principal Gauss: Chequear si es matr´ singular 156b ≡ ız if (Amax < eps).p] = max(abs(A(k:n.3. ya que los m´todos e que se conocen para calcular el determinante de una matr´ dada requieren muız chas operaciones. .1./s(k:n)).2.3. Sin embargo este criterio es computacionalmente bastante complicado de implementar. Chequer si la matr´z es singular Un criterio ampliamente aceptaı do para la determinaci´n de la singularidad de una matr´ corresponde al hecho o ız que su determinante sea igual o muy cercano a 0.156 ´ CAP´TULO 5.3. p = p + k .2.k)).2. este valor se puede acceder como eps). As´ que un criterio operacional bastante util para ı nuestros prop´sitos corresponde al hecho que una matr´ singular en el momeno ız to en el que se este convirtiendo en una matr´ triangular superior.0 en alguna de las diagonales. 5. Fragmento referenciado en 155b. En ese caso se determina la ecuaci´n que tiene el coeficiente o escalado de mayor magnitud Amax y su correspondiente posici´n p. Para hacer esto usamos la funci´n intr´ o ınseca de MATLAB R error(). METODOS DIRECTOS I 5. va a producir ız un elemento igual o muy cercano a 0.3. y lo m´s importante consiste en determinar si este a elemento se encuentra en la actual ecuaci´n o en una ecuaci´n que est´ por o o a debajo de esta. Para realizar este procedimiento se hace necesario determinar el elemento del Pivot. As´ que si ı durante este procedimiento chequeamos que el valor del pivote Amax es menor que la precisi´n m´ o ınima del MATLAB R (valor para el cual este paquete considera un valor como igual a 0.1.0. Si esta condici´n se cumple la matr´ es singular y el sistema no tiene soluci´n (o por o ız o lo menos para los efectos del presente curso). end Fragmento referenciado en 155b. Determinaci´ n del Pivot Uno de los objetivos centrales del pivoo teo consiste en mejorar la estabilidad num´rica del algoritmo de soluci´n del e o sistema de ecuaciones.0. o Ciclo Principal Gauss: Determinar el Pivot 156a ≡ [Amax. m´s operaciones que las que se necesitan para resolver un a ´ sistema lineal de ecuaciones. error(’La Matrix es singular’). y la funci´n env´ un mensaje o ıa de error en pantalla y se detiene. con el respectivo mensaje que indica la naturaleza del problema.

2.k). ELIMINACION GAUSSIANA CON PIVOTEO 157 5. . num_cambios=num_cambios+1.3. s = cambiarFilas(s.2.4. b(i) = b(i) .3. Para esto se define el valor del multiplicador y se almacena en la o variable lambda y con este se modifican tanto los valores de los coeficientes (almacenados en la matr´ A).k. Cambiar Filas La decisi´n de cambiar una fila o no se hace ateno diendo al hecho de la posici´n del valor m´ximo del pivot p (determinado en o a la secci´n 5. lambda = A(i.k)/A(k.k:n) = A(i. como en los vectores b (t´rminos independientes) y s (m´ximos por e a fila/ecuaci´n). end end Fragmento referenciado en 155b. entonces se puede resolver el sistema de ecuaciones por medio de eliminaci´n. Este procedimiento arroja como resultado la transformaci´n de la matr´ de o ız coeficientes A en una matr´ triangular superior. Este procedimiento se aplica tanto en la matr´ de coefio ız cientes A. Ciclo Principal Gauss: Fase de eliminaci´n 157b ≡ o for i = k+1:n.3. if (A(i.3.3.2. como el de los t´rminos independientes (vector ız e b). la ecuaci´n en la o posici´n p se cambia a la posici´n k usando la funci´n cambiarFilas (definida o o o en la secci´n 5.3.k. y el n´ mero de cambios que se realizan son almacenados en la o u variable num cambios Ciclo Principal Gauss: Cambiar las filas 157a ≡ if(p~=k). Si el valor m´ximo o o a se encuentra en una de la ecuaciones por debajo de la ecuaci´n actual entono ces se procede a realizar el cambio de forma f´ ısica.k:n).´ 5.p).k:n) .k)~=0).3. es decir.p).1) con respecto a la ecuaci´n actual k. end Fragmento referenciado en 155b. A = cambiarFilas(A.k. 5.p). Fase de Eliminaci´ n Una vez se han cambiado la posici´n de las o o ecuaciones usando el procedimiento de pivoteo tal como se especific´ anterioro mente.3.lambda*b(k).4). b = cambiarFilas(b. A(i. Si ud est´ interesado puede ız a imprimir dicha matr´ una vez este procedimiento ha finalizado con el fin de ız comprobar que lo que se esta diciendo es verdad.2.lambda*A(k.3.

end Fragmento referenciado en 154a.A(k. Almacenamiento de la fila/ecuaci´ i en la variable temporal temp. 5. Funci´ n cambiarFilas o ´ CAP´TULO 5. En este la ultima inc´gnita se puede despejar directamente.3. Asignaci´n de la fila/ecuaci´n i almacenada en temp en la posici´n j.n).k+1:n)*b(k+1:n))/A(k.:) = v(j. Gauss con Pivoteo: Sustituci´n hacia atr´s 158b ≡ o a b(n)=b(n)/A(n.2.k). o a o y las restantes cantidades desconocidas se puede determinar f´cilmente con un a ciclo for. Para o eso usamos la notaci´n de acceso r´pido explicada anteriorente. .m" 158a ≡ function [v]=cambiarFilas(v. Sustituci´ n hacia atr´s o a Una vez que A se ha transformado en una matr´ triangular superior es poız sible obtener los valores de las inc´gnitas mediante el procedimiento de sustio ´ tuci´n hacia atr´s. for k = n-1:-1:1 b(k) = (b(k) .5.i. METODOS DIRECTOS I Debido a que un aspecto importante del procedimiento de pivoteo consisten en cambiar las filas.3. con lo cual se asegura que los cambios realizados dentro de esta funci´n tengan efectos permanentes o en este arreglo (tal como se desea). para esta tarea se cre´ una funci´n especial denominada o o cambiarFilas.4. v(j. Esta funci´n tiene las siguientes variables de entrada: o v: vector o matr´ sobre la cual se realizar´ el cambio de filas ız a i: n´ mero que indica la fila/ecuaci´n que se va a cambiar u o j: n´ mero que indica la fila/ecuaci´n por la que se va a cambiar la fiu o la/ecuaci´n i o y la variable de salida es la misma variable de entrada v. o o o "cambiarFilas.:) = temp. Asignaci´n de la fila/ecuaci´n j en la fila i o o 3.:).:).158 5.j) temp = v(i. o a 2. La implementaci´n de este procedimiento o es muy sencilla y es la siguiente: 1.2. v(i.

6. 5. u Gauss con Pivoteo: C´lculo del determinante 159a ≡ a detm=(-1)^(num_cambios)*prod(diag(A)). ELIMINACION GAUSSIANA CON PIVOTEO 5.2. y prod().3. Con el fin de eliminar las variables de la primera variable se aplican . o Gauss con Pivoteo: Asignaci´n de salida 159b ≡ o x = b. Para la eliminaci´n de las variao a o bles en las columnas respectivas se hace necesario emplear las transformaciones elementales. mientras que la o segunda consiste en la sustituci´n hacia atr´s.3. Asignaci´ n de la salida o Una vez se han completado los procedimientos de inter´s.7.3. Fragmento referenciado en 154a. para extraer los elementos de la diagonal. Ejemplos Ejemplo (Eliminaci´n gaussiana) o Resuelva mediante eliminaci´n gaussiana el sistema lineal de ecuaciones reo presentado por la siguiente matr´ aumentada: ız  3 −1 2 12  1 2 3 11  2 −2 −1 2  Tal como se explic´ anteriormente la soluci´n de este sistema se realiza en o o dos estapas.2. Para realizar dicha operaci´n usao mos las funciones intr´ ınsecas diag().´ 5.3.3. de tal forma que para obtener el valor real es necesario tener en cuenta el n´ mero de cambios. 5. C´lculo del determinante a 159 El determinante de una matr´ triangular se puede calcular f´cilmente como ız a el producto de los elementos de su diagonal. As´ mismo debido al piı voteo realizado el signo del determinante cambia. Fragmento referenciado en 154a. la soluci´n del e o sistema lineal de ecuaciones se asigna en la variable x y se termina la funci´n. para realizar el producto de dichos elementos. La primera corresponde a la fase de eliminaci´n.

333/2.000 3 3.333x2 + 2. METODOS DIRECTOS I  3 −1 2 12 Ec2←Ec2-(1/3)Ec1  0 2.004 − 2.333 Ec3←Ec3-(2/3)Ec1 0 −1.333x3 = 7.004  2.004  0 0 −1.999 Para eliminar los coeficientes de la segunda variable se aplica la siguiente operaci´n: o   12 3 −1 2  0 2.999 Ec3←Ec3-(1.999 = 1.999 Para despejar x2 se emplea la ecuaci´n: o 2.333 × 1.333 −2.333 2.333)Ec2 En este punto se tiene una matr´ de coeficientes que es de tipo triangular supeız rior.004 de la cual se desprende que: x2 = 7.000 = 1.160 las siguientes operaciones: ´ CAP´TULO 5.333 7.333 −5.0 .333  y para despejar x3 se usa la siguiente ecuaci´n: o 3x1 − x2 + 2x3 = 12 de la cual se obtiene f´cilmente: a x1 = 12 − 2x3 + x2 12 − 2 × (1.333 7.004 = = 3.999) + 1. y por lo tanto se pueden despejar las inc´gnitas mediante el procedimiento o de sustituci´n hacia atr´s.000 −1. La primera inc´gnita x3 es igual a: o a o x3 = −1.999/ − 1.004 2.

con lo cual se obtiene que el valor del determinante de A es igual a: detm = -7. la eliminaci´n gaussiana se emplea para la o o o soluci´n de sistemas lineales de ecuaciones A · x = b definiendo la matr´ auo ız mentada del sistema (ecuaci´n 5. y el correspondiente vector de t´rminos independientes b: e b=[12 11 2]’.1 2 3. 5. Para aplicar el procedimiento de eliminaci´n gaussiana con pivoteo se utiliza o la funci´n definida en la secci´n 5.0000 1.3.17).0000 2.3 denominada gauss pivoteo. DESCOMPOSICION LU CON PIVOTEO Ejemplo MATLAB R 161 (Eliminaci´n gaussiana) o Resuelva en MATLAB R mediante eliminaci´n gaussiana el siguente siso tema lineal de ecuaciones:      3 −1 2 x1 12  1 2 3   x2  =  11  2 −2 −1 x3 2 Para realizar este procedimiento se define la matr´ de coeficientes A: ız A=[3 -1 2. 5.0000 y el vector soluci´n x: o x = 3.detm] = gauss_pivoteo(A.´ 5.b).2 -2 -1].4.4.0000 Esta es la misma soluci´n obtenida anteriormente cuando se aplic´ el proceo o dimiento de forma manual. Descomposici´ n LU con pivoteo o Fundamentos Conceptuales Como se vi´ en la secci´n 5.4.1. La soluci´n x se obtiene al aplicar las o o .m de la o o siguiente forma: [x.

28) La matr´ triangular inferior L de esta descomposici´n se obtiene a partir de ız o los multiplicadores definidos en el procedimiento de eliminaci´n de variables m o orden´ndolos de la siguiente forma: a   1 0 0 0  m 1 0 0   L =  21 (5. ya que en dicho procedimiento la matr´ de coeficientes A ız   a11 a12 a13 a14  a a a a  A =  21 22 23 24  (5. METODOS DIRECTOS I transformaciones elementales sobre dicho sistema.m explicada anteriormente.30) . En este caso resultar´ de inter´s contar con un procedimiento que ıa e actuara solamente sobre la matr´ de coeficientes A de tal forma que la modiız ficaci´n de la misma solo se realizara una vez. En algunas e 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´n gaussiana o se hace necesario cada vez modificar la matr´ aumentada del sistema (ecuaci´n ız o 5.162 ´ CAP´TULO 5.29)  m31 m32 1 0  m41 m42 m43 1 donde cada uno de los multiplicadores se define de la siguiente forma: mij = aij /aii (5.27)  a31 a32 a33 a34  a41 a42 a43 a44 se convierte en una matr´ triangular superior U: ız   a11 a12 a13 a14  0 a22 a23 a24   U=  0 0 a33 a34  0 0 0 a44 (5. de tal forma que la estructura de la funci´n que la impleo o mente es similar a la de gauss pivoteo.17) resultando de esta forma en un procedimiento ineficiente a nivel computacional. n El procedimiento de descomposici´n LU se puede realizar por medio de elio minaci´n gaussiana. Este procedimiento se conoce o como descomposici´n LU y se define a continuaci´n: o o Definici´ n 24 o Sea A una matr´ cuadrada.26) y donde el tama˜ o de L y U es el mismo de A. La descomposici´n LUde A es el procedimiento ız o mediante el cual se expresa dicha matr´ como el producto de una matr´ ız ız triangular inferior L y una matr´ triangular superior U de la siguiente forız ma: A=L·U (5. el cual incluye tanto los valores de los coeficientes aij y de los t´rminos independientes bi .

Los argumentos ız ız n de salida son los siguientes: L. Esta matr´ es de tama˜ o n × n.2.4. Declaraci´ n de la funci´ n o o El nombre seleccionado para implementar el procedimiento de descomposici´n LU en MATLAB R es lu pivoteo.1. Inicializaci´ n de Variables o Para continuar con el procedimiento de descomposici´n se hace necesario o definir algunas variables de inter´s: e n: corresponde al n´ mero de ecuaciones que forman el sistema de inter´s u e L.4.m y el argumento de entrada corresponde o a la matr´ de coeficientes A.perm] = lu_pivoteo(A) Fragmento referenciado en 163a. En este caso se inicializan con valores iguales a 0.´ 5.2. Procedimineo de Descomposici´ n LU o La estructura de este procedimiento se presenta a continuaci´n: o "lu_pivoteo. 5. U : son las matrices triangulares en donde se almacenaran los resultados de la descomposici´n.2. DESCOMPOSICION LU CON PIVOTEO 163 5.U. o ´ Esta ultima variable va a ser de gran importancia ya que al resolver el sistema lineal de ecuaciones se hace necesario organizar la soluci´n con el fin que o corresponda a las variables originales. o n perm vector en donde se almacenan los cambios en la posici´n de las o ecuaciones realizados durante la descomposici´n.2. U Matr´ triangular inferior y matr´ triangular superior resultado de la ız ız descomposici´n.4.m" 163a ≡ Descomposici´n LU con Pivoteo: Declaraci´n de la funci´n 163b o o o Descomposici´n LU con Pivoteo: Inicializaci´n de variables 164a o o Descomposici´n LU con Pivoteo: Determinar valores para escalamiento 164b o Descomposici´n LU con Pivoteo: Ciclo Principal 165a o Descomposici´n LU con Pivoteo: Asignaci´n de resultados 167a o o 5.4.0. ız . o As´ mismo la primera fila de la matr´ U se inicializa con los valores de la ı ız primera fila de la matr´ de coeficientes A. Descomposici´n LU con Pivoteo: Declaraci´n de la funci´n 163b ≡ o o o function [L. Ambas de tama˜ o n × n.

U=zeros(n.n). s(i) = max(abs(A(i. n Descomposici´n LU con Pivoteo: Inicializaci´n de variables 164a ≡ o o [nr nc] = size(A). o o la cual es la siguiente: . Este vector es o de tama˜ o n × 1 y se inicializa con valores iguales a 0.3.4. perm=[1:n]’.2. U(1. 5. METODOS DIRECTOS I s es un vector en donde se almacenar´n los valores m´ximos de cada fila a a (ecuaci´n) para realizar el correspondiente escalamiento. Ciclo Principal El ciclo principal para realizar la descomposici´n sigue exactamente la miso ma estructura que el ciclo principal de la eliminaci´n gaussiana (secci´n 5.2 es necesario determinar los valores m´xio a mos en cada ecuaci´n o fila de la matr´ de coeficientes.4. end Fragmento referenciado en 163a.2.:).0.2. Esto se hace mediante o ız un ciclo for y la aplicaci´n de las funciones intr´ o ınsecas de MATLAB R max() y abs(). L=zeros(n.1). Determinar los valores para el escalamiento Al igual que en la secci´n 5.3. Descomposici´n LU con Pivoteo: Determinar valores para escalamiento 164b ≡ o for i = 1:n.4.n).:)=A(1. n perm es un vector en donde se almacenar´n los cambios en las posiciones a de las ecuaciones del sistema original. n=nr.2. Fragmento referenciado en 163a.164 ´ CAP´TULO 5.3. s = zeros(n.1:n))). 5.3). Este vector se inicializa en valores que van desde 1 hasta n y por lo tanto su tama˜ o es de n × 1.

2) o Ciclo Principal Descomposici´n LU con Pivoteo: chequear si es matr´ singular 165c ≡ o ız if (Amax < eps).4. end Fragmento referenciado en 165a. Determinar el Pivot La determinaci´n del pivot es exactamente o igual que para el caso de la eliminaci´n gaussiana (ver secci´n 5.3.1.3. En este caso particular se lleva un registro de las filas o (ecuaciones) cambiadas en el vector perm. error(’La Matrix es singular’).4.1) o o Ciclo Principal Descomposici´n LU con Pivoteo: determinar el Pivot 165b ≡ o [Amax./s(k:n)).2. 5. Esto es de vital importancia en los procedimientos de inversi´n de matrices. o . Chequear si es matr´z singular El procedimiento para determiı nar si la matr´ A es singular es el mismo que para la eliminaci´n gaussiana (ver ız o secci´n 5.2. p = p + k .1.3.4. 5. Fragmento referenciado en 163a.p] = max(abs(A(k:n.´ 5.3.2.2.2. 5.4.2.4.3. Cambiar Filas El procedimiento para cambiar filas es similar al empleado en la eliminaci´n gaussiana. DESCOMPOSICION LU CON PIVOTEO Descomposici´n LU con Pivoteo: Ciclo Principal 165a ≡ o 165 for k=1:n-1. Fragmento referenciado en 165a.4.4).3.4.2. ya que usa la misma funci´n cambiarFio o las() (secci´n 5. Ciclo Principal Descomposici´n LU con Pivoteo: determinar el Pivot 165b o Ciclo Principal Descomposici´n LU con Pivoteo: chequear si es matr´ singular 165c o ız Ciclo Principal Descomposici´n LU con Pivoteo: cambiar las filas 166a o Ciclo Principal Descomposici´n LU con Pivoteo: fase de eliminaci´n 166b o o end.k)).

5.k)~=0). La matr´ U se obtiene al extraer la porci´n ız o triangular superior de la matr´ A por medio de la funci´n de MATLAB R triu() ız o y la porci´n inferior con tril(). lo cual se realizar por medio de un ciclo for. En este caso particular el valor del multiplicador o lambda es almacenado en la porci´n triangular inferior de la matr´ A.k)/A(k. A(i. Fase de eliminaci´ n o El procedimiento de eliminaci´n es similar al emplado en la funci´n gausso o Piv.6. la matr´ U corresponde a la matr´ o ız ız triangular superior almacenada en A y L se encuentra conformada por los valores de los multiplicadores lambda.m (ver secci´n 5. end end Fragmento referenciado en 165a. end Fragmento referenciado en 165a.lambda*A(k. As´ mismo se impone la condici´n que la diagonal o ı o de L este formada por 1.k). METODOS DIRECTOS I Ciclo Principal Descomposici´n LU con Pivoteo: cambiar las filas 166a ≡ o if(p~=k). s = cambiarFilas(s.k.p).4.p). . lambda = A(i.4. perm=cambiarFilas(perm.k)=lambda.p). A(i.k:n) . A = cambiarFilas(A.5.k. Asignaci´ n de Resultados o Una vez finalizada la fase de eliminaci´n.3.2.166 ´ CAP´TULO 5.0.k:n). 5. o ız Ciclo Principal Descomposici´n LU con Pivoteo: fase de eliminaci´n 166b ≡ o o for i = k+1:n.2.2.k:n) = A(i.3. if (A(i.k.4).

1.4.-1). %Aproximacion de Doolitle end. Declaraci´ n de la funci´ n o o Esta funci´n tiene como variables de entrada: o A matr´ de coeficientes del sistema lineal de ecuaciones. L=tril(A. 167 5.m" 167b ≡ LUSolucion: Declaraci´n de la funci´n 168a o o LUSolucion: Inicializaci´n de variables 168b o LUSolucion: Descomposici´n LU 168c o LUSolucion: C´lculo del determinante 169a a LUSolucion: Organizaci´n por pivoteo 169b o LUSolucion: Sustituci´n hacia adelante 169c o LUSolucion: Sustituci´n hacia atr´s 170 o a 5. for i=1:n.3. e Su tama˜ o es de n × 1.´ 5. . Fragmento referenciado en 163a.4. Soluci´ n de sistemas lineales con descomposici´ n LU o o Una vez realizada la descomposici´n LU se hace necesario implementar el o procedimiento de soluci´n de sistemas lineales de ecuaciones empleando este o importante m´todo.m son las siguientes: o x vector de tama˜ o n × 1 con la soluci´n del sistema lineal de ecuaciones n o detm valor del determinante de la matr´ A ız perm vector con las posiciones actuales de las ecuaciones originales.0. b vector con los t´rminos independientes del sistema lineal de ecuaciones.i)=1. cuya e o estructura es la siguiente: "LUSolucion. n Las variables de salida de la funci´n LUSolucion. DESCOMPOSICION LU CON PIVOTEO Descomposici´n LU con Pivoteo: Asignaci´n de resultados 167a ≡ o o U=triu(A). Su tama˜ o es de ız n n × n.m. Esto se hace por medio de la funci´n LUSolucion.3.4. L(i.

Se calcula usando la funci´n intr´ u o ınseca de MATLAB R length. o LUSolucion: Descomposici´n LU 168c ≡ o [L U perm]=lu_pivoteo(A). METODOS DIRECTOS I LUSolucion: Declaraci´n de la funci´n 168a ≡ o o function [x. Se inicializa en o 0.detm.3. Inicializaci´ n de variables o Con el fin de proseguir con la soluci´n del sistema lineal de ecuaciones se o hace necesario definir e inicializar ciertas varibles: n: n´ mero de ecuaciones del sistema. LUSolucion: Inicializaci´n de variables 168b ≡ o n=length(b). 5. x: vector con la soluci´n del sistema lineal de ecuaciones.3.4.1).4. Descomposici´ n LU o Para realizar la descomposici´n LU de la matr´ A se emplea la funci´n Deso ız o composici´n LU con Pivoteo definida en la secci´n anterior.4.b) Fragmento referenciado en 167b.4. d=zeros(n. 5.0. d: vector de tama˜ o n × 1 en el que se va a almacenar la soluci´n intermen o dia del sistema de ecuaciones. C´lculo del determinante a El determinante se calcula como el producto de los t´rminos que se encuene tran sobre la diagonal de la matr´ triangular superior U obtenida en la desız . Como resultado de o o invocar esta funci´n se obtienen las matrices triangulares superior U e inferior o L y el vector permcon la posici´n de las ecuaciones. 5.3. Fragmento referenciado en 167b.3.1).perm]=LUSolucion(A. x=zeros(n.2.168 ´ CAP´TULO 5. Fragmento referenciado en 167b.

1:k-1)*d(1:k-1). d(i)=b(perm(i)). La primera es una sustituci´n o o hacia adelante usando el vector d definido anteriormente y la matr´ triangular ız inferior L obtenida de la descomposici´n LU. Fragmento referenciado en 167b. A nivel de ecuaci´n esto se representa: o L·d=b (5.1)=d(k. Debido a que el e orden original de las ecuaciones en la matr´ A fue cambiado por el pivoteo.0 en la diagonal. ya que la matr´ L tiene solamente 1.5. d(k. end.1)-L(k. Para o ız esto usamos la funci´n diag() para extraer la diagonal y prod() para calcular su o producto.3. La soluci´n parcial de este sisteo o ma de ecuaciones se almacena en el vector d para su uso posterior.3. Sustituci´ n hacia adelante o Con los t´rminos independientes ya en el orden correcto se procede a la solue ci´n del sistema lineal de ecuaciones en dos fases.31) LUSolucion: Sustituci´n hacia adelante 169c ≡ o for k=2:n. Los valores ordenados se almacenan en el vector d. end. Fragmento referenciado en 167b. .4. 5. Organizaci´ n por el pivoteo o Este es uno de los aspectos m´s importantes a tener en cuenta si se va a a solucionar un sistema lineal de ecuaciones con el m´todo LU. ız se hace necesario cambiar tambien el orden de los t´rminos independientes e almacenados en el vector b.6.4. DESCOMPOSICION LU CON PIVOTEO 169 composici´n LU.4.´ 5. LUSolucion: C´lculo del determinante 169a ≡ a detm=prod(diag(U)). LUSolucion: Organizaci´n por pivoteo 169b ≡ o for i=1:n. 5. Fragmento referenciado en 167b.

1) .170 5.32) lo cual se hace mediante una sustituci´n hacia atr´s.1)=(x(k. x(k. Sustituci´ n hacia atr´s o a ´ CAP´TULO 5. METODOS DIRECTOS I Ya habiendo solucionado el sistema lineal de ecuaciones planteado con la matr´ triangular inferior L.U(k. end. ahora se plantea un nuevo sistema lineal de ecuaız ciones dado por: U·x=d (5. o LUSolucion: Sustituci´n hacia atr´s 170 ≡ o a x=d. for k=n:-1:1.4. En este caso particular se o a utilizan como t´rminos independientes los valores almacenados en el vector d. . Fragmento referenciado en 167b. e La soluci´n de este sistema lineal de ecuaciones se almacena en el vector x y o constituye la soluci´n del sistema original A · x = b.k).k+1:n)*x(k+1:n.7.1))/U(k.3.

0000 -0.1 2 3.0000 2.6667 0 1.2 -2 -1]. Ejemplos R Ejemplo MATLAB (Descomposici´n LU de una matr´ o ız) Realice la descomposici´n LU de la siguiente matr´ o ız:   3 −1 2  1 2 3  2 −2 −1 Para realizar este procedimiento se emplea la funci´n lu pivoteo. y la cual requiere como par´metro de entrada la matr´ o a ız a descomponer que en este caso es: A=[3 -1 2.4.4.0000 a la matr´ triangular inferior L dada por: ız L = 1.4.4.0000 y al vector de permutaciones perm que indica la posici´n final de cada una o 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.5714 0 0 1.3.0000 0 0 -1.´ 5. y la descomposici´n se realiza especificando la siguiente instrucci´n: o o [L U perm]=lu_pivoteo(A) Los resultados de dicha descomposici´n corresponden a la matr´ triangular o ız superior U: U = 3.3333 -1. .3333 0 2.m definida o en la secci´n 5.0000 0.3333 0. DESCOMPOSICION LU CON PIVOTEO 171 5.0000 2.

detm. y el correspondiente vector de t´rminos independientes b: e b=[12 11 2]’. La funci´n que implementa el procedimiento de soluci´n de sistemas lineales o o de ecuaciones por medio de la descomposici´n LU se denomina LUSolucion.0000 al valor del determinante detm de la matr´ de coeficientes: ız detm = -7.0000 2.0000 1. o Para realizar este procedimiento en MATLAB la matr´ de coeficientes A: ız A=[3 -1 2.172 Ejemplo MATLAB R ´ CAP´TULO 5.1 2 3.b) Los resultados obtenidos corresponden al vector soluci´n x: o x = 3.2 -2 -1].perm]=LUSolucion(A.m o y esta funci´n se emplea de la siguiente forma: o [x. METODOS DIRECTOS I (Soluci´n usando descomposici´n LU) o o 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´n LU.0000 y al vector de permutaciones perm: perm = 1 2 3 R se hace necesario definir .

INVERSA DE UNA MATR´Z I 173 5. La matr´ inversa de A.5.2. ız n ´ Cuando la matriz inversa existe. De esta ecuaci´n se o o o puede apreciar que el c´lculo de la inversa de A es equivalente a solucionar n a sistemas de ecuaciones dados por: A · x = bi .5. .33) donde los bi corresponden a cada una de las columnas de In . i = 1. C´lculo de la Matr´z Inversa a ı El procedimiento para la determinaci´n de la matr´ inversa tiene la siguieno ız te estructura: . Inversa de una matr´z ı Fundamentos Conceptuales Definici´ n 25 o Sea A una matr´ de n × n.5. tienen inversa). 2. se puede emplear el procedimiento de descomposici´n LU para el c´lculo de la inversa sin que exista o a mucho esfuerzo computacional. Para desarrollar un procedimiento para la obtenci´n de la matr´ inversa se hace o ız necesario recurrir a la definici´n dada por la ecuaci´n 5. denotada como A−1 es ız ız una matr´ B de n × n para la cual se cumple que: ız A × B = In B × A = In donde In es la matr´ identidad de tama˜ o n × n. corresponde a cada o una de las columnas de la matr´ inversa a determinar. n (5. En consecuencia.34) (5. Soluci´n de los sistemas de ecuaciones A · x = bi o La fase de descomposici´n se determinan las matrices L y U mediante alguno o de los procedimientos de descomposici´n estudiados en la secci´n 5. Debido a que la matr´ ız ız de coeficientes de este sistema de ecuaciones no cambia. es unica. .5.33.4 o o 5. la determinaci´n de la matr´ o ız −1 inversa A se divide en dos etapas: 1. .1.5. pero no siempre existe dicha matriz (es decir. 5. Descomposici´n LU de la matr´ A o ız 2. n Un resultado de algebra lineal prueba que la matriz inversa A−1 existe si y solo si el determinante de A es distinto de cero. El vector con los valores de las inc´gnitas en cada uno de estos casos. . no todas las matrices de la forma A de tama˜ o n × n.

Declaraci´ n de la funci´ n o o En este fragmento se declara la funci´n matInv.5.2. end n=nrow. Inicializaci´ n de la matr´z o ı La matr´ inversa se va a almacenar en una matr´ denominada AI.174 "matInv.2. METODOS DIRECTOS I InversaLU: Declaraci´n de la funci´n 174b o o InversaLU: Chequear si es matr´ cuadrada 174c ız InversaLU: Inicializaci´n de la matr´ 175a o ız InversaLU: Ciclo Principal 175b 5.m" 174a ≡ ´ CAP´TULO 5. 5. La variable de entrada de o esta funci´n corresponde a la matr´ A de la cual se quiere obtener la inversa. El tama˜ o de la matr´ se almacena en la variable n para su uso en n ız procedimientos posteriores. if(nrow ~= ncol) .2. Fragmento referenciado en 174a.m. usando la funci´n eye. ız o .5. ız ız Para determinar si esto es cierto se determina el n´ mero de filas y columnas de u esta matr´ y se almacenan en las variables nrow y ncol. Chequear si es matr´z cuadrada ı Para calcular la matr´ inversa se requiere que A sea una matr´ cuadrada. la cual ız ız en este caso se inicializa como una matr´ identidad. error(’La matriz no es cuadrada’). 5. iguales la matr´ es cuadrada.ncol]=size(A).5. Si estos valores son ız.2.3.1. InversaLU: Chequear si es matr´ cuadrada 174c ≡ ız [nrow. o ız InversaLU: Declaraci´n de la funci´n 174b ≡ o o function [AI]=matInv(A) Fragmento referenciado en 174a. si no es asi. la funci´n emite un mensaje de error ız o y se detiene.

5. Ciclo Principal El procedimiento de soluci´n de los sistemas lineales de ecuaciones se eno cuentra implementado mediante un ciclo for. Esta soluci´n se almacena en la respectiva columna de AI.1. Ciclo Principal Inversa: Soluci´n sistema lineal 175c o Ciclo Principal Inversa: Almacenamiento soluci´n 175d o end.2.5. INVERSA DE UNA MATR´Z I InversaLU: Inicializaci´n de la matr´ 175a ≡ o ız AI=eye(n.5 la soluci´n del sistema lineal de ecuaciones corresponde a una columna de o la matr´ inversa. Fragmento referenciado en 175b.34)) el sistema lineal de ecuaciones se soluciona usando o descomposici´n LU. Almacenamiento de la soluci´ n Como se explic´ en la secci´n o o o 5.AI(:. ız o Ciclo Principal Inversa: Almacenamiento soluci´n 175d ≡ o AI(:.2.i)).4.i)=sol.n). Soluci´ n del sistema lineal De acuerdo a lo explicado en la seco ci´n 5. Fragmento referenciado en 174a. Fragmento referenciado en 174a.4. 5.2. Fragmento referenciado en 175b. 5. cuya estructura es la siguiente: InversaLU: Ciclo Principal 175b ≡ for i=1:n.5.5.d]=LUSolucion(A.2.5 (ecuaciones (5. La soluci´n de este se almacena en la variable sol.5. .4. 175 5. y d coo o rresponde al determinante de la matr´ A. ız Ciclo Principal Inversa: Soluci´n sistema lineal 175c ≡ o [sol.

0000 0 1.0000 0 1.0000 -0.0000 0.1 2 3. lo cual se hace de la siguiente ız e forma: >> A=[3 -1 2.5.8571 0. METODOS DIRECTOS I 5.0000 -1.0000 1. La funci´n que permite calcular la matr´ inversa se denomina matInv.0000 0. Esta funci´n se usa de la siguiente o o forma: >> [AI]=matInv(A) de tal forma que se obtiene la matr´ inversa dada por: ız AI = -0. ız . Ejemplo Ejemplo MATLAB R (C´lculo de la inversa de una matr´ a ız) Determine la inversa de la siguiente matr´ ız:   3 −1 2  1 2 3  2 −2 −1 empleando MATLAB R .0000 -0. Para avanzar con el procedimiento de determinarci´n de la matr´ inversa o ız se hace necesario definir la matr´ de inter´s.176 ´ CAP´TULO 5.5714 1.0000 que como se puede ver corresponde a una matr´ identidad.0000 -0.2 -2 -1].0000 -0.0000 Para corroborar si el resultado obtenido es correcto se puede realizar el producto matricial entre A y la matr´ inversa obtenida AI: ız >> A*AI ans = 1.3.7143 1.5714 -1.5.2.m y o ız se encuentra definida en la secci´n 5.

Descomposici´ n de Cholesky o Fundamentos Conceptuales Exise otra metodolog´ de descomposici´n alternativa al procedimiento LU ıa o que se aplica sobre matr´ ıces que cumplan las siguientes caracter´ ısticas: Ser sim´tricas e Ser definidas positivas. Esta matr´ tiene en la diagoız o ız nal valores positivos. Se dice que A es definida positiva si se cumple: ız xT Ax > 0. se va a emo (5. se resuelve el sistema L · d = b y luego se resuelve el segundo sistema lineal dado por LT · x = d.35) Esto es equivalente a afirmar que todos los valores propios de A son positivos. dada una matr´ A que sea sim´trica y definida positiva. existe solo una ız e matr´ L para la cual se cumple la ecuaci´n 5. Al igual que la descomposici´n LU ( ver secci´n 5. Para esto se realiza la descomposici´n de Cholesky o A = L · LT . 5. entonces la descomposici´n ız e o de Cholesky permite expresar a A de la siguiente manera: A = L · LT donde L es una matr´ triangular inferior (ver secci´n 5.4 ).36. La simetr´ de una matr´ se explic´ en la definici´n 14. El procedimiento de descomposici´n de Cholesky se puede definir de la sio guiente forma: Definici´ n 27 o Si A es una matr´ sim´trica y definida positiva.1.6. con lo cual se obtiene el vector soluci´n x. y la segunda caracıa ız o o ter´ ıstica se define a continuaci´n: o Definici´ n 26 o Sea A una matr´ cuadrada.1.1. o esto es.6) ız o ´ Una caracter´ ıstica muy importante de esta descomposici´n es que es unica.´ 5. DESCOMPOSICION DE CHOLESKY 177 5. o Para establecer el procedimiento de la descomposici´n de Cholesky.6. la descomposici´n de o o o Cholesky se puede emplear para la soluci´n de sistemas lineales de ecuacioo nes de la forma A · x = b.36) .6. ∀x = 0 (5.

METODOS DIRECTOS I plear un ejemplo sencillo con una matr´ de 3 × 3 con lo cual se tiene: ız       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.38) l11 l11 l21 l11 l31 2 2  l11 l21 l21 l22 l21 l31 + l22 l32  2 2 2 l11 l31 l21 l31 + l22 l32 l31 + l32 + l33 Igualando los elementos de A y L · LT se obtienen 6 ecuaciones con 6 inc´gnio tas. para lo cual se hace necesario conocer algunos elementos de la primera columna (ecuaci´n 5. que es necesario definir si las inc´gnitas se van a despejar por filas o por o columnas. las inc´gnitas se van a despejar por columnas o 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.39 y 5. i≤j (5.42) .40) a32 = l21 l31 + l22 l32 l32 =(a32 − l21 l31 )/l22 De igual forma los valores de las inc´gnitas en la tercera columna van a o depender de los valores en las columnas anteriores (ecuaciones 5.41) A pesar que los resultados anteriores se obtuvieron para un ejemplo espec´ ıfico de una matr´ de 3 × 3. las cuales se pueden simplificar si se resuelven en cierto orden. . En este caso particular. el procedimiento subyacente se puede generalizar ya ız que un elemento en la parte triangular inferior de L · LT se puede expresar: j (L · L )ij = li1 lj1 + li2 lj2 + . .40): 2 2 2 a33 = l31 + l32 + l33 l33 = 2 2 a33 − l31 − l32 (5.37) Para determinar los coeficientes lij se realiza el producto entre las matrices del t´rmino derecho de la ecuaci´n anterior para obtener: e o   a11 a12 a13  a21 a22 a23  = a31 a32 a33   2 (5. Esto quiere decir.39): o 2 2 a22 = l21 + l22 2 l22 = a22 − l21 (5. + lij ljj = k=1 T lik ljk .178 ´ CAP´TULO 5.

Para la columna 1 (j = 1) se obtiene: l11 = √ a11 lij = ai1 /l11 . i = 2. . DESCOMPOSICION DE CHOLESKY E igualando este t´rmino al elemento correspondiente de A se tiene: e j 179 aij = k=1 lik ljk . .6. n (5. con lo cual queda: o j−1 aij = k=1 lik ljk + lij ljj (5. . .m y su estructura es la siguiente: "Cholesky. . n (5. n 5. . 2. n. 3.2. . . . .47) j = 2. j + 1. .6. . .43) en donde el rango de ´ ındices limita los elementos a la parte triangular inferior. j = 2. 3. .m" 179 ≡ Cholesky: Declaraci´n de la funci´n 180a o o Cholesky: Inicializaci´n de variables 180b o Cholesky: Ciclo Principal 181a Cholesky: Asignaci´n de resultados 182a o .45) Si i = j (t´rmino diagonal). . . . n. n (5. . i = j. . i = j + 1.´ 5. . Descomposici´ n de Cholesky o La funci´n que implementa la descomposici´n de Cholesky se denomina Choo o lesky. j + 2.43 ya se han calculado. . las coeficientes desconocidos en u la ecuaci´n 5.44) Si se contin´ a en las siguientes columnas.46) y para los t´rminos no diagonales: e j−1 lij = aij − k=1 lik ljk /ljj . la soluci´n es: e o j−1 ljj = ajj − k=1 2 ljk . j = 1. . 3. (5. . .

Se chequea que nrow sea igual a ncol y si no es as´ el programa imprime ı un mensaje de error (usando la funci´n error()) y se detiene. Esta funci´n a ız e o tiene como salida una matr´ triangular inferior L. Si la matr´ es o ız cuadrada se define la variable n como el n´ mero de filas.2. para lo cual se ız emplea la funci´n intr´ o ınseca size(). Ciclo principal En esta parte se realiza la descomposici´n de Cholesky como tal. 5. Inicializaci´ n de variables o En este caso particular se chequea si la matr´ es cuadrada.6. Declaraci´ n de la funci´ n o o ´ CAP´TULO 5.2. end n=nrow. Fragmento referenciado en 179.2. if(nrow ~= ncol) .2. que adem´s debe ser una matr´ sim´trica y definida positiva. de tama˜ o n × n para la cual ız n se cumple: A = L · LT (5.1.6. de tama˜ o o ız n n×n.m tiene como variable de entrada la matr´ A.6.3. Este proceo dimiento se encuentra dividido en dos partes: C´lculo de los elementos fuera de a la diagonal para luego determinar los valores que van en la diagonal. Esta funci´n devuelve el n´ mero de filas y o u columnas de la matr´ A y estos valores se almacenan en las variables nrow y ız ncol. u Cholesky: Inicializaci´n de variables 180b ≡ o [nrow ncol]=size(A).48) Cholesky: Declaraci´n de la funci´n 180a ≡ o o function [L]=Cholesky(A) Fragmento referenciado en 179. error(’La matriz debe ser de cuadrada’). . 5.180 5. METODOS DIRECTOS I La funci´n Cholesky.

2. .*A(k.3.47). A(k.k)-suma).46.1:i-1)). Fragmento referenciado en 179.k)=sqrt(A(k. Asignaci´ n de elementos fuera de la diagonal Para determinar o los valores que est´n fuera de la diagonal se emplea la ecuaci´n (5. 5.´ 5.1:i-1). En este caso particular se hace o necesario determinar que el valor al que se le va a tomar la ra´ cuadrada se ız positivo.2. DESCOMPOSICION DE CHOLESKY Cholesky: Ciclo Principal 181a ≡ for k=1:n. 181 5. else A(k. Fragmento referenciado en 181a.6.i)=(A(k. if(test<eps) . error(’Matriz no es definida positiva’).6.i).i)-suma)/A(i.0 del MATLAB R (cuyo valor corresponde a eps). En el caso que la esta condici´n no se cumpla. lo cual a o queda implementado de la siguiente forma: Ciclo Principal Cholesky: Asignaci´n elementos fuera diagonal 181b ≡ o for i=1:k-1. end. Asignaci´ n de elementos de la diagonal Para calcular los eleo mentos de la diagonal se usa la ecuaci´n 5. Para hacer esto ız el valor dentro de la ra´ se almacena en la variable test y se determina si este ız valor es menor al 0.1:k-1).1. test=A(k.k)-suma. end. Ciclo Principal Cholesky: Asignaci´n elementos fuera diagonal 181b o Ciclo Principal Cholesky: Asignaci´n elementos diagonal 181c o end.6. Ciclo Principal Cholesky: Asignaci´n elementos diagonal 181c ≡ o suma=sum(A(k. suma=sum(A(i.3. lo cual implica que la matr´ A sea definida positiva.2.^2). Fragmento referenciado en 181a. la funci´n imprime en pantalla un mensaje o o de error y se detiene.

6.6.182 5.4. de tal forma que se extrae la matr´ triangular inferior L usando la ız ız funci´n intr´ o ınseca tril() y se termina el procedimiento.m y su eso tructura es la siguiente: "CholeskySol.3.1. 5. METODOS DIRECTOS I Los resultados de la descomposici´n se almacenaban de forma temporal en o la matr´ A. Cholesky: Asignaci´n de resultados 182a ≡ o L=tril(A).3. o CholeskySol: Declaraci´n de la funci´n 182c ≡ o o function [x]=CholeskySol(A. Asignaci´ n de Resultados o ´ CAP´TULO 5. Fragmento referenciado en 179.6. 5.b) Fragmento referenciado en 182b.2.2. Declaraci´ n de la funci´ n o o Las variables de entrada de esta funci´n corresponden a la matr´ de coefio ız cientes A (n × n) y al vector de t´rminos independientes b (n × 1) y la funci´n e o devuelve un vector x (n × 1) con la soluci´n del sistema.6.m" 182b ≡ CholeskySol: Declaraci´n de la funci´n 182c o o CholeskySol: Inicializaci´n de variables 183a o CholeskySol: Descomposici´n de Cholesky 183b o CholeskySol: Sustituci´n hacia adelante 183c o CholeskySol: Sustituci´n hacia atr´s 184 o a 5.3. Inicializaci´ n de variables o En este caso particular es necesario definir las siguientes variables: . Soluci´ n de sistemas de ecuaciones por medio de deso composici´ n de Cholesky o La funci´n para realizar la soluci´n de sistemas de ecuaciones lineales por o o medio de la descomposici´n de Cholesky se denomina CholeskySol.

CholeskySol: Inicializaci´n de variables 183a ≡ o n=length(b).31. d(1. DESCOMPOSICION DE CHOLESKY 183 n: n´ mero de ecuaciones del sistema lineal.3.3. 5. end.1:k-1)*d(1:k-1))/L(k. d=zeros(n. 5.6. Esta funci´n devuelve la matr´ triangular inferior L y en o o ız este caso particular. Sustituci´ n hacia adelante o Con la matr´ triangular inferior se plantea un sistema lineal de ecuaciones ız como el de la ecuaci´n 5. CholeskySol: Sustituci´n hacia adelante 183c ≡ o d=b. CholeskySol: Descomposici´n de Cholesky 183b ≡ o L=Cholesky(A). la matr´ triangular superior U se define como la trasnpuesız ta de L. U=L’.1)/L(1. Este se obtiene mediante la u funci´n length() aplicada en el vector b o d: vector de n × 1 en donde se va a almacenar la soluci´n temporal del o sistema lineal de ecuaciones.1)=d(1.6.6. d(k. Fragmento referenciado en 182b.3. .1)-L(k. Nuevamente la soluci´n de este sistema se almao o cena en el vector d. for k=2:n.´ 5.4. Descomposici´ n de Cholesky o La descomposici´n de Cholesky se realiza por medio de la funci´n definida o o en la secci´n anterior.1)=(d(k. Fragmento referenciado en 182b.1).k). Fragmento referenciado en 182b.1).

6. se plantea un nuevo sistema o lineal de ecuaciones como el descrito en la ecuaci´n 5. x(k.U(k. La soluci´n de este o o nuevo sistema se almacena en el vector x y constituye la soluci´n del sistema o lineal de ecuaciones. .1))/U(k.184 5.k).1) . end.32. for k=n:-1:1.k+1:n)*x(k+1:n. METODOS DIRECTOS I Una vez se ha obtenido la soluci´n parcial d. CholeskySol: Sustituci´n hacia atr´s 184 ≡ o a x=d.1)=(x(k.5.3. Sustituci´ n hacia atr´s o a ´ CAP´TULO 5. Fragmento referenciado en 182b.

6. Ejemplos R Ejemplo MATLAB (Descomposici´n de Cholesky) o R Realice en MATLAB matr´ ız: la descomposici´n de Cholesky de la siguiente o   4 −2 2 A =  −2 2 −4  2 −4 11 Para realizar este procedimiento es necesario definir la matr´ A lo cual se ız puede hacer de la siguiente forma: >>A=[4 -2 2.m explicada en la secci´n 5. y para este caso particular se reao liza de la siguiente forma: >>L=Cholesky(A).2 -4 11].-2 2 -4.´ 5. El resultado corresponde a una matr´ triangular inferior L dada por: ız L = 2 -1 1 0 1 -3 0 0 1 La matr´ triangular superior corresponde a la transpuesta de la matr´ obız ız tenida anteriormente.6. ız . Con el fin de corroborar si la descomposici´n fue realizada correctamente.1. o calculamos el producto de la matr´ triangular inferior y la superior: ız >> L*U ans = 4 -2 2 -2 2 -4 2 -4 11 de donde resulta claro que se obtiene la matr´ original.6. La descomposici´n de Cholesky se encuentra implementada en la funci´n o o Cholesky.4. con lo cual se tiene: >>U=L’. DESCOMPOSICION DE CHOLESKY 185 5.

186 Ejemplo MATLAB R ´ CAP´TULO 5.1).b) en donde el vector soluci´n x est´ dado por: o a >> x x = 6. y el vector con los t´rminos independientes: e >>b=ones(3. de Cholesky) o 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´ de coeficientes de este sistema se define de la siguiente forma: ız >>A=[4 -2 2. ´ El procedimiento de soluci´n de sistemas lineales de ecuaciones usando el o m´todo de Cholesky se explica en la secci´n 5.5000 5.3 y se encuentra implemene o tado en la funci´n CholeskySol.-2 2 -4. METODOS DIRECTOS I (Soluci´n de un sistema lineal de ecuaciones con Desc. Para este caso particular la soluci´n del o o sistema se puede obtener de la siguiente forma: >>[x]=CholeskySol(A.2 -4 11].0000 16.0000 .6.m .

1. que en este caso particular corresponde a solamente un unico ´ valor (con lo cual el procedimiento es muy eficiente a nivel computacional).1. .  dn−1  cn−1 en−1 dn Para la soluci´n del sistema lineal de ecuaciones en donde la matr´ de coeo ız ficientes A es de tipo tridiagonal. .     .7. .  d= .4. .5. .  . Este procedimiento se puede expresar de la siguiente forma: Fila (k) ← Fila (k) − multiplicador × Fila (k-1) donde el multiplicador est´ dado por: a multiplicador = (ck−1 /dk−1 ) (5. 5.53) . . Matrices de Coeficientes Bandeadas Sistemas Tridiagonales Fundamentos conceptuales Un sistema de ecuaciones tridiagonal es aquel cuya matr´ de coeficientes A ız 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. . se va a emplear una versi´n modificada de o la descomposici´n LU (secci´n 5..   . . la definici´n de este tipo de sistemas se hace especificando o o tres vectores:       d1 c1 e1  d2   c2    e2     . Con el fin de facilitar la ız definici´n del sistema lineal de ecuaciones y para la determinaci´n de su correso o pondiente soluci´n. . .52) (5.1.   . MATRICES DE COEFICIENTES BANDEADAS 187 5. .  e= .51) Los diferentes valores de multiplicadores se almacenan en el vector c en la posici´n ck−1 conh lo cual se define la matr´ L: o ız ck−1 = (ck−1 /dk−1 ) (5.3).50)  . .  .   .7. 5. (5.49) ··· 0  4 4    . Recordemos que este procedimiento cono o siste en realizar la eliminaci´n de variables que se encuentren por debajo del o elemento del pivot.  c= . .7. . 0 0 · · · 0 cn−1 dn lo cual implica que la matr´ A es de tipo disperso.7.

Las variables de salida de esta funci´n son los miso o mos vectores de entrada que han sido modificados y por lo tanto la funci´n o queda definida de la siguiente forma: LU Sistemas Tridiagonales: Declaraci´n funci´n 188b ≡ o o function [c.1. variable que se va a almacenar en n: LU Sistemas Tridiagonales: Inicializaci´n variables 188c ≡ o n=length(d).3. Fragmento referenciado en 188a. 5. mientras que o el resultado del paso de la eliminaci´n se almacena en el vector d: o .d.d.1.e]=LUdec3(c.188 5.1. Inicializaci´ n de variables Para realizar la descomposici´n LU o o de una matr´ tridiagonal es necesario determinar el n´ mero de ecuaciones que ız u conforman dicho sistema.1.50).d y e que almacenan los valores que definen la matr´ o ız tridiagonal (ecuaci´n 5.m y tieo ne la siguiente estructura: "LUdec3. Ciclo principal La descomposici´n LU de una matr´ tridiagonal o ız se implementa mediante un ciclo for.m" 188a ≡ LU Sistemas Tridiagonales: Declaraci´n funci´n 188b o o LU Sistemas Tridiagonales: Inicializaci´n variables 188c o LU Sistemas Tridiagonales: Ciclo principal 189a 5.2.1.52) que en este caso particular se almacena en la variable o lambda (ecuaci´n 5. Declaraci´ n de la funci´ n Las variables de entrada de esta funo o ci´n son los vectores c. dentro del cual se define el valor del multiplicador (ecuaci´n 5. 5. Este lambda se almacena en el vector c. ´ CAP´TULO 5.2.53). METODOS DIRECTOS I Descomposici´ n LU de sistemas tridiagonales o La funci´n que implementa este procedimiento se denomina LUdec3.7.e) Fragmento referenciado en 188a.7.2.2.7.2.7.

1.2.1)/d(k-1.1. el cual se determina como el n´ mero de elementos del vector d mediante la u funci´n length y el cual se almacena en la variable n.1)=lambda. Fragmento referenciado en 188a. MATRICES DE COEFICIENTES BANDEADAS LU Sistemas Tridiagonales: Ciclo principal 189a ≡ for k=2:n.b) Fragmento referenciado en 189b.m" 189b ≡ Soluci´n Sistemas Tridiagonales: Declaraci´n funci´n 189c o o o Soluci´n Sistemas Tridiagonales: Inicializaci´n variables 190a o o Soluci´n Sistemas Tridiagonales: Descomposici´n LU 190b o o Soluci´n Sistemas Tridiagonales: Sustituci´n hacia adelante 190c o o Soluci´n Sistemas Tridiagonales: Sustituci´n hacia atr´s 191 o o a 5. d(k. Inicializaci´ n de variables La soluci´n del sistema lineal con matr´ o o ız de coeficientes tridiagonal requiere conocer el n´ mero de ecuaciones del sisteu ma. Este es el objetivo de la funci´n LUsol3 cuya estructura es la siguiente: o "LUsol3.1). lambda=c(k-1. o .7. e vectores que definen la matr´ tridiagonal de coeficientes (ver ecuaız ci´n 5.1. end.1)=d(k.50) o b vector con los t´rminos independientes del sistema lineal de ecuaciones e La variable de salida corresponde al vector x que es donde se almacena la soluci´n del sistema. 189 5.3. o Soluci´n Sistemas Tridiagonales: Declaraci´n funci´n 189c ≡ o o o function [x]=LUsol3(c.1. d. Declaraci´ n de la funci´ n o o cedimiento son las siguientes: Las variables de entrada de este pro- c.5.7.7.d.3. c(k-1.7.e. 5.3.1).1)-lambda*e(k-1. Soluci´ n de sistemas tridiagonales o Una vez se ha realizado la descomposici´n LU de la matr´ tridiagonal con la o ız funci´n LUdec3 es posible avanzar hacia la soluci´n del sistema lineal de ecuao o ciones.

Sustituci´ n hacia atr´s Una vez se ha realizado la sustituci´n o a o hacia delante. Fragmento referenciado en 189b. Fragmento referenciado en 189b.7. 5.190 ´ CAP´TULO 5.1.4.1)*y(k-1.1)-c(k-1. siguiente fragmento de c´digo: o Soluci´n Sistemas Tridiagonales: Descomposici´n LU 190b ≡ o o [c.3.e]=LUdec3(c.3.1). Fragmento referenciado en 189b. for k=2:n.1)=b(1.3. Sustituci´ n hacia delante Se hace necesario definir un vector y o en donde se va a almacenar la soluci´n obtenida en el procedimiento de sustituo ci´n hacia delante.d.1).e).1. 5.1)=b(k.1.7. METODOS DIRECTOS I Soluci´n Sistemas Tridiagonales: Inicializaci´n variables 190a ≡ o o n=length(d). la soluci´n del sistema lineal de ecuaciones especificado inicialo mente se obtiene mediante un procedimiento de sustituci´n hacia atr´s y el o a resultado se almacena en el vector x.5. .d.7. definiendo o el multiplicador y almacenando los resultados en el vector y: Soluci´n Sistemas Tridiagonales: Sustituci´n hacia adelante 190c ≡ o o y(1. 5. y(k. Este procedimiento se realiza de la forma usual. Descomposici´ n LU Para obtener la soluci´n del sistema lineal o o de ecuaciones cuya matr´ de coeficientes es de tipo tridiagonal se hace necesaız rio realizar la descomposici´n LU de dicha matr´ lo cual se hace mediante el o ız.3. end.

1)-e(k.1) end. 191 .1). MATRICES DE COEFICIENTES BANDEADAS Soluci´n Sistemas Tridiagonales: Sustituci´n hacia atr´s 191 ≡ o o a x(n.1)/d(n.1)=y(n. for k=n-1:-1:1. Fragmento referenciado en 189b.7.5.1)=(y(k.1))/d(k.1)*x(k+1. x(k.

METODOS DIRECTOS I Ejemplo MATLAB (Descomposici´n LU de una matr´ tridiagonal) o ız R Realice en MATLAB diagonal: la descomposici´n LU de la siguiente matr´ trio ız  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´n 5.2500 1.5000 1. d=[2 2 2 2 2]’.3333 1.d.5000 -0.0000 1.2.4. y las cuales se designan gen´ricamente como c. e=[-1 -1 -1 -1]’. d y e (ecuaciones 5.50).m definida en la secci´n 5.0000 -1.1.e1]=LUdec3(c.7.7500 -0. Para este e caso particular estos vectores son de tipo columna y se definen de la siguiente forma: c=[-1 -1 -1 -1]’.192 5.2000 -1.7.1.1 se explica que las matrices tridiagonales se definen eso pecificando los valores de las diagonales que son no nulas.7.0000 -1.6667 -0.8000 d1 = 2.49 y 5. y la cual se utiliza de la o o siguiente forma: >> [c1.e) El resultado de la descomposici´n LU de una matr´ tridiagonal corresponde o ız a una matr´ L y otra matr´ U cuyas diagonales tienen los siguientes valores: ız ız >> [c1 e1] -0.d1.0000 -1. Ejemplos R ´ CAP´TULO 5.0000 . Para realizar la descomposici´n LU de este tipo de matrices se emplea la o funci´n LUdec3.

0 (Descomposici´n de Doolitle): o   1 0 0 0 0  −0.7500 1 0  0 0 0 −0.3333 −1 0 U=   0 0 0 1.7.2500 −1  0 0 0 0 1. MATRICES DE COEFICIENTES BANDEADAS Ejemplo MATLAB R 193 (Descomposici´n LU de una matr´ tridiagonal) o ız Organizando los vectores obtenidos anteriormente se pueden definir las matrices L con la diagonal principal conformada por valores iguales a 1.6667 1 0 0  L=    0 0 −0. lo cual se puede hacer mediante la siguiente l´ ınea de c´digo: o >> 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 .0000 −1 0 0 0   0 1.5.5000 −1 0 0     0 0 1.5000 1 0 0 0    0 −0.8000 1 mientras que para la matr´ U la diagonal principal se encuentra conformada ız por los elementos del vector d1 y la diagonal inferior corresponde al vector c1   2.2000 Ahora estas dos matrices se ingregas en MATLAB R con el fin de corroborar si efectivamente estas corresponden a una descomposici´n LU de la matr´ o ız A.

m .d.e. La soluci´n de los sistemas lineales de ecuaciones con matrices de coefio cientes que son matrices tridiagonales se explica en la secci´n 5.1: o c=[-1 -1 -1 -1]’.1).5000 4.194 Ejemplo MATLAB R ´ CAP´TULO 5. e=[-1 -1 -1 -1]’.3 y se o encuentra implementado en la funci´n LUsol3.b) y la soluci´n obtenida en este caso est´ dada por: o a x = 2.0000 4. Para este problema partio cular la soluci´n del sistema se puede obtener de la siguiente forma: o >> [x]=LUsol3(c.7. y el vector de t´rminos independientes b se define de la siguiente forma: e b=ones(5. METODOS DIRECTOS I (Soluci´n de un sistema tridiagonal) o 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´n LU para matrices tridiagoo nales.5000 .7.5000 4. Nuevamente la matr´ de coeficientes se especifica definiendo los vectores ız de los elementos no nulos tal como se explica en la secci´n 5.0000 2. d=[2 2 2 2 2]’.1.

Cap´tulo 6 ı Soluci´ n de sistemas lineales de o ecuaciones: M´todos iterativos e 6. la matr´ de coeficientes A ser´ de tipo disperso. Introducci´ n o Los m´todos directos estudiados en el cap´ e ıtulo anterior son importantes en 2 casos: Los sistemas de ecuaciones sean peque˜ os. ız a Si las matrices de coeficientes son de tipo disperso la utilizaci´n de un m´todo o e directo desperdicia tanto espacio de almacenamiento como operaciones computacionales. y en el caso en donde el sistema lineal de ecuaciones sea grande (100 × 100 o dimensiones mayores). si los tama˜ os n de los n n mismos no son mayores a 50. Las matrices de coeficientes de dichos sistemas son de tipo denso. por lo que en muchas oportunidades la velocidad de ejecuci´n de los o mismos se ve seriamente afectada.2.1. En general estas dos caracter´ ısticas aparecen juntas. o o 195 . 6. M´todos Iterativos e La idea central de los m´todos iterativos para la soluci´n de un sistema lineal e o de ecuaciones A · x = b consiste en encontrar un vector soluci´n xk lo suficieno temente cercano al vector soluci´n x a partir de una soluci´n inicial x0 mediante o o la aplicaci´n de una regla de actualizaci´n dada. es decir.

3) de tal forma que si se quiere despejar x debemos premultiplicar por B−1 a ambos lados: B−1 · B · x + B−1 (A − B) · x = B−1 · b (6.7) en donde para obtener la soluci´n en la iteraci´n k + 1 se requiere tener una o o aproximaci´n de la soluci´n en la iteraci´n anterior k.1) donde B es una matr´ no singular. sin embargo esto no es . lo unico a que se desconoce en la ecuaci´n 6. De acuerdo con esto el sistema lineal de ız ecuaciones original: A·x=b (6.6) (6. o en el cual la soluci´n se puede obtener mediante el siguiente esquema iterativo: o xk+1 = (I − B−1 · A) · xk + B−1 · b (6. Por lo tanto resolver el sistema lineal original A · x = b es equivalente a resolver una ecuaci´n no lineal de la forma x = g(x). Hasta el momento lo o ız ´ unico que se sabe de ella es que no puede ser singular. Para poder aplicar este esquema iterativo en la pr´ctica. La ecuaci´n anterior se o o o o puede expresar de forma compacta como: xk+1 = Gxk + g (6.8 es definir la matr´ B. METODOS ITERATIVOS I Una posible forma para definir dicha regla de actualizaci´n consiste en supoo ner que la matr´ de coeficientes A se puede expresar como ız A = B + (A − B) (6.5) con lo cual resulta evidente la raz´n por la cual B deber cumplir la condici´n o o de ser no singular.2) se puede expresar como: [B + (A − B)] · x = b B · x + (A − B) · x = b (6.196 ´ CAP´TULO 6.8) donde G = (I − B−1 · A) y se denomina la matr´ de iteraci´n y el vector ız o −1 ´ g = B · b. la cual se o puede resolver empleando el procedimiento denominado iteraci´n de punto fijo.4) con lo cual se obtiene: x + B−1 (A − B) · x = B−1 · b y reorganizando para despejar x: x = B−1 (B − A) · x + B−1 · b x = (I − B−1 · A) · x + B−1 · b (6.

ız Definici´ n 28 o Se dice que una matr´ A es de tipo diagonal dominante si los valores sobre ız las diagonales son mayores en valor absoluto que la suma de los valores absolutos de los restantes coeficientes. . . es decir: n |aii | > i=1 |aij |. .10) . .  0 · · · 0 an−1. .. .. Generalmente esta matr´ ız depende de la matr´ A. 0      (6. . . es un m´todo iterativo y por lo mismo. y de ah´ el m´todo particular y la convergencia ız o ı e del mismo. . M´todo de Gauss-Seidel y Relajaci´ n e o El m´todo de Gauss-Seidel.9) mientras que AD es una matr´ diagonal: ız AD = diag(A) La matr´ AU tiene la siguiente forma: ız 0 a12 · · · a1n  .  .. la cual se puede descomponer de la siguiente forma: ız A = AL + AD + AU donde AL es una matr´ triangular de la forma: ız    AL =   0 0 ··· a21 0 ··· . an1 · · · an. .. METODO DE GAUSS-SEIDEL Y RELAJACION 197 un criterio suficiente para definirla completamente.3.´ ´ 6.3. i=j (6. n. .1 0 ··· 0 0       Cada m´todo iterativo define su propia matr´ B lo que a su vez determinar la e ız matr´ de iteraci´n particular G. . . 6. . AU =  . . . resulta e e ser un m´todo bastante eficiente que se aplica com´ nmente en problemas en e u donde la matr´ de coeficientes es de tipo diagonal dominante. . j = 1.n−1 0 0 . ..

0001866 0.85 + 0. x3 se reemplazan nuevamente en las ecuaciones 6.500000 -2.4 − 0.0000319 3.3 − 0.2.1x2 + 0.13) Y este resultado.1.0002908 6.15) La primera iteraci´n finaliza cuando se obtiene x3 o x3 = 71. x2 .2.11) (6.2095451 0.500000 x3 7.2(−2. con lo cual se obtiene: o 7.13 se obtiene: .005610 10 (6.16) Si este procedimiento se repite se obtienen los siguientes resultados: Iteraci´ n o 2 3 4 5 x1 2.0000000 0.1x1 + 0.3(2.616667) + 0 = −2.0000000 x2 .85 + 0 + 0 = 2.2x3 3 −19.2.3 − 0. o De la ecuaci´n 1 despejamos x1 .1(2.198 ´ CAP´TULO 6.0000044 Si los valores anteriores de x1 .794524 7 (6. de la ecuaci´n 2 despejemos x2 .2x2 x3 = 10 x1 = Si suponemos que x2 = 0.3x3 x2 = 7 71.990557 3.616667 3 (6. y as´ sucesio o ı vamente hasta que de la ecuaci´n n despejemos xn .499988 .12) Comenzamos con nuestro sistema de ecuaciones dado por la ecuaci´n 5. x3 = 0 entonces: x1 = 7. junto con x3 se reemplaza para obtener: x2 = −19.1087369 0.3x1 + 0.4996247 .0000000 7.794524) = 7.4 − 0. METODOS ITERATIVOS I 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.616667) + 0.14) (6.9999993 7.0000004 3.

2. . . . . o o El sistema lineal de ecuaciones A · x = b en notaci´n escalar: o n Aij xj = bi . .17. x2 . . . i = 1.18) Al extraer los t´rminos xj se tiene: e n Aii xi + j=1 j=i Aij xj = bi .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  . .3.21) se modifica teniendo en cuenta tanto la soluci´n o o en la iteraci´n k como en la iteraci´n k − 1. . . . La nueva soluci´n es un promedio o o o . . . . xn . Con los valores iniciales de x2 . j=1 i = 1. n (6. . o valores aleatorios. . .  i = 1. xn es posible obtener un valor actualizado para x1 empleando la expresi´n de la ecuaci´n 6. 2. x3 . . . n (6. . . .19) Despejando xi se tiene:  xi = 1  b i − Aii  n   Aij xj  . . METODO DE GAUSS-SEIDEL Y RELAJACION 199 b1 − a22 x2 − · · · − a1n xn a11 b2 − a21 x1 − · · · − a2n xn x2 = a22 . el esquema e de soluci´n (ecuacion 6.  i = 1. . . n (6. .21) Con el fin de mejorar la velocidad de convergencia del m´todo.17) las cuales constituyen las expresiones a emplear en un esquema iterativo para la obtenci´n de la soluci´n. Para iniciar con dicho procedimiento seleccionamos o o un conjunto de valores iniciales para las variables x1 .´ ´ 6. x1 = xn = bn − a11 x1 − · · · − ann−1 xn−1 ann (6. n (6. Estos valores iniciales pueden ser iguales a 0. 2. 2.

 i = 1.26) y donde la matr´ B est´ dada por: ız a B = ωAD −1 (6.0: Este opci´n se conoce como la sub-relajaci´n o o ω > 1. de tal forma que si se define o o la soluci´n en la iteraci´n actual como zk+1 se tiene: o o z+1 = −(AD + AL )−1 · AR · xk + (AD + AL )−1 · b (6.24) (6.8) se puede expresar como: ız o o G = I − B−1 · A = I − (AD + AL )−1 (AL + AD + AR ) = −(AD + AL )−1 AR y el esquema iterativo completo est´r´ dado por: a ıa xk+1 = −(AD + AL )−1 · AR · xk + (AD + AL )−1 · b (6. Se pueden considerar dos casos: ω < 1.27) . METODOS ITERATIVOS I   Aij xj  + (1 − ω)xi .0: sobre-relajaci´n o El m´todo de Gauss-Seidel para la soluci´n de sistemas de ecuaciones lineae o les se puede expresar como un m´todos iterativo en donde B = (AD + AL ) y e por lo tanto la matr´ de iteraci´n (ecuaci´n 6. . . n (6. se parte de la ecuaci´n anterior y sabiendo que o o la soluci´n del sistema en una iteraci´n dada xk+1 depende de la soluci´n en la o o o iteraci´n actual k + 1 y de la iteraci´n anterior k.200 ponderado de soluci´n actual y anterior: o  ω  bi − xi ← Aii  n ´ CAP´TULO 6.25) con lo cual la soluci´n del sistema usando relajaci´n se puede obtener: o o xk+1 = (1 − ω)xk + ωzk+1 = (1 − ω)I − ωA−1 (AL + AR ) ·xk + ωA−1 · b D D G (6. .22) j=1 j=i donde ω es un factor de ponderaci´n que va a controlar la contribuci´n de cada o o una de las soluciones obtenidas hasta el momento.23) Para el caso de la relajaci´n. . 2.

Gauss-Seidel: Declaraci´ n de la funci´ n o o Esta funci´n tiene las siguientes variables de entrada: o A: matr´ de coeficientes del sistema lineal de ecuaciones ız b: vector con los t´rminos independientes del sistema lineal de ecuaciones e x0 : vector de soluci´n inicial (pueden ser 0’s o valores aleatorios) o ω: Par´metro que controla el nivel de relajaci´n para la soluci´n del sisa o o tema. si λ > 1 se tiene el e o m´todo de sobre-relajaci´n y si λ = 1 se tiene el m´todo de Gauss-Seidel e o e tradicional. .´ ´ 6.3.b.1. maxit: N´ mero m´ximo de iteraciones u a errmin: error relativo m´ ınimo para la detenci´n del procedimiento iterao tivo Las variables de salida de esta funci´n corresponden a: o x: vector con la soluci´n del sistema lineal de ecuaciones o iter: N´ mero de iteraciones empleado para alcanzar la soluci´n u o GaussSeidel: Declaraci´n de la funci´n 201b ≡ o o function [x.x0.1.3.3.omega.iter]=GaussSeidel(A.m" 201a ≡ GaussSeidel: Declaraci´n de la funci´n 201b o o GaussSeidel: Inicializaci´n de variables 202a o GaussSeidel: Escalamiento 202b GaussSeidel: Obtener soluci´n inicial 203a o GaussSeidel: Ciclo Principal 203b 6.maxit. Soluci´ n de sistemas lineales de ecuaciones usando el o m´todo de GaussSeidel e La soluci´n de sistemas lineales de ecuaciones usando este procedimiento o viene implementado en una funci´n cuya estructura es la siguiente: o "GaussSeidel. METODO DE GAUSS-SEIDEL Y RELAJACION 201 6.errmin) Fragmento referenciado en 201a.1. Si λ < 1 se tiene el m´todo de sub-relajaci´n.

for j=1:n. iter=0.i).j)/temp. Este valor se inicializa en 0. err=100. o . METODOS ITERATIVOS I Gauss-Seidel: Inicializaci´ n de variables o En esta secci´n se definen las siguientes variables: o n almacena el n´ mero de ecuaciones del sistema lineal en estudio (este u n´ mero se obtiene usando el comando length) u x: esta variable corresponde a la soluci´n del sistema lineal de ecuaciones o y se inicializa con el vector x0 .202 6.3.3. Este valor se inicializa en 100. o GaussSeidel: Inicializaci´n de variables 202a ≡ o n=length(b).1.3.3. 6. temp=A(i. Escalamiento Para comenzar a solucionar el sistema lineal de ecuaciones. x=x0. los valores de los coeficientes se dividen por el valor del coeficiente que se encuentra en la diagonal: GaussSeidel: Escalamiento 202b ≡ for i=1:n. 6. u err: error relativo de la soluci´n actual. Obtenci´ n de Soluci´ n inicial o o En esta parte se utilizan los valores de la soluci´n inicial x0 y se calcula una o nueva soluci´n del sistema de ecuaciones. A(i. iter: contador para el n´ mero de iteraciones. ´ CAP´TULO 6. end.1.2. Fragmento referenciado en 201a. end.4. b(i)=b(i)/temp. Fragmento referenciado en 201a.1.j)=A(i.

1. end end.21 o . 203 6. o o Determinaci´n del error: Con la nueva soluci´n actualizada se calcula el o o error relativo con el fin de determinar si el procedimiento ha presentado convergencia. Fragmento referenciado en 201a. Gauss-Seidel: Ciclo principal El ciclo principal incluye las operaciones m´s importantes del procedimiento a de Gauss-Seidel.j)*x(j).5. METODO DE GAUSS-SEIDEL Y RELAJACION GaussSeidel: Obtener soluci´n inicial 203a ≡ o for i=1:n.5. Actualizaci´ n soluci´ n Aqu´ es necesario reemplazar los valores o o ı de la soluci´n actual y con ellos determinar unos nuevos valores de las inc´gnio o tas usando el procedimiento descrito por la ecuaci´n 6. Fragmento referenciado en 201a. GaussSeidel: Ciclo Principal 203b ≡ while (iter<=maxit & err>errmin). Estas son: Actualizaci´n de la soluci´n: en la cual se propone una nueva soluci´n a o o o partir de la soluci´n inicial o la obtenida en la iteraci´n anterior. suma=suma+A(i.1.1. for j=1:n. x(i)=suma. end. Ciclo Principal GaussSeidel: Actualizaci´n de la soluci´n 204a o o Ciclo Principal GaussSeidel: C´lculo del error e incremento de las iteraciones 204b a end. if (i~=j). suma=b(i).3. 6.3.3.´ ´ 6.

3.5.j)*x(j) end end.2. 6. xold=x(i). suma=b(i). suma=suma-A(i. for j=1:n.-omega)*xold. if (i~=j). Fragmento referenciado en 203b. end Fragmento referenciado en 203b. iter=iter+1.1. Ciclo Principal GaussSeidel: C´lculo del error e incremento de las iteraciones 204b ≡ a err=abs((x(i)-xold)./x(i))*100.204 ´ CAP´TULO 6. METODOS ITERATIVOS I Ciclo Principal GaussSeidel: Actualizaci´n de la soluci´n 204a ≡ o o for i=1:n. x(i)=omega*suma+(1. . C´lculo del error En esta parte se calcula cual es el error relatia vo obtenido por la soluci´n propuesta y adem´s se incrementa el n´ mero de o a u iteraciones del procedimiento.

Ejemplos Ejemplo (Aplicaci´n del m´todo de Gauss-Seidel) o e 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´todo de Gauss-Seidel.0 x1 = 4 −1 + 3. METODO DE GAUSS-SEIDEL Y RELAJACION 205 6. e Para aplicar este procedimiento iterativo despejamos las inc´gnitas x1 .85938 4 5 − 2.x2 y x3 o con lo cual se obtiene: 12 + x2 − x3 x1 = 4 −1 + x1 − 2x3 x2 = 4 5 − x1 + 2x2 x3 = 4 y seleccionando como soluci´n inicial el vector: o  0 x= 0  0 se puede calcular la primera iteraci´n del m´todo de Gauss-Seidel usando las o e ecuaci´n 6.85938 x3 = = 0.3.75 = 2.3.75 x2 = = 0.5 4 5 − 3.9375 4 −1 + 2.5 x3 = = 0.0 − 2 × 0 x2 = = 0.5 − 0.9375 − 2 × 0.21: o 12 + 0 − 0 = 3.0 + 2 × 0.2.´ ´ 6.9375 + 2 × 0.94531 4 x1 =  .75 4 La segunda iteraci´n de este procedimiento nos permite obtener: o 12 + 0.

206 y para la tercera iteraci´n se obtiene: o

´ CAP´TULO 6. METODOS ITERATIVOS I

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 =

´ ´ 6.3. METODO DE GAUSS-SEIDEL Y RELAJACION Ejemplo MATLAB
R

207

(Aplicaci´n del m´todo de Gauss-Seidel) o e

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´todo iterativo de Gauss-Seidel en MATLAB R . Para realizar e este procedimiento se procede a la definici´n de la matr´ de coeficientes, lo o ız cual se hace de la siguiente forma: >> A=[4 -1 1;-1 4 -2;1 -2 4]; al igual que el vector de t´rminos independientes del sistema: e >> b=[12 -1 5]’; Debido a que el m´todo de Gauss-Seidel es de naturaleza iterativa, se hace e necesario especificar una soluci´n inicial x0 que en este caso es un vector o cuyos elementos son iguales a 0.0: >> x0=zeros(3,1); Para solucionar este sistema lineal de ecuaciones, se va a utilizar la funci´n o GaussSeidel.m definida en el presente cap´ ıtulo, para la cual es necesario especificar la matr´ de coeficientes A, el vector de t´rminos independientes ız e b, la soluci´n inicial x0, el factor ω que en este caso es igual a 1.0, el n´ mero o u m´ximo de iteraciones 10 y el error m´ a ınimo 1.0 × 10−5 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

´ CAP´TULO 6. METODOS ITERATIVOS I (Aplicaci´n del m´todo de la sub-relajaci´n) o e o

Resuelva el siguiente sistema lineal de ecuaciones usando el m´todo de e sub-relajaci´n con un ω = 0.5, un m´ximo de iteraciones de 100 y un error o a m´ ınimo de 1.0 × 10−5      4 −1 1 x1 12  −1 4 −2   x2  =  −1  1 −2 4 x3 5 Para proceder con la soluci´n de este problema en MATLAB R es necesario o definir la matr´ de coeficientes y el vector de t´rminos independientes, lo ız e cual se hace como en el ejemplo anterior. Al estar basado en el m´todo de e GaussSeidel, la sub-relajaci´n requiere de una soluci´n inicial, la que en este o o caso es igual a un vector de 0.0: >> x0=zeros(3,1); El procedimiento de sub-relajaci´n se encuentra implementado en la misma o funci´n GaussSeidel.m de tal forma que para utilizarlo se debe definir el o valor del ω, que en este caso es 0.5. As´ mismo se define el n´ mero m´ximo ı u a 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´n respectiva o >>[x,iter]=GaussSeidel(A,b,x0,omega,max_iter,min_err); Evidentemente la soluci´n obtenida es la misma que en el caso de GaussSeio del: x = 3.0000 1.0000 1.0000 sin embargo esta soluci´n y su respectivo valor de tolerancia se han alcano zado en 41 iteraciones, indicando que la sub-relajaci´n para este problema o particular tiene una velocidad de convergencia m´s lenta que GaussSeidel. a

´ ´ 6.3. METODO DE GAUSS-SEIDEL Y RELAJACION Ejemplo MATLAB
R

209

(Aplicaci´n del m´todo de la sobre-relajaci´n) o e o

Resuelva el siguiente sistema lineal de ecuaciones usando el m´todo de e sobre-relajaci´n con un ω = 1.5, un m´ximo de iteraciones de 100 y un error o a m´ ınimo de 1.0 × 10−5      4 −1 1 x1 12  −1 4 −2   x2  =  −1  1 −2 4 x3 5 Para proceder con la soluci´n de este problema en MATLAB R es necesario o definir la matr´ de coeficientes y el vector de t´rminos independientes, lo ız e cual se hace como en el ejemplo anterior. Al estar basado en el m´todo de e GaussSeidel, la sobre-relajaci´n requiere de una soluci´n inicial, la que en o o este caso es igual a un vector de 0.0: >> x0=zeros(3,1); El procedimiento de sobre-relajaci´n se encuentra implementado en la miso ma funci´n GaussSeidel.m de tal forma que para utilizarlo se debe definir el o valor del ω, que en este caso es 0.5. As´ mismo se define el n´ mero m´ximo ı u a 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´n respectiva o >>[x,iter]=GaussSeidel(A,b,x0,omega,max_iter,min_err); La soluci´n obtenida es la misma que en el caso de GaussSeidel: o x = 3.0000 1.0000 1.0000 sin embargo esta soluci´n y su respectivo valor de tolerancia se han alcanzao do en 26 iteraciones, indicando que la sobre-relajaci´n tiene una velocidad o de convergencia m´s lenta que GaussSeidel, pero mayor que el m´todo de la a e sub-relajaci´n. o

210

´ CAP´TULO 6. METODOS ITERATIVOS I

6.4.
6.4.1.

Gradiente Conjugado
Fundamentos conceptuales

El m´todo del gradiente conjugado es un algoritmo que se emplea para la e soluci´n de sistemas lineales de ecuaciones Ax = b en los cuales la matr´ de o ız coeficientes A es sim´trica y definida positiva. As´ mismo, este m´todo generale ı e mente se aplica cuando el sistema lineal es grande y la matr´ de coeficientes es ız de tipo disperso. En estos casos los m´todos directos como la eliminaci´n gause o siana y la descomposici´n LU presentan problemas de eficiencia y por lo tanto o este m´todo se convierte en una alternativa viable para la soluci´n de este tipo e o de problemas. Para entender este m´todo es necesario iniciar con la definici´n de vectores e o conjugados: Definici´ n 29 o Se dice que dos vectores v y u son conjugados (con respecto a A) si se cumple: uT Av = 0 (6.28)

La ecuaci´n 6.28 corresponde a la definici´n del producto escalar de dos vectoo o res, 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 . Definici´ n 30 o 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´n. Como ejemplo se pueden mencionar los vectores unitarios i,j y k. o Como los vectores pk forman una base del espacio Rn entonces el vector soluci´n x de Ax = b se puede expandir en esta base: o x = α1 p1 + α2 p2 + · · · + αn pn donde los αk son los coeficientes de dicha expansi´n. o (6.29)

36) (6. GRADIENTE CONJUGADO Reemplazando esta soluci´n en el sistema original se tiene: o Ax = α1 Ap1 + α2 Ap2 + · · · + αn Apn = b Para determinar los coeficientes αk premultiplicamos por pT : k pT Ax = pT α1 Ap1 + pT α2 Ap2 + · · · + pT αn Apn = αk pT Apk = pT b k k k k k k y despejando αk se tiene: αk = pT b k T pk Apk 211 (6. Este m´todo se basa en la minimizaci´n e o de la funci´n de la norma cuadr´tica.30) (6. Debido a que xk+1 o u debe satisfacer el sistema lineal A · x = b se tiene: A(xk + αk sk ) = b y el residual se puede definir como: rk = b − A · xk el cual es igual a: rk = αAsk (6.33) donde αk es el incremento y sk es la direcci´n de b´ squeda. la cual est´ definida como: o a a 1 f (x) = xT Ax − bT x 2 en donde se requiere que A sea sim´trica y definida positiva. El procedimiento general para aplicar este m´todo es el siguiente: e Definir un conjunto de n direcciones conjugadas pk Calcular los coeficientes αk a partir de las mismas ´ El m´todo del gradiente conjugado es una herramienta util para la soluci´n de e o sistemas lineales de ecuaciones. y modificando dicha soluci´n: o o xk = xk−1 + αk sk (6.37) (6.31) (6. tales como los que aparecen en la discretizaci´n o de ecuaciones diferenciales parciales.34) (6.35) .6.4. e Los m´todos de gradiente permite realizar la minimizaci´n de la funci´n f (x) e o o partiendo de una soluci´n inicial x0 .32) Con esto se obtienen los coeficientes αk y se puede resolver el sistema Ax = b.

212

´ CAP´TULO 6. METODOS ITERATIVOS I

Para despejar α premultiplicamos a ambos lados por sT con lo cual se obtiek ne: αk = sT rk k sT Ask k (6.38)

Sin embargo a´ n queda por determinar sk . Para esto se selecciona la direcci´n u o de mayor inclinaci´n en cada punto, la cual es igual a − f = rk La direcci´n o o de b´ squeda m´s apropiada corresponde a: u a sk+1 = rk+1 + βk sk de tal forma que: βk = − rT Ask k+1 sT Ask k (6.40) (6.39)

6.4.2.

Interpretaci´ n gr´fica del m´todo del Gradiente Cono a e jugado

6.1 Con el fin de entender mejor el m´todo del gradiente conjugado, se va a e presentar de forma gr´fica. Suponga que se quiere resolver el siguiente sistema a lineal de ecuaciones: 2 −2 −1 3 x1 x2 = 3 −5 (6.41)

empleando el m´todo del gradiente conjugado. La soluci´n de este sistema es: e o x= 1 −1 (6.42)

Como se explic´ anteriormente, este m´todo de soluci´n se basa en la minio e o mizaci´n de la Norma cuadr´tica (ver ecuaci´n 6.33), la cual una vez calculada o a o se representa mediante contornos en la figura 6.1. La soluci´n del sistema coo rresponde al punto en donde dicha funci´n es m´ o ınima. En este caso particular se asume que la soluci´n inicial corresponde al vector: o x0 = −4 −3

La filosof´ del m´todo consiste en descender por dicha superficie a partir de ıa e una soluci´n inicial x0 , estableciendo un conjunto de direcciones conjugadas o (perpendiculares u ortogonales) para llegar al m´ ınimo de la funci´n de noro ma cuadr´tica. Para esto es necesario establecer la denominada direcci´n de a o b´ squeda sk , as´ como tambi´n la distancia que hay que moverse en dicha diu ı e recci´n αk . Una vez se han determinado estos dos valores la nueva soluci´n del o o

6.4. GRADIENTE CONJUGADO

213

sistema lineal de ecuaciones est´ dado por la ecuaci´n 6.34. Esta nueva soluci´n a o o representa otro punto sobre la superficie de la norma cuadr´tica y aqu´ se aplica a ı nuevamente el procedimiento, se determinar una nueva direcci´n de b´ squeda o u s1 y se calcula cuanto hay que moverse en esta a1 , con lo cual se define una nueva soluci´n que corresponde a x2 . Este procedimiento se repite hasta que o 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´n del sistema lineal de ecuaciones. Este procedimiento se encuentra o representado gr´ficamente en la figura 6.1, en donde la soluci´n del sistema se a o encuentra representada por el punto de color negro.

5

4

10

0

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

6

0 0 0 0 0 0 0 0 0 0 0 0

2

30
−1

15

20

8

86

2

4

10

0

0

0

−2

Y

50

40

−2

4

−2

30

−2

20

10

−3

0 2

6

4

10

15

20

−4

2
4

0

8
30
10

6 8 8 8 8 8 8 8 8 8 8 8 8
−4 −3

6
8

−5 −5

10
0

15
1

20
2 3 4

40
50
5 0

−2

−1

X

Figura 6.1: Soluci´n de un sistema lineal de ecuaciones usando gradiente cono jugado

214

´ CAP´TULO 6. METODOS ITERATIVOS I

6.4.3.

Soluci´ n de sistemas de ecuaciones lineales por medio o del Gradiente Conjugado

La estructura de la funci´n que implementa el m´todo del gradiente conjuo e gado es la misma de cualquier m´todo iterativo, y es la siguiente: e
"GradienteConjugado.m" 214a ≡ GradienteConj: declaraci´n de la funci´n 214b o o GradienteConj: Inicializaci´n de variables 215a o GradienteConj: Ciclo principal 215b

6.4.3.1.

Declaraci´ n de la funci´ n o o

La funci´n que implementa el gradiente conjugado tiene las siguientes vao riables de entrada: x0: vector de n × 1 con la soluci´n inicial del sistema (pueden ser 0 o o n´ meros aleatorios). u A: matr´ de coeficientes del sistema. de tama˜ o n × n. ız n b: vector de n × 1 con los t´rminos independientes del sistema en estudio. e itmax: n´ mero m´ximo de iteraciones u a errmin: error m´ ınimo que debe alcanzar la soluci´n para ser considerada o como satisfactoria. Las variables de salida son las siguientes: x: vector de n × 1 con la soluci´n del sistema o er: vector con el error incurrido en cada iteraci´n o par: vector con los valores de α y β obtenidos en cada iteraci´n o iter: n´ mero de iteraciones requeridas para obtener la soluci´n. u o
GradienteConj: declaraci´n de la funci´n 214b ≡ o o function [x,er,par,iter]=GradienteConjugado(x0,A,b,itmax,errmin)
Fragmento referenciado en 214a.

6.4. GRADIENTE CONJUGADO 6.4.3.2. Inicializaci´ n de variables o

215

Para realizar los diferentes c´lculos que requiere la aplicaci´n del m´todo a o e 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´n actual o El vector soluci´n x se inicializa con el valor de la soluci´n inicial. o o
GradienteConj: Inicializaci´n de variables 215a ≡ o r=b-A*x0; s=r; iter=0; err=100; x=x0;
Fragmento referenciado en 214a.

6.4.3.3.

Ciclo principal

El m´todo del gradiente conjugado al ser un m´todo iterativo requiere de e e una regla de actualizaci´n que se aplica de forma repetida. Ya que no hay maneo ra de saber cuantas iteraciones se requieren para que se presente convergencia a la soluci´n deseada, este procedimiento emplea un ciclo while, la estructura o del mismo es la siguiente:
GradienteConj: Ciclo principal 215b ≡ while ((err>=errmin) & (iter <= itmax)); Ciclo Principal GradienteConj: C´lculo del α 216a a Ciclo Principal GradienteConj: Actualizaci´n de la soluci´n 216b o o Ciclo Principal GradienteConj: C´lculo del residuo 216c a Ciclo Principal GradienteConj: Determinaci´n de direcci´n de b´ squeda 216d o o u Ciclo Principal GradienteConj: Calculo de error e incrementar iteraciones 217 end;
Fragmento referenciado en 214a.

216

´ CAP´TULO 6. METODOS ITERATIVOS I

6.4.3.3.1. C´lculo del α El valor de α corresponde al valor de los coeficiena tes de la expansi´n de la soluci´n o o
Ciclo Principal GradienteConj: C´lculo del α 216a ≡ a alpha=(s’*r)/(s’*A*s);
Fragmento referenciado en 215b.

6.4.3.3.2. Actualizaci´ n de la soluci´ n La nueva soluci´n se calcula a partir o o o de la soluci´n anterior xk y de la direcci´n de b´ squeda sk : o o u
Ciclo Principal GradienteConj: Actualizaci´n de la soluci´n 216b ≡ o o x=x+alpha*s;
Fragmento referenciado en 215b.

6.4.3.3.3. C´lculo del residuo Una vez se ha calculado la nueva soluci´n es a o posible determinar el valor del vector residual:
Ciclo Principal GradienteConj: C´lculo del residuo 216c ≡ a r=b-A*x;
Fragmento referenciado en 215b.

6.4.3.3.4. Determinaci´ n de direcci´ n de b´ squeda Con el vector residual o o u se calcula la nueva direcci´n para avanzar hacia la soluci´n del sistema lineal, o o para lo cual se determina el valor de βk que corresponde a un factor de correcci´n que asegura que la nueva direcci´n sea perpendicular a al anterior: o o
Ciclo Principal GradienteConj: Determinaci´n de direcci´n de b´ squeda 216d ≡ o o u 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:

1)=alpha. par(iter. 217 .6.4.2)=bet. Fragmento referenciado en 215b. par(iter. GRADIENTE CONJUGADO Ciclo Principal GradienteConj: Calculo de error e incrementar iteraciones 217 ≡ err=abs(max(sum(r. iter=iter+1.1)=err. er(iter.*r))).

41704 x1 = x0 + α0 s0 =  0  + 0.20142 12(54) + (−1)(−26) + 5(34) sT As0 0  la nueva soluci´n est´ dada por: o a       0 12 2.20142  −1  =  −0.00710 .218 ´ CAP´TULO 6.20142  0 5 1.4.4. Ejemplos Ejemplo (Soluci´n de sistema de ecuaciones lineales usando GC) o Resuelva el siguiente sistema lineal de ecuaciones diente conjugado:     4 −1 1 x1  −1 4 −2   x2  =  1 −2 4 x3 Inicializaci´ n o  0 x0 =  0  0  uasndo el m´todo del grae  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´n de b´ squeda queda definida como: o u   12 s0 = r0 =  −1  5 Para calcular el incremento α en la direcci´n de b´ squeda se requiere o u     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 r0 0 = = 0. METODOS ITERATIVOS I 6.

GRADIENTE CONJUGADO y el residuo para esta nueva aproximaci´n est´ dado por: o a 219 r1 = b − Ax1        12 4 −1 1 2.21760) = 0.10380(16.0251452   β1 = −      −0.63215 −1.72076 3.18268)(−1.41704 5.72076(5.6.33823(16.18268)(−10.21760 1.00710 −10.21760) = 0.63215(−10.441421  0.12332 12 2.05980  5 1 −2 4 1.133107  −1  =  4.59656) + 4.24276       2.10380(4.05980) + 0.07753 r2 = b − Ax2 =  −1  −  −1 4 −2   0.10380  =  0.23692(−26) − 1.23529 2.33823 +0.133107 T 12(54) + (−1)(−26) + 5(34) s0 As0  β0 = −      1.23692  + 0.18268 0.21760) =− 2.0251452  4.23692) + (−1.20142  =  16.07753 x2 = x1 + α1 s1 =  −0.10380(16.72076 s1 = r1 + β0 s0 =  4.602411 .05980) + (−1.24276  4.41704 2.84828 5 −1.59656) + 4.72076(5.79482  1.71999     12 4 −1 1 3.23529)(5.12332) + 4.10380  =  0.18268)(−10.59656) + 0.12332(54) + 4.79482  5 1 −2 4 0.72076 −0.00710 −1.59656 =  −1  −  −1 4 −2   −0.4.18268 Iteraci´ n 1 El incremento en la direcci´n de b´ squeda es igual a: o o u α1 = sT r1 1 sT As1 1 2.71999 rT As1 2 sT As1 1 (−0.05980) + (−1.18268 0.20142  + 0.72076(1.84828(34) rT As0 1 =− = 0.84828) = 2.10380  −1.166876 s2 = r2 +β1 s1 =  0.

23529)(−0.441421) + 0.99999  .46480  0.727738) + 0.166876 2.99999  0.602411 0.602411) = (−0.79482  + 0.07753 −0.46480      3.359930) = 0.506514) + 0.99997 x3 = x2 + α2 s2 =  0.166876)(−0.166876) + 0.441421  =  0.33823(0.602411(1.220 Iteraci´ n 2 o ´ CAP´TULO 6.71999 0.63215(0.441421(0. METODOS ITERATIVOS I α2 = rT s2 2 sT As2 2 (−0.

0000 1.100.0 × 10−5 : [x.iter]=GradienteConjugado(x0. el cual en este caso se ejecuta para un m´ximo o a de 100 iteraciones y con un error m´ ınimo de 1.1).1. con el cual se obtiene la soluci´n en un n´ mero de iteraciones igual a: o u iter = 3 siendo la soluci´n obtenida: o x = 3.par. R con una soluci´n o Para proceder con la soluci´n de este problema se hace necesario definir o la matr´ de coeficientes.1 -2 4].er.0000 . El vector de soluci´n inicial se define de la siguiente manera: o x0=zeros(3. junto con el vector de t´rminos independientes: e b=[12 -1 5]’.A.b.6.4.0000 1.-1 4 -2. lo cual se hace de la siguiente forma: ız A=[4 -1 1.m .0e-5). GRADIENTE CONJUGADO Ejemplo MATLAB R 221 (Soluci´n de sistema de ecuaciones lineales usando GC) o 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´todo del Gradiente Conjugado en MATLAB e inicial de 0. y el m´todo del Gradiente conjugado se encuentra implementado en la fune ci´n GradienteConjugado.

n (6. ız Precondicionador Diagonal este se define a patir del valor de la norma vectorial de los coeficientes de una ecuaci´n particular: o P = ||Ai ||.222 ´ CAP´TULO 6. y como es a una matr´ diagonal.46) Precondicionador de Relajaci´ n Sucesiva Este precondicionador est´ basado o a en la descomposici´n dada por la ecuaci´n (6.44) Precondicionador de Gauss-Seidel :La aplicaci´n de este precondicionador se o basa en la siguiente descomposici´n: o A = L + D + LT (6. .5. su inversa es muy sencillo de calcular.45) y se define por: o o P= D +L ω ω D−1 2−ω D + LT ω (6. a a Definici´ n 31 o Un precondicionador es una matr´ P tal que P−1 A tiene un n´ mero de ız u condici´n menor que A de tal forma que al resolver el sistema lineal de o ecuaciones dado por P−1 Ax = b es mucho m´s eficiente que la soluci´n del a o sistema original Ax = b Existen diferentes tipos de precondicionador entre los cuales se pueden mencionar: Precondicionador de Jacobi corresponde a una matr´ diagonal D con los eleız mentos de la diagonal de A. .5. . METODOS ITERATIVOS I 6. 6. . 2] a o . En estos casos o e ´ resulta util la utilizaci´n de un precondicionador de tal forma que el sistema se o pueda resolver de forma m´s r´pida.1.45) donde L que contiene la porci´n triangular inferior de A y D es una matr´ o ız con los valores de la diagonal de A. P = (D + L)D−1 (D + LT ) (6.43) Este precondicionador tiene la ventaja de ser f´cil de definir. es decir: P = diag(A) (6. i = 1. Gradiente Conjugado Precondicionado Fundamentos conceptuales La gran mayor´ de los sistemas lineales que aparecen de la discretizaci´n de ıa o las ecuaciones diferenciales parciales se encuentran mal condicionados y por lo tanto su soluci´n presentan problemas de estabilidad num´rica.47) donde ω es el par´metro de relajaci´n y ω ∈ [0.

.m" 223a ≡ GradienteConjugadoPrecond: Declaraci´n de la funci´n 223b o o GradienteConjugadoPrecond: Definici´n del Precondicionador 224a o GradienteConjugadoPrecond: Inicializaci´n de variables 224b o GradienteConjugadoPrecond: Ciclo Principal 224c 6.5.iter]=PCG(x0.m y tiene la siguiente estructura: "PCG. Aplicaci´ n del m´todo del Gradiente conjugado preo e condicionado La funci´n que implementa el procedimiento de gradiente conjugado precono dicionado para la soluci´n de los sistemas de ecuaciones lineales se denomina o PCG.itmax.b.errmin) Fragmento referenciado en 223a.1. o GradienteConjugadoPrecond: Declaraci´n de la funci´n 223b ≡ o o function [x. GRADIENTE CONJUGADO PRECONDICIONADO 223 6. Tama˜ o n × 1.6.opcion.5. Declaraci´ n de la funci´ n o o Las variables de entrada de esta funci´n son las siguientes: o x0: vector de la soluci´n inicial del problema particular.2. o n A: matr´ de tama˜ o n × n con los coeficientes del sistema ız n b: vector de tama˜ o n × 1 con los t´rminos independientes del sistema a n e resolver opcion: variable para definir la opci´n de precondicionamiento o itmax: n´ mero m´ximo de iteraciones u a errmin: error m´ ınimo para el cual una soluci´n se considera aceptable.5. o Las variables de salida son: x: vector de tama˜ o n × 1 con la soluci´n del sistema lineal de ecuaciones n o iter: variable que almacena el n´ mero de iteraciones que se necesitaron u para llegar a la soluci´n.A.2.

5.3. METODOS ITERATIVOS I Definici´ n del precondicionador o De acuerdo al valor de opcion se define la matr´ de precondicionamiento ız por medio de la funci´n denominada precondicionador. Ciclo principal Al ser un m´todo iterativo.m : o GradienteConjugadoPrecond: Definici´n del Precondicionador 224a ≡ o M=precondicionador(A.2.2. o GradienteConjugadoPrecond: Inicializaci´n de variables 224b ≡ o iter=0. Fragmento referenciado en 223a. 6. err=100.2. Fragmento referenciado en 223a. Fragmento referenciado en 223a.2.5. .opcion). el gradiente conjugado precondicionado se ime plementa mediante un ciclo while cuya estructura es la siguiente: GradienteConjugadoPrecond: Ciclo Principal 224c ≡ while (err>=errmin & iter<=itmax). 6.224 6. ´ CAP´TULO 6. Inicializaci´ n de variables o En este fragmento se definen las variables que van a controlar el procedimiento de obtenci´n de la soluci´n del sistema lineal de ecuaciones: o o iter: variable contadora de las iteraciones err: variable para almacenar el error relativo de la soluci´n obtenida.5. Ciclo Principal PCG: C´lculo del α 225a a Ciclo Principal PCG: Actualizaci´n de la soluci´n 225b o o Ciclo Principal PCG: C´lculo del residuo 225c a Ciclo Principal PCG: Actualizaci´n direcci´n de b´ squeda 225d o o u Ciclo Principal PCG: Calculo de error e incrementar iteraciones 226a end.4.

2.1. Fragmento referenciado en 224c.4.5.5.4. Fragmento referenciado en 224c. C´lculo del residuo Con la nueva aproximaci´n de la soluci´n a o o del sistema se determina su resido para juzgar su calidad: Ciclo Principal PCG: C´lculo del residuo 225c ≡ a r=rold-alpha*A*s. 6.5. GRADIENTE CONJUGADO PRECONDICIONADO 225 6.5.5.4. 6. s=inv(M)*r+bet*s. C´lculo de error e incremento de iteraciones a .4. 6. C´lculo del α El valor del α que representa la magnitud de la a modificaci´n que se hace en la direcci´n de b´ squeda se calcula de la siguiente o o u forma: Ciclo Principal PCG: C´lculo del α 225a ≡ a alpha=(rold’*inv(M)*rold)/(s’*A*s). Fragmento referenciado en 224c.2.3. Actualizaci´ n de la soluci´ n Una vez calculado el α se puede o o modificar la soluci´n inicial de la siguiente forma: o Ciclo Principal PCG: Actualizaci´n de la soluci´n 225b ≡ o o x=x+alpha*s. Actualizaci´ n direcci´ n de b´ squeda o o u Ciclo Principal PCG: Actualizaci´n direcci´n de b´ squeda 225d ≡ o o u bet=-(r’*inv(M)*r)/(rold’*A*rold).4.4.2.5. Fragmento referenciado en 224c.2.6.2.2.5. 6.

6.*r))).5. o opcion: opci´n de precondicionamiento. En este caso existen 3 opciones o que son: • opcion = 1 Precondicionador de Jacobi (ver ecuaci´n 6.43) o • opcion = 2 Precondicionador diagonal (ver ecuaci´n 6. err=abs(max(sum(r. .opcion) Fragmento referenciado en 226b. Funci´ n precondicionador o La estructura de la funci´n que implementa el precondicionador es la sio guiente: "precondicionador.44) o • opcion = 3 Precondicionador de Gauss-Seidel (ver ecuaci´n 6.226 ´ CAP´TULO 6.3.3.45) o • opcion = 4 Precondicionador de relajaci´n sucesiva (ver ecuaci´n o o 6. Declaraci´ n de la funci´ n o o En este caso las variables de entrada son: A: matr´ en estudio y a la cual se le quiere mejorar el n´ mero de condiız u ci´n.m" 226b ≡ Precondicionador: Declaraci´n de la funci´n 226c o o Precondicionador: Inicializaci´n de variables 227a o Precondicionador: Chequear la opci´n de precond 227b o Precondicionador: Seleccionar opci´n 228a o 6.47) Precondicionador: Declaraci´n de la funci´n 226c ≡ o o function [P]=precondicionador(A.5.1. iter=iter+1. METODOS ITERATIVOS I Ciclo Principal PCG: Calculo de error e incrementar iteraciones 226a ≡ rold=r. Fragmento referenciado en 224c.

6. end Fragmento referenciado en 226b.0.5.3.5. if(nrow ~=ncol) then error(’La matriz debe ser cuadrada’).3.6.2.3. es decir. Fragmento referenciado en 226b. L=tril(A)-D. Seleccionar opci´ n o Una vez la variable opcion se ha determinado que es correcta se procede a definir la matr´ de precondicionamiento respectiva: ız . P=zeros(n. si es mayor que 0 y menor a a 4: Precondicionador: Chequear la opci´n de precond 227b ≡ o if(opcion<=0 | opcion>4) then error(’La opcion de precondicionamiento seleccionada no es correcta’).4.5. GRADIENTE CONJUGADO PRECONDICIONADO 6.3. D=diag(diag(A)).5. Inicializaci´ n de variables o 227 Las variables que se deben inicializar en este caso para controlar el procedimiento de obtenci´n de la soluci´n son las siguientes: o o n: n´ mero de ecuaciones del sistema A · x = b u P : matr´ de precondicionamiento. end n=nrow. Precondicionador: Inicializaci´n de variables 227a ≡ o [nrow ncol]=size(A). Este es de tama˜ o n × n y se inicializa ız n en 0. 6. D: matr´ que contiene los valores de la diagonal de A ız L: matr´ triangular que contiene todos los elementos de la porci´n trianız o gular de A excepto los valores de la diagonal. que controla el tipo de precondicionamiento realizado. es v´lida. Chequear opci´ n o En este fragmento se determina si la variable opcion.n).

Precondicionador de Jacobi El precondicionador de Jacobi est´ dea finido como la matr´ diagonal formada con los elementos de la diagonal de la ız matr´ A: ız Precondicionador de Jacobi 228b ≡ P=D.4.4.3.45: o o . % Precondicionamiento de Jacobi Fragmento referenciado en 228a.5. 6.5.5.3. Fragmento referenciado en 228a. 6. end.4.2). Precondicionador de Gauss-Seidel El precondicionador de GaussSeidel se calcula por medio de la expresi´n dada por la ecuaci´n 6.3.228 ´ CAP´TULO 6. Precondicionador Diagonal El precondicionador diagonal est´ dea finido como la matr´ diagonal formada con los valores de la norma del vector ız formado por los coeficientes de cada ecuaci´n: o Precondicionador Diagonal 228c ≡ for i=1:1:n. METODOS ITERATIVOS I Precondicionador: Seleccionar opci´n 228a ≡ o 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´n Sucesiva 229b o end Fragmento referenciado en 226b.:).3. P(i.i)=norm(A(i.1. 6.2.

GRADIENTE CONJUGADO PRECONDICIONADO Precondicionador de Gauss-seidel 229a ≡ P = (D + L) * inv(D) * (D + L)’. .6. Precondicionador de relajaci´ n sucesiva El precondicionador o de relajaci´n sucesiva est´ definido por la ecuaci´n 6. P = P* omega/(2-omega).5. Fragmento referenciado en 228a.4.47 o a o Precondicionador de Relajaci´n Sucesiva 229b ≡ o omega = 1.7. 229 6. Fragmento referenciado en 228a.3. %Valor del parametro de relajamiento P = (D + omega*L) * inv(D) * (D + omega*L)’.4.5.

230 ´ CAP´TULO 6. METODOS ITERATIVOS I .

110 e Bisecci´n o m´todo de la. 67 e logaritmo natural. 161 Matr´ ız Diferencia Finita definida positiva. 210 o e o e ca Laguerre Descomposici´n o m´todo de. 142 Eliminaci´n gaussiana o inversa. 49. 140 Error Triangular inferior. 30 trascedental. 145 Manning. 197 Divisi´n sint´tica. 47 identidad. v´ase Divisi´n sint´ti. 176 Central. 102 e coseno. 100. 66 e polinomio. 176 LU. 146 Definici´n. 49 trigonom´trica. 55 e seno. 144 Exactidud tridiagonal. 39 diagonal dominante. 39 o diagonal. 186 Definici´n. 200 o N´ mero de. 200 o Condici´n o subrelajaci`n. 89 o triangular superior. 144 Evaluaci´n de Polinomios. 143. 22 desventajas m´todo. 176 e pivote. 176 truncamiento. 141 hacia delante. 95. 5 o Muller Funci´n o m´todo de. 109 o e dispersa. 197 e sobrerelajaci´n. 140. 150 e sim´trica. 146 herm´ ıtica. 126 231 . 36. 141 Ecuaci´n o hessemberg. 40 densa. 26 e Gauss-Seidel M´todo de.M´todo de. 89. 152 tipos. 37 Bairstow m´todo de. 26 Newton exponencial.´ndice alfab´tico I e Algoritmo. 33 m´todo de. 19. 37 triangular inferior. 172 m´todo de. 15 u Gradiente Conjugado e Deflaci´n polinomial. 126. 134 e Cholesky.

149 o a sustituci´n hacia delaten. 49 o m´todo gr´fico. 75 e Secante Modificado m´todo. 147 ´NDICE ALFABETICO ´ I . 152 Precisi´n o Definici´n. 176 o descomposici´n LU. 51 e a Raices m´todos abiertos. 186 Stokes Ley de. 140 e m´todos iterativos. 45 sustituci´n hacia atr´s. 150 o M´todo del Gradiente Conjugado. 22 Transformaciones Elementales. 50 e Regla signos Descartes. interpretaci´n geom´trica. 150 o Teorema Taylor. 199 e m´todos directos. 66.232 m´todo. e 210 M´todo Gauss-Seidel. 76 o e m´todo. 140 e Sistemas tridiagonales. 44 o Ra´ ıces de funci´n. 21. 49 Secante interpretaci´n geom´trica. 21 Valor Medio. 161 o eliminaci´n gaussiana. 82 e Serie de Taylor. e o e 67 Pivoteo. 110 Soluci´n ecuaciones lineales o Descomposici´n de Cholesky. 5 o Propagaci´n del error.