Está en la página 1de 77

CATEDRA 0

Facultad de Ingeniería de Minas, Geología y Civil


Departamento académico de ingeniería de minas y civil

METODOS
NUMERICOS

Ingeniería Civil

ING. CRISTIAN CASTRO P.


Capitulo VI
Sistema de Ecuaciones
Algebraicas No Lineales

ING. CRISTIAN CASTRO P.


Agenda
• Planteamiento del problema
• Método de Punto Fijo
• Método de Newton
• Variantes del método de Newton
• Evaluación diferida del jacobiano
• Aproximación por diferencias finitas
• Newton unidimensional
• Métodos cuasi-Newton (Broyden)
Introduccion
• Se pretende que al final de la exposición el estudiante pueda
reconocer los sistemas de ecuaciones no lineales y pueda
resolverlos por medio de adaptaciones a los métodos Newton-
Raphson e Iteración de Punto Fijo

f1 ( x1 , x2 ..........., xn )  0
f 2 ( x1 , x2 ..........., xn )  0
• La solución de este sistema
. consta de valores xi que
simultáneamente hacen que
. todas las ecuaciones sean
. iguales a cero

f n ( x1 , x2 ..........., xn )  0
Teoría de sistemas de Ecuaciones
No lineales
• La forma general de un sistema de ecuaciones no lineales es:
f1(x1, x2 x3, …, xn) = 0
f2(x1, x2 x3, …, xn) = 0
f3(x1, x2 x3, …, xn) = 0
....................................
fn(x1, x2 x3, …, xn) = 0

Definiendo una función F


F(x1, x2 x3, …, xn) = [f1(x1, x2 x3, …, xn),f2(x1, x2 x3, …, xn),
f3(x1, x2 x3, …, xn) , fn(x1, x2 x3, …, xn)]

Usando una notacion vectorial para representar las variables X1,X2,…,Xn ).


El sistema puede representarse por F(x)=0
La solución a este sistema es el vector X=[x1, x2 x3, …, xn]
que hace que simultaneamente todas las ecuaciones sean igual a 0.
Teoría de sistemas de Ecuaciones
No lineales
Métodos de Solución :
• Método de Iteración de Punto Fijo para sistemas de
ecuaciones no lineales (Método de punto fijo multi
variable).

• Método de Newton para sistemas de ecuaciones no


lineales.
SISTEMAS DE ECUACIONES NO LINEALES
SISTEMAS DE ECUACIONES NO LINEALES
y

f(x, y)=0

y*

g(x, y)=0

x* x
SISTEMA DE ECUACIONES NO LINEALES

10

x  xy  10
2
6

4
(2, 3)
y  3xy 2  57
2

0
1 1.5 2 2.5 3 3.5 4 4.5 5

-2
Notación
• Escalar
f1 ( x1 , x 2 ,..., x n )  0 
f2 ( x1 , x 2 ,..., x n )  0 fi : IR n  IR

  ( x1 ,..., x n )  fi ( x1 ,..., x n )
f n ( x1 , x 2 ,..., x n )  0
• Vectorial
 F : IR n  IR n
F( x )  0 
 x  ( x 1 ,..., x n )  ( f 1 ( x ),... f n ( x ))
Resolución iterativa
• x(0) estimación inicial de la solución

• Iteraciones: x(1), x(2), …, x(k)

• Criterio de convergencia
• | x(k+1)  x(k) | < tol

• Criterio de parada
• k > maxiter
Esquema del algoritmo
• Entrada: f, x0, tol, maxiter
• Proceso
• Inicializar incr, iter
• Mientras incr > tol & iter < maxiter
• Obtener x
• incr = norm(x  x0)
• Actualizar x0, iter
• Salida: x, iter, incr
• Si incr > tol no converge
Método de Iteración de Punto fijo para
Sistemas de Ecuaciones no Lineales

Anteriormente se desarrollo el método de iteración de


