You are on page 1of 66

Tema 2

Resolucion numerica de sistemas lineales

Contenidos
2.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2. Algunos conceptos bsicos de matrices . . . . . . . . . . . 38
2.3. Normas vectoriales y normas matriciales . . . . . . . . . . 41
2.4. Condicionamiento . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5. Mtodos directos . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.1. Mtodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.2. Estrategia de pivoteo . . . . . . . . . . . . . . . . . . . . . . . 51
2.5.3. Mtodos de factorizacin directa . . . . . . . . . . . . . . . . 52
2.6. Mtodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . 60
2.6.1. Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.6.2. Criterios de parada . . . . . . . . . . . . . . . . . . . . . . . . 62
2.6.3. Mtodos de descomposicin . . . . . . . . . . . . . . . . . . . 63
2.7. Problemas de transmisin de calor: caso estacionario . . . 69
2.7.1. Distribucin de temperatura en una barra: caso estacionario . 70
2.7.2. Distribucin de temperatura en una placa: caso estacionario . 75
2.8. Apndice: Conceptos bsicos de matrices y clculo matricial 81
2.9. Problemas del tema 2 . . . . . . . . . . . . . . . . . . . . . . 83
2.9.1. Problemas de exmenes . . . . . . . . . . . . . . . . . . . . . 93

En este tema estudiaremos mtodos numricos para resolver sistemas de ecuaciones


lineales de la forma
Ax = b , (2.1)

35
36 Resolucin numrica de sistemas lineales

con A una matriz real n n y b Rn . La matriz A y el vector b son conocidos y la


incgnita es x Rn . Recordemos que el sistema lineal (2.39) tiene solucin nica si y
slo si det(A) 6= 0.

Los sistemas lineales que aparecen en las aplicaciones tienen dimensin elevada, fcil-
mente n 100, por lo que es necesario resolverlos con la ayuda de un ordenador.

2.1. Introduccin

Los sistemas lineales surgen de diferentes formas en las aplicaciones:

Pueden aparecer directamente tras la modelizacin del problema.


Se pueden presentar como paso intermedio en la resolucin numrica de otros
problemas. Por ejemplo, la resolucin de sistemas no lineales mediante el mtodo
de Newton, o la resolucin de algunos problemas diferenciales mediante el mtodo
en diferencias finitas, da lugar a sistemas lineales.
Otros problemas no estudiados en este curso, como la interpolacin con funciones
spline o el mtodo de elementos finitos, tambin dan lugar a sistemas lineales.

Los mtodos estudiados en cursos anteriores, como los mtodos de Gauss y Cramer, se
pueden programar para la resolucin de sistemas lineales. Sin embargo, se han desa-
rrollado otros mtodos ms eficientes que sern los que estudiaremos en este captulo.

Ejemplo 2.1.1. Nmero de operaciones de la regla de Cramer


En la regla de Cramer la componente i-sima de la solucin se calcula como
det(Ai )
xi = i = 1, . . . , n ,
det(A)
donde Ai son las matrices obtenidas al sustituir la columna i-sima de la matriz A por
el vector b. Hay que hallar n + 1 determinantes y realizar n divisiones. Contando las
operaciones, para calcular los n + 1 determinantes hay que hacer (n + 1)[n! n 1]
(n + 1)! n operaciones. En la tabla siguiente se presentan los tiempos de clculo con
una mquina que opere a 300 GFlops

Nmero de ecuaciones Nmero de operaciones Tiempo


n = 10 3.9917 108 1.33056 103 segundos
n = 15 3.1384 1014 17.4 minutos
n = 18 2.1896 1018 84.5 das
n = 20 1.0218 1021 108 aos

Segundo semestre, curso 2016/2017


2.1. Introduccin 37

Como puede observarse, desde el punto de vista del coste computacional y el tiempo de
clculo, la resolucin de sistemas lineales mediante el mtodo de Cramer no es eficiente.


Segn la forma de operar, los mtodos de resolucin numrica de sistemas lineales se


clasifican en:

1. Mtodos directos, que obtienen la solucin exacta (salvo errores de redondeo) en


un nmero finito de operaciones. Por ejemplo, los mtodos de Gauss y de Cramer
son mtodos directos.
2. Mtodos iterativos, que construyen, a partir de un vector inicial x(0) , una sucesin
(x(m) )mN tal que x(m) x cuando m .

En los mtodos directos se estudia el coste computacional, es decir, el nmero de


operaciones elementales (+, , , /) necesarias para obtener la solucin. En los mtodos
iterativos, se estudia la convergencia y la velocidad de convergencia.

Las matrices que aparecen en la prctica son de dos tipos:

1. Llenas, es decir, casi todos los elementos son no nulos, y pequeas, n 100.
2. Huecas (o sparse), es decir, tienen pocos elementos no nulos, y grandes.

Generalmente los mtodos directos se suelen utilizar para matrices llenas y pequeas,
y los mtodos iterativos para las matrices grandes y huecas.

Para las matrices huecas se realiza el almacenamiento de forma ptima guardando


nicamente los elementos no nulos. Las matrices huecas tienen una buena disposicin
de elementos si estos se encuentran alrededor de la diagonal principal.
Ejemplo 2.1.2. La matriz de conectividad de las cpulas geodsicas, o de un baln
de ftbol, son matrices huecas.

14

15 13

18 17
11 12

19 16
2 10

20 3 9

1 6

22 4 8

5 7
23 21

26 30
24 25

27 29

28

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


38 Resolucin numrica de sistemas lineales

En la siguiente figura mostramos las matriz de conectividad de un baln con la nume-


racin de nodos de la figura. Cada punto indica un elemento no nulo.

10

20

30

40

50

60
0 10 20 30 40 50 60
Elementos no nulos = 180 (5.00%)

En la siguientes figuras mostramos una matriz hueca y una reordenacin mediante


cierto algoritmo.

Matriz simtrica sparse S(p,p) despus de ordenacin CuthillMcKee


0 0

50 50

100 100

150 150

200 200

250 250

300 300

350 350

400 400

450 450

0 50 100 150 200 250 300 350 400 450 0 50 100 150 200 250 300 350 400 450
Elementos no nulos = 7551 (3.29%) Elementos no nulos = 7551 (3.29%)

2.2. Algunos conceptos bsicos de matrices

En el Apndice A de este tema recordamos algunos conceptos bsicos de matrices y


clculo matricial estudiados en cursos anteriores. En esta seccin nos centraremos en
algunos conceptos nuevos que necesitaremos en este tema.

Segundo semestre, curso 2016/2017


2.2. Algunos conceptos bsicos de matrices 39

En las definiciones siguientes, A = (aij ) es una matriz real n n (n filas y n columnas).

Una matriz A se dice tridiagonal si aij = 0 para i, j verificando |i j| > 1.


Observemos que, para definir una matriz tridiagonal, basta con dar la diagonal
principal, y las diagonales superior e inferior de la matriz.
Los valores propios de una matriz tridiagonal n n, A = tridiag(1, , 1), con
R, son
j = 2 cos(j) , j = 1, . . . , n , (2.2)
donde = /(n + 1). Por consiguiente, la matriz es definida positiva si 2.
Una matriz A se dice que es diagonal dominante si
n
X
|aii | |aij | , i = 1, 2, . . . , n . (2.3)
j=1
i6=j

Es decir, por filas, la suma de los valores absolutos de los elementos extradiago-
nales es menor o igual que el valor absoluto del elemento diagonal. Se dice que es
estrictamente diagonal dominante si las desigualdades (2.3) se verifican estricta-
mente. Observemos que la diagonal dominancia es muy sencilla de comprobar.
Puede demostrarse que, si una matriz A es estrictamente diagonal dominante,
entonces es invertible.
Ejemplo 2.2.1. Matrices diagonal dominantes, tridiagonales, . . .

1. Dadas las matrices



7 2 0 7 3 0
t

A=
3 5 1
, A =
2 5 5
,
0 5 6 0 1 6
la matriz A es estrictamente diagonal dominante, pero su traspuesta At no es
estrictamente diagonal dominante. Por disposicin de ceros, son matrices tridia-
gonales.

2. La matriz nn que aparece al discretizar la ecuacin del calor 1D con temperatura


conocida en la frontera es de la forma

2 1 0 0

..
1 2 1 0 .



.. ..
0 1 2 . .
An =
.. ... ...

... ...
(2.4)
. 0


..

. 1 2 1



0 0 1 2

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


40 Resolucin numrica de sistemas lineales

La matriz An es tridiagonal y diagonal dominante. Tambin es simtrica definida


positiva ya que sus valores propios son (vase (2.2))

j
 
1 = 2 2 cos > 0, j = 1, . . . , n .
n+1

Tambin puede obtenerse que es simtrica definida positiva de la expresin

hAx, xi = xt Ax = x21 + (x1 x2 )2 + + (xn1 xn )2 + x2n > 0

si x = (x1 , x2 , . . . , xn )t 6= 0. Adems, los elementos diagonales son todos positivos


y los extradiagonales negativos. 

Junto con las matrices definidas elemento a elemento, en Anlisis Numrico es usual
trabajar con matrices a bloques. Una matriz a bloques es una matriz de la forma

A11 A1`
. .. . ,
A = ..
. ..
Ak1 Ak`

donde cada Aij es una matriz de dimensin ki `j . Muchos de los conceptos definidos
anteriormente pueden definirse para las matrices a bloques. Por ejemplo, una matriz
diagonal a bloques es una matriz de la forma

D11 0 0
.. ..
0 D22 . .
,

.. ... ...
. 0


0 0 Dkk

donde Dii es una matriz cuadrada de dimensin ni . La matriz



A11 A12 0 0 0
A21 A22 A23 0 0



. .. . .. . .. ..
0 0 .


.

.. . .. . .. . ..
0

0

0 Ak1,k2 Ak1,k1 Ak1,k

0 0 0 Ak,k1 Ak,k

con Ak,` matriz de dimensin n n, es una matriz tridiagonal a bloques.

Segundo semestre, curso 2016/2017


2.3. Normas vectoriales y normas matriciales 41

Ejemplo 2.2.2. La matriz



4 1 3 0 0 0 0 0 0


1 1 2 0 0 0 0 0 0



2 0 1 0 0 0 0 0 0



0 0 0 4 1 3 0 0 0



0 0 0 1 1 2 0 0 0



0 0 0 2 0 1 0 0 0



0 0 0 0 0 0 4 1 3

0 0 0 0 0 0 1 1 2



0 0 0 0 0 0 2 0 1
es diagonal a bloques. La matriz

4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0


1 4 1 0 0 1 0 0 0 0 0 0 0 0 0 0



0 1 4 1 0 0 1 0 0 0 0 0 0 0 0 0



0 0 1 4 0 0 0 1 0 0 0 0 0 0 0 0

1 4 1 0 1


0 0 0 0 0 0 0 0 0 0 0

0 1 0 0 1 4 1 0 0 1 0 0

0 0 0 0



0 0 1 0 0 1 4 1 0 0 1 0 0 0 0 0



0 0 0 1 0 0 1 4 0 0 0 1 0 0 0 0



0 0 0 0 1 0 0 0 4 1 0 0 1 0 0 0




0 0 0 0 0 1 0 0 1 4 1 0 0 1 0 0



0 0 0 0 0 0 1 0 0 1 4 1 0 0 1 0



0 0 0 0 0 0 0 1 0 0 1 4 0 0 0 1



0 0 0 0 0 0 0 0 1 0 0 0 4 1 0 0



0 0 0 0 0 0 0 0 0 1 0 0 1 4 1 0

0 1 0 1 4 1


0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 4
es tridiagonal a bloques. 

2.3. Normas vectoriales y normas matriciales

En esta seccin estudiaremos los aspectos ms elementales de normas matriciales y


vectoriales que necesitaremos para medir errores.
Definicin 2.3.1. Algunas normas vectoriales
Dado un vector x = (x1 , x2 , . . . , xn )t Rn , se definen las siguientes normas.

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


42 Resolucin numrica de sistemas lineales
q
Norma eucldea: kxk2 = x21 + + x2n .
n
X
Norma 1 : kxk1 = |xi |.
i=1

Norma infinito: kxk = max |xi |.


1in

Todas las normas son equivalentes y representan diferentes formas de medir.

Ejemplo 2.3.2. Clculo de la norma de un vector


Dado el vector x = (1, 2, 3)t ,

kxk2 = 14 , kxk1 = 6 , kxk = 3 .

Nota 2.3.3. Escalado de k k2 y k k1


En anlisis numrico es usual trabajar con vectores x Rn que contienen estimaciones
del error cometido tras utilizar algn algoritmo. Cuando n  1, aunque las componen-
tes de x sean pequeas, la normas kxk2 y kxk1 no tienen por qu ser pequeas.
Por ejemplo, si x = 0.01 (1, 1, . . . , 1)t R100 ,

kxk2 = 0.012 100 = 0.1 , kxk1 = 100 0.01 = 1 , kxk = 0.01 .

La norma k k recoge la idea de error pequeo, pero las otras dos normas propor-
cionan un resultado demasiado grande ya que tanto en k k2 y en k k1 sumamos
las componentes del vector. Por ello, en la prctica, al trabajar con errores, para las
normas k k2 y k k1 se suele considerar
1 q 2 1
x1 + + x2n , (|x1 | + |xn |) .
n n
Para el ejemplo anterior, tendramos
1 1
kxk2 = 0.01 , kxk1 = 0.01 .
100 100
Definicin 2.3.4. Algunas normas matriciales
Dada una matriz A de dimensin n n, se definen las siguientes normas matriciales.
n
X
kAk1 = max |aij | , (suma de columnas)
1jn
i=1
n
X
kAk = max |aij | . (suma de filas)
1in
j=1

Si (C) denota el radio espectral de la matriz C, la norma espectral es


q
kAk2 = (At A) .

Segundo semestre, curso 2016/2017


2.4. Condicionamiento 43

Ejemplo 2.3.5. Clculo de la norma de una matriz

1. Para la matriz
1 2 1

0 3 1

5 1 1
se tiene que kAk = max{4, 4, 7} = 7, kAk1 = max{6, 6, 3} = 6.

2. Para la matriz
1 1 0

1 2 1

0 1 1

los valores propios de At A son 0, 1, 9. As, kAk2 = 9 3. 

2.4. Condicionamiento

Como veamos en el tema anterior, al trabajar con un ordenador los errores de aritm-
tica son inevitables. Por ello, dado un sistema lineal Ax = b, debemos plantearnos qu
ocurre si, en vez de tener A y b tenemos perturbaciones A + A y b + b. Por ello,
en vez de resolver el sistema original
Ax = b ,
estamos resolviendo el sistema perturbado
(A + A) y = b + b .
Si denotamos por x la solucin del sistema original y por y la solucin del sistema
perturbado, la situacin deseable es que pequeos errores en los datos A y b,
produzcan pequeas diferencias entre las dos soluciones kx yk.

