Universidad Manuela Beltrán Facultad de Ingeniería Ingeniería Biomédica
GUÍA GRÁFICA DE APRENDIZAJE PARA LA INTRODUCCIÓN AL LENGUAJE BÁSICO DE MATLAB
Andrés Leonardo Pinzón Parada Bárbara Milena Puello Villamizar Edwin Santamaría Sánchez
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB Tabla de Contenido 1.
OBJETIVOS ...................................................................................................................................- 3 -
1.1.
OBJETIVO GENERAL .......................................................................................................................- 3 -
1.1.1.
OBJETIVOS ESPECÍFICOS .............................................................................................................- 3 -
2.
INTRODUCCIÓN .............................................................................................................................- 3 -
3.
PARTES DE MATLAB ...................................................................................................................... - 4 -
4.
USO DEL COMANDO HELP ...............................................................................................................- 5 -
5.
TRABAJAR EN EL COMMAND WINDOW ..............................................................................................- 5 -
6.
COMANDOS ÚTILES PARA EL MANEJO DE LAS VARIABLES ...................................................................- 5 -
7.
COMANDO BÁSICOS DE MATLAB ..................................................................................................... - 6 -
8.
VARIABLES DEFINIDAS PARA EL MANEJO DE MATLAB ........................................................................ - 6 -
9.
OPERACIÓN CON VECTORES Y MATRICES ......................................................................................... - 6 -
9.1.
VECTORES ................................................................................................................................... - 6 -
9.1.1.
VECTOR LINEAL ......................................................................................................................... - 7 -
9.1.2.
VECTOR COLUMNA ..................................................................................................................... - 7 -
9.1.3.
RANGOS .................................................................................................................................... - 7 -
9.1.4.
TAMAÑOS DE VARIABLES ............................................................................................................ - 7 -
9.1.5.
TRANSPOSICIÓN DE VECTORES ................................................................................................... - 8 -
9.1.6.
INDEXACIÓN DE VECTORES......................................................................................................... - 8 -
9.1.6.1.
VALOR DE LA POSICIÓN DEL VECTOR ....................................................................................... - 8 -
9.1.6.2.
CAMBIAR EL VALOR DE UNA POSICIÓN EN EL VECTOR ................................................................ - 9 -
9.1.7.
OPERACIONES CON VECTORES .................................................................................................... - 9 -
9.1.7.1.
OPERACIONES ENTRE VECTOR Y ESCALAR ................................................................................ - 9 -
9.1.7.1.1.
SUMA ................................................................................................................................... - 9 -
9.1.7.1.2.
RESTA .................................................................................................................................. - 9 -
9.1.7.1.3.
MULTIPLICACIÓN .................................................................................................................. - 10 -
9.1.7.1.4.
DIVISIÓN ............................................................................................................................. - 10 -
9.1.7.1.5.
POTENCIACIÓN .................................................................................................................... - 10 -
9.1.7.2.
OPERACIONES ENTRE VECTORES ............................................................................................ - 10 -
9.1.7.2.1.
SUMA .................................................................................................................................. - 11 -
9.1.7.2.2.
RESTA ................................................................................................................................. - 11 -
9.1.7.2.3.
MULTIPLICACIÓN .................................................................................................................. - 11 -
9.1.7.2.4.
DIVISIÓN ............................................................................................................................. - 12 -
9.2.
MATRICES ................................................................................................................................... - 12 -
9.2.1.
ENTRADA DE MATRICES AL ENTORNO DE MATLAB........................................................................ - 12 -
9.2.2.
TRANSPOSICIÓN DE VECTORES .................................................................................................. - 12 -
9.2.3.
TAMAÑO DE MATRICES ............................................................................................................. - 13 -
9.2.4.
INDEXACIÓN DE MATRICES ........................................................................................................ - 13 -
9.2.4.1.
VALOR DE LA POSICIÓN EN LA MATRIZ .................................................................................... - 13 -
9.2.4.2.
CAMBIAR EL VALOR DE UNA POSICIÓN EN LA MATRIZ ............................................................... - 14 -
-1-
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB 9.2.5.
CREACIÓN DE MATRICES ........................................................................................................... - 14 -
9.2.5.1.
CREACIÓN DE MATRICES A PARTIR DE VECTORES ..................................................................... - 14 -
9.2.5.2.
CREACIÓN DE MATRICES A PARTIR DE OTRAS MATRICES............................................................ - 14 -
9.2.6.
OPERACIONES CON MATRICES ................................................................................................... - 15 -
9.2.6.1.
OPERACIONES ENTRE MATRIZ Y VECTOR ................................................................................. - 15 -
9.2.6.2.
OPERACIONES ENTRE MATRICES............................................................................................. - 15 -
9.2.6.2.1.
SUMA .................................................................................................................................. - 15 -
9.2.6.2.2.
RESTA ................................................................................................................................. - 15 -
9.2.6.2.3.
MULTIPLICACIÓN .................................................................................................................. - 16 -
9.2.6.2.4.
DIVISIÓN ............................................................................................................................. - 16 -
10.
GRAFICAS ................................................................................................................................... - 17 -
10.1.
GRAFICAS 2D ........................................................................................................................... - 17 -
10.1.1.
ETIQUETAS PARA LAS GRAFICAS ................................................................................................ - 19 -
10.1.2.
GRAFICAR DOS O MÁS GRAFICAS EN UN MISMO PLOT .................................................................. - 20 -
10.2.
GRAFICOS 3D .......................................................................................................................... - 21 -
11.
INTERFAZ – GUIDE .......................................................................................................................- 23 -
12.
SIMULINK .................................................................................................................................... - 25 -
13.
IMAGEN Y PALETA DE COLORES .................................................................................................... - 27 -
14.
SONIDO ..................................................................................................................................... - 28 -
15.
MÉTODOS NUMÉRICOS ..................................................................................................................- 29 -
15.1.
DERIVADAS..............................................................................................................................- 29 -
15.2.
INTEGRALES ............................................................................................................................- 29 -
15.3.
TEOREMAS ............................................................................................................................. - 30 -
15.3.1.
TEOREMA DEL VALOR MEDIO ..................................................................................................... - 31 -
15.4.
METODO DE BISECCIÓN ............................................................................................................. - 31 -
15.5.
FACTORIZACIÓN LU ..................................................................................................................- 33 -
15.6.
TEOREMA DE NEWTON Y TEOREMA DE CRAMER ........................................................................... - 35 -
15.6.1.
TEOREMA DE NEWTON ............................................................................................................. - 35 -
15.6.2.
TEOREMA DE CRAMER ..............................................................................................................- 36 -
15.7.
MÉTODO DE JACOBI Y GAUSS SEIDEL .......................................................................................... - 37 -
15.7.1.
METODO DE JACOBI ................................................................................................................. - 37 -
15.7.2.
GAUSS SEIDEL......................................................................................................................... - 38 -
15.8.
INTERPOLACIÓN DE LAGRANGE ................................................................................................ - 40 -
15.9.
POLINOMIOS DE INTERPOLACIÓN DE NEWTON ............................................................................. - 41 -
15.10.
SPLINES LINEAL Y SPLINES CÚBICOS .......................................................................................... - 44 -
15.10.1.
SPLINE LINEAL .................................................................................................................... - 44 -
15.10.2.
SPLINES CÚBICOS .................................................................................................................- 45 -
15.11. 16.
SIMPSON SIMPLE ..................................................................................................................... - 46 BIBLIOGRAFÍA .......................................................................................................................... - 48 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
1. OBJETIVOS 1.1. OBJETIVO GENERAL Construir un manual sobre el uso de los comandos básicos de programación en Matlab integrando métodos gráficos y analíticos para una mejor interpretación del lector.
1.1.1. OBJETIVOS ESPECÍFICOS Diseñar una guía de instrucciones que permita al lector entender los conceptos básicos sobre el lenguaje de programación en MATLAB. Redactar un manual usando ejemplos analíticos y gráficos para la comprensión detallada del funcionamiento básico de MATLAB. Enfocar el manual hacia un aprendizaje sencillo de MATLAB explicado las aplicaciones y comandos más comunes utilizadas por el usuario.
2. INTRODUCCIÓN MATLAB es un programa informático que posee un lenguaje de alto nivel funcional usado para el cálculo numérico y la programación, mediante MATLAB es posible desarrollar cálculos algebraicos y numéricos de una manera mucho más óptima que usando métodos manuales o lenguajes de programación de alta complejidad como C++ o Java. Además cuenta con una serie de herramientas denominadas TOOLBOX que permiten ampliar la gama de aplicaciones hacia casi cualquier campo de las ciencias o finanzas; esto lo hace una poderosa herramienta versátil que pueden usar tanto estudiantes como profesionales al rededor del mundo. Algunas de las capacidades de MATLAB incluyen:
Calculo numérico y algebraico Análisis y visualización de datos Programación y desarrollo de algoritmos Desarrollo de aplicaciones
MATLAB es una herramienta inteligente que posee opciones avanzadas como un completo sistema de ayuda al usuario que permite guiarlo mediante un lenguaje sencillo y ejemplos concretos del uso de funciones especiales y diferentes TOOLBOX. En el siguiente link encontrara un tutorial de las funciones básicas de Matlab como lo son la suma, resta división y multiplicaciones entre vectores y matrices y como graficar derivar e integrar funciones.
https://www.youtube.com/watch?v=cvW1Ha34hcs&feature=youtu.be
-3-
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
3. PARTES DE MATLAB
1. Home: Proporciona información de ayuda y permite la ejecutar los códigos creados en el script. 2. Plots: Contiene la salida de comandos gráficos. 3. Apps: Permite la creación y depuración de archivos de comandos y funciones. 4. Current folder: Permite observar los archivos en el directorio actual. 5. Workspace: Permite visualizar la información acerca de las variables que se han utilizado. 6. Command window: Es la ventana principal que nos permite introducir variables y ejecutar las al mismo tiempo, además nos permite visualizar los resultados de los códigos creados en el script. 7. Command history: Permite observar los comandos y registros que ingresaron en el command window.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
4. USO DEL COMANDO HELP MATLAB cuenta con comando help que nos permite buscar ayuda relacionado con la programación de MATLAB, en este comando podemos encontrar funciones que podemos utilizar para resolver las diferentes funciones matemáticas y las propiedades sobre los distintos objetos gráficos que utiliza MATLAB, además contiene diferentes ejemplos que pueden ser utilizados como guía la para solución de los diferentes códigos que deseen ejecutar.
5. TRABAJAR EN EL COMMAND WINDOW Para trabajar en la ventana del command window se debe colocar el cursor al lado del símbolo del sistema (>>) después de ingresar el código se presionara enter para que el código sea ejecutado.
Se pueden utilizar varios comandos en la misma línea, separándolos por medio de una coma entre cada comando. Si se desea que un resultado no se muestre se escribe (;) al final del comando y de esta forma no mostrara la salida del comando ejecutado. Si se desea escribir un mando ya ejecutado anteriormente este puede ser llamado con la tecla de fecha superior o también seleccionarlo en el Command history. Si hay códigos demasiado largos que no camben en una sola línea se puede continuar el código ingresando (…) al final del código y presionando enter para que este pueda continuar en la siguiente línea. Si es necesario comentar un comando este se puede realizar por medio del símbolo % al principio de la línea para que quede la línea quede designada como un comentario. MATLAB diferencia las mayúsculas de las minúsculas es decir Y ≠ y.
6. COMANDOS ÚTILES PARA EL MANEJO DE LAS VARIABLES Matlab cuenta con una serie de comando que nos permiten eliminar variables e historiales contenidas en el command window o el command history y también para visualizar las variables utilizadas o que se encuentran en la memoria de MATLAB.
-5-
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
COMANDO clear all clear x y who whos clc
RESULTADO todas las variables
Elimina de la memoria Elimina sólo las variables x, y de la memoria Muestra una lista de las variables actualmente en la memoria Muestra una lista de variables y su tamaño, junto con información acerca de sus bytes y clase Elimina los datos contenidos en el command history
7. COMANDO BÁSICOS DE MATLAB Matlab ofrece los comandos básicos para la solución de matemáticas básicas como la adición, sustracción, multiplicación, división y potenciación. OPERACIÓN SÍMBOLO MATLAB Suma (a+b) + Resta (c-d) Multiplicación (e*f) * División (g/h) /o\ Potenciación (ij) ^
8. VARIABLES DEFINIDAS PARA EL MANEJO DE MATLAB Hay variables que se utilizan con frecuencia y se encuentran ya definidas en el entorno MATLAB cuando este inicia. VARIABLE ans pi inf i j
DESCRIPCIÓN Variable que tiene su valor en la última expresión Representa el valor de π Usado para infinito Define la raíz de un numero negativo Lo mismo que i
9. OPERACIÓN CON VECTORES Y MATRICES 9.1. Vectores Aunque MATLAB es un entorno que trabaja con matrices, también se pueden trabajar con vectores ya sean por filas o por columnas, de tal manera que se puedan realizar operaciones entre ellas.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.1.1. Vector lineal La introducción de vectores fila en MATLAB es muy fácil, se inicia con una apertura de corchetes e introducimos los números separas por comas o por espacios y cerramos el corchete, antes debe de ir una variable a la cual se le asigna el vector. Variable= [lista de números]
9.1.2. Vector columna La introducción de vectores en columna se realiza por medio de la apertura de corchetes, se introducen los números separados mediante ; esto indica el fin de la fila, se cierra el corchete Variable= [lista de números separados por medio de ; (#;#;#)]
9.1.3. Rangos Algunas veces es necesario introducir un vector que tenga un incremento deseado, esto se hace mediante la estructura: Variable= [inicio:incremento:fin]
Si no se asigna un incremento MATLAB lo asume como 1. 9.1.4. Tamaños de variables Por medio de los comandos size o length se puede obtener el tamaño del vector. Size(variable): nos proporciona un valor n x m es decir filas x columnas que tienen los diferentes vectores
-7-
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Length(variable) nos proporciona el valor mayor ya sea de las columnas o de las filas que contiene el vector 9.1.5. Transposición de vectores Para transponer un vector se utiliza el apostrofe simple ‘ de tal manera que cambio un vector fila a un vector columna o un vector columna a un vector fila. Variable= vector’
9.1.6. Indexación de vectores Una vez se ha definido un vector es posible acceder a uno de sus componentes de tal manera que se pueda saber su valor en una dada posición y si es necesario cambiar el valor en alguna posición deseada.
9.1.6.1. Valor de la posición del vector Variable (posición)
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.1.6.2. Cambiar el valor de una posición en el vector Variable (posición)=valor a cambiar
9.1.7. Operaciones con vectores MATLAB permite realizar o ejecutar diferentes operaciones entre vectores y escalares 9.1.7.1. Operaciones entre vector y escalar Para realizar operaciones entre vectores y escalares se hacen de forma directa ya que MATLAB permite realizar dichas operaciones. Estas operaciones se pueden realizar tanto para vector lineal como de columna. 9.1.7.1.1.
Suma
Variable= [lista de números] Variable + escalar
9.1.7.1.2. Variable= [lista de números] Variable – escalar
Resta
-9-
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.1.7.1.3. Variable= [lista de números] Variable * escalar
Multiplicación
9.1.7.1.4. Variable= [lista de números] Variable / escalar
División
9.1.7.1.5.
Potenciación
Vector .^ escalar
9.1.7.2. Operaciones entre vectores Para realizar operaciones con vectores tanto las adiciones como las sustracciones se pueden hacer de forma directa que sean del mismo tamaño, pero las multiplicaciones y divisiones solo se puede realizar si los vectores son del mismo tamaño y se debe de
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
anteponer un (.) antes del signo. 9.1.7.2.1.
Suma
9.1.7.2.2.
Resta
Vector (1) + vector (2)
Vector (1) - vector (2)
9.1.7.2.3. Multiplicación La multiplicación entre vectores se puede realizar si son del mismo tamaño o si el primer vector tiene 3 columnas el segundo vector tiene que tener 3 filas es decir (mxn)*(n*t) Vector (1) .* vector (2)
- 11 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.1.7.2.4. División Para realizar la división entre vectores estos deben ser del mismo tamaño Vector (1) ./ vector (2)
9.2.
Matrices
Las matrices están construidas a partir de vectores, además MATLAB permite ejecutar diferentes operaciones entre ellas. 9.2.1. Entrada de matrices al entorno de MATLAB Para ingresar las matrices en MATLAB se realizan por medio de la siguiente estructura: Variable: [# de primeras filas; # segunda fila; # tercera fila] Los (;) simbolizan la finalización de cada fila, además las matrices deben contener la misma cantidad de columnas en cada fila asignada para la creación de la matriz.
9.2.2. Transposición de vectores Para realizar la transposición de las matrices se utiliza la comilla simple (‘) para que cambien las filas por las columnas al igual que en los vectores Matriz’
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.2.3. Tamaño de matrices Para poder observar el tamaño de las matrices se realiza con el comando size proporcionando el tamaño de filas por columnas (m x n) Size(matriz)
9.2.4. Indexación de matrices Una vez se ha definido el vector es posible acceder a uno de sus componentes de tal manera que pueda saber el valor en una posición especifica o cambiar dicho valor en la posición.
9.2.4.1. Valor de la posición en la matriz - 13 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Matriz (# fila, # posición columna)
9.2.4.2. Cambiar el valor de una posición en la matriz Matriz (# fila, # posición columna) = valor deseado
9.2.5. Creación de matrices Con MATLAB existe la posibilidad de crear matrices a partir de vectores o de otras matrices. 9.2.5.1. Creación de matrices a partir de vectores Cuando existen 2 o más vectores con igual número de columnas es posible crear una matriz con los diferentes vectores mediante la siguiente estructura. Matriz= [vector 1; vector 2; vector 3]
9.2.5.2. Creación de matrices a partir de otras matrices Para crear una matriz a partir de otras matrices es necesario que estas tengas el mismo número de columnas pero no él es necesario que tengan el mismo número de filas. Se realiza por medio de la siguiente estructura: Variable= [matriz (1); matriz (2)]
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.2.6. Operaciones con matrices MATLAB permite realizar o ejecutar diferentes operaciones entre matrices y escalares. 9.2.6.1. Operaciones entre matriz y vector Para realizar operaciones entre matrices y escalares se hacen de forma directa ya que MATLAB permite realizar dichas operaciones. Estas operaciones (suma, resta, división y multiplicación) se realizan de igual forma que los vectores y escalares contenidos en el numeral 9.1.7.1. 9.2.6.2. Operaciones entre matrices Para realizar las diferentes operaciones entre matrices estas deben ser del mismo tamaño, acepción de la multiplicación que aplica la misma regla que en los vectores. 9.2.6.2.1. Matriz (1) + matriz (2) =nueva matriz
Suma
9.2.6.2.2. Matriz (1) - matriz (2) =nueva matriz
Resta
- 15 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.2.6.2.3. Matriz (1) * matriz (2) =nueva matriz
Multiplicación
Matriz (m*n) * matriz (n*t) = nueva matriz(n*t)
9.2.6.2.4.
División
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Matriz (1) / matriz (2) =nueva matriz
10. GRAFICAS 10.1. Graficas 2D Para crear graficas en MATLAB se realizan por medio de la función plot, se deben contener los valores independientes en el eje X, y los valores dependientes en el eje Y. Esto se realiza por medio de siguiente estructura: Plot(x,y) Los valores del eje X se pueden introducir por medio de un vector, y los valores del eje Y se pueden ingresar por medio de una función que dependa de los valores de X.
La grafica se verá representada en una nueva ventana de MATLAB.
MATLAB permite superponer dos graficas de tal manera que se pueda realizar una comparación de dichas señales, esto es posible por medio de la misma
- 17 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
función plot, agregándole más valores en X1 y Y1. Esto se realiza por medio de la siguiente estructura: Plot (x0, y0, x1, y1)
MATLAB cambia automáticamente el color de las líneas de las funciones para que salgan de diferentes colores. Se pueden utilizar diferentes tipos de líneas para la gráfica agregándole el carácter entre comillas simples después de asignar el X y Y.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
10.1.1.
Etiquetas para las graficas
MATLAB permite colocar títulos a cada uno de los ejes y también un título general a las gráficas, esto se realiza por medio de las funciones label y title por medio de las siguientes estructuras. Xlabel (‘título eje X’) Ylabel (‘título eje Y’) Title(‘título de la gráfica’)
- 19 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
10.1.2.
GRAFICAR DOS O MÁS GRAFICAS EN UN MISMO PLOT
Matlab permite graficar 2 o más funciones un mismo plot por medio de la función subplot que se realiza por medio de la siguiente estructura: Subplot (filas, columnas, posición) Plot(x,y) Grafica con una fila que contiene 3 columnas y 3 posiciones
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Grafica con dos filas con contiene 2 columnas y 3 posiciones
10.2. Graficos 3D - 21 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
El formato es el mismo que en la graficas de 2D simplemente se cambia el plot a plot3 de tal manera que se puedan registrar los datos en las tres dimensiones.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
11. INTERFAZ – GUIDE Para iniciar con el diseño de una interfaz en guide, se procede a escribir en el command window la palabra guide
Automáticamente se abrirá un recuadro con opciones de templates para construir una interfaz guide, se hace la selección requerida y se clic en el botón OK
Después de seleccionado el template requerido se abrirá el recuadro en donde se puede empezar a editar y diseñar el guide o la interfaz.
- 23 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Se puede observar en la parte izquierda las opciones para insertar ejes, botones, listas, etc. También es posible mirar y editar las propiedades de cada una de los objetos insertados, dando doble clic cuando ya se encuentren sobre el template.
Después de tener el diseño completo se procede a dar clic al botón verde en la parte superior central. (►)
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Y se abrirá la ventana final creada y lista para ser usada.
12. SIMULINK Para dar inicio a Simulink Library se da inicio dando clic en el botón Simulink Library ubicado en la parte superior de matlb, en el menú HOME
Automaticamente se abrirá una ventana llamada Simulink Library Browser que permitirá escoger la librería de Simulink a usar y sus respectivos componentes
- 25 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Después de seleccionada la librería se procede a usar cada uno de los componentes requeridos.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Para armar un modelo final se siguen seleccionando los componentes requeridos hasta obtener un modelo final que se pueda simular.
Cada una de las propiedades de los componentes puede ser editada dando doble clic sobre el componente para que aparezca el siguiente recuadro.
13. IMAGEN Y PALETA DE COLORES Para adjuntar una imagen, se usa el comando img=imread seguido del nombre con que fue guardada la imagen en la carpeta (teniendo en cuenta el lenguaje de Matlab), después procedemos a llamarla al workspace, así: img=imread('theboys.jpg'); imshow(img)
- 27 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Después, si se desea, podemos cambiar los colores a la imagen, usando el comando:
Con el cual se puede seleccionar innumerables opciones de representación del color de la imagen. Si se selecciona alguno, se cambia la manera de llamar a la imagen para que se obtenga el resultado correcto, así: img=imread('theboys.jpg'); %imshow(img) grises=rgb2gray(img); imshow(grises) Con una respuesta así:
14. SONIDO Si se desea reproducir un archivo de sonido, debe ser guardado como archivo (m4a) en la carpeta correspondiente a MATLAB. A continuación con la ayuda del comando audioread se llama, seguido de la creación del vector del rango de secuencia, creado con ayuda del comando linspace, además de graficarse para probar su funcionamiento con subplot, así. c=audioread('AudioMatlab.m4a.m4a'); t=linspace(0,100,454656); d=c.*heaviside(c); subplot(2,1,1);plot(t,c); subplot(2,1,2);plot(t,d)
GuĂa GrĂĄfica de Aprendizaje para la IntroducciĂłn al Lenguaje BĂĄsico de MATLAB
sound(d,45000)
15. MÉTODOS NUMÉRICOS 15.1. DERIVADAS 
Utilice el comando đ?‘‘đ?‘–đ?‘“đ?‘“(đ?‘“(đ?‘Ľ), đ?‘›) para calcular las dos primeras derivadas de las funciĂłn đ?‘“(đ?‘Ľ) = cosâ Ą(4đ?‘Ľ 2 + 5) PASOS 1) Usar el comando syms para crear una variable de tipo simbolico. 2) Definir la funciĂłn f(x). 3) Usar el comando diff(f(x),n), donde n representa el nĂşmero de derivadas que se buscan. CODIGO
RESULTADO
15.2. INTEGRALES - 29 -
GuĂa GrĂĄfica de Aprendizaje para la IntroducciĂłn al Lenguaje BĂĄsico de MATLAB

Utilice los comandos đ?‘–đ?‘›đ?‘Ą(đ?‘“(đ?‘Ľ)) y đ?‘’đ?‘Łđ?‘Žđ?‘™(đ?‘–đ?‘›đ?‘Ą(đ?‘“(đ?‘Ľ), đ?‘Ľ, đ?‘Ž, đ?‘?)) para resolver las integrales. a.
âˆŤ cosâ Ą(đ?‘Ľ)đ?‘‘đ?‘Ľ
PASOS 1) Usar el comando syms para crear una variable simbolica. 2) Crear una funciĂłn, f(x). 3) Usar el comando int(‘f(x)’) para realizar la integral simbolica de la funciĂłn. CODIGO
RESULTADO
b.
2 đ?‘’ √đ?‘Ľ âˆŤ1 đ?‘Ľ đ?‘‘đ?‘Ľ √
- El comando eval(int(f(x),x,a,b)) nos permite evaluar la integral de la funcion en el intervalo [a,b] CODIGO
RESULTADO
15.3. TEOREMAS
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
Según sea el teorema que se quiera tratar, se debe tener conocimiento de este para aplicar las herramientas matemáticas (MATLAB) y así hallar la solución de los problemas. 15.3.1. 1.
Teorema del valor medio
Se define un rango y los pasos en que se quiere generar la función: a=[0:0.1:2];
2.
Se estima la función 1 y 2 en líneas diferentes: c=(4.*a.^2)-(5.*a)+(1); b=(3.*a)-(3);
3.
Seguido a esto, se grafica el rango, en función a la ecuación 1 y 2: plot (a,b,a,c) 7
4.
Por último se define con el siguiente toolbox el rango del valor medio y se gráfica también:
6 5 4 3
line([0,2],[1,7],'color','m')
2
Gráficamente se observa así:
1 0
a=[0:0.1:2]; c=(4.*a.^2)-(5.*a)+(1); b=(3.*a)-(3); plot (a,b,a,c) line([0,2],[1,7],'color','m')
-1 -2 -3
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
15.4. METODO DE BISECCIÓN El método de bisección es un algoritmo de búsqueda de raíces entre dos intervalos que trabaja dividiendo el intervalo a la mitad y seleccionando el subintervalo que tiene la raíz. syms x; format long f=input('Ingresa la f(x): '); xi=input('Ingresa el valor de xi: '); xd=input('Ingresa el valor de xd: '); eps=input('Ingresa el error: '); fprintf('\n n a_n b_n p_n f(p_n)') fprintf('\n \n') - 31 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
fi=subs(f,xi); fd=subs(f,xd); fm=1; i=0; while abs(fm)>eps i=i+1; fprintf('%2d',i); xm=(xi+xd)/2; fm=subs(f,xm); disp([xi, xd, xm, subs(fm)]) if fd*fm>0; xd=xm; fd=fm; else xi=xm; fi=fm; end if i> 400 disp('No se alcanzo la convergencia') break end end fprintf('\n La raiz es:') disp(xm); 1. Copiar el codigo anterior en un script y ejecutarlo. 2. En el command window escribir la ecuacion. 3. Se ingresan los intervalos siendo x1 el intervalo menor y xd el intervalo mayor. 4. Ingresar el error que les da el problema y si no les dan el error ingresan el valor 0.001.
5. Despues dan enter y odran observar las interaciones que realiza. 6. Al finalizar les dara el valor de la raiz.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
15.5. FACTORIZACIÓN LU PASOS 1) Guardar la función [L,U]=slu(A) mostrada en la imagen
2) Definir la matriz a solucionar (A), junto con su vector solución (b).
- 33 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
2) Ejecutar la función escribiendo [L,U]=slu(A) en el Command Window
3) Por ultimo crear las variables solución z y x 4) z será definida como la inversa de L (inv (L)) multiplicado por el vector b
5) x será definida como la inversa de U (inv(U)) multiplicado por el vector z
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
RESULTADO El vector x será la solución final del sistema de ecuaciones.
15.6. TEOREMA DE NEWTON Y TEOREMA DE CRAMER 15.6.1.
Teorema de Newton
Matlab como herramienta matemática, estima gráficamente, una aproximación aún más exacta que la que el teorema ofrece. Así mismo, el Teorema de Newton busca aproximar raíces a una ecuación igualada a cero que contiene una raíz (p) en un intervalo abierto. Primero se define la variable que se introduce como simbólica y en formato de tamaño largo. syms x; format long En las siguientes líneas se introduce el valor de (xi) y el rango de error para operar el Teorem,a que entre línea y línea, expresa las operaciones de (xi) multiplicada por la función sobre la derivada de la misma y así hallar la solución correcta aproximada. f=input('Ingresa la f(x): '); xi=input('Ingresa el valor de xi: '); eps=input('Ingrese el error: '); fm=1; i=0; while abs(fm)>eps i=i+1; %fprintf('%2d',i); fxi=subs(f,xi); df=diff(f); - 35 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
dfx=subs(df,xi); x=xi-(fxi/dfx); fm=(x-xi)/(x)*100; %disp([xi, subs(f,xi), abs(fm)]) xi=x; if i>400 break end end fprintf('\n La raíz es:\n') disp(x) Ejemplo: Hallar las soluciones de la ecuación x3+2x2+7x-20 conociendo xi= 0 10 Rango de error=0.01 5
La raíz es= 1.580138778562499
X: 1.581 Y: 0.01793
0
-5
-10
-15
-20
15.6.2.
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Teorema de Cramer
Es usado para hallar las soluciones, si existen, en un sistema con ecuaciones=m e incógnitas=n. El código que desarrolla este sistema de ecuaciones es el siguiente: %Método de Cramer
fprintf('Método de Cramer\n'); n=input('Ingrese el número de variables: '); A=input('Ingrese la matriz de coeficientes: '); b=input('Ingrese el vector respuesta: '); x=zeros(n,1); for i=1:n D=A; D(:,i)=b; x(i)=det(D)/det(A); end fprintf('El resultado es:'); fprintf('%10.4f',x);
2
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
El cual expresa en cada comando la expresión de solicitar la información y luego dentro del for, realizar las operaciones.
15.7. MÉTODO DE JACOBI Y GAUSS SEIDEL 15.7.1.
Metodo de Jacobi
1. Ejecutar el siguiente código % Método de Jacobi fprintf('Método de Jacobi\n'); xd=input('Ingrese el número de variables: '); A=input('Ingrese la matriz: '); b=input('Ingresa el vector respuesta: '); x0=input('Ingresa el vector inicial: '); %x0=[4/5 4/5 4/5]; %x0=zeros(1,xd); int=0; Norma=1; while Norma > 0.0001 int=int+1; fprintf('%2d',int); for i=1:xd suma=0; for j=1:xd if i~=j suma=suma+A(i,j)*x0(j); end end x(i)=(b(i)-suma)/A(i,i); fprintf('%10.4f',x(i)) end Norma=norm(x0-x); fprintf('%10.4f\n',Norma) x0=x; if int> 100 - 37 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
disp('No se alcanzó la convergencia') break end end fprintf('El resultado es:'); fprintf('%10.6f',x); fprintf('\n Número de iteraciones:'); fprintf('%10.6f',int); fprintf('\n Error de:'); fprintf('%10.4f',Norma) 2. En el command window ingresar el número de variables 3. Ingresar la matriz 4. Ingresar el vector respuesta 5. Ingresar el vector inicial
6. Después observara las interacciones que realiza MATLAB por medio del código 7. Al finalizar visualizara las respuestas de las variables que ingreso, el número de interacciones y el error de la solución
15.7.2.
Gauss Seidel
El método de Gauss seidel cumple los mismos pasos que el de jacobi con la diferencia de que el vector respuesta se ingresa como una fila y no como una columna.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
%Método de Gauss-Seidel fprintf('Método de Gauss-Seidel\n'); xd=input('Ingrese el número de variables: '); A=input('Ingrese la matriz: '); b=input('Ingrese el vector respuesta como una fila: '); x0=input('Ingresa el vector inicial: '); %x0=[0 0 0 0]; %x0=zeros(1,xd); x=x0; int=0; Norma=1; while Norma > 0.000001 int=int+1; fprintf('%2d',int); for i=1:xd suma=0; for j=1:xd if i~=j suma=suma+A(i,j)*x(j); end end x(i)=(b(i)-suma)/A(i,i); fprintf('%10.4f',x(i)); end Norma=norm(x0-x); fprintf('%10.4f\n',Norma) x0=x; if int> 100 disp('No se alcanzó la convergencia') break end end fprintf('El resultado es:'); fprintf('%10.4f',x); fprintf('\n Número de iteraciones:'); fprintf('%2d',int); fprintf('\n Error de:'); fprintf('%10.4f',Norma);
- 39 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
15.8. INTERPOLACIÓN DE LAGRANGE PASOS 1) Guardar la función [C,L]=lagran(X,Y) mostrada en la imagen
2) Definir los vectores X y Y, correspondientes a los valores de las variables independiente y dependiente respectivamente.
3) Ejecutar la función escribiendo [C,L]=lagran(X,Y) en el Command Window
GuĂa GrĂĄfica de Aprendizaje para la IntroducciĂłn al Lenguaje BĂĄsico de MATLAB
4) Armar el polinomio resultante con los valores de C đ?‘ƒ(đ?‘Ľ) = 0đ?‘Ľ 4 + 0đ?‘Ľ 3 + 0đ?‘Ľ 2 + đ?‘Ľ + 1 5) Como los 3 primeros coeficientes son 0, entonces el polinomio resultante termina siendo: đ?‘ƒ(đ?‘Ľ) = đ?‘Ľ + 1 NOTA: Al introducir n valores en los vectores X y Y, el polinomio resultante serĂĄ de orden n-1
15.9. POLINOMIOS DE INTERPOLACIĂ“N DE NEWTON La interpolaciĂłn de Newton para los polinomios, consiste bĂĄsicamente en hallar parejas de puntos y buscar una f(x) que pase por algunas de esas parejas. AsĂ que el cĂłdigo ya creado, le pide elemento a elemento al usuario los datos para desarrollar el polinomio y asĂ mismo la grĂĄfica representativa de tal: % Ingrese los vectores fila x=input('Ingrese el vector fila x: '); y=input('Ingrese el vector fila y: '); xa=x;ya=y; % Formacion de las diferencias divididas d=zeros(length(y)); d(:,1)=y'; for k=2:length(x) for j=1:length(x)+1-k - 41 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
d(j,k)=(d(j+1,k-1)-d(j,k-1))/(x(j+k-1)-x(j)); end end % Formacion del polinomio for w=1:length(x) ds=num2str(abs(d(1,w))); if w>1 if x(w-1)<0 sg1='+'; else sg1='-'; end end if d(1,w)<0 sg2='-'; else sg2='+'; end if w==1 acum=num2str(d(1,1)); elseif w==2 polact=['(x' sg1 num2str(abs(x(w-1))) ')' ]; actual=[ds '*' polact]; acum=[acum sg2 actual]; else polact=[polact '.*' '(x' sg1 num2str(abs(x(w-1))) ')' ]; actual=[ds '*' polact]; acum=[acum sg2 actual]; end end % Presentacion de resultados %fprintf(' n Valores de X y Y n '); %disp(xa); %disp(ya); fprintf('Polinomio interpolación Newton: %s n') disp(acum) %x=input('\n X interp = '); if x>max(xa)|x<min(xa) fprintf('t Punto fuera de rango. El resultado puede ser equivocado n'); end xinterp=x;
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
yinterp=eval(acum); %fprintf(' Y(%g) = %g n',x,yinterp); % Grafica de los puntos %fprintf('\n Pulse cualquier tecla para ver la grafica de los puntos n'); %pause xg=linspace(min(xa),max(xa)); x=xg;yg=eval(acum); plot(xg,yg,xa,ya,'.r',xinterp,yinterp,'or'); grid
EJEMPLO Determinar el polinomio interpolante de 3er grado de Newton. Basándose en los puntos (-3,9), (5,2), (7,-1) y (8,0). Se introduce en forma de vector las (x), o sea= (-3,5,7,8) y así mimo los elementos en y(x) o sea: (9,2,-1,0)
También proporciona la gráfica:
- 43 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
15.10. SPLINES LINEAL Y SPLINES CÚBICOS En el sub-campo matemático del análisis numérico, un spline es una curva definida en porciones mediante polinomios la cual nos permite evaluar numéricamente el valor de una integral, la cual no podría calcularse por los métodos analíticos conocidos 15.10.1. Spline lineal 1. Ejecutamos el siguiente código y lo guardamos con el nombre: spline function [m,b]=spline(X) %X es una matriz de 2x1 con primera fila valores de x %y segunda fila valores de y. %Arroja dos vectores: m vector de pendientes y b vector de términos %independientes. n=length(X(1,:)); for i=1:n-1; m(i)=(X(2,i+1)-X(2,i))/(X(1,i+1)-X(1,i)); b(i)=-m(i)*(X(1,i))+X(2,i); x=X(1,i):X(1,i+1); y=m(i)*x+b(i); hold on; plot(x,y,'b'); end for i=1:n; hold on; plot (X(1,i),X(2,i),'*','MarkerEdgeColor','r','LineWidth',1); title('Interpolación por "splines" de orden 1.'); end
2. Al ejecutar el código les saldrá un error en el command window, esto es debido a que no le hemos asignado un valor a X. 3. En el command window ingresamos en valor de la X en forma de matriz es decir en la primera fila los valores de X y en la segunda fila los valores de Y.
4. Después de haber ingresado la matriz X copiamos y pegamos la siguiente función: [m,b]=spline(X) 5. Como resultado tendremos la gráfica de la función y los valores de m y b para formar el polinomio de la forma mx+b.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
15.10.2.
Splines cúbicos
1. Ejecutamos el siguiente código y lo guardamos con el nombre: spline3 function [a,b,c,d]=spline3(X) %Pasos básicos del algoritmo obtenidos del libro Análisis Numérico de %Richard Burden, 2a. Edición, Grupo Editorial Iberoamérica. a+bx+cx^2+dx^3 n=length(X(1,:)); for i=1:n; a(i)=X(2,i); end for i=1:n-1; h(i)=X(1,i+1)-X(1,i); end for i=2:n-1; alfa(i)=3/h(i)*(a(i+1)-a(i))-3/h(i-1)*(a(i)-a(i-1)); end l(1)=1; mu(1)=0; z(1)=0; for i=2:n-1; l(i)=2*(X(1,i+1)-X(1,i-1))-h(i-1)*mu(i-1); mu(i)=h(i)/l(i); z(i)=(alfa(i)-h(i-1)*z(i-1))/l(i); end l(n)=1; z(n)=0; c(n)=0; for i=n-1:-1:1; c(i)=z(i)-mu(i)*c(i+1); b(i)=(a(i+1)-a(i))/h(i)-h(i)*(c(i+1)+2*c(i))/3; d(i)=(c(i+1)-c(i))/(3*h(i)); end for i=1:n-1; x=X(1,i):0.1:X(1,i+1); y=a(i)+b(i)*(x-X(1,i))+c(i)*(x-X(1,i)).^2+d(i)*(x-X(1,i)).^3; hold on; - 45 -
GuĂa GrĂĄfica de Aprendizaje para la IntroducciĂłn al Lenguaje BĂĄsico de MATLAB
plot(x,y,'b'); end for i=1:n; hold on; plot (X(1,i),X(2,i),'*','MarkerEdgeColor','r','LineWidth',1); title('InterpolaciĂłn por "splines" de orden 3.'); end 2. Se cumplirĂĄn los mismos pasos 2 y 3 del Spline lineal. 3. DespuĂŠs de haber ingresado la matriz X copiamos y pegamos la siguiente funciĂłn: [m,b]=spline3(X) 4. Como resultado se tendrĂĄn los valores a b c d para formar el polinomio de la forma:
15.11. SIMPSON SIMPLE Halla el ĂĄrea de la regiĂłn comprendida entre las curvas determinadas por đ?&#x2018;&#x201C;(đ?&#x2018;Ľ) = 4â&#x20AC;&#x201C; đ?&#x2018;Ľ 2 y â Ąđ?&#x2018;&#x201D;(đ?&#x2018;Ľ) = 3đ?&#x2018;Ľ 2 Use la regla de Simpson simple. PASOS: 1) Verificar los puntos de corte de ambas funciones, para esto deben ser graficadas en un mismo cuadro.
2) Se pudo encontrar que la funciĂłn 4 â&#x2C6;&#x2019; đ?&#x2018;Ľ 3 esta por encima de la funciĂłn 3đ?&#x2018;Ľ 2 en el intervalo [-1,1], si se requiere se puede verificar de manera manual usando la calculadora.
GuĂa GrĂĄfica de Aprendizaje para la IntroducciĂłn al Lenguaje BĂĄsico de MATLAB
3) Se hace la resta entre las funciones (la funciĂłn superior resta a la funciĂłn inferior) para aproximar con la regla de Simpson simple una Ăşnica funciĂłn. 4) La funciĂłn resultante es de 4 â&#x2C6;&#x2019; 4đ?&#x2018;Ľ 2 5) Se ejecuta el siguiente cĂłdigo que corresponde a la regla de Simpson simple
6) Se ingresan los datos que la ejecuciĂłn va solicitando
7) El valor aproximado de la integral es 5.33333333 que corresponde al resultado final.
- 47 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
16. Bibliografía [1] MATLAB. (2014) Mathworks. [Online]. http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf