Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo I
¿QUÉ ES MATLAB?
El nombre mismo de MATLAB es una abreviatura de Matrix Laboratory, laboratorio matricial.
En un nivel fundamental, se puede pensar que estos programas son sofisticadas calculadoras
con base en una computadora. Son capaces de realizar las mismas funciones que una
calculadora científica, y muchas más, incluso para la más simple de sus aplicaciones
matemáticas.
MATLAB no siempre es la mejor herramienta para usar en una tarea de programación. El
programa destaca en cálculos numéricos, especialmente en los relacionados con matrices y
gráficas, puesto que MATLAB es óptimo para matrices, si un problema se puede formular con
una solución matricial, MATLAB lo ejecuta sustancialmente más rápido que un programa
similar en un lenguaje de alto nivel.
¿CÓMO SE USA MATLAB EN LA INDUSTRIA?
• La habilidad para usar herramientas tal como MATLAB se convirtió rápidamente en
un requisito para muchos puestos de ingeniería. MATLAB es particularmente popular
para aplicaciones de ingeniería eléctrica, aunque se usa muchísimo en todos los campos
de la ingeniería y ciencias.
• Ingeniería eléctrica: aplicaciones de procesamiento de señales.
• Ingeniería biomédica: herramientas para imágenes
• Dinámica de fluidos: Los cálculos que describen velocidades de fluidos (rapideces y
direcciones), comportamiento de los gases
Resolución de Problemas en Ingeniería y Ciencias
• En las disciplinas de ingeniería, ciencias y programación de computadoras, es
importante tener enfoque consistente para resolver los problemas técnicos. El enfoque
que se plantea a continuación es útil en cursos tan distintos como química, física,
termodinámica y diseño de ingeniería.
• Plantear el problema: Si no se tiene una comprensión clara del problema es imposible
que se pueda resolver, se puede hacer un dibujo.
• Describir los valores de entrada(conocidos) y los salidas (incógnitas)
• Desarrollar un algoritmos: Identificar ecuaciones que relaciones lo valore conocidos
con la incógnitas, y realizar pruebas de escritorio
• Resolver el problema: solución en Matlab
• Probar la solución: los resultados tienen sentido, coinciden los cálculos con las
muestras, y es lo que se esperaba como resultado.
Ambiente de Matlab
Empezando a trabajar
Para comenzar a trabajar con Matlab, se tecleará la orden que se desee ejecutar en la ventana
de comandos, después del símbolo del sistema >>, pulsando al final la tecla ENTER. Entonces
el programa ejecutará la orden guardando el resultado en la memoria RAM del ordenador.
Véase a continuación un ejemplo en el que se pide a Matlab que ejecute una suma sencilla:
>> 2+3
ans =
5
El resultado se guarda en la variable reservada ans, que inmediatamente aparecerá en la ventana
workspace. Ésta se crea automáticamente cuando una expresión de la ventana de comandos
no se asigna a ninguna otra variable. Guarda la información de la última respuesta que cumpla
la condición anterior.
Operaciones aritméticas
Los operadores aritméticos aplicables son los siguientes:
• Suma: +
• Resta: -
• Producto: *
• División derecha: /
• División izquierda: \
• Potenciación: ^
EJEMPLOS:
• >> 2.4*6
• 14.4000
• >> 2^3
• 8
• >> -1^4
• -1
• >> (-1)^4
• 1
• >> 3/4
• 0.7500
• >> 3\4
• 1.3333
• >> 2/3^2
• 0.2222 (la potencia tiene mayor prioridad)
• >> 2/3*2
• 1.3333
Limpieza de texto de la ventana de comandos
• Para eliminar todo el texto escrito en la ventana de comandos se utiliza el comando clc.
La ejecución de esta orden no afecta a las variables de la sesión de trabajo (la ventana
Workspace sigue manteniendo las variables)
• Para vaciar el Workspace es decir el contenido de las variables utilizamos el comando
clear.
Limpieza de texto de la ventana de comandos
• Para eliminar todo el texto escrito en la ventana de comandos se utiliza el comando clc.
La ejecución de esta orden no afecta a las variables de la sesión de trabajo (la ventana
Workspace sigue manteniendo las variables)
• Para vaciar el Workspace es decir el contenido de las variables utilizamos el comando
clear.
EJERCICIO ORDEN DE LAS OPERACIONES
• Encontrar el área de un cilindro circular recto
Lo que es incorrecto
Determinar
TRABAJO EN CLASE 1
Para la resolver del problema use la siguiente metodología:
• Establezca el problema
• Describa las entradas y salidas
• Desarrollo un ejemplo a mano
• Desarrolle una solución en Matlab
• Ponga a prueba la solución.
Despliegue de números
• Notación científica: La Notación científica expresa un valor como un numero entre 1
y 10 multiplicado por una potencia de 10. En Matlab se designan con una e entre el
numero decimal y el exponente.
>> a=6.022e23
No debe existir espacios en blanco entre el numero decimal y el exponente.
>>6.022 e23
• Formato de despliegue: Matlab usa en sus cálculos números punto flotante , de cuantos
dígitos se usen depende de su cálculo. Los enteros se imprimen sin punto decimal, los
valores con fracciones decimales se imprimen en el formato corto por defecto muestra
4 dígitos decimales.
• MATLAB permite especificar otros formatos que muestren dígitos significativos
adicionales.
format long: Despliega en un formato decimal de 14 dígitos decimales.
format bank (formato banco): se despliega dos dígitos decimales.
format short: Regresa el formato a 4 dígitos decimales.
format short e: despliega los números en notación científica con cuatro dígitos decimales.
format long e: despliega los números en notación científica con 14 dígitos decimales.
format +: los únicos caracteres que se imprimen son los signos mas y menos.
format rat: despliega números como números racionales (fracciones).
Ejemplo
•
• El operador dos puntos también se puede usar para extraer datos de las matrices, una
característica que es muy útil en análisis de datos.
• “todas las filas en la columna 1”.
MATRICES ESPECIALES
• Matriz de ceros: A veces es útil crear una matriz de ceros. Cuando se usa la función
zeros con un solo argumento escalar de entrada, se genera una matriz cuadrada:
Matrices mágicas
MATLAB incluye una función matricial llamada magic que genera una matriz con propiedades
inusuales. Parece no haber algún uso práctico para las matrices mágicas, excepto que son
divertidas. En una matriz mágica, la suma de todas las columnas es la misma, al igual que la
suma de todas las filas.
FUNCIONES INTERNAS DE MATLAB
La gran mayoría de los cálculos de ingeniería requieren funciones matemáticas muy
complicadas, incluidos logaritmos, funciones trigonométricas y funciones de análisis
estadístico. MATLAB tiene una extensa librería de funciones internas que le permiten
realizar dichos cálculos.
Uso Funciones Internas
• Se puede considerar que todas las funciones por lo general tienen tres componentes:
nombre, entrada (argumento) y salida.
• Los argumentos de la función pueden ser escalares o matrices.
• Nombre de la función: sqrt
• Argumento o entrada : puede ser un escalar o una matriz
• Salida: es un valor o valores calculados
• >>x=9
• >>b=sqrt(x)
• b=3
• >>x=[4,9,16]
• >>b=sqrt(x)
• b=[2,3,4]
• Nombre de la función: sqrt
• Argumento o entrada : puede ser un escalar o una matriz
• Salida: es un valor o valores calculados
• >>x=9
• >>b=sqrt(x)
• b=3
• >>x=[4,9,16]
• >>b=sqrt(x)
• b=[2,3,4]
• Algunas funciones requieren varias entradas como la función residuo rem , que
requiere el dividendo o divisor
rem(x,y)
>>rem(10,3)
>>ans=1
• La función size es una función que regresa dos salidas. Determina el numero de filas
y el numero de columnas
>>d=[1 2 3; 4 5 6; 7 8 9]
>>f=size(d)
>>f=
3 3
También se puede asignar nombres de variables a casa una de las respuestas al representar al
lado izquierdo del enunciado de asignación como una matriz
>>[x,y]=size(d)
x=3
y=3
Matemáticas discretas
MATLAB incluye funciones para factorizar números, encontrar denominadores y múltiplos
comunes, calcular factoriales y explorar números primos. Todas estas funciones requieren
escalares enteros como entrada. Las matemáticas discretas son las matemáticas de números
enteros
FUNCIONES TRIGONOMÉTRICAS
Sumas y productos
NÚMEROS ALEATORIOS
Fecha y Hora
• clock devuelve un vector fila de seis elementos que representan el año, el mes, el día,
la hora, los minutos y los segundos, según el reloj interno del computador. Los cinco
primeros son valores enteros, pero la cifra correspondiente a los segundos contiene
información hasta las milésimas de segundo.
• now devuelve un número (serial date number) que contiene toda la información de la
fecha y hora actual. Se utiliza como argumento de otras funciones.
• date devuelve la fecha actual como cadena de caracteres (por ejemplo: 24-Aug-1999).
• calendar() devuelve una matriz 6x7 con el calendario del mes actual, o del mes y año
que se especifique como argumento.
GRAFICACIÓN
La graficación se la utiliza para hacer que la información se entienda mas fácilmente, se las
utiliza para una rápida verificación y determinar si una solución de computadora produce los
resultados esperados.
• Gráficas Bidimensionales
Un conjunto de pares ordenados se usa para identificar puntos sobre una grafica bidimensional
luego los puntos se conectan con líneas rectas. A la variable independiente se le da el nombre
de x y se grafica en el eje de las x y la variable dependiente se recibe el nombre de y se la grafica
en el eje y.
Gráfica básica
• Definir los vectores de valores x y valores de y.
Ejemplo:
Se puede almacenar los valores de tiempo en un vector llamado x (o cualquier nombre) y los
valores de distancia en un vector llamado y:
Para graficar estos puntos utilizamos el comando plot con argumentos x,y
>>plot (x,y)
Títulos, etiquetas y retículas
Para el titulo utilizamos el comando:
>>title(‘Mensaje deTitulo de la Ventana’)
Para etiquetar los ejes x y y usamos el comando:
>>xlabel (‘Tiempo, seg’)
>>ylabel (‘Distancia,pies’)
Para añadir una reticula (grilla o cuadricula) a la grafica:
>>grid on
Introduce texto con ayuda del ratón: el cursor cambia de forma y se espera un clic para
introducir el texto en esa posición
>>gtext('texto')
• PLOT(X,Y) grafica el vector Y versus el vector X. si X o Y es una matriz, entonces el
vector es graficado versus las filas o columnas de la matriz, lo que se alinea.
• x=[1 2 3 4];
• y=[2 4 8 16;1 2 3 4];
• plot(x,y)
• y=[1 2 3 4];
• x=[2 4 8 16;1 2 3 4];
• plot(x,y)
• PLOT(Y) grafica las columnas de Y versus su índice.
• y=[1 2 4 8]; plot(y)
Graficas de Función
La función fplot le permite graficar una función sin definir arreglos de valores x y y
correspondientes.
MATLAB calcula automáticamente el espaciamiento de los valores x para crear una curva
suave.
Note que el primer argumento en la función fplot es una cadena que contiene la función y el
segundo argumento es un arreglo
GRAFICAS TRIDIMENSIONALES
• Matlab ofrece una serie de comandos para graficas tridimensionales:
Grafica Lineal Tridimensional
La función plot3 acepta datos en 3 dimensiones es decir se debe proporcionar vectores en x, y
,z. Estos datos se grafican en una espacio de tres dimensiones y se conectan con líneas rectas.
2.
• >> a = 10; b = 1.0; c = 0.3;
• >> t = linspace(0, 2*pi, 200);
• >> x = b*cos(t);
• >> y = b*sin(t);
• >> z = c*cos(a*t);
• >> plot3(x, y, z, 'k')
• >>comet3(x, y,z)
Superficies tridimensionales
Matlab contiene un conjunto de funciones gráficas 3D para crear superficies, contornos, y
variaciones, así como especializaciones de esas formas básicas.
Una superficie se define por la expresión Matlab z=f(x,y) donde x e y son las coordenadas en
el plano xy y z es la altura resultante.
Los puntos de la rejilla se definen mediante dos matrices. La matriz X guarda las abscisas de
los puntos y la matriz Y las ordendas de dichos puntos. La función meshgrid de MATLAB crea
la matriz X y la matriz Y.
Se calculan los valores de z=f(x,y) para cada unos de los puntos de la rejilla.
• Surf – dibuja una superficie compuesta de parches de colores que dependen de la
magnitud z
• Mesh – dibuja parches de superficies blancas que se definen por su contorno. Los
colores de las líneas de los parches se determinan por la magnitud de z.
Ejemplo
• z=x2-y2 para el dominio -2≤x≤3, -2≤y≤3
• x=-2:3;
• >> y=-2:3;
• >> [X,Y]=meshgrid(x,y);
• Z=X.^2-Y.^2;
• mesh(X,Y,Z);
• xlabel('X')
• ylabel('Y')
• zlabel('Z')
Entradas y salidas controladas por el usuario
• Matlab ofrece funciones internas para permitir el usuario ingrese valores.
• La función input: despliega una cadena de texto en la ventana de comando y luego que
el usuario proporcione la entrada solicitada.
z=input (‘Ingrese una valor’);
Para ingresar una matriz usamos los corchetes [ ]
Para ingresar una cadena usamos ‘ ‘ O ESPECIFICAR QUE ES UNA CADENA
Opciones de Salida
• Matlab ofrece otros dos enfoques para desplegar los resultados.
Función de despliegue (display)
La función display o disp se usa para desplegar los contenidos de una matriz sin imprimir su
nombre.
disp(x)
disp('los valores de la matriz son:');
Salida formateada
• La función fprintf (función impresa formateada): se utiliza para especificar el formato
a usar al desplegar los valores, y saltar de linea.
• Formato
fprintf(format-string, var,….)
Ejemplo:
X=5;
fprintf(‘Hay %f elementos en el vector’,x);
% es una marcador de posición que se ubica en donde se va a insertar el valor de la variable.
f se utiliza para le formateo el cual le indica a Matlab desplegar el valor de la variable en un
formato de punto fijo por defecto. ( el formato por defecto es 6 lugares después del punto
decimal)
Tipos de formatos
Comandos de formato especial
CAPITULO II
FUNCIONES LÓGICAS Y ESTRUCTURAS DE CONTROL
Estructuras
• Secuenciales: Son listas de comandos que se ejecutan una después de otra.
• Selección: Ejecutan comandos si algún criterio es verdadero o falso. Permitiendo elegir
dichas rutas con base a una condición lógica, las cuales contienen operadores
relacionales o lógicos.
• Repetición: hace que un grupo de enunciados se ejecute carias veces. El numero de
repeticiones depende de un contador o de la evaluación de una condición lógica.
Operadores Relacionales y lógicos
Estructuras de Selección
• If Simple: Si la comparación es verdadera se ejecutan los enunciados entre la estructura
if y el enunciado end. Si la comparación es falsa el programa salta inmediatamente al
enunciado que le sigue al end.
If /Else
• Else le permite ejecutar un conjunto de enunciados si la comparación es verdadera y
conjunto diferente de enunciados si la comparación es falsa.
ElseIf
• Cuando se anidan varios niveles de enunciados if/else suele ser difícil determinar
cuales expresiones lógicas con verdaderas y cuales son falsas. ElseIf le permite
comprobar múltiples criterios mientras se mantiene el código fácil de leer.
• Find
Busca en una matriz e identifica cuales elementos en dicha matriz satisfacen un criterio dado.
Encuentra los números índices de los elementos que satisfacen el criterio.
Supóngase que se tiene una matriz en la que consta las alturas de solicitantes de la Academia
Naval los cuales deben cumplir con al menos 66 pulgadas.
EJEMPLO
• Supóngase que tenemos otra matriz en la que se almacena en la columna 1la estatura
en la columna 2 los años, se desea además de lo anterior también conocer los datos en
que los solicitantes tienen 18 años de edad o mas y menos de 35 años.
Switch y Case
• Esta estructura se usa con frecuencia cuando existe unas serie de opciones de
programación para una variable dada dependiendo su valor.. Esta le permite elegir
entre múltiples opciones
Menú
• La función menú se usa con frecuencia en conjunto con una estructura switch/case.
Esta función hace que aparezca un recuadro de menú en la pantalla, con una serie
de botones definidos por el programador
Características
• El bucle comienza con un enunciado for y termina con la palabra end.
• La primera línea en el bucle define el número de veces que se repetirán los bucles
mediante un número índice.
• El índice de un bucle for debe ser una variable. (El índice es el número que cambia
cada vez a lo largo del bucle.)
• Cualquiera de las técnicas aprendidas para definir una matriz se puede usar para
definir la matriz índice. Un enfoque común es usar el operador dos puntos, como
en
Bucles while
• Los bucles while son similares a los bucles for. La gran diferencia es la forma en que
MATLAB decide cuántas veces repetir el bucle. Los bucles while continúan hasta
que se satisface algún criterio.
• Push Button
Este comando se utiliza para ejecutar o lanzar una orden cuando se pulsa
• Grupos de botones (Button Group)
Los botones de selección permiten al usuario seleccionar entre las diferentes opciones que
se presentan en la aplicación. En el caso en el que se encuentren englobadas en un grupo de
botones, uno de ellos siempre permanecerá activado.
• Cajas de selección (pop up menú)
Este tipo de control permite seleccionar una opción de entre varias mostradas en una lista.
Eligiendo una de ellas, se ejecuta la opción que se haya seleccionado. La ventaja de este
control es el diseño compacto con el que se muestra por pantalla, pudiéndose colocar en
espacios reducidos al poderse desplegar automáticamente en el momento en que se pulsa,
quedando minimizado cuando sobre él no se está pulsando.
• Cajas de texto (Static Text)
Son controles en los que no se permiten realizar operaciones con el ratón. Están diseñadas
para representar en pantalla la información especificada por el programador, sin que se
puedan modificar por el usuario.
• Cajas de texto editables (Edit Text)
Las cajas de texto editables se utilizan para poder introducir y modificar cadenas de
caracteres. La llamada a la opción de ejecución Callback será efectiva cuando se pulse el
botón asociado a este control. La flexibilidad a la hora de poder manipular datos es factible
gracias a este control,. Se ha utilizado este comando para introducir números.
• Paneles (Panel)
Un panel no es un control propiamente dicho. Su función es la de englobar una serie de
componentes para una mejor estructuración por pantalla.
• Ventanas (Axes)
Una ventana es un objeto que permite la representación de gráficas o imágenes
• Todos los controles comentados se denominan objetos. Estos presentan unas
propiedades que son editables por el programador. En función de las necesidades,
del estado en que se encuentre el programa y de la estructuración del mismo, podrán
modificarse durante el desarrollo de la aplicación. Muchas de estas propiedades son
comunes a la mayoría de los controles, aunque cada uno de ellos puede presentar
propiedades particulares.
• La herramienta que presenta MATLAB para modificar las propiedades del objeto
deseado es el inspector de propiedades. En él se representan todas las variables
modificables del objeto.
Modificación de propiedades con Property Inspector
Propiedades
• Tag: es la más importante ya que identifica cada control en el código, por tanto
debemos de asignar un nombre significativo a dicho control.
• String: que es el título del botón
• FontSize: cambia el tamaño de la fuente de texto
• FontWeight: cambia el estilo de la fuente
• Background Color : Cambia el color del fondo del control
• CallBack: La propiedad más importante del control, ya que le dice al control que
hacer cuando este se active.
• Enable: Activa o desactiva un control
• El editor permite construir interfaces arrastrando y soltando componentes en el área
de diseño de la GUI.
• Todas las GUIs creadas con guide empiezan con una función inicial (callback) que se
invoca cuando se invoca la interfaz.
• La operación automática de guardado (save) genera un fichero .m y un fichero .fig
• El fichero .fig contiene el diseño del GUI en binario y el fichero .m contiene el código
que controla el GUI
Editor de código
Al hacer click derecho en el elemento ubicado en el área de diseño, una de las opciones más
importantes es View Callbacks, la cual, al ejecutarla, abre el archivo .m asociado a nuestro
diseño y nos posiciona en la parte del programa que corresponde a la subrutina que se ejecutará
cuando se realice una determinada acción sobre el elemento que estamos editando.
Por ejemplo, al ejecutar View Callbacks>>Callbacks en el Push Button, nos ubicaremos en la
parte del programa:
get(handles.nombre_control,'propiedad')
set(handles.nombre_control,'propiedad',nuevo_valor).
• Todos los valores de las propiedades de los elementos (color, valor, posición, string…)
y los valores de las variables transitorias del programa se almacenan en una estructura,
los cuales son accedidos mediante un único y mismo identificador para todos éstos.
Antes de poder usar esta función, se debe guardar en el directorio actual. El nombre de
archivo debe ser el mismo que el nombre de función con la finalidad de que MATLAB lo
encuentre.
Una vez guardado el archivo-m, la función está disponible para usar desde la ventana
de comando, desde un archivo-m script o desde otra función. Considere la función
poly recién creada. Si en la ventana de comando se escribe
EJERCICIO: Conversión entre grados y radianes
Los ingenieros usualmente miden los ángulos en grados, aunque la mayoría de los
programas de cómputo y muchas calculadoras requieren que la entrada a las funciones
trigonométricas esté en radianes.
Escriba y pruebe una función GR que cambia grados a radianes y otra función RG que
cambia radianes a grados. Sus funciones deben tener capacidad de aceptar entrada
escalar y matricial.
EJERCICIO: Tamaño de grano ASTM
Tal vez no esté acostumbrado a pensar que los metales son cristales, pero lo son. Si
observa un trozo pulido de metal bajo un microscopio, la estructura se vuelve clara,
cada cristal (llamado grano en metalurgia) es de un tamaño y forma diferentes. El
tamaño de los granos afecta la fortaleza del metal: cuanto más finos sean los granos,
más fuerte será el metal.
Puesto que es difícil determinar un tamaño de grano “promedio”, la ASTM
(anteriormente conocida como la American Society for Testing and Materials,)
desarrolló una técnica estándar. Una muestra de metal se examina bajo un microscopio
a una amplificación de 100, y se cuenta el número de granos en una pulgada cuadrada.
La ecuación relevante es
De manera similar, se podría escribir una función definida por el usuario para
multiplicar dos vectores:
También puede crear funciones que regresen más de una variable de salida.
Calcular la aceleración, velocidad y la distancia en función del tiempo de un móvil.
Si llama la función sin especificar las tres salidas, sólo se regresará la primera salida:
3x3 3x1
A B
funciona porque las dimensiones coinciden
Aunque esta técnica corresponde bien con el enfoque que se considera en las clases de álgebra
cuando se introducen las matrices, no es muy eficiente y puede resultar en excesivos errores de
redondeo. En general, se debe evitar usar la matriz inversa para resolver sistemas lineales de
ecuaciones.
Solución con división izquierda de matriz
Una mejor forma de resolver un sistema de ecuaciones lineales es usar una técnica llamada
eliminación gaussiana.
La técnica de eliminación gaussiana es un enfoque organizado para eliminar variables hasta
que sólo existe una incógnita y luego sustituir de nuevo hasta que se determinan todas las
incógnitas. En MATLAB se puede usar división izquierda para resolver el problema por
eliminación gaussiana.
X=A\B
La función rref de MATLAB
Esta función nos puede ser útil para resolver sistemas de ecuaciones.
La matriz ampliada Ab del sistema de tres ecuaciones con tres incógnitas del apartado
anterior es
Función sub
Utilizamos esta función si en una expresión simbólica queremos sustituir una variable por otra
o por una constante para calcular su valor en un punto.
subs(f, antiguas, nuevas) Sustituye las variables antiguas por las nuevas. Si hay más de una
variable las escribiremos entre llaves y separada por comas.
Instrucciones diff e int derivar e integrar