Fundamentos de MATLAB Capitulo 1
Fundamentos de MATLAB Capitulo 1
Fundamentos de MATLAB Capitulo 1
FUNDAMENTOS DE MATLAB
1.1.1 Introducción
En realidad, Matlab ofrece muchas características más y es mucho más versátil que
cualquier calculadora.
Para obtener mayor información sobre el Matlab, utilice las siguientes alternativas:
Página Web: www.mathworks.com
Newsgroup: comp.soft-sys.matlab
FTP: ftp.mathworks.com (144.212.100.10)
E-Mail: [email protected] o [email protected]
Actividad Nº 8: Navegue por los diferentes menús del Matlab. Traduzca y consulte la
función o la utilidad de cada opción del sistema de menús. Observe la correspondencia
entre los botones Workspace browser, Path browser y Help Windows con las opciones
Show Workspace y Set Path del menú File y la opción Help Window del menú Help.
CODIGOS ASCII
A continuación se presenta una tabla con los símbolos más utilizados en Matlab y que
normalmente no están disponibles en algunos teclados, con los correspondientes códigos
ASCII que permiten obtenerlos. La códigos ASCII son un tipo especial de código
estándar americano para el intercambio de información (ASCII: American Standard
Code for Information Interchange).
Existen también las ventanas del navegador por el espacio de trabajo y navegador por el
sistema de carpetas, que se activan pulsando los botones correspondientes en la barra de
herramientas o seleccionando las opciones correspondientes en el menú File.
Actividad Nº 9: Active las diferentes ventanas del Matlab, identifique sus partes y
ponga en práctica los comandos que permiten despejar cada tipo de ventana (clc: despeja
la ventana de comandos, clf: despeja la ventana de gráficos).
En Matlab es posible representar los datos de todos estos ejemplos usando un tipo
especial de estructura de datos llamada “matriz”, un conjunto de números dispuestos en
una retícula rectangular de filas y columnas.
Si una matriz consta de una fila y una columna podemos llamar “escalar” al número. De
forma similar, si una matriz consta de una fila o de una columna, la denominamos vector
En Matlab los nombres de las variables deben comenzar por una letra y luego pueden
contener letras, dígitos o guiones de subrayado. La longitud máxima del nombre de una
variable es de 19 caracteres. Los nombres de las variables son sensibles a las
mayúsculas.
SÍMBOLO DESCRIPCIÓN
. Punto decimal
, Permite separar los elementos de una fila, los subíndices de las matrices,
los argumentos de las funciones y órdenes en líneas con múltiples
órdenes. En líneas multiórdenes la coma puede ser reemplazada por el
punto y coma para suprimir la visualización.
; Permite separar las filas de la matriz. Al final de una expresión indica que
no serán visualizados los valores.
... Al final de una línea indican continuación en la siguiente línea.
: Indica vector espaciado regularmente, subíndices de matrices o
iteraciones.
‘ Transpuesta de una matriz. Texto es un vector cuyos componentes son los
códigos ASCII de los caracteres.
% Indica comentario. Indica un final lógico de una línea y se ignora
cualquier texto que le sigue.
! Ejecuta una orden del sistema operativo. Indica que el resto de la línea de
entrada se emite como una orden al sistema operativo.
= Indica asignación. Se usa en las sentencias de asignación
( ) Se usan normalmente para indicar prioridades en las expresiones
aritméticas, para encerrar los argumentos de las funciones y para encerrar
los subíndices de vectores y matrices.
[ ] Se usan para formar vectores y matrices.
Actividad Nº 10: Introduzca los siguientes datos al Matlab: a) su edad, b) sus promedios
acumulados de los semestres cursados, c) sus notas obtenidas en los parciales de las
diferentes asignaturas cursadas el semestre anterior.
La capacidad que tiene el espacio de trabajo depende del computador que se esté
utilizando. Cada dato elemental emplea 8 bytes en almacenamiento.
La tabla siguiente muestra algunos comandos para el manejo del espacio de trabajo.
COMANDO DESCRIPCIÓN
what Qué: produce una lista de los archivos .m, .mat y .men
what nom_directorio presentes en el directorio actual o en el especificado.
who Quién: produce una lista de las variables del espacio de trabajo
whos con o sin información adicional (tamaños).
who global Quién: produce una lista de las variables del espacio de trabajo
whos global global con o sin información adicional (tamaños).
clear Borrar: permite borrar todas o algunas de las variables del
clear vble1 vble2 vble3 espacio de trabajo.
Además de recordar las variables, Matlab permite guardar en un archivo las variables del
espacio de trabajo y recuperar datos de dichos archivos, los cuales tienen la extensión
.m, así:
• Para guardar: elija la opción Save Workspace as... en el menú File, la cual abre
un cuadro de diálogo estándar para salvar todas las variables actuales.
• Para recuperar: elija la opción Load Workspace... en el menú File, la cual abre
un cuadro de diálogo estándar para cargar todas las variables de un espacio de
trabajo guardado previamente.
Existen también comandos que permiten realizar estas operaciones, los cuales tiene los
siguientes formatos:
1.2.1 Variables
Ejemplo 1:
» X = ( 3 + 8 ) * ( 5/2 )
X=
27.5000
Se debe tener cuidado al elegir variables, de tal manera que no causen incompatibilidad
con variables propias del Matlab, como pi (razón de una circunferencia a su diámetro),
Inf (infinito), i o j ( reservadas para −1 ) o NaN (que representa un dato no
numérico como por ejemplo ∞/ ∞ ).
1.2.2 Constantes
Ejemplo 2:
» pi
ans =
3.1416
Símbolos para unir las variables y las constantes. Pueden ser: aritméticos, relacionales o
lógicos.
+ Suma
- Resta
* Multiplicación
/ o \ División
^ Potencia
sqrt Raíz cuadrada
» D = A.*(B>1)
D=
1 0 0
0 5 0
0 0 2
En Matlab cualquier valor distinto de cero se considera verdadero y los valores iguales a
cero se consideran falsos.
Ejemplo 4:
»X = -2; Y = 3; Z = 0;
»X + Y > = 1
ans =
1
» ~ (2 ^ Y = = X)
ans =
1
1. 2x 2 − 4x +1 = 0 2. 4x 2 − 4x +1 = 0
3. 3x 2 − 2 x + 5 = 0 4. 4 x 2 − 5x + 3 = 0
5. x 2 − 10 x + 11 = 0 6. 36 x 2 + 12 x + 1 = 0
Ejemplo 5:
» X = -2; Y = 3; Z = 0;
» ~ (X= = Y & Z)
ans =
1
Son operadores que sirven para realizar operaciones elemento por elemento.
+ Suma
- Resta
.* Multiplicación
./ División
.^ Potencia
sqrt Raíz cuadrada
Ejemplo 6:
» A = [1 2 –1; 3 5 –1; 2 1 2];
» B = [ 2 1 –2; 1 3 –1; 1 0 2];
» C = A.*B
C=
2 2 2
3 15 1
2 0 4
Es importante colocar el punto antes del asterisco, pues de lo contrario se realiza una
operación de matrices, tal como lo las conocidas en el Álgebra Lineal, y no una
operación elemento por elemento. Las operaciones con arreglos también se utilizan
entre un escalar y un no escalar, por ejemplo veamos el operador de potencia con
arreglos.
»D=A^2
D=
5 11 -5
16 30 -10
9 11 1
Nota: en los ejemplos anteriores se utilizaron matrices, pero también hubiéramos podido
utilizar vectores.
Actividad Nº 14: Dados los vectores A=[3 –1 0] y B=[2 -1 2], hallar los valores del
vector D.
1. D = A.^B 2. D = B./A + A – 2
3. D = A + 3.*B y D = A + 3*B 4. D = 3 * A.*A
En algunos leguajes de programación, hay que separar el valor de sus raíces en dos
casos:
Si b 2 − 4ac ≥ 0 , entonces x1 , x 2 , son solución real de la ecuación cuadrática.
Solución:
» a = 1; b = 3; c = -10;
» X1 = (-b + sqrt ( b^2 - 4*a*c ) ) / (2*a)
» X1 =
2
» X2 = (-b - sqrt ( b^2 - 4*a*c ) ) / (2*a)
» X2 =
-5
Para verificar en Matlab, si las respuestas son correctas se sustituyen los valores de X1 y
X2 en la ecuación dada, x 2 + 3 x − 10 , y se debe obtener la equivalencia, es decir igual a
cero.
Solución:
» a = 1; b = 4; c = 5;
» X1 = (-b + sqrt ( b^2 - 4*a*c ) ) / (2*a)
» X1 =
− 2.0000 +1.0000 i
Actividad Nº 15: Utilizando Matlab, hallar las raíces de las siguientes ecuaciones.
1. 12 x − 7 x 2 + 64 = 0 2. 15 x = 25 x 2 + 2
3. x 2 = −15 x − 56 4. 7 x 2 + 14 = 0
5. 4 x 2 = −32 x 6. x 2 − 10 x + 25 = 0
7. x 2 − 5x − 5 = 0 8. 5x 2 − 7 x + 8 = 0
Actividad Nº 16: Utilizando Matlab, determinar si los valores dados son raíces de la
ecuación que se especifica.
1
1. 1y − son las raíces de 2 x 2 − x − 1 = 0
2
1
2. 2 y − son las raíces de 5 x 2 − 11x + 2 = 0
5
1
3. -5 y − son las raíces de 5 x 2 + 24 x − 5 = 0
5
1 2
4. y − son las raíces de 6 x 2 + x − 2 = 0
2 3
Y = 2 ^ 3/2 + 5
8/2 + 5
4+5
9
Ejemplo 12:
» 7 * 3 + 5 +4/2 – 8
ans =
20
7 * 3 + 5 + 4/2 – 8
21 2
26
28
20
COMANDO DESCRIPCIÓN
versión Versión: permite obtener información sobre la versión instalada del
Matlab
ver Licencia: muestra el número de licencia o de serie del programa
realmin Mínimo: permite obtener el número positivo más pequeño
(2.2251e-308)
realmax Máximo: permite obtener el número positivo más grande
(1.7977e+308)
eps Epsilon: permite obtener el epsilon de la máquina (2.2204e-016).
Número más pequeño tal que, cuando se le suma 1, crea un número
en punto flotante en el computador mayor que 1.
computer Computador: tipo de computador.
quit/exit Salir: permite cerrar el Matlab.
info Información: muestra información sobre Matlab y The MathWorks
expo Demostración: guía al usuario para que pueda ejecutar diversas
demo demostraciones que se eligen de un menú.
clc Despejar: despeja la ventana de comandos.
clf Despejar: despeja la ventana de gráficos.
clock Reloj: muestra la fecha y hora del sistema en el formato:
fix(clock) [año, mes, día, hora, minuto, segundo]
date Fecha: muestra la fecha del sistema en el formato: [día, mes, año]
tic Tiempo: permite medir el tiempo transcurrido entre dos eventos.
toc
path Camino: muestra la ruta de búsqueda vigente del Matlab.
path (cadena_nueva_ruta)
getenv(‘matlabpath’) Entorno: muestra las rutas de Matlab vigentes.
help Ayuda: permite obtener más información sobre los comandos del
help nom-comando Matlab.
diary on Diario: permite crear un archivo que contenga todo lo que se
diary off introduce por el teclado, así como la mayor parte de lo que se envía a
diary nom_archivo la pantalla.
whatsnew Muestra los archivos README de Matlab y de los tooboxes.
lookfor palabra-clave Permite encontrar ordenes y temas de ayuda dada una palabra clave
general.
Actividad Nº 18: Visualice en la pantalla las ordenes de propósito general del Matlab
digitando la orden: help general. Tome nota de estas ordenes con su respectiva función.
Listas explícitas:
a). Si se usa un signo de dos puntos en una referencia de matriz en lugar de un subíndice
específico, el signo de dos puntos representa a toda la fila o columna.
X=A(: , 3); aquí el vector X contiene la tercera columna de A.
Y=A(2, : ); aquí el vector Y contiene la segunda fila de A.
c). Si se usa un signo de dos puntos para separar tres números, se generan valores entre
el primer y tercer número, usando el segundo número como incremento.
T=0.0:0.5:5.0; aquí el vector T contiene los números de 0 al 5 en incrementos
de 0.5
d). El operador de dos puntos también puede servir para seleccionar una submatriz de
otra matriz.
W=A(3:4, 1:2); aquí la matriz W contiene los elementos de la matriz A situados
desde la tercera hasta la cuarta fila y desde la primera hasta la segunda columna.
COMANDO DESCRIPCIÓN
ans Valor calculado por una expresión pero no almacenado en una
variable, p.e., 4*5
nan Magnitud no numérica (Not-a-Number), p.e., 0/0
inf Infinito, p.e., 1/0
COMANDO DESCRIPCIÓN
pi Número pi
i, j Raiz cuadrada de –1
realmin Número real positivo más pequeño que es utilizable
realmax Número real positivo más grande que es utilizable
COMANDO DESCRIPCIÓN
[] Matriz vacía
zeros(n,m) Matriz de ceros
ones(n,m) Matriz de unos
eye(n,m) Matriz identidad
rand(n,m) Matriz de números aleatorios entre 0 y 1
randn(n,m) Matriz de números aleatorios distribuidos normalmente con media 0 y
varianza 1
Los valores de una matriz también pueden introducirse a través del teclado usando el
comando input, que exhibe una cadena de texto y luego espera entradas del usuario.
COMANDO DESCRIPCIÓN
X=input(‘mensaje’) Permite introducir uno o varios valores. Si se van a introducir
varios valores deben encerrarse entre corchetes. Ej.
input(‘Digite el radio’)
Ej. input(‘Digite edad, peso y estatura’)
X=input(‘mensaje’, ‘s’) Permite introducir una cadena de caracteres.
Ej. input(‘Digite nombre y apellidos ’, ‘s’);
OBSERVACIONES
Existen varias formas para extraer y/o presentar los valores contenidos en las matrices:
• Empleo de los comandos disp y fprintf
• Escritura en un archivo
• Empleo de la orden save
COMANDO DESCRIPCIÓN
disp(X); disp(‘mensaje’) Permite exhibir texto encerrado entre apóstrofos. También permite
exhibir el contenido de una matriz sin tener que especificar un
nombre de variable. Ej. disp(T); disp(‘Grados’)
fprintf(‘formato’, matriz) Permite exhibir tanto texto como valores de matrices y especificar
el formato que se usará para visualizar los valores y también saltos
de línea. El formato contiene el texto y las especificaciones
(%n.me, para notación exponencial; %n.mf, para notación decimal;
%n.mg, para notación exponencial o decimal) para las salidas. El
valor de n indica el número de cifras totales y el valor de m el
número de cifras decimales.
Ej. fprintf(‘Tempratura de %4.2f Grados \n’, T)
Es posible utilizar el comando fprintf para escribir salidas con formato en un archivo.
Para ello, se incluye el nombre del archivo en el argumento del comando, y el formato
sería:
!erase nom-archivo
delete nom-archivo.
OBSERVACIONES
Formato de la salida:
COMANDO DESCRIPCIÓN
format {short/long/bank/short e/ Permite especificar la forma y el número de cifras
long e/+/rat/hex} decimales con que se visualizarán los valores
(Short: 4 dígitos decimales, long: 14 dígitos
decimales, bank: 2 dígitos decimales, etc)
FUNCION DESCRIPCIÓN
Funciones básicas
abs(x) Valor absoluto
sqrt(x) Raíz cuadrada
rem(x,y) Módulo (residuo de dividir x entre y)
sign(x) Función signo: -1si x<0; 0 si x=0; +1 si x>0
Funciones exponenciales
exp(x) Exponencial ex
Funciones logarítmicas
log(x) Logaritmo natural
log10(x) Logaritmo decimal
log2(x) Logaritmo en base 2
Funciones de números complejos
conj(x) Complejo conjugado
real(x) Parte real de un número complejo
imag(x) Parte imaginaria de un número complejo
abs(x) Magnitud de un número complejo
angle(x) Angulo de un número complejo
Funciones trigonométricas
sin(x) Seno
cos(x) Coseno
tan(x) Tangente
asin(x) Arcoseno
acos(x) Arcocoseno
atan(x) Arcotangente
Funciones hiperbólicas
sinh(x) Seno hiperbólico
cosh(x) Coseno hiperbólico
tanh(x) Tangente hiperbólico
asinh(x) Seno hiperbólico inverso
Tarde o temprano se encontrará con situaciones en que serán insuficientes las funciones
proporcionadas por Matlab. El Matlab le permite al usuario crear sus propias funciones.
En el capítulo dos, que trata sobre los archivos de ordenes, se retomará y se ampliará el
tema de las funciones definidas por el usuario, así que por el momento dejaremos este
tema de este tamaño.
Es oportuno recordar aquí que las capacidades del Matlab se basan en las operaciones de
vectores y matrices, lo cual hace indispensable su estudio y comprensión. En una
sección anterior se mencionaron algunas matrices especiales en Matlab.
Vector fila:
A=[7, 2, 9, 5 ];
Vector columna:
B=[ 2; 5; 7; 6];
Matriz:
C=[3, 7, 6; 1, 8, 2; 5, 4, 9];
A= primer_valor:incremeto:último_valor
Ejemplos:
A+B A-B 2*A-B
A.*B
A./B o B.\*A
A.^B A.^5 5.^B
Si se desea crear una matriz del mismo tamaño de otra matriz existente A, entonces se
pueden utilizar las siguientes funciones:
B=zeros(size(A)) B=ones(size(A))
B=eye(size(A)) B=rand(size(A))
El Matlab cuenta con una serie de funciones útiles para la manipulación matricial, tal
como lo podemos apreciar en la siguiente actividad.
FUNCION DESCRIPCIÓN
size(A) Retorna la dimensión de una matriz
length(A) Retorna la longitud de un vector o la máxima dimensión de una matriz.
max(A) Determina el valor más grande contenido en A. Si A es una matriz, la función
devuelve un vector fila que contiene el máximo elemento de cada columna.
max(A, B) Determina una matriz del mismo tamaño de A y B. Cada elemento de la matriz
contiene el valor máximo de las posiciones correspondientes en A y B.