ste es el concepto de estabilidad que vimos en el tema anterior para los mtodos
numricos. En el contexto de sistemas lineales, el trmino que se utiliza es matriz bien
condicionada o matriz mal condicionada.

Ejemplo 2.4.1. Perturbacin de coeficientes en la resolucin de un sistema lineal


Vamos a considerar una matriz A y una perturbacin A + A

10 7 8 7 10 7 8.1 7.2

7 5 6 5 7.08 5.04 6 5
A=


, A + A =




8 6 10 9


8 5.98 9.89 9

7 5 9 10 6.99 4.99 9 9.98

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


44 Resolucin numrica de sistemas lineales

De forma similar, consideramos un vector b y una perturbacin suya b + b, con



32 32.01

23 22.99
b=


, b + b =


.

33


33.01

31 30.99

La solucin del sistema Ax = b es x = (1, 1, 1, 1)t .

Para el sistema lineal A x y el error cometido x x


= b + b, la solucin x son

= (1.82, 0.36, 1.35, 0.79)t ,


x = (0.82, 1.36, 0.35, 0.21)t .
xx

Para el sistema lineal (A + A) x y el error cometido x x


= b, la solucin x son

= (81, 137, 34, 22)t ,


x = (82, 136, 35, 21)t .
xx

Como puede observarse, pequeos cambios en la matriz de coeficientes han producido


grandes cambios en la solucin. Diremos que la matriz A est mal condicionada para
la resolucin de sistemas lineales. 

El condicionamiento de una matriz se puede medir.

Definicin 2.4.2. Condicionamiento de una matriz


Sea A una matriz invertible y k k una norma matricial. El condicionamiento de la
matriz A (o nmero de condicin) respecto a la norma k k, denotado por cond (A) o
(A), se define como
cond (A) = kAk kA1 k .
Diremos que una matriz est bien condicionada si su condicionamiento no es mucho
mayor que 1.

El condicionamiento de una matriz depende de la matriz utilizada. Si deseamos indicar


la norma utilizada, escribiremos cond2 (A), cond1 (A) cond (A).

Nota 2.4.3. Clculo del condicionamiento de una matriz


Observemos que, en la definicin 2.4.2 aparece A1 . En los ejemplos acadmicos que
veamos en este tema hallaremos A1 . Sin embargo, en la prctica, para hallar cond(A)
no se calcula A1 sino que se halla una aproximacin de kA1 k. Normalmente, los
programas que resuelven sistemas lineales realizan una estimacin del condicionamiento
de la matriz, y avisan al usuario si el condicionamiento de la matriz es muy grande. 

Segundo semestre, curso 2016/2017


2.4. Condicionamiento 45

Ejemplo 2.4.4. Condicionamiento de la matriz del ejemplo 2.4.1


Para la matriz A del ejemplo 2.4.1, kAk2 30, kA1 k2 100, por lo que 2 (A) 3000.
La matriz A est muy mal condicionada. 

En los siguientes resultados mostramos cotas de error en trminos del condicionamiento


de la matriz.

Teorema 2.4.5. Cotas del error, perturbaciones y condicionamiento


Consideremos el sistema lineal Ax = b y su perturbacin (A + A) x = b + b.

1. Si kAk < 1/kA1 k, entonces


!
kx x
k (A) kAk kbk
+ .
kxk kAk kAk kbk
1 (A)
kAk

2. Si A = 0, entonces
kx x
k kbk
(A) .
kxk kbk
3. Si b = 0, entonces
kx x
k kAk
(A) .
k
xk kAk

Cuando se resuelve un sistema lineal Ax = b, por los errores cometidos (redondeo,


operaciones, etc) la solucin aproximada x no verifica exactamente el sistema lineal.
Se define el error residual como
x b.
r = A
Como vemos en el siguiente ejemplo, que el error residual krk sea pequeo, no quiere
decir que el error kx x
k tambin sea pequeo.

Ejemplo 2.4.6. Error grande y error residual pequeo


El sistema lineal

1 2
x 1 =
3 ,
1.0001 2 x2 3.0001
= (3, 0)t tiene
tiene como solucin el vector (x1 , x2 ) = (1, 1). La aproximacin x
como error residual

3 3 0
xb=
r = A = ,
3.0003 3.0001 0.0002

por lo que krk = 2 104 , que puede considerarse pequeo. Sin embargo, el error
cometido es bastante grande, pues kx x
k = 2. 

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


46 Resolucin numrica de sistemas lineales

En el siguiente resultado damos una cota del error en trminos del error residual.

Teorema 2.4.7. Cota del error, condicionamiento y error residual


es una aproximacin de la solucin del sistema lineal Ax = b, y r es el error
Si x
x b, entonces
residual, r = A

kx x
k krk
(A) . (2.5)
kxk kbk

Observemos que, si la matriz del sistema lineal est muy mal condicionada, aunque el
error residual sea pequeo, podemos tener un error grande en la aproximacin.

Ejemplo 2.4.8. Condicionamiento de la matriz del ejemplo 2.4.6


En el ejemplo 2.4.6,

1 2 10000 10000
A= , A1 = .
1.0001 2 5000.5 5000

As kAk = 3.0001, kA1 k = 20000 y (A) = 60002. La matriz del sistema lineal
est muy mal condicionada. 

Ejemplo 2.4.9. Matriz de Hilbert


La matriz de Hilbert es un ejemplo de matriz muy mal condicionada. Los elementos
de la matriz de Hilbert de orden n, que denotaremos por Hn = (hij ), son de la forma

1
hij = , i, j = 1, . . . , n .
i+j1

Por ejemplo, la matriz de Hilbert de orden 4 es



1 1 1

1 2 3 4

1 1 1 1

2 3 4 5
H4 =

1 1 1 1




3 4 5 6

1 1 1 1
4 5 6 7

Vamos a considerar sistemas lineales Hn x = b, con b Rn elegido para que la solucin


sea x = (1, 1, . . . , 1)t Rn . Resolvemos estos sistemas lineales con Matlab con la
orden x=H\b, hallamos el condicionamiento de H en la norma infinito con la orden
cond(H, inf), y calculamos los trminos de la expresin (2.6.2) con la norma infinito.

Segundo semestre, curso 2016/2017


2.4. Condicionamiento 47

Mostramos los resultados para n = 10, 12:

Solucin x=H\b Error relativo (2.6.2) Cota (2.6.2) Residuo cond(H,inf)


kx x k krk

x (Hn ) krk (Hn )
kxk kbk
1.000000
1.000000
0.999999
1.000007
0.999966 1.4431e-04 5.3603e-03 4.4409e-16 3.5353e+13
1.000091
0.999856
1.000136
0.999930
1.000015
1.000000
1.000006
0.999818
1.002524
0.981199 5.1069e-01 5.6162e+00 4.4409e-16 3.9245e+16
1.083743
0.763915
1.431725
0.489315
1.376976
0.842162
1.028617

Adems, para n = 12 se obtiene el siguiente mensaje:

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate. RCOND= 2.547634e-17.

Observemos que, cuando n aumenta, el condicionamiento de la matriz es peor y, aunque


los residuos son pequeos, los errores relativos son cada vez mayores. Debido al mal
condicionamiento de la matriz, hay mucha diferencia entre el error relativo y el residuo.


UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


48 Resolucin numrica de sistemas lineales

2.5. Mtodos directos

Para hallar x, solucin del sistema lineal Ax = b, podramos hallar la inversa A1 y


calcular a continuacin la solucin x = A1 b. Un simple anlisis nos muestra que este
proceso es ms costoso que cualquiera de los que explicaremos a continuacin.

Como la matriz inversa verifica AA1 = I, si denotamos las columnas de A1 por u1 ,


. . . , un , para hallar A1 podemos plantear
h i h i
A u1 u2 un = e1 e2 en ,

donde ej es el vector j-simo de la base cannica de Rn , y resolver n sistemas lineales


de la forma Auj = ej , j = 1, . . . , n. Si nuestro objetivo es resolver un sistema lineal,
no tiene sentido plantear un mtodo que implique la resolucin de n sistemas lineales.
Por ello, desde el punto de vista computacional, es totalmente desaconsejable resolver
sistemas lineales hallando la inversa de la matriz.

Resulta ms eficiente transformar el sistema lineal Ax = b en otro equivalente cuya


solucin sea sencilla de calcular. Por ejemplo, si la matriz de coeficientes es triangular
superior o inferior, la resolucin del sistema lineal es inmediata.

Ejemplo 2.5.1. Resolucin de un sistema lineal con matriz de coeficientes triangular


superior
Para resolver el sistema lineal

1 2 1 x1 1

0 2 1 x = 2 ,
2
0 0 1 x3 3

vamos calculando
2 x3 1
x3 = 3 , x2 = = , x1 = 1 x3 2 x2 = 3 .
2 2


El mtodo del ejemplo 2.5.1 se denomina mtodo de sustitucin hacia atrs y requie-
re n(n 1)/2 sumas, n(n 1)/2 productos y n divisiones. En total se requieren n2
operaciones elementales.

2.5.1. Mtodo de Gauss

El objetivo del mtodo de Gauss es transformar el sistema lineal Ax = b en otro


equivalente de la forma U x =
b, con U una matriz triangular superior. Para ello se

Segundo semestre, curso 2016/2017


2.5. Mtodos directos 49

van haciendo ceros por debajo de la diagonal principal en la primera columna, segunda
columna, y as sucesivamente hasta llegar a la columna n 1. Una vez obtenido el
sistema lineal con matriz de coeficientes triangular, se utiliza el mtodo de sustitucin
hacia atrs para hallar la solucin.

Ejemplo 2.5.2. Mtodo de Gauss



1 1 0 3 4 1 1 0 3 4

2 1 1 1 1 0 1 1 5 7




3 1 1 2 3

0 4 1 7 15

1 2 3 1 4 0 3 3 2 8

1 1 0 3 4

0 1 1 5 7





0 0 3 13 13

0 0 0 13 13
A continuacin, se resuelve el sistema triangular obteniendo x4 = 1, x3 = 0, x2 = 2,
x1 = 1. 

(k)
Vamos a denotar por Ak = (aij ) la matriz con ceros por debajo de los elementos
diagonales en las k 1 primeras columnas.
(k) (k) (k) (k) (k)
a11 ) a12 a1,k1 a1,k ... a1,n

(k) (k) (k) (k)



0 a22 a2,k1 a2,k ... a2,n

.. ... .. .. ..



. 0 . . .

.. ..

(k) (k) (k)
. . 0 ak1,k1 ak1,k ak1,n
Ak =


.. .. .. (k) (k)

. . . 0 ak,k ak,n

.. .. .. .. (k) (k)


. . . . ak+1,k ak,n

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

. . . . . .


(k)
0 0 0 0 an,k a(k)
n,n

(k)
El siguiente paso en el mtodo de Gauss es hacer ceros por debajo de ak,k , el elemento
diagonal de la columna k. Para ello, restamos a la fila j-sima, j k + 1, la fila k-sima
multiplicada por
(k)
ajk
mjk = (k) . (2.6)
akk

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


50 Resolucin numrica de sistemas lineales
(k)
A cada elemento diagonal akk se le denomina elemento pivote. Si hay algn elemento
pivote nulo, entonces no podemos hallar (2.6). En este caso, se busca entre los elementos
por debajo de la diagonal de la misma columna uno no nulo, y permutamos las filas.
Si la matriz es regular, existe este elemento no nulo para permutar. Si el elemento
diagonal y todos los elementos por debajo de la diagonal son nulos, la matriz no es
regular.
Ejemplo 2.5.3. Mtodo de Gauss permutando filas

1 1 2 1 8 1 1 2 1 8

2 2 3 3 20

0
0 1 1 4




1 1 1 0 2
0
2 1 1 6

1 1 4 3 4 0 0 2 4 12
El elemento (2,2) es nulo; buscamos en la columna 2 y hallamos el elemento (3,2), que
no es nulo. Permutamos las filas segunda y tercera:

1 1 2 1 8 1 1 2 1 8

0 2 1 1 6

0
2 1 1 6





0 0 1 1 4

0
0 1 1 4

0 0 2 4 12 0 0 0 2 4
Por sustitucin hacia atrs hallamos la solucin x4 = 2, x3 = 2, x2 = 3, x1 = 7. 

El nmero de operaciones elementales para resolver un sistema lineal mediante el mto-


do de Gauss, incluyendo la resolucin del sistema lineal triangular mediante el mtodo
de sustitucin hacia atrs, es
2n3 3n2 7n
+ .
3 2 6
Cuando n  1, el trmino que domina es 2n3 /3, y por ello se dice que el coste compu-
tacional del mtodo de Gauss es del orden de 2n3 /3 operaciones.

En la tabla siguiente se muestran los tiempos requeridos para resolver un sistema lineal
con una mquina que opere a 300 Gflops.

Nmero de ecuaciones Nmero de operaciones Tiempo


n = 10 805 2.68 109 segundos
n = 15 2750 8.57 109 segundos
n = 18 4353 1.45 108 segundos
n = 20 5910 2.36 108 segundos

El nmero de operaciones y los tiempos de clculo se pueden comparar con los del
mtodo de Cramer.

Para algunos tipos de matrices, el mtodo de Gauss no requiere intercambio de filas.

Segundo semestre, curso 2016/2017


2.5. Mtodos directos 51

Teorema 2.5.4. Mtodo de Gauss para algunos tipos de matrices


Consideremos un sistema lineal Ax = b donde A es una matriz n n. Si la matriz A

es estrictamente diagonal dominante o

es simtrica definida positiva, o

para i = 1, . . . n 1, los menores principales i son distintos de cero,

entonces se puede realizar la eliminacin gaussiana sin ningn intercambio de filas.

2.5.2. Estrategia de pivoteo

Siempre que realizamos clculos con el ordenador, es inevitable cometer errores de


redondeo. Puesto que los errores son inevitables, hemos de realizar los clculos de
forma que estos se propaguen bien, es decir, que no afecten excesivamente a la solucin.
Una de las tcnicas usuales para aminorar el efecto de los errores de redondeo en la
resolucin numrica de sistemas lineales es la estrategia de pivoteo.
(k) (k)
Si en el paso k-simo el trmino akk es pequeo comparado con ajk , entonces en
(2.6)
(k)
ajk
mjk = (k)  1 .
akk
(k)
Al ir haciendo ceros, el elemento ak` se multiplica por mjk y as, un error introducido
(k)
en ak` , se multiplica por un nmero grande por lo que el error absoluto se magnifica.
En el proceso de sustitucin hacia atrs, al hallar la componente k-sima del vector
(k)
solucin x se divide por akk , un nmero pequeo, con lo que de nuevo los errores
absolutos aumentan.

Ejemplo 2.5.5. Pivotar con elemento pequeo


Consideremos el sistema lineal

104 x1 + x2 = 1
x1 + x2 = 2

que tiene por solucin x1 = 10000/9999 1.0001, x2 = 9998/9999 0.9999. Traba-


