Вы находитесь на странице: 1из 86

Mtodos Numricos

Carlos Alberto Reales.1


1 Profesor Asociado

Universidad de Crdoba

Montera 2011

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 1 / 86


Ecuaciones No Lineales

Contenido

1 Ecuaciones No Lineales

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 2 / 86


Ecuaciones No Lineales

Ecuaciones No Lineales

Ecuaciones no Lineales. Mtodos de Convergencia


Garantizada: Mtodo de Biseccin
Mtodos de Convergencia Veloz: Mtodos de
NewtonRaphson y de la Secante.
Sistemas de Ecuaciones no Lineales. Mtodo de Newton.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 3 / 86


Ecuaciones No Lineales

Ecuaciones y Sistemas de Ecuaciones no Lineales

Estudiaremos algunos mtodos bsicos de resolucin de ecuaciones


o sistemas de ecuaciones no lineales.
El problema consiste en:
dada f : R R (no lineal), encontrar x R tal que f (x) = 0,
para el caso de una sola ecuacin, o bien
dada f : Rn Rn (no lineal), encontrar x = (x1 , . . . , xn )t Rn
tal que f (x) = 0, para el caso de un sistema de ecuaciones.

Para el caso escalar (una sola ecuacin), la solucin x se denomina


raz de la funcin f .

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 4 / 86


Ecuaciones No Lineales

Mtodos de convergencia garantizada

Existencia de races
Teorema del Valor Intermedio.
Sea f : [a, b] R una funcin continua en el intervalo [a, b] y
supongamos que f (a) < f (b). Entonces, para cada valor intermedio z
tal que f (a) < z < f (b), existe (a, b) tal que f () = z.

La misma conclusin se obtiene para el caso que f (a) > f (b).

En particular, si f (a) y f (b) tienen signos opuestos, entonces z = 0 es


precisamente un valor intermedio y, por lo tanto, existe por lo menos
una raz de f en el intervalo (a, b).

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 5 / 86


Ecuaciones No Lineales

Mtodo de Biseccin. Algoritmo.


1 Dados a y b tales que a < b y f C([a, b]) tal que f (a)f (b) < 0,
sean xa := a y xb := b. Por lo tanto f tiene una raz en el intervalo
(xa , xb ).
xa + xb
2 Sea xr := .
2
3 Forzosamente debemos caer en uno de los siguientes casos:
1 f (xa )f (xr ) = 0: en este caso se tiene que f (xr ) = 0; por lo tanto ya
localizamos una raz, xr , y se finaliza el proceso;
2 f (xa )f (xr ) < 0: por lo tanto f tiene una raz en el intervalo (xa , xr )
y redefinimos entonces xb como xr ;
3 f (xa )f (xr ) > 0: por lo tanto f tiene una raz en el intervalo (xr , xb )
y redefinimos entonces xa como xr .
4 En los casos (b) y (c) anteriores f tiene una raz en el nuevo
intervalo (xa , xb ). Por lo tanto, el proceso se vuelve a repetir
desde (2) con el nuevo intervalo (xa , xb ), hasta que se satisfaga
algn criterio de detencin.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 6 / 86
Ecuaciones No Lineales

Es fcil comprobar a partir del algoritmo que, si es la raz de la


ecuacin, entonces los valores xk = xr calculados en cada paso
(donde k denota el nmero de paso) satisfacen
 k
1
| xk | (b a) y, por lo tanto, = lm xk .
2 k

Observaciones.
 k
1
1 La cota del error (b a) en el mtodo de biseccin se
2
reduce a la mitad en cada paso.
2 El mtodo puede ser demasiado lento, pero al menos es un
mtodo en el que la convergencia est garantizada.
3 El mtodo es slo aplicable al caso escalar (de una sola
ecuacin), y no se generaliza al caso de sistemas de ecuaciones.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 7 / 86


Ecuaciones No Lineales

Mtodos de convergencia veloz

Orden de Convergencia de un Mtodo


U
na sucesin {xk }kN que converge a se dice convergente con
orden p 1, si

| xk+1 | C| xk |p k N,

para alguna constante C > 0.

Si p = 1 se dice que la sucesin converge linealmente a ; si p = 2,


que converge cuadrticamente; etc.
Cuanto mayor es p, ms velozmente se reduce el error.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 8 / 86


Ecuaciones No Lineales

El mtodo de Newton
Raphson.
Se basa en usar una recta tan-
gente a la grfica de f para
aproximar esta grfica, cerca del
punto donde la funcin se anula.
Supongamos que tenemos la X1
X2 X3
Y=0
aproximacin xk a la raz X0

de f (x). Trazamos la recta tan-


gente a la curva en el punto
(xk , f (xk )):

y = f (xk ) + f 0 (xk )(x xk ).

Esta recta cruza al eje de ab-


scisas en un punto xk+1 que
ser nuestra siguiente aproxi-
macin a la raz .
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 9 / 86
Ecuaciones No Lineales

El punto xk+1 donde la recta tangente

y = f (xk ) + f 0 (xk )(x xk )

corta al eje de abscisas queda determinado por

f (xk ) + f 0 (xk )(xk+1 xk ) = 0.

El mtodo de la tangente define entonces la sucesin de


aproximaciones a de la manera siguiente:

f (xk )
xk+1 := xk , k = 0, 1, 2, . . .
f 0 (xk )

a partir de una aproximacin inicial x0 dada y siempre que f 0 (xk ) 6= 0.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 10 / 86


Ecuaciones No Lineales

Teorema
Sea f C 2 ([a, b]) con una raz (a, b) y sean m1 y M2 tales que

m1 mn f 0 (x) ax f 00 (x) M2 .

y m
x[a,b] x[a,b]

Supongamos que m1 > 0.


Dado x0 [a, b], sea {xk }kN la sucesin obtenida por el mtodo de
NewtonRaphson. Supongamos que xk [a, b] k N. Entonces

M2
| xk+1 | | xk |2 .
2m1
Por lo tanto, si x0 se escoge suficientemente cercano a , se tiene la
convergencia
lm xk = ,
k

con orden p = 2.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 11 / 86


Ecuaciones No Lineales

Teorema
Sea f C 2 ([a, b]) y sean m1 y M2 tales que

m1 mn |f 0 (x)| y ax |f 00 (x)| M2 .
m
x[a,b] x[a,b]

Supongamos que m1 > 0.


Dado x0 [a, b], sea {xk }kN la sucesin obtenida por el mtodo de
NewtonRaphson. Supongamos que xk [a, b] k N. Entonces

M2
| xk+1 | |xk+1 xk |2 , k = 0, 1, 2, . . .
2m1

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 12 / 86


Ecuaciones No Lineales

