Sie sind auf Seite 1von 13

Practica 1: Introduccion al entorno de trabajo de

MATLAB
*
1. Introduccion
MATLAB constituye actualmente un estandar dentro de las herramien-
tas del analisis numerico, tanto por su gran capacidad y sencillez de manejo
como por su enorme versatilidad y difusion. En esta primera sesion el objeti-
vo es aprender los fundamentos del: operaciones basicas, gracos elementa-
les, etc. Al nal de la sesion debemos estar en condiciones de crear tambien
cheros guion (script) y funciones sencillas.
Dadas las caractersticas especiales de esta primera practica no existe es-
tudio previo. Sin embargo, se recomienda disponer de alg un medio de alma-
cenamiento externo donde guardar los cheros relacionados con las practicas.
2. Trabajo de laboratorio
2.1. Espacio de trabajo de MATLAB
Al iniciar una sesion MATLAB observaremos el espacio de trabajo como
en la Figura 1, compuesto por varias ventanas. La mas grande de ellas, que se
encuentra a la derecha, es la ventana de comandos. Una vez que MATLAB
esta listo para funcionar aparece la se nal de espera de entrada (prompt)
en forma de >>.
Podemos modicar la carpeta activa seleccionandola en la pesta na de
Current directory. Ahora los cheros de su carpeta activa son visibles
desde MATLAB, en la ventana superior izquierda.
Para nalizar la sesion bastara con teclear exit o quit, o simplemente
cerrar la ventana de MATLAB (indistintamente). El programa se cerrara y
volvera a la pantalla principal de Windows.
Observaciones 1 Tenga en cuenta que:
*
MATLAB es marca registrada de The MathWorks, Inc.
Practica de ordenador I 2
Figura 1: Entorno de MATLAB.
Es conveniente tambien hacer uso intensivo de la ayuda de MATLAB
accediendo a ella desde el men u o tecleando en la ventana de comandos
help <palabra clave> para la ayuda sobre el comando especicado
por <palabra clave>. Por ejemplo,
>> help help
invoca la ayuda sobre la propia ayuda en lnea.
Se pueden usar las echas y para evocar los comandos introducidos
anteriormente.
Las letras may usculas y las min usculas para MATLAB no son equiva-
lentes: valor y Valor son dos variables diferentes. Los nombres de las
variables tienen que comenzar con una letra, pueden contener hasta
63 caracteres (letras, n umeros y barra baja, pero no signos de puntua-
cion). Tambien se prohbe usar las palabras reservadas
for end if while function return elseif case otherwise
switch continue else try catch global persistent break
como nombre de variables.
Teclear el nombre de una variable hara que MATLAB devuelva su
valor.
Andrei Martnez Finkelshtein
Practica de ordenador I 3
Un punto y coma (;) al nal nal de cualquier expresion suprime la
salida del resultado por la pantalla (pero no la evaluacion de dicha
expresion).
En MATLAB se puede usar tanto parentesis ( ) como corchetes [ ], pe-
ro estos tienen signicados diferentes: los parentesis sirven para agru-
par expresiones e indicar los argumentos de funciones, mientras que
los corchetes especican listas, vectores y matrices.
Cualquier calculo se puede abortar pulsando Ctrl-C.
2.2. Operaciones basicas en MATLAB
La forma mas sencilla de usar MATLAB es hacerlo funcionar como si se
tratara de una gran calculadora. Las operaciones disponibles son: + (suma),
- (resta), * (producto), / (division), (exponenciacion).
Por ejemplo, tecleando:
>> 3+2
MATLAB respondera con el resultado de la operacion:
ans = 5
Ejercicio 1 Eval ue las siguientes expresiones:
1. 186 31
2. 124312 5478
3. 17456
0,4
4. 711/134
El resultado de las operaciones es asignado por defecto a la variable ans (de
answer), pero puede asignarse a otras variables.

