Você está na página 1de 27

II

Soluci
on de
Sistemas de Ecuaciones
En este captulo vamos a considerar sistemas de ecuaciones y, para resolverlas, a extender el metodo iterativo
de punto fijo a vectores. Estamos interesados en ecuaciones de la forma
f (x) = 0,
donde
x = (x1 , x2 , . . . , xn ) Rn

f = (f1 , f2 , . . . , fn ) : Rn Rn .

Haciendo explcitas las coordenadas de f y x, esta ecuacion representa un sistema de ecuaciones


f1 (x1 , x2 , . . . , xn ) = 0
f2 (x1 , x2 , . . . , xn ) = 0
..
.
fn (x1 , x2 , . . . , xn ) = 0.
Por otra parte, para una funci
on g = (g1 , g2 , . . . , gn ) : Rn Rn , la ecuacion de punto fijo correspondiente es
x = g(x),

()

la cual representa el sistema de ecuaciones


x1 = g1 (x1 , x2 , . . . , xn )
x2 = g2 (x1 , x2 , . . . , xn )
..
.
xn = gn (x1 , x2 , . . . , xn ).
Estamos interesados en la situaci
on en que
f (x) = 0 si y solamente si x = g(x)
(al menos en cierta regi
on) de tal forma que podemos concentrarnos en resolver la ecuacion de punto fijo.
Para esto, se usa la iteraci
on de punto fijo de g(x): dado x0 Rn , se define la sucesion1
(k)

(k)

(k)
{x(k) }
k=0 = {(x1 , x2 , . . . , , xn )}k=0
1

Para evitar confusi


on en este captulo, puesto que se usa subndice n para indicar la n-esima coordenada de x, se usa entonces
superndice (k) para indicar el k-esimo elemento en la sucesi
on de x.

II.1

DE
II. SOLUCION

II.2

SISTEMAS DE ECUACIONES

mediante la formula de iteraci


on
x(k+1) = g(x(k) )

(IPF)

para k = 0, 1, 2, . . .. Se espera que limk x(k) = p donde p es un punto fijo de (), es decir p = g(p). El
error entre x(k) y p se mide usando una norma vectorial kx(k) pk.
En el caso de sistemas de ecuaciones lineales, vamos a tener que g es una transformacion de la forma
Tx + c, con T una matriz n n, se tiene que
x(k+1) p = (Tx(k) + c) (Tp + c) = T(x(k) p).
Cuando analizamos el error, vamos a querer deducir de esta ecuacion previa que
kx(k+1) pk = kT(x(k) p)k.
Iterando este argumento se obtiene (cambiando el ndice a k)
kx(k) pk = kTk (x(0) p)k.
Aqu, para continuar el an
alisis necesitamos introducir el concepto de una norma matricial y sus propiedades
para poder concluir
kx(k) pk kTk k kx(0) pk.
donde kTk k denota una norma de la matriz Tk . As que antes de continuar la discusion acerca del metodo
de punto fijo vectorial, debemos discutir el tema de normas.

II.1

Normas y Convergencia

Normas Vectoriales
Definici
on.

Una norma vectorial en Rn es una funci


on
k k : Rn R

tal que, para todo x, y Rn y R,


(i) kxk 0 y kxk = 0 si y s
olo si x = 0,
(ii) kxk = ||kxk, y
(iii) kx + yk kxk + kyk (desigualdad triangular).
Dada una norma vectorial k k , se define una distancia entre x y y con respecto a esta norma por medio de
d (x, y) = kx yk .
Algunos ejemplos de normas vectoriales en Rn , con x = (x1 , x2 , . . . , xn ) Rn , vect (x1 , . . . , xn )un vector
de Rn se considera como un vector columna son
!1/2
n
X
2
(i) kxk2 =
|xi |
(norma euclideana)
i=1

(ii) kxk1 =

n
X
i=1

|xi |

(norma suma)

II.1. NORMAS Y CONVERGENCIA

II.3

2
n

(iii) kxk = max |xi |


i=1

inf

(norma del m
aximo)

Para una norma k k , la esfera unidad S es el conjunto {x Rn | kxk = 1}. Si se quiere indicar otro
centro c y radio r se escribe S (c, r). La figura muestra en dos dimensiones las esferas unidad para cada una
de las normas definidas.
El siguiente lema establece la equivalencia de diferentes normas dentro de una constante multiplicativa.
Esto implica que cuando se discute convergencia no importa que norma se emplea.
Lema II.1 (i) Sea k k una norma vectorial en Rn . Entonces kxk es una funci
on continua de las componentes x1 , . . . , xn de x.
(ii) Todas las normas vectoriales son equivalentes, esto es, dadas 2 normas k k y k k , entonces existen
constantes C, C 0 0 tal que para todo x Rn
Ckxk kxk C 0 kxk
Prueba. Solo verificamos (ii). Es suficiente probar la equivalencia P
de una norma arbitraria k k con la
norma k k . Sea e1 , . . . , en la base ortonormal de tal forma que x = ni=1 xi ei . Usando propiedades de una
norma se tiene
n

n
n
n
X

X
X
X


kxk =
xi ei
kxi ei k =
|xi | kei k max |xi |
kei k = C 0 kxk


1in
i=1

i=1

i=1

i=1

P
donde C 0 = ni=1 kei k . Para la otra parte de (ii), por la continuidad de k k, en S , k k tiene un valor
mnimo C en S el cual debe ser C > 0. Entonces, para y S se tiene C kyk . Para x 6= 0 sea
kxk
y = x/kxk S , entonces reemplazando en la ecuacion anterior C kxk
y por lo tanto

Ckxk kxk .
Como ejemplo de equivalencias se tienen las siguientes:
kxk2 kxk1
kxk

nkxk2

kxk2 nkxk

kxk kxk1 nkxk

Normas Matriciales
Definici
on.

Una norma matricial en Rn Rn es una funci


on
k k : Rn Rn R

tal que para todo A, B Rn Rn y R,


(i) kAk 0 y kAk = 0 si y s
olo si A = 0,

DE
II. SOLUCION

II.4

SISTEMAS DE ECUACIONES

(ii) kAk = ||kAk, y


(iii) kA + Bk kAk + k
Ak (desigualdad triangular), y
(iv) kABk kAkkBk.
Dada una norma vectorial k k , se define una distancia entre A y B con respecto a esta norma por medio
de
d (A, B) = kA Bk .
Usamos la misma notaci
on k k para ambos tipos de norma, pero el contexto deja en claro de cual se
trata. El siguiente lema indica como definir una norma matricial dada una norma vectorial.
Lema II.2 Si k k es una norma vecorial en Rn , entonces, con A Rn Rn ,
kAk = max kAxk
kxk =1

define una norma matricial.


Esta se llama la norma matricial natural inducida o asociada a la norma vectorial. Si x 6= 0 entonces
x0 = x/kxxk satisface kx0 k = 1 y



x
0

= kAxk
kAx k = A
kxk
kxk
y por lo tanto
kAxk
kxk 6=0 kxk

kAk = max
De aqu que
kAxk kAk kxk ,