Observaciones.
1 De acuerdo al Teorema 1, si el mtodo de NewtonRaphson
converge, lo hace cuadrticamente (es decir, con orden p = 2).
2 La convergencia est asegurada por el Teorema 1, bajo la
hiptesis de que x0 est suficientemente cerca de la solucin
:
2m1
| x0 | < .
M2
Sin embargo, no hay una forma prctica de verificar esto.
3 El Teorema 2, nos provee de una estimacin a posteriori del
error, siempre que se conozcan las cotas m1 y M2 . Si se itera
hasta que r
2m1 
|xk+1 xk | ,
M2
entonces del teorema se obtiene

| xk+1 | .
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 13 / 86
Ecuaciones No Lineales

Criterio de detencin.
Si el mtodo de NewtonRaphson converge, cuando

|xk+1 xk | ,

M2 
con  suficientemente pequeo como para que  1, entonces se
2m1
tiene que

| xk | | xk+1 | + |xk+1 xk |
M2
|xk+1 xk |2 + |xk+1 xk | |xk+1 xk | .
2m1
Como adems | xk+1 |  | xk | , es razonable estimar

| xk+1 | |xk+1 xk | .

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 14 / 86


Ecuaciones No Lineales

Criterio de detencin(2)
En consecuencia, si se desea calcular la raz con error menor que 
mediante este mtodo, puede usarse como criterio de detencin
confiable
|xk+1 xk | .

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 15 / 86


Ecuaciones No Lineales

Ejemplo

Clculo de 2.
Biseccin NewtonRaphson
1 1.50000000000000 2.00000000000000
Resolucin de la 2 1.25000000000000 1.50000000000000
ecuacin 3 1.37500000000000 1.41666666666667
4 1.43750000000000 1.41421568627451
x2 2 = 0 5 1.40625000000000 1.41421356237469
6 1.42187500000000
con error menor que 7 1.41406250000000
105 . .. ..
. .
Resultados 15 1.41421508789063
obtenidos por los 16 1.41419982910156
mtodos de 17 1.41420745849609
Biseccin y
NewtonRaphson.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 16 / 86


Ecuaciones No Lineales

El mtodo de la Secante.
Cuando la derivada de la funcin f es difcil de evaluar, conviene
utilizar el mtodo de la secante en lugar del de NewtonRaphson.

ste simplemente consiste en


reemplazar la derivada f 0 (xk )
por el cociente incremental

f (xk ) f (xk1 )
.
xk xk1 x
2
y=0
x x1 x0
3

Es decir,
xk xk1
xk+1 := xk f (xk ) ,
f (xk ) f (xk1 )

para k = 1, 2, . . . , con x0 , x1 da-


dos.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 17 / 86
Ecuaciones No Lineales

Teorema
Sea f C 2 ([a, b]) con una raz (a, b) y tal que f 0 (x) 6= 0 x [a, b].
Dado x0 , x1 [a, b], sea {xk }kN la sucesin obtenida por el mtodo
de la secante. Supongamos que xk [a, b] k N. Entonces

| xk+1 | C | xk |p ,

1+ 5
con p = y C > 0.
2
Por lo tanto, si x0 se escoge suficientemente cercano a , se tiene la
convergencia
lm xk = ,
k

1+ 5
con orden p = 1,618...
2

C
omo en el mtodo de NewtonRaphson, la convergencia del mtodo
de Universidad
la secante no ()est siempre
de Cordoba Curso garantizada,
de Mtodos Numricos pero cuando tiene lugar 18es/ 86
Octubre 2012
Ecuaciones No Lineales

Sistemas de Ecuaciones no lineales

Sea f : Rn Rn una funcin de varias variables, no-lineal. Se


quiere resolver el sistema de ecuaciones f (x) = 0, donde
x = (x1 , . . . , xn )t Rn representa al vector de incgnitas.
El mtodo de Newton.
Una de las ventajas del mtodo de NewtonRaphson adems de su
velocidad de convergencia, es que se puede generalizar fcilmente a
sistemas de ecuaciones no lineales. Esta generalizacin se conoce
como mtodo de Newton.
Al igual que en el mtodo de NewtonRaphson, buscamos una
aproximacin de la solucin mediante un desarrollo de Taylor.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 19 / 86


Ecuaciones No Lineales

Supongamos que = (1 , . . . , n )t Rn es la solucin del sistema de


ecuaciones, y que f = (f1 , . . . , fn )t es dos veces diferenciable.
Entonces, aplicando el desarrollo de Taylor para funciones de varias
variables de f en torno a una aproximacin de la raz
(k) (k)
x(k) = (x1 , . . . , xn )t , se tiene que:
 
0 = f () = f (x(k) ) + Df (x(k) ) ( x(k) ) + O k x(k) k2 ,

donde Df (x(k) ) es la matriz Jacobiana de f en x(k) :

f1 (k) f1 (k)

(x ) (x )
x1 xn
(k)
Df (x ) :=

.
.. .
..

.

fn fn (k)
(k)
(x ) (x )
x1 xn

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 20 / 86


Ecuaciones No Lineales

x(k) k
es pequeo, el trmino O k x(k) k2 es mucho

Cuando k
ms pequeo an y puede despreciarse en en el desarrollo de Taylor
anterior:
 
0 = f (x(k) ) + Df (x(k) ) ( x(k) ) + O k x(k) k2
f (x(k) ) + Df (x(k) ) ( x(k) ).

Si adems la matriz Df (x(k) ) es invertible, entonces podemos


aproximar la raz despejndola en la ecuacin anterior:

x(k) Df (x(k) )1 f (x(k) ).

El mtodo de Newton consiste en, dada la aproximacin de la


solucin x(k) , tomar como nueva aproximacin x(k+1) el valor de la
expresin anterior:

x(k+1) := x(k) Df (x(k) )1 f (x(k) ), k = 0, 1, 2, . . .

donde x(0) es la aproximacin inicial.


Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 21 / 86
Ecuaciones No Lineales

En la prctica no es necesario (ni conveniente) invertir la matriz


Df (x(k) ), sino que se utiliza un mtodo menos costoso: resolver en
cada iteracin el sistema de ecuaciones lineal

Df (x(k) ) (x(k+1) x(k) ) = f (x(k) ).

As, llamando dx(k) := x(k+1) x(k) , se obtiene el siguiente algoritmo:

Dado x(0) Rn ,


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


resolver Df (x(k) ) dx(k) = f (x(k) ),

x(k+1) := x(k) + dx(k) ,
hasta que se satisfaga algn criterio de detencin.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 22 / 86


Ecuaciones No Lineales

Observaciones.
1 Los teoremas de convergencia, y estimacin del error del mtodo
de NewtonRaphson se pueden generalizar al caso de sistemas,
reemplazando el valor absoluto por una norma vectorial. As se
obtiene que

k x(k+1) k Ck x(k) k2 , k = 0, 1, 2, . . .

