PR ´
ACTICA 1
MATRICES Y DETERMINANTES
1
Matlab
MATLAB es un sistema interactivo basado en matrices para c´alculos cient´ıficos y de ingenier´ıa. El nombre de MATLAB proviene de las iniciales de MATrix LABoratory.
La estructura de las instrucciones en MATLAB es muy parecida a la sintaxis de las expresiones algebraicas y las operaciones del ´Algebra lineal. El nombre de muchas instrucciones del MATLAB presentan una estrecha relaci´on con las operaciones y conceptos del ´Algebra lineal.
En MATLAB tecleando la instrucci´onhelp podemos visualizar un buen n´umero de directorios que contienen los nombres de las instrucciones. Escribiendo help nom, donde nom es el nombre de una instrucci´on, nos da informaci´on de la instrucci´on espec´ıfica cuyo nombre(nom) hemos escrito.
Una vez hayamos entrado en MATLAB veremos aparecer su logotipo EDU>>, esto nos indica que MATLAB est´a esperando una instrucci´on.
Mencionaremos algunas caracter´ısticas del MATLAB sobre las cuales tenemos que estar informados antes de comenzar a utilizarlo:
• Todas las instrucciones del MATLAB se escriben en letras min´usculas. • Despu´es de escribir el nombre de una instrucci´on hemos de pulsar ENTER.
• MATLAB guarda un n´umero determinado de instrucciones, las m´as recientes, en un dispositivo de ’almacena-miento’, dichas instrucciones se pueden recuperar utilizando la tecla↑.
En MATLAB existe una orden cuyo prop´osito es guardar la sesi´on en un archivo de disco. Dicha orden esdiary, diary filename escribe una copia de todas las entradas por teclado posteriores y de la mayor´ıa de los resultados de salida(pero no los gr´aficos) en el fichero nombrado. Si el archivo ya existe, la salida se a˜nade al final del archivo. diary offsuspende el diario.
diary onreanuda el modo diario, utilizando el nombre del archivo actual o el nombre del archivo por defectodiary, si ninguno ha sido especificado todav´ıa.
2
Matrices y Matlab
2.1
Introducci´
on de datos en MATLAB
Para introducir una matriz en el MATLAB se hace de la forma siguiente: • Los elementos de la matriz se escriben separados por espacios. • Las filas se separan por un punto y coma.
• La matriz est´a metida entre corchetes.
Ejemplo: Introducir la matriz [1 1 0; 2 0 1; 1 -1 2] presionar enter y ver de qu´e forma la presenta en pantalla MATLAB.
Cada matriz en MATLAB tiene que tener un nombre. Para asignar un nombre a una matriz utilizamos el operador de asignaci´on =, de la forma: A=[1 1 0; 2 0 1; 1 -1 2]
Observaci´on
* MATLAB distingue entre may´usculas y min´usculas, por lo tanto la matriz B no es la misma que la b.
* El nombre de una matriz puede volverse a utilizar pero tenemos que tener en cuenta que si lo hacemos se pierde el ´ultimo contenido de dicha matriz.
Si queremos cambiar un elemento, por ejemplo el (i, j), se escribe A(i,j)= nuevo valor.
A(1,3) =−5 asigna el valor−5 al elemento que ocupa la posici´on (1,3) de la matriz A.
Para ver todos los elementos de una matriz basta con teclear solamente el nombre de ella. Si la matriz es muy grande en pantalla aparecer´a dividida en subconjuntos de columnas que aparecer´an sucesivamente.
Existen varias instrucciones para ver una parte de una matriz como son:
– Si queremos ver el elemento (i, j) de una matriz A tecleamosA(i,j). Ver que ocurre tecleando A(1,2)
– Para ver la fila i-´esima de una matriz A tecleamos A(i,:).
– Para ver la columna j-´esima de una matriz A tecleamosA(:,j). El operador (:) se puede utilizar para presentar los siguientes datos:
– Si queremos ver una lista de elementos por ejemplo 1:3 nos da una serie de n´umeros del 1 al 3 y de salto la unidad. Si queremos que el salto sea otro, por ejemplo 2, escribiremos 1:2:3
– A(i:k,:) nos presenta en pantalla desde la fila i a la fila k de la matriz A.
– Si queremos ver desde la columna i a la columna k pondremosA(:,i:k).
2.2
Generaci´
on de matrices
MATLAB posee instrucciones para generar tipos especiales de matrices como son : la matriz identidad, matriz nula y matrices cuyos elementos son todos unos. Adem´as posee una funci´on que genera aleatoriamente una matriz. Estas funciones son las siguientes:
– eye(i) presenta en pantalla una matriz identidad de dimensi´oni×i.
– t=k;eye(t) presenta una matriz identidad de dimensi´onk×k.
– eye(A) presenta una matriz identidad de la misma dimensi´on que la matriz A.
– zeros(m,n) produce una matriz nula de dimensi´onm×n.
– ones(m,n) produce una matriz de unos de dimensi´onm×n.
La instrucci´on rand produce n´umeros aleatorios en el intervalo (0,1). La instrucci´on
rand(m,n)
genera aleatoriamente una matriz de dimensi´onm×nas´ı como rand(n) genera una matriz aleatoria de dimensi´on
n×n. Los elementos de todas estas matrices, como hemos dicho anteriormente, no son enteros. Para obtener una matriz aleatoria de n´umeros enteros se utiliza la instrucci´on
fix(rand( ))
Como podemos observar( ver help fix ) la matriz obtenida a partir de la instrucci´on fix es una matriz que contiene muchos ceros. Una forma de obtener menos ceros es multiplicar cada elemento por 10 antes de aplicar la instrucci´on fix. La instrucci´on
fix(10*rand( ))
nos devuelve una matriz aleatoria de n´umeros enteros con menos ceros que la anterior. Si queremos obtener una matriz compleja de dimensi´onnutilizaremos las instrucciones
2.3
Matrices simb´
olicas
Las matrices simb´olicas son matrices cuyos elementos son expresiones simb´olicas. Se pueden generar con la funci´onsym, por ejemplo:
A=sym(’[a,b,c;b,c,a;c,a,b]’) S=sym(3,3,’(i+j)/(i-j+s)’)
Si queremos introducir una matriz en forma simb´olica se hace de la forma siguiente: EDU>>A=sym(’[1,2,3;4,5,6;7,8,9]’)
EDU>>B=sym(3,3,’1/(i+j)’)
El elemento (i, j) de la matriz A se obtiene madiante la ordensym(A,i,j). La ordensym(A,i,j,a)reemplaza el elemento (i, j) de la matriz A por el n´umero a.
Para m´as informaci´on utilizar la ayuda de MATLAB.
2.4
Algebra matricial
´
Las operaciones que podemos realizar con matrices en el MATLAB son la suma, resta, multiplicaci´on , producto por un escalar, c´alculo de potencias y la trasposici´on. La notaci´on utilizada para estas operaciones ser´a:
– Suma de matrices A+B
– Resta de matricesA−B
– Producto de matricesA∗B
– Producto de un escalar por una matriza∗A
– PotenciasA∧k
– Trasposici´onA0
Las operaciones con matrices en forma simb´olica tiene una sintaxis especial, ´esta es la siguiente: a. symadd representa la suma.
b. symsub representa la diferencia. c. symmul representa el producto. d. sympow representa la potenciaci´on.
2.5
Formatos de visualizaci´
on de n´
umeros
Cuando MATLAB visualiza resultados num´ericos sigue algunas reglas. Por defecto, si un resultado es entero lo visualiza como entero. Cuando un resultado es real lo visualiza con aproximadamente cuatro d´ıgitos a la derecha del punto decimal. Si los d´ıgitos significativos en el resultado est´an fuera de este rango, MATLAB visualiza el resultado en notaci´on cient´ıfica similar a las calculadoras. Si queremos que los resultados aparezcan de una forma diferente a la dada por defecto se deber´a especificar el formato num´erico diferente usando la opci´on Numerical Format en el men´u Options o escribiendo la orden apropiada en MATLAB. Algunos de estos formatos num´ericos son:
– format long: 16 d´ıgitos
– short e : 5 d´ıgitos m´as exponente
– long e : 16 d´ıgitos m´as exponente
– format bank: 2 d´ıgitos decimales
– format rat : aproximaci´on racional
Observaci´on: MATLAB no cambia la representaci´on interna de un n´umero cuando se escogen diferentes for-matos, s´olo se modifica la visualizaci´on del mismo.
MATLAB opera siempre por defecto en forma aproximada, por ejemplo EDU>> b=1/6 b= 0.1666
Para introducir un n´umero en forma simb´olica se coloca entre ap´ostrofes: EDU>>a=’1/3’
a= 1/3
Las operaciones con n´umeros exactos posee la misma sintaxis especial que la que se aplica a matrices: a. symadd representa la suma.
b. symsub representa la diferencia. c. symmul representa la multiplicaci´on. d. symdiv representa la divisi´on.
e. sympow representa la potenciaci´on.
Ejercicio: Tomando dos n´umeros cualesquiera x,y hacer las operaciones citadas anteriormente.
La conversi´on de n´umeros exactos a aproximados se realiza con la funci´onnumericy de n´umeros aproximados a exactos con la funci´onsymrat.
Ejercicio: Con los resultados del ejercicio anterior aplicar las funciones numeric y symrat.
3
Formas escalonadas de una matriz
El objetivo principal del ´Algebra lineal es resolver sistemas de ecuaciones lineales. Cuando se resuelve un sistema se despejan las inc´ognitas unas en funciones de las otras; este procedimiento se sistematiza con las matrices. Con ello resolvemos dos tipos de problemas:
1. Detectar cu´ando un sistema posee soluci´on o soluciones y cu´antas.
2. Si el sistema de ecuaciones es lo suficientemente grande, necesitamos mecanismos computacionales que sustituyan el c´alculo a mano, cuando ´este empieza a ser casi imposible.
En esta secci´on vamos a intentar escalonar matrices utilizando transformaciones elementales por filas, columnas o ambas a la vez.
MATLAB posee una funci´on que escalona una matriz, dicha funci´on es rref y cuya sintaxis es rref(A). Ver c´omo act´ua la funci´on rrefmovie.
4
Determinantes e Inversas
En MATLAB el determinante de una matriz cuadrada se puede calcular mediante la instrucci´on det(A). Nosotros calcularemos el determinante de una matriz utilizando transformaciones elementales y comprobando el resultado con la instrucci´on mencionada anteriormente.
Para determinar si una matriz de dimensi´onn×nposee inversa aplicaremos el algoritmo de Gauss-Jordan a la matriz [A In], transformando la matriz A en la identidad. De esta forma la matrizIn se tendr´a que haber
transformado en A−1; en otro caso A es singular y ser´a no invertible. MATLAB posee varias rutinas para
calcular la inversa de una matriz. Una de ´estas es la instrucci´oninverse. Tecleando help inverse podemos obtener informaci´on acerca de ella.
EJERCICIOS EJERCICIO 1
Construir tres matrices realesA,ByCde dimensiones 3×2, 3×3 y 3×1, aleatoriamente y a continuaci´on teclear las instrucciones de MATLAB indicadas en cada apartado comentando en cada caso el resultado obtenido. E=[B C], F=[A B], G=[E;eye(4)], H=[eye(3);B], J=[B,eye(3)]
EJERCICIO 2
Construir la primera columna de la matriz A del apartado anterior, la tercera columna de la matriz B del mismo apartado y construir una matriz Kde dimensi´on 3×3 cuyas dos primeras columnas son las anteriores y la tercera columna eye(1,3)’.
EJERCICIO 3
Construir dos matrices fila F1 y F2, F1 con los elementos 2,-1,5,1 y F2 con 1,-2,3,0. A continuaci´on describir los resultados de las instrucciones siguientes:
a. 3*F1 b. F1 +F2
c. [F1;F1-F2;F2]
EJERCICIO 4
Realizar la suma, el producto y las potencias de orden 2 y 3 de dos matrices aleatorias.
EJERCICIO 5
5.1 Introducir una matriz real (aleatoria) de orden 5 y reducir a su forma escalonada utilizando las instrucciones de MATLABrrefyrrefmovie.
5.2 Calcular rref(A’) ¿Existe alguna relaci´on entre rref(A) y rref(A’)?. 5.3 Obtener la factorizaci´onP A=LU utlizando la instrucci´onlu(A)
EJERCICIO 6
6.1 Hallar las inversas de las siguientes matrices utilizando el m´etodo de Gauss-Jordan con ayuda de la rref de MATLAB. A= 4 −6 −9 −2 −1 1 −1 1 2 B= 1 −5 −11 −1 −2 −18 1 −1 6 C= 0 −1 −5 1 −1 −1 5 −5 1 1 −4 4 −1 −3 −5 −1
6.2 An´alogamente utilizar la funci´oninvpara comprobar dichos resultados.
EJERCICIO 7
Una matriz N de dimensi´on n×n se llama nilpotente si ∃r ≥ 1 :Nr = 0. Adem´as se cumple que si N es
nil-potente, entoncesIn−N es invertible y se cumple que (In−N)−1=In+N+N2+· · ·+Nr−1.
Aplicar el resultado anterior para calcular la inversa de la matriz siguiente:
A= 1 2 3 4 5 0 1 2 3 4 0 0 1 2 3 0 0 0 1 2 0 0 0 0 1