(compatibilidad)

lo que se expresa diciendo que la norma matricial es compatible con la norma vectorial. (Note que esta es la
propiedad que se necesita para la derivaci
on kTk (x(0) p)k kTk kkx(0) pk en la introduccion.) Antes de
continuar con ejemplos necesitamos la siguiente definicion.
Definici
on.

Sea A Rn . Un valor propio de A es un cero de su polinomio caracterstico


pA (t) = det(A tI).

El espectro de A es el conjunto
(A) = { : es un valor propio de A}
y el radio espectral es
(A) = max{|| : (A)}
(Matlab usa det(tI A) como definici
on de polinomio caracterstico. Esto es por supuesto una diferencia
de signo y no afecta los valores propios.) Las normas matriciales inducidas por las normas vectoriales
mencionadas son
(i) kAk2 = ((AAT ))1/2
(ii) kAk1 = max

1jn

n
X
i=1

|aij |

II.1. NORMAS Y CONVERGENCIA

(iii) kAk = max

1in

n
X

II.5

|aij |

j=1

La verificaci
on de (ii) y (iii) es un ejercicio relativamente facil. Se tienen entonces las compatibilidades
kAxk2 kAk2 kxk2 ,
kAxk1 kAk1 kxk1 ,
kAxk kAk kxk .
Una norma natural satisface kIk = 1 porque Ix = x. Existen tambien normas matriciales que no son
normas naturales. Por ejemplo

(iv) kAkF =

n X
n
X

1/2
|aij |2

(norma de Frobenius)

i=1 j=1

k kF no es natural porque kIkF =


para todo x Rn

n. Sin embargo, k kF es compatible con la norma vectorial k k2 :


kAxk2 kAkF kxk2 .

Para las normas matriciales tambien se tienen resultados de continuidad y equivalencia entre normas. En
particular se tienen las siguientes equivalencias

kAk2 kAkF nkAk2

1
kAk kAk2 nkAk
n

1
kAk1 kAk2 nkAk1
n
El teorema siguiente establece que (A) es esencialmente el nfimo de todas las normas de A. (() no es
una norma, por eso se habla de nfimo, no de mnimo.)
Teorema II.3 Sea A una matriz n n. Entonces
(i) Para toda norma matricial k k se tiene
(A) kAk .
(ii) Para todo  > 0 existe una norma matricial k k (inducida) tal que
kAk (A) + .
Prueba. Solo verificamos (i) para k k compatible con una norma vectorial k k . Sea (A) tal que
(A) = || y sea v un vector propio normalizado correspondiente, es decir Av = v y kvk = 1. Entonces
(A) = || = kvk = kAvk kAk kvk = kAk .

DE
II. SOLUCION

II.6

SISTEMAS DE ECUACIONES

Secuencias y Convergencia
Se dice que la sucesi
on
(k)

(k)

(k)
{x(k) }
k=0 = {(x1 , x2 , . . . , , xn )}k=0

converge a p = (p1 , p2 , . . . , pn ), denotado por


lim x(k) = p

k
(k)

si para cada i = 1, 2, . . . , n, limk xi

= pi . Esto es equivalente a
lim kx(k) pk = 0

y, por la equivalencia de normas, equivalente a


lim kx(k) pk = 0

para cualquier norma vectorial k k.


Similarmente para matrices, una sucesion
(k)

{T(k) }
k=0 = {(tij )i,j=1 }k=0

converge a A = (aij )ni,j=1 , denotado por


lim T(k) = A

k
(k)

si para cada i, j = 1, 2, . . . , n, limk tij = aij . Esto es equivalente a


lim kT(k) Ak = 0

y, por la equivalencia de normas, equivalente a


lim kT(k) Ak = 0

para cualquier norma matricial k k.


En vista de la expresi
on del error, obtenida para la iteracion x(k+1) = Tx(k) + c,
kx(k) pk kTk k kx(0) pk,
nos interesa la convergencia de una sucesion T(k) = Tk (note que T(k) denota el k-esimo termino en una
sucesion, y Tk es la k-esima potencia de T).
Teorema II.4 Sea T una matriz cuadrada. Las siguientes condiciones son equivalentes:
(i) lim kTk k = 0
k

(ii) lim kTk vk = 0 para todo vector v


k

(iii) (T) < 1


(iv) kTk < 1 para al menos una norma matricial k k.

II.1. NORMAS Y CONVERGENCIA

II.7

Prueba. (i) (ii): Puesto que


kTk vk kTk kkvk

se obtiene
0 lim kTk vk lim kTk kkvk = kvk lim kTk k = 0.
k

(ii) (iii): Si (T) 1 entonces sea tal que (T) = || y sea p 6= 0 un vector propio correspondiente, es
decir, Tp = p. Entonces la secuencia Tk p = k p no converge a 0. As que si limk kTk vk = 0 para todo
v entonces debe tenerse (T) < 1.
(iii) (iv): Sea  > 0 tal que (T) +  < 1, entonces por el Teorema II.3 existe k k tal que kTk <
(T) +  < 1.
(iv) (i): Usando propiedades de normas matriciales, se tiene que

kT2 k = kTTk kTkkTk = kTk2

e iterando esto se obtiene


kTk k kTkk .

Entonces, si kTk < 1 entonces


lim kTk k lim kTkk = 0.

Ejemplo.

Consideremos la siguiente matriz

0 2
2
0 1
T = 1
2 2
0

Es facil verificar que el polinomio caracterstico de T es pT () = 3 y, por lo tanto el radio espectral es


(T ) = 0. Sin embargo, las cuatro normas mas conocidas son todas bastante mayores que 1. Esto se verifica
aqu con Matlab como ejemplo de su uso:

DE
II. SOLUCION

II.8

SISTEMAS DE ECUACIONES

>> norm(T,1)
ans =
4
>> norm(T,inf)
ans =
4
>>norm(T,2)
ans =
3.4641
>> norm(A,fro)
ans =
4.2426
>> eigs(T)
ans =
1.0e-04 *
0.1081
-0.0541 - 0.0936i
-0.0541 + 0.0936i
>> max(abs(eig(T)))
ans =
1.0811e-05
>> format long e
>> poly(T)
ans =
1.000000000000000e+00
1.354676733202748e-15
-2.181662830098830e-17
-1.263404684532449e-15
>> roots(poly(T))
ans =
1.0e-04 *
-0.0541 + 0.0936i
-0.0541 - 0.0936i
0.1081

Note el error relativamente grande en los valores propios. Matlab no los determina como las races del
polinomio caracterstico, sino usando otro metodo numerico (los valores propios son un parametro importante
de matrices para el cual existen diferentes metodos numericos mas eficientes que calcular las races del
polinomio caracterstico). Note arriba que no ayuda calcular el polinomio caracterstico y luego sus races:
Matlab no calcula el polinomio caracterstico a partir de la definicion original, sino a partir de los valores
propios !

II.2

Sistemas Lineales

Estudiamos metodos iterativos para resolver sistemas lineales