jando con una aritmtica de 3 dgitos obtenemos

104 1 1 104 1 1 104 1 1
arit.

1 1 2 0 1 104 2 104 0 104 104

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


52 Resolucin numrica de sistemas lineales

y as x2 = 1, x1 = 0. La componente x2 est bien aproximada, pero la componente x1


no. 

Este ejemplo muestra los problemas que pueden aparecer cuando el elemento que se
utiliza para pivotar, a11 = 104 , es pequeo comparado con los otros valores de la
matriz. Para solventar estos problemas, se utilizan estrategias de pivoteo. Veamos una
de ellas, la estrategia de pivote parcial.

Estrategia de pivote parcial. Dada la matriz A(k) con ceros por debajo de los
(k) (k)
elementos a11 , . . . , ak1,k1 , la estrategia de pivote parcial consiste en, antes de hacer
(k)
ceros por debajo del elemento ak,k , determinar el menor p k tal que
(k) (k)
|ap,k | = max |ai,k | .
kin

Determinado este elemento, se intercambian las filas p y k.

Esta estrategia es fcil de programar y mejora los resultados.

Ejemplo 2.5.6. Pivotar con elemento pequeo


Consideremos el sistema lineal del ejemplo 2.5.5. Utilizamos la estrategia de pivote
parcial. Hallamos max{ a11 , a21 } = a21 = 1, y cambiamos las filas 2 y 1,

4
10 1 1 1 1 2 1 1 2
4
4 4
1 1 2 10 1 1 0 1 10 1 2 10


1 1 2
arit. .
0 1 1

As x2 = 1, x1 = 1 obteniendo una buena aproximacin para las dos componentes. 

2.5.3. Mtodos de factorizacin directa

Como veremos ms adelante, en algunos mtodos hay que resolver varios sistemas
lineales con la misma matriz de coeficientes,

A x1 = b1 ,
A x2 = b2 ,
A x3 = b3 ,
A x4 = b4 ,
..
.

Segundo semestre, curso 2016/2017


2.5. Mtodos directos 53

Si resolvemos cada sistema lineal mediante el mtodo de Gauss que hemos explicado en
la seccin anterior, el trabajo realizado para resolver un sistema lineal no se utiliza en
la resolucin de los otros sistemas lineales. En esta seccin veremos una formulacin del
mtodo de Gauss que nos permitir resolver de forma eficiente varios sistemas lineales
con la misma matriz de coeficientes.

Mtodo de Gauss sin permutacin de filas

Vamos a suponer de momento que en el mtodo de Gauss no hay que realizar permu-
taciones de filas, es decir, en el proceso, todos los elementos pivote son distintos de
cero.

En este caso, el proceso de hacer ceros en una columna por debajo de la diagonal
puede expresarse en trminos de unas matrices denominadas matrices elementales. En
el ejemplo 2.5.2, si denotamos

1 0 0 0

2 1 0 0
M (1) =
,
3 0 1 0


1 0 0 1

el producto M (1) A es la matriz cuya primera columna tiene ceros por debajo de la
diagonal,

1 0 0 0 1 1 0 3 1 1 0 3

2 1 0 0 2 1 1 1 0 1 1 5
= .

3 0 1 0 3 1 1 2 0 4 1 7


1 0 0 1 1 2 3 1 0 3 3 2

