Sunteți pe pagina 1din 6

Departamento de Matem atica Aplicada

ALCULO COMPUTACIONAL.
Licenciatura en Qumica (Curso 2005-06)
Sistemas de ecuaciones lineales Practica 2
En esta pr actica vamos a ver c omo se pueden resolver sistemas de ecuaciones lineales utilizando Matlab.
1. Sistemas de ecuaciones lineales
Un sistema de ecuaciones lineales,
_

_
a
11
x
1
+a
12
x
2
+. . . +a
1n
x
n
= b
1
a
21
x
1
+a
22
x
2
+. . . +a
2n
x
n
= b
2
.
.
.
a
m1
x
1
+a
m2
x
2
+. . . +a
mn
x
n
= b
m
con m ecuaciones y n inc ognitas se puede escribir en forma matricial,
Ax = b
donde,
A =
_
_
_
_
_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
a
m1
a
m2
. . . a
mn
_
_
_
_
_
; x =
_
_
_
_
_
x
1
x
2
.
.
.
x
n
_
_
_
_
_
y b =
_
_
_
_
_
b
1
b
2
.
.
.
b
m
_
_
_
_
_
Vamos a ver mediante algunos ejemplos y ejercicios c omo se pueden resolver los sistemas de ecuaciones lineales
utilizando algunos de los comandos de Matlab descritos anteriormente.
Ejemplo 1 Consideremos el sistema,
_

_
2x y +z = 3
x +y = 3
y 3z = 7
entonces, siguiendo la notaci on anterior,
A =
_
_
2 1 1
1 1 0
0 1 3
_
_
, x =
_
_
x
y
z
_
_
y b =
_
_
3
3
7
_
_
Como se trata de un sistema con soluci on unica, ya que el determinante de A es distinto de cero,
>>det(A)
ans =
-8
Una forma de resolver el sistema es escribir la matriz orlada (o ampliada)
>>Ab=[A b]
y hacer rref(Ab) con lo que obtenemos
_
_
1 0 0 1
0 1 0 2
0 0 1 3
_
_
7
es decir, la soluci on es x = 1, y = 2, z = 3.
Otra forma de resolver el sistema consiste en despejar x,
x = A
1
b,
sin m as que escribir
>>x=inv(A)*b
x =
1
2
3
Hay otra forma de hacerlo, utilizando lo que en Matlab se denomina como divisi on matricial a la izquierda:
>>x=A\b
x =
1
2
3
En este caso, el resultado es el mismo, pero es diferente la forma en la que trabaja el ordenador. En este segundo
caso el metodo que utiliza es el de la factorizaci on LU, que es una modicaci on de la eliminaci on gaussiana.
Vamos a ver c omo resuelve Matlab, internamente, el sistema cuando se utiliza la opci on: >>x=A\b. El proceso
se puede dividir en tres etapas:
1) Calcula una matriz triangular inferior L, una matriz triangular superior U y una matriz de permutaci on P
tales que PA = LU. P es simplemente la matriz identidad I con sus las cambiadas de orden.
2) Resuelve Ly = Pb.
3) Por ultimo, se resuelve Ux = y.
La primera etapa es lo que se conoce con el nombre de factorizaci on LU y es el paso m as importante.
Por lo tanto, en Matlab sera equivalente utilizar:
>>x=A\b
que utilizar el siguiente proceso:
>>[L,U,P]=lu(A); % Este es el comando que calcula las matrices L, U, P
>>B=P*b;
>>y=L\B;
>>x=U\y
Ejercicio 1 Resolver el siguiente sistema utilizando los tres procedimientos anteriormente descritos y comprobar
que sale la misma soluci on.
_
_
_
_
1 1 0 3
2 1 1 1
3 1 1 2
1 2 3 1
_
_
_
_
_
_
_
_
x
1
x
2
x
3
x
4
_
_
_
_
=
_
_
_
_
4
1
3
4
_
_
_
_
Ejercicio 2 Vamos a contar el n umero de operaciones elementales (sumas y productos) que se utilizan para resolver
el sistema utilizando los tres metodos. Para ello vamos a utilizar el comando flops. Este comando cuenta el n umero
de operaciones elementales que se han realizado en una sesi on determinada.
Para poner el contador a cero utilizamos el comando >>flops(0). Resolver el sistema de una de las formas y
contar las operaciones, escribiendo >>flops y repetir la operaci on resolviendolo de otra forma. En cu al de los tres
casos se utilizan menos operaciones?
8
Ejercicio 3 El metodo >>x=A\b funciona si hay m as ecuaciones que inc ognitas (siempre que tenga soluci on unica).
E incluso en el caso en el que hay menos ecuaciones que inc ognitas, con innitas soluciones, Matlab ofrece dos de
estas soluciones directamente:
Con >>x=A\b nos da una soluci on que tiene ceros para algunas de las inc ognitas.
Con otro comando, >>x=pinv(A)*b se obtiene una soluci on del sistema donde la norma eucldea de x es la m as
peque na de todas las posibles. Es siempre unica esta soluci on con longitud mnima?
Aplicando lo anterior encontrar las soluciones de los sistemas
a)
_