punto fijo para resolver la ecuación f(x)=0 transfor-
mando esta ecuación en una ecuación de la forma
x= g(x),
usando el criterio de convergencia
|g’(x)|<1 en el intervalo [x1,x2]
donde g(x) pertenece [x1,x2]
para x que pertenece a [x1,x2]
Método de Iteración de Punto fijo para
Sistemas de Ecuaciones no Lineales
Para el caso de un conjunto de Ecuaciones No lineales
utilizaremos un procedimiento similar extendiéndolo a
todas las ecuaciones, usando un criterio de convergencia:
Una condición suficiente aunque no necesaria,
para asegurar la convergencia es que
g1 g 2 g1 g 2
| | | | M  1; | | | | M  1;
x1 x1 x2 x2

Para todos los puntos (x1,x2) de la región del


plano que contiene todos los valores (x1k, x2k )
y la raíz buscada.
Método de Punto Fijo
• Punto fijo
F( x )  0  x  G ( x)
• Estimación inicial

x ( 0)  ( x1( 0) ,..., x (n0) )


• Iteraciones
( k 1)
• Criterio de parada
x  G ( x (k)
)

x ( k 1)  x ( k )  tol
Algoritmo de Punto Fijo
function [x,iter,incr] = pfijo(g,x0,tol,
maxiter)
iter = 0;
incr = tol + 1;
while incr > tol & iter < maxiter
x = feval(g,x0);
incr = norm(x - x0);
iter = iter + 1;
x0 = x;
end
if incr > tol, disp(‘No converge’), end
MÉTODO DE PUNTO FIJO EN
SISTEMAS DE ECUACIONES NO LINEALES

1. Considera la intersección de dos funciones no lineales f(x, y)


=0 y g(x, y)=0.
2. La intersección de las curvas f(x, y)=0 y g(x, y)=0 nos da la
raiz (xr, yr).
3. El método consiste en obtener las funciones que tengan las
mismas raices (xr, yr):
x-F(x, y) = 0
y-G(x, y) = 0
4. Considerar un valor inicial (x0, y0), como aproximación a la
raíz, evaluar: x1=F(x0, y0) y1=G(x0, y0)
5. El proceso se repite n veces hasta tener valores muy cercano
s a las raíces.
Ejemplo
• Sistema no lineal
3x 1  cos( x 2 x 3 )  1 2  0

