You are on page 1of 6

Practica 1

Matrices y sistemas de ecuaciones


lineales
1.1 Introduccion
Maxima es software libre. Se descarga de http://sourceforge.net/projects/maxima/les/
Se trata de un programa de calculo cientco que permite, no solo una gran variedad de ma-
nipulaciones matematicas sino que se emplea como entorno de trabajo en diferentes campos
de la ingeniera. En general, con Maxima se puede:
llevar a cabo operaciones aritmeticas (como una calculadora, pero con posibilidad de
mayor precision),
desarrollar calculo simbolico y en aritmetica exacta,
programar en un lenguaje interpretado,
realizar gran variedad de gracos en 2D y 3D,
Puede descargarse un tutorial de la aplicacion desde
http://pcmap.unizar.es/~mpala/matII_practicas.htm
Existen dos formas de actuar con Maxima :
1. modo interactivo: donde a traves de instrucciones directas al programa se obtienen de
forma inmediata los resultados.
2. modo programado: mediante uno o varios cheros escritos en el lenguaje de progra-
macion de Maxima se opera con un mayor n umero de instrucciones de Maxima que
permite realizar operaciones y calculos complejos.
La interaccion con Maxima se realiza fundamentalmente a traves de la ventana de comandos
(en Mac hay que abrir wxMaxima.app). En ella escribiremos las ordenes (comandos) y
recibiremos la respuesta. Por ello, es muy importante observar en la pantalla el resultado
de cada operacion. As mismo, hay que tener en cuenta que:
1
2 Matematicas II Industriales Sistemas de ecuaciones lineales
Maxima distingue may usculas y min usculas.
El usuario escribe detras del smbolo > .
Para ejecutar hay que pulsar la tecla enter despues de escribir la orden.
1.1.1 Algunas funciones
Ademas de las operaciones anteriores, Maxima dispone de funciones que realizan tareas mas
complejas sobre matrices. Por ahora las que necesitaremos son las siguientes:
matrix(A), dene la matriz A
rank(A), calcula el rango de la matriz A
determinant(A), calcula el determinante de la matriz A.
invert(A), calcula la inversa de la matriz A.
ident(n), devuelve la matriz identidad de orden n.
Seleccionando un comando y apretando la tecla F1 se muestra una descripcion de la
funcion de Maxima comando.
Ejercicios
1. Empleando las funciones anteriores, calcula el rango, el determinante y la inversa de
alguna de las matrices de las hojas de problemas.
Matematicas II Sistemas de ecuaciones lineales 3
1.2 Eliminacion gaussiana
Aprende a usar los comandos siguientes:
submatrix, append, transpose, ident, echelon, triangularize, is
uip[i]:uip[i]-uip[i,j]/uip[j,j]*uip[j]
Ejercicio 1.2.1 (Ejerc. 7.1 de 1matrices.pdf ) Transforma la matriz siguiente en una tri-
angular superior reducida mediante eliminacion gaussiana
A =
_
_
0 5 4 2 4
0 3 4 4 3
5 3 5 1 1
_
_
Ayuda:
a:matrix([0,-5,4,2,4],[0,3,-4,4,-3],[5,3,-5,1,-1]);
uip:transpose(append(transpose(a),ident(3)));
echelon(uip);
triangularize(uip);
aux:uip[1]$ uip[1]:uip[3]$ uip[3]:aux$
uip;
i:3$ j:2$ uip[i]:uip[i]-uip[i,j]/uip[j,j]*uip[j]$
uip;
. . .
Ejercicio 1.2.2 (Ejerc. 7.2 de 1matrices.pdf ) Transforma la matriz siguiente en una tri-
angular superior reducida mediante eliminacion gaussiana
A =
_
_
2 0 0
3 0 1
2 4 2
_
_
y encuentra la matriz inversa de A.
Ayuda:
a:matrix([-2,0,0],[3,0,-1],[-2,-4,-2]);
uip . . .
am1:submatrix(uip,1,2,3);
is(a.am1=ident(3));
1.3 Factorizacion LU
Toda matriz A se puede transformar, empleando tan solo operaciones elementales, en una
matriz triangular superior U. Si las operaciones elementales se describen mediante matrices
elementales P
1
, P
2
,. . . ,P
m
tendremos
P
m
P
2
P
1
A = U.
Si por un lado reunimos las operaciones de permutacion en una matriz P y por otro lado
reunimos las demas operaciones en otra matriz Q tendremos que
QP A = U P A = Q
1
U
4 Matematicas II Industriales Sistemas de ecuaciones lineales
Se prueba que la matriz L = Q
1
es triangular inferior con unos en la diagonal principal con
lo que resulta
P A = LU.
Es decir, salvo posibles permutaciones (recogidas todas en la matriz P), una matriz cualquiera
puede expresarse como el producto de una matriz triangular inferior L con unos en la diag-
onal principal por una matriz triangular superior U. Es la llamada descomposicion LU.
Conocida la descomposicion LU de una matriz y suponiendo que no ha habido permuta-
ciones, resolver el sistema Ax = b es equivalente a resolver dos sistemas mas simples (trian-
gulares):
Ax = b (LU)x = b L(Ux)
. .
=c
= b Lc = b, Ux = c.
Para llevar a cabo la descomposicion LU con Maxima se puede proceder, entre otras formas,
del modo siguiente. Le pegamos a la matriz A la matriz identidad de orden igual al n umero
de las. A continuacion, realizamos las operaciones normalmente y quedaran registradas en
el bloque de la derecha de la matriz, de modo que al nal del proceso de eliminacion, si no
ha habido permutaciones, tendremos: [U L
1
].
Nota: tambien existe una orden de Maxima que permite calcular la descomposicion LU de
una matriz, es la orden lu factor.
Aprende a usar los comandos siguientes:
lu factor, get lu factors, linsolve
Ejercicio 1.3.1 (Ejerc. 8.2 de 1matrices.pdf ) Obten la factorizacion LU de la matriz (Am-
pliada) siguiente de dos formas, mediante eliminacion gaussiana y utilizando los comandos
de Maxima, y resuelve el sistema asociado
A =
_
_
5 2 1 12
5 6 2 1
4 2 1 3
_
_
Ayuda:
a:matrix([5,2,1],[5,-6,2],[-4,2,1])$
b:transpose(matrix([12,-1,3]))$
ab:transpose(append(transpose(a),transpose(b)));
x:lu factor(a)$
glu:get lu factors(x);
z:echelon(transpose(append(transpose(glu[2]),transpose(b))));
z:submatrix(z,1,2,3);
x:echelon(transpose(append(transpose(glu[3]),transpose(z))));
. . .
Ejercicio 1.3.2 Dada la matriz
A =
_
_
2 1 1
4 1 0
2 2 1
_
_
llevela a la forma triangular superior mediante operaciones elementales y calcula su descom-
posicion LU.
Matematicas II Sistemas de ecuaciones lineales 5
Ejercicio 1.3.3 Resolver empleando la factorizacion LU el sistema
_
_
1 2 3
3 2 4
2 1 1
_
_
_
_
x
y
z
_
_
=
_
_
1
1
0
_
_
1.4 Metodos iterativos
Datos: ab = matriz ampliada del sistema.
Resultados: num. de iterac., error relativo, solucion aproximada.
d:diag matrix(ab[1,1],ab[2,2],ab[3,3],ab[4,4])$
U:-a+d$ U[2,1]:0$ U[3,1]:0$ U[3,2]:0$ U[4,1]:0$ U[4,2]:0$ U[4,3]:0$ U$
L:-a+d-U$
Jacobi: M:d$ N:M-a$
Gauss-Seidel: M:d-L$ N:M-a$
Relajaci on (SOR): w:0.9; M:d/w-L$ N:M-a$
Para todos:
J:invert(M).N$ C:invert(M).b$
Aprende a usar los comandos siguientes:
diag matrix, invert, load(descriptive), abs, float, maxi
for k:2 while maxi(err) $$ tol do (s:k, x1:J.x+C, ..., x:x1)
Ejercicio 1.4.1 (Ejercicio 9.4 de 1matrices.pdf ) Construye y aplica los metodos iterativos
de Jacobi, Gauss-Seidel y relajacion (SOR) para la matriz (ampliada) siguiente
A =
_

