Sei sulla pagina 1di 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 jo a vectores. Estamos interesados en ecuaciones de la forma
f(x) = 0,
donde
x = (x
1
, x
2
, . . . , x
n
) R
n
y f = (f
1
, f
2
, . . . , f
n
) : R
n
R
n
.
Haciendo explcitas las coordenadas de f y x, esta ecuacion representa un sistema de ecuaciones
f
1
(x
1
, x
2
, . . . , x
n
) = 0
f
2
(x
1
, x
2
, . . . , x
n
) = 0
.
.
.
f
n
(x
1
, x
2
, . . . , x
n
) = 0.
Por otra parte, para una funcion g = (g
1
, g
2
, . . . , g
n
) : R
n
R
n
, la ecuacion de punto jo correspondiente es
x = g(x), ()
la cual representa el sistema de ecuaciones
x
1
= g
1
(x
1
, x
2
, . . . , x
n
)
x
2
= g
2
(x
1
, x
2
, . . . , x
n
)
.
.
.
x
n
= g
n
(x
1
, x
2
, . . . , x
n
).
Estamos interesados en la situacion en que
f(x) = 0 si y solamente si x = g(x)
(al menos en cierta region) de tal forma que podemos concentrarnos en resolver la ecuacion de punto jo.
Para esto, se usa la iteracion de punto jo de g(x): dado x
0
R
n
, se dene la sucesion
1
{x
(k)
}

k=0
= {(x
(k)
1
, x
(k)
2
, . . . , , x
(k)
n
)}

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
II.2 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
mediante la formula de iteracion
x
(k+1)
= g(x
(k)
) (IPF)
para k = 0, 1, 2, . . .. Se espera que lim
k
x
(k)
= p donde p es un punto jo de (), es decir p = g(p). El
error entre x
(k)
y p se mide usando una norma vectorial x
(k)
p.
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
x
(k+1)
p = T(x
(k)
p).
Iterando este argumento se obtiene (cambiando el ndice a k)
x
(k)
p = T
k
(x
(0)
p).
Aqu, para continuar el analisis necesitamos introducir el concepto de una norma matricial y sus propiedades
para poder concluir
x
(k)
p T
k
x
(0)
p.
donde T
k
denota una norma de la matriz T
k
. As que antes de continuar la discusion acerca del metodo
de punto jo vectorial, debemos discutir el tema de normas.
II.1 Normas y Convergencia
Normas Vectoriales
Denicion. Una norma vectorial en R
n
es una funcion
: R
n
R
tal que, para todo x, y R
n
y R,
(i) x 0 y x = 0 si y solo si x = 0,
(ii) x = ||x, y
(iii) x +y x +y (desigualdad triangular).
Dada una norma vectorial

, se dene una distancia entre x y y con respecto a esta norma por medio de
d

(x, y) = x y

.
Algunos ejemplos de normas vectoriales en R
n
, con x = (x
1
, x
2
, . . . , x
n
) R
n
, vect (x
1
, . . . , x
n
)un vector
de R
n
se considera como un vector columna son
(i) x
2
=
_
n

i=1
|x
i
|
2
_
1/2
(norma euclideana)
(ii) x
1
=
n

i=1
|x
i
| (norma suma)
II.1. NORMAS Y CONVERGENCIA II.3
1 2 inf
(iii) x

=
n
max
i=1
|x
i
| (norma del maximo)
Para una norma

, la esfera unidad S

es el conjunto {x R
n
| x

= 1}. Si se quiere indicar otro


centro c y radio r se escribe S

(c, r). La gura muestra en dos dimensiones las esferas unidad para cada una
de las normas denidas.
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 una norma vectorial en R
n
. Entonces x es una funci on continua de las compo-
nentes x
1
, . . . , x
n
de x.
(ii) Todas las normas vectoriales son equivalentes, esto es, dadas 2 normas

, entonces existen
constantes C, C

0 tal que para todo x R


n
Cx

Prueba. Solo vericamos (ii). Es suciente probar la equivalencia de una norma arbitraria

con la
norma

. Sea e
1
, . . . , e
n
la base ortonormal de tal forma que x =

n
i=1
x
i
e
i
. Usando propiedades de una
norma se tiene
x

=
_
_
_
_
_
n

i=1
x
i
e
i
_
_
_
_
_

i=1
x
i
e
i

=
n

i=1
|x
i
| e
i

max
1in
|x
i
|
n

i=1
e
i

= C

donde C

=

n
i=1
e
i

. Para la otra parte de (ii), por la continuidad de , en S

tiene un valor
mnimo C en S

el cual debe ser C > 0. Entonces, para y S

se tiene C y

. Para x = 0 sea
y = x/x

, entonces reemplazando en la ecuacion anterior C


x
x
y por lo tanto
Cx

.
Como ejemplo de equivalencias se tienen las siguientes:
x
2
x
1

nx
2
x

x
2

nx

x
1
nx

Normas Matriciales
Denicion. Una norma matricial en R
n
R
n
es una funcion
: R
n
R
n
R
tal que para todo A, B R
n
R
n
y R,
(i) A 0 y A = 0 si y solo si A = 0,
II.4 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
(ii) A = ||A, y
(iii) A+B A +

