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

Documentos relacionados