Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tercer Curso de Ingeniera Aeronutica Departamento de Matemtica Aplicada II. Universidad de Sevilla
INTRODUCCIN A MATLAB
ndice
1. Aspectos Generales de Matlab 2. El Entorno de Trabajo de Matlab 3. Matrices y Vectores 4. Grcas en Matlab 5. Archivos en Matlab 6. Programacin en Matlab 7. Ejercicios Adicionales 1 3 4 6 6 8 10
Acceso a Matlab.
modo Matlab siguiendo las correspondientes instrucciones del Centro de Clculo de la Escuela. Posteriormente, para abrir una ventana y comenzar una sesin, basta buscar el icono correspondiente a Matlab R2008b en el escritorio de Windows, situarnos sobre l con el ratn y pulsar dos veces su botn izquierdo. El smbolo la tecla
>> (prompt )
Return . Hemos de tener en cuenta que una instruccin termina al cambiar de lnea. Si
necesitamos escribir ms de una lnea, debemos poner el smbolo ... (tres puntos) al nal de la misma y continuar en la siguiente. Si lo que queremos es escribir varias instrucciones dentro de la misma lnea, basta separarlas por comas. El cursor se posiciona con las echas izquierda/derecha usarse las teclas Backspace o
usarse la tecla Esc . Tambin son accesibles otras posibilidades de edicin en lnea (de signicado completamente intuitivo) con las teclas Inicio , Fin o Insert . Otra opcin muy til es usar las
para recuperar las rdenes previas. Por tanto, se puede recuperar una
lnea anterior de rdenes, editarla y ejecutarla revisada. Para limpiar completamente la pantalla se
clc.
Conviene precisar que los parntesis ( ) y los corchetes [ ] tienen signicados muy distintos en Matlab. Los primeros se utilizan para evaluar funciones y los segundos para denir vectores o matrices.
Ejercicio. (a) Determine el valor de la raz cuadrada del logaritmo neperiano del seno de cinco.
(b) Compruebe que 3-4-5 son las dimensiones de un tringulo rectngulo.
Formatos numricos. Para visualizar los resultados, Matlab ofrece varias posibilidades aunque,
por defecto, representa los nmeros en pantalla con redondeo a cuatro cifras decimales. Tambin decide si representa un nmero en notacin convencional (coma ja) o en notacin cientca (coma otante). Los nmeros enteros que tengan menos de nueve cifras siempre se representan en coma ja. La orden para la representacin en pantalla es opciones:
format
format long:
format short:
format.
Variables.
El
modo de denir una variable cualquiera en Matlab es variable=expresin . Para saber el valor actual de una variable slo hay que escribirla y pulsar la tecla una variable denominada Return
ans,
correspondiente resultado. Si deseamos que esta variable no aparezca en pantalla, basta teclear al nal de la expresin el smbolo ; (punto y coma).
Path Browser.
Matlab puede llamar a una gran variedad de funciones, tanto propias como
programadas por los usuarios. A veces, puede incluso haber funciones distintas que tienen el mismo nombre. Por tanto, es interesante saber cmo busca Matlab cualquier funcin que se le pida que ejecute. La clave es el camino de bsqueda ( el nombre de una funcin. El mediante la orden
search path
Set Path
en el men
File ).
El contenido de dicho directorio puede obtenerse con la orden actual se utiliza la orden modo grco.
cd .., se sube un nivel en la jerarqua de directorios. Estos cambios tambin pueden hacerse de un Editor/Debbuger.
En Matlab tienen particular importancia los M-archivos, esto es, archivos
dir.
con la extensin *.m, los cuales son archivos de texto ASCII que contienen un cierto conjunto de rdenes de Matlab. La importancia de estos archivos es que al teclear su nombre en la lnea de rdenes de Matlab y pulsar Return , se ejecutan todas las rdenes contenidas en dicho archivo.
Matlab dispone de un editor propio que permite tanto crear y modicar estos archivos (proceso
de edicin-
Debugger ).
Editor ),
En un nivel mucho ms avanzado, no est de ms saber que Matlab permite adems optimizar los programas que diseemos mediante un anlisis detallado del tiempo de ejecucin de cada orden de dicho programa (
Matlab Proler ).
Workspace Browser.
macin sobre el
El espacio de trabajo (
Workspace )
que en un determinado momento estn denidas en la memoria del programa. Para obtener infor-
workspace
3. Matrices y Vectores
Matrices y vectores.
En Matlab se trabaja fundamentalmente con matrices. De hecho, para
Matlab, los nmeros son simplementes matrices cuadradas de orden uno. Las matrices pueden
denirse de las siguientes formas: Se escribe la matriz entre corchetes, colocando las las una a continuacin de otra, separadas por el simbolo ;. Entre los elementos de una misma la podemos colocar una coma o dejar un espacio en blanco. Se escribe la matriz entre corchetes, colocando cada la en un rengln. La matriz vaca se representa por
[ ].
Como es natural, si slo introducimos una la tenemos un vector la. Matlab incluye una orden muy til para generar vectores cuyas coordenadas estn en progresin aritmtica. En concreto, la estructura
a:b:c
Ejercicio.
>> >> >> >> >> >>
Genere tres vectores cuyos elementos representen una particin del intervalo [-1,1] en
cinco, ocho y diez subintervalos iguales. Con las tres primeras coordenadas de cada uno de ellos, genere las tres las de una matriz
3 3 y calcule el determinante de dicha matriz y de su traspuesta. u=-1:2/5:1, v=-1:2/8:1, w=-1:2/10:1 A=[-1, -0.6, -0.2 -1, -0.75, -0.5 -1, -0.8, -0.6] B=A' det(A), det(B)
Ejercicio. Obtenga de cuatro maneras distintas la submatriz formada por la segunda y la tercera
la de la siguiente matriz
1 1 A= 1 1
1 2 2 2
1 2 3 3
1 2 . 3 4
Operaciones bsicas con matrices. Para trabajar con matrices y vectores, Matlab cuenta con
una serie de operaciones bsicas que citamos a continuacin. En todas ellas es fundamental que las dimensiones sean las adecuadas. El smbolo + para sumar matrices y el - para restar matrices. El smbolo * para multiplicar matrices. Si el smbolo lo precedemos de un punto se obtiene la multiplicacin coordenada a coordenada. El smbolo ^ para la la potenciacin de matrices. Con el punto delante se obtiene la operacin coordenada a coordenada. El smbolo ./ para dividir dos matrices coordenada a coordenada. Cuando una de ellas es un nmero puede quitarse el punto. Funciones elementales sobre vectores/matrices (de signicado completamente intuitivo en ingls):
Adems, Matlab incorpora funciones que permiten generar matrices que surgen con frecuencia en los clculos:
Ejercicio. Dena la matriz A cuadrada de orden 15 tal que todos sus elementos son nulos, salvo la
primera la y la primera columna, las cuales toman los valores, respectivamente, de la columna o la en que se encuentran.
>> A=[1:15;[2:15]',zeros(14)]
denidas por
A(i, j) = 10(i j) + 1; i, j = 1, ..., 10. 1, ij =1 B(i, j) = , i, j = 1, ..., 20. 0, en otro caso >> A=[1:10]'*ones(1,10); A=100*(A-A')+1 >> B=[zeros(1,10);eye(9,10)]
4. Grcas en Matlab
La ventana grca de Matlab.
Para mostrar las correspondientes grcas, Matlab abre una nueva ventana, la denominada ventana de gura. Si ya hubiera una ventana de gura, se borra la ventana de gura actual y se dibuja en ella la nueva grca. Para utilizar dos o ms grcas en diferentes ventanas de gura, se usa la orden la ventana grca activa.
gure. La orden gure(n) muestra, o crea si no la hay, la ventana de gura n-sima y sta pasa a ser la ventana de gura activa. La orden close cierra Grcas bidimensionales. Para obtener grcas 2-D, Matlab admite cuatro opciones: grcas
en coordenadas cartesianas, grcas en coordenadas polares, grcas de barras y grcas de escaleras. La orden para representar datos bidimensionales en coordenadas cartesianas es crear grcas en coordenadas polares es generan usando las ordenes La orden
plot
polar
plot, para
escala los ejes para ajustar los datos, representa los puntos y, a continuacin,
conecta los puntos con una lnea recta. Tambin aade una escala numrica y coloca de forma automtica marcas en ambos ejes. Conviene aclarar que lo primero que se hace al ejecutar la orden
plot es eliminar toda la informacin (lneas, ejes,...) sobre la grca anterior, si la hubiere.
grca donde a la curva anterior se le aada la recta tangente en
Ejercicio. Dibuje la grca de la funcin exponencial en el intervalo [-2,2]. Obtenga una segunda
x = 0. >> x=-2:0.01:2; y=exp(x); plot(x,y) >> z=x+1; plot(x,y,x,z)
Grcas tridimensionales. Para obtener grcas 3-D, Matlab admite tres opciones: grcas de
lneas, grcas de supercies y grcas de contorno. La orden bsica para realizar grcas de lneas es contorno es
plot3, las rdenes para grcas de supercies son mesh y surf contour.
Grcas de lneas. La funcin plot3 es anloga a su homloga bidimensional plot. Su forma ms sencilla es plot3(x,y,z) la cual dibuja una lnea que une los puntos (x(1),y(1),z(1)), (x(2),y(2),z(2)), (x(3),y(3),z(3)), etc, y la proyecta sobre un plano para poderla representar en
pantalla.
5. Archivos en Matlab
Comentarios generales.
Para trabajar con datos de gran tamao, o bien para disear nuevas funciones en Matlab, es completamente imprescindible trabajar con archivos y, por tanto, con el editor de texto de Matlab. Los archivos adicionales que Matlab utiliza bsicamente son aqullos
con extensin *.m y una parte importante de cada sesin con Matlab es crear y renar este tipo de archivos. Atendiendo a su uso, los M-archivos suelen dividirse en dos grandes grupos: archivos de instrucciones o tipo
script
y archivos de funciones.
Como se coment, Matlab dispone de un editor excelente que facilita enormemente el trabajo con los M-archivos. En concreto, el editor muestra con diferentes colores los diferentes tipos o elementos constituyentes de las rdenes (en verde los comentarios, en rojo las cadenas de caracteres, ...). Adems, el editor se preocupa tambin de que las comillas o parntesis que se abran tengan el correspondiente elemento de cierre. Para acceder al editor desde la ventana principal de Matlab, basta pulsar el men (si se desea crear un archivo nuevo), o bien pulsar el men
New/ M-le
File
y despus
(si se desea abrir un archivo ya existente). El manejo de esta nueva ventana es totalmente intuitiva.
Ejercicio.
Pulsar: File New M-file Escribir: A=[1 2; 2 1] Pulsar Guardar como En Nombre de Archivo escribir prueba.m Con la pestaa Guardar en, situarse en C: \Matlab7.1 Pulsar Guardar
Ejercicio. Escriba y guarde en un archivo de nombre datos.m la matriz cuadrada de orden veinte
tal que los elementos de su diagonal son todos iguales a 3 y las dos subdiagonales principales estn formadas por unos. Calcule su determinante. Posteriormente cambie la diagonal por el vector cuyas coordenadas son los primeros veinte nmeros naturales y vuelva a calcular el determinante de la nueva matriz.
Escribir en un archivo: A=diag(3*ones(20,1)); A=A+diag(ones(19,1),1); A=A+diag(ones(19,1),-1); Guardar en datos.m Ejecutar el archivo y escribir en >> det(A) Abrir datos.m A=A-diag(3*ones(20,1)); A=A+diag(1:20);
Matlab
Matlab
Archivos de funciones.
cin de funciones que ejecuta Matlab. Es decir, se pueden crear funciones especcas para algn problema concreto y, a partir de su introduccin, dichas funciones tienen el mismo rango que las funciones del sistema y se ejecutan de igual forma. Las variables en los archivos de funciones son locales, es decir, no afectan a los valores de las variables que se hayan creado durante la sesin de trabajo con Matlab. Se aconseja que el nombre de un archivo de funcin sea el nombre de la funcin seguido, obviamente, de la extensin *.m. La estructura de un archivo de este tipo es la siguiente: la primera lnea comienza con la orden de Matlab denir junto con los argumentos de entrada y salida separados por comas. Es decir, function [argumentos de salida]=nombre de la funcin(argumentos de entrada). A continuacin, puede haber diversas lneas de comentario que han de estar precedidas necesariamente por el smbolo %. Conviene decir que son precisamente estas lneas las que aparecern en pantalla al usar la orden
para poder evaluar la funcin. Tanto los argumentos de entrada como los de salida no son obligatorios y, si no aparecen, no hace falta escribir los correspondientes corchetes o parntesis.
en
n.
function graf(n) x=-2:0.01:2; y=x.^n; plot(x,y);axis([-2 2 -4 12]); hold on plot([-2.2 2.2],[0 0],'w', [0 0], [12 -4],'w'); grid; hold off;
6. Programacin en Matlab
La orden for. La sintaxis para la utilizacin de esta orden de control es
for variable=vector instrucciones sobre la variable end
El signicado es el siguiente: mientras la variable recorre los valores del vector, se realizan las instrucciones descritas, con la variable tomando dichos valores. Matlab permite anidar varias rdenes
for.
x0 = 4.
x1 , x15 y x50 . Crear un archivo iter.m function z=iter(n) x=4; for k=1:n x=x^2-2*x; end z=x; En Matlab >> iter(1) >> iter(15) >> iter(50)
P1
Q1 Q2 Q1
y si
P1
P1
es falso se
Q2 .
P1
Ejercicio. Disee una funcin sobre los nmeros enteros que asigna el valor 1 a los nmeros pares
y positivos, el valor -1 a los nmeros impares y positivos y el valor cero a los nmeros restantes.
function paridad=paridad(n) if n <= 0 paridad=0; elseif rem(n,2)==0 paridad=1; else paridad=-1; end
El signicado de este esquema es que las instrucciones se irn ejecutando mientras la relacin lgica sea cierta.
Ejercicio.
eps de Matlab.
while.
Compare el
7. Ejercicios Adicionales
1. Ejecute la orden
logo
clock, date
calendar.
3. Liste las rdenes de Matlab relacionadas con la palabra cuadrado ( dicha informacin para determinar las races cuadradas de -3.
square
en ingls) y utilice
visor ) de dos enteros. Determine el mximo comn divisor del par (30,24) y del par (3072,288).
p(x) = x2 2x + 1
y compruebe que calcule el valor de
nmeros que maneja Matlab. 7. Dibuje la grca de la elipse centrada en el origen y de semiejes 8. La orden
5. n? El argumento
factorial
sabra disear una funcin que efecte la factorizacin de un nmero natural de entrada debe ser
n.
s.
ndstr(s,'con') y explique la
10
11. Compare con el operador relacional < las cadenas 'hola' y 'majo'. Considere el vector
x=
[1, 5, 9, 2]
Matlab.
y ejecute
x(x>=5).
12. Qu elementos de la matriz 13. Considere el vector la que 50. 14. Usando dos instrucciones
magic(9)
formado por los nueve primeros nmeros naturales. Usando opert adores lgicos/relacionales, determine qu elementos de la matriz v v son mayores o iguales
Sabra generar
for?
fprintf,
xn+1 = x2 2, x1 = 0. n
El argumento de entrada debe ser
n. n,
que
16. Disee una funcin en Matlab cuyo argumento de entrada sea un nmero natural dicho clculo. 17. Lea detenidamente la informacin sobre la orden matriz cuadrada de orden
pregunte si se desea calcular su cuadrado y, segn sea la respuesta del usuario, realice o no
N:
nales adyacentes inmediatas superior e inferior estn formadas por elementos iguales todos 1 ; por encima y por debajo de las subdiagonales adyacentes todos los elementos de las a 2 correspondientes subdiagonales son iguales a 0. 18. Es conocido que la suma de la serie geomtrica de razn
(0, 1)
es igual a
n =
n=1
. 1 N
de sumandos de la serie
anterior de modo que la correspondiente suma nita que aproxime que un cierto valor
tol.
19. Considere el conjunto de datos n s(n) Dibuje 3 0.257 5 0.0646 9 0.0151 17 3.96 33 65
10
9.7810
2.45
104
frente a
s(n)
plot
loglog.
n y s. Prediga el valor de
s(129).
11
21. Dibuje una grca de la funcin logaritmo en [0.5,2] que incluya una rejilla, los nombres de los ejes coordenados y el ttulo Logaritmo. Posteriormente, quite la rejilla, aada una marca en la nica raz real que tiene el logaritmo y un comentario al lado de dicha raz. 22. Dibuje en una matriz grca de cuatro grcos, la funcin
plot3.
Camera Toolbar
visualize
donde
t (, )
t, u [0, 2].
Asimismo, dibuje el cilindro circular recto (paralelo al eje OZ) que pasa por
r(t) = 4 cos(t), t [0, 2]. z = x2 + y 2 en el cuadrado [2, 2] [2, 2]. los planos z = 0,5, z = 1, z = 1,5 y z = 2.
Los niveles deben corresponder a los cortes con 2 2 2 Repita el ejercicio con la supercie z = x + y . Por qu, en estos dos casos, las grcas 3D de niveles son tan similares?
12