Estas pueden tener cual-
quier nombre que cumpla con las reglas habituales (caracteres alfanumericos,
empezando por una letra). Por ejemplo, tecleando:
>> x=12/2
se realiza la operacion indicada y asigna el resultado a x: x = 6. La variable
conserva su valor a lo largo de toda la sesion, salvo que se le asigne otro o
se le prive de valor por medio de
>> clear x
Andrei Martnez Finkelshtein
Practica de ordenador I 4
Observe la gran particularidad de MATLAB: a diferencia de muchos otros
lenguajes de programacion, aqu no se requiere declarar variables de ante-
mano.
Varios comandos de MATLAB pueden ir en una misma linea, separados
por una coma o un punto y coma (recuerde que el ultimo suprime la salida
del resultado por pantalla; as, si unicamente desea que se asigne el valor,
pero no quiere ver el resultado, basta con a nadir un ; despues de la orden).
Por ejemplo, si efectuamos:
>> z=36-7;
el resultado se asignara a z, pero no se mostrara por pantalla. Para ins-
peccionar posteriormente el valor de z bastara con teclear el nombre de la
variable:
>> z
a lo que MATLAB respondera con: z = 29.
Casi todas las funciones elementales (y muchas de las funciones espe-
ciales) se encuentran incluidas en MATLAB: las funciones trigonometricas:
sen, cos, tan, acos, asin, atan, los logaritmos: log, log10, la funcion expo-
nencial: exp, la raz cuadrada: sqrt, las funciones hiperbolicas: sinh, cosh,
etc. Para usar cualquiera de estas funciones se debe colocar el argumento
entre parentesis. Por ejemplo:
>> y=log(18*z+x);
asignara a la variable y el resultado de la operacion anterior. Tecleando
>> y
obtendremos como respuesta: y = 6.2691.
MATLAB conoce tambien varias constantes universales, como pi= ,
la unidad imaginaria i o j, etc. Recuerde que por defecto MATLAB rea-
liza todas la operaciones ajustandose a el estandar IEEE, doble precision.
No podemos variar esta caracterstica salvo tengamos instalado el Symbo-
lic Math Toolbox, que implementa la funcion vpa (de variable precision
arithmetics).
Ejercicio 2 Realice las siguientes operaciones:
1. [sen(/8)]
ln 5
;
2.

1 + (arctan 1)
2
;
3. e
3,7
Andrei Martnez Finkelshtein
Practica de ordenador I 5
2.3. Matrices y vectores
Al igual que para el rey del Principito todas las personas eran sus
s ubditos, para MATLAB todas las variables son matrices; en particular, los
escalares son matrices 1 1. En realidad, MATLAB proviene de MATrix
LABoratory.
Las matrices se indican por corchetes, los elementos de una misma la
se separan mediante , (o tambien espacios) y las las se separan con ;
(o saltos de lnea). Por ejemplo al teclear:
>> A=[2, -1, 4; 6, 9, -4; 0, 2, 1]
obtenemos la matriz A:
A =
2 -1 4
6 9 -4
0 2 1
Los vectores son matrices de una sola la (vectores la) o columna (vec-
tores columna). Por ejemplo,
>> b=[7 3 4 9 2 11];
es un vector la de 6 elementos.
Se puede acceder a los elementos de una matriz (o vector) a traves de su
ndice; MATLAB enumera los subndices comenzando con el 1. Por ejemplo,
A(2,1) es el elemento de la segunda la y primera columna de A:
>> A(2,1)
ans =
6
y
>> b(4)
devolvera como resultado el cuarto elemento del vector b (no importa si c
es un vector la o columna):
ans =
9
La asignacion se realiza por medio del signo =; por ejemplo, escribien-
do
>> b(3)=18
hace que MATLAB asigne al tercer elemento de b el valor 18:
Andrei Martnez Finkelshtein
Practica de ordenador I 6
b =
7 3 18 9 2 11
Ejercicio 3 Ahora modique el vector b de forma que su segundo elemento
tome el valor del quinto.
La creacion de un vector con valores equiespaciados se simplica si uti-
lizamos el operador dos puntos, : La sintaxis
<inicio>:<incremento>:<final>
nos permiten generar un vector con valores <inicio>, <inicio>+<incremento>,
<inicio>+2<incremento>, . . . , hasta llegar a <final>. De omitirse, el <incremento>=1.
Por ejemplo, se puede ejecutar
>> v=1:-0.3:-1
v=
1.0000 0.7000 0.4000 0.1000 -0.2000 -0.5000 -0.8000
El operador : sirve tambien para especicar un rango de subndices de un
vector o una matriz. Por ejemplo,
>> b(2:4)
ans=
3 18 9
extrae los elementos con los ndices 2, 3 y 4, mientras que
>> A(1:2,2:3)
ans=
-1 4
9 -4
devuelve el menor de A correspondiente a la interseccion de las las 1, 2 y
columnas 2, 3. Si simplemente especicamos :, MATLAB lo interpreta
como todo el rango de valores, es decir, toda una la o columna. Por
ejemplo, con
>> A(3,:)
se obtiene la tercera la de la matriz A:
ans =
0 2 1
Ejercicio 4 Asigne a la variable k el valor de la segunda columna de A.
Ejercicio 5 Usando la ayuda de MATLAB averig ue el signicado y la sin-
taxis del comando linspace. Use ese comando para generar el vector v,
creado m as arriba.
Andrei Martnez Finkelshtein
Practica de ordenador I 7
2.4. Operaciones con matrices y vectores
Como se ha dicho antes, MATLAB interpreta todas las variables como
matrices, y las operaciones habituales (*,+,-) entre ellas las entiende por
defecto como operaciones matriciales.
As, se pueden sumar o restar vectores o matrices siempre que tengan
las mismas dimensiones; por ejemplo:
>> a=b; b+a
da como resultado
ans =
14 6 36 18 4 22
La transposici on en MATLAB se indica por medio del apostrofe (); en reali-
dad, se trata de transposicion hermitiana: todo elemento se cambia ademas
por su complejo conjugado. Por ejemplo,
>> c=a
c =
7
3
18
9
2
11
El operador * es por defecto una multiplicacion matricial, de modo que para
llevarse a cabo requiere que las dimensiones de las matrices (o vectores) sean
las apropiadas.
>> c*a
ans =
49 21 126 63 14 77
21 9 54 27 6 33
126 54 324 162 36 198
63 27 162 81 18 99
14 6 36 18 4 22
77 33 198 99 22 121
>> a*c
ans =
588
Ejercicio 6 Calcule la norma eucldea (b
2
=

|b
1
|
2
+ + |b
n
|
2
) del
vector b, usando la multiplicaci on * de MATLAB.
Andrei Martnez Finkelshtein
Practica de ordenador I 8
Si se desean efectuar operaciones con vectores o matrices elemento a
elemento, se debe agregar un punto (.) antes del operador para indicarlo.
As, por ejemplo, la division de dos vectores no es una operacion denida.
Sin embargo, puede calcularse la division elemento a elemento, Ejemplo:
>> a./b
ans =
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
o elevarse todos los elementos de un vector al cuadrado,
>> a.^2
ans =
49 9 324 81 4 121
Ejercicio 7 Introduzca los vectores f=[3,8,-2,15,3] y g=[4,0,4,-12,2]
y calcule su producto elemento a elemento.
La mayora de las funciones elementales aplicadas a un vector se realizan
elemento a elemento:
>> log(a)
ans=
1.9459 1.0986 2.8904 2.1972 0.6931 2.3979
Ejercicio 8 Calcule los valores de

