Está en la página 1de 23

Conocimientos Básicos de Programación y

Métodos Numéricos
Curso 2015-2016

Práctica 1. El Entorno de Matlab.

Objetivos de la práctica
El objetivo principal de esta práctica es utilizar la potencia de Matlab para realizar
cálculos directos de forma interactiva. Para alcanzar dicho objetivo, a lo largo de la
práctica nos dedicaremos a:
− Conocer el entorno de trabajo de Matlab.
− Realizar operaciones elementales con matrices y vectores.
− Realizar cálculos más complejos con las funciones de biblioteca predefinidas.
− Construir gráficos 2D para representar los valores almacenados en vectores y
matrices.
− Familiarizarnos con la ayuda on-line que proporciona Matlab.

Introducción a Matlab

¿Qué es Matlab?
Matlab es el acrónimo de “MATrix LABoratory”. Se trata de una aplicación
informática interactiva desarrollada para realizar cálculos científicos y de ingeniería
basados en matrices. Matlab fue creado en los años 70, por Cleve Moler, para
proporcionar un acceso a las librerías numéricas LINPACK y EISPACK sin necesidad de
usar Fortran como lenguaje de programación. Desde 1984, se comercializa por
MathWorks y a día de hoy es muy utilizado por estudiantes, científicos e ingenieros en
universidades, centros de investigación, ingenierías y en la industria.
Matlab integra facilidades de cálculos numéricos con vectores y matrices,
herramientas de visualización gráfica de los datos y un lenguaje de programación de
altas prestaciones y de alto nivel muy popular en el ámbito de la computación
científica. Actualmente, consta de:
− El lenguaje de Matlab: Es un lenguaje de programación de alto nivel modular y
estructurado, compuesto por sentencias de control, funciones, estructuras de
datos y utilidades de entrada/salida. Dispone además de herramientas
necesarias para ofrecer una programación orientada a objetos. El lenguaje de
Matlab acorta los tiempos de desarrollo de aplicaciones informáticas, aunque
los programas suelen ser más lentos que los desarrollados con otros lenguajes
como C o Fortran, por tratarse de un lenguaje interpretado.
− El entorno de trabajo: Está formado por un conjunto de herramientas que
permiten utilizar Matlab como usuario o como programador. Entre esas
herramientas se encuentran la Ventana de Comandos, el Espacio de Trabajo, el

–1–
Historial de Comandos, el Editor del Camino de Búsqueda, el Directorio Actual,
el Editor de Funciones, el Depurador de Funciones, etc.
− La biblioteca de funciones matemáticas: Está compuesta por una amplia
colección de algoritmos numéricos que implementan desde funciones
elementales (sumatorios, funciones trigonométricas, etc.) hasta funciones más
sofisticadas (resolución de sistemas de ecuaciones, cálculo de valores propios,
mínimos cuadrados, interpolación, ecuaciones diferenciales, etc.).
− Los gestores de gráficos: Matlab incluye comandos de alto nivel para crear
gráficos bidimensionales y tridimensionales y para diseñar interfaces gráficos
de usuario.
− La API (Application Program Interface) de Matlab: Es una librería que permite
integrar a Matlab con otros lenguajes de programación como C, C++ o Fortran.
− Toolboxes o paquetes de ampliación: Se trata de paquetes compuestos por
funciones aplicables a determinados campos de la ingeniería. A modo de
ejemplo, se incluyen paquetes de aplicación matemática en general (cálculo
simbólico, estadística, optimización, redes neuronales, etc.), de bases de datos,
de adquisición de datos, de procesamiento de la señal, de procesamiento de
imágenes, del área financiera, de simulación de sistemas dinámicos, de análisis
y diseño de sistemas de control, etc.

El entorno de trabajo de Matlab


El Entorno de Matlab (ver Figura 1) incluye la zona de trabajo donde crear las
variables, teclear las instrucciones, acceder a aquellas instrucciones que hemos
tecleado en la actual y en las anteriores sesiones de trabajo, crear nuevas funciones e
invocar a aquellas otras ya implementadas, bien sean propias de Matlab o
desarrolladas por nosotros, además de funcionalidades diversas que iremos viendo a
medida que nos resulten necesarias.

Figura 1: El entorno de trabajo de Matlab.

–2–
Los componentes más importantes del entorno de trabajo, algunos de los cuales
pueden verse directamente en la Figura 1, son:
− La Ventana de Comandos (Command Window) y la Línea de Órdenes (>>).
− El Espacio de Trabajo (Workspace).
− El Historial de Comandos (Command History).
− El Directorio Actual (Current Folder) y el contenido del mismo.
− El Editor de Funciones y Depurador de Errores (Editor & Debugger).
− El Editor del Camino de Búsqueda (Search Path).
− El Editor de Preferencias (Preferences).
− La Ayuda (Help).

La Ventana de Comandos y la Línea de Órdenes


La Ventana de Comandos (Command Window) es la vía principal de comunicación
con Matlab. Se trata de un entorno interactivo, como se muestra en la Figura 2, donde
se ejecutan las instrucciones y donde los resultados se muestran inmediatamente. Se
utiliza para:
− Realizar todo tipo de operaciones.
− Asignar valores a variables.
− Invocar a funciones o scripts.
− Mostrar resultados.

Figura 2: La Ventana de Comandos de Matlab.

La forma que tiene Matlab de indicarle al usuario que está esperando la


introducción de un comando es mediante el símbolo >>, denominado prompt o Línea
de Órdenes, que aparece al principio de la Ventana de Comandos. Allí podemos

–3–
escribir directamente expresiones o instrucciones, seguidas de Intro, que Matlab
ejecuta:
>> 2+3*6
ans = 20

Entre los operadores aritméticos básicos posibles a emplear en las expresiones


tendremos los que se muestran en la Tabla 1.

Operador Descripción
+ Suma.
- Resta.
* Producto.
/ División.
^ Potencia.

Tabla 1: Operadores aritméticos básicos de Matlab.

Habitualmente, las expresiones se evalúan de izquierda a derecha pero, como


podemos ver, el operador * (al igual que el operador /) tienen prioridad sobre los
operadores + y -. A su vez, el operador ^ tiene prioridad sobre el resto. Para cambiar
dicha prioridad deberíamos trabajar con los paréntesis, ya que se evalúan primero,
comenzando desde el más interno y continuando hacia los más externos:
>> (2+3)*6
ans = 30

Variables y expresiones
En lugar de operar directamente con números, cabe la posibilidad de trabajar con
variables. Se trata de espacios de la memoria del ordenador en los que se almacena
información y a los que se accede a través de un nombre. Habitualmente en Matlab,
una variable es el nombre que se le da a una entidad numérica, que puede ser una
matriz, un vector o un escalar y sobre la cual se realizan las operaciones. El valor de la
variable (e incluso el tipo de datos que almacena) puede variar en una misma sesión de
trabajo de Matlab, o incluso durante la ejecución de un programa. Toda variable debe
ser inicializada antes de utilizarla. Por ejemplo, el comando
>> x=2

crea una variable que se llama x y que almacena el valor 2. Las variables en Matlab
pueden almacenar:
− Valores numéricos: Por defecto se corresponden con números reales con doble
precisión (double).
− Caracteres: Incluyen letras, números, espacios y numerosos símbolos: +, -, *, /,
(, ), [, ], ‘‘, etc.
− Valores lógicos o “booleanos”: Se corresponde con los valores lógicos 1 o 0.
Matlab incluye las variables true (que vale 1) y false (que vale 0).
El nombre de una variable puede estar compuesto, como mucho, por 63 caracteres,
con las siguientes características:

–4–
− Como caracteres válidos, tenemos:
Letras mayúsculas (A, …, Z) o minúsculas (a, …, z).
Números (del 0 al 9).
Símbolo de subrayado (_).
− El primer carácter debe ser una letra.
− No se admiten espacios.
− Se distingue entre mayúsculas y minúsculas.
Matlab contiene variables ya definidas, tales como ans, pi, inf, realmax, realmin,
true, false, etc.:
>> pi
ans =
3.1416

Debemos evitar usar como nombres de variables las funciones y variables


previamente definidas por Matlab, teniendo en cuenta que, si eso ocurre, Matlab nos
permitirá hacerlo, dándole prioridad a nuestras variables y perdiendo dicha función o
variable de Matlab su funcionalidad o valor original.
Conviene también destacar que no se pueden usar como nombres de variables las
palabras reservadas del lenguaje, las cuales tienen un significado predefinido dentro
del mismo: function, for, end, if, while, switch, etc.
Una vez asignado un valor a una variable, podremos emplearla en las expresiones
posteriores, en las que se utilizará el valor que se haya almacenado en ella por última
vez.
Una expresión es una combinación de variables, operadores, paréntesis y nombres
de función escrita según ciertas reglas que ha de ser evaluada para obtener un valor.
Dicha expresión puede aparecer de dos modos: o bien realizando una asignación a una
variable, donde en primer lugar se evalúa la expresión de la derecha y el resultado se
almacena en la variable de la izquierda:
>> y=3
>> z=x+y+4
z = 9

o bien simplemente realizando el cálculo y mostrando el resultado:


>> x+y+4
ans = 9

en cuyo caso, el resultado se asigna a una variable interna de Matlab denominada ans.
Se trata de una variable especial que recoge el resultado, no almacenado en ninguna
variable, de la última expresión que se evalúa.
Por defecto, se da una expresión por concluida cuando el usuario pulsa Intro. Si se
desea que una expresión continúe en la línea siguiente, se debe terminar la línea con
puntos suspensivos (...):
>> x=(7*5)-(4*3) ...

–5–
+12
x = 35

Si, por el contrario, se desea introducir más de un comando en la misma línea, éstos
se separarán mediante comas (,) o puntos y coma (;).
Si una expresión termina en punto y coma (;), su resultado se calcula, pero no se
muestra por pantalla. De esta forma, evitamos que se llene la pantalla de información
no deseada, si se trata por ejemplo de resultados intermedios o si estamos trabajando
con matrices de gran tamaño. Si en algún momento queremos saber el valor del
resultado, escribimos el nombre de la variable y pulsamos el Intro.
>> z=2*5/3;
>> z
z = 3.3333

Como es frecuente que se llene la pantalla con el resultado de expresiones,