donde C es una constante positiva que depende de las derivadas


primeras y segundas de f .
2 Al igual que en el mtodo de NewtonRaphson, si se desea
calcular la solucin del sistema con error menor que , puede
usarse
kx(k+1) x(k) k 
como criterio de detencin.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 23 / 86


Ecuaciones No Lineales

Localizacin de las
Ejemplo
races:
Resolver el siguiente
sistema de ecuaciones
con error menor que
tol = 105 :
 2
y + x2 = 1 1.5

y = x2 1
2
y=x

0.5

Funciones a utilizar: 0

0.5

 2
x + y2 1
 x2+y2=1
1

f (x, y) =
y x2 1.5
1.5 1 0.5 0 0.5 1 1.5

 
2x 2y
Df (x, y) =
2x 1

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 24 / 86


Ecuaciones No Lineales

Algoritmo:

(x0 , y0 ): datos iniciales.


Para k = 0, 1, 2, . . .
1 x2k yk2
   
2xk 2yk xk
resolver = ,
2xk 1 yk x2k yk
xk+1 := xk + xk ,
yk+1 :=q yk + yk ,
hasta que x2k + yk2 < tol.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 25 / 86


Ecuaciones No Lineales

Resultados obtenidos:
x y
1.00000000000000 1.00000000000000
0.83333333333333 0.66666666666667
0.78809523809524 0.61904761904762
0.78615406630609 0.61803444782168
0.78615137776208 0.61803398874999

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 26 / 86


Ecuaciones No Lineales

Conociendo a Matlab

M ATLAB (www.mathworks.com) es un lenguaje de programacin y


una herramienta de clculo.

>> a=1; % Un escalar, ingreselo con y sin ";".

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 27 / 86


Ecuaciones No Lineales

Para ingresar el vector fila v = (1 3 5 7):

>> v=[1 3 5 7]; % Las componentes van separadas.


1
2
Para ingresar el vector columna w =
3 :

>> w=[1;3;5;7]; % Las filas se separan con ";".

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 28 / 86


Ecuaciones No Lineales

Muchas veces los vectores tiene una ley de formacin. Esto permite
una mayor facilidad para ingresarlos al computador.

>> q=2:2:200; % El primer numero indica la


>> % componente inicial, el segundo
>> % el incremento y el ultimo
>> % la componente final.

Cuando el incremento est ausente, se presupone el valor 1: as, son


equivalentes

r=1:45; y r=1:1:45;

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 29 / 86


Ecuaciones No Lineales

A continuacin mostraremos ejemplos de algunas operaciones con


vectores que pueden realizarse:

>> u=[1 2 3 4 5 6 7 8]; % Se ingresa un vector.


>> v=8:-1:1 % Se ingresa otro vector (fila).
>> u+v % Suma de vectores.
>> v % Vector transpuesto (columna).
>> u*v % El vector u por el v transpuesto .
>> sqrt(u*u) % "sqrt" calcula la raiz cuadrada)
>> sin(u) % cada componente es el seno
>> %de cada componente de u
>> cos(u) % Idem con coseno.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 30 / 86


Ecuaciones No Lineales

>> u.*v % Vector cuyas componentes son


>> % los productos de las componentes de u por
>> % las de v (notar el . antes del signo *).
>> u./v % Vector cuyas componentes son las
>> % divisiones de las componentes de u por
>> % las de v (notar el . antes del signo /).
>> u.^3 % Vector cuyas componentes son los cubos
>> % de las componentes de u
>> % (notar el . antes del signo *).
>> 5^4 % Para elevar un escalar a una
>> % potencia no es necesario usar el punto.
>> length(v) % Entrega el numero de componentes
>> % del vector v (longitud de v).

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 31 / 86


Ecuaciones No Lineales


1 2 5
Para ingresar la matriz M = 2 1 6 :
3 0 1

>> M=[1 2 5; 2 -1 6; 3 0 -1] % Una matriz se ingresa


>> % por filas.
>> % Los elementos de una misma
>> % fila se separan por un
>> % espacio y para separar una
>> % fila de otra se usa ";".
>> IM=inv(M) % Inversa de la matriz.
>> TM=M % Transpuesta de la matriz.
>> Det=det(M) % Determinante de la matriz.
>> VP=eig(M) % Valores propios de la matriz.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 32 / 86


Ecuaciones No Lineales

Notar que un escalar es una matriz 1 1 y un vector columna es una


matriz n 1. A continuacin mostraremos ejemplos de algunas
operaciones que pueden realizarse con matrices (hgalas una a una):

>> A=[1 2 5 5; 2 -1 6 0; 3 0 -1 4; -1 2 4 8; 1 2 3 6]
>> % Se ingresa la matriz A.
>> A(2,3) % Muestra el elemento que esta en
>> % la posicion (2,3).
>> A(:,4) % Muestra la cuarta columna de A.
>> A(2,:) % Muestra la segunda fila de la matri
>> A(1:3,2) % Muestra desde el elemento 1 al 3
>> % de la columna 2 de la matriz A.
>> [m,n]=size(A)% Muestra los numeros de filas (m)
>> % y columnas (n) de la matriz A.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 33 / 86


Ecuaciones No Lineales

Los siguientes comandos permiten construir matrices preestablecidas:

eye Matriz identidad.


zeros Matriz de ceros.
ones Matriz de unos.
diag Si x es un vector, diag(x) crea una matriz diagonal
cuya diagonal son las componentes de x.
Si A es una matriz cuadrada, diag(A) es un vector
formado por la diagonal de A.

triu Parte triangular superior de una matriz.


tril Parte triangular inferior de una matriz.
rand Matriz generada aleatoriamente con valores entre 0 y 1.
hilb Matriz de Hilbert.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 34 / 86


Ecuaciones No Lineales

Los comandos anteriores combinados permiten ahorrar tiempo en la


construccin de algunas matrices. Por ejemplo:

>> A=[1 2; 5 -2]


>> B=[-10 30; A]
>> C=[eye(2) zeros(2,2); zeros(2,2) A]
>> D=diag(diag(C))

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 35 / 86


Ecuaciones No Lineales

M ATLAB permite hacer grficos, mediante el comando plot. Por


ejemplo:

>> x=0:.01:10;
>> y=sin(x);
>> plot(x,y)
>> plot(x,y,r) % Note la diferencia.
>> plot(x,y,*) % Note la diferencia.
>> plot(x,y,*y) % Note la diferencia.
>> z=sin(x).^2;
>> plot(x,y,r,x,z,b) % Asi pueden dibujarse
>> % dos curvas en un mismo
>> % grafico.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 36 / 86


Ecuaciones No Lineales

Tambin pueden hacerse varios grficos a la vez agregando el


comando subplot. Por ejemplo:

>> x=1:.01:10;
>> y=sin(4*x);
>> subplot(2,2,1) % Se divide la pantalla grafica
>> % en dos filas por dos columnas y
>> % se utiliza la primera ventana.
>> plot(x,y)
>> subplot(2,2,2) % Se usa la segunda ventana.
>> plot(x,y,r) % Note la diferencia .
>> subplot(2,2,3) % Se usa la tercera ventana.
>> plot(x,y,*) % Note la diferencia.
>> subplot(2,2,4) % Se usa la cuarta ventana.
>> plot(x,y,*y) % Note la diferencia.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 37 / 86


Ecuaciones No Lineales

Para borrar los contenidos de todas las variables se usa el comando


clear.
Para conocer la sintaxis correcta de alguna sentencia se usa el
comado help. Por ejemplo:

>> help plot

Importante: M ATLAB diferencia entre maysculas y minsculas. Por lo


tanto, a y A son variables diferentes!

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 38 / 86


Ecuaciones No Lineales

Sistemas de Ecuaciones
Lineales

Preliminares: Expresin matricial. Dificultades numricas.


Factorizacin LU: Eliminacin Gaussiana. Relacin con la
factorizacin LU.
Pivoteo: Estrategia de pivoteo parcial.
Adaptacin a matrices con estructuras particulares: Mtodo
de Cholesky. Matrices banda y tridiagonales.
Propagacin de errores: Nmero de condicin. Estimacin a
posteriori del error.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 39 / 86


Ecuaciones No Lineales

Expresin matricial
Todo sistema de ecuaciones lineales puede escribirse
matricialmente:

a11 x1 + + a1n xn = b1

.. .. Ax = b,
. .
an1 x1 + + ann xn = bn

donde

a11 a1n b1
.. .. Rnn ..
A := . . y b = . Rn
an1 ann bn

x1
..
son los datos y x = . Rn es el vector de
xn
incgnitas.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 40 / 86
Ecuaciones No Lineales

Matriz inversa

El sistema de ecuaciones lineales Ax = b tiene solucin nica si


y slo si A es una matriz no singular.
Recordemos que una matriz A Rnn es no singular si y slo si
se cumple cualquiera de estas condiciones:
1 A es invertible: A1 Rnn : AA1 = A1 A = I;
2 det(A) 6= 0;
3 todas las filas (y columnas) de A son l.i.: rango(A) = n.
4 0 no es valor propio de A: 0 / (A).
Si A es no singular, entonces

Ax = b x = A1 b.

Sin embargo, en general, no es conveniente calcular la matriz


inversa A1 para resolver un sistema de ecuaciones, pues
hacerlo as resulta mucho ms costoso computacionalmente.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 41 / 86


Ecuaciones No Lineales

Matriz inversa (cont.)


Por el contrario, una manera natural de calcular la inversa de una
matriz A Rnn consiste en resolver n sistemas de ecuaciones
lineales. Si llamamos c1 , . . . , cn a las columnas de A1 :


1
c1 , . . . , cn R n ,

A = c cn ,
1

entonces


c = AA1 = I = e1
n
Ac1 Acn = A c1 en

donde las columnas e1 , . . . , en de I son los vectores de la base


cannica de Rn . Por lo tanto, A1 puede calcularse columna por
columna resolviendo:
Aci = ei , i = 1, . . . , n.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 42 / 86
Ecuaciones No Lineales

Dificultades numricas

Los siguientes aspectos deben tenerse en cuenta al disear un


algoritmo para resolver un sistema de ecuaciones lineales:
Costo operacional. El tiempo de clculo del computador necesario
para resolver el sistema debe ser lo menor posible.
Una medida standard del costo operacional es la cantidad de
operaciones aritmticas (+, , , /) que requiere un algoritmo.
ste usualmente se expresa en flop (floating point operations).
Costo de almacenamiento. La cantidad de posiciones de memoria
que requiere el computador para ejecutar un algoritmo
(representacin de los datos, variables auxiliares, etc.) tambin
debe ser la menor posible.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 43 / 86


Ecuaciones No Lineales

Costo operacional

Precisin de los resultados. Los algoritmos deben ser estables, en


el sentido de amplificar lo menos posible los errores de los datos
y los de redondeo.
Los sistemas que aparecen en muchas aplicaciones son de gran
tamao. Un sistema de 1000 1000 hoy se considera de tamao
moderado y en algunas aplicaciones deben resolverse sistemas
de ecuaciones con cientos de miles de incgnitas.
Hay mtodos que en teora permiten resolver cualquier sistema
de ecuaciones lineales, pero que en la prctica requieren tiempos
de clculo prohibitivos.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 44 / 86


Ecuaciones No Lineales

Costo operacional

Mal ejemplo: Regla de Cramer. Este procedimiento permite


calcular explcitamente la solucin de un sistema Ax = b
mediante:
det(Ai )
xi = , i = 1, . . . , n,
det(A)
donde Ai es la matriz que se obtiene a partir de A reemplazando
en sta su columna i-sima por el segundo miembro (o lado
derecho) del sistema, b.
Si los determinantes se calculan mediante la frmula recursiva
usual de desarrollo por fila (o por columna), el costo operacional
de la Regla de Cramer es de aproximadamente (n + 1)! flop.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 45 / 86


Ecuaciones No Lineales

Costo operacional (cont.)

Buen ejemplo: Mtodo de Eliminacin Gaussiana. Este


procedimiento se basa en el mtodo algebraico de
transformaciones elementales. Su costo operacional veremos que
es de aproximadamente 32 n3 flop.
Comparacin:
En un computador de 1 Gflop (109 flop) por segundo:

n 10 15 20 100 1000 2000


Regla de Cramer
flop 4 107 2 1013 5 1019 10160
tiempo 0.04 s 5.5 h 1500 a
Eliminacin Gaussiana
flop 666 2250 5333 7 105 7 108 5 109
tiempo 0. s 0. s 0. s 0s 0.73 s 4.88 s

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 46 / 86


Ecuaciones No Lineales

Costo de almacenamiento
En muchas aplicaciones los sistemas de ecuaciones lineales que
deben resolverse involucran matrices de gran tamao, pero tales
que la mayor parte de sus entradas son nulas.
Estas matrices se denominan dispersas o ralas (en ingls y en
M ATLAB, sparse) y existen tcnicas para almacenarlas que slo
requieren una cantidad de posiciones de memoria
aproximadamente igual al nmero de entradas no nulas de la
matriz.
Los mtodos algebraicos usuales (por ejemplo el de
transformaciones elementales) requieren modificar la matriz
original del sistema y, muchas veces, destruyen el carcter
disperso de la misma.
Para evitar esto, estudiaremos tambin otros procedimientos (
mtodos iterativos) que no modifican la matriz del sistema, por lo
que resultarn ms convenientes desde el punto de vista del
costo de almacenamiento.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 47 / 86
Ecuaciones No Lineales