A (desigualdad triangular), y
(iv) AB AB.
Dada una norma vectorial

, se dene una distancia entre A y B con respecto a esta norma por medio
de
d

(A, B) = AB

.
Usamos la misma notacion para ambos tipos de norma, pero el contexto deja en claro de cual se
trata. El siguiente lema indica como denir una norma matricial dada una norma vectorial.
Lema II.2 Si

es una norma vecorial en R


n
, entonces, con A R
n
R
n
,
A

= max
x=1
Ax

dene una norma matricial.


Esta se llama la norma matricial natural inducida o asociada a la norma vectorial. Si x = 0 entonces
x

= x/xx

satisface x

= 1 y
Ax

=
_
_
_
_
A
x
x

_
_
_
_

=
Ax

y por lo tanto
A

= max
x=0
Ax

De aqu que
Ax

, (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 T
k
(x
(0)
p) T
k
x
(0)
p en la introduccion.) Antes de
continuar con ejemplos necesitamos la siguiente denicion.
Denicion. Sea A R
n
. Un valor propio de A es un cero de su polinomio caracterstico
p
A
(t) = det(AtI).
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 denicion 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) A
2
= ((AA
T
))
1/2
(ii) A
1
= max
1jn
n

i=1
|a
ij
|
II.1. NORMAS Y CONVERGENCIA II.5
(iii) A

= max
1in
n

j=1
|a
ij
|
La vericacion de (ii) y (iii) es un ejercicio relativamente facil. Se tienen entonces las compatibilidades
Ax
2
A
2
x
2
,
Ax
1
A
1
x
1
,
Ax

.
Una norma natural satisface I = 1 porque Ix = x. Existen tambien normas matriciales que no son
normas naturales. Por ejemplo
(iv) A
F
=
_
_
n

i=1
n

j=1
|a
ij
|
2
_
_
1/2
(norma de Frobenius)

F
no es natural porque I
F
=

n. Sin embargo,
F
es compatible con la norma vectorial
2
:
para todo x R
n
Ax
2
A
F
x
2
.
Para las normas matriciales tambien se tienen resultados de continuidad y equivalencia entre normas. En
particular se tienen las siguientes equivalencias
A
2
A
F

nA
2
1

n
A

A
2

nA

n
A
1
A
2

nA
1
El teorema siguiente establece que (A) es esencialmente el nmo de todas las normas de A. (() no es
una norma, por eso se habla de nmo, no de mnimo.)
Teorema II.3 Sea A una matriz n n. Entonces
(i) Para toda norma matricial

se tiene
(A) A

.
(ii) Para todo > 0 existe una norma matricial

(inducida) tal que


A

(A) + .
Prueba. Solo vericamos (i) para

compatible con una norma vectorial

. Sea (A) tal que


(A) = || y sea v un vector propio normalizado correspondiente, es decir Av = v y v

= 1. Entonces
(A) = || = v

= Av

= A

.
II.6 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
Secuencias y Convergencia
Se dice que la sucesion
{x
(k)
}

k=0
= {(x
(k)
1
, x
(k)
2
, . . . , , x
(k)
n
)}

k=0
converge a p = (p
1
, p
2
, . . . , p
n
), denotado por
lim
k
x
(k)
= p
si para cada i = 1, 2, . . . , n, lim
k
x
(k)
i
= p
i
. Esto es equivalente a
lim
k
x
(k)
p

= 0
y, por la equivalencia de normas, equivalente a
lim
k
x
(k)
p = 0
para cualquier norma vectorial .
Similarmente para matrices, una sucesion
{T
(k)
}

k=0
= {(t
(k)
ij
)
n
i,j=1
}

k=0
converge a A = (a
ij
)
n
i,j=1
, denotado por
lim
k
T
(k)
= A
si para cada i, j = 1, 2, . . . , n, lim
k
t
(k)
ij
= a
ij
. Esto es equivalente a
lim
k
T
(k)
A

= 0
y, por la equivalencia de normas, equivalente a
lim
k
T
(k)
A = 0
para cualquier norma matricial .
En vista de la expresion del error, obtenida para la iteracion x
(k+1)
= Tx
(k)
+c,
x
(k)
p T
k
x
(0)
p,
nos interesa la convergencia de una sucesion T
(k)
= T
k
(note que T
(k)
denota el k-esimo termino en una
sucesion, y T
k
es la k-esima potencia de T).
Teorema II.4 Sea T una matriz cuadrada. Las siguientes condiciones son equivalentes:
(i) lim
k
T
k
= 0
(ii) lim
k
T
k
v = 0 para todo vector v
(iii) (T) < 1
(iv) T < 1 para al menos una norma matricial .
II.1. NORMAS Y CONVERGENCIA II.7
Prueba. (i) (ii): Puesto que
T
k
v T
k
v
se obtiene
0 lim
k
T
k
v lim
k
T
k
v = v lim
k
T
k
= 0.
(ii) (iii): Si (T) 1 entonces sea tal que (T) = || y sea p = 0 un vector propio correspondiente, es
decir, Tp = p. Entonces la secuencia T
k
p =
k
p no converge a 0. As que si lim
k
T
k
v = 0 para todo
v entonces debe tenerse (T) < 1.
(iii) (iv): Sea > 0 tal que (T) + < 1, entonces por el Teorema II.3 existe