Obsrvese que M (1) es triangular inferior. De forma similar, denotamos por M (k) la ma-
triz elemental triangular inferior que, al multiplicar a izquierda, hace ceros por debajo
de la diagonal en la columna k-sima. As, el mtodo de Gauss podemos expresarlo
como
(n1)
M
| M (2) M (1)} A = |
{z U
{z } ,
triangular inferior triangular superior
o bien, si M = M (n1) M (2) M (1) ,

MA=U. (2.7)

Como M es una matriz triangular inferior, L = M 1 es una matriz triangular inferior.


As, de (2.5.3) obtenemos la factorizacin de la matriz A como

A = LU .

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


54 Resolucin numrica de sistemas lineales

Para hallar las matrices L y U se plantea el sistema lineal L U = A y se calculan


las matrices L y U . Hay libertad para elegir los elementos diagonales de la matriz L o
de la matriz U . Si `ii = 1, entonces el mtodo se denomina de Doolittle. Si uii = 1, el
mtodo se denomina de Crout. En ambos casos, la programacin de esta factorizacin
es sencilla.
Ejemplo 2.5.7. Factorizacin LU
Deseamos hallar la factorizacin LU de la matriz

6 2 1

A= 2 3 1

.
1 1 4
Planteamos el sistema

1 0 0 u11 u12 u13 6 2 1

21 1 0
0 = 2 3 1 .
` u22 u23

`31 `32 1 0 0 u33 1 1 4


El orden de las operaciones es el siguiente.

1. Multiplicamos la primera fila de L por U , y obtenemos la primera fila de U ,


u11 = 6 , u12 = 2 , u13 = 1 .

2. Multiplicamos L por la primera columna de U , y obtenemos la primera columna


de L,
1 1
`21 = , `31 = .
3 6
3. Multiplicamos la segunda fila de L por U , y obtenemos la segunda fila de U ,
7 2
u22 = , u23 = .
3 3
4. Multiplicamos L por la segunda columna de U , y obtenemos la segunda columna
de L,
2
`32 = .
7
5. Multiplicamos la tercera fila de L por U , y obtenemos la tercera fila de U ,
51
u33 = .
14
Hemos obtenenido la factorizacin A = LU con

1 0 0 6 2 1

L=
1/3 1 0 , U =
0 7/3 .
2/3
1/6 2/7 1 0 0 51/14


Segundo semestre, curso 2016/2017


2.5. Mtodos directos 55

Mtodo de Gauss con permutacin de filas

Como hemos visto en el ejemplo 2.5.3, no siempre puede utilizarse el mtodo de Gauss
sin realizar ningn cambio de filas.

En este caso, para representar matricialmente el mtodo de Gauss, se necesitan ciertas


matrices de permutacin. Una matriz de permutacin es una matriz obtenida tras una
reordenacin de las filas de la matriz identidad, por ejemplo

0 0 0 1

0 1 0 0
P = ,

1 0 0 0


0 0 1 0

es una matriz de permutacin. Si P es una matriz de permutacin y A es una matriz,


la matriz P A es la matriz A con las filas reordenadas.

En particular, si la matriz de perturbacin E es la matriz identidad con dos filas


intercambiadas, la matriz EA es la matriz A con esas dos filas intercambiadas. Por
ejemplo, si E es la matriz
1 0 0 0

0 0 1 0
E= ,

0 1 0 0

0 0 0 1
EA es la matriz A con las filas 2 y 3 intercambiadas.

As, el mtodo de Gauss permutaciones podemos expresarlo como

M (n1) E (n1) M (2) E (2) M (1) E (1) A = U .

Puede demostrarse que esta expresin se puede transformar en

M (n1) M
(2) M
(1) P A = U
| {z } | {z } ,
triangular inferior triangular superior
i son matrices triangulares inferiores, y P = E (n1) E (2) E (1) . De esta forma,
donde M
=M
si M (n1) M
(2) M
(1) , tenemos que

PA = U .
M

Como M es una matriz triangular inferior, L = M


1 es una matriz triangular inferior.
As, de (2.5.3) obtenemos la factorizacin de la matriz A como

PA = LU .

De forma general tenemos el siguiente resultado.

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


56 Resolucin numrica de sistemas lineales

Teorema 2.5.8. Factorizacin LU y matriz de permutacin P


Sea A una matriz regular. Entonces existe una matriz de permutacin P , una matriz L
triangular inferior con `ii = 1, y una matriz U triangular superior, tal que P A = LU .

Se necesite o no la matriz de permutacin P , por un abuso del lenguaje, este tipo de


factorizacin se conoce como factorizacin L U .

Para resolver un sistema lineal Ax = b con esta factorizacin, se procede de la siguiente


forma:

1. Calculamos P , L y U .

2. Consideramos el sistema lineal P Ax = P b; como P A = LU , tenemos el sistema


lineal LU x = P b.

3. Consideramos el sistema lineal L |{z}


U x = P b, y resolvemos el sistema lineal Lz =
z
P b.

4. Resolvemos el sistema lineal U x = z.

Nota 2.5.9. Matriz de permutacin P


Al resolver un sistema lineal mediante el mtodo de factorizacin LU , un fallo bastante
habitual consiste en olvidarse de multiplicar el vector b por la matriz de permutacin
P. 

De esta forma, para resolver el sistema lineal Ax = b, el coste computacional es la


suma de

1. El coste de realizar la factorizacin P A = LU , que es similar al del mtodo de


Gauss, es decir, de orden de 2n3 /3 operaciones.

2. El coste de resolver dos sistemas triangulares: Lz = P b, U x = z, es decir, 2n2


operaciones.

Observemos que el mayor coste computacional se requiere para la factorizacin L U .


De esta forma, si tenemos que resolver varios sistemas lineales con la misma matriz de
coeficientes,

A x1 = b1 ,
A x2 = b2 ,
A x3 = b3 ,
..
.

Segundo semestre, curso 2016/2017


2.5. Mtodos directos 57

la factorizacin L U que se hace en el primer sistema lineal se puede utilizar para el


resto de los sistemas lineales.

Si deseamos resolver varios sistemas lineales con la misma matriz de coeficientes, es


ms eficiente utilizar la orden
[L,U,P]=lu(A)
que devuelve una matriz triangular inferior L, una matriz triangular superior U y una
matriz de permutacin P tal que P A = L U . Utiliza tcnicas de pivoteo para aminorar
el efecto de los errores de redondeo.

Consideremos de nuevo el ejemplo 2.5.7. Introduciendo


>> A=[6 2 1; 2 3 1 ; 1 1 4];
>> [L,U,P]=lu(A)
obtenemos

L =
1.0000 0 0
0.3333 1.0000 0
0.1667 0.2857 1.0000
U =
6.0000 2.0000 1.0000
0 2.3333 0.6667
0 0 3.6429
P =
1 0 0
0 1 0
0 0 1
Obsrvese que en este caso la matriz de permutacin P es la identidad.

Consideremos ahora el ejemplo 2.5.2. Recordemos que en este caso no era necesario
realizar permutaciones de filas, por lo que se existe la factorizacin A = L U . Introdu-
ciendo
>> A=[1 -1 0 3; 2 1 -1 1; 3 -1 -1 2; -1 2 3 -1];
>> [L,U,P]=lu(A)
obtenemos
L =
1.0000 0 0 0

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


58 Resolucin numrica de sistemas lineales

-0.3333 1.0000 0 0
0.6667 1.0000 1.0000 0
0.3333 -0.4000 -0.4667 1.0000

U =
3.0000 -1.0000 -1.0000 2.0000
0 1.6667 2.6667 -0.3333
0 0 -3.0000 0.0000
0 0 0 2.2000
P =
0 0 1 0
0 0 0 1
0 1 0 0
1 0 0 0
Observemos que con Matlab la matriz P que se obtiene no es la identidad, es decir, en
el algoritmo se han realizado intercambio de filas. La razn es que Matlab utiliza una
tcnica de pivoteo para aminorar los errores de redondeo.

Finalmente, consideremos el ejemplo 2.5.3. Recordemos que en este caso en el mtodo


de Gauss se necesitaban reordenar las filas. Introduciendo
>> A=[1 -1 2 -1; 2 -2 3 -3; 1 1 -1 0; 1 -1 4 3];
>> [L,U,P]=lu(A)
obtenemos
L =
1.0000 0 0 0
0.5000 1.0000 0 0
0.5000 0 1.0000 0
0.5000 0 0.2000 1.0000
U =
2.0000 -2.0000 3.0000 -3.0000
0 2.0000 -2.5000 1.5000
0 0 2.5000 4.5000
0 0 0 -0.4000
P =
0 1 0 0
0 0 1 0
0 0 0 1

Segundo semestre, curso 2016/2017


2.5. Mtodos directos 59

1 0 0 0

Mtodo de Cholesly

En el caso en que la matriz A sea simtrica definida positiva, se puede utilizar la


propiedad de simetra para simplificar la factorizacin LU .

Teorema 2.5.10. Mtodo de Cholesky


Una matriz A simtrica es definida positiva si y slo si A = LLt , con L matriz trian-
gular inferior con `ii > 0.

Para el mtodo de Cholesky, el coste computacional es del orden de n3 /3 operaciones.


As en el caso en que tengamos una matriz simtrica definida positiva, ser ms ven-
tajoso utilizar el mtodo de Cholesky que el mtodo de Gauss, cuyo coste recordemos
que es del orden de 2n3 /3 operaciones.

En Matlab, si la matriz A es simtrica definida positiva, con [L,p]=chol(A,lower)


obtenemos una matriz L triangular inferior tal que LLt = A y el nmero p = 0. Si
la matriz A no es simtrica definida positiva, no se puede realizar la factorizacin de
Cholesky. Sin embargo, en algunas versiones de Matlab, si A no es definida positiva, la
orden [L,p]=chol(A,lower) calcula otra factorizacin, no la de Cholesky, y devuel-
ve un valor p > 0. As, por ejemplo, para la matriz A, simtrica y definida positiva,
obtenemos

>> A=[ 1 1 1 1; 1 2 3 4; 1 3 6 10; 1 4 10 20];


>> [L,p]=chol(A,lower)
L =
1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1
p =
0

Para la matriz B, simtrica pero no definida positiva, la versin R2013b proporciona


>> B=[-8 -1 3; -1 7 4; 3 4 9];
>> [L,p]=chol(B,lower)
L =
[]
p =
1

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


60 Resolucin numrica de sistemas lineales

2.6. Mtodos iterativos

En esta seccin vamos a estudiar algunos mtodos iterativos para la resolucin sistemas
lineales de la forma
Ax = b,
donde A es una matriz n n, y b Rn . Como hemos indicado anteriormente, en
los mtodos iterativos, a partir de un vector inicial x(0) se construye una sucesin
(x(m) )mN tal que x(m) x cuando m . Como no podemos construir infinitos
trminos, utilizando algn criterio de parada detendremos las iteraciones


(k0 1)
x(1) , x(2) , x(3) , x(4) , . . . , (k0 )
, x(k0 +1) , . . . ,

x ,x

PARAR

y tomaremos x(k0 ) como aproximacin de la solucin, x(k0 ) x.

Al programar un mtodo iterativo, en previsin de que el mtodo no sea convergente,


es conveniente fijar un nmero N de iteraciones para que, si tras N iteraciones no se
ha obtenido convergencia, se pare el proceso y se devuelva el control al usuario con el
mensaje Nmero de iteraciones N excedido.

2.6.1. Convergencia

Los mtodos iterativos que consideraremos en este curso son de la forma



x(0) dado ,
(2.8)
x(k+1) =Bx (k)
+ c, k 0,

en donde B es una matriz n n, y c es un vector de Rn , que definen el mtodo, y


que se construyen a partir de A y b. Diremos que el mtodo es convergente si, para
cualquier x(0) , se tiene
lm x(k) = x ,
k

con x la solucin del sistema lineal Ax = b.

Definicin 2.6.1. Mtodo iterativo consistente


El mtodo iterativo (2.38) se dice que es consistente si la matriz B y el vector c verifican

c = (In B)A1 b . (2.9)

Proposicin 2.6.2. Condicin necesaria para convergencia


Si un mtodo iterativo (2.38) es convergente, entonces es consistente.

Segundo semestre, curso 2016/2017


2.6. Mtodos iterativos 61

Demostacin: Si el mtodo es convergente, lmk x(k) = x. Tomando lmites en (2.38)


obtenemos x = Bx + c y as, despejando c, obtenemos c = (In B)x. Usando que
x = A1 b, llegamos a la condicin (2.9). 

Observemos que, si un mtodo iterativo no es consistente, no puede ser convergente.

La consistencia no es condicin suficiente para que un mtodo iterativo (2.38) sea


convergente.

Ejemplo 2.6.3. Mtodo consistente y no convergente


Consideremos el sistema lineal A x = b, con A = 2 In y b 6= 0, y el mtodo iterativo

x(k+1) = x(k) + b . (2.10)

Este mtodo es consistente ya que, si operamos con la parte derecha de (2.9) obtenemos

(In B)A1 b = (In (In ))(2In )1 c = c .

Si tomamos como vector inicial x(0) = 0, obtenemos

x(2k) = 0 , x(2k+1) = b , k = 1, 2, . . .

que no converge a la solucin del sistema lineal. Aunque haya otros vectores, por
ejemplo x(0) = b/2, para los cuales la sucesin (x(k) )kN es convergente a la solucin
del sistema lineal, el mtodo iterativo (2.10) no es convergente. Observemos que en la
definicin de convergencia se exige que la sucesin (x(k) )kN converja a la solucin del
sistema lineal para todo vector inicial x(0) . 

Proposicin 2.6.4. Condicin necesaria y suficiente para convergencia


Sea (2.38) un mtodo iterativo consistente. El mtodo es convergente si y slo si el
radio espectral de la matriz B es menor estricto que 1, es decir,

(B) < 1 . (2.11)

Puede demostrarse que, cuanto menor es (B), el radio espectral de la matriz B, ms


rpido es el mtodo.
Nota 2.6.5. Norma y radio espectral
Dada una matriz A, una propiedad de las normas matriciales es que

(A) kAk . (2.12)

De esta forma, si existe una norma k k tal que kBk < 1, usando la propiedad (2.12)
obtenemos la condicin de convergencia (2.11).

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


62 Resolucin numrica de sistemas lineales

Al utilizar esta propiedad debe tenerse en cuenta que en este curso se han definido
nicamente tres normas matriciales, k k1 , k k , k k2 , pero existen muchas otras
normas. Por ello, el que para las normas que conocemos no se cumpla que kBk < 1,
no quiere decir que no exista otra para la que s se cumpla esta condicin. 
Ejemplo 2.6.6. Convergencia usando norma
Consideramos un mtodo iterativo consistente con matriz de iteracin

0 1/3 1/3

2/5
B= 0 1/5
.
1/3 1/3 0
En este caso
kBk1 = max{11/15, 2/3, 8/15} = 11/15 < 1 ,
por lo que, usando la nota 2.6.5, podemos concluir que el mtodo es convergente. 

2.6.2. Criterios de parada

En esta seccin vamos a definir dos criterios que usaremos como criterio de parada
para los mtodos iterativos de la forma (2.38).

En primer lugar, el usuario debe determinar la magnitud del error admisible dando un
valor (pequeo) denominado tolerancia y que denotaremos por T OL.

Criterio basado en el error residual. Como vimos en el Teorema 2.4.7, si x es


una aproximacin de la solucin del sistema lineal Ax = b, y r es el error residual,
r = Ax b, entonces
kx x k krk
(A) .
kxk kbk
Basndonos en esta expresin, podemos detener la sucesin en el primer valor k0 en el
que se cumpla la condicin
kr (k0 ) k T OL kbk , (2.13)
donde r (k0 ) = Ax(k0 ) b. De esta forma, tenemos la siguiente cota para el error relativo
kx x(k0 ) k
(A) T OL .
kxk
Si la matriz A est bien condicionada, el error relativo ser del orden de T OL.

Criterio basado en la diferencia entre dos iteraciones consecutivas. Conside-


remos un mtodo iterativo de la forma (2.38) y una norma k k tal que, con esta norma,
se cumpla que kBk 1. En este este caso, puede demostrarse que
kBk
kx(k) xk kx(k) x(k1) k .
1 kBk

Segundo semestre, curso 2016/2017


2.6. Mtodos iterativos 63

Si detenemos la sucesin en el primer valor k0 en el que se cumple la condicin

kx(k0 ) x(k0 1) k T OL , (2.14)

tenemos la siguiente cota del error absoluto,


kBk
kx(k0 ) xk T OL .
1 kBk
Si el nmero kBk no est prximo a 1, el error absoluto es de orden similar o menor
que la tolerancia. De forma similar, si detenemos las iteraciones cuando

kx(k0 ) x(k0 1) k T OL kx(k0 ) k , (2.15)

tenemos la siguiente cota del error


kx(k0 ) xk kBk
T OL .
kx 0 k
(k ) 1 kBk

2.6.3. Mtodos de descomposicin

En los mtodos de descomposicin, la matriz A se escribe como A = M N , en donde


M es una matriz invertible, fcil de invertir. As, de M x N x = b obtenemos

x = M 1 N x + M 1 b .

Podemos construir el mtodo iterativo con B = M 1 N y c = M 1 b,


1 1
x(k+1) = M (k)
| {z N} x + M| {z b} . (2.16)
B c
Los mtodos construidos de esta forma son siempre consistentes. En efecto, si operamos
con la parte derecha de (2.9), obtenemos

(I B)A1 b = (I M 1 N )A1 b = M 1 (M N ) A1 b = M 1 b = c ,
| {z }
A
por lo que se verifica la condicin de consistencia (2.9).

Dada una matrix A = (aij ), para obtener mtodos de descomposicin podemos consi-
derar A = D L U donde D = diag (a11 , . . . , ann ) y

0 a12 a1,n1 a1n

0 0 0 0
.. .. ..
a21 0 0 0

0
. . .

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

L= ,U =
0 . . . .

..

.. ..

.

..

. . 0 0 . 0 an1,n



..
.

an1 an2 . an,n1 0 0 0 .. 0 0

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


64 Resolucin numrica de sistemas lineales

Segn cmo se definan las matrices M y N en trminos de D, L y U , se obtienen


diferentes mtodos.

1. Mtodo de Jacobi: M = D, N = L + U , por lo que B = M 1 N = D1 (L + U ).


As (2.16) es
x(k+1) = D1 (L + U ) x(k) + D 1
| {z b} .
c
| {z }
B
2. Mtodo de Gauss-Seidel: M = D L, N = U , por lo que B = M 1 N =
(D L)1 U . As (2.16) es
x(k+1) = (D L)1 U x(k) + (D L)1 b .
| {z } | {z }
B c

3. Mtodo de relajacin:
1 1w
M= D L, N= D+U,
w w
en donde w 6= 0. As (2.16) es
1  1
1 1w 1
  
x(k+1) = DL D + U x(k) + DL b.
|
w {z
w } |
w {z }
B c
Observemos que, para w = 1, obtenemos el mtodo de Gauss-Seidel.

Nota 2.6.7. Observemos que, como la matriz M tiene que ser invertible, en los mtodos
de Jacobi, Gauss-Seidel y de relajacin se requiere que aii 6= 0. Si la matriz de coefi-
cientes no verifica esta condicin, no es posible utilizar estos mtodos. Como veremos
ms adelante en los ejemplos, una reorganizacin de las ecuaciones puede resolver este
problema. 

En los mtodos de Jacobi y de Gauss-Seidel, una vez hallado el vector x(k) , las com-
ponentes del vector x(k+1) se van calculando secuencialmente para i = 1, 2, . . .. Una
(k+1) (k+1) (k+1) (k+1)
vez calculados x1 , x2 , . . . , xi1 , para hallar xi , en el mtodo de Jacobi
consideramos

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

mientras que en el mtodo de Gauss-Seidel tomamos



i1 n
(k+1) 1 X (k+1) X (k)
xi = bi aij xj aij xj .
aii j=1 j=i+1

Segundo semestre, curso 2016/2017


2.6. Mtodos iterativos 65

Es decir, en el mtodo de Gauss-Seidel, a medida que hallamos componentes del nuevo


vector x(k+1) , stas las vamos utilizando para obtener las siguientes componentes. Por
ello, el mtodo de Gauss-Seidel proporciona generalmente mejores resultados que el
mtodo de Jacobi.

Para el mtodo de relajacin las expresiones anteriores son



i1 n
(k+1) w X (k+1) X (k) (k)
xi = bi aij xj aij xj + (1 w) xi .
aii j=1 j=i+1

El parmetro w se elige para acelerar la convergencia del mtodo iterativo. Si queremos


un mtodo convergente, el valor de w no puede ser cualquiera.

Proposicin 2.6.8. Restricciones de w para convergencia del mtodo de relajacin


El mtodo de relajacin slo puede ser convergente si w (0, 2), es decir, si w < 0
w 2, el mtodo de relajacin no es convergente.

A continuacin damos algunos resultados para algunos tipos de matrices que aparecen
en las aplicaciones:

Matrices estrictamente diagonal dominantes.

Matrices con aii > 0, i = 1, . . . , n, y aij 0 para i 6= j.

Matrices simtricas definidas positivas.

Matrices tridiagonales.

Teorema 2.6.9. Convergencia para matrices estrictamente diagonal dominantes


Si la matriz A del sistema lineal Ax = b es estrictamente diagonal dominante, enton-
ces:

1. Los mtodos de Jacobi y Gauss-Seidel son convergentes.

2. Si 0 < 1, el mtodo de relajacin es convergente.

Observemos que una ordenacin adecuada de las ecuaciones puede dar lugar a matrices
estrictamente diagonal dominantes para las cuales podemos utilizar el teorema 2.6.9.

Teorema 2.6.10. Convergencia para matrices con cierta disposicin de signos


Sea A = (aij ) una matriz tal que aij 0 para i 6= j y aii > 0 para i = 1, . . . , n. Si
Bj y Bg denotan las matrices de iteracin los mtodos de Jacobi y de Gauss-Seidel,
respectivamente, entonces se verifica una y slo una de las siguientes expresiones:

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


66 Resolucin numrica de sistemas lineales

1. 0 < (Bg ) < (Bj ) < 1. 3. (Bg ) = (Bj ) = 0.

2. 1 < (Bj ) < (Bg ). 4. (Bg ) = (Bj ) = 1.

As, si uno de los mtodos es convergente, el otro tambin lo es, y el mtodo de Gauss-
Seidel es ms rpido. Si uno de los mtodos es divergente, el otro tambin lo es.

Teorema 2.6.11. Convergencia para matrices simtricas definidas positivas


Si A es una matriz simtrica definida positiva, entonces:

1. El mtodo de Gauss-Seidel converge.

2. Si la matriz 2D A es simtrica definida positiva, el mtodo de Jacobi converge.

3. El mtodo de relajacin converge para 0 < < 2.

Teorema 2.6.12. Mtodos de Gauss-Seidel y Jacobi para matrices tridiagonales


Consideremos un sistema lineal Ax = b, con A una matriz tridiagonal. Si Bg y Bj deno-
tan las matrices de iteracin de los mtodos de Gauss-Seidel y Jacobi, respectivamente,
los radios espectrales verifican
(Bg ) = (Bj )2 .

Por consiguiente, ambos mtodos son simultneamente convergentes o divergentes.


Cuando son convergentes, como (Bj ) < 1, el mtodo de Gauss-Seidel es ms rpi-
do que el mtodo de Jacobi.

Ejemplo 2.6.13. Ecuacin del calor 1D con temperatura dada en la frontera


La matriz que aparece al discretizar la ecuacin del calor 1D, dada en (2.4), es simtrica
definida positiva; por el teorema 2.6.11, el mtodo de Gauss-Seidel es convergente.

Adems, la matriz (2.4) tiene la condicin de signos del teorema 2.6.10, por lo que, al
ser convergente el mtodo de Gauss-Seidel, el mtodo de Jacobi tambin lo es, pero el
mtodo de Jacobi es ms lento.

Como la matriz (2.4) es tridiagonal, si el mtodo de mtodo de Gauss-Seidel es conver-


gente, el teorema 2.6.12 nos indica que el mtodo de Jacobi tambin es convergente;
adems, se concluye que el mtodo de Gauss-Seidel es ms rpido.

Finalmente, el teorema 2.6.11 proporciona la convergencia del mtodo de relajacin


para 0 < < 2. 

Segundo semestre, curso 2016/2017


2.6. Mtodos iterativos 67

Ejemplo 2.6.14. Mtodo de Jabobi; criterio de parada


Vamos a resolver el sistema lineal siguiente con el mtodo de Jacobi. Como criterio de
parada usaremos (2.13) con k k1 y Tolerancia= 104 .

50 1 2 3 4 1000


4 50 1 2 3


2500



3 4 50 1 2 x
=
2000
.


2 3 4 50 1


1500

1 2 3 4 50 1000
La matriz es estrictamente diagonal dominante, por lo que al aplicar el mtodo de
Jacobi obtendremos una sucesin convergente a la solucin del sistema lineal.

Comezamos las iteraciones



0 14 15.13


0


45.2


46.28

x(0) = , . . . x(2) = , . . . x(4) =


0


33.4


34.314
,...


0


22.6


23.544

0 12.8 13.852
Comprobamos el criterio de parada,
kx(2) x(1) k1 = 32 , kx(4) x(3) k1 = 1.28 .
Como no se cumple, seguimos iterando,

15.17074 15.17237 15.17244


46.32016


46.32180


46.32186

x(6) = , . . . x(8) = , . . . x(10) =


34.35463


34.35627


34.35634
.


23.58567


23.58731


23.58737

13.89360 13.89524 13.89530
Comprobamos de nuevo el criterio de parada
kx(6) x(5) k1 = 5.12 102 , kx(8) x(7) k1 = 2.05 103 ,

kx(10) x(9) k1 = 8.20 105 .


Finalmente, se cumple el criterio de parada, por lo que tomamos como aproximacin
del sistema lineal
15.17244

46.32186

(10)

xx = 34.35634

.

23.58737

13.89530

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


68 Resolucin numrica de sistemas lineales

Ejemplo 2.6.15. Mtodo de Gauss-Seidel, matriz sin ninguna propiedad


Vamos a resolver el siguiente sistema lineal con el mtodo de Gauss-Seidel. Como
criterio de parada usaremos (2.13) con k k1 y Tolerancia= 104 .

5 1 2 3 4 100


4 5 1 2 3


250



3 4 5 1 2 x
=
200



2 3 4 5 1


150

1 2 3 4 5 100

Observemos que en este caso la matriz no tiene ninguna propiedad (no es estrictamente
diagonal dominante, no es simtrica definida positiva) que nos asegure la convergencia
del mtodo de Gauss-Seidel. Comenzamos las iteraciones:

0 11.38240 10.65641


0


39.65888


40.65268

x(0) = , x(2) = , . . . x(4) =


0


0.79065


0.67649
,...


0


0.78878


0.67008

0 0.75454 0.66568

Comprobamos si se verifica el criterio de parada

kx(2) x(1) k1 = 14.85 , kx(4) x(3) k1 = 0.19 .

Como no se cumple, seguimos iterando



10.6663 10.6667 10.6666


40.6665


40.6666


40.6666

x(6) = , . . . x(8) = , . . . x(9) =


0.66693


0.66666


0.66666
.


0.66662


0.66666


0.66666

0.66657 0.66666 0.66666

Comprobamos el criterio de parada,

kx(6) x(5) k1 = 5.11 103 kx(8) x(7) k1 = 1.10 104 ,

kx(9) x(8) k1 = 1.41 105 .

Se cumple el criterio de parada, por lo que tomamos como aproximacin del sistema

Segundo semestre, curso 2016/2017


2.7. Problemas de transmisin de calor: caso estacionario 69

lineal

10.6666


40.6666

x x(9) =


0.66666
.


0.66666

0.66666

2.7. Problemas de transmisin de calor: caso estacionario

La ecuacin del calor en caso estacionario es la siguiente:

d2 T g(x)
1D: 2
(x) = .
dx k

2T 2T g(x, y)
2D: (x, y) + (x, y) = .
x2 y 2 k

En este curso estudiaremos nicamente recintos regulares

1. 1D: x [0, L], que representa, por ejemplo, una barra.

2. 2D: (x, y) [0, Lx ][0, Ly ], que representa, por ejemplo, una placa rectangular.

Para que el problema tenga solucin nica, junto con la ecuacin en derivadas parciales
debemos imponer condiciones de contorno en la frontera del recinto. Las condiciones
de contorno pueden ser:

1. temperatura determinada, 4. condicin de conveccin,

2. flujo de calor determinado, 5. condicin de radiacin.

3. frontera aislada,

Segn las condiciones de contorno, el problema obtenido mediante la discretizacin en


diferencias finitas es de un tipo u otro. En los casos 1-4, se obtiene un sistema lineal;
en el caso 5, se obtiene un sistema no lineal.

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


70 Resolucin numrica de sistemas lineales

2.7.1. Distribucin de temperatura en una barra: caso estacionario

En las seccin siguiente, estudiaremos la discretizacin de una barra y considerare-


mos condiciones de contorno que dan lugar a sistemas lineales. En la seccin 2.7.2
discretizaremos el problema 2D.

Distribucin de temperatura en una barra: caso estacionario

Consideremos la distribucin estacionaria de calor en una barra de longitud L,

d2 T g(x)
2
(x) = , 0 < x < L. (2.17)
dx k
En primer lugar discretizamos (2.17) mediante diferencias finitas , y ms adelante
introduciremos las condiciones de contorno.

Dividimos el intervalo [0, L] en M subintervalos de igual longitud y denotamos h =


L/M . De esta forma obtenemos los nodos

xi = (i 1) h , i = 1, . . . , M + 1 .

Observemos que los nodos frontera son x1 y xM +1 . De forma compacta escribiremos

xh = (x1 , x2 , . . . , xM , xM +1 ) RM +1 .

Para i = 1, 2, . . . , M + 1, deseamos hallar Ti , aproximaciones de la solucin exacta en


los puntos xi , es decir, Ti T (xi ). En forma vectorial deseamos hallar el vector

T h = (T1 , T2 , . . . , TM , TM +1 )t RM +1 ,

que aproxima a la solucin exacta en la malla xh ,

T R (xh ) = (T (x1 ), T( x2 ), . . . , T (xM ), T (xM +1 ))t RM +1 .

Como veremos ms adelante, para algunos tipos de condiciones de frontera, las com-
ponentes T1 y TM +1 pueden ser conocidas.

A continuacin, escribimos el sistema (2.17) en los puntos interiores xi , i = 2 . . . , M ,

d2 T g(xi )
(x i ) = , i = 2...,M .
dx2 k
Aproximamos las derivadas parciales con la siguiente frmula central

d2 T 1
2
(xi ) 2 (Ti1 2 Ti + Ti+1 ) ,
dx h
Segundo semestre, curso 2016/2017
2.7. Problemas de transmisin de calor: caso estacionario 71

obteniendo el sistema de M 1 ecuaciones


1 g(x2 )
2
(T1 2 T2 + T3 ) = , i=2
h k
1 g(xi )
2
(Ti1 2 Ti + Ti+1 ) = , i = 3, . . . M 1 (2.18)
h k
1 g(xM )
2
(TM 1 2 TM + TM +1 ) = , i=M.
h k
Escribimos por separado las ecuaciones para i = 2 y para i = M porque para estos
valores estn involucrados los nodos frontera x1 y xM +1 .

Observemos que tenemos M 1 ecuaciones y M + 1 posibles incgnitas en el vector


T . Falta imponer las dos condiciones de contorno, una en cada extremo de la barra.

Si la temperatura es constante y conocida en extremos de la barra, tenemos que impo-


ner:
T (xizda ) = T (x1 ) = T1 = Tizda , T (xdcha ) = T (xM +1 ) = TM +1 = Tdcha ,
con Tizda y Tdcha valores conocidos. As, en el sistema (2.18) sustituimos T1 por Tizda ,
TM +1 por Tdcha , y obtenemos un sistema lineal de dimensin M 1,
h2


2 1 0 0
g(x2 ) + Tizda
T2 k

..

2
h

1 2 1 0 . T3


.. g(x 3 )
.. ..

0 1 2

. .

.

k
.

.

=

.

. . . .

. .
.. . . . . . . . . 0 ..

2
h
... g(x )


1 2 1

TM 1

k
M 1


T

2
0 0 1 2 M h
g(xM ) + Tdcha
k
Observemos que la matriz de coeficientes es tridiagonal y simtrica. Adems, los elemen-
tos diagonales son todos positivos y los extradiagonales negativos. Puede demostrarse
que la matriz es simtrica definida positiva.

Resolviendo el sistema lineal, se obtiene el vector T h = (T2 , . . . , TM )t . Puede demos-


trarse que la aproximacin es de orden dos, es decir,
kT R (xh ) T h k = max |T (xi ) Ti | = O(h2 ) , h 0.
1iM +1

Nota 2.7.1. Si en la simulacin numrica se van a considerar otros tipos de condiciones


de frontera, es conveniente mantener T1 y TM +1 como incgnitas. As, en vez de sustituir
los valores de T1 y TM +1 por sus valores conocidos, aadimos las ecuaciones

T1 = Tizda ,
TM +1 = Tdcha ,

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


72 Resolucin numrica de sistemas lineales

e incorporamos T1 y TM como incgnitas,



Tizda

h2

1 0 0 0 T1
g(x2 )

k
..


T2
1 2 1 0 . h2


g(x3 )

T3


k
... ... ..

..

0 1 2

.

.





.. =
..

(2.19)

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


. 0





h2

TM 1


g(xM 1 )

..
. 1 2 1




k

TM


h2


g(xM )

0 0 0 1 TM +1
k



Tdcha

De esta forma, obtenemos un sistema lineal de dimensin M + 1.

Cuando cambiemos la condicin de contorno, bastar cambiar en (2.19) la primera y


la ltima ecuacin. 

La condicin de contorno en la que se impone el valor de la funcin incgnita en un


extremo del intervalo,

T (0) = Tizda T (L) = Tdcha ,

se llama condicin de tipo Dirichlet. En el ejemplo anterior, se han impuesto condiciones


tipo Dirichlet en ambos extremos del intervalo. Existen otro tipo de condiciones:

1. Si se impone el valor de la derivada en el extremo del intervalo,

T 0 (0) = T 0 (L) = , (2.20)

en donde y son valores dados, se dice que se tiene una condicin de contorno
tipo Neumann.
2. Si se impone

T 0 (0) + 0 T (0) = T 0 (L) + L T (L) = , (2.21)

en donde 0 , , L , y son valores dados, se dice que se tiene una condicin de


contorno de tipo Robin.

Las condiciones de contorno se pueden combinar, pudiendo imponer condiciones de


distinto tipo en cada extremo de la barra.

Segundo semestre, curso 2016/2017


2.7. Problemas de transmisin de calor: caso estacionario 73

Observemos que, en el caso en el que impongamos condiciones tipo Neumann en ambos


extremos, la solucin del problema no es nica. En efecto, si tenemos una solucin T (x),
las expresiones T (x) + C, con C R, tambin son solucin del problema.

En el caso de problemas de transmisin del calor:

Si en el extremo izquierdo tenemos una condicin de frontera de flujo de calor


especfico,
q0
T 0 (0) = .
k
la condicin de contorno es de tipo Neumann con = q0 /k, donde q0 es el flujo
especfico de calor, Como caso particular, se tiene el caso de frontera aislada
= 0.

Si en el extremo izquierdo tenemos una condicin de frontera de conveccin,


Cconv
T 0 (0) = (T T (0)) .
k
la condicin de contorno es de tipo Robin con 0 = Cconv /k y = T Cconv /k,
en donde T es la temperatura del medio circundante y Cconv es el coeficiente de
conveccin.

Como se indic en la nota 2.7.1, para introducir otros tipos de condiciones de contorno,
bastar cambiar en (2.19) la primera y la ltima ecuacin.

Mostramos cmo hallar la primera y la ltima ecuacin en el caso de condiciones de


contorno tipo Robin. Observemos que las ecuaciones para condiciones de contorno tipo
Neumann se pueden obtener a partir de las de Robin imponiendo 0 = 0, L = 0.

Condicin de contorno tipo Robin (T 0 (0) + 0 T (0) = , T 0 (L) + L T (L) = )

Para imponer la condicin T 0 (0) + 0 T (0) = , escribimos el sistema (2.17) en el


extremo izquierdo, y aproximamos la derivada segunda con la frmula central de tres
puntos,

d2 T g(x1 ) 1 g(x1 )
2
(x1 ) = 2
(T0 2 T1 + T2 ) = . (2.22)
dx k h k
Esta expresin contiene el trmino T0 , que correspondera al nodo x0 = h, que est
fuera de la barra. En la condicin de contorno T 0 (0) + 0 T (0) = , discretizamos
derivada primera mediante una frmula central de tres puntos,
1
T 0 (0) + 0 T (0) = (T2 T0 ) + 0 T1 = . (2.23)
2h
UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.
74 Resolucin numrica de sistemas lineales

Despejando T0 de (2.23) y sustituyendo en (2.22), obtenemos la ecuacin

h2
2 (1 + 0 h) T1 2 T2 = g(x1 ) + 2 h .
k

Para imponer la condicin T 0 (L) + L T (L) = , escribimos el sistema (2.17) en el


extremo derecho, y aproximamos la derivada segunda con la frmula central de tres
puntos,

d2 T g(xM +1 ) 1 g(xM +1 )
2
(xM +1 ) = 2
(TM 2 TM +1 + TM +2 ) = .
dx k h k
(2.24)
Esta expresin contiene el trmino TM +2 , que correspondera al nodo xM +2 = L+h, que
est fuera de la barra. En la condicin de contorno T 0 (L) + L T (L) = , discretizamos
derivada primera mediante una frmula central de tres puntos,

1
T 0 (L) + L T (L) = (TM +2 TM ) + L TM +1 = . (2.25)
2h

Despejando TM +2 de (2.25) y sustituyendo en (2.24), obtenemos la ecuacin

h2
2 TM + 2(1 + L h) TM +1 = g(xM +1 ) + 2 h .
k

Condicin de contorno tipo Neumann (T 0 (0) = , T 0 (L) = )

Para imponer la condicin T 0 (0) = , debemos introducir la ecuacin

h2
2 T1 2 T2 = g(x1 ) + 2 h .
k

Para imponer la condicin T 0 (L) = , debemos introducir la ecuacin

h2
2 TM + 2 TM +1 = g(xM +1 ) + 2 h .
k

Ejemplo 2.7.2. Consideremos el problema de distribucin de temperatura en una


barra. Si imponemos en el extremo izquierdo una condicin tipo Neumann, T 0 (0) = ,
y en extremo derecho una condicin tipo Robin, T 0 (L) + L T (L) = , el sistema lineal

Segundo semestre, curso 2016/2017


2.7. Problemas de transmisin de calor: caso estacionario 75

que debemos resolver es


h2

g(x1 ) + 2 h
k


h2

2 2 0 0 T1
g(x2 )


k


..


T2
h2

1 2 1 0 .



g(x3 )
T3 k



.. ..

..
..
0 1 2 . . .

.



.. = ..
.

.. .. .. .. ..

.

. . . .

. 0




h2

TM 1

g(xM 1 )

...
k

1 2 1


TM

h2


g(xM )

0 0 2 2(1 + L h) TM +1
k


h2


g(xM +1 ) + 2 h
k

2.7.2. Distribucin de temperatura en una placa: caso estacionario

Consideramos ahora la distribucin de calor en una placa rectangular. En este caso,


tenemos la ecuacin
!
2T 2T g(x, y)
2
(x, y) + 2
(x, y) = , (x, y) D , (2.26)
x y k

en donde D = {(x, y) R2 | 0 < x < a , 0 < y < b}. En primer lugar discretizaremos
(2.26) mediante diferencias finitas; ms adelante introduciremos las condiciones de
contorno en la frontera de D.

Para discretizar este problema, procedemos de la siguiente forma.

Dividimos el intervalo [0, a] en M


subintervalos y el intervalo [0, b] en N
subintervalos.

Denotamos hx = a/M ; hy = b/N ; xi =


(i 1) hx , yj = (j 1) hy . Tenemos los
nodos

xi , i = 1, 2 . . . , M + 1 ,

yj , j = 1, 2 . . . , N + 1 ,
en total, (N +1)(M +1) nodos (xi , yj ):

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


76 Resolucin numrica de sistemas lineales

Observemos que los nodos

(x1 , yj ) , (xM +1 , yj ) , j = 1, . . . , N + 1 ,

(xi , y1 ) , (xi , yN +1 ) , i = 1, . . . , M + 1 ,

son nodos frontera.

Deseamos hallar Tij , una aproximacin de la solucin exacta en los puntos (xi , yj ), Tij
T (xi , yj ), i = 1, . . . , M +1, j = 1, . . . , N +1. En total, tenemos (N +1)(M +1) valores
Tij . Puede que no todos ellos sean incgnitas. Por ejemplo, si tenemos la temperatura
en la frontera de D, entonces nicamente tenemos que hallar T (x, y) en el interior de
D.

Para discretizar el problema, en primer lugar, escribimos la ecuacin (2.26) en los


puntos interiores (xi , yj ),
!
2T 2T g(xi , yj )
(x i , yj ) + (xi , yj ) = , i = 2...,M ,
x2 y 2 k
j =, 2 . . . , N .

A continuacin, aproximamos las derivadas parciales con frmulas centrales


2T 1
2
(xi , yj ) 2 (Ti1,j 2 Tij + Ti+1,j ) ,
x hx
2u 1
2
(xi , yj ) 2 (Ti,j1 2 Tij + Ti,j+1 ) ,
y hy
obteniendo el sistema de ecuaciones
1 1 g(xi , yj )
2
(Ti1,j 2 Tij + Ti+1,j ) 2 (Ti,j1 2 Tij + Ti,j+1 ) = (2.27)
hx hy k
i = 2...,M , j = 2...,N .

Agrupando coeficientes, la parte izquierda de expresin (2.27) puede escribirse como

Ti,j1 Ti1,j + Tij Ti+1,j Ti,j+1 ,

en donde hemos denotado


2 2 1 1
= + , = , = .
h2x h2y h2x h2y
En la placa, numeramos los nodos interiores de izquierda a derecha, y desde abajo hacia
arriba (otras numeraciones son posibles), y formamos un vector con los valores Tij

U = (T2,2 , . . . , TM,2 , T2,3 , . . . , TM,3 , T2,N , . . . , TM,N )t .


| {z } | {z } | {z }
U2 U3 UN

Segundo semestre, curso 2016/2017


2.7. Problemas de transmisin de calor: caso estacionario 77

A continuacin introducimos las condiciones de frontera.

Al igual que ocurra en el caso 1D, si la condicin de frontera es una temperatura


conocida,

T (xi , y1 ) = S (xi ) , T (xi , yN +1 ) = N (xi ) , i = 1, . . . , M + 1 ,


T (x1 , yj ) = O (yj ) , T (xM +1 , yj ) = E (yj ) , j = 1, . . . , N + 1 ,

podemos ir sustituyendo la temperatura en los nodos frontera por sus valores.

Vamos a mostrar el sistema lineal resultante para la placa del dibujo anterior, en el que
M = 5 y N = 4, suponiendo que la temperatura en la frontera de la placa es conocida.
El vector incgina es

U = (T2,2 , T3,2 , T4,2 , T5,2 , T2,3 , T3,3 , T4,3 , T5,3 , T2,4 , T3,4 , T4,4 , T5,4 )t .
| {z } | {z } | {z }
U2 U3 U4

Escribimos las 4 ecuaciones para la segunda fila (empezando por abajo) de la placa,
que se corresponden con los ndices j = 2, e i = 2, 3, 4, 5, y resaltamos los valores
conocidos.
g(x2 , y2 )
T2,1 T1,2 + T2,2 T3,2 T2,3 = , i = 2,
k
g(x3 , y2 )
T3,1 T2,2 + T3,2 T4,2 T3,3 = , i = 3,
k
g(x4 , y2 )
T4,1 T3,2 + T4,2 T5,2 T4,3 = , i = 4,
k
g(x5 , y2 )
T5,1 T4,2 + T5,2 T6,2 T5,3 = , i = 5.
k
Sustituimos los valores conocidos:
g(x2 , y2 )
S (x2 ) O (y2 ) + T2,2 T3,2 T2,3 = , i = 2,
k
g(x3 , y2 )
S (x3 ) T2,2 + T3,2 T4,2 T3,3 = , i = 3,
k
g(x4 , y2 )
S (x4 ) T3,2 + T4,2 T5,2 T4,3 = , i = 4,
k
g(x5 , y2 )
S (x5 ) T4,2 + T5,2 E (y2 ) T5,3 = , i = 5.
k
As obtenemos el primer bloque de ecuaciones,

A2,2 U2 + A2,3 U3 = B2 ,

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


78 Resolucin numrica de sistemas lineales

donde

0 0 0 0 0

0 0 0 0
A2,2 = A2,3 = I4 = ,

0 0 0 0


0 0 0 0 0


g(x2 , y2 )
+ S (x2 ) + O (y2 )
k


g(x3 , y2 )
+ S (x3 )


B2 =
k
.

g(x4 , y2 )

+ S (x4 )
k
g(x5 , y2 )


+ S (x5 ) + E (y2 )
k
De forma similar, escribimos las siguientes 4 ecuaciones para la tercera fila de la placa,
que se corresponden con los ndices j = 3, e i = 2, 3, 4, 5,

g(x2 , y3 )
T2,2 T1,3 + T2,3 T3,3 T2,4 = , i = 2,
k
g(x3 , y3 )
T3,2 T2,3 + T3,3 T4,3 T3,4 = , i = 3,
k
g(x4 , y3 )
T4,2 T3,3 + T4,3 T5,3 T4,4 = , i = 4,
k
g(x5 , y3 )
T5,2 T4,3 + T5,3 T6,3 T5,4 = , i = 5.
k

e incorporamos las condiciones de contorno,

g(x2 , y3 )
T2,2 O (y3 ) + T2,3 T3,3 T2,4 = , i = 2,
k
g(x3 , y3 )
T3,2 T2,3 + T3,3 T4,3 T3,4 = , i = 3,
k
g(x4 , y3 )
T4,2 T3,3 + T4,3 T5,3 T4,4 = , i = 4,
k
g(x5 , y3 )
T5,2 T4,3 + T5,3 E (y3 ) T5,4 = , i = 5.
k

De esta forma obtenemos los bloques

A3,2 U2 + A3,3 U3 + A3,4 U4 = B3 ,

Segundo semestre, curso 2016/2017


2.7. Problemas de transmisin de calor: caso estacionario 79

donde A3,3 = A2,2 , A3,2 = A3,4 = I4 , y



g(x2 , y3 )
+ O (y3 )
k



g(x3 , y3 )


B3 =
k
,
g(x4 , y3 )




k
g(x5 , y3 )


+ E (y3 )
k
Finalmente, escribimos las 4 ecuaciones que involucran a los nodos la parte superior
de la placa, que se corresponden con los ndices j = 4, e i = 2, 3, 4, 5,
g(x2 , y4 )
T2,3 T1,4 + T2,4 T3,4 T2,5 = , i = 2,
k
g(x3 , y4 )
T3,3 T2,4 + T3,4 T4,4 T3,5 = , i = 3,
k
g(x4 , y5 )
T4,3 T3,4 + T4,4 T5,4 T4,5 = , i = 4,
k
g(x5 , y3 )
T5,3 T4,4 + T5,4 T6,4 T5,5 = , i = 5,
k
e incorporamos las condiciones de contorno,
g(x2 , y4 )
T2,3 O (y4 ) + T2,4 T3,4 N (x2 ) = , i = 2,
k
g(x3 , y4 )
T3,3 T2,4 + T3,4 T4,4 N (x3 ) = , i = 3,
k
g(x4 , y5 )
T4,3 T3,4 + T4,4 T5,4 N (x4 ) = , i = 4,
k
g(x5 , y3 )
T5,3 T4,4 + T5,4 E (y4 ) N (x5 ) = , i = 5.
k
De esta forma obtenemos los bloques

A4,3 U3 + A4,4 U4 = B4 ,

donde A4,4 = A2,2 , A4,3 = I4 , y



g(x2 , y4 )
+ N (x2 ) + O (y4 )
k


g(x3 , y4 )
+ N (x3 )


B4 = k
.
g(x4 , y4 )


+ N (x4 )
k
g(x5 , y4 )


+ N (x5 ) + E (y4 )
k

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


80 Resolucin numrica de sistemas lineales

De esta forma, obtenemos un sistema lineal tridiagonal a bloques de dimensin 12


A U = B de la forma

A2,2 A2,3 0 U2 B2
A3,2 A3,3 A3,4 U3 = B3

0 A4,3 A4,4 U4 B4

donde Am,` son matrices de dimensin 4 4, y U` y B` son vectores de dimensin 4.


Componente a componente,

0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0




0 0 0 0 0 0 0 0


0 0 0 0 0 0 0 0 0

0 0 0 0


0 0 0 0

0 0 0 0 0 0 0
A=

0 0 0 0 0 0 0




0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0




0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

g(x2 , y2 )
+ S (x2 ) + O (y2 )
k


g(x3 , y2 )
+ S (x3 )


k

g(x4 , y2 )
+ S (x4 )


k
g(x5 , y2 )


+ S (x5 ) + E (y2 )

k

g(x2 , y3 )
+ O (y3 )
k



g(x3 , y3 )


B= k
g(x4 , y3 )




k
g(x5 , y3 )


+ E (y3 )
k


g(x2 , y4 )

+ N (x2 ) + O (y4 )

k

g(x3 , y4 )
+ N (x3 )


k
g(x4 , y4 )


+ N (x4 )
k
g(x5 , y4 )


+ N (x5 ) + E (y4 )
k

Segundo semestre, curso 2016/2017


2.8. Apndice: Conceptos bsicos de matrices y clculo matricial 81

2.8. Apndice: Conceptos bsicos de matrices y clculo matricial

Sea A = (aij ) una matriz real mn (m filas y n columnas). En esta seccin recordamos
algunos conceptos bsicos de matrices y clculo matricial.

La matriz traspuesta se denotar por At .

En el caso m = n, se definen los siguientes conceptos.

Una matriz A se dice que es simtrica si A = At .


La matriz identidad es In = (ij ), con ii = 1, y ij = 0 para i 6= j.
Una matriz A se dice que es invertible (o regular) si existe una matriz B tal
que AB = BA = In . Se dice que B es la inversa de A y se denota por A1 .
Si la matriz A no es invertible, diremos que es singular.
La matriz A se dice diagonal si aij = 0 para i 6= j.
La matriz A se dice tridiagonal si aij = 0 para i, j verificando |i j| > 1.
Observemos que, para definir una matriz tridiagonal, basta con definir la
diagonal principal y la diagonales superior e inferior de la matriz.
De forma similar, se definen las matrices pentadiagonales, etc.
La matriz A se dice triangular superior (inferior) si aij = 0 para i > j
(i < j).
Los valores propios de una matriz A son las races del polinomio caracters-
tico pA () = det (A In ).
Vector propio asociado al valor propio : es un vector v 6= 0 tal que A v = v.
Si los valores propios de la matriz A son 1 , . . . , n , el radio espectral de A
es
(A) = max |i | .
1in

Si i es un nmero complejo, debe calcularse el mdulo del nmero complejo.


Si una matriz A es simtrica, todos los valores propios son reales.
El producto escalar de dos vectores u, v Rn se define como
n
hu, vi = v t u = ut v =
X
ui vi
i=1

Propiedades: hAu, vi = hu, At vi.


Una matriz simtrica A se dice definida positiva si y slo si se cumple cual-
quiera de los criterios siguientes, todos ellos equivalentes:
hAu, ui > 0 para todo u no nulo o,
Todos los valores propios son estrictamente positivos.

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


82 Resolucin numrica de sistemas lineales

Todos sus menores principales son positivos.


Observemos que las matrices definidas positivas son invertibles.
Una matriz simtrica A se dice semidefinida positiva si hAu, ui 0 para todo
u o, equivalentemente, si todos los valores propios son mayores o iguales que
cero.

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 83

2.9. Problemas del tema 2


1. Consideramos un sistema lineal Ax = b de dimensin n cuya solucin x es
conocida. El sistema lineal se obtiene tras discretizar la ecuacin del calor en el
intervalo [0, L] con ciertas condiciones de contorno. De esta forma, dividiendo
el intervalo [0, L] en diferente nmero de trozos, obtenemos sistemas lineales de
dimensin n = 100, 200, 500, 1000, . . .
Para cada sistema lineal de dimensin n, hacemos 15 iteraciones con el mtodo
de Gauss-Seidel, obteniendo el vector x(15) . A continuacin hallamos el vector de
(15)
errores, error Rn , definido como errori = |xi xi |, i = 1, . . . , n.
Para cada sistema lineal de dimensin n, calculamos la norma dos del vector de
errores, kerrork2 , obteniendo los resultados que se muestran en la tabla siguiente.

Dimensin n kerrork2
100 6.5603e-07
200 9.5711e-07
500 1.5405e-06
1000 2.1913e-06
2000 3.1078e-06
4000 4.4014e-06
10000 6.9652e-06
20000 9.8531e-06
30000 1.2069e-05

En las figuras siguientes mostramos las componentes del vector error Rn


obtenido al resolver los sistemas lineales de dimensin n = 100 (izquierda), n =
200 (centro) y n = 500 (derecha).
7 7 7
10 10 10

8 8 8
10 10 10
0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 500

Responde razonadamente:

(a) Cuando n vara: qu observas en la tabla anterior? qu observas en las


grficas anteriores?
(b) Es correcto concluir que solucin del sistema lineal de dimensin n = 100
est mejor aproximada que la solucin del sistema lineal de dimensin n =
30000?

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


84 Resolucin numrica de sistemas lineales

(c) Qu podemos modificar para que los resultados obtenidos en la tabla sean
coherentes con los resultados obtenidos en las grficas?

(Evaluacin curso 2013-2014)

Condicionamiento

2. Consideremos el sistema lineal Ax = b, donde



4 2 9 1/5 4/5 1/5
1
A = 1

1 2
A = 7/25 23/25 17/25

,

3 2 1 1/25 14/25 6/25

y b = (19, 5, 4)t , cuya solucin es x = (1, 2, 3)t .

(a) Halla el condicionamiento segn k k de la matriz A.


(b) Considera el sistema perturbado A x = b, donde b = (18.7, 5.1, 4)t .
Si x es la diferencia entre la solucin del sistema inicial y del sistema
perturbado, x = x x , halla una cota de kxk /kxk .
(c) Sabiendo que la solucin del sistema Ax= = (1.140, 2.176, 3.068)t ,
b es x
comprueba que el error relativo kxk /kxk es inferior a la cota calculada
en el apartado (c).

3. Dado el sistema lineal:

x1 + 9 x2 + 12 x3 = 22 ,
9 x1 + 3 x2 + x3 = 13 ,
x1 + x2 + x3 = 3 ,

cuya solucin es x1 = 1, x2 = 1, x3 = 1, se considera el sistema perturbado:

x1 + 9 x2 + 12 x3 = 21.8 ,
9 x1 + 3 x2 + x3 = 13.2 ,
x1 + x2 + x3 = 2.9 ,

cuya solucin es x1 = 2.45, x2 = 4.65, x3 = 5.1.

(a) Sabiendo que


1 1.5 13.5
A1 = 4 5.5 53.5
,

3 4 39
halla el condicionamiento segn k k1 .
(b) Justifica el condicionamiento de la matriz la diferencia entre la solucin del
sistema original y la del sistema perturbado?

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 85

(c) Halla una cota del error relativo cometido.


4. Un alumno tiene la opcin de usar dos ordenadores diferentes (DoGood174,
Mightdo189) con programas para resolver sistemas lineales. Para comprobar cul
es mejor, resuelve un sistema lineal con solucin nica
! ! !
34 55 x 21
= .
55 89 y 34
Con DoGood174 obtiene como solucin x = 0.11, y = 0.45, mientras que con el
Mightdo193 obtiene x = 0.99, y = 1.01. Ante la disparidad de los resultados, al
alumno se le ocurre sustituir las dos soluciones en el sistema lineal, obteniendo

34(0.11) + 55(0.45) 21 = 0.01 , 34(0.99) + 55(1.01) 21 = 0.89 ,
55(0.11) + 89(0.45) 34 = 0.0 , 55(0.99) + 89(1.01) 34 = 1.44 .
Tras estos clculos, elige el ordenador DoGood174 ya que la solucin del siste-
ma lineal obtenida con este ordenador es la que tiene menor error residual. Es
correcta la eleccin?
5. Para probar un programa de resolucin de sistemas lineales introducimos el sis-
tema
10 1 4 0 x1 15

1 10 5 1 x2
15
= ,

4 5 10 7 x3 26


0 1 7 9 x4 15
que tiene como solucin x = (1, 1, 1, 1)t . Al introducirlo cometemos un error y
tecleamos
10 1 4 0 x1 16

1 10 5 1 x2 16

= .

4 5 10 7 x3 25


0 1 7 9 x4 16
obteniendo como solucin x = (832, 1324, 2407, 2021)t . Explica a qu puede ser
debida la diferencia entre las soluciones de los dos sistemas lineales.
Nota:
1
10 1 4 0 105 167 304 255

1 10 5 1 167 266 484 406
=

4 5 10 7 304 484 881 739


0 1 7 9 255 406 739 620

6. Consideramos el sistema lineal A x = b,



1 3 1+ 3
1.366025
2 2 2



x =


, Nota:

b



3 1 1 3

0.366025

2 2 2

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


86 Resolucin numrica de sistemas lineales

cuya solucin es x = (1, 1)t . Consideramos tambin el sistema lineal perturbado


Ax = b + b, !
1.4
Ax= ,
0.4
= (1.04641, 1.01244)t .
obteniendo como solucin x

(a) Responde razonadamente: qu puede decirse de la matriz A?


(b) Calcula una cota del error relativo. (Nota: usa k k )

(Evaluacin curso 2012-2013)

7. Programamos un mtodo iterativo para resolver sistemas lineales con criterio de


parada kAx(k) bk1 T OL. Lo usamos para resolver el sistema lineal
! !
0.913 0.659 0.254
x=
0.457 0.330 0.127

con T OL = 103 . Tras 10 iteraciones, el vector x(10) = (0.0827, 0.5)t cumple el


criterio de parada y se detienen las iteraciones.

(a) Halla una cota del error relativo cometido al aproximar la solucin del sis-
tema lineal por x(10) .
(b) Responde razonadamente: cmo puede modificarse el programa para obte-
ner mejores resultados? (Evaluacin curso 2012-2013)

Mtodos directos

8. Dada la matriz A, 1 3 5

2 2 8
1

A= 1
1 4

,
1 1 11
2 2 8
usamos la orden de Matlab [L,U,P]=lu(A) y obtenemos

1 1 14

1 0 0 0 1 0
1 1

2 1 0 ,
L= 0 2
U = , 1 0 0 .
P =

2
1 1
2 2
1 0 0 1 0 0 1

Resuelve el sistema lineal


1 3 5
3
2 2 8
1
2
1
1 4
x
= 1 ,
1 1 11 2
2 2 8

usando factorizacin LU . (Evaluacin curso 2013-2014)

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 87

9. (a) Dada la matriz


4 4 6
A = 4 13 18 ,

6 18 26
usamos la orden de Matlab chol(A, lower) y obtenemos

2 0 0
2 3 0 .
L=

3 4 1
Resuelve el sistema lineal

4 4 6 18

4 13 18 x = 39 ,

6 18 26 56
usando la factorizacin de Cholesky.
(b) Para la matriz A del apartado anterior, se puede utilizar el mtodo de
eliminacin gaussiana sin intercambiar filas?
(c) Usamos la orden de Matlab [L,U,P]=lu(A) y obtenemos

1 0 0 6 18 26

2
0 0 1
1 0 , 0 8 34

L= U = 3 , P = 1 0 0 .

3


2 1
8 1 0 0 4 3 0 1 0
3

En el mtodo de eliminacin gaussiana, se han intercambiado filas? Cul


es el motivo?

Mtodos iterativos

10. Dados los sistemas lineales


! ! ! ! ! !
10 1 x1 11 2 10 x1 12
= , , = ,
2 10 x2 12 10 1 x2 11

cuya solucin es x1 = 1, x2 = 1:
(a) Estudia la convergencia del mtodo de Jacobi y de Gauss-Seidel.
(b) Tomando x(0) = (0, 0)t , realiza 4 iteraciones con el mtodo de Jacobi y de
Gauss-Seidel. Explica los resultados.
11. Se intenta resolver el sistema lineal Ax = b
1 10 0 0 x1 21

0 1 10 0 x2 32
= , (2.28)

0 0 1 10 x3 43


10 0 0 1 x4 14

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


88 Resolucin numrica de sistemas lineales

utilizando el mtodo de Jacobi, partiendo de la iteracin inicial x(0) = b. Las


iteraciones obtenidas son

299 4001 9999



398 1002 1998
x(1) = ,

x(2) = , x(3) = ,

97 2003 2997


196 3004 3996
200001 30 105 40 106

300002 40 105 10 106
x(4) = , x(5) = , x(6) = ,

400003 999997 20 106
100004 20 105 30 106
10 107 20 108

20 107 30 108
x(7) = ,

x(8) =
.
30 107 40 108


40 107 10 108

Explica qu est sucediendo. Se puede transformar el sistema (2.28) en otro


equivalente de tal forma que, al usar el mtodo de Jacobi, la sucesin obtenida
converja al vector x = (1, 2, 3, 4)t ? Razona la respuesta.

12. Para aproximar la solucin de un sistema lineal Ax = b se propone el mtodo


iterativo

x(0) , dado ,
(k+1) (k) (k)
(2.29)
x =x + (b A x ) , k 0 ,

con R, 6= 0.

(a) Halla condiciones sobre x(0) y para que el mtodo (2.29) sea convergente.

(b) Indica qu valor de proporciona la convergencia ms rpida.

(c) Consideremos el sistema lineal

! ! !
1 1 x1 2
= . (2.30)
2 4 x2 2

En la Figura 1 se muestra |1 ()|, |2 ()|, los valores absolutos de los valores

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 89

propios 1 (), 2 () de la matriz I2 A.


iHL
3.5
3.0
2.5
2.0
1.5
1.0
0.5

0.2 0.4 0.6 0.8 1.0 1.2 1.4


Figura 1: Valor absoluto de 1 (), 2 ()


Indica sobre la grfica los valores de para los cuales el mtodo (2.38) es
convergente; razona la respuesta. Indica sobre la grfica el valor de que
proporciona la convergencia ms rpida; razona la respuesta.
(d) Con x(0) = (0, 0)t , y diferentes valores de , resolvemos el sistema lineal
(2.39) obteniendo los siguientes resultados:
i) Para = 0.25,
! ! ! !
(1) 0.5 (2) 0.75 (3) 0.875 (4) 0.9375
x = ,x = ,x = ,x = .
0.5 0.75 0.875 0.9375
ii) Para = 0.4,
! ! ! !
(1) 0.8 (2) 0.96 (3) 0.992 (4) 0.9984
x = ,x = ,x = ,x = .
0.8 0.96 0.992 0.9984
iii) Para = 1.2,
! ! ! !
(1) 2.4 (2) 0.96 (3) 3.744 (4) 2.8416
x = ,x = ,x = ,x = .
2.4 0.96 3.744 2.8416
Utilizando la grfica de la Figura 1:
1) Explica por qu se obtienen estos resultados.
2) Explica las diferencias entre los resultados i) y ii).
(Evaluacin curso 2012-2013)

