Professional Documents
Culture Documents
Apuntes de Programacion II
autor:
Introduccion
Este libro est estructurado tomando como referencia el temario para el curso de Progra-
mación II impartido en la Escuela Superior de Computo del Instituto Politécnico Nacional.
Los temas analizados difieren sólo un poco en el nombre y en el orden en que son presentados
en el temario correspondiente.
El estudio del análisis numérico se basa en buscar alternativas para resolver problemas
cuya solucion es difı́cil usando métodos directos, para ello, el análisis numérico se basa en la
alternativa de métodos numéricos.
En varias areas de la ingenierı́a y las ciencias, se busca resolver problemas utilizando he-
rramientas del algebra lineal o de las ecuaciones diferenciales; estos problemas, por ejemplo,
suponen que se trabajan sobre funciones continuas, que para efectos prácticos de ejemplifi-
cación, se obtiene lo que se desea, sin embargo, en la vida real, varios problemas de los que
se plantean, no se conocen muy bien su naturaleza, generalmente se conocen o se obtienen
mediciones por medio de aparatos y estos son registrados. Por ejemplo, un fı́sico
experimen- tal, en un laboratorio registra datos de un experimento el cual repite varias
veces, registra
sus datos y ahora lo que le interesa conocer, es una funcion continua de tal manera, que si
se restringe a los puntos que él registro, exactamente se comporte como en el experimento
realizado. De manera, pasamos de los problemas continuos a los totalmente
está discre-
tos, que es como se obtienen mediciones y a partir de estas mediciones discretas, pasamos
nuevamente al espacio continuo, de ahı́ la importancia del análisis numérico.
Otra problematica interesante donde se puede notar la importancia del análisis numérico
es la siguiente: en un curso de Calculo, se hace notar
√ que la recta esta compuesto por una
infinidad de números, y que números como π, e y 2 (números irracionales) no tienen una
representación finita en su notacion decimal, esto significa que a ninguna persona le bastarı́a
su vida completa para escribir en notacion decimal alguno de estos números, entonces, como
lo hace una computadora. La parte que nos interesa de una computadora, es aquella donde
almacena la informacion para hacer cálculos, para representar números, sumas, etc., la parte
que nos interesa es la memoria. Si finalmente una computadora está compuesta en su total-
idad de circuitos, con una cantidad finita de estos, entonces como le hace para almacenar
un número irracional como los presentados si su representacion es infinita y la computadora
sólo puede guardar números binarios (ceros y unos). En realidad una computadora, no es
capaz de almacenar todos los números reales tal y como se conocen en su abstracción.
Si una computadora requiere almacenar un número irracional como π, este lo hace
utilizando algún método de truncamiento que se verá posteriormente y en realidad la
computadora no estará almacenando el número irracional π, si no mas bien, una
aproximacion a dicho valor.
iii
Si una computadora esta realizando cálculos numéricos donde ha utilizado valores aproxi-
mados a números reales, esto podrı́a generar una serie de errores que vendrı́an generandose
en cada operacion. Obteniendo finalmente una aproximaci n al valor real de la operación
que se deseaba conocer. Una problematica importante en este aspecto es el error que se va
obteniendo y saber decidir si es aceptable o no. Esto es algo que también es tratado en
el análisi numérico.
Los ejemplos anteriores, muestran la importancia que tiene el análisis numérico dentro de
las areas de la ciencias y la ingenierı́a.
iv
Contenido
Introducción ii
3 Algoritmos de Interpolacion 37
3.1 Algoritmos de Interpolacion . . . . . . . . . . . . . . . . . . . . . .
. . . . . 37
3.1.1 Polinomio de Lagrange . . . . . . . . . . . . . . . . . . . . . .
. . . . 38
3.1.2 Método de Neville . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 40
3.1.3 Diferencias Divididas de Newton . . . . . . . . . . . . . . . . .
. . . 41
3.2 Algoritmos de Ajuste de Curvas . . . . . . . . . . . . . . . . . . . . .
. . . . 44
3.2.1 Ajuste por Mı́nimos Cuadrados a una Recta . . . . . . . . . . . . .
. 45
3.2.2 Ajuste por Mı́nimos Cuadrados a un Polinomio de Grado n . . . . . .47
CONTENIDO v
Bibliografı́a 67
1
Capı́tulo 1
A diario utilizamos números para el conteo de cosas; contamos objetos, personas, dinero,
etc., estamos muy familiarizados con los números naturales 1, 6, 98.32, 23784.12, 20993882
por mencionar algunos de una infinidad. Sin embargo, que significan exactamente. El número
97 por ejemplo significa nueve veces diez más siete unidades, esto es:
97 = (9 × 10) + 7
y 362.15 significa
362.15 = (3 × 102 ) + (6 × 101 ) + (2 × 100 ) + (1 × 10−1 ) + (5 × 10−2 ),
02 = 010
12 = 110
1012 = (1 × 22 ) + (0 × 21 ) + (1 × 20 ) = 510
1101012 = (1 × 25 ) + (1 × 24 ) + (0 × 23 ) + (1 × 22 ) + (0 × 21 ) + (1 × 20 ) = 5310
110.012 = (1 × 22 ) + (1 × 21 ) + (0 × 20 ) + (0 × 2−1 ) + (1 × 2−2 ) = 6.2510 ,
La ecuacion (1.1.1) muestra la forma para convertir un número de base binaria a base
decimal. Ahora, analicemos el caso contrario, es decir, la conversión de un número de base
decimal a base binaria.
Para convertir el número entero positivo N = N10 a base binaria se hace lo siguiente:
N = 2 × Q1 + R1
Q1 = 2 × Q2 + R2
Qi−1 = 2 × Qi + Ri
Paso n+1: Se sigue el proceso anterior hasta que el residuo del cociente en
el proceso continuo de hacer divisiones sea cero, esto es, hasta que en el proceso se tenga
un cociente igual a cero
de lo anterior, se tiene:
1.1. Números de Punto Flotante 3
N = 2 × Q1 + R1
= 2 × (2 × Q2 + R2 ) + R1
= 22 × Q2 + 2 × R2 + R1
= 22 × (2 × Q3 + R3 ) + 21 × R2 + 20 × R1
= 23 × Q3 + 22 × R3 + 21 × R2 + 20 × R1
···
= 2i × Qi + · · · + 22 × R3 + 21 × R2 + 20 R1
···
= 2 × Qn + · · · + 2 × R3 + 21 × R2 + 20 R1
n 2
= 2n × Rn+1 + · · · + 22 × R3 + 21 × R2 + 20 R1 ,
en conclusión,
Paso n+2: N10 = (Rn+1 · · · R3 R2 R1 )2
Ejemplo 1.1.1 Siguiendo la metodologı́a anterior, para convertir el número 27 10 a
base binaria se tiene lo siguiente:
27 = 2 × 13 + 1, Q1 = 13 y R1 = 1,
13 = 2 × 6 + 1, Q2 = 6 y R2 = 1,
6 = 2 × 3 + 0, Q3 = 2 y R3 = 0,
3 = 2 × 1 + 1, Q4 = 1 y R4 = 1,
1 = 2 × 0 + 1, Q5 = 0 y R5 = 1,
luego, 2710 = (R5 R4 R3 R2 R1 )2 = 110112 X
Para convertir un número decimal fraccionario a base binaria, se hacen repetidas multi-
plicaciones por 2, como se ilustra en ejemplo 1.1.2. En cada caso se multiplica por 2 la parte
fraccionaria del número decimal. El dı́gito del producto a la izquierda del punto decimal será
1 o 0 y contribuye a la representación binaria, comenzando con el bit mas significativo 1 . La
parte fraccionaria del producto se utiliza como en el siguiente paso. Para mostrar lo anterior,
consideremos el siguiente ejemplo.
Ejemplo 1.1.2 Para convertir el número 0.3910 a base binaria, se tiene el siguiente proced-
imiento:
0.39 × 2 = 0.78, parte entera = 0,
0.78 × 2 = 1.56, parte entera = 1,
0.56 × 2 = 1.12, parte entera = 1,
0.12 × 2 = 0.24, parte entera = 0,
0.24 × 2 = 0.48, parte entera = 0,
0.48 × 2 = 0.96, parte entera = 0,
0.96 × 2 = 1.92, parte entera = 1,
...
1 bit
que se encuentra a la izquierda de la representación binaria
1.1. Números de Punto Flotante 4
Ejemplo 1.1.3 Para convertir el número 14.2510 a base binaria primeramente, se convierte
la parte entera a base binaria quedando de la siguiente manera:
14 = 2 × 7 + 0, Q1 =7 y R1 = 0,
7 = 2 × 3 + 1, Q2 =3 y R2 = 1,
3 = 2 × 1 + 1, Q3 =1 y R3 = 1,
1 = 2 × 0 + 1, Q4 =0 y R4 = 1,
luego 0.2510 = 0.102 . Por tanto 14.2510 = 1410 + 0.2510 = 11102 + 0.102 = 1110.102 X
Supongamos que se tiene el número (xm . . . x1 x0 .x−1 x−2 x−3 . . . x−n )10 y se desea conocer
su representación en base b. Para ello, primero observemos que la base b está compuesta por
b sı́mbolos, siendo estos: 0, 1, . . . , b − 1.
Paso 1. Se considera la parte entera, esto es P Entera = (xm . . . x1 x0 )10 y se divide entre b,
de aquı́ obtenemos un cociente Q1 y un residuo R1 , con R1 ∈ {0, 1, . . . , b − 1}. Entonces se
tiene:
(xm . . . x1 x0 )a = b × Q1 + R1
Q1 = b × Q2 + R2
Qi−1 = b × Qi + Ri
Paso n+1: Se sigue el proceso anterior, hasta que el residuo del cociente en
el proceso continuo de hacer divisiones sea cero, esto es hasta que en el proceso se tenga
un cociente igual a cero
1.1. Números de Punto Flotante 5
de lo anterior, se tiene:
P Entera = b × Q1 + R1
= b × (b × Q2 + R2 ) + R1
= b2 × Q2 + b × R2 + R1
= b2 × (b × Q3 + R3 ) + b1 × R2 + b0 × R1
= b3 × Q3 + b2 × R3 + b1 × R2 + b0 × R1
···
= b × Qi + · · · + b × R3 + b1 × R2 + b0 R1
i 2
···
= b × Qn + · · · + b × R3 + b1 × R2 + b0 R1
n 2
= bn × Rn+1 + · · · + b2 × R3 + b1 × R2 + b0 R1 ,
en conclusión,
Enseguida se considera la parte fraccionaria, esto es: P F racc = (0.x−1 x−2 x−3 . . . x−n )10 ,
Paso n+3: Se multiplica por b obteniendo una parte entera p1 y una parte fraccionaria f1 ,
esto es:
P F racc × b = p1 .f1
Paso n+4: Se multiplica 0.f1 por b obteniendo una parte entera p2 y una parte fraccionaria
f2 , esto es:
0.f1 × b = p2 .f2
Paso n+5: Se multiplica 0.f2 por b obteniendo una parte entera p3 y una parte fraccionaria
f3 , esto es:
0.f2 × b = p3 .f3 ,
se realiza el proceso anterior repetidas veces tantas como sea necesario, quedando la parte
fraccionaria de la siguiente manera P F racc = (0.p1 p2 p3 . . . pk )b . Finalmente se
junta la parte entera y la parte fraccionaria, quedando la representación del número de
base decimal
a binaria de la siguiente manera:
1.1. Números de Punto Flotante 6
Se tiene:
35 = 2 × 17 + 1, Q1 = 17 y R1 = 1,
17 = 2 × 8 + 1, Q2 = 8 y R2 = 1,
8 = 2 × 4 + 0, Q3 = 4 y R3 = 0,
4 = 2 × 2 + 0, Q4 = 2 y R4 = 0,
2 = 2 × 1 + 0, Q5 = 1 y R5 = 0,
1 = 2 × 0 + 1, Q6 = 0 y R6 = 1,
35 = 8 + 3, Q01 = 4 y R01 = 3,
4 = 8 + 4, Q02 = 0 y R02 = 4,
Se tiene ademas:
35 = 16 × 2 + 3, Q001 = 2 y R100 = 3,
2 = 16 × 0 + 2, Q002 = 0 y R002 = 2,
1.1. Números de Punto Flotante 7
Ejemplo 1.1.5 Para convertir el número 2378 a base decimal se hace lo siguiente:
2378 = 2 × 82 + 3 × 81 + 7 × 80 = 15910 ,
Ejemplo 1.1.6 Para convertir el número A2D16 a base decimal se hace lo siguiente:
• Signo-magnitud
• Complemento a uno
• Complemento a dos
1.1. Números de Punto Flotante 8
Representación Signo-Magnitud
Las cantidades se representan de izquierda a derecha (el bit mas significativo a la izquierda
y el menos significativo a la derecha) reservando el bit más significativo para representar el
signo, siendo 0 para valores positivos y 1 para valores negativos. Por ejemplo, en una palabra
de 8 bits, la representación de 61 y -61 son:
Sin embargo, observemos que 0000 0000SM = +0 = −0 = 1000 0000SM ; esto es, el cero
tiene dos representaciones.
−127 ≤ n ≤ 127,
siendo 127 = 0111 1111SM el entero positivo más grande y −127 = 1000 0001SM el entero
negativo más grande.
Observemos que 0000 0000C 1 = +0 = −0 = 1111 1111C 1 ; esto es, el 0 tiene dos repre-
sentaciones nuevamente.
1.1. Números de Punto Flotante 9
por lo tanto −61 = 1100 0011C 2 . Observemos que +0 = 0000 0000C 2 = −0.
Observación: Algunos compiladores, como el Borland C++ utilizan tanto para palabras
de 16 y 32 bits la representacion complemento a dos para representar de manera interna los
números enteros.
En el área de ciencias e ingenierı́a es usual utilizar números muy grandes y números muy
pequeños. La norma IEEE 754 fue desarrollada en 1985 por el Insitute for Electrical
and Electronic Engineers, IEEE (Instituto para Ingenieros Eléctricos y Electronicos) y sirve
para representar en un computador los números de punto flotante. Esta norma fue
desarrollada con la finalidad para facilitar la portabilidad de programas numéricos.
Para facilitar su comprensión del formato IEEE 754, primero se considera un número de
punto flotante en su notación cientı́fica, esto es, en la que un número es representado me-
diante dos cantidades, la mantisa y la caracterı́stica o exponente. De esta manera,
cualquier número puede ser representado en la forma m ∗ be , siendo m la mantisa y e la
caracterı́stica.
1.1. Números de Punto Flotante 10
Por ejemplo, el número 523.789 es lo mismo que los numeros 0.523789 ∗103 , 5237.9 ∗ 10−1 ,
5.23789 ∗ 102 o que 523789 ∗ 10−3 .
La norma IEEE 754 define dos formatos básicos para almacenar números de punto flotante:
un formato simple de 32 bits y un formato doble de 64 bits. La base ı́mplicita es 2.
Formato bits para Signo bits para la Caracterı́stica bits para Mantisa
Simple 1 8 23
Doble 1 11 52
El bit más significativo contiene el signo del número, siendo 0 para valores positivos y 1
para valores negativos. El valor de la caracterı́stica se almacena en el siguiente bloque
de bits, siendo 8 para el formato simple y 11 para el formato doble. La representacion
de la caracterı́stica se conoce como el termino sesgado. Un valor fijo llamado sesgo se
resta de este campo para conseguir el valor de la caracterı́stica verdadera. El sesgo tiene
una valor
de 2k−1 − 1 con k el número de bits en el exponente binario. Ası́, para el formato simple, el
sesgo tiene un valor de 28−1 − 1 = 127 de tal manera que los valores verdaderos varı́an entre
-127 y 128; para el formato doble, el sesgo tiene un valor de 211−1 − 1 = 1023 de tal manera
que los valores verdaderos varı́an entre -1023 y 1024. En los últimos 23 bits para el formato
simple y 52 para el formato doble se almacena la mantisa.
Ejemplo 1.1.7 Para convertir el número 20 a formato simple IEEE 754 se siguen la serie
de pasos siguientes:
1. Se convierte en número a base binaria y se escribe en la forma cientı́fica 1.1.3; esto es:
20 = 101002 = 1.01002100 .
2. Puesto que el número a almacenar es positivo, entonces el bit más significativo tendrá
un valor de 0.
Se tiene:
1. Se convierte el número a base binaria y se escribe en la forma cientı́fica 1.1.3; esto es:
−125.32 = −1111101.0101000111101012 = −1.11110101010001111010111110 2 .
2. Puesto que el número a almacenar es negativo, entonces el bit mas significativo tendrá
un valor de 1.
Para convertir un número de formato IEEE 754 a su representación binaria se hace la si-
guiente operacion:
sesgo=127
z }| {
(−1)0 × 210000011 × 2− 1111111 × 1.01000000000000000000000
= 2100 × 1.01000000000000000000000
= 1.01000000000000000000000 × 2100
= 10100
= 2010
obteniéndose exactamente el número exacto 20 que ası́ era de esperar ya que este ejercicio
muestra la parte inversa al ejercicio 1.1.7 X
La norma IEEE 754 reserva ciertos valores para casos especiales como lo son ±0 y ±∞
y N aN 2 (Not a Number ). Es necesario considerar este tipo de valores para prevenir errores
que se puedan presentar. Las siguientes tablas muestran toda la gamma de interpretacion
de los números en el formato IEEE 754 para el formato simple y para el formato doble.
Precisión Simple
Signo Exponente Sesgado Parte Fraccionaria Valor
Cero Positivo 0 0 0 0
Cero Negativo 1 0 0 -0
Más Infinito 0 255 (todos unos) 0 ∞
Menos Infinito 1 255 (todos unos) 0 −∞
NaN Silencioso 0o1 255 (todos unos) =0 NaN
NaN Indicador 0o1 255 (todos unos) =0 NaN
Positivo Normalizado = 0 0 0 < e < 255 f (1.f ) ∗ 2e−127
Negativo Normalizado = 0 1 0 < e < 255 f −(1.f ) ∗ 2e−127
Positivo Denormalizado 0 0 f =0 (0.f ) ∗ 2e−126
Negativo Denormalizado 1 0 f =0 −(0.f ) ∗ 2e−126
Precisión Doble
Signo Exponente Sesgado Parte Fraccionaria Valor
Cero Positivo 0 0 0 0
Cero Negativo 1 0 0 -0
Más Infinito 0 2047 (todos unos) 0 ∞
Menos Infinito 1 2047 (todos unos) 0 −∞
NaN Silencioso 0o1 2047 (todos unos) =0 NaN
NaN Indicador 0o1 2047 (todos unos) =0 NaN
Positivo Normalizado = 0 0 0 < e < 2047 f (1.f ) ∗ 2e−1023
Negativo Normalizado = 0 1 0 < e < 2047 f −(1.f ) ∗ 2e−1023
Positivo Denormalizado 0 0 f =0 (0.f ) ∗ 2e−1022
Negativo Denormalizado 1 0 f =0 −(0.f ) ∗ 2e−1022
En la norma estandar IEEE 754, para el caso del formato simple, los exponentes están
restringidos por la desigualdad:
Ejercicio Encontrar el número más grande y más pequeño representable en el formato doble
IEEE 754.
1.2. Errores 14
1.2 Errores
A lo largo de esta obra, se emplearan técinas numéricas que ayudaran a resolver problemas
matemáticos. Mediante estas técnicas se una aproximacion a la solución real,
tendrá sin
embargo, el hecho de que no sea la solución real, nos genera un margen de error. Este error
en la práctica debe de ser considerado, pues nos puede acarrear situaciones inesperadas.
En lo que sigue, suponemos un computador imaginario que trabaja con el sistema decimal
con una palabra de k dı́gitos en la mantisa. Además suponemos que los
números están representados en la forma normalizada de punto flotante:
mantisa
z }| {
±0. d1 d2 · · · dk ×10n , con 1 ≤ d1 ≤ 9 y 0 ≤ di ≤ 9, i = 2, . . . k (1.2.1)
A los números de la ecuacion 1.2.1 se les llama números de maquina decimales con
k-
dı́gitos.
terminando el valor de la mantisa de y en k cifras decimales. Para ello hay dos formas de
realizarlo que se muestran en las siguientes definiciones.
f lc (y) = 0.d1 d2 · · · dk ,
dk si dk+1 < 5
f lr (y) = 0.d1 d2 · · · d0k, con d0k =
dk + 1 si dk+1 ≥ 5
Definición 1.2.3 El error resultante al reemplazar un número con su forma de punto flotante
recibe el nombre de error de redondeo (independientemente del método que se aplique).
Definición 1.2.5 Se dice que el número p? se aproxima a p con t-dı́gitos o cifras significativas,
si t es el entero positivo más grande para el cual
|p−p ? |
ER = |p| < 5 × 10−t
|0.51×10−1 −0.50×10−
1
−1 −1
|ER =
|0.51×10−1 |
= 0.19 × 10 < 0.5 × 10
Para mostrar algunos de los errores que se pueden presentar en un computador, imagine-
mos que nuestro computador, ademas de trabajar con el sistema decimal, supongamos que
los números se almacenan con una mantisa de 4 dı́gitos decimales, una caracterı́stica de 2
dı́gitos decimales, de los cuales, el primero se usa para almacenar el signo.
1.2. Errores 17
Por ejemplo, si deseamos almacenar los números 8123000 y 0.00456 en nuestro computador
imaginario, primero se deben de normalizar los números quedando 0.8123×107 y 0.4560×10−2
respectivamente, por tanto los números almacenados en nuestro computador quedarı́an de
la siguiente manera:
Con ayuda de nuestro computador imaginario, se pueden mostrar ciertos errores que se
cometen.
X = 0.3000 × 10−2
Y = 0.7000 × 103
estos números no los puede operar directamente el computador ya que tienen distinta carac-
terı́stica, para ello, se deben de desnormalizar antes de efectuar la suma.
0.000003 × 103
+0.700000 × 103
0.700003 × 103
0.3153 × 100
−0.3152 × 100
0.0001 × 100
ya que la mantisa del valor de la resta esta desnormalizada, el computador primero la nor-
maliza 0.1000 × 10−3 y la almacena de la siguiente manera:
hasta aquı́ no ha habido error alguno, sin embargo el valor de la resta sólo tiene una cifra
significativa y no se puede confiar en su exactitud, ya que si este valor es usado para pos-
teriores operaciones puede generar resultados inesperados. Por ejemplo, supongamos que lo
siguiente es parte del cógido de un programa:
X = (A − B) ∗ C
Ahora bien, hagamos uso del valor de A? en lugar de A para obtener el valor de X . Se
tiene:
X ? = (A? − B) ∗ C
= (0.3154 × 100 − 0.3152 × 100 ) ∗ 0.1000 × 105
=2
EA = |1 − 2| = 1,
ER = EA
|1|
= 1,
ERP = ER × 100 = 100%
0.7000 × 107
∗0.3000 × 109
0.2100 × 1016
0.6000 × 10−8
∗0.3000 × 10−5
0.1800 × 10−13
Tanto el sobreflujo como el subflujo pueden aparecer pueden aparecer a partir de opera-
ciones aritméticas que involucran productos o cocientes. El subflujo no es un problema
tan serio como lo es el sobreflujo. En el caso del sobreflujo los computadores
interrumpen los cálculos y envian un mensaje de error, mientras que en el caso del subflujo,
los computadores trabajan el resultado del valor como cero.
1.2. Errores 20
X = A − B/C
con valores A = 0.1120 × 109 , B = 0.1000 × 106 y C = 0.9000 × 10−3 . Bajo estas condiciones,
X = 0.0009 × 109 = 0.9000 × 106 . Supongamos que tras operaciones anteriores al cálculo
de X , se obtuvo el valor de C ? = 0.9001 × 10−3 en lugar de C . El error absoluto, relativo y
porcentual entre el valor de C y C ? son:
Ahora bien, hagamos uso del valor de C ? en lugar de C para el cálculo de X . Se tiene:
X ∗ = A − B/C ?
= 0.1120 × 109 − 0.1000 × 106 /0.9001 × 10−3
= 0.1000 × 107
sustituyendo los valores en la fórmula general para nuestro ejemplo y aplicando una aritmé-
tica de redondeo a cinco dı́gitos, se tiene:
√
101.01± (−101.01)2 −4(0.10101)
x∗ = √ 2
101.01± 10203−0.40404
=
√ 2
101.01± 10203
= 2
101.01±101.01
= 2
luego
x∗+ = 101.01+101.01
2 = 101.01 y
∗ 101.01−101.01
x− = 2
=0
Por tanto las raı́ces son x∗+ = 101.01 y x∗− = 0. Sin embargo las soluciones verdaderas
redondeadas a cinco dı́gitos decimales son x+ = 101.01 y x− = 0.00100 generandose errores
relativos porcentuales de:
∗|
|x+ −x+
ERP = x
× 100
+|
|
|101.01−101.01|
= 100
|101.01 |
×
= 0% y
|x− −x∗ |
ERP = |x −− × 100
|
|0.00100−0|
= |0.001 | × 100
= 100%
Se observa que el método fue adecuado para la solución x+ , pero no del todo para x− . En
este ejemplo se presenta el problema de restar números casi iguales, dando como resultado
pérdida de exactitud. Veamos, que sucede, si en lugar de aplicar la formula general tal
y como se efecto para encontrar el valor de x− , se recurre a la racionalización de términos.
Se tiene:
√
b− b2
x− = − −4ac
√2a √
= −b− b −4ac −b+ b√
2 2 −4ac
2a − b+ −b2
4ac
2 b 2−(b
= −4ac)
√
2a(−b+ b2 −4ac)
2c
= −b+√b2 −4ac
x− = √2(0.10101)
101.01+ 101.012−4(0.10101)
0.20202
= 101.01+101.01
0.20202
= 202.02
= 0.001
el cual es el valor verdadero utilizando el método de redondeo a cinco dı́gitos. Está formula
alternativa para calcular una raı́z pequeña de una ecuacion cuadrática casi siempre produce
una respuesta más exacta que la formula usual. X
x x2 x3 3.2x2 7.1x
Exacto 5.17 26.7289 138.188413 85.53248 36.707
redondeo a tres dı́gitos 5.17 26.7 138 85.4 36.7
luego
ERP = |91.862933−91.8|
|91.862933 |
× 100
= 0.06%
esto da como resultado que f (5.17) = 91.9, de donde se tiene ERP = 0.04%. Disminuyendo
en 0.02% el error. Este método siempre disminuye el error, en algunos casos da resultados
con un porcentaje mucho mejor. Los polinomios siempre deben de anidarse antes de realizar
cualquier evaluación, pues de está forma se minimiza el número de cálculos aritméticos y por
tanto los errores.
1.2. Errores 23
El error de propagacion sirve para estimar el error resultante en una función a partir de
valores de entrada. El objetivo es estimar como se propagan los errores; por ejemplo, si
se suman o multiplican dos números que tienen error, como se ve reflejado esto al aplicar
estos valores a una funcion.
f = f (a) − f (a∗ )
f (a)−f (a∗ )
f 0 (a) ≈ a−a∗
= f
a
1.2. Errores 24
entonces
f ≈ af
0
(a) ≈ af
0
(a∗ )
y por lo tanto
| f | ≈ | a ||f 0 (a∗ )|
de esta manera, se define el error de propagacion como:
| f | = | x ||f 0 (x∗ )| = |x − x∗ ||f 0 (x∗ )|
Capı́tulo 2
Un algoritmo es una serie de pasos que sirven parta resolver un problema. Sus principales
caracterı́sticas son:
N
X
xii = x11 + x22 + · · · + xN
N
i=1
ENTRADA: N, x1 , x2 , . . . , xN .
X N
SALIDA: SU M A = xii.
i=1
PROCESO: Se utiliza una variable auxiliar aux
paso 1: Establecer SU M A = 0 y aux = 1.
paso 2: Para i = 1 hasta i = N hacer pasos 3 a 6:
paso 3: Para j = 1 hasta j = i hacer paso 4:
paso 4: aux = aux ∗
xi . paso 5: SU M A = SU M A +
aux. paso 6: Poner aux = 1.
paso 7: SALIDA (SUMA).
PARAR. X
Los algoritmos que nos interesan trabajar son aquellos que sean estables. En este capı́tulos,
nos dedicaremos a la búsqueda de raı́ces para una función f (x) = 0. Se describiran algunos
métodos que nos ayudaraan a aproximar la raı́z de una función. El primer método a tratar
es el método de la biseccion.
El método de la bisección hace uso del teorema del valor intermedio. Se aplica de la
siguiente manera: dada una función f continua en un intervalo [a, b] donde de antemano
se conoce que existe una sola raı́z, entonces, se tiene que [f (a) > 0 y f (b) < 0] o [f (a) <
0 y f (b) > 0]. Sin pérdida de generalidad, supongamos que se tiene la primera situación.
Puesto que f (a) > 0 y f (b) < 0 con f función continua, entonces por el
teorema del
2.1. Algoritmos Para Búsqueda de Raı́ces 27
Entrada: función f ; intervalo [a, b]; número máximo de iteraciones N0 ; tolerancia T OL.
Salida: solución aproximada p o mensaje de error.
Proceso: se requieren de dos variables auxiliares f a y f p
Paso 1: Tomar i = 1 y f a = f (a)
paso 2: Para i = 1 hasta i = N0 hacer pasos 3 A 6:
paso 3: Tomar p = a + b−a 2
.
paso 4: Hacer f p = f (p)
paso 5: Si f (p) = 0 o (b − a)/2 < T OL, entonces
SALIDA(p).
PARAR.
paso 6: Si signo(f (a)) ∗ signo(f (p)) > 0, tomar
−1 si x < 0
1
la funcion signo se define como signo(x) = 0 si x = 0
1 si x >
0
2.1. Algoritmos Para Búsqueda de Raı́ces 28
Ejemplo 2.1.2 La ecuacion f (x) = x3 − 7x2 + 14x − 6 = 0 tiene una raı́z en el intervalo
[0, 1] ya que f (0) = −6 < 0 y f (1) = 2 > 0. Para calcular el valor de p3 se tiene:
1−0
p1 = 0 + 2
= 0.5,
1−0.5
p2 = 0.5 + 2
= 0.75,
p3 = 0.5 + 0.75−0.5
2
= 0.625.
X
Definición 2.1.2 Sea g una funcion. Un punto p en el dominio de g se dice que es punto
fijo si g(p) = p.
El método de punto fijo se basa en la definicion de punto fijo. Sea f una funcion, definamos
g(x) = x−f (x). Si p es un punto fijo de g, entonces f (p) = g(p)−p = 0, esto es, un punto fijo
para g es una raı́z para f . De esta manera, si se desea encontrar las raı́ces de una función f
, basta con encontrar los puntos fijos de una funcion g construida a partir de f de tal
manera que los puntos fijos de g sean raı́ces de f . El ejemplo 2.1.3 muestra posibles
elecciones de la función g para una función f dada.
g1 (x) = x − f (x)
g2 (x) = (−1 − x3 − 2x2 )/5
g3 (x) = −1/(x2 + 2x + 5)
2.1. Algoritmos Para Búsqueda de Raı́ces 29
El método de punto fijo requiere de un punto inicial cercano al valor de la raı́z y partir de
éste, se comienzan a realizar iteraciones hasta aproximarse cada vez más al valor de la raı́z
que se esta buscando.
Ejemplo 2.1.4 Se desea encontrar una aproximación a una raı́z de la funcion f (x) = x4 +
2x2 − x − 3 mediante el método del punto fijo. Para ello se proponen las siguientes funciones
como posibles candidatas para la elección de g.
la tabla 2.1.1 proporciona los resultados del método de iteración de punto fijo para las cuatro
opciones de g con p0 = 1.
De la tabla 2.1.1 se observa que aunque las funciones gi son problemas de punto fijo para
la misma función f , difieren ampliamente como métodos de aproximacion a la solución del
problema. X
2.1. Algoritmos Para Búsqueda de Raı́ces 30
n g1 g2 g3 g4
0 1 1 1 1
1 1.189207115 1.224744871 1.154700538 1.142857143
2 1.080057753 0.993666159 1.11642741 1.12448169
3 1.149671431 1.228568645 1.126052233 1.124123164
4 1.107820530 0.987506429 1.123638885 1.12412303
5 1.133932285 1.232183418 1.124244497 1.12412303
6 1.118003118 0.981585828 1.124092553
7 1.127857163 1.235563209 1.124130676
8 1.121813166 0.97596246 1.124121111
9 1.125539874 1.238689029 1.124123511
10 1.123249432 0.970684691 1.124122909
Figura 2.1.1: Método de punto fijo para la misma función f y con diferentes funciones g
Teorema de Punto Fijo Sea g una función continua en un intervalo [a, b] tal
que es derivable en (a, b). Si existe una constante k, 0 < k < 1 con
pn = g(pn−1 ), n ≥ 1,
de donde
2.1. Algoritmos Para Búsqueda de Raı́ces 31
p1 = p0 − f 0f(p(p00) .
)
p2 = p1 − f 0f(p(p11) .
)
p1 = 1 − ff0(1)
(1)
12−
=1− 2(1)
6
= 3.5
luego
p2 = 3.5 − ff0(3.5)
(3.5)
−
2
= 3.5 − 3.5
2(3.5)
6
= 2.067.
X
pn = pn−1 − ff (p n−1 )
0 (p
n−1 )
para n > 0.
f (pn−1 )
pn = pn−1 − f 0 (pn− 1
)
f (pn−1 )
= pn−1 − f (pn−1 )−f (pn−2 )
pn−1 −pn−2
f (pn−1 )(pn−1 −pn−2 )
= pn−1 − f (pn−1 )−f (pn−2 )
Se tiene:
p2 = 2− ff (2)−f
(2)(2−3)
(3)
= 2.3333
luego
p3 = 2.3333− f (2.3333)(2.3333−2)
f (2.3333)−f (2)
= 2.4615 X
Las funciones polinomiales son de gran importancia en el estudio del análisis numérico. Su
importancia se notará en los capı́tulos siguientes donde se tratará el tema de interpolación.
Está sección esta dedicada a este tipo de funciones especiales: los polinomios.
P (x) = an xn + an −1 xn−1 + · · · + a1 x + a0
Corolario 2.2.2 Si P (x) y Q(x) son polinomios de grado a lo mas n con P (xi ) = Q(xi )
para x1 , x2 , . . . , xk con k > n, entonces P (x) = Q(x) para todos los valores de x.
Algoritmo de la División Dados los polinomios P (x) y Q(x), existen dos únicos polinomios
C (x) y R(x) tal que:
R(a) = P (a).
luego
y por tanto
2.2. Raı́ces de Polinomios 35
P 0 (a) = Q(a).
P (x) = an xn + an −1 xn−1 + · · · + a1 x + a0 .
Si bn = an y bk = ak + bk+1 x0 para k = n − 1, n − 2, . . . , 1, 0, entonces b0 = P (x0 ). Mas aún,
si
P (x) = (x − x0 )Q(x) + b0 .
El teorema anterior describe el método de Horner, sin embargo para llevarlo a la practica se
sigue el siguiente algoritmo.
Al realizar los cálculos con el método de Horner se recurre a una tabla que se construye
como en el ejemplo siguiente.
coeficiente de x4 x3 x2 x1 x0
x0 = −2 a4 = 3 a3 = 2 a2 = −1 a1 = 4 a0 = 2
b4 x0 = −6 b3 x0 = 8 b2 x0 = −14 b1 x0 = 20
b4 = 3 b3 = −4 b2 = 7 b1 = −10 b0 = 22
por lo tanto
Capı́tulo 3
Algoritmos de Interpolación
Supongamos que la figura 3.1.1 muestra los datos registrados en un experimento fı́sico
que depende del tiempo. El eje de la abscisa muestra los diferentes tiempos en que se llevo
a cabo el mismo experimento repetidas veces, y el eje de la ordenada muestra los valores
aproximados del resultado del experimento. Este tipo de registros se obtienen a menudo en
un laboratorio de fı́sica, puede haber registros para lapsos cortos de tiempo o para lapsos
muy largos. Un ejemplo de tales registros, puede ser el de la población ya sea a nivel de
un pais o la poblacion mundial. Por ejemplo, el eje de las abscisas puede representar
las mediciones registradas en el año t0 , t1 , etc., y el eje de la ordenada puede
representar la población para el respectivo año de registro.
Una vez obtenidos los datos como se muestran en la figura 3.1.1, lo interesante del asunto
es determinar el valor que le corresponde a la función para un valor no registrado, esto es,
por ejemplo, en la figura se muestran datos registrados para valores t0 , t1 hasta t5 ,
para
3.1. Algoritmos de Interpolacion 38
estos valores, conocemos el valor exacto que le corresponde a la función f (t), sin embargo
que sucede si se desea conocer un valor t0 que se encuentre en el intervalo (t0 , t1 ), este valor
no fue registrado. La problemática a resolver enseguida será encontrar métodos
con los
cuales sea posible encontrar dicho valor. La idea data en encontrar una función
continua que pase por los puntos registrados, de tal manera que sea posible determinar
de manera confiable aquellos valores que no fueron registrados. A esto se le conoce como
interpolacion. Comenzaremos dicho estudio con el polinomio de Lagrange.
Pn (x) = f (x0 )Ln,0 (x) + f (x1 )Ln,1 (x) + · · · + f (xn )Ln,n (x)
X n
= f (xk )Ln,k (x).
k=0
3.1. Algoritmos de Interpolacion 39
Observemos que
1 si j = k
Lk (xj ) =
0 si j = k
luego, se tiene:
esto es, el polinomio de Lagrange es tal que pasa por cada uno de los puntos (xk , f (xk )).
Ejemplo 3.1.1 Para encontrar el polinomio de grado dos para los valores de la siguiente
tabla:
x f (x)
8.1 16.94410
8.3 17.56492
8.6 18.50515
(x−8.3)(x−8.6)
L0 (x) = (8.1−8.3)(8.1−8.6)
x2 −16.9x+71.38
= (−0.2)(−0.5)
= 0.1
(x − 16.9x + 71.38)
1 2
(x−8.1)(x−8.6)
L1 (x) = (8.3−8.1)(8.3−8.6)
x2 −16.7x+69.66
= (0.2)(−0.3)
= − 0.061 (x2 − 16.7x + 69.66)
(x−8.1)(x−8.3)
L2 (x) = (8.6−8.1)(8.6−8.3)
x2 −16.4x+67.23
= (0.5)(0.3)
= 1 2
0.15 (x
− 16.4x + 67.23)
P2 (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (x2 )L2 (x)
= (16.94410)(10x2 − 169x + 713.8) + (17.56492)(−16.66x2 + 278.222x − 1160.53) +
(18.50515)(6.66x2 − 109.224x + 447.751)
= 0.054x2 + 2.19x − 4.23 X
3.1. Algoritmos de Interpolacion 40
√
Ejemplo 3.1.2 Apliquemos el método de Neville para para aproximar el valor de 3 con-
√
siderando la funcion f (x) = x y los valores x0 = 0, x1 = 1, x2 = 2, x3 = 4 y x4 = 5.
Por ejemplo, para calcular los valores P0,1 , P1,1 , P1,2 , se hace uso del paso 1 del algoritmo
3.1.1, teniéndose:
+(x1 −x)P0,0
P0,1 = (x−x0 )P1,0
x1 −x0
= (3−0)(1)+(1−3)(0)
1−0
=3
+(x2 −x)P1,0
P1,1 = (x−x1 )P2,0
x2 −x1
= (3−1)(1.4142)+(2−3)(1)
2−1
= 1.6213
+(x3 −x)P1,1
P1,2 = (x−x1 )P2,1
x3 −x1
= (3−1)(1.7071)+(4−3)(1.6213)
4−1
= 1.6785
El paso 2 del algoritmo 3.1.1 muestra el valor del polinomio interpolado y evaluado en el
valor de la variable √
x, por tanto, para este ejemplo en especifico, se tiene 1.6180 = P4,4 =
P (x = 3) ≈ f (3) = 3. X
Sean (x0 , f (x0 )), (x1 , f (x1 )), . . . , (xn , f (xn )) n puntos que se conocen a los que se desea
interpolar. Para abreviar denotemos fi = f (xi ). Consideremos el siguiente
polinomio de grado n:
ft −fs
f [x s, x t] = xt −xs
f [xs ] = fs .
f0 = Pn (x0 ) = a0
de donde a0 = f0 = f [x0 ],
continuando, se tiene
ai = f [x0 , x1 , . . . , xi ]
por tanto
Ejemplo
√ 3.1.3 Apliquemos el método de√diferencias divididas para para aproximar el valor
de 3 considerando la función f (x) = x y los valores x0 = 0, x1 = 1, x2 = 2, x3 = 4 y
x4 = 5.
i xi f [xi , xi+1 ] f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ] f [xi , xi+1 , xi+2 , xi+3 , xi+4 ]
0 0 1 -0.2929 0.0631 -0.0115
1 1 0.4142 -0.0404 0.0053
2 1.4142 0.2929 -0.0189
3 2 0.2360
4 2.2360
Por ejemplo, para calcular los valores f [x0 , x1 ] y f [x1 , x2 , x3 ], se hace uso del paso 1 del
algoritmo 3.1.2, teniéndose:
3.2. Algoritmos de Ajuste de Curvas 44
−f0
f [x 0, x 1] = xf11−x 0
= 1−0
1−0
=1
f [x1 , x2 , x3 ] = f [x2 ,xx33]−f
−x1
[x1 ,x 2 ]
= 0.2929−0.4142
2−1
= 0.0404
P4 (x) = f0 +(x−x0 )f [x0 , x1 ]+(x−x0 )(x−x1 )f [x0 , x1 , x2 ]+(x−x0 )(x−x1 )(x−x2 )f [x0 , x1 , x2 , x3 ]+
(x − x0 )(x − x1 )(x − x2 )(x − x3 )f [x0 , x1 , x2 , x3 , x4 ]
= (x)(1) + (x)(x − 1)(−0.2929) + (x)(x − 1)(x − 2)(0.0631) + (x)(x − 1)(x − 2)(x − 4)(−0.0115)
Consideremos la figura 3.1.3 b) en donde se muestra el ajuste de puntos por medio de una
recta. Consideremos el punto registrado (xi , yi ), el correspondiente valor de la ecuacion de
la recta para este valor de la abscisa es a1 xi + a0 . La problematica consiste en encontrar los
valores de a0 y a1 de tal manera que la distancia entre el valor de yi y a1 xi + a0 sea mı́nima.
El método de mı́nimos cuadrados consiste en determinar la mejor linea de aproximación,
cuando el error es la suma de los cuadrados de las diferencias entre los valores de y dados;
esto es, consiste en determinar los valores de a0 y a1 de tal manera que el valor de la
siguiente diferencia sea mı́nima.
m
X
[yi − (a1 xi + a0 )]2 (3.1.1)
i=1
Para que la ecuación 3.1.1 tenga un valor mı́nimo, debemos de tener que:
m
X m
X
∂
0= ∂a0 [yi − (a1 xi − a0 )] = 2 (yi − a1 xi − a0 )(−1)
2
i=1 i=1
y
m
X m
X
∂
0= ∂a1 [yi − (a1 xi + a0 )] = 2 (yi − a1 xi − a0 )(−xi )
2
i=1 i=1
m
X m
X
a0 m + a1 xi = yi
i=1 i=1
y
m
X m
X m
X
a0 xi + a1 x2i = xi yi
i=1 i=1 i=1
m
X m
X m
X m
X
2
xi yi − xi yi xi
i=1 i=1 i=1 i=1
a0 (3.1.2)
= m m
X X
m( xi2 ) − ( xi )2
i=1 i=1
y
m
X m
X m
X
m xi yi − xi yi
i=1 i=1 i=1
a1 = m m (3.1.3)
X X
m( xi ) − (
2
xi )2
i=1 i=1
Para realizar el ajuste respectivo, se sustituyen los valores directamente en las ecuaciones
3.1.2 y 3.1.3, teniéndose:
(14.17)(14.58)−(22.78)(8.9)
a0 6(14.17)−(8.9)2
= = 0.663
6(22.78)−(8.9)(14.58)
a1 6(14.17)−(8.9)2
= = 1.190
En el ejemplo anterior, se observa que y(x = 1.1) = 1.197, y(x = 1.5) = 2.448 y y(x =
2.1) = 3.162, es decir, este polinomio se aproxima a los valores registrados en
la tabla correspondientes a los valores de las ordenadas respectivas, por otro lado, si
deseamos conocer alguna aproximación de un valor no registrado, ahora podemos recurrir a
dicho polinomio, por ejemplo y(x = 1.4) = 2.329.
con n < m − 1, mediante ajuste de mı́nimos cuadrados. La forma de resolver esta problemá-
tica es de manera similar a como se hizo en la seccion anterior al encontrar los valores a0 y
a1 mediante la formula 3.1.1. En este caso, se desean encontrar los valores a0 , a1 , . . . , an de
tal manera que el valor de la siguiente diferencia sea mı́nima.
m
X
E= (yi − Pn (xi ))2 (3.1.4)
i=1
m
X m
X m
X
= yi2 −2 Pn (xi )yi + (Pn (xi ))2
i=1 i=1 i=1
m m n m n
X X X j
X X
= yi − 2
2
( aj xi )yi + ( aj xji )2
i=1 i=1 j=1 i=1 j=1
De igual manera al caso de la seccion anterior, para que la ecuación 3.1.4 tenga el mı́nimo
valor, se debe de cumplir que
3.2. Algoritmos de Ajuste de Curvas 48
∂E
∂aj
= 0 para j = 0, 1, . . . , n (3.1.5)
de donde se obtiene un sistema de ecuaciones de n+1 incognitas (siendo las a0is las incognitas)
y n + 1 ecuaciones. Se tiene que el sistema de ecuaciones 3.1.5 es equivalente al siguiente
sistema de ecuaciones:
m
X m
X m
X m
X m
X
a0 x0i + a1 x1i + a2 xi2 + · · · + an xni = yi xi0
i=1 i=1 i=1 i=1 i=1
m
X m
X m
X m
X m
X
a0 x1i + a1 xi2 + a2 xi3 + · · · + an xin+1 = yi xi1 (3.1.6)
i=1 i=1 i=1 i=1 i=1
m m m
··· m m
X X X X X
a0 xni + a1 xn+1
i + a2 xn+2
i + · · · + an xn+n
i = yi xin
i=1 i=1 i=1 i=1 i=1
m
Por tanto, para ajustar los puntos {(xi , yi )}i=1 a un polinomio de grado n < m − 1 se
debe de resolver el sistema de ecuaciones 3.1.6.
Ejemplo 3.1.5 Consideremos los puntos dados en el ejemplo 3.1.4 y procedamos a realizar
el ajuste de dichos puntos a un polinomio de grado 2. Para ello, se tienen que
encontrar constantes a0 , a1 y a2 tales que satisfagan el sistema de ecuaciones 3.1.6 con m =
6 y n = 2, esto es:
Capı́tulo 4
Supongamos que se tiene una función f ∈ C n+1 (I ) con I un intervalo. Sea {x0 , x1 , . . . , xn }
una sucesion de n + 1 puntos distintos en I . La fórmula 4.1.1 recibe el nombre de formula
de (n+1) puntos para aproximar f 0 (xj ).
m
X f (n+1) (ε(xj )) m
0
f (xj ) = f (xk )L0k(xj ) + Πk=0,k=j (xj − xk ) (4.1.1)
(n + 1)!
k=0
La figura 4.1.1 muestra la interpretacion gráfica que se tiene al usar la ecuaión 4.1.1 en el
caso que se consideren tres puntos. Obsérvese que el punto a encontrar la aproximación de
su derivada se encuentra en el medio de los otros dos puntos.
4.1. Algoritmos para Derivación 50
Existen dos casos especiales del uso de la ecuación 4.1.1, una de ellas se muestra en la
figura 4.1.1, donde se hace uso de la ecuación 4.1.1 para el caso de tres puntos; y la otra
cuando se consideran cinco puntos. Enseguida se muestran las fórmulas para el caso de
tres
y cinco puntos cuyas fórmulas se les conoce como formula de tres puntos y formula de cinco
puntos respectivamente. En el caso de la formula de tres puntos se muestran dos variantes.
f 0 (x0 ) ≈ 2h
1
[−3f (x0 ) + 4f (x0 + h) − f (x0 + 2h)] (4.1.2)
f 0 (x0 ) ≈ 1
2h
[f (x0 + h) − f (x0 − h)] (4.1.3)
f 0 (x0 ) ≈ 1
12h
[f (x0 − 2h) − 8f (x0 − h) + 8f (x0 + h) − f (x0 + 2h)] (4.1.4)
√
Ejemplo 4.1.1 Considere la siguiente tabla de valores con f (x) = x+1
x f (x)
1.5 1.5811
1.6 1.6124
1.7 1.6431
1.8 1.6733
1.9 1.7029
1
Se tiene que f 0 (x) = 2(x+1) 0 0
1/2, por lo tanto f (1.7) = 0.3042. Al aproximar f (1.7) mediante
fórmula 4.1.2 con h = 0.1: f 0 (1.7) = 2(0.1)1 [−3f (1.7) + 4f (1.8) − f (1.9)] = 0.3041
fórmula 4.1.3 con h = 0.1: f 0 (1.7) = 2(0.1)1 [f (1.8) − f (1.6)] = 0.3043
fórmula 4.1.4 con h = 0.1: f 0 (1.7) = 12(0.1)1 [f (1.5) − 8f (1.6) + 8f (1.8) − f (1.9)] = 0.3042. X
n = 2: Regla de Simpson :
R x2
x0 f (x)dx ≈ h3 [f (x0 ) + 4f (x1 ) + f (x2 )]
La figura 4.1.3 muestra la regla del trapecio aplicada a una función f (x). Para este caso, la
partición únicamente cuenta con tres elementos de lo cuales dos son los extremos del intervalo
a integral, de est manera, se observa que si se desea realizar una mejor exactitud de dicha
integral, entonces se deben de considerar una mayor cantidad de puntos sobre el intervalo.
Para la regla del trapecio y la regla de Simpson, existen sus variantes respectivas, donde el
número de elementos de la particion es a consideracion de quien hace uso de dichas fórmulas,
esto es, para obtener un mayor grado de precisi n considerando la regla del trapecio y la
regla de Simpson, se tienen la regla compuesta del trapecio y la regla compuesta de Simpson,
donde a diferencia de las reglas anteriores se consideran una cantidad arbitraria de (n + 1)
puntos de la partición considerando que xi = a + ih con h = (b − a)/n (figura 4.1.2).
A las formulas de integración para el caso de está particion, se les conoce como formulas
abiertas de Newton-Cotes.
n = 0:
R x1
x−1 f (x)dx ≈ 2hf (x0 )
n=1
R x2
x−1 f (x)dx ≈ 3h
2 [f (x0 ) + f (x1 )]
n=2
R x3
x−1 f (x)dx ≈ 4h
3 [2f (x0 ) − f (x1 ) + 2f (x2 )]
R 0.5 2
Ejemplo 4.1.2 Se tiene que dx = 2ln|x − = 2[ln(3.5) − ln(4)] =
0 −0.2670.
0.5
4|| 0 x−4
Resolviendo la integral mediante las formulas de Newton-Cotes cerradas abiertas, se obtiene:
R 0.5 2 0.5
0 x−4 dx = 2
[f (0) + f (0.5)] = −0.2678
Capı́tulo 5
donde las aij son coeficientes y las xi son las incógnitas. Dado un conjunto de ecuaciones
como en 5.1, con coeficientes dados, se desea encontrar los valores de los x0is tales que cumplan
el sistema de ecuaciones.
entonces las operaciones fundamentales para un sistema de ecuaciones como 5.1, se muestran
enseguida:
1. Si c ∈ R − {0} es una constante, entonces cEj multiplica toda la ecuación j por c. Está
nueva ecuación se sustituye por Ej . Esta operación se denota mediante cEj → Ej .
b2
b=
.
bn
se define la matriz aumentada de A con b denotada como [A, b] por
Consideremos la matriz aumentada [A, b] del sistema de ecuaciones 5.1. Mediante opera-
ciones fundamentales, esta matriz puede llevarse a otra equivalente de la forma:
de donde
an,n+1
xn = ann
,
an−1,n+1 −an−1,n xn
xn−1 = an−1,n−1
y en general
ai,n+1 −ai,n xn −···−ai,i+1 xi+1
xi = aii
para i = n − 1, n − 2, . . . , 2, 1.
Al método anterior para la solución del sistema de ecuaciones, se le conoce como elimi-
nacion gaussiana con sustitución hacia atras.
x1 + 2x2 + 3x3 = 1
4x1 + 5x2 + 6x3 = −2
7x1 + 8x2 + 10x3 = 5
1 2 3 . 1
[A, b] = 4 5 6 .. −2
7 8 10 .
5
el cual, mediante operaciones fundamentales, es equivalente a la matriz
1 2 3 .
1
[A, b] ≡ 0 1 2 .. 2
0 0 1 .
10
1−3x3 −2x2
de donde, x3 = 10/1 = 10, x2 = 2−2x3
1
= 2 − 2(10) = −18 y x1 = 1
= 1 − 3(10) −
2(−18) = 7. X
5.2. Algoritmos Basados en Técnicas Iterativas 58
Ejemplo 5.2.1 Si x = (2, −1, 3) ∈ R3 , entonces kxk2 = (22 + (−1)2 + 32 )1/2 = (14)1/2 =
3.7416 y kxk∞ = max1≤i≤3 |xi | = max1≤i≤3 {|2|, | − 1|, |3|} = 3.
d(x, y) = kx − yk
es una distancia.
Definición 5.2.3 Sea An el conjunto de todas las matrices cuadradas de tamaño n × n. Una
norma sobre An , es una función k • k : An → R tal que para cada A ∈ An :
1. kAk ≥ 0.
3. kcAk = |c|kAk
4. kA + Bk ≤ kAk + kBk
5. kABk ≤ kAkkBk
x1 = aa11
12
x2 + · · · + aa1n11
xn + ab111 (5.2)
x2 = aa22
21
x1 + · · · + aa2n 22
xn + ab22
2
···
a an,n−1 bn
xn =
an1
x1 +
n2
x2 + · · · xn−1 +
ann ann ann ann
enseguida se propone una posible solucion al sistema de ecuaciones como en 5.2. Sea x0 =
(x0 , x0 , . . . , x0 ) una propuesta de solución. Ahora se sustituyen los valores de x0
en1 la2 n
ecuación 5.2 obteniendo un nuevo vector de soluciones x1 = (x11 , x21 , . . . , xn1 ) a partir de x0
de la siguiente manera:
a12 a b1
x11
0
= x + · · · + 0a1n11 xn +
a11 2 a11
a21 a b2
x12
0
= a22 x1 + · · · + 0a2n22 xn + a22
···
a n,n−1
01
x an1 a n2 bn
n = ann x1 + 0ann x2 + · · · 0 ann xn−1 + ann
Enseguida se sustituyen los valores del vector x1 en la anterior ecuacion para obtener un
nuevo vector de soluciones x2 de la siguiente manera
5.2. Algoritmos Basados en Técnicas Iterativas 60
a12 a b1
x21
1
= x + · · · + 1a1n11 xn +
a11 2 a11
a21 a b2
x22
1
= a22 x1+ · · · + 1a2n22 xn + a22
···
a n,n−1
12
x an1 a n2 bn
n = ann x1 + 1ann x2 + · · · 1 ann xn−1 + ann
kx k −xk−1 k
y ası́ sucesivamente hasta que kxk k
< T OL para alguna k y para alguna tolerancia T OL
asignada previamente.
4x1 − x2 + x3 = 7
4x1 − 8x2 + x3 = −21
−2x1 + x2 + 5x3 = 15
de aquı́, despejamos cada variable xi de la ecuación Ei para obtener una ecuación de la forma
5.2
x1 = 41 x2 − 41 x3 + 47
x2 = 21 x1 + 81 x3 + 21
8
x3 = 52 x1 − 51 x2 + 3
01 1 1 0 7
1 = 4 x2 − 4 x3 + 4
x = 1.75
01 1 1 0 21
x2 = 2 x1 + 8 x3 + 8 = 3.375
1 20 0 1
3 = 5 x1 − 5 x2 + 3
x = 3.00
x1 = aa11
12
x2 + · · · + aa1n
11
xn + ab111 (5.2)
x2 = aa22
21
x1 + · · · + aa2n
22
xn + ab22
2
···
an2 an,n−1 bn
xn =
a
xn−1 +
ann x1 + ann x2 + · · · ann
n1
ann
01 a12 a b1
x 1 = a11 x2 + · · · + 0a1n11 xn + a11
enseguida se actualiza el vector x0 teniendo como primera entrada x11 de la operacion anterior,
esto es, x0 = (x11 , x20 , . . . , xn0 ), se sustituyen los valores necesarios para encontrar el valor de
x12 del sistema de ecuaciones, esto es, se tome el valor de la ecuación anterior,
donde se
encuentra despejada la variable x12, esto es:
a21 a b2
x12
1
= a22 x1 + · · · + 0a2n22 xn + a22
actualizamos las entradas del vector x0 , teniéndose x0 = (x11 , x21 , x30 , . . . , xn0 ), se sigue con el
procedimiento anterior hasta que se hayan obtenido todas las entradas del vector de solución
correspondiente x1 . Después, se toma a x1 como vector solución y se repite el
proceso
5.2. Algoritmos Basados en Técnicas Iterativas 62
Ejemplo 5.2.3 Consideremos nuevamente el sistema de ecuaciones del ejemplo 5.2.2. Con-
sideremos el despeje de la variable xi de la ecuación Ei
x1 = 41 x2 − 41 x3 + 47
x2 = 21 x1 + 81 x3 + 21
8
x3 = 52 x1 − 51 x2 + 3
proponemos nuevamente el vector solucion x0 = (1, 2, 2). Sustituimos los valores respectivos
en la primera ecuación para obtener
1 1 7
x11
0 = 4 x2 − 4 x30+ 4
= 1.75,
en este momento todas las entradas del vector solución forman parte del vector de solcuión
x1 , esto es x0 = (1.75, 3.75, 2.95). Se continua con el mismo procedimiento para obtener las
entradas del vector solucion x2 y ası́ sucesivamente.La siguiente tabla muestra la sucesión
de vectores solucion {xk }10k=1 que es donde se estabiliza la solución.
Capı́tulo 6
en n números uniformemente espaciados en el intervalo [a, b]. Para resolver el anterior sistema
de ecuaciones, tomemos los valores
h = (b − a)/n
t0 = a
w0 =
α
6.1. Algoritmos por Métodos de Taylor 64
Ejemplo 6.1.1 Aplicar el método de Euler para aproximar soluciones del siguiente problema
de valor inicial
ti wi
2 1
2.5 2
3 2.625
w0 = α
wi+1 = wi + hT N (ti , wi ) para i = 0, 1, . . . , n − 1 y
n−1
T N (ti , wi ) = f (ti , wi ) + h2 f 0 (ti , wi ) + · · · + h n! f n−1 (t i, w i)
6.2. Algoritmo de Runge-Kutta 65
Ejemplo 6.1.2 Apliquemos el método de Taylor de orden dos para resolver el problema de
valor inicial del ejercicio 6.1.1.
ti wi
2 1
2.5 1.75
3 2.425
w0 =
α
wi+1 = wi + 2h [f (ti , wi ) + f (ti+1 , wi + hf (ti , wi ))] para i = 0, 1, . . . , n − 1
w0 =
α
wi+1 = wi + 4h [f (ti , wi + 3f (ti + 32 h, wi + 32 hf (ti , wi )))] para i = 0, 1, . . . , n − 1
w0 =
α
k1 = hf (ti , wi )
k2 = hf (ti + 2h , wi + 21 k1 )
k3 = hf (ti + 2h , wi + 21 k2 )
k4 = hf (ti+1 , wi + k3 )
wi+1 = wi + 61 (k1 + 2k2 + 2k3 + k4 ) para i = 0, 1, . . . , n − 1.
67
Bibliografı́a