Академический Документы
Профессиональный Документы
Культура Документы
1. Preliminares
Recordemos brevemente las derivadas parciales y el gradiente de funciones de la forma
f : Rn 7! R.
= (2xz; 2y + 2; x2 - 8)
Así también recordemos la matriz jacobiana de una función de la forma F : Rn 7! Rm .
Por ejemplo, si F : R3 7! R2 está dada por la regla de correspondencia
³ ´
F(x; y; z) = (f1 (x; y; z); f2 (x; y; z)) = x2 + xy; xz2 - 3 sen y
1
Resolver (1) signi…ca encontrar vectores (x̄; ȳ) 2 R2 que satisfagan dicho sistema. En el
grá…co se aprecian cuatro soluciones (puntos).
y
8
-4 -2 2 4 6 8
-2
x
-4
-6
Notación 1 El vector x 2 Rn será denotado como una matriz columna. Por ejemplo,
el par (1; 3) 2 R2 será representado también por
· ¸
1
3
F(x) = 0
2
La matriz jacobiana de F en x, denotada por J(x), es
2 3
2 3 @f1 @f1 @f1
(x) @x (x) ¢ ¢ ¢ (x)
rf1 (x)T 6 @x 1 2 @xn
7
6 rf2 (x)T 7 6 @f2 @f2 @f2 7
6 7 6 6 @x 1 (x) @x 2 (x) ¢ ¢ ¢ @xn (x) 7
7
J(x) = 6 .. 7=6
4 . 5 6 .. .. . . .. 7
7
4 . . . . 5
rfn (x)T @f n @f n @fn
@x 1 (x) @x 2 (x) ¢ ¢ ¢ @x 2 (x)
Note que el vector (columna) rfk (x) denota el gradiente de fk en x, para k = 1; :::; n.
Resulta lógico resolver ahora el sistema L0 (x) = 0 (problema fácil) en vez de resolver
F(x) = 0 (problema difícil). Vemos que
La siguiente iteración es análoga, pero tomando como nuevo punto inicial x1 , y este
proceso se repite. Esto nos provee el método de Newton para sistemas de ecuaciones no
lineales de n £ n.
Algoritmo 1 (Newton) Dado un punto inicial x0 2 Rn y dos tolerancias "1 ; "2 > 0.
Repetir,
xk+1 = xk - J-1 (xk )F(xk ); k = 0; 1; 2; :::
° k+1 ° ° k+1 °
hasta que °F(x )° < "1 ó °x - xk ° < "2 .
3
El método de Newton converge cuando x0 es tomado lo su…cientemente próximo a la
solución del sistema no lineal F(x) = 0, esto sin duda es una desventaja. Sin embargo,
cuando converge es uno de los más rápidos.
Es decir, resolver · ¸
0
F(x1 ; x2 ) =
0
donde
· ¸ · ¸
3x21 - 9x1 - 2x2 - 5 6x1 - 9 -2
F(x1 ; x2 ) = y J(x1 ; x2 ) =
x1 + x22 - 4x1 - 8x2 - 10
2 2x1 - 4 2x2 - 8
A continuación se muestra el código en Matlab/Octave asociado al método de Newton:
function [x,k]=newtonRn(x,t1,t2)
y=x+100; k=0;
while norm(F(x))>=t1 & norm(y-x)>=t2
y=x;
x=x-inv(Jac(x))*F(x);
k=k+1;
if k>10000
error(’No converge’);
end
end
function y=F(x)
y=[3*x(1)^2-9*x(1)-2*x(2)-5 ; x(1)^2+x(2)^2-4*x(1)-8*x(2)-10];
function y=Jac(x)
y=[6*x(1)-9 -2 ; 2*x(1)-4 2*x(2)-8 ];
Claramente, si se desea resolver otro sistema, las funciones F y Jac deberían ser actua-
lizadas.
Para ejecutar el programa newtonRn, debemos ingresar el vector inicial (columna) y las
dos telerancias. Así por ejemplo:
>> [xk,k]=newtonRn([12 7]’,0.000001,0.000001)
xk =
4.6284
8.8054
k =
5
4
Se aprecia que una de las soluciones numéricas es [ 4:6284 8:8054 ]T .
ek = [ 0 ¢ ¢ ¢ 0 1 0 ¢¢¢ 0 ]T
| {z }
1 en la k-posición
—o—