SlideShare una empresa de Scribd logo
1
MANUAL DE USO EN
MATLAB
y sus aplicaciones en métodos numéricos
Güidman Melquisedec Ordoñez Alonzo
2
Introducción................................................................................................................................................................3
Entorno de trabajo de MATLAB................................................................................................................................4
La ventana de comandos en MATLAB..................................................................................................................6
Ayuda en MATLAB...............................................................................................................................................8
Operaciones con matrices........................................................................................................................................ 10
Suma de matrices................................................................................................................................................. 11
Resta de matrices................................................................................................................................................. 12
Multiplicación de matrices .................................................................................................................................. 13
División de matrices............................................................................................................................................ 15
Potencia de matrices............................................................................................................................................ 16
Gráficas en dos y tres dimensiones.......................................................................................................................... 17
Graficas en 2 dimensiones................................................................................................................................... 17
Graficas en 3 dimensiones................................................................................................................................... 20
Programación en MATLAB.................................................................................................................................... 26
1. Entrada y salida de datos................................................................................................................................. 27
2. Operadores....................................................................................................................................................... 29
3. Operadores Lógicos......................................................................................................................................... 30
4. Sentencias de control....................................................................................................................................... 32
Sentencia for:................................................................................................................................................ 32
Sentencia if: .................................................................................................................................................. 33
Sentencia while:........................................................................................................................................... 34
Uso de switch, case, otherwise.................................................................................................................. 35
Métodos numéricos (Matlab y Excel) ..................................................................................................................... 36
Newton Raphson ................................................................................................................................................. 37
Newton-Raphson en MATLAB....................................................................................................................... 39
Newton-Raphson en Excel .............................................................................................................................. 40
CONTENIDO
3
Newton Raphson Modificado.............................................................................................................................. 41
Newton-Raphson Modificado en MATLAB................................................................................................... 46
|
MATLAB es un entorno de computación técnica que posibilita la ejecución del cálculo
numérico y simbólico de forma rápida y precisa, acompañado de características gráficas y
de visualización avanzadas aptas para el trabajo científico y la ingeniería. MATLAB es un
entorno interactivo para el análisis y el modelado que implementa más de 500 funciones
para el trabajo en distintos campos de la ciencia.
Por otra parte, MATLAB presenta un lenguaje de programación de muy alto nivel
basado en vectores, arrays y matrices.
Además, el entorno básico de MATLAB se complementa con una amplia colección de
toolboxes que contienen funciones específicas para determinadas aplicaciones en diferentes
ramas de las ciencias y la ingeniería.
En este caso utilizaremos MATLAB, en la resolución de ejercicios matemáticos como teoría
y práctica implementando formulas procedimientos generando códigos en algunos
problemas mostrar graficas dos y tres dimensiones.
MALTLAB también permite una ampliación extensible, permitiendo la relación con Excel,
C, Fortran y otras aplicación muy utilizadas e importantes.
Introducción
4
Entorno de trabajo de MATLAB
Figura 1.0
La pantalla de entrada de MATLAB (Figura 1.0) constituye el marco de trabajo general del
programa. Los elementos más importantes son de esta pantalla de inicio de MATLAB (Figura 1.2)
son los siguiente:
• Command Window (ventana de comandos): Ejecuta las funciones MATLAB.
• Command History (historial de comandos): Presenta una historia de todas las
• funciones introducidas en la ventana de comandos y permite copiarlas y ejecutarlas.
• Launch Pad: Ejecuta herramientas y documentación de acceso para todos los productos de
MathWorks instalados actualmente en el computador.
• Current Directory (directorio actual): Muestra ficheros MATLAB y ejecuta operaciones de
ficheros tales como abrir y buscar contenido.
5
• Help (ayuda): Muestra y busca documentación para la familia completa de productos
MATLAB.
• Workspace (espacio de trabajo): Muestra y realiza cambios en el contenido del espacio de
trabajo.
• Array Editor: Muestra contenido de arrays en formato de tabla y edita sus valores.
• Editor/Debugger: Crea, edita y comprueba M-ficheros (ficheros que contienen sintaxis de
funciones MATLAB).
.
Figura 1.2
Ver documentación y
demos de productos
Ayuda
Funciones de MATLAB Ver o cambiar el
directorio de MATLAB
Otras opciones
útiles
Arrastrar con el ratón la barra del
separador para cambiar el tamaño de
las ventanas
Espacio de trabajo
Ver o usar funciones
anteriores (historia)
6
La ventana de comandos en MATLAB
La ventana de comandos (Figura 1.3) es el camino principal para comunicarse con MATLAB. Y
se utiliza para ejecutar funciones y todo tipo de operaciones. Las entradas a ejecutar se escriben
a continuación del prompt>> y, una vez completadas se pulsa Enter. En la (figura 1.4) se define
una matriz y, al pulsar Enter, se obtiene como salida la propia matriz.
Figura 1.3 Figura 1.4
MATLAB es sensible al uso de mayúsculas y minúsculas, pero permite situar o no espacios en
blanco antes y después del signo menos, de los dos puntos y de los paréntesis. MATLAB también
permite escribir varias entradas sobre la misma línea, pero separadas por punto y coma (Figura
1.5 ). Las entradas se ejecutan todas secuencialmente según están colocadas en la línea, pero sólo
se ofrece la salida de la última, siempre y cuando no finalice también en punto y coma. Cualquier
entrada que tenga punto y coma detrás se ejecuta al pulsar Enter, pero no se ve su salida.
Las entradas largas que no quepan en una línea pueden continuarse en la línea siguiente
presionando Shift+Enter al final de la línea (Figura 1.6).
7
Figura 1.5
Figura 1.6
La opción Clear Command Window clic derecho en la ventana de comandos (Figura 1.7) permite
limpiar la ventana de comandos. El comando clc también realiza esta función (Figura 1.8). Del
mismo modo, las opciones clic derecho eliminar Clear Workspace permite eliminar el espacio de
trabajo.
Figura 1.7
Figura 1.8
8
Ayuda en MATLAB
MATLAB dispone de un sistema de ayuda en línea bastante eficiente. La primera de las
herramientas a tener en cuenta es el navegador de la ayuda (Figura 1.9), al que se accede mediante
el icono o tecleando helpbrowser en la ventana de comandos (en el menú View debe estar
señalizado la opción help Browser ). En el panel de la izquierda del navegador de la ayuda se
selecciona el tema, y en el panel de la derecha se presenta la ayuda relativa al tema seleccionado,
siendo posible el uso de hipervínculos para navegar por su contenido. La parte izquierda del
panel de navegación de la ayuda presenta en su zona superior una barra con las opciones Content
(ayuda por contenido), Index (ayuda por índice alfabético), Search (buscar ayuda por tema) y
Favorites (temas de ayuda favoritos).
Figura 1.9
9
Guardar y cargar variables del área de trabajo
El área de trabajo no se mantiene entre sesiones de MATLAB®. Cuando se sale de MATLAB, se
despeja el área de trabajo. Sin embargo, puede guardar cualquier variable o todas las variables
del área de trabajo actual en un archivo MAT (.mat). Después, puede reutilizar las variables del
área de trabajo más tarde durante la sesión de MATLAB actual o durante otra sesión cargando el
archivo MAT guardado.
Guardar variables del área de trabajo
Hay varias formas de guardar variables del área de trabajo de forma interactiva:
• Para guardar todas las variables del área de trabajo en un archivo MAT, en la pestaña
Home, en la sección Variable, haga clic en Save Workspace. (Figura 2.0)
• Para guardar un subconjunto de variables del área de trabajo en un archivo MAT,
seleccione las variables en el explorador del área de trabajo, haga clic con el botón
secundario y, después, seleccione Save As. También puede arrastrar las variables
seleccionadas desde el explorador del área de trabajo al explorador Current Folder.
• Para guardar las variables en un script de MATLAB, haga clic en el botón Save Workspace
o seleccione la opción Save As y, en la ventana Save As, establezca la opción Save as type
en MATLAB Script. Las variables que no se pueden guardar en un script se guardan en un
archivo MAT con el mismo nombre que el del script.
Figura 2.0
Save Workspace
10
Más información del entorno de Matlab, ver los vídeos:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Operaciones con matrices
Tema 1
Las operaciones con matrices son la suma, la resta, la división y la multiplicación. Este ejemplo
muestra funciones y técnicas básicas para trabajar con matrices en el lenguaje de MATLAB.
En primer lugar, creemos un vector simple con nueve elementos llamado a. (Figura 2.1)
Ahora, añadamos 2 a cada elemento de nuestro vector, a, y guardemos el resultado en un nuevo
vector. (Figura 2.2)
Figura 2.1
Figura 2.2
11
Suma de matrices
La suma de matrices (de dos o más matrices) solamente existe cuando el orden m x n de
estas es el mismo. Y del mismo orden será la matriz suma.
Se suman los elementos que ocupan la misma posición.
Sean dos matrices A y B de la misma dimensión m x n.
La matriz suma S, también será de dimensión m x n:
Ejemplo: Sean dos matrices de orden 3x2. Su suma será: (Figura 2.4)
𝐴 = (𝑎𝑖,𝑗 )
𝐵 = (𝑏𝑖,𝑗 )
𝑆 = (𝑆𝑖,𝑗 )
𝑆 = 𝐴 + 𝐵
𝑆𝑖,𝑗 = 𝑎𝑖,𝑗+ 𝑏𝑖,𝑗
Un área en la que MATLAB destaca es en el cálculo de matrices.
Crear una matriz es igual de fácil que crear un vector, con puntos y comas (;) para separar las filas
de una matriz. (Figura 2.3)
Figura 2.3
12
Resta de matrices
Figura 2.4
La resta de dos matrices A y B solamente existe cuando el orden m x n de éstas es el mismo.
Y del mismo orden será la matriz resta R.
Se restan los elementos que ocupan la misma posición.
Sean dos matrices A y B de la misma dimensión m x n.
La matriz resta R, también de dimensión m x n, será:
Ejemplo: Sean dos matrices de orden 3x2. Su resta será: (Figura 2.5)
𝐴 = (𝑎𝑖,𝑗 )
𝐵 = (𝑏𝑖,𝑗 )
𝑅 = (𝑅𝑖,𝑗 )
𝑅 = 𝐴 − 𝐵
𝑟𝑖,𝑗 = 𝑎𝑖,𝑗− 𝑏𝑖,𝑗
13
Multiplicación de matrices
Figura 2.5
La multiplicación de matrices solamente es posible si el número de columnas de la primera
matriz coincide con el número filas de la segunda. Sus órdenes deben ser m x n y n x q.
La operativa para obtener todos los elementos 𝑝𝑖,𝑗
de la matriz producto P, consiste en tomar los
m elementos de la fila 𝑖 de la matriz 𝐴𝑚×𝑛
y los 𝑞 elementos de la columna j de la matriz 𝐵𝑛×𝑞
(las dos líneas tienen n elementos). Se suman los resultados de los n productos y el resultado es
el elemento 𝑝𝑖,𝑗.
El caso más simple es una matriz fila 𝐴𝑛×1 por una matriz columna 𝐵1×𝑛 (o viceversa). Como en
este ejemplo, una matriz 3×1 multiplicada por otra 1×2:
𝐴 = (
2
−5
3
) × (1 − 2) = (
2 ∗ 1 2 ∗ (−2)
−5 ∗ 1 −5 ∗ (−2)
3 ∗ 1 3 ∗ (−2)
)
= (
𝟐 −𝟒
−𝟓 𝟏𝟎
𝟑 −𝟔
)
Esta matriz producto tiene una
dimensión 3×2 (m x q).
14
En MATLAB: (Figura 2.6)
Figura 2.6
Multiplicación de matrices 2×2
Un producto de matrices cuadradas de dimensión 2×2. Por ejemplo: (Figura 2.7)
Figura 2.7
15
División de matrices
La división de matrices propiamente no existe. Para realizar la operación:
Debemos de operar así:
Es una multiplicación de la matriz del numerador por la matriz inversa del denominador.
Para que esta operación sea posible, se requiere que:
• La matriz B del denominador sea invertible.
• Para que se puedan multiplicar dos matrices, estas deben tener el mismo orden o
dimensión.
• Toda matriz invertible debe de ser una matriz cuadrada. A y B deben de ser cuadradas.
• En general, en la multiplicación de matrices no se cumple la propiedad conmutativa.
Ejemplo de división de dos matrices: (Figura 2.8)
𝐴
𝐵
𝐴
𝐵
= (𝐴) ∗ (𝐵)−1
Figura 2.8
16
Potencia de matrices
La potencia de una matriz solamente es posible en las matrices cuadradas.
La potencia de matrices 𝐴𝑛
consiste en concatenar ene veces multiplicaciones del factor matriz
A.
En MATLAB (Figura 2.9).
Figura 2.9
17
Gráficas en dos y tres dimensiones
Tema 2
Graficas en 2 dimensiones
Las tablas de datos muy grandes son difíciles de interpretar. Los ingenieros usan técnicas
de traficación para hacer que la información se entienda fácilmente.
Es claro que con una gráfica esta tarea se vuelve mucho más fácil, ahora aprenderemos a
graficar en Matlab, recordemos que lo más importante será la interpretación que le demos al
trabajo del ingeniero.
Para Graficar usamos la función plot(X,Y), para colocar títulos usamos title, para colocar
etiquetas en x y y usamos xlabel() y ylabel() respectivamente, para colocar rejilla usamos
el grid y para colocar una legenda usamos legend().
Para crear gráficas de líneas bidimensionales se utiliza la función plot. Ejemplo:
Representar la función seno(0) hasta 3pi.
Ejemplo: en MATLAB graficar la función: (Figura 3.0)
𝑥 = 0:
𝜋
100
: 3 ∗ 𝜋;
𝑦 = sin(𝑥);
𝑝𝑙𝑜𝑡(𝑥, 𝑦)
𝑝𝑙𝑜𝑡(𝑥, 𝑦,′
𝑟 − −′
)
Figura 3.0
18
Realizar en MATLAB la siguiente grafica (Figura 3.1).
𝑥 = 0: 0.1: 10; %𝐷𝑎𝑡𝑜𝑠 𝑒𝑛 𝑦 (𝑠𝑒𝑟á 𝑒𝑙 𝑡𝑖𝑒𝑚𝑝𝑜)
𝑦 = 2 ∗ sin(𝑥); %𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑆𝑒𝑛𝑜 𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒 𝑑𝑒𝑙 𝑡𝑖𝑒𝑚𝑝𝑜
𝑝𝑙𝑜𝑡(𝑥, 𝑦)%𝑃𝑎𝑟𝑎 𝑔𝑟𝑎𝑓𝑖𝑐𝑎𝑟 𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛
𝑡𝑖𝑡𝑙𝑒(′𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑆𝑒𝑛𝑜′)%𝐶𝑜𝑙𝑜𝑐𝑎 𝑡í𝑡𝑢𝑙𝑜 𝑎𝑙 𝑔𝑟𝑎𝑓𝑖𝑐𝑜
𝑥𝑙𝑎𝑏𝑒𝑙(′𝑡𝑖𝑒𝑚𝑝𝑜(𝑠)′)%𝐶𝑜𝑙𝑜𝑐𝑎 𝑡í𝑡𝑢𝑙𝑜 𝑎𝑙 𝑒𝑗𝑒 𝑥
𝑦𝑙𝑎𝑏𝑒𝑙(′𝑥 = 2 ∗ 𝑠𝑖𝑛(𝑦) ′)%𝐶𝑜𝑙𝑜𝑐𝑎𝑟 𝑡í𝑡𝑢𝑙𝑜 𝑎𝑙 𝑒𝑗𝑒 𝑦
𝑔𝑟𝑖𝑑 𝑜𝑛%𝐶𝑜𝑙𝑜𝑐𝑎 𝑐𝑢𝑎𝑑𝑟𝑖𝑐𝑢𝑙𝑎 𝑎𝑙 𝑔𝑟𝑎𝑓𝑖𝑐𝑜
Figura 3.1
19
Graficar varias funciones en MATLAB
𝑧 = cos(4 ∗ 𝑥) ; %𝐶𝑟𝑒𝑎 𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑐𝑜𝑠𝑒𝑛𝑜 𝑦 𝑙𝑜 𝑔𝑢𝑎𝑟𝑑𝑎 𝑒𝑛 𝑧
ℎ𝑜𝑙𝑑%𝑀𝑎𝑛𝑡𝑖𝑒𝑛𝑒 𝑙𝑎𝑠 𝑑𝑜𝑠 𝑓𝑢𝑛𝑐𝑖𝑜𝑛𝑒𝑠 𝑒𝑛 𝑙𝑎 𝑚𝑖𝑠𝑚𝑎 𝑓𝑖𝑔𝑢𝑟𝑎, 𝑚𝑢𝑦
ú𝑡𝑖𝑙 𝑐𝑢𝑎𝑛𝑑𝑜 𝑠𝑒 𝑟𝑒𝑞𝑢𝑖𝑒𝑟𝑒.
𝑝𝑙𝑜𝑡(𝑥, 𝑧)%𝐺𝑟𝑎𝑓𝑖𝑐𝑎 𝑒𝑙 𝑐𝑜𝑠𝑒𝑛𝑜.
𝑙𝑒𝑔𝑒𝑛𝑑(′𝑆𝑒𝑛𝑜′
,′
𝐶𝑜𝑠𝑒𝑛𝑜′); %𝐶𝑟𝑒𝑎 𝑢𝑛𝑎 𝑙𝑒𝑦𝑒𝑛𝑑𝑎.
Figura 3.2
2 graficas en una sola imagen
el comando subplot. Este comando me permite crear 2 graficas en una ventana en MATLAB o
también crear múltiples gráficos en MATLAB. (Figura 3.3)
• figure% abre una ventana vacía.
• subplot(2,1,1)%Divide una figura en 2 filas y 1 columna.
• plot(x,y)%Grafica seno en el eje 1
• subplot(2,1,2)%Divide una figura en 2 filas y 1 columna.
• plot(x,z)%grafica coseno en el eje 2
20
Figura 3.3
Graficas en 3 dimensiones
• etiqueta sobre el eje X de la gráfica actual: >> xlabel('texto’)
• etiqueta sobre el eje Y de la gráfica actual: >> ylabel('texto’)
• título en la cabecera de la gráfica actual: >> title('texto’)
• texto en el lugar especificado por las coordenadas: >> text(x,y, 'texto’)
• texto, el lugar lo indicamos después con el ratón: >> gtext('texto’)
• dibujar una rejilla: >> grid
• fija valores máximo y mínimo de los ejes: >> axis( [xmin xmax ymin ymax] )
• fija que la escala en los ejes sea igual: >> axis equal
• fija que la gráfica sea un cuadrado: >> axis square
• desactiva axis equal y axis square: >> axis normal
• abre una ventana de gráfico: >> hold on
• borra lo que hay en la ventana de gráfico: >> hold off
Todos estos comandos se las podemos dar desde la propia ventana de la gráfica una vez que
hemos abierto las opciones con el botón indicado anteriormente
21
Una ventana gráfica se puede dividir en m particiones horizontales y en n verticales, de
modo que cada subventana tiene sus propios ejes, y para hacer esto vamos a usar subplot
(m,n,p) donde p indica la subdivisión que se convierte en activa.
La pantalla se divide en 4, como se muestra en la gráfica. (Figura 3.4)
Para volver al modo por defecto basta escribir: subplot(1,1,1)
≫ 𝑥 = 1: 360; 𝑦1 = 𝑠𝑖𝑛𝑑(𝑥); 𝑦2 = 𝑐𝑜𝑠𝑑(𝑥); 𝑦3 = exp(𝑥) ; 𝑦4 = exp(−𝑥) ;
≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,1), 𝑝𝑙𝑜𝑡(𝑥, 𝑦1), 𝑡𝑖𝑡𝑙𝑒(′𝑠𝑒𝑛𝑜′)
≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,2), 𝑝𝑙𝑜𝑡(𝑥, 𝑦2), 𝑡𝑖𝑡𝑙𝑒(′𝑐𝑜𝑠𝑒𝑛𝑜′)
≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,3), 𝑝𝑙𝑜𝑡(𝑥, 𝑦3), 𝑡𝑖𝑡𝑙𝑒(′𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑐𝑖𝑎𝑙′)
≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,4), 𝑝𝑙𝑜𝑡(𝑥, 𝑦4), 𝑡𝑖𝑡𝑙𝑒(′ − 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑐𝑖𝑎𝑙′)
Figura 3.4
22
Gráficos de línea 3D
se trata de extender la orden de plot (2-D) a plot3 (3-D) donde el formato será igual pero los datos
estarán en tripletes: (Figura 3.5)
Superficie de línea en 3D
El orden [X,Y]=meshgrid(x,y) crea una matriz X cuyas filas son copias del vector x y una
matriz Y cuyas columnas son copias del vector y.
Para generar la gráfica de malla se usa la orden mesh(X,Y,Z), mesh acepta un argumento opcional
para controlar los colores. También puede tomar una matriz simple como argumento: mesh(Z).
Ejemplo: (Figura 3.6)
≫ 𝑥 = −720: 720; 𝑦 = 𝑠𝑖𝑛𝑑(𝑥); 𝑧 = 𝑐𝑜𝑠𝑑(𝑥);
≫ 𝑝𝑙𝑜𝑡3(𝑥, 𝑦, 𝑧)
Figura 3.5
≫ 𝑥 = −10: 0.5: 10; 𝑦 = −10: 0.5: 10;
≫ [𝑋, 𝑌] = 𝑚𝑒𝑠ℎ𝑔𝑟𝑖𝑑(𝑥, 𝑦); %𝐶𝑟𝑒𝑎 𝑚𝑎𝑡𝑟𝑖𝑐𝑒𝑠 𝑝𝑎𝑟𝑎 ℎ𝑎𝑐𝑒𝑟 𝑙𝑎 𝑚𝑎𝑙𝑙𝑎
≫ 𝑍 = sin(𝑠𝑞𝑟𝑡(𝑋.2
+ 𝑌.2 )) ./𝑠𝑞𝑟𝑡(𝑋.2
+ 𝑌.2
+ 0.1);
≫ 𝑚𝑒𝑠ℎ(𝑋, 𝑌, 𝑍)%𝑑𝑖𝑏𝑢𝑗𝑎 𝑙𝑎 𝑔𝑟á𝑓𝑖𝑐𝑎
23
Figura 3.6
También se obtiene el mismo resultado de esta otra manera:
≫ [𝑋, 𝑌] = 𝑚𝑒𝑠ℎ𝑔𝑟𝑖𝑑(−10: 0.5: 10);
≫ 𝑍 = sin(𝑠𝑞𝑟𝑡(𝑋.2
+ 𝑌.2 )) ./𝑠𝑞𝑟𝑡(𝑋.2
+ 𝑌.2
+ 0.1);
≫ 𝑚𝑒𝑠ℎ(𝑋, 𝑌, 𝑍)%𝑑𝑖𝑏𝑢𝑗𝑎 𝑙𝑎 𝑔𝑟á𝑓𝑖𝑐𝑎
Grafica de superficie
Es similar a la gráfica de malla, pero aquí se rellenan los espacios entre líneas. La orden que
usamos es surf con los mismos argumentos que para mesh. (Figura 3.7)
Ejemplo: >> surf (X,Y,Z)
24
Figura 3.7
Las gráficas de contorno en 2-D y 3-D se generan usando respectivamente las funciones contour
y contour3. Ejemplo: (Figura 3.8)
>> contour (X,Y,Z) % dibuja las líneas de contorno
Figura 3.8
25
La función pcolor transforma la altura a un conjunto de colores. Ejemplo: (Figura 3.9)
>>pcolor(X,Y,Z)
Figura 3.9
Manipulación de gráficos
fija el ángulo de visión especificando el azimut y la elevación: >> view(az,el)
coloca su vista en un vector de coordenada cartesiana (x,y,z) en el espacio 3-D: >> view([x,y,z])
almacena en az y los valores del azimut y de la elevación de la vista actual: >> [az,el]=view
añade etiquetas de altura a los gráficos de contorno: >> clabel(C,h)
añade una barra de color vertical mostrando las transformaciones: >> colorbar
26
Programación en MATLAB
Tema 3
Matlab puede utilizarse como un lenguaje de programación que incluye todos los
elementos necesarios. Añade la gran ventaja de poder incorporar a los programas propios del
usuario todas las aplicaciones que ya tiene implementadas, lo cual facilita y simplifica en muchos
casos la programación. También será de gran utilidad tener en cuenta la estructura vectorial y
matricial del programa.
Los programas en Matlab suelen escribirse en los ficheros .m (M-ficheros). Lo normal es que sea
en ficheros Scrips que resultan los más sencillos. A veces, no tienen argumentos de entrada ni
salida y están formados por un conjunto de instrucciones que se ejecutan secuencialmente. Por
ejemplo, el fichero de la figura 4.0 representa una curva cuando se escribe su nombre, en este caso
“grafica2D.m”, en la línea de comandos y se pulsa Enter.
Figura 4.0
27
La estructura general de un programa MATLAB es la siguiente:
1. Comentarios: pueden aparecer líneas comentadas en las que se da un título al programa y
se realiza una breve descripción de este.
2. Entrada de datos: los datos necesarios para la resolución del problema deben suministrarse
al programa mediante la lectura de sus valores por teclado o desde un fichero de datos.
3. Algoritmo: desarrollo de un procedimiento que permite obtener la solución del problema
en función de los datos de entrada.
4. Salida de datos: los datos obtenidos como solución del algoritmo se deben ofrecer al
usuario mediante escritura en pantalla o en un fichero de datos.
Estilo del programa
• El programa debe ser de fácil lectura: los nombres de las variables deben ser auto
explicativos, para que transcurrido el tiempo se facilite su revisión.
• Introducir comentarios en un programa: son líneas que no se ejecutan, en las que se
escriben aclaraciones explicativas, un programa con comentarios es mucho más fácil de
entender.
• Definir las variables al principio: los vectores y matrices, en la medida de lo posible, se
deben definir con su dimensión adecuada. Es más rápido si se define el vector vacío al
principio (por ejemplo, con los comandos ones o zeros) que irán añadiendo componentes
al vector conforme se van calculando.
• Es conveniente intentar: Introducir sangrías para ver dónde inician y dónde terminan los
ciclos y condicionales en las líneas contenidas en los programas. Esto resulta de especial
importancia en los bucles y condicionales anidados.
1. Entrada y salida de datos
Existe un comando para introducir información en un programa cuando estamos en modo de
ejecución. Este comando es: v=input(‘Cadena de Caracteres’)
input realiza dos tareas: (Figura 4.1)
1. Imprime en pantalla la cadena de caracteres que lleva como argumento.
2. Los datos que el usuario teclea en respuesta al letrero, los introduce en la variable v.
28
Figura 4.1
• Para que un programa en modo de ejecución pueda escribir letreros, avisos, etc. por
pantalla, se utiliza el comando: disp(‘Cadena de Caracteres’) que escribe la cadena de
caracteres que tiene como argumento en pantalla.
• Para escribir el valor de una variable, se utiliza el comando: disp(v) que muestra en
pantalla el valor de la variable v.
• Para escritura de texto y/o datos en pantalla, se puede utilizar la función:
sprintf(‘formato’, variables).
Ejemplos:
>>n=input(‘teclea el número de elementos’)
>>disp(‘este valor no es adecuado’)
Ejemplo de estructura de programa
Figura 4.2
29
2. Operadores
Ya hemos estudiado operadores de tipo aritmético. En este momento puede ser de utilidad
conocer otros tipos de operadores:
Operadores relacionales:
Los operadores relacionales comparan números o variables que contienen números.
< menor
<= Menor o igual
>= Mayor o igual
> Mayor
= = Igualdad
~= Desigualdad
find(A) Devuelve los índices de los elementos no nulos.
find(A condición) Devuelve los índices de los elementos de A que cumple la condición.
Ejemplo:
Aplicar una condición única
Para aplicar una condición única, empiece creando una matriz de 5 por 5 que contenga enteros
aleatorios entre 1 y 15. Restablezca el generador de números aleatorios al estado predeterminado
Figura 4.3
30
Utilice el operador relacional menor que, <, para determinar qué elementos de A son menores
que 9. Guarde el resultado en B. (Figura 4.4)
El resultado es una matriz lógica. Cada valor de B representa un estado lógico 1 (true) o 0 (false)
para indicar si el elemento correspondiente de A cumple la condición A < 9. Por ejemplo, A(1,1)
es 13, entonces B(1,1) es 0 (false) lógico. Sin embargo, A(1,2) es 2, entonces B(1,2) es 1 (true) lógico.
Más información, Mira el vídeo.
3. Operadores Lógicos
Los operadores lógicos sirven para comprobar la veracidad o falsedad de enunciados,
normalmente formados por más de una sentencia o comparación. Se suele utilizar junto a
operadores relacionales.
~A (not) Negación lógica
A&B (and) Conjunción lógica (and)
A|B (or) Disyunción lógica (or)
xor(A,B) or exclusivo, vale 1 sí A o B, pero no ambos, valen 1
Todos estos operadores actúan elemento a elemento en matrices y vectores. Las
dimensiones y número de elementos de las tablas deben coincidir.
Ejemplo:
>>A=1:9; P=(A>2)&(A<6)
P=001110000
Figura 4.4
31
Ejemplos:
Utilizando el operador &(and). (Figura 4.4 ) Utilizando el operador |(or). (Figura 4.5)
utilizando el operador ~ (not). (Figura4.6)
Más información, mira el vídeo
Figura 4.4 Figura 4.5
Verdadero sólo si las dos comparaciones son
verdaderas.
Verdadero si al menos una de las comparaciones
es verdadera.
Figura 4.6
Niega el resultado de la comparación. Verdadero
si la comparación es falsa.
32
4. Sentencias de control
El uso de aplicaciones recursivas y condicionales es muy habitual en matemáticas. Para
ello si utilizan las bifurcaciones y los bucles.
Las bifurcaciones permiten realizar una u otra operación según se cumplan o no ciertas
condiciones. Los bucles repiten operaciones sobre datos distintos.
Algunas de las sentencias de las que dispone Matlab para este tipo de trabajos son las
siguientes:
Sentencia for:
Permite ejecutar de forma repetitiva un comando o grupo de comandos. La forma general de un
bucle for es:
for variable=expresión
comandos
end
Por ejemplo: (Figura 4.7)
Figura 4.7
33
Así, un bucle for siempre empieza por la sentencia for y termina con la end. En su interior incluye
todo un conjunto de comandos que se separan por comas. En algunos casos es bueno poner
puntos y comas para evitar repeticiones en las salidas.
Más información, Mirar Vídeo.
Sentencia if:
Mediante esta estructura se pueden ejecutar secuencias de comandos si se cumplen
determinadas condiciones. Su sintaxis es:
if condición
comandos
end
De forma más general:
if condición
comandos 1
else
comandos 2
end
Se ejecuta comandos 1 si la condición es cierta y comandos 2 si es falsa.
Como el caso de for, se pueden anidar sentencias if:
If condición 1
Comandos 1
Elseif condición 2
Comandos 2
Elseif condición 3
Comandos 3
Else
end
34
Mediante el siguiente ejemplo se imprime en pantalla una frase, para saber si un número es par
o impar. (Figura 4.8)
Figura 4.8
Más información, Mirar vídeo
Sentencia while:
También dispone de la sentencia “haz mientras” que ejecuta un bucle mientras una condición
sea cierta. Su sintaxis es:
while condición
comandos
end
en el interior (comandos) se incluyen todo tipo de comandos que se separan por comas y que se
ejecutan mientras la condición sea cierta.
Como ejemplo calcularemos el mayor número factorial que no exceda a 10100
: (Figura 4.9)
Figura 4.9
35
Figura 4.9
Este otro ejemplo tiene como salida el vector 1 2 3 4 5 6. (Figura 5.0)
Más información, Mirar vídeo
continue
Esta sentencia hace que se pase inmediatamente a la siguiente iteración del bucle for o
while, saltándose todas las sentencias que existen entre el continue y el final del bucle en esa
iteración.
break
Hace que se termine la ejecución de un bucle for o while.
Uso de switch, case, otherwise
Realiza una función similar a if, elseif concatenados.
• Se evalúa la variable, cuyo resultado puede ser un
escalar o una cadena de caracteres.
• Este resultado se compara con cada una de las
opciones (las opciones van seguidas de la palabra
case).
• Si se cumple la variable y la opción, entonces se
evalúa el bloque correspondiente.
• Si no se cumple entonces se evalúa las opciones de
otherwise y se ejecuta el bloque de comandos 4.
Figura 5.0
36
Métodos numéricos (Matlab y Excel)
Ejemplo utilizando la condicional switch. (Figura 5.1)
Figura 5.1
Más información, Mirar vídeo
Tema 4
37
Newton Raphson
En análisis numérico, el método de Newton (conocido también como el método de
Newton-Raphson o el método de Newton-Fourier) es un algoritmo para encontrar
aproximaciones de los ceros o raíces de una función real. También puede ser usado para
encontrar el máximo o mínimo de una función, encontrando los ceros de su primera derivada.
Descripción del Método
El método de Newton es un método abierto, en el sentido de que no está garantizada su
convergencia global. La única manera de alcanzar la convergencia es seleccionar un valor inicial
lo suficientemente cercano a la raíz buscada. Así, se ha de comenzar la iteración con un valor
razonablemente cercano al cero (denominado punto de arranque o valor supuesto).
Obtención del Algoritmo
Pasos para obtener el Método de Newton-Raphson
Para utilizar el método, sigue estos pasos:
1. Escoge un valor de x inicial: este valor es una estimación en donde esperamos que haya
una raíz.
2. Encuentre el valor de la función usando el valor de x del paso 1.
3. Encuentre el valor de la derivada de la función usando el valor de x del paso 1.
4. Usa los valores encontrados para actualizar la estimación de la raíz mediante la siguiente
fórmula:
5. Repite los pasos 2-4 hasta que la estimación de la raíz converja a un valor preciso.
𝑥𝑛+1 = 𝑥𝑛 −
𝑓(𝑥𝑛)
𝑓´(𝑥𝑛)
, 𝑠𝑖 𝑓´(𝑥𝑛) ≠ 0
𝑥𝑛+1 = 𝑥𝑛 −
𝑓(𝑥𝑛)
𝑓´(𝑥𝑛)
,
𝑠𝑖 𝑓´(𝑥𝑛) ≠ 0
38
Grafica
Ejemplo:
Encontrar una buena aproximación a una raíz de la siguiente función usando el método de
Newton-Raphson. Tomar como punto inicial de partida x=1.
Ejemplo:
Encontrar una buena aproximación a una raíz de la siguiente función usando el método de
𝑓(𝑥) = 𝑥3
− 𝑥 − 1 = 0
𝑓(𝑥) = 𝑥3
− 𝑥 − 1 = 0
𝑓(𝑥) = 𝑥3
− 𝑥 − 1 = 0
𝑓(𝑥) = 𝑥3
− 𝑥 − 1 = 0
Encontrar la derivada de la función
𝑓´(𝑥) = 3𝑥2
− 1
Resolviendo:
Sustituyendo los valores quedaría de esta manera:
𝑥2 = 1 −
13
− 1 − 1
3 ∙ 12 − 1
= 𝟏. 𝟓
Vamos a seguir iterando
Vamos a seguir iterando
Encontrar la derivada de la función
𝑓´(𝑥) = 3𝑥2
− 1
Resolviendo:
Sustituyendo los valores quedaría de esta manera:
𝑥2 = 1 −
13
− 1 − 1
3 ∙ 12 − 1
= 𝟏. 𝟓
𝑥1 = 1
𝑥2 = 𝑥1 −
𝑓(𝑥1)
𝑓´(𝑥1)
= 1 −
𝑓(1)
𝑓´(1)
𝑥1 = 1
𝑥2 = 𝑥1 −
𝑓(𝑥1)
𝑓´(𝑥1)
= 1 −
𝑓(1)
𝑓´(1)
𝑥1 = 1
𝑥2 = 𝑥1 −
𝑓(𝑥1)
𝑓´(𝑥1)
= 1 −
𝑓(1)
𝑓´(1)
𝑥1 = 1
𝑥2 = 𝑥1 −
𝑓(𝑥1)
𝑓´(𝑥1)
= 1 −
𝑓(1)
𝑓´(1)
Raíz ≅ 1.32
≅ 1.32
≅ 1.32
≅ 1.32 𝑥3 = 𝑥2 −
𝑓(𝑥2)
𝑓´(𝑥2)
→ 𝑥3 = 1.5 −
1.53
− 1.5 − 1
3 ∙ 1.52 − 1
𝑥3 = 𝟏. 𝟑𝟒𝟕𝟖
𝑥3 = 𝑥2 −
𝑓(𝑥2)
𝑓´(𝑥2)
→ 𝑥3 = 1.5 −
1.53
− 1.5 − 1
3 ∙ 1.52 − 1
𝑥3 = 𝟏. 𝟑𝟒𝟕𝟖
𝑥3 = 𝑥2 −
𝑓(𝑥2)
𝑓´(𝑥2)
→ 𝑥3 = 1.5 −
1.53
− 1.5 − 1
3 ∙ 1.52 − 1
𝑥3 = 𝟏. 𝟑𝟒𝟕𝟖
𝑥4 = 𝑥3 −
𝑓(𝑥3)
𝑓´(𝑥3)
𝑥4 = 1.3478 −
1.34783
− 1.3478 − 1
3 ∙ 1.34782 − 1
𝑥4 = 𝟏. 𝟑𝟐𝟓2
𝑥4 = 𝑥3 −
𝑓(𝑥3)
𝑓´(𝑥3)
Vamos en la quinta iteración
𝑥5 = 𝑥4 −
𝑓(𝑥4)
𝑓´(𝑥4)
𝑥5 = 1.3252 −
1.32523
− 1.3252 − 1
3 ∙ 1.32522 − 1
𝑥5 = 𝟏. 𝟑𝟐𝟒𝟕
Damos por terminado que la raíz es aproximadamente
𝑥5 = 1.3247
Más información, mirar vídeo
39
Newton-Raphson en MATLAB
Utilizamos el ejemplo anterior visto, descarga el código aquí. (Figura 5.2)
Obtenemos la misma respuesta, el número de iteraciones varía según la aproximación de la raíz
que nosotros busquemos.
Figura 5.2
40
Newton-Raphson en Excel
Utilizamos el ejemplo anterior visto, material utilizado aquí. (Figura 5.3)
Figura 5.3
El método Newton-Raphson, resulta más fácil y rápido de encontrar utilizando la herramienta
Excel. En la figura 5.3 obtenemos el mismo resultado.
Más información, mirar vídeo.
41
Newton Raphson Modificado
El método de Newton Raphson modificado permite resolver funciones no lineales que
contengan raíces críticas (máximos, mínimos o puntos de inflexión que corten el eje x), es
decir, lugares donde simultáneamente la función y su derivada se hagan cero. En estos
puntos la raíz se repite y por ello recibe el nombre de raíz múltiple.
• Cuando la raíz es un punto de inflexión, la raíz se repite un número impar de veces.
• Cuando la raíz es un máximo o un mínimo, la raíz se repite un número par de veces.
Obtención del Algoritmo
Pasos para obtener el Método de Newton-Raphson
Para utilizar el método, sigue estos pasos:
1. Hallar la primera derivada
2. Hallar la segunda derivada
3. Sustituir en la ecuación de Newton Raphson modificado
4. Calcular el valor aproximado de la raíz
5. Calcular el error.
𝑥𝑛+1 = 𝑥𝑛 −
𝑓(𝑥𝑛)𝑓´(𝑥𝑛)
[𝑓´(𝑥𝑛)]2 − 𝑓(𝑥𝑛)𝑓´´(𝑥𝑛)
𝑥𝑛+1 =
𝑥𝑛 −
𝑓(𝑥𝑛)𝑓´(𝑥𝑛)
[𝑓´(𝑥𝑛)]2−𝑓(𝑥𝑛)𝑓´´(𝑥𝑛)
𝑥𝑛+1 =
𝑥𝑛 −
𝑓(𝑥𝑛)𝑓´(𝑥𝑛)
[𝑓´(𝑥𝑛)]2−𝑓(𝑥𝑛)𝑓´´(𝑥𝑛)
𝑥𝑛+1 =
𝑥𝑛 −
𝑓(𝑥𝑛)𝑓´(𝑥𝑛)
[𝑓´(𝑥𝑛)]2−𝑓(𝑥𝑛)𝑓´´(𝑥𝑛)
𝜀𝑎 = |
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜
− 𝑥𝑟
𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜 | 100
𝜀𝑎 = |
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜
− 𝑥𝑟
𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜 | 100
42
Ejemplo:
Determine la raíz más grande utilizando el método de Newton-Raphson modificado
Utilice como valor inicial 𝑥0 = 5. Con un error aproximadamente menor al 1%
Halla la primera derivada Hallar la segunda derivada
Calcular el valor aproximado de la raíz:
𝑥1 = 5
𝑥2 = 𝑥1 −
𝑓(𝑥1)𝑓´(𝑥1)
[𝑓´(𝑥1)]2 − 𝑓(𝑥1)𝑓´´(𝑥1)
= 5 −
𝑓(5)𝑓´(5)
[𝑓´(5)]2 − 𝑓(5)𝑓´´(5)
Sustituyendo los valores quedaría de esta manera
𝑥2 = 5 −
(−0.4(5)2
+ 2.3(5) + 2.2)(−0.8(5) + 2.3)
(−0.8(5) + 2.3)2 − (−0.4(5)2 + 2.3(5) + 2.2)(−0.8)
=
El resultado es 𝑥2 = 6.0752
Calculamos el error:
𝑓(𝑥) = −0.4𝑥2
+ 2.3𝑥 + 2.2
𝑓´(𝑥) = −0.8𝑥 + 2.3 𝑓´´(𝑥) = −0.8
Iteración Estimación Error aproximado
1 6.0752 17.6982
2
3
4
5
n
Sustituimos los valores
𝜀𝑎 = |
6.0752 − 5
6.0752
| 100 = 17.6982
𝜀𝑎 = |
6.0752 − 5
6.0752
| 100 = 17.6982
43
Realizando una segunda iteración:
𝑥2 = 6.0752
𝑥3 = 𝑥2 −
𝑓(𝑥2)𝑓´(𝑥2)
[𝑓´(𝑥2)]2 − 𝑓(𝑥2)𝑓´´(𝑥2)
= 6.0752 −
𝑓(6.0752)𝑓´(6.0752)
[𝑓´(6.0752)]2 − 𝑓(6.0752)𝑓´´(6.0752)
Sustituyendo los valores quedaría de esta manera
𝑥3 = 6.0752 −
(−0.4(6.0752)2
+ 2.3(6.0752) + 2.2)(−0.8(6.0752) + 2.3)
(−0.8(6.0752) + 2.3)2 − (−0.4(6.0752)2 + 2.3(6.0752) + 2.2)(−0.8)
=
El resultado es 𝑥3 = 6.5450
Calculamos el error:
𝜀𝑎 = |
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜
− 𝑥𝑟
𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜 | 100
Sustituimos los valores
𝜀𝑎 = |
6.5450 − 6.0752
6.5450
| 100 = 7.1778
Sustituimos los valores
𝜀𝑎 = |
6.5450 − 6.0752
6.5450
| 100 = 7.1778
Iteración Estimación Error aproximado
1 6.0752 17.6982
2 6.5450 7.1778
3
4
5
n
Realizando una tercera iteración:
𝑥3 = 6.5450
𝑥4 = 𝑥3 −
𝑓(𝑥3)𝑓´(𝑥3)
[𝑓´(𝑥3)]2 − 𝑓(𝑥3)𝑓´´(𝑥3)
= 6.5450 −
𝑓(6.5450)𝑓´(6.5450)
[𝑓´(6.5450)]2 − 𝑓(6.5450)𝑓´´(6.5450)
Sustituyendo los valores quedaría de esta manera
𝑥4 = 6.5450 −
(−0.4(6.5450)2
+ 2.3(6.5450) + 2.2)(−0.8(6.5450) + 2.3)
(−0.8(6.5450) + 2.3)2 − (−0.4(6.5450)2 + 2.3(6.5450) + 2.2)(−0.8)
=
El resultado es 𝑥4 = 6.5849
𝑥3 = 6.5450
𝑥4 = 𝑥3 −
𝑓(𝑥3)𝑓´(𝑥3)
[𝑓´(𝑥3)]2 − 𝑓(𝑥3)𝑓´´(𝑥3)
= 6.5450 −
𝑓(6.5450)𝑓´(6.5450)
[𝑓´(6.5450)]2 − 𝑓(6.5450)𝑓´´(6.5450)
44
Calculamos el error:
Sustituimos los valores
𝜀𝑎 = |
6.5849 − 6.5450
6.5849
| 100 = 0.6059
𝜀𝑎 = |
6.5849 − 6.5450
6.5849
| 100 = 0.6059
𝜀𝑎 = |
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜
− 𝑥𝑟
𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜 | 100
Iteración Estimación Error aproximado
1 6.0752 17.6982
2 6.5450 7.1778
3 6.5849 0.6059
4
5
n
Realizando una cuarta iteración:
𝑥4 = 6.5849
𝑥5 = 𝑥4 −
𝑓(𝑥4)𝑓´(𝑥4)
[𝑓´(𝑥4)]2 − 𝑓(𝑥4)𝑓´´(𝑥4)
= 6.5849 −
𝑓(6.5849)𝑓´(6.5849)
[𝑓´(6.5849)]2 − 𝑓(6.5849)𝑓´´(6.5849)
Sustituyendo los valores quedaría de esta manera
𝑥5 = 6.5849 −
(−0.4(6.5849)2
+ 2.3(6.5849) + 2.2)(−0.8(6.5849) + 2.3)
(−0.8(6.5849) + 2.3)2 − (−0.4(6.5849)2 + 2.3(6.5849) + 2.2)(−0.8)
=
El resultado es 𝑥5 =6.5852
Calculamos el error:
Sustituimos los valores
𝜀𝑎 = |
6.5852 − 6.5849
6.5852
| 100 = 0.0030
𝑥4 = 6.5849
𝑥5 = 𝑥4 −
𝑓(𝑥4)𝑓´(𝑥4)
[𝑓´(𝑥4)]2 − 𝑓(𝑥4)𝑓´´(𝑥4)
= 6.5849 −
𝑓(6.5849)𝑓´(6.5849)
[𝑓´(6.5849)]2 − 𝑓(6.5849)𝑓´´(6.5849)
𝜀𝑎 = |
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜
− 𝑥𝑟
𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜 | 100
Iteración Estimación Error aproximado
1 6.0752 17.6982
2 6.5450 7.1778
3 6.5849 0.6059
4 6.5852 0.0045
5
n
45
Realizando una quinta iteración:
𝑥5 = 6.5852
𝑥6 = 𝑥5 −
𝑓(𝑥5)𝑓´(𝑥5)
[𝑓´(𝑥5)]2 − 𝑓(𝑥5)𝑓´´(𝑥5)
= 6.5852 −
𝑓(6.5852)𝑓´(6.5852)
[𝑓´(6.5852)]2 − 𝑓(6.5852)𝑓´´(6.5852)
Sustituyendo los valores quedaría de esta manera
𝑥6 = 6.5852 −
(−0.4(6.5852)2
+ 2.3(6.5852) + 2.2)(−0.8(6.5852) + 2.3)
(−0.8(6.5852) + 2.3)2 − (−0.4(6.5852)2 + 2.3(6.5852) + 2.2)(−0.8)
=
El resultado es 𝑥6 = 6.5852
Calculamos el error:
Sustituimos los valores
𝜀𝑎 = |
6.5852 − 6.5852
6.5852
| 100 = 0
𝑥5 = 6.5852
𝑥6 = 𝑥5 −
𝑓(𝑥5)𝑓´(𝑥5)
[𝑓´(𝑥5)]2 − 𝑓(𝑥5)𝑓´´(𝑥5)
= 6.5852 −
𝑓(6.5852)𝑓´(6.5852)
[𝑓´(6.5852)]2 − 𝑓(6.5852)𝑓´´(6.5852)
𝑥6 = 6.5852 −
(−0.4(6.5852)2
+ 2.3(6.5852) + 2.2)(−0.8(6.5852) + 2.3)
(−0.8(6.5852) + 2.3)2 − (−0.4(6.5852)2 + 2.3(6.5852) + 2.2)(−0.8)
=
𝑥6 = 6.5852
𝜀𝑎 = |
6.5852 − 6.5852
6.5852
| 100 = 0
𝜀𝑎 = |
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜
− 𝑥𝑟
𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑥𝑟
𝑁𝑢𝑒𝑣𝑜 | 100
Iteración Estimación Error aproximado
1 6.0752 17.6982
2 6.5450 7.1778
3 6.5849 0.6059
4 6.5852 0.0045
5 6.5852 0
n
Raíz ≅ 6.58
Grafica
Damos por finalizado que la raíz es aproximadamente 𝑥6 = 6.58.
Pero podemos seguir iterando las veces que se pueda para este
ejemplo solo se llegó iterando hasta 5.
En la tabla podemos apreciar que la iteración 4 y 5 son idénticos,
pero puede a ver más decimales aquí solo se tomo cuatro
decimales. En la gráfica se puede ver que se tomó dos decimales
ya que en la iteración 4 y 5 son casi iguales, entonces nos da una
idea que la raíz más cercana está en x6=6.58.
Más información, mirar vídeo.
𝑥6 = 6.58
46
Newton-Raphson Modificado en MATLAB
Utilizamos el ejemplo anterior realizado, descarga el código aquí. (Figura 5.4)
Figura 5.4
Obtenemos la misma respuesta, el número de iteraciones varía según la aproximación de la raíz
que nosotros busquemos.

Más contenido relacionado

PPTX
Presentación Control Electoral
PDF
Sears, Zemansky - Fisica Universitaria Vol 1 - 12va Ed.pdf
PDF
Manual_de_usuario_peugeot 607.pdf
PPT
Investigación de Operaciones II : Simulación
PDF
Curvas horizontales transiciones-y-peraltes1
PDF
03 diseno del banco de capacitores
PDF
Solution manual !!! by rao-mechanical-vibrations-4th ed
DOCX
EVALUACION DIAGNOSTICA DE FISICA
Presentación Control Electoral
Sears, Zemansky - Fisica Universitaria Vol 1 - 12va Ed.pdf
Manual_de_usuario_peugeot 607.pdf
Investigación de Operaciones II : Simulación
Curvas horizontales transiciones-y-peraltes1
03 diseno del banco de capacitores
Solution manual !!! by rao-mechanical-vibrations-4th ed
EVALUACION DIAGNOSTICA DE FISICA

La actualidad más candente (20)

PDF
Fundamentos de circuitos eléctricos 3 ed - sadiku
PDF
Libro estatica problemas resueltos
PPT
Integración numérica parte II
PDF
S7 1200 paso-a_paso_v1.0
PDF
Error en el polinomio de interpolación
PDF
TRANSFORMADA INVERSA DE LAPLACE.pdf
DOCX
Circulo de mohr
PPTX
Ley Homogeneidad
DOC
Simplificacion+diagramas
PDF
Diagrama LADDER (Escalera) de PLC
PPTX
Método del trapecio - grupo 5 UNI profe Naupay
PDF
Viscosidad del agua
DOC
Electroneumatica
DOCX
Dinamica de fluidos
DOCX
Actuadores Mecánicos.
PDF
Formato de paper ieee
PPTX
Metodo de Euler.pptx
PDF
Solucionario de dennis g zill ecuaciones diferenciales
PPTX
Vigas y todo lo relacionado
PPTX
10. ed capítulo x cinemática de la partícula_trabajo y energía
Fundamentos de circuitos eléctricos 3 ed - sadiku
Libro estatica problemas resueltos
Integración numérica parte II
S7 1200 paso-a_paso_v1.0
Error en el polinomio de interpolación
TRANSFORMADA INVERSA DE LAPLACE.pdf
Circulo de mohr
Ley Homogeneidad
Simplificacion+diagramas
Diagrama LADDER (Escalera) de PLC
Método del trapecio - grupo 5 UNI profe Naupay
Viscosidad del agua
Electroneumatica
Dinamica de fluidos
Actuadores Mecánicos.
Formato de paper ieee
Metodo de Euler.pptx
Solucionario de dennis g zill ecuaciones diferenciales
Vigas y todo lo relacionado
10. ed capítulo x cinemática de la partícula_trabajo y energía
Publicidad

Similar a Manual de uso en MATLAB.pdf (20)

PPT
diapositivas de matlab
PPT
diapositivas de matlab
PDF
Guia para usar matlab
PDF
Tema 1
PPT
PPT
PDF
Guia math5
PDF
PPTX
andrea
PDF
MATLAB Tutorial
PDF
PDF
Ae guia-math5
PPT
Programacion En Mat Lab
PPTX
003- Clas- Lenguajes de programación.pptx
PDF
PDF
Documento11541
PDF
Matlab r2006b
PDF
Manual basico de_matlab
PDF
1 Entorno
diapositivas de matlab
diapositivas de matlab
Guia para usar matlab
Tema 1
Guia math5
andrea
MATLAB Tutorial
Ae guia-math5
Programacion En Mat Lab
003- Clas- Lenguajes de programación.pptx
Documento11541
Matlab r2006b
Manual basico de_matlab
1 Entorno
Publicidad

Último (20)

PPTX
Seminario de telecomunicaciones para ingeniería
PDF
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
PDF
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
PPTX
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
PDF
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
PPTX
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
PPTX
GEOLOGIA, principios , fundamentos y conceptos
PDF
1132-2018 espectrofotometro uv visible.pdf
PDF
prg2_t01_p01_Fundamentos POO - parte1.pdf
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PDF
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PPTX
NILS actividad 4 PRESENTACION.pptx pppppp
PDF
Oficio SEC 293416 Comision Investigadora
PPTX
Manual ISO9001_2015_IATF_16949_2016.pptx
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
Primera formulación de cargos de la SEC en contra del CEN
PDF
Informe Estudio Final Apagon del 25 de febrero
DOCX
Cumplimiento normativo y realidad laboral
Seminario de telecomunicaciones para ingeniería
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
GEOLOGIA, principios , fundamentos y conceptos
1132-2018 espectrofotometro uv visible.pdf
prg2_t01_p01_Fundamentos POO - parte1.pdf
TESTAMENTO DE DESCRIPTIVA ..............
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
NILS actividad 4 PRESENTACION.pptx pppppp
Oficio SEC 293416 Comision Investigadora
Manual ISO9001_2015_IATF_16949_2016.pptx
Sustancias Peligrosas de empresas para su correcto manejo
Primera formulación de cargos de la SEC en contra del CEN
Informe Estudio Final Apagon del 25 de febrero
Cumplimiento normativo y realidad laboral

Manual de uso en MATLAB.pdf

  • 1. 1 MANUAL DE USO EN MATLAB y sus aplicaciones en métodos numéricos Güidman Melquisedec Ordoñez Alonzo
  • 2. 2 Introducción................................................................................................................................................................3 Entorno de trabajo de MATLAB................................................................................................................................4 La ventana de comandos en MATLAB..................................................................................................................6 Ayuda en MATLAB...............................................................................................................................................8 Operaciones con matrices........................................................................................................................................ 10 Suma de matrices................................................................................................................................................. 11 Resta de matrices................................................................................................................................................. 12 Multiplicación de matrices .................................................................................................................................. 13 División de matrices............................................................................................................................................ 15 Potencia de matrices............................................................................................................................................ 16 Gráficas en dos y tres dimensiones.......................................................................................................................... 17 Graficas en 2 dimensiones................................................................................................................................... 17 Graficas en 3 dimensiones................................................................................................................................... 20 Programación en MATLAB.................................................................................................................................... 26 1. Entrada y salida de datos................................................................................................................................. 27 2. Operadores....................................................................................................................................................... 29 3. Operadores Lógicos......................................................................................................................................... 30 4. Sentencias de control....................................................................................................................................... 32 Sentencia for:................................................................................................................................................ 32 Sentencia if: .................................................................................................................................................. 33 Sentencia while:........................................................................................................................................... 34 Uso de switch, case, otherwise.................................................................................................................. 35 Métodos numéricos (Matlab y Excel) ..................................................................................................................... 36 Newton Raphson ................................................................................................................................................. 37 Newton-Raphson en MATLAB....................................................................................................................... 39 Newton-Raphson en Excel .............................................................................................................................. 40 CONTENIDO
  • 3. 3 Newton Raphson Modificado.............................................................................................................................. 41 Newton-Raphson Modificado en MATLAB................................................................................................... 46 | MATLAB es un entorno de computación técnica que posibilita la ejecución del cálculo numérico y simbólico de forma rápida y precisa, acompañado de características gráficas y de visualización avanzadas aptas para el trabajo científico y la ingeniería. MATLAB es un entorno interactivo para el análisis y el modelado que implementa más de 500 funciones para el trabajo en distintos campos de la ciencia. Por otra parte, MATLAB presenta un lenguaje de programación de muy alto nivel basado en vectores, arrays y matrices. Además, el entorno básico de MATLAB se complementa con una amplia colección de toolboxes que contienen funciones específicas para determinadas aplicaciones en diferentes ramas de las ciencias y la ingeniería. En este caso utilizaremos MATLAB, en la resolución de ejercicios matemáticos como teoría y práctica implementando formulas procedimientos generando códigos en algunos problemas mostrar graficas dos y tres dimensiones. MALTLAB también permite una ampliación extensible, permitiendo la relación con Excel, C, Fortran y otras aplicación muy utilizadas e importantes. Introducción
  • 4. 4 Entorno de trabajo de MATLAB Figura 1.0 La pantalla de entrada de MATLAB (Figura 1.0) constituye el marco de trabajo general del programa. Los elementos más importantes son de esta pantalla de inicio de MATLAB (Figura 1.2) son los siguiente: • Command Window (ventana de comandos): Ejecuta las funciones MATLAB. • Command History (historial de comandos): Presenta una historia de todas las • funciones introducidas en la ventana de comandos y permite copiarlas y ejecutarlas. • Launch Pad: Ejecuta herramientas y documentación de acceso para todos los productos de MathWorks instalados actualmente en el computador. • Current Directory (directorio actual): Muestra ficheros MATLAB y ejecuta operaciones de ficheros tales como abrir y buscar contenido.
  • 5. 5 • Help (ayuda): Muestra y busca documentación para la familia completa de productos MATLAB. • Workspace (espacio de trabajo): Muestra y realiza cambios en el contenido del espacio de trabajo. • Array Editor: Muestra contenido de arrays en formato de tabla y edita sus valores. • Editor/Debugger: Crea, edita y comprueba M-ficheros (ficheros que contienen sintaxis de funciones MATLAB). . Figura 1.2 Ver documentación y demos de productos Ayuda Funciones de MATLAB Ver o cambiar el directorio de MATLAB Otras opciones útiles Arrastrar con el ratón la barra del separador para cambiar el tamaño de las ventanas Espacio de trabajo Ver o usar funciones anteriores (historia)
  • 6. 6 La ventana de comandos en MATLAB La ventana de comandos (Figura 1.3) es el camino principal para comunicarse con MATLAB. Y se utiliza para ejecutar funciones y todo tipo de operaciones. Las entradas a ejecutar se escriben a continuación del prompt>> y, una vez completadas se pulsa Enter. En la (figura 1.4) se define una matriz y, al pulsar Enter, se obtiene como salida la propia matriz. Figura 1.3 Figura 1.4 MATLAB es sensible al uso de mayúsculas y minúsculas, pero permite situar o no espacios en blanco antes y después del signo menos, de los dos puntos y de los paréntesis. MATLAB también permite escribir varias entradas sobre la misma línea, pero separadas por punto y coma (Figura 1.5 ). Las entradas se ejecutan todas secuencialmente según están colocadas en la línea, pero sólo se ofrece la salida de la última, siempre y cuando no finalice también en punto y coma. Cualquier entrada que tenga punto y coma detrás se ejecuta al pulsar Enter, pero no se ve su salida. Las entradas largas que no quepan en una línea pueden continuarse en la línea siguiente presionando Shift+Enter al final de la línea (Figura 1.6).
  • 7. 7 Figura 1.5 Figura 1.6 La opción Clear Command Window clic derecho en la ventana de comandos (Figura 1.7) permite limpiar la ventana de comandos. El comando clc también realiza esta función (Figura 1.8). Del mismo modo, las opciones clic derecho eliminar Clear Workspace permite eliminar el espacio de trabajo. Figura 1.7 Figura 1.8
  • 8. 8 Ayuda en MATLAB MATLAB dispone de un sistema de ayuda en línea bastante eficiente. La primera de las herramientas a tener en cuenta es el navegador de la ayuda (Figura 1.9), al que se accede mediante el icono o tecleando helpbrowser en la ventana de comandos (en el menú View debe estar señalizado la opción help Browser ). En el panel de la izquierda del navegador de la ayuda se selecciona el tema, y en el panel de la derecha se presenta la ayuda relativa al tema seleccionado, siendo posible el uso de hipervínculos para navegar por su contenido. La parte izquierda del panel de navegación de la ayuda presenta en su zona superior una barra con las opciones Content (ayuda por contenido), Index (ayuda por índice alfabético), Search (buscar ayuda por tema) y Favorites (temas de ayuda favoritos). Figura 1.9
  • 9. 9 Guardar y cargar variables del área de trabajo El área de trabajo no se mantiene entre sesiones de MATLAB®. Cuando se sale de MATLAB, se despeja el área de trabajo. Sin embargo, puede guardar cualquier variable o todas las variables del área de trabajo actual en un archivo MAT (.mat). Después, puede reutilizar las variables del área de trabajo más tarde durante la sesión de MATLAB actual o durante otra sesión cargando el archivo MAT guardado. Guardar variables del área de trabajo Hay varias formas de guardar variables del área de trabajo de forma interactiva: • Para guardar todas las variables del área de trabajo en un archivo MAT, en la pestaña Home, en la sección Variable, haga clic en Save Workspace. (Figura 2.0) • Para guardar un subconjunto de variables del área de trabajo en un archivo MAT, seleccione las variables en el explorador del área de trabajo, haga clic con el botón secundario y, después, seleccione Save As. También puede arrastrar las variables seleccionadas desde el explorador del área de trabajo al explorador Current Folder. • Para guardar las variables en un script de MATLAB, haga clic en el botón Save Workspace o seleccione la opción Save As y, en la ventana Save As, establezca la opción Save as type en MATLAB Script. Las variables que no se pueden guardar en un script se guardan en un archivo MAT con el mismo nombre que el del script. Figura 2.0 Save Workspace
  • 10. 10 Más información del entorno de Matlab, ver los vídeos: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 Operaciones con matrices Tema 1 Las operaciones con matrices son la suma, la resta, la división y la multiplicación. Este ejemplo muestra funciones y técnicas básicas para trabajar con matrices en el lenguaje de MATLAB. En primer lugar, creemos un vector simple con nueve elementos llamado a. (Figura 2.1) Ahora, añadamos 2 a cada elemento de nuestro vector, a, y guardemos el resultado en un nuevo vector. (Figura 2.2) Figura 2.1 Figura 2.2
  • 11. 11 Suma de matrices La suma de matrices (de dos o más matrices) solamente existe cuando el orden m x n de estas es el mismo. Y del mismo orden será la matriz suma. Se suman los elementos que ocupan la misma posición. Sean dos matrices A y B de la misma dimensión m x n. La matriz suma S, también será de dimensión m x n: Ejemplo: Sean dos matrices de orden 3x2. Su suma será: (Figura 2.4) 𝐴 = (𝑎𝑖,𝑗 ) 𝐵 = (𝑏𝑖,𝑗 ) 𝑆 = (𝑆𝑖,𝑗 ) 𝑆 = 𝐴 + 𝐵 𝑆𝑖,𝑗 = 𝑎𝑖,𝑗+ 𝑏𝑖,𝑗 Un área en la que MATLAB destaca es en el cálculo de matrices. Crear una matriz es igual de fácil que crear un vector, con puntos y comas (;) para separar las filas de una matriz. (Figura 2.3) Figura 2.3
  • 12. 12 Resta de matrices Figura 2.4 La resta de dos matrices A y B solamente existe cuando el orden m x n de éstas es el mismo. Y del mismo orden será la matriz resta R. Se restan los elementos que ocupan la misma posición. Sean dos matrices A y B de la misma dimensión m x n. La matriz resta R, también de dimensión m x n, será: Ejemplo: Sean dos matrices de orden 3x2. Su resta será: (Figura 2.5) 𝐴 = (𝑎𝑖,𝑗 ) 𝐵 = (𝑏𝑖,𝑗 ) 𝑅 = (𝑅𝑖,𝑗 ) 𝑅 = 𝐴 − 𝐵 𝑟𝑖,𝑗 = 𝑎𝑖,𝑗− 𝑏𝑖,𝑗
  • 13. 13 Multiplicación de matrices Figura 2.5 La multiplicación de matrices solamente es posible si el número de columnas de la primera matriz coincide con el número filas de la segunda. Sus órdenes deben ser m x n y n x q. La operativa para obtener todos los elementos 𝑝𝑖,𝑗 de la matriz producto P, consiste en tomar los m elementos de la fila 𝑖 de la matriz 𝐴𝑚×𝑛 y los 𝑞 elementos de la columna j de la matriz 𝐵𝑛×𝑞 (las dos líneas tienen n elementos). Se suman los resultados de los n productos y el resultado es el elemento 𝑝𝑖,𝑗. El caso más simple es una matriz fila 𝐴𝑛×1 por una matriz columna 𝐵1×𝑛 (o viceversa). Como en este ejemplo, una matriz 3×1 multiplicada por otra 1×2: 𝐴 = ( 2 −5 3 ) × (1 − 2) = ( 2 ∗ 1 2 ∗ (−2) −5 ∗ 1 −5 ∗ (−2) 3 ∗ 1 3 ∗ (−2) ) = ( 𝟐 −𝟒 −𝟓 𝟏𝟎 𝟑 −𝟔 ) Esta matriz producto tiene una dimensión 3×2 (m x q).
  • 14. 14 En MATLAB: (Figura 2.6) Figura 2.6 Multiplicación de matrices 2×2 Un producto de matrices cuadradas de dimensión 2×2. Por ejemplo: (Figura 2.7) Figura 2.7
  • 15. 15 División de matrices La división de matrices propiamente no existe. Para realizar la operación: Debemos de operar así: Es una multiplicación de la matriz del numerador por la matriz inversa del denominador. Para que esta operación sea posible, se requiere que: • La matriz B del denominador sea invertible. • Para que se puedan multiplicar dos matrices, estas deben tener el mismo orden o dimensión. • Toda matriz invertible debe de ser una matriz cuadrada. A y B deben de ser cuadradas. • En general, en la multiplicación de matrices no se cumple la propiedad conmutativa. Ejemplo de división de dos matrices: (Figura 2.8) 𝐴 𝐵 𝐴 𝐵 = (𝐴) ∗ (𝐵)−1 Figura 2.8
  • 16. 16 Potencia de matrices La potencia de una matriz solamente es posible en las matrices cuadradas. La potencia de matrices 𝐴𝑛 consiste en concatenar ene veces multiplicaciones del factor matriz A. En MATLAB (Figura 2.9). Figura 2.9
  • 17. 17 Gráficas en dos y tres dimensiones Tema 2 Graficas en 2 dimensiones Las tablas de datos muy grandes son difíciles de interpretar. Los ingenieros usan técnicas de traficación para hacer que la información se entienda fácilmente. Es claro que con una gráfica esta tarea se vuelve mucho más fácil, ahora aprenderemos a graficar en Matlab, recordemos que lo más importante será la interpretación que le demos al trabajo del ingeniero. Para Graficar usamos la función plot(X,Y), para colocar títulos usamos title, para colocar etiquetas en x y y usamos xlabel() y ylabel() respectivamente, para colocar rejilla usamos el grid y para colocar una legenda usamos legend(). Para crear gráficas de líneas bidimensionales se utiliza la función plot. Ejemplo: Representar la función seno(0) hasta 3pi. Ejemplo: en MATLAB graficar la función: (Figura 3.0) 𝑥 = 0: 𝜋 100 : 3 ∗ 𝜋; 𝑦 = sin(𝑥); 𝑝𝑙𝑜𝑡(𝑥, 𝑦) 𝑝𝑙𝑜𝑡(𝑥, 𝑦,′ 𝑟 − −′ ) Figura 3.0
  • 18. 18 Realizar en MATLAB la siguiente grafica (Figura 3.1). 𝑥 = 0: 0.1: 10; %𝐷𝑎𝑡𝑜𝑠 𝑒𝑛 𝑦 (𝑠𝑒𝑟á 𝑒𝑙 𝑡𝑖𝑒𝑚𝑝𝑜) 𝑦 = 2 ∗ sin(𝑥); %𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑆𝑒𝑛𝑜 𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒 𝑑𝑒𝑙 𝑡𝑖𝑒𝑚𝑝𝑜 𝑝𝑙𝑜𝑡(𝑥, 𝑦)%𝑃𝑎𝑟𝑎 𝑔𝑟𝑎𝑓𝑖𝑐𝑎𝑟 𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑡𝑖𝑡𝑙𝑒(′𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑆𝑒𝑛𝑜′)%𝐶𝑜𝑙𝑜𝑐𝑎 𝑡í𝑡𝑢𝑙𝑜 𝑎𝑙 𝑔𝑟𝑎𝑓𝑖𝑐𝑜 𝑥𝑙𝑎𝑏𝑒𝑙(′𝑡𝑖𝑒𝑚𝑝𝑜(𝑠)′)%𝐶𝑜𝑙𝑜𝑐𝑎 𝑡í𝑡𝑢𝑙𝑜 𝑎𝑙 𝑒𝑗𝑒 𝑥 𝑦𝑙𝑎𝑏𝑒𝑙(′𝑥 = 2 ∗ 𝑠𝑖𝑛(𝑦) ′)%𝐶𝑜𝑙𝑜𝑐𝑎𝑟 𝑡í𝑡𝑢𝑙𝑜 𝑎𝑙 𝑒𝑗𝑒 𝑦 𝑔𝑟𝑖𝑑 𝑜𝑛%𝐶𝑜𝑙𝑜𝑐𝑎 𝑐𝑢𝑎𝑑𝑟𝑖𝑐𝑢𝑙𝑎 𝑎𝑙 𝑔𝑟𝑎𝑓𝑖𝑐𝑜 Figura 3.1
  • 19. 19 Graficar varias funciones en MATLAB 𝑧 = cos(4 ∗ 𝑥) ; %𝐶𝑟𝑒𝑎 𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑐𝑜𝑠𝑒𝑛𝑜 𝑦 𝑙𝑜 𝑔𝑢𝑎𝑟𝑑𝑎 𝑒𝑛 𝑧 ℎ𝑜𝑙𝑑%𝑀𝑎𝑛𝑡𝑖𝑒𝑛𝑒 𝑙𝑎𝑠 𝑑𝑜𝑠 𝑓𝑢𝑛𝑐𝑖𝑜𝑛𝑒𝑠 𝑒𝑛 𝑙𝑎 𝑚𝑖𝑠𝑚𝑎 𝑓𝑖𝑔𝑢𝑟𝑎, 𝑚𝑢𝑦 ú𝑡𝑖𝑙 𝑐𝑢𝑎𝑛𝑑𝑜 𝑠𝑒 𝑟𝑒𝑞𝑢𝑖𝑒𝑟𝑒. 𝑝𝑙𝑜𝑡(𝑥, 𝑧)%𝐺𝑟𝑎𝑓𝑖𝑐𝑎 𝑒𝑙 𝑐𝑜𝑠𝑒𝑛𝑜. 𝑙𝑒𝑔𝑒𝑛𝑑(′𝑆𝑒𝑛𝑜′ ,′ 𝐶𝑜𝑠𝑒𝑛𝑜′); %𝐶𝑟𝑒𝑎 𝑢𝑛𝑎 𝑙𝑒𝑦𝑒𝑛𝑑𝑎. Figura 3.2 2 graficas en una sola imagen el comando subplot. Este comando me permite crear 2 graficas en una ventana en MATLAB o también crear múltiples gráficos en MATLAB. (Figura 3.3) • figure% abre una ventana vacía. • subplot(2,1,1)%Divide una figura en 2 filas y 1 columna. • plot(x,y)%Grafica seno en el eje 1 • subplot(2,1,2)%Divide una figura en 2 filas y 1 columna. • plot(x,z)%grafica coseno en el eje 2
  • 20. 20 Figura 3.3 Graficas en 3 dimensiones • etiqueta sobre el eje X de la gráfica actual: >> xlabel('texto’) • etiqueta sobre el eje Y de la gráfica actual: >> ylabel('texto’) • título en la cabecera de la gráfica actual: >> title('texto’) • texto en el lugar especificado por las coordenadas: >> text(x,y, 'texto’) • texto, el lugar lo indicamos después con el ratón: >> gtext('texto’) • dibujar una rejilla: >> grid • fija valores máximo y mínimo de los ejes: >> axis( [xmin xmax ymin ymax] ) • fija que la escala en los ejes sea igual: >> axis equal • fija que la gráfica sea un cuadrado: >> axis square • desactiva axis equal y axis square: >> axis normal • abre una ventana de gráfico: >> hold on • borra lo que hay en la ventana de gráfico: >> hold off Todos estos comandos se las podemos dar desde la propia ventana de la gráfica una vez que hemos abierto las opciones con el botón indicado anteriormente
  • 21. 21 Una ventana gráfica se puede dividir en m particiones horizontales y en n verticales, de modo que cada subventana tiene sus propios ejes, y para hacer esto vamos a usar subplot (m,n,p) donde p indica la subdivisión que se convierte en activa. La pantalla se divide en 4, como se muestra en la gráfica. (Figura 3.4) Para volver al modo por defecto basta escribir: subplot(1,1,1) ≫ 𝑥 = 1: 360; 𝑦1 = 𝑠𝑖𝑛𝑑(𝑥); 𝑦2 = 𝑐𝑜𝑠𝑑(𝑥); 𝑦3 = exp(𝑥) ; 𝑦4 = exp(−𝑥) ; ≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,1), 𝑝𝑙𝑜𝑡(𝑥, 𝑦1), 𝑡𝑖𝑡𝑙𝑒(′𝑠𝑒𝑛𝑜′) ≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,2), 𝑝𝑙𝑜𝑡(𝑥, 𝑦2), 𝑡𝑖𝑡𝑙𝑒(′𝑐𝑜𝑠𝑒𝑛𝑜′) ≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,3), 𝑝𝑙𝑜𝑡(𝑥, 𝑦3), 𝑡𝑖𝑡𝑙𝑒(′𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑐𝑖𝑎𝑙′) ≫ 𝑠𝑢𝑏𝑝𝑙𝑜𝑡(2,2,4), 𝑝𝑙𝑜𝑡(𝑥, 𝑦4), 𝑡𝑖𝑡𝑙𝑒(′ − 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑐𝑖𝑎𝑙′) Figura 3.4
  • 22. 22 Gráficos de línea 3D se trata de extender la orden de plot (2-D) a plot3 (3-D) donde el formato será igual pero los datos estarán en tripletes: (Figura 3.5) Superficie de línea en 3D El orden [X,Y]=meshgrid(x,y) crea una matriz X cuyas filas son copias del vector x y una matriz Y cuyas columnas son copias del vector y. Para generar la gráfica de malla se usa la orden mesh(X,Y,Z), mesh acepta un argumento opcional para controlar los colores. También puede tomar una matriz simple como argumento: mesh(Z). Ejemplo: (Figura 3.6) ≫ 𝑥 = −720: 720; 𝑦 = 𝑠𝑖𝑛𝑑(𝑥); 𝑧 = 𝑐𝑜𝑠𝑑(𝑥); ≫ 𝑝𝑙𝑜𝑡3(𝑥, 𝑦, 𝑧) Figura 3.5 ≫ 𝑥 = −10: 0.5: 10; 𝑦 = −10: 0.5: 10; ≫ [𝑋, 𝑌] = 𝑚𝑒𝑠ℎ𝑔𝑟𝑖𝑑(𝑥, 𝑦); %𝐶𝑟𝑒𝑎 𝑚𝑎𝑡𝑟𝑖𝑐𝑒𝑠 𝑝𝑎𝑟𝑎 ℎ𝑎𝑐𝑒𝑟 𝑙𝑎 𝑚𝑎𝑙𝑙𝑎 ≫ 𝑍 = sin(𝑠𝑞𝑟𝑡(𝑋.2 + 𝑌.2 )) ./𝑠𝑞𝑟𝑡(𝑋.2 + 𝑌.2 + 0.1); ≫ 𝑚𝑒𝑠ℎ(𝑋, 𝑌, 𝑍)%𝑑𝑖𝑏𝑢𝑗𝑎 𝑙𝑎 𝑔𝑟á𝑓𝑖𝑐𝑎
  • 23. 23 Figura 3.6 También se obtiene el mismo resultado de esta otra manera: ≫ [𝑋, 𝑌] = 𝑚𝑒𝑠ℎ𝑔𝑟𝑖𝑑(−10: 0.5: 10); ≫ 𝑍 = sin(𝑠𝑞𝑟𝑡(𝑋.2 + 𝑌.2 )) ./𝑠𝑞𝑟𝑡(𝑋.2 + 𝑌.2 + 0.1); ≫ 𝑚𝑒𝑠ℎ(𝑋, 𝑌, 𝑍)%𝑑𝑖𝑏𝑢𝑗𝑎 𝑙𝑎 𝑔𝑟á𝑓𝑖𝑐𝑎 Grafica de superficie Es similar a la gráfica de malla, pero aquí se rellenan los espacios entre líneas. La orden que usamos es surf con los mismos argumentos que para mesh. (Figura 3.7) Ejemplo: >> surf (X,Y,Z)
  • 24. 24 Figura 3.7 Las gráficas de contorno en 2-D y 3-D se generan usando respectivamente las funciones contour y contour3. Ejemplo: (Figura 3.8) >> contour (X,Y,Z) % dibuja las líneas de contorno Figura 3.8
  • 25. 25 La función pcolor transforma la altura a un conjunto de colores. Ejemplo: (Figura 3.9) >>pcolor(X,Y,Z) Figura 3.9 Manipulación de gráficos fija el ángulo de visión especificando el azimut y la elevación: >> view(az,el) coloca su vista en un vector de coordenada cartesiana (x,y,z) en el espacio 3-D: >> view([x,y,z]) almacena en az y los valores del azimut y de la elevación de la vista actual: >> [az,el]=view añade etiquetas de altura a los gráficos de contorno: >> clabel(C,h) añade una barra de color vertical mostrando las transformaciones: >> colorbar
  • 26. 26 Programación en MATLAB Tema 3 Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas propios del usuario todas las aplicaciones que ya tiene implementadas, lo cual facilita y simplifica en muchos casos la programación. También será de gran utilidad tener en cuenta la estructura vectorial y matricial del programa. Los programas en Matlab suelen escribirse en los ficheros .m (M-ficheros). Lo normal es que sea en ficheros Scrips que resultan los más sencillos. A veces, no tienen argumentos de entrada ni salida y están formados por un conjunto de instrucciones que se ejecutan secuencialmente. Por ejemplo, el fichero de la figura 4.0 representa una curva cuando se escribe su nombre, en este caso “grafica2D.m”, en la línea de comandos y se pulsa Enter. Figura 4.0
  • 27. 27 La estructura general de un programa MATLAB es la siguiente: 1. Comentarios: pueden aparecer líneas comentadas en las que se da un título al programa y se realiza una breve descripción de este. 2. Entrada de datos: los datos necesarios para la resolución del problema deben suministrarse al programa mediante la lectura de sus valores por teclado o desde un fichero de datos. 3. Algoritmo: desarrollo de un procedimiento que permite obtener la solución del problema en función de los datos de entrada. 4. Salida de datos: los datos obtenidos como solución del algoritmo se deben ofrecer al usuario mediante escritura en pantalla o en un fichero de datos. Estilo del programa • El programa debe ser de fácil lectura: los nombres de las variables deben ser auto explicativos, para que transcurrido el tiempo se facilite su revisión. • Introducir comentarios en un programa: son líneas que no se ejecutan, en las que se escriben aclaraciones explicativas, un programa con comentarios es mucho más fácil de entender. • Definir las variables al principio: los vectores y matrices, en la medida de lo posible, se deben definir con su dimensión adecuada. Es más rápido si se define el vector vacío al principio (por ejemplo, con los comandos ones o zeros) que irán añadiendo componentes al vector conforme se van calculando. • Es conveniente intentar: Introducir sangrías para ver dónde inician y dónde terminan los ciclos y condicionales en las líneas contenidas en los programas. Esto resulta de especial importancia en los bucles y condicionales anidados. 1. Entrada y salida de datos Existe un comando para introducir información en un programa cuando estamos en modo de ejecución. Este comando es: v=input(‘Cadena de Caracteres’) input realiza dos tareas: (Figura 4.1) 1. Imprime en pantalla la cadena de caracteres que lleva como argumento. 2. Los datos que el usuario teclea en respuesta al letrero, los introduce en la variable v.
  • 28. 28 Figura 4.1 • Para que un programa en modo de ejecución pueda escribir letreros, avisos, etc. por pantalla, se utiliza el comando: disp(‘Cadena de Caracteres’) que escribe la cadena de caracteres que tiene como argumento en pantalla. • Para escribir el valor de una variable, se utiliza el comando: disp(v) que muestra en pantalla el valor de la variable v. • Para escritura de texto y/o datos en pantalla, se puede utilizar la función: sprintf(‘formato’, variables). Ejemplos: >>n=input(‘teclea el número de elementos’) >>disp(‘este valor no es adecuado’) Ejemplo de estructura de programa Figura 4.2
  • 29. 29 2. Operadores Ya hemos estudiado operadores de tipo aritmético. En este momento puede ser de utilidad conocer otros tipos de operadores: Operadores relacionales: Los operadores relacionales comparan números o variables que contienen números. < menor <= Menor o igual >= Mayor o igual > Mayor = = Igualdad ~= Desigualdad find(A) Devuelve los índices de los elementos no nulos. find(A condición) Devuelve los índices de los elementos de A que cumple la condición. Ejemplo: Aplicar una condición única Para aplicar una condición única, empiece creando una matriz de 5 por 5 que contenga enteros aleatorios entre 1 y 15. Restablezca el generador de números aleatorios al estado predeterminado Figura 4.3
  • 30. 30 Utilice el operador relacional menor que, <, para determinar qué elementos de A son menores que 9. Guarde el resultado en B. (Figura 4.4) El resultado es una matriz lógica. Cada valor de B representa un estado lógico 1 (true) o 0 (false) para indicar si el elemento correspondiente de A cumple la condición A < 9. Por ejemplo, A(1,1) es 13, entonces B(1,1) es 0 (false) lógico. Sin embargo, A(1,2) es 2, entonces B(1,2) es 1 (true) lógico. Más información, Mira el vídeo. 3. Operadores Lógicos Los operadores lógicos sirven para comprobar la veracidad o falsedad de enunciados, normalmente formados por más de una sentencia o comparación. Se suele utilizar junto a operadores relacionales. ~A (not) Negación lógica A&B (and) Conjunción lógica (and) A|B (or) Disyunción lógica (or) xor(A,B) or exclusivo, vale 1 sí A o B, pero no ambos, valen 1 Todos estos operadores actúan elemento a elemento en matrices y vectores. Las dimensiones y número de elementos de las tablas deben coincidir. Ejemplo: >>A=1:9; P=(A>2)&(A<6) P=001110000 Figura 4.4
  • 31. 31 Ejemplos: Utilizando el operador &(and). (Figura 4.4 ) Utilizando el operador |(or). (Figura 4.5) utilizando el operador ~ (not). (Figura4.6) Más información, mira el vídeo Figura 4.4 Figura 4.5 Verdadero sólo si las dos comparaciones son verdaderas. Verdadero si al menos una de las comparaciones es verdadera. Figura 4.6 Niega el resultado de la comparación. Verdadero si la comparación es falsa.
  • 32. 32 4. Sentencias de control El uso de aplicaciones recursivas y condicionales es muy habitual en matemáticas. Para ello si utilizan las bifurcaciones y los bucles. Las bifurcaciones permiten realizar una u otra operación según se cumplan o no ciertas condiciones. Los bucles repiten operaciones sobre datos distintos. Algunas de las sentencias de las que dispone Matlab para este tipo de trabajos son las siguientes: Sentencia for: Permite ejecutar de forma repetitiva un comando o grupo de comandos. La forma general de un bucle for es: for variable=expresión comandos end Por ejemplo: (Figura 4.7) Figura 4.7
  • 33. 33 Así, un bucle for siempre empieza por la sentencia for y termina con la end. En su interior incluye todo un conjunto de comandos que se separan por comas. En algunos casos es bueno poner puntos y comas para evitar repeticiones en las salidas. Más información, Mirar Vídeo. Sentencia if: Mediante esta estructura se pueden ejecutar secuencias de comandos si se cumplen determinadas condiciones. Su sintaxis es: if condición comandos end De forma más general: if condición comandos 1 else comandos 2 end Se ejecuta comandos 1 si la condición es cierta y comandos 2 si es falsa. Como el caso de for, se pueden anidar sentencias if: If condición 1 Comandos 1 Elseif condición 2 Comandos 2 Elseif condición 3 Comandos 3 Else end
  • 34. 34 Mediante el siguiente ejemplo se imprime en pantalla una frase, para saber si un número es par o impar. (Figura 4.8) Figura 4.8 Más información, Mirar vídeo Sentencia while: También dispone de la sentencia “haz mientras” que ejecuta un bucle mientras una condición sea cierta. Su sintaxis es: while condición comandos end en el interior (comandos) se incluyen todo tipo de comandos que se separan por comas y que se ejecutan mientras la condición sea cierta. Como ejemplo calcularemos el mayor número factorial que no exceda a 10100 : (Figura 4.9) Figura 4.9
  • 35. 35 Figura 4.9 Este otro ejemplo tiene como salida el vector 1 2 3 4 5 6. (Figura 5.0) Más información, Mirar vídeo continue Esta sentencia hace que se pase inmediatamente a la siguiente iteración del bucle for o while, saltándose todas las sentencias que existen entre el continue y el final del bucle en esa iteración. break Hace que se termine la ejecución de un bucle for o while. Uso de switch, case, otherwise Realiza una función similar a if, elseif concatenados. • Se evalúa la variable, cuyo resultado puede ser un escalar o una cadena de caracteres. • Este resultado se compara con cada una de las opciones (las opciones van seguidas de la palabra case). • Si se cumple la variable y la opción, entonces se evalúa el bloque correspondiente. • Si no se cumple entonces se evalúa las opciones de otherwise y se ejecuta el bloque de comandos 4. Figura 5.0
  • 36. 36 Métodos numéricos (Matlab y Excel) Ejemplo utilizando la condicional switch. (Figura 5.1) Figura 5.1 Más información, Mirar vídeo Tema 4
  • 37. 37 Newton Raphson En análisis numérico, el método de Newton (conocido también como el método de Newton-Raphson o el método de Newton-Fourier) es un algoritmo para encontrar aproximaciones de los ceros o raíces de una función real. También puede ser usado para encontrar el máximo o mínimo de una función, encontrando los ceros de su primera derivada. Descripción del Método El método de Newton es un método abierto, en el sentido de que no está garantizada su convergencia global. La única manera de alcanzar la convergencia es seleccionar un valor inicial lo suficientemente cercano a la raíz buscada. Así, se ha de comenzar la iteración con un valor razonablemente cercano al cero (denominado punto de arranque o valor supuesto). Obtención del Algoritmo Pasos para obtener el Método de Newton-Raphson Para utilizar el método, sigue estos pasos: 1. Escoge un valor de x inicial: este valor es una estimación en donde esperamos que haya una raíz. 2. Encuentre el valor de la función usando el valor de x del paso 1. 3. Encuentre el valor de la derivada de la función usando el valor de x del paso 1. 4. Usa los valores encontrados para actualizar la estimación de la raíz mediante la siguiente fórmula: 5. Repite los pasos 2-4 hasta que la estimación de la raíz converja a un valor preciso. 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛) 𝑓´(𝑥𝑛) , 𝑠𝑖 𝑓´(𝑥𝑛) ≠ 0 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛) 𝑓´(𝑥𝑛) , 𝑠𝑖 𝑓´(𝑥𝑛) ≠ 0
  • 38. 38 Grafica Ejemplo: Encontrar una buena aproximación a una raíz de la siguiente función usando el método de Newton-Raphson. Tomar como punto inicial de partida x=1. Ejemplo: Encontrar una buena aproximación a una raíz de la siguiente función usando el método de 𝑓(𝑥) = 𝑥3 − 𝑥 − 1 = 0 𝑓(𝑥) = 𝑥3 − 𝑥 − 1 = 0 𝑓(𝑥) = 𝑥3 − 𝑥 − 1 = 0 𝑓(𝑥) = 𝑥3 − 𝑥 − 1 = 0 Encontrar la derivada de la función 𝑓´(𝑥) = 3𝑥2 − 1 Resolviendo: Sustituyendo los valores quedaría de esta manera: 𝑥2 = 1 − 13 − 1 − 1 3 ∙ 12 − 1 = 𝟏. 𝟓 Vamos a seguir iterando Vamos a seguir iterando Encontrar la derivada de la función 𝑓´(𝑥) = 3𝑥2 − 1 Resolviendo: Sustituyendo los valores quedaría de esta manera: 𝑥2 = 1 − 13 − 1 − 1 3 ∙ 12 − 1 = 𝟏. 𝟓 𝑥1 = 1 𝑥2 = 𝑥1 − 𝑓(𝑥1) 𝑓´(𝑥1) = 1 − 𝑓(1) 𝑓´(1) 𝑥1 = 1 𝑥2 = 𝑥1 − 𝑓(𝑥1) 𝑓´(𝑥1) = 1 − 𝑓(1) 𝑓´(1) 𝑥1 = 1 𝑥2 = 𝑥1 − 𝑓(𝑥1) 𝑓´(𝑥1) = 1 − 𝑓(1) 𝑓´(1) 𝑥1 = 1 𝑥2 = 𝑥1 − 𝑓(𝑥1) 𝑓´(𝑥1) = 1 − 𝑓(1) 𝑓´(1) Raíz ≅ 1.32 ≅ 1.32 ≅ 1.32 ≅ 1.32 𝑥3 = 𝑥2 − 𝑓(𝑥2) 𝑓´(𝑥2) → 𝑥3 = 1.5 − 1.53 − 1.5 − 1 3 ∙ 1.52 − 1 𝑥3 = 𝟏. 𝟑𝟒𝟕𝟖 𝑥3 = 𝑥2 − 𝑓(𝑥2) 𝑓´(𝑥2) → 𝑥3 = 1.5 − 1.53 − 1.5 − 1 3 ∙ 1.52 − 1 𝑥3 = 𝟏. 𝟑𝟒𝟕𝟖 𝑥3 = 𝑥2 − 𝑓(𝑥2) 𝑓´(𝑥2) → 𝑥3 = 1.5 − 1.53 − 1.5 − 1 3 ∙ 1.52 − 1 𝑥3 = 𝟏. 𝟑𝟒𝟕𝟖 𝑥4 = 𝑥3 − 𝑓(𝑥3) 𝑓´(𝑥3) 𝑥4 = 1.3478 − 1.34783 − 1.3478 − 1 3 ∙ 1.34782 − 1 𝑥4 = 𝟏. 𝟑𝟐𝟓2 𝑥4 = 𝑥3 − 𝑓(𝑥3) 𝑓´(𝑥3) Vamos en la quinta iteración 𝑥5 = 𝑥4 − 𝑓(𝑥4) 𝑓´(𝑥4) 𝑥5 = 1.3252 − 1.32523 − 1.3252 − 1 3 ∙ 1.32522 − 1 𝑥5 = 𝟏. 𝟑𝟐𝟒𝟕 Damos por terminado que la raíz es aproximadamente 𝑥5 = 1.3247 Más información, mirar vídeo
  • 39. 39 Newton-Raphson en MATLAB Utilizamos el ejemplo anterior visto, descarga el código aquí. (Figura 5.2) Obtenemos la misma respuesta, el número de iteraciones varía según la aproximación de la raíz que nosotros busquemos. Figura 5.2
  • 40. 40 Newton-Raphson en Excel Utilizamos el ejemplo anterior visto, material utilizado aquí. (Figura 5.3) Figura 5.3 El método Newton-Raphson, resulta más fácil y rápido de encontrar utilizando la herramienta Excel. En la figura 5.3 obtenemos el mismo resultado. Más información, mirar vídeo.
  • 41. 41 Newton Raphson Modificado El método de Newton Raphson modificado permite resolver funciones no lineales que contengan raíces críticas (máximos, mínimos o puntos de inflexión que corten el eje x), es decir, lugares donde simultáneamente la función y su derivada se hagan cero. En estos puntos la raíz se repite y por ello recibe el nombre de raíz múltiple. • Cuando la raíz es un punto de inflexión, la raíz se repite un número impar de veces. • Cuando la raíz es un máximo o un mínimo, la raíz se repite un número par de veces. Obtención del Algoritmo Pasos para obtener el Método de Newton-Raphson Para utilizar el método, sigue estos pasos: 1. Hallar la primera derivada 2. Hallar la segunda derivada 3. Sustituir en la ecuación de Newton Raphson modificado 4. Calcular el valor aproximado de la raíz 5. Calcular el error. 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛)𝑓´(𝑥𝑛) [𝑓´(𝑥𝑛)]2 − 𝑓(𝑥𝑛)𝑓´´(𝑥𝑛) 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛)𝑓´(𝑥𝑛) [𝑓´(𝑥𝑛)]2−𝑓(𝑥𝑛)𝑓´´(𝑥𝑛) 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛)𝑓´(𝑥𝑛) [𝑓´(𝑥𝑛)]2−𝑓(𝑥𝑛)𝑓´´(𝑥𝑛) 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛)𝑓´(𝑥𝑛) [𝑓´(𝑥𝑛)]2−𝑓(𝑥𝑛)𝑓´´(𝑥𝑛) 𝜀𝑎 = | 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 − 𝑥𝑟 𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 | 100 𝜀𝑎 = | 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 − 𝑥𝑟 𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 | 100
  • 42. 42 Ejemplo: Determine la raíz más grande utilizando el método de Newton-Raphson modificado Utilice como valor inicial 𝑥0 = 5. Con un error aproximadamente menor al 1% Halla la primera derivada Hallar la segunda derivada Calcular el valor aproximado de la raíz: 𝑥1 = 5 𝑥2 = 𝑥1 − 𝑓(𝑥1)𝑓´(𝑥1) [𝑓´(𝑥1)]2 − 𝑓(𝑥1)𝑓´´(𝑥1) = 5 − 𝑓(5)𝑓´(5) [𝑓´(5)]2 − 𝑓(5)𝑓´´(5) Sustituyendo los valores quedaría de esta manera 𝑥2 = 5 − (−0.4(5)2 + 2.3(5) + 2.2)(−0.8(5) + 2.3) (−0.8(5) + 2.3)2 − (−0.4(5)2 + 2.3(5) + 2.2)(−0.8) = El resultado es 𝑥2 = 6.0752 Calculamos el error: 𝑓(𝑥) = −0.4𝑥2 + 2.3𝑥 + 2.2 𝑓´(𝑥) = −0.8𝑥 + 2.3 𝑓´´(𝑥) = −0.8 Iteración Estimación Error aproximado 1 6.0752 17.6982 2 3 4 5 n Sustituimos los valores 𝜀𝑎 = | 6.0752 − 5 6.0752 | 100 = 17.6982 𝜀𝑎 = | 6.0752 − 5 6.0752 | 100 = 17.6982
  • 43. 43 Realizando una segunda iteración: 𝑥2 = 6.0752 𝑥3 = 𝑥2 − 𝑓(𝑥2)𝑓´(𝑥2) [𝑓´(𝑥2)]2 − 𝑓(𝑥2)𝑓´´(𝑥2) = 6.0752 − 𝑓(6.0752)𝑓´(6.0752) [𝑓´(6.0752)]2 − 𝑓(6.0752)𝑓´´(6.0752) Sustituyendo los valores quedaría de esta manera 𝑥3 = 6.0752 − (−0.4(6.0752)2 + 2.3(6.0752) + 2.2)(−0.8(6.0752) + 2.3) (−0.8(6.0752) + 2.3)2 − (−0.4(6.0752)2 + 2.3(6.0752) + 2.2)(−0.8) = El resultado es 𝑥3 = 6.5450 Calculamos el error: 𝜀𝑎 = | 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 − 𝑥𝑟 𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 | 100 Sustituimos los valores 𝜀𝑎 = | 6.5450 − 6.0752 6.5450 | 100 = 7.1778 Sustituimos los valores 𝜀𝑎 = | 6.5450 − 6.0752 6.5450 | 100 = 7.1778 Iteración Estimación Error aproximado 1 6.0752 17.6982 2 6.5450 7.1778 3 4 5 n Realizando una tercera iteración: 𝑥3 = 6.5450 𝑥4 = 𝑥3 − 𝑓(𝑥3)𝑓´(𝑥3) [𝑓´(𝑥3)]2 − 𝑓(𝑥3)𝑓´´(𝑥3) = 6.5450 − 𝑓(6.5450)𝑓´(6.5450) [𝑓´(6.5450)]2 − 𝑓(6.5450)𝑓´´(6.5450) Sustituyendo los valores quedaría de esta manera 𝑥4 = 6.5450 − (−0.4(6.5450)2 + 2.3(6.5450) + 2.2)(−0.8(6.5450) + 2.3) (−0.8(6.5450) + 2.3)2 − (−0.4(6.5450)2 + 2.3(6.5450) + 2.2)(−0.8) = El resultado es 𝑥4 = 6.5849 𝑥3 = 6.5450 𝑥4 = 𝑥3 − 𝑓(𝑥3)𝑓´(𝑥3) [𝑓´(𝑥3)]2 − 𝑓(𝑥3)𝑓´´(𝑥3) = 6.5450 − 𝑓(6.5450)𝑓´(6.5450) [𝑓´(6.5450)]2 − 𝑓(6.5450)𝑓´´(6.5450)
  • 44. 44 Calculamos el error: Sustituimos los valores 𝜀𝑎 = | 6.5849 − 6.5450 6.5849 | 100 = 0.6059 𝜀𝑎 = | 6.5849 − 6.5450 6.5849 | 100 = 0.6059 𝜀𝑎 = | 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 − 𝑥𝑟 𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 | 100 Iteración Estimación Error aproximado 1 6.0752 17.6982 2 6.5450 7.1778 3 6.5849 0.6059 4 5 n Realizando una cuarta iteración: 𝑥4 = 6.5849 𝑥5 = 𝑥4 − 𝑓(𝑥4)𝑓´(𝑥4) [𝑓´(𝑥4)]2 − 𝑓(𝑥4)𝑓´´(𝑥4) = 6.5849 − 𝑓(6.5849)𝑓´(6.5849) [𝑓´(6.5849)]2 − 𝑓(6.5849)𝑓´´(6.5849) Sustituyendo los valores quedaría de esta manera 𝑥5 = 6.5849 − (−0.4(6.5849)2 + 2.3(6.5849) + 2.2)(−0.8(6.5849) + 2.3) (−0.8(6.5849) + 2.3)2 − (−0.4(6.5849)2 + 2.3(6.5849) + 2.2)(−0.8) = El resultado es 𝑥5 =6.5852 Calculamos el error: Sustituimos los valores 𝜀𝑎 = | 6.5852 − 6.5849 6.5852 | 100 = 0.0030 𝑥4 = 6.5849 𝑥5 = 𝑥4 − 𝑓(𝑥4)𝑓´(𝑥4) [𝑓´(𝑥4)]2 − 𝑓(𝑥4)𝑓´´(𝑥4) = 6.5849 − 𝑓(6.5849)𝑓´(6.5849) [𝑓´(6.5849)]2 − 𝑓(6.5849)𝑓´´(6.5849) 𝜀𝑎 = | 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 − 𝑥𝑟 𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 | 100 Iteración Estimación Error aproximado 1 6.0752 17.6982 2 6.5450 7.1778 3 6.5849 0.6059 4 6.5852 0.0045 5 n
  • 45. 45 Realizando una quinta iteración: 𝑥5 = 6.5852 𝑥6 = 𝑥5 − 𝑓(𝑥5)𝑓´(𝑥5) [𝑓´(𝑥5)]2 − 𝑓(𝑥5)𝑓´´(𝑥5) = 6.5852 − 𝑓(6.5852)𝑓´(6.5852) [𝑓´(6.5852)]2 − 𝑓(6.5852)𝑓´´(6.5852) Sustituyendo los valores quedaría de esta manera 𝑥6 = 6.5852 − (−0.4(6.5852)2 + 2.3(6.5852) + 2.2)(−0.8(6.5852) + 2.3) (−0.8(6.5852) + 2.3)2 − (−0.4(6.5852)2 + 2.3(6.5852) + 2.2)(−0.8) = El resultado es 𝑥6 = 6.5852 Calculamos el error: Sustituimos los valores 𝜀𝑎 = | 6.5852 − 6.5852 6.5852 | 100 = 0 𝑥5 = 6.5852 𝑥6 = 𝑥5 − 𝑓(𝑥5)𝑓´(𝑥5) [𝑓´(𝑥5)]2 − 𝑓(𝑥5)𝑓´´(𝑥5) = 6.5852 − 𝑓(6.5852)𝑓´(6.5852) [𝑓´(6.5852)]2 − 𝑓(6.5852)𝑓´´(6.5852) 𝑥6 = 6.5852 − (−0.4(6.5852)2 + 2.3(6.5852) + 2.2)(−0.8(6.5852) + 2.3) (−0.8(6.5852) + 2.3)2 − (−0.4(6.5852)2 + 2.3(6.5852) + 2.2)(−0.8) = 𝑥6 = 6.5852 𝜀𝑎 = | 6.5852 − 6.5852 6.5852 | 100 = 0 𝜀𝑎 = | 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 − 𝑥𝑟 𝐴𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑥𝑟 𝑁𝑢𝑒𝑣𝑜 | 100 Iteración Estimación Error aproximado 1 6.0752 17.6982 2 6.5450 7.1778 3 6.5849 0.6059 4 6.5852 0.0045 5 6.5852 0 n Raíz ≅ 6.58 Grafica Damos por finalizado que la raíz es aproximadamente 𝑥6 = 6.58. Pero podemos seguir iterando las veces que se pueda para este ejemplo solo se llegó iterando hasta 5. En la tabla podemos apreciar que la iteración 4 y 5 son idénticos, pero puede a ver más decimales aquí solo se tomo cuatro decimales. En la gráfica se puede ver que se tomó dos decimales ya que en la iteración 4 y 5 son casi iguales, entonces nos da una idea que la raíz más cercana está en x6=6.58. Más información, mirar vídeo. 𝑥6 = 6.58
  • 46. 46 Newton-Raphson Modificado en MATLAB Utilizamos el ejemplo anterior realizado, descarga el código aquí. (Figura 5.4) Figura 5.4 Obtenemos la misma respuesta, el número de iteraciones varía según la aproximación de la raíz que nosotros busquemos.