Escolar Documentos
Profissional Documentos
Cultura Documentos
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 .
()
(k)
(k)
{x(k) }
k=0 = {(x1 , x2 , . . . , , xn )}k=0
1
II.1
DE
II. SOLUCION
II.2
SISTEMAS DE ECUACIONES
(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.
(ii) kxk1 =
n
X
i=1
|xi |
(norma suma)
II.3
2
n
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
Normas Matriciales
Definici
on.
DE
II. SOLUCION
II.4
SISTEMAS DE ECUACIONES
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.
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 |
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
Para las normas matriciales tambien se tienen resultados de continuidad y equivalencia entre normas. En
particular se tienen las siguientes equivalencias
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
k
(k)
= pi . Esto es equivalente a
lim kx(k) pk = 0
{T(k) }
k=0 = {(tij )i,j=1 }k=0
k
(k)
II.7
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
Ejemplo.
0 2
2
0 1
T = 1
2 2
0
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
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
donde
donde
T = M1 N, c = M1 b
g(x) = Tx + c
k = 0, 1, 2, . . . ,
Criterios de Convergencia
Teorema II.5 (Criterio de la norma.)
{x(k) }
k=0 dada por
kTkk
kx(0) x(1) k
1 kTk
DE
II. SOLUCION
II.10
SISTEMAS DE ECUACIONES
1
kx(0) x(1) k.
1 kTk
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
(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.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
n
X
|aij |.
j=1
j6=i
|aii |
n
X
|aij |
< 1.
|aii |
j=i+1
DE
II. SOLUCION
II.12
La matriz A es
SISTEMAS DE ECUACIONES
4 1 3
2
A = 1 3
2 1
2
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
(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
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.13
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
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
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
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
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.
II.17
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
Ejemplo.
2
p
.
1 + 1 (TJ )2
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.
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.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
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
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
(k)
{x(k) }
k=0 = {(x1 , x2 )}k=0
(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.21
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]);
g1 (x, y)
= 2cy
y
g2 (x, y)
= 1 2c
y
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.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);
DE
II. SOLUCION
II.24
SISTEMAS DE ECUACIONES
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
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.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
=
Entonces
Jf (x) =
f1 (x,y)
x
f2 (x,y)
x
f1 (x,y)
y
f2 (x,y)
y
=
2x 4 2y
1
2
x(k) 2y (k) 1
(2y (k) 4x(k) + 8) 1 2x(k) 4
II.27
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
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