Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El nombre del software MATLAB proviene de las palabras en ingls MATrix LABoratory.
Es un programa muy potente con el cual podremos realizar clculos numricos con
vectores y matrices, trabajar con nmeros escalares, tanto reales como complejos y
utilizar una amplia variedad de grficos en dos y tres dimensiones.
La elaboracin de un programa para Matlab es muy sencilla. Basta abrir un documento de
texto (se puede hacer con cualquier editor, Matlab trae uno incorporado), escribir las
instrucciones tal como se pondran en la ventana de comandos y guardar el documento
con la extensin .m (por ejemplo: miprogama.m). Matlab reconoce automticamente los
ficheros que tienen extensin .m
Si en la ventana de comandos se introduce: miprograma
las rdenes almacenadas en el fichero miprograma.m se ejecutarn, una tras otra. A ese
recorrido a travs de las instrucciones se le conoce con el nombre de flujo. Los comandos
de un programa se denominan tambin sentencias.
Recordemos que en Matlab trabajamos sobre el Workspace que es la ventana inicial
donde ingresamos comandos y los ejecutamos directamente.
Frecuentemente una serie de comandos debe ser ejecutada varias veces durante una
misma sesin, para evitarnos el trabajo de ingresarlos continuamente existen los scripts.
1. PROGRAMACION EN MATLAB :
1.1 Ficheros M.File
Ya debe resultar claro que MATLAB responde a cada orden segn se van
introduciendo en la ventana de comandos. Para problemas simples este
mtodo es rpido y eficiente, pero cuando el nmero de rdenes aumenta o se
desea reevaluar ordenes cambiando el valor de algunas variables, el mtodo
se hace tedioso.
MATLAB permite solucionar este problema de una manera muy sencilla.
Podemos colocar las rdenes en un archivo de texto y guardarlas para
posteriormente pedirle a MATLAB que lo abra y ejecute las rdenes
contenidas en l.
Estos archivos de texto se denominan script (guin) o archivos M (debido a
que su extensin es .m).
Un fichero .m puede llamar a otros ficheros .m y ficheros de comandos pueden
ser llamados desde ficheros de funciones. En estos casos es importante tener
en cuenta la definicin de las variables a utilizar, en la lnea de que tengan un
tratamiento local o global.
Son ficheros de texto sin formato y que pueden crearse a partir de un editor de
textos, no obstante, lo mejor es utilizar el editor del propio programa al que se
accede por defecto al abrir un nuevo fichero.
1.2 Funciones de Ingreso y salida de datos
Input: Esta funcin permite imprimir un mensaje en la lnea de
comandos de Matlab y recuperar como valor de retorno un valor
numrico o el resultado de una expresin tecleada por el usuario.
Ejemplo:
Disp: Esta funcin permite imprimir en pantalla un mensaje de texto o
el valor de una matriz, pero sin imprimir su nombre. En realidad, disp.
Siempre imprime vectores y/o matrices: las cadenas de caracteres son
un caso particular de vectores.
Ejemplo:
1.3 Sentencias de Control de Flujo
Bifurcaciones y bucles:
Se van a introducir aqu los primeros conceptos de programacin.
MATLAB posee un lenguaje de programacin que como cualquier otro
lenguaje dispone de sentencias para realizar bifurcaciones y bucles. Las
bifurcaciones permiten realizar una u otra operacin segn se cumpla o
no una determinada condicin. Los bucles permiten repetir las mismas o
anlogas operaciones sobre datos distintos.
1.3.1 Sentencia If
La sintaxis de la sentencia if es:
Existe tambin la bifurcacin mltiple, en la que pueden concatenarse
tantas condiciones como se desee, y que tiene la forma:
Ejemplo:
Ingrese dos nmeros y determine cul es el mayor y menor:
1.3.2 Sentencia switch
Esta sentencia realiza la funcin anloga a un conjunto if...elseif
concatenados. Su forma general es la siguiente:
Al principio se evala la switch variable, el resultado debe ser de un
numero escalar o una cadena de caracteres. Este resultado se compara
con la case i, y se ejecuta el bloque de sentencias que corresponda. Si
ninguno es igual a switch variable se ejecutan las sentencias
correspondientes a otherwise.
Ejemplo:
Dado un nmero entre el 1 y 5 mostrar el da de la semana.
1.3.3 Sentencia while
La sintaxis de la estructura while es la siguiente.
Donde condicin puede ser una expresin vectorial o matricial. Las
sentencias se siguen ejecutando mientras haya elementos distintos de
cero en condicin, es decir, mientras haya algn o algunos elementos
true. El bucle termina cuando todos los elementos de condicin son false
(es decir, cero).
Ejemplo:
Suma de los cuadrados de los primeros n nmeros naturales.
1.3.4 Sentencia For
Permite ejecutar de forma repetitiva un comando o grupo de comandos.
La forma general de un bucle for es:
Ejemplo:
Listar los nmeros naturales impares entre 1 y n.
1.4 Sentencias Especiales
1.4.1 Sentencia Break
Se utiliza para manipular el comportamiento normal de los bucles, ya sean
for, if o while, y as saltarse algunas repeticiones. La
sentencia BREAK permite terminar el bucle de golpe. Al llegar a una
instruccin BREAK, el programa sale del bucle y contina ejecutando el
resto de comandos.
1.4.2 Sentencia Try.catchend
Controla los errores que se producen durante la ejecucin de un
programa.
Si el error se produce durante la ejecucin del bloque sentencias1, el
control se transfiere al bloque sentencias2. Si la ejecucin transcurriera
sin errores, la sentencia2 no se ejecuta. La sintaxis es la siguiente:
1.4.3 Sentencia Continue
La sentencia CONTINUE se utiliza para saltarse alguna iteracin dentro
de un bucle for o while, saltndose dentro de la iteracin todos los
comandos hasta el final, hasta la siguiente iteracin.
1.5 Ventana de Figura
Todas las grficas realizadas en Matlab se realizan en ventanas
denominadas ventana de figura.
Cada ventana de figura tiene asignado un identificador, con el cual
podemos hacer referencia a ella. A este identificador se le conoce como
un manipulador (handle) de ventana de figura.
1.5.1 Creacin de Ventanas de Figura
Las ventanas de figuras se crean de dos maneras:
a. Automticamente al invocar alguna funcin de trazado de grafica
b. Manualmente, mediante la invocacin a la funcin figure. La funcin
figure retorna a un controlador.
2. GRAFICAS DE FUNCIONES :
2.1 Graficas en 2D
2.1.1 Cartesianas
Para hacer graficas de funciones de una variable con MatLab, primero
tenemos que crear una tabla de valores de la variable para despus
dibujar la funcin.
Ejemplo:
Por ejemplo, queremos dibujar la grfica de la funcin
Primero creamos una tabla de valores para x
Con este comando hemos formado una tabla (el vector x) con 200 valores
entre 0 y 2. Otra forma de conseguir el mismo resultado sera utilizar el
comando
Ahora calculamos los valores de y
Y por ltimo dibujamos la grfica.
2.1.2 Paramtricas
Veamos ahora como se pueden representar curvas en el plano dadas en
forma paramtrica, es decir, de la forma
Ejemplo:
Queremos dibujar la grfica de la curva
(
)
En primer lugar generamos los valores de t en el intervalo indicado,
Y ahora lo podemos dibujar de dos formas distintas:
Y otra forma de hacerlo es utilizar el comando
Los dos comandos producen el mismo resultado, sin embargo, la forma
de ejecucin es diferente, la segunda es ms divertida, aparece un
circulito (el cometa) que va dibujando la curva. La velocidad de ejecucin
depende del nmero de puntos que hayamos generado con el comando
linspace.
Dibujada una curva en paramtricas existe la posibilidad de dibujar sobre
la misma los vectores velocidad, utilizando el comando quiver.
Ejemplo:
Para dibujar los vectores velocidad sobre la curva
La sintaxis del comando es El nmero de vectores
que aparecen en este caso es 20. Si el nmero de puntos que se indica
con el comando linspace es demasiado grande, puede que no se aprecie
con claridad la grfica, ya que este ser el nmero de vectores que se
dibujen.
2.1.3 Polares
Una curva en coordenadas polares es la imagen de la funcin
Un punto de la curva en polares (
y el
ngulo que forma el vector de posicin del punto con el eje horizontal,
medido en sentido positivo, es
.
Por lo tanto, la relacin entre las coordenadas polares y las coordenadas
paramtricas es:
Para dibujar una curva en polares con MatLab se utiliza el comando polar.
Ejemplo:
Para dibujar la grfica de
Generamos los valores del ngulo
Calculamos los valores de r
Lista de comandos para graficas en 2D:
Comandos Descripcin
Dibuja el conjunto de puntos (x,y) en un
sistema cartesiano.
Grfico de barras vertical donde y
representa las frecuencias y x define el
intervalo en el eje x.
Grfico de barras horizontal, donde y
representa las frecuencias y x define el
intervalo en el eje x.
Grafica de bastones verticales donde y
representa las frecuencias y x define el
intervalo en el eje x.
Grafica de una curva escalonada.
Dibuja una curva en coordenadas polares,
y=y(x).
Realiza el grafico de sectores relativo al
vector x.
Dibuja el histograma angular relativo al
vector x.
Dibuja un conjunto de flechas con origen
en (0,0) cuya magnitud y direccin estn
determinados por el mdulo de z. (z=x+iy)
Dibuja un conjunto de flechas con origen
en el eje x, cuya magnitud y direccin
estn determinados por el mdulo de y,
Grafica la funcin f en el intervalo [a,b].
Grafica la funcin f en el intervalo [a,b],
adicionndole el titulo por defecto.
Realiza una grfica cartesiana con escala
logartmica en los ejes coordenados.
Realiza una grfica cartesiana con escala
logartmica en el eje x y escala normal en
el eje y.
Realiza una grfica cartesiana con escala
logartmica en el eje y y escala normal en
el eje x.
Dibuja una regin poligonal cuyos vrtices
son los elementos de los vectores
columna x, y; el parmetro c contiene el
color a graficar.
2.2 Grficas mltiples
2.2.1 Mltiples grficos en una sola ventana de figura :
Utilizando el comando plot se puede realizar varias graficas en una sola
ventana figura. Los colores lo establecen Matlab
Ejemplo:
Utilizando el comando hold on antes de un nuevo comando plot podemos
incrementar graficas en una sola ventana figura.
2.2.2 Grficos en mltiples ejes :
Una ventana figure se puede dividir en ejes verticales y horizontales y
permitir que se grafiquen varias figuras para esto se utiliza el comando
subplot (m, n, k): divide la ventana figura en filas y n columnas, siendo k
la secuencia de la grfica.
Ejemplo:
2.3 Funciones de graficas en 3 dimensiones
2.3.1 Cartesianas
Para dibujar grficos de funciones de dos variables z = f(x,y), al igual que
para funciones de una variable, en primer lugar hay que generar tablas de
valores para las variables x e y, en realidad, ahora lo que tenemos que
hacer es generar un mallado sobre un rectngulo del plano XY. Para eso
se utiliza el comando meshgrid.
Ejemplo:
Si queremos dibujar la grfica de la funcin
en la regin del plano habr que
efectuar los pasos siguientes:
Generamos el mallado
Sustituimos en la funcin para calcular los valores de z
2.3.2 Paramtricas
Se generan de una manera similar a las curvas en el plano, con la
diferencia de que aqu se utilizan los comandos plot3 o comet3, tambin
existe un comando quiver3 para dibujar vectores velocidad sobre las
curvas.
Ejemplo:
Queremos dibujar la hlice
y sobre ella los vectores velocidad.
Generamos los valores de t:
Y ahora podemos utilizar dos comandos: plot3 lo que nos da el dibujo
completo
Lista de comandos para graficas en 3D:
Comandos Descripcin
Dibuja el conjunto de puntos (x,y,z) en un
sistema de tres dimensiones.
Dibuja una regin poligonal cuyos vrtices
son los elementos de los vectores
columna x,y,z. el parmetro c contiene el
color a graficar.
Crea arreglos bidimensionales a partir de
los arreglos x e y para elaborar la
grfica de una superficie explicita z=f(x,y).
Grafica una superficie explicita z=f(x,y)
con los arreglos x, y e z.
Grafica una superficie explicita z=f(x,y)
con los arreglos x, y e z, proyectando las
curvas de nivel en el plano xy.
Grafica una superficie explicita z=f(x,y)
con los arreglos x, y e z, cerrando la
grfica con las fronteras de dominio.
2.4 M
a
n
i
p
u
l
a
c
i
n
d
e
g
r
f
i
c
o
s
3
D
2.4.1 S
o
m
b
r
as y Colores:
Para conseguir efectos de sombreados y colores diferentes se pueden
consultar todas las posibilidades de los comandos colormap y shading.
Algo que resulta tambin interesante, es aadir una escala de colores al
dibujo que nos permite conocer las alturas (coordenada z) de los
diferentes puntos de la grfica, esto se consigue con el comando colorbar
(despus de dibujada la grfica).
Ejemplo:
Para generar la grfica de la figura ha sido utilizada la siguiente secuencia
de comandos:
Grafica una superficie explicita z=f(x,y)
con los arreglos x, y e z, pintando cada
una de las celdas.
Grafica una superficie explicita z=f(x,y)
con los arreglos x, y e z, proyectando las
curvas de nivel en el plano xy.
Grafica una superficie explicita z=f(x,y)
con los arreglos x, y e z, considerando una
iluminacin en formato bsico.
Grafica una superficie explicita z=f(x,y) en
forma de cascada.
Grafica las curvas de nivel de la superficie
explicita de la funcin z=f(x,y).
Grafica barras verticales, donde y
representa las frecuencias y el incremento
en x define el lado del cuadrado que es
la base del paraleleppedo.
Grafica con movimiento una curva
paramtrica x=x(t), y=y(t), z=z(t)
Grafica la esfera unitaria usando 20x20
caras.
Grafica una superficie de revolucin
generada por la rotacin de la funcin
f=f(t) en el intervalo definido para t.
Grafica puntos de una curva paramtrica
x=x(t), y=y(t), z=z(t), representndola con
bastones.
Grafica sectores tridimensionales para la
frecuencia de x.
Grafica una superficie explicita z=f(x,y)
como cintas tridimensionales, c
especifica el ancho de la cinta.
Grafica los vectores de componentes
(u,v,w) en los puntos (x,y,z); c indica el
tamao de los vectores
2.4.2 Rotacin de grfica:
Otro comando interesante en las grficas 3D es rotate3d, que nos
permite, utilizando el ratn sobre la gura, rotarla de manera interactiva en
tres dimensiones
2.4.3 Superficies Complejas
El comando cplxmap permite representar graficas de funciones complejas
de variable compleja en el siguiente sentido:
Sea la funcin compleja de variable compleja
El comando dibuja una grfica tridimensional en la
que el eje X es la parte real de la variable, es decir, Real(z) ; el eje Y es la
parte imaginaria de la variable, es decir, Im(z) y el eje Z es la parte real de
la imagen de la funcin, es decir, Re(f(z)).
La variable z va a pertenecer siempre al dominio constituido por el disco
unidad centrado en el origen y las coordenadas de los puntos deben estar
en forma polar. Esto se consigue utilizando previamente el
Comando , donde n es el nmero entero positivo.
Ejemplo:
Con los comandos
2.4.4 Grficos Estadsticos:
2.4.4.1 Diagrama de Sectores
Resultan tiles para representar datos de tipo cualitativo, en los
que tenemos varias opciones, el diagrama de sectores permite
compararlas en un crculo con sectores cuyo ngulo es
directamente proporcional al porcentaje de cada opcin.
Los resultados de las elecciones generales del 12 de marzo de
2000 al Congreso de los Diputados fueron los siguientes.
Formacin Poltica Nmero de Escaos
Partido Popular 183
Partido Socialista Obrero 124
Convergencia y Unin 15
Izquierda Unida 8
Partido Nacionalista Vasco 7
Otros 12
Total 350
Para dibujar un diagrama de sectores de los resultados de las
elecciones, procedemos como sigue. Introducimos los datos en un
vector
Y ahora, dibujamos el diagrama. Se puede poner una leyenda que
nos indique que sector corresponde a cada partido poltico. Como
se puede observar en el grfico, MatLab calcula automticamente
los porcentajes correspondientes y los pone junto a su sector.
Tanto para el comando pie, como para el comandopie3 existe la
posibilidad de separar uno o ms sectores para destacarlos con
respecto de los dems. Por ejemplo, si queremos separar los
sectores correspondientes a los dos primeros datos
El vector que se pone a continuacin de x debe tener la misma
longitud que el x, los unos y los ceros indican, respectivamente, los
sectores que queremos separar y los que no.
Ejemplo:
2.4.4.2 Diagrama de Pareto
El diagrama de Pareto que produce MatLab constara de barras
cuyas alturas son el nmero de escaos, ordenadas en forma
decreciente y sobre las barras, un polgono con las frecuencias
acumuladas de los escaos.
Ejemplo:
Formacin Poltica Nmero de Escaos
Partido Popular 183
Partido Socialista Obrero 124
Otros 42
Total 350
El diagrama de Pareto que produce MatLab constara de barras
cuyas alturas son el nmero de escaos, ordenadas en forma
decreciente y sobre las barras, un polgono con las frecuencias
acumuladas de los escaos.
Adems, en el eje vertical derecho aparece una escala de
porcentajes.
Para generarlo, escribimos
2.4.4.3 Diagrama de Barras
Existen varias posibilidades para representar diagramas de barras.
Ejemplo:
Supongamos que queremos representar los siguientes datos en un
diagrama de barras:
Introducimos los datos en un vector
Y ahora usamos los comandos bar,barh,bar3 y bar3h para generar
los grficos. (Usando el comando subplot podemos conseguir que
aparezcan todos en la misma figura.)
2.4.4.4 Histogramas
Para generar histogramas se utiliza el comando hist.
Ejemplo:
Generamos 1000 nmeros aleatorios siguiendo la normal N(0,1)
Con la orden obtenemos un histograma en el que los
datos aparecen agrupados en 10 intervalos. Si queremos que
aparezcan ms o menos intervalos, habr que indicarlo con
donde N es el nmero de intervalos.
2.5 Superficies: generador por funciones
2.5.1 Esfera
Se genera utilizando el comando>>sphere(n), donde n es el nmero de
puntos en los que queda dividido el ecuador de la esfera.
Cuanto mayor sean, mayor ser la aproximacin a la curvatura real de la
esfera (de radio 1, centrada en el origen.) Poniendo solo , el
valor que tomara n ser 20, por defecto
2.5.2 Vectores Normales a una superficie
Dibujar los vectores normales a la superficie de una esfera siguiendo los
siguientes pasos:
Dibujar una esfera utilizando lo descrito anteriormente, pero guardando la
informacin en tres variables
Utilizar el comando
Este comando tambin se puede utilizar para dibujar los vectores
normales en superficies de funciones de la forma Para
dibujar las normales en el sentido opuesto habr que poner
2.5.3 Cilindro
El comando genera automticamente un cilindro de
revolucin de radio R, donde n es el nmero de puntos de la
circunferencia de la base del cilindro. Como en el caso de la esfera, si
usamos solo , el nmero n es, por defecto, 20.
2.6 Geometra diferencial de curva