You are on page 1of 36

Introduccin a Matlab

Prctica de Fsica 2 (bilogos y gelogos) - Sigman returns - 2o cuatrimestre de 2008


http://www.df.uba.ar/users/gsolovey/fisica2/fisica2.html
Aclaracin: Todo el texto que est dentro de las cajas grises lo pueden copiar y pegar
dentro de la ventana "Command Window" de Matlab porque son instrucciones para
ejecutar.
Contenidos
Cantidades escalares y variables
Vectores
Grficos
Ejercicios
Cantidades escalares y variables
Los siguientes dos comandos le asignan un nmero a dos variables: a y b. En Matlab,
todo lo que est despus del signo % es un comentario y no es ledo como una
instruccin de Matlab.
a=3 % le asigna a la variable a el nmero 3
b=4; % le asigna a la variable b el nmero 4 y al usar el *;* al final
% no imprime la salida en pantalla
a =

3

Las siguientes son algunas operacione posibles con variables
c = a + b; % suma
d = a / b; % cociente
e = a^b; % potencia
f = sqrt(b); % raz cuadrada
A veces es til reasignar el valor de una variable a partir del valor que tena antes. Por
ejemplo:
a = a + 2 % le asigna a la variable a el valor que tena a antes ms
2.
a =

5

Pueden ejecutar varias veces la instruccin anterior que le va a ir sumando 2 al valor de
a en cada paso
a = a + 2
a = a + 2
a = a + 2
a =

7


a =

9


a =

11

El uso de los parntesis. Hacer las siguientes cuentas a mano y comparar con los
resultados obtenidos en Matlab
a + b / 2;
(a + b) / 2;
b / f - 1;
b / (f - 1);
Vectores
En Matlab se usan mucho los arreglos de nmeros, que se llaman vectores si se trata de
una fila de nmeros o matrices si se trata de arreglos de filas y columnas. En esta gua
empezamos con los vectores.
Hay diferentes formas de definir vectores en Matlab. Por ejemplo, las siguientes
expresiones son equivalentes para definir vectores. Prubelo.
v1 = [1 2 3 4 5 6 7 8 9 10];
v2 = 1:10; % define un vector que empieza en 1 hasta el 9 de pasos de
a 1
w1 = [2 4 6 8 10 12 14 16 18 20];
w2 = 2:2:20; % define un vector que empieza en 2 hasta el 10 de pasos
de a 2
Las siguientes son algunas operaciones entre vectores. Vea los resultados de cada una.
z0 = w1 + 2; % le suma 2 a cada componente del vector w1
z1 = w1 - v1; % resta componente a componente los dos vectore
z2 = w1 + w2; % suma
z3 = w1.^2; % eleva al cuadrado cada uno de los elementos de w1
z4 = sqrt(w2); % calcula la raz cuadrada de cana elemento de w1
z5 = w2 ./ v2; % divide w2 por v2 elemento a elemento
Grficos
Hay varios comandos para graficar funciones en Matlab. Entre ellas, plot, area, bar,
stairs.
Empezamos graficando la funcin usando plot

Para esto primero tenemos que definir los valores de x que vamos a usar. Por ejemplo,
si queremos usar x=0,1,2,3,...10 hacemos lo siguiente:
x = 0:10;
A los valores de la funcin los vamos a guardar en el vector y. Para eso hacemos lo
siguiente:
Noten que para elevar al cuadrado cada elemento de x es necesario usar la operacin .^.
Si se usa la operacin ^ entre dos vectores lo que se obtiene es el producto escalar entre
los dos, como veremos ms adelante.
y = 2*x.^2 + 3*x - 5;
figure
plot(x,y)

Podemos volver a graficar la misma funcin pero en otro intervalo. Por ejemplo para x
entre -5 y 5.
x = -5:5;
y = 2*x.^2 + 3*x - 5;
plot(x,y,'-+'); % grafica con lnea y smbolos

Y si queremos usar ms puntos para graficar, podemos tomar un vector x con ms
elementos, por ejemplo:
x = -5:0.2:5; % esto genera un vector que empieza en -5 y va hasta 5
de a pasos de 0.2
y = 2*x.^2 + 3*x - 5;
plot(x,y,'-+')

Pueden probar repetir la ltima instruccin reemplazando el uso de plot por area(x,y)
o stairs(x,y) para ver qu hace.
Ahora graficamos las siguientes funciones.


clear all % borra todas las variables definidas hasta ahora

x = 0.1:0.01:5; % creamos el vector x
f = log(x); % crea un vector que en cada componente tiene el
logaritmo de cada elemento de |x|.
g = exp(x); % lo mismo con la exponencial