_
10 1 2 0 6
1 11 1 3 25
2 1 10 1 11
0 3 1 8 15
_

_
Ayuda:
ab:matrix([10,-1,2,0,6],[-1,11,-1,3,25],[2,-1,10,-1,-11],[0,3,-1,8,15]);
a:submatrix(ab,5)$ b:submatrix(ab,1,2,3,4)$
Para todos:
load(descriptive)$
x:[0,0,0,0]$ k:0$
k:k+1$ x1:J.x+C$
err:abs(oat(transpose(x1-x)))$ err:makelist(err[1,k],k,1,3)$ x:oat(x1)$
[k,maxi(err),transpose(x)];
Ejercicio 1.4.2 (Ejercicio 6 de Cal Num (pract)) Construye y aplica los metodos iterativos
de Jacobi, Gauss-Seidel para la matriz (ampliada) siguiente
A =
_
_
1 0 1 2
1 1 0 0
1 2 3 0
_
_
6 Matematicas II Industriales Sistemas de ecuaciones lineales
Ayuda:
ab:matrix([1,0,1,2],[-1,1,0,0],[1,2,-3,0]);
a:submatrix(ab,4)$
b:submatrix(ab,1,2,3)$
Ejercicio 1.4.3 (Ejercicio 7 de Cal Num (pract)) Construye y aplica el metodo iterativo
de Jacobi para la matriz (ampliada) siguiente y despues para la que resulta al permutar la
segunda y tercera las
A =
_
_
3 1 1 4
1 1 3 4
2 5 1 1
_
_
Ayuda:
ab:matrix([3,1,1,4],[-1,1,3,4],[2,5,1,-1]);
a:submatrix(ab,4)$
b:submatrix(ab,1,2,3)$

You might also like