Análisis Numérico Sistemas de ecuaciones no lineales Contenido
Transcripción
Análisis Numérico Sistemas de ecuaciones no lineales Contenido
Introducción Puntos fijos Método de Newton Otros métodos Introducción Puntos fijos Método de Newton Otros métodos Método de Newton Otros métodos Contenido Introducción Análisis Numérico Sistemas de ecuaciones no lineales 1 Introducción CNM-425 2 Puntos fijos Departamento de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia 3 Método de Newton c 2008. Reproducción permitida bajo los Copyleft términos de la licencia de documentación libre GNU. 4 Otros métodos Puntos fijos Método de Newton Otros métodos Enunciado del problema Introducción Puntos fijos Ejemplos Problema lineal en tres dimensiones Dada una función 2x + y − z = 8 f : Rn → Rn , −3x − y + 2z = −11 ⇐⇒ f(x) = 0 −2x + y + 2z = −3 buscamos al menos un x ∈ Rn que satisfaga f(x) = 0 con (1) f(x) = (f1 (x), f2 (x), f3 (x))T y x = (x, y, z)T donde x es una raı́z de la ecuación (1) o un cero de f. f1 (x) = 2x + y − z − 8 f2 (x) = −3x − y + 2z + 11 El problema consiste en “encontrar una raı́z” o “encontrar un cero”. f3 (x) = −2x + y + 2z + 3 Dependiendo de la naturaleza de la función f podemos tener: El sistema posee solución única Problema lineal x = (2, 3, −1)T Problema no lineal Introducción Puntos fijos Método de Newton Otros métodos Ejemplos Introducción Puntos fijos Método de Newton Otros métodos Teorı́a Problema no lineal en dos dimensiones x2 + y 2 x2 + y = 25 = 19 ⇐⇒ Para el problema lineal hay teoremas que garantizan la existencia y unicidad de soluciones bajo ciertas hipótesis. f(x) = 0 con f(x) = (f1 (x), f2 (x))T x = (x, y)T y El problema no lineal es más complicado. donde f1 (x) = x2 + y 2 − 25 Para el caso unidimensional f (x) = 0 con f2 (x) = x2 + y − 19 f : [a, b] → R continua El sistema posee exactamente cuatro soluciones: (4, 3)T , (−4, 3)T , “√ ”T 21, −2 y y f (a) · f (b) < 0 el teorema del valor intermedio garantiza la existencia de un x∗ ∈ [a, b] tal que f (x∗ ) = 0. “ √ ”T − 21, −2 Para el caso multidimensional no hay un resultado análogo sencillo. Introducción Puntos fijos Método de Newton Presentación geométrica Otros métodos Introducción Puntos fijos Método de Newton Otros métodos Normas Una norma k · k en Rn nos permite “medir distancias”. Forma general de un sistema de ecuaciones f1 (x1 , x2 , . . . , xn ) = 0 Es una función k · k : Rn → R+ ∪ {0} tal que f2 (x1 , x2 , . . . , xn ) = 0 .. . fn (x1 , x2 , . . . , xn ) = 0 1 kxk ≥ 0 2 kα xk = |α|kxk , 3 kx + yk = kxk + kyk y kxk = 0 ⇔ x = 0 donde α∈R Representación geométrica para f : R2 → R2 Ejemplos kxk1 = |x1 | + |x2 | + · · · + |xn | (norma uno) kxk2 = (|x1 |2 + |x2 |2 + · · · + |xn |2 )1/2 (norma euclideana) kxkp = (|x1 |p + |x2 |p + · · · + |xn |p )1/p (p-norma) kxk∞ = máx{|x1 |, |x2 |, . . . , |xn |} (norma del sup) Introducción Puntos fijos Método de Newton Otros métodos Lı́mites Introducción Puntos fijos Método de Newton Otros métodos Lı́mites Teorema 1.1 Sea X ⊆ Rm , a ∈ Rm un punto de acumulación de X y f : X → Rn . Sea f : X → Rn con X ⊆ Rm de la forma f (x) = (f1 (x), f1 (x), . . . , fn (x))T lı́m f(x) = L x→a n con fi : X → R . Entonces significa que lı́m f(x) = L = (L1 , L2 , . . . , Ln )T x→a para todo ε > 0 existe un δ (que depende de ε) tal que x ∈ X, 0 < kx − akRm < δ =⇒ si, y sólo si, kf(x) − LkRn < ε lı́m fi (x) = Li , i = 1, . . . , n. x→a Observaciones La continuidad se puede caracterizar por medio de lı́mites. No es necesario que a ∈ X ni que f esté definida en a. Teorema 1.2 Aun si f(a) está definido, dicho valor no importa en la definición, importan los valores de f(x) para x próximo a a Una función f : X → Rn es continua en a ∈ X ⊆ Rm siempre que lı́mx→a f(x) exista y lı́m f(x) = f(a) Sı́ el lı́mite existe, el lı́mite es único x→a La definición no depende de la norma utilizada. Introducción Puntos fijos f es continua en X si es continua en todos los puntos de X (f ∈ C(X)). Método de Newton Otros métodos Diferenciabilidad Introducción Puntos fijos Una función f : U → Rn definida en una abierto U ⊆ Rm es diferenciable en el punto a ∈ U si existe una transformación lineal T : Rm → Rn tal que f(a + h) = f(a) + T · h + r(h) , Otros métodos donde lı́m h→0 r(h) =0 khk La matriz asociada a la transformación Df(a) respecto a las bases canónicas de Rm y Rn es la matriz jacobiana Jf(a) de la función f = (f1 , · · · , fn )T en a y está dada por (2) 2 ∂f1 (a) ∂x1 ··· .. . ··· .. . 6 Jf(a) = 6 4 ∂fn (a) ∂x1 La transformación lineal T es la derivada de f en a y se denota por Df(a). ∂f1 (a) ∂xm .. . ∂fn (a) ∂xm 3 » 7 7 5 = ∂fi (a) ∂xj – n×m donde ∂fi /∂xj (a) es la derivada direccional (“derivada parcial”) de fi en la dirección del vector ej = (0, . . . , 1, . . . , 0) en el punto a: La derivada direccional de f : U → Rn en el punto a ∈ U ⊆ Rm , en la dirección de un vector h ∈ Rm está dada por fi (a + t ej ) − fi (a) ∂fi (a) = lı́m t→0 ∂xj t f(a + th) − f(a) ∂f (a) = lı́m t→0 ∂h t (3) Como consecuencia de las definiciones anteriores: De (2) y (3) se sigue que Diferenciabilidad =⇒ continuidad Df(a) · h = Introducción Método de Newton Diferenciabilidad Puntos fijos f = (f1 , . . . , fn )T es diferenciable ⇐⇒ cada fi es diferenciable. ∂f (a) ∂h Método de Newton Otros métodos Puntos fijos Introducción Puntos fijos Método de Newton Otros métodos Puntos fijos Teorema 2.1 Teorema 2.2 Sea f : D → R con D ⊆ Rn . Si existen constantes δ > 0 y K > 0 tales que ˛ ˛ ˛ ∂f (x) ˛ ˛ ˛ ˛ xj ˛ ≤ K Sea D = {x = (x1 , . . . , xn )T : ai ≤ xi ≤ bi } y G : D → Rn continua. 1 Si G(D) ⊆ D, entonces G tiene al menos un punto fijo en D. 2 Si adicional a (1), G = (g1 , . . . , gn ) posee derivadas parciales continuas y existe una constante 0 < K < 1 tal que ˛ ˛ ˛ ∂gi ˛ ˛≤ K x ∈ D =⇒ ˛˛ para todo i, j ∂xj ˛ n siempre que kx − x0 k < δ y x ∈ D, entonces f es continua en x0 . Definición de punto fijo Una función f : D → Rn con D ⊆ Rn tiene un punto fijo en p ∈ D si entonces el punto fijo es único. G(p) = p 3 Si se cumplen (1) y (2), la suceción n x(n) o∞ definida por n=0 (n) En el caso unidimensional, consideramos como dominio x D = {x : a ≤ x ≤ b} = [a, b] ⊂ R =G x ” , para k ≥ 1 converge al único punto fijo p ∈ D para todo x ‚ ‚ ‚ (n) ‚ ‚x − p‚ D = {x = (x1 , . . . , xn )T : ai ≤ xi ≤ bi para i = 1, . . . , n} ⊂ Rn Puntos fijos (n−1) (0) En el caso multidimensional, consideraremos como dominio Introducción “ Método de Newton ∞ Otros métodos Puntos fijos Introducción Puntos fijos ≤ (4) ∈D y ‚ ‚ K n ‚ (1) (0) ‚ ‚x − x ‚ 1−K ∞ Método de Newton Otros métodos Puntos fijos El problema de búsqueda de raı́ces es equivalente al problema de búsqueda de puntos fijos: Resolver el sistema (5) equivale a resolver el problema de punto fijo G(x) = x f(x) = 0 ⇐⇒ G(x) := x − f(x) = x con G : R3 → R3 dada por G(x) = (g1 (x), g2 (x), g3 (x))T donde Consideremos el sistema no lineal 1 3x1 − cos(x2 x3 ) − = 0 2 x21 − 81(x2 + 0,1)2 + sen x3 + 1,06 = 0 10π − 3 e−x1 x2 + 20x3 + =0 3 que es equivalente a x1 = x2 = x3 = 1 1 cos(x2 x3 ) + 3 6 1p 2 x1 + sen x3 + 1,06 − 0,1 9 10π − 3 1 −x1 x2 − 20 e − 60 1 1 cos(x2 x3 ) + 3 6 q 1 g2 (x) = x21 + sen x3 + 1,06 − 0,1 9 10π − 3 1 g3 (x) = − e−x1 x2 − 20 60 g1 (x) = (5) (6) Aplicando el teorema (2.2) a la función G definida por (7) en el dominio ⇐⇒ x = G(x) D = {x = (x1 , x2 , x3 )T : −1 ≤ xi ≤ 1 para i = 1, 2, 3} se concluye que G posee un único punto fijo en D. Introducción Puntos fijos Método de Newton Otros métodos Puntos fijos Introducción Puntos fijos Método de Newton Otros métodos Derivación Dada f : Rn → Rn , el método pretende hallar raices de f(x) = 0 La iteración (4) del teorema (2.2) dada por (n) x1 (n) x2 (n) x3 “ ” 1 1 (n−1) (n−1) cos x2 x3 + 3 6 r“ ”2 1 (n−1) (n−1) = x1 + sen x3 + 1,06 − 0,1 9 (n−1) 10π − 3 1 −x(n−1) x2 1 =− e − 20 60 El método se basa en linealizar a f en torno a un punto x0 próximo a p: = 0 = f(p) ≈ f(x0 ) + Df(x0 )(p − x0 ) (7) donde 2 converge para todo x Introducción (0) ∈D ∂f1 (x0 ) ∂x1 Puntos fijos Método de Newton Otros métodos Derivación Introducción ··· .. . ··· .. . ∂fn (x0 ) ∂x1 6 Df(x0 ) = 6 4 Puntos fijos ∂f1 (x0 ) ∂xn 3 2 7 .. 7 5 . ∂fn (x ) 0 ∂xn y 6 p−x0 = 4 n×n Método de Newton 3 p 1 − x1 7 .. 5 . p n − xn Otros métodos Derivación Como una primera aproximación elegimos x1 próximo a p que satisfaga A la iteración (8) se le conoce como método de newton para sistemas no lineales. 0 = f(x0 ) + Df(x0 )(x1 − x0 ) El método requiere calcular e invertir la matriz jacobiana Df(x) en cada cada iteración. Si la matriz jacobiana Df(x0 ) es no singular, obtenemos para x1 , En la práctica se evita el cálculo de la inversa Df(x)−1 : x1 = x0 − (Df)−1 (x0 )f(x0 ) “ ””−1 “ ” “ Df x(k−1) f x(k−1) = y equivale a De esta manera x1 es una mejor aproximación al cero p y repitiendo el procedimiento obtenemos x(k) Introducción ””−1 “ ” = x(k−1) − Df x(k−1) f x(k−1) “ Puntos fijos “ Método de Newton “ “ ”” “ ” Df x(k−1) y = f x(k−1) (8) Otros métodos Algoritmo del método de Newton Para cada iteración se resuelve el sistema (9) y la solución y se sustituye en (8) Introducción Puntos fijos Otros métodos Sea D ⊆ Rn abierto y D0 un subconjunto convexo de Rn tal que D0 ⊆ D y f : D → Rn dos veces diferenciable en D0 y continua en D. Suponga que existan constantes positivas α, β y γ tales que h := αβγ/2 < 1 y // n es el número de ecuaciones, x0 = (x1 , . . . , xn ) es la // aproximación incial // TOL es la tolerancia y M es el número máximo de iteraciones. i = 1; 1 2 3 mientras i ≤ M hacer kDf(x) − Df(y)k ≤ γ kx − yk para todo x, y ∈ C0 ‚ ‚ Df(x)−1 existe y satisface ‚Df(x)−1 ‚ ≤ β para todo x ∈ C0 ‚ ‚ ‚Df(x0 )−1 ‚ ≤ α Entonces Calcule f (x0 ) y Df (x0 ); 1 La iteración Resolver el sistema lineal nxn Df (x0 )y = −f (x0 ); “ “ ””−1 “ ” x(k+1) = x(k) − Df x(k) f x(k) , x0 = x0 + y; si kyk < T OL entonces parar; // procedimiento exitoso fin si x(k) ∈ Br (x0 ) := {x : kx − x0 k < r} ⊆ C0 , i = i + 1; Escribir ’Número máximo de iteraciones excedido’ parar; Método de Newton k = 0, 1, . . . está bien definida y satisface fin mientras Puntos fijos Método de Newton Teorema 3.1 (Convergencia de Newton) Leer x0 , n, T OL y M ; Introducción (9) Otros métodos Puntos fijos con 2 x(k) → p cuando k → ∞ con p ∈ Br (x0 ) y f(p) = 0. 3 Para todo k ≥ 0, Introducción r := α/(1 − h) k ‚ ‚ h2 −1 ‚ (k) ‚ ‚x − p‚ ≤ α 1 − h2k Puntos fijos Método de Newton Otros métodos Puntos fijos Consideremos de nuevo el sistema no lineal (5) ya visto: 1 =0 2 2 2 x1 − 81(x2 + 0,1) + sen x3 + 1,06 = 0 10π − 3 e−x1 x2 + 20x3 + =0 3 Por el teorema (2.2), el problema tiene una solución en el dominio 3x1 − cos(x2 x3 ) − D = {x = (x1 , x2 , x3 )T : −1 ≤ xi ≤ 1 para i = 1, 2, 3} Expresamos Newton “ “ ””−1 “ ” x(k) = x(k−1) − Df x(k−1) f x(k−1) | {z } Aplicamos el método de Newton a y(k−1) f(x) = 0 como con f : R3 → R3 dada por f(x) = (f1 (x), f2 (x), f3 (x))T donde 1 f1 (x) = 3x1 − cos(x2 x3 ) − 2 2 2 f2 (x) = x1 − 81(x2 + 0,1) + sen x3 + 1,06 10π − 3 f3 (x) = e−x1 x2 + 20x3 + 3 x(k) = x(k−1) + y(k−1) donde y (k−1) es solución del sistema lineal “ ” “ ” Df x(k−1) y(k−1) = −f x(k−1) (10) Introducción Puntos fijos Método de Newton Otros métodos Puntos fijos Introducción Puntos fijos Método de Newton Otros métodos Observaciones Representación geométrica de las soluciones de un sistema 2 × 2: La matriz jacobiana para el sistema está dada por 2 3 2x1 −x2 e−x1 x2 Jf(x) = 4 x3 sen x2 x3 −162(x2 + 0,1) −x1 e−x1 x2 3 x2 sen x2 x3 5 cos x3 20 f (x, y) = 0 g(x, y) = 0 El programa newtonsys.c implementa el método de Newton. Se utilizó como punto de partida x0 = (0.1, 0.1, −0.1)T . n 1 2 3 4 5 x1 0.49986967 0.50001424 0.50000011 0.50000000 0.50000000 x2 0.01946685 0.00158859 0.00001244 0.00000000 0.00000000 x3 -0.52152047 -0.52355696 -0.52359845 -0.52359878 -0.52359878 Error 4.215205e-01 1.787826e-02 1.576147e-03 1.244401e-05 7.757857e-10 Las soluciones que buscamos (si existen) son los puntos de intersección de las curvas de nivel f = 0 y g = 0. f y g son funciones arbitrarias que en general no tienen ninguna relación. Métodos generales para más de una ecuación no son “buenos”. Introducción Puntos fijos Método de Newton Otros métodos Método de Newton Introducción Puntos fijos Método de Newton Otros métodos Método de la secante Dada f : Rn → Rn , los métodos pretenden hallar las posibles raices de Para el caso unidimensional n = 1, la iteración (11) está dada por f(x) = 0 xk+1 = xk − f (xk ) f 0 (xk ) (12) El método de Newton está dado por Con el fin de evitar usar la derivada aproximamos “ “ ””−1 “ ” x(k+1) = x(k) − Df x(k) f x(k) . (11) f 0 (xk ) ≈ Desventajas: f (xk ) − f (xk−1 ) xk − xk−1 (13) El jacobiano Df(x(k) ) debe evaluarse en cada iteración. La iteración (12) se convierte en el método de la secante: La función f(x(k) ) debe evaluarse en cada iteración. El sistema lineal Df(x(k) )y = f(x(k) ) debe se resuelto en cada iteración. Introducción Puntos fijos Método de Newton Otros métodos Método de Broyden xk+1 = xk − Introducción Puntos fijos f (xk )(xk − xk−1 ) f (xk ) − f (xk−1 ) Método de Newton (14) Otros métodos Método de Broyden El método de Broyden es una generalización del método de la secante para sistemas no lineales. Tenemos entonces que Ak+1 s(k) = y(k) La aproximación en diferencias finitas (16) donde 0 f (xk )(xk+1 − xk ) ≈ f (xk+1 ) − f (xk ) “ ” s(k) = x(k+1) − x(k) es sustituida por “ ”“ ” “ ” “ ” Df x(k) x(k+1) − x(k) = f x(k+1) − f x(k) (15) El método asume que Ak y Ak+1 coinciden en el complemento ortogonal a s(k) : hp , s(k) i := pt · s(k) = 0 “ ” “ ” “ ” Ak+1 x(k+1) − x(k) = f x(k+1) − f x(k) | {z } | {z } Introducción Puntos fijos “ ” “ ” y(k) = f x(k+1) − f x(k) La iteración (16) genera “nueva información” sólo en la dirección del vector s(k) . No se dispone de información sobre el cambio de Ak en el complemento ortogonal a s(k) . “ ” El método consiste en aproximar el jacobiano Df x(k) por una matriz no singular A que genere una aproximación A k k+1 del “ ” jacobiano Df x(k+1) : s(k) y =⇒ Ak+1 p = Ak p (17) y(k) Método de Newton Otros métodos Método de Broyden Introducción Puntos fijos Método de Newton Otros métodos Método de Broyden La condición (17) implica que ¿Cómo determinar a v ? Si p ⊥ s(k) , dim ker(Ak+1 − Ak ) = n − 1 y por tanto ` ´ ` ´ Ak+1 = Ak + uvt =⇒ Ak+1 p = Ak p + uvt p =⇒ uvt p = 0 rango(Ak+1 − Ak ) = n − dim ker(Ak+1 − Ak ) = 1 Existe un u 6= 0 tal que luego Ak+1 − Ak = [v1 u|v2 u| · · · |vn u] = uvt p ⊥ s(k) =⇒ Ak+1 es una actualización (corrección) del jacobiano Ak dada por Ak+1 = Ak + uvt El producto uvt en (18) es asociativo: ` t´ ` ´ uv x = vt x u ` t´ uv p = hv , piu = 0 =⇒ hv , pi = 0 =⇒ v = s(k) y por tanto (18) “ ”t Ak+1 = Ak + u s(k) Introducción Puntos fijos Método de Newton Otros métodos Método de Broyden Introducción Puntos fijos Método de Newton Otros métodos Método de Broyden ¿Cómo determinar a u ? El método de Broyden está dado por la iteración “ ”t Ak+1 = Ak + u s(k) “ ” k x(k+1) = x(k) − A−1 , k f x (19) implica k = 0, 1, . . . (21) donde Ak+1 s(k) = y(k) “ ”t Ak s + u s(k) s(k) = y(k) D E Ak s(k) + s(k) , s(k) u = y(k) ‚ ‚ ‚ ‚2 Ak s(k) + ‚s(k) ‚ u = y(k) Ak = Ak−1 + (k) y(k−1) − Ak−1 s(k−1) “ (k−1) ”t s 2 ks(k−1) k2 (22) Para la iteración inicial en (22) se toma A0 = Df(x0 ) o un estimativo en diferencias finitas del jacobiano en x0 . 2 u= y(k) − Ak s(k) 2 ks(k) k2 ` ´ En cada iteración hay que resolver el sistema Ak s = −f xk . (20) La convergencia local del método de Broyden no es cuadrática como con Newton. De (19) y (20) obtenemos la “actualización” de Broyden Ak+1 = Ak + Introducción Puntos fijos y(k) − Ak s(k) “ (k) ”t s 2 ks(k) k2 Método de Newton El tiempo por iteración en Broyden puede ser menor que en Newton porque se evita evaluar el jacobiano Df(x0 ). Otros métodos Método de Broyden Introducción Puntos fijos Método de Newton Otros métodos Método de Broyden Con el fin de evitar A−1 en cada iteración, el método se puede k modificar por medio de la fórmula matricial de Sherman-Morrison: Desarrollamos (25): Si A es una matriz no singular y x y y son vectores columna, entonces A + xyt es no singular si yt A−1 x 6= −1 y ` ´−1 A−1 xyt A−1 A + xyt = A−1 − 1 + yt A−1 x −1 A−1 k = Ak−1 − A 1 + yt A−1 k−1 x y(k−1) − Ak−1 s(k−1) ` (k−1) ´t −1 s Ak−1 2 ks(k−1) k2 ´t −1 y(k−1) − Ak−1 s(k−1) ` 1 + s(k−1) Ak−1 2 ks(k−1) k2 “ ”` ´ (k−1) (k−1) (k−1) t −1 A−1 y − s s Ak−1 k−1 = A−1 ` ´t −1 k−1 − 2 2 ks(k−1) k2 + s(k−1) Ak−1 y(k−1) − ks(k−1) k2 A−1 k−1 (23) = A−1 k−1 − Aplicamos la fórmula (23) a la iteración (22) Ak = Ak−1 + | {z } t −1 A−1 k−1 xy Ak−1 y(k−1) − Ak−1 s(k−1) ` (k−1) ´t 2 |s {z } ks(k−1) k2 y | {z } (24) x y por tanto y por tanto t −1 ` −1 A−1 k−1 xy Ak−1 t ´−1 A−1 = A−1 k = Ak−1 + xy k−1 − 1 + yt A−1 k−1 x (25) −1 A−1 k = Ak−1 − “ ”` ´t (k−1) A−1 − s(k−1) s(k−1) A−1 k−1 y k−1 ` ´t −1 s(k−1) Ak−1 y(k−1) (26) con x y y dados en (24). Introducción Puntos fijos Método de Newton Otros métodos Método de Broyden Introducción Puntos fijos Método de Newton Otros métodos Método de Broyden Consideremos de nuevo el sistema no lineal (5) ya visto: 1 =0 2 − 81(x2 + 0,1) + sen x3 + 1,06 = 0 10π − 3 e−x1 x2 + 20x3 + =0 3 3x1 − cos(x2 x3 ) − x21 2 Para la iteración inicial se utilizó A0 = Jf(x0 ) con x0 = (0.1, 0.1, −0.1)T . (27) Los resultados se muestran a continuación cuya matriz jacobiana está dada por 2 3 2x1 Jf(x) = 4 −x2 e−x1 x2 x3 sen x2 x3 −162(x2 + 0,1) −x1 e−x1 x2 n 1 2 3 4 5 3 x2 sen x2 x3 5 cos x3 20 x1 0.49986967 0.49998638 0.50000660 0.50000033 0.50000000 x2 0.01946685 0.00873784 0.00086727 0.00003953 0.00000019 x3 -0.52152047 -0.52317457 -0.52357234 -0.52359769 -0.52359877 Error 5.865670e-01 1.085640e-02 7.880637e-03 8.281569e-04 3.935104e-05 El programa broyden.c implementa el método de Broyden. Se utilizó como punto de partida x0 = (0.1, 0.1, −0.1)T . Introducción Puntos fijos Método de Newton Otros métodos GSL - GNU Scientific Library Introducción Puntos fijos Método de Newton Otros métodos GSL - Multidimensional Root-Finding Biblioteca escrita en C, destinada a cálculos numéricos en matemáticas aplicadas. Contiene “solvers” para la solución de sistemas no lineales de n ecuaciones con n incógnitas. Las librerı́as proporcionan una gran variedad de rutinas que incluyen Las librerı́as proporcionan una gran variedad de rutinas que incluyen Números complejos Funciones especiales Permutaciones Autovalores Cuadratura Interpolación Constantes fı́sicas Ceros de sistemas no lineales Ecuaciones diferenciales Polinomios de Chebyshev Mı́nimos cuadrados Consideraremos la librerı́a Multidimensional Root-Finding: http://www.gnu.org/software/gsl/manual/html node/MultidimensionalRoot 002dFinding.html Inicializar el solver s, para el algoritmo T. Acutalizar s por medio de la iteración del algoritmo T. Evaluar la convergencia de s y repetir la iteración hasta que sea necesario. En algunos problemas no se dispone del jacobiano del sistema o es costoso evaluarlo y por esto los algoritmos incluidos en las librerı́as se clasifican en dos estructuras: gsl multiroot fdfsolver: el usuario debe ingresar la función y sus derivadas. gsl multiroot fsolver: el procedimiento utiliza sólo la función, el algoritmo estima (aproxima) el jacobiano. Introducción Puntos fijos Método de Newton Otros métodos GSL - Multidimensional Root-Finding: algoritmos sin derivadas “Solvers” que no requieren de derivadas (el jacobiano se aproxima por medio de diferencias finitas): Introducción Puntos fijos Método de Newton Otros métodos GSL - Multidimensional Root-Finding: algoritmos sin derivadas El programa sistemanl.c implementa los diversos “solvers” ya mencionados. Se utilizó como punto de partida x0 = (0.1, 0.1, −0.1)T . Para compilarlo: gsl multiroot fsolver hybrids: aproxima por diferencias finitas el jacobiano. gsl multiroot fsolver hybrid: aproxima por diferencias finitas el jacobiano sin escalamiento. gsl multiroot fsolver dnewton: utiliza el método de Newton y el jacobiano lo aproxima por diferencias finitas. gsl multiroot fsolver broyden: implementa el método de Broyden En la primera iteración, la inversa del jacobiano es estimada utilizando diferencias finitas. $ gcc -o sistemanl sistemanl.c -lgsl -lgslcblas Los resultados obtenidos utilizando gsl multiroot fsolver hybrids al sistema (27) se muestran a continuación