tal que T

<
(T) + < 1.
(iv) (i): Usando propiedades de normas matriciales, se tiene que
T
2
= TT TT = T
2
e iterando esto se obtiene
T
k
T
k
.
Entonces, si T < 1 entonces
lim
k
T
k
limT
k
= 0.
Ejemplo. Consideremos la siguiente matriz
T =
_
_
0 2 2
1 0 1
2 2 0
_
_
Es facil vericar que el polinomio caracterstico de T es p
T
() =
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 verica
aqu con Matlab como ejemplo de su uso:
II.8 II. SOLUCI

ON DE 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 ecientes 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 denicion original, sino a partir de los valores
propios !
II.2 Sistemas Lineales
Estudiamos metodos iterativos para resolver sistemas lineales
a
11
x
1
+ a
12
x
2
+ + a
1j
x
i
+ + a
1n
x
n
= b
1
a
21
x
1
+ a
22
x
2
+ + a
2j
x
i
+ + a
2n
x
n
= b
2
.
.
.
.
.
.
a
i1
x
1
+ a
i2
x
2
+ + a
ij
x
i
+ + a
i,n
x
n
= b
i
.
.
.
.
.
.
a
n1
x
1
+ a
n2
x
2
+ + a
nj
x
j
+ + a
nn
x
n
= b
n
donde los a
i,j
, b
i
son valores conocidos y las x
j
son las variables desconocidas. En forma matricial esto es
Ax = b
II.2. SISTEMAS LINEALES II.9
donde
A =
_
_
_
_
_
_
_
_
_
_
a
11
a
12
a
1j
a
1n
a
21
a
22
a
2j
a
2n
.
.
.
a
i1
a
i2
a
ij
a
in
.
.
.
a
n1
a
n2
a
nj
a
nn
_
_
_
_
_
_
_
_
_
_
; x =
_
_
_
_
_
_
_
_
_
_
x
1
x
2
.
.
.
x
i
.
.
.
x
n
_
_
_
_
_
_
_
_
_
_
; b =
_
_
_
_
_
_
_
_
_
_
b
1
b
2
.
.
.
b
i
.
.
.
b
n
_
_
_
_
_
_
_
_
_
_
.
Asumimos que A es invertible de tal forma que la solucion es unica. Es bien conocido que estas se pueden
resolver por el metodo de eliminacion gaussiana. Sin embargo, puesto que en aplicaciones se encuentran
matrices de dimensiones muy altas, son deseables metodos mas rapidos computacionalmente (eliminacion
gaussiana tiene tambien problemas de estabilidad). En particular vamos a estudiar soluciones iterativas
basadas en el metodo del punto jo: expresando A como una diferencia de matrices M y N,
A = MN,
se tiene
Ax = b (MN)Ax = b
MAx = NAx +b
Ax = M
1
NAx +M
1
b
x = Tx +c donde T = M
1
N, c = M
1
b
x = g(x) donde g(x) = Tx +c
De esta forma, resolver el sistema lineal original Ax = b se ha transformado en resolver la ecuacion de punto
jo x = g(x) para la transformacion vectorial g. Se genera una sucesion
{x
(k)
}

k=0
mediante la formula de iteracion
x
(k+1)
= g(x
(k)
)
= Tx
(k)
+c, k = 0, 1, 2, . . . ,
y se espera que converja al unico punto jo de x = g(x) y por lo tanto la unica solucion del sistema Ax = b.
Criterios de Convergencia
Teorema II.5 (Criterio de la norma.) Si T < 1 para alg una norma matricial, entonces la sucesion
{x
(k)
}

k=0
dada por
x
(k+1)
= Tx
(k)
+c,
con cualquier c y x
(0)
, converge a la ( unica) solucion p de x = Tx +c, y se tienen las siguientes cotas para
el error
(i) x
(k)
p T
k
x
(0)
p
(ii) x
(k)
p
T
k
1 T
x
(0)
x
(1)

II.10 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
Prueba. Parte (i) se deduce de
x
(k)
p = T
k
(x
(0)
p) T
k
x
(0)
p T
k
x
(0)
p.
Parte (ii) se deduce de
x
(0)
p x
(0)
x
(1)
+x
(1)
p x
(0)
x
(1)
+T x
(0)
p
de donde
x
(0)
p
1
1 T
x
(0)
x
(1)
.
Teorema II.6 (Criterio del radio espectral.) (T) < 1 si y solamente si la sucesion {x
(k)
}

