Você está na página 1de 29

Prctica 4-5

Mtodos Directos e
Iterativos para Sistemas de
Ecuaciones Lineales
Sistemas de Ecuaciones
Lineales
La Ecuacin del Calor
Mtodos directos
Mtodo de Eliminacin de Gauss
Mtodos iterativos
Mtodo de Jacobi
Mtodo de Gauss-Seidel
Mtodo de Sobrerrelajacin
Ecuacin del Calor

Modelo Matriz asociada


matemtico
T1 (T0 T2 )/2 2 -1

T2 (T1 T3 )/2 -1 2 -1

T3 (T2 T4 )/2 -1 2

-1

Tn (Tn-1 Tn+1)/2 -1 2

T0 T1 T2 . . . Tn Tn+1
Teorema de Rouch-
Frobenius
El sistema Amnx = b es compatible si y slo si
rango(A) = rango(A|b)
Un sistema compatible es determinado sii
rango(A) = n
Un sistema compatible indeterminado tiene
n rango(A) variables libres

Solucin xc = xp + ncleo(A)
Eliminacin de Gauss
Operaciones elementales
Eliminar fila i tomando la fila k como pivote
lik = aik / akk , aij = aij - lik * akj
A(i,:) = A(i,:) - L(i,k)*A(k,:);
Escalar fila i dividindola por el pivote aii
aij = aij / aii
A(i,:) = A(i,:)/A(i,i);
Permutar las filas i y k
aik aki
A([i,k],:) = A([k,i],:);
Fases de la eliminacin

Sistema inicial Ax = b

Triangularizacin
Ux = c

Sustitucin regresiva
x = A1b
Temperatura en una barra

Nodos Sistema lineal


n=4
T1 (20 T2 )/2
Condiciones
T2 (T1 T3 )/2
de contorno
T3 (T2 T4 )/2
T0=20
T4 (T3 70)/2
T5=70
20 T1 T2 T3 T4 70
Resolucin del sistema

2 -1 0 0 T1 20

-1 2 -1 0 T2 0

0 -1 2 -1 T 0

3
-1
0 0 2 T4 70
Eliminacin en sistemas
lineales tridiagonales Ax = b
n = length(b);
M = [A,b];
for i=1:n-1
M(i,:) = M(i,:)/M(i,i);
M(i+1,:) = M(i+1,:)-
M(i+1,i)*M(i,:);
end
M(n,:) = M(n,:)/M(n,n);
Eliminacin en sistemas
lineales tridiagonales Ax = b

for i = n-1:-1:1
M(i,:) = M(i,:)-
M(i,i+1)*M(i+1,:);
end

x = M(:,n+1);
Limitaciones de los Mtodos
Directos
Acumulacin del error de redondeo
Coste de la eliminacin: O(n3)
Sensibilidad al error de redondeo
Sistemas mal o bien condicionados
Nmero de condicin
Estrategia de Pivotacin Parcial
Llenado de la matriz
Matrices dispersas
Nmero de condicin de una
matriz

cond mide el mal condicionamiento


cond(eye(n))=1
cond(matsingular) = inf

rcond mide el buen condicionamiento


rcond(eye(n))=1
rcond(matsingular) = 0

rcond y det
Pivotacin parcial

Un algoritmo deficiente puede arruinar


un sistema bien condicionado.

Estrategia: Elegir como pivote el


elemento de mayor valor absoluto del
resto de la columna.

El operador \ para resolver Ax = b


Mtodos Iterativos para
Sistemas de Ecuaciones
Lineales
Mtodos directos frente a
mtodos iterativos
DIRECTOS ITERATIVOS

Ax =b Mx = (M-A)x + b
x = A\ b Mx(k+1) = (M-A) x(k) + b
Tamao moderado Tamao grande
Producen llenado Conservan los ceros

Error de redondeo Error de truncamiento


Convergencia y nmero de
operaciones

Coste (para matrices densas)