13. Para aproximar la solucin del sistema lineal Ax = b se propone el mtodo


iterativo
x(0) , dado ,
(2.31)
x(k+1) = (I A)x(k) + b , k 0 ,

donde I es la matriz identidad.

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


90 Resolucin numrica de sistemas lineales

(a) Halla condiciones para que el mtodo iterativo (2.31) sea convergente.
(b) Resolvemos el sistema lineal
! ! !
1 1 x1 2
= ,
2 4 x2 2
con el mtodo (2.31) a partir del vector x0 = (2, 1)t , obteniendo
! ! ! !
(1) 1 (2) 1 (3) 7 (4) 13
x = , x = , x = , x = .
3 5 15 28
Explica qu ocurre y por qu se obtienen estos resultados. Responde razo-
nadamente: qu pasara si cambiramos el vector inicial x(0) ?
(Evaluacin curso 2012-2013)

14. Consideremos el sistema lineal


! !
1 0.5 1
x= .
0.5 1 1
(a) Tomando x(0) = (1, 1)t , usa el mtodo de Gauss-Seidel para hallar x(1) y
x(2) .
(b) Con el mtodo iterativo anterior obtenemos la sucesin, x(1) , x(2) , x(3) ,
! !
(4) 1.99218 (5) 1.99804
x = ,x = ,
1.99609 1.99902
! !
1.99951 1.99987
x(6) = , x(7) =
1.99975 1.99993
Queremos parar las iteraciones cuando kx(k) x(k1) k1 104 . Responde
razonadamente: podemos parar las iteraciones en k = 7 o tenemos que
seguir iterando?
(c) Sin hacer las iteraciones, responde razonadamente: qu se puede decir del
mtodo de Jacobi? (Evaluacin curso 2012-2013)