k=0
dada
por
x
(k+1)
= Tx
(k)
+c,
con cualquier c y x
(0)
, converge a la ( unica) solucion p de x = Tx +c
Prueba. Se deduce del Teorema II.4.
Metodo de Jacobi
Por simplicidad escribimos las ecuaciones aqu para sistemas con 3 variables, pero es trivial extenderlo a n
variables. Comenzamos con las ecuaciones
a
11
x
1
+ a
12
x
2
+ a
13
x
3
= b
1
a
21
x
1
+ a
22
x
2
+ a
23
x
3
= b
2
a
31
x
1
+ a
32
x
2
+ a
33
x
3
= b
3
que podemos despejar como
x
1
=
1
a
11
( a
12
x
2
a
13
x
3
) +
b
1
a
11
x
2
=
1
a
22
(a
21
x
1
a
23
x
3
) +
b
2
a
22
x
3
=
1
a
33
(a
31
x
1
a
32
x
2
) +
b
3
a
33
Lo que resulta en la iteracion de Jacobi:
x
(k+1)
1
=
1
a
11
( a
12
x
(k)
2
a
13
x
(k)
3
) +
b
1
a
11
x
(k+1)
2
=
1
a
22
(a
21
x
(k)
1
a
23
x
(k)
3
) +
b
2
a
22
x
(k+1)
3
=
1
a
33
(a
31
x
(k)
1
a
32
x
(k)
2
) +
b
3
a
33
La expresion general es
x
(k+1)
i
=
1
a
ii
n

j=1
j=i
a
ij
x
(k)
j
+
b
i
a
ii
, 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
D =
_
_
a
11
0 0
0 a
22
0
0 0 a
33
_
_
; U =
_
_
0 a
12
a
13
0 0 a
23
0 0 0
_
_
; L =
_
_
0 0 0
a
21
0 0
a
31
a
32
0
_
_
.
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:
D
1
=
_
_
1/a
11
0 0
0 1/a
22
0
0 0 1/a
33
_
_
Con esto
A = DUL.
La iteracion de Jacobi en forma matricial es entonces
x
(k+1)
= D
1
(U+L)x
(k)
+D
1
b, k = 0, 1, 2, 3, . . .
o
x
(k+1)
= T
J
x
(k)
+c
J
, k = 0, 1, 2, 3, . . . ,
con
T
J
= D
1
(U+L) y c
J
= D
1
b
(En la forma general A = MN 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
|a
ii
| >
n

j=1
j=i
|a
ij
|.
Teorema II.7 Si A es diagonalmente dominante, entonces la correspondiente iteracion de Jacobi converge
desde cualquier solucion inicial x
(0)
.
Realmente esta condicion es equivalente a T
J

< 1 puesto que esta implica que la norma suma de la


i-esima la de T
J
es menor que 1, esto es
i1

j=1
|a
ij
|
|a
ii
|
+
n

j=i+1
|a
ij
|
|a
ii
|
< 1.
Y esto es equivalente a la denicion de ser diagonalmente dominante.
Ejemplo. Consideramos el sistema lineal
4x + y 3z = 2
x + 3y + 2z = 4
2x + y + 2z = 5
II.12 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
La matriz A es
A =
_
_
4 1 3
1 3 2
2 1 2
_
_
Despejando x, y, z respectivamente en las tres ecuaciones, se tiene
x =
1
4
(y + 3z + 2) =
1
4
y +
3
4
z +
1
2
y =
1
3
(x 2z + 2) =
1
3
x
2
3
z +
4
3
z =
1
2
(2x y + 5) = x
1
2
y +
5
2
De aqu que la iteracion es
x
(k+1)
=
1
4
y
(k)
+
3
4
z
(k)
+
1
2
y
(k+1)
=
1
3
x
(k)

2
3
z
(k)
+
4
3
z
(k+1)
= x
(k)

1
2
y
(k)
+
5
2
En forma matricial
_
_
x
(k+1)
y
(k+1)
z
(k+1)
_
_
=
_
_
0
1
4
3
4
1
3
0
2
3
1
1
2
0
_
_
. .
T
J
_
_
x
(k)
y
(k)
z
(k)
_
_
+
_
_
1
2
4
3
5
2
_
_
. .
c
J
En Matlab T
J
se puede obtener de la siguiente manera. Y tambien calcular las normas:
>> 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)
TJ =
0 -1/4 3/4
1/3 0 -2/3
-1 -1/2 0
>> 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
As que la iteracion 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 iteracion
para vericacion):
>> 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
Implementacion 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;
Metodo de Gauss-Seidel
Alternativamente, dado x
(k+1)
1
podemos reemplazarlo en la segunda ecuacion y dados x
(k+1)
1
y x
(k+1)
2
podemos
reemplazarlos en la tercera ecuacion para obtener la iteracion de Gauss-Seidel
x
(k+1)
1
=
1
a
11
( a
12
x
(k)
2
a
13
x
(k)
3
) +
b
1
a
11
x
(k+1)
2
=
1
a
22
(a
21
x
(k+1)
1
a
23
x
(k)
3
) +
b
2
a
22
x
(k+1)
3
=
1
a
33
(a
31
x
(k+1)
1
a
32
x
(k+1)
2
) +
b
3
a
33
La expresion general es
x
(k+1)
i
=
1
a
ii
_
_
i1

j=1
a
ij
x
(k+1)
j
+
n

j=i+1
a
ij
x
(k)
j
_
_
+
b
i
a
ii
, i = 1, 2, . . . , n; k = 0, 1, 2, . . .
Aqu se entiende que para i = 1 la primera suma es nula, y que para i = n la segunda suma es nula.
II.14 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
Para obtener la forma matricial, primero pasamos todos las variables con superndice (k+1) a la izquierda
en la ecuacion anterior
a
11
x
(k+1)
1
= a
12
x
(k)
2
a
13
x
(k)
3
+ b
1
a
21
x
(k+1)
1
+ a
22
x
(k+1)
2
= a
23
x
(k)
3
+ b
2
a
31
x
(k+1)
1
+ a
32
x
(k+1)
2
+ a
33
x
(k+1)
3
= +b
3
o en general
i

