Page 314 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 314
290 DESCOMPOSICIÓN LU E INVERSIÓN DE MATRICES
Por lo contrario, la fase de sustitución requiere de un mayor trabajo. Así, el número
2
de FLOP para la sustitución hacia adelante y hacia atrás es n . El trabajo total es, por lo
tanto, idéntico al de la eliminación de Gauss
n 3 n 2 conforme n aumenta n 3 2
− + n ⎯⎯⎯⎯⎯⎯ → + On ( ) (10.16)
3 3 3
10.1.3 Algoritmo para la descomposición LU
En la figura 10.2 se presenta un algoritmo que implementa la descomposición LU con
eliminación de Gauss. Vale la pena mencionar cuatro características de este algoritmo:
FIGURA 10.2
Seudocódigo para un algoritmo de descomposición LU.
SUB Ludecomp (a, b, n, tol, x, er) END IF
END Decompose
DIM o n, s n
er = 0
CALL Decompose(a, n, tol, o, s, er) SUB Pivot(a, o, s, n, k)
IF er <> –1 THEN p = k
CALL Substitute(a, o, n, b, x) big = ABS(a 0(k),k /s 0(k) )
END IF DOFOR ii = k + 1, n
END Ludecomp dummy = ABS(a 0(ii),k /s 0(ii) )
IF dummy > big THEN
SUB Decompose (a, n, tol, o, s, er) big = dummy
DOFOR i = 1, n p = ii
o i = i END IF
s i = ABS(a i,1 ) END DO
DOFOR j = 2, n
dummy = o p
IF ABS(a i,j )>s i THEN s i = ABS(a i,j )
o p = o k
END DO o k = dummy
END DO END Pivot
DOFOR k = 1, n – 1
CALL Pivot(a, o, s, n, k) SUB Substitute (a, o, n, b, x)
IF ABS(a 0(k),k /s 0(k) ) < tol THEN DOFOR i = 2, n
er = –1 sum = b 0(i)
DOFOR j = 1, i –1
PRINT a 0(k),k /s 0(k)
EXIT DO sum = sum – a 0(i),j * b 0(j)
END IF END DO
D0FOR i = k + 1, n b 0(i) = sum
END DO
factor = a 0(i),k /a 0(k),k
a 0(i),k = factor x n = b 0(n) /a 0(n),n
DOFOR j = k + 1, n DOFOR i = n – 1, 1, –1
sum = 0
a 0(i),j = a 0(i),j – factor * a 0(k),j
END DO DOFOR j = i + 1, n
END DO sum + sum + a 0(i),j * x j
END DO END DO
IF ABS(a 0(k),k /s 0(k) ) < tol THEN x i = (b o(i) – sum)/a o(i),i
er = –1 END DO
END Substitute
PRINT a 0(k),k /s 0(k)
6/12/06 13:53:08
Chapra-10.indd 290 6/12/06 13:53:08
Chapra-10.indd 290