n, para n = 1, 2, . . . , 16, asignando la
tabla resultante a la variable raices.
2.5. Gracas
MATLAB le permite presentar sus resultados en forma graca, en una
gran diversidad de formatos. Dado un vector la o columna puede utilizarse
la funcion plot para mostrar el graco del vector en pantalla. Por ejemplo,
>> plot(raices);
dibujan los valores de

n, n = 1, 2, . . . , 16 en la ventana graca, como se
muestra en la Figura 2.
Observe que, si no se especica lo contrario, MATLAB siempre
asume los valores de las abscisas igual a los subndices del vector de
datos, es decir, 1, 2, 3, . . .
une los puntos de la graca.
Si queremos especicar los valores de las abscisas, debemos usar dos vectores.
Por ejemplo, para representar la secuencia siguiente:
Andrei Martnez Finkelshtein
Practica de ordenador I 9
0 2 4 6 8 10 12 14 16
1
1.5
2
2.5
3
3.5
4
Figura 2: Graca de raices.
n -1 0 1 2 3 4
s(n) 2 -4 -2 6 -1 1
podramos seguir los pasos:
>> x=-1:4; s=[2,-4,-2,6,-1,1];
>> plot(x,s);
donde -1:4 indican el inicio y el nal de la secuencia s. Vea el resultado en
la Figura 3.
Para representar gracamente una funcion y = f(x) se siguen los mismos
pasos: generar un conjunto de puntos de muestra y dibujarlos con plot, por
ejemplo,
>> x=<inicio>:<inc.>:<final>;
>> y=f(x);
>> plot(x,y);
Mientras mas puntos tomamos, mas el es la graca, pero mayor es el volu-
men de datos y mas se tarda en obtenerlos o procesarlos.
Ejercicio 9 Dibuje la gr aca de y = cos(x), x [0, 3], tomando los valores
de la abscisa
Andrei Martnez Finkelshtein
Practica de ordenador I 10
1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 4
4
3
2
1
0
1
2
3
4
5
6
Figura 3: Resultado de plot(x,s);
(a) x = 0, 1, 2, 3;
(b) x = 0, 0,01, 0,02, . . . , 3;
Existen m ultiples comandos para modicar el graco una vez construido.
Por ejemplo, si fuera necesario, puede a nadirse una rejilla a la graca usando
la instruccion grid; o etiquetar los ejes por medio de xlabel (para el eje de
abscisas) e ylabel (para el eje de ordenadas).
El resultado de
>> plot(raices);
>> xlabel(n); ylabel(Raiz cuadrada de n);
>> grid
se observa en la Figura 4.
MATLAB ofrece ademas la posibilidad de presentar varias gracas al
mismo tiempo en pantalla, as como de realizar gracas tridimensionales. Si
desea mas informacion sobre gracas puede teclear help plotdesde la lnea
de comandos de MATLAB. Se recomienda tambien ejecutar grafdemo para
ver una demostracion de diferentes posibilidades gracas de MATLAB.
Andrei Martnez Finkelshtein
Practica de ordenador I 11
0 2 4 6 8 10 12 14 16
1
1.5
2
2.5
3
3.5
4
n
R
a
i
z