a11 x1 + a12 x2 + + a1j xi + + a1n xn = b1
a21 x1 + a22 x2 + + a2j xi + + a2n xn = b2
..
..
.
.
ai1 x1 + ai2 x2 + + aij xi + + ai,n xn = bi
..
..
.
.
an1 x1 + an2 x2 + + anj xj + + ann xn = bn
donde los ai,j , bi son valores conocidos y las xj son las variables desconocidas. En forma matricial esto es
Ax = b

II.2. SISTEMAS LINEALES

II.9

donde

a11
a21

A=
ai1

an1

a12
a22

a1j
a2j
..
.

ai2

aij

an2 anj

a1n
a2n

;
ain

..

.
ann

x=

x1
x2
..
.

;
xi

..
.
xn

b=

b1
b2
..
.

.
bi

..
.
bn

Asumimos que A es invertible de tal forma que la solucion es u


nica. Es bien conocido que estas se pueden
resolver por el metodo de eliminaci
on gaussiana. Sin embargo, puesto que en aplicaciones se encuentran
matrices de dimensiones muy altas, son deseables metodos mas rapidos computacionalmente (eliminaci
on
gaussiana tiene tambien problemas de estabilidad). En particular vamos a estudiar soluciones iterativas
basadas en el metodo del punto fijo: expresando A como una diferencia de matrices M y N,
A = M N,
se tiene
Ax = b (M N)Ax = b
MAx = NAx + b
Ax = M1 NAx + M1 b
x = Tx + c
x = g(x)

donde

donde

T = M1 N, c = M1 b

g(x) = Tx + c

De esta forma, resolver el sistema lineal original Ax = b se ha transformado en resolver la ecuaci


on de punto
fijo x = g(x) para la transformaci
on vectorial g. Se genera una sucesion
{x(k) }
k=0
mediante la formula de iteraci
on
x(k+1) = g(x(k) )
= Tx(k) + c,

k = 0, 1, 2, . . . ,

y se espera que converja al u


nico punto fijo de x = g(x) y por lo tanto la u
nica solucion del sistema Ax = b.

Criterios de Convergencia
Teorema II.5 (Criterio de la norma.)
{x(k) }
k=0 dada por

Si kTk < 1 para alg


una norma matricial, entonces la sucesi
on
x(k+1) = Tx(k) + c,

con cualquier c y x(0) , converge a la (


unica) soluci
on p de x = Tx + c, y se tienen las siguientes cotas para
el error
(i) kx(k) pk kTkk kx(0) pk
(ii) kx(k) pk

kTkk
kx(0) x(1) k
1 kTk

DE
II. SOLUCION

II.10

SISTEMAS DE ECUACIONES

Prueba. Parte (i) se deduce de


kx(k) pk = kTk (x(0) p)k kTk kkx(0) pk kTkk kx(0) pk.
Parte (ii) se deduce de
kx(0) pk kx(0) x(1) k + kx(1) pk kx(0) x(1) k + kTk kx(0) pk
de donde
kx(0) pk

1
kx(0) x(1) k.
1 kTk

Teorema II.6 (Criterio del radio espectral.) (T) < 1 si y s


olamente si la sucesi
on {x(k) }
k=0 dada
por
x(k+1) = Tx(k) + c,
con cualquier c y x(0) , converge a la (
unica) soluci
on p de x = Tx + c
Prueba. Se deduce del Teorema II.4.

M
etodo de Jacobi
Por simplicidad escribimos las ecuaciones aqu para sistemas con 3 variables, pero es trivial extenderlo a n
variables. Comenzamos con las ecuaciones
a11 x1 + a12 x2 + a13 x3 = b1
a21 x1 + a22 x2 + a23 x3 = b2
a31 x1 + a32 x2 + a33 x3 = b3
que podemos despejar como
x1 =
x2 =
x3 =

1
(
a12 x2 a13 x3 ) +
a11
1
(a21 x1
a23 x3 ) +
a22
1
(a31 x1 a32 x2
)+
a33

b1
a11
b2
a22
b3
a33

Lo que resulta en la iteraci


on de Jacobi:
(k+1)

(k+1)

(k+1)

x1
x2
x3

1
(k)
(k)
(
a12 x2 a13 x3 ) +
a11
1
(k)
(k)
(a21 x1
a23 x3 ) +
a22
1
(k)
(k)
(a31 x1 a32 x2
)+
a33

b1
a11
b2
a22
b3
a33

La expresion general es
(k+1)

xi

n
1 X
bi
(k)
aij xj +
,
aii j=1
aii
j6=i

i = 1, 2, . . . , n; k = 0, 1, 2, . . .

II.2. SISTEMAS LINEALES

II.11

Para el analisis de convergencia es conveniente tener la forma matricial Recordemos que el sistema inicial
en forma matricial es Ax = b. Sean

0 a12 a13
0
0
0
a11 0
0
0
a23 ; L = a21
0
0 .
D = 0 a22 0 ; U = 0
0
0
0
a31 a32 0
0
0 a33
Es decir, D es la matriz con los elementos diagonales de A (y todos los otros iguales a 0), U es la matriz
con los elementos arriba de la diagonal pero con signo menos, y L es la matriz con los elementos abajo de la
diagonal pero tambien con signo menos. Note que D es ciertamente facil de invertir:

1/a11
0
0
1/a22
0
D1 = 0
0
0
1/a33
Con esto
A = D U L.
La iteracion de Jacobi en forma matricial es entonces
x(k+1) = D1 (U + L)x(k) + D1 b,

k = 0, 1, 2, 3, . . .

o
x(k+1) = TJ x(k) + cJ ,

k = 0, 1, 2, 3, . . . ,

con
TJ = D1 (U + L)

cJ = D1 b

(En la forma general A = M N introducida antes, para la iteracion de Jacobi tenemos M = D y N =


U + L.)
Ademas de los criterios generales de convergencia ya mencionados (basados en una norma y en el radio
espectral) se tiene el siguiente. Se dice que una matriz A es diagonalmente dominante si para todo i
|aii | >

n
X

|aij |.

j=1
j6=i

Teorema II.7 Si A es diagonalmente dominante, entonces la correspondiente iteraci


on de Jacobi converge
(0)
desde cualquier soluci
on inicial x .
Realmente esta condici
on es equivalente a kTJ k < 1 puesto que esta implica que la norma suma de la
i-esima fila de TJ es menor que 1, esto es
i1
X
|aij |
j=1

|aii |

n
X
|aij |
< 1.
|aii |

j=i+1

Y esto es equivalente a la definici


on de ser diagonalmente dominante.
Ejemplo.

Consideramos el sistema lineal


4x + y 3z = 2
x + 3y + 2z = 4
2x + y + 2z = 5

DE
II. SOLUCION

II.12
La matriz A es

SISTEMAS DE ECUACIONES

4 1 3
2
A = 1 3
2 1
2

Despejando x, y, z respectivamente en las tres ecuaciones, se tiene


x =
y =
z =

1
1
3
1
(y + 3z + 2) = y + z +
4
4
4
2
1
1
2
4
(x 2z + 2) = x z +
3
3
3
3
1
1
5
(2x y + 5) = x y +
2
2
2

