You are on page 1of 28

SISTEMAS DE ECUACIONES LINEALES II - 115 -

7. SISTEMAS DE ECUACIONES LINEALES II

7.1. MÉTODO DE ELIMINACIÓN DE GAUSS JORDÁN

El método de eliminación de Gauss – Jordán, es muy parecido al método de


eliminación de Gauss, sólo que en este caso la matriz de los coeficientes
es transformada en una matriz identidad (o unidad). Así si aplicamos el mé-
todo de eliminación de Gauss-Jordán al siguiente sistema:

a 11 x1 + a 12 x 2 + a13 x 3 + a 14 x 4 = c1
a 21 x 1 + a 22 x 2 + a 23 x 3 + a 24 x 4 = c2
(7.1)
a 31 x 1 + a 32 x 2 + a33 x 3 + a 34 x 4 = c3
a 41 x 1 + a 42 x 2 + a 43 x 3 + a 44 x 4 = c4
Se transforma en:

x1 + 0 + 0 + 0 = c'1
0 + x2 + 0 + 0 = c '2
(7.2)
0 + 0 + x3 + 0 = c'3
0 + 0 + 0 + x4 = c '4
Donde, como se puede observar, las soluciones del sistema se encuentran
en la columna de las constantes. En forma matricial, la aplicación del mé-
todo de Gauss-Jordán da lugar a la siguiente transformación:

[ ][ ]
a11 a 12 a 13 a14 a 15 1 0 0 0 a ' 15
a 21 a 22 a 23 a 24 a 25 0 1 0 0 a ' 25
→ (7.3)
a31 a 32 a 33 a34 a 35 0 0 1 0 a ' 35
a 41 a 42 a 43 a 44 a 45 0 0 0 1 a ' 45
Las operaciones que se efectúan para llevar la matriz aumentada a la ma-
triz identidad son prácticamente las mismas que en el método de Gauss, ex-
cepto que ahora la eliminación de las columnas se la realiza no sólo en la
parte inferior de la diagonal, sino también en la parte superior de la mis-
ma. Por lo tanto, para la reducción de las filas se emplea la misma ecua-
ción que en el método de Gauss:
ap
a p= (7.4)
a pp
Y para la reducción de columnas se cambia el límite inferior a 1:

