UNIDADES TECNOLÓGICAS DE SANTANDER
APUNTES DOCENTES
UNIDADES TECNOLÓGICAS DE SANTANDER
1.
ERRORES Y ARITMETICA DE PUNTO FLOTANTE
1.1.
Introducción a la Computación Numérica
El primer computador electrónico en base a la tecnología de tubos al vacío fue el ENIAC de la Universidad de Pensilvania, en la década del 40. Durante la década del 50, el primer uso de los computadores fue para las aplicaciones científicas.
En la década del 60, el uso de los computadores se amplió a los negocios, y el propósito más extendido fue el tratamiento de todo tipo de información.
En las tres últimas décadas (70 a 90) continuó extendiéndose hacia las medianas empresas en los 70; y hacia varios millones de pequeñas empresas y personas en la llamada revolución de las PC, en los 80 y 90.
La mayor parte de esos usuarios del computador no consideran de primer interés a la computación como medio de cálculo con números. En realidad lo que más se utiliza es el procesamiento de la información en otros campos como los negocios y la administración. Sin embargo, en muchas disciplinas científicas, el cálculo con números permanece como el uso más importante de los computadores.
Ejemplos:
Físicos: resolución de complicadas ecuaciones en modelos tales como la estructura del universo o del átomo.
Médicos: que usan los computadores para diseñar mejores técnicas.
Meteorólogos: usan la computación numérica para resolver ecuaciones en modelos que pronostican el clima. Ingenieros Aeronáuticos: Diseño de cohetes espaciales.
En la Ciencia de la Computación, la computación numérica tiene mayor importancia por los requerimientos de algoritmos confiables y rápidos para computación gráfica, robótica, etc.
1.2.
Números Reales
Una clasificación de los números reales es: R = Q U F ; y a su vez Q = Z UF, donde: R reales, Q racionales, I irracionales, Z enteros, F fraccionarios.
Los números reales que no pueden representarse como enteros o fracciones, se llaman irracionales. Ejemplo:
π
se define como la razón entre la longitud de una circunferencia y su diámetro. e se define como el límite de (1+1/n) cuando n →∞, un límite de una sucesión de números racionales {2;9/4;64/27...}
1.3.
Sistemas de representación de números reales
Históricamente los Romanos usaban distintos símbolos para representar las potencias de 10: X, C, M, etc., lo que es engorroso para grandes números. El uso del cero como símbolo fue usado en la India y luego introducido en Europa por medio de los Arabes, hace aproximadamente 1000 años.
UNIDADES TECNOLÓGICAS DE SANTANDER
Nuestro sistema actual se llama decimal o de base 10, pues requiere 10 símbolos {0,1,2,3,4,5,6,7,8,9}. El sistema se llama posicional, pues el significado del número depende de la posición de los símbolos.
Los Babilonios usaban el sistema de base 60, cuyas influencias llegan a nuestro tiempo con el sistema de medición del tiempo (1 hora = 60 min.; 1 min.= 60 seg.).
El sistema de base igual a 2, que no es tan natural para los humanos, es el más conveniente para los computadores. Todo número n está formado por una sucesión (cadena o string) de ceros y unos.
Todo número real posee una representación decimal y otra binaria; y por lo tanto, una representación en toda base B(n, tal que n >1.
1.4.
Conversiones entre representaciones de sistemas más
usuales
Caso de números enteros: x (10 = 61(10 = 6*101 + 1*100
Nota: La mayor potencia de 10 en el segundo miembro es igual al número de cifras del número x(10, menos 1.
Caso de números fraccionarios:
Los números irracionales siempre tienen una representación infinita, no periódica.
√2 = (1.414213 . . .)(10
Reglas Prácticas:
1) Para convertir un número x escrito en base B = 2, a base B' = 10, se aplica el algoritmo de descomposición del número, según las potencias de 2.
Ej.: x = 1001.11(2= 12302202112012-112-2 = 8+1+1/2+1/4 = 9.75
UNIDADES TECNOLÓGICAS DE SANTANDER
Se divide x por 2, lo que da a 0 como resto y un cociente, que dividido por 2, da a1 como resto; y así siguiendo
hasta que el último cociente (es menor que 2) da como resto
a
n.3) Conversión de Binario a Octal
Se comienza agrupando las cifras binarias, de tres en tres, de derecha a izquierda; luego se escribe el equivalente en base 8, en cada grupo.
Si se aplica el desarrollo polinómico a partir del coeficiente de 8n-1 (n = número de grupos), trabajando en base 10, se obtiene la expresión decimal del número binario dado.
4) Conversión de Binario a Hexadecimal
Para pasar un número escrito en base 2, a base 16, se agrupan las cifras binarias en grupos de 4, desde la derecha a izquierda, y luego se sustituye en cada grupo su equivalente por la cifra hexadecimal correspondiente.
Las relaciones entre grupos de cifras binarias y los sistemas de bases 2,8,10 y 16, siendo sus cifras,
B(2 = {0,1} ; B(8 ={0,1,...,7} ; B(16 = {0,1,...,9,A,B,C,D,E,F} ; B10 = {0,1,...,9}, se muestran en el sig. cuadro
Decimal Binario Octal Hexadecimal Decimal Binario Octal Hexadecimal
1 1 1 1 2 10 2 2
3 11 3 3 4 100 4 4
5 101 5 5 6 110 6 6
7 111 7 7 8 1000 10 8
9 1001 11 9 10 1010 12 A
11 1011 13 B 12 1100 14 C
13 1101 15 D 14 1110 16 E
15 1111 17 F 16 10000 20 10
17 10001 21 11 18 10010 22 12
19 10011 23 13 20 10100 24 14
21 10101 25 15 22 10110 26 16
23 10111 27 17 24 11000 30 18
25 11001 31 19 26 11010 32 1A
27 11011 33 1B 28 11100 34 1C
UNIDADES TECNOLÓGICAS DE SANTANDER
1.5.
Representación de Números Racionales
Para la representación de los números Racionales existen dos métodos muy conocidos como el del punto fijo, y la representación en punto flotante.
1) Punto Fijo
El sistema usa palabras divididas en 3 campos:
Signo Parte del número precedente al punto binario Parte posterior al pto.
Binario Desventajas: sólo se puede representar una pequeña cantidad de números. En nuestro caso, la palabra
de 32 se divide en campos de 1, 15 y 16 bits, respectivamente, y los números están en el rango
:
Nota: raramente usada hoy en aplicaciones científicas.
2) Sistema de números de punto flotante
• Basado en la notación científica
• Capaz de representar números muy grandes y muy pequeños sin incrementar el número de bits • Capaz de representar números con componentes enteros y fraccionarios.
• Número de punto flotante = número real
1.6.
Definición de Número en Punto Flotante
Consta de dos partes y un signo 1. Mantisa: La magnitud del número
2. Exponente: El número de lugares que se va a mover el punto 3. Signo: Positivo o negativo
Ejemplo decimal
• Número decimal 241,506,800 • Mantisa = .2415068
• Exponente = 9
0.2415068 x 10 ^ 9
Para los números de punto flotante binarios el formato se define por el standard ANSI/
IEEE 754-1985 de tres formas:
• Precisión sencilla - 32 bits
• Precisión doble - 64 bits
• Precisión extendida - 80 bits
• Se trabaja con números normalizados.
UNIDADES TECNOLÓGICAS DE SANTANDER
Precisión Sencilla
• En la mantisa se entiende que el punto binario está a la izquierda de los 23 bits. De
hecho hay 24 bits porque en cualquier número binario el bit más significativo
siempre es 1. Por lo tanto se entiende que esta ahí aunque no ocupe una posición.
• Los 8 bits de exponente representan un exponente en exceso, que se obtiene
añadiendo 127 al exponente real. El propósito es permitir números muy grandes o
muy pequeños sin requerir un bit de signo aparte para el exponente. Esto permite un
rango de exponentes de -126 a +128
Ejemplo
Representar 1011010010001
1011010010001 = 1.011010010001 x 2^12
Asumiendo que es un número positivo:
Bit de signo = 0
Exponente: 12 + 127 = 139 = 10001011
Mantisa: Parte fraccionaria .011010010001 a 23 bits (el 1 a la izq. del punto se omite
porque siempre está presente)
Punto flotante a decimal
Ejemplo:
Utilizar la fórmula →
UNIDADES TECNOLÓGICAS DE SANTANDER
→ - 407,680
Ejemplo:
Convertir el número decimal 3.248 x 10 ^ 4 a un número binario de punto flotante
precisión sencilla.
Convertir de decimal a binario 3.248 x 10 ^ 4 = 32480 = 111111011100000 =
1.11111011100000 x 2 ^ 14
Mantisa (23 bits) = 11111011100000000000000
Exponente en exceso = 14 + 127 = 141 = 10001101
Resultado ---
Ejemplos 2
a.) Convertir 0.510 a binario y hallar su representación en IEEE precisión simple 0.50
(0.50-0) * 2 = 1 d0=0
(1.00-1) * 2 = 0 d1=1
0.5010 = 0.12 = 1.0 x 2-1
exponente en exceso= -1 + 127 = 12610 = 0111 11102
0 01111110 00000000000000000000000
b.) Convertir 3.7510 a binario y hallar su representación en IEEE precisión simple 3.75
(3.75-3) * 2 = 1.50 d0=3
(1.50-1) * 2 = 1.00 d1=1
(1.00-1) * 2 = 0.00 d2=1
3.7510 = 11.112 = 1.111 x 21
UNIDADES TECNOLÓGICAS DE SANTANDER
Ejercicio
Convierta los siguientes valores decimales en valores binarios. a) 123 _________________
b) 202 _________________ c) 67 _________________ d) 7 _________________ e) 252 _________________ f) 91 _________________
Convierta los siguientes valores binarios en valores decimales.
a. 1110 _______________________________________________
b. 100110_____________________________________________ c. 11111111____________________________________________ d. 11010011___________________________________________ e. 01000001 __________________________________________ f. 11001110 ___________________________________________ g. 01110101___________________________________________ h. 10001111 ___________________________________________
• Determine el valor binario y decimal del siguiente número binario en punto flotante:
0 10011000 10000100010100110000000• Mencione las partes de un número binario en punto flotante
• ¿Cuántos bits tiene en total un número binario en punto flotante de precisión sencilla, doble y extendida?
Convertir los siguientes números a punto flotante binario -1.75610
15.7510
5.62510
1.0 x 10-1 10
UNIDADES TECNOLÓGICAS DE SANTANDER
Resumen
Los métodos numéricos nos sirven para resolver problemas que no puedan manejarse con los métodos analíticos tradicionales, o no sea sencillo aplicarlos. Estos métodos proporcionan una sucesión de valores que se aproxima a la solución del problema.
Al resolver un problema siempre tendremos presente errores: El error de redondeo, el error inherente y el error de truncamiento.
El error de redondeo es prácticamente inevitable y puede invalidar por completo la solución de un problema. Puede minimizarse su efecto, ya sea reduciendo de alguna manera él numero de cálculos a realizar, ó reformulando la solución de un problema de tal forma que se evite las operaciones aritméticas que ocasionan mas error.
UNIDADES TECNOLÓGICAS DE SANTANDER
acarrearnos serias discrepancias entre valores teóricos y valores calculados.
La precisión y la exactitud no son sinónimas. Una nos indica que tan confiable es un valor, y la otra que tan cerca estamos de el.
1. Error absoluto: El error se define como la diferencia entre el valor real Vr y una
aproximación a este valor Va :
e = Vr – Va
2. Error relativo: El error relativo se define como el cociente del error entre el valor real Vr
(sí ):
𝑒
𝑟
=
𝑒
𝑣
𝑟=
𝑣
𝑟−𝑣
𝑎𝑣
𝑟3. Error porcentual: El error porcentual es simplemente el error relativo expresado en por
ciento (%).
También es usual emplear el valor absoluto en los parámetros anteriores, en cuyo caso se denominan respectivamente error absoluto, error relativo absoluto y error porcentual absoluto.
4. Errores de redondeo
Los errores de redondeo, se originan al realizar los cálculos que todo método numérico o analítico requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones aritméticas como los productos y los cocientes, teniendo que retener en cada operación el número de cifras que permita el instrumento de cálculo que se este utilizando. Por ejemplo al calcular el valor de , tenemos que quedarnos solo con la mayor cantidad de cifras 3, que maneje nuestro instrumento de calculo.
Existen dos tipos de errores de redondeo:
Error de redondeo inferior: se desprecian los dígitos que no se pueden conservar dentro de la memoria correspondiente.
Error de redondeo superior: este caso tiene dos alternativas según el signo del número en particular:
- par números positivos, el último dígito que se puede conservar en la localización de memoria incrementa en una unidad si el primer dígito despreciado es mayor o igual a 5.
UNIDADES TECNOLÓGICAS DE SANTANDER
5. Error numérico total
El error numérico total se entiende como la suma de los errores de redondeo y truncamiento introducidos en el cálculo.
Mientras más cálculos se tengan que realizar para obtener un resultado, el error de redondeo se irá incrementando. Pero por otro lado, el error de truncamiento se puede minimizar al incluir más términos en la ecuación, disminuir el paso o proseguir la iteración (o sea mayor número de cálculos y seguramente mayor error de redondeo).
6. Errores de equivocación
Son los errores por negligencia o equivocación. Las computadoras pueden dar números erróneos por su funcionamiento. Actualmente las computadoras son muy exactas y el error es atribuido a los hombres.
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesión de métodos y el diseño de la solución del problema.
Los errores humanos por negligencia son prácticamente inevitables pero se pueden minimizar.
7. Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de un valor numérico. El número de cifras significativas es el número de dígitos que se puede usar con plena confianza. Por ejemplo podemos calcular un número irracional con varias cifras, pero de ellas no todas, sobre todo las últimas pueden tomarse con plena confianza de que son correctas. Por otro lado, los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto decimal. Por ejemplo los siguientes números tienen todos 4 cifras significativas: 0.00001985, 0.0001985, 0.001985, 1985, 19.85.1 Para asegurar que un cero nos represente una cifra significativa, es común emplear la notación científica.
8. Precisión y exactitud
Los errores asociados con los cálculos y mediciones se pueden caracterizar observando su precisión y exactitud. La mayoría de la gente piensa que estos términos son sinónimos, pero no es así. La precisión se refiere al número de cifras significativas que representan una cantidad. La exactitud se refiere al grado de aproximación que se tiene de un número o de una medida al valor verdadero que se supone representa, es decir, que tan cerca estamos del valor buscado.
9. Tipos de redondeo
Al realizar los cálculos que todo método numérico o analítico requiere debemos de redondear. Para redondear se emplea usualmente:
Redondeo truncado Redondeo simétrico.
10.Redondeo truncado
UNIDADES TECNOLÓGICAS DE SANTANDER
tenemos 0.7777.
11.Redondeo simétrico
El redondeo simétrico consiste en aumentar en uno la última cifra retenida sí la primera cifra descartada esta entre 5 y 9, o dejarla igual sí la primera cifra descartada esta entre 0 y 4. Por ejemplo sí redondeamos a 4 cifras significativas tenemos 0.7778.
Por ejemplo: . En la práctica puede no ser así. Sí Realizamos la suma empleando únicamente 4 cifras significativas y usamos ambos tipos de redondeo. Se obtiene:
0.3333+0.6666=0.9999 (Redondeo truncado)
0.3333+0.6667=1.000 (Redondeo simétrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones
En esta primera Práctica, aprenderemos a utilizar las órdenes básicas de MATLAB para trabajar con escalares, vectores y matrices, evaluar funciones de una y dos variables y representarlas gráficamente. En prácticas posteriores usaremos habitualmente MATLAB para efectuar los cálculos. MATLAB (MATrix LABoratory) es un programa orientado al cálculo con matrices, al que se reducen muchos de los algoritmos que resuelven problemas de Matemática Aplicada e Ingeniería. MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados. Los gráficos se muestran en ventanas independientes. Cada ventana dispone de una barra de menús que controla su funcionalidad.
Aprenderemos a asignar, borrar, guardar y recuperar variables, utilizar las funciones incorporadas y, más adelante, a definir funciones nuevas.
En MATLAB todas las instrucciones tienen que estar escritas en minúsculas, de esa forma nos evitaremos errores de ejecución.
MATLAB opera directamente con números complejos y con números reales como caso
particular.
Lo que distingue a MATLAB de otros sistemas de cálculo es su facilidad para trabajar con vectores
UNIDADES TECNOLÓGICAS DE SANTANDER
1.1 Comandos Básicos
1.1.1 Help, Dir, Pwd.
Help: nos da una lista de temas sobre los que hay información de ayuda.
Helpwin : abre una ventana de ayuda que es útil para consultar información sobre órdenes de MATLAB sin interferir con la ventana principal. help tema explica concisamente el tema elegido y añade información sobre temas relacionados.
Ejemplo 1
La instrucción clc borra la ventana de comandos, esa información la obtendrás al ejecutar: help clc.
1.2 Variables
En MATLAB las variables se asignan de modo natural. Basta escribir un nombre de variable, a continuación el signo igual y luego el valor que toma esa variable. Para aceptar, como siempre, hay que pulsar [Intro]. Escribiendo sólo el nombre de una variable previamente asignada, MATLAB devuelve su valor.
Los signos +, −, *, / y ^ denotan las operaciones aritméticas de suma, resta, multiplicación, división y elevación a una potencia (de modo que resultan válidas para matrices, como veremos más adelante). Si el resultado de una operación no es asignado a ninguna variable, MATLAB lo asigna a la variable del sistema ans.
Al poner 'punto y coma', no se muestra el resultado por pantalla. Naturalmente, la asignación de la variable no resulta afectada.
1.2.1 Who, Whos.
La orden who lista las variables definidas y con la orden whos obtenemos además el tipo de variable y su tamaño.
Ejemplo 3
a = 3, b = 4, a a + b
c = ans; who whos
1.2.2 Variables especiales, format.
MATLAB utiliza ciertos nombres de variable para fines especiales, como i o j, que designan ambas a la unidad imaginaria (i2 = j2 = –1) o pi, para el número π. El número e, base de los logaritmos
neperianos, no está preasignado, pero se obtiene fácilmente como exp(1).
La precisión relativa en operaciones de coma flotante se llama eps. El resultado de 1/0 en MATLAB es Inf y el de 0/0, NaN.
UNIDADES TECNOLÓGICAS DE SANTANDER
0/0 % Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores, prevaleciendo nuestra asignación sobre el valor por defecto de MATLAB. Por ejemplo, si no utilizamos números complejos, no hay inconveniente en representar por i y j los índices de fila y columna de una matriz. Igualmente podríamos llamar eps a una cantidad a utilizar como criterio de convergencia, pero en general conviene evitar equívocos empleando otros nombres de variable.
Internamente MATLAB trabaja con mucha precisión, aunque por defecto muestra los resultados con cuatro decimales. La apariencia de los resultados se modifica por menú o con la orden format.
format long aumenta el número de decimales visibles.
format short vuelve al estado inicial. format rat aproxima el resultado por un cociente de enteros pequeños. Explora otras opciones con help format .
pi,format long, pi format rat, pi
1.2.3 Cadenas De Caracteres.
Podemos usar también cadenas de caracteres para manejar texto en funciones de MATLAB. Para introducir una cadena, basta escribir el texto entre comillas.
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o función. El mandato ischar nos dice si una expresión es o no un carácter (responde 1 si es verdadero y 0 si es falso).
Ejemplo 4
a='Esto es una cadena' b=Esto no
c=3 ischar(a) ischar(c)
1.3 Vectores
1.3.1 Edición de Vectores
Los vectores se utilizan, entre otras cosas, para representar: Puntos del plano y del espacio.
Puntos de un espacio n-dimensional.
Magnitudes físicas.
Filas o columnas de una matriz (recuerda la discusión de sistemas de ecuaciones lineales).
Para introducir un vector en MATLAB, escribimos sus componentes entre corchetes. Separando las componentes con comas o espacios obtenemos un vector fila.
Separándolas por punto y coma o por [Intro], obtenemos un vector columna.
UNIDADES TECNOLÓGICAS DE SANTANDER
u = [1 2 3], v = [1,2,3] % Vectores fila
w = [1;2;3]
Para calcular la longitud de un vector se utiliza el mandato length, ahora bien como MATLAB trabaja siempre todas las variables como matrices, tanto si son matrices como si son escalares como si son vectores, para obtener la dimensión de cualquier variable podemos utilizar la función size que devuelve un vector de dos componentes que son el número de filas y el número de columnas de la matriz.
Ejemplo 6
u = [1 2 3], v = [1,2,3] % Vectores fila
w = [1;2;3]
» z=[1 » 2
» 3] % Vectores columna
length(u) length(w) [f,c]=size(u) dimension=size(w)
1.3.2 Vectores Progresivos.
Es muy frecuente tener que editar vectores con componentes equiespaciadas, por ejemplo, para crear una tabla de valores de una función.
Con a:h:b creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente.
La orden linspace(a,b,n) crea n términos en progresión aritmética, desde a hasta b.
Ejemplo 7
x=0:0.1:1
y=linspace(0,1,11)
1.3.3 Suma y producto por un escalar.
La suma de dos vectores del mismo tamaño se efectúa componente a componente y se obtiene con MATLAB escribiendo directamente
» u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u. Para multiplicar un vector u por un escalar a, basta escribir
» a*u
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la versión 'punto' del producto. u.*v % Producto elemento a elemento
UNIDADES TECNOLÓGICAS DE SANTANDER
error, pues MATLAB aplica el producto matricial y los tamaños no son coherentes.
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el segundo. Por ejemplo, podemos multiplicar una fila por una columna del mismo número de elementos o viceversa.
» u*w % Fila × Columna = Escalar
» w*u % Columna × Fila = Matriz de rango 1
Finalmente, el producto de todas las componentes de un vector se obtiene con la funciónprod.
1.3.4 Producto escalar y vectorial de dos vectores.
El producto escalar de dos vectores de la misma dimensión se efectúa con dot y el producto vectorial de dos vectores de longitud 3 con cross.
Ejemplo 8
a = [1 2 3]; b = [4 5 6]; c = dot(a,b) d = cross(a,b) e = prod(a) f = prod(b)
1.3.5 ', .', flipud, fliplr
La transpuesta (conjugada) de un vector (complejo) v es v', su instrucción equivalente es ctranspose, la transpuesta (no conjugada) de un vector (complejo) v es v.', su instrucción equivalente es
transpose.
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo un vector columna.
Ejemplo 9
z=[1 i 2-i]; v=z' w=z.'
1.3.6 Diferencias, sumas y productos acumulados
La instrucción diff aplicada a un vector X=[X(1), X(2), ..., X(n)], realiza la diferencia entre sus componentes de la siguiente forma [X(2)-X(1), X(3)-X(2), ..., X(n)- X(n-1)].
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos acumulados de un vector, son interesantes para el estudio de sumatorios y productorios finitos.
Ejemplo 10
UNIDADES TECNOLÓGICAS DE SANTANDER
b = cumsum(a) c = cumprod(a)
1.4 Matrices
1.4.1 Edición de Matrices
Por defecto, MATLAB trabaja con matrices. Esto supone la ventaja substancial de no tener que declarar tipos de variable ni tamaños de fila o columnas para trabajar tanto con matrices de números reales o complejos como con vectores o escalares, que se consideran casos particulares de matrices. Las matrices se escriben por filas. Los elementos de una fila se separan por 'comas' y las distintas filas por 'puntos y comas'.
A = [1,2;3,4]
Lo mismo que con vectores, podemos también separar los elementos de una fila con espacios y las filas pulsando la tecla [Intro].
» B = [-1 -2 -3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(i,j). Modifica, por ejemplo, el elemento 2,1 de A:
» A(2,1) = 0
A(i,:) denota la fila i de la matriz A. Análogamente, A(:,j) es la columna j de A.
» A(2,:), A(:,1)
En ocasiones resulta cómodo construir una matriz a partir de bloques. Con tal de que sus tamaños sean coherentes, basta escribir los bloques por filas, como si se tratase de elementos individuales.
» M = [A,B;B,A]
Para extraer una submatriz, indicaremos las filas y columnas de que se compone.
» M41 = M(1:3,2:4)
Las filas o columnas no tienen por que ser consecutivas
» fil = [1,2,4], col = [1,3,4] » M32 = M(fil,col)
1.4.2 Matrices usuales
Ya hemos visto cómo se escriben las matrices. MATLAB tiene varias funciones que facilitan la edición de matrices de uso frecuente:
eye(n) proporciona la matriz identidad de orden n.
zeros(n,m) inicializa una matriz m por n con todos los elementos nulos.
ones hace lo mismo con elementos de valor 1.
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [0,1].
Ejemplo 11
M = eye(4) N = zeros(3) O = ones(2) P = rand(3,2)
UNIDADES TECNOLÓGICAS DE SANTANDER
Para sumar dos matrices del mismo tamaño, se suma cada elemento de una con el elemento correspondiente de la otra.
» A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados. Comprueba que el elemento (1,1) de la matriz producto A*B es
» A(1,1)*B(1,1)+A(1,2)*B(2,1)
Observa que el producto de matrices NO es conmutativo
» A*B - B*A
MATLAB interpreta A/B como el producto de A por la inversa de B. Prueba:
» A/B, A*inv(B), A*inv(A)
La no conmutatividad del producto justifica que inv(A)*B se abrevie a A\B.
Asimismo, la solución del sistema Ax=b, que formalmente es x=A–1b, se obtiene en MATLAB con
A\b. Bien entendido que la solución no se obtiene calculando la inversa de A, sino aplicando métodos numéricamente más eficientes (ver help slash ).
Para multiplicar dos matrices elemento a elemento, en lugar de filas por columnas, usamos las variantes 'punto' de las operaciones correspondientes. Comprueba la diferencia entre
» A*B, A.*B, A^-1, A.^-1
Si A es una matriz real, A' es la transpuesta de A. En el caso complejo, A' es la transpuesta conjugada. La transpuesta sin conjugar se obtiene con A.'.
1.5 Funciones
MATLAB conoce las funciones matemáticas elementales:
Trigonométricas: seno, coseno, tangente, cosecante, secante y cotangente.
Trigonométricas inversas: arco seno, arco coseno, arco tangente, ...
Exponencial y logaritmos neperiano, decimal y en base 2.
Hiperbólicas: seno hiperbólico, coseno hiperbólico, tangente hiperbólica, ...
Hiperbólicas inversas: argumento seno hiperbólico, coseno, tangente, ...
Raíz cuadrada, parte entera, valor absoluto, ...
1.5.1 sqrt, abs.
La función sqrt realiza la raíz cuadrada de un número, si este es negativo da como resultado un complejo.
La orden abs calcula el valor absoluto de un número, si este es complejo devuelve su módulo.
Ejemplo 12
sqrt(4),sqrt(-4)
abs(4),abs(-4),abs(3+4*i)
1.5.2 exp,log,log10
Los mandatos exp, log y log10 realizan respectivamente la exponencial, el logaritmo neperiano y el logaritmo decimal de un número.
Ejemplo 13
UNIDADES TECNOLÓGICAS DE SANTANDER
log(ans) log10(10)
1.5.3 sin, cos, tan, atan, atan2
Las funciones trigonométricas tienen el argumento en radianes, aparte de estar el nombre en inglés.
Ejemplo 14
sin(pi/2) sin(90)
Cuidado, en este ejemplo MATLAB dará un resultado para ambas ordenes, pero solo la primera es correcta, pues su argumento de entrada es correcto, ya que el ángulo esta en radianes.
La función atan devuelve la arcotangente de un número, sin embargo la función atan2 que en este caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante.
Ejemplo 15
Si intentamos determinar el ángulo de un punto (x,y) en el plano este viene dado por arcotangente(y/x), teniendo en cuenta el cuadrante para dar la respuesta correcta, Los puntos (1,1) y (-1,-1) se obtendrian con el mismo valor de la arcotangente, que si expresamos el resultado en grados seria
atan(1)*180/pi
ans = 45
luego considerando el cuadrante obtendriamos que los ángulos son respectivamente 45 y 225 (o –135) grados. Ahora bien si utilizamos la instrucción atan2(y,x) el resultado se obtiene directamente
atan2(1,1)*180/pi,atan2(-1,-1)*180/pi
ans = 45 ans = -135
1.5.4 sinh, cosh, tanh
Estas órdenes representan a las funciones hiperbólicas, recuerda que para números reales se definen como:
Ejemplo 16
UNIDADES TECNOLÓGICAS DE SANTANDER
cosh(1),(exp(1)+exp(-1))/2 tanh(1),sinh(1)/cosh(1)
Una característica destacable de MATLAB es que evalúa una función sobre todas las componentes de un vector simultáneamente, lo cual es muy práctico.
Ejemplo 17
x = -1:0.01:1; y = tanh(x); plot(x,y)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas pero no menos útiles, tanto funciones elementales que puedes consultar su sintaxis con help elfun. Y otras funciones especiales disponibles con help specfun.
1.6 Gráficas
1.6.1 Tipos de línea, colores y marcadores.
En la siguiente tabla se muestran los tipos de color, marcadores y tipos de línea que admite la instrucción gráfica plot. Así como el código que los genera en el gráfico.
Ejemplo 18
UNIDADES TECNOLÓGICAS DE SANTANDER
1.7 Ficheros de función
1.7.1 Función y=f(x)
La programación en MATLAB de efectúa mediante ficheros.m. Son simplemente ficheros de texto que contienen órdenes de MATLAB. Su utilización requiere:
Editar el fichero con el editor de MATLAB o con un editor ASCII.
Guardarlo con extensión .m.
Indicar a MATLAB dónde está el archivo con: path(path,'dirección').
Ejecutarlo escribiendo en la línea de órdenes el nombre de fichero y los parámetros de entrada necesarios.
Como ejemplo, creamos un fichero para evaluar la llamada función de Runge, que utilizaremos más adelante en la teoría de interpolaciones:
Debemos escribir en el editor:
function y=runge(x) % Función de Runge y=1./(1+25.*x.^2);
Después de grabarlo con el nombre runge.m, e indicar el path a Matlab, podremos ejecutar llamadas a la función.
Nótese que se han utilizado las operaciones con el punto delante, esto es por si la entrada es un vector o matriz efectuará las operaciones indicadas para cada uno de los elementos.
A su vez hay que fijarse que el nombre asignado a la función es el mismo que el del archivo que se graba en el disco, también es aconsejable que este no contenga signos ni acentos y si es posible no supere 8 caracteres.
Ejemplo 19
runge(0) runge([-1 0 1])
El fichero runge.m es un archivo de función, al incluir la palabra clave function. A continuación es obligatorio poner el nombre de función.
Notar que las primeras líneas de comentario que escribimos inmediatamente después del
nombre de la función son las que se obtienen con el help de matlab
UNIDADES TECNOLÓGICAS DE SANTANDER
El nombre de función suele ir precedido de los argumentos de salida, entre corchetes, y seguido de los nombres de los argumentos de entrada, entre paréntesis. Entre estos y el nombre de función aparece el signo 'igual'.
Consideremos la función que da las coordenadas cartesianas de un punto, a partir de su radio vector y su ángulo respecto al eje OX:
Que llamaremos por ejemplo cartpol, en referencia al paso de polares a cartesianas, la definiríamos de la siguiente forma:
function [x,y]=cartpol(r,z) % Entradas 'r':radio vector % y 'z' ángulo respecto al eje OX % Salidas 'x,y': coordenadas cartesinas x=r.*cos(z);
y=r.*sin(z);
Ejemplo 20
ro=ones(1,3);
UNIDADES TECNOLÓGICAS DE SANTANDER
TEOREMA DE ROLLE
S i u n a f u n c i ó n e s :
C o n t i n u a e n [ a , b ]
UNIDADES TECNOLÓGICAS DE SANTANDER
Y s i f ( a ) = f ( b )
E n t o n c e s , e x i s t e a l g ú n p u n t o c ( a , b ) e n e l q u e f ' ( c ) = 0.
L a i n t e r p r e t a c i ó n g r á f i c a d e l t e o r e m a d e R o l l e n o s d i c e q u e h a y u n p u n t o e n e l q u e l a t a n g e n t e e s p a r a l e l a a l e j e d e a b s c i s a s .
E j e m p l o s
1. E s t u d i a r s i s e v e r i f i c a e l t e o r e m a d e R o l l e e n e l i n t e r v a l o [ 0 , 3 ] d e l a f u n c i ó n :
E n p r i m e r l u g a r c o m p r o b a m o s q u e l a f u n c i ó n e s c o n t i n u a e n x = 1 .
UNIDADES TECNOLÓGICAS DE SANTANDER
C o m o l a s d e r i v a d a s l a t e r a l e s n o c o i n c i d e n , l a f u n c i ó n n o e s d e r i v a b l e e n e l i n t e r v a l o ( 0 ,
3 ) y p o r t a n t o n o s e c u m p l e e l t e o r e m a d e R o l l e .
2 .¿ E s a p l i c a b l e e l t e o r e m a d e R ol l e a l a f u n c i ó n f ( x ) = l n ( 5 − x2) e n e l i nt e r v a l o [ − 2 , 2 ] ?
E n p r i m e r l u g a r c a l c ul a m o s e l d o m i ni o d e l a f u n c i ó n .
L a f u n c i ó n e s c o n t i n u a e n e l i n t e r v a l o [ − 2 , 2 ] y d e r i v a b l e e n ( − 2 , 2 ) , p o r q u e l o s
i n t e r v a l o s e s t á n c o n t e n i d o s e n .
A d e m á s s e c u m p l e q u e f ( − 2 ) = f ( 2 ) , p o r t a n t o e s a p l i c a b l e e l t e o r e m a d e R ol l e .
3 .C o m p r o b a r q u e l a e c u a c i ó n x7 + 3 x + 3 = 0 t i e n e u n a ú n i c a s o l u c i ó n r e a l .
L a f u n c i ó n f ( x ) = x7 + 3 x + 3 e s c o n t i n u a y d e r i v a b l e e n ·
T e o r e m a d e B o l z a n o.
f ( − 1 ) = − 1
UNIDADES TECNOLÓGICAS DE SANTANDER
Po r t a n t o l a e c u a c i ó n t i e n e a l m e n o s u n a s o l u c i ó n e n e l i n t e r v a l o ( − 1 , 0 ) .
T e o r e m a d e R o l l e.
f ' ( x ) = 7 x6 + 3
C o m o l a d e r i v a d a n o s e a n u l a e n n i n g ú n v a l o r e s t á e n c o n t r a d i c c i ó n c o n e l t e o r e m a d e R o l l e, p o r t a n t o s ó l o t i e n e u n a r a í z r e a l .
Ejemplo Matlab
syms x t w % declaracion de un objeto simbolico v = []; % variable auxiliar% Ejemplo 1 ---y_1 = 4*x^3-9*x; % funcion dada
disp('--- Ejemplo 1 ---'); disp('y_1(x) = ')
pretty(y_1) disp('|')
disp(' Teorema de Rolle')
% En este problema la cota inferior es -1.5 y la superior es 1.5 a_1 = input('cota inferior: ') % captura una entrada en la ventana de b_1 = input('cota superior: ') % comandos
disp('')
disp('Verificando las hipotesis del teorema de Rolle') disp('i) derivada de la funcion y_1(x) = ')
der_1 = diff(y_1,x); % derivada de una funcion pretty(der_1)
y1 = sym2poly(y_1); % pasa los coeficientes de una funcion % polinomial a un vector
disp('ii) raices (cruces por el eje x) de la funcion y_1(x) = ') r_1 = roots(y1) % devuelve las raices de una funcion polinomial v = [a_1 b_1]; % las cotas de entrada se guardan en un vector % ciclo for para evaluar las 2 raices
for n = 1:2
y_11(n) = 4*v(n).^3-9.*v(n);% funcion dada, igual que la simbolica, end % se utilizara como auxiliar para evaluar
% la funcion en la cota inferior y superior
% condicional if para tomar la decision si se cumple o no la condicion iii) if(y_11(1) ~= 0)
disp('no se cumple la condicion iii, f(a) = f(b) = 0 !!!') break
else
disp('se cumple la condicion iii), f(a) = f(b) = 0 !!!') end
% encontrando el numero c que satisface la hipotesis del teorema d1 = sym2poly(der_1); % captura los coeficientes de la derivada disp('raices que satistacen Dx(y(x)) = 0')
r_2 = roots(d1)
UNIDADES TECNOLÓGICAS DE SANTANDER
for n = 1 : 2
y_12(n) = 4*w(n).^3-9.*w(n); % funcion original evaluada en los puntos % criticos
end
figure('Name','Ejemplo 1') ezplot(y_1,[a_1 b_1]) hold on
grid
axis([-1.5 1.5 -8 8]) for n = 1:2
y_t(n) = y_12(n); % variable auxiliar
y_t1(n) = poly2sym(y_t(n)) % los elementos de un vector los pasa % a una funcion polinomial simbolica
ezplot(y_t1(n)) end
title('y_{1} = 4*x^3-9*x') disp('---')
TEOREMA DEL VALOR MEDIO O TEOREMA DE LAGRANGE
Si f es una función en la que se cumple que: f es continua en el intervalo cerrado [a, b] f es diferenciable en el intervalo abierto (a, b)
Entonces, existe un número c que pertenece a (a, b) tal que:
UNIDADES TECNOLÓGICAS DE SANTANDER
A continuación se observa una ilustración de la interpretación geométrica del Teorema del Valor medio. El teorema afirma que si la función es continua en [a,b] y diferenciable en (a,b), existe un punto C en la curva, entre A y B, donde la recta tangente es paralela a la recta que pasa por A y B. Así se obtiene:
EL TEOREMA DE TAYLOR
INTRODUCCION:
Sabemos que la recta tangente, como la mejor aproximación lineal a la gráfica de f en las cercanías del punto de tangencia (xo, f(xo)), es aquella recta que pasa por el mencionado punto y tiene la
UNIDADES TECNOLÓGICAS DE SANTANDER
Nótese que cerca del punto de tangencia, la curva se comporta casi linealmente, como se puede apreciar si hacemos acercamientos a la gráfica anterior
Como observamos en los problemas de diferencial, si x se encuentra "lejos" de xo, la recta tangente
ya no funciona como aproximador. Parece pues natural preguntarnos por otra función (no lineal) que sirva a nuestros propósitos. La recta tangente es un polinomio de grado 1, el más sencillo tipo de función que podemos encontrar, por lo que podemos tratar de ver si es posible encontrar un
polinomio de grado dos que nos sirva para aproximar nuestra función en un rango más grande que la recta tangente.
Veamos que sucede si en lugar de aproximarnos con una recta tratamos de hacerlo con una parábola, es decir tratemos de encontrar de todas las parábolas que pasan por (xo, f(xo)), la que mejor
UNIDADES TECNOLÓGICAS DE SANTANDER
Naturalmente a esta parábola P(x) = a + b(x- xo) + c(x- xo)2 debemos pedirle que pase por el punto,
que tenga la misma inclinación (primera derivada) y la misma concavidad que la parábola (segunda derivada), es decir debemos pedirle:
a) P(xo) = f (xo)
b) P ' (xo) = f ' (xo)
c) P '' (xo) = f '' (xo)
Como P(xo ) = a, P'(x) = b y P''(x) = 2c, concluimos que
a = f (xo), b = f ' (xo) y c = (1/2)f ''(xo)
quedando la ecuación de la parábola que mejor aproxima a la curva en las cercanías de (xo,f(xo)),
como:
UNIDADES TECNOLÓGICAS DE SANTANDER
Verifiquemos lo anterior en el caso particular de la función , xo = 0 y valores de x cercanos
a 0
En la tabla de abajo observamos que la parábola tangente a la gráfica de f en (0,1) efectivamente es una mejor aproximación para f que la recta tangente, para valores cercanos a 0.
x 1+x
1 2 2.5 2.718281828
0.5 1.5 1.625 1.6487212707
0.3 1.3 1.345 1.34985880757
0.1 1.1 1.105 1.10517091807
0.01 1.01 1.01005 1.010050167
0.001 1.001 1.0010005 1.00100050016
UNIDADES TECNOLÓGICAS DE SANTANDER
LOS COEFICIENTES DE UN POLINOMIO, EN TERMINOS DE SUS DERIVADAS
Un polinomio de grado n está completamente determinado por sus (n+1) coeficientes.
P(x) = ao + a1 (x- xo) + a2 (x- xo)2 + ... + an (x- xo)n
En lo sucesivo, expresaremos al polinomio en potencias de (x - xo) y encontraremos sus coeficientes
en términos de las derivadas evaluadas en xo.
P '(x) = a1 +2 a2 (x- xo) + 3a3 (x- xo)2 + 4a4 (x-xo )3 +... + nan (x- xo)n-1
P(2)(x) = 2 a2 + (2)(3)a3 (x- xo ) + (3)(4)a4 (x-xo )2 +... + n(n-1)an (x- xo)n-2
P(3)(x) = (2)(3)a3 + (2)(3)(4)a4 (x-xo ) +... + n(n-1)(n-2)an (x- xo)n-3
.
.
.
P(n)(x) = (1)(2)...(n) an = n! an
De donde, evaluando cada una de estas derivadas en xo, obtenemos los coeficientes del polinomio:
ao = P(xo), a1 = P '(xo), , , ... , .
y en consecuencia la expresión del polinomio será:
...( I )
Observación: En base a lo anterior, podemos afirmar que, dado un polinomio cualquiera
podemos expresarlo en potencias de (x-x0) para cualquier xo. Asimismo si conocemos las
derivadas en un punto xo, podemos encontrar el polinomio, como se verá en los siguientes
ejemplos:
Ejemplo 1. Encuentre el polinomio de grado 4 que satisface:
P(2) = 3, P '(2) = 5, P (2) (2) = 4, P (3) (2) =24 y P (4) (2) =48
Solución: Para encontrar la expresión del polinomio en términos de (x-2), simplemente sustituimos
UNIDADES TECNOLÓGICAS DE SANTANDER
y por lo tanto el polinomio buscado es:
P(x) = 3 + 5(x-2) + 2(x-2)2 + 4(x - 2)3 + 2(x - 2)4
Ejemplo 2. Exprese al polinomio P(x) = 7x3 + x2 + 8 en potencias de (x - 1).
Solución: Evaluemos al polinomio y a sus 3 primeras derivadas en xo = 1.
P(x) = 7x3 + x2 +8 P(1) = 16
P ' (x) = 21x2 + 2x P ' (1) = 23 P (2) (x) = 42x + 2 P (2) (1) = 44
P (3) (x) = 42 P (3) (1) = 42
Sustituimos en ( I ) con xo =1 y n = 3, obteniendo la expresión busacada:
P(x) =16 + 23(x - 1) + (44/2)(x - 1)2 + (42/6)(x - 1)3
Es decir:
P(x) =16 + 23(x - 1) + 22(x - 1)2 + 7(x - 1)3
Que puede comprobarse fácilmente efectuando las operaciones, para concluir que: 7x3 + x2 +8 = 16 + 23(x - 1) + 22(x - 1)2 + 7(x - 1)3
Volviendo a la representación (I), si f no es un polinomio, obviamente no podrá representarse de la misma manera, sin embargo en vista de que para, la recta tangente, que es un polinomio de grado 1, se cumple que para x cercano a xo :
y gráficamente observamos que para x cercano a xo, la función es muy parecida a su "parábola
UNIDADES TECNOLÓGICAS DE SANTANDER
surge de manera natural preguntarnos si para valores cercanos a xo, se cumplirá:
y podríamos intentar verlo en algunos casos particulares. Al polinomio:
le llamaremos el POLINOMIO DE TAYLOR de grado n para f, en el punto xo.
En estos términos, la recta tangente y la parábola tangente, vienen siendo los polinomios de Taylor para f de grados 1 y 2 respectivamente.
En la siguiente tabla compararemos a la función exponencial (última columna) con los polinomios de Taylor correspondientes de grados 1 hasta 4. Obsérvese que la segunda columna corresponde a la recta tangente y la tercera columna a la parábola tangente.
x 1+x
1 2 2.5 2.666666 2.7083333 2.718281828
0.5 1.5 1.625 1.645833 1.6484375 1.6487212707
0.3 1.3 1.345 1.3495 1.3498375 1.34985880757
0.1 1.1 1.105 1.10516667 1.10517083 1.10517091807
0.01 1.01 1.01005 1.01005017 1.01005017 1.010050167
0.001 1.001 1.0010005 1.00100050000 1.00100050017 1.00100050016
Si analizamos con detenimiento la información proporcionada por esta tabla, veremos lo siguiente:
1. En cada columna, vemos que la aproximación del correspondiente polinomio de Taylor es mejor cuanto más cercano se encuentre x a 0.
2. En cada renglón, vemos que para cada valor fijo de x, no importa si está cerca o no de 0, la aproximación va mejorando conforme aumentamos el grado del polinomio de Taylor.
UNIDADES TECNOLÓGICAS DE SANTANDER
Vea la siguiente animación, en la cual se representan sucesivamente los primeros 10 polinomios de Taylor, aproximándose cada vez más a las funciones:
f(x) = exp(x) f(x) = sen(x) f(x) = cos(x)
El Teorema de Taylor que a continuación enunciaremos sin demostración, nos dice que bajo ciertas condiciones, una función puede ser expresarse como un polinomio de Taylor mas un cierto error, es decir
f(x) = Pn(x) + En
y además nos dirá como estimar este error.
TEOREMA DE TAYLOR. Sea f continua en [a, b] y con derivadas hasta de orden n continuas
también en este intervalo cerrado; supóngase que f (n+1) (x) existe en (a,b), entonces para x y
xo(a,b) se tiene:
donde En = y c es un punto que se encuentra entre x y xo.
UNIDADES TECNOLÓGICAS DE SANTANDER
con E0 = para c entre x y xo, es decir,
f(x) = f(xo) + f ' (c) (x - xo) con c entre x y xo, o bien la conocida expresión para el Teorema del Valor
Medio:
LA FORMULA DE TAYLOR Y DE MAC LAURIN
A la Expresión:
le llamaremos FORMULA DE TAYLOR DE f EN xo, y en en el caso particular de x0 = 0:
le llamaremos FORMULA DE MAC LAURIN DE f.
Ejemplo 3. Encuentre la fórmula de Mac Laurin para las siguientes funciones:
a) f(x) = senx
b) f(x) = cosx
c) f(x) = ex
Solución: Encontremos primero la fórmula de Mac Laurin para f(x) = senx.
f(x) = senx f(0) = 0
f ' (x) = cos(x) f ' (0) = 1
UNIDADES TECNOLÓGICAS DE SANTANDER
f (4) (x) = sen(x) f (4) (0) = 0
f (5) (x) = cos(x) f (5) (0) = 1
.
.
.
En general observamos que las derivadas de orden par, evaluados en cero se anulan y las impares valen alternadamente 1 y -1.
En consecuencia la Fórmula de mac Laurin para f(x) = sen x es:
que expresada en notación sumatoria nos queda como:
Análogamente podemos encontrar que:
o bien:
0 bien
UNIDADES TECNOLÓGICAS DE SANTANDER
CALCULO DE APROXIMACIONES Y ESTIMACION DEL ERROR
A continuación veremos algunos ejemplos para aproximar una función utilizando la fórmula de Taylor con residuo.
Ejemplo 4. Encuentre un valor aproximado para sen(35º) utilizando un polinomio de Taylor de
grado 3 y estime el error.
Solución. Al igual que cuando utilizamos la recta tangente para efectuar aproximaciones, queremos
aproximar a la función sen(x) en el valor de 35º, para lo cual debemos conocer a f y sus derivadas en un punto xo cercano a éste el cual es
xo = /6 (30º expresados en radianes), es decir:
a) f(x) = sen(x)
b) xo = /6 30º en radianes
f (x) = sen(x) f( /6) = 0.5
f ' (x) = cos(x) f ' ( /6) = 0.8660254
f '' (x) = -sen(x) f '' ( /6) = -0.5
f (3) (x) = -cos(x) f ' ( /6) = -0.8660254 f (4) (x) = sen(x)
En este caso particular la fórmula de Taylor nos quedaría:
Que sustituyendo, nos da la fórmula de Taylor de f(x) = sen(x) en xo = /6
Esta expresión nos servirá para estimar valores de sen(x) para x cercanos a /6.
UNIDADES TECNOLÓGICAS DE SANTANDER
sen(35º) = 0.5 + 0.0755749 - 0.001903858 - 0.000095922 + E3
sen(35º) = 0.57357512 + E3
En la expresión para el error al aproximar con un polinomio de grado 3
E3 = = (0.00000241)sen(c)
El error siempre lo obtendremos en términos de un valor c entre x y xo, sin embargo como esta
indeterminada c aparece en sen(c), la cual se encuentra acotada entre -1 y 1, es decir
entonces podremos tener una cota para el error, es decir,
y en consecuencia la aproximación se obtuvo con un error que no excede de 0.00000241
Observación: En general si la (n+1) derivada de f está acotada por una constante M en el intervalo (a,b) que se menciona en el Teorema de Taylor, es decir, si
para x en el intervalo (a,b)
entonces
.
Así pues, si al aproximar por un polinomio de grado n, la siguiente derivada está acotada por M>0, entonces podemos estimar de la siguiente manera el error.
Claramente vemos que si | x - xo | 1 , cuando n crece indefinidamente el numerador de la fracción
UNIDADES TECNOLÓGICAS DE SANTANDER
decir, En 0 cuando n . Con un poco más de análisis, podemos ver que en general
para todo valor real de k
por lo que si | x - xo | > 1 también se cumplirá que En 0 cuando n . Puede observarse en
casos particulares que si x está alejada de xo, para lograr una aproximación prefijada muy pequeña,
debemos tomar un polinomio de Taylor con grado muy grande.
Ejemplo 5. Encuentre un valor aproximado para utilizando un polinomio de grado dos y
estime el error.
Solución. Los datos a considerar en la fórmula de taylor son:
a) f(x) = b) xo = 27
f(27) = 3
La fórmula de Taylor, es este caso nos queda:
y al sustituir x =28, obtenemos:
UNIDADES TECNOLÓGICAS DE SANTANDER
En la expresión para el error al aproximar con un polinomio de grado 2
E2 =
El error siempre lo obtendremos en términos de un valor c entre 27 y 28, sin embargo como esta indeterminada c aparece en la fracción de la derecha, el error será lo más grande posible cuando el denominador sea lo más pequeño posible, lográndose esto en c = 27, es decir:
y en consecuencia la aproximación se obtuvo con un error que no excede de 0.000056
Ejemplo 6. Encuentre un valor aproximado para utilizando un polinomio de Taylor de grado 3 y
estime el error.
Solución. Obsérvese que = e0.5, es decir se nos pide evaluar a la función exponencial en 0.5, el
cual es un valor cercano a x0 = 0, punto en que conocemos a la función exponencial y a sus
derivadas.
Así pues encontremos la fórmula de Taylor
para f(x) = ex en xo = 0 y posteriormente evaluaremos en x = 0.5
Como la función exponencial y todas sus derivadas son iguales, f (n) (0) = 1, la fórmula nos queda:
evaluando en x = 0.5, tenemos:
e0.5 = 1.64583333 + E3
UNIDADES TECNOLÓGICAS DE SANTANDER
E3 =
Como f (4) (x) = ex , para x [0, 1], es decir la derivada está acotada por 3 y en consecuencia
= 0.0078125.
En base a todo lo anterior, podemos afirmar que:
1.645833333 con un error que no excede de 8 milésimas.
Observación: Nótese que la estimación del error puede hacerse independientemente del cálculo de la aproximación, es decir, antes de calcular ésta podemos preguntarnos por el grado del polinomio de Taylor que nos dé la precisión deseada.
Ejemplo 7. ¿De que grado hay que tomar el polinomio de Taylor para encontrar una aproximación a
con un error que no exceda de una diezmilésima?.
Solución. En referencia al ejemplo anterior, el error que se comete al utilizar un polinomoio de
Taylor de grado n es:
En =
De nuevo la (n+1)-ésima derivada está acotada por 3, obteniendo:
Para n = 4, = 0.00078, es decir el error no excede de 7 diezmilésimas.
Para n = 5, = 0.000065, es decir el error no excede de 6 cienmilésimas,
UNIDADES TECNOLÓGICAS DE SANTANDER
La fórmula de Taylor para f(x) = ex en xo = 0 para n = 5 es:
y evaluando en x = 0.5, obtenemos:
= 1.648697917
Ejemplo 8. ¿De que grado hay que tomar el polinomio de Taylor para encontrar una aproximación
al número e de Euler con un error que no exceda de una millonésima?.
Solución. Nótese que tomaremos f(x) = ex con xo = 0 y x = 1, y aunque 1 esté "alejado" del 0, como
las derivadas están acotadas, podemos encontrar la aproximación con el grado de precisión que se desee con tal de tomar un polinomio de Taylor de grado "suficientemente grande".
Veamos pues de que grado tendremos que tomar el polinomio.
El error que se comete al utilizar un polinomio de Taylor de grado n es:
En =
De nuevo la (n+1)-ésima derivada está acotada por 3, obteniendo:
Para n = 5, = 0.0039, es decir el error no excede de 3 milésimas.
Para n = 8, = 0.000008, es decir el error no excede de 8 millonésimas.
Para n = 9, = 0.0000008, es decir el error no excede de 8 diezmillonésimas.
Por lo tanto debe tomarse un polinomio de grado 9.
UNIDADES TECNOLÓGICAS DE SANTANDER
expresado en notación sumatoria:
y evaluando en x = 1, obtenemos:
= 2.718281526
CRITERIO DE MAXIMOS Y MINIMOS UTILIZANDO DERIVADAS DE ORDEN SUPERIOR.
El criterio de la segunda derivada para encontrar valores extremos para una función de una variable, funciona cuando para un punto crítico xo, la segunda derivada evaluada en xo es diferente de cero,
siendo un valor máximo si f '' (xo) < 0 y un valor mínimo si f '' (xo) > 0.
Sin embargo hay funciones con valores extremos en un punto crítico xo en las que también se anula
la segunda derivada, como se muestra en el siguiente sencillo ejemplo:
Ejemplo 9. Utilice el criterio de la segunda derivada para encontrar los valores extremos de la
función f(x) = x4.
Solución: Los puntos críticos satisfacen f ' (x) = 4x3 = 0
Lo cual se satisface únicamente para xo = 0.
Como f '' (x) = 12x2, entonces f '' (0) = 0, fallando el criterio de la segunda derivada. Si utilizamos el criterio de la primera derivada, vemos fácilmente que esta función tiene un valor mínimo en xo = 0.
A continuación demostraremos, utilizando el Teorema de Taylor, un criterio para detectar valores extremos relativos, cuando el de la segunda derivada falla.
Teorema: Sea con n derivadas continuas en un intervalo (a,b) que contiene a xo y
supóngase que f ' (xo) = 0, f '' (xo) =0, f (3) (xo) = 0, ... , f (n-1) (xo) = 0 y f (n) (xo) 0; entonces si n
es par:
UNIDADES TECNOLÓGICAS DE SANTANDER
a) f (n) (xo) < 0 f toma un máximo relativo en xo.
b) f (n) (xo) > 0 f toma un mínimo relativo en xo.
2. Si n es impar, la función no alcanza un valor extremo en xo.
Demostración: 1. Supongamos primero que n es par.
Como f (n) (x) es continua en un intervalo (a, b) que contiene a xo y f (n) (xo) < 0, podemos encontrar
un subintervalo
(xo - , xo + ) (a, b) de tal manera f (n) (x) sea negativa en este subintervalo. Gráficamente lo
vemos en la siguiente ilustración para la función f (n):
Consideremos x en el intervalo (xo - , xo + ), por el Teorema de Taylor:
con En = y c entre x y xo
como las primeras (n-1) derivadas se anulan en xo, se tiene:
f (n) (c) < 0 por estar c entre x y xo y a su vez estos puntos en el intervalo (xo - , xo + ) donde la
n-ésima derivada es negativa.
Al ser f (n) (c) < 0 y n par, la expresión (x - xo)n < 0 y por lo tanto y en
consecuencia f(x) < f(xo) para toda x en el intervalo (xo - , xo + ), lo cual significa que f(xo) es el
UNIDADES TECNOLÓGICAS DE SANTANDER
La demostración de b) y 2) se dejan como ejercicio.
Ejemplo 10. Encuentre los valores extremos de f(x) = x4 + 4x3 + 6x2 +4x
Solución: Encontremos primero los puntos críticos:
f '(x) = 4x3 + 12x2 + 12x +4 = 0
f '(x) = 4(x3 + 3x2 + 3x + 1) = 4(x + 1)3 = 0 x = -1 Por lo tanto el único punto crítico es xo = -1
Tratemos ahora de determinar su naturaleza:
f ''(x) = 12x2 + 24x + 12 f ''(-1) = 0 f (3)(x) = 24x + 24 f (3)(-1) = 0
f (4)(x) = 24 f (4)(-1) = 24
Como la primera derivada diferente de cero en -1 es la de grado 4 y 4 es par, el signo positivo de esta cuarta derivada nos dice que f alcanza un mínimo en xo = -1.
Comandos de Matlab
taylor
taylor(f,n+1,a)
Calcula el polinomio de Taylor de la función f en el punto a de grado n.
Ejemplo syms x f=x*sin(x+1); taylor(f,5,0)
%Devuelve el polinomio de Taylor de f en el punto 0 de grado 4.
Herramienta taylortool
En esta práctica utilizaremos una herramienta de Matlab que permite obtener el polinomio de Taylor de una función y su representación gráfica junto con la función.
UNIDADES TECNOLÓGICAS DE SANTANDER
>> taylortool
Se abrirá una ventana (ver figura) en la que puedes introducir la función, el grado del polinomio y el intervalo en el que quieres representar la función y el correspondiente polinomio.
EJERCICIOS
I. En cada caso encuentre los polinomios de Taylor de grado uno, grado dos, grado tres, y
grado cuatro en el punto xo que se indica., escríbalos en la tabla como P1(x), P2(x), P3(x) y
P4(x), y complete la tabla evaluando en los puntos que se indican en la columna de la izquierda.
P1(x) P2(x) P3(x) P4(x)
UNIDADES TECNOLÓGICAS DE SANTANDER
xo + 0.9
xo + 0.3
xo + 0.1
xo + 0.01
xo + 0.001
xo - 1.1
xo - 0.9
xo - 0.3
xo - 0.1
xo - 0.01
xo - 0.001
1) en xo = 0
2) en xo = 0
3) en xo = /6
4) f(x) = tanx en xo = /3
5) f(x) = lnx en xo = 1
6) f(x) = arctanx en xo = 1
II. Exprese en cada caso al polinomio dado, en las potencias x - xo que se indican.
1) P(x) = 3x4 + 2x + 5 en potencias de x - 2
2) P(x) = 3x4 + 2x + 5 en potencias de x - 1 3) P(x) = 3x4 + 2x + 5 en potencias de x + 1
4) P(x) = 4 - x2 +6x3 en potencias de x + 1
5) P(x) = 2 + (x - 3)2 -x4 en potencias de x + 4
UNIDADES TECNOLÓGICAS DE SANTANDER
6) P(x) = x4 en potencias de x - 1
III. Encuentre en cada caso un polinomio que satisface:
1) P(0) = 7, P ' (0) = 3, P(2) (0) = 8, P(3) (0) =54
2) P(1) = 1, P ' (1) = 5, P(2) (1) = 32, P(3) (1) =42
3) P(-2) = 2, P ' (-2) = 4, P(2) (-2) = 8, P(3) (-2) =66
IV. Encuentre en cada caso la aproximación que se pide, utilizando el teorema de Taylor y
estime el error.
1) polinomio de grado 2
2) polinomio de grado 3
3) polinomio de grado 3
4) sen 6º polinomio de grado 3 5) sen 6º polinomio de grado 6
6) arctan(1.3) polinomio de grado 3
7) ln (1.015 ) polinomio de grado 3 8) ln (1.8 ) polinomio de grado 5
9) cos (65º) polinomio de grado 4
10) tan ( 44º ) polinomio de grado 2
V. Diga en cada caso de que grado hay que tomar el polinomio de Taylor para obtener la
aproximación deseada, y obténgala.
a) cos (32º ) con un error menor que 0.00001
b) sen (700 ) con un error menor que 0.0001
UNIDADES TECNOLÓGICAS DE SANTANDER
d) con un error menor que 0.0001
e) con un error menor que 0.0001
f) con un error menor que 0.00001
g)
e con un error menor que 0.000000001
h) ln(1.9) con un error menor que 0.00001
VI.
Utilizando el Teorema de Taylor, demuestre que si f '(x) = 0 para toda x real, entonces f(x) es una función constante.
Utilizando el Teorema de Taylor, demuestre que si f(2)(x) = c (constante) para toda x real, entonces f(x) es un polinomio.
METODO DE BISECCION
En matemáticas, el método de bisección es un algoritmo de búsqueda de raíces que trabaja dividiendo el intervalo a la mitad y seleccionando el subintervalo que tiene la raíz.
Este es uno de los métodos más sencillos y de fácil intuición para resolver ecuaciones en una variable. Se basa en el teorema del valor intermedio (TVI), el cual establece que toda
función continua f en un intervalo cerrado *a,b+
toma todos los valores que se hallan entre f(a) y
f(b). Esto es que todo valor entre f(a) y f(b) es la imagen de al menos un valor en el intervalo *a,b+.
En caso de que f(a) y f(b) tengan signos opuestos,
el valor cero sería un valor intermedio entre f(a) y
f(b), por lo que con certeza existe un p en *a,b+
que cumple f(p)=0. De esta forma, se asegura la
existencia de al menos una solución de la ecuación f(a)=0.
EJEMPLO:
UNIDADES TECNOLÓGICAS DE SANTANDER
f(x) = ½ x² – 1
1. Escoger a y b tal que f(a).f(b)<0 a = 1 b = 2 Error aprox: 0.5
f(a) = ½(1)²-1 f(b) = ½(2)²-1 f(a) = -0.5 f(b) = 1
F(a)*f(b) = -0.5 sicumple la primera condición
2. Hacemos r = a+b/2 r = 1.5
3. Determinar el subintervalo en el que esta R
• Si f(a)*f(r) <0 r = b
• Si f(a)*f(r) >0 r = a
• Si f(a)*f(r) =0 r = R
4. Iteramos hasta el error aproximado de 0.5
Primera iteración f(1)*f(1.5) = (-0.5)*(0.125) <0 r=b
Segunda iteración f(1)*f(1.25) = (-0.5)*(-0.218) >0 r=a Ea=ractual –ranterior/ractual
Tercera iteración f(1.25)*f(1.375) = (-0.218)*(-0.05) >0 r=a Cuarta iteración f(1.375)*(1.4375) = (-0.05)*(0.03) <0 r=b Quinta iteración f(1.375)*(1.4063) = (-0.05)*(-0.011) >0 r=a Sexta iteración f(1.4063)*(1.4219) = (-0.011)*(0.01) <0 r=b Séptima iteración f(1.4063)*(1.4141) = (-0.011)*(-0.00016) >0 r=a
EJEMPLO MATLAB METODO BISECCIÓN disp(' METODO DE LA BISECCION ');
disp(' --- '); f=input('INGRESE FUNCION: ','s');
xai=input('INGRESE LIMITE INFERIOR DEL INTERVALO a: '); xbi=input('INGRESE LIMITE SUPERIOR DEL INTERVALO b: '); tol=input('INGRESE PORCENTAJE DE ERROR: ');