De aqu que la iteraci


on es
1
3
1
x(k+1) = y (k) + z (k) +
4
4
2
1
2
4
y (k+1) =
x(k) z (k) +
3
3
3
1 (k) 5
(k+1)
(k)
z
= x y +
2
2
En forma matricial


(k) 1
3
x(k+1)
x
0 41
4
2
2 (k)
4
y (k+1) = 1
0

+
y
3
3
3
5
1 12
0
z (k+1)
z (k)
2
{z
}
}
|
| {z

TJ

cJ

En Matlab TJ se puede obtener de la siguiente manera. Y tambien calcular las normas:


>>
>>
>>
>>
>>
>>
TJ

format rational;
A= [4 1 -3; -1 3 2; 2 1 2];
D=diag(diag(A));
U=-triu(A,+1);
L=-tril(A,-1);
TJ=inv(D)*(L+U)
=
0
-1/4
1/3
0
-1
-1/2
>> norm(TJ,1)
ans =
17/12
>> norm(TJ,inf)
ans =
3/2
>> norm(TJ,2)
ans =
467/380
>> max(abs(eig(TJ)))
ans =
1811/2192

3/4
-2/3
0

As que la iteraci
on converge de acuerdo al criterio del radio espectral (
ultimo calculo). Finalmente
podemos resolver con Matlab con el vector inicial x(0) = (0, 0, 0)T (se dan la primera y segunda iteraci
on
para verificacion):
>> b= [2 4 5];
>> X = jacobi(A,b,[0 0 0], 1e-4, 1)
k =
1
err =
1873/651
X =
1/2
4/3
5/2

II.2. SISTEMAS LINEALES

II.13

>> X = jacobi(A,b,[0 0 0], 1e-4, 2)


k =
2
err =
3394/1387
X =
49/24
-1/6
4/3
>> format short
>> X = jacobi(A,b,[0 0 0], 1e-4, 100)
k =
50
err =
1.4466e-04
X =
1.0001
0.9999
1.0001

Implementaci
on Matlab
function X = jacobi (A, B, P, delta, max1)
% Entrada - A es una matriz no singular N x N
%
- B es una matriz N x 1
%
- P es una matriz N x 1; los supuestos iniciales
%
- delta es la tolerancia para P
%
- max1 es el numero maximo de iteraciones
% Salida
- X es una matriz N x 1: la aproximacion de jacobi a
%
la solucion de AX = B
N = length(B);
for k = 1:max1
for j = 1:N
X(j) = (B(j) - A(j, [1:j-1, j+1:N]) * P([1:j-1, j+1:N])) / A(j, j);
end
err = abs(norm(X - P));
relerr = err/(norm(X) + eps);
P = X;
if (err < delta) | (relerr < delta)
break
end
end
X = X;

M
etodo de Gauss-Seidel
(k+1)

(k+1)

Alternativamente, dado x1
podemos reemplazarlo en la segunda ecuacion y dados x1
reemplazarlos en la tercera ecuaci
on para obtener la iteracion de Gauss-Seidel
(k+1)

(k+1)

(k+1)

x1
x2
x3

(k+1)

y x2

podemos

1
b1
(k)
(k)
(
a12 x2
a13 x3 ) +
a11
a11
1
b2
(k+1)
(k)
(a21 x1
a23 x3 ) +
a22
a22
1
b3
(k+1)
(k+1)
(a31 x1
a32 x2
)+
a33
a33

La expresion general es
(k+1)

xi

i1
n
X
1 X
bi
(k+1)
(k)
=
aij xj
+
aij xj +
,
aii
aii
j=1

i = 1, 2, . . . , n; k = 0, 1, 2, . . .

j=i+1

Aqu se entiende que para i = 1 la primera suma es nula, y que para i = n la segunda suma es nula.

DE
II. SOLUCION

II.14

SISTEMAS DE ECUACIONES

Para obtener la forma matricial, primero pasamos todos las variables con superndice (k +1) a la izquierda
en la ecuacion anterior
(k+1)

a11 x1

(k+1)

a21 x1

(k+1)

a31 x1

(k+1)

+ a22 x2

(k+1)

+ a32 x2

(k+1)

+ a33 x3

(k)

(k)

a12 x2 a13 x3 + b1

a23 x3 + b2

+b3

(k)

o en general
i
X

(k+1)
aij xj

j=1

n
X

(k)

aij xj + bi ,

i = 1, 2, . . . , n; k = 0, 1, 2, . . .

j=i+1

Esto en forma matricial es


(D L)x(k) = Ux(k1) + b
de donde se obtiene la forma iterativa matricial de Gauss-Seidel
x(k) = (D L)1 Ux(k1) + (D L)1 b

k = 0, 1, 2, 3, . . . ,

o
x(k+1) = TGS x(k) + cGS ,

k = 0, 1, 2, 3, . . . ,

con
TGS = (D L)1 U

cGS = (D L)1 b

(En terminos de M y N, aqu tenemos M = D L y N = U.)


Ejemplo.

Continuando con el mismo ejemplo anterior


4x + y 3z = 2
x + 3y + 2z = 4
2x + y + 2z = 5

La iteracion es ahora
3
1
1
x(k+1) = y (k) + z (k) +
4
4
2
1 (k+1) 2 (k) 4
(k+1)
x
z +
y
=
3
3
3
1
5
z (k+1) = x(k+1) y (k+1) +
2
2
Reemplazando la primera ecuaci
on en la segunda se obtiene
y (k+1) =

1 (k)
5
3
y z (k) +
12
12
2

Y reemplazando esta y la primera de arriba en la tercera se obtiene


z (k+1) =
En resumen

7 (k) 13 (k) 5
y z +
24
24
4


(k) 1
3
x(k+1)
x
0 41
4
2
y (k+1) = 0 1 5 y (k) + 3
12
12
2
7
13
5
0
z (k+1)
z (k)
24 24
4
|
{z
}
| {z
}

TGS

cGS

II.2. SISTEMAS LINEALES


En Matlab:
>> format rational
>> TGS=inv(diag(diag(A))+tril(A,-1))*(-triu(A,1))
TGS =
0
-1/4
3/4
0
-1/12
-5/12
0
7/24
-13/24
>> norm (TGS,1)
ans =
41/24
>> norm (TGS,inf)
ans =
1
>> norm (TGS,2)
ans =
1107/1042
>> max(abs(eig(TGS)))
ans =
881/2158
>> X = gseid(A,b,[0 0 0], 1e-4, 1)
k =
1
X =
1/2
3/2
5/4
>> X = gseid(A,b,[0 0 0], 1e-4, 2)
k =
2
X =
17/16
41/48
97/96
>> format long
>> X = gseid(A,b,[0 0 0], 1e-4, 100)
k =
12
X = 0.999985819282690
0.999997751483491
1.000015304975564

Implementaci
on Matlab
function X = gseid (A, B, P, delta, max1)
% Entrada - A es una matriz no singular N x N
%
- B es una matriz N x 1
%
- P es una matriz N x 1; el supuesto inicial
%
- delta es la tolerancia para P
%
- max1 es el numero maximo de iteraciones
% Salida
- X es una matriz N x 1: la aproximacion de gauss-seidel a
%
la solucion de AX = B
N = length(B);
for k = 1:max1
for j = 1:N
if j == 1
X(1) = (B(1) - A(1, 2:N) * P(2:N)) / A(1, 1);
elseif j == N
X(N) = (B(N) - A(N, 1:N-1) * (X(1:N-1))) / A(N, N);
else
% X contiene la k-esima aproximacion y P la (k-1)-esima
X(j) = (B(j) - A(j, 1:j-1) * X(1:j-1) - A(j, j+1:N) * P(j+1:N)) / A(j, j);
end
end
err = abs(norm(X - P));
relerr = err / (norm(X) + eps);
P = X;
if (err < delta) | (relerr < delta)
break

II.15

DE
II. SOLUCION

II.16

SISTEMAS DE ECUACIONES

end
end
X = X;

M
etodo SOR
SOR se refiere a successive over-relaxation. Sea w un parametro y sea T la matriz en el metodo de Jacobi
o de Gauss-Seidel. Entonces
Ax = b x = Tx + c
Tx + c x = 0
x = x + w(Tx + c x)
x = (1 w)x + w(Tx + c)
Esto da origen a la iteraci
on
x(k+1) = (1 w)x(k) + w(Tx(k) + c),

k = 0, 1, 2, . . .

El parametro w se escoge con 0 < w < 2 para que el metodo pueda converger:
para 1 < w < 2, el metodo se llama de sobrerelajaci
on (SOR) y se puede usar para acelerar la
convergencia del metodo original, y
para 0 < w < 1, el metodo se llama de subrelajaci
on y se puede usar para lograr convergencia cuando
el metodo original no converge.
Tanto como el metodo de Jacobi como el de Gauss-Seidel pueden usarse en combinacion con esta tecnica
de relajacion. Sin embargo, el metodo que vamos a llamar SOR esta basado en la siguiente iteraci
on obtenida
aplicando la relajaci
on al metodo de Gauss-Seidel en la forma no matricial:

i1
n
X
X
w
(k+1)
(k)
(k+1)
(k)

xi
= (1 w)xi +
aij xj

aij xj bi
aii
j=1

j=i+1

Para obtener la forma matricial de esta iteracion es conveniente tener todos los terminos (k+1) en la izquierda:
(k+1)
aii xi

+w

i1
X

(k+1)
aij xj

= (1

(k)
w)aii xi

j=1

n
X

(k)

aij xj + wbi .

j=i+1

De aqu que
(D wL)x(k+1) = ((1 w)D + wU)x(k) + wb
y
x(k+1) = (D wL)1 ((1 w)D + wU)x(k) + w(D wL)1 b = Tw x(k) + cw
con
Tw = (D wL)1 ((1 w)D + wU)

cw = w(D wL)1 b.

Algunos resultados conocidos:


Teorema II.8 Si aii 6= 0 entonces (Tw ) |w 1|. De aqu que si w 0
o w 2, entonces el metodo SOR
no converge.
Una matriz (cuadrada) simetrica A se dice definida positiva si xT Ax > 0 para todo x (del tama
no apropiado).
Existen otras caracterizaciones m
as efectivas. Por ejemplo:

II.2. SISTEMAS LINEALES

II.17

(i) Todos los valores propios son reales y positivos.


(ii) Todas las submatrices principales iniciales (submatrices cuadradas formadas por entradas en primeras
k filas y primeras k columnas) tienen determinante positivo.

Teorema II.9 Si A is simetrica definida positiva y 0 < w < 2 entonces el metodo SOR converge a la u
nica
(0)
soluci
on del sistema Ax = b para todo x .

Teorema II.10 Si A is simetrica definida positiva y tridiagonal entonces (TGS ) = (TJ )2 < 1 y el valor

optimo de w en el metodo SOR es


wopt =

Ejemplo.

2
p
.
1 + 1 (TJ )2

Consideramos el sistema Ax = b con

10
5
0
0
5 10 4
0

A=
0 4
8 1
0
0 1
5

15
11

b=
3
4

La siguiente tabla obtenida con Matlab muestra el comportamiento del radio espectral y las normas como
funcion de w. Se observa wopt 1.2 La matriz es simetrica definida positiva y por lo tanto se aplican los
teoremas anteriores.

>> A=[10 5 0 0; 5 10 -4 0; 0 -4 8 -1; 0 0 -1 5];


>> b=[15 11 3 4];
>> eigs(A)
ans =
16.0979
8.9534
5.0000
2.9487
>> Tw=@(A,w) inv(diag(diag(A))-w*(-tril(A,-1)))*((1-w)*diag(diag(A))+
w*(-triu(A,1)));
>> W=0:.1:2;
>> for i=1:21 R(i)=max(abs(eigs(Tw(A,W(i))))); N1(i)=norm(Tw(A,W(i)),1);
Ninf(i)=norm(Tw(A,W(i)),inf); N2(i)=norm(Tw(A,W(i)),2); end
>> [W R N1
ans =
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000

Ninf N2]
0
1.0000
1.0000
1.0000
1.0000
0.9668
0.9985
0.9875
0.9670
0.9311
0.9942
0.9700
0.9315
0.8925
0.9874
0.9475
0.8935
0.8506
0.9782
0.9200
0.8531
0.8047
0.9672
0.8875
0.8108
0.7539
0.9546
0.8500
0.7672
0.6970
0.9411
0.8075
0.7238
0.6320
0.9270
0.7600
0.6838

DE
II. SOLUCION

II.18

0.9000
0.5558
0.9131
0.7075
1.0000
0.4615
0.9000
0.6500
1.1000
0.3279
0.8884
0.6975
1.2000
0.2000
0.8790
0.8000
1.3000
0.3000
0.8728
0.9500
1.4000
0.4000
0.9309
1.1000
1.5000
0.5000
1.2406
1.2500
1.6000
0.6000
1.5869
1.4000
1.7000
0.7000
1.9727
1.5500
1.8000
0.8000
2.4013
1.7000
1.9000
0.9000
2.8759
1.8500
2.0000
1.0000
3.4000
2.0000
>> y=sor(A,b,[0 0 0 0], 1.2, 5e-3,100)
k =
5
y =
0.9994
1.0016
1.0002
1.0000

SISTEMAS DE ECUACIONES

0.6525
0.6389
0.6539
0.7021
0.7784
0.8760
0.9920
1.1269
1.2831
1.4637
1.6719
1.9106

Implementaci
on Matlab
function Y = sor (A, B, P, w, delta, max1)
% Entrada - A es una matriz no singular N x N
%
- B es una matriz N x 1
%
- P es una matriz N x 1; el supuesto inicial
%
- w parametro de sobrerelajacion (0<w<2)
%
- delta es la tolerancia para P
%
- max1 es el numero maximo de iteraciones
% Salida
- Y es una matriz N x 1: la aproximacion de SOR a
%
la solucion de AX = B
N = length(B);
for k = 1:max1
for j = 1:N
if j == 1
X(1) = (B(1) - A(1, 2:N) * P(2:N)) / A(1, 1);
Y(1) = (1-w) * P(1) + w * X(1);
elseif j == N
X(N) = (B(N) - A(N, 1:N-1) * (Y(1:N-1))) / A(N, N);
Y(N) = (1-w) * P(N) + w * X(N);
else
% X contiene la k-esima aproximacion y P la (k-1)-esima
X(j) = (B(j) - A(j, 1:j-1) * Y(1:j-1) - A(j, j+1:N) * P(j+1:N)) / A(j, j);
Y(j) = (1-w) * P(j) + w * X(j);
end
end
err = abs(norm(Y - P));
relerr = err / (norm(Y) + eps);
P = Y;
if (err < delta) | (relerr < delta)
break
end
end
Y = Y;

II.3

Sistemas No Lineales

Comenzamos con un repaso de la aproximacion de Taylor de primer orden para funciones de varias variables.

II.3. SISTEMAS NO LINEALES

II.19

Aproximaci
on de Taylor
El teorema siguiente s
olo enuncia la aproximacion de Taylor de primer orden para dos variables. Es simplemente una versi
on del teorema de valor intermedio para dos variables.
Teorema II.11 (Aproximaci
on de Taylor de primer orden en dos dimensiones) Sean (p1 , p2 ), (p1 , p2 )
R2 dados y asumamos que f (x1 , x2 ) : R2 R es continuamente diferenciable para todo (x1 , x2 ) en un
vecindario del segmento de recta que une (p1 , p2 ) y (p1 , p2 ). Entonces
f (p1 , p2 ) = f (p1 , p2 ) + (p1 p1 )

f (x1 , x2 )
f (x1 , x2 )
|x1 =c1 +(p2 p2 )
|x1 =c1
x1
x2
x2 =c2
x2 =c2

para alg
un punto (c1 , c2 ) en el segmento que une (p1 , p2 ) y (p1 , p2 ).
Prueba. Se define la funci
on g : R R como
g(t) = f (u1 (t), u2 (t))

donde

u1 (t) = (1 t)p1 + tp1 , u2 (t) = (1 t)p2 + tp2 .

La aproximacion de Taylor de orden cero para g (teorema del valor intermedio) establece que
g(1) = g(0) + g 0 ()(1 0) = g(0) + g 0 ()
donde satisface 0 1. Pero g(0) = f (p1 , p2 ) y
g 0 (t) |t= =

f
f
du1
du2
|t= +
|t=
| =u1 ()
|x1 =u1 ()
x1 xx1=u
dt
x
2 x =u () dt
()
2

f (x1 , x2 )
f (x1 , x2 )
|x1 =c1 (p1 p1 ) +
|x1 =c1 (p2 p2 )
x1
x
2
x2 =c2
x2 =c2

donde (c1 , c2 ) con c1 = u1 (), c2 = u2 () es un punto en el segmento de recta que conecta (p1 , p2 ) y (p1 , p2 ).
Las ecuacion del teorema se puede escribir en forma mas compacta con la ayuda del vector gradiente


f (x1 ,x2 )
1 ,x2 )
;
f (x1 , x2 ) = f (x
x1
x2
Entonces la aproximaci
on de Taylor es
f (p) = f (p ) + f (x)|x=c (p p )
con c en el segmento pp . Tomando c = p se obtiene la aproximacion
f (p) f (p ) + f (x)|x=p (p p )
Si tenemos una funci
on f = (f1 f2 )T : R2 R2 , aplicado lo anterior a cada componente, se obtiene la
aproximacion


f1 (p )

f (p) f (p ) +
(p p )
f2 (p )
= f (p ) + Jf (x)x=p (p p )
donde

Jf (x) =

f1 (x)
f2 (x)


=

f1 (x1 ,x2 )
x1
f2 (x1 ,x2 )
x1

f1 (x1 ,x2 )
x2
f2 (x1 ,x2 )
x2
Rn Rn

es la llamada matriz Jacobiana de f . Las extension a f :


Jacobiana es

f1 (x)
f1 (x)
x1


..
..

Jf (x) =
=

.
.
fn (x)
fn (x)
x1

..
.

!
Jacobiano
es la natural; en particular, la matriz

f1 (x)
xn

..
.

fn (x)
xn

DE
II. SOLUCION

II.20

II.3.1

SISTEMAS DE ECUACIONES

M
etodo de Punto Fijo

(El metodo de punto fijo para sistemas se discuti


o en clase brevemente pero estrictamente no es parte del
programa, aunque el metodo de Newton, que si es parte del programa, es un caso particular del metodo de
punto fijo.)
Por simplicidad, nos restringimos al caso de dos funciones con dos variables, aunque todo se extiende sin
dificultad a n funciones con n variables. Estamos interesados en ecuaciones de la forma
f (x) = 0,
donde x = (x1 , x2 ) R2 y f = (f1 , f2 ) : R2 R2 , la cual representa el sistema de ecuaciones
f1 (x1 , x2 ) = 0
f2 (x1 , x2 ) = 0.
Para resolver esta ecuaci
on, la transformamos en una ecuacion de punto fijo: se determina una funci
on
2
2
g = (g1 , g2 ) : R R tal que
f (x) = 0 si y solamente si x = g(x)
en cierta region. Esta ecuaci
on de punto fijo representa el sistema de ecuaciones
x1 = g1 (x1 , x2 )
x2 = g2 (x1 , x2 )

Para resolver x = g(x), el metodo de punto fijo genera una sucesion


(k)

(k)

{x(k) }
k=0 = {(x1 , x2 )}k=0

mediante la formula de iteraci


on
x(k+1) = g(x(k) )

(IPF)

para k = 0, 1, 2, . . ., dado el punto inicial x(0) . Se necesitan condiciones bajo las cuales la sucesi
on converge
a una solucion.
Convergencia
Supongamos que existe K tal que 0 < K < 1 y
kJg(x)k K
para todo x en la regi
on R de interes. Sea p R un punto fijo hacia el cual esperamos la convergencia.
As que p = g(p). El objetivo es obtener una cota para la norma del error x(k+1) p. Se tiene, usando la
aproximacion de Taylor de orden cero,
x(k+1) p = g(x(k) ) g(p)


g1 (c1 )
=
(x(k) p)
g2 (c2 )
donde c1 , c2 son puntos en el segmento x(k) p. De aqu, tomando la norma k k se obtiene


g1 (c1 )
(k+1)

kx(k) pk
kx
pk
g2 (c2 )

II.3. SISTEMAS NO LINEALES

II.21

Entonces, usando la cota superior para kJg(x)k en R,




g1 (c1 )


= max {kg1 (c1 )k , kg2 (c2 )k k
g2 (c2 )

max {kJg(c1 )k , kJg(c2 )k }


K
(recuerde que la norma de una matriz, es el max de las normas de sus vectores fila). Podemos concluir
que
kx(k+1) pk K kx(k) pk,
e iterando este argumento se tiene
kx(k) pk K k kx(0) pk.
De aqu que limk kx(k) pk = 0 y por lo tanto limk x(k) = p. Este argumento esencialmente verifica
la parte (ii) del siguiente teorema. La parte (i) establece una condicion suficiente para la existencia del punto
fijo, que es una extensi
on de la condici
on para funciones de una variable.
Teorema II.12 (Teorema de punto fijo.) Sea R = [a1 , b1 ] [a2 , b2 ] R2 .
(i) Si g : R R2 es continua y satisface g(x) R para todo x R entonces g tiene un punto fijo en R.
(ii) Si adem
as las primeras derivadas de g existen y son continuas en R y existe K > 0 tal que
kJg(x)k K < 1
para todo x R, entonces p es u
nico y la sucesi
on de punto fijo con x(0) R converge a p. M
as
precisamente se tienen las cotas de error
kx(k) pk K k kx(0) pk
Kk
kx(k) pk
kx(0) pk
1K
La condicion kJg(x)k K en forma expandida es



g1 (x) g1 (x)

+

x1 x2 K




g2 (x) g2 (x)

+

x1 x2 K

Es posible reemplazar la norma k k por otras normas y por el radio espectral pero es un poco m
as difcil de
probar y mucho m
as difcil de usar (ya sabemos que es difcil determinar el radio espectral de una matriz, y lo que
necesitariamos aqu sera verificar que (Jf (x)) < K en una region).

Ejemplo.
fijo:

Vamos a determinar la soluciones del siguiente sistema de ecuaciones usando el metodo de punto
x2 4x y 2 3 = 0
x 2y 1 = 0

As que tenemos
f1 (x1 , x2 ) = x21 4x1 x22 3
f2 (x1 , x2 ) = x1 2x2 1

DE
II. SOLUCION

II.22

SISTEMAS DE ECUACIONES

Podemos tener una idea aproximada de los ceros graficando las ecuaciones f1 (x) = 0 y f2 (x) = 0:
>>
>>
>>
>>
>>
>>

f1 = @(x,y) x^2-4*x-y^2-3;
f2 = @(x,y) x-2*y-1;
figure;
hold on, grid on;
ezplot(f1,[-4 8], [-4 6]);
ezplot(f2,[-4 8], [-4 6]);

Vamos a examinar dos diferentes funciones de punto fijo:


(i) g(x) = x + cf (x) con c = 1/10.
Se tiene que
g1 (x, y) = x + c(x2 4x y 2 3)
g2 (x, y) = y + c(x 2y 1)
lo que resulta en la iteraci
on
x(k+1) = x(k) + c((x(k) )2 4x(k) (y (k) )2 3)
y (k+1) = y (k) + c(x(k) 2y (k) 1)
Vamos a investigar la convergencia de esta iteracion. Tenemos
g1 (x, y)
= (1 4c) + 2cx
x
g2 (x, y)
=c
x

g1 (x, y)
= 2cy
y
g2 (x, y)
= 1 2c
y

de donde se obtienen las condiciones


|(1 4c) + 2cx| + |2cy| < 1,

|c| + |1 2c| < 1

De donde se concluye que debemos escoger c > 0. En particular, tomamos c = 1/10. Entonces la primera
desigualdad se convierte en
|0.6 + 0.2x| + |0.2y| < 1
y
|x + 3| + |y| < 5
Esto determina una regi
on en el plano, que corresponde a la region encerrada por la curva poligonal en la
figura. Se puede graficar con Matlab:

II.3. SISTEMAS NO LINEALES

II.23

h=@(x,y) abs(x+3)+abs(y)-5;
ezplot(h,[-4 8],[-4,6])

En particular, se observa que existe una solucion en el rectangulo R = [2, 0] [2, 0], en la cual se
satisface kJf (x)k < 1. Ahora nos concentramos en el rectangulo R.
Veamos que est
a sucediendo en 3D con la ayuda de Matlab. Definamos id1 (x, y) = x y id2 (x, y) = y.
Graficamos los pares de funciones g1 (x, y), id1 (x, y) y g2 (x, y), id2 (x, y) (lo siguiente muestra como producir
la primera grafica; otras funciones similares a surf con los mismos argumentos son: surfc, surfl, meshz,
meshc):

>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

xx=linspace(-2,0,101);
yy=linspace(-2,0,101);
[XX,YY]=meshgrid(xx,yy);
g1=@(x,y) x+0.1*(x.^2-4*x-y.^2-3);
id1 = @(x,y) x;
ZZ1=g1(XX,YY);
ID1= id1(XX,YY);
figure;
hold on;
surf(XX,YY,ZZ1);
surf(XX,YY,ID1);

La grafica superior izquierda muestra g1 (x, y)


y id1 (x, y) = x. La inferior izquierda muestra g2 (x, y) y id2 (x, y) = y. La grafica arriba
muestra las proyeciones de las curvas de interseccion de los pares a la derecha. Su interseccion es el cero de f (x, y) y punto fijo de
g(x, y).

Las curvas de intersecci


on de los pares de superficies corresponden a x = g1 (x, y) y y = g2 (x, y). Las
proyecciones de estas curvas sobre el plano xy se intersectan precisamente en la solucion que se est
a buscando
(figura en la derecha). Note que g(x) = (g1 (x, y), g2 (x, y)) R para todo x R. As que las condiciones del
teorema de punto fijo para g se satisfacen en R.
Finalmente, la soluci
on la encontramos con la ayuda de Matlab (el punto x(0) = [1 1]T esta justo en la
frontera de la regi
on con kJg(xk < 1):

DE
II. SOLUCION

II.24

SISTEMAS DE ECUACIONES

>> f=@(x) [x(1)^2-4*x(1)-x(2)^2-3 x(1)-2*x(2)-1];


>> g=@(x) x+0.1*f(x);
>> [p it er] = fixptdim(g,[1 1], 1e-6,100)
p =
-0.7936
-0.8968
it =
75
er =
1.0390e-06

(ii) Ahora consideramos una funci


on g diferente que se pueda usar para aproximar la otra soluci
on:
p
4x + y 2 + 3
1
g2 (x, y) =
(x 1)
2
g1 (x, y) =

En este caso
g1 (x, y)
2
=p
x
4x + y 2 + 3
g2 (x, y)
1
=
x
2

g1 (x, y)
y
=p
y
4x + y 2 + 3
g2 (x, y)
=0
y

De aqu se obtiene la condici


on (la condicion para g2 se satisface siempre: 1/2 < 1)
2 + |y|
p
<1
4x + y 2 + 3
y de aqu que
1
x > |y| + .
4
La region correspondiente est
a limitada por la curva poligonal en la figura.

Podemos entonces obtener la aproximacion con Matlab (note que converge a pesar de que el punto (1, 1)
no esta en la regi
on con kJg(x)k < 1).
>> h=@(x) [sqrt(4*x(1)+x(2)^2+3)
0.5*(x(1)-1)];
>> [p it er] = fixptdim(h, [1 1], 1e-6,100)
p =
5.4603
2.2301
it =
33
er =
4.0987e-06

II.3. SISTEMAS NO LINEALES

II.25

Implementaci
on Matlab
function [P, iter, err] = fixptdim (G, P, delta, max1)
% Entrada - G es el sistema no lineal guardado en el archivo-M G.m
%
- P son los valores supuestos iniciales hacia la solucion
%
- delta es la cota de error
%
- max1 es el numero de iteraciones
% Salida
- P es la aproximacion de seidel hacia la solucion
%
- iter es el numero de iteraciones requeridas
%
- err es el error absoluto
for k = 1:max1
X = P;
P = feval(G, X);
err = abs(norm(X - P));
relerr = err / (norm(X) + eps);
iter = k;
if (err < delta) | (relerr < delta)
break
end
end

II.3.2

M
etodo de Newton

El metodo de Newton para funciones de una dimension se extiende a un sistema de ecuaciones f (x) = 0.
Supongamos que p es una soluci
on, es decir f (p) = 0, y x(k) es el k-esimo termino en la sucesi
on. La
aproximacion de Taylor de primer orden aplicada a los puntos x(k) y p resulta en
f (p) f (x(k) ) + Jf (x(k) ) (p x(k) )
de donde, reemplazando f (p) = 0 y despejando p, se obtiene
p x(k) Jf (x(k) )1 f (x(k) ).
Esto sugiere la iteraci
on de Newton
x(k+1) = x(k) Jf (x(k) )1 f (x(k) ).
Los argumentos de la secci
on previa se pueden usar para verificar que bajo ciertas condiciones, esta iteraci
on
de punto fijo converge. Se tiene que la iteracion de Newton es la iteracion de punto fijo para
g(x) = x Jf (x)1 f (x)
Lema II.13 Asumiendo que Jf (x)1 6= 0, se tiene que Jg(p) = 0 y la iteraci
on de Newton converge
suficientemente cerca de p.
Prueba. Para realizar este c
alculo, sea Ai (x) la i-esima fila de Jf (x)1 ,
correspondiente y

f (x)
xj

Ai (x)
xj

el vector de derivadas

f1
n T
= ( x
f
esima columna de Jf (x). As que
xj ) , la j-
j

Ai (x)

f (x)
= ij
xj

donde ij es un smbolo especial (llamado delta de Kronecker) definido por ii = 1 y ij = 0 para i 6= j. Con
la notacion establecida,
gi (x) = xi Ai (x)f (x),

DE
II. SOLUCION

II.26
y de aqu que, usando

xi
xj

SISTEMAS DE ECUACIONES

= ij ,
gi (x)
xj

xi
Ai (x)
f (x)

f (x) Ai (x)
xj
xj
xj
Ai (x)
= ij
f (x) ij
xj
Ai (x)
=
f (x)
xj
=

Como f (p) = 0, de esta ecuaci


on se deduce que para todo i, j,
gi (p)
= 0.
xj
Esto quiere decir que Jg(p) = 0, y podemos concluir que la iteracion de Newton converge suficientemente
cerca de p.
Tambien se puede verificar que la convergenca es cuadratica.
En la practica, para evitar la inversi
on de la matriz Jf (x(k) ), la iteracion se realiza de la siguiente manera:
1. Se determina la soluci
on x(k) del sistema lineal
Jf (x(k) )x(k) = f (x(k) )
2. Se calcula
x(k+1) = x(k) + x(k) .
Es claro que el resultado es el mismo en la iteracion arriba.
Ejemplo.

Usamos el mismo sistema del ejemplo anterior:


f1 (x, y) = x2 4x y 2 3 = 0
f2 (x, y) = x 2y 1 = 0

Entonces
Jf (x) =

f1 (x,y)
x
f2 (x,y)
x

f1 (x,y)
y
f2 (x,y)
y


=

2x 4 2y
1
2

En este ejemplo peque


no, podemos f
acilmente invertir la matriz Jacobiana:


1
2
2y
1
Jf (x)
=
(2x 4)(2) (2y) 1 2x 4


1
2
2y
=
(2y 4x + 8) 1 2x 4
la cual es valida para 2y 4x + 8 6= 0
o y 6= 2x 4. As que la iteracion de Newton es
 (k+1) 
 (k) 
x
x
=
(k+1)
y
y (k)

  (k) 2

1
2
2y (k)
(x ) 4x(k) (y (k) )2 3

x(k) 2y (k) 1
(2y (k) 4x(k) + 8) 1 2x(k) 4

II.3. SISTEMAS NO LINEALES

II.27

Supongamos (x(0) y (0) )T = (1 1)T y calculemos el resultado de la primera iteracion:




x(1)
y (1)


=

x(0)
y (0)


  (0) 2

1
2
2y (0)
(x ) 4x(0) (y (0) )2 3

1 2x(0) 4
x(0) 2y (0) 1
(2y (0) 4x(0) + 8)





1
1
2
21
(1)2 4 1 (1)2 3
=

1
1 2 1 4
1211
(2 1 4 1 + 8)



 


 


1
1
2 2
10
7
2/3
1
1
=
=

1 2
11
2
5/6
1
1
6
6

Con Matlab obtenemos (la funci


on ha sido modificada para escribir la aproximacion en cada iteraci
on;
ver el codigo adelante):
>> f=@(x) [x(1)^2-4*x(1)-x(2)^2-3 x(1)-2*x(2)-1];
>> Jf=@(x) [ 2*x(1)-4, -2*x(2); 1, -2];
>> [p,it,err] = newdim(f, Jf, [1 1], 1e-6, 1e-10,100)
k=0
1.000000
1.000000
1
-0.666667
-0.833333
2
-0.796296
-0.898148
3
-0.793612
-0.896806
4
-0.793611
-0.896805
p =
-0.7936
-0.8968
it =
4
err =
1.2885e-06

Implementaci
on Matlab
Note que J1 f (x) es implementado por J \ Y (que sugiere que Y se divide por J). Se han agregado dos
lneas con la instrucci
on fprintf para escribir las aproximaciones en cada iteracion.
function [P, iter, err] = newdim (F, JF, P, delta, epsilon, max1)
% Entrada - F es el sistema guardado como el archivo-M F.m
%
- JF es el Jacobiano de F guardado como el archivo-M JF.M
%
- P es la aproximacion inicial a la soluion
%
- delta es la tolerancia para P
%
- epsilon es la tolerancia para F(P)
%
- max1 es el numero maximo de iteraciones
% Salida
- P es la aproximacion a la solucion
%
- iter es el numero de iteraciones realizadas
%
- err es el error estimado para P
Y = feval(F, P);
fprintf(k=0
%f
%f
\n, P(1), P(2));
for k = 1:max1
J = feval(JF, P);
Q = P - (J \ Y);
fprintf(
%i
%f
%f
\n, k, Q(1), Q(2));
Z = feval(F, Q);
err = norm(Q - P);
relerr = err / (norm(Q) + eps);
P = Q;
Y = Z;
iter = k;
if (err < delta) | (relerr < delta) | (abs(Y) < epsilon)
break
end
end

Você também pode gostar