ejecución de comandos y mensajes del programa, los comandos clc y home limpian la
Ventana de Comandos, al igual que la opción Command Window del desplegable Clear
Commands situado en la pestaña HOME.

El Espacio de Trabajo
El Espacio de Trabajo en Matlab es una zona de memoria accesible desde la Línea
de Órdenes que contiene el conjunto de variables almacenadas en la memoria del
ordenador y definidas por el usuario en la sesión de trabajo actual. Nótese que, puesto
que se encuentran en la memoria, todas ellas se perderán cuando se cierre la sesión
actual de Matlab. El contenido de nuestro espacio de trabajo lo tenemos accesible en
todo momento en el denominado Workspace, situado en la parte superior derecha de
nuestro entorno de trabajo.
Antes de visualizar el contenido actual del Espacio de Trabajo ejecutaremos las
siguientes instrucciones:
>> A=rand(3)
>> B=inv(A)
>> C=A*B

Como se puede apreciar, el Espacio de Trabajo muestra las variables que acabamos
de crear. Si hacemos doble clic con el ratón sobre el nombre de alguna de las variables
se desplegará otra ventana, mostrando el valor almacenado y pudiendo modificar de
manera muy sencilla el contenido de la misma.
Debe quedar claro que estas variables desaparecerán cuando cerremos la sesión
actual de Matlab. Si deseamos guardar todas las variables para usarlas en sesiones
futuras, podemos almacenar el espacio de trabajo en un fichero mediante el botón
Save Workspace de la pestaña HOME o escribiendo el comando save en la ventana de
comandos, acompañado del nombre del fichero. Dicho fichero deberá tener de
manera obligatoria la extensión .mat. Si por el contrario deseamos cargar en memoria
las variables que formaban parte de un espacio de trabajo grabado previamente en un
fichero, usaremos la opción Open de la pestaña HOME o escribiremos, en la ventana
de comandos, el comando load seguido del nombre del fichero.

–6–
Algunos otros comandos útiles son who, que muestra el nombre de todas las
variables almacenadas en memoria y whos, que muestra el nombre y el tipo de todas
las variables almacenadas en memoria. Ejemplo:
>> who
Your variables are:
A B C ans x y z
>> whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 72 double array
C 3x3 72 double array
ans 1x1 8 double array
x 1x1 8 double array
y 1x1 8 double array
z 1x1 8 double array

Por otro lado, en algunas ocasiones nos interesará eliminar alguna o todas las
variables del Espacio de Trabajo, bien porque son variables temporales de cálculos
intermedios que ya no vamos a utilizar y conviene liberar memoria, bien porque vamos
a comenzar otro trabajo completamente independiente, o por muchas otras razones.
Para ello, Matlab dispone del comando clear. Si sólo deseamos borrar alguna variable,
lo haremos añadiendo al comando clear el nombre de la variable que deseamos
eliminar. Por ejemplo:
>> clear C

elimina sólo la variable C del Espacio de Trabajo. Si en cambio deseamos borrar todas
las variables, vaciando el Espacio de Trabajo, debemos escribir simplemente el
comando clear:
>> clear
Ejercicio: Calcular el área y la longitud de una circunferencia de radio=3.5. Las fórmulas a
emplear para calcular el área (A) y la longitud (L) de la circunferencia serán las
siguientes:
A = π r2
L = 2 πr

Por último, si deseamos guardar los comandos que vamos a ejecutar en una sesión
de trabajo, y sus resultados, emplearemos el comando diary, acompañado del nombre
del fichero de texto. Habitualmente, a dichos ficheros diario se les incluye la extensión
dia, con el objetivo de identificarlos fácilmente:
>> diary nombre_fichero.dia
>> instrucciones

>> diary off

–7–
El Historial de Comandos
El Historial de Comandos (Command History), situado en la parte inferior derecha
de nuestro entorno de trabajo, como se muestra en la Figura 3, nos muestra una
relación de las instrucciones utilizadas recientemente en la Ventana de Comandos,
agrupadas por sesiones de trabajo.

Figura 3: El Historial de Comandos.

Si pinchamos con el botón derecho del ratón sobre una o más instrucciones de
dicho Historial (ver Figura 4), obtendremos un menú compuesto por diferentes
opciones:
− Ejecutar (Evaluate Selection).
− Cortar al portapapeles (Cut).
− Copiar al portapapeles (Copy).
− Borrar la selección del historial (Delete Selection).
− Borrar hasta la selección (Delete to Selection).
− Seleccionar todo (Select All), etc.

Figura 4: Opciones disponibles desde el Historial de Comandos.

–8–
A partir de dicho Historial, podemos editar o ejecutar rápidamente una instrucción
anterior. De igual modo, podemos también acceder a instrucciones pasadas mediante
las teclas o del cursor. Es posible filtrar las instrucciones que nos aparecen al
pulsar las teclas o escribiendo previamente parte de la instrucción.
El Editor de Preferencias
Mediante el botón Preferences de la pestaña HOME, el Editor de Preferencias
permite modificar múltiples opciones de trabajo, tal y como se indica en la Figura 5. A
modo de ejemplo, la lista desplegable llamada Numeric format, dentro del apartado
Command Window, especifica el formato de visualización de los valores numéricos en
la Ventana de Comandos (ver Figura 5), todos ellos explicados en la Tabla 2. Cabe
destacar que el almacenamiento de los valores numéricos y los cálculos no se ven
afectados.

