manual métodos numéricos

49
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

Upload: edwin-santamaria-sanchez

Post on 21-Jul-2016

247 views

Category:

Documents


2 download

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

TRANSCRIPT

Page 1: Manual Métodos Numéricos

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

Page 2: Manual Métodos Numéricos

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 -

Page 3: Manual Métodos Numéricos

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 -

Page 4: Manual Métodos Numéricos

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

Page 5: Manual Métodos Numéricos

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.

Page 6: Manual Métodos Numéricos

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.

Page 7: Manual Métodos Numéricos

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.

Page 8: Manual Métodos Numéricos

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

Page 9: Manual Métodos Numéricos

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)

Page 10: Manual Métodos Numéricos

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

Page 11: Manual Métodos Numéricos

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

Page 12: Manual Métodos Numéricos

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)

Page 13: Manual Métodos Numéricos

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’

Page 14: Manual Métodos Numéricos

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

Page 15: Manual Métodos Numéricos

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)]

Page 16: Manual Métodos Numéricos

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

Page 17: Manual Métodos Numéricos

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

Page 18: Manual Métodos Numéricos

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

Page 19: Manual Métodos Numéricos

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.

Page 20: Manual Métodos Numéricos

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’)

Page 21: Manual Métodos Numéricos

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

Page 22: Manual Métodos Numéricos

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

Page 23: Manual Métodos Numéricos

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.

Page 24: Manual Métodos Numéricos

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.

Page 25: Manual Métodos Numéricos

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. (►)

Page 26: Manual Métodos Numéricos

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

Page 27: Manual Métodos Numéricos

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.

Page 28: Manual Métodos Numéricos

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)

Page 29: Manual Métodos Numéricos

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)

Page 30: Manual Métodos Numéricos

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

Page 31: Manual Métodos Numéricos

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

Page 32: Manual Métodos Numéricos

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

Page 33: Manual Métodos Numéricos

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.

Page 34: Manual Métodos Numéricos

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).

Page 35: Manual Métodos Numéricos

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

Page 36: Manual Métodos Numéricos

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);

Page 37: Manual Métodos Numéricos

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

Page 38: Manual Métodos Numéricos

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

Page 39: Manual Métodos Numéricos

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.

Page 40: Manual Métodos Numéricos

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);

Page 41: Manual Métodos Numéricos

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

Page 42: Manual Métodos Numéricos

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

Page 43: Manual Métodos Numéricos

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;

Page 44: Manual Métodos Numéricos

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:

Page 45: Manual Métodos Numéricos

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.

Page 46: Manual Métodos Numéricos

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;

Page 47: Manual Métodos Numéricos

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.

Page 48: Manual Métodos Numéricos

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.

Page 49: Manual Métodos Numéricos

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