Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A MATLAB
Figura 1
1
El directorio puede ser igualmente modificado en la ventana de directorio actual.
» who Muestra un listado con las variables del espacio de trabajo.
Estas variables aparecen, igualmente, en la ventana de espacio de trabajo.
» dir Muestra un listado con los archivos del directorio actual.
Esta información también es asequible a través de la ventana de directorio actual.
» edit M-fichero Abre una ventana de edición con un M-fichero.
Si no se especifica un M-fichero la ventana de edición se abre en blanco. Igualmente puede selec-
cionarse File → New → M-file, o hacer clic en el botón de la barra de herramientas.
¯
» save Guarda todas o algunas de las variables del espacio de trabajo.
Análogamente, puede seleccionarse File → Save Workspace As...
» exit/quit Cierra el programa MATLAB.
Igualmente es posible cerrar el programa mediante File → Exit MATLAB.
2
1.6 Editor/Debugger de M-ficheros
La interacción con MATLAB puede llevarse a cabo directamente a través de la ventana de comandos.
Alternativamente, es posible escribir, en primer lugar, todo un conjunto de funciones o entradas en un
M-fichero y ejecutarlas posteriormente. La creación de este tipo de M-ficheros se lleva a cabo en el
Editor/Debugger que se muestra en la Figura 2.
Copiar Buscar
Cortar Pegar Ir a una función
Abrir nuevo
M-fichero
Deshacer
Figura 2
Este editor puede abrirse haciendo clic en el botón de la barra de herramientas, escribiendo edit
en la ventana de comandos, o bien seleccionando File → New → M-file.
¯
Un M-fichero, ya existente, se abre utilizando File → Open... Igualmente, es posible seleccionar bien
un M-fichero, o bien una o varias sentencias, y editarlos empleando el botón derecho del ratón.
En este tipo de ficheros, resulta útil introducir comentarios aclaratorios. Para que MATLAB pueda
distinguir entre comentarios y entradas, los primeros irán precedidos de un %.
También es importante resaltar que cuando una expresión termina en punto y coma (;) se calcula
su resultado pero no se muestra en pantalla. Al no mostrar los resultados intermedios que no sean de
interés, se consigue agilizar el cálculo.
3
continuación se comenta el modo de asignar un valor a una variable, especialmente cuando se trata de
un vector o una matriz, así como el modo de operar entre estas variables.
» v=4
Si al resultado de una operación no se le asigna un nombre, MATLAB utiliza, por defecto, ans
(answer) como nombre de la variable. El contenido de ans puede emplearse en la operación
subsiguiente.
• Variables vectoriales
• Variables matriciales
» M = [a11 , a12 , . . . , a1n ; a21 , a22 , . . . , a2n ; . . . ; am1 , am2 , . . . , amn ] o bien,
» M = [a11 a12 . . . a1n ; a21 a22 . . . a2n ; . . . ; am1 am2 . . . amn ] Variable matricial de dimensión
m ∗ n.
a11 a12 ··· a1n
a21 a22 ··· a2n
M = .. .. .. .. .
. . . .
am1 am2 ··· amn
» M(i,:) Fila i-ésima de la matriz de M .
» M(:,j) Columna j-ésima de la matriz de M .
» size(M) Muestra el número de filas y columnas de M .
» diag(v) Crea una matriz diagonal, siendo los elementos de la diagonal principal
los del vector v.
» eye(n) Genera la matriz identidad de orden n.
» zeros(n) Genera una matriz cuadrada de ceros, de orden n.
» ones(n) Genera una matriz cuadrada de unos, de orden n.
» M0 Devuelve la traspuesta de la matriz M .
» trace(M) Calcula la traza de la matriz M .
» det(M) Obtiene el determinante de la matriz M .
» rank(M) Calcula el rango de la matriz M .
» M^n Devuelve la potencia n−ésima de la matriz M .
» inv(M)≡ Mˆ − 1 Calcula la inversa de la matriz M .
• Operadores
Operador Definición
+ Suma de escalares, vectores o matrices.
- Resta de escalares, vectores o matrices.
* Producto de escalares o matrices.
/ Cociente escalar.
^ Potencia de escalares o potencia escalar de una matriz.
.* Producto, "elemento a elemento", de vectores o matrices.
./ Cociente, "elemento a elemento", de vectores o matrices. También permite dividir
un escalar por todos los miembros de un vector o una matriz.
.^ Potencias, "elemento a elemento", de vectores o matrices.
4
Ejemplo: Sean a = [1, 2; 3, 4] y b = [1, 1; 2, 2], entonces:
µ ¶ µ ¶
5 5 1 2
a∗b= , mientras a. ∗ b = .
11 11 6 8
— Definir como simbólicas las variables implicadas y aplicar una función determinada.
— Escribir esta función especificando sus argumentos entre comillas.
5
3 Un poco de Álgebra
Entre las principales capacidades de MATLAB, a continuación se comentan: la resolución de ecuaciones
y de sistemas de ecuaciones, las diversas posibilidades de simplificación, y la diagonalización de matrices.
» solve(0 ecuación0 ,0 x0 )
o alternativamente
» syms x o bien » syms x
» solve(0 ecuación0 ,x) » solve(expresión,x)
• Simplificación
Las expresiones simbólicas pueden simplificarse a través de las funciones:
» simplify Simplifica una expresión construída a partir de variables simbólicas.
» expand Escribe cada elemento de la expresión como producto de sus factores.
» simple Busca la forma más simple para una determinada expresión simbólica.
• Resolución de un sistemas de ecuaciones en las variables x1 , . . . , xn
o equivalentemente
» syms x1 x2 ...xn
» [x1 ,...,xn ]=solve(0 ec1 ,...,ec0n ,x1 ,...,xn )
o bien
» syms x1 ,...,xn
» [x1 ,...,xn ]=solve(exp1 ,...,expn ,x1 ,...,xn )
Por ejemplo, resolver el sistema de ecuaciones:
¾
2x − y = 0
.
x − 2y = 3
0
» [x, y] = solve( 2 ∗ x − y = 0, x − 2 ∗ y = 30 ,0 x, y0 )
o equivalentemente,
» syms x y
» [x, y] = solve(0 2 ∗ x − y = 0, x − 2 ∗ y = 30 , x, y)
o bien,
» syms x y
» [x, y] = solve(2 ∗ x − y, x − 2 ∗ y − 3, x, y)
Si la función solve no es capaz de encontrar una solución exacta, devolverá una solución
numérica.
6
» linsolve(A,b) Resuelve el sistema de ecuaciones lineales, cuya representación matricial
es: Ax = b (siendo A la matriz de coeficientes, b el vector de términos
independientes y x el vector de variables).
En el ejemplo anterior A = [2, −1; 1, −2], b = [0; 3]
• Polinomios
Un polinomio puede representarse a través del vector formado por sus coeficientes. Así, a partir de
un polinomio presentado de esta forma, pueden calcularse sus raíces, y viceversa.
» roots(v) Devuelve un vector con las raíces del polinomio que tiene por coeficientes los
componentes del vector v.
» poly(v) Devuelve un vector con los coeficientes del polinomio que tiene por raíces los
componentes del vector v.
• Diagonalización de matrices
» poly(A) Devuelve un vector con los coeficientes del polinomio característico asociado
a la matriz A.
» eig(A) Devuelve un vector con los autovalores de la matriz cuadrada A.
» [V,D]=eig(A) Devuelve una matriz diagonal D de autovalores de A y una matriz V cuyas
columnas son autovectores pertenecientes a los correspondientes subespa-
cios propios.
4 Un poco de Cálculo
• Límite de una función real de una variable en un punto
» syms x
» limit(f,x,x0 ) Calcula el límite de la función f (x) cuando x tiende hacia x0 .
o equivalentemente,
» syms x
» diff(f,x,n)
o equivalentemente,
» syms x1 x2 xn
» diff(f,xi ,n)
Por ejemplo, la derivada 2 de la función f (x, y) = 3x2 y 3 + 2x :
7
o equivalentemente,
» syms x y
» diff(diff(f,x),y)
Por ejemplo, la derivada cruzada de la función f (x, y) = 3x3 y 2 + 2y 2 x
» diff(diff(0 3*x^3y^2+2*y^2*x0 ,0 x0 ),0 y0 )
o bien,
» syms x y
» diff(diff(3*x^3y^2+2*y^2*x,x),y)
• Polinomio de Taylor de una función de una variable
Una vez definida x como variable simbólica,
» syms x
» taylor(f,n,x,x0 ) Calcula el desarrollo de Taylor de grado n − 1 de la función f respecto
a la variable x en torno al punto x0 .
» taylortool Abre una ventana de dibujo interactiva que grafica una función y su
desarrollo de Taylor en torno a un punto. Esta ventana permite cam-
biar: la función, el intervalo a representar, el grado y el punto en torno
al cual se calcula el polinomio.
• Matriz Jacobiana
Tras definir x1 , . . . , xn como variables simbólicas,
» syms x1 x2 xn
» jacobian([f1 ,...,fn ],x1 ,...,xn ) Calcula la matriz Jacobiana de la función vectorial
• funtool
Se trata de una herramienta interactiva dentro de la Toolbox de Matemática Simbólica.
» funtool Abre una "calculadora gráfica interactiva" que, para una función real de una va-
riable, f (x), permite Rcalcular de forma analítica y, al mismo tiempo, representar
gráficamente: f 0 (x), f (x) dx, 1/f (x) y f −1 (x) .
8
5 Representación gráfica
La representación gráfica con el programa MATLAB puede llevarse a cabo de dos formas distintas.
Cuando se consideran las variables, desde un punto de vista matricial, como columnas de datos, MATLAB
permite dibujar puntos en 2 ó 3 dimensiones. Por otro lado, las Toolboxes de Matemática Simbólica
también permiten dibujar funciones a partir de su expresión analítica. Nos centraremos principalmente
en este segundo tipo de representaciones geométricas.
A continuación se comentan, brevemente, algunos comandos de importancia en la representación
gráfica en 2 y 3 dimensiones:
» figure Abre una nueva ventana de gráficos.
» figure(h) Crea una figura como un objeto de nombre h.
» h=figure Crea una figura como un objeto de nombre h.
» subplot(n,m,i) Permite representar varios gráficos en una misma ventana, que se divide en
n ∗ m "cajas", en cada una de las cuales se muestra un gráfico. El tercer
argumento, i, indica la caja donde se va a representar el siguiente gráfico,
contando éstas, de izquierda a derecha y de arriba abajo.
» hold on/off Conserva el gráfico existente, permitiendo que el siguiente gráfico se super-
ponga en la misma ventana (on/off, activa/desactiva esta posibilidad).
» plot(x,y) Dibuja el conjunto de puntos (xi , yi ). Lógicamente, x e y han de ser del mismo
tamaño.
Ejemplo de representación de la gráfica de una función, f (x), a través de puntos:
» x=-2:0.25:2;
» y=f(x);
» plot(x,y)
» fill(x,y,0 c0 ) Dibuja el polígono compacto de vértices dados por los pares (xi , yi ), donde
0 0
c determina el color para cada punto.
» bar(x) Gráfico de barras relativo a las frecuencias de x. Si x es una matriz, presenta
un gráfico múltiple para cada fila.
» pie(x) Gráfico de sectores relativo a las frecuencias de x.
» hist(x) Histograma relativo al vector de frecuencias de x.
» stem(x) Gráfico de racimo relativo al vector x.
» ginput(n) Devuelve las coordenadas de n puntos haciendo clic con el ratón en la
gráfica.
• Representación gráfica conocida la expresión analítica
» ezplot(0 f0 ,[a,b]) Grafica la función f en el intervalo [a, b]. Las comillas no son precisas
si la variable de la que depende la función, x, es definida como variable
simbólica con anterioridad.
9
• Representación gráfica a través de puntos
» plot3(x,y,z) Dibuja las líneas que unen los puntos (xi , yi , zi ).
» fill3(x,y,z,0 c0 ) Dibuja el polígono compacto de vértices dados por las ternas (xi , yi , zi ),
donde 0 c0 determina el color para cada punto.
» bar3(x) Genera un gráfico de barras relativo al vector de frecuencias x.
» stem3(x,y,z) Dibuja, como un gráfico de tallos, la secuencia z en los valores especi-
ficados por x e y.
» cylinder(r,n) Grafica un cilindro de radio r, con n puntos en cada circunferencia de
su sección horizontal.
» sphere(n) Grafica una esfera usando n ∗ n caras.
Ejemplo de representación de la gráfica de una función f (x, y) a través de puntos:
» [x,y]=meshgrid(-2:.1:2);
» z=f(x,y);
» plot3(x,y,z)
• En la ventana de gráficos, tras presionar , o seleccionar Tools → Edit Plot, utilizar el ratón
para seleccionar y editar los distintos objetos del gráfico de forma interactiva.
• Escribir las respectivas funciones en la ventana de comandos o en el Editor/Debugger.
A continuación se comentan algunas de las opciones que es posible modificar a través de la ventana
de gráficos. Es importante aclarar que, si bien esta ventana es intuitiva y sencilla de implementar, no
siendo necesario memorizar todos los comandos, también es más rígida, y no abarca todas las opciones
disponibles a través de la ventana de comandos.
La ventana de gráficos permite, a través de la barra de menús y/o de la barra de herramientas:
• Insertar título, leyenda, leyendas en los ejes, texto libre, flechas, líneas, o una paleta de colores.
• Hacer zoom hacia dentro o hacia afuera, cambiar la vista de los ejes y modificar o rotar los ejes en
3 dimensiones.
10
• Editar las propiedades del gráfico, bien a través del menú Edit, seleccionando las opciones Figure
Properties..., Axes Properties... o Current Object Properties..., o bien haciendo doble clic en el
objeto del gráfico que deseamos modificar de forma interactiva. Una vez abierto el editor de
propiedades, en el cuadro Edit Properties for puede seleccionarse cualquiera de las figuras y, de
ésta, los ejes o cualquier otro objeto de la misma como las líneas o la superficie. El editor de
propiedades permite:
Camera Motion I Orbit Scene Ligth Gira la fuente de luz con respecto a la
cámara.
Camera Motion I Pan Turn/Tilt Mueve el objeto enfocado, mante-
niendo la cámara fija.
• Guardarlo con un formato que permita abrirlo en una nueva sesión de MATLAB.
• Exportarlo, eligiendo el formato adecuado al programa donde lo vayamos a utilizar. Esto se consigue:
11
References
[1] (2002) MATLAB the language of technical computing. The Math Works Inc.
CD-Instalación: help/pdf_doc
Internet: vireo.gatech.edu/local/matlab/help/pdf_doc/matlab
[2] García de Jalón, J.; Rodríguez, J. I. & Brazález, A. (2001), Aprenda Matlab 6.1 como si estuviera en
primero. http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab61/matlab61pro.pdf
[3] Pérez, C. (2002), Matlab y sus aplicaciones en las Ciencias y la Ingeniería. Madrid. Prentice-Hall.
[4] Quintela Estévez, P. (1997), Introducción a Matalb y sus aplicaciones. Santiago de Compostela. Uni-
versidad de Santiago de Compostela.
[5] Sigmon, K. (1992), Introducción a MATLAB. Segunda Edición.
http://mayaweb.upr.clu.edu/~jechauz/primer35sp.pdf
[6] Sigmon, K. (1993), MATLAB primer. Third Edition. http://ise0.stanford.edu/Matlab/matlab-
primer.pdf
12