Comenzando con MATLAB - Departamento de Matemática Aplicada I

Anuncio
ÁLGEBRA LINEAL
INGENIERÍA INFORMÁTICA
Curso 08/09
PRÁCTICA 1
Comenzando con MATLAB
1
Funcionamiento de Matlab
MATLAB es un sistema interactivo basado en matrices para cálculos cientı́ficos y de ingenierı́a. El
nombre de MATLAB proviene de las iniciales de MATrix LABoratory, ya que el tipo de dato básico
con el que trabaja es una matriz. Matlab se puede utilizar en computación matemática, análisis y
procesamiento de datos, gráficos, simulaciones, desarrollo de algoritmos, etc.
Una vez que hemos iniciado el programa aparece la ventana de comando, aunque podemos
abrir otras como: ventana de directorio actual y ventana de histórico de comandos. La ventana de
comando es la principal y es conveniente mantenerla abierta siempre como única ventana visible.
Help Window (Ventana de ayuda)
La ventana de ayuda proporciona toda la documentación para ayudar al usuario en el manejo
de la aplicación. Esta ventana se abre directamente desde el menú help que está situado en la barra
de herramientas que se encuentra en la ventana principal de MATLAB.
Existe otra forma de pedir ayuda y es utilizando el comando help;con él podemos visualizar
un buen número de directorios que contienen los nombres de los comandos. Escribiendo help
nom, donde nom es el nombre de un comando, nos da información del comando especı́fico cuyo
nombre(nom) hemos escrito.
Ventana de comando
Como hemos mencionado anteriormente la ventana de comando es la ventana principal de MATLAB y se utiliza para ejecutar los comandos, abrir otras ventanas, ejecutar programas realizados
por el usuario y gestionar el software de MATLAB. Una vez hayamos entrado en MATLAB veremos
aparecer su sı́mbolo >>, también llamado prompt, esto nos indica que MATLAB está esperando
un comando.
Observaciones
• Para teclear un comando el cursor debe estar situado a continuación del prompt.
• Una vez tecleado el comando se pulsa la tecla Intro, entonces el comando es ejecutado. Hay
que hacer notar que solo se ejecuta el último comando introducido, ya que se ejecuta comando
a comando. Veremos más tarde que este problema puede solucionarse.
• Puede teclearse más de un comando en una lı́nea, basta separarlos por comas. Cuando se
pulsa Intro todos los comandos se ejecutan, de izquierda a derecha.
• No es posible ir con el cursor a una lı́nea anterior para hacer una corrección y volver a ejecutar
un comando.
• Un comando tecleado anteriormente puede volver a ser llamado utilizando las flechas arriba ↑
(comando anterior)y abajo ↓ (comando posterior) de los cursores para encontrar el comando
deseado. Una vez encontrado, puede editarse y ejecutarse.
Punto y coma (;)
Si tecleamos punto y coma (;) al final de un comando hace que la salida no sea visualizada. Si
tecleamos varios comandos en la misma lı́nea basta separarlos por (;) en vez de por (,).
El sı́mbolo tanto por ciento
Cuando se teclea el sı́mbolo tanto por ciento al principio de una lı́nea, MATLAB entiende que
todo lo que aparece detrás es un comentario. Dicho comentario puede ir detrás de un comando en
la misma lı́nea, éste no tiene ningún efecto sobre la ejecución del comando.
El comando clc
El comando clc borra la ventana de comandos. Este comando no varı́a nada de lo que se ha hecho
anteriormente, por ejemplo, si anteriormente se han definido variables con sus valores asignados,
éstas podrán seguir siendo utilizadas. Los comandos tecleados anteriormente pueden seguir siendo
recuperados con los cursores, como hemos indicado anteriormente.
Formatos de visualización de números Cuando MATLAB visualiza resultados numéricos
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án fuera de este rango, MATLAB visualiza el resultado
en notación cientı́fica similar a las calculadoras. Si queremos que los resultados aparezcan de una
forma diferente a la dada por defecto se deberá especificar el formato numérico diferente usando la
opción Numeric Format en el menú de Preferencias de la aplicación o escribiendo la orden apropiada
en MATLAB. Algunos de estos formatos numéricos son:
• format long:
16 dı́gitos
• short e :
5 dı́gitos más exponente
• long e :
16 dı́gitos más exponente
• format bank:
2 dı́gitos decimales
• format rat :
aproximación racional
• format short:
visualización por defecto
Observación: MATLAB no cambia la representación interna de un número cuando se escogen
diferentes formatos, sólo se modifica la visualización del mismo.
MATLAB opera siempre por defecto en forma aproximada, por ejemplo >> b=1/6
b= 0.1666
2
Matrices y Matlab
2.1
Manejo de matrices en MATLAB
Para introducir una matriz con 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á metida entre corchetes.
Ejemplo: Introducir la matriz [1 -1 1 0; 2 0 0 1;3 1 -1 2] presionar enter y ver de qué forma la
presenta en pantalla MATLAB.
Para asignar un nombre a una matriz utilizamos el operador de asignación =, de la forma: A=[1
-1 1 0; 2 0 0 1;3 1 -1 2]
Observaciones
• Todas las filas de la matriz han de tener el mismo número de elementos.
• MATLAB distingue entre mayúsculas y minúsculas, 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 último 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ón (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á dividida en subconjuntos de columnas que
aparecerán sucesivamente.
Si queremos ver el elemento (i, j) de una matriz A tecleamos A(i,j).
El operador (:) en matrices
El operador (:) se puede utilizar para presentar los siguientes datos:
1. A(i,:) nos nuestra los elementos de la fila i-ésima de la matriz A .
2. A(:,j) nos nuestra los elementos de la columna j-ésima de la matriz A.
3. A(:,m:n) nos nuestra los elementos entre las columnas m y n de la matriz A.
4. A(m:n,:) nos presenta los elementos entre las filas m y n de la matriz A.
5. La especificación A(m : n, :) puede generalizarse a A(m : q : n)indicando los términos (filas o
columnas) desde la posición m hasta la n saltando de q en q
EJERCICIO 1.
Definir una matriz A de dimensión 4 × 5 y extraer los bloques formados por:
1. la fila cuarta
2. la columna tercera
3. desde la fila 2 a la 4
4. desde la columna 1 a la columna 3
5. las columnas 1,3 y 5
6. las filas 2 y 4
2.2
2.2.1
Generación de matrices
Los comandos zeros, ones, eye
MATLAB posee instrucciones para generar tipos especiales de matrices como son : la matriz identidad, matriz nula y matrices cuyos elementos son todos unos. Estos comandos son los siguientes:
1. eye(i) presenta en pantalla una matriz identidad de dimensión i × i.
2. t = k ; eye(t) presenta una matriz identidad de dimensión k × k.
3. eye(A) presenta una matriz identidad de la misma dimensión que la matriz A.
4. eye(m,n) presenta una matriz con 1 en la diagonal y 0 en el resto.
5. zeros(m,n) produce una matriz nula de dimensión m × n.
6. ones(m,n) produce una matriz de unos de dimensión m × n.
2.2.2
El comando rand
El comando rand produce números pseudoaleatorios en el intervalo (0, 1). La instrucción rand(m,n)
genera aleatoriamente una matriz de dimensión m × n ası́ como rand(n) genera una matriz aleatoria
de dimensión n × n. Los elementos de todas estas matrices, como hemos dicho anteriormente,
pertenecen al intervalo (0, 1). Podemos extender el intervalo de los números, por ejemplo entre 0 y
10, con la instrucción (10*rand(m,n ))
Con fix(10*rand(m,n )) obtenemos una matriz de números enteros entre 0 y 9.
2.3
Construcción de matrices por bloques
Podemos generar matrices combinando otras matrices de dimensiones más pequeñas, como si de
números se tratase, siempre que las dimensiones sean las adecuadas.
1. [A B]: genera la matriz formada por las columnas de A y B.
2. [A; B]: genera la matriz formada por las filas de A seguidas de las de B.
3. [A B; C D]: genera una matriz formada por cuatro bloques.
EJERCICIO 2.
Construir cuatro matrices aleatorias de números enteros en el intervalo (0, 9) asignándoles las
siguientes variables: A de dimensión 3 × 2, B de dimensión 3 × 3, C de dimensión 2 × 3, D de
dimensión 2×2. A continuación teclear las siguientes instrucciones observando el resultado obtenido:
1. E = [A B]
2. F = [B; C]
3. G = [A eye(3)]
4. H = [A B; C D]
5. J = [E; zeros(2, 5)]
6. K = [F ones(5, 2)]
2.4
Álgebra matricial
Las operaciones que podemos realizar con matrices en el MATLAB son la suma, resta, multiplicación
producto por un escalar, cálculo de potencias y la trasposición. La notación utilizada para estas
operaciones será:
1. Suma de matrices A + B
2. Resta de matrices A − B
3. Producto de matrices A ∗ B
4. Producto de un escalar por una matriz a ∗ A
5. Potencias A∧ k
6. Trasposición A
0
3
Formas escalonadas de una matriz
Sabemos que toda matriz tiene una forma canónica escalonada equivalente. En MATLAB ésta se
obtiene con el comando rref( ).
EJERCICIO 3.
a) Introducir una matriz aleatoria, A, de dimensión 3×4 y obtener su forma escalonada canónica.
b) Obtener la forma escalonada canónica de la matriz A0 .
c) ¿Qué relación existe entre ambas formas escalonadas?
4
Determinantes
En MATLAB el determinante de una matriz cuadrada se puede calcular mediante el comando
det( ).
5
Inversas
En MATLAB la inversa de una matriz cuadrada, si existe, se puede calcular utilizando el comando
inv. También podemos el algoritmo de Gauss-Jordan partiendo de la matriz por bloques [A eye(A)]
EJERCICIO 4.
Generar una matriz cuadrada aleatoria de orden 7
a) Comprobar si es regular
b) En caso de ser regular calcular la inversa mediante los dos procedimientos anteriormente
descritos.
Descargar