15. Consideremos el sistema lineal



2 3 0 1
5 3 0
x = 2 .

0 1 2 3
Se ha intentado resolver este sistema utilizando el mtodo de Jacobi con una
tolerancia de 106 y un nmero mximo de iteraciones igual a 100, obtenindose
la siguiente respuesta:
La sucesin diverge.
El mtodo de Jacobi no debe utilizarse para resolver este sistema.
Nmero de iteraciones: 48
Responde razonadamente a las siguientes preguntas:

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 91

(a) Qu ocurrira si aplicramos el mtodo de Gauss-Seidel?


(b) Qu podramos hacer para garantizar que el mtodo de Jacobi sea conver-
gente?
(c) Qu podramos hacer para garantizar que el mtodo de Gauss-Seidel sea
convergente? En tal caso, habra alguna ventaja en usar el mtodo de
Gauss-Seidel frente al mtodo de Jacobi? (Evaluacin curso 2013-2014)

16. Resolvemos el sistema lineal


2 1 0 1 2

2 2 1 2 1

x =

0 1 1 1 3


3 3 1 0 5
mediante el mtodo de Jacobi usando
[X,IT,ERRORES,FLAG]= jacobiv(A,b,100,1.e-6,1.e-6)
obteniendo el siguiente mensaje
Warning: Matrix is singular to working precision
Explica este resultado. Qu ocurrir si utilizamos el mtodo de Gauss-Seidel
para resolver el sistema anterior? Razona la respuesta. (Evaluacin curso 2014-2015)