a i=ai – a p⋅aip {i=1


i≠ p
→n (7.5)

Como en el método de Gauss, antes de efectuar la reducción de filas y co-


lumnas se debe realizar un pivotaje parcial o total para reducir los erro-
res de redondeo y evitar divisiones entre cero.
Para comprender mejor el método de Gauss Jordán, se resolverá manualmente
el siguiente sistema de ecuaciones:

2 x1 + 8 x2 + 2 x 3 = 14
x1 + 6 x2 − x 3 = 13 (7.6)
2 x1 − x2 + 2 x3 = 5
- 116 - Hernán Peñaranda V.

La matriz aumentada es:


>> a=[2,8,2,14;1,6,-1,13;2,-1,2,5];
El número de filas “n” es 3, el número de columnas “m” es 4 y el pivote
“p” comienza en 1:
>> n=3; m=4; p=1;
Entonces se reduce la fila “p” (1), aplicando la ecuación (7.4):
>> a(p,:)=a(p,:)/a(p,p)
ans =
1 4 1 7
1 6 -1 13
2 -1 2 5
Y se reduce la columna “p” (1), aplicando la ecuación (7.5):
>> for i=1:n if (i ~= p) a(i,:)=a(i,:)-a(p,:).*a(i,p); end; end; a
ans =
1 4 1 7
0 2 -2 6
0 -9 0 -9
Con ello se ha reducido la primera fila y la primera columna, ahora se
incrementa el valor del pivote “p” y se repite el proceso:
>> p++;
>> a(p,:)=a(p,:)/a(p,p)
ans =
1 4 1 7
0 1 -1 3
0 -9 0 -9
>> for i=1:n if (i ~= p) a(i,:)=a(i,:)-a(p,:).*a(i,p); end; end; a
ans =
1 0 5 -5
0 1 -1 3
0 0 -9 18
Finalmente se incrementa el valor de “p” y se repite una vez más el pro-
ceso:
>> p++;
>> a(p,:)=a(p,:)/a(p,p)
ans =
1 0 5 -5
0 1 -1 3
0 0 1 -2
>> for i=1:n if (i ~= p) a(i,:)=a(i,:)-a(p,:).*a(i,p); end; end; a
ans =
1 0 0 5
0 1 0 1
0 0 1 -2
Con ello termina el proceso y las soluciones se encuentra en la columna
de las constantes:
>> ans(:,4)
ans =
5
1
-2
SISTEMAS DE ECUACIONES LINEALES II - 117 -

7.1.1. Ejercicios

Dados los siguientes sistemas de ecuaciones:

3 x1 − x2 + 2 x3 = 12
x1 + 2 x2 + 3 x3 = 11 (7.7)
2 x1 − 2 x2 − x3 = 2
2 x1 − 2 x2 + 5 x 3 = 13
2 x1 + 3 x2 + 3 x 3 = 20 (7.8)
3 x1 − x2 + 3x 3 = 10
1. Encuentre las soluciones del sistema (7.7) aplicando manualmente el mé-
todo de eliminación de Gauss Jordán.
2. Encuentre las soluciones del sistema (7.8) aplicando manualmente el mé-
todo de eliminación de Gauss Jordán.

7.1.2. Método de Eliminación de Gauss Jordán con pivotaje parcial

El algoritmo del método es el siguiente:


gaussj: Método de eliminación
de Gauss Jordán con
pivotaje parcial.
recibir a
a: Matriz aumentada.

n,m = Nº de filas y columnas en a

p=1

[p<=n]
[p<n]

pivpar(a,n,m,p)

ap=ap/ap,p

i=1

[i<=n]
[i<>p>]

ai = ai -apai,p

i = i+1

p = p+1

devolver aall,n+1->m
- 118 - Hernán Peñaranda V.

Siendo el código respectivo:


function r=gaussj(b)
a=0; a=b(:,:); [n,m]=size(a);
for p=1:n
if p<n pivpar(a,n,m,p); end
a(p,:)=a(p,:)/a(p,p);
for i=1:n
if i ~= p a(i,:)=a(i,:)-a(p,:).*a(i,p); end
end
end
r=a(:,n+1:m);
end
Probando el programa con la matriz del ejemplo manual se obtiene:
>> a=[2,8,2,14;1,6,-1,13;2,-1,2,5];
>> gaussj(a)
r =
5
1
-2
Que son los mismos resultados obtenidos en el ejemplo manual.

7.1.3. Método de eliminación de Gauss con pivotaje total

Igual que en el método de Gauss, la diferencia principal con relación al


pivotaje parcial es la necesidad de ordenar los resultados.
El algoritmo se presenta en la siguiente página y el código respectivo es
el siguiente:
function r=gaussjpt(b)
a=0; a=b(:,:); [n,m]=size(a); v=1:n;
for p=1:n
if p<n pivtot(a,n,m,p,v); end
a(p,:)=a(p,:)/a(p,p);
for i=1:n
if i ~= p a(i,:)=a(i,:)-a(p,:).*a(i,p); end
end
end
for i=1:n
if v(i) ~= i
for k=i:n if i==v(k) break; end end
aux=a(i,:); a(i,:)=a(k,:); a(k,:)=aux; v(k)=v(i); v(i)=i;
end
end
r=a(:,n+1:m);
end
Probando el programa con la matriz del ejemplo manual se obtiene:
>> a=[2,8,2,14;1,6,-1,13;2,-1,2,5];
>> gaussjpt(a)
r =
5
1
-2
Que son los mismos resultados obtenidos en el ejemplo manual.
SISTEMAS DE ECUACIONES LINEALES II - 119 -

gaussjpt: Método de eliminación


de Gauss Jordán con
pivotaje total.
recibir a
a: Matriz aumentada.

n,m = Nº de filas y columnas en a

v = [1,2,..,n]

p=1

[p<=n]
[p<n]

pivtot(a,n,m,p,v)

ap=ap/ap,p

i =1

[i<=n]
[i<>p>]

ai = ai -apai,p

i = i+1

p = p+1

i =1

[i<=n]
[v[i]<>i]

k =i

[k<=n]
[i==vk ]

k = k+1

aux = ai; ai = ak; ak = aux; vk =vi ; vi=i

i = i+1

devolver aall,n+1->m
- 120 - Hernán Peñaranda V.

Al igual que con Gauss y “linsolve”, con Gauss Jordán se pueden resolver
simultáneamente sistemas de ecuaciones lineales que difieren sólo en las
constantes, por ejemplo para resolver los siguientes sistemas:

x1 + 2 x2 + 3 x 3 = 21
5 x1 − 9 x2 + 2 x 3 = 12
3 x1 + x2 − 4 x 3 = 15
y1 + 2 y2 + 3 y3 = 11
5 y1 − 9 y2 + 2 y3 = 2 (7.9)
3 y1 + y2 − 4 y3 = 4
z1 + 2 z2 + 3 z3 = 1
5 z1 − 9 z2 + 2 z3 = 2
3 z1 + z2 − 4 z3 = 3
Tanto con “gaussj” como con “gaussjpt” se escribe:
>> a=[1,2,3,21,11,1;5,-9,2,12,2,2;3,1,-4,15,4,3]
>> gaussj(a)
r =
7.2033 2.8571 0.81868
3.2143 1.7143 0.21429
2.456 1.5714 -8.2418E-2
>> gaussjpt(a)
r =
7.2033 2.8571 0.81868
3.2143 1.7143 0.21429
2.456 1.5714 -8.2418E-2
Es posible calcular también la matriz inversa añadiendo a la matriz a in-
vertir la matriz unidad. Por ejemplo, para calcular la inversa de la matriz
de coeficientes del sistema (7.6), tanto con “gaussj” como con “gaussjpt”
se escribe:
>> a=[2,8,2;1,6,-1;2,-1,2];a(:,4:6)=eye(3);
>> gaussj(a)
r =
-0.30556 0.5 0.55556
0.11111 0 -0.11111
0.36111 -0.5 -0.11111
>> gaussjpt(a)
r =
-0.30556 0.5 0.55556
0.11111 0 -0.11111
0.36111 -0.5 -0.11111
Resultados que pueden ser corroborados con “inv”:
>> a=[2,8,2;1,6,-1;2,-1,2]; inv(a)
ans =
-0.30556 0.5 0.55556
0.11111 0 -0.11111
0.36111 -0.5 -0.11111

7.1.4. Ejercicios

Dados las siguientes sistemas de ecuaciones lineales:


SISTEMAS DE ECUACIONES LINEALES II - 121 -

x1 + x2 + x3 + x4 = −1
4 x1 + 5 x2 + 6 x3 + 7 x4 = 0
(7.10)
6 x1 + 10 x 2 + 15 x 3 + 21 x 4 = 10
12 x 1 + 30 x 2 + 60 x 3 + 105 x 4 = 10
30 x 1 + x2 + 2 x3 + 6 x4 + 5 x5 − 3 x6 = 12
2 x1 + 25 x 2 + x3 − x4 + 2 x5 − 5 x6 = 24
x1 + 2 x2 + 33 x 3 + 5 x4 − x5 + 2 x6 = 17
(7.11)
3 x1 + 5 x2 + 7 x3 − 45 x 4 + 4 x5 + x6 = 37
4 x1 + 3 x2 + 2 x3 + 3 x4 + 40 x 5 − 4 x6 = 23
5 x1 + 6 x2 − 3 x3 − 4 x4 + 3 x5 + 36 x 6 = 24
3 x1 + 2 x2 − x3 + 2 x4 = 0
x1 + 4 x2 + + 2 x4 = 0
2 x1 + x2 + 2 x3 − x4 = 1
x1 + x2 − x3 + 3 x4 = 0

3 y1 + 2 y2 − y3 + 2 y4 = −2
y1 + 4 y2 + + 2 y4 = 2
(7.12)
2 y1 + y2 + 2 y3 − y4 = 3
y1 + y2 − y3 + 3 y4 = 4

3 z1 + 2 z2 − z3 + 2 z4 = 2
z1 + 4 z2 + + 2 z4 = 2
2 z1 + z2 + 2 z3 − z4 = 1
z1 + z2 − z3 + 3 z4 = 0
3. Encuentre las soluciones del sistema (7.10) empleando el método de
Gauss Jordán con pivotaje parcial.
4. Encuentre las soluciones del sistema (7.11) empleando el método de
Gauss Jordán con pivotaje total.
5. Encuentre las soluciones del sistema (7.12) empleando el método de
Gauss Jordán con pivotaje parcial.
6. Encuentre la inversa de la matriz de coeficientes del sistema (7.11)
empleando el método de Gauss Jordán con pivotaje total, luego, con la
inversa calculada, encuentre las soluciones del sistema.
7. Encuentre la inversa de la matriz de coeficientes del sistema (7.12)
empleando el método de Gauss Jordán con pivotaje parcial, luego, con la
inversa calculada, encuentre las soluciones del sistema.

7.2. MÉTODO DE CROUT

El método de Crout, al igual que los métodos de Doolitle y Cholesky for-


man parte de los denominados métodos de factorización o descomposición. El
fundamento de estos métodos es el siguiente:
Dada la matriz A:
- 122 - Hernán Peñaranda V.

[ ]
a 11 a 12 a 13 a14
a a 22 a 23 a24
A= 21 (7.13)
a 31 a 32 a 33 a34
a 41 a 42 a 43 a 44
Se puede demostrar que la misma puede ser expresada como el producto de
dos matrices triangulares, una inferior “L” y otra superior “U”:

[ ][ ][ ]
a 11 a 12 a 13 a14 l 11 0 0 0 1 u12 u13 u14
a a 22 a 23 a24 l l 0 0 0 1 u23 u24
A= 21 = 21 22 × =L×U (7.14)
a 31 a 32 a 33 a34 l 31 l 32 l 33 0 0 0 1 u34
a 41 a 42 a 43 a 44 l 41 l 42 l 43 l 44 0 0 0 1
A este proceso, el de calcular los elementos de las matrices triangulares
“L” y “U” para una matriz cuadrada “A”, se conoce como descomposición LU o
factorización LU y es el proceso en el que se basan los métodos de Crout,
Doolitle y Cholesky.
El proceso de descomposición no es único, las posibles combinaciones de
“L” y “U” son infinitas. En general, sin embargo, son tres las formas de
descomposición más empleadas en la práctica: La descomposición de Crout,
que corresponde a la descomposición mostrada en el ejemplo, es decir aque-
lla en la cual los elementos de la diagonal principal en “U” son unos. La
descomposición de Doolittle, en la cual los elementos de la diagonal prin-
cipal en “L” son unos, es decir:

[ ][ ][ ]
a 11 a 12 a 13 a14 1 0 0 0 u 11 u 12 u13 u14
a a 22 a 23 a24 l 1 0 0 0 u 22 u 23 u24
A= 21 = 21 × =L×U (7.15)
a 31 a 32 a 33 a34 l 31 l 32 1 0 0 0 u33 u34
a 41 a 42 a 43 a 44 l 41 l 42 l 43 1 0 0 0 u44
Y la descomposición de Cholesky, en la cual U es la transpuesta de L, es
decir:

[ ][ ][ ]
a 11 a 12 a 13 a14 l 11 0 0 0 l 11 l 21 l 31 l 34
a a 22 a 23 a24 l l 0 0 0 l 22 l 32 l 34
A= 21 = 21 22 × =L×U (7.16)
a 31 a 32 a 33 a34 l 31 l 32 l 33 0 0 0 l 33 l 43
a 41 a 42 a 43 a 44 l 41 l 42 l 43 l 44 0 0 0 l 44
Si la matriz A, es la matriz de los coeficientes de un sistema de ecua-
ciones lineales, como el siguiente:

a 11 x1 + a 12 x 2 + a13 x 3 + a 14 x 4 = b1
a 21 x 1 + a 22 x 2 + a 23 x 3 + a 24 x 4 = b2 (7.17)
a 31 x 1 + a 32 x 2 + a33 x 3 + a 34 x 4 = b3
a 41 x 1 + a 42 x 2 + a 43 x 3 + a 44 x 4 = b4
Una vez realizada la factorización, las soluciones pueden ser calculadas,
empleando las matrices triangulares obtenidas:
A⋅x=L⋅U⋅x=b (7.18)

Multiplicando ambos lados de la ecuación por L-1, se obtiene:


SISTEMAS DE ECUACIONES LINEALES II - 123 -

−1 −1 (7.19)
L ⋅L⋅U⋅x= I⋅U⋅x=U⋅x= L ⋅b=c
De donde se obtienen las igualdades:
U⋅x=c (7.20)
−1 (7.21)
L ⋅b=c
Primero se calculan los valores de “c” y para ello se multiplican ambos
lados de la ecuación (7.21) por L:
−1 (7.22)
L⋅L ⋅b=I⋅b=b=L⋅c
En consecuencia el valor de “c” puede ser calculado resolviendo el siste-
ma de ecuaciones lineales:
L⋅c=b (7.23)
Este sistema puede ser resuelto porque es un sistema triangular inferior,
en el cual las soluciones se encuentran por sustitución hacia adelante.
Por ejemplo para el sistema (7.17) el sistema triangular superior que se
forma (asumiendo la descomposición de Crout) es:

l 11 c 1 = b1
l 21 c1 + l 22 c2 = b2 (7.24)
l 31 c1 + l 32 c2 + l 33 c3 = b3
l 41 c1 + l 42 c2 + l 43 c 3 + l 44 c 4 = b4
Como se puede ver, c1 se calcula con la primera ecuación, c 2 con la segun-
da y así sucesivamente. En general, para un sistema con “n” ecuaciones los
valores de “c” se calculan con:
i−1
bi −∑ l ik⋅c k
k =1 (7.25)
c i= { i=1 → n
l ii
Esta ecuación ser generalizada para el caso en el que “b” es una matriz
en lugar de un vector (que es lo que ocurre cuando se resuelven simultánea-
mente sistemas de ecuaciones lineales o se calcula la inversa):
i−1
bij – ∑ l ik⋅c kj
(7.26)
c ij = k =1
l ii { i=1 → n
j=1 → m
Donde “m” es el número de columnas de la matriz “b” y “n” es el número de
filas del sistema de ecuaciones.
Una vez calculado el vector “c”, se encuentran las soluciones resolviendo
el sistema de ecuaciones lineales (7.20). En este caso se trata de un sis-
tema triangular superior y en consecuencia puede ser resuelto por sustitu-
ción hacia atrás (igual que en el método de Gauss). Por ejemplo para el
sistema (7.17) el sistema triangular superior que se forma (asumiendo la
descomposición de Crout) es:

x 1 + u 12 x 2 + u 13 x 3 + u 14 x 4 = c1
x2 + u 23 x3 + u 24 x 4 = c2 (7.27)
x3 + u 34 x 4 = c3
x4 = c4
- 124 - Hernán Peñaranda V.

Por lo tanto x4 se calcula con la última ecuación, x3 con la penúltima y


así sucesivamente. En general, para un sistema con “n” ecuaciones los valo-
res de “x” se calculan con:
n
ci – ∑ u ik⋅x k
(7.28)
k=i+1
x i= {i=n → 1
uii
Para el caso general en el que “c” sea una matriz, en lugar de un vector,
se tiene:
n
c ij – ∑ uik⋅x kj
(7.29)
x ij = k=i+1
uii { i=n →1
j=1 → m
Donde “m” es el número de columnas de la matriz “c” y “n” es el número de
filas.
La factorización (o descomposición) matricial es particularmente útil
cuando en un problema dado sólo cambian las constantes del sistema. Cuando
ello ocurre se calculan las matrices “L” y “U” una sola vez y luego, cada
vez que las constantes cambian, las soluciones se obtienen aplicando las
ecuaciones (7.26) y (7.29) (sin necesidad de recalcular “L” y “U”).
Las ecuaciones que permiten calcular las matrices “L” y “U” en la descom-
posición de Crout, pueden ser deducidas tomando en cuenta que la multipli-
cación de las filas de la matriz “L” por la primera columna de la matriz
“U” es igual a la primera columna de la matriz “A”; que la multiplicación
de la primera fila de la matriz “L” por las columnas 2 a “n” de la matriz
“U” es igual a los elementos 2 a “n” de la primera fila de la matriz “A”;
que la multiplicación de las filas de la matriz “L” por la segunda columna
de “U” es igual a la segunda columna de “A”; que la multiplicación de la
segunda fila de la matriz “L” por las columnas 3 a “n” de la matriz “U” es
igual a los elementos 3 a “n” de “A” y así sucesivamente.
De esa manera se deducen las siguientes expresiones:

{
p−1
l ip =a ip – ∑ l ik⋅u kp {i= p → n
k =1
u pp=1 p=1 → n
p−1
(7.30)
a pj – ∑ l pk⋅u kj
k=1
u pj = { j= p+1 → n
l pp
Si no se almacenan los unos de la matriz “U”, las matrices “L” y “U” pue-
den ser almacenadas en una sola matriz, así las dos matrices de la ecuación
(7.14), pueden ser almacenadas como:

[ ]
l 11 u 12 u 13 u 14
l 21 l 22 u 23 u 24
(7.31)
l 31 l 32 l 33 u 34
l 41 l 42 l 43 l 44
Donde se sabe que la matriz triangular “U” tiene unos en su diagonal
principal. Así se ahorra memoria y, más importante aún, se simplifican los
SISTEMAS DE ECUACIONES LINEALES II - 125 -

cálculos. Si estos elemento se almacenan en la matriz “A”, las ecuaciones


(7.30) se transforman en:

{
p−1
a ip =a ip – ∑ aik⋅a kp { i= p → n
k=1
p−1 p=1 → n (7.32)
a pj – ∑ a pk⋅a kj
k=1
a pj = { j= p+1 → n
a pp
Las ecuaciones (7.26) y (7.29), con las cuales se calculan las soluciones
del sistema, deben ser reescritas para tomar en cuenta este cambio, pero si
además las soluciones se almacenan en la matriz de constantes “b” y se toma
en cuenta que los elementos de la diagonal principal en “U” son unos, se
transforman en:
i−1
b ij – ∑ a ik⋅b kj
(7.33)
bij = k=1
aii {i=1 → n
j=1 → m
n
bij =bij – ∑
k =i +1
a ik⋅bkj { i=n →1
j=1 → m
(7.34)

A esta forma se denomina esquema compacto y es la forma más empleada en


la práctica.
Para comprender mejor el proceso aplicaremos manualmente el mismo a la
matriz de coeficientes del sistema (7.6).
Primero se crea la matriz “a” y se inicializan las variables “n”, “p”:
>> a=[2,8,2;1,6,-1;2,-1,2]; n=3; p=1;
Ahora se calculan los elementos de la primera columna (de “l”):
>> for i=p:n s=0; for k=1:p-1 s+=a(i,k).*a(k,p); end a(i,p)=a(i,p)-s; end
a
ans =
2 8 2
1 6 -1
2 -1 2
Entonces se calculan los elementos de la primera fila (de “u”):
>> for j=p+1:n s=0; for k=1:p-1 s+=a(p,k).*a(k,j); end a(p,j)=(a(p,j)-
s)/a(p,p); end a
ans =
2 4 1
1 6 -1
2 -1 2
Para calcular la segunda columna (de “l”) y la segunda fila (de “u”) se
incrementa el valor de “p” (a 2) y se repite el proceso:
>> p++;
>> for i=p:n s=0; for k=1:p-1 s+=a(i,k).*a(k,p); end a(i,p)=a(i,p)-s; end
a
ans =
2 4 1
1 2 -1
- 126 - Hernán Peñaranda V.

2 -9 2
>> for j=p+1:n s=0; for k=1:p-1 s+=a(p,k).*a(k,j); end a(p,j)=(a(p,j)-
s)/a(p,p); end a
ans =
2 4 1
1 2 -1
2 -9 2
Finalmente se incrementa el valor de “p” (a 3) y se calcula la última co-
lumna (de “l”):
>> p++;
>> for i=p:n s=0; for k=1:p-1 s+=a(i,k).*a(k,p); end a(i,p)=a(i,p)-s; end
a
ans =
2 4 1
1 2 -1
2 -9 -9
De esa manera se obtienen las matrices triangulares “l” (los elementos de
la diagonal principal e inferiores) y “u” (los elementos encima de la dia-
gonal principal).
Ahora se calcula las soluciones aplicando primero la ecuación (7.33) (con
j=1 pues en este caso “b” es un vector columna):
>> b=[14;13;5]; j=1;
>> for i=1:n s=0; for k=1:i-1 s+=a(i,k).*b(k,j); end b(i,j)=(b(i,j)-
s)/a(i,i); end b
ans =
7
3
-2
Y luego la ecuación (7.34):
>> for i=n:-1:1 s=0; for k=i+1:n s+=a(i,k).*b(k,j); end b(i,j)=b(i,j)-s;
end b
ans =
5
1
-2
Que son las soluciones del sistema (7.6).

7.2.1. Ejercicios

8. Encuentre las soluciones del sistema (7.7) aplicando manualmente el mé-


todo de factorización de Crout.
9. Encuentre las soluciones del sistema (7.8) aplicando manualmente el mé-
todo de factorización de Crout.

7.2.2. Pivotaje parcial en los métodos de factorización

Al igual que en los métodos de Gauss y Gauss Jordán en los métodos de


factorización se debe evitar que el elemento pivote sea cero y con ese fin
es necesario realizar un pivotaje parcial.
En estos métodos, sin embargo, se debe mantener un registro de los inter-
cambios de filas realizados, pues es necesario ordenar la matriz de las
constantes (“b”) en función a dichos intercambios. Alternativamente se pue-
de trabajar con la matriz aumentada, no obstante, con ello se pierde la
SISTEMAS DE ECUACIONES LINEALES II - 127 -

principal ventaja de estos métodos: la de permitir calcular nuevas solucio-


nes, en sistemas que sólo difieren en las constantes, empleando las matri-
ces “l” y “u” ya calculadas (o la matriz compacta en nuestro caso).
Para hacer el seguimiento de los intercambios efectuados, se empleará en
este caso una matriz de permutaciones “o”, que inicialmente será igual a la
matriz unidad y cada vez que se intercambien dos filas en la matriz “A”, se
intercambiarán las mismas filas en la matriz de permutaciones “O”, enton-
ces, los intercambios de filas hechos en la matriz “A” podrán ser replica-
dos en la matriz “b” simplemente multiplicándola por la matriz “o”.
El algoritmo del pivotaje parcial en los métodos de factorización es el
siguiente:
pivparlu: Pivotaje parcial en los
métodos de factorización.

recibir a, n, p, o a: Matriz aumentada.


n: Número de filas.
k=p p: Pivote.
o: Matriz de posiciones.

i = p+1

[i<=n]
[|aip|>|akp|]

k=i

i = i+1

[akp=0]

[k<>p] Matriz homogénea.

j =1
generar error

[j<=n]
aux = apj; apj = akj ; akj = aux

aux = opj; opj = okj ; okj = aux

j = j+1

Siendo el código respectivo:


function r=pivparlu(a,n,p,o)
k=p;
for i=p+1:n
if abs(a(i,p))>abs(a(k,p)) k=i; end
end
if a(k,p)==0 error("Matriz Homogénea\n"); end
if k ~= p
for j=1:n
- 128 - Hernán Peñaranda V.

aux=a(p,j); a(p,j)=a(k,j); a(k,j)=aux;


aux=o(p,j); o(p,j)=o(k,j); o(k,j)=aux;
end
end
end
Haciendo correr el programa con la matriz:
>> a=[0,2,1;1,0,0;3,0,1]
a =
0 2 1
1 0 0
3 0 1
Donde se deben intercambiar las filas 1 y 3, se obtiene:
>> o=eye(3);
>> pivparlu(a,3,1,o)
>> a,o
a =
3 0 1
1 0 0
0 2 1
o =
0 0 1
0 1 0
1 0 0
Que corresponde al intercambio esperado, el mismo que se refleja también
la matriz “o”. Si se aplica el pivotaje parcial a la matriz resultante,
siendo el pivote 2, se obtiene:
>> pivparlu(a,3,2,o)
>> a,o
a =
3 0 1
0 2 1
1 0 0
o =
0 0 1
1 0 0
0 1 0
Que una vez más corresponde a los intercambios de filas esperados (filas
2 y 3) y el respectivo intercambio en la matriz de permutaciones (“o”).
Simplemente para demostrar que la matriz de permutaciones “o” permite re-
producir los intercambios de filas realizados, se multiplica la matriz de
permutaciones por la matriz original:
>> o*[0,2,1;1,0,0;3,0,1]
ans =
3 0 1
0 2 1
1 0 0
Obteniéndose la matriz resultante de los intercambios.

7.2.3. Factorización LU

El algoritmo para factorizar (descomponer) una matriz por el método de


Crout, que básicamente automatiza los pasos seguidos en el ejemplo manual,
es el siguiente:
SISTEMAS DE ECUACIONES LINEALES II - 129 -

croutlu: Factorización LU por el


método de Crout.
recibir a
a: Matriz aumentada.
n = Nº de filas en a

o = matriz unidad con n filas

desde p=1 hasta n

[p<n]

pivparlu(a,n,p,o)

desde i=p hasta n

s=0

desde k=1 hasta p-1

k=k+1 s = s+aik*akp

i=i+1 aip = aip-s

desde j=p+1 hasta n

s=0

desde k=1 hasta p-1

k=k+1 s = s+apk*akj

j=j+1 apj = (apj-s)/app

p=p+1

devolver a, o

En la codificación, dado que Jasymca no permite devolver más de un resul-


tado, las matrices “a” y “o” se devuelven en una sola, en la matriz “a” au-
mentando con las columnas de la matriz “o”.
function a=croutlu(b)
a=0; a=b(:,:); n=size(a)(1); o=eye(n);
for p=1:n
if p<n pivparlu(a,n,p,o); end
for i=p:n
s=0; for k=1:p-1 s+=a(i,k).*a(k,p); end
a(i,p)=a(i,p)-s;
end
for j=p+1:n
s=0; for k=1:p-1 s+=a(p,k).*a(k,j); end
a(p,j)=(a(p,j)-s)/a(p,p);
end
end
a(:,n+1:2*n)=o;
end
- 130 - Hernán Peñaranda V.

Haciendo correr el programa con la matriz del ejemplo manual (sistema


(7.6)), se obtienen los mismos resultados que en el ejemplo:
>> a=[2,8,2;1,6,-1;2,-1,2];
>> lu=croutlu(a)
lu =
2 4 1 1 0 0
1 2 -1 0 1 0
2 -9 -9 0 0 1
Las 3 últimas columnas corresponden a la matriz de permutaciones “o”.

7.2.4. Cálculo de las soluciones

Una vez que se tienen las matrices triangulares inferior, superior y la


matriz de permutaciones (en una matriz aumentada en nuestro caso), se pue-
den calcular los resultados aplicando los procesos de sustitución hacia
adelante y hacia atrás (ecuaciones (7.33) y (7.34)). El algoritmo es:
croutsol: Cálculo de las soluciones
con el método de Crout.

recibir a, b a: Matriz l-u aumentada con la


matriz de permutaciones.
b: Matriz de constantes.
n = Nº de filas en a

m = Nº de columnas en b

b = aall,n+1->2n*b

desde i=1 hasta n

desde j=1 hasta m

s= 0

desde k=1 hasta i-1

k=k+1 s = s+aik*bkj

j=j+1 bij = (bij-s)/aii

i=i+1

desde i=n hasta 1

desde j=1 hasta m

s= 0

desde k=i+1 hasta n

k=k+1 s = s+aik*bkj

j=j+1 bij = bij-s

i=i-1

devolver b
SISTEMAS DE ECUACIONES LINEALES II - 131 -

Siendo el código respectivo:


function b=croutsol(a,c)
b=0; b=c(:,:); n=size(a)(1); m=size(b)(2);
b=a(:,n+1:2*n)*b;
for i=1:n
for j=1:m
s=0; for k=1:i-1 s+=a(i,k).*b(k,j); end
b(i,j)=(b(i,j)-s)/a(i,i);
end
end
for i=n:-1:1
for j=1:m
s=0; for k=i+1:n s+=a(i,k).*b(k,j); end
b(i,j)=b(i,j)-s;
end
end
end
Haciendo correr el programa con los resultados de “croutlu” se obtiene:
>> b=[14;13;5];
>> croutsol(lu,b)
b =
5
1
-2
Que son las soluciones correctas del sistema de ecuaciones (7.6).

7.2.5. Ejercicios

10. Encuentre las soluciones del sistema (7.10) empleando el método de


Crout.
11. Encuentre las soluciones del sistema (7.11) empleando el método de
Crout.
12. Encuentre las soluciones del sistema (7.12) empleando el método de
Crout.
13. Encuentre la inversa de la matriz de coeficientes del sistema (7.12)
empleando el método de Crout, luego, con la inversa calculada, encuen-
tre las soluciones del sistema.

7.3. MÉTODO DE DOOLITTLE

Como ya se dijo, cuando en la factorización L-U, la matriz triangular in-


ferior queda con unos en la diagonal principal, el proceso se conoce como
el método de Doolittle (ecuación (7.15)).
Las ecuaciones para el cálculo de las matrices “L” y “U” son:

{
p −1
u pj =a pj – ∑ l pk⋅u kj { j= p → n
k=1
l pp=1 p=1 → n
p−1
(7.35)
a ip – ∑ l ik⋅u kp
k =1
l ip = {i= p+1 → n
u pp
- 132 - Hernán Peñaranda V.

Y se deducen de manera similar al método de Crout, sólo que ahora los


elementos de la matriz original “A” se calculan en el orden: fila 1, colum-
na 1, fila 2, columna 2, fila 3, columna 3 y así sucesivamente.
Sin embargo, y al igual que en el método de Crout, no es necesario guar-
dar los ceros ni los unos de las matrices, por lo que las dos matrices (“L”
y “U”) pueden ser guardadas en una:

[ ]
u 11 u 12 u 13 u14
l 21 u 22 u 23 u 24
(7.36)
l 31 l 32 u 33 u34
l 41 l 42 l 43 u 44
Si esta matriz se guarda en la matriz “A”, las ecuaciones (7.35) se
transforman en:

{
p−1
a pj =a pj – ∑ a pk⋅a kj { j = p → n
k=1
p−1 p=1 → n (7.37)
a ip – ∑ aik⋅a kp
k=1
a ip = { i= p+1 → n
a pp
Las ecuaciones para el cálculo de las soluciones, tomando en cuenta que
ahora “l” tiene la diagonal con unos y guardando las soluciones en la ma-
triz de constantes “b”, son:
i−1
bij =bij – ∑ aik⋅bkj
k =1
{ i=1 →n
j=1 → m
(7.38)

n
b ij – ∑ a ik⋅b kj
(7.39)
bij = k=i+1
a ii { i=n → 1
j=1 → m
Para comprender mejor el proceso aplicaremos manualmente el método de Do-
olittle al sistema (7.6).
Primero se crea la matriz “a” y se inicializan las variables “n” y “p”:
>> a=[2,8,2;1,6,-1;2,-1,2]; n=length(a); p=1;
Ahora se aplican las ecuaciones (7.37) para calcular la primera fila y
columna de “u” y “l”:
>> for j=p:n s=0; for k=1:p-1 s+=a(p,k).*a(k,j); end a(p,j)=a(p,j)-s; end
a
ans =
2 8 2
1 6 -1
2 -1 2
>> for i=p+1:n s=0; for k=1:p-1 s+=a(i,k).*a(k,p); end a(i,p)=(a(i,p)-
s)/a(p,p); end; a
ans =
2 8 2
0.5 6 -1
1 -1 2
Ahora se procede con la segunda fila y columna de “u” y “l”:
SISTEMAS DE ECUACIONES LINEALES II - 133 -

>> p++;
>> for j=p:n s=0; for k=1:p-1 s+=a(p,k).*a(k,j); end a(p,j)=a(p,j)-s; end
a
ans =
2 8 2
0.5 2 -2
1 -1 2
>> for i=p+1:n s=0; for k=1:p-1 s+=a(i,k).*a(k,p); end a(i,p)=(a(i,p)-
s)/a(p,p); end; a
ans =
2 8 2
0.5 2 -2
1 -4.5 2
Finalmente se calcula la última fila de “u”:
>> p++;
>> for j=p:n s=0; for k=1:p-1 s+=a(p,k).*a(k,j); end a(p,j)=a(p,j)-s; end
a
ans =
2 8 2
0.5 2 -2
1 -4.5 -9
Ahora se calculan las soluciones con las ecuaciones (7.38) y (7.39):
>> b=[14;13;5]; j=1;
>> for i=1:n s=0; for k=1:i-1 s+=a(i,k).*b(k,j); end b(i,j)=b(i,j)-s; end
b
ans =
14
6
18
>> for i=n:-1:1 s=0; for k=i+1:n s+=a(i,k).*b(k,j); end b(i,j)=(b(i,j)-
s)/a(i,i); end b
ans =
5
1
-2
Que son las soluciones correctas del sistema.

7.3.1. Ejercicios

14. Encuentre las soluciones del sistema (7.7) aplicando manualmente el mé-
todo de factorización de Doolittle.
15. Encuentre las soluciones del sistema (7.8) aplicando manualmente el mé-
todo de factorización de Doolittle.

7.3.2. Fatorización LU

El algoritmo para calcular las matrices “L” y “U” por el método de Doo-
little, el cual, con excepción del pivotaje parcial, básicamente automatiza
el proceso seguido en el ejemplo manual, se presenta en la siguiente página
y el código respectivo es:
function a=doolittlelu(b)
a=0; a=b(:,:); n=size(a)(1); o=eye(n);
for p=1:n
if p<n pivparlu(a,n,p,o); end
- 134 - Hernán Peñaranda V.

doolittlelu: Factorización LU por


el método Doolittle.
recibir a
a: Matriz aumentada.
n = Nº de filas en a

o = matriz unidad con n filas

desde p=1 hasta n

[p<n]

pivparlu(a,n,p,o)

desde j=p hasta n

s=0

desde k=1 hasta p-1

k=k+1 s = s+apk*akj

j=j+1 apj = apj-s

desde i=p+1 hasta n

s=0

desde k=1 hasta p-1

k=k+1 s = s+aik*akp

i=i+1 aip = (aip-s)/app

p=p+1

devolver a, o

for j=p:n
s=0; for k=1:p-1 s+=a(p,k).*a(k,j); end
a(p,j)=a(p,j)-s;
end
for i=p+1:n
s=0; for k=1:p-1 s+=a(i,k).*a(k,p); end
a(i,p)=(a(i,p)-s)/a(p,p);
end
end
a(:,n+1:2*n)=o;
end
Donde, al igual que en el método de Crout, se ha añadido a la matriz l-u
la matriz de permutaciones.
Haciendo correr el programa con la matriz del ejemplo manual se obtiene:
>> a=[2,8,2;1,6,-1;2,-1,2];
>> r=doolittlelu(a)
r =
SISTEMAS DE ECUACIONES LINEALES II - 135 -

2 8 2 1 0 0
0.5 2 -2 0 1 0
1 -4.5 -9 0 0 1
Que son los mismos resultados obtenidos en el ejemplo manual.
Jasymca cuenta también con una función “lu”, que lleva a cabo la descom-
posición por el método de Doolittle. Con esta función se obtiene:
>> [l,u,o]=lu(a)
l =
1 0 0
0.5 -0.22222 1
1 1 0
u =
2 8 2
0 -9 0
0 0 -2
o =
1 0 0
0 0 1
0 1 0
Que a diferencia del programa elaborad devuelve los resultados en tres
matrices y se basa en un pivotaje total en lugar de uno parcial.

7.3.3. Cálculo de las soluciones

Con las matrices triangulares inferior, superior y la matriz de permuta-


ciones (en una matriz aumentada en nuestro caso), se pueden calcular las
soluciones del sistema aplicando los procesos de sustitución hacia adelante
y hacia atrás (ecuaciones (7.38) y (7.39)).
El algoritmo se presenta en la siguiente página y el código respectivo
es:
function b=doolittlesol(a,c)
b=0; b=c(:,:); n=size(a)(1); m=size(b)(2);
b=a(:,n+1:2*n)*b;
for i=1:n
for j=1:m
s=0; for k=1:i-1 s+=a(i,k).*b(k,j); end
b(i,j)=b(i,j)-s;
end
end
for i=n:-1:1
for j=1:m
s=0; for k=i+1:n s+=a(i,k).*b(k,j); end
b(i,j)=(b(i,j)-s)/a(i,i);
end
end
end
Haciendo correr el programa con los resultados de “doolittlelu” se obtie-
nen las soluciones encontradas en el ejemplo manual:
>> b=[14;13;5];
>> doolittlesol(r,b)
b =
5
1
-2
- 136 - Hernán Peñaranda V.

doolittlesol: Cálculo de las soluciones


con el método doolittle.

recibir a, b a: Matriz l-u aumentada con la


matriz de permutaciones.
b: Matriz de constantes.
n = Nº de filas en a

m = Nº de columnas en b

b = aall,n+1->2n*b

desde i=1 hasta n

desde j=1 hasta m

s= 0

desde k=1 hasta i-1

k=k+1 s = s+aik*bkj

j=j+1 bij = bij-s

i=i+1

desde i=n hasta 1

desde j=1 hasta m

s= 0

desde k=i+1 hasta n

k=k+1 s = s+aik*bkj

j=j+1 bij = (bij-s)/aii

i=i-1

devolver b

7.3.4. Ejercicios

16. Encuentre las soluciones del sistema (7.10) empleando el método de Doo-
little.
17. Encuentre las soluciones del sistema (7.11) empleando el método de Doo-
little.
18. Encuentre las soluciones del sistema (7.12) empleando el método de Doo-
little.
19. Encuentre la inversa de la matriz de coeficientes del sistema (7.12)
empleando el método de Doolittle, luego, con la inversa calculada, en-
cuentre las soluciones del sistema.
SISTEMAS DE ECUACIONES LINEALES II - 137 -

7.4. MÉTODO DE CHOLESKY

Como ya se vio, cuando la matriz es simétrica, la descomposición “L” “U”


puede ser simplificada y al proceso se conoce como el método de Cholesky
(ecuación (7.16)). Puesto que la matriz a factorizar debe ser simétrica, el
método de Cholesky no admite pivotaje.
A pesar de estas limitaciones, la forma de Cholesky resulta de utilidad
práctica, pues los sistemas con matrices simétricas aparecen en la resolu-
ción de varios problemas prácticos en el campo de la ingeniería.
Las ecuaciones que permiten calcular los valores de “L” (y en consecuen-
cia los de “U”), se deducen obteniendo los términos de la matriz triangular
inferior de la matriz original “A”, columna por columna y son:


{
p−1
l pp= a pp – ∑ l pk 2
k =1
p−1 p=1 → n (7.40)
a ip – ∑ l ik⋅l pk
k =1
l ip = =l pi {i= p+1 → n
l pp
Como se puede ver, el cálculo de los elementos de la diagonal principal
involucra el cálculo de la raíz cuadrada, por lo que además dicho valor
debe ser positivo.
Al igual que en los métodos de Crout y Doolittle, en el método de Cho-
lesky no se requieren almacenar los ceros y dado que en este caso la matriz
transpuesta y la original tienen los mismos elementos en la diagonal prin-
cipal, los resultados de la factorización se pueden almacenar en una matriz:

[ ]
l 11 l 21 l 31 l 41
l 21 l 22 l 32 l 42
(7.41)
l 31 l 32 l 33 l 43
l 41 l 42 l 43 l 44
Si la matriz donde se guardan estos valores es la matriz “A”, las ecua-
ciones (7.40) pueden ser reescritas como:


{
p−1
a pp= a pp – ∑ a pk 2
k=1
p−1 p=1 → n (7.42)
a ip – ∑ aik⋅a pk
k=1
a ip = =a pi {i= p+1 → n
a pp
Una vez factorizada la matriz de los coeficientes los resultados pueden
ser calculados con las ecuaciones (7.33) y (7.39). Para comprender mejor el
proceso se resolverá el siguiente sistema de ecuaciones con este método:

4 x1 + x2 + 2 x3 = 5
x1 + 7 x2 + 3 x3 = 8 (7.43)
2 x1 + 3 x 2 + 9 x3 = 3
Primero se crea la matriz de coeficientes y se inicializan “p” y “n”:
- 138 - Hernán Peñaranda V.

>> a=[4,1,2;1,7,3;2,3,9]; n=size(a)(1); p=1;


Ahora se calcula el primer elemento de la diagonal principal y la primera
columna (y por consiguiente la fila 1):
>> s=0; for k=1:p-1 s+=a(p,k)^2; end a(p,p)=sqrt(a(p,p)-s); a
ans =
2 1 2
1 7 3
2 3 9
>> for i=p+1:n s=0; for k=1:p-1 s+=a(i,k).*a(p,k); end a(i,p)=(a(i,p)-
s)/a(p,p); a(p,i)=a(i,p); end a
ans =
2 0.5 1
0.5 7 3
1 3 9
Luego se incrementa “p” y se repite el proceso para la segunda columna y
fila:
>> p++;
>> s=0; for k=1:p-1 s+=a(p,k)^2; end a(p,p)=sqrt(a(p,p)-s); a
ans =
2 0.5 1
0.5 2.5981 3
1 3 9
>> for i=p+1:n s=0; for k=1:p-1 s+=a(i,k).*a(p,k); end a(i,p)=(a(i,p)-
s)/a(p,p); a(p,i)=a(i,p); end a
ans =
2 0.5 1
0.5 2.5981 0.96225
1 0.96225 9
Finalmente se calcula el último valor de la diagonal principal:
>> p++;
>> s=0; for k=1:p-1 s+=a(p,k)^2; end a(p,p)=sqrt(a(p,p)-s); a
ans =
2 0.5 1
0.5 2.5981 0.96225
1 0.96225 2.6597
Una vez factorizada la matriz de coeficientes se calculan las soluciones
con las ecuaciones (7.33) y (7.39):
>> b=[5;8;3]; j=1;
>> for i=1:n s=0; for k=1:i-1 s+=a(i,k).*b(k,j); end b(i,j)=(b(i,j)-
s)/a(i,i); end b
ans =
2.5
2.5981
-0.75196
>> for i=n:-1:1 s=0; for k=i+1:n s+=a(i,k).*b(k,j); end b(i,j)=(b(i,j)-
s)/a(i,i); end b
ans =
1.1152
1.1047
-0.28272
Resultados que pueden ser corroborados con “linsolve”:
>> a=[4,1,2;1,7,3;2,3,9]; b=[5;8;3];
SISTEMAS DE ECUACIONES LINEALES II - 139 -

>> linsolve(a,b)
ans =
1.1152
1.1047
-0.28272

7.4.1. Ejercicios

Dado el siguiente sistema de ecuaciones lineales

10 x 1 + x2 + 2 x 3 = 44
x1 + 10 x 2 + x 3 = 51 (7.44)
2 x1 + x2 + 10 x 3 = 61
20. Encuentre las soluciones de este sistema aplicando manualmente el méto-
do de Cholesky.

7.4.2. Factorización LU

El algoritmo que automatiza la factorización por el método de Cholesky


es:
choleskylu : Factorización LU por
el método Cholesky.
recibir a
a: Matriz aumentada.
n = Nº de filas en a

desde p=1 hasta n

s=0

desde k=1 hasta p-1

k=k+1 s = s+apk*apk

app = (app-s)1/2

desde i=p+1 hasta n

s=0

desde k=1 hasta p-1

k=k+1 s = s+aik*apk

i=i+1 api = aip = (aip-s)/app

p=p+1

devolver a

Siendo el código respectivo:


function a=choleskylu(b)
a=0; a=b(:,:); n=size(a)(1);
for p=1:n
- 140 - Hernán Peñaranda V.

s=0; for k=1:p-1 s+=a(p,k).*a(p,k); end


a(p,p)=sqrt(a(p,p)-s);
for i=p+1:n
s=0; for k=1:p-1 s+=a(i,k).*a(p,k); end
a(i,p)=(a(i,p)-s)/a(p,p); a(p,i)=a(i,p);
end
end
end
Haciendo correr el programa con la matriz del ejemplo manual se obtiene:
>> a=[4,1,2;1,7,3;2,3,9];
>> r=choleskylu(a)
r =
2 0.5 1
0.5 2.5981 0.96225
1 0.96225 2.6597
Que son los resultados correctos.

7.4.3. Cálculo de las soluciones

El algoritmo para el cálculo de las soluciones por el método de Cholesky


se presenta en la siguiente página y el código respectivo es:
function b=choleskysol(a,c)
b=0; b=c(:,:); n=size(a)(1); m=size(b)(2);
for i=1:n
for j=1:m
s=0; for k=1:i-1 s+=a(i,k).*b(k,j); end
b(i,j)=(b(i,j)-s)/a(i,i);
end
end
for i=n:-1:1
for j=1:m
s=0; for k=i+1:n s+=a(i,k).*b(k,j); end
b(i,j)=(b(i,j)-s)/a(i,i);
end
end
end
Haciendo correr el programa con los resultados de “choleskylu” se obtie-
ne:
>> b=[5;8;3];
>> choleskysol(r,b)
b =
1.1152
1.1047
-0.28272

7.4.4. Ejercicios

Dados los siguientes sistemas de ecuaciones:

x 1 + 2 x 2 + 3 x 3 = 21
2 x 1 + 9 x 2 + 3 x 3 = 12 (7.45)
3 x 1 + 3 x 2 + 12 x 3 = 15
SISTEMAS DE ECUACIONES LINEALES II - 141 -

choleskysol : Cálculo de las soluciones


con el método doolittle.

recibir a, b a: Matriz l-u aumentada con la


matriz de permutaciones.
b: Matriz de constantes.
n = Nº de filas en a

m = Nº de columnas en b

desde i=1 hasta n

desde j=1 hasta m

s= 0

desde k=1 hasta i-1

k=k+1 s = s+aik*bkj

j=j+1 bij = (bij-s)/aii

i=i+1

desde i=n hasta 1

desde j=1 hasta m

s= 0

desde k=i+1 hasta n

k=k+1 s = s+aik*bkj

j=j+1 bij = (bij-s)/aii

i=i-1

devolver b

7 x1 + x2 + 2 x3 − x4 = 3
x1 + 9 x2 + 3 x3 + 2 x4 = 2
(7.46)
2 x1 + 3 x2 + 12 x 3 + 3x4 = 7
−x1 + 2 x2 + 3 x3 + 11 x 4 = 5
21. Encuentre las soluciones del sistema (7.45) empleando el método de Cho-
lesky.
22. Encuentre las soluciones del sistema (7.46) empleando el método de Cho-
lesky.
- 142 - Hernán Peñaranda V.

You might also like