_
x +y = 1
x y = 1
2x +y = 2
b)
_
x +y +z = 3
x y +z = 2
Investigar que hace el comando >>pinv(A).
Ejercicio 4 Si resolvemos el siguiente sistema con Matlab
_

_
x +y = 1
2x + 2y = 2
3x + 3y = 3
Que obtenemos con los comandos A\b y pinv(A)*b? Dibujar en IR
2
el conjunto de soluciones del sistema y las
obtenidas con Matlab.
Ejercicio 5 Estudiar el sistema
_

_
x +y +z = 1
x y z = 2
3x + 3y + 3z = 1
x y +z = 1
Que obtenemos con los comandos A\b y pinv(A)*b? Es correcto?
Que responde Matlab al comando rref([A,b])?
Y a los comandos x=inv(A)*b, lu(A)?
Que conclusi on sacas de esto?
Ejercicio 6 Crear las matrices A=rand(7) y b=rand(7,1). Vamos a resolver el sistema Ax = b con MatLab de
varias formas, y vamos a contar los opsen cada una de ellas haciendo:
i)
>>flops(0),rref([A b]),frref=flops
ii)
>>flops(0),x=inv(A)*b,finv=flops
iii)
>>flops(0),x=A\b,f=flops
iv)
>>flops(0),x=pinv(A)*b,fpinv=flops
Comprobar que
f<finv<frref<fpinv
Nota: De aqu se concluye que, en general, para resolver sistemas, resulta m as conveniente utilizar la divi-
si on matricial a la izquierda, x=A\b. No resulta conveniente utilizar la pseudoinversa salvo que realmente estemos
buscando la soluci on de norma mnima.
9
2. Sistemas homogeneos y su aplicaci on al ajuste de reacciones qumi-
cas
Un sistema de ecuaciones lineales
_

_
a
11
x
1
+a
12
x
2
+. . . +a
1n
x
n
= b
1
a
21
x
1
+a
22
x
2
+. . . +a
2n
x
n
= b
2
.
.
.
a
m1
x
1
+a
m2
x
2
+. . . +a
mn
x
n
= b
m
con m ecuaciones y n inc ognitas se llama homogeneo, si todas las constantes b
1
, b
2
,...,b
m
son cero. Es decir, el
sistema general homogeneo est a dado por
_

_
a
11
x
1
+a
12
x
2
+. . . +a
1n
x
n
= 0
a
21
x
1
+a
22
x
2
+. . . +a
2n
x
n
= 0
.
.
.
a
m1
x
1
+a
m2
x
2
+. . . +a
mn
x
n
= 0
En un sistema homogeneo, siempre existe la soluci on trivial (o soluci on cero):
x
1
= x
2
= ... = x
n
= 0
Por tanto, en un sistema homogeneo caben dos posibilidades:
- o bien solo existe la soluci on trivial;
- o bien existe un n umero innito de soluciones, adem as de la trivial, llamadas soluciones no triviales.
Ejemplo 2 Un sistema homogeneo que tiene s olo la soluci on trivial:
_

_
3x
1
+ 4x
2
+ 6x
3
= 0
4x
1
+ 5x
2
+ 6x
3
= 0
3x
1
+x
2
2x
3
= 0
Si escribimos la matriz ampliada
_
_
2 4 6 0
4 5 6 0
3 1 2 0
_
_
,
y aplicamos el comando rref, obtendremos
_
_
1 0 0 0
0 1 0 0
0 0 1 0
_
_
,
lo que quiere decir que la unica soluci on es la trivial,
x
1
= x
2
= x
3
= 0.
Ejemplo 3 Un sistema homogeneo con un n umero innito de soluciones:
_

