Método de Newton-Raphson para Sistemas de Ecuaciones No Lineales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

RESOLUCIÓN DE SISTEMAS NO LINEALES

-- Método de Newton-Raphson –

1. El método de Newton para la resolución de una ecuación f(x)=0.

Sea f(x) una función continuamente diferenciable dos veces en el intervalo [a, b], lo
cual se expresa: f  C 2 [a, b] . Sea x  [a, b] una aproximación a la raíz p tal que:
 f ( x )  0

x  p 0
Expresamos el desarrollo de Taylor de primer grado para f(x) en torno a x :

( x  x )2
f ( x)  f ( x )  ( x  x ) f ( x )  f "(c ) {1}
2

 f ( p)  0
Aquí sustituimos x=p, y, considerando:  2
 p  x   0

0  f ( x )  ( p  x ) f ( x )

Y despejando p, tenemos:

f (x )
px {2}
f ( x )

El método de Newton consiste en tomar una aproximación inicial, x , y a


continuación obtener una aproximación más refinada mediante la fórmula de arriba. Es
decir, se trata de acercarnos a la raíz p por medio de la fórmula recursiva:

f ( pn 1 )
pn  pn 1  {3}
f ( pn 1 )

2. El método de Newton-Raphson para la resolución de un sistema (no lineal).

Para la resolución de un sistema no lineal de n ecuaciones con n incógnitas, en la


forma:
f1 ( x1 , x2 , , xn )  0 
f 2 ( x1 , x2 , , xn )  0 
 4
   
f n ( x1 , x2 , , xn )  0 

Se utiliza un método paralelo al visto anteriormente, denominado método de Newton-


Rapson para un sistema no lineal.
Utilizaremos la notación vectorial:
 x1 
x 
 
x =  2
 
 xn 
Con esta notación, el sistema {4} lo podemos expresar así:

F(x) = 0 {4}

Siendo F :

 f1 
f 
 
F =  2 {5}

 f n 

Si partimos de una aproximación inicial x(0) =  x1(0) , x2(0) , , xn(0) 

Aplicando el desarrollo de Taylor de la función “n-multiple” F, entorno de una


solución p del sistema, se obtiene una fórmula de aproximación similar a {1}:

p ≈ x(0) - J(x(0))-1 F(x(0)) {6}

Donde J(x)-1 es la matriz inversa de la matriz jacobiana de las funciones F:

 f1 f1 f1 


 x 
x2 x n 
 1 
 f 2 f 2 f 2 

J ( x )   x1 x2 xn 
   
 
 f n f n

f n 
 x1 x2 xn 

El método de Newton-Raphson para un sistema de ecuaciones no lineales supone


seguir una fórmula paralela a {3}:

x(k+1) = x(k) – J-1(x(k)) F(x(k)) {7}

[Atención: Aquí utilizamos la notación x(k+1) , en lugar de xk+1, para no confundir con
las incógnitas x1, x2, … ]

El inconveniente de este método directo reside en la necesidad de hallar la inversa de


la matriz J(x) para cada iteración.
Para evitar tener que hacer la inversa de J se procede así:

Se dan los dos siguientes pasos:

1. Hallamos Δx(k) = (x(k+1) - x(k)) tal que J(x(k)) Δx(k) = - F(x(k)).


(Equivale a resolver un sistema lineal)
2. Ahora tenemos: x(k+1) = x(k) + Δx(k) .

Observar que esto equivale a realizar {7}, puesto que:


x(k+1) = x(k) + J-1(x(k)) J(x(k)) Δx(k) .

Como ejemplo de aplicación de esta técnica indirecta resolvamos el siguiente sistema


no lineal:

 x12  10 x1  x22  8  0
 2
 x1 x2  x1  10 x2  8  0

La función F estará formada por las dos funciones:

f1 ( x )  x12  10 x1  x22  8
f 2 ( x)  x1 x22  x1  10 x2  8

 x 2  10 x1  x22  8 
Es decir, F (x) =  1 2 
 x1 x2  x1  10 x2  8 

Hallamos el jacobiano:
 f1 f1 
 x x2   2 x1  10 2 x2 
J ( x)   1  2
 f 2 f 2   x2  1 2 x1 x2  10 
 x x2 
 1

0
Tomamos como aproximación inicial x(0)=   .
0
El método directo consistiría en aplicar iterativamente a este valor inicial x(0) el
algoritmo{7}. Pero apliquemos el método indirecto con sus dos pasos:

I) Resolvemos el sistema J(x(0)) Δx(0) = - F(x(0)), siendo:

 f1 f1 
 x x2   10 0  8
J (x )  
(0) 1
  ; F(x(0)) = 8
 f 2 f 2   1 10   
 x x2 
 1
O sea, se resuelve el sistema:
 10 0   x1(0)  8
  .  (0)     
 1 10   x2  8

Este sistema se podría resolver por el método de Jacobi o por el método de


Gauss, en nuestro caso la solución es inmediata:

 x1(0)   0.8 
 (0)    
 x2   0.88

II) Hacemos : x(1) = x(0) + Δx(0) .

Es decir,
 x1(1)   x1(0)   x1(0)   x1(1)   0  0.8 
 (1)    (0)    (0)    (1)       
 x2   x2   x2   x2   0 0.88

Ahora tomaríamos este valor como nueva aproximación:

 x1(1)   0.8 
 (1)    
 x2   0.88

Y volveríamos hacer los dos pasos I y II en forma iterativa:

 8.4 1.76  1.414 


J ( x (1) )    ; F ( x (1) )   
1.7744 8.592  0.619 
Se resuelve el sistema:

 8.4 1.76   x1(2)  1.414 


1.7744 8.592  .  (2)    0.619 
   x2   
Y en el paso II se obtiene la siguiente aproximación a la solución:

Como resumen de las iteraciones expresemos las sucesivas aproximaciones a la


solución:

n x1 x2 _
0 0 0
1 0.8 0.88
2 0.991787 0.991712
3 0.999 0.999
4 0.999… 0.999…

La solución de este sistema es x1 = 1, x2 = 1, como fácilmente se puede comprobar.


ALGORITMO DE NEWTON-RAPHSON (para sistemas no lineales).

Para aproximar una solución del sistema no lineal F(x) = 0, dada una aproximación
inicial x(0).

Entrada: Las n funciones f1, …, fn , (NOTA 1: Para Matlab introducir cada


función en un m-file independiente); aproximación inicial x(0); tolerancia TOL; número
máximo de iteraciones N. (NOTA 2: Nosotros calcularemos J “manualmente” y
meteremos en m-files cada uno de sus elementos)

Salida: Solución aproximada de x = {x1, x2, …, xn} o mensaje de fracaso.

Paso 1: Tomar k=1.


Paso 2: Mientras que k≤N seguir pasos 3-7.
Paso 3: Calcular F(x) y J(x) para la aproximación x(0).
Paso 4: Resolver el sistema lineal J(x) Δx = - F(x). (se puede llamar y → Δx)
Paso 5: Tomar x = x + y .
===================================
Para no liarse en exceso, pueden sustituirse los pasos 4 y 5 por:
Paso 4: Tomar x = x – J-1(x) F(x)

Paso 6: Si ║y║< TOL entonces sacar x, fin.


Paso 7: Tomar k = k +1.
Paso 8: Si ║y║< TOL sacar mensaje de fracaso.

También podría gustarte