Directos: n3 Iterativos: k.n2
Convergencia
Criterio de parada
(k+1) (k)
x -x tol; p 1, 2, ..., inf
p

iter < maxiter


Ecuacin del Calor en un
rectngulo
N

W C E

S
1

1 4 1

TC = (TW + TN + TS + TE)/4 1
Molcula
Generacin de la matriz
con MATLAB
function A = calor2D(n,m)
p = n*m;
v = ones(1,p-1);
for k = n:n:p-n, v(k) = 0; end
w = ones(1,p-n);
A = 4*eye(p)...
- diag(v,1) - diag(v,-1)...
- diag(w,n) - diag(w,-n);
Un lado caliente

80

60

40

20

0
5
4 6
3 5
4
2 3
2
1 1
El mtodo de Jacobi

Sistema de ecuaciones lineales


a11x1 a12x 2 a13x 3 a1nx n b1

a 21x1 a 22x 2 a 23x 3 a 2nx n b2

a 31x1 a 32x 2 a 33x 3 a 3nx n b3


a n1x n a n2x 2 a n3x 3 a nnx n bn
Iteracin de Jacobi

x (k+1)
1 (b1 - a x (k)
12 2 -a x (k)
13 3 - a x ) / a11
(k)
1n n

x (k+1)
2 (b2 - 21 1
a x (k)
- a x
23 3
(k)
- a 2nx(k)
n ) / a 22

x (k+1)
3 (b3 - a x (k)
31 1 -a x (k)
32 2 - a 3nxn ) / a 33
(k)




x (k+1)
n (bn - a x (k)
n1 1 -a x (k)
n2 2 - an,n-1xn-1 ) / ann
(k)
Expresin matricial

A = L + D + U
M = D, N = (L + U)
Mx = Nx + b
M = diag(diag(A))
N = M-A
x = M\(Nx0+b)
Algoritmo de Jacobi

Datos
Sistema lineal: Ax = b
Estimacin inicial: x0
Proceso: mientras no converja, repetir
Nueva estimacin: x = D1((D A)x0 + b)
Incremento: norm(x x0)
Actualizar: x0 = x
Resultado
Estimacin final: x
Iteracin de Gauss-Seidel

x (k+1)
1 (b1 - a x (k)
12 2 -a x (k)
13 3 - a x ) / a11
(k)
1n n

x (k+1)
2 (b2 - 21 1
a x (k+1)
- a x
23 3
(k)
- a 2nx(k)
n ) / a 22

x (k+1)
3 (b3 - a x (k+1)
31 1 -a x (k+1)
32 2 - a 3nxn ) / a 33
(k)




x (k+1)
n (bn - n1 1
a x (k+1)
- a x
n2 2
(k+1)
- an,n-1xn-1 ) / ann
(k+1)
Expresin matricial

A=L+D+U
M = L + D, N = U
Mx = Nx + b
M = tril(A)
N = M - A
x = M\(N*x0 + b)
Mtodo de sobrerrelajacin

Gauss-Seidel xik x ik+1


zi xik+1

x (k +1)
i x zi
(k)
i

Sobrerrelajacin

x (k +1)
i x zi
(k)
i
(k 1)

x (k +1)
i (1 - )x (k)
i xi

Expresin matricial

(L D)x(k+1) (1- )Dx(k) (b - Ux(k) )

(L D)x(k+1) b ((1- )D - U)x(k)

D
(L )x ( 1 -
(k +1)
D - U)x(k) b

Algoritmo de sobrerrelajacin

D = diag(diag(A))
L = tril(A,-1)
M = L + D/
N = M - A
x = M\(N*x0 + b)
Condiciones de convergencia

Para que un mtodo iterativo converja, la


matriz ha de cumplir ciertas condiciones.
El coste por iteracin es O(n2) o menor si se
aprovecha la dispersidad.
Se espera que converjan en menos de n
pasos.
Los mtodos iterativos se aplican a matrices
grandes y dispersas.

Você também pode gostar