Vous êtes sur la page 1sur 9

Solución de sistemas de ecuaciones lineales

Métodos numéricos – Ing. de Industrias Alimentarias – 2018-B – 11 y 12 de octubre de 2018


——————————————————————————————————————————–

1. Sistema de ecuaciones lineales


Un sistema de ecuaciones lineales de m ecuaciones y n incógnitas (variables) es una expresión de la
forma: 8
> a1;1 x1 + a1;2 x2 + ¢ ¢ ¢ + a1;n xn = b1
>
>
< a2;1 x1 + a2;2 x2 + ¢ ¢ ¢ + a2;n xn = b2
.. .. .. .. . . .. .. .. .. (1)
>
> . . . . . . . . .
>
:
am;1 x1 + am;2 x2 + ¢ ¢ ¢ + am;n xn = bm
Si todos los ai;j son reales, entonces el sistema será real. Si algún ai;j es complejo, el sistema será
complejo. Una solución del sistema (1) es una nupla x̄ = (x̄1 ; x̄2 ; :::; x̄n ) que satisface las m ecuaciones.
Ejemplo 1.1 Dado el sistema de ecuaciones lineales
8
< 2x1 + x2 + x3 = 10
x1 + x2 - 2x3 = -2
:
-x1 - x2 + 4x3 = 0
una solución es x̄ = (x̄1 ; x̄2 ; x̄3 ) = (15; -19; -1). ¤

Un sistema de ecuaciones lineales puede tener:


Única solución
In…nitas soluciones
Ninguna solución
Ejemplo 1.2 El siguiente sistema tiene única solución: (4; -1).
¯
3x1 + 2x2 = 10
x1 - x2 = 5
Por otro lado, el sistema siguiente tiene in…nitas soluciones: f(5 + t; t) : t 2 Rg
¯
3x1 - 3x2 = 15
x1 - x2 = 5
Finalmente, el sistema dado a continuación no tiene ninguna solución:
¯
2x1 - 2x2 = 8
x1 - x2 = 5
Las anteriores ecuaciones representan rectas en R2 , cualquier par (x̄1 ; x̄2 ) que satisfaga ambas ecua-
ciones estará en la intersección de ambas rectas:

1
Respecto a su forma, los sistemas pueden ser cuadrados o rectangulares.

Si m = n, el sistema será cuadrado. Sistemas cuadrados frecuentemente tienen única solución.

Si m 6= n , el sistema será rectangular.

² Si m < n, el sistema se denomina indeterminado. Sistemas indeterminados frecuentemente


tienen in…nitas soluciones.
² Si m > n, el sistema se denomina sobredeterminado. Sistemas sobredeterminados fre-
cuentemente no tienen solución.

Dos sistemas de ecuaciones lineales se dicen equivalentes, si ellos tienen las mismas soluciones.

Ejemplo 1.3 Los siguientes sistemas de ecuaciones lineales son equivalentes:


8 8
< x1 + 3x2 - 2x3 = 10 < -2x1 - 6x2 + 4x3 = -20
-2x1 + x2 + x3 = -2 2x1 - x2 - x3 = 2
: :
4x1 - 2x2 + 4x3 = 28 2x1 - x2 + 2x3 = 14