Precisin de los resultados

La resolucin de un sistema de ecuaciones lineales en el


computador involucra la propagacin de errores en los datos y
errores de redondeo. Por ello:
1 Hay que disponer de alguna tcnica que permita predecir cuando
la resolucin de un sistema de ecuaciones puede propagar
drsticamente estos errores.
2 Hay que disear mtodos numricos estables, que reduzcan la
propagacin de los errores de redondeo tanto como sea posible.
3 Hay que disear tcnicas computacionales que nos permitan,
despus de calcular la solucin de un sistema de ecuaciones,
estimar a posteriori la precisin de la solucin calculada. Es decir,
testear si el error con el que se la calcul est por debajo de una
tolerancia aceptable.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 48 / 86


Ecuaciones No Lineales

Solucin de sistemas con matriz triangular


Dadas

l11 0 0

u11 u12 u1n
.. .. 0 u22 u2n
l21 l22 . .
L= y U = .

.. .. ..

. . . . . ..
. . . 0
. . . .
ln1 ln2 lnn 0 0 unn

decimos que L es triangular inferior y U es triangular superior.


Dado que

det(L) = l11 l22 lnn y det(U ) = u11 u22 unn ,

una matriz triangular es no singular si y slo si sus trminos


diagonales son todos no nulos.
La resolucin de sistemas de ecuaciones lineales con matrices
triangulares es muy sencilla y su costo operacional es bajo.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 49 / 86
Ecuaciones No Lineales

Solucin de sistemas con matriz triangular (cont.)

Consideremos un sistema Lx = b con matriz triangular inferior L.


Procedemos por sustitucin progresiva:

l11 x1 = b1 x1 = b1 /l11
l21 x1 + l22 x2 = b2 x2 = (b2 l21 x1 ) /l22

.. ..

. .
ln1 x1 + + lnn xn = bn xn = (bn ln1 x1 lnn1 xn1 ) /ln

x1 = b1 /l11
Para i = 2, .
..,n
Algoritmo: i1
xi = 1 bi
X
lij xj
lii
j=1

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 50 / 86


Ecuaciones No Lineales

Solucin de sistemas con matriz triangular (cont.)


n
X i1
X n
X
Costo operacional: 1 + 1 + 2 = 1 + (2i 1) = n2 flop.
i=2 j=1 i=2

Ejercicio:
1 Deducir el siguiente algoritmo (sustitucin regresiva), para
resolver un sistema U x = b con matriz triangular superior U :

xn = bn /unn
Para
i = n 1, . . . , 1
n
1 X
xi = bi uij xj

u ii j=i+1

2 Calcular su costo operacional.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 51 / 86


Ecuaciones No Lineales

Mtodo de Eliminacin Gaussiana (M.E.G.)


El mtodo de eliminacin gaussiana consiste en reducir
mediante transformaciones elementales un sistema Ax = b a
otro equivalente (es decir, que tenga la misma solucin), de la
forma

U x = b,
donde U es una matriz triangular superior. Luego, el sistema
resultante se resuelve por el algoritmo descrito para matrices
triangulares.
Denotemos el sistema original por A(1) x = b(1) . El proceso
empleado consiste en reemplazar las ecuaciones por
combinaciones no triviales de las otras. As, consideremos la
(1)
matriz no singular A Rnn y supongamos que el elemento a11
es no nulo. Consideremos los multiplicadores
(1)
ai1
mi1 = (1)
, i = 2, . . . , n,
a11
(1) ()
Universidad de Cordoba Curso de Mtodos Numricos Octubre 2012 52 / 86
Ecuaciones No Lineales

Mtodo de Eliminacin Gaussiana (cont.)


Es posible eliminar la incgnita x1 de la segunda ecuacin en
adelante, por simple sustraccin a la fila i, i = 2, . . . , n, de la
primera fila previamente multiplicada por mi1 y haciendo lo mismo
para el vector b:
(2) (1) (1)
aij = aij mi1 a1j , i, j = 2, . . . , n,
(2) (1) (1)
bi = bi mi1 b1 , i = 2, . . . , n,
(1)
donde bi denota la componente i-sima del vector b(1) .
As se obtiene un sistema A(2) x = b(2) equivalente al anterior:
(1) (1) (1) (1) (1)
a11 a12 a13 a1n x1 b1
(2) (2) (2) (2)
0 a22 a23 a2n x2 b2

0 a(2) (2) (2) x
(2)
32 a33 a3n 3 = b3
..

.. .. .. .. ..

. . . . . .
0 a
(2)
a
(2)
a
(2) xn b
(2)
n2 n3 nn n

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 53 / 86


Ecuaciones No Lineales

Mtodo de Eliminacin Gaussiana (cont.)


(2)
A continuacin, si a22 6= 0, podemos anlogamente eliminar la
incgnita x2 de la tercera ecuacin en adelante.
Siguiendo con este proceso k-veces (k n), se obtiene el sistema
A(k) x = b(k) , 1 k n,
donde la matriz A(k) toma la siguiente forma:

(1) (1) (1)
a a12 a1n
11
0 a(2) 22
(2)
a2n
.. .. .. ..

(k)
. . . .
A = .
.. (k)
0 akk
(k)
akn
. .. .. ..
.
. . . .

(k) (k)
0 0 ank ann
(i)
Para realizar este proceso hemos supuesto que aii 6= 0,
i = 1, . . . , k 1.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 54 / 86
Ecuaciones No Lineales

Mtodo de Eliminacin Gaussiana (cont.)


Notemos que para k = n obtenemos el sistema triangular superior
(1) (1) (1)
(1)
a11 a12 a1n x1 b1
(2) (2) (2)
0 a22 x
a2n 2 b2

.. = .
. ..
.. ..

.
. . . . . ..
(n) xn (n)
0 0 ann bn
(k)
Los valores son llamados pivotes y deben ser valores no
akk
nulos para k = 1, . . . , n 1.
(n)
Si la matriz original A es no singular, entonces tambin ann 6= 0 y
el sistema triangular superior resultante puede resolverse por el
algoritmo ya visto:
(n)
xn = b(n) /ann
Para
i = n 1,. . . , 1
n
xi = 1 b(i) (i)
X
(i) i aij xj
aii

j=i+1

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 55 / 86


Ecuaciones No Lineales

Algoritmo del M.E.G.

Recordemos que en el
Para k = 1, . . . , n 1
paso k-simo se parte de
para i = k + 1, . . . , n
la siguiente matriz: (k) (k)




mik = aik /akk
(1) (1) (1) para j = k + 1, . . . , n
a11 a12 a1n


(k+1) (k) (k)
0 a(2) (2) aij = aij mik akj

22 a2n