Figura 5: Aspecto del Editor de Preferencias tras seleccionar la opción Command Window.

Formato Resultado Ejemplo ( 151 )


short 4 decimales en punto fijo 12.2882
long 15 decimales en punto fijo 12.288205727444508
short e 4 decimales en notación científica 1.2288e+001
1.228820572744451e
long e 15 decimales en notación científica +001
short g 5 primeros dígitos en punto fijo o notación científica 12.288
long g 15 primeros dígitos en punto fijo o notación científica 12.2882057274445

Tabla 2: Diferentes formatos de visualización accesibles desde el desplegable Numeric Format.

Es también posible modificar el tamaño de la fuente empleada en la Ventana de


Comandos, tras acceder al apartado Fonts de dicho Editor de Preferencias.

–9–
Operaciones con matrices
La mejor manera de comenzar con Matlab es aprender a gestionar matrices. En
Matlab, el tipo de datos básico es la matriz, una tabla rectangular de números
organizados en filas y columnas. Matrices especiales en este aspecto son las matrices
de 1x1, que son escalares, y las matrices de una sola fila o una sola columna, que son
vectores. Las operaciones se han diseñado de forma que trabajar con matrices se haga
del modo más natural posible.
Habitualmente, se utilizan mayúsculas para las matrices y minúsculas para los
vectores y los escalares. Aunque no se trata de una obligación, este criterio ayuda a
determinar el tipo de datos de una variable sólo por el nombre.

Creación de matrices
Para crear una matriz, no es necesario definir su tamaño de antemano. Matlab lo
determinará en función de sus elementos y de su disposición. Introduciremos los
elementos entre corchetes, fila a fila separadas por punto y coma o por la tecla Intro.
Los elementos de una misma fila los separamos por comas o por espacios en blanco.
Por ejemplo, para crear una matriz de 3x3 y asignarla a la variable A, teclearemos lo
siguiente:
>> A=[1 2 3; 4 5 6; 7 8 9]
A=
1 2 3
4 5 6
7 8 9

La forma de acceder a un elemento determinado de la matriz es indicando entre


paréntesis la fila y la columna de dicho elemento. Por ejemplo:
>> A(1,3)
ans=3

obtiene el elemento de la primera fila y la tercera columna de la matriz A. Estos valores


pueden utilizarse para construir expresiones, tal y como hemos visto en el apartado
anterior.
>> suma_diag=A(1,1)+A(2,2)+A(3,3)
suma_diag=15
Ejercicio: Crear una matriz de 4x4 que sea triangular superior (todos los elementos por
debajo de la diagonal han de ser cero).

Las asignaciones entre matrices se hacen directamente, sin que sea necesario
copiarlas elemento a elemento, como ocurre en los lenguajes de programación
convencionales. Por ejemplo,
>> B=A'
B=
1 4 7
2 5 8
3 6 9

– 10 –
asigna a la variable B la matriz traspuesta de A.
Del mismo modo a como ocurría con matrices, para crear un vector tampoco es
necesario definir su tamaño de antemano. Matlab lo determinará de nuevo a partir de
sus elementos y de su disposición. En caso de tratarse de un vector fila (de tamaño
1xn), introducimos los elementos entre corchetes, separados por comas o por espacios
en blanco. Por otro lado, si se trata de un vector columna (de tamaño nx1),
introducimos los elementos entre corchetes, separados por punto y coma o por la
tecla Intro.
Por ejemplo, la instrucción:
>> v=[1 3 5 7 9]
v = 1 3 5 7 9

crea un vector fila de 5 componentes.


Para acceder a un elemento determinado de un vector, bien sea fila o columna,
escribimos entre paréntesis su posición:
>> v(3)
ans=5

Podemos por tanto consultar o modificar el valor de un elemento, o utilizarlo en


una expresión aritmética:
>> v(3)=-5
v = 1 3 -5 7 9
>> suma_vector=v(1)+v(2)+v(3)+v(4)+v(5)
suma_vector=15

Es posible incorporar nuevos elementos a una variable ya creada. Si un vector tiene


n elementos, puede crecer de tamaño asignando nuevos valores a las posiciones n+1,
n+2, etc.:
>> v(7)=12
v = 1 3 -5 7 9 0 12

Incluso, es posible componer un vector a partir de otros ya creados, previamente:


>> x=[1 3]; y=[2 7 4]; z=[3 8 5];
>> x=[x y z]
x = 1 3 2 7 4 3 8 5

