1 manual curso matlab basico estudio
TRANSCRIPT
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
1/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 1 de 127 Dr . L igdamis A. Gutiérrez EspinozaDocente - Investigador
CURSO BÁSICO DE LENGUAJE MATEMÁTICO MATLAB
I SESIÓN
Facultad de Ingeniería Civil y Mecánica
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
2/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 2 de 127 Dr . L igdamis A. Gutiérrez EspinozaDocente - Investigador
I GENERALIDADES
Título: Curso Básico de Lenguaje Matemático Matlab y Simulink
Dirigido a: Docentes de la Carrera de Ingeniería Civil yMecánica
Duración: 40 horas
Horario: 8:00 a 14:00 hrs + 4 hrs de Trabajo Autónomo pordía
Fecha: Semana del 28 Marzo al 01 de Abril de 2016
Lugar: Laboratorio Informático No. 2, tercer piso del
edificio de Civil.
Docente:Ph.D . L igdamis A. Gutiérrez E.
II INTRODUCCIÓN
El término MATLAB proviene de la abreviación de su nombre completo en inglés MATrixLAB oratory, y cuya traducción al español es Laboratorio de Matrices, está íntimamenterelacionado con la estructura de las matrices, debido a que es programa sobre cálculo científicoque permite en un entorno amigable, manejar de manera muy sencilla y rápida: vectores,
matrices, crear gráficos, realizar cálculos, simulaciones de modelos etc.
En este sentido se convierte en una poderosa herramienta que se aplica tanto en el ámbitoeducativo como a nivel profesional en la industria. Posee una gran cantidad de aplicaciones enla mayoría de problemas prácticos de la ingeniería y las matemáticas. Es ampliamente utilizado
en áreas como la geofísica, diseño de sistemas de control, procesamiento de señales, simulaciónde sistemas dinámicos, en la optimización, problemas de modelaje entre otros, además poseeuna gran capacidad gráfica en 2 y 3 dimensiones que ayudan al entendimiento y a la solución de problemas complicados de cálculo y de sistemas de control.
Es una software de fácil manejo y aprendizaje, incluso que otros programas como Visual Basic,su entorno de programación a través de script y el lenguaje propio de archivos .m hacen de estelenguaje uno de los más sencillos de manejar tanto para los docentes, alumnos y diseñadores deaplicaciones para la resolución de problemas muy complicados de cálculo que en otros
lenguajes llevarían muchas líneas de programación, en Matlab a través de muchas funciones pre-establecidas, solo necesita de unas pocas.
III OBJETIVOS (Expresados como resultados esperables de la Enseñanza)
El estudiante Identifica, comprende y utiliza los siguientes aspectos:
1. Qué es el lenguaje matemático Matlab (alcances y aplicaciones)
2. Instalación del lenguaje y elementos principales3. Ambiente Matlab, Manejo del entorno de programación en Matlab, herramientas del
escritorio y ventanas de Matlab4.
Manejo de Vectores y Matrices5. Programación en Matlab (script)
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
3/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 3 de 127 Dr . L igdamis A. Gutiérrez EspinozaDocente - Investigador
6. Entrada y manejo de datos en Matlab7. Manejo de fórmulas, texto y cálculos en Matlab8. Funciones en Matlab9. Condiciones y flujos de control en Matlab
10. Validación y manejo de errores en Matlab
11.
Graficas en Matlab (2d y 3D)12. Interfaz Gráfica de Usuario (GUI)13. Introducción a Simulink y simulación de modelos
IV METODOLOGÍA
La metodología del curso se basa en el contacto permanente con la práctica a través deejemplos, de modo que el estudiante pueda familiarizarse al máximo con todos los elementosdel software. A partir de este enfoque eminentemente práctico se pretende dar una orientaciónprofesionalal curso, no limitando las clases a exponer contenidos teóricos sino a la continuarealización de ejercicios prácticos y aplicados en lo más posible a casos reales. En este sentido,el curso está planificado para dotar al usuario de una herramienta muy útil guiándolo desde losaspectos más elementales y básicos hasta algunos de los más complicados, determinando el
nivel de aprendizaje como intermedio.
V CONTENIDOS Temario LenguajeMatemático MATLAB
Unidad I
Conceptos Básicos: introducción al lenguaje Matlab
1.1 ¿Qué es un Matlab?
1.2 Instalación de Matlab1.3 Ambiente Matlab, Ventanas, herramientas de escritorio y entorno de programación1.4 Sintaxis y ayuda de Matlab1.5 Comandos básicos1.6 Cálculos desde la ventana de comandos
1.6.1 Operadores aritméticos1.6.2 Operadores relacionales1.6.3 Operadores lógicos
Unidad II
Vectores y Matrices
2.1 Vectores y Matrices desde la ventana de comandos2.2 Operaciones con vectores
2.3 Operaciones con Matrices2.4 Variables y expresiones con matrices2.6 Funciones que actúan sobre vectores2.7 Funciones que actúan sobre matrices
Unidad III
Programación en Matlab
3.1 Creación de archivos .m en Matlab3.1.1 archivos de comandos (scripts)
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
4/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 4 de 127 Dr . L igdamis A. Gutiérrez EspinozaDocente - Investigador
3.1.2 sentencia return 3.1.3 sub-funciones
3.2 Entrada y manejo de datos3.2.1 función input
3.2.2 función disp
3.3 Funciones en Matlab3.4 Condiciones y flujos de control en Matlab
3.4.1 Bucleif else 3.4.2 Bucle for
3.4.3 While 3.4.4 Switch
3.4.5 Break y continue 3.4.6 Sentenciastry...catch...end
Unidad IV
Gráficos en Matlab
4.1 Gráficos Bidimensionales 2D4.1.1 Función plot 4.1.2 Estilos, líneas, colores y marcadores en la función plot4.1.3 Uso de herramientas de dibujo (plottools)4.1.4 comando subplot
4.1.5 control de los ejes: función axis() 4.1.6 función figure 4.1.7 Dibujo de funciones simples: ezplot, ezpolar , etc.
4.2 Gráficos Tridimensionales 3D
4.2.1 Tipos de funciones gráficas 3D: ezplor3, ezsurf, etc.4.2.2 Utilización de color en 3D y uso de plottools4.2.2 Dibujos de mallados: mesh, meshgrid, surf 4.2.3 Dibujos de líneas de contorno: contour
Unidad V
Interfaces Gráficas de Usuario (GUI) en Matlab
5.1 Conceptos básicos de una GUI
5.2 Elementos básicos de una GUI5.2.1 Componentes GUI (widgets): Paneles, texto, botones, etc.
5.2.2 Objetos visuales de la interfaz5.3 Creación de gráficos y texto5.4 Programación de elementos de la GUI: Botones, etc.
5.5 Creación y diseño de GUI's
VI MÉTODO DE EVALUACIÓN
La evaluación estará dividida en: 5 actividades presenciales (trabajo en grupo en las sesiones) =al 60%, y 5 actividades no presenciales (trabajos de investigación o ejercicios dados a resolver
como trabajo autónomo), con valor de 40%, lo que suma un 100%, que corresponde a un de 10 puntos de la evaluación. Véase los cuadros 1 y 2 siguientes, correspondientes a la Evaluación y
a la asistencia.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
5/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 5 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
VII BIBLIOGRAFÍA
1.- Moore, Holly, 2007 - Matlab para Ingenieros. Pearson – Education, México. 624 pág.
2.- Pérez, César , 2002 -Matlab y sus Aplicaciones en las Ciencias y la Ingeniería. Pearson – Education S.A., Madrid, España. 632 pág.
BIBLIOGRAFÍA COMPLEMENTARIA:
1.- Creating GraphicalUser Interfaces Ver. 1, 2000 – The Math Works, Inc., USA, 180 pág.
BIBLIOGRAFÍA DIGITAL:
1.- Aprenda Matlab 7.0 como si estuviera en Primero
Javier García de Jalón, José Ignacio Rodríguez, Jesús VidalEscuela Técnica Superior de Ingenieros Industriales
Universidad Politécnica de Madrid, España. 136 páginas
URL:
http://www.fiwiki.org/images/d/db/Aprenda_Matlab_7_como_si_estuviera_en_primero.pdf
http://www.fiwiki.org/images/d/db/Aprenda_Matlab_7_como_si_estuviera_en_primero.pdfhttp://www.fiwiki.org/images/d/db/Aprenda_Matlab_7_como_si_estuviera_en_primero.pdfhttp://www.fiwiki.org/images/d/db/Aprenda_Matlab_7_como_si_estuviera_en_primero.pdf
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
6/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 6 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
FICHA Y HORARIO DE CLASE
Planificación y desglose de actividades de la primera sesión, de acuerdo a lo estipulado en la planificación del curso: “Curso Básico Matlab”.
a) No. de Sesión: I Sesión:Unidad: I Conceptos Básicos: Introducción al Lenguaje Matlab.
Sub-competencia: Identifica y comprende los conceptos básicos del lenguaje, suinstalación, ambiente y entorno de trabajo, así como los comandos básicos y el manejoen la ventana de comandos.
Unidad: II Vectores y Matrices:Sub-competencia: Identifica y comprende los conceptos básicos del lenguaje, suinstalación ambiente y entorno de trabajo.
FICHA DE CLASE (Contenidos a desarrollar en la sesión)
A Contenido/Tema Objetivos
ActividadesMetodología
RR.DD. EvaluaciónObservaciones
1
Bienvenida/Prese
ntar los
Contenidos
Inciso I1.1 Introducción
General. Ver
objetivo del día,
horario, Horarios
y evaluaciones.
1.2 Actividad
diagnóstica, 1.3
Conceptos
básicos
(operadores)
1.3.Actividad
ejercicios
prácticos
1.3. Co-
evaluación,
Puesta en común
ejercicios
*Bienvenida,
*Presentar el plan de
trabajo.
*Introducir la materia
y dar a conocer los
tópicos generales del
curso.
*Comprender los
conceptos del
lenguaje Matlab y su
entorno.
* Conocer los tópicos
generales de Matlab y
Simulink.
* conocer los
comandos básicos y
las operaciones a
través de la ventana
de comandos
* Asignar grupos de
trabajo para algunas de
las prácticas. (3)
* Dinámica de FODA
para evaluación inicial
de toma de Pulso Inicial
y como integración entre
el grupo.
* Inst. y Conf. Matlab
* ejercicios de
operaciones básicas y
comandos en Matlab
* ejercicios de cálculos
desde la ventana de
comandos
Método expositivo
de conferencia
tradicional/
Pizarra, Textos
Uso de proyector
como medio
audiovisual.
Método
demostrativo
práctico de trabajo
en grupo en las
clases prácticas
Aplicar pequeño
test como
actividad
diagnóstica de
avance grupal e
individual. Esto
mediante un
análisis FODA
(DAFO)
Puesta en común
sobre el resultado
del análisis FODA
Co-evaluación
ejercicios.
Puesta en común
resultados
ejercicios
1. Presentar proceso
general del curso
2. Presentar
conceptos básicos de
simulación y
abstracción de
modelos.
3. Presentar los
elementos de Matlab
y Simulink
4. Preparar hojas para
las prácticas con los
ejercicios.
2
Inciso II
1.3. Conceptos devectores y
matrices en
Matlab
1.4.Conceptos de
fórmulas en
Matlab
Conocer las
terminologías, lasintaxis y el
funcionamiento de
Matlab. Conocer los
elementos Conocer el
trabajo con vectores,
matrices y fórmulas
en Matlab.
* Trabajo en los grupos
sobre los vectores ymatrices.
Método expositivo de
conferencia tradicional/Pizarra, Textos
Uso de proyector como
medio audiovisual.
Método demostrativo
práctico de trabajo en
grupo en las clases
prácticas
Discusión y Puesta
en común sobrehoja de trabajo 1
5. Orientar sobre
próxima evaluación
6. Asignar Ejercicios
prácticos de Matlab
7. Entrega material
(hojas y video)
A = Número de Actividad.
RR.DD. = Recursos didácticos
La sesión se dividirá en dos bloques con un descanso entre cada uno. Ver a continuación elcuadro del horario para indicar los tiempos de cada actividad.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
7/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 7 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
b) HORARIO I SESIÓN (29/03/16)Curso Básico Matlab.
La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.
No. Horario Actividad Recursos Observación
1 8:00 – 8:10 10’ Bienvenida
Presentación General/Docente
Cartulinas,
Marcadores
Pizarra, Proyector
Toma de Asistenciacon hojas preparadas
2 8:10 – 8:25 15’ Presentar objetivo día, Presentar
Horario, objetivo día. Plan y
Contenidos del curso, Evaluaciones
Proyector, Filminas,Pizarra
Revisión puntos principales día
3 8:25 – 8:40 15’ Formación de grupos/Distribución de
Material
Proyector
Filminas - Hojas,
DVD
Entrega Material /OneDrive
4 8:40 – 8:50 10’ Explicación Actividad DiagnósticaProyector
Filminas, Hojas deFODA
Distribución de hojas
para trabajo
5 8:50 – 8:55 5’ Trabajo Individual FODA Hojas de FODA
6 8:55- 9:05 10’ Trabajo en Grupos FODA Hojas de FODA
7 9:05 – 9:10 5’ Plenario
8 9:10 – 9:20 10’ Explicación de la Instalación de Matlab
(7.0 y 14.0)ProyectorFilminas
Hojas con ejercicios engrupos
9 9:20 – 9:45 25’ Explicación Entorno Matlab, y
Conceptos básicos, comandosProyector
Filminas
10 9:45 – 10:00 15’ Ejercicios en grupo comandos y
operaciones en la ventana de comandosComputadoras
alumnos, pizarra
11 10:00 – 10:10 10’ Puesta en Común, ejercicios Pizarra, marcadores
12 10:10 – 10:30 15’ DESCANSO
13 10:30 – 11:15 45’ Explicación, Vectores y MatricesProyector, Filminas,
Computadora
14 11:15 – 11:45 30’ Trabajo en Grupos sobre vectores y
MatricesHojas de ejercicios,
computador
Entrega de hoja de
ejercicios No. 1
1511:45 – 12:00 15’
Co-evaluación de ejercicios por parte
de los grupos
Hojas de ejercicios,
soluciones, esferos
rojos
Entrega de soluciones
de ejercicios
16 12:00 – 12:20 20’ Explicación fórmulas en MatlabProyector, Filminas,
Computadora
17 12:20 – 13:00 40’ Trabajo en Grupos sobre fórmulasHojas de ejercicios,
computador
Entrega de hoja de
ejercicios No. 2
18 13:00 – 13:20 20’ Co-evaluación de ejerciciosHojas de ejercicios,
soluciones, esferos
rojos
Entrega de solucionesde ejercicios
19 13:20 – 13:40 20’ Recopilación Final
Hasta Próxima SesiónMiércoles 30/03/2016
Proyector, Filminas,
ordenador
Orientaciones para la
siguiente sesión.
Entrega hojas trabajo
autónomo y Video
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
8/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 8 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
DESARROLLO DE CONTENIDOS
Unidad I
Conceptos Básicos: introducción al lenguaje Matlab
1.1 ¿Qué es un Matlab?1.2 Instalación de Matlab1.3 Ambiente Matlab, Ventanas, herramientas de escritorio y entorno de programación
1.4 Sintaxis y ayuda de Matlab1.5 Comandos básicos
1.6 Cálculos desde la ventana de comandos1.6.1 Operadores aritméticos1.6.2 Operadores relacionales1.6.3 Operadores lógicos
1.1 ¿Qué es Matlab? (alcances y aplicaciones)
Es un lenguaje de programación de muy alto nivel basado en vectores, arrays y matrices., deambiente interactivo que permite realizar tareas muy complejas, con mayor velocidad que lamayoría de los lenguajes de programación.MATLAB, es un programa grande de aplicación, quese escribió originalmente en FORTRAN y después se rescribió en C, precursor de C++).
El Matlab fue creado en California por Jack Little and Cleve Moler en 1984, para realizarcálculo matricial en computadoras sin necesidad de conocimientos de programación.
Está orientado a realizar cálculos numéricos con vectores y matrices, aunque puede trabajar
también con otras estructuras de información. En cuyo caso, cada objeto es considerado unarreglo.
Posee un código de programación propio llamado M-code que fácilmente es ejecutado en laventana de comandos. De esta forma, se crean funciones, etc.
MATLAB es una de las muchas sofisticadas herramientas de computación disponibles en el
comercio para resolver problemas de matemáticas, tales como Maple, Mathematica y MathCad.A pesar de lo que afirman sus defensores, ninguna de ellas es “la mejor”. Todas tienen
fortalezas y debilidades. Cada una permitirá efectuar cálculos matemático básicos, pero difierenen el modo como manejan los cálculos simbólicos y procesos matemáticos más complicados,como la manipulación de matrices. Por ejemplo, MATLAB es superior en los cálculos que
involucran matrices, mientras que Maple lo supera en los cálculos simbólicos.
También, el entorno básico de MATLAB se complementa con una amplia colección deToolboxes que contienen funciones específicas para determinadas aplicaciones en diferentes
ramas de las ciencias y la ingeniería.
La Web oficial para documentación, descarga de programas, ejemplos, y versiones Trial es a
través del siguiente enlace:
http://www.mathworks.com
Matlab se ejecuta en los siguientes sistemas operativos• Unix: Linux (En todas sus versiones: Ubuntu, Fedor a, Susie, etc.), solaris, HP-UX"
• MacOS" • MS-Windows (XP, 7, 8, 10)
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
9/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 9 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
1.2 Instalación de Matlab
Matlab 7.0
En la carpeta que se ha entregado (“Curso_Matlab_I_Sesión\Software\”), se encuentran lasdos versiones de Matlab que pueden funcionar correctamente. La versión 7.0 es más general,requiere menos recursos del sistema y es bastante práctica para la enseñanza, está completa y puede funcionar correctamente en las versiones de Windows, XP, 7 y 8.
Para instalarla hay que dar clic derecho en el icono “Setup.exe” y ejecutar como administrador.Una de las primeras preguntas que realiza el paquete al iniciar es poner el número de serie. Para
ello hay que ir a la carpeta del “crack” y ejecutar el Keygen, para ello primero hay que tenerdesactivado el antivirus, ya que suele confundirlo con un virus. Cuando se ejecuta el Keygen,aparece una pantalla con “Personal License Password”, se le da Ctrl + C para copiar y se va a la pantalla del Matlab, ahí se pega con Ctrl + V, y continua la instalación. Al pedir el Disco 2, se leda Enter, ya que los dos discos ya están juntos.
Una vez finalizada la instalación, si se ejecuta el programa sobre todo en Windows 7 y 8, puedeaparecer una pantalla indicando un error, este es de incompatibilidad, ya que por defect, estáconfigurado para ejecutarse en Windows XP. Para solucionarlo, hay que ir al ícono de accesodirecto de Matlab, que se ha creado en el escritorio, dar clic derecho e indicarle “Propiedades”,en esa pantalla hay que seleccionar la pestaña “Compatibilidad” y activar la casilla o cuadro quedice, “Modo de Compatibilidad”, ahora en el menú desplegable que aparece, hay queseleccionar “Windows Vista (Service Pack 2), y seguidamente dar clic a los botones de la parteinferior, “Aplicar”, y “Aceptar”. Con esto ya puede ejecutarse normalmente Matlab enWindows 7 y 8.
Matlab 14La versión 2014, trae muchas más herramientas, además que ha modificado la interfaz, paraañadir más funcionalidades, sin embargo, consume muchos más recursos del sistema, memoriay espacio. Así que el usuario final es quien decide cuál de ellas utilizar.Para Matlab 14, hay que ir a la carpeta de software, en donde se encontrará la carpetaMatlab803, dentro de ella, se encuentra el icono de instalación “SetupSimple.exe”, que es el que
hay que ejecutar, dando clic derecho como administrador. Aparecerá una ventana, que no hayque cerrar hasta que la instalación haya finalizado. Una vez ejecutado ese programa hay que
seguir las instrucciones, cuando se pregunte si desea activar el programa hay que decir que no,lo mismo hay que elegir instalar manualmente, sin Internet.Cuando se le pida número de serie, hay que colocar el siguiente:
12313-94680-65562-90832
Una vez finalizado, hay que copiar y pegar (sustituyendo), el folder “bin”, que se encuentra enla siguiente ubicación:
"X:\serial\MatlabX32" or "X:\serial\MatlabX64"
Dependiendo si el sistema es de 32 o de 64 bits, con esto ya se puede iniciar la ejecución delMatlab 14. Hay que tener paciencia, porque tarda un poco en comenzar, ya que como hemosmencionado, requiere de más memoria y recursos que la versión 7
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
10/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 10 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
1.3 Ambiente Matlab, Ventanas, herramientas de escritorio y entorno de programación.
Al Iniciar Matlab se observan las siguientes ventanas: MATLAB 7.0
MATLAB 14
Como se puede observar, en Matlab 14, se incrementa el número de opciones a realizar en el
cuadro de menú. En general, en todas las versiones poseen una gran command window (ventanade comandos) a la derecha y, apiladasa la izquierda, se encuentran las ventanas current
Simulink Ayuda Cambio de Directorio
VENTANA DE DIRECTORIO
/ WORKSPACE
VENTANA DE HISTORIAL
VENTANA DE COMANDOS
VENTANA DE COMANDOS
VENTANA DE
HISTORIAL
VENTANA DEDIRECTORIO
VENTANA DEWORKSPACE
MENÚ DE ACCIONES
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
11/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 11 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
directory (directorio actual), workspace (área de trabajo) y también el commandhistory(historia de comandos). Esta configuración sin embargo, puede cambiarse a uso del usuario.
¿Qué Puede hacer Matlab?
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
12/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 12 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
13/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 13 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
1.4 Sintaxis y ayuda de Matlab
MATLAB distingue entre mayúsculas y minúsculas de esta forma, la variable “a” y la variable“A”, son distintas. El nombre de las variables sigue las reglas habituales de un lenguaje de programación: debe comenzar por una letra, aunque puede contener números; no debe contenerespacios en blanco ni algún tipo de símbolo reservado (coma, punto y coma, dos puntos,guion,...).
El símbolo >> es el prompt de MATLAB e indica que está listo para aceptar órdenes. Paraejecutar una orden basta pulsar la tecla ENTER. El nombre que se asigna por defecto a la salidaes ans (abreviatura de answer ).
En Matlab todos los datos son matrices, los vectores y los números escalares son casosparticulares de matrices.
El nombre de las variables que utiliza Matlab
• El nombre de las variable es case sensitive
•
El nombre de las variables puede contener hasta 63 caracteres.•
El nombre de las variables se puede iniciar en una letra seguida de letras, dígitos o sub-
líneas.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
14/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 14 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
• No se puede iniciar en (_), no puede contener el signo (-).
Nombre de variables especiales
ans Nombre de variable por defecto para resultados
pi Valor de π eps la mayor precisión de un número en Matlabinf Infinito NaN No es un número (0/0)i, j i = j = sqrt(-1) = raíz cuadrada de -1
realmin El número real positivo más pequeñorealmax El número real positivo más grande.
1.5 Comandos básicos
% Colocar comentarios; Importante para documentar los programas
Información: / clock, / date /, calendar/año, mes, día, hora, minuto, segundo / día, mes, año / mes actual
>> %línea de comando, prompt de Matlab>>clc % limpia la ventana de comandos, pero no la memoria>>close % cierra figuras>>closeall% cierra todas las figuras>>clear a % Borra a de la memoria>>clear % Borra todas las variables en el espacio de trabajo>>clearall% Borra todas las variables, funciones, etc.>>who % lista las variables actuales
>>whos % lista información adicional de las variables>>help % despliega texto de ayuda en la ventana de comandos>>;%punto y coma, fin de fila de una matriz y eliminar la impresión en la ventana de comandos>>. . . % tres puntos, Continua la sentencia en la siguiente línea>>, % coma, separa sentencias y datos
>>Ejercicio: Utilizar ayuda para: save, load, open, quit, exit, CD, path, ver, versión
1.6 Cálculos desde la ventana de comandos
1.6.1 Operadores aritméticos
Existen en MATLAB dos tipos de operaciones aritméticas: las operaciones aritméticas
matriciales, que se rigen por las reglas del álgebra lineal, y las operaciones aritméticas convectores, que se realizan elemento a elemento. Los operadores involucrados se presentan en la
tabla siguiente.
Operador Función que desempeña+ Suma de escalares, vectores o matrices, a+b - Resta de escalares, vectores o matrices, a - b * Producto de escalares o de matrices, a * b .* Producto de escalares o de vectores \ A\B = inv(A)*B, siendo A y B matrices
.\ A.\B = [B(i,j)/A(i,j)], siendo A y B vectores [dim(A)=dim(B)] / Cociente escalar o B/A = B*inv(A), siendo A y B matrices
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
15/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 15 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
./ A./B = [A(i,j)/B(i,j)], siendo A y B vectores [dim(A)=dim(B)] ^ Potencia de escalares o potencia escalar de matriz (M p), a^b .^ Potencia de vectores (A.^B = [A(i,j)B(i,j)], A y B vectores)
Ejemplos:
>> 2+2ans =
4>> 3-4
ans =-1
>> 2*2ans =
4>> 2/3ans =
0.6667>> (-2)^10ans =
1024 NOTA: Para las operaciones entre vectores y matrices es conveniente utilizar en lamultiplicación, división y exponenciación, los operadores ( .*, ./, y .^)
1.6.2 Operadores relacionales
MATLAB también ofrece símbolos para denotar las operaciones relacionales. Los operadoresrelacionales ejecutan comparaciones elemento a elemento entre dos matrices y devuelven una
matriz del mismo tamaño cuyos elementos son ceros si la correspondiente relación es cierta, ounos si la correspondiente relación es falsa. Los operadores relacionales también permitencomparar escalares con vectores o matrices, en cuyo caso se compara el escalar con todos loselementos de la matriz.
= Mayor o igual (sólo afecta a partes reales)x = = y Igualdad (afecta a los números complejos)x ~ = y Desigualdad (afecta a los números complejos)
1.6.3 Operadores lógicos
MATLAB ofrece símbolos para denotar las operaciones lógicas. Los operadores lógicos ofrecenun camino para combinar o negar expresiones relacionales.
~A Negación lógica (NOT) o complementario de AA & B Conjunción lógica (AND) o intersección de A y BA | B Disyunción lógica (OR) o unión de A y Bxor(A,B) OR exclusivo (XOR) o diferencia simétrica de A y B (vale 1 si A o B,
pero no ambos, son 1)
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
16/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 16 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
NOTA: En muchos contextos es más común llamar “i ” a la unidad imaginaria. Por defectoMATLAB también tiene reservada esa letra para la unidad imaginaria. Si se realiza unaasignación sobre cualquiera de las variables se pierde su valor. Para recuperarlo se puede borrar
su valor (instrucción clear i ) o reasignarlo (instrucción i=sqrt(-1)).
Ejemplo:
>>ians =
0 + 1.0000i
>>i^2
ans =
-1
>> (2+3i)/(4-i) % para multiplicar por i no hace falta *
ans =
0.2941 + 0.8235i
>> (1+i)^2
ans =
0.000 + 2.0000i
Funciones Matemáticas elementales:
sqrt(x) raíz cuadrada sin(x) senoabs(x) módulo cos(x) cosenoconj(z) complejo conjugado tan(z) tangentereal(z) parte real asin(x) arcosenoimag(z) parte imaginaria acos(x) arcocosenoangle(z) argumento atan(x) arcotangenteexp(x) exponencial rats(x) aprox. racional
log(x) logaritmo natural rem(x,y) resto de dividir x por y
log10(x) logaritmo decimal sign(x) signo (1 / -1 / 0)Π = piΣx = sum | | Valor absoluto = abs
Enteros: 9 -2 8 Reales: 7.01 -4.2 .0786 1.5e+8 -.667e-12 Complejos: 1+3i -4+j (i j son símbolos que representan la unidad imaginaria) Caracteres (entre apóstrofes): „Representa una cadena de caracteres‟ „string‟
Formato de Números:
formatlong 14 cifras significativas
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
17/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 17 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
format short Retorna al formato corto (5 cifras significativas) format Retorna al formato por defecto (corto) format short e formato corto y notación exponencial formatlong e formato largo y notación exponencial formatrat formato racional: aproximación en forma de fracción
formatbank formato bancario rem (a,b) resto de la división entre n y m siendo ambos reales
Ejemplo:Sea a = 2500 b = 8100
x = a/b
Formato largo de punto flotante con 15 dígitosformat long; x
Formato corto por defecto con 4 cifras decimalesformat short; x
Formato largo con 16 decimales más la potencia de 10 (15 para doble y 7 para sencillo)format long e; x
Formato corto con 16 decimales más la potencia de 10 (punto flotante con 5 dígitos)format short e; x
Formato bancario con dos cifras decimalesformat bank; x
Formato en forma de número racional aproximadoformat rat;x
Ejemplo: Siendo x = 6 y x = (48*.0025) - 3/6
Determinar: sqrt(x) sin(x) cos(x) log(x) exp(x) x* πabs(x)Cambiar a diferentes formatos.
Operaciones con texto
Para introducir texto o cadenas de caracteres, este se teclea entre comillas simples ('), y se
manejan como vectores filas. Se direccionan y manipulan igual que los vectores. De la mismaforma que con los vectores, se pueden realizar operaciones matemáticas con las cadenas de
texto, pero ésta operación se ve como un vector de números en ASCII
El valor ASCII de una cadena, se obtiene con las funciones abs, double ,ó sumando cero. Para
restaurar el valor ASCII a una cadena de caracteres, se utiliza la función setstr. Si lo que sedesea es cambiar a minúsculas se suma la diferencia entre 'a' y 'A'. El comando disp, sirve para desplegar en pantalla
Ejemplo: Sea, a = 'pablo„ y b = 'elena'
abs(a) = 112 97 98 108 111
abs(b) = 101 108 101 110 97
c = a + b=213 205 199 218 208
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
18/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 18 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
setstr (a) = pablo setstr (b) = elena
Unidad II
Vectores y Matrices
2.1 Vectores y Matrices desde la ventana de comandos2.2 Operaciones con vectores
2.3 Operaciones con Matrices2.4 Variables y expresiones con matrices
2.6 Funciones que actúan sobre vectores2.7 Funciones que actúan sobre matrices
2.1 Vectores y Matrices desde la ventana de comandos
Vector: Un vector en simplemente una lista ordenada de números. Para escribir un vector en Matlab seintroducen los números separados por comas o espacios entre dos corchetes.
Ejemplo
M = [2,4,0,8] B = [4 -12 8 -2 8 1] Se conocen como vectores filas
M =
2 4 0 8
B =
4 -12 8 -2 8 1
Si se coloca un punto y coma entre cada uno de ellos se convierten en vectores columnas.
M = [2;4;0;8] B = [4;-12;8;-2;8;1]
M =
2408
B =
4-12
8-281
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
19/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 19 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Manejo de vectores:
Se puede crear una lista de números en un vector que vaya de 1 al 12 colocando dos puntos de lasiguiente manera:
X = (1:12)
X =
1 2 3 4 5 6 7 8 9 10 11 12
También se puede crear un incremento en la lista, Por ejemplo vamos a crear un vector con unalista de número desde el 0 al 12, incrementándose de 3 en tres, mediante el siguiente comando
X = 0: 3: 12
X =
0 3 6 9 12
Donde: [a:b:c] = valor mínimo : incremento : valor máximo
Ejercicio: Generar todos los números entre 0 y 50 en incrementos de 0.2
En el caso anterior, y para salidas muy grandes se coloca el punto y coma “;” al final de lainstrucción para no ver la salida. De la misma manera, se pueden realizar incrementos tanto positivos como negativos por ejemplo
X1 = 20: -1: 0
Lo que crearía un vector con una lista de números desde el 20 al cero disminuyendo en 1 cadavez.
X1 =
Columns 1 through 13
20 19 18 17 16 15 14 13 12 11 10 9 8
Columns 14 through 21
7 6 5 4 3 2 1 0
Ahora podemos extraer un elemento del vector de la lista que se ha creado, lo que se denominaindexado de vectores, ya que cada elemento de la lista posee el siguiente argumento X(i)siendo i el número de la posición del contenido de la lista. Así X(1), X(2),,,X(N), representanlos n números del vector De la lista anterior el valor
Sería igual a la posición 5ta. Que es el valor 16. Ahora vea cuales son los valores de las posiciones, 9, 4, 16 y 20
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
20/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 20 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Se puede modificar el contenido de un elemento del vector, dándole el valor que se desee. Porejemplo: El valor del quinto elemento del vector X1 = 16. Pero queremos asignarle un nuevovalor, entonces se teclea lo siguiente: X1(5) = 26, con lo que el elemento del vector ha
cambiado de valor.X1 = 20 19 18 17 26 15 14 13 12. . . . 0
También se pueden extraer rangos de valores. Ejemplo: X1([4,6,15]) ó X1(4:6)
ans = 17 15 6 ans = 17 26 15
Transposición:
Para convertir un vector a vector columna (vector transpuesto), hay que colocar un apóstrofe enla variable que representa al vector. Así X‟, sería el vector columna de X
Ejemplo : A = (14:2:25) y su Transpuesto (o vector columna) A’ =
A = 14 16 18 20 22 24
A‟ ans =
1416182022
24
Para definir un vector de longitud n, con una partición regular del intervalo [a,b], se teclea
R = linspace( a,b,n)
Ejemplo:
R = linspace (1,20,5)
Crearía un vector con una lista de 5 números igualmente espaciados del 1 al 20
R =1.00005.750010.5000 15.2500 20.0000
Ejemplo: Obtener los elementos del vector M= (1:15) situados entre el octavo y el segundo,ambos inclusive, separados de dos en dos y comenzando por el onceavo.
M = (11:-2:1)
M =
11 9 7 5 3 1
Matrices
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
21/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 21 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Al igual que en los vectores, las matrices se expresan en Matlab utilizando corchetes ([ ]);separando las filas por espacios o comas (,) y las columnas por punto y coma “;”. De este modo,
por ejemplo se puede crear un objeto matriz de la siguiente manera:
X = [1 -4 6; 4 0 6; -2 8 2]
X =
1 -4 64 0 6
-2 8 2
Recordar que Una matriz cuadrada es aquella que tiene igual número de filas y columnas
Submatrices:
Se pueden crear rango de elementos o submatrices con los valores de una matriz o de un vector.Por ejemplo tenemos la siguiente matriz: B = [ 1 2 3; 4 5 6; 7 8 9]B =
1 2 34 5 67 8 9
Se puede crear una submatriz C comprendida entre los elementos (2; 1) y (3; 2) de la siguientemanera:C =B(2:3,1:2) lo que daría lo siguiente:
C = 4 57 8
Volviendo a la matriz anterior.
X = [1 -4 6; 4 0 6; -2 8 2]
Para obtener la matriz transpuesta se teclea X‟ . Por lo tanto:
2.2 Operaciones con vectores
Creamos un vector y llenamos el último elemento con un valor determinado
B (4,15) = 3
X =
1 -4 6
4 0 6
-2 8 2
X’ =
1 4 -2 -4 0 8
6 6 2
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
22/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 22 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
En este caso creamos un vector B compuesto de 4 filas y 15 columnas. El último valor de la filale corresponde 3.
B =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 3
Si tecleamos ahora B (15,4) = 5
Técnicamente estaríamos creando un vector N con 15 filas y solo 4 columnas, en donde elúltimo valor de la cuarta fila es 5. Sin embargo, lo que se obtiene es lo siguiente:
B =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 5 0 0 0 0 0 0 0 0 0 0 0
Esto pasa, debido a que en la variable B se ha acumulado el valor que se ha introducido a los
vectores. El espacio vacío de la matriz es rellenado por ceros.
Para evitar esto, hay que limpiar previamente los valores de las variables. Esto se hace con laorden “clear”.
Se puede teclear >>clear B, con lo que se estaría limpiando el valor de la variable BO la orden general. >>clear all, para limpiar todos los valores de todas las variables que existan.O de otra forma, darle otro valor diferente a la variable de la que se ha utilizado. Por ejemplo
>>A(15,4) = 5
A =
0 0 0 0
0 0 0 00 0 0 00 0 0 0
0 0 0 00 0 0 0
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
23/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 23 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
0 0 0 00 0 0 00 0 0 0
0 0 0 00 0 0 0
0 0 0 00 0 0 00 0 0 00 0 0 5
Operaciones con vectores y escalares
v+k vector de componentes {vi+k} v-k vector de componentes {vi-k} k*v vector de componentes {k*vi} v/k vector de componentes {vi/k} k./v vector de componentes {k/vi} v.^k vector de componentes {(vi)^k} k.^v vector de componentes {k^(vi)}
Ejemplo:
v=[1, 6, 4, -5, 0, -3]
X = v +3 y = v-2 j = v.^2
Ejemplo: Si a y b son dos vectoresa+b vector de componentes {ai+bi}a-b vector de componentes {ai-bi}a.*b vector de componentes {ai*bi}, componente a comp.a./b vector de componentes {ai/bi} “ a.^b vector de componentes {(ai)^bi}
sum (x) Da la suma de los elementos del vectorprod(x) Da el producto entre los componentes del vectormax(x) Da el valor máximo entre los componentes del vectorc = conv(a,b) Siendo a y b dos matrices, realiza la multiplicación polinomial
Ejemplo: Sean los dos vectores
a=[1, 6, 4, -5, 0, -3] b=[2, 3, -1, -7, 3, 0]
X = a +b y = a*b j = a.^b
2.3 Operaciones con Matrices
Tenemos una matriz dada por la siguiente variable:
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
24/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 24 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
w = [ 6 1 2; 1 8 3 ; 2 4 9]
w =
6 1 2
1 8 32 4 9
Se puede añadir otra fila a la matriz con la variable x = [ 14 -2 8 ]
Con la instrucción K = [w; x]
K =
6 1 21 8 32 4 9
14 -2 8
Identificar un elemento de la matriz w (2,3)
ans =
3
Representa el elemento de la segunda fila, tercera columna.
Para seleccionar toda una fila, se colocan los dos puntos “:”J = w( 3 , : )
Que selecciona la tercera fila. En cambio:
J = 2 4 9h= w( : , 2)
Selecciona los elementos de la segunda columna:
h =
18
4
Otras operaciones son:
I = det(w) Determina el valor del determinante de la matriz (obtener todos los productos posibles de una matriz).
I =
333
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
25/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 25 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
h = diag(w) Determina la diagonal de una matriz
h =
6
89
l = eig(w) Determina el vector característico de la matriz w
l =
12.70685.67674.6165
[v d] = eig(w) Sabiendo que v representa a los vectores característicos y d representa a losvalores característicos, determina el valor característico de [v d] de la matriz w
v =
-0.3125 -0.8409 -0.6621-0.5569 0.5260 -0.3780-0.7696 -0.1271 0.6470
d =12.7068 0 0
0 5.6767 00 0 4.6165
m = expm (w) Representa el valor exponencial de la matriz w
m =
1.0e+005 *
0.3181 0.6778 0.72040.5623 1.2117 1.2828
0.7782 1.6718 1.7740
n = inv(w) Representa la matriz inversa de w
hilb(3)Matriz de Hilbert 3x3
rand(2,3) Matriz aleatoria de 2 x 3
M = eye(3,6) Matriz identidad
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
26/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 26 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
N = zeros(3,6) Matriz Nula
O = ones(3,6)Matriz Unidad
M =
1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 0
N =
0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0
O =
1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1
Ejemplo:
Sea A = [ 1 3 5; 7 9 11 ]
a) Se va a anular (0), el elemento (2,3) = al último elemento: A (2, 3 ) = 0
b) Se crea la matriz B, transpuesta de A: B = A‟
c) Se crea la matriz C, formada por la matriz B y la matriz identidad de orden 3 asu derecha. C = [ B eye(3) ]
d) Se crea la matriz D, formada por las columnas impares de la matriz C
D = C ( : , 1 : 2 : 5)
e) Se crea la matriz E, formada por la intersección de las dos primeras filas de C ysus columnas tercera y quinta
E = C ( [ 1 2], [ 3 , 5 ])
Polinomios
Tenemos el polinomio siguiente:
= 2 + 3 + 1 = 0 Para calcular sus raíces, se utiliza el comando “roots(polinomio)”. Así tenemos
p = [ 2 3 1] raiz = roots(p)
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
27/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 27 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
raiz =
-1.0000-0.5000
Operaciones con polinomios
Ejemplo:Tenemos dos polinomios
La multiplicación polinomial para encontrar la solución del sistema se realiza con el comando:
c = conv(a,b)
a = [ 1 5 3 1 4 ] b = [ 8 5 2 9 16 ]
c =
8 45 51 42 104 129 65 52 64, Por lo tanto:
Operaciones con Fórmulas
Matlab es ideal para realizar operaciones con funciones y fórmulas matemáticas complejas. Susintaxis es sencilla y fácil de aplicar
Ejemplo:
Calcular el seno y el coseno de los ángulos de cero a 2π, incrementando en valores de π/2 enπ/2
x = sin (0 : pi/2 : 2*pi)
y = sin (0 : pi/2 : 2*pi)
Ejemplo:
Tenemos una función dada por la siguiente ecuación:
Si el valor de x = π/2. Entonces:
x = pi/2
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
28/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 28 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
x = 1.5708
Y = (2*x.^3 +7*x.^2+3*x-1)./(x.^2-3*x+5*exp(-x))
Y = -23.8354
Ejemplo:
Calcular la parte real, la parte imaginaria, el módulo y argumentos de los siguientes complejos:
Le damos valor de Y1, Y2, Y3 y Y4, Entonces:
Y1 = i ^3 * iY2 = (1 + sqrt ( (3) *i) )^ (1 - i )
Y3 = (i ^ i) ^ i Y4 = i ^ i Para facilitar la visualización >>format short
a = real ( [ Y1 Y2 Y3 Y4] ) b = imag ( [ Y1 Y2 Y3 Y4] )c = abs( [ Y1 Y2 Y3 Y4] ) d = angle( [ Y1 Y2 Y3 Y4] )2.6 Funciones que actúan sobre vectores
Las siguientes funciones sólo actúan sobre vectores (no sobre matrices, ni sobre escalares):
[xm,im]=max(x) máximo elemento de un vector. Devuelve el valor máximo xmy la posiciónque ocupa im
min(x) mínimo elemento de un vector. Devuelve el valor mínimo y la posición que ocupa
sum(x) suma de los elementos de un vector
cumsum(x) devuelve el vector suma acumulativa de los elementos de un vector (cada elementodel resultado es una suma de elementos del original)
mean(x) valor medio de los elementos de un vector
std(x) desviación típica
prod(x) producto de los elementos de un vector
cumprod(x) devuelve el vector producto acumulativo de los elementos de un vector
[y,i]=sort(x) ordenación de menor a mayor de los elementos de un vector x. Devuelve el vectorordenado y, y un vector i con las posiciones iniciales en x de los elementos en el vectorordenado y.
En realidad estas funciones se pueden apl icar también a matr ices , pero en ese caso se apli canpor separado a cada columna de la matr iz , dando como valor de retorno un vector resultado deaplicarla función a cada columna de la matriz considerada como vector. Si estas funciones sequieren aplicara las filas de la matriz basta aplicar dichas funciones a la matriz traspuesta.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
29/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 29 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
2.7 Funciones que actúan con matrices
Aquí un resumen de las funciones más generales que actúan sobre las matrices
[m,n]=size(A) devuelve el número de filas y de columnas de la matriz A. Si la matrizescuadrada basta recoger el primer valor de retorno
n=length(x) calcula el número de elementos de un vector x
zeros(size(A)) forma una matriz de ceros del mismo tamaño que una matriz A previamente creada
ones(size(A)) ídem con unos
A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos de unvector ya existente x
x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A
diag(diag(A)) crea una matriz diagonal a partir de la diagonal de la matriz A
blkdiag(A,B) crea una matriz diagonal de submatrices a partir de las matrices que se lepasancomo argumentos
triu(A) forma una matriz triangular superior a partir de una matriz A (no tiene por qué sercuadrada). Con un segundo argumento puede controlarse que se mantengan o eliminen másdiagonales por encima o debajo de la diagonal principal.
tril(A) ídem con una matriz triangular inferior
rot90(A,k) Gira k*90 grados la matriz rectangular A en sentido anti-horario. k es un entero que puede ser negativo. Si se omite, se supone k=1
flipud(A) halla la matriz simétrica de A respecto de un eje horizontal
fliplr(A) halla la matriz simétrica de A respecto de un eje vertical
reshape(A,m,n) Cambia el tamaño de la matriz A devolviendo una matriz de tamaño m×ncuyascolumnas se obtienen a partir de un vector formado por las columnasde A puestas una acontinuación de otra. Si la matriz A tiene menos dem×nelementos se produce un error.
Existen muchas más funciones, pero ello queda como actividad al estudiante, enriquecermediante la bibliografía el uso de dichas funciones.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
30/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 30 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
CURSO BÁSICO DE LENGUAJE MATEMÁTICO MATLAB
II SESIÓN
Facultad de Ingeniería Civil y Mecánica
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
31/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 31 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Unidad III
Programación en Matlab
3.1 Creación de archivos .m en Matlab3.1.1 archivos de comandos (scripts)3.1.2 sentencia return 3.1.3 sub-funciones
3.2 Entrada y manejo de datos
3.2.1 función input 3.2.2 función disp
3.3 Funciones en Matlab3.4 Condiciones y flujos de control en Matlab
3.4.1 Bucleif else 3.4.2 Bucle for 3.4.3 While
3.4.4 Switch 3.4.5 Break y continue 3.4.6 Sentencias try...catch...end
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
32/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 32 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
FICHA Y HORARIO DE CLASE
Planificación y desglose de actividades de la segunda sesión, de acuerdo a lo estipulado en la
planificación del curso: “Curso Básico Matlab”.
a) No. de Sesión: II Sesión:Unidad: IIIProgramación en Matlab.
Sub-competencia: Identifica y comprende los conceptos básicos de la programaciónen el lenguaje Matlab, la entrada y manejo de datos, las funciones y los flujos decontrol.
FICHA DE CLASE (Contenidos a desarrollar en la sesión)
A Contenido/
Tema ObjetivosActividades
Metodología
RR.DD. EvaluaciónObservaciones
1
Bienvenida/Prese
ntar los
Contenidos y
objetivos del día
Inciso I1.1 Introducción
General. Ver
objetivo del día,
horario, Horarios
y evaluaciones.
1.2 Actividad Co-
Evaluación de
ejercicios 1 y 21.3 Actividad,
puesta en común
sobre resultados
de análisis de
video
1.4 Actividad.
Conferencia
sobre la
programación en
Matlab
1.5.Actividad
ejercicios
prácticos sobreprogramación
1.3. Co-
evaluación,
Puesta en común
ejercicios
*Bienvenida,
*Presentar el objetivo
del día
*Comprender los
conceptos de la
programación en
Matlab, entrada y
manejo de datos, así
como las funciones y
flujos de control
* Co-evaluación de las
hojas de trabajo 1 y 2
* Puesta en común
sobre la hoja de trabajo
autónomo en base al
video
* ejercicios de
programas conteniendo:
Entrada de datos, flujos
de control
*Método expositivo
de conferencia
tradicional/
Pizarra, Textos
Uso de proyector
como medio
audiovisual.
*Método
demostrativo
práctico de trabajo
en grupo en las
clases prácticas
*Co-Evaluación y
puesta en común
de los resultados
de las hojas de
ejercicios 1 y 2
*Puesta en común
sobre el resultado
del análisis del
video
*Co-evaluación
ejercicios deprogramación.
Puesta en común
resultados
ejercicios.
*Discusión y
Puesta en común
sobre hoja de
trabajo 3
1. Presentar proceso
general del curso
2. Presentar
conceptos básicos de
simulación y
abstracción de
modelos.
3. Presentar los
elementos de Matlab
y Simulink
4. Preparar hojas para
las prácticas con los
ejercicios.
5. Orientar sobre
próxima evaluación
6. Asignar Ejercicios
prácticos de Matlab
(Hoja 2 de trabajo
Autónomo)
7. Entrega material
(hojas y video)
A = Número de Actividad.
RR.DD. = Recursos didácticos
La sesión se dividirá en dos bloques con un descanso entre cada uno. Ver a continuación el
cuadro del horario para indicar los tiempos de cada actividad.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
33/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 33 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
c) HORARIO I SESIÓN (30/03/16)Curso Básico Matlab.
La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.
No. Horario Actividad Recursos Observación
1 8:00 – 8:10 10’ Bienvenida
Presentación General/DocentePizarra, Proyector
Toma de Asistencia
con hojas preparadas
2 8:10 – 8:20 10’ Presentar objetivo día, Presentar
HorarioProyector, Filminas,
Pizarra
Revisión puntos
principales día
3 8:20 – 8:35 15’ Puesta en común actividad trabajo
autónomo videoHojas de trabajo
autónomo 1Entrega trabajos
4 8:35 – 9:00 25’ Formación de grupos/Co-EvaluaciónEjercicios 1 y 2
Hojas de ejercicios 1y 2
Distribución de hojascon soluciones 1 y 2
para trabajo
5 9:00 – 9:05 5’ Puesta en común de resultados de
evaluación
6 9:05- 9:35 30’ Presentación creación de archivos .m
en MatlabHojas de Tema
Pizarra, Proyector
7 9:35 – 9:40 5’ Plenario
8 9:40 – 10:00 20’ Ejercicios de programaciónHojas con ejercicios en
grupos
9 10:00 – 10:20 20’ DESCANSO
10 10:20 – 10:55 35’ Presentación flujos de control (if – else,
for, switch.) en MatlabComputadoras
alumnos, pizarra
11 10:55 – 11:00 5’ Dudas, aclaraciones Pizarra, marcadores
12 11:00 – 11:45 45’ Ejercicios de flujos de control Hoja de ejercicios
13 11:45 – 12:05 20’ Co-evaluación de ejercicios por parte
de los gruposProyector, Filminas,
Computadora
14 12:05 – 12:10 10’ Puesta en común
15 12:10 – 12:30 20’ Análisis de video
16 12:30-12:45 15’ Puesta en común
17 12:45 – 13:00 15’ Recopilación Final
Hasta Próxima SesiónJueves 31/03/2016
Proyector, Filminas,ordenador
Orientaciones para la
siguiente sesión.Entrega hojas trabajo
autónomo
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
34/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 34 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Unidad III
Programación en Matlab
3.1 Creación de archivos .m en Matlab
3.1.1 archivos de comandos (scripts)
Primero que nada, hay que ubicarse en el directorio de trabajo, para ello se selecciona en
Matlab, el path o camino en donde se estén los archivos. Esto mediante el ícono de cambio dedirectorio (ver imágenes más abajo).
MATLAB puede utilizarse como un lenguaje de programación de alto nivel que incluyeestructuras de datos, funciones, instrucciones de control de flujo, manejo de entradas/salidas eincluso programación orientada a objetos.
Los archivos con extensión (.m ) son archivos de texto sin formato (archivos ASCII) queconstituyen el centro de la programación en MATLAB. También, estos archivos se pueden creary modificar con un editor de textos cualquiera. En el caso de MATLAB ejecutado en uncomputador bajo Windows , lo mejor es utilizar su propio editor de textos, que es tambiénDebugger .
Existen dos tipos de archivos* .m , los archi vos de comandos (llamados scripts en inglés) y lasfunciones . Los primeros contienen simplemente un conjunto de comandos que se ejecutansucesivamente cuando se teclea el nombre del fichero en la línea de comandos de MATLAB ose incluye dicho nombre en otro fichero * .m . Un archivo de comandos puede llamar a otrosarchivos de comandos. Si un archivo de comandos se llama desde de la línea de comandos de
MATLAB, las variables que crea pertenecen al espacio de trabajo base de MATLAB, y permanecen en él cuando se termina la ejecución de dicho archivo.
Para crear un nuevo M-archivo se utiliza el Editor/Debugger, que se activa haciendo clic en el botón de la barra de herramientas de MATLAB. Veamos esto tanto en la versión 7, como en la14
MATLAB 7.0
Abrir nuevo archivoCambio de Directorio
VENTANA DE DIRECTORIO
/ WORKSPACE
VENTANA DE HISTORIAL
VENTANA DE COMANDOS
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
35/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 35 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Una vez que ha sido creado, el archivo, .m se guarda, ya sea, con el ícono de guardar, o guardarcomo, asignándole un nombre en el directorio de trabajo.
MATLAB 14
Las funciones permiten definir funciones enteramente análogas a las de MATLAB, con sunombre , sus argumentos y sus valores de retorno . Los archivos*.m que definen funciones permiten extender las posibilidades de MATLAB; de hecho existen bibliotecas de archivos*.mque se venden (toolkits ) o se distribuyen gratuitamente (a través de Internet ). Las funcionesdefinidas en archivos *.m se caracterizan porque la primera línea (que no sea un comentario)comienza por la palabra function , seguida por los valores de retorno (entre corchetes [ ] yseparados por comas, si hay más de uno), el signo igual (=) y el nombre de la función, seguidode los argumentos (entre paréntesis y separados por comas).
Para definir una función se utiliza la siguiente sintaxis.
La pr imera línea de un archivo llamado nombre.m que define una función tiene la forma:
function [lista de valores de retorno] = nombre(lista de argumentos)
Donde nombre es el nombre de la función. Entre corchetes y separados por comas van losvalores de retorno (siempre que haya más de uno), y entre paréntesis también separados porcomas los argumentos . Puede haber funciones sin valor de retorno y también sin argumentos.Recuérdese que los argumentos son los datos de la función y los valores de retorno susresultados . Si no hay valores de retorno se omiten los corchetes y el signo igual (=); si sólo hayun valor de retorno no hace falta poner corchetes. Tampoco hace falta poner paréntesis si no hayargumentos.
En cambio, los scripts son el tipo de M-archivo más sencillo posible. Un script no tieneargumentos de entrada ni de salida. Sencillamente está formado por instrucciones MATLAB
VENTANA DE COMANDOSVENTANA DEHISTORIAL
VENTANA DE
DIRECTORIO
VENTANA DEWORKSPACE
MENÚ DE ACCIONES
Abrir nuevo archivo Cambio de Directorio
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
36/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 36 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
que se ejecutan secuencialmente y que podrían escribirse igualmente en serie en la ventana decomandos. Los scripts operan con datos existentes en el espacio de trabajo o con nuevos datoscreados por el propio script. Cualquier variable que se cree mediante un script permanecerá en
el espacio de trabajo y podrá utilizarse en cálculos posteriores después de finalizar el script.
Recomendaciones:
a) Siempre hay que comentar los programas, mediante el uso de “%” b) Al inicio de los programas hay que realizar limpieza de variables, cierre de figuras y de
escritorio. Este se hace mediante el uso de los comandos:
“clear all;”, “close all;” y “clc;”, recuerde colocar al final el punto y coma
Ejemplo de un script:
Ejercicio 1
% Ejemplo de Programa simple de aritmética
% Universidad Técnica de Ambato% Dr. Ligdamis Gutiérrez E.
% Limpieza de variables y escritorio
clear all;close all;clc;
% Declaración de variables
a = 5; b= 6;
% Operaciones
C = a+b; D = a – b;
% Resultados
disp(„El valor de C es:‟ );
disp.(C);
disp(„El valor de D es:‟ );
disp.(D);
% FIN
Ejercicio practica:
Coloque dentro de un archivo .m, las fórmulas de los puntos 1 y 2, de la hoja de trabajo 2(cálculo de volumen y de las raíces). Presente los resultados mediante el comando “disp.”.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
37/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 37 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Ejercicio 2
De acuerdo a los conceptos básicos de estadística descriptiva, tenemos los conceptos de:
a)
Media aritmética mean( )
b) Media Geométrica geomean ( )
Hay que denotar que: Media aritmética > Media Geométrica
c) Rango (Calcula el rango de una determinada serie de datos = calcular la diferencia entre
el dato máximo y el mínimo) rangue( ) d) Mediana de una matriz dada median( )e) Desviación estándar de una matriz dada std( )f) Varianza de una matriz dada var( )
Y los valores siguientes del vector “A” y de la matriz “B” respectivamente:
A = [1:30];B = [5 7 3; 12 55 8; 4 9 16; 2 17 21];
Represente en un script, el cálculo de los incisos de a) – f) del vector A y de la matriz B
Definición de una función simple:
La evaluación de una función en sus argumentos (o parámetros de entrada)también puederealizarse a través del comando “feval”, cuya sintaxis es la siguiente:
feval( „ar chivo‟,arg1,arg1,..,argn)
Evalúa la función archivo (M-archivo, archivo.m) en los argumentos especificados arg1, arg2,
...,argn
Ejemplo:
Vamos a construir un script, de una función que resuelva la ecuación de segundo grado:
= 2 + + Cuyos coeficientes son, a, b y c (como parámetros de entrada) y cuyas soluciones son X1 y X2
(como parámetros de salida)
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
38/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 38 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
function[x1, x2] = ecuacion(a,b,c)
% Función que resuelve la ecuación de segundo grado ax^2+bx +c = 0% Universidad Técnica de Ambato
% Curso de Matlab% Dr. Ligdamis A. Gutiérrez E.
% Limpieza de variables y escritorio% No utilizamos limpieza de variables, ya que crearía un conflicto en la función
close all;
clc;
% Declaración de la ecuación
Y = b^2 – (4*a*c);
% Soluciones
x1 = (-b+sqrt(Y)) /(2*a);x2 = (-b-sqrt(Y))/(2*a);
% Presentar resultados
disp(x1);disp(x2);
% FIN
Una vez que ya tenemos la función, podemos resolver por ejemplo la ecuación
2 + 2 + 4 = 0 Utilizando el comando “feval”, en la ventana de comandos de la siguiente manera:
[ x1, x2] = feval („ecuacion‟, 1, 2, 4)
En donde el nombre de la función, es “ecuación”, y los argumentos son los coeficientes delaecuación: 1, 2, y 4. El resultado es el siguiente:
x1 =
-1.0000 + 1.7321i
x2 =
-1.0000 - 1.7321i
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
39/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 39 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
3.1.2 Sentencia return
Por defecto, las funciones devuelven el control después de que se ejecute la última de sus
sentencias. La sentencia return , incluida dentro del código de una función, hace que sedevuelva inmediatamente el control al programa que realizó la llamada.
3.1.3 sub-funciones
Tradicionalmente MATLAB obligaba a crear un fichero *.m diferente por cada función. Elnombre de la función debía coincidir con el nombre del fichero. A partir de la versión 5.0 seintrodujeron las sub-funciones , que son funciones adicionales definidas en un mismo fichero* .m , con nombres diferentes del nombre del fichero (y del nombre de la función principal) y quelas sub-f unciones sólo pueden ser ll amadas por las funciones contenidas en ese fichero ,resultando “invisibles” para otras funciones externas.
Dentro de una función de Matlab, que es la principal, puede existir una o varias funciones a su
vez, esto lo vemos en el siguiente ejemplo:
function [media,mediana] = estadistica(u) % Función principal
% ESTADISTICA Calcula la media y la% mediana utilizando funciones internas.n = length(u);
media = mean(u,n);mediana = median(u,n);
function a = mean(v,n) % Subfución
% Calcula la media.a = sum(v)/n;
function m = median(v,n) % Subfunción% Calcula la mediana.
w = sort(v);if rem(n,2) == 1
m = w((n+1)/2);elsem = (w(n/2)+w(n/2+1))/2;end
% FIN
3.2 Entrada y manejo de datos
3.2.1 función input
La función input permite imprimir un mensaje en la línea de comandos de MATLAB yrecuperar como valor de retorno un valor numérico o el resultado de una expresión tecleada porel usuario. Después de imprimir el mensaje, el programa espera que el usuario teclee el valornumérico o la expresión. Cualquier expresión válida de MATLAB es aceptada por estecomando.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
40/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 40 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
El usuario puede teclear simplemente un vector o una matriz. En cualquier caso, la expresiónintroducida es evaluada con los valores actuales de las variables de MATLAB y el resultado sedevuelve como valor de retorno. Observemos un ejemplo de uso de esta función:
>> n = input('Teclee por favor el número de ecuaciones')
Otra posible forma de esta función es la siguiente (obsérvese el parámetro 's'):
>>nombre = input('¿Diga por favor su nombre?','s')
% La s hace referencia a una cadena de caracteres de tipo string
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que sealmacena en la cadena nombre . Así pues, en este caso, si se teclea una fórmula, se almacenacomo texto sin evaluarse.
3.2.2 función disp
La función disp. permite imprimir en pantalla un mensaje de texto o el valor de una matriz, perosin imprimir su nombre. En realidad, disp. siempre imprime vectores y/o matrices: las cadenasde caracteres son un caso particular de vectores. Considérense los siguientes ejemplos de cómo
se utiliza:
>>disp('El programa ha terminado')>> A=rand(4,4)>>disp(A)
Al ejecutar las sentencias anteriores en MATLAB se observa la diferencia entre las dos formas
de imprimir la matriz A.
3.3 Funciones en Matlab
Existen diversas funciones redefinidas en Matlab. A través de la ayuda y la documentación pueden consultarse.
3.4 Condiciones y flujos de control en Matlab
Normalmente, Matlab va realizando las instrucciones de un programa enel orden que las hemosescrito. No obstante, hay varias formas de conseguir que este orden no se respete:
- If, junto con else y elseif, ejecuta un grupo de instrucciones dependiendo de qué ciertaexpresión lógica sea cierta o no.
- While ejecuta un grupo de instrucciones un número indefinido de veces que depende de quecierta expresión lógica se verifique o no.
- For ejecuta un grupo de instrucciones un número establecido de veces.
- Break termina la ejecución de un for o while.
- Switch, junto con case y otherwise, ejecuta diferentes grupos de instrucciones dependiendo del
valor de alguna condición lógica.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
41/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 41 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
- Continue pasa el control a la siguiente iteración de un for o while, ignorando cualquierinstrucción posterior (del for o while en cuestión).
Veamos a continuación un poco más detallada cada una de ellas.
3.4.1 Bucle ifelse
MATLAB, al igual que la mayoría de los lenguajes de programación estructurada, tambiénincorpora la estructura IF-ELSEIF-ELSE-END. Mediante esta estructura, se pueden ejecutarsecuencias de comandos si se cumplen determinadas condiciones. La sintaxis del bucle es la
siguiente:
if condicióncomandos
end
En este caso se ejecutan los comandos si la condición es cierta. Pero la sintaxisde este bucle
puede ser más general.
if condicióncomandos1
elsecomandos2
end
En este caso se ejecutan los comandos1 si la condición es cierta, y se ejecutan los comandos2 sila condición es falsa.
Ejemplo 1:
function pares(n)
% Calcula si un número es par, impar, positivo, negativo.% Universidad Técnica de Ambato
% Curso de Matlab
if n>pares(4)
A =
n es par
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
42/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 42 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
>>pares(5)
A =n es impar
>>pares(-5)
A =n es negativo
Ejemplo 2:
Cálculo del salario de un trabajador. Un trabajador cobra un determinado sueldo por hora hasta
40 horas semanales. Además si realiza horas extras (más de 40 horas semanales), dichas horasse le pagan un 50% más. En un script se calcula la paga semanal, se pedirá que introduzca eltotal de horas y el salario por hora. Así se visualizará la paga semanal del trabajador.
% Calcula el salario semanal de un trabajador.
% Universidad Técnica de Ambato% Curso de Matlab
clear all; close all; clc;
t = input('Introduzca el número de horas trabajadas: ');disp('\ '); % despliega un salto de líneah = input('Introduzca el salario por hora en dólares: ');
Psema = t*h;
if (t > 40)
Psema = Psema + (t-40)*0.5 * h;
end
fprintf(' El pago semanal del trabajador es de %5.2 f Dólares ', Psema);
% FIN
Ejemplo 3:
Una torre de almacenamiento de agua tiene la
geometría que se muestra en la figura. La parte inferior es un cilindro, y la superior un
cono truncado invertido. Dentro del depósitohay una boya que indica el nivel del agua.Escribir una función en Matlab que calcule el
volumen de agua dentro del depósito a partirde la posición (altura "h") de la boya. La
entrada de la función será el valor de la altura(h) en metros, y la salida será el volumen queocupa el agua en metros cúbicos.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
43/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 43 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Para 0 ≤ h ≤ 19 m, el volumen de agua se puede calcular a partir del volumen de un cilindro dealtura h, que es:
= 12.52ℎ Para 19 ≤ h ≤ 33 m, el volumen de agua se calcula sumando el volumen del cilindro, con alturah = 19 m, y el volumen de agua en el cono.
= 12.52 ∗ 1 9 + 13
ℎ − 19 (12.52 + 12.5− ℎ + ℎ2 )Donde ℎ : 12.5 + 10.514 (ℎ − 19), La función en Matlab queda de la siguiente manera:function v = vagua(h)
close all; clc;format short;% Cálculo del volumen de agua de un depósito% Valor de entrada, es el nivel del agua en metros% Valor de salida, es el volumen de agua en metros cúbicos
if h >fori=1:3, x(i)=0, end % Desde I = 1 hasta 3, vale 0
x =
0
x =
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
44/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 44 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
0 0
x =
0 0 0
La forma general de un bucle FOR es la siguiente:
for variable = expresión
comandosend
El bucle siempre empieza con la cláusula for y termina con la cláusula end, e incluye en suinterior todo un conjunto de comandos que se separan por comas. Si algún comando define unavariable, se finaliza con punto y coma para evitar repeticiones en la salida.
Ejemplo:
Realizar un script que calcule los “n” primeros términos de la serie numérica siguiente:
(−1) (2)
=1
Ejecutar el script para n = 4 y n = 20
% Programa para calcular los n primeros términosclear all; close all; clc;
n = imput(„Introduzca el número de términos: „);
s = 0; % Inicializa la suma a cero
for k = 1: n
s = s +(-1)^k*k/2^kend
fprintf(„ El valor (suma) de la serie es: %f‟, s);
% FIN
Ejemplo 2
Desarrollar un script para calcular la función sen(x), que se aproxime utilizando la serie de
Taylor
= (−1)2+12 + 1!∞=0
function y = serie1(x,n)
% La función serie1, aproxima el valor del seno de x, utilizando una serie de Taylor
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
45/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 45 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
% Los argumentos de entrada son: el ángulo x en grados y el número n de términos de la serie
xr = x*pi/180;
y = 0;
for k = 0:n-1
y = y +(-1)^k*xr^(2*k+1)/factorial(2*k+1);
end
% FIN
3.4.3 Bucle While
MATLAB dispone de su propia versión de la sentencia WHILE definida en la sintaxis de lamayoría de los lenguajes de programación. Esta sentencia permite ejecutar de forma repetitivaun comando o grupo de comandos un número determinado de veces mientras se cumple unacondición lógica especificada. La sintaxis general de este bucle es la siguiente:
while condicióncomandosend
El bucle siempre empieza con la cláusula while seguida de una condición, y termina con lacláusula end, e incluye en su interior todo un conjunto de comandos que se separan por comas y
que se ejecutan mientras se cumple la condición. Si algún comando define una variable, sefinaliza con punto y coma para evitar repeticiones en la salida.
Ejemplo:
Una secuencia en la cual una variable x con valor inicial de 1, se multiplica por dos en cadaiteración, y el bucle se repite hasta que el valor de la variable sea menor o igual a 16
x = 1;
while x < = 16x = 2*x;
end
3.4.4 Bucle Switch
La sentencia switch realiza una función análoga a un conjunto de if...elseif concatenados. Suforma general es la siguiente:
switchswitch_expresioncasecase_expr1, bloque1case{case_expr2, case_expr3, case_expr4,...} bloque2
...otherwise, % opción por defecto
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
46/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 46 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
bloque3
end
Al principio se evalúa la switch_expresion , cuyo resultado debe ser un número escalar o unacadena de caracteres. Este resultado se compara con las case_expr , y se ejecuta el bloque de
sentencias que corresponda con ese resultado. Si ninguno es igual a switch_expresion seejecutan las sentencias correspondientes a otherwise . Según puede verse en el ejemplo anterior,es posible agrupar varias condiciones dentro de unas llaves (constituyendo lo que se llama uncell array o vector de celdas, explicado en el apartado 5.4); basta la igualdad con cualquierelemento del cell array para que se ejecute ese bloque de sentencias. La “igualdad” debe
entenderse en el sentido del operador de igualdad (==) para escalares y la función strcmp() paracadenas de caracteres).
3.4.5 Break y continue
SENTENCIA BREAK
Al igual que en C/C++/Java, la sentencia break hace que se termine la ejecución del buclefor y/owhile más interno de los que comprenden a dicha sentencia.SENTENCIA CONTINUE
La sentencia continue hace que se pase inmediatamente a la siguiente iteración del bucle for owhile , saltando todas las sentencias que hay entre el continue y el fin del bucle en la iteraciónactual.
3.4.6 Sentenciastry...catch...end
La construcción try...catch...end permite gestionar los errores que se pueden producir en tiempode ejecución. Su forma es la siguiente:
trysentencias1
catchsentencias2
end
En el caso de que durante la ejecución del bloque sentencias1 se produzca un error, el controlde la ejecución se transfiere al bloque sentencias2 . Si la ejecución transcurriera normalmente,sentencias2 no se ejecutaría nunca. MATLAB dispone de una función lasterr que devuelve unacadena de caracteres con el mensaje correspondiente al último error que se ha producido. En laforma lasterr('') pone a cero este contador de errores, y hace que la función lasterr devuelva lamatriz vacía [] hasta que se produzca un nuevo error.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
47/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 47 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
CURSO BÁSICO DE LENGUAJE MATEMÁTICO MATLAB
III SESIÓN
Facultad de Ingeniería Civil y Mecánica
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
48/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 48 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
Unidad IV
Gráficos en Matlab
4.1 Gráficos Bidimensionales 2D
4.1.1 Función plot 4.1.2 Estilos, líneas, colores y marcadores en la función plot4.1.3 Uso de herramientas de dibujo (plottools)4.1.4 comando subplot 4.1.5 control de los ejes: función axis()
4.1.6 función figure 4.1.7 Dibujo de funciones simples: ezplot, ezpolar , etc.
4.2 Gráficos Tridimensionales 3D4.2.1 Tipos de funciones gráficas 3D: ezplor3, ezsurf, etc.4.2.2 Utilización de color en 3D y uso de plottools4.2.2 Dibujos de mallados: mesh, meshgrid, surf
4.2.3 Dibujos de líneas de contorno: contour
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
49/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 49 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
FICHA Y HORARIO DE CLASE
Planificación y desglose de actividades de la segunda sesión, de acuerdo a lo estipulado en la planificación del curso: “Curso Básico Matlab”.
a) No. de Sesión: III Sesión:Unidad: IV Gráficos en Matlab.
Sub-competencia: Identifica y comprende los conceptos básicos de los gráficos en dosy tres dimensiones
FICHA DE CLASE (Contenidos a desarrollar en la sesión)
A Contenido/Tema Objetivos
ActividadesMetodología
RR.DD. EvaluaciónObservaciones
1
Bienvenida/Prese
ntar los
Contenidos y
objetivos del día
Inciso I1.1 Introducción
General. Ver
objetivo del día,
horario, Horarios
y evaluaciones.
1.2 Actividad
presentación de
trabajos hoja 3
1.3 Actividad,
puesta en comúnsobre resultados
de análisis de
trabajo
autónomo
1.4 Actividad.
Conferencia
sobre los gráficos
en Matlab
1.5.Actividad
ejercicios
prácticos sobre
Gráficos
1.3. Co-
evaluación,
Puesta en común
ejercicios
*Bienvenida,
*Presentar el objetivo
del día
*Comprender los
conceptos de los
gráficos en Matlab 2D
y 3D
* Presentación por parte
de los grupos de los
programas realizados de
la hoja 3
* Puesta en común
sobre la hoja de trabajo
autónomo en base al
artículo
* ejercicios de
programas conteniendo:
gráficos en 2D y 3D
*Método expositivo
de conferencia
tradicional/
Pizarra, Textos
Uso de proyector
como medio
audiovisual.
*Método
demostrativo
práctico de trabajo
en grupo en las
clases prácticas
*Co-Evaluación y
puesta en común
de los resultados
de la hoja de
ejercicios 3
*Puesta en común
sobre el resultado
del análisis del
artículo
*Co-evaluación
ejercicios de
programación.
Puesta en comúnresultados
ejercicios.
*Discusión y
Puesta en común
sobre hoja de
trabajo 4
1. Presentar proceso
general del curso
2. Presentar
conceptos básicos de
gráficos en 2D y 3D.
3. Presentar los
elementos de Matlab
para gráficos
4. Preparar hojas para
las prácticas con los
ejercicios.
5. Orientar sobre
próxima evaluación
6. Asignar Ejercicios
prácticos de Matlab
(Hoja 3 de trabajo
Autónomo)
7. Entrega material
(hojas y video)
A = Número de Actividad.
RR.DD. = Recursos didácticos
La sesión se dividirá en dos bloques con un descanso entre cada uno. Ver a continuación el
cuadro del horario para indicar los tiempos de cada actividad.
-
8/18/2019 1 Manual Curso Matlab Basico Estudio
50/127
UNIVERSIDAD TÉCNICA DE AMBATO CURSO DE LENGUAJE MATEMÁTICO MATLAB
Página 50 de 127 Curso Matlab básico, marzo 2016 -Dr . L igdamis A. Gut iérrez Espinoza- Docente - I nvestigador
d) HORARIO I SESIÓN (31/03/16)Curso Básico Matlab.
La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.
No. Horario Actividad Recursos Observación
1 8:00 – 8:10 10’ Bienvenida
Presentación General/DocentePizarra,Proyector
Toma de Asistencia
con hojas preparadas
2 8:10 – 8:20 10’ Presentar objetivo día, Presentar
HorarioProyector, Filminas,
Pizarra
Revisión puntos
principales día
3 8:20 – 8:35 15’ Puesta en común actividad trabajo
autónomo artículoHojas de trabajo
autónomo 2Entrega trabajos
4 8:35 – 9:00 25’ Actividad, presentación por parte de losgrupos de los programas realizados
Hojas de ejercicios 3 Memoria con los programas y Matlab
5 9:00 – 9:05 5’ Puesta en común de resultados del
trabajo en grupo
6 9:05- 9:35 30’ Presentación gráficos en MatlabHojas de Tema
Pizarra,Proyector
7 9:35 – 9:40 5’ Plenario
8 9:40 – 10:00 20’ Ejercicios de gráficosHojas con ejer