(k+1) (k) (k)
.. .. .. ..
bi = bi mik bk
. . . . (n)
. xn = b(n) /ann
. (k) (k) Para i = n 1,
. . . , 1
. 0 akk akn
. n
.. .. ..

. 1 (i)
X (i)
. . . . xi = (i) bi aij xj

aii

(k) (k) j=i+1
0 0 ank ann

Observacin: El algoritmo no precisa crear los ceros debajo de


la diagonal de la matriz, pues stos luego no se utilizan.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 56 / 86


Ecuaciones No Lineales

Costo Operacional del M.E.G.

Costo del paso de eliminacin:


Para k = 1, . . . , n 1 n1
X X n X n

para i = k + 1, . . . , n 1 + 2 + 2

(k) (k) k=1 i=k+1 j=k+1
mik = aik /akk

n1
para j = k + 1, . . . , n
X

a(k+1) = a(k) m a(k) = (n k) [2(n k) + 3]
ij ij ik kj k=1
b(k+1) = b(k) mik b(k)
 
i i k 2 3 1 2 7
= n + n n flop
3 2 6

Costo de la solucin de sistema triangular superior: n2 flop.


 
2 3 3 2 7
Costo operacional total: n + n n flop.
3 2 6

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 57 / 86


Ecuaciones No Lineales

Costo Operacional del M.E.G. (cont.)

2 3
n Eliminacin Sist. Triang. Total M.E.G. 3n % Elim
10 705 100 805 666 87.58
20 5510 400 5910 5333 93.23
30 18415 900 19315 18000 95.34
40 43420 1600 45020 42666 96.45
50 84525 2500 87025 83333 97.13
100 671550 10000 681550 666666 98.53
200 5353100 40000 5393100 5333333 99.26
300 18044650 90000 18134650 18000000 99.50
400 42746200 160000 42906200 42666666 99.63
500 83457750 250000 83707750 83333333 99.70
600 144179300 360000 144539300 144000000 99.75
700 228910850 490000 229400850 228666666 99.79
800 341652400 640000 342292400 341333333 99.81
900 486403950 810000 487213950 486000000 99.83
1000 667165500 1000000 668165500 666666666 99.85

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 58 / 86


Ecuaciones No Lineales

Costo Operacional del M.E.G. (cont.)


Para n grande, los trminos proporcionales a n2 (y a n) resultan
despreciables respecto a los proporcionales a n3 .
Por esa razn, el costo operacional del mtodo de eliminacin
gaussiana se dice que es de aproximadamente
2 3
n flop
3
Notemos que la mayor parte del costo corresponde a la
triangularizacin de la matriz:
Para k = 1, . . . , n 1

para i = k + 1, . . . , n
m = a(k) /a(k)

ik ik kk Costo operacional:
para j = k + 1, . . . , n

a(k+1) (k) (k)

ij = aij mik akj
2 3
n flop.
3
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 59 / 86
Ecuaciones No Lineales

Factorizacin LU

Ejemplo:

m21 = 2
1 3 2 m31 = 4 1 3 2 m32 = 3 1 3 2
A = 2 8 1 0 2 3 0 2 3
4 6 5 0 6 3 0 0 12

1 3 2 1 0 0 1 0 0
U := 0 2 3 L := m21 1 0 = 2 1 0
0 0 12 m31 m32 1 4 3 1
Notemos que

1 0 0 1 3 2 1 3 2
LU = 2 1 0 0 2 3 = 2 8 1 = A
4 3 1 0 0 12 4 6 5

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 60 / 86


Ecuaciones No Lineales

Factorizacin LU (cont.)

Si la matriz A es tal que la etapa de eliminacin del M.E.G. se


(i)
puede llevar a cabo (es decir si todos los pivotes aii 6= 0,
i = 1, . . . , n 1), entonces

A = LU ,

donde:
U es la matriz triangular superior que resulta de la eliminacin
y
L es la matriz triangular inferior de los multiplicadores mij :

1 0 0
.. ..
m21 1 . .
L= .

.. .. ..
. . 0
mn1 mnn1 1

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 61 / 86


Ecuaciones No Lineales

Solucin de sistemas mediante factorizacin LU

Si A = LU , entonces 
Ly = b,
Ax = b L(U x) = b
U x = y.

Por lo tanto, resolver un sistema Ax = b es equivalente a:


1 resolver Ly = b y, luego,
2 resolver U x = y.
Como estos sistemas son triangulares (inferior y superior,
respectivamente), el costo operacional de resolver los dos
sistemas es 2n2 flop.
Factorizar la matriz A = LU consiste simplemente en:
triangularizar A por eliminacin gaussiana y
almacenar la matriz triangular L de multiplicadores.
Por lo tanto, el costo de factorizar la matriz A = LU es 23 n3 flop.
Como 2n2  32 n3 , el costo operacional total para resolver un
sistema mediante factorizacin LU es 23 n3 flop.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 62 / 86
Ecuaciones No Lineales

Solucin de sistemas mediante factorizac. LU (cont.)


Muchas veces deben resolverse varios sistemas de ecuaciones
con la misma matriz y distintos segundos miembros b1 , . . . , bm
(por ejemplo, para calcular valores propios de A ( ver
Laboratorio)).
En tal caso, conviene primero factorizar la matriz A = LU (una
sola vez!) y luego resolver los pares de sistemas triangulares para
cada segundo miembro:
Ly 1 = b1 , Ly m = bm ,
 

1
Ux = y , 1 U xm = y m .
Asi, la parte ms costosa del proceso (la factorizacin: 23 n3 ) se
hace una sola vez y slo se repite la parte menos costosa (la
solucin de los sistemas triangulares: 2n2 ).
Hay algoritmos (Crout), (Doolitle) que permiten obtener
directamente la factorizacin LU de una matriz, pero el costo es el
mismo que el de hacerlo por eliminacin gaussiana.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 63 / 86
Ecuaciones No Lineales

Solucin de sistemas mediante factorizac. LU (cont.)

Algoritmo (por eliminacin gaussiana):


Para
k = 1, . . . , n 1
para i = k + 1, . . . , n
(k) (k)




mik = aik /akk



para
j = k + 1, . . . , n
(k+1) (k) (k)
= aij mik akj

aij


y1 = b1
Para
i = 2, . . . , n
Xi1

y i = b i mij yj
j=1
(n)
xn = yn /ann
Para
i = n 1,
. . . , 1
n
1 X (i)
xi = (i) yi aij xj
aii

j=i+1

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 64 / 86


Ecuaciones No Lineales

Solucin de sistemas mediante factorizac. LU (cont.)

Observacin: La matriz triangular superior puede calcularse