j=1
a
ij
x
(k+1)
j
=
n

j=i+1
a
ij
x
(k)
j
+ b
i
, i = 1, 2, . . . , n; k = 0, 1, 2, . . .
Esto en forma matricial es
(DL)x
(k)
= Ux
(k1)
+b
de donde se obtiene la forma iterativa matricial de Gauss-Seidel
x
(k)
= (DL)
1
Ux
(k1)
+ (DL)
1
b k = 0, 1, 2, 3, . . . ,
o
x
(k+1)
= T
GS
x
(k)
+c
GS
, k = 0, 1, 2, 3, . . . ,
con
T
GS
= (DL)
1
U y c
GS
= (DL)
1
b
(En terminos de M y N, aqu tenemos M = DL 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
x
(k+1)
=
1
4
y
(k)
+
3
4
z
(k)
+
1
2
y
(k+1)
=
1
3
x
(k+1)

2
3
z
(k)
+
4
3
z
(k+1)
= x
(k+1)

1
2
y
(k+1)
+
5
2
Reemplazando la primera ecuacion en la segunda se obtiene
y
(k+1)
=
1
12
y
(k)

5
12
z
(k)
+
3
2
Y reemplazando esta y la primera de arriba en la tercera se obtiene
z
(k+1)
=
7
24
y
(k)

13
24
z
(k)
+
5
4
En resumen
_
_
x
(k+1)
y
(k+1)
z
(k+1)
_
_
=
_
_
0
1
4
3
4
0
1
12

5
12
0
7
24

13
24
_
_
. .
T
GS
_
_
x
(k)
y
(k)
z
(k)
_
_
+
_
_
1
2
3
2
5
4
_
_
. .
c
GS
II.2. SISTEMAS LINEALES II.15
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
Implementacion 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.16 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
end
end
X = X;
Metodo SOR
SOR se reere 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 iteracion
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 subrelajacion 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 iteracion obtenida
aplicando la relajacion al metodo de Gauss-Seidel en la forma no matricial:
x
(k+1)
i
= (1 w)x
(k)
i
+
w
a
ii
_
_

i1

j=1
a
ij
x
(k+1)
j

n

j=i+1
a
ij
x
(k)
j
b
i
_
_
Para obtener la forma matricial de esta iteracion es conveniente tener todos los terminos (k+1) en la izquierda:
a
ii
x
(k+1)
i
+ w
i1

j=1
a
ij
x
(k+1)
j
= (1 w)a
ii
x
(k)
i
w
n

j=i+1
a
ij
x
(k)
j
+ wb
i
.
De aqu que
(DwL)x
(k+1)
= ((1 w)D+ wU)x
(k)
+ wb
y
x
(k+1)
= (DwL)
1
((1 w)D+ wU)x
(k)
+ w(DwL)
1
b = T
w
x
(k)
+c
w
con
T
w
= (DwL)
1
((1 w)D+ wU) y c
w
= w(DwL)
1
b.
Algunos resultados conocidos:
Teorema II.8 Si a
ii
= 0 entonces (T
w
) |w1|. De aqu que si w 0 o w 2, entonces el metodo SOR
no converge.
Una matriz (cuadrada) simetrica A se dice denida positiva si x
T
Ax > 0 para todo x (del tama no apropiado).
Existen otras caracterizaciones mas 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 las y primeras k columnas) tienen determinante positivo.
Teorema II.9 Si A is simetrica denida positiva y 0 < w < 2 entonces el metodo SOR converge a la unica
solucion del sistema Ax = b para todo x
(0)
.
Teorema II.10 Si A is simetrica denida positiva y tridiagonal entonces (T
GS
) = (T
J
)
2
< 1 y el valor
optimo de w en el metodo SOR es
w
opt
=
2
1 +
_
1 (T
J
)
2
.
Ejemplo. Consideramos el sistema Ax = b con
A =
_
_
_
_
10 5 0 0
5 10 4 0
0 4 8 1
0 0 1 5
_
_
_
_
b =
_
_
_
_
15
11
3
4
_
_
_
_
La siguiente tabla obtenida con Matlab muestra el comportamiento del radio espectral y las normas como
funcion de w. Se observa w
opt
1.2 La matriz es simetrica denida 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 Ninf N2]
ans = 0 1.0000 1.0000 1.0000 1.0000
0.1000 0.9668 0.9985 0.9875 0.9670
0.2000 0.9311 0.9942 0.9700 0.9315
0.3000 0.8925 0.9874 0.9475 0.8935
0.4000 0.8506 0.9782 0.9200 0.8531
0.5000 0.8047 0.9672 0.8875 0.8108
0.6000 0.7539 0.9546 0.8500 0.7672
0.7000 0.6970 0.9411 0.8075 0.7238
0.8000 0.6320 0.9270 0.7600 0.6838
II.18 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
0.9000 0.5558 0.9131 0.7075 0.6525
1.0000 0.4615 0.9000 0.6500 0.6389
1.1000 0.3279 0.8884 0.6975 0.6539
1.2000 0.2000 0.8790 0.8000 0.7021
1.3000 0.3000 0.8728 0.9500 0.7784
1.4000 0.4000 0.9309 1.1000 0.8760
1.5000 0.5000 1.2406 1.2500 0.9920
1.6000 0.6000 1.5869 1.4000 1.1269
1.7000 0.7000 1.9727 1.5500 1.2831
1.8000 0.8000 2.4013 1.7000 1.4637
1.9000 0.9000 2.8759 1.8500 1.6719
2.0000 1.0000 3.4000 2.0000 1.9106
>> y=sor(A,b,[0 0 0 0], 1.2, 5e-3,100)
k = 5
y = 0.9994
1.0016
1.0002
1.0000
Implementacion 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 solo enuncia la aproximacion de Taylor de primer orden para dos variables. Es simple-
mente una version del teorema de valor intermedio para dos variables.
Teorema II.11 (Aproximacion de Taylor de primer orden en dos dimensiones) Sean (p

1
, p

2
), (p
1
, p
2
)
R
2
dados y asumamos que f(x
1
, x
2
) : R
2
R es continuamente diferenciable para todo (x
1
, x
2
) en un
vecindario del segmento de recta que une (p

1
, p

2
) y (p
1
, p
2
). Entonces
f(p
1
, p
2
) = f(p

1
, p

2
) + (p
1
p

1
)
f(x
1
, x
2
)
x
1
|
x
1
=c
1
x
2
=c
2
+(p
2
p

2
)
f(x
1
, x
2
)
x
2
|
x
1
=c
1
x
2
=c
2
para alg un punto (c
1
, c
2
) en el segmento que une (p

1
, p

2
) y (p
1
, p
2
).
Prueba. Se dene la funcion g : R R como
g(t) = f(u
1
(t), u
2
(t)) donde u
1
(t) = (1 t)p