7 ; 7 ; 4). ¤
La única solución para ambos casos es (x̄1 ; x̄2 ; x̄2 ) = ( 36 30

Existen tres operaciones elementales que pueden ser aplicadas a un sistema de ecuaciones lineales de
modo que se mantenga la equivalencia:

1. Multiplicar una constante no nula a una ecuación

2. Intercambiar dos ecuaciones

3. Sumar a una ecuación, un múltiplo de otra

Ejemplo 1.4 Considere el siguiente sistema de ecuaciones lineales:


¯
4x1 - x2 = -4
(2)
x1 + x2 = 6

Si multiplicamos por 2 la segunda ecuación, obtenemos un sistema equivalente:


¯
4x1 - x2 = -4
(3)
2x1 + 2x2 = 12

Si en este último sistema, intercambiamos las ecuaciones obtenemos otro sistema equivalente:
¯
2x1 + 2x2 = 12
(4)
4x1 - x2 = -4

Ahora, en este último, si le sumamos a la segunda ecuación -2 veces la primera, obtenemos:


¯
2x1 + 2x2 = 12
(5)
- 5x2 = -28

Los sistemas (2), (3), (4) y (5) son equivalentes entre sí. ¤

En el ejemplo anterior, note que (5) es más simple de resolver que (2). Justamente de esto se vale el
método para resolver sistemas de ecuaciones lineales que veremos a continuación.

2
2. Método de Gauss para resolver sistemas de ecuaciones lineales
Dado el sistema lineal de n £ n
8
>
> a1;1 x1 + a1;2 x2 + ¢ ¢ ¢ + a1;n xn = b1
>
< a2;1 x1 + a2;2 x2 + ¢ ¢ ¢ + a2;n xn = b2
.. .. .. .. . . .. .. .. .. (6)
>
> . . . . . . . . .
>
:
an;1 x1 + an;2 x2 + ¢ ¢ ¢ + an;n xn = bn

El método de eliminación de Gauss consiste en transformar el sistema (6), de un modo equivalente,


a un sistema triangular superior:
8 0
>
> a1;1 x1 + a01;2 x2 + ¢ ¢ ¢ + a01;n xn = b01
>
< a02;2 x2 + ¢ ¢ ¢ + a02;n xn = b02
.. . .. .. .. (7)
>
>
> . .. . . .
: 0
an;n xn = b0n

El bene…cio de esto es que se puede resolver el sistema triangular (7) de modo e…ciente. En efecto,
de la última ecuación de (7) tenemos
b0
xn = 0 n
an;n
Luego, xn-1 puede ser obtenido mediante
b0n-1 - a0n-1;n xn
xn-1 =
a0n-1;n-1
Y así sucesivamente, obtenemos xn-2 ; xn-3 ; :::; x2 , …nalmente
b01 - a01;2 x2 - a01;3 x3 - ¢ ¢ ¢ - a01;n xn
x1 =
a01;1

Ejemplo 2.1 Usando el método de Gauss, resolver el sistema


x1 + x2 + x3 + x4 = 10
2x1 - x2 + x4 = 2
4x1 + x2 + x3 - x4 = 4
x1 + x2 - x3 + x4 = 6

1. Multiplicando la primera ecuación por -2 y sumando a la segunda ecuación,


2. Multiplicando la primera ecuación por -4 y sumando a la tercera ecuación, y
3. Multiplicando la primera ecuación por -1 y sumando a la cuarta ecuación, obtenemos
x1 + x2 + x3 + x4 = 10
- 3x2 - 2x3 - x4 = -18
- 3x2 - 3x3 - 5x4 = -36
- 2x3 = -4

4. Ahora, en este último sistema, multiplicando la segunda ecuación por -1 y sumando a la tercera
ecuación, obtenemos:
x1 + x2 + x3 + x4 = 10
- 3x2 - 2x3 - x4 = -18
- x3 - 4x4 = -18
- 2x3 = -4

3
5. Permutando la tercera y cuarta ecuación, tenemos
x1 + x2 + x3 + x4 = 10
- 3x2 - 2x3 - x4 = -18
- 2x3 = -4
- x3 - 4x4 = -18

6. Multiplicando por - 12 la tercera ecuación y sumando a la cuarta, obtenemos


x1 + x2 + x3 + x4 = 10
- 3x2 - 2x3 - x4 = -18
(8)
- 2x3 = -4
- 4x4 = -16

7. Luego, las soluciones de este último sistema son casi inmediatas:


-16
x4 = =4
-4
-4
x3 = =2
-2
1 1 1 10
x2 = - (-18 + 2x3 + x4 ) = - (-18 + 2 (2) + (4)) = - (-10) =
3 3 ¶
µ 3 3
10 10 2
x1 = 10 - x2 - x3 - x4 = 10 - - (2) - (4) = 4 - =
3 3 3
¡ ¢
Así, la única solución del sistema inicial es 23 ; 10
3 ; 2; 4 .

2.1. Resolviendo el sistema triangular


El siguiente algoritmo resuelve un sistema de ecuaciones lineales de orden n, el cual ya está en la
forma triangular superior.
Algoritmo 2.1 (Resolución de un sistema triangular superior) Dado un sistema triangular
superior Ax = b de orden n £ n, con elementos de A sobre la diagonal no nulos. Los valores de las
variables xn ; xn-1 ; :::; x2 ; x1 son obtenidos mediante:
xn = bn =an;n
Para k = (n - 1) ; :::; 1
s=0
Para j = (k + 1) ; :::; n
s = s + ak;j xj
xk = (bk - s) =ak;k
El código del programa en MatLab/Octave es el siguiente:
function x=rsts(A,b)
n=length(A);
x=zeros(n,1);
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
s=0;
for j=k+1:1:n
s=s+A(k,j)*x(j);
end
x(k)=(b(k)-s)/A(k,k);
end

4
2.2. Conversión de un sistema de ecuaciones lineales a uno triangular superior
El siguiente algoritmo convierte un sistema de ecuaciones lineales Ax = b en un sistema triangular
superior equivalente.

Algoritmo 2.2 Dado el sistema lineal Ax = b de n £ n. Suponga que el elemento ak;k 6= 0 al inicio
de la etapa k:
Para k = 1; :::; n - 1
Para i = k + 1; :::; n
mi;k = ai;k =ak;k
ai;k = 0
Para j = k + 1; :::; n
ai;j = ai;j - mi;k ak;j
bi = bi - mi;k bk

El código del programa respectivo en Matlab/Octave es el siguiente:


function [A,b]=csts(A,b)
n=length(A);
for k=1:1:n-1
for i=k+1:1:n
m=A(i,k)/A(k,k);
A(i,k)=0;
for j=k+1:1:n
A(i,j)=A(i,j)-m*A(k,j);
end
b(i)=b(i)-m*b(k);
end
end
ai;k
De…nición 2.1 El número mi;k = , para i = 2; :::; n y k = 1; :::; n - 1, introducido en el
ak;k
algoritmo 2.2, lo denominaremos (i; k)-multiplicador de la matriz A. Además, ak;k se denomina el
k-ésimo pivote:

Ejemplo 2.2 Considere el siguiente sistema de ecuaciones lineales Ax = b, donde


2 3 2 3
1 2 3 0 2
6 2 2 4 10 7 6 4 7
A = A(0) = 6 4 1
7
5 y b = b(0) = 6
4
7
5
1 -2 1 6
1 0 0 2 0
Iteración k = 1: aplicando el Algoritmo 2.2, los multiplicadores respectivos son m2;1 = 2, m3;1 = 1 y
m4;1 = 1, de donde:
2 3 2 3
1 2 3 0 2
6 0 -2 -2 10 7 6 0 7
A(1) = 6
4 0 -1 -5 1 5
7 y b(1) = 64 4 5
7

0 -2 -3 2 -2
Iteración k = 2: vemos que m3;2 = 0:5, m4;2 = 1 y
2 3 2 3
1 2 3 0 2
6 0 -2 -2 10 7 6 0 7
A(2) = 6
4 0
7 y b(2) =6 7
0 -4 -4 5 4 4 5
0 0 -1 -8 -2

5
Iteración k = 3: tenemos m4;3 = 0:25 y
2 3 2 3
1 2 3 0 2
6 0 -2 -2 10 7 6 0 7
A(3) = 6
4 0
7
5 y b(3) =6
4 4 5
7
0 -4 -4
0 0 0 -7 -3

Resta sólo aplicar el Algoritmo 2.1 para resolver el sistema triangular superior A(3) x = b(3) , de donde
7 ; - 7 ; 7 ). ¤
obtuvimos la solución del sistema: (x̄1 ; x̄2 ; x̄3 ; x̄4 ) = (- 67 ; 25 10 3

Uni…cando los dos códigos anteriores, tenemos el código del programa asociado al método de Gauss:

function x=gauss(A,b)
n=length(A);
for k=1:1:n-1
for i=k+1:1:n
m=A(i,k)/A(k,k); A(i,k)=0;
for j=k+1:1:n
A(i,j)=A(i,j)-m*A(k,j);
end
b(i)=b(i)-m*b(k);
end
end
x=zeros(n,1); x(n)=b(n)/A(n,n);
for k=n-1:-1:1
s=0;
for j=k+1:1:n
s=s+A(k,j)*x(j);
end
x(k)=(b(k)-s)/A(k,k);
end

Un inconveniente que puede suceder en la aplicación del método de Gauss es el cálculo del multi-
plicador mi;k , pues se necesita que ak;k 6= 0 en cada iteración. Pero el simple hecho que ak;k sea
pequeño puede ocasionar que el multiplicador mi;k tome valores inmensamente grandes, lo que puede
ocasionar a su vez imprecisiones en los cálculos realizados por el computador.

Ejemplo 2.3 (Sistema mal condicionado) Utilizando el programa que ejecuta el métodos de Gauss,
resuelvemos el siguiente sistema de ecuaciones lineales:
¯
11x1 + 2x2 = 5
1016 x1 + 0:5x2 = 9

La única solución encontrada fue:


· ¸
7:26691434300103 £ 10-16
x̄ =
2:5

Al veri…car si x̄ es realmente la solución, vemos que


· ¸ · ¸
5 5
Ax̄ = 6= b =
8:51691434300102 9

6
Este fenómeno se debe a que el pivote A1;1 = 11, cuando comparado con A2;1 = 1016 , es muy pequeño.
Observe que en estas condiciones, el multiplicador

a2;1 1016
m2;1 = =
a1;1 11
es muy grande, lo que ocasionará impresiciones en los cálculos siguientes, pues el computador trabaja
con precisión …nita.

3. Estrategia con pivotamiento parcial


La intención es que los multiplicadores cumplan en cada iteración con -1 · mi;k · 1. Esto se
consigue haciendo:

En el inicio de la etapa k de la eliminación gaussiana, escoger como pivote el elemento de


(k-1) (k-1)
mayor módulo entre los coe…cientes: ai;k , para i = k; k + 1; :::; n, donde ai;k representa la
(i; k)-componente en la iteración k - 1.

Permutar la …la k e i, si fuera necesario.

Ejemplo 3.1 (Gauss con pivoteamiento parcial) Considere un sistema de 4 £ 4,

2x1 + 2x2 + x3 - x4 = 5
4x1 + x2 + 3x4 = 6
2x1 - 3x2 - 5x3 + 7x4 = 7
8x1 - 2x2 + 4x3 = 15

Iteración k = 1: Buscamos en la primera columna del pivote máx fj2j ; j4j ; j2j ; j8jg = 8, entonces
intercambiamos la primera y cuarta columna:

8x1 - 2x2 + 4x3 = 15


4x1 + x2 + 3x4 = 6
2x1 - 3x2 - 5x3 + 7x4 = 7
2x1 + 2x2 + x3 - x4 = 5
4 2 2
Observe que los nuevos multiplicadores son ahora m2;1 = 8, m3;1 = 8 y m4;1 = 8. Entonces se
procede a pivotar y obtenemos

8x1 - 2x2 + 4x3 = 15


+ 2x2 - 2x3 + 3x4 = - 32
5 13
- 2 x2 - 6x3 + 7x4 = 4
5 5
+ 2 x2 - x4 = 4
© ¯ ¯ ª
Iteración k = 2: El pivote actual es 2 (segunda …la, segunda columna), elegimos máx j2j ; ¯- 52 ¯ ; 52 =
5
2 , entonces intercambiamos la segunda y tercera ecuación (también pudo ser la segunda y cuarta
ecuación, ante el empate):

8x1 - 2x2 + 4x3 = 15


5 13
- 2 x2 - 6x3 + 7x4 = 4
2x2 - 2x3 + 3x4 = - 32
5 5
2 x2 - x4 = 4

7
2 5=2
Note que los multiplicadores son ahora m3;2 = -5=2 y m4;2 = -5=2 . Procediendo a pivotar, tenemos:

8x1 - 2x2 + 4x3 = 15


5 13
- 2 x2 - 6x3 + 7x4 = 4
34 43 11
- 5 x3 + 5 x4 = 10
9
- 6x3 +
6x4 = 2
©¯ 34 ¯ ª
Iteración k = 3: El pivote es ahora - 34 ¯ ¯ 34
5 , buscamos máx - 5 ; j-6j = 5 . Luego, no es necesario
intercambiar ecuaciones. Procedemos a pivotar directamente:

8x1 - 2x2 + 4x3 = 15


5 13
- 2 x2 - 6x3 + 7x4 = 4
34 43 11
- 5 x3 + 5 x4 = 10
27 60
- 17 x4 = 17

72 ; - 18 ; - 36 ; - 9 ). ¤
Este último sistema se resuelve fácilmente: (x̄1 ; x̄2 ; x̄3 ; x̄4 ) = ( 235 7 107 20

El código relativo a Gauss con pivoteamiento parcial es el siguiente, las líneas 4-11 corresponden al
pivoteamiento parcial:

function x=gausspp(A,b)
n=length(A);
for k=1:1:n-1
maxpiv=abs(A(k,k)); indmaxpiv=k;
for t=k+1:1:n
if maxpiv<abs(A(t,k))
maxpiv=abs(A(t,k)); indmaxpiv=t;
end
end
Aux=A(k,:); A(k,:)=A(indmaxpiv,:); A(indmaxpiv,:)=Aux;
bux=b(k); b(k)=b(indmaxpiv); b(indmaxpiv)=bux;
for i=k+1:1:n
m=A(i,k)/A(k,k); A(i,k)=0;
for j=k+1:1:n
A(i,j)=A(i,j)-m*A(k,j);
end
b(i)=b(i)-m*b(k);
end
end
x=zeros(n,1); x(n)=b(n)/A(n,n);
for k=n-1:-1:1
s=0;
for j=k+1:1:n
s=s+A(k,j)*x(j);
end
x(k)=(b(k)-s)/A(k,k);
end

8
4. Ejercicios
Ejercicio 4.1 Considere el sistema de ecuaciones lineales

6x1 + 9x2 - x3 + 4x4 = -100


x1 - 15x2 + 24x3 + 7x4 = 200
-8x1 + 9x2 + 12x3 - x4 = -29
1016 x1 + x2 - x3 + x4 = 874300

1. Resuelva usando el programa que ejecuta el método de Gauss.

2. Resuelva usando el programa que ejecuta el método de Gauss con pivoteamiento parcial.

3. Comente los resultados.

—o—

Vous aimerez peut-être aussi