17. Consideremos el sistema lineal


! !
1 1 1
x= . (2.32)
2 4 6
(a) Tomando x(0) = (1, 1)t , usa el mtodo de Jacobi para hallar x(1) y x(2) .
(Nota: Utiliza matrices/vectores para hacer los clculos)
(b) Estudia la convergencia del mtodo de Jacobi para el sistema lineal (2.32).
(c) Tomando x(0) = (1, 1)t , con el mtodo de Jacobi obtenemos la siguiente
sucesin
(k) (k)
k x1 x2
.. .. ..
. . .
25 0.999511718750000 1.999877929687500
26 0.999877929687500 1.999755859375000
27 0.999755859375000 1.999938964843750
28 0.999938964843750 1.999877929687500
.. .. ..
. . .
Queremos parar las iteraciones cuando kx(k) x(k1) k 104 . Responde
razonadamente: podemos parar las iteraciones en k = 28 o tenemos que
seguir iterando?
Queremos parar las iteraciones cuando kx(k) x(k1) k 5 104 . Res-
ponde razonadamente: podemos parar las iteraciones en k = 26 o tenemos
que seguir iterando?

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


92 Resolucin numrica de sistemas lineales

(d) Sin hacer las iteraciones, responde razonadamente: qu se puede decir del
mtodo de Gauss-Seidel? (Evaluacin curso 2014-2015)

18. Consideremos el sistema lineal



1 x b1
1 1 1 y = b2
,

1 z b3

donde y R.

(a) Determina la relacin que deben verificar y para que el mtodo de


Jacobi sea convergente. Estudia la convergencia del mtodo de Jacobi para
los siguientes valores de y :
1 1 1 1
   
(, ) = , , (, ) = (1, 1) , (, ) = (1, 0) , (, ) = , .
2 2 9 3
Qu valores de y proporcionan la convergencia ms rpida del mtodo
de Jacobi?
(b) Consideremos el sistema lineal
y
x+ = 3,
3
x + y + z = 4,
y
+ z = 0.
3
Responde razonadamente: qu puede decirse del mtodo de Jacobi? Qu
puede decirse del mtodo de Gauss-Seidel?
Da una iteracin con el mtodo de Jacobi a partir del vector x(0) = (2, 3, 0)t .
(Evaluacin curso 2014-2015)

Discretizacin de problemas de contorno

19. Consideremos el problema

d2 u(x)
a(x) u(x) = f (x) , x (0, L) ,
dx2
u(0) = u(L) = 1 ,

en donde a : [0, L] R y f : [0, L] R son funciones conocidas. La funcin a(x)


verifica a(x) > 0 para todo x [0, L].

(a) Discretiza el problema utilizando una frmula central de 3 puntos para apro-
d2 u(x)
ximar . (Nota: Divide [0, L] en 4 trozos)
dx2
Segundo semestre, curso 2016/2017
2.9. Problemas del tema 2 93

(b) Indica el tipo de problema que se obtiene, especificando las incgnitas del
mismo. Seala las propiedades del problema obtenido. Escribe el problema
resultante para cualquier N .
(c) Indica razonadamente el mtodo (o mtodos) ms adecuados para resolver
el problema obtenido tras la discretizacin. (Evaluacin curso 2012-2013)

20. Consideremos el problema

d2 u du
2
(x) + a(x) (x) u(x) = f (x) , x (0, L) , (2.33)
dx dx
u(0) = u(L) = 1 , (2.34)

en donde a : [0, L] R y f : [0, L] R son funciones conocidas. La funcin a


verifica a(x) > 0 para todo x [0, L].

(a) Discretiza el problema (2.40)-(2.41) utilizando frmulas centrales de 3 pun-