Del mismo modo, es posible incorporar nuevos elementos a una matriz ya creada:
>> A(4,2)=11
A =
1 2 3
4 5 6
7 8 9
0 11 0
>> A=[A [-1 -3 -5 -7]']
A =

– 11 –
1 2 3 -1
4 5 6 -3
7 8 9 -5
0 11 0 -7

Operaciones elementales con matrices


Matlab trabaja con matrices a través de operadores y funciones. En este apartado
veremos las operaciones básicas que se pueden ejecutar sobre matrices, dejando para
más adelante operaciones más complejas que se realizan utilizando las funciones de
biblioteca de Matlab.

Operadores para matrices


Los operadores que se emplean con frecuencia a la hora de trabajar con matrices
son los que aparecen reflejados en la Tabla 3:

Operador Descripción Ejemplo


+ Adición o suma de matrices. A + B
- Resta de matrices. A - B
* Producto de matrices. A * B
' Traspuesta de una matriz. A'
\ Resolución de sistemas de ecuaciones lineales. A \ b
^ Potenciación. A ^ b
.* Producto elemento a elemento. A .* B
./ División elemento a elemento. A ./ B
.^ Potenciación elemento a elemento. A .^ b

Tabla 3: Conjunto de operadores básicos aplicados sobre matrices.

Todos estos operadores son coherentes con las correspondientes operaciones


matriciales: no se puede, por ejemplo, sumar o restar dos matrices que no sean del
mismo tamaño. Estos operadores se aplican también a vectores y a escalares, aunque
algunos de ellos tienen un comportamiento distinto. Asimismo, se pueden aplicar de
forma mixta. Por ejemplo:
>> A=[1 2; 3 4];
>> B=2*A
B=
2 4
6 8

multiplica cada elemento de la matriz A por el escalar.


Ejercicio: Crear dos vectores fila x e y de 4 componentes con valores cualesquiera.
Calcular el producto escalar entre ambos y generar un vector z=3x+6y.

2
Ejercicio: Evaluar la función y=x +3x cuando x toma valores de números enteros
comprendidos entre -2 y 2.

– 12 –
La resolución de un sistema de ecuaciones lineales requiere una explicación
adicional. Considérese el siguiente sistema de ecuaciones:
Ax = b
donde A es una matriz cuadrada invertible y donde x y b son vectores columna. La
resolución de este sistema de ecuaciones puede escribirse de las dos formas
siguientes:
>> x=inv(A)*b
>> x=A\b

Es decir, mediante la inversa de la matriz de coeficientes (mediante el comando inv)


o mediante el operador \ de la barra invertida que resuelve el sistema usando la
descomposición lu con pivotación parcial.
Ejercicio: Resolver el siguiente sistema de ecuaciones usando el operador \:
6x1+3x2+ x3=34
-2x1+8x2-5x3=52
3x1+7x2-9x3=33

Funciones de creación de matrices predefinidas


Las funciones en Matlab poseen un nombre único que las identifica, unos
argumentos de entrada con los que la función opera y uno o más resultados de salida.
Una función se invoca utilizando su nombre en una expresión o como un comando,
colocando sus argumentos de entrada entre paréntesis y separados por comas,
además de indicar entre corchetes y separadas por comas las variables que recogen los
resultados de salida. A modo de sintaxis, la invocación a una función de Matlab será
del siguiente modo:
[var_sal1,var_sal2,…,var_salM]=nombre(arg_ent1,arg_ent2,…,arg_entN)
El nombre de las variables empleadas como argumentos de entrada y como
argumentos de salida en nuestra llamada no tienen por qué coincidir con los
especificados en la definición de la función, siendo de hecho variables diferentes que
ocuparán posiciones distintas en memoria a pesar de poder llamarse del mismo modo.
Conviene además destacar que, como argumentos de entrada a la función, no sólo
podrán emplearse variables, sino también números, una expresión aritmética o el
resultado de una llamada a una función.
En Matlab existe un conjunto de funciones orientadas a la definición de matrices
con características particulares, como se muestra en la Tabla 4. Muchas de ellas tienen
un comportamiento diferente dependiendo del tipo y del número de parámetros de
entrada que se le pasen entre paréntesis.

Función Descripción Ejemplo Resultado


eye(n) Forma la matriz identidad de tamaño eye(2) 1 0
nxn.
0 1
zeros(n) Forma una matriz de ceros de tamaño zeros(2) 0 0
nxn.
0 0

– 13 –
zeros(f,c) Forma una matriz de ceros de f filas y zeros(2,3) 0 0 0
c columnas.
0 0 0
ones(n) Forma una matriz de unos de tamaño ones(2) 1 1
nxn.
1 1
ones(f,c) Forma una matriz de unos de f filas y ones(2,3) 1 1 1
c columnas.
1 1 1
rand(n) Forma una matriz de números rand(2) 0.9 0.6
aleatorios entre 0 y 1, con distribución
uniforme, de tamaño nxn. 0.2 0.4
rand(f,c) Forma una matriz de números rand(2,3) 0.8 0.4 0.8
aleatorios entre 0 y 1, con distribución 0.7 0.0 0.4
uniforme, de f filas y c columnas.
linspace(i,f,n) Genera un vector fila con n valores linspace(1,9,5) 1 3 5 7 9
igualmente espaciados entre i y f.

Tabla 4: Funciones de creación de matrices elementales.


Ejercicio: Utilizando el comando linspace, crear los siguientes vectores:
1 2 3 4 5 6 7 8 9 10
1 3 5 7 9
2 5 8 11 14

Ejercicio: Averiguar (si es posible, sin introducir el comando en Matlab), los vectores que
generan las siguientes expresiones:
linspace(2,11,2)
linspace(1,25,4)

Otras funciones relacionadas con matrices


En Matlab existen otras muchas funciones desarrolladas para trabajar con matrices,
algunas de las cuales se detallan en la Tabla 5. En los resultados obtenidos, se han
empleado la siguiente matriz A y el vector x:
>> A=[8 2 3;4 9 -6;7 8 6];
>> x=[1 3 5];

Función Descripción Resultado


[m,n]=size(A) Devuelve el número de filas (m) y de m=3
columnas (n) de la matriz A.
n=3
diag(x) Crea una matriz diagonal cuyos 1 0 0
elementos diagonales son los del
vector x. 0 3 0
0 0 5
diag(A) Crea un vector con los elementos de 8
la diagonal de A.
9
6
triu(A) Crea una matriz triangular superior a 8 2 3
partir de A.
0 9 -6
0 0 6

– 14 –
tril(A) Crea una matriz triangular inferior a 8 0 0
partir de A.
4 9 0
7 8 6
det(A) Devuelve el determinante de una 591
matriz A cuadrada.
inv(A) Calcula la matriz inversa de A. 0.17 0.02 -0.07
-0.11 0.05 0.10
-0.05 -0.08 0.11

Tabla 5: Diferentes funciones relacionadas con matrices.

Mención especial merece la función size, la cual devuelve múltiples valores de


salida. Cuando esto ocurre en Matlab, las variables que almacenan los resultados que
la función proporciona se deben indicar entre corchetes y separadas por comas.
>> [m,n]=size(A)
m = 3
n = 3
Ejercicio: Obtener la inversa y el determinante de las siguientes matrices:

0 0 − 1 2
1 1 1  
  1 1 − 1 2
A= 1 − 1 1 y B= 
 1 2 3 1 1 0 3
   
 1 2 − 1 3
 

Funciones sobre vectores


Algunas funciones de Matlab requieren un vector como parámetro. Las más
importantes son las que se recogen en la Tabla 6. Para obtener los resultados que se
muestran en dicha tabla, se ha empleado el siguiente vector x:
>> x=[4 -3 7 18 -5];

Función Descripción Resultado


length(x) Devuelve el número de elementos del vector x. 5
[m,p]=max(x) Devuelve el máximo elemento del vector y la m=18
posición que ocupa.
p=4
[m,p]=min(x) Devuelve el mínimo elemento del vector y la m=-5
posición que ocupa.
p=5
sum(x) Suma todos los elementos del vector. 21
prod(x) Multiplica todos los elementos del vector. 7560
abs(x) Calcula el valor absoluto de cada uno de los 4 3 7 18 5
elementos del vector.

Tabla 6: Distintas funciones para trabajar con vectores.

– 15 –
En caso de que el parámetro de entrada a cualquiera de las anteriores funciones
fuera una matriz, se devolverá un vector fila formado por los resultados de aplicar
dichas funciones a cada una de las columna de la matriz.
Funciones matemáticas elementales
Matlab consta de multitud de funciones orientadas a la resolución de los problemas
numéricos que aparecen en ingeniería, algunas de las cuales están recogidas en la
Tabla 7.

Función Descripción Ejemplo Resultado


rem(x,y) Resto de la división de x entre y rem(5,2) 1
sqrt(x) Raíz cuadrada de x sqrt(15) 3.8730
x
exp(x) Exponencial de x (e ) exp(4) 54.5982
log(x) Logaritmo natural o neperiano de x log(100) 4.6052
log2(x) Logaritmo en base 2 de x log2(100) 6.6439
log10(x) Logaritmo en base 10 de x log10(100) 2
sin(x) Seno del ángulo x (x en radianes) sin(pi/3) 0.8660
cos(x) Coseno del ángulo x (x en cos(pi/3) 0.5000
radianes)
tan(x) Tangente del ángulo x (x en tan(pi/3) 1.7321
radianes)

Tabla 7: Distintas funciones matemáticas elementales de Matlab.

Si x, en lugar de un escalar, fuera una matriz o un vector, las funciones se aplicarían


sobre cada uno de sus elementos.
El operador dos puntos (:)
Se trata de un operador especial, muy importante en Matlab. Dependiendo del
objeto sobre el que se aplique, tiene distintas utilidades. Así, trabajando con vectores,
el operador “:” representa un rango. La sintaxis que presenta es [inicio:inc:fin], lo cual
crea un vector fila equidistante desde inicio hasta fin con incrementos de inc.
Por ejemplo, puede definirse un vector x con el comando:
>> x=[1:1.5:9]
x =
1 2.5 4 5.5 7 8.5

el cual crea un vector entre 1 y 9 con incrementos de 1.5. Obsérvese como, en este
ejemplo, el valor final no forma parte del vector. Es posible que a veces dicho
incremento inc no aparezca, entendiéndose de manera implícita que su valor es 1. Así
por ejemplo, el comando:
>> x=[2:1:5]

es equivalente a este otro:


>> x=[2:5]
x =
2 3 4 5

– 16 –
a fin de crear un vector entre 2 y 5 con incrementos de uno en uno.
Por defecto, el resultado es siempre un vector fila, como ya hemos comentado. Si se
desea obtener un vector columna, basta con trasponer el resultado. El siguiente
ejemplo, genera una tabla de senos y cosenos recurriendo para ello a dos funciones
trigonométricas de Matlab:
>> x=[0: 0.01: 2*pi]'
>> y=sin(x)
>> z=cos(x)
>> TABLA=[x y z]

El empleo de los dos puntos en matrices es todavía más útil y potente. Vamos a
verlo con varios ejemplos, implementados sobre una matriz 6x6. La función magic, que
a continuación se emplea, crea una matriz cuadrada que verifica que los elementos de
cualquier fila, de cualquier columna o incluso los de la diagonal suman lo mismo.
>> D=magic(6)
D =
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11

El siguiente comando extrae los 4 primeros elementos de la 6ª fila:


>> D(6, 1:4)
ans =
4 36 29 13

Dos puntos aislados representan “todos los elementos”. Por ejemplo, el siguiente
comando extrae todos los elementos de la 3ª fila:
>> D(3, :)
ans =
31 9 2 22 27 20

Para acceder a la última fila o columna, puede emplearse la palabra end en lugar de
su número. Por ejemplo, para extraer la última fila completa:
>> D(end, :)
ans =
4 36 29 13 18 11

El siguiente comando extrae todos los elementos de las columnas 4, 5 y 6:


>> D(:,4:6)
ans =
26 19 24
21 23 25
22 27 20
17 10 15

– 17 –
12 14 16
13 18 11
También se pueden extraer conjuntos disjuntos de filas/columnas utilizando
corchetes [ ]. Por ejemplo, el comando siguiente extrae las filas 1, 2 y 5:
>> D([1 2 5],:)
ans =
35 1 6 26 19 24
3 32 7 21 23 25
30 5 34 12 14 16

El operador : permite también añadir nuevos elementos a una matriz, e incluso


eliminarlos, utilizando los corchetes vacíos:
>> A=[1 5; 2 4]
A =
1 5
2 4
>> A(:,3)=[7;3]
A =
1 5 7
2 4 3
>> A(:,2)=[]
A =
1 7
2 3
Lo mismo cabe decir de su aplicación sobre vectores:
>> x=[2 3 5 9]
x = 2 3 5 9
>> x(5:8)=[8 4 6 1]
x = 2 3 5 9 8 4 6 1
>> x(2:4)=[ ]
x = 2 8 4 6 1

Gráficos bidimensionales
La visualización gráfica es imprescindible para presentar todo tipo de información y
facilitar la comprensión de la misma, la cual puede proceder de multitud de disciplinas
relacionadas con las ciencias y la ingeniería. Podemos visualizar la evolución de una
variable, identificar tendencias, máximos, mínimos, detectar errores en medición de
datos (puntos aislados), etc.
Matlab ofrece unas buenas prestaciones gráficas, poniendo a disposición de los
usuarios una serie de facilidades que permiten:
− Visualizar gráficas en 2D y en 3D.
− Dibujar gráficos de líneas, barras, escaleras, sectores, histogramas, etc.
− Generar gráficas con ejes lineales, logarítmicos, etc.

– 18 –
− Dibujar rectas y polígonos.
− Personalizar la apariencia deseada (tipo de fuente del texto y su tamaño, tipo,
color y grosor de las líneas, etc.) mediante leyendas, títulos, etiquetas, escalado
de los ejes, etc.
Las operaciones gráficas se realizan en un tipo especial de ventanas. Hay comandos
que abren una ventana nueva y otros que utilizan la ya existente, sustituyendo lo que
se encuentra en ella o añadiendo nuevos elementos.

Funciones gráficas elementales


Matlab dispone de diferentes funciones básicas para crear gráficos 2D, algunas de
ellas recogidas en la Tabla 8.

Función Descripción
plot Gráfico de líneas.
bar Gráfico de barras verticales.
pie Gráfico circular (o de sectores).

Tabla 8: Algunas funciones relacionadas con la creación de gráficos en 2D.

De ellas, la más utilizada es la función plot, que crea un gráfico a partir de dos
vectores, de idénticas dimensiones, creados previamente con los valores en los ejes de
abscisas y ordenadas del conjunto de puntos a dibujar, utilizando una escala lineal para
ambos ejes. La curva se construye mediante segmentos de rectas que unen puntos
cuyas coordenadas están definidas por los vectores de entrada a la función. La sintaxis
de la función es la siguiente:
plot(x,y)
x: Vector con los valores en el eje de abscisas.
y: Vector con los valores en el eje de ordenadas.
Adicionalmente, la función plot permite dibujar todo tipo de funciones matemáticas
de la forma y=f(x). Para ello:
− Creamos un vector, con los valores en el eje x, en el intervalo donde se
representa la función. La distancia entre los elementos de este vector debe ser
pequeña, ya que los puntos se unen mediante rectas.
− Creamos un vector y tras evaluar la función f(x) para el vector x anterior.
− Dibujamos la función con el comando plot.
Por ejemplo:
>> x=[0:0.01:2*pi];
>> y=sin(x);
>> plot(x,y)

nos representa gráficamente la función seno (ver Figura 6).

– 19 –
Figura 6: Representación gráfica de la función seno.

Por defecto la curva se dibuja en color azul, con trazado continuo, pero admite
otras opciones mediante la siguiente sintaxis, en la cual aparece un tercer parámetro
denominado estilo:
plot(x,y,'estilo')
x: Vector con los valores en el eje de abscisas.
y: Vector con los valores en el eje de ordenadas.
estilo: Cadena de 1, 2 o 3 caracteres que permite definir el tipo de línea, el color y
el tipo de marca.
-0.2*x
Ejercicio: Representar gráficamente la función y=2*sin(x)*e en el intervalo [0,20]
mediante la función plot. Emplear un incremento de 0.1 para generar el vector x

Es conveniente destacar que el resultado de invocar a la función plot sobrescribe el


gráfico creado mediante un plot anterior. Para dibujar el resultado de diferentes
invocaciones a la función plot simultáneamente en pantalla deberíamos emplear el
comando hold on.
Existen además otras funciones destinadas a añadir títulos y leyendas a diversas
zonas del gráfico. Las más usuales son las que se detallan en la Tabla 9.

Función Acción
title('titulo') Añade un título al gráfico.
xlabel('rotulo') Añade un rótulo al eje de abscisas. Se elimina con xlabel off.
ylabel('rotulo') Añade un rótulo al eje de ordenadas. Se elimina con ylabel off.
text(x,y,'texto') Introduce un texto en las coordenadas especificadas.
gtext('texto') Introduce un texto en el lugar en el que se pinche con el ratón.

– 20 –
legend('leyenda1' Define una leyenda para las distintas líneas, barras, etc. que
,'leyenda2', ...) representan los datos.
grid on Dibuja una cuadrícula en el gráfico. Se elimina con grid off.
hold on Habilita la visualización de diferentes gráficas en la misma ventana.
Se deshabilita con hold off.

axis([xmin xmax Determina los límites de los ejes x e y a partir de los valores mínimos
ymin ymax]) y máximos indicados.

figure Crea una ventana nueva sobre la cual se visualizará la próxima


gráfica.

Tabla 9: Funciones para personalizar la apariencia de los gráficos.

Ejercicio: Visualizar, sobre una misma ventana, las funciones seno y coseno en el intervalo
[0, 4π]. La función seno se dibujará en color azul y la función coseno en color
rojo. Incorporar a los gráficos cuantas propiedades se estimen convenientes
(título del gráfico, rótulos para los ejes, leyendas, cuadrícula, etc.), empleando
para ello las funciones mostradas en la Tabla 9.

Alternativamente a las funciones recogidas en la Tabla 9, es posible editar y


modificar la apariencia de un gráfico, e incluso incorporarle nuevas propiedades. Para
ello, activamos el modo Edición, pulsando el icono de la flecha inclinada hacia la
izquierda de la ventana en la que se visualiza el gráfico. A continuación, podremos
cambiar de posición cualquiera de los elementos de la gráfica, sin más que pinchar
sobre ellos con el botón izquierdo del ratón y, manteniendo el botón pulsado, arrastrar
el elemento hasta su nueva posición. Podemos también cambiar el formato de un
elemento (color, tamaño, tipo, etc.) sin más que pinchar con el botón derecho del
ratón sobre él mismo y escogiendo la opción apropiada. A modo de ejemplo, la Figura
7 muestra el menú desplegado al pinchar con el botón derecho del ratón sobre la
gráfica, una vez activado previamente el modo Edición. Obsérvese como dicho menú
permite, entre otras posibilidades, cambiar el color de la gráfica, su grosor, el estilo del
trazado, el tipo o tamaño de las marcas, etc.

Figura 7: Opciones mostradas tras pinchar con el botón derecho del ratón sobre la gráfica.

– 21 –
Ejercicio: Modificar los parámetros del gráfico anterior mediante el comando Edit Plot del
menú Tools.

Por último, conviene destacar que es también posible añadir nuevos elementos
sobre un gráfico, a partir de las múltiples opciones desplegadas al escoger la opción
Insert del menú, como nos muestra la Figura 8.

Figura 8: Lista de opciones proporcionadas por la opción Insert del menú.

La ayuda de Matlab
Existen varias formas de acceder a información on-line acerca de Matlab. De todas
ellas, vamos a centrarnos sólo en las tres siguientes:
− El comando help.
− El visualizador de ayuda de funciones.
− La ventana de ayuda.

El comando help
Es el método más básico para obtener ayuda acerca de la sintaxis y el uso de una
función concreta. La información se muestra directamente en la ventana del entorno
de trabajo. Por ejemplo:
>> help det
DET Determinant.
DET(X) is the determinant of the square matrix X.
Use COND instead of DET to test for matrix singularity.

– 22 –
El visualizador de ayuda de funciones
Se accede a él pinchando con el ratón sobre el botón fx que aparece a la izquierda
del prompt (>>) de la ventana de comandos (ver Figura 9).

Figura 9: El Visualizador de Ayuda de Funciones.


Ejercicio: Localizar en el Visualizador de Funciones la información sobre la
función det.

La ventana de ayuda
Proporciona acceso a un amplio rango de información de ayuda y de referencia
consultable a modo de un navegador web. Se accede a ella por medio de la opción
Documentation de la lista desplegable Help de la pestaña HOME, o tecleando en la
línea de órdenes el comando:
>> doc

Todas las funciones y operadores de Matlab tienen alguna página de referencia.


Además de detalles y ejemplos, estas páginas proporcionan información más completa
que las páginas de ayuda.
Ejercicio: Localizar en la Ventana de Ayuda la información sobre la función det.

– 23 –

También podría gustarte