Este documento presenta un resumen de un curso de Análisis Numérico. Incluye temas como la propagación de errores, solución de ecuaciones, integración numérica y bibliografía recomendada. También describe conceptos clave como problemas y algoritmos numéricos, y los pasos generales para resolver problemas matemáticos numéricamente.
1. Análisis Numérico
Facultad de Ciencias
Kay Tucci
kay@ula.ve
SUMA
Facultad de Ciencias
Universidad de Los Andes (ULA)
´
Merida, 5101 - VENEZUELA
´ ´
Analisis Numerico – p. 1/196
2. Programa del Curso
Fuente y propagación de errores
Solución de ecuaciones no lineales de una variable
Solución de sistemas de ecuaciones lineales
Teoría de interpolación
Integración numérica
´ ´
Analisis Numerico – p. 2/196
3. Bibliografía y Materiales
Bibliografía
Kincaid D. & Cheney W. An Introduction to Numerical Analisys
Atkinton Kendall E. An Introduction to Numerical Analisys
Burden R. y Faires D. Analisis Numerico
´ ´
Trevisan M. C. Notas de Analisis Numerico
´ ´
Materiales
http://www.matematica.ula.ve/publicaciones/index.html
http://webdelprofesor.ula.ve/ciencias/kay
Recomendaciones Generales
´ ´
Analisis Numerico – p. 3/196
4. Algunos conceptos
Problema numérico: Descripción precisa de la relación funcional
entre un conjunto finito de datos de entrada y un conjunto finito de
datos de salida.
Algoritmo: secuencia ordenada y finita de pasos, excenta de
ambigüedades, que seguidas en su orden lógico nos conduce a la
solución de un problema específico
Método numérico: Procedimiento para transformar un problema
matemático en numérico y resolver este último
´ ´
Analisis Numerico – p. 4/196
5. Pasos Generales
El análisis numérico se utiliza generalmente cuando no se puede
resolver el problema matemático, es decir hallar una relación funcional
entre el conjunto de entrada y el de salida. Los pasos a seguir son:
1. Estudio teórico del problema: existencia y unicidad de la solución.
2. Aproximación: Crear una solución para un número finito de valores
existencia y unicidad
estabilidad y convergencia
3. Resolución: Elección de un algoritmo numérico
Elección del algoritmo: Costo y estabilidad
Codificación del algoritmo
Ejecución del programa
´ ´
Analisis Numerico – p. 5/196
6. Fuente y propagación de errores
Sistemas numéricos
Aritmética del computador
Fuentes de errores
Errores de redondeo y discretización
Propagación de errores
Estabilidad e inestabilidad numérica
´ ´
Analisis Numerico – p. 6/196
7. Sistemas numéricos
Los sistemas numéricos más antiguos son:
Babilónico: base 60
Romano: (I, V, X, L, C, D y M)
Hindú y árabe: decimal
El extendido uso del sistema decimal oculta la existencia de otros
sistemas numéricos:
Binario: base 2
Octal: base 8
Hexadecimal: base 16
...
´ ´
Analisis Numerico – p. 7/196
8. Sistemas numéricos de posición
Los sistemas númericos actuales, decimal, binario, octal, hexadecimal,
entre otros; representan a los números reales mediante un sistema de
posición con base b.
n
±x = ±(an bn + an−1 bn−1 + an−2 bn−2 + . . . ) = ± ai bi ;
i=−∞
donde, a es el valor absoluto del número real a representar,
0 ≤ ai ≤ b − 1 en el dígito que ocupa la posición i en a contadas a
partir del punto decimal, positivos a la izquierda y negativos a la
derecha; y n en la posición más a la izquierda ocupada por un dígito
an = 0
Ambigüedades:
a.ccccc · · · = a + 1 ; c=b−1
´ ´
Analisis Numerico – p. 8/196
9. Sistema numéricos de posición
Conversión de base 10 a base b: convertir el número 12.312510 a
base 2
1. Dividir, sucesivamente, la parte entera del número (1210 ), entre la
nueva base (2), hasta obtener un cociente más pequeño que esta
última (2), asignando sucesivamente los restos de la división
entera a a0 = 0, a1 = 0, a2 = 1, a3 = 1.
1210 = 11002
2. Multiplicamos la parte fraccionaria del número decimal (0.312510 )
por la nueva base b (2), restando y asignando sucesivamente la
parte entera del producto a a−1 = 0, a−2 = 1, a−3 = 0, a−4 = 1
0.312510 = 0.01012
12.312510 = 1100.01012
´ ´
Analisis Numerico – p. 9/196
10. El computador
CPU PC
CU
Acum
Memoria Principal
Registros
Instrucciones
Registros
ALU
RAM ROM
Cache
Bus Control
Bus Datos
Cache
Controlador Controlador Controlador Controlador Controlador
I/O I/O I/O de Discos I/O
Interfaz Entrada/Salida Memoria Secundaria
´ ´
Analisis Numerico – p. 10/196
11. Sistema de numeración binario
Utiliza solamente dos dígitos o símbolos: “0” y “1”, y su base es 2.
Definiciones:
bit: del ingles Binary digIT, representa un dígito binario. Ademas, el bit
es la unidad mínima de información empleada en la teoría de la
información.
byte u octeto: Generalmente se refiere a 8 bits. Formalmente es una
secuencia de bits contiguos, cuyo tamaño depende del código de
información o de carácteres en que esté usando.
´ ´
Analisis Numerico – p. 11/196
12. Sistema de numeración binario
Nombre Abrev. Factor Valor
kilo K 210 1024
mega M 220 1048576
giga G 230 1073741824
tera T 240 1099511627776
peta P 250 1125899906842624
exa E 260 1152921504606846976
zetta Z 270 1180591620717411303424
yotta Y 280 1208925819614629174706176
bronto B 290 1237940039285380274899124224
geop Ge 2100 1267650600228229401496703205376
´ ´
Analisis Numerico – p. 12/196
13. Sistema de numeración binario
Existen variantes del sistema de numeración binario
Binario puro: Solamente se pueden representar números no negativos
Signo Magnitud: El bit más significativo representa el signo (0 = +) y
(1 = −) y los restantes n − 1 bits representan el valor absoluto del
número.
Complemento a la Base Disminuida:En los números negativos cada dígito
se escribe como [d]b = (b − 1) − (di )b
Complemento a la Base: [N ]b de un número (N )b se define como:
[N ]b = bn − (N )b ,
donde, n es el número de dígitos de (N )b
´ ´
Analisis Numerico – p. 13/196
14. Sistema de numeración binario
En 1985 la IEEE establece el Binary Floating Point Arithmetic Standard
754-1985, donde se establecen los formatos para representar
números punto flotantes de precisión simple (32 bits) y doble (64 bits)
Los números se distribuyen de forma exponencial en la recta real
(−1)S 2E−127 (1 + 0.F ) | (−1)S 2E−1023 (1 + 0.F )
donde, S representa el bit de signo, E el exponente y F la parte
fracción binaria del número.
presición signo exponente mantisa
simple 1 8 bits 10−39 ↔ 1038 23 bits 7 cifras dec.
doble 1 11 bits 10−308 ↔ 10308 52 bits 16 cifras dec.
´ ´
Analisis Numerico – p. 14/196
15. Desbordamiento
Los resultados que en valor absoluto son menores que el valor mínimo
que soporta el formato de representación son considerados
underflows, mientras los que son mayores que el valor máximo
permitido se consideran overflows.
x ← 1 ; i ← 0 x ← 1
Repita i ← 0
| ant ← x Mientras (1 + x > 1 )
| i ← i + 1 | x ← x / 2
| x ← 2*x | i ← i + 1
| Escribir(i, ant, x) | Escribir(i, x)
hasta(ant > x)
´ ´
Analisis Numerico – p. 15/196
16. Fuentes de errores
En los datos de entrada
En los códigos
Temperamento del computador:
“El programa no quiere correr”
Cuantización del sistema de numeración
de redondeo o truncamiento:
2 1 − 3 = 0.6666666 − 0.6666667 = −0.0000001
3
2
Aproximación en los algoritmos:
∞ N
xn ∼ xn
ex = =
n=0
n! n=0
n!
´ ´
Analisis Numerico – p. 16/196
17. Errores relativo y absoluto
Sea x∗ el valor aproximado de una cantidad x
Error absoluto: |x∗ − x|
x∗ −x
Error relativo: x ,x = 0
m es una cota del error absoluto si: m > 0 y |x∗ − x| ≤ m
x∗ −x
m es una cota del error relativo si: m > 0 y x ≤ m, x = 0
´ ´
Analisis Numerico – p. 17/196
18. Cifras significativas
Decimos que a es la representación normalizada de un número real
no nulo x si
x = ±0.a1 a2 a3 · · · × 10e ,
donde, a1 es un dígito del 1 al 9; ai , i = 2, 3, . . . , son dígitos del 0 al 9 y
e ∈ Z es el exponente.
a∗ aproxima a a con t decimales correctos si t es el mayor entero
no negativo para el cual: |a∗ − a| ≤ 0.5 × 10−t
a∗ aproxima a a con t cifras significativas si t es el mayor entero
no negativo para el cual: |a∗ − a| < 0.5 × 10e−t
donde, a∗ el valor aproximado de una cantidad a
´ ´
Analisis Numerico – p. 18/196
19. Propagación de errores
Sean x∗ , y ∗ los valores aproximados de x, y; y ǫx , ǫy ≪ 1 sus
respectivos errores relativos.
Suma / Resta :
(x∗ ± y ∗ ) − (x ± y) x y
ǫx±y = = ǫx ± ǫy
x±y x±y x±y
´
Multiplicacion :
(x∗ y ∗ ) − (xy)
ǫxy = = ǫx + ǫy + ǫx ǫy ∼ ǫx + ǫy
=
xy
´
Division :
(x∗ /y ∗ ) − (x/y) ǫx − ǫy ∼
ǫx/y = = = ǫx − ǫy
x/y 1 + ǫy
´ ´
Analisis Numerico – p. 19/196
20. Propagación de errores
Para evitar la propagación rádida de los errores hay que tener en
cuenta que en la aritmética del computador la propiedad asosiativa no
se cumple.
Resta de números muy parecidos
√
−b + b2 − 4ac −2c
x1 = = √
2a b + b2 − 4ac
Sumatorias largas de números
105 99 100
1 1 1
x= 5
¯ xi = xi+100j
10 i=1
100 j=0
100 i=1
Ordenar los terminos de menor a mayor
´ ´
Analisis Numerico – p. 20/196
21. Error total e iteraciones óptimas
Generalmente en los algoritmos iterativos los errores de aproximación
dependen del número de iteraciones N y pueden modelarse como,
α
ǫaprox ≃ β
,
N
y los errores de redondeo dependen del precisión de la máquina ǫmaq
y van como
√
ǫred ≃ N ǫmaq
Entonces, el error total ǫt viene dado por,
α √
ǫt = ǫaprox + ǫred ≃ β + N ǫmaq
N
El número de iteraciones óptima se alcanza cuando ǫt sea mínimo
´ ´
Analisis Numerico – p. 21/196
22. Cálculo del error
Cómo se propagan el errores de los datos x cuando se calcula f (x)
∂f ( x) xi
ǫf ∼
= |ǫxi |
i
xi f (x)
Empíricamente, comparamos los valores calculados con N y 2N
iteraciones. Cuando se alcanza el valor asimtótico y el error de
redondeo no es significativo se tiene que,
α
fN (x) − f2N (x) ≃ β
,
N
En un gráfico log10 (fN − f2N ) vs log10 (N ) esto es una recta.
En la gráfica anterior, el punto No en el que cambia la pendiente indica
aproximadamente el número óptimo de iteraciones, y el log10 (No )
aproxima al número de cifras significativas del resultado numérico.
´ ´
Analisis Numerico – p. 22/196
23. Símbolos O y o
Decimos que f es de orden O grande con respecto a g cuando
x → a si existe una constante K > 0 tal que,
f (x)
≤ K,
g(x)
para x = a en un entorno de a.
Pondremos f = O(g) cuando x → a.
Decimos que f es de orden o pequeña con respecto a g cuando
x → a si,
f (x)
lim = 0.
x→a g(x)
Pondremos f = o(g) cuando x → a.
´ ´
Analisis Numerico – p. 23/196
24. Símbolos O y o
Ejemplo:
f = O(1) cuando x → a significa que f (x) se mantiane acotada
cuando x → a
f = o(1) cuando x → a significa que f (x) tiende a cero cuando
x→a
Propiedades:
Si f = o(1) cuando x → a entonces f = O(1) cuando x → a
Si f = O(xn ) cuando x → 0 para algún n ∈ Z+ entonces
f = O(xn−1 ) cuando x → 0
´ ´
Analisis Numerico – p. 24/196
25. Estabilidad y Condición
Los algorítmos numéricos debe dar resultados precisos y exactos.
Estabilidad: Un algoritmo es estable si cambios pequeños en los
datos iniciales producen cambios pequeños en los resultados
Condición: Algunos algoritmos son estables solamente para un
conjunto de condiciones iniciales. Estos algoritmos son
condicionalmente estables
Crecimiento del error: Si ǫ0 denota el error inicial y ǫn el error
despues de n iteraciones, decimos que el error crece:
linealmente si ǫn ≈ knǫ0
exponencialmente si ǫn ≈ k n ǫ0 Hay que evitarlo
Por lo general es inevitable el crecimiento lineal del error.
´ ´
Analisis Numerico – p. 25/196
26. Ecuaciones no Lineales
Introducción
Método de bisección
Método de la secante
Método de Newton
Métodos iterativos de un punto
Raices múltiples
Cálculo de raíces de polinomios
´ ´
Analisis Numerico – p. 26/196
27. Ecuaciones no Lineales
En las Matemáticas aplicada frecuentemente se debe hallar
soluciones de la ecuación
f(x) = 0 ,
donde, x ∈ Rn y f : Rn → Rm es una función no lineal. En
particular, en este curso nos centraremos en la busqueda de las
raices o ceros de funciones unidimensionales, m = 1, y
monovaluadas n = 1; es decir,
f (x) = 0 ,
donde, x ∈ R y f : R → R
´ ´
Analisis Numerico – p. 27/196
28. Ecuaciones no Lineales
Ecuaciones algebraicas:
x2 − x + 2 = 0
x6 = x − 1
Ecuaciones tracendentes:
x
sin(x) − 2 =0
tan(x) = ex
Sólo existen soluciones exactas en casos muy particulares y
generalmente, se tendrán que utilizar métodos numéricos, en
particular, metodos iterativos.
´ ´
Analisis Numerico – p. 28/196
29. Metodo Iterativo
Es aquel método numérico en el que partiendo de un valor x0
arbitrario, se calcula una sucesión x0 , x1 , x2 , . . . de forma
recurrente, mediante una relacion de la forma
xn+1 = g(xn ) , n = 0, 1, 2, . . . ;
donde, xi ∈ R y g : R → R
Los métodos iterativos también se utilizan en otros problemas
numéricos y, en general, son muy poco vulnerables al
crecimiento del error por redondeo
Iteración: Los pasos que se dan, en un algoritmo, para calcular
un iterado, xn+1 , a partir del iterado anterior, xn .
´ ´
Analisis Numerico – p. 29/196
30. Orden de convergencia
Sea {xn }∞ una sucesión que converge a α y ǫn = xn − α.
n=0
Si existe una constante C ∈ (0, 1) tal que
|ǫn+1 |
lim =C,
n→∞ |ǫn |
entonce, la sucesión converge a α linealmente con una
tasa o velocidad de convergencia C
Si lo anterior ocurre para C = 0, entonces se dice que la
sucesión converge superlinealmente.
´ ´
Analisis Numerico – p. 30/196
31. Orden de convergencia
Sea {xn }∞ una sucesión que converge a α y ǫn = xn − α.
n=0
Si existe un p ≥ 1 y una constante C tal que
|ǫn+1 |
lim =C,
n→∞ |ǫn |p
entonce, {xn }∞ converge a α con orden p.
n=0
En particular, la convergencia con orden p = 2 se le llama
cuadrática y la con orden p = 3 cúbica
En general los métodos que generen sucesiones con alto orden
de convergencia se aproximan más rápidamente a la solución
que aquellos que generen sucesiones con bajo orden.
´ ´
Analisis Numerico – p. 31/196
32. Método de bisección
Entrada: a, b, t, n
Salida: c, ’error’
leer(a, b, t, n)
i ← 1 y y=f(x)
fa ← f(a)
repita a3 c3 b3
| c ← a+(b-a)/2
| fc ← f(c) a2 c2 b2
| i ← i + 1 a1 c1 b1
|si (sign(fa)∗sign(fc)>0)
a1= a2 c3 b2 = b3
| | fa ← fc ; a ← c
| sino a= a1 c2= a3 c1= b2 b= b1
| | b ← c
hasta (i≥n)∨(fc=0)∨(|b-a|/2≤t)
si (fc=0)∨(|b-a|/2≤t)
| escribir(c)
sino
| escribir(’error’)
´ ´
Analisis Numerico – p. 32/196
33. Método de bisección
Convergencia
Como f (a)f (b) ≤ 0 sabemos que existe un α ∈ [a, b] tal que f (α) = 0. Partiendo del
algoritmo y mediante inducción se puede ver que
1 1
bn+1 − an+1 = (bn − an ) y que bn − an = (b1 − a1 )
2 2n−1
Como α ∈ [an , cn ] o α ∈ [cn , bn ] tenemos que
1
|cn − α| ≤ an − cn = cn − bn = (an − bn )
2
Combinando las dos equaciones anteriores tenemos que
1
|cn − α| ≤ (b1 − a1 ) , n≥1
2n−1
Lo que implica que
lim cn = α
n←∞
1
es decir, convergencia lineal, p = 1 con una velocidad de convergencia C = 2
´ ´
Analisis Numerico – p. 33/196
34. Método de bisección
Comentarios del método de bisección:
Hay que dar dos valores iniciales, uno a cada lado de la raiz que
se está buscando. Esto es un problema, especialmente si no se
tiene ninguna idea del comportamiento de la función o si esta
presenta raices muy similares o múltiples.
Errores de redondeo o de cuantificación pueden causar problemas
cuando el intervalo de búsqueda se vuelve pequeño
Al evaluar la función cerca de la raiz, f (x) ≈ 0, para el cálculo del
cambio de signo, los errores por operar con números muy
pequeños pueden hacerse presentes
´ ´
Analisis Numerico – p. 34/196
35. Método de la posición falsa
Entrada: a, b, t, n
Salida: c, ’error’
leer(a, b, t, n)
i ← 0; c ← a y y=f(x)
fa ← f(a); fb ← f(b)
repita a3 c3 b3
| i ← i + 1; ant ← c
| c ← b-fb∗(b-a)/(fb-fa) a2 c2 b2
| fc ← f(c) a1 c1
b1
|si (sign(fa)∗sign(fc)>0)
c3 b1 = b2
| | fa ← fc ; a ← c
| sino a= a1 c1= a2 c2= a3 b= b1
b2 = b3
| | fb ← fc ; b ← c
hasta (i≥n)∨(|c-ant|≤t)
si (|c-ant|≤t)
| escribir(c)
sino
| escribir(’error’)
´ ´
Analisis Numerico – p. 35/196
36. Método de la posición falsa
Convergencia
Diferencias divididas:
´
Definicion: Sean a = b = c,
f (b) − f (a)
diferencia dividida de primer orden: f [a, b] =
b−a
f [b, c] − f [a, b]
diferencia dividida de segundo orden: f [a, b, c] =
c−a
Propiedades:
f [a, b] = f [b, a]
f [a1 , a2 , a3 ] = f [ai , aj , ak ] con i = j = k y i, j, k ∈ {1, 2, 3}
si f es continua en [a, b] y derivable en (a, b), existe ξ ∈ (a, b) tal que
f [a, b] = f ′ (ξ) (Teorema del valor medio)
si f ′ es derivable en (min(a, b, c), max(a, b, c)), existe η tal que
f [a, b, c] = f ′′ (η)
´ ´
Analisis Numerico – p. 36/196
37. Método de la posición falsa
Convergencia Del método tenemos que:
b−a
c = b − f (b) ,
f (b) − f (a)
donde el error se calcula como
b−a 1 f ′′ (η)
c−α= b−α− = (a − α)(b − α) ′ , η, ξ ∈ (a, b)
f (b) − f (a) 2 f (ξ)
Teorema: Sea f dos veces continuamente diferenciable en [a, b] con α la única raiz en
[a, b]. Suponiendo que f (a)f (b) < 0, f ′ (α) = 0 y f ′′ no cambia de signo en [a, b]. Si
˛ ˛ ˛ ′′ ˛
˛ω − α˛ ˛ f (x) ˛
C=˛ ˛ 2 ˛ maxx∈[a,b] ˛ f ′ (x) ˛ < 1 , con ω = a o ω = b ,
˛ ˛ ˛
según sea caso del estremo del intervalo [a, b] que no se modifique, entonces el método
converge linealmente.
an+1 − α ≤ C(an − α) , si ω = b o bn+1 − α ≤ C(bn − α) , si ω = a
´ ´
Analisis Numerico – p. 37/196
38. Método de la posición falsa
Comentarios del método de la posición falsa:
Hay que dar dos valores iniciales, uno a cada lado de la raiz que
se está buscando. Esto es un problema, especialmente si no se
tiene ninguna idea del comportamiento de la función o si esta
presenta raices muy similares o múltiples.
Si la función es convexa o cóncava en [a, b] uno de los extremos
de intervalo no se moverá por lo que el método solamente
aproxima a la raiz por uno de los lados.
Al evaluar la función cerca de la raiz, f (x) ≈ 0, para el cálculo del
cambio de signo, los errores por operar con números muy
pequeños pueden hacerse presentes
´ ´
Analisis Numerico – p. 38/196
39. Método de la secante
Entrada: a, b, t, n
Salida: c, ’error’
leer(a, b, t, n) y y=f(x)
i ← 1
fa ← f(a) a3 b3 c3
fb ← f(b)
repita b2 c2 a2
| c ← b-fb∗(b-a)/(fb-fa) a1 c1 b1
| i ← i + 1
b2= a3 c2= b3 b1= a2
| a ← b; fa ← fb
| b ← c; fb ← f(c) a= a1 c1= b2 c3 b= b1
hasta (i≥n)∨(fc=0)∨(|b-a|/2≤t)
si (fc=0)∨(|b-a|/2≤t)
| escribir(c)
sino
| escribir(’error’)
´ ´
Analisis Numerico – p. 39/196
40. Método de la secante
Convergencia Del método tenemos que:
b−a
c = b − f (b) ,
f (b) − f (a)
donde, usando diferencias divididas, el error se calcula como
b−a 1 f ′′ (η)
c−α= b−α− = (a − α)(b − α) ′ , η, ξ ∈ (a, b)
f (b) − f (a) 2 f (ξ)
sustituyendo c = xn+1 , b = xn , a = xn−1 tenemos que
f ′′ (ηn )
ǫn+1 = ǫn ǫn−1 ′
2f (ξn )
Teorema: Supongamos que f : R → R es una función C 2 en una vecindad de α para la
cual f (α) = 0 y f ′ (α) = 0. Entonces si x0 y x1 se seleccionan suficientemente cerca
de α las iteraciones del método de la secante convergen a α. Además,
„ ′′ « √
ǫn+1 f (α) p−1 1+ 5
lim = , p= ≈ 1.62
n→∞ (ǫn )p 2f ′ (α) 2
´ ´
Analisis Numerico – p. 40/196
41. Método de la secante
Demostración de la convergencia:Sea
„ ′′ «
f (x)
M = max ∀ x ∈ I = [α − ǫ, α + ǫ] , ǫ > 0
2f ′ (x)
y supongamos que x0 y x1 son escogidos de forma tal que
δ = max{M |ǫ0 |, M |ǫ1 |} < 1
Como |ǫ2 | ≤ M |ǫ1 ||ǫ0 | tenemos que
δ
M |ǫ2 | ≤ M 2 |ǫ1 ||ǫ0 | ≤ δ 2 < δ < 1 =⇒ |ǫ2 | < <ǫ
M
Suponiendo que xi ∈ I , i = 1, 2, . . . , n, lo que significa que M |ǫi | < δ, entonces
|ǫn+1 | ≤ M |ǫn ||ǫn−1 |
δ
M |ǫn+1 | ≤ M 2 |ǫn ||ǫn−1 | ≤ δ 2 < δ < 1 =⇒ |ǫn+1 | < <ǫ
M
lo que indica que xn ∈ I ∀ n
´ ´
Analisis Numerico – p. 41/196
42. Método de la secante
Demostración de la convergencia:
M |ǫ0 | ≤ δ
M |ǫ1 | ≤ δ
M |ǫ2 | ≤ M |ǫ0 |M |ǫ1 | ≤ δ×δ = δ2
M |ǫ3 | ≤ M |ǫ1 |M |ǫ2 | ≤ δ × δ2 = δ3
M |ǫ4 | ≤ M |ǫ2 |M |ǫ3 | ≤ δ2 × δ3 = δ5
M |ǫ5 | ≤ M |ǫ3 |M |ǫ4 | ≤ δ3 × δ5 = δ8
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
M |ǫn+1 | ≤ M |ǫn−1 |M |ǫn | ≤ δ qn−1 × δ qn = δ qn−1 +qn
Se tiene que {qn } es la sucesión de Fibonacci cuya solución positiva es
√ !n+1
1 1+ 5
qn = √
5 2
´ ´
Analisis Numerico – p. 42/196
43. Método de la secante
Demostración de la convergencia: Así que
δ qn
|ǫn | ≤ con δ < 1 , obtenemos que lim |ǫn | = 0
M n→∞
Como
√ !n+1 √
1 1+ 5 1+ 5
qn = √ , p=
5 2 2
entonces
(δ qn )p = δ qn+1
y calculando la convergencia tenemos que
1 qn+1 1 qn+1
ǫn+1 δ δ
lim M
= lim ` 1 ´p = lim M
= M p−1
n→∞ (ǫn )p n→∞ δ qn n→∞ 1
δ qn+1
M Mp
´ ´
Analisis Numerico – p. 43/196
44. Método de la secante
Comentarios del método de la secante:
Hay que dar dos valores iniciales, a pesar de que no tienen que
encerrar a la raiz que se está buscando, los puntos tienen que
estar suficientemente cerca de la raiz para garantizar que el
método converja.
Si la derivada de la función, cerca de la raiz, tiene un valor muy
alto el cálculo de b − a puede causar problemas por perdida de
cifras significativas.
De igual modo, si la derivada de la función, cerca de la raiz, tiene
un valor muy bajo el cálculo de f (b) − f (a) puede causar
problemas por perdida de cifras significativas
´ ´
Analisis Numerico – p. 44/196
45. Método de Newton-Raphson
Entrada: x, t, n y
Salida: x, ’error’
y=f(x)
leer(x, t, n)
i ← 0 g (x)=f’(x i)(x − x ) + f(x )
i i i
repita
| i ← i + 1
| xa ← x
| x ← xa - f(xa)/fp(xa)
hasta (i≥n)∨(|x-xa|≤t)
si (|x-xa|≤t)
| escribir(x)
sino x3
x0 f(x ) x1=x − f(x )
0
| escribir(’error’) x2=x 1− 1 0
f ’(x )
f ’(x )
1 0
´ ´
Analisis Numerico – p. 45/196
46. Método de Newton-Raphson
Convergencia
Del método de Newton-Raphson tenemos que
f (xn )
xn+1 = xn − , n≥0
f ′ (xn )
Expandiendo a f (x) alrededor de xn :
′ (x − xn )2 ′′
f (x) = f (xn ) + (x − xn )f (xn ) + f (ξn ) , ξn ∈ [xn , x] o [x, xn ]
2
Para x = α, f (α) = 0 y dividiendo lo anterior entre f ′ (xn ) tenemos
f (xn ) ′′
2 f (ξn )
′ (x )
+ (α − xn ) +(α − xn ) =0
f n | {z } 2f ′ (xn )
| {z } ǫn
−ǫn+1
Que es lo mismo que
f ′′ (ξn )
ǫn+1 = ǫ2
n
2f ′ (xn )
´ ´
Analisis Numerico – p. 46/196
47. Método de Newton-Raphson
Convergencia
Teorema: Sea f ∈ C 2 [a, b]. Si α ∈ [a, b] es tal que f (α) = 0 y f ′ (α) = 0, entonces
existe un ǫ > 0 tal que el método de Newton-Raphson genere una sucesión {xn }∞ n=1
que converge cuadráticamente a α para cualquier valor inicial x0 ∈ I = [α − ǫ, α + ǫ]
Demostración: Definamos a
˛ ′′ ˛
1 ˛ f (ξn ) ˛
M = max ˛ ′ ˛ f (x ) ˛
˛ , y escojamos a x0 ∈ I tal que M |ǫ0 | < 1
2 x∈I n
Sustituyendo en la ecuación de la sucesión {ǫn } tenemos
|ǫ1 | ≤ (M |ǫ0 |)2 < |ǫ0 | ≤ ǫ , lo que implica que x1 ∈ I
Ahora si suponemos que xn ∈ I y que M |ǫn | < 1 tenemos
|ǫn+1 | ≤ (M |ǫn |)2 < |ǫn | ≤ ǫ , lo que implica que xn+1 ∈ I
´ ´
Analisis Numerico – p. 47/196
48. Método de Newton-Raphson
Demostración de la convergencia: De lo anterior concluimos que
xn ∈ I , M |ǫn | < 1 ∀ n y M |ǫn+1 | ≤ (M |ǫn |)2 ≤ (M |ǫ0 |)2n
obteniendo que |ǫn | = 0 cuando n → ∞ ya que M |ǫ0 | < 1, lo que equivale a
lim xn = α
n→∞
Además,
ǫn+1 1 f ′′ (α)
lim =
n→∞ ǫ2 2 f ′ (α)
n
Es decir, el método tiene un orden de convergencia
1 f ′′ (α)
p = 2 con C =
2 f ′ (α)
´ ´
Analisis Numerico – p. 48/196
49. Método de Newton-Raphson
Trampas
Cambio de concavidad Raiz no real
f ′′ (x) = 0
y y
y=f(x) y=f(x)
x4
x2
x0
x1
x3
x5
x0 x1
x2 x3
x4 x5
´ ´
Analisis Numerico – p. 49/196
50. Método iterativo de un punto
Partiendo de la ecuación general
f (x) = 0 ,
cuyas raices se quieren encontrar. Supongamos que α es una de sus
raices y que existe otro valor x0 que no satisface la ecuación.
f (α) = 0 , f (x0 ) = 0
Realizando algunas operaciones algebraicas transformaos la ecuación
f (x) = 0 en g(x) = x ,
donde, g(x) es una nueva función que cumple con
g(α) = α , g(x0 ) = x0
´ ´
Analisis Numerico – p. 50/196
51. Método iterativo de un punto
Al evaluar un valor cualquiera x0 en g(x) obtenemos un nuevo valor
x1 = g(x0 ) ,
donde, si el nuevo valor
x = x , encontramos la raiz x0 = α
1 0
x1 = x0 , es lo que generalmente pasa
Si repetimos el proceso obtenemos
x1 = g(x0 ) , x2 = g(x1 ) , . . . , xn = g(xn−1 )
´ ´
Analisis Numerico – p. 51/196
52. Método iterativo de un punto
La sucesión {xn } converge a la raiz α si
lim (xn − α) = 0 , es decir, lim xn = α
n→∞ n→∞
Si la expresión anteriror es cierta, debe valer también para xn+1
lim (xn+1 − α) = 0 , y como xn tiende a α , lim (xn+1 − xn ) = 0
n→∞ n→∞
Es decir, cuando el número de iteraciones se vuelve muy grande la
diferencia entre dos aproximaciones sucesivas xn y xn+1 de la raiz α
debe aproximarse a cero.
Esta condición es necesaria para que los procesos iterativos converjan
a la raiz.
´ ´
Analisis Numerico – p. 52/196
53. Método iterativo de un punto
Entrada: x, t, n
y g(x) se obtiene al transformar
Salida: x, ’error’
y=g(x) f(x)=0 en g(x)=x
leer(x, t, n)
i ← 0
repita
| i ← i + 1
y=f(x)
| xa ← x
| x ← g(xa)
hasta (i≥n)∨(|x-xa|≤t)
si (|x-xa|≤t)
| escribir(x)
x2=g(x1 ) x1=g(x0 )
sino
| escribir(’error’) x0 x3 =g(x2 )
´ ´
Analisis Numerico – p. 53/196
54. Método iterativo de un punto
y y
y=g(x)
y=g(x)
x5 x4 x3 x2 x1 x0 x1 x3 x5 x4 x2 x0
Convergencia Monotónica Convergencia Oscilante
y y y=g(x)
y=g(x)
x1 x2
x0 x1 x2 x3 x4 x5 x3 x0 x4
Divergencia Monotónica Divergencia Oscilante
´ ´
Analisis Numerico – p. 54/196
55. Método iterativo de un punto
Criterio de convergencia
Del teorema del valor medio sabemos que
g(xn ) − g(xn−1 ) = g ′ (ξn )(xn − xn−1 ) ,
donde, ξn ∈ región entre xn y xn−1 y g ′ (x) es la derivada de g(x).
Como g(xn ) = xn+1 y g(xn−1 ) = xn podemos decir
|xn+1 − xn | = |g ′ (ξn )||(xn − xn−1 )|
Si suponemos que |g ′ (ξn )| ≤ M , es decir está acotada en el entorno
de la raiz tenemos que
|xn+1 − xn | ≤ M |xn − xn−1 | ≤ M 2 |xn−1 − xn−2 |
´ ´
Analisis Numerico – p. 55/196
56. Método iterativo de un punto
Criterio de convergencia
Continuando con la sustitucion hasta el termino M |x1 − xo | tenemos
|xn+1 − xn | ≤ M n |x1 − xo |
Como sabemos que para que la serie converja xn+1 − xn debe tender
a cero, entonces
lim M n |x1 − xo | = 0 ,
n→∞
y como |x1 − xo | = 0 a menos que x0 = α tenemos que
|g ′ (x)| ≤ M < 1 ∀ x en un entorno de α que contenga a x0
Es condición suficiente, más no necesaria, para la convergencia
´ ´
Analisis Numerico – p. 56/196
57. Método iterativo de un punto
Criterio de convergencia
Teorema: Sea α una raiz de x = g(x), con la función g(x) p ≥ 2 veces
continuamente diferenciable en un entorno de α. Además,
supongamos que
g (j) (α) = 0 ∀ j<p
Si se elige a x0 suficientemente cerca de α el método iterativo de un
punto converge a α con un orden de al menos p y se cumple
ǫn+1 g (p) (α)
lim p =
n→∞ ǫn p!
´ ´
Analisis Numerico – p. 57/196
58. Método iterativo de un punto
Criterio de convergencia
Demostración: Expandiendo a g(xn ) con una serie de Taylor
alrededor de α tenemos
′ (xn − α)p−1 (p−1) (xn − α)p (p)
xn+1 = g(α)+(xn −α)g (α)+· · ·+ g (α)+ g (ξn ) ,
(p − 1)! (p)!
con ξn entre xn y α. Como g (j) (α) = 0∀j < p y g(α) = α, obtenemos
(xn − α)p (p)
xn+1 − α = g (ξn )
(p)!
Como el método converge por ser g ′ (α) = 0 < 1, xn → α y por lo tanto
xn+1 − α ǫn+1 g (p) (α)
lim = lim p =
n→∞ (xn − α)p n→∞ ǫn p!
´ ´
Analisis Numerico – p. 58/196
59. Método iterativo de un punto
Raices múltiples: Cuando un método iterativo se aproxima a una raiz
de f (x) el orden de convergencia del método se pierde cuando la raiz
es múltiple.
Definición: Decimos que α es un cero de multiplicidad m de f (x) si
f (x) = (x − α)m q(x) ∀x = α , donde, lim q(x) = 0
x→α
Esencialmente q(x) representa la parte de f (x) que no contribuye al
cero de la función.
Teorema: La función f ∈ C m [a, b] tiene un cero de multiplicidad m en
α ∈ (a, b) ssi
f (j) (α) = 0 ∀ j < m y f m (α) = 0
´ ´
Analisis Numerico – p. 59/196
60. Método iterativo de un punto
Raices múltiples: Para resolver este problema se define una función
f (x) (x − α)m
φ(x) = ′
f (x) m(x − α)m−1 q(x) + (x − α)m q ′ (x)
q(x)
φ(x) = (x − α)
mq(x) + (x − α)q ′ (x)
que tiene un único cero en α, ya que q(α) = 0
Luego, aplicamos algún método iterativo usando φ(x) como sustituta
de f (x). Por ejemplo para el método de Newton-Raphson tendríamos
que
φ(x) f (x)f ′ (x)
g(x) = x − ′ =x− 2
φ (x) (f ′ (x)) − f (x)f ′′ (x)
Note que se requiere evaluar también a f ′′ (x)
´ ´
Analisis Numerico – p. 60/196
61. 2
∆ de Aitken
El método ∆2 de Aitken sirve para acelerar la convergencia lineal de
una sucesión {xn }∞ a su límite α. Para valores suficientemente
n=0
grandes de n tenemos que
xn+1 − α xn+2 − α (xn+1 − xn )2
≈ → α ≈ xn −
xn − α xn+1 − α xn+2 − 2xn+1 + xn
Teorema: Sea una sucesión que converge a α. La sucesión {yn },
definida por
(xn+1 − xn )2
yn+1 = xn −
xn+2 − 2xn+1 + xn
converge a α más rapidamente que la sucesión {xn }, esto es
yn − α
lim =0
n→∞ xn − α
´ ´
Analisis Numerico – p. 61/196
62. 2
∆ de Aitken
Demostración:
Sustituyendo en la definición los términos xn = ǫn + α tenemos:
ǫn ǫn+2 − ǫ2
n+1
yn = α +
ǫn+2 − 2ǫn+1 + ǫn
Por su parte,
xn+1 − α = η (xn − α) +δn (xn − α)
ǫn+1 ǫn ǫn
con
xn+1 − α
lim =η , |η| < 1 y lim δn = 0 ;
n→∞ xn − α n→∞
´ ´
Analisis Numerico – p. 62/196
63. 2
∆ de Aitken
Demostración:
entonces
ǫn+1 = (η + δn )ǫn y ǫn+2 = (η + δn+1 )(η + δn )ǫn
Sustituyendo esto último en la definición
(η + δn+1 )(η + δn ) − (η + δn )2
yn − α = ǫn
(η + δn+1 )(η + δn ) − 2(η + δn ) + 1
por lo que
yn − α (η + δn+1 )(η + δn ) − (η + δn )2
lim = =0
n→∞ xn − α (η + δn+1 )(η + δn ) − 2(η + δn ) + 1
´ ´
Analisis Numerico – p. 63/196
64. Método de Steffensen
Resolviendo el problema f (x) + x = x y dado x0 , se calculan
(x1 − x0 )2
x1 = f (x0 ) + x0 , x2 = f (x1 ) + x1 , y1 = x0 −
x2 − 2x1 + x0
para calcular x3 no utilizamos el valor de x2 como lo hariamos con el
método de punto fijo, sino usamos ∆2 -Aitken ya que suponemos que
y1 es una mejor aproximación de la raiz que x2 ,
x3 = y1 , x4 = f (x3 ) + x3 , x5 = f (x4 ) + x4
(x4 − x3 )2
y2 = x3 −
x5 − 2x4 + x3
y así sucesivamente
´ ´
Analisis Numerico – p. 64/196
65. Método de Steffensen
En la n-esima iteración tendremos que
x3n = yn , x3n+1 = f (x3n ) + x3n , x3n+2 = f (x3n+1 ) + x3n+1 ,
(x3n+1 − x3n )2
yn+1 = x3n −
x3n+2 − 2x3n+1 + x3n
Sustituyendo para usar la sucesión {yn }∞
n=1
(f (yn ) + yn − yn )2
yn+1 = yn −
f (f (yn ) + yn ) + f (yn ) + yn − (f (yn ) + yn ) + yn
Simplificando y aplicando en método de punto fijo a yn tenemos
(f (yn ))2
g(xn ) = yn −
f (f (yn ) + yn ) − f (yn )
´ ´
Analisis Numerico – p. 65/196
66. Método de Steffensen
Entrada: x, t, n
Salida: x, ’error’
leer(x, t, n)
i ← 0
repita
| i ← i + 1
| fx ← f(x)
| y ← x - (fx∗fx / (f(fx + x) - fx))
| epsilon ← |x-y|
| x ← y
hasta (i≥n)∨(epsilon ≤ t)
si (epsilon≤t)
| escribir(x)
sino
| escribir(’error’)
´ ´
Analisis Numerico – p. 66/196
67. Método iterativo de un punto
Comentarios:
A medida que |g ′ (x)| sea más cercana a cero la sucesión {xn }
coverge a α más rapidamente.
f (xn )
Newton-Raphson g(xn ) = xn − f ′ (xn )
Secante (Método iterativo de dos puntos)
xn − xn−1
g(xn , xn−1 ) = xn − f (xn )
f (xn ) − f (xn−1 )
Steffensen: Si se resuelve el problema x = f (x) + x entonces
(f (xn ))2
g(xn ) = xn −
f (f (xn ) + xn ) − f (xn )
´ ´
Analisis Numerico – p. 67/196
68. Raices de polinomios
Sea P (x) = an xn + an−1 xn−1 + · · · + a1 x + a0 , an = 0
Teorema fundamental del álgebra: Si P (x) es un polinomio de grado
m ≥ 1 con coeficientes reales o complejos, entonces existe al menos
un valor α ∈ R o C tal que P (α) = 0
Corolario: Existen un conjunto de constantes únicas
{α1 , α2 , · · · αk } ∈ R o C y un conjunto {β1 , β2 , · · · βk } ∈ N+ tales que
k
P (x) = an (x − α1 )β1 (x − α2 )β2 · · · (x − αk )βk y m= βi
i=1
Corolario: Sean P (x) y Q(x) polinomios de grado m. Si existe un
conjunto de n > m valores distintos {x1 , x2 , · · · xn }, tales que
P (xi ) = Q(xi ) ∀ xi entonces P (x) = Q(x) ∀ x
´ ´
Analisis Numerico – p. 68/196
69. Evaluación de polinomios
División sintética o regla de Ruffini: al evaluar
P (x) = 3x3 − 4x2 − 7x + 1 ,
ralizaremos 2 multiplicaciones para calcular x3 y x2 más 3
multiplicaciones entre los coeficientes y las potencias de x, además
realizamos 3 sumas o restas de los términos del polinomio. En
general, para un polinomio de grado m se realizarían (2m − 1)
multiplicaciones y m sumas o restas.
Si escribimos el polinomio de la siguiente forma
P (x) = ((3x − 4) x − 7) x + 1 ,
Reducimos el número de multiplicaciones a 3, manteniendo el número
de sumas y restas en 3.
´ ´
Analisis Numerico – p. 69/196
70. Evaluación de polinomios
División sintética: En general, si un polinomio de grado m se
representa en la forma
m
P (x) = ai xi ,
i=0
se realizarían (2m − 1) multiplicaciones y m sumas o restas para
evaluarlo. En cambio si se representa como
P (x) = (· · · ((am x + am−1 ) x + am−2 )) · · · ) x + a0 ,
realizaremos solamente m multiplicaciones y m sumas o restas;
¿Cuál es la principal ventaja de reducir el número de operaciones?
´ ´
Analisis Numerico – p. 70/196
71. Evaluación de polinomios
División sintética Para evaluar el polinomio
P (x) = 3x3 − 4x2 − 7x + 1 , en x=2
¯
b3 = a3
x= 2 3 −4 −7 1 x 2 x 3=6 b2 = a2 + a3 x
¯
6 + −4 + 6 = 2 = a2 + b3 x
¯
3 2
2 x 2=4 b1 = a1 + (a2 + a3 x)¯
¯x
−7 + 4 = −3 = a1 + b2 x
¯
x= 2 3 −4 −7 1 2 x −3 = −6 b0 = a0 + · · ·
6 4 −6
1 + −6 = −5 = P(x) = a0 + b1 x
¯
3 2 −3 −5 = P(x)
= P (¯)
x
´ ´
Analisis Numerico – p. 71/196
72. Evaluación de polinomios
División sintética Para un polinomio de grado m, cuyos coeficientes
son am , am−1 , . . . , a1 , a0 tenemos
bm = am , bi = ai + bi+1 x , i = (m − 1), (m − 2), . . . , 1, 0 ,
¯
donde, el último término que se calcula, b0 = P (¯)
x
El nombre división sintética viene del hecho de que los números
bm , bm−1 , . . . , b1 representan los coeficientes de otro polinomio
N umerador
m−1
i P (x) b0
Q(x) = bi+1 x = −
i=0
(x − x)
¯ x−x ¯
Denominador Resto
Cociente
´ ´
Analisis Numerico – p. 72/196
73. Evaluación de polinomios
División sintética
Algoritmo de un subprograma
que recibe un arreglo a[0..m]
Entrada: a, m, x con los coeficientes del polino-
Salida: b mio P (x), su grado m y el valor
divSintetica(a, m, x, b) donde se quiere evaluar x y re-
| b[m] ← a[m] torna el arreglo b[0..m] con el
| para i← m-1 hasta 0 resultado de la evaluacion en su
| | b[i] ← a[i] + b[i+1] ∗ x primer campo b[0], y los coe-
ficientes de polinomio Q(x) en
el resto de sus campos, b[1],
b[2], . . . , b[m]
´ ´
Analisis Numerico – p. 73/196
74. Método de Horner
De lo anterior tenemos que
P (x) b0
= Q(x) +
x−x ¯ x−x ¯
Multiplicando por (x − x) obtenemos
¯
P (x) = Q(x)(x − x) + b0
¯
La derivada de lo anterior es
P ′ (x) = Q′ (x)(x − x) + Q(x)
¯
y evaluando la derivada en x = x obtenemos
¯
P ′ (¯) = Q(¯)
x x
´ ´
Analisis Numerico – p. 74/196
75. Método de Horner
Se utiliza para calcular raices de polinomios con el método de
Newton-Raphson. Mediante la división sintética se calcula
P ′ (x) = Q(x) y se evalua en un valor dado a P (x) y Q(x)
Entrada: a, m, x
A medida que se hace la división
Salida: b, px, qx
sintética para evaluar a P (x) en
horner(a, m, x, b, px, qx)
x, se obtienen los coeficientes
| b[m-1] ← a[m]
de Q(x) que son usados dentro
| qx ← a[m]
la misma iteración para evaluar
| para i ← m-1 hasta 1
Q(x) en x.
| | b[i-1] ← a[i] + b[i] ∗ x
Al finalizar obtenemos
| | qx ← b[i] + qx ∗ x
| px ← a[0] + b[0] ∗ x px = P (x) , qx = Q(x) = P ′ (x)
´ ´
Analisis Numerico – p. 75/196
76. Método de Horner
Si el método obtiene una aproximación a una raiz P (α1 ) ≈ 0, entonces
P (x) = (x − α1 )Q1 (x) + P (α1 ) ≈ (x − α1 )Q1 (x)
Este proceso se llama deflación. Si aplicamos la deflación a Q1 (x)
tendremos una aproximación a una nueva raiz
Q1 (α2 ) ≈ P (α2 ) ≈ 0,
y si lo repetimos k = m − 2 veces se podría tener
P (x) ≈ (x − α1 )(x − α2 ) · · · (x − αk )Qk (x) ,
donde, Qk (x) es un polinomio de grado 2, cuyas raices se pueden
calcular usando una expresión analítica.
´ ´
Analisis Numerico – p. 76/196
77. Método de Horner
Entrada: m, a, x, t, n
| | escribir(x)
Salida: Las m raices de P (x)
| | deflacion(m-1, b, x,
deflacion(m, a, x, t, n)
| | t, n)
si (m > 2)
| sino
| i ← 0
| | escribir(’error’)
| repita
sino
| | i ← i + 1
| d=sqrt(a[1]∗a[1]
| | xa ← x
| - 4∗a[2]∗a[0])
| | horner(a, m, xa,
| si(d ≥ 0)
| | b, px, qx)
| | escribir((-a[1] ± d)
| | x ← xa - px/qx
| | /(2∗a[2])
| hasta (i≥n)∨(|x-xa|≤t)
El subprograma deflacion debe
| si (|x-xa|≤t)
ser llamado por otro programa.
´ ´
Analisis Numerico – p. 77/196
78. Método de Horner
Comentarios del método:
Una raiz aproximada αi , más que una aproximación a una raiz de
P (x), es efectivamente una aproximación a una raiz de Qi−1 (x)
que a su vez se obtiene iterativamente mediante la deflación
aproximada de P (x). Esto trae como consecuencia que a medida
que i aumenta los errores se acumulan y las aproximaciones αi a
los valores reales de las raices,en general, serán cada vez peores.
Por lo general los polinomios tiene raices complejas. Para
calcularlas utilizando este método (Newton-Raphson) hay que
operar usando números complejos.
Las raices múltiples se van encontrando una a una.
´ ´
Analisis Numerico – p. 78/196
79. Método de Müller
Teorema: Si z = β + γi es una raiz compleja de multiplicidad ν del
polinomio P (x) entonces z = β − γi también es una raiz de
multiplicidad ν de P (x) y el polinomio D(x) = (x2 − 2βx + β 2 + γ 2 )ν es
un factor de P (x), es decir,
P (x)
= Q(x)
D(x)
Con este resultado podemos pensar en generalizar la división sintética
para que los términos sean polinomios cuadráticos. El método de
Müller se basa sobre esta idea, pero a diferencia del método de
Horner también permite calcular las raices complejas del polinomio.
En cambio de aproximar a la función con una recta, como en el
método de la secante, se aproxima usando un polinomio cuadrático
´ ´
Analisis Numerico – p. 79/196
80. Método de Müller
Sean x0 , x1 y x2 los tres puntos iniciales del método y
D(x) = a(x − x2 )2 + b(x − x2 ) + c
que pasa por (x0 , P (x0 )), (x1 , P (x1 )) y (x2 , P (x2 )), tenemos que
√
b2 − 4ac
−b ±
D(x − x2 ) = 0 ⇒ x − x2 =
2a
Para evitar problemas de errores por la resta de números parecidos y
seleccionando el valor de x3 = x tal que sea la raiz más cercana a x2
2c −1, si b < 0
x3 = x2 − √ , sig(b) =
b + sig(b) b 2 − 4ac 1, si b ≥ 0
´ ´
Analisis Numerico – p. 80/196
81. Método de Müller
Como
P (x0 ) = a(x0 − x2 ) + b(x0 − x2 ) + c
P (x1 ) = a(x1 − x2 ) + b(x1 − x2 ) + c
P (x2 ) = a(x2 − x2 ) + b(x2 − x2 ) + c = c
resolviendo el sistema de tres equaciones obtenemos
(x0 −x2 )(P (x1 )−P (x2 ))−(x1 −x2 )(P (x0 )−P (x2 ))
a = (x0 −x2 )(x1 −x2 )(x0 −x1 )
P (x0 )−P (x2 ) (x0 − x2 )(P (x1 ) − P (x2 )) − (x1 − x2 )(P (x0 ) − P (x2 ))
b = (x0 −x2 )
−
(x1 − x2 )(x0 − x1 )
| {z }
a(x0 −x2 )
c = P (x2 )
En general podemos tener
2c
xn+1 = xn − √
b + sig(b) b2 − 4ac
´ ´
Analisis Numerico – p. 81/196
82. Método de Müller
Entrada: x0,x1,x2,t,n
Salida: x2, ’error’ y
D(x) = a(x−x3)2+ b(x−x ) + c
3
leer(x0,x1,x2,t,n) y=f(x)
repita
D(x) = a(x−x2)2+ b(x−x ) + c
| c ← P(x2) 2
| P02 ← P(x0)-c ; x02 ← x0-x2
| P12 ← P(x1)-c ; x12 ← x1-x2
| a ← (x02∗P12 - x12∗P02)
| /(x02∗x12∗(x0-x1)) x0 x1 x2 x3 x4 x5
| b ← P02/x02 - a∗x02
| x0 ← x1
D(x) = a(x−x4)2+ b(x−x ) + c
4
| x1 ← x2
| x2 = x2 - 2∗c/(b + sig(b)
| ∗sqrt(b∗b - 4∗a∗c)) Nota: x0, x1 y x2 son variables complejas. En
hasta (i≥n)∨(|x2-x1|≤t) caso de que el lenguaje no las soporte hay que
si (|x2-x1|≤t) escribir(x2) modificar el algoritmo
sino escribir(’error’)
´ ´
Analisis Numerico – p. 82/196
83. Algebra Lineal
Introducción
Métodos Directos Métodos Iterativos
Regla de Crammer Refinamiento iterativo
Eliminación Gaussiana Jacobi
Factorización LU Gauss-Seidel
Factorización de Cholesky Errores y Convergencia
Matrices tridiagonales Aceleración S.O.R.
Normas y errores
´ ´
Analisis Numerico – p. 83/196
84. Algebra Lineal Numérica
Los problemas más importantes que son atacados con el álgebra
lineal númerica son:
Resolución de sistemas de ecuaciones lineales
Cálculo de valores propios
Ajuste de rectas
El problema básico se puede resumir en
Ax = b ,
donde, A es una matriz n × n, y x y b son dos vectorer columna n × 1,
siendo A y b conocidos
´ ´
Analisis Numerico – p. 84/196
85. Regla de Cramer
det(Ai )
xi = ,
det(A)
donde, Ai es la matriz A con la i-esima columna remplazada por b
Número de operaciones
para el cálculo de cada determinante se requieren (n − 1)n!
multiplicaciones y (n! − 1) sumas
evaluar (n + 1) determinantes
realizar n divisiones
En total son (n2 + n)n! − 1 operaciones
´ ´
Analisis Numerico – p. 85/196
86. Eliminación de Gauss
transformar mediante operaciones lineales entre filas a
Ax = b en Lx = c o en Ux = d ,
donde,
L U
2 3 2 3
l11 0 0 ··· 0 u11 u12 ··· u1n−1 u1n
6 7 6 7
6 l l22 0 ··· 0 7 6 0 u22 ··· u2n−1 u2n 7
6 21 7 6 7
6 7 6 7
6 . . .. .. . 7 6 . .. .. . . 7
6 . . . . . 7 6 . . . . . 7
6 . . . 7 6 . . . 7
6 7 6 7
6 ln−11
4 ln−12 ··· ln−1n−1 0 7
5
6
4 0 ··· 0 un−1n−1 un−1n 7
5
ln1 ln2 ··· lnn−1 lnn 0 ··· 0 0 unn
Triangular Inferior Triangular Superior
´ ´
Analisis Numerico – p. 86/196
87. Eliminación de Gauss
Sustitución hacia atrás
Triangular Inferior Triangular Superior
x1 = c1 /l11 xn = dn /unn
i−1 n
xi = (ci − j=1 lij xj )/(lii ) xi = (di − j=i+1 uij xj )/(uii )
i = 2, 3, . . . , n i = n − 1, n − 2, . . . 1
Para obtener, por ejemplo, la matriz U y el vector d a partir de A y b se
procede de la siguiente forma sobre la matriz ampliada à = A|b
(1) (0) (0) (0) (0)
aij = aij − a1j ai1 /a11 , i = 2, 3, . . . , n , j = 1, 2, . . . , n + 1 ;
(1)
donde, aij es el elemento que está en la fila i, columna j de à luego
(0)
de aplicarle una transformación y aij es el elemento original.
´ ´
Analisis Numerico – p. 87/196
88. Eliminación de Gauss
Note que ai1 = 0 ∀ i > 1.
En este paso a a11 se le conoce como el pivote.
Para acomodar la segunda columna de à usamos a a22 como pivote
(2) (1) (1) (1) (1)
aij = aij − a2j ai2 /a22 , i = 3, 4, . . . , n , j = 2, 3, . . . , n + 1 ;
Repitiendo este proceso para tenemos que
(k) (k−1) (k−1) (k−1) (k−1)
aij = aij − akj aik /akk ,
con
k = 1, 2 . . . , n − 1 , i = k + 1, k + 2, . . . , n , j = k, k + 1, . . . , n + 1 ;
(k−1)
donde, akk es el pivote de la k-esima transformación
´ ´
Analisis Numerico – p. 88/196
89. Eliminación de Gauss
Asi que
(0) (0) (0) (0)
(0)
a11 a12 a13 ··· a1n a1n+1
(1) (1) (1)
(1)
0 a22 a23 ··· a2n
a2n+1
(2) (2) (2)
U =
0 0 a33 ··· a3n d=
a3n+1
.
. .
. .. .. .
.
.
.
. . . . .
.
(n−1) (n−1)
0 0 ··· 0 ann ann+1
Note que para que la eliminación de Gauss funcione todos los n − 1
(k−1)
pivotes akk tienen que ser distintos de cero. Pero en la práctica esto
no es todo, porque pivotes pequeños pueden provocar que el error de
redondeo aumente
´ ´
Analisis Numerico – p. 89/196
90. Eliminación de Gauss
Crecimiento del error por pivotes pequeñosa
0.0004 1.402 x 1.406 0.4003
1 = , = 1001
0.4003 −1.502 x2 2.501 0.0004
Aplicando la eliminación de Gauss tenemos que
0.0004 1.402 x 1.406
1 =
0 −1405 x2 −1404
de donde se obtiene que
−1404 1.406 − 1.402 × 0.9993
x2 = = 0.9993 y x1 = = 12.5
−1405 0.0004
a
´
usando aritmetica de punto flotante de cuatro cifras decimales
´ ´
Analisis Numerico – p. 90/196
91. Eliminación de Gauss
4
3 Soluci´n exacta
o
2
x2 1 x
0
−1 Soluci´n aproximada
o
−2
0 5 10 15 20
x1
´ ´
Analisis Numerico – p. 91/196
92. Eliminación de Gauss
Crecimiento del error por pivotes pequeñosa
Si ahora usamos la eliminación de Gauss con una matriz L tenemos
0.0004 1.402 x 1.406 1.402
1 = , = −0.9334
0.4003 −1.502 x2 2.501 −1.502
Aplicando la eliminación de Gauss tenemos que
0.374 0 x 3.74
1 = de donde se obtiene que
0.4003 −1.502 x2 2.501
3.74 2.501 − 0.4003 × 10
x1 = = 10 y x1 = =1
0.374 −1.502
a
´
usando aritmetica de punto flotante de cuatro cifras decimales
´ ´
Analisis Numerico – p. 92/196
93. Eliminación de Gauss
Estrategias de pivoteo
Pivoteo Parcial: Se escoje r tal que
(k−1) (k−1)
ark = max ( aik )
k≤i≤n
luego se intercambian la fila k con la fila r
Menos efectivo, menos costoso, más usado
Pivoteo Total: Se escoje r y s tales que
(k−1)
a(k−1) = max ( aij
rs )
k≤i,j≤n
Se intercambian la fila k con la r y la columna k con la s
Más efectivo, más costoso, menos usado
´ ´
Analisis Numerico – p. 93/196
94. Eliminación de Gauss
Entrada: n, A[n,n+1]
Salida: Las x[n]
| | m ← A[f[i],k]/A[f[k],k]
gauss(n, A, x)
| | para j ← k hasta n+1
para k ← 1 hasta n
| | | A[f[i],j] ← A[f[i],j]
| f[k] ← k
| | | - m∗A[f[k],j]
para k ← 1 hasta n-1
si A[f[n],n] = 0
| r ← k
| escribir("Singular")
| para i ← k+1 hasta n
x[n] ← A[f[n],n+1]/Af[n],n]
| | si (A[i,k] > A[r,k]
para i ← n-1 hasta 1
| | | r ← i
| x[i] ← 0
| | si A[r,k] = 0
| para j ← i+1 hasta n
| | | escribir("Singular")
| | x[i] ← x[i]
| | | retornar
| | + A[f[i],j]∗x[j]
| | si (k = r)
| x[i] ← (A[f[i],n+1]
| | | aux ← f[k]
| - x[i])/A[f[i],i]
| | | f[k] ← f[r]
retornar
| | | f[r] ← aux
´ ´
Analisis Numerico – p. 94/196
95. Eliminación de Gauss
Comentarios
El número de operaciones es aproximadamente 2 n2
3
Si se quieren resolver varios sistemas con la misma matriz A la
matriz ampliada será Ã = A|b1 |b2 | · · ·
Para el cálculo de la inversa de la matriz A aplicamos el método de
la eliminación de Gauss a la matriz ampliada à = A|I, donde I es la
matriz identidad
El determinante de A se puede calcular a partir de la diagonal de la
matriz triangular
n
(k−1)
det(A) = (−1)s akk ,
k=1
donde s es el número de intercambios de filas realizados por las
estrategia de pivoteo parcial
´ ´
Analisis Numerico – p. 95/196
96. Factorización LU
Si la matriz A se usa varias veces es conveniente factorizarla usando
una matriz triangular inferior L y una triangular superior U
A = LU ; Ax = b ⇒ Ly = b , Ux = y
Donde, conocidas L y U se requieren n2 operaciones para resolver el
sistema Ax = b
2 3
1 0 0 0 ··· 0
6 7
6 l21 1 0 0 ··· 0 7
6 7
8
> a(k−1)
6 7
6 l
6 31 l32 1 0 ··· 0 7
7 < ik
(k−1) , si i ≥ k
L= 6
. .. .. .
7 , lik = akk
6
6 .
. . . .
.
7
7 :0
>
, si i < k
6 7
6 7
6 ln−11
4 ln−12 ··· ln−1n−2 1 0 7
5
ln1 ln2 ln3 ··· lnn−1 1
´ ´
Analisis Numerico – p. 96/196
97. Factorización LU
(0) (0) (0) (0)
a11 a12 a13 ··· a1n (k)
aij = aij
(k−1)
− lik akj
(k−1)
(1) (1) (1)
0 a22 a23 ··· a2n
(2) (2)
U=
0 0 a33 ··· a3n
, k = 1, 2, . . . , n − 1
.
. .
. .. .. .
.
. . . . .
0 0 ··· 0
(n−1)
ann i, j = k + 1, k + 2 . . . n
Teorema: La factorización LU de una matriz A no singular en única.
n (k−1)
Corolario: det(A) = det(LU) = det(L) det(U) = k=1 akk
Si se utilizan estrategias de pivoteo parcial o total, la factorización LU
será de la matriz permutada PA donde la matriz P, llamada matriz de
permutación, es el resultado de realizar las permutaciones hechas en
A en la matriz identidad I
´ ´
Analisis Numerico – p. 97/196
98. Método de Cholesky
Si la matriz A es simétrica y definida positiva no es necesario aplicar
estrategias de pivoteo
Teorema de Cholesky: Sea A una matriz simétrica definida positiva.
Entonces existe una única matriz triangular inferior L con lii = 0 tal que
A = LLT
A es simétrica si:
A = AT , aij = aji ∀ i, j
A−1 , si existe es simétrica
Las submatrices principales de A son simétricas
´ ´
Analisis Numerico – p. 98/196
99. Método de Cholesky
A es definida positiva si:
xT Ax > 0 ∀ x=0
aii > 0 ∀ i Las submatrices principales son
AT es definida positiva definidas positivas
A−1 siempre existe det(A) > 0
A−1 es definida positiva Los menores principales son positivos
Una matriz simétrica es definida positiva si y solo si todos sus
menores principales son positivos (Teorema de Sylvester)
Para la demostración del teorema de Cholesky ver las notas del curso
"Análisis Numérico", de la Prof. María C. Trevisan.
http://www.matematicas.ula.ve/publicaciones/guias/cursonum.pdf
´ ´
Analisis Numerico – p. 99/196
100. Método de Cholesky
El método requiere n3 /3 operaciones, la mitad de las 2n3 /3
operaciones requeridas para la factorización LU
Se deben calcular n raices cuadradas
Los elementos lii de L pueden ser diferente de 1
Si se quiere eliminar el cálculo de las n raices cuadradas se puede
modificar la factorización a
A = LDLT , donde,
i−1
2
lii = 1 , li1 = ai1 y lij = aij − ljk dkk /dii
k=1
y D es una matriz diagonal con
i−1
2
d11 = a11 y dii = aii − lij djj
j=1
´ ´
Analisis Numerico – p. 100/196
101. Método de Cholesky
Entrada: n, A[n,n],b[n]
Salida: Las x[n]
cholesky(n, A, b x) para i ← 1 hasta n
para i ← 1 hasta n | y[i] ← b[i]
| para j ← 1 hasta i-1 | para j ← 1 hasta i-1
| | v[j] = l[i,j]∗d[j] | | y[i] ← y[i]
| d[i] ← A[i,i] | | - l[i,j]∗y[j]
| para j ← 1 hasta i-1 para i ← 1 hasta n
| | d[i] ← d[i] | z[i] ← y[i]/d[i]
| | - l[i,j]∗v[j] para i ← n hasta 1
| para j ← i+1 hasta n | x[i] ← z[i]
| | l[i,j] ← A[j,i] | para j ← i+1 hasta n
| | para k ← 1 hasta i-1 | | x[i] ← x[i]
| | | l[i,j] ← l[i,j] | | - l[j,i]∗x[j]
| | | - l[j,k]∗v[k] retornar
| | l[i,j] ← l[j,k]/d[i]
´ ´
Analisis Numerico – p. 101/196