Upload
edwin-santamaria-sanchez
View
247
Download
2
Embed Size (px)
DESCRIPTION
Guía Gráfica de Aprendizaje Para La Introducción al Lenguaje Básico de MATLAB. Link del video: https://www.youtube.com/watch?v=cvW1Ha34hcs&feature=youtu.be
Citation preview
Andrés Leonardo Pinzón Parada
Bárbara Milena Puello Villamizar
Edwin Santamaría Sánchez
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
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
- 1 -
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 -
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. SIMPSON SIMPLE ..................................................................................................................... - 46 -
16. BIBLIOGRAFÍA .......................................................................................................................... - 48 -
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
- 3 -
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
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
- 5 -
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.
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
COMANDO RESULTADO
clear all Elimina todas las variables de la memoria
clear x y Elimina sólo las variables x, y de la memoria
who Muestra una lista de las variables actualmente en la memoria
whos Muestra una lista de variables y su tamaño, junto con información acerca de sus bytes y clase
clc 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 DESCRIPCIÓN
ans Variable que tiene su valor en la última expresión
pi Representa el valor de π
inf Usado para infinito
i Define la raíz de un numero negativo
j 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
- 7 -
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
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 -
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. Resta
Variable= [lista de números]
Variable – escalar
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.1.7.1.3. Multiplicación
Variable= [lista de números]
Variable * escalar
9.1.7.1.4. División
Variable= [lista de números]
Variable / escalar
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
- 11 -
anteponer un (.) antes del signo.
9.1.7.2.1. Suma
Vector (1) + vector (2)
9.1.7.2.2. Resta
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)
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
- 13 -
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
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
- 15 -
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. Suma
Matriz (1) + matriz (2) =nueva matriz
9.2.6.2.2. Resta
Matriz (1) - matriz (2) =nueva matriz
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
9.2.6.2.3. Multiplicación
Matriz (1) * matriz (2) =nueva matriz
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
- 17 -
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
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
- 19 -
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’)
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
- 21 -
Grafica con dos filas con contiene 2 columnas y 3 posiciones
10.2. Graficos 3D
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
- 23 -
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.
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
- 25 -
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
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
- 27 -
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)
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
- 29 -
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
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
- 31 -
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. Teorema del valor medio
1. 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)
4. Por último se define con el siguiente toolbox el rango del valor medio y se gráfica también: line([0,2],[1,7],'color','m')
Gráficamente se observa así:
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')
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')
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-3
-2
-1
0
1
2
3
4
5
6
7
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
- 33 -
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).
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
- 35 -
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);
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 Rango de error=0.01
La raíz es= 1.580138778562499
15.6.2. 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);
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-20
-15
-10
-5
0
5
10
X: 1.581
Y: 0.01793
Guía Gráfica de Aprendizaje para la Introducción al Lenguaje Básico de MATLAB
- 37 -
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
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
- 39 -
%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);
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
- 41 -
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
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
- 43 -
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:
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
- 45 -
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;
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 𝑓(𝑥) =
4– 𝑥2 y 𝑔(𝑥) = 3𝑥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 − 𝑥3 esta por encima de la función 3𝑥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
- 47 -
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 − 4𝑥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.
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