01 - Introducción A Matlab
01 - Introducción A Matlab
Introducción a Matlab
Índice
Esquema. . . . . . . . . . . . . . . . . . . . . . . 2
Ideas clave . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Archivos .m . . . . . . . . . . . . . . . . . . 20
INTRODUCCIÓN A MATLAB
Representaciones gráficas
Funciones anónimas
Los métodos numéricos consisten en una serie de procedimientos que nos permiten
obtener soluciones aproximadas a determinados problemas, cuando no es posible ob-
tener su solución analítica.
A lo largo del curso trabajaremos con el software Matlab. Se trata de una herramienta
matemática de cálculo numérico, aunque en sus últimas versiones también incorpora
cálculo simbólico.
Ahora ya estamos preparados para arrancar con el uso de Matlab. Los objetivos que
trataremos de alcanzar en este tema serán los siguientes:
A continuación mostramos una serie de comandos que nos van a permitir obtener
información, gestionar el Workspace, u otras funcionalidades.
I save par Guarda las variables que hay en el Workspace dentro del archivo par.mat.
Ejemplo 1.
Obtengamos la ayuda del comando save.
Ejemplo 2.
Vamos a introducir un vector v, elevaremos sus elementos al cuadrado y guarda-
remos ambas variables en un archivo T01Ejemplo2.mat.
Tipos de archivos
Matlab tiene una serie de archivos con extensión propia que es necesario conocer.
Si bien no los vamos a desarrollar en este punto, sí que es conveniente conocer su
existencia.
I *.m Son ficheros que contienen texto interpretable por Matlab; en el apartado 1.5
veremos en qué consisten, diferenciando entre function y script.
I *.mlx Son ficheros que sirven para generar memorias de trabajos. En ellos, se pue-
de utilizar texto con formato, ecuaciones, ejecuciones de comandos, ejecuciones
Operadores
Hay otras operaciones adicionales en Matlab para el trabajo con vectores y matrices.
Es necesario mencionar que deben tener las mismas dimensiones.
Ejemplo 3.
Tenemos almacenados en T01Ejemplo03.mat las variables d y t, que represen-
tan la distancia y el tiempo que han dedicado 10 personas a su entrenamiento de
carrera. A continuación, obtenemos el vector velocidad v para cada uno de los
corredores.
Funciones
Ejemplo 4.
Calculemos 23x−5 = 8. Matemáticamente desarrollamos
log2 (8) + 5
log2 (23x−5 ) = log2 (8) ↔ 3x − 5 = log2 (8) ↔ x = .
3
Ejecutamos en Matlab
Valores fundamentales
I e: exp(1)
I i: 1i
I 0
0
: Nan
Ejemplo 5.
π
Calculemos e−i 2 .
Ejecutamos en Matlab
Comando Resultado
format short 4 dígitos tras el punto decimal
format long 15 dígitos tras el punto decimal
format shortE 4 dígitos tras el punto decimal con notación científica
format longE 15 dígitos tras el punto decimal con notación científica
format shortG Ajusta automáticamente la presentación
format bank 2 dígitos tras el punto decimal
format rat Fracción entre dos enteros
Uno de los éxitos de Matlab es la facilidad con la que se pueden ejecutar operaciones
con vectores y matrices.
Vectores
Los vectores son conjuntos de valores en una dimensión. Pueden ser vectores fila
h i
v= v1 v2 · · · vn ,
o vectores columna
v1
v2
v=
..
.
.
vn
Introducción de vectores
Para introducir un vector, este debe ir entre corchetes []. Si se trata de un vector
Ejemplo 6.
Vamos a introducir el vector
1
v = 0 ,
−i
Para extraer elementos de un vector hay que llamar al vector y poner la componente
a extraer entre paréntesis.
Ejemplo 7.
Sea el vector
1
v = 0 .
−i
>> v (2)
En caso de que queramos extraer más de una componente, entre paréntesis introdu-
ciremos un vector con las componentes a extraer.
Ejemplo 9.
Para generar un vector
h i
I v= 1 2 3 · · · 9 10 ejecutamos
h i
I v= 2 4 6 8 10 ejecutamos
>> v =2:2:10;
h i
I v= 10 8 6 4 2 ejecutamos
h i
I v= 0 0.01 0.02 · · · 0.98 0.99 ejecutamos
h i
I v= 0 0.01 0.02 · · · 0.99 1 ejecutamos
I la norma: norm(v).
Ejemplo 10.
h i
Calculemos el producto vectorial entre los vectores e1 = 1 0 0 y e2 =
h i
0 1 0 . Para ello, ejecutamos
Matrices
Una vez conocemos cómo trabajar con vectores, demos un paso más con las matrices.
Introducción de matrices
Una matriz de tamaño m × n se introduce entre corchetes []. Los elementos de cada
una de las m filas se introducen como vectores, es decir, separados por espacio o por
coma ,, mientras que para separar cada una de las n filas se introduce un punto y
coma ;.
Ejemplo 11.
Para introducir la matriz
1 −1 0
A= 0
2 5
1 3 1
Para extraer elementos de una matriz se sigue un procedimiento similar al de los vec-
tores. En este caso, pondremos entre paréntesis el elemento con los subíndices sepa-
rados por una coma.
Ejemplo 12.
Para extraer el elemento a21 de la
1 −1 0
A= 0 2 5
1 3 1
ejecutamos
>> A (2 ,1)
Ejemplo 13.
Para extraer los elementos a21 y a22 de la
1 −1 0
A= 0 2 5
1 3 1
>> A (2 ,1:2)
En caso de que queramos acceder a todos los elementos de una fila o de una columna,
podemos utilizar los dos puntos :.
Ejemplo 14.
Para extraer los elementos a21 , a22 y a23 de la matriz
1 −1 0
A= 0 5 ,
2
1 3 1
>> A (2 ,:)
Matrices especiales
Existen una serie de matrices especiales que se pueden generar de una forma más
rápida utilizando una serie de comandos de Matlab que describimos a continuación.
I Determinante: det
I Rango: rank
Una de las operaciones más habituales con matrices es la de la resolución del sistema
de ecuaciones lineales
>> x=A\b;
Cuando queremos trabajar con una función f (x) podemos trabajar con funciones anó-
nimas. Estas funciones se almacenan en el Workspace. Su definición comienza con
una arroba @ seguida de la variable entre paréntesis, poniendo fuera del paréntesis la
expresión de f (x).
x2
f (x) = e−x + .
sin(πx)
Para ejecutar la función f (x), es suficiente con escribir el nombre de la función intro-
duciendo entre paréntesis el escalar o el vectorial sobre el que se quiere evaluar.
Ejemplo 17.
Queremos evaluar la función
x2
f (x) = e−x +
sin(πx)
Las funciones anónimas no solo permiten un parámetro de entrada, sino que también
son útiles para funciones de varias variables. En este caso, la estructura es similar,
pero las variables de las que depende se definen dentro del paréntesis separadas por
Ejemplo 18.
Vamos a introducir la función anónima
1.5 Archivos .m
Script
Los scripts no tienen parámetros de entrada ni de salida. Actúan con las variables del
Workspace tal y como se encuentran al iniciar la ejecución, y las modifican si necesitan
acceder a ellas.
Como este script lo tenemos guardado como un archivo .m, cuando queramos
recordar cómo resolver el sistema de ecuaciones, podemos acceder a él.
Función
Una función es, al igual que los scripts, un conjunto de líneas de código que se ejecutan
secuencialmente.
Un requisito de las funciones es que queden definidas en la primera línea. Para ello,
la estructura que se sigue es
Las funciones pueden tener tantos parámetros de entrada y de salida como se quiera,
siempre y cuando cumplan con la estructura mencionada anteriormente.
Ejemplo 20.
Vamos a generar una función para resolver cualquier sistema de tres ecuaciones
con tres incógnitas. Para ello, implementamos el siguiente programa.
De esta manera, con las funciones podemos reutilizar el código para diferentes
valores de entrada.
Pero un elemento común que aparece en las estructuras de control es el uso de con-
diciones.
Condiciones
Un booleano es un tipo de dato que ocupa 1 byte y tiene como posibles estados falso y
verdaderno. En Matlab, los booleanos se llaman datos de tipo logical, y los estados
falso y verdadero se representan por 0 y 1, respectivamente.
Una condición es una operación cuya salida es un booleano. Para ello, se requiere del
uso de operadores relacionales. La Tabla 2 recoge alguno de los operadores relaciona-
les más comunes.
Ejemplo 21.
Para conocer si las raíces de un polinomio de segundo grado ax2 + bx + c = 0
son reales o complejas, necesitamos saber si el discriminante ∆ = b2 − 4ac es
mayor o igual a cero, o menor que cero. Para conocerlo, ejecutamos
Ejemplo 22.
Para conocer si las raíces de un polinomio de segundo grado ax2 + bx + c = 0
son reales o complejas, necesitamos saber si el discriminante ∆ = b2 − 4ac es
mayor o igual a cero, o menor que cero. Para conocerlo, ejecutamos
Estructuras condicionales
if condicion
instrucciones_SI
else
instrucciones_NO
end
Ejemplo 23.
Escribamos una función que calcule la nota final de una asignatura. Para ello,
La estructura if-else-end se puede anidar, de modo que de cada else puede salir
otra estructura if-else-end.
Bucles
Los bucles repiten la ejecución de unas líneas de código. A continuación nos centrare-
mos en los bucles while y for.
Bucle while
while condicion
instrucciones
end
Ejemplo 24.
Escribamos una función que calcule obtenga un número aleatorio que se encuen-
tre entre 0.5 y 1. Una posibilidad se recoge a continuación.
function x= aleatorioMayor05
% La función x= aleatorioMayor05 obtiene un número ...
aleatorio mayor que 0.5 de una distribución ...
uniforme
x= rand (1) ;
while and (x <0.5 ,x >1)
x= rand (1) ;
end
Ejemplo 25.
Escribamos una función que dado un vector v obtenga la diferencia entre sus
elementos. Una posibilidad se recoge a continuación.
Ejemplo 26.
Para representar la función
2
f (x) = e−x , x ∈ [−2, 2],
El resultado es
0.8
0.6
0.4
0.2
0
-2 -1 0 1 2
Cuando tenemos una función de dos variables f (x, y), también tenemos diferentes
posibilidades. Es necesario mencionar que las variables X e Y deben ser matrices, por
lo que habitualmente se genera un mallado a partir de los vectores x e y utilizando
Ejemplo 27.
2 −y 2
f (x, y) = e−x , (x, y) ∈ [−2, 2] × [−2, 2],
El resultado es
1 1 1
0 0 0
2 2 2
2 2 2
0 0 0
0 0 0
-2 -2 -2 -2 -2 -2
A continuación se listan una serie de elementos que dan un mejor aspecto a las repre-
sentaciones gráficas.
>> syms x
Una vez obtengamos el resultado, este será simbólico. Para poder recuperar el valor
numérico, utilizaremos el comando double.
Raíces de ecuaciones
Ejemplo 28.
Queremos obtener las raíces de la ecuación
f (x) = x2 − 1,
>> syms x;
>> f=x ^2 -1;
>> sol = solve (f ==0)
Funciones derivadas
Ejemplo 29.
Queremos obtener la derivada de la función
f (x) = x2 − 1,
>> syms x;
>> f=x ^2 -1;
>> df= diff (f,x)
f (x) = x2 − 1,
>> syms x;
>> f=x ^2 -1;
>> F= int (f,x)
Los archivos Live Script son documentos interactivos en los que se pueden incluir
comandos, texto formateado o ecuaciones, entre otros. Son archivos con extensión
.mlx. Permiten visualizar las diferentes salidas de las ejecuciones que se incluyen.
Dentro de este tipo de archivos podemos introducir texto con diferentes formatos.
Aparecen como formatos predefinidos Título, Encabezado y Normal. Además, sobre
estos formatos podemos seleccionar texto en negrita, cursiva o subrayado. También
podemos utilizar listas con viñetas o enumeradas.
Ecuaciones
Los archivos Live Script permiten la introducción de ecuaciones, tanto en formato nor-
mal como en formato LATEX. Para el formato normal, aparece un editor de ecuaciones
similar al de otros programas como Microsoft Word.
Código
Una vez introducido el código, para poder ejecutar la salida es necesario pulsar el bo-
tón Run.
Si lo que queremos es ejecutar una parte del archivo Live Script, deberemos generar
una sección con dicha parte del código. Para ello, introduciremos un Section Break
antes y después de esas líneas de código, y pulsaremos Run Section.
Ejemplo 31.
En el archivo adjunto puedes encontrar un archivo Live Script que obtiene las
raíces de diferentes polinomios utilizando el comando roots.