Page 296 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 296
272 ELIMINACIÓN DE GAUSS
SUB Gauss (a, b, n, x, tol, er) SUB Pivot (a, b, s, n, k)
DIMENSION s (n) p = k
er = 0 big = ABS(a k,k /s k )
DOFOR i = 1, n DOFOR ii = k + 1, n
s i = ABS(a i,1 ) dummy = ABS(a ii,k /s ii )
DOFOR j = 2, n IF dummy > big THEN
IF ABS(a i,j )>s i THEN s i = ABS(a i,j ) big = dummy
END DO p = ii
END DO END IF
CALL Eliminate(a, s, n, b, tol, er) END DO
IF er ≠ —1 THEN IF p ≠ k THEN
CALL Substitute(a, n, b, x) DOFOR jj = k, n
END IF dummy = a p,jj
END Gauss a p,jj = a k,jj
a k,jj = dummy
SUB Eliminate (a, s, n, b, tol, er) END DO
DOFOR k = 1, n — 1 dummy = b p
CALL Pivot (a, b, s, n, k) b p = b k
IF ABS (a k,k /s k ) < tol THEN b k = dummy
er = —1 dummy = s p
EXIT DO s p = s k
END IF s k = dummy
DOFOR i = k + 1, n END IF
END pivot
factor = a i,k /a k,k
DOFOR j = k + 1, n
SUB Substitute (a, n, b, x)
a i,j = a i,j — factor*a k,j
END DO x n = b n /a n,n
DOFOR i = n — 1, 1, —1
b i = b i – factor * b k
END DO sum = 0
END DO DOFOR j = i + 1, n
IF ABS(a k,k /s k ) < to1 THEN er = —1 sum = sum + a i,j * x j
END Eliminate END DO
x i = (b i — sum) / a i,i
END DO
END Substitute
FIGURA 9.6
Seudocódigo para instaurar la eliminación de Gauss con pivoteo parcial.
6/12/06 13:52:40
Chapra-09.indd 272 6/12/06 13:52:40
Chapra-09.indd 272