utilizando las mismas posiciones de memoria en las que
inicialmente est almacenada A.
A fin de no tener que utilizar una matriz ms para guardar L,
pueden almacenarse cada multiplicador mij en lugar de la
entrada aij que se hace cero en ese paso.
sta no es la forma en que procede M ATLAB, pues este software
no pretende optimizar el costo de almacenamiento.
Sin embargo, hay muchos softwares que utilizan este truco a fin
de evitar tener que usar memoria adicional para almacenar los
multiplicadores.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 65 / 86


Ecuaciones No Lineales

Necesidad del pivoteo


El algoritmo de eliminacin
gaussiana (o el de
Para k = 1, . . . , n 1

para i = k + 1, . . . , n factorizacin LU) slo puede
m = a(k) /a(k)
llevarse a cabo si todos los
ik ik kk pivotes son no nulos:
para j = k + 1, . . . , n

a(k+1) (k) (k) (k)

ij = aij mik akj akk 6= 0.

Ejemplo. El sistema de ecuaciones siguiente tiene matriz no


singular pues su determinante es 1:

0 1 1 x1 2
1 2 3 x2 = 4
2 0 1 x3 0
Sin embargo el algoritmo anterior no puede aplicarse pues
(1) (1) (1) (1)
a11 = 0 y, por lo tanto, m21 = a21 /a11 y m31 = a31 /a11 no estn
definidos.
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 66 / 86
Ecuaciones No Lineales

Necesidad del pivoteo

Para poder resolver el sistema, debe intercambiarse la primera


ecuacin con cualquiera de las otras de manera de evitar el pivote
cero. Por ejemplo:

0 1 1 x1 2 1 2 3 x1 4
1 2 3 x2 = 4 0 1 1 x2 = 2
2 0 1 x3 0 2 0 1 x3 0

Por otra parte, puede demostrarse que la estabilidad del mtodo


de eliminacin gaussiana en cuanto a propagacin de errores de
redondeo se deteriora si los multiplicadores mij son nmeros muy
grandes en mdulo.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 67 / 86


Ecuaciones No Lineales

Estrategia de pivoteo parcial

Una forma de evitar ambos inconvenientes, pivotes nulos y


multiplicadores grandes en mdulo, es realizar en cada paso el
intercambio de ecuaciones que produzca el pivote mayor posible
en mdulo. Esta estrategia se denomina pivoteo parcial.

(1) (1) (1)
a a12 a1n
11
0 a(2)22
(2)
a2n
.. .. .. ..

. . . .
.
. (k) (k)
. 0 akk akn
. .. .. ..
.
. . . .

(k) (k)
0 0 ank ann

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 68 / 86


Ecuaciones No Lineales

Estrategia de pivoteo parcial

En el paso k-simo se revisa el vector


(k)
akk
..
.
(k)
ank

y se busca la fila l en la que aparece la entrada mayor en mdulo:


n o
(k) (k)
k l n : alk = max aik .
kin

Luego, si l 6= k, se intercambia esa fila con la k-sima.


Si la matriz es no singular, siempre habr una entrada no nula en
ese vector, por lo que as se evitan los pivotes nulos.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 69 / 86


Ecuaciones No Lineales

Estrategia de pivoteo parcial


(k) (k)
Adems, despus del intercambio, akk aik , i = k, . . . , n. Por
lo tanto, los multiplicadores no pueden pasar de 1 en mdulo:

(k)
aik
|mik | = 1, i = k, . . . , n.
(k)
akk

Esta estrategia de pivoteo parcial, combinada con el mtodo de


eliminacin gaussiana, resulta estable respecto a la propagacin
de errores de redondeo.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 70 / 86


Ecuaciones No Lineales

Matrices de permutacin
Si hay intercambios de filas, las matrices triangulares L y U que
se obtienen por el mtodo de eliminacin gaussiana con
estrategia de pivoteo parcial, ya no factorizan a A, sino que
factorizan a la matriz que se obtiene despus de aplicar a A
todos los intercambios de filas que tuvieron lugar.
Se llama matriz de permutacin a toda matriz que se obtenga
intercambiando filas de I. Por ejemplo, las siguientes son todas
las matrices de permutacin 3 3:

1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1
0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0
0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0
Los intercambios de filas de una matriz se obtienen multiplicando
a izquierda por una matriz de permutacin. Por ejemplo:

0 1 0 1 2 3 4 5 6
0 0 1 4 5 6 = 7 8 9
1 0 0 7 8 9 1 2 3
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 71 / 86
Ecuaciones No Lineales

Factorizacin LU con estrategia de pivoteo parcial

Teorema. Si A es una matriz no singular, entonces existen


matrices no singulares L triangular inferior, U triangular superior
y una matriz de permutacin P , tales que

LU = P A.

Estas matrices pueden obtenerse mediante el mtodo de


eliminacin gaussiana con estrategia de pivoteo parcial.
Para resolver un sistema lineal Ax = b, el mtodo de
factorizacin LU se plantea como sigue:

Ly = P b,
Ax = b P Ax = P b L(U x) = P b
U x = y.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 72 / 86


Ecuaciones No Lineales

Factorizacin LU con pivoteo en M ATLAB

>> A=[1 2 3;4 5 6;7 8 0];


>> [L,U]=lu(A)
Comando:
L = 0.1429 1.0000 0
[L,U]=lu(A)
0.5714 0.5000 1.0000
L es una matriz 1.0000 0 0
psicolgicamente
triangular inferior U = 7.0000 8.0000 0
U es una matriz 0 0.8571 3.0000
triangular superior 0 0 4.5000
L*U = A. >> L*U
ans = 1 2 3
4 5 6
7 8 0

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 73 / 86


Ecuaciones No Lineales

Factorizacin LU con pivoteo en M ATLAB

>> A=[1 2 3;4 5 6;7 8 0];


>> [L,U,P]=lu(A)
Comando:
[L,U,P]=lu(A) L = 1.0000 0 0
L es una matriz 0.1429 1.0000 0
triangular inferior 0.5714 0.5000 1.0000
U es una matriz
triangular superior U = 7.0000 8.0000 0
0 0.8571 3.0000
P es una matriz de
0 0 4.5000
permutacin
L*U = P*A. P = 0 0 1
1 0 0
0 1 0

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 74 / 86


Ecuaciones No Lineales

Factorizacin LU con pivoteo en M ATLAB

>> L*U
Comando:
[L,U,P]=lu(A)
ans = 7 8 0
L es una matriz 1 2 3
triangular inferior 4 5 6
U es una matriz
triangular superior >> P*A
P es una matriz de
permutacin ans = 7 8 0
L*U = P*A. 1 2 3
4 5 6

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 75 / 86


Ecuaciones No Lineales

Matrices tridiagonales

Un caso extremo de matrices banda es el de las matrices