plot(x,f); % grafica la funcin f(x)
grid on

figure % crea una nueva figura
plot(x,g)
grid on

Para crear un grfico con 2 figuras usando subplots y arreglarlos un poco:
FS = 15; % define el tamao de las letras que vamos a usar
figure
subplot(1,2,1)
plot(x,f,'--r','LineWidth',2)
xlabel('x','FontSize',FS)
ylabel('log(x)','FontSize',FS)
set(gca,'FontSize',FS); % define el tamanio de las letras de los
ejes
subplot(1,2,2)
plot(x,g,'--k','LineWidth',2)
xlabel('x','FontSize',FS)
ylabel('exp(x)','FontSize',FS)
set(gca,'FontSize',FS);

Graficar varias funciones en una misma figuras usando subplots.
FS = 15; % definimos el tamao de letra que vamos a usar
t=1:1000; % definimos el tiempo como un vector de 1 a 1000 con
incrementos de a 1
figure;
set(gcf,'Color','w'); % define el color del fondo
subplot(2,2,1); % divide la figura en 4 regiones (2 filas y 2
columnas y
% empezamos definiendo el grfico 1
plot(t,cos(t/50));
xlabel('t','FontSize',FS); %pone ttulos al eje x
ylabel('x','FontSize',FS); %pone ttulos al eje y
grid on; %agregamos una grilla
title('Coseno'); %ttulo del grfico

% Podemos dar todas las instrucciones en una nica lnea separadas por
;
subplot(2,2,2);plot(t,exp(-
t/150));xlabel('t','FontSize',FS);ylabel('x','FontSize',FS);grid
on;title('Exp');
subplot(2,2,3);plot(t,sin(t/50).*cos(t/50));xlabel('t','FontSize',FS);
ylabel('x','FontSize',FS);grid on;title('Seno*Coseno');
subplot(2,2,4);plot(t,1./(1+(t/150)));xlabel('t','FontSize',FS);ylabel
('x','FontSize',FS);grid on;title('1/(1+t)');

Para terminar mostramos cmo graficar una funcin usando el comando area y
graficamos con distinta cantidad de puntos. Vean la importancia de tener suficientes
puntos para graficar una funcin que vara en el tiempo.
figure
subplot(1,2,1)
dx=2; % definimos dx que ser el paso del vector x
x=-5:dx:15; % definimos el vector x que toma valores espaciados en
dx
y=sin(2*x).*cos(1.2*x+2)+2;
area(x,y) % podramos reemplazar esto por |plot(x,y)| o
|plot(x,y,'+-')|
subplot(1,2,2)
dx=0.1; %definimos dx como el paso del vector x.
x=-5:dx:15;
y=sin(2*x).*cos(1.2*x+2)+2;
area(x,y)% podramos reemplazar esto por |plot(x,y)| o
|plot(x,y,'+-')|

Ejercicios
1) Frecuencia de muestreo. Queremos representar en un grfico a una variable que
cambia en el tiempo de acuerdo a la ecuacin

El siguiente cdigo define la funcin en un rango de valores de t.
clear t y dx
dt=1;
t=-pi:dt:pi;
y=1.2*cos(2*t)+0.8*sin(1.2*t)+3;
Grafique la funcin usando plot (y luego area) y pruebe con distintos valores de dt
hasta encontrar uno que sirva para representar adecuadamente la funcin.
2) El siguiente cdigo grafica la funcin

clear x y
x = -2:0.1:2;
y = 9-x.^2;
figure
plot(x,y)

Modificarlo para graficar la funcin

3) La ecuacin de los gases ideales es

En este problema trabajamos con variables 'adimensionales' y tomamos por simplicidad
NK = 1. Grafique la presin en funcin del volumen para dos temperaturas diferentes
en el mismo grfico y con colores distintos. Pngale nombre a los ejes.
Ayuda: Para graficar dos funciones en el mismo grfico use el comando hold. Por
ejemplo, si despus de graficar una funcin, entramos hold on eso "congela" la figura y
lo que grafiquemos a continuacin ser superpuesto hasta que escribamos el comando
hold off.
4) Graficar en la misma figura las siguientes funciones

Decidir el nmero de puntos que van a usar para obtener una curva suave
5) Gaussiana. Definir los parmetros de la funcin y graficarla en un rango de valores
de x adecuado.

6) Graficar una funcin exponencial para distintos valores de los parmetros en el
mismo grfico

--------------------------------------------------------
http://www.df.uba.ar/users/gsolovey/fisica2/fisica2.html