d2 u du
tos para aproximar 2 y en puntos concretos.
dx dx
(Nota 1: Divide [0, L] en 4 trozos)
(Nota 2: utiliza el mnimo nmero de incgnitas)
(b) Indica el tipo de problema que se obtiene, especificando las incgnitas del
mismo. Indica las propiedades del problema obtenido.
(c) Escribe el problema resultante para cualquier N . (Evaluacin curso 2014-2015)

2.9.1. Problemas de exmenes


21. Consideremos un sistema lineal Ax = b, con

2 0
A = 2

5 1
(2.35)
0 1

con , R. Puede demostrarse que la matriz A es simtrica definida positiva


si y slo si
4
> , > .
5 5 4
(a) Consideramos diferentes valores de los parmetros y :

(, ) = (5, 1/6) , (, ) = (2, 1/2) , (, ) = (17/20, 4) . (2.36)

Responde razonadamente: para estos valores de y , se puede utilizar el


mtodo de eliminacin gaussiana (o de factorizacin LU ) sin intercambiar
filas?

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


94 Resolucin numrica de sistemas lineales

(b) Para valores de y mostrados en (2.36) utilizamos la orden de Matlab


[L,U,P]=lu(A). Los resultados obtenidos son los siguientes.
i) Para = 5, = 1/6,

1 0 0 5 2 0 1 0 0
L = 0.4 1 0 , U = 0 4.2 1 ,P = 0 1 0 .

0 0.23810 1 0 0 0.071429 0 0 1
ii) Para = 2, = 1/2,

1 0 0 2 2 0 1 0 0
L = 1 1 0 ,U = 0 3 1 ,P = 0 1 0 .

0 0.33333 1 0 0 0.16667 0 0 1
iii) Para = 17/20, = 4,

1 0 0 2 5 1 0 1 0
L=

0 1 0 ,U = 0 1

4 ,P = 0 0 1 .

0.425 0.125 1 0 0 0.075 1 0 0


Responde razonadamente: en el mtodo de eliminacin gaussiana (o de fac-
torizacin LU ), se han intercambiado filas? Cul es el motivo?
(c) Consideremos la matriz A mostrada en (2.35) en el caso particular en que
= > 0.
i) Determina los valores de para los cuales el mtodo de Jacobi es con-
vergente.
ii) Qu puede decirse del mtodo de Gauss-Seidel? Razona la respuesta.
(Evaluacin curso 2015-2016)

22. Dados , R, se considera el sistema lineal



2 0 2

1 3 1
x =
3 .

(2.37)
4 ++4
(a) Si A denota la matriz de coeficiente del sistema anterior, da una condi-
cin suficiente sobre y que garantice que la factorizacin LU (i.e., la
eliminacin Gaussiana) puede aplicarse sin intercambiar las filas de A.
(b) A continuacin, utilizamos la orden de Matlab [L,U,P]=lu(A) para distintas
combinaciones de y . Explica los resultados obtenidos en cada caso.
b.1) (, ) = (1, 1):

1.0000 0 0 2.0000 1.0000 0
L = 0.5000 1.0000 0 , U = 0 2.5000 1.0000


0.5000 0.2000 1.0000 0 0 3.8000

1 0 0
P = 0 1 0

0 0 1

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 95

b.2) (, ) = ( 12 , 52 ):

1.0000 0 0 2.5000 0.5000 4.0000
L = 0.4000

1.0000 0 , U =

0 2.8000 0.6000

0.8000 0.0357 1.0000 0 0 3.1786

0 0 1
P = 0 1 0


1 0 0

b.3) (, ) = ( 5
2 2
, 1 ):

1.0000 0 0 2.0000 2.5000 4.0000
L = 0.5000 1.0000 0
, U = 0 4.2500 1.6000


0.2500 0.4412 1.0000 0 0 4.4412

1 0 0
P = 0 1 0


0 0 1

(c) Suponiendo que = 0, halla los valores de > 0 para los cuales el mtodo
de Jacobi es convergente. Qu puede decirse en este caso del mtodo de
Gauss-Seidel? (Evaluacin curso 2015-2016)

23. Para aproximar la solucin de un sistema lineal Ax = b, con A = (aij )ni,j=1 una
matriz n n, se propone el mtodo iterativo

x(0) , dado ,
1 1
(2.38)
x(k+1) = (In D A) x (k)
+D b, k 0 ,

con , R, donde D es una matriz diagonal formada por los elementos dia-
gonales de A, D = diag(a11 , . . . , , ann ), e In es la matriz identidad de dimensin
n.

(a) Halla condiciones sobre y para que el mtodo (2.38) sea convergente.
(b) Consideremos el sistema lineal

10 1 0 x1 9
1 10 1 x2 = 10 . (2.39)

0 1 3 x3 4

Puede comprobarse que A es una matriz inversible. En la Figura 1 mostra-


mos los valores absolutos de los valores propios de la matriz I D1 A.

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


96 Resolucin numrica de sistemas lineales

iHL
1.4

1.2

1.0

0.8

0.6

0.4

0.2

0.0 0.5 1.0 1.5 2.0 2.5 3.0

Figura 1: Valor absoluto de 1 (), 2 (), 3 ()


1) Halla condiciones sobre y para que el mtodo iterativo (2.38) sea
convergente para el sistema (2.39).
2) Utilizamos el mtodo (2.38) para resolver el sistema lineal (2.39) to-
mando x(0) = (1, 0, 2)t y diferentes valores de y . Los resultados
obtenidos se muestran en las siguientes tablas:

= 1.5 y =2
(k) (k) (k)
k x1 x2 x3
0 1.0000 0.0000 2.0000
1 1.3000 1.8500 1.6667
2 1.4275 1.0200 0.9083 =2 y =2
(k) (k) (k)
3 1.2392 1.5679 1.7025 k x1 x2 x3
=1 y =1
4 1.4156 1.1466 1.0315 0 1.0000 0.0000 2.0000 (k) (k) (k)
k x1 x2 x3
5 1.2642 1.4843 1.5776 1 0.8000 1.8000 0.6667
0 1.0000 0.0000 2.0000
6 1.3905 1.2108 1.1357 2 1.3600 0.2267 0.8000
1 0.9000 0.9000 1.3333
7 1.2864 1.4328 1.4934 3 0.4853 1.8853 1.7156
2 0.9900 0.9567 1.0333
8 1.3717 1.2525 1.2036 4 1.6917 -0.1314 -0.3058
3 0.9957 0.9957 1.0144
9 1.3020 1.3990 1.4386 5 0.082 2.5309 3.0600
4 0.9996 0.9981 1.0014
10 1.3588 1.2800 1.2479 6 2.2242 -1.1265 -2.0806
5 0.9998 0.9998 1.0006
11 1.3126 1.3766 1.4027 7 -0.6495 3.9874 5.4983
.. .. .. .. 6 1.0000 0.9999 1.0001
. . . . 8 3.2470 -3.217 -5.4899
7 1.0000 1.0000 1.0000
30 1.3337 1.3325 1.332 9 -2.0904 6.9644 10.3012
8 1.0000 1.0000 1.0000
31 1.3330 1.3340 1.3344 10 5.2832 -7.4427 -12.2775
32 1.3336 1.3328 1.3325 11 -4.9718 12.9548 19.9060
33 1.3331 1.3338 1.334
34 1.3335 1.3330 1.3328
35 1.3332 1.3336 1.3338
36 1.3334 1.3331 1.3330

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 97

i) Explica por qu se obtienen estos resultados. Explica los resultados


obtenidos para = 1.5, = 2, y los obtenidos para = 1, = 1.
ii) Responde razonadamente. Cul es la solucin del sistema lineal
(2.39)? (Evaluacin curso 2013-2014)

24. Consideremos el sistema lineal



1 a a x b1
a 1 a y = b2 ,

a a 1 z b3

donde a R.

(a) Da una condicin suficiente que garantice que el mtodo de Jacobi converge.
Utilizando esta condicin suficiente, qu se puede decir para
1 1 1
a = 1 , a= , a= , a= ?
2 3 6

(b) Determina los valores a que hacen que el mtodo de Jacobi sea convergente.
Estudia la convergencia del mtodo de Jacobi para los siguientes valores de
a:
1 1 1
a = 1 , a= , a= , a= .
2 3 6
Qu valores de a proporcionan la convergencia ms rpida?
(c) Dado el sistema lineal
y z
x+ + = 1,
8 8
x z
+y+ = 2,
8 8
x y
+ + z = 3.
8 8

Da una iteracin con el mtodo de Jacobi a partir del vector x(0) = (1, 1, 8)t .
Responde razonadamente Qu puede decirse del mtodo de relajacin?
(Evaluacin curso 2014-2015)

25. Resolvemos el sistema lineal Ax = b para



1 1 1 25
1 2 3 4 12
1 1 1 1 77


2 3 4 5 60
A= , b=


1 1 1 1


19

3 4 5 6 20
1 1 1 1 319
4 5 6 7 420

con la rutina del mtodo de Gauss-Seidel gauss_seidel(A,b,MMAX,EPS1,EPS2).

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


98 Resolucin numrica de sistemas lineales

La iteraciones se detienen en la aproximacin X si se verifica que:


norm(A*X-b,Inf)<EPS1+norm(b,Inf)*EPS2
donde EPS1 y EPS2 son tolerancias dadas por el usuario; la orden norm(v, Inf)
devuelve kvk . MMAX es el nmero mximo de iteraciones.

(a) Ejecutamos la orden gauss_seidel(A,b,40,0,1.e-4)


Responde razonadamente: con los parmetros introducidos, qu criterio de
parada estamos utilizando?
(b) Ejecutamos la orden del apartado a) y obtenemos los siguientes mensajes:
Radio espectral de la matriz de iteracin: 0.99903
Nmero mximo de iteraciones superado
Responde razonadamente: qu conclusin obtienes de los mensajes anterio-
res? qu haras a continuacin?
(c) Ejecutamos la orden del apartado a) y obtenemos datos para construir la
siguiente tabla:

kAx(k) bk kx x(k) k kAx(k) bk kx x(k) k


Iteracin Iteracin
kbk kxk kbk kxk
1 2.6013e-01 1.0833e+00 21 1.7515e-03 2.8363e-01
2 1.4700e-01 6.4340e-01 22 1.6797e-03 2.6961e-01
3 8.2448e-02 5.5986e-01 23 1.6103e-03 2.5616e-01
4 4.5634e-02 5.0554e-01 24 1.5434e-03 2.4328e-01
5 2.4665e-02 5.0516e-01 25 1.4792e-03 2.3275e-01
6 1.2746e-02 5.2355e-01 26 1.4175e-03 2.2631e-01
7 5.9928e-03 5.2329e-01 27 1.3583e-03 2.2014e-01
8 3.6311e-03 5.1283e-01 28 1.3016e-03 2.1423e-01
9 2.9975e-03 4.9698e-01 29 1.2472e-03 2.0856e-01
10 2.5968e-03 4.7845e-01 30 1.1951e-03 2.0312e-01
11 2.3309e-03 4.5880e-01 31 1.1451e-03 1.9791e-01
12 2.1435e-03 4.3889e-01 32 1.0972e-03 1.9291e-01
13 2.1502e-03 4.1918e-01 33 1.0513e-03 1.8811e-01
14 2.1839e-03 3.9995e-01 34 1.0074e-03 1.8352e-01
15 2.1632e-03 3.8131e-01 35 9.6524e-04 1.7911e-01
16 2.1131e-03 3.6335e-01 36 9.2486e-04 1.7488e-01
17 2.0479e-03 3.4606e-01 37 8.8617e-04 1.7083e-01
18 1.9754e-03 3.2947e-01 38 8.4909e-04 1.6694e-01
19 1.9004e-03 3.1354e-01 39 8.1356e-04 1.6321e-01
20 1.8253e-03 2.9827e-01 40 7.7951e-04 1.5964e-01

Responde razonadamente:

Segundo semestre, curso 2016/2017


2.9. Problemas del tema 2 99

kx x(k) k kAx(k) bk
i) Qu representa ? Qu representa ?
kxk kbk

ii) Si usamos tolerancias EPS1= 0, EPS2= 103 , cundo y por qu se


detiene el mtodo de Gauss-Seidel?

kAx(k) bk kx x(k) k
iii) Los errores y , son de la misma magnitud?
kbk kxk
Cmo explicaras este comportamiento? (Evaluacin curso 2015-2016)

26. Consideremos el sistema lineal


! !
1 b1
x = ,
1 b2

con , R \ {0}.

a) Determina las condiciones que, necesariamente, deben verificar y para


que el mtodo de Gauss-Seidel converja. Explica cmo obtienes estas condi-
ciones.

b) Estudia la convergencia del mtodo de Gauss-Seidel para los siguientes pares


de valores de y :
1 1 1
   
(, ) = , , (, ) = (1, 1), (, ) = 2, .
2 2 4
De los pares considerados, cul proporciona la convergencia ms rpida
para el mtodo de Gauss-Seidel? Razona tu respuesta.
(Evaluacin curso 2015-2016)

27. Consideremos el problema

d2 u du
2
(x) + (x) u(x) = f (x) , x (0, L) , (2.40)
dx dx
du
u(0) = 2 , (L) = 0 , (2.41)
dx
donde , R, y f : [0, L] R es una funcin conocida.

(a) Discretiza el problema (2.40)-(2.41) utilizando frmulas centrales de 3 pun-


d2 u du
tos para aproximar 2 y en puntos concretos.
dx dx
(Nota: Divide [0, L] en 4 trozos)
(b) Indica el tipo de problema que se obtiene, especificando las incgnitas del
mismo.

UPNA. Grado en Tecnologas Industriales. Mtodos Numricos.


100 Resolucin numrica de sistemas lineales

(c) Para = 0 y > 0, indica las propiedades del problema obtenido.


(Evaluacin curso 2015-2016)

28. Consideremos el siguiente problema de contorno, usualmente denominado proble-


ma de conveccin-difusin-reaccin:

d2 u du
2
(x) + (x) u(x) = f (x) , x (0, L) , (2.42)
dx dx
u0 (0) = 0 , u(L) = 1 , (2.43)

donde , R, > 0 y f : [0, L] R es una funcin conocida.

(a) Discretiza el problema (2.42)-(2.43) utilizando las siguientes frmulas: en


d2 u
la ecuacin (2.42), la frmula central de 3 puntos para aproximar y la
dx2
du
frmula regresiva de dos puntos para aproximar en los puntos de la malla;
dx
en la ecuacin (2.43), la frmula central de tres puntos para aproximar u0 (0).
Para ello, divide el intervalo [0, L] en un nmero M de subintervalos de la
misma longitud. Escribe el sistema lineal resultante de la discretizacin.
(b) Qu propiedades tiene la matriz de coeficientes del sistema obtenido?
(c) Si consideramos = 0 en la ecuacin (2.42), qu propiedades tiene la nueva
matriz de coeficientes del problema? Indica razonadamente qu mtodo o
mtodos utilizaras para resolver dicho sistema. (Evaluacin curso 2015-2016)

Segundo semestre, curso 2016/2017

You might also like