tridiagonales (` = 2):

b1 c1 0 0
a2 . . . . . . . . .
..
.

A=0
. . . . . .
Rnn
. . . 0
.. . . . . . .

. . . cn1

.
0 0 an bn

Estas matrices aparecen tambin muy habitualmente, por


ejemplo, al interpolar por splines o al resolver problemas de
valores de contorno para ecuaciones diferenciales ordinarias.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 76 / 86


Ecuaciones No Lineales

Factorizacin LU de matrices tridiagonales


Cuando se cumplen las siguientes desigualdades,
|b1 | > |c1 |,
|bi | |ai | + |ci |, i = 1, . . . , n,
|bn | > |an |,
las matrices tridiagonales pueden factorizarse LU sin necesidad
de pivoteo y este procedimiento resulta estable respecto a la
propagacin de errores de redondeo:
0 0 1 0

1 1 0

.. .. ..
.. .. .. ..
. . . . .


2 . 0
.

.. .. . . .. .. .. .. ..

A=0 . . . . . . .

. 0


.. .. .. .. . .. ..

. . . 0 .. . . n1

.

0 0 n 1 0 0 n
L U
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 77 / 86
Las entradas i , iEcuaciones
y i deNo las matrices L y U pueden calcularse
Lineales

muy fcilmente:

b1 c1 0 0 1 0 0 1 1 0 0
.. .. .. .. .. ..
a
2 b2 c2 . . 2
1 . . 0
2 2 . .

.. .. .. .. .. .. .. .
.. .. ..
0 . . . 0 =0 . . . . .. . . . 0

.. . .

.. .. .. .. .. .. ..
cn1 .. 0 ..

. . . . . . . . n1 n1
0 0 an bn 0 0 n 1 0 0 n

11 = b1 = 1 = b1
11 = c1 = 1 = c1
2 1 = a2 = 2 = a2 /1
2 1 + 12 = b2 = 2 = b2 2 1

1n1 = cn1 = n1 = cn1
n n1 = an = n = an /n1
n n1 + 1n = bn = n = bn n n1
Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 78 / 86
Ecuaciones No Lineales

Factorizacin LU de matrices tridiagonales

As obtenemos el siguiente algoritmo (Algoritmo de Thomas):

1 = b1
Para i = 2, . . . , n
i1 = ci1

i = ai /i1

i = bi i i1

Costo operacional:
n
X
3 = 3(n 1) flop
i=2

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 79 / 86


Ecuaciones No Lineales

Solucin de sistemas con matrices tridiagonales


Al resolver un sistema Ax = d con matriz A tridiagonal, a partir
de su factorizacin LU,

Ly = d,
Ax = d L(U x) = d
U x = y,
los sistemas triangulares tambin pueden resolverse muy
fcilmente:

y1 = d1

1 0 0 y1 d1
.. ..
Para i = 2, . . . , n


2 1 . . y2 d2

.. .. .. .. . . yi = di i yi1
0 . . . . .. = ..

..

.. .. ..
. . . . 0 yn1 dn1 Costo operacional:
0 0 n 1 yn dn
n
X
2 = 2(n1) flop
Universidad de Cordoba () Curso de Mtodos Numricos i=2 Octubre 2012 80 / 86
Ecuaciones No Lineales

Solucin de sistemas con matrices tridiagonales


1 1 0 0 x1 y1
.. .. .. ..
0
. . . .
x 2 y2

.. .. .. .. .. ..
. . . . =
0 . .

..

..
. n1 n1 xn1 yn1

.
0 0 n xn yn

xn = yn /n
Para
i = n 1, . . . , 1
xi = (yi i xi+1 ) /i

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 81 / 86


Ecuaciones No Lineales

Solucin de sistemas con matrices tridiagonales

Costo operacional:
n1
X
1+ 3 = 1 + 3(n 1) flop
i=1

El costo total de resolver un sistema de ecuaciomes con matriz


tridiagonal mediante el algoritmo de Thomas es de
3(n 1) + 2(n 1) + 1 + 3(n 2) 8n flop.
Comprese este costo con el del mtodo de eliminacin
gaussiana aplicado a ciegas sin sacar provecho de la estructura
tridiagonal de la matriz: 23 n3 .
Por ejemplo, un sistema 1000 1000 cuesta aproximadamente
666 666 666 flop por M.E.G. y aproximadamente 8 000 flop
mediante este algoritmo.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 82 / 86


Ecuaciones No Lineales

Matrices definidas positivas

Una matriz simtrica A Rnn se dice definida positiva si

xt Ax > 0 x Rn : x 6= 0.

Estas matrices tambin aparecen muy habitualmente, por


ejemplo, al ajustar parmetros de un modelo por cuadrados
mnimos o al resolver problemas de valores de contorno para
ecuaciones diferenciales.
Teorema. Sea A Rnn una matriz simtrica. A es definida
positiva si y slo si se cumple cualquiera de las siguientes
condiciones:
1 los valores propios de A son todos positivos;
2 los determinantes de las submatrices principales de A son todos
positivos;
3 existe una matriz L, triangular inferior y no singular, tal que
A = LLt .

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 83 / 86


Ecuaciones No Lineales

Mtodo de Cholesky

Esta ltima propiedad nos dice que si la matriz es simtrica y


definida positiva, siempre puede obtenerse una factorizacin en
matrices triangulares sin necesidad de pivoteo.
Adems, no hace falta calcular la matriz triangular superior, pues
es la transpuesta de la triangular inferior. Veremos que esto
reduce el costo operacional a la mitad.

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 84 / 86


Ecuaciones No Lineales

Mtodo de Cholesky

Se aplica solamente a matrices simtricas y definidas positivas.


Se basa en calcular directamente la matriz L tal que A = LLt .
Se procede como en el caso de matrices tridiagonales y se
obtiene el siguiente algoritmo:

Para j = 1,
v. . . , n

u
u j1
X

ljj = tajj 2
ljk


k=1
para i = j + 1, . . . , n

j1
!
1
X
lij = aij lik ljk

ljj
k=1

Universidad de Cordoba () Curso de Mtodos Numricos Octubre 2012 85 / 86


Ecuaciones No Lineales

Mtodo de Cholesky
El costo operacional es:
!
Xn Xj1 n
X j1
X
2+ 1+ 2
j=1 k=1 i=j+1 k=1
13 n3 flop,
+ n races cuadradas.
Para resolver un sistema de ecuaciones Ax = b con matriz
simtrica y definida positiva por el mtodo de Cholesky, una vez
calculada L, se tiene:

t Ly = b,
Ax = b L(L x) = b
Lt x = y.
Para resolver los sistemas Ly = b y Lt x = y, se utiliza el
algoritmo que ya conocemos para matrices triangulares, cuyo
costo operacional es de 2n2 .
Por lo tanto el costo operacional total del mtodo de Cholesky es
de de13 n
Universidad
3 . Vale decir, aproximadamente la mitad que el del
Cordoba () Curso de Mtodos Numricos Octubre 2012 86 / 86

Вам также может понравиться