c
u
a
d
r
a
d
a

d
e

n
Figura 4: Graca especicando ambos ejes, con rejilla.
2.6. Ficheros
Con lo que se ha visto hasta ahora, MATLAB no es mas que una cal-
culadora cientca muy potente, que permite obtener resultados tecleando
directamente los comandos apropiados. Cuando el n umero de operaciones
a realizar es grande, o deben repetirse varias veces, puede resultar comodo
introducir todas esas ordenes en un chero. Lo que hace MATLAB tan
potente es su lenguaje de programacion.
Todas las instrucciones, escritas en el lenguaje de MATLAB, se deben
almacenar en cheros ASCII con la extension .m. Ademas, este puede
contener tantas lneas de comentarios como queramos, precediendo cada
una de ellas por el signo de %. Para editar un chero .m, podemos teclear
en MATLAB edit <nombre> (o bien seleccionarlo con doble click en la
ventana de Current directory).
Los cheros con la extension .m se dividen en dos clases:
1. los cheros de denicion de funci on;
2. los cheros gui on o script.
Los segundos no son otra cosa que una transcripcion de una secuencia de
comandos que podramos ir tecleando consecutivamente para llegar al re-
Andrei Martnez Finkelshtein
Practica de ordenador I 12
sultado. Esta es la forma mas habitual de trabajar con MATLAB y salvo
que se trate de instrucciones muy cortas, se debe utilizar scripts y no teclear
directamente en la ventana de comandos.
Por ejemplo, para generar el ultimo graco construido era equivalente
crear un chero con la extension .m, por ejemplo, grafico.m, con el conte-
nido:
plot(raices);
xlabel(n); ylabel(Raiz cuadrada de n);
grid
y ejecutarlo desde MATLAB tecleando el nombre (sin extension), grafico,
o directamente desde el editor de MATLAB pulsando la tecla F5.
En cuanto a las funciones, otra gran virtud de MATLAB es que casi
todas ellas estan a la vista, escritas en el propio lenguaje del sistema, de
modo que las podemos examinar y modicar a nuestra conveniencia (aunque
no se recomienda hacerlo si no estamos totalmente seguros!).
Ejercicio 10 La instrucci on legendre de MATLAB calcula la funci on de
Legendre asociada. Examine c omo est a implementada esa funci on, que se
almacena en el chero legendre.m, pero por favor, no la modique!
Tambien existe la posibilidad de crear nuevas funciones. La principal
ventaja de las funciones es que permiten variables locales y parametros de
entrada y salida. Para declarar una funcion de forma que MATLAB sea
capaz de entenderlo, deben cumplirse los requisitos siguientes:
1. La funcion debe estar contenida en un chero .m cuyo nombre debe
coincidir con el de la funcion (recuerde la funcion legendre).
2. La primera lnea ejecutable del chero (comentarios aparte) debe se-
guir la sintaxis:
function [y1,y2,...]=<nomfunc>(x1,x2,...)
donde x1,x2. . . son los parametros (variables) de entrada e y1,y2,. . . son
los parametros de salida.
MATLAB admite construcciones del tipo for, while e if. La sintaxis para
cada una de ellas puede obtenerse tecleando help for, help while o help
if seg un el caso. Por ejemplo, el siguiente codigo calcula el valor de 10!:
>> f=1; for k=2:10, f=f*k; end
Ejercicio 11 Escriba la funci on misuma, que acepte dos argumentos de en-
trada y devuelva como resultado la suma de ambos. Despues escriba la fun-
ci on fibo que haga una llamada a misuma y que, dado el par ametro n en la
entrada, nos devuelva los n primeros miembros de la sucesi on de Fibonacci.
Andrei Martnez Finkelshtein
Practica de ordenador I 13
MATLAB nos permite guardar todas las variables en un chero para
poder recuperarlas posteriormente. Para ello basta con teclear:
>> save <nombref>
con lo que todas las variables se guardan el chero cuyo nombre (sin ex-
tension) se haya especicado. Posteriormente se pueden recuperar los datos
con:
>> load <nombref>
load y save tambien pueden usarse sin especicar el nombre de un che-
ro; en ese caso MATLAB enva los datos a un chero por defecto llamado
matlab.mat. Si solo se quieren salvar algunas variables (digamos por ejem-
plo x e y) basta con hacer:
>> save <nombref> x,y
Para mas opciones sobre load o save teclee help load o help save desde
la lnea de comandos de MATLAB.
Andrei Martnez Finkelshtein

Das könnte Ihnen auch gefallen