1
+ tp
1
, u
2
(t) = (1 t)p

2
+ tp
2
.
La aproximacion de Taylor de orden cero para g (teorema del valor intermedio) establece que
g(1) = g(0) + g

()(1 0) = g(0) + g

()
donde satisface 0 1. Pero g(0) = f(p

1
, p

2
) y
g

(t) |
t=
=
f
x
1
|
x
1
=u
1
()
x
2
=u
2
()
du
1
dt
|
t=
+
f
x
2
|
x
1
=u
1
()
x
2
=u
2
()
du
2
dt
|
t=
=
f(x
1
, x
2
)
x
1
|
x
1
=c
1
x
2
=c
2
(p
1
p

1
) +
f(x
1
, x
2
)
x
2
|
x
1
=c
1
x
2
=c
2
(p
2
p

2
)
donde (c
1
, c
2
) con c
1
= u
1
(), c
2
= u
2
() es un punto en el segmento de recta que conecta (p

1
, p

2
) y (p
1
, p
2
).
Las ecuacion del teorema se puede escribir en forma mas compacta con la ayuda del vector gradiente
f(x
1
, x
2
) =
_
f(x
1
,x
2
)
x
1
f(x
1
,x
2
)
x
2
_
;
Entonces la aproximacion 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 funcion f = (f
1
f
2
)
T
: R
2
R
2
, aplicado lo anterior a cada componente, se obtiene la
aproximacion
f (p) f (p

) +
_
f
1
(p

)
f
2
(p

)
_
(p p

)
= f (p

) +Jf (x)
x=p
(p p

)
donde
Jf (x) =
_
f
1
(x)
f
2
(x)
_
=
_
f
1
(x
1
,x
2
)
x
1
f
1
(x
1
,x
2
)
x
2
f
2
(x
1
,x
2
)
x
1
f
2
(x
1
,x
2
)
x
2
_
Jacobiano
es la llamada matriz Jacobiana de f . Las extension a f : R
n
R
n
es la natural; en particular, la matriz
Jacobiana es
Jf (x) =
_
_
_
f
1
(x)
.
.
.
f
n
(x)
_
_
_ =
_
_
_
_
f
1
(x)
x
1

f
1
(x)
xn
.
.
.
.
.
.
.
.
.
fn(x)
x
1

fn(x)
xn
_
_
_
_
II.20 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
II.3.1 Metodo de Punto Fijo
(El metodo de punto jo para sistemas se discutio 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 jo.)
Por simplicidad, nos restringimos al caso de dos funciones con dos variables, aunque todo se extiende sin
dicultad a n funciones con n variables. Estamos interesados en ecuaciones de la forma
f (x) = 0,
donde x = (x
1
, x
2
) R
2
y f = (f
1
, f
2
) : R
2
R
2
, la cual representa el sistema de ecuaciones
f
1
(x
1
, x
2
) = 0
f
2
(x
1
, x
2
) = 0.
Para resolver esta ecuacion, la transformamos en una ecuacion de punto jo: se determina una funcion
g = (g
1
, g
2
) : R
2
R
2
tal que
f (x) = 0 si y solamente si x = g(x)
en cierta region. Esta ecuacion de punto jo representa el sistema de ecuaciones
x
1
= g
1
(x
1
, x
2
)
x
2
= g
2
(x
1
, x
2
)
Para resolver x = g(x), el metodo de punto jo genera una sucesion
{x
(k)
}