x 1  81( x 2  0.1)  sen( x 3  1.06  0
2 2

 x1 x 2 
e  20x 3  10 / 3  1  0
• Problema de Punto Fijo

x 1  cos( x 2 x 3 ) / 3  1 6 

x 2  1 9 x 1  sen x 3  1.06  0.1
2

 x1 x 2 
x 3  20 (1  e
1
)/6 
• Punto Fijo con desplazamientos simultáneos
x 1( k 1)  cos( x 2( k ) x 3( k ) ) / 3  1
6 


x 2( k 1)  1
9 x 1   sen x 3  1.06  0.1
(k) 2 (k)


x 3( k 1)  1
20 
1  exp  x 1 x 2    / 6 
(k) (k)

• Punto Fijo con desplazamientos sucesivos
x 1( k 1)  cos( x (2k ) x (3k ) ) / 3  1
6 


x (2k 1)  1
9  x 1   sen x 3  1.06  0.1
( k  1) 2 (k)


x (3k 1)  1
20  1  exp   x 1 x 2    / 6 
( k  1) ( k  1)

Código de la función

function y=f(x)
% Función para el método de punto
% fijo con desplazamientos simultáneos

y(1) = cos(x(2)*x(3))/3 + 1/6;


y(2) = sqrt(x(1)^2+sin(x(3))+1.06)/9-0.1;
y(3) = (1-exp(-x(1)*x(2)))/20 - pi/6;
Ejemplo 1: Desp. simultáneos

Iter x1(k) x2(k) x3(k)


0 0.10000000 0.10000000 -0.10000000
1 0.49998333 0.00944115 -0.52310127
2 0.49999593 0.00002557 -0.52336331
3 0.5 0.00001234 -0.52359814
4 0.5 3.41679E8 -0.52359847
5 0.5 1.64870 E8 -0.52359877
Código de la función

function y=f(x)
% Función para el método de punto
% fijo con desplazamientos sucesivos

y(1) = cos(x(2)*x(3))/3 + 1/6;


y(2) = sqrt(y(1)^2+sin(x(3))+1.06)/9-0.1;
y(3) = (1-exp(-y(1)*y(2)))/20 - pi/6;
Ejemplo 1: Desp. sucesivos

Iter x1(k) x2(k) x3(k)


0 0.10000000 0.10000000 -0.10000000
1 0.49998333 0.02222979 -0.52304613
2 0.49997747 0.00002815 -0.52359807
3 0.5 3.762202E-8 -0.52359877
4 0.5 5.028E-11 -0.5235987756
MÉTODO DEL PUNTO FIJO EN
SISTEMAS DE ECUACIONES NO LINEALES

x 2  xy  10 y  3xy 2  57
iteració
n
xi yi erri
xn=10/(x+y)
yn=((57-y)/(3x))^(1/2) 1 1.5 3.5 ---
err=sqrt((xn-x)^2+(yn-y)^2) 2 2.0000 3.4480 0.5027

3 1.8355 2.9875 0.4890

4 2.0734 3.1319 0.2782

5 1.9211 2.9428 0.2427

6 2.0559 3.0626 0.1803

7 1.9537 2.9572 0.1468

8 2.0363 3.0365 0.1145

9 1.9713 2.9721 0.0915

x=2 y=3
MÉTODO DEL PUNTO FIJO EN
SISTEMAS DE ECUACIONES NO LINEALES

x 2  xy  10 y  3xy 2  57
iteració
n
xi yi erri
Variante Seidel
xn=10/(x+y) 1 1.5 3.5 ---
yn=((57-y)/(3xn))^(1/2) 2 2.0000 2.9861 0.7170
err=sqrt((xn-x)^2+(yn-y)^2) 3 2.0056 2.9962 0.0116

4 1.9993 3.0006 0.0077


Converge mas rápido!!!
5 2.0000 3.0000 0.0010

x=2 y=3
MÉTODO DEL PUNTO FIJO EN
SISTEMAS DE ECUACIONES NO LINEALES
Sin embargo, con el método del punto fijo, la convergencia depende
de la manera en que se formulen las ecuaciones de recurrencia y
de haber elegido valores iniciales lo bastante cercanos a la solución
En las dos formulaciones siguientes el método diverge.
x = (57 - y)/3y2 y = (10 - x2)/x

iteración xi yi

1 1.5 3.5

2 1.45578231 5.166666667

3 0.64724246 5.413376566

x = (10 - x2)/y y = 57 - 3xy2


iteración xi yi

1 1.5 3.5

2 2.21428571 -24.375

3 -0.20910518 429.713648
Método de Iteración de Punto fijo para
sistemas de Ecuaciones no Lineales
Ejemplo
Encuentre una solución del sistema de ecuaciones no lineales

f 1( x1, x 2)  x12  10 x1  x 2 2  8  0 

f 2( x1, x 2)  x1 x 2  x1  10 x 2  8  0
2

Solución
Con el despeje de X1 del termino (-10X1) en la primera ecuación y de X2
del termino de (-10X2) en la segunda ecuación resulta.

X1=(X12+X22 + 8 )/ 10

X2=(X1X22+X1 + 8 ) / 10
Por medio de Iteración por desplazamientos simultáneos
x1k+1 = g1(x1k , x2k )
x2k+1 = g2(x1k , x2k )

Con los valores iniciales x10 = 0, x20 = 0 se inicia el proceso


Primera iteración
X11=(02+02 + 8 )/ 10 = 0.8

X21=(0(0)2 + 0 + 8 ) / 10 = 0.8
Segunda iteración
X12=((0.8)2+(0.8)2 + 8)/ 10 = 0.928

X22=(0.8(0.8)2 + 0.8 + 8 ) / 10 = 0.9312

Al continuar el proceso iterativo, se encuentra la siguient


e sucesión de valores
k
X1k X2k

0 0.00000 0.00000

1 0.80000 0.80000

2 0.92800 0.93120
k
X1k X2k
3 0.97283 0.97327

4 0.98937 0.98944

5 0.99578 0.99579

6 0.99832 0.99832

7 0.99933 0.99933

8 0.99973 0.99973

9 0.99989 0.99989

10 0.99996 0.99996

11 0.99998 0.99998

12 0.99999 0.99999

13 1.00000 1.00000
• Cualquiera que sea el sistema que se va a resolver
con este método, puede aumentarse la velocidad de
convergencia usando desplazamientos sucesivos
en lugar de los desplazamientos simultáneos es
decir se itera mediante
x1k+1 = g1(x1k , x2k )
x2k+1 = g2(x1k+1 , x2k )
Como en el caso lineal (Jacobi y Gauss-Seidel), si
la iteración por desplazamientos simultáneos
diverge generalmente el método por desplazamientos
sucesivos divergiría mas rápido; es decir se detecta
mas rapido la divergencia, por lo que en general se re
comienda el uso de desplazamientos sucesivos en
lugar de desplazamientos simultáneos .
Un sistema de ecuaciones no lineales
con dos incógnitas “x” y “y”

u ( x , y )  x  xy  10  0
2

v ( x , y )  y  3 xy  57  0 2

Así la solución de este sistema son los valores de ( x , y ) que


hacen a las funciones u y v iguales a cero.
Para resolver estas ecuaciones se utilizan extensiones de los
métodos abiertos antes vistos.
Resolución del sistema de ecuaciones
no lineales
• Utilizando la iteración de punto fijo.

La aproximación de la iteración de punto fijo, vista


anteriormente, se puede modificar para resolver dos
ecuaciones simultáneas no lineales

Las modificaciones y las desventajas de este métod


o se ilustra en el siguiente ejemplo.
Ejemplo
Sistema de ecuaciones no lineales.
Valores iniciales x=1.5 y=3.5.
La solución es x=2 y=3
u ( x, y )  x 2  xy  10  0
v ( x, y )  y  3 xy 2  57  0
Solución
10  x i
2
y i  1  57  3 x i y i
2
x i 1 
yi
Con base en los valores iniciales
10  (1 . 5 ) 2
x   2 . 21429
3 .5

y  57  3 ( 2 . 21429 )  ( 3 . 5 ) 2   24 . 37516

La aproximación diverge, pero si se cambia la formulación,


los resultados difieren.
x 10  xy Como se observa en esta ocasión
y
57  y la aproximación no diverge.
3x
Evaluando
x 10  1 . 5  3 . 5  2 . 17945
57  3 . 5
y  2 . 86051
3 2 . 17945 

2 º Iteración
x 10  2 . 17945  2 . 86051  1 . 94053
57  2 . 86051
y  3 . 04955
3 1 . 94053 

3 º Iteración
E a _ x  3 . 96 % Et _ x  1.02 %
x 10  1 . 94053  3 . 04955  2 . 02046
E a _ y  2 . 22 % Et _ y  0.55 %
57  3 . 04955
y  2 . 98340
3 2 . 02046 
Problema Propuesto

• Resuelva el sistema del ejemplo anterior utilizando


el método de punto fijo para sistemas no lineales
con desplazamientos sucesivos.
f 1( x1, x 2)  x12  10 x1  x 2 2  8  0 

f 2( x1, x 2)  x1 x 2  x1  10 x 2  8  0
2
MÉTODO DE PUNTO FIJO EN
SISTEMAS DE ECUACIONES NO LINEALES
MÉTODO DE PUNTO FIJO EN
SISTEMAS DE ECUACIONES NO LINEALES
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
Método de Newton para sistemas
de ecuaciones no lineales
• Todas las ecuaciones deben de ser cero en las raíces
• Se define la matriz J(x) como:
f1,i f1,i f1,i
x1 x2 ..........x
n

J(x) = f 2,i f 2,i f 2,i


..........
x1 x2 xn
.................................
f n ,i f n ,i
.................... f n ,i
..........
x1 x2 xn
Método de Newton para sistemas de
ecuaciones no lineales
• Entonces podemos escribir
F(x)+XiJ(x)=Xi+1 J(x)
• Dividiendo J(x) y reacomodando:
Xi+1= Xi-J(x)-1 F(x)
Esta es la Ecuación de Newton para sistemas No Lineales
Puesto que en cada iteración se tiene que calcular la inver
sa de la matriz J(x)y esto implica un considerable esfuerzo
de cálculo , para evitar este paso se utiliza el artificio de en
contrar un vector Y que satisfaga
J(x)Y= -F(x)
• Se establece un esquema iterativo donde cada nueva aproxi-
mación se obtiene como:
X(k+1) = y +x(k)
Se resuelve el sistema tomando como valores iniciales
Método de Newton
• Sistema de ecuaciones
 F : IR n  IR n
F( x )  0 
 x  ( x 1 ,..., x n )  ( f 1 ( x ),... f n ( x ))
• Aproximación por el plano tangente
F( x)  F( x ( 0) )  DF( x ( 0) )  ( x  x ( 0) )

• Paso de Newton
x (1)  x ( 0)  DF( x ( 0) ) 1  F( x ( 0) )
Algoritmo de Newton
function [x,iter,incr] = newton(f,x,tol, m
axiter)
iter = 0; incr = tol+1;
while incr > tol & iter < maxiter
[fx,dfx] = feval(f,x);
delta = - dfx \ fx;
El archivo f.m
incr = norm(delta);
evalúa la función
iter = iter+1; y el jacobiano
x = x + delta;
end
if incr>tol, disp(‘No converge’), end
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
No se puede mostrar la imagen en este momento.

u(x, y)

y1

v(x, y)

x1 x
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
• Este procedimiento corresponde, analíticamente, a extender
el uso de la derivada, ahora para calcular la intersección
entre dos funciones no lineales.
• Al igual que para una sola ecuación, el cálculo se basa en
la expansión de la serie de Taylor de primer orden, ahora de
múltiples variables, para considerar la contribución de más
de una variable independiente en la determinación de la raíz.
• Para dos variables, la serie de Taylor de primer orden se
escribe, para cada ecuación no lineal:

ui ui
ui1  ui  (xi1  xi )  (yi1  yi )
x y
v i v i
v i1  v i  (xi1  xi )  (yi1  yi )
x y
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
• Pero ui+1 = vi+1 = 0 :

ui ui ui ui


ui  xi1  xi  yi1  yi  0
x x y y
v i v i v i v i
vi  xi1  xi  yi1  yi  0
x x y y
• Que reescribiendo en el orden conveniente:
ui ui ui ui
xi1  yi1  ui  xi  yi
x y x y
v i v i v i v i
xi1  yi1  v i  xi  yi
x y x y
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
• Y cuya solución es:
v i ui ui v i
ui  vi vi  ui
y y
xi1  xi  yi1  yi  x x
J J
• Donde J es el determinante jacobiano del sistema es:

 ui v i 
 x x 
J 
 ui v i 
 y y 

MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES

x2 + xy - 10 = 0 y + 3xy2 - 57 = 0

iteración xi yi ui vi ux uy vx vy Jacobiano

1 1.5 3.5 -2.5 1.625 6.5 1.5 36.75 32.5 156.125

2 2.03602882 2.8438751 -0.064374959 -4.756208497 6.915932746 2.036028823 24.26287675 35.74127004 197.7843034

3 1.99870061 3.002288563 -0.004519896 0.04957115 6.999689781 1.998700609 27.04120985 37.00405588 204.9696292

4 1.99999998 2.999999413 -1.28609E-06 -2.21399E-05 6.999999381 1.999999984 26.99998944 36.99999267 204.9999473

5 2 3 0 2.23821E-12 7 2 27 37 205

x=2
y=3
MÉTODO DE NEWTON RAPHSON EN
SISTEMAS DE ECUACIONES NO LINEALES
Sistem a de ecuaciones lineales por el m étodo de New ton Raphson

4.5

3.5

3
y
iteraciones

2.5

2
x
1.5

0.5
x 2  xy  10 y  3xy 2  57
0
1 2 3 4 5 6
convergencia
Resolución del sistema de ecuaciones
no lineales
Utilizando Newton-Raphson.
Este cálculo se basa en la expansión de la serie de Taylor
de primer orden y con ella se obtiene la ecuación para este
método.
f ( xi )
f ( xi 1 )  f ( xi )  ( xi 1  xi ) f ( xi )
'
 xi 1  xi 
f ' ( xi )

La serie de Taylor de primer orden para el caso de dos variables.


u i u i
u i 1  u i  ( x i 1  x i )  ( y i 1  y i )
x y
v v
v i 1  v i  ( x i 1  x i ) i  ( y i 1  y i ) i
x y
Por medio de manipulación matemática y la regla de Cramer.
vi ui
ui  vi
y y
x i 1  xi 
u i vi u i vi

x y y x

ui vi
vi  ui
y i 1  yi  x x
u i vi u i vi

x y y x

El denominador de ambas ecuaciones es conocido como


el determinante Jacobiano del sistema.
u ( x, y )  x 2  xy  10  0
v ( x, y )  y  3 xy 2  57  0

Solución.
u 0
 2 x  y  2 (1 . 5 )  3 . 5  6 . 5
x
u 0
 x  1 .5
y
v0
 3 y 2  3 ( 3 . 5 ) 2  36 . 75
x
v0
 1  6 xy  1  6 (1 . 5 )( 3 . 5 )  32 . 5
y
El Jacobiano para la primera iteración.
(6.5)(32.5)  (1.5)(36.75)  156.125
Evaluando en las funciones.
u0  (1.5) 2  1.5(3.5)  10  2.5
v0  3.5  3(1.5)(3.5) 2  57  1.625


 2.5(32.5)  1.625(1.5)
x1  1.5   2.03603
156.125

1.625(6.5)  (2.5)(36.75)
y1  3.5   2.84388
156.125

Iteración Variable Valor Error Aprox Error True


x 1,9986 1,87% 0,07%
2 y 3,0027 5,29% 0,09%
x 2 0,07% 0%
3 y 3 0,09% 0%
Método de Newton. Ejemplo 2
• Sistema

x2  y2  1  0 
x  y  2  0
2 2 1
 Sol: x   1
2 , y 3
4 
• Estimación inicial
x 0  1, y0  3

• Primera
iteración  x1   x0  2x 2y 1  x0  y0  1 
2 2

     0 0   
       2x0  2y0   
 y1   y0  1 
 x 0  y 0  2
2 2
Resultados Newton Ejemplo 2

k x y
0 1 3
1 0.62500000000000 1.62500000000000
2 0.51250000000000 1.04326923076923
3 0.50015243902439 0.88108161999291
4 0.50000002323057 0.86615404660332
5 0.50000000000000 0.86602541333757
6 0.50000000000000 0.86602540378444
Método de Newton. Ejemplo 3
• Sistema no lineal
3x 1  cos( x 2 x 3 )  1 2  0

x 1  81( x 2  01
2
. )  sen( x 3  106
2
.  0
 x1 x 2 
e  20x 3  10 / 3  1  0
• Jacobiana

 3 x 3 sen( x 2 x 3 ) x 2 sen( x 2 x 3 )
 
DF( x)   2 x 1  162( x 2  0.1) cos( x 3 ) 
  x1 x 2 
  x 2 e  x 1 e  x1x 2 20 
Resultados Newton. Ejemplo 3

k x1 x2 x3
0 0.10000000 0.10000000 0.10000000
1 0.49986967 0.01946685 0.52152047
2 0.50001423 0.00160764 0.52313166
3 0.50000012 1.48294E5 0.52355872
4 0.50000000 2.08910E8 0.52359840
5 0.50000000 2.792E11 0.52359878
6 0.50000000 4.E14 0.52359878
Variantes del Método de Newton
 Actualización periódica del
Jacobiano
 Aproximación del Jacobiano por
diferencias divididas
 Newton con desplazamiento
unidimensional
Métodos cuasi-Newton

• Idea de la secante f ( x1 )  f ( x 0 )
f ' ( x1 )  a 1 
• No usa las derivadas x1  x 0
parciales (1)
f (x )
• Convergencia superlineal x ( 2)
x (1)

a1
• Formulación matricial
DF( x (1) )  A1
1
x ( 2 )  x (1)  A1  F( x (1) )
Método de Broyden
Método de Broyden
Método de Broyden
Método de Broyden
Método de Broyden
Método de Broyden
Método de Broyden
Iterar
(k 1) 1
x  x  Ak  F(x )
(k) (k)

siendo (yk  Ak 1sk )


Ak  Ak 1 
T
2
sk
sk
(k 1)
yk  F(x )  F(x (k)
)
(k 1)
sk  x  x (k)
Actualización de la inversa
1
 ( y  A s ) 
A k 1 
 A k1  k k 1 k
s T

 2 k 
 sk 
1 T 1
1
(s  A )
k 1 k k A k 1
y s
 A k1  k  1,2,...
k
T 1
sk A k1y k
Algoritmo de Broyden
• Entrada
• x0 ,tol, maxiter
• Inicio
• M: Inversa del Jacobiano en x0
• x1 = x0  M*F(x0)
• incr, iter
• Iteraciones: k = 1, 2, ...
• Actualizar M % Ak-1-1  Ak-1
• xk+1 = xk  M*F(xk)
Actualización de M
w = v; % F(xk1)
v = F(x); % F del iterado actual
y = v  w; % F(xk)  F(xk1)
z =  M*y; %  Ak1-1 * yk
p =  s' *z; % (sk - xk-1)T * Ak1-1 * yk
q = s' *M; % sk T * Ak1-1
R = (s+z)*q/p; % Transformación rango 1
M = M+R; % Inversa nueva: Ak-1
s =  M*v; % Paso de Broyden: sk+1
Algoritmo while incr > tol
de Broyden w = v; % F(x(k1))
v = F(x);
y = vw; % F(x(k))  F(x(k1))
% Inicio z =  M*y; % inv(A(k1))*y(k)
v = F(x0) p =  s' *z;
M = inv(DF(x0)) q = s' *M; % s(k)'*inv(A(k1)
% Inversa Jacobiano R = (s+z)*q/p;
s =  M*v; M = M+R; % inversa de A(k)
x = x0+s; s =  M*v;
% Paso de Newton x = x+s; % Paso de Broyden
incr = norm(s); incr = norm(s);
end
Resultados de Broyden.
Ejemplo
k x1 x2 x3
0 0.10000000 0.10000000 0.10000000
1 0.49986967 0.01946684 0.52152047
2 0.49998637 0.00873783 0.52317457
3 0.50000660 0.00086727 0.52357234
4 0.50000032 0.00003953 0.52359768
5 0.50000000 0.00000019 0.52359877
Alternativas al primer paso
• Estimar el Jacobiano por diferencias divididas
• Estimación unidimensional del Jacobiano

A 0  diag((F( x1 )  F( x 0 )). /( x1  x 0 ))
Conclusiones
• Una seria desventaja de la iteración es que
la convergencia depende de la manera en
que se formula la ecuación
• El método Newton Raphson para dos
ecuaciones se puede generalizar para
resolver n ecuaciones simultáneas.
Muchas Gracias

También podría gustarte