Pu
I ntroduccin a Matlab


por ngel Garcimartn
Departamento de Fsica y Matemtica Aplicada


Vase tambin:I ntroduccin a la programacin con Matlab

Matlab es un programa interactivo para clculo numrico y tratamiento de datos.
Contiene muchas herramientas y utilidades que permiten adems diversas
funcionalidades, como la presentacin grfica en 2 y 3 dimensiones. Esos tiles
estn agrupados en "paquetes" (toolboxes). A Matlab se le pueden aadir
paquetes especializados para algunas tareas (por ejemplo, para tratamiento de
imgenes). Trabajar con Matlab comporta aprender un lenguaje simple. En esta
introduccin se explican los elementos bsicos de este lenguaje.
Matlab es un programa command-driven, es decir, que se introducen las rdenes
escribindolas una a una a continuacin del smbolo (prompt) que aparece en
una interfaz de usuario (una ventana). Esta introduccin contiene ejemplos que
se pueden escribir directamente en la lnea de comandos de Matlab. Para
distinguir esos comandos, junto con la respuesta del programa, se emplean un
tipo de letra diferente:
2+2
ans =
4
Una manera de seguir esta introduccin consiste en abrir Matlab en otra ventana, e ir
copiando y pegando el comando a continuacin del smbolo >>.
Para ms informacin, se puede consultar el folleto "Getting Started with
Matlab" o el manual de usuario (que estn en la biblioteca). Tambin puede
consultarse la ayuda en lnea, como se explica ms adelante. O conectarse al
servidor Web de Mathworks, la empresa que comercializa Matlab, donde pueden
encontrarse -por ejemplo- programas que han escrito otros usuarios de Matlab.
Este documento contiene los siguientes apartados:
Comandos bsicos
Ayuda en lnea
El entorno Matlab
Vectores y matrices
Polinomios
Grficos
"Scripts"
Clculo simblico
Sugerencias



Para saber ms: una pgina Web de introduccin a la programacin
con Matlab.


Comandos bsicos
En esta seccin se explica cmo usar Matlab a modo de
calculadora.
Empecemos con algo sencillo: las operaciones matemticas elementales.
x=2+3
x =
5
Si no se asigna el resultado a ninguna variable, Matlab lo asigna por defecto a
la variable ans (answer):
2+3
ans =
5
Para saber cul es el valor asignado a una determinada variable, basta
introducir el nombre de la variable:
x
x =
5
La notacin para las operaciones matemticas elementales es la siguiente:

^ exponenciacin
* multiplicacin
/ divisin
+ suma
- resta
El orden en que se realizan las operaciones de una lnea es el siguiente:
primero, la exponenciacin; luego, las multiplicaciones y divisiones; y
finalmente, las sumas y las restas. Si se quiere forzar un determinado orden, se
deben utilizar parntesis, que se evalan siempre al principio. Por ejemplo,
para hallar dos entre tres,
2/2+1
ans =
2
(en efecto: primero se calcula 2/2 y luego se suma 1).
2/(2+1)
ans =
0.6667
Primero se calcula el parntesis (2+1) y luego se realiza la divisin.
Dos observaciones. El punto decimal es . (no una coma). Y en Matlab, las
maysculas y las minsculas son distintas. Es decir, X es una variable
diferente de x.
En Matlab estn tambin definidas algunas funciones elementales. Las
funciones, en Matlab, se escriben introduciendo el argumento entre parntesis
a continuacin del nombre de la funcin, sin dejar espacios. Por ejemplo:
y=exp(0)
y =
1
(la funcin exp es la exponencial). He aqu una tabla con algunas funciones
elementales:

sin seno
cos coseno
tan tangente
sec secante
csc cosecante
cot cotangente
exp exponencial
log logaritmo natural
sqrt raz cuadrada
abs valor absoluto
Para obtener las funciones trigonomtricas inversas, basta aadir una a delante
del nombre. Y para las funciones hiperblicas, una h al final. Por ejemplo,
atanh(x) es el arcotangente hiperblico de x:
z=atanh(2)
z =
0.5493 + 1.5708i
(z es un nmero complejo).
Ayuda en lnea
Cmo obtener informacin sobre los comandos de Matlab.
Este documento es tan slo una introduccin -muy resumida- del lenguaje y
del manejo de Matlab. Antes de seguir, es conveniente indicar cmo puede
obtenerse ms informacin sobre cualquier detalle referente a Matlab. Por
supuesto, siempre se pueden consultar los manuales: hay un ejemplar en las
salas del C.T.I. y otro en la biblioteca, que puede obtenerse en prstamo por
un da.
Adems, desde dentro de Matlab pueden obtenerse explicaciones sobre un
tema particular. Hay varios mtodos.
El comando help. Para obtener informacin sobre una determinada
funcin, basta teclear desde la lnea de comandos help seguido del
nombre de la funcin. Por ejemplo:
help round
ROUND Round towards nearest integer.
ROUND(X) rounds the elements of X to the nearest
integers.
See also FLOOR, CEIL, FIX.
Si se escribe slo help, se obtiene un ndice de temas. Tambin puede
obtenerse informacin sobre uno de los temas de esa lista: as, help
elfun proporciona informacin sobre las funciones matemticas
elementales.
La ventana de ayuda. Puede llamarse tecleando helpwin o bien
escogiendo del men Help el tem Help Window. Se obtiene una
ventana nueva, y haciendo doble click con el ratn sobre un captulo se
pasa a un elenco de los tems contenidos, que a su vez pueden
escogerse para una explicacin ms detallada. Con los botones Back y
Forward se navega hacia atrs o hacia adelante. Tambin puede
escribirse directamente en la zona superior izquierda el nombre del
comando deseado: por ejemplo, para buscar informacin sobre sqrt ...

En la barra See also aparecen comandos relacionados. La informacin
es la misma que la obtenida con el comando help, pero con la
comodidad de presentarse en una ventana aparte en vez de en la lnea
de comandos.
La ayuda interactiva. Se obtiene escogiendo del men Help el tem
Help Desk, o tecleando helpdesk en la barra de comandos. Se lanza
el navegador y se obtiene un documento de inicio con un ndice de
temas en hipertexto donde estn los manuales y otras utilidades, como
un buscador. Para leer el manual, se necesita el programa Acrobat
Reader.
La informacin que se obtiene es mucho ms completa que en los otros
dos casos, lo cual puede resultar inconveniente si uno desea
simplemente, por poner un caso, conocer la sintaxis de una funcin.
Una introduccin a Matlab ms rigurosa, extensa y comprensiva que
este documento puede encontrarse en el epgrafe "Getting Started" del
Help Desk.
El entorno Matlab
Para desenvolverse en la interfaz de usuario, llevar la cuenta de las variables,
...
Edicin de la lnea de comandos. Con las flechas del teclado se
pueden recuperar las rdenes anteriores, sin tener que volver a
teclearlas. As, en el caso de una equivocacin en un comando
complicado
d2_f=(y2-2*y1+y3)/deltax^2)
??? -2*y1+y3)/deltax^2)
|
Missing operator, comma, or semi-colon.
en vez de volver a teclear todo, puede recuperarse la instruccin
pulsando la tecla "flecha hacia arriba", desplazarse hasta el error (falta
un parntesis) con la flecha hacia a la izquierda, y arreglarlo:
d2_f=(y2-2*y1+y3)/(deltax^2)
En ocasiones, es interesante no presentar el resultado en la pantalla
(por ejemplo, cuando se trata de una lista de datos muy larga). Eso se
consigue poniendo un punto y coma al final de la instruccin.
y=sqrt(4);
El resultado no aparece, pero sin embargo el clculo se ha realizado:
y
y =
2
El comando who indica las variables con las que se est trabajando:
who
Your variables are:
Fy f indice n_punt t_m
delta_f f_max manchas t y
Comandos relacionados con el sistema operativo:
pwd
Present working directory
(directorio de trabajo actual)
cd cambiar de directorio
dir listado de los ficheros del directorio actual
Estos comandos son muy similares a los anlogos de MS-DOS o
UNIX.
Guardar y cargar ficheros de datos. Se emplean los comandos save
y load, respectivamente.
o para guardar datos: save [nombre del fichero]
[variable] -ascii
o para recuperar datos: load [nombre del fichero]
[variable] -ascii
Por ejemplo: con estas dos rdenes
cd a:
save toto.dat y -ascii
se cambia el directorio de trabajo a a:\ y se guarda all el contenido de
la variable y en el fichero toto.dat con formato texto (por eso se
pone -ascii).
Vectores y matrices
La "especialidad" de Matlab es el manejo de matrices: Matlab son las siglas
de Matrix Laboratory.
Un vector se define introduciendo los componentes, separados por espacios o
por comas, entre corchetes:
v=[sqrt(3) 0 -2]
v =
1.7321 0 -2.0000
Para definir un vector columna, se separan las filas por puntos y comas:
w=[1;0;1/3]
w =
1.0000
0
0.3333
La operacin transponer (cambiar filas por columnas) se designa por el
apstrofe:
w'
ans =
1.0000 0 0.3333
Las operaciones matemticas elementales pueden aplicarse a los vectores:
v*w
ans =
1.0654
v+w'
ans =
2.7321 0 -1.6667
Para crear un vector de componentes equiespaciados se emplean los dos
puntos:
x=4:2:10
x =
4 6 8 10
(los componentes de x van desde 4 de 2 en 2 hasta 10).
Para introducir matrices, se separa cada fila con un punto y coma:
M = [1 2 3 ;4 5 6 ;7 8 9]
M =
1 2 3
4 5 6
7 8 9
Para referirse a un elemento de la matriz se hace as:
M(3,1)
ans =
7
Para referirse a toda una fila o a toda una columna se emplean los dos puntos:
v1=M(:,2)
v1 =
2
5
8
(v1 es la segunda columna de M).
Con las matrices tambin funcionan las operaciones matemticas elementales.
As
M^2
ans =
30 36 42
66 81 96
102 126 150
Si se quiere operar en los elementos de la matriz, uno por uno, se pone un
punto antes del operador. Si se quiere elevar al cuadrado cada uno de los
elementos de M, entonces
M.^2
ans =
1 4 9
16 25 36
49 64 81
Algunas funciones definidas sobre matrices:

det determinante
inv matriz inversa
poly polinomio caracterstico
' transpuesta
(Para ms informacin: help elmat)
Poliniomios
En Matlab los polinomios se representan por vectores cuyas componentes son
los coeficientes del polinomio.
Sea

Este polinomio se representa por un vector p
p=[1 -3 +2]
p =
1 -3 2
Para hallar las races del polinomio, se hace
roots(p)
ans =
2
1
y si se quiere hallar el valor de P(x) para un determinado valor de x (por
ejemplo, para x=0)
polyval(p,0)
ans =
2
Grficos
Cmo presentar datos con Matlab.
Las posibilidades de Matlab son muy grandes. Se indica a continuacin cmo
realizar grficos sencillos. Para ms informacin, o para conocer la
versatilidad de Matlab: captulo Handle Graphics Object del Help Desk, el
manual Using MATLAB Graphics o la ayuda en lnea help graph2d.
Veamos cmo se puede representar la funcin seno entre 0 y 10. Para empezar
creemos una variable x que vaya de cero a 10:
x=0:0.1:10;
y a continuacin, calculemos sin(x) almacenando el resultado en la variable y:
y=sin(x);
Para trazar el grfico, se emplea la funcin plot:
plot(x,y)
y se obtiene en otra ventana el grfico:

Entre los muchos comandos que se pueden utilizar para modificar los grficos,
es muy til el empleado para cambiar la escala de los ejes. La orden es
axis([x1 x2 y1 y2])
donde x1, x2 son los lmites inferior y superior del eje x, e y1 e y2 los del eje
y.
Para representar unos datos con smbolos de colores, se aade al comando
plot, entre apstrofes, la especificacin. Vamos a crear una variable con dos
filas que contenga los nmeros del 1 al 10 en la primera fila, y el doble de
esos nmeros en la segunda, y dibujarlos con puntos rojos:
x(1,:)=0:10;
x(2,:)=2*x(1,:);
x
x =
0 1 2 3 4 5 6 7 8 9 10
0 2 4 6 8 10 12 14 16 18 20
plot(x(1,:),x(2,:),'ro')

(para ver las especificaciones posibles, teclear help plot. Por ejemplo,
'ro' establece un grfico de color rojo: r y de puntos: o.) Si no se indica
nada, el grfico se traza con una lnea azul.
Otras funciones muy tiles: grid, que traza una cuadrcula,
xlabel('ttulox')e ylabel('ttuloy'), que sirven para poner
un ttulo en los ejes.
Para imprimir una figura, basta seleccionar print del men de la figura.
"Scripts"
Archivos de rdenes: programar en Matlab.
Realizar un programa en Matlab es fcil. Basta abrir un editor de texto (como
el Bloc de Notas de Windows) y escribir los comandos uno a continuacin de
otro. Luego ese fichero de texto debe guardarse con la extensin .m, y a eso se
le llama un script:

Una vez guardado el fichero (en el ejemplo, ndata.m) en el directorio actual,
desde la lnea de comandos de Matlab basta escribir ndata para que se ejecute
el programa.
A partir de aqu, se abren las posibilidades de la programacin con un
lenguaje sencillo. Puede verse una pgina Web de introduccin a la
programacin aqu.
Clculo simblico
Matemticas en el ordenador.
Hasta ahora, las operaciones que se han mostrado se han realizado con
nmeros. El toolbox de clculo simblico permite realizar clculos
abstractos:
diff('sin(x)')
ans =
cos(x)
Las expresiones simblicas se introducen entre apstrofes.
A continuacin se da una tabla con algunas funciones de este toolbox, junto
con un ejemplo de cada una:

diff derivada diff('sin(x)')
int integral int('x^2')
solve resolucin de ecuaciones solve('x^2-3*x+2=0')
ezplot grficos ezplot('exp(x)')
Evidentemente, las expresiones pueden ser todo lo complicadas que se quiera
...
solve('x=cos(x)')
ans =
.73908513321516064165531208767387

int('(x^4+4*x^3+11*x^2+12*x+8)/((x^2+2*x+3)^2*(x+1))
')
ans =
log(x+1)+1/8*(-4*x-8)/(x^2+2*x+3)-
1/4*2^(1/2)*atan(1/4*(2*x+2)*2^(1/2))

omandos bsicos
En esta seccin se explica cmo usar Matlab a modo de
calculadora.
Empecemos con algo sencillo: las operaciones matemticas elementales.
x=2+3
x =
5
Si no se asigna el resultado a ninguna variable, Matlab lo asigna por defecto a
la variable ans (answer):
2+3
ans =
5
Para saber cul es el valor asignado a una determinada variable, basta
introducir el nombre de la variable:
x
x =
5
La notacin para las operaciones matemticas elementales es la siguiente:

^ exponenciacin
* multiplicacin
/ divisin
+ suma
- resta
El orden en que se realizan las operaciones de una lnea es el siguiente:
primero, la exponenciacin; luego, las multiplicaciones y divisiones; y
finalmente, las sumas y las restas. Si se quiere forzar un determinado orden, se
deben utilizar parntesis, que se evalan siempre al principio. Por ejemplo,
para hallar dos entre tres,
2/2+1
ans =
2
(en efecto: primero se calcula 2/2 y luego se suma 1).
2/(2+1)
ans =
0.6667
Primero se calcula el parntesis (2+1) y luego se realiza la divisin.
Dos observaciones. El punto decimal es . (no una coma). Y en Matlab, las
maysculas y las minsculas son distintas. Es decir, X es una variable
diferente de x.
En Matlab estn tambin definidas algunas funciones elementales. Las
funciones, en Matlab, se escriben introduciendo el argumento entre parntesis
a continuacin del nombre de la funcin, sin dejar espacios. Por ejemplo:
y=exp(0)
y =
1
(la funcin exp es la exponencial). He aqu una tabla con algunas funciones
elementales:

sin seno
cos coseno
tan tangente
sec secante
csc cosecante
cot cotangente
exp exponencial
log logaritmo natural
sqrt raz cuadrada
abs valor absoluto
Para obtener las funciones trigonomtricas inversas, basta aadir una a delante
del nombre. Y para las funciones hiperblicas, una h al final. Por ejemplo,
atanh(x) es el arcotangente hiperblico de x:
z=atanh(2)
z =
0.5493 + 1.5708i
(z es un nmero complejo).
Ayuda en lnea
Cmo obtener informacin sobre los comandos de Matlab.
Este documento es tan slo una introduccin -muy resumida- del lenguaje y
del manejo de Matlab. Antes de seguir, es conveniente indicar cmo puede
obtenerse ms informacin sobre cualquier detalle referente a Matlab. Por
supuesto, siempre se pueden consultar los manuales: hay un ejemplar en las
salas del C.T.I. y otro en la biblioteca, que puede obtenerse en prstamo por
un da.
Adems, desde dentro de Matlab pueden obtenerse explicaciones sobre un
tema particular. Hay varios mtodos.
El comando help. Para obtener informacin sobre una determinada
funcin, basta teclear desde la lnea de comandos help seguido del
nombre de la funcin. Por ejemplo:
help round
ROUND Round towards nearest integer.
ROUND(X) rounds the elements of X to the nearest
integers.
See also FLOOR, CEIL, FIX.
Si se escribe slo help, se obtiene un ndice de temas. Tambin puede
obtenerse informacin sobre uno de los temas de esa lista: as, help
elfun proporciona informacin sobre las funciones matemticas
elementales.
La ventana de ayuda. Puede llamarse tecleando helpwin o bien
escogiendo del men Help el tem Help Window. Se obtiene una
ventana nueva, y haciendo doble click con el ratn sobre un captulo se
pasa a un elenco de los tems contenidos, que a su vez pueden
escogerse para una explicacin ms detallada. Con los botones Back y
Forward se navega hacia atrs o hacia adelante. Tambin puede
escribirse directamente en la zona superior izquierda el nombre del
comando deseado: por ejemplo, para buscar informacin sobre sqrt ...

En la barra See also aparecen comandos relacionados. La informacin
es la misma que la obtenida con el comando help, pero con la
comodidad de presentarse en una ventana aparte en vez de en la lnea
de comandos.
La ayuda interactiva. Se obtiene escogiendo del men Help el tem
Help Desk, o tecleando helpdesk en la barra de comandos. Se lanza
el navegador y se obtiene un documento de inicio con un ndice de
temas en hipertexto donde estn los manuales y otras utilidades, como
un buscador. Para leer el manual, se necesita el programa Acrobat
Reader.
La informacin que se obtiene es mucho ms completa que en los otros
dos casos, lo cual puede resultar inconveniente si uno desea
simplemente, por poner un caso, conocer la sintaxis de una funcin.
Una introduccin a Matlab ms rigurosa, extensa y comprensiva que
este documento puede encontrarse en el epgrafe "Getting Started" del
Help Desk.
El entorno Matlab
Para desenvolverse en la interfaz de usuario, llevar la cuenta de las variables,
...
Edicin de la lnea de comandos. Con las flechas del teclado se
pueden recuperar las rdenes anteriores, sin tener que volver a
teclearlas. As, en el caso de una equivocacin en un comando
complicado
d2_f=(y2-2*y1+y3)/deltax^2)
??? -2*y1+y3)/deltax^2)
|
Missing operator, comma, or semi-colon.
en vez de volver a teclear todo, puede recuperarse la instruccin
pulsando la tecla "flecha hacia arriba", desplazarse hasta el error (falta
un parntesis) con la flecha hacia a la izquierda, y arreglarlo:
d2_f=(y2-2*y1+y3)/(deltax^2)
En ocasiones, es interesante no presentar el resultado en la pantalla
(por ejemplo, cuando se trata de una lista de datos muy larga). Eso se
consigue poniendo un punto y coma al final de la instruccin.
y=sqrt(4);
El resultado no aparece, pero sin embargo el clculo se ha realizado:
y
y =
2
El comando who indica las variables con las que se est trabajando:
who
Your variables are:
Fy f indice n_punt t_m
delta_f f_max manchas t y
Comandos relacionados con el sistema operativo:
pwd
Present working directory
(directorio de trabajo actual)
cd cambiar de directorio
dir listado de los ficheros del directorio actual
Estos comandos son muy similares a los anlogos de MS-DOS o
UNIX.
Guardar y cargar ficheros de datos. Se emplean los comandos save
y load, respectivamente.
o para guardar datos: save [nombre del fichero]
[variable] -ascii
o para recuperar datos: load [nombre del fichero]
[variable] -ascii
Por ejemplo: con estas dos rdenes
cd a:
save toto.dat y -ascii
se cambia el directorio de trabajo a a:\ y se guarda all el contenido de
la variable y en el fichero toto.dat con formato texto (por eso se
pone -ascii).
Vectores y matrices
La "especialidad" de Matlab es el manejo de matrices: Matlab son las siglas
de Matrix Laboratory.
Un vector se define introduciendo los componentes, separados por espacios o
por comas, entre corchetes:
v=[sqrt(3) 0 -2]
v =
1.7321 0 -2.0000
Para definir un vector columna, se separan las filas por puntos y comas:
w=[1;0;1/3]
w =
1.0000
0
0.3333
La operacin transponer (cambiar filas por columnas) se designa por el
apstrofe:
w'
ans =
1.0000 0 0.3333
Las operaciones matemticas elementales pueden aplicarse a los vectores:
v*w
ans =
1.0654
v+w'
ans =
2.7321 0 -1.6667
Para crear un vector de componentes equiespaciados se emplean los dos
puntos:
x=4:2:10
x =
4 6 8 10
(los componentes de x van desde 4 de 2 en 2 hasta 10).
Para introducir matrices, se separa cada fila con un punto y coma:
M = [1 2 3 ;4 5 6 ;7 8 9]
M =
1 2 3
4 5 6
7 8 9
Para referirse a un elemento de la matriz se hace as:
M(3,1)
ans =
7
Para referirse a toda una fila o a toda una columna se emplean los dos puntos:
v1=M(:,2)
v1 =
2
5
8
(v1 es la segunda columna de M).
Con las matrices tambin funcionan las operaciones matemticas elementales.
As
M^2
ans =
30 36 42
66 81 96
102 126 150
Si se quiere operar en los elementos de la matriz, uno por uno, se pone un
punto antes del operador. Si se quiere elevar al cuadrado cada uno de los
elementos de M, entonces
M.^2
ans =
1 4 9
16 25 36
49 64 81
Algunas funciones definidas sobre matrices:

det determinante
inv matriz inversa
poly polinomio caracterstico
' transpuesta
(Para ms informacin: help elmat)
Poliniomios
En Matlab los polinomios se representan por vectores cuyas componentes son
los coeficientes del polinomio.
Sea

Este polinomio se representa por un vector p
p=[1 -3 +2]
p =
1 -3 2
Para hallar las races del polinomio, se hace
roots(p)
ans =
2
1
y si se quiere hallar el valor de P(x) para un determinado valor de x (por
ejemplo, para x=0)
polyval(p,0)
ans =
2
Grficos
Cmo presentar datos con Matlab.
Las posibilidades de Matlab son muy grandes. Se indica a continuacin cmo
realizar grficos sencillos. Para ms informacin, o para conocer la
versatilidad de Matlab: captulo Handle Graphics Object del Help Desk, el
manual Using MATLAB Graphics o la ayuda en lnea help graph2d.
Veamos cmo se puede representar la funcin seno entre 0 y 10. Para empezar
creemos una variable x que vaya de cero a 10:
x=0:0.1:10;
y a continuacin, calculemos sin(x) almacenando el resultado en la variable y:
y=sin(x);
Para trazar el grfico, se emplea la funcin plot:
plot(x,y)
y se obtiene en otra ventana el grfico:

Entre los muchos comandos que se pueden utilizar para modificar los grficos,
es muy til el empleado para cambiar la escala de los ejes. La orden es
axis([x1 x2 y1 y2])
donde x1, x2 son los lmites inferior y superior del eje x, e y1 e y2 los del eje
y.
Para representar unos datos con smbolos de colores, se aade al comando
plot, entre apstrofes, la especificacin. Vamos a crear una variable con dos
filas que contenga los nmeros del 1 al 10 en la primera fila, y el doble de
esos nmeros en la segunda, y dibujarlos con puntos rojos:
x(1,:)=0:10;
x(2,:)=2*x(1,:);
x
x =
0 1 2 3 4 5 6 7 8 9 10
0 2 4 6 8 10 12 14 16 18 20
plot(x(1,:),x(2,:),'ro')

(para ver las especificaciones posibles, teclear help plot. Por ejemplo,
'ro' establece un grfico de color rojo: r y de puntos: o.) Si no se indica
nada, el grfico se traza con una lnea azul.
Otras funciones muy tiles: grid, que traza una cuadrcula,
xlabel('ttulox')e ylabel('ttuloy'), que sirven para poner
un ttulo en los ejes.
Para imprimir una figura, basta seleccionar print del men de la figura.
"Scripts"
Archivos de rdenes: programar en Matlab.
Realizar un programa en Matlab es fcil. Basta abrir un editor de texto (como
el Bloc de Notas de Windows) y escribir los comandos uno a continuacin de
otro. Luego ese fichero de texto debe guardarse con la extensin .m, y a eso se
le llama un script:

Una vez guardado el fichero (en el ejemplo, ndata.m) en el directorio actual,
desde la lnea de comandos de Matlab basta escribir ndata para que se ejecute
el programa.
A partir de aqu, se abren las posibilidades de la programacin con un
lenguaje sencillo. Puede verse una pgina Web de introduccin a la
programacin aqu.
Clculo simblico
Matemticas en el ordenador.
Hasta ahora, las operaciones que se han mostrado se han realizado con
nmeros. El toolbox de clculo simblico permite realizar clculos
abstractos:
diff('sin(x)')
ans =
cos(x)
Las expresiones simblicas se introducen entre apstrofes.
A continuacin se da una tabla con algunas funciones de este toolbox, junto
con un ejemplo de cada una:

diff derivada diff('sin(x)')
int integral int('x^2')
solve resolucin de ecuaciones solve('x^2-3*x+2=0')
ezplot grficos ezplot('exp(x)')
Evidentemente, las expresiones pueden ser todo lo complicadas que se quiera
...
solve('x=cos(x)')
ans =
.73908513321516064165531208767387

int('(x^4+4*x^3+11*x^2+12*x+8)/((x^2+2*x+3)^2*(x+1))
')
ans =
log(x+1)+1/8*(-4*x-8)/(x^2+2*x+3)-
1/4*2^(1/2)*atan(1/4*(2*x+2)*2^(1/2))

Se agradece cualquier sugerencia sobre este documento. Puede enviarse un
mensaje por correo electrnico a

You might also like