_
x
1
+ 2x
2
x
3
= 0
3x
1
3x
2
+ 2x
3
= 0
x
1
11x
2
+ 6x
3
= 0
Haciendo lo mismo que en el ejemplo anterior (y poniendo el resultado en formato racional, format rational,)
obtenemos
10
_
_
_
_
_
_
_
_
1 0
1
9
0
0 1
5
9
0
0 0 0 0
_
_
_
_
_
_
_
_
,
lo que quiere decir que, son soluciones todas las ternas de n umeros reales de la forma
_
1
9
x
3
,
5
9
x
3
, x
3
_
,
para cualquier valor de x
3
. En particular, para x
3
= 0, obtenemos la soluci on trivial; para x
3
= 1, obtenemos la
soluci on
_
1
9
,
5
9
, 1
_
,
para x
3
= 9, la soluci on
(, 5, 9).
Ejemplo 4 Un sistema homogeneo con m as inc ognitas que ecuaciones tiene un n umero innito de soluciones:
Resolvemos el sistema:
_
x
1
+x
2
x
3
= 0
4x
1
2x
2
+ 7x
3
= 0
como en los ejemplos anteriores, escribiendo la matriz ampliada y haciendo rref, para obtener
_
_
_
_
1 0
5
6
0
0 1
11
6
0
_
_
_
_
,
lo cual quiere decir que son soluciones todas las ternas de n umeros reales de la forma
_
5
6
x
3
,
11
6
x
3
, x
3
_
, x
3
IR
Observaci on: Si en estos tres ejemplos hubieramos escrito la matriz sin ampliar y hubieramos hecho rref,
habramos visto las soluciones m as r apidamente:
En el primer ejemplo, puesto que el determinante de la matriz del sistema no era nulo, el resultado era la matriz
identidad (soluci on unica.) En el segundo caso, aparece una la de ceros. Y en el tercer caso, que sucede?: lo que
sucede siempre que hay un sistema homogeneo con m as inc ognitas que ecuaciones, que tiene un n umero innito de
soluciones.
Ejercicio 7 Resolver el sistema homogeneo
_

_
x
1
2x
2
+x
3
+x
4
= 0
3x
1
+ 2x
3
2x
4
= 0
4x
2
x
3
x
4
= 0
5x
1
+ 3x
3
x
4
= 0
Ejercicio 8 Resolver el sistema
_

_
25x
1
16x
2
+ 13x
3
+ 33x
4
57x
5
= 0
16x
1
+ 3x
2
+x
3
12x
5
= 0
8x
2
+ 16x
4
26x
5
= 0
11
Este estudio de los sistemas homogeneos se puede aplicar al ajuste de reacciones qumicas:
Ejemplo 5 Para ajustar la reacci on
Fe
2
O
3
(s) +C(s) Fe(l) +CO(g)
que se produce cuando calentamos mineral de oxido de hierro con un exceso de carbono para obtener hierro puro,
procedemos de la siguiente manera:
Fe : 2x
1
= x
3
O : 3x
1
= x
4
C : x
2
= x
4
Es decir, se trata de resolver el siguiente sistema homogeneo de 3 ecuaciones con 4 inc ognitas (que, como
acabamos de ver, siempre tiene soluci on no trivial):
_

_
2x
1
x
3
= 0
3x
1
x
4
= 0
x
2
x
4
= 0
(1)
O lo que es lo mismo, si consideramos x
4
como un par ametro (x
4
= ) tratamos de resolver el siguiente sistema
de 3 ecuaciones con 3 inc ognitas
_

_
2x
1
x
3
= 0
3x
1
=
x
2
=
obteniendo la soluci on
x
4
= , x
2
= , x
1
=

3
, x
3
= 2

3
De modo, que podemos decir que el sistema tiene las innitas soluciones:
x
1
=

3
, x
2
= , x
3
= 2

3
, x
4
=
para cualquier valor de IR.
En nuestro caso, solo nos interesa la soluci on de n umeros enteros positivos x
1
, x
2
, x
3
, x
4
que no tengan divisor
com un diferente de 1, es decir, para = 3:
x
1
= 1, x
2
= 3, x
3
= 2, x
4
= 3,
de modo que la reacci on ajustada es
Fe
2
O
3
+ 3C 2Fe + 3CO
Ejercicio 9 Ajustar las siguientes reacciones qumicas:
1. CO
2
+H
2
O C
6
H
12
O
6
+O
2
2. AgNO
3
+K
2
CrO
4
Ag
2
CrO
4
+KNO
3
3. Mg +HCl MgCl
2
+H
2
Ejercicio 10 Ajustar la siguiente reacci on qumica en la que el permanganato de cromo oxidara violentamente a
la azida de plomo:
Pb(N
3
)
2
+Cr(MnO
4
)
2
Cr
2
O
3
+MnO
2
+Pb
3
O
4
+NO
Ejercicio 11 Ajustar la siguiente serie de reacciones qumicas que se utilizan para producir clorato de sodio:
1. KMnO
4
+HCl KCl +MnCl
2
+H
2
O +Cl
2
2. Cl
2
+Ca(OH)
2
Ca(ClO
3
)
2
+CaCl
2
+H
2
O
3. Ca(ClO
3
)
2
+Na
2
SO
4
CaSO
4
+NaClO
3
12

S-ar putea să vă placă și