k=0
= {(x
(k)
1
, x
(k)
2
)}

k=0
mediante la formula de iteracion
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 sucesion converge
a una solucion.
Convergencia
Supongamos que existe K tal que 0 < K < 1 y
Jg(x)

K
para todo x en la region R de interes. Sea p R un punto jo 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)
=
_
g
1
(c
1
)
g
2
(c
2
)
_
(x
(k)
p)
donde c
1
, c
2
son puntos en el segmento x
(k)
p. De aqu, tomando la norma

se obtiene
x
(k+1)
p


_
_
_
_
_
g
1
(c
1
)
g
2
(c
2
)
__
_
_
_

x
(k)
p

II.3. SISTEMAS NO LINEALES II.21


Entonces, usando la cota superior para Jg(x)

en R,
_
_
_
_
_
g
1
(c
1
)
g
2
(c
2
)
__
_
_
_

= max {g
1
(c
1
)

, g
2
(c
2
)

max {Jg(c
1
)

, Jg(c
2
)

}
K
(recuerde que la norma de una matriz, es el max de las normas de sus vectores la). Podemos concluir
que
x
(k+1)
p K x
(k)
p,
e iterando este argumento se tiene
x
(k)
p K
k
x
(0)
p.
De aqu que lim
k
x
(k)
p = 0 y por lo tanto lim
k
x
(k)
= p. Este argumento esencialmente verica
la parte (ii) del siguiente teorema. La parte (i) establece una condicion suciente para la existencia del punto
jo, que es una extension de la condicion para funciones de una variable.
Teorema II.12 (Teorema de punto jo.) Sea R = [a
1
, b
1
] [a
2
, b
2
] R
2
.
(i) Si g : R R
2
es continua y satisface g(x) R para todo x R entonces g tiene un punto jo en R.
(ii) Si ademas las primeras derivadas de g existen y son continuas en R y existe K > 0 tal que
Jg(x)

K < 1
para todo x R, entonces p es unico y la sucesion de punto jo con x
(0)
R converge a p. M as
precisamente se tienen las cotas de error
x
(k)
p

K
k
x
(0)
p

x
(k)
p


K
k
1 K
x
(0)
p

La condicion Jg(x)

K en forma expandida es

g
1
(x)
x
1

g
1
(x)
x
2

K y

g
2
(x)
x
1

g
2
(x)
x
2

K
Es posible reemplazar la norma

por otras normas y por el radio espectral pero es un poco mas difcil de
probar y mucho mas difcil de usar (ya sabemos que es difcil determinar el radio espectral de una matriz, y lo que
necesitariamos aqu sera vericar que (Jf(x)) < K en una region).
Ejemplo. Vamos a determinar la soluciones del siguiente sistema de ecuaciones usando el metodo de punto
jo:
x
2
4x y
2
3 = 0
x 2y 1 = 0
As que tenemos
f
1
(x
1
, x
2
) = x
2
1
4x
1
x
2
2
3
f
2
(x
1
, x
2
) = x
1
2x
2
1
II.22 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
Curvas f
1
(x) = 0
(hiperbola) y f
2
(x) = 0
(recta), y curva poligonal
encerrando la region
donde Jg

< 1
Podemos tener una idea aproximada de los ceros gracando las ecuaciones f
1
(x) = 0 y f
2
(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 jo:
(i) g(x) = x + cf(x) con c = 1/10.
Se tiene que
g
1
(x, y) = x + c(x
2
4x y
2
3)
g
2
(x, y) = y + c(x 2y 1)
lo que resulta en la iteracion
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
g
1
(x, y)
x
= (1 4c) + 2cx
g
1
(x, y)
y
= 2cy
g
2
(x, y)
x
= c
g
2
(x, y)
y
= 1 2c
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 region en el plano, que corresponde a la region encerrada por la curva poligonal en la
gura. Se puede gracar 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 Jf(x)

< 1. Ahora nos concentramos en el rectangulo R.


Veamos que esta sucediendo en 3D con la ayuda de Matlab. Denamos id
1
(x, y) = x y id
2
(x, y) = y.
Gracamos los pares de funciones g
1
(x, y), id
1
(x, y) y g
2
(x, y), id
2
(x, y) (lo siguiente muestra como producir
la primera graca; 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 graca superior izquierda muestra g
1
(x, y)
y id
1
(x, y) = x. La inferior izquierda mues-
tra g
2
(x, y) y id
2
(x, y) = y. La graca arriba
muestra las proyeciones de las curvas de in-
terseccion de los pares a la derecha. Su in-
terseccion es el cero de f(x, y) y punto jo de
g(x, y).
Las curvas de interseccion de los pares de supercies corresponden a x = g
1
(x, y) y y = g
2
(x, y). Las
proyecciones de estas curvas sobre el plano xy se intersectan precisamente en la solucion que se esta buscando
(gura en la derecha). Note que g(x) = (g
1
(x, y), g
2
(x, y)) R para todo x R. As que las condiciones del
teorema de punto jo para g se satisfacen en R.
Finalmente, la solucion la encontramos con la ayuda de Matlab (el punto x
(0)
= [1 1]
T
esta justo en la
frontera de la region con Jg(x

< 1):
II.24 II. SOLUCI

ON DE 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 funcion g diferente que se pueda usar para aproximar la otra solucion:
g
1
(x, y) =
_
4x + y
2
+ 3
g
2
(x, y) =
1
2
(x 1)
En este caso
g
1
(x, y)
x
=
2
_
4x + y
2
+ 3
g
1
(x, y)
y
=
y
_
4x + y
2
+ 3
g
2
(x, y)
x
=
1
2
g
2
(x, y)
y
= 0
De aqu se obtiene la condicion (la condicion para g
2
se satisface siempre: 1/2 < 1)
2 +|y|
_
4x + y
2
+ 3
< 1
y de aqu que
x > |y| +
1
4
.
La region correspondiente esta limitada por la curva poligonal en la gura.
Podemos entonces obtener la aproximacion con Matlab (note que converge a pesar de que el punto (1, 1)
no esta en la region con Jg(x)

< 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
Implementacion 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 Metodo 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 solucion, es decir f (p) = 0, y x
(k)
es el k-esimo termino en la sucesion. 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 iteracion de Newton
x
(k+1)
= x
(k)
Jf (x
(k)
)
1
f (x
(k)
).
Los argumentos de la seccion previa se pueden usar para vericar que bajo ciertas condiciones, esta iteracion
de punto jo converge. Se tiene que la iteracion de Newton es la iteracion de punto jo para
g(x) = x Jf (x)
1
f (x)
Lema II.13 Asumiendo que Jf (x)
1
= 0, se tiene que Jg(p) = 0 y la iteracion de Newton converge
sucientemente cerca de p.
Prueba. Para realizar este calculo, sea A
i
(x) la i-esima la de Jf (x)
1
,
A
i
(x)
x
j
el vector de derivadas
correspondiente y
f (x)
x
j
= (
f
1
x
j

fn
x
j
)
T
, la j-esima columna de Jf(x). As que
A
i
(x)
f (x)
x
j
=
ij
donde
ij
es un smbolo especial (llamado delta de Kronecker) denido por
ii
= 1 y
ij
= 0 para i = j. Con
la notacion establecida,
g
i
(x) = x
i
A
i
(x)f (x),
II.26 II. SOLUCI

ON DE SISTEMAS DE ECUACIONES
y de aqu que, usando
x
i
x
j
=
ij
,
g
i
(x)
x
j
=
x
i
x
j

A
i
(x)
x
j
f (x) A
i
(x)
f (x)
x
j
=
ij

A
i
(x)
x
j
f(x)
ij
=
A
i
(x)
x
j
f (x)
Como f(p) = 0, de esta ecuacion se deduce que para todo i, j,
g
i
(p)
x
j
= 0.
Esto quiere decir que Jg(p) = 0, y podemos concluir que la iteracion de Newton converge sucientemente
cerca de p.
Tambien se puede vericar que la convergenca es cuadratica.
En la practica, para evitar la inversion de la matriz Jf (x
(k)
), la iteracion se realiza de la siguiente manera:
1. Se determina la solucion 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:
f
1
(x, y) = x
2
4x y
2
3 = 0
f
2
(x, y) = x 2y 1 = 0
Entonces
Jf (x) =
_
f
1
(x,y)
x
f
1
(x,y)
y
f
2
(x,y)
x
f
2
(x,y)
y
_
=
_
2x 4 2y
1 2
_
En este ejemplo peque no, podemos facilmente invertir la matriz Jacobiana:
Jf (x)
1
=
1
(2x 4)(2) (2y)
_
2 2y
1 2x 4
_
=
1
(2y 4x + 8)
_
2 2y
1 2x 4
_
la cual es valida para 2y 4x + 8 = 0 o y = 2x 4. As que la iteracion de Newton es
_
x
(k+1)
y
(k+1)
_
=
_
x
(k)
y
(k)
_

1
(2y
(k)
4x
(k)
+ 8)
_
2 2y
(k)
1 2x
(k)
4
__
(x
(k)
)
2
4x
(k)
(y
(k)
)
2
3
x
(k)
2y
(k)
1
_
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)
_

1
(2y
(0)
4x
(0)
+ 8)
_
2 2y
(0)
1 2x
(0)
4
__
(x
(0)
)
2
4x
(0)
(y
(0)
)
2
3
x
(0)
2y
(0)
1
_
=
_
1
1
_

1
(2 1 4 1 + 8)
_
2 2 1
1 2 1 4
__
(1)
2
4 1 (1)
2
3
1 2 1 1
_
=
_
1
1
_

1
6
_
2 2
1 2
__
7
2
_
=
_
1
1
_

1
6
_
10
11
_
=
_
2/3
5/6
_
Con Matlab obtenemos (la funcion ha sido modicada para escribir la aproximacion en cada iteracion;
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
Implementacion Matlab
Note que J
1
f(x) es implementado por J \ Y (que sugiere que Y se divide por J). Se han agregado dos
lneas con la instruccion 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

Potrebbero piacerti anche