Cálculo Numérico en una variable Universidad de Murcia...

137
Cálculo Numérico en una variable Universidad de Murcia curso 2011-2012 Antonio José Pallarés Ruiz

Transcript of Cálculo Numérico en una variable Universidad de Murcia...

Page 1: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Cálculo Numérico en una variableUniversidad de Murcia

curso 2011-2012

Antonio José Pallarés Ruiz

Page 2: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

2 um.es / Cálculo Numérico en una variable, 2011-2012

Page 3: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Índice generalÍndice general

1. Computación 5

1.1. Números . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.1. Números enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.2. Números reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3. Números de máquina. Redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.3.1. Aritmetica de la máquina. Propagación de errores . . . . . . . . . . . . . . 17

1.4. Cálculos estables e inestables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.4.1. Propagación de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.5. Condicionamiento de un problema . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.5.1. Funciones de una variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.5.2. Raíces de Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.6. Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.6.1. Algoritmos: forma, evaluación y complejidad . . . . . . . . . . . . . . . . . 24

1.7. Algoritmos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.8. Actividades complementarias del capítulo . . . . . . . . . . . . . . . . . . . . . . 30

2. Interpolación 31

2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.2. Polinomios: Evaluación y Teorema Fundamental del Álgebra . . . . . . . . . . . . 32

2.2.1. Polinomios complejos. El Esquema de Horner. . . . . . . . . . . . . . . . . 32

2.2.2. El Teorema Fundamental del Álgebra . . . . . . . . . . . . . . . . . . . . 34

2.3. Interpolación polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.4. Diferencias Divididas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.5. Polinomios interpoladores de Hermite . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.6. Errores en Interpolación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.7. Interpolación con splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2.8. Curvas parametrizadas: Fuentes “script” y curvas de Bezier . . . . . . . . . . . . 60

2.9. Actividades complementarias del capítulo . . . . . . . . . . . . . . . . . . . . . . 61

Page 4: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

4 um.es / Cálculo Numérico en una variable, 2011-2012

3. Diferenciación e Integración Numéricas. 633.1. Diferenciación Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.1.1. Métodos de Taylor para evaluar f ′ y f ′′. . . . . . . . . . . . . . . . . . . . 643.1.2. Métodos de interpolación. Error en diferenciación numérica. . . . . . . . . 663.1.3. Extrapolación de Richardson . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.2. Integración Numérica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703.3. Fórmulas de cuadratura de Interpolación . . . . . . . . . . . . . . . . . . . . . . . 70

3.3.1. Reglas del trapecio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.3.2. Reglas de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.4. Fórmulas de cuadratura de Extrapolación . . . . . . . . . . . . . . . . . . . . . . 743.5. Fórmulas de cuadratura de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.6. Aproximación de integrales impropias . . . . . . . . . . . . . . . . . . . . . . . . 783.7. Aproximación de integrales múltiples . . . . . . . . . . . . . . . . . . . . . . . . . 783.8. Actividades complementarias del capítulo . . . . . . . . . . . . . . . . . . . . . . 79

4. Ecuaciones no lineales 814.1. Métodos elementales de resolución de ecuaciones no lineales . . . . . . . . . . . . 82

4.1.1. El Método de la Bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.1.2. El método de la “Regula Falsi” . . . . . . . . . . . . . . . . . . . . . . . . 85

4.2. Métodos de Taylor y de interpolación . . . . . . . . . . . . . . . . . . . . . . . . . 894.2.1. Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.2.2. Método de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944.2.3. Método de Muller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.2.4. Métodos inversos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.3. Iteración de punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.3.1. Atractores y repulsores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.4. Orden de convergencia de una sucesión . . . . . . . . . . . . . . . . . . . . . . . . 1084.5. Aceleración de Aitken y Steffensen . . . . . . . . . . . . . . . . . . . . . . . . . . 111

4.5.1. Método de Steffensen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144.6. Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.6.1. Localización de ceros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.6.2. El método de Newton para polinomios. . . . . . . . . . . . . . . . . . . . . 1204.6.3. El método de Laguerre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.6.4. Separación de raíces reales. Sucesiones de Sturm. . . . . . . . . . . . . . . 128

4.7. Actividades complementarias del capítulo . . . . . . . . . . . . . . . . . . . . . . 136

Bibliografía 137

Page 5: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Capítulo 1 ComputaciónComputación

'

&

$

%

'

&

$

%

Interrogantes centrales del capítulo

• Conocer la presencia de errores en cualquier procedimiento de cálculo nu-mérico.

• Conocer cómo se representan los números en una «máquina» y los erroresde redondeo que conlleva esta representación.

• Aprender a decidir entre uno y otro método numérico para resolver unmismo problema atendiendo a la «estabilidad» del método y al «condicio-namiento» del problema.

• Conocer la estructura general de los algoritmos y establecer criterios paracompararlos.

#

"

!

#

"

!

Destrezas a adquirir en el capítulo

• Calcular utilizando aritméticas de punto fijo y flotante con un númeropequeño de dígitos midiendo los errores absolutos y relativos que produceel redondeo.

• Encontrar alternativas «estables» a cálculos inestables.

• Ser capaz de describir algoritmos sencillos y empezar a comparar distintosalgoritmos que resuelvan un mismo problema.

• Medir «números de condición» de procesos sencillos.

En esta unidad vamos a analizar los distintos tipos de errores que se producen en los cálculosnuméricos. Presentaremos los sistemas de numeración y la aritmética que utilizan las «máqui-nas». Mediremos como se propagan los errores de redondeo. Y, por último, estudiaremos losconceptos de «estabilidad» de un proceso numérico y «condicionamiento» de un problema. Paraescribir los algoritmos de forma que se puedan implementar fácilmente en un ordenador debemosser más precisos, considerar siempre que tienen que construirse sobre una “estructura” clara yordenada. Describiremos la forma general de los algoritmos, cómo se evalúan y cómo medir sucomplejidad para poder compararlos.

Page 6: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

6 um.es / Cálculo Numérico en una variable, 2011-2012

Desarrollo de los contenidos fundamentales

Introducción

Números y su representación.

Errores.

Números de máquina. Redondeo.

Cálculos estables e inestables.

Algoritmos: forma, evaluación y complejidad. Algoritmos iterativos.

Problemas mal condicionados. Número de condición.

Prácticas 1 y 2.

Temporalización: 5HTe + 1HPb + 4HLab = 10HPres

Introducción

Ejemplo 1.0.1 Si hacemos cálculo simbólico, la misma definición de función inversa nos diceque π ∗ arc cos

(cos( 1

π ))

= 1.Pero si hacemos los cálculos con las representaciones numéricas de π en una calculadora, la

realidad puede que sea distinta, y el resultado de la operación no coincida exactamente con larepresentación de π en nuestra calculadora.

¿Qué ocurre con el resultado en tu calculadora? ¿Depende de si las funciones utilizan gradossexagesimales o radianes?

Ejemplo 1.0.2 Probad a realizar la siguientes operaciones en vuestras calculadoras utilizandolas representaciones numéricas de las soluciones

(i) 2÷ 3

(ii) Ans− 0.6666666667

¿Qué ocurre con el resultado en tu calculadora?Prueba ahora con

(i) 2÷ 3

(ii) Ans− 0.666666666666666

¿Qué ocurre ahora con el resultado en tu calculadora?

Ejemplo 1.0.3 Probad la siguientes operaciones en las calculadoras

(i) 1050 ∗ 1040

(ii) 1050 ∗ 1050/3

(iii) 1050 ∗ (1050/3)

Page 7: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 7

(iv) (1019 + 1)− 1019

¿Qué ocurre con los resultados en tu calculadora?

Cualquier procedimiento numérico debe considerar el control de errores para medir cómoafectan al resultado

Es muy importante que en cada problema numérico hagamos un seguimiento de los errorescometidos con el fin de poder estimar el grado de aproximación de la solución que proporciona.

Fuentes del Error

Hay diferentes fuentes/tipos de error que pueden afectar a la solución numérica de un pro-blema:

Errores en los datos de entrada:

(i) Errores en la medición de los datos iniciales, que pueden ser aleatorios y entonceshacen necesario acudir a técnicas estadísticas o de control de calidad, y errores siste-máticos de procedimiento que hay que descubrir y subsanar.

Errores de redondeo en los datos y en el cálculo:

(i) Los producidos al introducir los datos en las máquinas de cálculo. En ellas los númerostienen una representación finita. Estos errores son INEVITABLES.

(ii) Los producidos al hacer cálculos en las máquinas. Otra vez chocamos con la finitud dela representación de los números. Estos errores también son INEVITABLES, aunqueson PREVISIBLES y a veces, es posible esquivarlos sustituyendo los cálculos porotros equivalentes (ya iremos viendo cómo).

Errores de truncamiento en el método:

Como la resolución numérica de un problema consiste en obtener una aproximación numé-rica de la solución exacta. Siempre debemos asumir este error de aproximación, que recibeel nombre de error de truncamiento.

Errores de inestabilidad y control.

Se trata de analizar cómo afectan los errores en los datos de entrada o en los cálculos, a lasolución final. Si un método permite que pequeños errores en los datos de entrada o en loscálculos se traduzcan en errores grandes de la solución se dice que el método es inestable.

En esta unidad analizaremos algunos cálculos que pueden ser causa de inestabilidad ypropondremos cálculos alternativos.

En algunas ocasiones, la inestabilidad de un método no proviene de los cálculos sino que esintrínseca al método, es decir al modelo empleado para resolver un problema. En estos casosse dice que el método, o el problema, está mal condicionado. Para evitar esta situaciónes necesario analizar el problema real e intentar sustituir el modelo o el método numéricoempleado.

También en la unidad, veremos como cuantificar (medir con números) el condicionamientode un problema para poder predecir métodos mal condicionados y proponer su sustituciónpor otros.

Page 8: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

8 um.es / Cálculo Numérico en una variable, 2011-2012

Ejemplos

Ejemplo 1.0.4 Utilizando la calculadora1 vamos a evaluar las expresiones de la igualdad

18817− 10864√

3 =1

18817 + 10864√

3

Si se quiere comprobar la igualdad anterior bastará recordar la identidad

a2 − b2 = (a− b)(a+ b)

y poner a = 18817 y b = 10864√

3 y constatar que a2 − b2 = 1.

Si hacemos los cálculos, nuestra calculadora proporciona los siguientes valores:

18817− 10864√

3 = 2.65718 10−05

118817 + 10864

√3

= 2.657171708 10−05

Hemos obtenidos dos valores distintos, lo que nos plantea algunas cuestiones:

¿Cúal es la causa por la que la calculadora no respeta la igualdad?

¿Y si usaramos otro modelo de calculadora?

Si los resultados son aproximados ¿Cúal de los dos valores se aproxima más al verda-dero valor de la expresión?

(Al finalizar la unidad debéis tener la respuesta)

Ejemplo 1.0.5 Consideremos el sistema de ecuaciones{x + y = 2x +1.00001y = 2.00001.

Su solución, es x = 1 e y = 1.

Consideremos ahora el sistema perturbando un poco los términos independientes.{x + y = 2x +1.00001y = 2.

Este sistema perturbado tiene como solución x = 2 e y = 0.

Un error pequeño en los datos iniciales (en el término independiente) ha producidoun error grande en la solución.

En este caso, no se ha producido ningún error de cálculo.

Este es un ejemplo de un problema (sistema lineal) mal condicionado. No podemosevitar que pequeños errores en los datos iniciales se conviertan en errores grandes enlas soluciones.

¿Cómo afrontamos situaciones en las que aparezcan sistemas mal condicionados?

1Casio fx-991ES

Page 9: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 9

1.1. Números y su representación

A la vista del ejemplo 1.0.4, podemos hacer una primera afirmación: La aritmética con laque calcula un ordenador o una calculadora no es la que hemos aprendido en el colegio y enlos cursos de álgebra (grupos, anillos, cuerpos, álgebras, etc...). Con nuestra calculadora hemosconstatado que (a− b) puede ser distinto de (a2 − b2)/(a+ b).

La mayoría de los procesadores que realizan los cálculos en un ordenador trabajan con núme-ros que se escriben en binario (con 0 y 1) en registros de 8, 16, 32 o 64 dígitos (bits). Nosotrosmismos, al representar los números en el sistema decimal (con las cifras 0, 1,. . . ,9) utilizamossecuencias finitas de dígitos. Es decir, a la hora de trabajar con representaciones de «núme-ros» en una «máquina» sólo lo podemos hacer con una cantidad finita de ellos. Vamos a podertrabajar con exactitud cuando trabajemos con números enteros que puedan ser representadosen la máquina, y también (cuando el procesador esté especialmente programado2) con algunosnúmeros racionales. Pero, a la hora de representar números reales cómo números de «máquina»siempre tendremos que utilizar «aproximaciones» .

1.1.1. Números enteros

1.1.1.1. Representación de enteros en un sistema de base b

Para representar enteros, usualmente utilizamos el sistema de numeración decimal (en base10) que es un sistema posicional en el que cada número viene expresado por una sucesión finitade dígitos (cifras del 0 al 9) cuyos valores dependen de la posición que ocupan

Pon ejemplo 12879 = 9 100 + 7 101 + 8 102 + 2 103 + 1 104,

Proposición 1.1.1 Elegida una base natural b ∈ N, b ≥ 2, cualquier número entero positivo padmite una única representación en la forma

p = anbn + an−1b

n−1 + · · ·+ a1b1 + a0

con aj ∈ N, 0 ≤ aj ≤ (b− 1) y an > 0.Se utiliza la representación:

p = anan−1 . . . a1a0(b)

y se llama representación digital de p en base b.Los coeficientes aj se denominan dígitos o cifras.

¿Cuál es el algoritmo3 para encontrar la representación en base b de un número entero? Esealgoritmo probará la proposición anterior.

Ejercicio 1.1 Describe los algoritmos para pasar de la representación en base 2 (binario) de unnúmero entero a sus representaciones en las bases 4 y 8 (octal).

Describe también los reciprocos que pasen de las representaciones en las bases 4 y 8 a binario.2Este es el caso para algunos números en la calculadora Casio fx-991ES. Revisad el manual.3algoritmo: «Sucesión finita de instrucciones claras y precisas», especificando cuales son los datos de entrada,

el flujo (la sucesión) de instrucciones, las condiciones de parada y los datos de salida. Véase la sección 1.6.

Page 10: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

10 um.es / Cálculo Numérico en una variable, 2011-2012

Ejercicio 1.2 Cada entero positivo n tiene un múltiplo que expresado en base 10 sólo estáformado por ceros y unos. Escribe un algoritmo que encuentre el menor múltiplo de n formadopor ceros y unos en base 10.

Indicación: ¿qué es más fácil: ver si un múltiplo de n representado en base 10 sólo estáformado por ceros y unos, o ver si un número que sólo tiene 0 y 1 en su representación decimales múltiplo de n?

1.1.1.2. Tipos de enteros de «máquina»

Como hemos dicho la mayoría de los procesadores que realizan los cálculos en un ordenadortrabajan con números que se escriben en binario (base 2) utilizando registros de 8, 16, 32 o 64dígitos (bits). En ellos se utiliza el primer dígito para señalar el signo del número.

(byte) 8 bits

(short) 16 bits

(int) 32 bits

(long) 64 bits

¿Cuáles son el mayor y el menor entero (int) de una «máquina»?¿Qué errores puede producir la aritmética de la máquina al trabajar con enteros (int)?Resp: Los cálculos con números enteros se pueden hacer de forma exacta. El único error que

podemos tener al operar con ellos es que el resultado no quepa en los registros utilizados paraguardarlo. En estos casos obtendremos Errores por Desbordamiento (Overflow).

Por cierto, ¿cómo se suman o se multiplican dos números en base 2?, por supuesto que conlas tablas de sumar o multiplicar correspondientes, ¡descríbelas!

Ejercicio 1.3 Si tu calculadora tiene la función de representar números en distintas bases,encuentra los mayores enteros que se pueden escribir en hexadecimal (base 16), binario (base 2)u octal (base 8).

1.1.2. Números reales

También decíamos en la introducción que cuando el procesador esté especialmente progra-mado, podemos representar algunos números racionales como pares de números enteros. Perodesde el punto de vista numérico, esto no es muy operativo: números racionales acotados puedenvenir representados mediante fracciones de números enteros muy grandes.

Así, que para representar números racionales o reales en una «máquina» siempre tendremosutilizar «aproximaciones», escritas en una determinada base (en las calculadoras y ordenadoressuele ser 2) y almacenadas en unos registros de tamaño prefijado.

Aquí el hecho de fijar el tamaño de los registros que han de ocupar los números en la máquina,nos anuncia la aparición de errores de aproximación o redondeo, errores que no podremos evitar.Por esta razón debemos aprender a controlarlos en el sentido de prever su efecto en un procesonumérico conociendo como se transmiten en los distintos pasos del mismo.

Page 11: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 11

1.1.2.1. Sistemas de representación de punto fijo

Proposición 1.1.2 Elegida una base natural b ∈ N, b ≥ 2, cualquier número real positivo xadmite una representación en la forma

x = anbn + · · ·+ a1b

1 + a0 + a−11b

+ a−21b2

+ · · ·+ a−n1bn

+ . . .

con aj ∈ N, 0 ≤ aj ≤ (b− 1) y an > 0.Se utiliza la representación:

x = anan−1 . . . a1a0, a−1a−2 . . . a−n . . .(b)

y se llama representación digital de punto fijo de x en base b.

¿Cuál es el algoritmo para encontrar una representación de punto fijo en base b de un númeroreal?

¿Es única esta representación?Resp: Si excepto para números racionales de la forma x = k

bn .

Ejemplo 1.1.3

(i) 173 = 5.6666 . . .(10)

(ii) 1(10) = .99999 . . .(10) = .111111 . . .(2)

(iii) .1(10) = .0001 1001 1001 . . .(2)

En base 10 el número .1 es decimal exacto (tiene una cantidad finita de dígitos no nulos)mientras que en base 2 ese mismo número tiene una representación digital “periódicamixta” (con infinitos dígitos no nulos que se van repitiendo de forma periódica).

(iv) π = 3.141592....

A la hora de trabajar en una máquina, tenemos que fijar el tamaño de los registros a usarpara guardar los números. Esto se traduce inmediatamente en una limitación en el número dedígitos que podemos utilizar

Ejemplo 1.1.4 Supongamos que trabajamos con una máquina que utiliza números escritos enbase 10, con un máximo de 6 dígitos además de la coma.

Consideremos los números: x = 0.00001, y = 0.1, z = 10000.Vamos a simular como podríamos operar con ellos utilizando la máquina.Para multiplicar x⊗ y:

Suponemos que dentro de la máquina se puede realizar el producto exactop = x× y = 0.000001.

Como este número tiene 7 dígitos, para guardarlo en un registro de la máquina, vamos aaproximarlo por el número más próximo de entre los de la máquina, es decir, de entre losque se pueden escribir con 6 dígitos. Esta aproximación es 0.00000.

Así el resultado debe ser x⊗ y = 0.

Page 12: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

12 um.es / Cálculo Numérico en una variable, 2011-2012

Si multiplicamos x⊗ y por z, tendremos (x⊗ y)⊗ z = 0.Si hacemos lo mismo con y ⊗ z, obtenemos y ⊗ z = y × z = 1000. Y si multiplicamos por x

tendremos x⊗ (y ⊗ z) = 0.01.

0 = (x⊗ y)⊗ z 6= x⊗ (y ⊗ z) = 0.01

A la hora de trabajar con números en máquinas, este sistema de representación puede no serconveniente al operar con números con muchos ceros.

Para evitar estos problemas que representan los ceros a la izquierda o a la derecha de la coma,se utiliza el sistema de representación de coma flotante.

1.1.2.2. Representación de números reales en coma flotante

Proposición 1.1.5 Elegida una base natural b ∈ N, b ≥ 2, cualquier número real x 6= 0 admiteuna representación en la forma

x = ±bN∞∑n=1

a−n1bn

con ± = + si x es positivo, y ± = − si x es negativo, N ∈ Z, aj ∈ N, 0 ≤ aj ≤ (b − 1) ya−1 > 0.

Se utiliza la representación:

x = ±.a−1a−2 . . . a−n . . . E N

y se llama representación digital de punto flotante de x en base b.Al número N se le llama exponente de la representación de x, y al númerom =

∑∞n=1 a−n

1bn =

.a−1a−2 . . . a−n . . .(b) se le llama mantisa.

¿Cuál es el algoritmo para encontrar una representación de punto flotante en base b de un númeroreal?

¿Es única esta representación?Resp: Si, excepto para números racionales de la forma x = k

bn . O si se añade la condición deque para cada n existe un k > n tal que a−k 6= b− 1

Ejemplo 1.1.6

(i) 173 = 5.6666 . . .(10) = 10−1.56666 . . .(10) = .56666 . . . E − 1(10)

(ii) 1(10) = 20.111111 . . .(2) = .111111 . . . E0(2)

(iii) 1(10) = 21.10000 . . .(2) = .100000 . . . E1(2)

(iv) .1(10) = .0001 1001 1001 . . .(2) = 2−3.1 1001 1001 . . .(2) = .1 1001 1001 . . . E − 3(2)

(v) π = 3.141592... = .314151592...(10)

Observad que a la hora de guardar las representaciones de números en coma flotante noes necesario dejar sitio para la coma (el punto) porque siempre está en la misma posición. Sitrabajamos con representaciones binarias tampoco es necesario dejar ningún sitio para a1 queforzosamente sólo puede tomar el valor 1 (es distinto de cero y menor que 2).

Volvamos al problema planteado en el ejemplo 1.1.4 y veamos que operando con los númerosen coma flotante no se producen los mismos errores en el cálculo.

Page 13: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 13

Ejemplo 1.1.7 Supongamos que trabajamos con una máquina que utiliza números escritos encoma flotante de base 10, con un máximo de 6 dígitos en la mantisa.

Consideremos los números: x = 0.00001 = .1E − 4, y = .1E0, z = 10000 = .1E5.Vamos a simular como podríamos operar con ellos utilizando la máquina.Para multiplicar x ⊗ y: Ahora dentro de la máquina se puede realizar el producto exacto

p = x× y = .1E − 5.Si multiplicamos por z, tendremos (x⊗ y)⊗ z = .1E − 1.Si hacemos lo mismo con y ⊗ z, obtenemos y ⊗ z = y × z = .1E4. Y si multiplicamos por x

volvemos a obtener x⊗ (y ⊗ z) = .1E − 1.

1.1.2.3. Tipos de reales en los «ordenadores»

En la actualidad la mayoría de los procesadores que realizan los cálculos en un ordenadortrabajan con números reales que se representan en coma flotante en binario (base 2) utilizandoregistros de 32 o 64 dígitos (bits). En ellos se utiliza el primer dígito para señalar el signo delnúmero.

(float) 32 bits

(double) 64 bits

El ”Institute for Electrical and Electronic Engineers´´ estableció en 1985 un protocolo derepresentación de números reales en los ordenadores que vienen observando desde entonces losfabricantes de los procesadores donde los ordenadores realizan las operaciones.

En el libro de Burden y Faires [3] encontraréis una breve descripción de este protocolo,conocido como el IEEE754-1985. ¡No pienso copiarla aquí!. En wikipedia también tenéis unabuena descripción de la última revisión IEEE 754-2008.

¿Cuál es el menor real (double) positivo en un ordenador?¿Cuál es el mayor real (double) positivo en un ordenador?

Ejercicio 1.4 Determina los números reales en coma flotante representados por las secuenciasde dígitos siguientes expresadas en el estandar IEEE de 64 bits:

Signo Característica Mantisa∗

0 01100100111 1010101010000000000000000000000000000000000000000001 10100000001 001110000000000000000000000000000000000000000000000

1.2. Errores

Definición 1.2.1 Si el número real p∗ es una aproximación del número p, para medir el tamañodel error cometido en esta aproximación podemos utilizar:

Error exacto en la aproximación e = p− p∗.

Error absoluto: ea = |e| = |p− p∗|.

Page 14: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

14 um.es / Cálculo Numérico en una variable, 2011-2012

Errores relativos (si p 6= 0): er = ea|p| = |p−p∗|

|p| y er = ea|p∗| = |p−p∗|

|p∗| .

A la hora de expresar el error relativo hemos utilizado dos cuantificaciones porque no siempreestaremos en disposición de conocer el valor exacto de un número aunque si que podamos conoceraproximaciones y estimaciones del error absoluto cometido.

Utilizando la desigualdad triangular, |p| ≥ |p∗| − |p − p∗|. Trasladando está acotación a ladefinición de er se obtiene la acotación:

er ≤er

1− er.

De la misma forma, como |p∗| ≥ |p| − |p− p∗|, también se tiene la acotación

er ≤er

1− er.

Así, para valores pequeños de er (respectivamente de er) los valores de er y er están muypróximos ( ereer

≈ 1).En el caso de tener errores relativos pequeños podemos utilizar indistintamente er o er.No siempre (por no decir casi nunca) tendremos conocimiento exacto del valor real p y sí

que lo tendremos de p∗. Por eso, será más fácil obtener estimaciones del valor de er a partir deestimaciones de ea que intentar trabajar con er.

Utilizando el error absoluto, podemos escribir:

p = p∗ + e = p∗ ± ea y también p∗ − ea ≤ p ≤ p∗ + ea.

Si tenemos una acotación de ea, ea < δ, entonces podemos asegurar que

p∗ − δ < p < p∗ + δ.

Utilizando el error relativo, si tenemos una acotación de er, er < ε, entonces podemosasegurar que ea = |p∗|er < |p∗|ε, y

p∗ − |p∗|ε < p < p∗ + |p∗|ε.

En general, podemos escribir:

p = p∗ + e = p∗(1± er) y también p∗ = p(1± er).

Ejercicio 1.5

(i) Calcula el error relativo que se comete cuando el número 1.503 aparece redondeado a 1.5.

(ii) Calcula los errores absoluto y relativo cuando el número .abcE7 aparece escrito comoa.bcE7

(iii) Supón que en un cálculo aparece el número 0.0001 cuando debía aparecer el 0. ¿Qué fórmulautilizarías para calcular el “error relativo”? Utilizando esa fórmula ¿qué valor obtienes?

(iv) Determina el mayor intervalo en el que debe estar p∗ para aproximar a p =√

2 con unerror relativo de a lo sumo 10−6.

Page 15: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 15

1.3. Números de máquina. Redondeo

Definición 1.3.1 (Números de máquina) Vamos a llamar «máquina» de t dígitos en lamantisa y k dígitos en el exponente en base b al conjunto de números que se pueden representaren coma flotante utilizando esta base y los referidos dígitos para la mantisa y el exponente.

A estos números los llamaremos números de máquina de t dígitos en la mantisa y k dígitosen el exponente en base b.

(Salvo que expresemos lo contrario, no nos vamos a preocupar mucho por el exponente, quees entero y sólo puede producir errores de desbordamiento)

1.3.0.4. Redondeo

Por redondeo vamos a entender el proceso de introducir un número p en una «máquina »,en el que se procurará utilizar el número de máquina p∗ que esté más próximo a p (o uno de losque estén más próximos si es que hay varios).

Existen distintos tipos de redondeo, nosotros nos vamos a fijar en el siguiente:

Definición 1.3.2 (Redondeo) Sean b ≥ 2 un número natural, t ∈ N t > 0, y x ∈ R \ {0}descrito en coma flotante y base b por:

x = ±bN∞∑j=1

a−j1bj

= ±.a−1a−2 . . .EN(b),

a−k ∈ {0, 1, ..., (b− 1)}.Sean x∗ = ±bN

∑tj=1 a−j

1bj

= ±.a−1a−2 . . . a−tEN(b) el número de máquina que resulta al

“truncar” la mantisa a los t primeros dígitos y x∗+ = ±bN((∑t

j=1 a−j1bj

)+ 1

bt

). Los números

x∗ y x∗+ son los dos de la máquina de base b y t dígitos en la mantisa, que están más próximosa x.

Vamos a definir el número redondeado de x con t dígitos en la mantisa como el número real

flt(x) =

{x∗. si |x− x∗| < |x∗−x∗+|

2 = 0.5bN−t

x∗+ si |x− x∗| ≥ |x∗−x∗+|

2 = 0.5bN−t

Cuando el número de dígitos t este fijado en el entorno de trabajo podemos escribir solamentefl(x).

Observad que si b es par (por ejemplo si b = 2 o b = 10), entonces |x − x∗| < |x∗−x∗+|2 si, y

sólo si a−t−1 <b2 .

Podéis leer sobre otros tipos de redondeo en Kincaid-Cheney [8]:

(i) Redondeo por paridad («Roud to even»), redondeo equidistribuido

(ii) Redondeo por truncamiento.

Proposición 1.3.3 (Errores de redondeo) Sean b ≥ 2 un número natural, t ∈ N t > 0, yx ∈ R \ {0}. Entonces

Page 16: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

16 um.es / Cálculo Numérico en una variable, 2011-2012

(i) flt(x) = ±bN ′∑t

j=1 a′−j

1bj

= ±.a′−1a′−2 . . . a

′−tEN(b), con N ≤ N ′ ≤ N + 1.

(ii) El error absoluto en el redondeo satisface la acotación

|x− flt(x)| ≤ 0.5bN−t

(iii) Los errores relativoa en el redondeo satisfacen la acotación

|x− flt(x)||x|

≤ 0.5b−t+1 y|x− flt(x)||flt(x)|

≤ 0.5b−t+1

El número 0.5b−t+1 se denomina la precisión relativa en la aritmética de t dígitos en comaflotante.Demostración:

caso (a)

|x− flt(x)| = |x− x∗| < 0.5bN−t , si |x− x∗| < |x∗ − x∗+|

2=bNb−t

2= 0.5bN−t

caso (b)

|x− flt(x)| = |x− x∗+| si |x− x∗| ≥ |x∗ − x∗+|

2y en este caso

|x− x∗+| = |(x− x∗) + (x∗ − x∗+)| (1)= |x∗ − x∗+| − |x− x∗| ≤ |x

∗ − x∗+|2

= 0.5bN−t.

(1) x∗ − x∗+ y x− x∗ tienen distinto signo tanto si x es positivo como si es negativo, y siempre|x∗ − x∗+| ≥ |x− x∗|. �

Ejercicio 1.6

(i) Mide los errores relativos del redondeo del número π en una máquina de cuatro dígitos demantisa y base 10

(ii) En una máquina de números escritos en coma flotante con 13 dígitos en la mantisa (enbase 10), ¿cuál es el máximo error relativo posible?

Definición 1.3.4 (Precisión de k dígitos) Se dice que el número p∗ es una aproximación delnúmero p 6= 0 con una precisión de, al menos, m cifras significativas en la base b, siempre queel error relativo

|p− p∗||p|

≤ .5× b−m+1.

Cuando m es el mayor entero para el que se cumple la desigualdad anterior, se dice que p∗

aproxima a p con m cifras significativas.

Ejemplo 1.3.5 Sea

e = .27182818284590452353602874713527...E1

y app1(e) = .2718287E1 una aproximación de e.

|e− app1(e)||e|

=.5171540 . . . E − 5.271828182E1

≈ 1.90250E − 6 = .19025E − 5,

Page 17: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 17

.5E(−7 + 1) < .190250E − 5 < .5E(−6 + 1)

En este caso, app1(e) aproxima a e con 6 cifras significativas y en las mantisas de e y app(e)coinciden las 6 primeras cifras.

No siempre sucede esto. Por ejemplo, sea x = .1E0 y app(x) = .9999E0, en este caso

|x− app(x)||x|

= .1E − 3.

Con la definición anterior app(x) es una aproximación de x con 4 cifras significativas, aunqueno coinciden ninguna de las cifras de la mantisa.

Ejercicio 1.7 Una calculadora, A, trabaja en base 2 con mantisa de 22 bits y otra, B, trabajaen base 16 con 6 dígitos de precision (24 bits). ¿Cuál de las dos es más precisa?

1.3.0.5. Distribución de Números de Máquina

¿Cómo están distribuidos los números de máquina?Resp: Hay muchos cerca del cero, muy pocos en el ∞, y suficientes alrededor de los números

razonables (.1, 1, 10, ...).

Definición 1.3.6 (Épsilon de la Máquina) SiM es una máquina ideal de números (t dígitosen mantisa y base b), se denomina “Épsilon de la Máquina” al menor número positivo e ∈M talque fl(1 + e) > 1. O en otros términos, al menor número positivo tal que fl(1 + e) es el númerode máquina siguiente al 1, 1+ 1

bt

En doble precisión (IEEE-754) el épsilon de la máquina es del orden de 1252 ≈ 10−16. En

prácticas lo precisaremos con exactitud.El épsilon de la máquina nos indica la máxima precisión relativa que cabe esperar en la

máquina. Así, a la hora de preguntar si dos números de máquina están próximos debemos detener en cuenta no pedir que el error relativo sea menor que el épsilon de la máquina, porque enese caso estaremos pidiendo que sean idénticos.

1.3.1. Aritmetica de la máquina. Propagación de errores

¿Cómo suma, resta, multiplica, divide, etc... una «máquina»?Denotemos por � cualquiera de las operaciones +,−,×, /. Si x e y son dos números de

máquina con t dígitos en la mantisa, en general x�y no tiene porque ser un número de máquinacon t dígitos en la mantisa:

Por ejemplo, supongamos que trabajamos en una máquina de 6 dígitos en la mantisa y quex = .700001E1 e y = .600002E0 son dos números de la máquina. Su suma, x+y = .7600012E1,es un número de 8 dígitos en la mantisa que debe ser redondeado por un número de la máquinasi se quiere guardar en la misma, x⊕ y := fl(x+ y) = .760001E1.

Así, para realizar operaciones aritméticas en una máquina ideal, pensaremos siempre queestas se realizan en dos etapas

(i) Primero se calcula x�y con la mayor precisión posible;

Page 18: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

18 um.es / Cálculo Numérico en una variable, 2011-2012

(ii) después se redondea el resultado a un número de la máquina.

¿Cómo se multiplican dos números de máquina? ¿Cómo afectan los errores de redondeo enlos factores en el producto?

¿Cómo se suman dos números de máquina del mismo signo? ¿Cómo afectan los errores deredondeo en los sumandos a la suma?

Ahora que sabemos como se deben realizar las operaciones dentro de nuestra calculadora, esbuen momento para volver sobre el ejemplo 1.0.4:

Ejercicio 1.8 Utilizamos la calculadora4 para evaluar las expresiones de la igualdad

18817− 10864√

3 =1

18817 + 10864√

3.

Hicimos los cálculos, obteniendo dos valores distintos y nos preguntábamos cual de los dos erael más preciso.

Detalla las operaciones siguiendo el orden de ejecución y observa cómo se van acumulandolos errores de redondeo. Da una respuesta a cúal de los dos métodos es más preciso.

¿Cuando se restan dos números de máquina próximos, cúal es la precisión en la diferencia?

Proposición 1.3.7 Sea M una máquina de números de base b y k dígitos en la mantisa. Seanx > y > 0 dos números de M en cuyas representaciones coinciden el exponente y los p primerosdígitos de las mantisas. Entonces el número x y a lo más tiene en su mantisa, k − p dígitossignificativos. Se pierden p dígitos de precisión.

Ejercicio 1.9 Consideremos los números p = 0.54619 y q = 0.54601. Redondeando los númerosen una máquina de cuatro dígitos de precisión (base 10), mide el error relativo cometido alaproximar p− q por fl(p)− fl(q). ¿cúantas cifras significativas tiene fl(p)− fl(q).

¡Analiza el resultado! ¿Podemos mejorarlo?

Ejercicio 1.10 Utilizando aritmética de cuatro dígitos (base 10), encuentra aproximaciones alas raíces x1 y x2 de la ecuación de segundo grado

x2 − 200x+ 1 == 0.

Comprueba la bondad de las aproximaciones reconstruyendo el polinomio de segundo grado(x− x1)(x− x2).

¡Analiza el resultado! ¿Podemos mejorarlo?

1.4. Cálculos estables e inestables

Definición 1.4.1 Diremos que un proceso numérico, o una operación, es inestable cuandopequeños errores en los datos de entrada, o errores de redondeo en alguna de las etapas el proceso,producen errores grandes en los datos de salida

Diremos que un proceso numérico, es estable cuando no es inestable.Un mismo algoritmo puede ser estable para algunos datos iniciales e inestable para otros.

Entonces se dice que el algoritmo es condicionalmente estable4Casio fx-991ES: presenta 10 dígitos en pantalla, presupondremos que es una máquina de números de 10

dígitos en la mantisa.

Page 19: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 19

Ejercicio 1.11 Evalúa la expresión z = 1.− 1.208x

en x = 1.209 y en x = 3.1, trabajando con4 dígitos de precisión en base 10.

Analiza los algoritmos:

x→ (y = 1.208/x)→ (z = 1− y),

x→ (u = x− 1.208)→ (z = u/x).

Después de ver cómo se realizan las operaciones aritméticas en una máquina de números,podemos quedarnos con el siguiente resumen:

El producto ⊗ de dos números de máquina es un cálculo estable, sólo se puedenproducir errores de desbordamiento (“overflow”).

La división � de dos números de máquina es un cálculo estable, también sólo sepueden producir errores de desbordamiento (“overflow”).

La suma ⊕ de dos números de máquina es estable cuando los dos números tienen elmismo signo, y puede ser inestable cuando los dos números tienen signo distinto.

La resta de dos números de máquina es inestable cuando los dos números estánmuy próximos, y es estable cuando los dos números tienen distinto signo (en este casoes una suma de números del mismo signo).

Hay que prestar atención a las operaciones con números grandes o excesivamentepequeños para evitar errores de desbordamiento (“overflow”).

Ejercicio 1.12 En relación con el último punto, ¿Cómo se puede realizar el cálculo

ex

ex − 1

para valores grandes de x (x > 250)?¡Compruébalo con la calculadora!

1.4.1. Propagación de errores

¿Cómo afecta el número de operaciones al resultado final?Si las operaciones son estables, lo menos que podemos esperar es que si en cada operación

efectuamos un redondeo er ≤ 0.5b−t+1, después de n operaciones, tengamos un error acumuladodel orden de ner, proporcional al número de operaciones.

Proposición 1.4.2 Sean xi ≥ 0, números de máquina (base b y t-dígitos en la mantisa). Sean

Sn = x0 + x1 + · · ·+ xn = Sn−1 + xn,

S∗n = S∗n−1 ⊕ xn (S∗0 = x0).

Entonces:|Sn − S∗n||Sn|

≤ (1 + eM )n − 1 ≈ neM ,

donde eM = .5b−t+1 es la precisión de la máquina.

Page 20: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

20 um.es / Cálculo Numérico en una variable, 2011-2012

(ver prueba en el libro de Kincaid-Cheney [8])

Ejercicio 1.13 Sea n tal que neM < 13 . Utilizando el binomio de Newton comprueba que

1 + (0.5)neM ≤ (1 + eM )n ≤ 1 + (1.5)neM .

Ejercicio 1.14 Sean xi > 0, números de máquina (base b y t-dígitos en la mantisa). Sean

Pn = x0x1 · · ·xn = Pn−1xn,

P ∗n = P ∗n−1 ⊗ xn (P ∗0 = x0).

Entonces:|Pn − P ∗n ||Pn|

≤ (1 + eM )n − 1 ≈ neM ,

donde eM = .5b−t+1 es la precisión de la máquina.

Ejercicio 1.15 Para evaluar un polinomio p(x) = anxn +an−1x

n−1 + ...+a1x+a0 disponemosde los dos algoritmos siguientes

(i) p=a0; z=1;

para (k=1, hasta n, ↑)

z=z*x; p=p+ak *z;

(ii) (Horner)

p=an;

para (k=(n-1), hasta 0, ↓)

p=p*x +ak;

Si ε es una cota del error relativo al hacer las operaciones aritméticas y no consideramos loserrores de redondeo al introducir el valor de los parámetros, ¿Cuál de los dos algorimos acumulamenos errores?

A la hora de escribir un algoritmo o un proceso numérico, debemos intentar minimizarel número de operaciones para evitar acumulación de errores de redondeo.

1.5. Condicionamiento de un problema

Los términos “condicionamiento” y/o “problema bien o mal condicionado” se utilizan demanera informal para indicar la sensibilidad de la solución del problema con respecto a pequeñoserrores relativos en los datos de entrada.

Una posibilidad para hacer este tipo de apreciaciones es intentar “cuantificar” a priori estasensibilidad, utilizando para ello un “modelo” apropiado del problema.

A continuación vamos a ver distintos “modelizaciones” de problemas en los que se puedenhacer esas cuantificaciones.

Page 21: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 21

1.5.1. Funciones de una variable.

Este es el caso en el que el algoritmo consiste simplemente en dado un número x como datode entrada, evaluar f(x) como dato de salida, donde f : R→ R es una función real.

Si además f es derivable, con derivada continua, podemos cuantificar el condicionamiento delalgoritmo como sigue:

Sea x el dato de entrada, y x = x+ h una perturbación de x como dato de entrada.

En la salida obtenemos f(x+ h) en lugar de f(x).

El error en salida se puede estimar en términos de la derivada:

|f(x+ h)− f(x)| = |f ′(x+ th)||h| ≈ |f ′(x)||h|

donde 0 < t < 1 y para h pequeño, |f ′(x+ th)| ≈ |f ′(x)|.

El error relativo en el dato de salida es

|f(x+ h)− f(x)||f(x)|

≈ |f′(x)||h||f(x)|

Si medimos la razón entre los errores relativos en los datos de salida y los datos de entrada,tenemos

er(f(x))er(x)

=|f(x+h)−f(x)|

|f(x)||h||x|

≈ |f′(x)||x||f(x)|

.

Esta última estimación sólo depende de x y de f y se puede preveer antes de ejecutar elalgoritmo de evaluación.

Definición 1.5.1 Sea f : [a, b]→ R una función derivable con derivada continua. y sea x ∈ [a, b]con f(x) 6= 0. El “número de condición de f en x” se define por la fórmula

nc(f, x) :=|f ′(x)||x||f(x)|

y mide la razón entre los errores relativos en f(x) y en x ante variaciones de este último valor.Cuando el número de condición es pequeño, o menor que una cota razonable, pequeños errores

en x se propagan a pequeños errores en f(x) y el algoritmo es estable. Pero si los números decondición son muy grandes o tienden a infinito cerca de un valor de x el algoritmo será inestablecerca de este valor.

Ejemplo 1.5.2

(i) f(x) = xe−x2

(f ′(x) = e−x2 − 2x2e−x

2)

nc(xe−x2, x) =

|f ′(x)||x||f(x)|

=|(e−x2 − 2x2e−x

2)x|

|xe−x2| = |1− 2x2|

La evaluación de f(x) = xe−x2 es estable en todo x no escesivamente grande: “los errores

relativos en x y f(x) son un tamaño comparable”.

Page 22: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

22 um.es / Cálculo Numérico en una variable, 2011-2012

(ii) f(x) = arc sen(x) (f ′(x) = 1√1−x2

)

nc(arc sen(x), x) =|f ′(x)||x||f(x)|

=|x|√1−x2

arc sen(x)=

|x|arc sen(x)

√1− x2

lımx→1−

nc(arc sen(x), x) = +∞

La evaluación de arc sen(x) cerca de x = 1 (arc sen(1) = π2 ) es muy inestable: “pequeños

errores en x producen errores grandes en arc sen(x)”. ¿qué ocurre para x próximo a cero?

(iii) f(x) = log(x) (f ′(x) = 1x)

nc(log(x), x) =|f ′(x)||x||f(x)|

=1

| log(x)|

Si x está lejos de 1 la evaluación de log(x) es estable, pero si x esta cerca de x = 1 estaevaluación es inestable.

Ejercicio 1.16 El número de condición de f(x) = xα no depende de x, ¿Cúal es?

Ejercicio 1.17 Calcula los números de condición de las siguientes funciones y determina paraque valores de x se alcanzan sus mayores y menores valores.

a) sen2 x b) ex c) x senx d) arctanx

1.5.2. Raíces de Polinomios

Vamos a analizar en el siguiente modelo (muy simple) cómo cuantificar el condicionamientoen el problema de aproximación de raíces de polinomios

Denotemos por p(x) a un polinomio y supongamos que algR(p) es un algoritmo que propor-ciona una raíz r = algR(p) de p(x) (p(r) = 0). Supongamos además que r es una raíz simple dep, e.d. p′(r) 6= 0.

Si se perturba el polinomio p de entrada, tomando una aproximación p(x) = p(x) + εq(x),donde q(x) es otro polinomio, y se aplica el algoritmo encontraremos una raíz r + h = algR(p).

Si suponemos que h es pequeño, h2, h3, ... serían mucho mas pequeños que h y podríamosdespreciarlas frente a h. Así, utilizando el desarrollo de Taylor de p, como p(r) = 0, podemosmodelizar

p(r + h) = p(r) + p′(r)h+p′′(r)

2h2 + ...+

p(n)(r)n!

h2 ≈ p′(r)h.

También si h es pequeño q(r + h) ≈ q(r). Así

0 = p(r + h) = p(r + h) + εq(r + h) ≈ hp′(r) + εq(r).

Despejando queda h ≈ −ε q(r)p′(r) .

Con este modelo, el número ε q(r)p′(r) puede servir para prever el error absoluto en el cálculo dela raíz en términos de la perturbación en el polinomio original.

Page 23: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 23

Ejemplo 1.5.3 (Polinomios de Wilkinson) Cuando tengamos construidos e implementadosalgunos métodos de aproximación de raíces de polinomios, constataremos los hechos que ahoravamos a pronosticar en base al modelo propuesto más arriba.

Los polinomios de Wilkinson son los polinomios mónicos con raíces simples en los enteros{1, 2, ..., n}:

pn(x) = (x− 1)(x− 2)...(x− n).

Consideremos la perturbación de p20 dada por p20(x) = p20(x) + εx20.

Si algR20 es un algoritmo que nos proporciona la raíz r = 20 de p20, y r+h20 = algR20(p20).

La estimación propuesta para el tamaño de h20 es

h20 ≈ ε2020

p′20(20)= ε

2020

19!≈ ε109.

Observad que una pequeña perturbación (ε) en el coeficiente de x20 se multiplica por 109 alintentar aproximar la raíz r = 20. Los polinomios de Wilkinson son un ejemplo de polinomios“mal condicionados” para la busqueda de raíces grandes.

Como ejercicio, podéis jugar con este polinomio y el modelo propuesto para estimar los erroresque resultan al utilizar algoritmos algR15 o algR10 que proporcionen respectivamente las raícesr = 15 o r = 10.

1.6. Algoritmos

Algunos autores aseguran que la palabra “algoritmo” proviene del nombre del matemáticopersa Abu Jafar Mohamemed ibn Musa al-Khowarizmi, que trabajo en Bagdad alrededor del año840. Aunque si acudimos al diccionario de la Real Academia Española encontramos la siguientedefinición que se corresponde con nuestras intenciones:

algoritmo: (Quizá del lat. tardío “algobarismus”, y este abrev. del ár. clás. “ ’lisabu l’ubar”,cálculo mediante cifras arábigas).

(i) m. Conjunto ordenado y finito de operaciones que permite hallar la solución de unproblema.

(ii) m. Método y notación en las distintas formas del cálculo.

Comencemos este capítulo con una visita a un prototipo de algoritmo:

Page 24: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

24 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 1.1 Máximo Común divisor MCDDatos de entrada: m, n ∈ NDatos de salida: El máximo común divisor de m y n: MCD(m,n) ∈ NVariables:m∗;n∗; // para operar sin cambiar los números.d = 1; // para guardar el mayor divisor común.

Fujo del programa:if(m >= n){ m∗ = m; n∗ = n; }

else{ m∗ = n; n∗ = m;}for(k = 2;k <= n∗;k + +){

if((n∗%k == 0) y (m∗%k == 0)){d = k;

}}

Parada: MCD(m,n) = d

¿Cómo encuentra este algoritmo el máximo común divisor?

Detecta el menor de los dos números (n∗)

prueba con todos los números menores que n∗, en orden creciente, para ver si son divi-sores comunes de los dos números guardando el mayor encontrado (usamos la notaciónResto(m÷ k) = m%k).

Este algoritmo muestra varias propiedades típicas de los algoritmos:

(i) Los pasos del algoritmo están definidos con claridad.

(ii) Un cierto número de etapas se repiten en un bucle (for) que sólo se realiza una cantidadfinita de repeticiones.

(iii) Una vez que se introducen los números m y n en el algoritmo los cálculos se realizan deforma automática hasta producir el MCD como respuesta.

(iv) El algoritmo puede implementarse fácilmente en una máquina programable (ordenador).

1.6.1. Algoritmos: forma, evaluación y complejidad

El análisis del algoritmo 1.1 nos ha dada una idea de lo que es un algoritmo, que estructuratiene y cómo podemos juzgar razonable su implementación.

Definición 1.6.1 (Algoritmo) Un algoritmo es un procedimento de cálculo que consiste enun conjunto de instrucciones precisas. Estas instrucciones especifican una sucesión finita deoperaciones que una vez ejecutadas proporcionan la solución a un problema de entre los deuna clase especial de problemas.

Mirando el algoritmo de Euclides observamos que tiene una estructura (forma) que vamosa requerir a los demás algoritmos:Estructura de un álgoritmo.(forma)

Page 25: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 25

Los Datos de Entrada son los valores de inicio que deben de aportarse al algoritmoantes de su ejecución. Estos datos iniciales deben de pertenecer a unos tipos de datospredeterminados.

LosDatos de Salida son los datos esperados como respuesta de la ejecución del algoritmo.En algunos casos el algoritmo puede acabar enviando un mensaje de ERROR señalandola imposibilidad de alcanzar la solución esperada.

El Flujo del algoritmo consiste en una sucesión de instrucciones aritméticas que debenser realizadas. Estas instrucciones deben de cumplir las siguientes propiedades:

(i) Cada etapa debe estar definida de forma precisa y sin ambigüedades. Todas las posi-bles situaciones deben de ser tenidas en cuenta.

(ii) El flujo debe terminar después de un número finito de etapas.

(iii) El flujo debería de ser eficaz para un conjunto amplio de problemas. Debe de tenerseen cuenta su aplicabilidad en situaciones generales.

(iv) El flujo debe de poder ser implementado en una “máquina de cálculo”.

Además de las operaciones aritméticas habituales (+,−,×,÷, ...) y las funciones elementales(exp, sen, cos,

√, ...) en los algoritmos también se utilizan operaciones lógicas (comparaciones,

asignaciones y bucles). En función de las posibilidades del lenguaje de programación a utilizaren el proceso de implantación del algoritmo se puede simplificar, más o menos, la descripcióndel flujo.

Cuando un algoritmo está traducido en un lenguaje de programación concreto para ser im-plementado en la máquina, nos referiremos a él llamándolo “programa”.

El proceso de evaluar un algoritmo consiste en seguir su desarrollo (etapa por etapa) paraasegurarnos que cumple con las propiedades que acabamos de describir. En muchos casos, bastacon realizar los distintos cálculos de forma ordenada con un ejemplo concreto para detectarposibles fallos.

Frecuentemente, existen distintos algoritmos que pueden usarse para resolver un mismo pro-blema. Este es el caso, para buscar el máximo común divisor. Seguro que reconoceis el algoritmode Euclides para encontrar el máximo común divisor de dos números naturales que fue descritoalrededor del año 350 a.C. y se puede visitar en el libro de los “Elementos de Euclides”.

El algoritmo de Euclides está basado en la observación de que los divisores comunes de m yn (m ≥ n > 0)también son los divisores comunes de n y del Resto(m ÷ n) = m%n, si ademáseste resto es cero n es el máximo común divisor.

El algoritmo de Euclides trabaja reduciendo el tamaño de m y n hasta que el resto seacero, momento en el que habremos encontrado el máximo común divisor. Esta reducción sepuede hacer mediante un proceso “iterativo” o, si el compilador de nuestras ordenes lo permite,mediante un proceso “recursivo”.

Page 26: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

26 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 1.2 El algoritmo de Euclides “iterativo” MCDIDatos de entrada: m, n ∈ NDatos de salida: El máximo común divisor de m y n: MCD(m,n) ∈ NVariables:m∗;n∗; // para operar sin cambiar los números.auxiliar; // para hacer cambios.

Fujo del programa:if(m >= n){ m∗ = m; n∗ = n; }

else{ m∗ = n; n∗ = m;}while(n∗ 6= 0){auxiliar = n∗;n∗ = (m∗%n∗);m∗ = auxiliar}

Parada: MCDI(m,n) = m∗

Esta es la versión “iterativa” , se va repitiendo la busqueda del máximo común divisorreduciendo m y n mientras (bucle while) no lo encuentra.

Algoritmo 1.3 El algoritmo de Euclides “recursivo” MCDRDatos de entrada: m, n ∈ NDatos de salida: El máximo común divisor de m y n: MCD(m,n) ∈ NVariables:auxiliar; // para hacer cambios.

Fujo del programa:if(m = 0){ Parada: MCDR(m,n) = n }if(n = 0){ Parada: MCDR(m,n) = m }auxiliar = m%n;hacer MCDR(n, auxiliar);

En esta versión “recursiva” , para buscar el máximo común divisor el algoritmo se llama asi mismo reduciendo m y n hasta que lo encuentra.

Ejemplo 1.6.2 Utilizando el algoritmo de Euclides calcula el máximo comun divisor de 189812y 34560.

Tenemos tres algoritmos para un mismo problema: MCD, MCDI y MCDR. ¿Cómo podemoscompararlos y dedicir cúal nos conviene elegir para buscar el Máximo Común Divisor de dosnúmeros? ¿qué criterios utilizamos? Podemos hacer las siguientes observaciones:

(i) En MCD se realizan más comparaciones y más operaciones que en MCDI y en MCDR.

(ii) En MCDI y en MCDR, esencialmente se realizan las mismas operaciones. La diferencia estáen el “lugar físico” en el que se llevan a cabo. En la versión iterativa se va almacenando enla memoria física de la máquina sólo el último par de números, mientras que en la versiónrecursiva se va relanzando el proceso ampliando el uso de la memoria física. La diferencia

Page 27: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 27

entre el comportamiento de los dos procedimientos estará en función del tamaño de losnúmeros y de los medios materiales (memoria de la máquina) de los que dispongamos.

En general, podremos encontrar distintos algoritmos que pueden usarse para resolver unmismo problema. Es necesario disponer de criterios para comparar distintos algoritmos. Estoscriterios deben de ser independientes de implementaciones particulares en computadoras concre-tas y de ejemplos de aplicaciones con unas condiciones iniciales concretas. También deben poderaportar afirmaciones objetivas y concretas.

Existe una teoría en Matemáticas y Ciencias de la Computación, “la teoría de la Complejidad(Complexity theory)”, cuyo objetivo es responder a cuestiones como:

¿Cómo se puede cuantificar la calidad y la ejecución de un algoritmo?

¿Qué criterios pueden construirse para comparar algoritmos?

¿Se pueden mejorar los algoritmos existentes?

¿En que sentido se puede afirmar que un algoritmo es el “mejor” posible?

¿Son útiles los “mejores” algoritmos?

En esta teoría se abordan dos tipos distintos de criterios para medir la complejidad de un algo-ritmo: criterios relativos a la “complejidad estática” como pueden ser la longitud del algoritmo,el número de ordenes que contiene o la estabilidad y el condicionamiento de las operaciones pre-vistas; y criterios de “complejidad dinámica” relativos al tiempo de ejecución y a requerimientode memoria en el sentido de la adecuación de la implantación del algoritmo a las condicionesreales de espacio y tiempo.

Nosotros nos fijaremos en las siguientes tres cualidades de los algoritmos para compararlos:

(i) el número de operaciones previstas en el algoritmo,

(ii) la previsibilidad de la convergencia de los distintos métodos iterativos, y

(iii) la velocidad de esa convergencia (orden de convergencia).

En los temas siguientes vamos a analizar esas dos últimas cualidades para los procesos ite-rativos de resolución de ecuaciones por medio de teoremas que garanticen su convergencia ycuantifiquen la velociad de convergencia para unos datos iniciales adecuados.

Ejercicio 1.18 (Criba de Erastotenes) Describe un algoritmo que genere una lista con todoslos números primos menores que un número natural N .

Ejercicio 1.19 Describe un algoritmo que “encuentre” la factorización como producto de nu-meros primos de un número natural N .

1.7. Algoritmos Iterativos. Condiciones de parada, propagaciónde Errores

Un algoritmo o un método iterativo, es un procedimiento por el que se construye una sucesiónxn por etapas. Cada xn dependerá de unos primeros datos iniciales a los que se van agregando

Page 28: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

28 um.es / Cálculo Numérico en una variable, 2011-2012

en cada etapa los términos de la sucesión que ya se han calculado. En general,

xn = f(x0, x1, ..., xn−1) :

Normalmente, en los procesos iterativos esperamos que xn o bien alcance el valor de la soluciónla solución de un problema x en un número finito de etapas, o bien sea una sucesión convergentehacia esa solución x.

El algoritmo 1.2 responde al primer caso, tenemos una condición de parada exacta (n∗ = 0)al trabajar con números enteros. Pero en el segundo caso, desconoceremos el valor exacto dex y, ante la presencia de errores inevitables (como los de redondeo si trabajamos con númerosreales), deberemos intentar parar la iteración cuando creamos que xn es una buena aproximaciónde x. En estos casos, la condición de parada viene dada en términos de los errores absolutos orelativos pidiendo que :

∆n = |xn − xn−1| < prec o que∆n

|xn|=∣∣∣∣1− xn−1

xn

∣∣∣∣ < prec,

donde prec > 0 es una precisión dada. Normalmente, este tipo de condición de parada secomplementa con un control sobre la ecuación o sistema de ecuaciones que modelizan el problemaque se está intentando resolver. Por ejemplo si F (x) == 0, podemos agregar a la condición deparada (o utilizar como condición de parada) que |F (xn)| < prec.

Recordemos que si x = 0 sólo podemos usar errores absolutos, Y que si xn es convergente laevaluación de ∆n es inestable porque xn y xn−1 pueden estar muy próximos.

Definición 1.7.1 Supongamos que xn está definida por un método iterativo y que xn → x. Alimplementar el método en una máquina, vamos construyendo una sucesión xn que va acumulandolos errores de redondeo y de propagación según las operaciones que intervienen.

Denotamos en = |xn− xn| si x = 0, y en = |xn−fxn||xn| =

∣∣∣1− xnfxn

∣∣∣ si x 6= 0, a los errores absolutoy relativo en cada etapa.

(i) Se dice que la propagación de errores en la iteración es lineal, cuando existe C > 0 talque

en ≈ Cne0, ∀n.

(ii) Se dice que la propagación de errores en la iteración es de tipo exponencial cuando existenC > 1 y M > 0 tal que

en ≥MCne0,∀n.

(iii) A veces encontraremos ejemplos en los que

en ≥ Kn!e0,∀n. (K > 0constante)

En estos casos, si recordamos la fórmula de Stirling (n! ≈√

2πn(ne

)n), la propagación deerrores es de tipo exponencial con cualquier constante C > 1.

Admitiremos que un proceso iterativo con propagación de error lineal va a ser “estable”si no requiere “demasiadas” iteraciones para pararse.

Debemos de establecer números máximos de iteraciones para evitar problemas deacumulación de errores que desvirtúen la solución aproximada propuesta.

Los procesos iterativos con propagación de errores exponencial van a ser muy inesta-bles. Debemos intentar evitarlos.

Page 29: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Computación um.es / Grado en Matemáticas 29

Observad los dos ejemplos siguientes que muestran dos procesos iterativos algo perversos.

Ejemplo 1.7.2 Sea yn = n!(ex−(1+x+x2

2!+· · ·+ xn

n!)). Sabemos, por la expresión de Lagrange

del resto de la fórmula de Taylor, que

yn = n!etx

(n+ 1)!xn+1 =

etx

(n+ 1)xn+1.

De donde podemos concluir que para x ≤ 1 yn → 0.También sabemos que se cumple la fórmula de recurrencia lineal:

yn = nyn−1 − xn.

Si evaluamos los 21 primeros términos de esta iteración para x = 1 tenemos que y0 = e− 1,en una máquina que trabaja con reales de tipo double obtenemos:

y0 =1.71828 y11=0.090234y1 =0.718282 y12=0.0828081y2 =0.436564 y13=0.0765057y3 =0.309691 y14=0.0710802y4 =0.238764 y15=0.066203y5 =0.193819 y16=0.0592478y6 =0.162916 y17=0.00721318y7 =0.140415 y18=−0.870163y8 =0.123323 y19=−17.5331y9 =0.109911 y20=−351.662y10=0.0991122 y21=−7385.9

¿Qué ocurrió? ¿Porqué yn no tiende a cero?Si denotamos yn = n⊗ yn−1 1, podemos estimar que

yn − yn = n(yn−1 − yn−1) = ... = n!(y0 − y0).

Aquí podemos observar como el pequeño error de redondeo al escribir el número e en la máquinay evaluar y0, se ha propagado de forma exponencial (n! > M(3/e)n si n ≥ 3).

Ejercicio 1.20 Sea xn =∫ 1

0 xnex dx. Sabemos que 0 ≤ xn ≤ e

∫ 10 x

n dx = en+1 → 0.

Integrando por partes se tiene que xn viene dada por la fórmula de recurrencia lineal:

xn = e− nxn−1,

comenzando con x0 = e− 1.Razonando como en el ejemplo precedente, si xn = e n⊗ xn−1 podemos estimar que

|xn − xn| = n|xn−1 − xn−1| = ... = n!|y0 − y0)|,

y predecir que la sucesión xn es muy inestable y no converge a 0, en absoluto.En efecto, si trabajáis en doble precisión con números de tipo double podréis observar que

con 25 iteraciones x25 ≈ 8.2E8 muy lejos del límite 0.¡Evalúa los 25 primeros términos de la sucesión xn en el ordenador!

Page 30: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

30 um.es / Cálculo Numérico en una variable, 2011-2012

1.8. Actividades complementarias del capítulo

Los documentos se pueden descargar de la Zona de recursos de la asignatura en el AulaVirtual de la Universidad de Murcia.

Hoja de problemas no1 (contiene los ejercicios repartidos en el tema y alguno adicional).

Practica no1 . “Fenómenos extraños” Erratas, errores e iteraciones.

Práctica no2 “Objetos” Funciones, números complejos y polinomios.

Page 31: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Capítulo 2 InterpolaciónInterpolación

Interrogantes centrales del capítulo

• Encontrar polinomios que interpolan los datos de una tabla de puntos.

• Implementar los métodos de las diferencias divididas de Newton y de in-terpolación de Hermite.

• Estimar los errores al interpolar puntos de una función.

• Construir “Splines” cúbicos y polinomios de Bezier.

Destrezas a adquirir en el capítulo

• Describir los algoritmos correspondientes a los métodos de interpolaciónpor polinomios.

• Estimar, cuando sea posible el error de las aproximaciones obtenidas.

• Implementar en el ordenador los programas de los métodos de este capítulorepresentando gráficamente los polinomios obtenidos.

Desarrollo de los contenidos fundamentales

Polinomios Interpoladores.

El método de las diferencias divididas de Newton

Polinomios interpoladores de Hermite.

Estimación de errores al interpolar. Convergencia de los polinomios interpolantes.

“Splines” cúbicos y polinomios de Bezier.

Temporalización: 10HTe + 2HPb + 4HLab

Page 32: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

32 um.es / Cálculo Numérico en una variable, 2011-2012

2.1. Introducción

En este capítulo abordamos la cuestión de cómo aproximar funciones mediante funcionessencillas (polinomios). La cuestión es importante no sólo porque los polinomios sean más fácilesde manejar que las funciones arbitrarias. En muchas ocasiones no sabemos cuál es la funciónsino sólo los valores que toma en unos ciertos puntos (por ejemplo porque se hayan obtenido deforma experimental), por lo que es crucial disponer de una función de aproximación plausibleque nos permita inferir el valor de la función, salvo un pequeño error, en el resto de los puntos.Existen dos formas de enfocar el problema. La primera es fijar una familia de puntos de la funcióny encontrar el polinomio de grado más pequeño posible que pasa por dichos puntos. Apareceasí el problema de la interpolación, que trataremos en este capítulo, en principio en su versiónmás simple, luego en una versión más general que permite usar, si es que disponemos de ella,información sobre los valores que toman las derivadas sucesivas de la función a aproximar endichos puntos. En principio, cabe esperar que cuanto mayor sea el número de puntos a interpolarla calidad de la aproximación será mejor. El precio a pagar es que el grado del polinomio aumentay con ello las dificultades para manejarlo. Un enfoque alternativo es fijar, con independencia delnúmero de puntos disponible, el grado del polinomio para a continuación escoger, de entre todoslos polinomios de grado a lo sumo el fijado, el que mejor aproxima a la familia de puntos. Esteproblema de aproximación será tratado en la asignatura de análisis matricial en función de lasdistancias a considerar.

Acabamos de decir que cabe esperar que la calidad de la aproximación de los polinomiosinterpoladores aumente con el tamaño de la familia de puntos a interpolar, pero el problema esmucho más sutil de lo que cabría pensar, pues resulta que esto no tiene por qué ocurrir necesa-riamente, salvo que elijamos las sucesivas familias de puntos de manera adecuada. Estudiaremoseste problema en la sección 2.6 del capítulo.

En este mismo capítulo trataremos el problema de otra forma que consiste en aproximarlas funciones por funciones suaves (dos veces derivables) que están definidas a trozos comopolinomios de grado tres, que se denominan “splines” cúbicos.

2.2. Polinomios: Evaluación y Teorema Fundamental del Álgebra

2.2.1. Polinomios complejos. El Esquema de Horner.

Un polinomio real (resp. complejo) es una combinación lineal de potencias naturales de z:

p(z) = a0 + a1z + · · ·+ anzn

donde los coeficientes ak ∈ C son números reales (resp. complejos) y an 6= 0. En estas condicionesse dice que el polinomio p(z) tiene grado n ∈ N.

Para calcular el valor del polinomio p en un punto z0, si usamos la relación zk+10 = z0.z

k0 ,

necesitaremos hacer 2n − 1 multiplicaciones (1 en a1z0 y 2 multiplicaciones en cada sumandoakz

k0 para k ≥ 2) y n sumas. En total 3n− 1 operaciones. Sin embargo, existe un procedimiento

más económico, y por lo tanto más estable para el cálculo, conocido como Esquema de Horner(recordad el ejercicio 1.15) que alguno conoceréis como la Regla de Rufini:

p(z0) = (. . . ((anz0 + an−1) z0 + an−2) z0 + · · ·+ a1) z0 + a0.

Page 33: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 33

Los multiplicadores de z0 en esta fórmula se van obteniendo de forma recursiva siguiendo elesquema

an an−1 an−2 . . . . . . a1 a0

z0 z0bn z0bn−1 . . . . . . z0b2 z0b1

bn bn−1 bn−2 . . . . . . b1 b0

con bn = an y, bk = bk+1z0 + ak para k = (n− 1), . . . , 1, 0.Con estas operaciones, sólo se necesitan 2(n− 1) operaciones para calcular b0 = p(z0).Los coeficientes bk también determinan el cociente q(z) de la división de p(z) entre (z− z0),

p(z) = q(z)(z − z0) + p(z0). (2.1)

En efecto, si escribimos

q(z) = bnzn−1 + bn−1z

n−2 + · · ·+ b2z + b1.

q(z)(z − z0) = bnzn + bn−1z

n−1 + · · ·+ b2z2 + b1z −

(bnz

n−1z0 + · · ·+ b2z0 + b1z0

),

q(z)(z − z0) + b0 = bnzn + (bn−1 − bnz0)zn−1 + · · ·+ (b1 − b2)z + (b0 − b1z0).

Tal y como tenemos definidos los coeficientes bk, tenemos bn = an y (bk−bk+1z0) = ak, de donderesulta la igualdad 2.1.

El siguiente algoritmo reproduce el esquema de Horner que hemos expuesto, y lo implemen-taremos en el correspondiente programa de cálculo en las sesiones de prácticas.

Algoritmo 2.1 Esquema de HornerDatos de entrada:a0, a1, . . . , an(coeficientes del polinomio p); zFujo del programa:bn = anfor(k=n-1;k>=0;k- -){bk = bk+1z + ak}

Datos de salida:(valor de p(z)) b0; (coeficientes de q(z)) b1, . . . , bn

Observad que si sólo necesitamos obtener el valor de p(z) podemos acelerar el algoritmo utili-zando una única variable b en lugar de una lista bk. Se inicia b con el valor de an y en el bucle(for) se hace la asignación b = bz + ak.

Ejemplo 2.2.1 z = 2 es raíz del polinomio p(z) = z4 − 4z3 + 7z2 − 5z − 2

1 −4 7 −5 −22 2 −4 6 2

b4 = 1 b3 = −2 b2 = 3 b1 = 1 b0 = 0

p(2) = 0 y p(z) = (z − 2)(1z3−2z2 + 3z + 1).

Page 34: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

34 um.es / Cálculo Numérico en una variable, 2011-2012

Al derivar en la expresión 2.1 se tiene que p′(z) = q′(z)(z − z0) + q(z), y por lo tanto,p′(z0) = q(z0). Así, para evaluar la derivada p′(z0) bastará con aplicar el esquema de Horner aq(z) en el punto z0.

El esquema de Horner aplicado a q(z), nos proporciona q(z0) y el polinomio cociente m(z)de q(z) entre (z − z0), que sustituido en la factorización de p nos da la expresión:

p(z) = (m(z)(z − z0) + q(z0))(z − z0) + p(z0) = m(z)(z − z0)2 + q(z0)(z − z0) + p(z0).

Al hacer la segunda derivada obtenemos que p′′(z0) = 2!m(z0).Si repetimos la aplicación de Horner vamos obteniendo las distintas derivadas p(k)(z0).También podemos expresar el desarrollo de Taylor de un polinomio en el punto z0 utilizando

el método de Horner para evaluar los coeficientes ck = p(k)(z0)k! .

p(z) = cn(z − z0)n + cn−1zn−1 + · · ·+ c1(z − z0) + c0.

Veámoslo en el siguiente ejemplo

Ejemplo 2.2.2 Desarrollo del polinomio p(z) = z4− 4z3 + 7z2− 5z− 2 en potencias de (z− 3)

1 −4 7 −5 −23 3 −3 12 21

1 −1 4 7 c0 = 193 3 6 30

1 2 10 c1 = 373 3 15

1 5 c2 = 253 3

c4 = 1 c3 = 8

p(z) = 1(z − 3)4 + 8(z − 3)3 + 25(z − 3)2 + 37(z − 3) + 19.

En las siguientes secciones, utilizaremos el esquema de Horner para evaluar simultáneamentelos polinomios y sus derivadas en las implementaciones de los distintos métodos numéricos delocalización de raíces.

2.2.2. El Teorema Fundamental del Álgebra

Si p(z0) = 0 se dice que z0 es un cero del polinomio o una raíz de p(z). La fórmula 2.1 nosda la factorización p(z) = (z − z0)q(z). A la obtención del polinomio q(z) se le llama deflaciónde p(z) en z0 (revisa el ejemplo 2.2.1).

Si q(z0) = 0 podemos factorizar q obteniendo: q(z) = (z − z0)q1(z) y p(z) = (z − z0)2q1(z).Así seguiremos hasta llegar a una factorización de p de la forma:

p(z) = (z − z0)k0q0(z),

donde q0(z) es un polinomio con q0(z0) 6= 0. El número k0 es la multiplicidad de la raíz z0 de p.Antes de buscar ceros de polinomios debemos preguntarnos sobre su existencia, el Teorema

Fundamental del Álgebra nos responde a esta cuestión:

Page 35: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 35

Teorema 2.2.3 (Gauss 1799, Teorema Fundamental del Álgebra) Todo polinomio noconstante con coeficientes complejos tiene al menos una raíz compleja.

Aunque el enunciado es puramente algebraico, todas las demostraciones asequibles que co-nocemos hacen uso de recursos del análisis matemático. Podéis encontrar el desarrollo detalladode una de ellas en el Teorema 2.2.7 del libro Análisis Matemático II de J.A. Fernández Viña [9].

Factorizando el polinomio no constante, p(z), en un cero z0, tenemos p(z) = (z − z0)k0q(z).Si q(z) no es constante podemos aplicar otra vez el Teorema Fundamental del Álgebra paragarantizar la existencia de un cero z1 de q que también será un cero de p(z). Repitiendo elproceso obtenemos el siguiente Teorema de Factorización.

Teorema 2.2.4 (Factorización de polinomios) Si p(z) = a0 + a1z + · · ·+ anzn es un poli-

nomio de grado n con coeficientes en C, existen s+ 1 números complejos distintos z0, z1, . . . , zs,con s+ 1 ≤ n, y enteros positivos k0, . . . , ks, verificando k0 + · · ·+ ks = n y

p(z) = an(z − z0)k0(z − z1)k1 · · · (z − zs)ks .

De la factorización anterior se deduce una prueba de que un polinomio de grado n tiene, alo más, n raíces distintas. Repitiendo las raíces según su multiplicidad, un polinomio de gradon tiene exactamente n raíces. También se sigue que dos polinomios p(z) y q(z)de grado menoro igual a n que coinciden en n+ 1 números complejos distintos (p(zk) = q(zk) con z1, . . . , zn+1

distintos) deben ser iguales (p(z) = q(z) en todo z).

Ejercicio 2.1 Modifica el algoritmo de Horner 2.1 para que devuelva el polinomio deflacionadode p(x) en x = a, q(x), el cociente de la división entera de p(x) entre (x− a).

Crea un algoritmo que construya un polinomio a partir de una lista con sus raíces y elcoeficiente principal, an.

2.3. Interpolación polinomial

Los contenidos de esta sección están bien explicados en el libro de Kincaid y Cheney [8](Sección 6.1) o en el libro de Burden y Faires [3] (Sección 3.1).

Definición 2.3.1 (Polinomio Interpolador) Consideremos la familia {(xi, yi)}ni=0 de n + 1puntos con las abscisas (xi) distintas dos a dos. Se llama polinomio interpolador en los puntos{(xi, yi)}ni=0 a un polinomio p(x) de grado menor o igual a n, tal que p(xi) = yi para cadai = 0, 1, . . . , n

Teorema 2.3.2 Dados n+ 1 puntos {(xi, yi)}ni=0 con las abscisas distintas dos a dos (xi 6= xjsi i 6= j), existe un único polinomio interpolador de grado menor o igual a n en esos puntos.

Demostración:Ideas que intervienen

(1) (Véase [8, Teorema 6.1]) La unicidad es consecuencia de que un polinomio de grado nno nulo no puede tener n+ 1 raíces distintas.

La existencia puede probarse directamente (forma del polinomio interpolador de Lagrange)o mediante un razonamiento inductivo, construyendo el polinomio interpolador para unafamilia de n + 1 puntos sabido el polinomio interpolador para los n primeros (forma delpolinomio interpolador de Newton).

Page 36: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

36 um.es / Cálculo Numérico en una variable, 2011-2012

(2) Para otra demostración: Observad que si se escriben las ecuaciones yi = p(xi) dondelas incógnitas son los coeficientes del polinomio p(x) = a0 + a1x+ · · ·+ anx

n, se tiene unsistema lineal de n+1 ecuaciones con n+1 incógnitas, donde la matriz A del sistema es lamatriz de Vandermonde correspondiente a las potencias de las abscisas xi, su determinantees distinto de cero:

det(A) =∏

0≤i<j≤n(xj − xi) 6= 0,

y en consecuencia el sistema lineal tiene una única solución que determina el polinomiointerpolador.

Hay dos maneras básicas de escribir el polinomio interpolación. Una es la construcción directa(forma del polinomio interpolador de Lagrange que viene dada por

p(x) =n∑i=0

yi

n∏j=0,j 6=i

x− xjxi − xj

.

La segunda demostración es por inducción sobre n y tiene la ventaja de proporcionar unamanera de construir el polinomio interpolador bastante práctica desde el punto de vista compu-tacional (la llamada forma del polinomio interpolador de Newton). Para n = 0 es claro, bastatomar el polinomio constante p0(x) = y0. Supongamos ahora que pn−1(x) es el polinomio in-terpolador en n puntos {(xj , yj)}j=0,...,n−1 y que buscamos el polinomio interpolador pn en losn+ 1 puntos {(xj , yj)}j=0,...,n de forma que

pn(x) = pn−1(x) + cn

n−1∏j=0

(x− xj).

Con independencia del valor de cn siempre se cumple que pn(xj) = pn−1(xj) = yj para j =0, . . . , n− 1. Si también queremos que pn(xn) = yn bastará elegir

cn =yn − pn−1(xn)∏n−1j=0 (xn − xj)

.

De acuerdo con la inducción en la construcción del polinomio interpolador de Newton:

pn(x) =n∑i=0

ci

i−1∏j=0

(x− xj)

para ciertos coeficientes ci, i = 0, 1, . . . , n. Observad que ci es el coeficiente principal (de lapotencia xi) en el polinomio interpolador de grado i, pi(x), en los puntos {(xj , yj)}j=0,...,i.

Page 37: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 37

El siguiente resultado proporciona un algoritmo iterativo–recursivo para construir polinomiosinterpoladores, y un método de cálculo de los coeficientes ci del polinomio interpolador de Newton

Teorema 2.3.3 Dados k + 1 puntos {(xs, ys)}ks=0 con las abscisas distintas dos a dos, si xi yxj son dos abscisas distintas, pA(x) es el polinomio interpolador en los k puntos A = {(xs, ys) :0 ≤ s ≤ k, s 6= j} y pB(x) es el polinomio interpolador en los k puntos B = {(xs, ys) : 0 ≤ s ≤k, s 6= i}, entonces el polinomio interpolador en los k + 1 puntos es

pk(x) =(x− xj)pA(x)− (x− xi)pB(x)

xi − xj.

Demostración:

Ideas que intervienen

(1) (Véase [3, Teorema 3.5]) Basta con comprobar que el polinomio definido por el cocientetoma los valores ys en cada punto xs distinguiendo tres casos: s = i, s = j y i 6= s 6= j.

2.4. El método de las diferencias divididas de Newton

La fórmula iterativa del teorema 2.3.3 proporciona una manera muy sencilla de cálculo de loscoeficientes del polinomio interpolador de Newton, conocida como el método de las diferenciasdivididas de Newton.

Recordemos que en la sección anterior el polinomio interpolador de Newton en los n + 1puntos {(xj , yj) : 0 ≤ j ≤ n} viene dado:

pn(x) =n∑i=0

ci

i−1∏j=0

(x− xj)

donde cada ci es el coeficiente principal (de la potencia xi) en el polinomio interpolador de gradoi, pi(x), en los puntos {(xj , yj)}j=0,...,i.

En general, para un conjunto de abscisas {xj0 , xj1 , . . . , xjr}, denotaremos por p[xj0 ,xj1 , . . . ,xjr ]al coeficiente principal (de la potencia xr) del polinomio interpolador en el conjunto de puntos{(xjk , yjk) : 0 ≤ k ≤ r}. Con esta notación puede escribirse

p(x) =n∑i=0

p[x0, . . . , xi]i−1∏j=0

(x− xj). (2.2)

Teorema 2.4.1 Con la notación anterior

p[xj0 , xj1 , . . . , xjr ] =p[xj1 , xj1 , . . . , xjr ]− p[xj0 , xj1 , . . . , xjr−1 ]

(xjr − xj0).

Demostración:

Ideas que intervienen

Basta con identificar el coeficiente principal (coeficiente de la potencia xr) en los dosmiembros de la fórmula iterativa del teorema 2.3.3 para el polinomio interpolador en lospuntos {(xik , yik) : 0 ≤ k ≤ r} utilizando el par de abcisas xj0 y xjr .

Page 38: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

38 um.es / Cálculo Numérico en una variable, 2011-2012

Cuando se usa en la práctica el algoritmo de las diferencias divididas, lo que se hace es escribiruna secuencia de tablas cuyos términos superiores son los números p[x0, x1, . . . , xi] de la fórmula(2.2).

Ejemplo 2.4.2 Calculamos el polinomio interpolador en la familia de puntos

{(5, 1), (−7,−23), (−6,−54), (0,−954)}

(nótese que no hay obligación de escribir los puntos en ningún orden concreto). De acuerdo con(2.2) se tendrá

p(x) = p[5] + p[5,−7](x− 5) + p[5,−7,−6](x− 5)(x+ 7) + p[5,−7,−6, 0](x− 5)(x+ 7)(x+ 6).

Ahora escribimos los números a calcular como sigue:

5 p[5]p[5,−7]

−7 p[−7] p[5,−7,−6]p[−7,−6] p[5,−7,−6, 0]

−6 p[−6] p[−7,−6, 0]p[−6, 0]

0 p[0]

En la primera columna escribimos p[5] = 1, p[−7] = −23, p[−6] = −54 y p[0] = −954. En lasegunda obtenemos

p[5,−7] =p[−7]− p[5]−7− 5

= 2, p[−7,−6] =p[−6]− p[−7]−6− (−7)

= −31,

p[−6, 0] =p[0]− p[−6]

0− (−6)= −150.

En la tercera se obtiene

p[5,−7,−6] =p[−7,−6]− p[5,−7]

−6− 5= 3, p[−7,−6, 0] =

p[−6, 0]− p[−7,−6]0− (−7)

= −17.

Por último

p[5,−7,−6, 0] =p[−7,−6, 0]− p[5,−7,−6]

0− 5= −4.

Así pues, el polinomio interpolador buscado será

p(x) = 1 + 2(x− 5) + 3(x− 5)(x+ 7) + 4(x− 5)(x+ 7)(x+ 6))= 4x3 + 35x2 − 84x− 954.

Describimos a continuación la implementación del algoritmo, considerando tres métodos dis-tintos: En el primero encontraremos los coeficientes p[x0, x1, . . . , xi] de la fórmula (2.2). En elsegundo realizaremos la evaluación de esa suma con un procedimiento de anidación. Y en eltercer método calcularemos los coeficientes de las potencias de x del polinomio interpolador.

Page 39: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 39

Algoritmo 2.2 Coeficientes de la forma del polinomio interpolador de NewtonDatos de entrada:n+ 1 (número de puntos a interpolar);x[n+ 1] (abscisas de los puntos a interpolar);y[n+ 1] (ordenadas de los puntos a interpolar);

Variables:n; // grado del polinomio interpoladorp[n+ 1]; // coeficientes a calcular

Fujo del programa:

for(i=0;i<=n;i++){pi = yi;

}for(i=1;i<=n;i++){

for(j=n;j>=i;j–){pj = (pj − pj−1)/(xj − xj−i);}

}Datos de salida:Coeficientes p0, p1, . . . , pn para la forma del polinomio interpolador deNewton

Una vez calculados los coeficientes ci de la forma del polinomio interpolador de Newton

p(x) =n∑i=0

ci

i−1∏j=0

(x− xj),

la manera más eficiente de calcular el polinomio es usando el llamado algoritmo de Horner (oanidación). Para simplificar, imaginemos de momento que queremos calcular una suma del tipo

s =n∑i=0

ci

i−1∏j=0

dj

para ciertos números ci, i = 0, 1, . . . , n, y dj , j = 0, . . . , n− 1. Entonces, sacando factor comúnrepetidas veces, obtenemos:

s = c0 + c1d0 + c2d0d1 + · · ·+ cn−2d0d1 · · · dn−3 + cn−1d0d1 · · · dn−3dn−2

+cnd0d1 · · · dn−3dn−2dn−1

= c0 + d0(c1 + d1(c2 + · · ·+ dn−3(cn−2 + dn−2(cn−1 + dn−1cn)) · · · )).

En pseudocódigo la suma se calcularía como sigue:

Page 40: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

40 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 2.3 Algoritmo de anidaciónDatos de entrada:n+ 1 (número de sumandos en el sumatorio);c[n+ 1] (valores de los números ck);d[n] (valores de los números dj);

Variables:sum; // valor del sumatorio

∑ni=0 ci

∏n−1j=0 dj

Fujo del programa:sum = cn;for(i=n-1;i>=0;i–){

sum = ci + di ∗ sum;}

Datos de salida:Sumatorio sum

Usamos a continuación el algoritmo de anidación para escribir el polinomio interpolador enla forma usual p(x) = a0 +a1x+a2x

2 + · · ·+an−1xn−1 +anx

n. Para ello cubriremos n+1 etapas(indexadas de forma decreciente desde i = n a i = 0), de manera que en la etapa i calculamosun polinomio pn−i a partir de otro pn−i−1 usan la fórmula

pn−i(x) = ci + (x− xi)pn−i−1(x).

El polinomio final pn es el polinomio interpolador p buscado. Hacemos notar que en en la etapainicial i = n entendemos que el polinomio p−1 es el polinomio nulo, de manera que p0(x) ≡ cn.

Si denotamos

pn−i−1(x) = a0 + a1x+ a2x2 + · · ·+ an−i−1x

n−i−1,

pn−i(x) = b0 + b1x+ b2x2 + · · ·+ bn−ix

n−i,

se tendrá

pn−i(x) = ci + (x− xi)(a0 + a1x+ a2x2 + · · ·+ an−i−1x

n−i−1)= (ci − a0xi) + (a0 − a1xi)x+ (a1 − a2xik)x2 + · · ·+ (an−i−3 − an−i−2xi)xn−i−2

+(an−i−2 − an−i−1xk)xn−i−1 + an−i−1xn−i,

así que la relación entre los coeficientes ak y bk vendrá dada por bn−i = an−i−1,

bk = ak−1 − akxi, k = 1, . . . , n− i− 1,

y b0 = ci − a0xi. En la práctica los coeficientes ak calculan sin ayuda de los coeficientes auxi-liares bk, dándoles de inicio el valor cero y usando la definición provisional de los coeficientesa0, a1, . . . , an−i−1 para recalcular en la etapa i, también de forma provisional, los coeficientesa0, a1, . . . , an−i.

Page 41: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 41

Algoritmo 2.4 Polinomio interpolador de NewtonDatos de entrada:n+ 1 (número de puntos a interpolar);x[n+ 1] (abscisas de los puntos a interpolar);c[n+ 1] (coeficientes de la forma del polinomio interpolador de Newton);Variables:n; // grado del polinomio interpoladora[n+ 1]; // coeficientes del polinomio interpoladorFujo del programa:for(i=0;i<=n;i++){

ai = 0;}

for(i=n;i>=0;i–){for(k=n-i;k>=1;k–){

ak = ak−1 − ak ∗ xi;}

a0 = ci − a0 ∗ xi;}

Datos de salida:Coeficientes a0, a1, . . . , an del polinomio interpolador de Newton

En interesante resaltar que, aunque en apariencia no sea así, el número de operaciones que senecesita para calcular el valor p(x) del polinomio interpolador en un cierto punto x combinandoel algoritmo de las diferencias divididas y el de anidación es inferior al que se necesita usandodirectamente la forma del polinomio interpolador de Lagrange.

En efecto, el Algoritmo 2.2 consta de n etapas, numeradas de i = 1 a i = n, en cada una delas cuales hay que hacer 2(n− i+ 1) sumas o restas y n− i+ 1 productos o divisiones. Por tantoel total de sumas o restas es

SR1 = 2n+ 2(n− 1) + · · ·+ 2 · 2 + 2 · 1 = n(n+ 1)

y el de productos o divisiones PD1 = n(n+1)/2. Por su parte el Algoritmo 2.3 (reemplazando dipor x−xi) consta de n etapas, cada una de las cuales acarrea dos sumas o restas y un producto.El total será por tanto de SR2 = 2n sumas o restas y PD2 = n productos. El total requeridode operaciones será, por tanto, SR = SR1 + SR2 = n(n + 1) + 2n = n2 + 3n sumas o restas yPD = PD1 + PD2 = (n2 + 3n)/2 productos o divisiones.

Si usamos la forma del polinomio interpolador de Lagrange

p(x) =n∑i=0

yi

n∏j=0,j 6=i

x− xjxi − xj

para calcular p(x) encontramos que en cada una de las etapas i = 0, 1, . . . , n hay que hacer2n restas, n divisiones y n productos (n − 1 correspondientes al producto de las n fracciones(x− xj)/(xi − xj) y otra más de multiplicar por yi). En total 4n operaciones en cada sumando,que por (n+ 1) sumandos hacen 4n2 + 4n operaciones y si añadimos las n sumas del sumatoriodan un total de 4n2 + 5n operaciones.

Hasta ahora hemos estudiado el polinomio interpolador de una familia de puntos sin con-siderar la procedencia de los puntos de partida. En el caso que estos puntos sean del tipo

Page 42: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

42 um.es / Cálculo Numérico en una variable, 2011-2012

{(xi, f(xi))}ni=0 para una cierta función f : [a, b]→ R definida en un intervalo [a, b] que conten-ga a los puntos {x0, x1, . . . , xn} es natural preguntarse hasta qué punto el polinomio interpoladorproporcionará una buena aproximación de la función. El siguiente teorema da respuesta a estapregunta.

Teorema 2.4.3 Sea f : [a, b]→ R una función de clase Cn+1 y sea p el polinomio que interpolaa la función f en n+1 puntos distintos {xi}ni=0 (es decir, el polinomio interpolador en los puntos{(xi, f(xi))}ni=0). Entonces para cada x ∈ [a, b] existe ξx ∈ [a, b] tal que

f(x)− p(x) =f (n+1)(ξx)(n+ 1)!

n∏i=0

(x− xi).

Demostración:Ideas que intervienen

Fijo x 6= xi para todo i = 0, ..., n, se considera la función φ(t) = f(t)−p(t)−λ∏ni=0(t−xi),

con λ = f(x)−p(x)Qni=0(x−xi)

.

φ(t) se anula en (n+ 2) puntos (x, x0, ..., xn). Se usa el teorema de Rolle para probar quesu derivada (n+ 1)-ésima tiene un cero ξx.

Sustituyendo en dicha derivada, se obtiene la fórmula pedida.

Por ejemplo, si [a, b] = [−1, 1], f(x) = senx, y tomamos como familia de puntos interpolado-res, fijado un cierto entero positivo n, los puntos {(i/n, sen(i/n))}ni=0, entonces se cumple parael correspondiente polinomio interpolador pn que

|pn(x)− f(x)| = |f(n+1)(ξx)|(n+ 1)!

n∏i=0

|x− xi| ≤2n+1

(n+ 1)!

para cada x ∈ [−1, 1]. Consecuentemente la sucesión de polinomios interpoladores pn convergeuniformemente a f cuando n→∞, lo que se corresponde con la intuición. Veremos más adelanteque, sorprendentemente, esto no tiene por qué ocurrir siempre.

Ejercicio 2.2 Considera los siguientes datos:

log 1, 20 = 0.18232log 1, 22 = 0, 19885log 1, 24 = 0, 21511log 1, 25 = 0, 22314

Construir el polinomio interpolador de grado 3 que ajusta estos datos y usarlo para aproximarlog 1, 23. Dar una cota máxima para el error cometido que tenga en cuenta los errores de redondeoen los datos.

Ejercicio 2.3 De un polinomio p(x) se sabe que tiene grado a lo sumo 5 y que toma los valoresindicados por la siguiente tabla:

x −2 −1 0 1 2 3p(x) −5 1 1 1 7 25

Hallar el grado del polinomio p(x).NOTA: este ejercicio se planteó en el parcial de junio de 2005.

Page 43: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 43

Ejercicio 2.4 Sea f : [a, b] → R una función y consideremos, para una familia {xi : i =0, ..., n} de abscisas disjuntas dos a dos, el polinomio interpolador de Newton, p(x), en lospuntos {(xi, f(xi)) : i = 0, ..., n}. Prueba que si t ∈ [a, b] es distinto de las abscisas xi, entonces

f(t)− p(t) = f [x0, ..., xn, t]n∏i=0

(t− xi).

NOTA: este ejercicio se planteó en el examen final de julio de 2006.

Ejercicio 2.5 Encuentra todos los polinomios p(x) de grado menor o igual a tres tales quep(1) = 1, p(2) = 2 y p(3) = 3.

NOTA: este ejercicio se planteó en el examen final de septiembre de 2006.

2.5. Polinomios interpoladores de Hermite

En esta sección extendemos los resultados de la sección anterior permitiendo que podamosfijar no sólo los valores del polinomio interpolador en ciertos puntos sino también los de algunasde sus derivadas sucesivas. Obtenemos así el llamado polinomio interpolador de Hermite. Lo quesigue es una reelaboración de algunos de los contenidos de la Sección 6.3 (pp. 313–323) de [8].

Proposición 2.5.1 Considérese la familia {(xi, {yi,l : 0 ≤ l < ki}) : i = 0, 1, . . . ,m}, con , ycon las abscisas xi distintas dos a dos. Sea n = k0 + k1 + · · ·+ km− 1. Entonces existe un únicopolinomio p de grado menor o igual a n, tal que

p(j)(xi) = yi,l

para cada i, l.

Demostración:

Ideas que intervienen

La existencia y unicidad del polinomio interpolador de Hermite es equivalente a la de unsistema lineal de n + 1 ecuaciones que tiene como incógnitas los n + 1 coeficientes delpolinomio interpolador de Hermite.

Para que dicho sistema tenga solución única es necesario y suficiente que la matriz que lodefine sea no singular.

Dado que los coeficientes de dicha matriz no dependen de los datos yi,l, basta demostrarla existencia y unicidad de soluciones en el caso en que todos los datos yi,l son nulos.

Dado que en dicho caso el polinomio proporcional trivialmente una solución, debe demos-trarse que es la única solución posible.

Ello se consigue usando que si un polinomio de grado a lo sumo n tiene n + 1 raíces(contando multiplicidades) entonces es el polinomio nulo.

Page 44: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

44 um.es / Cálculo Numérico en una variable, 2011-2012

Sea p(x) = a0 +a1x+ · · ·+anxn el polinomio candidato a satisfacer las condiciones prefijadas.Entonces éstas determinan un sistema de n+ 1 ecuaciones lineales donde las incógnitas son loscoeficientes a0, a1, . . . , an del polinomio p(x). Por ejemplo p(x0) = y0,0 equivale a

a0 + x0a1 + x20a2 + · · ·xn0an = y0,0,

p′(x0) = y0,1 equivale aa1 + 2x0a2 + · · ·nxn−1

0 an = y0,1,

y así sucesivamente.Como es bien sabido, el que el sistema tenga solución única depende de que la matriz de

coeficientes del sistema sea no singular. Como la matriz no depende de los números yi,l, sidemostramos que el problema con las condiciones yi,l = 0 para cada i y l tiene solución única,habremos terminado.

Evidentemente el polinomio nulo es solución en este caso, así que debemos demostrar que ésaes, de hecho, la única solución posible. Ahora bien, si un polinomio p(x) satisface que las derivadasen un punto xi hasta un cierto orden ki − 1 se anulan, entonces admite un factor (x− xi)ki ensu descomposición factorial (esto es fácil de ver escribiendo el desarrollo de Taylor del polinomioen xi). Así pues, el polinomio p(x) es divisible por (x − x0)k0(x − x1)k1 · · · , (x − xm)km , unpolinomio de grado n+ 1, cosa imposible salvo que p(x) sea el polinomio idénticamente nulo.

Hay una manera de construir el polinomio interpolador del teorema 2.5.1 analoga al métodode las diferencias divididas de Newton. Primero redenotamos la familia {(xi, yi,l)}, donde a partirde ahora supondremos que x0 < x1 < · · · < xm para simplificar la notation, como {(xi, yi)}ni=0,donde

x0 = ... = xk0−1 = x0 e yj = y0,0 0 ≤ j < k0,

xk0 = ... = xk0+k1−1 = x1 e yj = y1,0 k0 ≤ j < k0 + k1,

y así, se van repitiendo kj veces cada uno de los puntos (xj , yj,0).Ahora demostramos por inducción en el numerom de abcisas xi que el polinomio interpolador

de Hermite puede escribirse como

pm(x) =n∑k=0

ck

k−1∏j=0

(x− xj), (2.3)

Si m = 1, sólo hay una abscisa x0 (n = k0 − 1), el polinomio de Hermite es el polinomio deTaylor con y0,j = p(j)(x0):

p0(x) =k0−1∑k=0

y0,k

k!(x− x0)k =

n∑k=0

y0,k

k!

k−1∏j=0

(x− xj).

Supongamos la ecuación (2.3) es cierta para m abcisas, y que tenemos una familia{(xi, {yi,l : 0 ≤ l < ki}) : i = 0, 1, . . . ,m+ 1} con m+ 1 abcisas. Ponemos

pm+1(x) = pm(x) +km+1−1∑k=0

tk(x− xm+1)km∏i=0

(x− xi)ki ,

Page 45: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 45

y observamos que para cada monomio

Ms(x) = (x− xm+1)sm∏i=0

(x− xi)ki

se cumple que M (s)s (xm+1) = s!

∏mi=0(xm+1 − xi)ki y M (r)

s (xm+1) = 0 si r < s. Así haciendop

(k)m+1(xm+1) para k = 0, ..., km+1 − 1 y despejando se van obteniendo de forma consecutiva los

coeficientes:

tk =p

(k)m+1(xm+1)− p(k)

m (xm+1)−∑k−1

j=0 tjM(k)j (xm+1)

k!∏mi=0(xm+1 − xi)ki

.

Obsérvese, que la fórmula anterior coincide con la del polinomio interpolador de Newton si k = 0.Obsérvese también que esta fórmula viene a probar la existencia del polinomio de Hermite aunquetenga un aspecto complejo (incómodo) al aparecer derivadas k-ésimas.

Llegados a este punto cabría preguntarse si existe una variante del algoritmo de las diferenciasdivididas en este caso. La respuesta es afirmativa y, de hecho, las diferencias son muy pequeña.Consideremos las abcisas xi repetidas ki veces como antes y para cada subfamilia xi0 ≤ · · · ≤ xirde x0 ≤ · · · ≤ xn definimos, al estilo del polinomio interpolador convencional, p[xi0 , . . . , xir ]como el coeficiente principal (el que multiplica a xr) del polinomio interpolador de Hermite enlos puntos correspondientes: Por ejemplo, si la familia de partida es

(x0, {y0,0, y0,1}), (x1, {y1,0, y1,1, y1,2}), (x2, {y2,0, y2,1})

entonces el polinomio interpolador de Hermite en los puntos (x0, {y0,0, y0,1}) y (x1, {y1,0}) ven-dría dado por

p(x) = · · ·+ p[x0, x0, x1]x2,

el polinomio interpolador de Hermite en los puntos (x0, {y0,0}), (x1, {y1,0, y1,1}) y (x2, {y2,0})sería

p(x) = · · ·+ p[x0, x1, x1, x2]x3,

etc.Nótese que (2.3) puede reescribirse entonces como

p(x) =n∑k=0

p[x0, x1, . . . , xk]k−1∏j=0

(x− xj). (2.4)

El siguiente teorema es la clave del algoritmo:

Teorema 2.5.2 Se tiene que

p[x0, x1, . . . , xn] =

p[x1, . . . , xn]− p[x0, . . . , xn−1]

xn − x0si x0 6= xn,

y0,n

n!si x0 = xn.

Demostración:

Ideas que intervienen

La idea fundamental de la prueba es esencialmente la misma que la de los Teoremas 2.3.3y 2.4.1

Page 46: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

46 um.es / Cálculo Numérico en una variable, 2011-2012

El caso x0 = x1 = · · · = xn se considera aparte y es consecuencia del teorema de Taylor.

El caso más simple es cuando x0 = xn. En este caso (x0, y0,0), . . . , (x0, y0,n) es la familia ainterpolar y el polinomio interpolador de Hermite es simplemente el polinomio de Taylor

p(x) = y0,0 + y0,1(x− x0) +y0,2

2!(x− x0)2 + · · ·+ y0,n

n!(x− x0)n.

Por tantop[x0, x1, . . . , xn] = p[x0, x0, . . . , x0] =

y0,n

n!.

Supongamos ahora que x0 = x0 6= xn = xm. Al igual que en la versión del teorema para lainterpolación convencional, si

pn−1(x) = · · ·+ p[x0, . . . , xn−1]xn−1,

q(x) = · · ·+ p[x1, . . . , xn]xn−1,

ypn(x) = · · ·+ p[x0, x1, . . . , xn]xn

son los correspondientes polinomios interpoladores de Hermite, es suficiente demostrar que

pn(x) =q(x)(x− x0)xn − x0

− pn−1(x)(x− xn)xn − x0

=q(x)(x− x0)xm − x0

− pn−1(x)(x− xm)xm − x0

.

Si llamamos h(x) al polinomio de la derecha basta demostrar, por la unicidad del polinomiointerpolador de Hermite, que h(l)(xi) = yi,l para cada 0 ≤ i ≤ m y 0 ≤ l < km.

Se prueba de inmediato por inducción que la derivada l-ésima de q(x)(x−x0) viene dada por

[q(x)(x− x0)](l) = q(l)(x)(x− x0) + lq(l−1)(x),

y del mismo modo

[pn−1(x)(x− xm)](l) = p(l)n−1(x)(x− xm) + lp

(l−1)n−1 (x).

Si 0 < i < m, entoncesq(l)(xi) = p

(l)n−1(xi) = yi,l,

para cada 0 ≤ l < ki, de modo que también

h(l)(xi) =q(l)(xi)(xi − x0) + lq(l−1)(xi)

xm − x0−p

(l)n−1(xi)(xi − xm) + lp

(l−1)n−1 (xi)

xm − x0

=yi,l(xi − x0) + lyi,l−1

xm − x0−yi,l(xi − xm) + lyi,l−1

xm − x0= yi,l.

Asimismo tenemosq(l−1)(x0) = p

(l−1)n−1 (x0) = y0,l−1

si l < k0, con lo que

h(l)(x0) =ly0,l−1

xm − x0−y0,l(x0 − xm) + ly0,l−1

xm − x0= y0,l

para cada 0 ≤ l < k0. De igual manera se comprueba que h(l)(xm) = ym,l, 0 ≤ l < km. �

Como en el caso de las diferencias divididas de Newton, el Teorema 2.5.2 permite calcularrecursivamente, y de una manera sencilla, los coeficientes p[x0, x1, . . . , xk].

Page 47: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 47

Ejemplo 2.5.3 Calculamos a continuación el polinomio p(x) de grado a lo sumo 4 que cumplelas condiciones p(1) = 2, p′(1) = 3, p(2) = 6, p′(2) = 7, p′′(2) = 8. De acuerdo con (2.4) setendrá

p(x) = p[1] + p[1, 1](x− 1) + p[1, 1, 2](x− 1)(x− 1) + p[1, 1, 2, 2](x− 1)(x− 1)(x− 2)+p[1, 1, 2, 2, 2](x− 1)(x− 1)(x− 2)(x− 2).

Ahora se tendrá el siguiente esquema:

1 p[1]p[1, 1]

1 p[1] p[1, 1, 2]p[1, 2] p[1, 1, 2, 2]

2 p[2] p[1, 2, 2] p[1, 1, 2, 2, 2]p[2, 2] p[1, 2, 2, 2]

2 p[2] p[2, 2, 2]p[2, 2]

2 p[2]

En la primera columna obtenemos p[1] = 2 y p[2] = 6. En la segunda tendremos

p[1, 1] =p′(1)

1!= 3, p[1, 2] =

p[2]− p[1]2− 1

= 4, p[2, 2] =p′(2)

1!= 7.

En la tercera tendremos

p[1, 1, 2] =p[1, 2]− p[1, 1]

2− 1= 1, p[1, 2, 2] =

p[2, 2]− p[1, 2]2− 1

= 3, p[2, 2, 2] =p′′(2)

2!= 4.

En la cuarta

p[1, 1, 2, 2] =p[1, 2, 2]− p[1, 1, 2]

2− 1= 2, p[1, 2, 2, 2] =

p[2, 2, 2]− p[1, 2, 2]2− 1

= 1,

Finalmente

p[1, 1, 2, 2, 2] =p[1, 2, 2, 2]− p[1, 1, 2, 2]

2− 1= −1.

Por tanto el polinomio buscado será

p(x) = 2 + 3(x− 1) + (x− 1)(x− 1) + 2(x− 1)(x− 1)(x− 2)−(x− 1)(x− 1)(x− 2)(x− 2)

= −8 + 23x− 20x2 + 8x3 − x4.

Finalizamos la sección escribiendo el pseudocódigo correspondiente al método de interpolaciónde Hermite. Hemos añadido al final el algoritmo de anidación de manera que el algoritmo arrojecomo resultado los coeficientes del polinomio interpolador.

Page 48: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

48 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 2.5 Polinomio interpolador de HermiteDatos de entrada:m+ 1 (número de puntos a interpolar);x[m+ 1] (abscisas de los puntos a interpolar;y[m+ 1][−] (ordenadas de los puntos a interpolar;

y[i][k] es la derivada k-ésima del polinomio interpolador en x[i]);l[m+ 1] (longitudes de las filas de y);Variables:aux[m+ 2]; // vector auxiliar para contar las multiplicidadesn; // grado del polinomio interpoladora[n+ 1]; // coeficientes del polinomio interpoladoru[n+ 1]; p[n+ 1]; // variables auxiliaresFujo del programa:for(i=0;i<=m;i++){

for(j=i+1;j<=m;l++){if(xi = xj){

Parada: abscisas repetidas}

}}

// Calculamos el grado del polinomio interpolador.aux0 = 0;for(i=0;i<=m;i++){

auxi+1 = auxi + li;}

n = auxm+1 − 1; // grado del polinomio interpolador// Cálculo de los “ nodos ” uj = xj .for(i=0;i<=m;i++){

for(j=aux[i];j<aux[i+1];j++){uj = xi;

}}

// Algoritmo de las diferencias divididas. pj = p[x0, ..., xj ]for(k=0;k<=n;k++){

for(i=m;i>=0;i–){for(j=aux[i+1]-1;j>=max{aux[i],k};j–){

if(uj−k = uj){pj = yi,k;for(r=1;r<=k;l++){pj = pj/r;}

}else{pj = (pj − pj−1)/(uj − uj−k);}

}}

}

Page 49: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 49

Algoritmo 2.5 Polinomio interpolador de Hermite (continuación)// Cálculo de los coeficientes del polinomio interpolador.for(k=0;k<=n;k++){

ak = 0;}

for(k=n;k>=0;k–){for(i=n-k;i>=1;i–){ai = ai−1 − ai ∗ uk;}

a0 = pk − a0 ∗ uk;}

Datos de salida:Polinomio interpolador con coeficientes a0, a1, . . . , an

Ejercicio 2.6 Hallar el polinomio interpolador de Hermite dado por las siguientes condiciones:

(i) p(1) = 1, p′(1) = 0 y p′′(1) = 2;

(ii) p(2) = 2;

(iii) p(3) = 1 y p′(3) = 1;

(iv) p(4) = 2.

Ejercicio 2.7 Considérese el problema de encontrar un polinomio p(x) de grado ≤ 2 que sa-tisfaga p(x0) = y0, p

′(x1) = y′1 y p(x2) = y2 con x0 6= x2 e {y0, y′1, y2} ciertos datos. ¿Qué

condiciones deben satisfacerse para que exista tal polinomio y sea único?

Ejercicio 2.8 Sea pn(x) el polinomio de grado n que verifica pn(k) = (−1)k para cada k =0, 1, ..., n. Calcular su coeficiente principal.

NOTA: este ejercicio se planteó en el parcial de julio de 2008.

2.6. Errores en la aproximación de funciones por polinomios in-terpolantes

Con la misma idea para probarlo (el Teorema de Rolle generalizado) se puede probar elsiguiente resultado análogo al teorema 2.4.3:

Teorema 2.6.1 Sea f : [a, b] → R una función de clase Cn+1 y sea p(x) de grado menor oigual a n, el polinomio que interpola a la función f en m puntos distintos {xi}mi=0 de forma quef (k)(xi) = pk(xi) para 0 ≤ k < ki, con k0 + ...+ km− 1 = n. Entonces para cada x ∈ [a, b] existeξx ∈ [a, b] tal que

f(x)− p(x) =f (n+1)(ξx)(n+ 1)!

n∏i=0

(x− xi).

Page 50: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

50 um.es / Cálculo Numérico en una variable, 2011-2012

A la vista de estos resultados parece bastante natural pensar que f es una función con buenaspropiedades de derivabilidad y elegimos los puntos de la interpolación de la manera natural

xi = a+(b− a)i

n

(nodos equidistribuidos) entonces los correspondientes polinomios interpoladores de f conver-gerán uniformemente a la función. Sin embargo, como demostró Runge en 1901, éste no es nimucho menos el caso: un sorprendente ejemplo es la función f(x) = 1/(x2 + 1) vista en el inter-valo [−5, 5]. Sin embargo puede probarse que eligiendo en el intervalo [a, b] = [−5, 5] los nodossegún la regla

xi = a+b− a

2

(1 + cos

(2i+ 12n+ 2

π

))(nodos de Chebyshev) entonces los polinomios interpoladores correspondientes convergen unifor-memente a f .

En lo que sigue, dada una función f : [a, b]→ R vamos a denotar

‖f‖∞,[a,b] = sup{|f(x)| : x ∈ [a, b]}.

Cuando no haya confusión sobre el intervalo [a, b] de definición usaremos la notación ‖f‖∞.Como veremos a continuación, los nodos de Chebyshev tienen la interesante propiedad que

hacen la cantidad maxx∈[a,b] |∏ni=0(x − xi)| lo más pequeña posible (compárese con el Teore-

ma 2.4.3) pero ni siquiera para estos nodos hay garantía de convergencia: Faber probó en 1914que para cualquier sistema de nodos a ≤ x

(n)0 < x

(n)1 < · · · < x

(n)n ≤ b existe una función conti-

nua f de manera que si pn es el polinomio interpolador en los puntos (x(n)i , f(x(n)

i ))n

i=0, entonces(pn) no converge uniformemente a f .

Probamos a continuación la mencionada propiedad de los nodos de Chebyshev, para lo queseguiremos [8, pp. 292–293].

Para empezar consideramos el caso [a, b] = [−1, 1] introduciendo inductivamente los llamadospolinomios de Chebyshev :

T0(x) = 1,

T1(x) = x,

Tn+1(x) = 2xTn(x)− Tn−1(x), n ≥ 1.

Los polinomios de Chebyshev tienen la siguiente útil propiedad:

Proposición 2.6.2 Para x ∈ [−1, 1] los polinomios de Chebyshev admiten la siguiente expre-sión:

Tn(x) = cos(n cos−1 x), n ≥ 0.

Demostración: Partiendo de la conocida igualdad trigonométrica

cos(A+B) = cosA cosB − senA senB

deducimoscos(n+ 1)θ = cos θ cosnθ − sen θ sennθ,

cos(n− 1)θ = cos θ cosnθ + sen θ sennθ,

de dondecos(n+ 1)θ = 2 cos θ cosnθ − cos(n− 1)θ.

Page 51: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 51

Usemos la biyección que la función cos establece entre los intervalos [0, π] y [−1, 1], escribamoscos θ = x, θ = cos−1 x, y apliquemos la última igualdad para deducir que las funciones fn(x) =cos(n cos−1 x) (con dominio de definición el intervalo [−1, 1]) satisfacen, además de las obviaspropiedades f0(x) = 0 y f1(x) = x, la igualdad

fn+1(x) = 2xfn(x)− fn−1(x), n ≥ 1.

De aquí concluimos que Tn = fn para todo n. �

A partir de la formula de la proposición anterior es fácil obtener las siguientes propiedadesadicionales de los polinomios de Chebyshev para todo n ≥ 1:

|Tn(x)| ≤ 1, x ∈ [−1, 1],

Tn(cos(jπ/n)) = (−1)j , 0 ≤ j ≤ n,

Tn(cos((2j − 1)π/(2n))) = 0, 1 ≤ j ≤ n.

En particular, dado que (fijo n), se cumple |Tn(cj)| = 1 para los puntos

cj = cos(jπ/n), 0 ≤ j ≤ n,

se tiene que‖Tn‖∞ = max

x∈[−1,1]|Tn(x)| = 1.

Asimismo, observemos que los puntos

rj = cos((2j − 1)π/(2n)), 1 ≤ j ≤ n,

son exactamente los ceros del polinomio Tn.Decimos que un polinomio p es mónico si su coeficiente principal es 1. De la definición inicial

de los polinomios de Chebyshev se deduce que el coeficiente principal de Tn es 2n−1, es decir,Pn(x) = 21−nTn(x) es mónico. Claramente ‖Pn‖∞ = 21−n. Resulta que no hay polinomio mónicoque tenga una norma menor:

Proposición 2.6.3 Si p es mónico de grado menor o igual a n, entonces en el intervalo [-1,1]se tiene que ‖p‖∞ ≥ 21−n.

Demostración: Supongamos que |p(x)| < 21−n para todo x ∈ [−1, 1]. Entonces

(−1)jp(cj) ≤ |p(cj)| < 21−n = (−1)jPn(cj), 0 ≤ j ≤ n,

con lo que(−1)j(p(cj)− Pn(cj)) < 0, 0 ≤ j ≤ n.

Así pues, el polinomio p− Pn toma alternativamente valores negativos y positivos en los n + 1puntos cj , lo que significa que tiene al menos n ceros distintos, cosa imposible dado que p y Pnson mónicos y por tanto p− Pn tiene grado a lo sumo n− 1. �

Page 52: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

52 um.es / Cálculo Numérico en una variable, 2011-2012

En este punto retomemos el Teorema 2.4.3. Si g : [−1, 1] → R es de clase Cn+1, {si}ni=0 esuna familia de n+ 1 puntos distintos en [−1, 1] y t es el polinomio interpolador en {si, g(si)}ni=0,la fórmula del teorema puede reescribirse como

‖g − t‖∞ ≤‖g(n+1)‖∞(n+ 1)!

‖q‖∞,

donde q(x) =∏ni=0(x− si). Como q es mónico de grado n+ 1, la Proposición 2.6.3 nos dice que

‖q‖∞ ≥ 2−n. Si elegimos los puntos si como los nodos de Chebyshev, es decir, como los ceros rjdel polinomio de Chebyshev de grado n+ 1,

si = cos((2i+ 1)π/(2n+ 2)), 0 ≤ i ≤ n,

se tiene exactamente ‖q‖∞ = 2−n. En consecuencia hemos probado:

Teorema 2.6.4 Sean g : [−1, 1]→ R una función de clase Cn+1, {si}ni=0 los nodos de Chebyshevy t el correspondiente polinomio interpolador. Entonces

‖g − t‖∞ ≤‖g(n+1)‖∞2n(n+ 1)!

.

Es fácil probar un resultado análogo para una función f : [a, b] → R de clase Cn+1 defi-nida en un intervalo arbitrario [a, b] y el polinomio interpolador p en los nodos de Chebyshevgeneralizados

xi = a+b− a

2

(1 + cos

(2i+ 12n+ 2

π

)), 0 ≤ i ≤ n.

En efecto, si y = φ(x) = a + b−a2 (1 + x) es la biyección lineal entre los intervalos [−1, 1] y

[a, b], definimos g(x) = f(φ(x)) y denotamos por t(x) al polinomio interpolador en los puntos{si, g(si)}, es fácil comprobar que t(x) = p(φ(x)). Dado que

‖f − p‖∞ = maxy∈[a,b]

|f(y)− p(y)| = maxx∈[−1,1]

|g(x)− t(x)| = ‖g − t‖∞

y

‖g(n+1)‖∞ =(b− a)n+1

2n+1‖f (n+1)‖∞,

deducimos del Teorema 2.6.4 que

‖f − p‖∞ ≤(b− a)n+1‖f (n+1)‖∞

22n+1(n+ 1)!.

En el capítulo 4 volveremos a tratar el problema de aproximar uniformemente funciones porpolinomios eligiendo los nodos de interpolación de forma adecuada.

Ejercicio 2.9 Demostrar que si f : [−1, 1] → R viene dada por f(x) =√x+ 3/2 y pn son los

polinomios interpoladores para f en los nodos de Chebyshev, entonces la sucesión (pn) convergeuniformemente hacia f en [−1, 1].

NOTA: este ejercicio se planteó en el parcial de junio de 2008.

Page 53: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 53

Ejercicio 2.10 Sea 0 < a < 1. Consideremos la función f(x) = 1x+1 y para cada n sea pn(x) el

polinomio que interpola a la función f en las abcisas 1, a, a2, ..., an. Prueba que

lımn→∞

pn(0) = f(0) = 1.

NOTA: este ejercicio se planteó en el parcial de junio de 2007.

Ejercicio 2.11 Demuestra que si tomamos cualquier conjunto de 23 nodos en el intervalo [-1,1]e interpolamos la función f(x) = coshx en esos nodos, entonces el error relativo en cualquierpunto de [-1,1] satisface la acotación:

|f(x)− p(x)||f(x)|

< 5E − 16.

2.7. Interpolación con splines

El contenido de esta sección lo podéis consultar en el libro de Kincaid y Cheney [8, sec 6.4]y en el libro de Burden y Faires [3, sec 3.4].

En los apartados anteriores hemos aproximado funciones arbitrarias definidas en un intervalof : [a, b] → R, con polinomios interpoladores de grado alto (n). Sin embargo, la naturalezaoscilatoria de los polinomios de grado alto puede ocasionar distorsiones en algunas zonas delintervalo (fenómeno Runge). Por otra parte, para estimar errores en estos casos necesitamosconocer derivadas de orden superior lo que puede resultar, costoso y difícil.

Un procedimiento alternativo consiste en dividir el intervalo [a, b] en subintervalos pequeñosy en cada subintervalos construir un polinomio interpolador diferente que aproxime a la función( aproximación fragmentaria - a trozos -).

2 4 6 8

-20

-10

10

20

30

40

Figura 2.1: Aproximación fragmentaria con arcos de cúbicas (polinomios de grado 3)

El caso más simple es el de interpolación lineal fragmentaria (Splines lineales) queconsiste en, dada una lista de nodos {(xi, f(xi)) : i = 0, 1, ..., n} con x0 < x1 < ... < xn, unirlos puntos con segmentos de recta determinados por cada par de puntos consecutivos: Con estetipo de aproximación se pierde la suavidad (derivabilidad) en los nodos.

Otro procedimiento consistiría, si se conocen los valores de f ′(xi), en construir los polinomiosde Hermite de grado 3 en cada intervalo [xi, xi+1] lo que, de forma fragmentaria, daría unaaproximación por una función con derivada continua en todo el intervalo [x0, xn]. Pero parautilizar este método necesitariamos conocer los valores de la derivada, lo que en muchos casos no

Page 54: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

54 um.es / Cálculo Numérico en una variable, 2011-2012

0.2 0.4 0.6 0.8 1

-1

-0.5

0.5

1

Figura 2.2: spline lineal que aproxima a la función sen(x) en 5 puntos

es posible porque la información sobre la función se reduce a una tabla de valores procedentesde mediciones o experimentos.

En lo que sigue vamos a describir aproximaciones fragmentarias suaves que no requierenconocer la derivada de f .

El tipo de aproximación fragmentaria con derivada continua más simple que podemos obtenerusando interpolación polinómica es la aproximación por Splines cuadráticos1, que consiste eninterpolar entre cada par de nodos consecutivos, i.e. en cada intervalo [xi, xi+1], por un polinomiode grado 2 pi(x) = ai,0 + ai,1x+ ai,2x

2 sujeto a las siguientes condiciones

pi(xi) = f(xi) para i = 0, 1, ..., n− 1, pn−1(xn) = f(xn).

pi(xi+1) = pi+1(xi+1) para i = 0, 1, ..., (n− 2),

p′i(xi+1) = p′i+1(xi+1) para i = 0, 1, ..., (n− 2).

Observad que encontrar cada polinomio pi tiene tres incógnitas (los coeficientes ai,0, ai,1 yai,2, lo que supone un problema de 3n incógnitas ya que necesitamos n polinomios. Sin embargo,las condiciones anteriores proporcionan 3n− 1 ecuaciones que se pueden completar fijando unode los valores de p′0(x0) y p′n(xn), para tener un sistema lineal con 3n ecuaciones y 3n incógnitas.El problema consiste en decidir qué condición adicional se establece para asegurar la unicidadde la solución.

0.2 0.4 0.6 0.8 1

-1

-0.5

0.5

1

Figura 2.3: splines lineal y cúbico (en azul) que aproxima a la función sen(x) en 5 puntos

Las aproximaciones polinómicas más habituales utilizan polinomios de grado 3 entre cadapar de nodos consecutivos y se denominan Splines cúbicos:

1La palabra “ spline” no existe en castellano ni en francés, es posible encontrarla en inglés referida curvassuaves construidas en madera. Si alguno de vosotros tiene algún inconveniente en utilizar este término, puedesustituirlo por la palabra “trazador” en todo lo que sigue.

Page 55: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 55

Definición 2.7.1 (Splines cúbicos) Dada una función real f : [a, b] → R y un conjunto denodos a = x0 < x1... < xn = b se llama “spline cúbico” interpolante de f en los nodos anteriores,a una función S(x) que cumple las siguientes condiciones:

(i) S(x) = pi(x) para cada x ∈ [xi, xi+1], i = 0, ..., (n−1), donde pi(x) = ai,0 +ai,1x+ai,2x2 +

ai,3x3 es un polinómio cúbico.

(ii) pi(xi) = f(xi) para i = 0, 1, ..., n, pn−1(xn) = f(xn).

(iii) pi(xi+1) = pi+1(xi+1) para i = 0, 1, ..., (n− 2),

(iv) p′i(xi+1) = p′i+1(xi+1) para i = 0, 1, ..., (n− 2).

(v) p′′i (xi+1) = p′′i+1(xi+1) para i = 0, 1, ..., (n− 2).

(vi) Una de las siguientes condiciones frontera:

a) S′′(x0) = S′′(xn) = 0 spline cúbico natural (o libre),b) S′(x0) = f ′(x0) y S′(xn) = f ′(xn) spline cúbico sujeto (o de frontera sujeta).

Observad que (I) presenta el problema de encontrar splines cúbicos como un problema de4n incógnitas, y (II), (III), (IV) y (V) proporcionan 4n− 2 ecuaciones. Las condiciones de (VI)añaden 2 ecuaciones adicionales en cada caso, y vamos a ver que en ambos casos el sistema queresulta tiene una única solución.

Para plantear el sistema de ecuaciones de una forma sencilla se consideran los polinomioscentrados en uno de los extremos de los subintervalos

pi(x) = ai + bi(x− xi) + ci(x− xi)2 + di(x− xi)3

Está claro que la condición (II) se traduce en

ai = f(xi) para i = 0, 1, ..., (n− 1).

Definimos también an = f(xn) Esto reduce el problema a 3n ecuaciones con 3n incógnitas.Si trasladamos a esta expresión las ecuaciones (III), se tiene

ai+1 = ai + bi(xi+1 − xi) + ci(xi+1 − xy)2 + di(xi+1 − xi)3,

y utilizando la notación hi = xi+1 − xi se tiene

bihi + cih2i + dih

3i = ai+1 − ai para i = 0, 1, ..., (n− 1) (2.5)

Definiendo bn = S′(xn) = p′n−1(xn), y considerando las ecuaciones (IV) se tiene

bi+1 = bi + 2cihi + 3dih2i para i = 0, 1, ..., (n− 1) (2.6)

Como antes, definiendo cn = S′′(xn) = p′′n−1(xn), y viendo las ecuaciones (V) se tiene

ci+1 = ci + 3dihi para i = 0, 1, ..., (n− 1) (2.7)

Al despejar di en (2.7) y sustituirlos en (2.6) y (2.5) se tienen 2n ecuaciones con 2n incógnitas.

hibi +h2i

3(2ci + ci+1) = ai+1 − ai (2.8)

bi − bi+1 + hi(ci + ci+1) = 0 (2.9)

Page 56: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

56 um.es / Cálculo Numérico en una variable, 2011-2012

Ahora se despeja bi en (2.8) y se hace la modificación en el índice para escribir bi+1

bi = −hi3

(2ci + ci+1) +ai+1 − ai

hi(i = 0, 1, ..., n− 1)

bi+1 = −hi+1

3(2ci+1 + ci+2) +

ai+2 − ai+1

hi+1(i = 0, 1, ..., n− 2),

y sustituyendo estas expresiones en (2.9) se tienen las ecuaciones

hici + 2(hi+1 + hi)ci+1 + hi+1ci+2 =3(ai+2 − ai+1)

hi+1− 3(ai+1 − ai)

hi(i = 0, 1, ..., n− 2),

(2.10)

que forman un sistema lineal de n−1 ecuaciones con n+ 1 incógnitas (c0, c1, ...cn), ya que todoslos valores hi y ai están dados por el espaciado en los nodos y los valores de f .

En el caso del splin natural, las condiciones c0 = 0 y cn = 0 reducen el problema a un sistemalineal de n− 1 ecuaciones con n− 1 incógnitas.

Como se suponen los nodos ordenados, a = x0 < x1... < xn = b, entonces hi = xi+1 − xi > 0para todo i = 0, 1, ..., n− 1 por lo que la matriz de coeficientes del sistema lineal

A =

h0 2(h0 + h1) h1 0 . . . 00 h1 2(h1 + h2) h2 . . . 0...

. . . . . . . . ....

0 . . . 0 hn−2 2(hn−2 + hn−1) hn−1

es especial en el sentido que sólo tiene elementos no nulos en la diagonal principal y en lasdos diagonales contiguas (sistema de ecuaciones tridiagonal), y en cada fila el elemento de ladiagonal es estrictamente mayor que la suma del resto de los elementos de la fila (matriz condiagonal estrictamente dominante). En el apartado de análisis numérico matricial veremos queestos sistemas especiales son compatibles determinados y que se pueden resolver de forma sencillacon un algoritmo de factorización.

En el caso del splin sujeto, las condiciones dadas b0 = f ′(x0) y bn = f ′(xn) permiten añadirlas ecuaciones

2h0c0 + h0c1 =3(a1 − a0)

h0− 3f ′(x0) (2.11)

hn−1cn−1 + 2hn−1cn = 3f ′(xn)− 3(an − an−1)hn−1

(2.12)

al sistema y pasar a un sistema lineal de n+ 1 ecuaciones con n+ 1 incógnitas.Como se suponen los nodos ordenados, a = x0 < x1... < xn = b, entonces hi = xi+1 − xi > 0

para todo i = 0, 1, ..., n− 1 por lo que la matriz de coeficientes del sistema lineal

A =

2h0 h0 0 . . . 0h0 2(h0 + h1) h1 0 . . . 00 h1 2(h1 + h2) h2 . . . 0...

. . . . . . . . ....

0 . . . 0 hn−2 2(hn−2 + hn−1) hn−1

0 . . . hn−1 2hn−1

Page 57: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 57

que tambien es especial (un sistema de ecuaciones tridiagonal con matriz con diagonal estricta-mente dominante), y como en el caso del spline natural, es compatible determinado.

En los dos casos de la condición (V) tenemos probado que es posible encontrar de formaúnica los valores c0, ..., cn y volviendo a las ecuaciones (2.7) y (2.8) deducir los valores de di y bi(i = 0, ..., n− 1). En resumen, tenemos probado el siguiente teorema:

Teorema 2.7.2 Si f está definida en [a, b] y a = x0 < x1 < .. < xn = b es un sistema de n+ 1nodos en [a, b], entonces:

existe un único spline natural S(x) (S′′(a) = S′′(b) = 0) que interpola a f en los nodos;

Si además f es derivable en a y en b, existe un único spline sujeto S(x) que interpola a fcon las condiciones de frontera S′(a) = f ′(a) y S′(b) = f ′(b).

Algoritmo 2.6 Spline cúbico natural o libre.Datos de entrada:n // (número de intervalos = número de polinomios)x[n+ 1] // (abscisas de los puntos a interpolar que ya se suponen ordenadas) ;a[m+1] // (ordenadas de los puntos a interpolar y términos independientes de las cúbicas)Variables:b[n+ 1]; c[n+ 1]; d[n+ 1]; // (resto de coeficientes de las cúbicas)h[n]; // (distancias entre abscisas de nodos)ds[n]; // (distancias entre ordenadas de nodos)l[n+ 1]; u[n]; z[n] // (vectores auxiliares para resolver los sistemas lineales)Fujo del programa:for(i=0;i<n;i++){

h[i]= x[i+1]-x[i]; ds[i]=a[i+1]-a[i];}

// los siguientes pasos sirven para resolver el sistema lineal con el algoritmo LU paramatrices tridiagonales que veremos en el capítulo 6

l[0]=1.; u[0]=0; z[0]=0;for(i=1;i<n;i++){

l[i]=2*(h[i]+h[i-1])-h[i-1]*u[i-1];u[i]=h[i]/l[i];z[i]=((3*ds[i]/h[i] - 3*ds[i-1]/h[i-1]) - h[i-1]*z[i-1])/l[i];

}l[n]=1;c[n]=0;

for(i=n-1;i>=0;i- -){c[i]=z[i]-u[i]*c[i+1];// (en esta parte del bucle termina el algoritmo LU citado)b[i]=ds[i]/h[i]- h[i](c[i+1]+2*c[i])/3;d[i]=(c[i+1]-c[i])/(3*h[i]);

}Datos de salida: Spline natural S(x) definido por las cúbicas:S(x) = a[i] + b[i](x − x[i]) + c[i](x − x[i])2 + d[i](x − x[i])3 si x ∈ [x[i], x[i + 1]],i = 0, 1, ..., n− 1

Page 58: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

58 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 2.7 Spline cúbico sujetoDatos de entrada:n // (número de intervalos = número de polinomios)x[n+ 1] // (abscisas de los puntos a interpolar que ya se suponen ordenadas) ;a[m+1] // (ordenadas de los puntos a interpolar y términos independientes de las cúbicas)df0 = f ′(x0); dfn = f ′(xn) // (las pendientes en los extremos)Variables:b[n+ 1]; c[n+ 1]; d[n+ 1]; // (resto de coeficientes de las cúbicas)h[n]; // (distancias entre abscisas de nodos)ds[n]; // (distancias entre ordenadas de nodos)l[n+ 1]; u[n]; z[n+ 1] // (vectores auxiliares para resolver los sistemas lineales)Fujo del programa:for(i=0;i<n;i++){

h[i]= x[i+1]-x[i]; ds[i]=a[i+1]-a[i];}

// los siguientes pasos sirven para resolver el sistema lineal con el algoritmo LU paramatrices tridiagonales que veremos en el capítulo 6

l[0]=2*h[0]; u[0]=0.5;z[0]=(3*ds[0]/h[0] - 3*fd0)/l[0];

for(i=1;i<n;i++){l[i]=2*(h[i]+h[i-1])-h[i-1]*u[i-1];u[i]=h[i]/l[i];z[i]=((3*ds[i]/h[i] - 3*ds[i-1]/h[i-1]) - h[i-1]*z[i-1])/l[i];

}l[n]=h[n-1]*(2-u[n-1]);z[n]=((3*dfn - 3*ds[n-1]/h[n-1])-h[n-1]*z[n-1])/l[n];c[n]=z[n];

for(i=n-1;i>=0;i- -){c[i]=z[i]-u[i]*c[i+1];// (en esta parte del bucle termina el algoritmo LU citado)b[i]=ds[i]/h[i]- h[i](c[i+1]+2*c[i])/3;d[i]=(c[i+1]-c[i])/(3*h[i]);

}

Datos de salida: Spline sujeto S(x) definido por las cúbicas:S(x) = a[i] + b[i](x − x[i]) + c[i](x − x[i])2 + d[i](x − x[i])3 si x ∈ [x[i], x[i + 1]],i = 0, 1, ..., n− 1

Ejercicio 2.12 Describe una clase de Java, Spline, que implemente la “interface” Funcion delpaquete auxiliar en nuestros proyectos de prácticas, y que contenga el método de construcciónde los splines cúbicos natural y sujeto descritos en los algoritmos anteriores.

Ejemplo 2.7.3 Visitad el ejemplo 1 de [3, sec 3.4] en el libro de Burden y Faires, con la gráficade la silueta del pato aproximada por splines y por polinomios interpoladores.

Page 59: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 59

Para terminar la sección incluimos dos resultados que nos dicen cómo medir la aproximacióna una función con splines cúbicos. El primer teorema nos dice que el spline cúbico natural esla función interpoladora más suave posible. El segundo teorema da una estimación del errorcometido al aproximar con splines cúbicos sujetos medido en la norma del supremo.

Teorema 2.7.4 Sea f : [a, b] → R una función con derivada segunda f ′′ continua y considere-mos n + 1 nodos a = x0 < x1 < . . . < xn = b. Si S(x) es el spline cúbico natural que interpolaa f en los n+ 1 nodos, entonces∫ b

a(S′′(x))2dx ≤

∫ b

a(f ′′(x))2dx

La prueba la podéis encontrar en el libro de Kincaid y Cheney [8, Teorema 1, sec 6.4].Observad que en la construcción de S(x) sólo intervienen los valores {(xi, f(xi)) : i = 0, ..., n}

por lo tanto la desigualdad sigue siendo cierta si se sustituye f ′′ por F ′′ para cualquier funcióninterpoladora en los nodos (F (xi) = f(xi) i = 0, ..., n) que sea dos veces derivable con deri-vada segunda continua. La curvatura de una curva y = f(x) viene dada por las cantidades|f ′′(x)| 1

3√

1+f ′(x)2, que vienen a medir la variación de la pendientes de las tangentes con respecto

a la longitud de la curva en cada punto. Así, despreciando el termino que aparece entre corchetes,el teorema se puede interpretar diciendo que el spline cúbico natural hace mínima las curvaturasde entre todas las funciones de clase C2 que interpolan un mismo conjunto de puntos.

Por último incluiremos una fórmula que da una acotación del error en la aproximación consplines cúbicos sujetos. Podéis encontrarlo en el libro de Burden y Faires [3, Teorema 3.13, sec3.4]. En el libro de Hämmerlin y Hoffman podéis leer una demostración en el caso particularde splines sujetos con nodos equiespaciados [6, chap. 6, sec. 5.4, pág. 261] y una prueba de unaversión general para splines de orden superior [6, chap. 6, sec. 5.4, pág. 262].

Teorema 2.7.5 Sea f : [a, b] → R una función cuatro veces derivable con derivada cuartacontinua en [a, b] y max{f (4)(x) : x ∈ [a, b]} = M . Si S(x) es el spline cúbico sujeto de frespecto de los nodos a = x0 < x1 < ... < xn = b (S′(a) = f ′(a) y S′(b) = f ′(b)), entonces

max{|f(x)− S(x)| : x ∈ [a, b]} ≤ 5M384

max{|xi+1 − xi|4 : i = 0, ..., n− 1}

Ejercicio 2.13 Determina si la siguiente función es un spline cúbico natural

f(x) =

2(x+ 1) + (x+ 1)3 si x ∈ [−1, 0]3 + 5x+ 3x2 si x ∈ [0, 1]11 + 11(x− 1) + 3(x− 1)2 − (x− 1)3 si x ∈ [1, 2]

Ejercicio 2.14 Usar el spline cúbico sujeto para aproximar a la función f(x) = 3xex − e2x enx = 1.03 usando los datos

f(1) = 0.76578939f(1.02) = 0.79536678f(1.04) = 0.82268817f(1.06) = 0.84752226f ′(1) = 1.17549773

f ′(1.06) = 1.53157877

Estimar el error cometido con la fórmula del teorema 2.7.5(ignorando los errores de redondeo delos datos) y compararlo con el error real.

Page 60: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

60 um.es / Cálculo Numérico en una variable, 2011-2012

2.8. Curvas parametrizadas: Fuentes “script” y curvas de Bezier

Utilizando splines se pueden describir curvas que pasan por una lista ordenada de puntos{(xi, yi) : i = 0, 1, ..., n} en el plano de forma suave, describiendo las coordenadas parametrizadasde una curva x(t) e y(t) (x(t) e y(t) son splines determinados respectivamente por las listas depuntos {(i/n, xi) : i = 0, 1, ..., n} y {(i/n, yi) : i = 0, 1, ..., n}, t ∈ [0, 1]). Consultad el ejercicio37 de la sección 6.4 del libro de Kincaid y Cheney [8].

Figura 2.4: Fuentes script (postscript)

Las curvas de Bezier se construyen cómo splines cúbicos dónde de forma dinámica se vandefiniendo las tangentes en los nodos. Leed la sección 3.5 del libro de Burden y Faires [3].

Figura 2.5: Curva de Bezier

Page 61: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Interpolación um.es / Grado en Matemáticas 61

2.9. Actividades complementarias del capítulo

Los documentos se pueden descargar desde SUMA.

Hoja de problemas 2

Practicas 3 y 4

Otros recursos en internet:http:en.wikipedia.org/wiki/Interpolation (comparar con la versión en español)http://terpconnect.umd.edu/∼petersd/interp.html (applet de java)

Page 62: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

62 um.es / Cálculo Numérico en una variable, 2011-2012

Page 63: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Capítulo 3 Diferenciación e Integración

Numéricas.Diferenciación e IntegraciónNuméricas.

Interrogantes centrales del capítulo

• Aproximar numéricamente la derivada de una función en un punto con unaestimación del error cometido.

• Aproximar numéricamente el valor de una integral en un intervalo con unaestimación del error cometido.

• Aproximar numéricamente integrales impropias e integrales múltiples.

#

"

!

#

"

!

Destrezas a adquirir en el capítulo

• Conocer e implementar distintos métodos de aproximación de la derivadade una función en un punto y disponer criterios de elección entre unos yotros.

• Conocer y saber implementar distintos métodos de aproximación del valorde la integral de una función en un punto. Distinguir entre las distintasfórmulas de cuadratura y saber comparar los distintos métodos para elegirun método adecuado al problema en el que se esté trabajando.

• Saber hacer aproximaciones numéricas de integrales impropias y múltiples.

Este esté capítulo vamos a utilizar la interpolación polinómica para abordar dos problemasclásicos en el análisis numérico: La diferenciación y la integración aproximada. En los doscasos la idea central es la misma: aproximar la derivada, resp. la integral, de una función porla derivada, resp. la integral, de un polinomio que aproxima a la función. El primer apartadoestá dedicado al problema de aproximar derivadas, y los otros dos restantes lo están a haceraproximaciones de las integrales:

Desarrollo de los contenidos fundamentales

Diferenciación Numérica. Métodos de Taylor y de Interpolación. Extrapolación de Richard-son.

Integración numérica basada en interpolación: Reglas del trapecio y de Simpson.

Integrales múltiples e impropias.

Page 64: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

64 um.es / Cálculo Numérico en una variable, 2011-2012

3.1. Diferenciación Numérica

Después de la aparición de programas de cálculo simbólico (Mathematica, Matlab, Maple,Maxima, Octave, ...) la aproximación del valor de la derivada de una función en un punto noes un problema que debiera tratarse numéricamente a no ser por la situación habitual de quetan sólo se conocen los valores aproximados de la función en algunos puntos como respuesta ala evaluación de una serie de experimentos. Otras veces, la expresión de la derivada puede sercompleja y resultar más estable y preciso hacer una aproximación de la derivada que evaluar laexpresión simbólica de la derivada.

Vamos a comenzar utilizando desarrollos de Taylor de la función en un punto para obtenerunas primeras aproximaciones de su derivada en lo que llamaremos Métodos de Taylor. Conti-nuaremos utilizando polinomios interpoladores y la fórmula del error en esta aproximación paraconseguir más fórmulas de aproximación a la derivada. Por último, supuesto que tenemos infor-mación adicional sobre la analiticidad de la función, usaremos métodos de extrapolación paraobtener fórmulas de aproximación a la derivada con mejor orden de aproximación.

3.1.1. Métodos de Taylor para evaluar f ′ y f ′′.

Supongamos en primer lugar que f : [a, b] → R es una función dos veces derivable tal queM2 = sup{|f ′′(t)| : t ∈ [a, b]} < +∞. Supongamos que conocemos los valores de f(x) y f(x+ h)donde x, x+ h ∈ [a, b].

El desarrollo de Taylor de f en x de grado 1 nos da:

f(x+ h) = f(x) + f ′(x)h+f ′′(th)

2h2,

donde th es un punto comprendido entre x y x+ h. Despejando el valor de f ′(x) tenemos

f ′(x) =f(x+ h)− f(x)

h− f ′′(th)

2h.

De aquí deducimos que la fórmula de aproximación

f ′(x) ≈ f(x+ h)− f(x)h

(3.1)

es una aproximación de f ′(x) que utiliza sólo dos valores de f con una estimación del errorcometido

E(3.1) :=∣∣∣∣f ′′(th)

2h

∣∣∣∣ ≤ M2

2h.

En este caso el error cometido es del mismo orden h que el paso entre las abcisas x y x + husadas para la aproximación.

Si f es tres veces derivable en [a,b] tal que M3 = sup{|f ′′′(t)| : t ∈ [a, b]} < +∞, utilizandolos desarrollos de Taylor de orden 2

f(x+ h) = f(x) + f ′(x)h+f ′′(x)

2h2 +

f ′′′(th)6

h3

f(x− h) = f(x)− f ′(x)h+f ′′(x)

2h2 − f ′′′(sh)

6h3

y restando las dos expresiones se tiene,

f(x+ h)− f(x− h) = 2f ′(x)h+f ′′′(th) + f ′′′(sh)

6h3.

Page 65: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 65

Recordando que f ′′′ es una función derivada y tiene la propiedad del valor intermedio, podemosencontrar un punto uh comprendido entre th y sh, y por lo tanto entre x − h y x + h, tal quef ′′′(th)+f ′′′(sh)

2 = f ′′′(uh) y si despejamos f ′(x) de la expresión anterior tenemos que

f ′(x) =f(x+ h)− f(x− h)

2h− f ′′′(uh)

6h2.

De aquí deducimos otra aproximación de f ′(x)

f ′(x) ≈ f(x+ h)− f(x− h)2h

(3.2)

es una aproximación de f ′(x) que utiliza sólo dos valores de f con una estimación del errorcometido

E(3.2) :=∣∣∣∣f ′′′(uh)

6h

∣∣∣∣ ≤ M3

6h2.

En este caso el error cometido es de orden cuadrático h2 en función del paso entre las abcisasx− h y x+ h usadas para la aproximación.

Utilizando desarrollos de Taylor de orden 3 y razonando de forma análoga se obtienen apro-ximaciones para el valor de f ′′(x). Supongamos que f es derivable cuatro veces en [a,b] y queM4 = sup{|f (4)(t)| : t ∈ [a, b]} < +∞.

f(x+ h) = f(x) + f ′(x)h+f ′′(x)

2h2 +

f ′′′(x)6

h3 +f (4)(th)

24h4

f(x− h) = f(x)− f ′(x)h+f ′′(x)

2h2 − f ′′′(x)

6h3 +

f (4)(sh)24

h4

y sumando las dos expresiones se tiene,

f(x+ h) + f(x− h)− 2f(x) = f ′′(x)h2 +f (4)(th) + f (4)(sh)

24h4.

Al igual que antes, f (4) es una función derivada y tiene la propiedad del valor intermedio,podemos encontrar un punto uh comprendido entre th y sh, y por lo tanto entre x− h y x+ h,tal que f (4)(th)+f (4)(sh)

2 = f (4)(uh) y si despejamos f ′′(x) de la expresión anterior tenemos que

f ′′(x) =f(x+ h) + f(x− h)− 2f(x)

h2− f (4)(uh)

12h2.

De aquí deducimos otra aproximación de f ′(x)

f ′′(x) ≈ f(x+ h) + f(x− h)− 2f(x)h2

(3.3)

es una aproximación de f ′(x) que utiliza sólo dos valores de f con una estimación del errorcometido

E(3.3) :=∣∣∣∣f ′′′(uh)

6h

∣∣∣∣ ≤ M4

12h2.

En este caso el error cometido también es de orden cuadrático h2 en función del paso entre lasabcisas x− h, x y x+ h usadas para la aproximación.

Las fórmulas (3.2) y (3.2) son las más usadas para aproximar la primera y la segunda derivadade una función. En el siguiente apartado usaremos polinomios interpoladores en más nodos paratener otras fórmulas de aproximación.

Page 66: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

66 um.es / Cálculo Numérico en una variable, 2011-2012

Ejercicio 3.1 Sea p1(t) el polinomio interpolador de grado 1 en los dos puntos (x, f(x) y (x+h, f(x+ h)). Comprueba que

p′1(x) =f(x+ h)− f(x)

h.

Deriva con respecto a t en la fórmula f(t) = p1(t) + f ′′(th)2 (t−x)(t− (x+h)) y evalúa f ′(x) para

obtener de otra forma la fórmula

f ′(x) =f(x+ h)− f(x)

h− f ′′(th)

2h.

3.1.2. Métodos de interpolación. Error en diferenciación numérica.

Dada una función f : [a, b] → R y una lista de nodos {a ≤ x0 < x1 < ... < xn ≤ b}, sipn(x) es el polinomio interpolador de f de grado menor o igual a n, en los puntos {(xi, f(xi)},la fórmula del error en la aproximación de f por pn en el supuesto de que f es (n + 1)-vecesderivable en [a, b] es

f(x) = pn(x) +f (n+1)(tx)(n+ 1)!

n∏i=0

(x− xi). (3.4)

Vamos a comprobar que si f es (n + 2)-veces derivable con derivada f (n+2)(x) continua,entonces podemos derivar la expresión anterior.

Para hacerlo bien recordamos el Ejercicio 2.4, reescribimos (3.4) como

f(x) = pn(x) + f [x0, ..., xn, x]n∏i=0

(x− xi),

y observamos que al derivar el único elemento al que debemos prestar un poco de más atenciónes a la diferencia dividida:

Lema 3.1.1 Sea h(x) = f [x0, ..., xn, x], entonces h es derivable y para cada x ∈ [a, b] existesx ∈ [a, b] tal que

h′(x) =f (n+2)(sx)(n+ 2)!

Demostración: Basta recordar que

h(y)− h(x)(y − x)

=f [x0, ..., xn, y]− f [x0, ..., xn, x]

y − x

=f [y, x0, ..., xn]− f [x0, ..., xn, x]

y − x= f [y, x0, ..., xn, x] = f [x0, ..., xn, x, y]

Utilizando la forma de Newton del polinomio interpolador de Hermite pues f es derivable, sesigue que existe el límite del cociente incremental anterior y que

h′(x) = lımy→x

h(y)− h(x)(y − x)

= f [x0, ..., xn, x, x]

Usando la fórmula del error

h(y)− h(x)(y − x)

= f [x0, ..., xn, x, y] =f (n+2)(s(x,y))

(n+ 2)!.

Page 67: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 67

Ahora, tomando sx un punto de acumulación de s(x,x+1/n) en [a, b], y utilizando que f (n+2) es

continua completamos la prueba del lema obteniendo que h′(x) = f (n+2)(sx)(n+2)! . �

Con este lema se demuestra que

Teorema 3.1.2 Sea f : [a, b] → R, (n + 2)-veces derivable con derivada f (n+2)(x) continua yuna lista de nodos {a ≤ x0 < x1 < ... < xn ≤ b}. Si pn(x) es el polinomio interpolador de f degrado menor o igual a n, en los puntos {(xi, f(xi)} entonces para cada x ∈ [a, b] existen tx y sxen [a, b] tales que

f ′(x) = p′n(x) +f (n+1)(tx)(n+ 1)!

n∑i=0

∏j 6=i

(x− xj)

+f (n+2)(sx)(n+ 2)!

n∏i=0

(x− xi). (3.5)

En particular, si x es uno de los nodos, x = xi

f ′(xi) = p′n(xi) +f (n+1)(txi)

(n+ 1)!

n∑i=0

∏j 6=i

(xi − xj)

. (3.6)

Si Mn+1 = sup{|f (n+1)(t)| : t ∈ [a, b]} < +∞, tenemos la siguiente cota superior del error:

E(3.6)(xi) = |f ′(xi)− p′n(xi)| ≤Mn+1

(n+ 1)!

∏i 6=j|xi − xj |.

En el caso más particular de tener los nodos equi-espaciados: xi = a + (b−a)n i, considerando

el paso h = b−an se tiene

E(3.6)(xi) = |f ′(xi)− p′n(xi)| ≤hnMn+1

(n+ 1)!

∏i 6=j|i− j| ≤ hnMn+1

n+ 1.

Fórmulas de aproximación

En la siguiente relación tenéis las fórmulas de aproximación utilizando polinomios interpola-dores en puntos equi-espaciados que escribiremos centrandolas en x0 con paso h (xi = xi−1 +h),

(n=1) Polinomio interpolador en dos puntos {x0, x1}{f ′(x0) = f(x1)−f(x0)

h − f ′′(tx0 )2 h

f ′(x1) = f(x0)−f(x1)−h + f ′′(tx1 )

2 h

(n=2) Polinomio interpolador en tres puntos {x−1, x0, x1}f ′(x−1) = −3f(x−1)+4f(x0)−f(x1)

2h +f ′′′(tx−1 )

3 h2

f ′(x0) = f(x1)−f(x−1)2h − f ′′′(t0)

6 h2

f ′(x1) = f(x−1)−4f(x0)+3f(x1)2h + f ′′′(tx1 )

2 h2

Page 68: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

68 um.es / Cálculo Numérico en una variable, 2011-2012

(n=4) Polinomio interpolador en cinco puntos {x−2, x−1, x0, x1, x2}

f ′(x−2) = −25f(x−2+48f(x−1)−36f(x0)+16f(x1)−3f(x2)12h +

f (5)(tx−2 )

5 h4

f ′(x−1) = −3f(x2)−10f(x−1)+18f(x0)−6f(x1)+f(x2)12h − f (5)(tx−1 )

20 h4

f ′(x0) = f(x−2)−8f(x1)+8f(x1)−f(x2)12h + f (4)(t0)

30 h4

f ′(x1) = −f(x2)+6f(x−1)−18f(x0)+10f(x1)−f(x2)12h − f (5)(tx1 )

20 h4

f ′(x2) = 3f(x−2)−16f(x−1)+36f(x0)−48f(x1)+25f(x2)12h + f (5)(tx2 )

5 h4

Ejercicio 3.2 Utiliza la fórmula de interpolación con tres puntos que creas más convenientepara completar las siguientes tablas:

(a)

x f(x) f ′(x)1.1 9.0250131.2 11.023181.3 13.463741.4 16.44465

(b)

x f(x) f ′(x)2.9 −4.8278663.0 −4.2400583.1 −3.4969093.2 −2− 596792

Los datos de las tablas corresponden a evaluaciones de las funciones (a) f(x) = e2x y (b)f(x) = x cos(x) − x2 sen(x). Calcula los errores reales cometidos en las aproximaciones y com-páralos con las cotas del error que proporcionan las fórmulas.

Ejercicio 3.3 Sea f(x) = 3xex − cosx. Utiliza los siguientes datos para aproximar el valor def ′′(1.3) utilizando 3 datos con h = 0.1 o con h = 0.01,

x 1.20 1.29 1.30 1.31 1.40f(x) 11.59006 13.78176 14.04276 14.30741 16.86187

Compara tus aproximaciones con el valor real de f ′′(1.3) y con las cotas de los errores queproporcionan tus fórmulas.

3.1.3. Extrapolación de Richardson

En general, los métodos de extrapolación sirven para generar resultados muy precisos uti-lizando fórmulas de aproximación de bajo orden, es decir con errores del orden de hp con ppequeño (por ejemplo p = 1 o 2). Para poder aplicarlos basta con conocer el comportamientode los errores.

Ejemplo de cuál es la IDEA: Supongamos que la cantidad M se aproxima por N(h) deforma que el error del orden de h1 y es una función “analítica" en h:

M = N(h) ++∞∑i=1

Kihi, (3.7)

con K1 6= 0 y que para h suficientemente pequeño∑+∞

i=1 Kihi ≈ K1h.

Si en (3.7) sustituimos h por h2 tenemos

M = N(h

2) +

+∞∑i=1

Kihi

2i.

Page 69: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 69

Operando ahora con esta identidad y la de (3.7) tenemos

M =(

2N(h

2)−N(h)

)+

+∞∑i=2

Kihi

(22i− 1).

Así, N2(h) =(2N(h2 )−N(h)

)es una nueva aproximación de M con un error menor, del orden

de h2. Para valores pequeños de h la suma∑+∞

i=2 Kihi(

22i − 1

)≈ −K2h

2/2.

Por ejemplo, con este método de extrapolación podemos recuperar la fórmula de la derivadaen el punto central de entre cinco puntos para funciones “analíticas". En efecto, si

f(x+ h) =+∞∑k=0

f (k)(x)k!

hk,

para |h| pequeño, poniendo −h en el lugar de h, también tenemos

f(x− h) =+∞∑k=0

f (k)(x)k!

(−h)k.

Restando estas dos expresiones y poniendo ak = f (k)(x)k! tenemos

f ′(x) =f(x+ h)− f(x− h)

2h−

+∞∑j=1

a2j+1h2j .

Hacemos extrapolación en esta última fórmula poniendo h2 en el lugar de h

f ′(x) =f(x+ h

2 )− f(x− h2 )

h−

+∞∑j=1

a2j+1h2j

22j,

y eliminando el primer sumando de la serie que define el error multiplicando por cuatro en estaidentidad y restándole la anterior:

f ′(x) =f(x− h)− 8f(x− h

2 ) + 8f(x+ h2 )− f(x+ h)

6h− 1

3

+∞∑j=2

a2j+1h2j(

422j− 1). (3.8)

Para valores pequeños de h se tiene

f ′(x) ≈f(x− h)− 8f(x− h

2 ) + 8f(x+ h2 )− f(x+ h)

6h− f (5)(x)

30h4

24.

Ejercicio 3.4 Utiliza la fórmula (3.8) para aproximar el valor de f ′(x) en el punto x = 2 conh = 0.4 para f(x) = xex + ex. Calcula el error cometido calculando el valor real de f ′(2) ycomparalo con (h/2)4

Volved a extrapolar en la fórmula (3.8) para encontrar una fórmula de aproximación a f ′(x)utilizando 9 puntos. Comparad la validez de vuestra fórmula aproximando el valor de f ′(2) parala función anterior con el mismo valor de h, evaluando el error cometido y comparándolo con(h/4)6.

Ejercicio 3.5 Realizad el ejercicio 15 del apartado 4.2 del libro de Burden Faires [3] que proponeaproximar el número π a partir de las aproximaciones de la longitud de la circunferencia usandopolígonos inscritos y circunscritos que ya utilizaba Arquimedes allá por los años 200 a.C. yextrapolando en función del número de lados de los polígonos. (Entrega voluntaria, antesdel 8/12/2011).

Page 70: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

70 um.es / Cálculo Numérico en una variable, 2011-2012

3.2. Integración Numérica.

Uno de los problemas más antiguos en Matemáticas es el de calcular (numéricamente) áreas yvolúmenes de figuras limitadas por líneas o superficies curvas (integrales definidas). Las fórmulasde integración numérica suelen denominarse “ fórmulas de cuadratura", nomenclatura que puedeprovenir del problema de medir el área de un círculo interpretado como el problema de encontrarun cuadrado que tiene esa misma área (“ la cuadratura del círculo"). Nosotros vamos a proponeralgunos algoritmos para calcular aproximaciones de las integrales definidas, pero ¿porqué esnecesario aproximar los valores de integrales definidas?. Vamos a destacar tres casos:

El primer caso, es cuando no se puede describir la primitiva de una función utilizandooperaciones (algebraicas o composiciones) con funciones elementales. Ejemplos típicos sonlas primitivas de las funciones f(x) = e−x

2 o f(x) = senxx .

El segundo caso, es cuando se puede describir la primitiva de la función, pero su evaluaciónes más “costosa" y menos precisa que la aplicación de las fórmulas de cuadratura deaproximación.

El tercer caso, el más usual en la práctica, es cuando sólo se conocen los valores de f enuna lista de puntos. Por ejemplo, cuando los valores que se conocen de f(t) son las medidasque proporciona un experimento para una serie de valores de t. Este es también el casode cuando f es la solución de una ecuación diferencial o integral que se obtiene de formaaproximada.

3.3. Fórmulas de cuadratura de Interpolación

El objetivo es encontrar fórmulas de cuadratura del tipo∫ b

af(x) dx ≈

n∑i=0

cif(xi) (3.9)

que provienen de aproximar la función f por un polinomio en ciertos puntos {x0, x1, ..., xn}.Por ejemplo si Pn(x) =

∑ni=0 f(xi)Li(x) es el polinomio interpolador de Lagrange en los

puntos (xi, f(xi)), donde Li(x) son los factores de Lagrange Li(x) =∏j 6=i

(x−xj)(xi−xj) . Tenemos la

aproximación ∫ b

af(x) dx ≈

∫ b

aPn(x) dx =

n∑i=0

cif(xi)

donde ci =∫ ba Li(x) dx.

Obsérvese que la fórmula (3.14) es una igualdad para si f es un polinomio de grado menor oigual a n. El error cometido en estas aproximaciones viene determinado por el error al aproximarf por el polinomio interpolador:

Eint(f) =∣∣∣∣∫ b

af(x) dx−

∫ b

aPn(x)dx

∣∣∣∣ =∣∣∣∣∫ b

a(f(x)− Pn(x)) dx

∣∣∣∣ .Cuando los nodos están fijados a priori, se trata de determinar los coeficientes {c0, c1, ..., cn}

que son independientes de la función f . En el caso particular de que los puntos estén equies-paciados (xi = a + (b − a)i/n) las fórmulas (3.14) que se obtienen se denominan Fórmulas deNewton-Côtes.

Page 71: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 71

En otro contexto se determinan los puntos {x0, ..., xn} y se calculan los coeficientes {c0, c1, ..., cn}para que la fórmula (3.14) sea una igualdad para f en una clase de funciones. En estos casos alas fórmulas (3.14) se las llama Fórmulas de cuadratura de Gauss.

Si recordáis la interpolación polinómica a trozos que hacíamos con los splines. Algo parecido(más simple) se puede hacer cuando el intervalo de integración [a, b] se describe como la uniónde subintervalos de una partición a = t0 < t1 < ... < tm = b y se aproxima la integral∫ ba f(x)dx =

∑mj=1

∫ tjtj−1

f(x)dx utilizando fórmulas de cuadratura para aproximar cada una de

las integrales∫ tjtj−1

f(x)dx. Las fórmulas que se obtienen de esta forma se denominan fórmulasde cuadratura compuestas.

Para estimar los errores en las aproximaciones haremos uso del siguiente teorema del valormedio integral:

Teorema 3.3.1 (Teorema del valor medio integral) Sean f, g ∈ C[a, b] dos funciones con-tinuas tales que g(x) no cambia de signo en el intervalo [a, b]. Entonces existe t ∈ (a, b) talque ∫ b

af(x)g(x) dx = f(t)

∫ b

ag(x) dx.

La prueba se sigue del teorema del valor medio para las funciones continuas ya que laintegral

∫ ba f(x)g(x) dx es un valor intermedio entre los números max{f([a, b])}

∫ ba g(x)dx y

mın{f([a, b])}∫ ba g(x)dx, y en consecuencia, coincide con el valor f(t) de f en un punto in-

termedio entre donde se alcanzan el máximo y el mínimo de f en [a, b].

3.3.1. Reglas del trapecio

El caso más sencillo de interpolación es el caso n = 1 con x0 = a e y0 = b, donde el polinomiointerpolador P1(x) tiene por gráfica la recta que pasa por los puntos (a, f(a)) y (b, f(b)) y su

integral es área del trapecio que determina:∫ b

af(x)dx ≈ f(a) + f(b)

2(b− a).

En este caso la fórmula es exacta si f es un polinomio de grado 1 y en general si f es dosveces derivable la fórmula del error en la interpolación f(x)− P1(x) = f ′′(tx)

2 (x− a)(x− b) nosda: ∣∣∣∣∫ b

af(x)dx− f(a) + f(b)

2(b− a)

∣∣∣∣ =∣∣∣∣∫ b

a

f ′′(tx)2

(x− a)(x− b)∣∣∣∣

Observa, que la continuidad con respecto a x de f y de P1 nos dá la continuidad de f ′′(tx)con respecto a x y se cumplen las hipótesis del Teorema 3.3.1 que va a asegurar la existencia deun punto intermedio t ∈ [a, b] tal que∣∣∣∣∫ b

af(x)dx− f(a) + f(b)

2(b− a)

∣∣∣∣ =∣∣∣∣f ′′(t)2

∫ b

a(x− a)(x− b)

∣∣∣∣ =∣∣∣∣−f ′′(t)12

(b− a)3

∣∣∣∣

Page 72: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

72 um.es / Cálculo Numérico en una variable, 2011-2012

Cuando se considera el intervalo [a, b] dividido en n subintervalos correspondientes a la par-tición equiespaciada {xi = a + ih}ni=0 con h = (b−a)

n , y se aproxima la integral de f en cadasubintervalo por la regla del trapecio

∫ xi

xi−1f(x) dx ≈ (f(a + (i − 1)h) + f(a + ih))h2 se obtiene

la fórmula del trapecio compuesta:∫ b

af(x) dx ≈ Tn(f) =

(f(a) + 2

(n−1∑i=1

f(a+ ih)

)+ f(b)

)h

2

La fórmula del error para la regla del trapecio en cada subintervalo tenemos puntos interme-dios ti ∈ (xi−1, xi) tales que∫ b

af(x) dx− Tn(f) = −

n∑i=1

f ′′(ti)12

h3

= −n∑i=1

f ′′(ti)12

(b− a)3

n3

= −(b− a)12

∑ni=1 f

′′(ti)n

h2 = −(b− a)f ′′(t)12

h2,

donde en la última identidad hacemos uso de la propiedad del valor intermedio de f ′′ ya quePni=1 f

′′(ti)n es un valor comprendido entre max{f ′′(ti) : i = 0, ..n−1} y mın{f ′′(ti) : i = 0, ..n−1}.

3.3.2. Reglas de Simpson

La aproximación de funciones por polinomios interpoladores de grado 2, da lugar a las “reglasde Simpson"1. De forma más precisa supongamos que f : [a, b]→ R es una función con derivadacuarta continua, y P2(x) es el polinomio interpolador en los nodos x0 = a, x1 = m = (a+ b)/2y x2 = b, entonces ∫ b

af(x) dx ≈

∫ b

aP2(x) =

(b− a)6

(f(a) + 4f(m) + f(b)) (3.10)

La prueba de la validez de la fórmula (3.10) para polinomios de segundo grado se puede obteneral calcular los coeficientes en la fórmula de cuadratura

∫ ba p2(x)dx = c0p2(a)+c1p2(m)+c2p2(b):

c0 =∫ ba

(x−m)(x−b)(a−m)(a−b) dx = (b−a)

6 c1 =∫ ba

(x−a)(x−b)(m−a)(m−b) dx = 4(b−a)

6 c1 =∫ ba

(x−a)(x−m)(b−a)(b−m) dx = (b−a)

6.

1 La fórmula (3.10) está basada en la “Regla del Barril de Kepler" desarrollada por J. Kepler en 1612 paracalcular la capacidad de algunos barriles de vino atendiendo a su forma, mucho antes de la definición del conceptode integral (finales del siglo XVII).

Page 73: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 73

Ejercicio 3.6 Comprobad la validez de la fórmula de Simpson para polinomios de tercer gradoescribiéndolos como suma de potencias centradas en el punto medio p(x) = p(m) + c(x−m) +d(x−m)2 + e(x−m)3 y evaluando por un lado la integral de p y por otro la suma de la fórmulade Simpson.

La regla de Simpson es especial porque su precisión es mayor de lo que cabría esperar a partirdel conocimiento del valor de una función en sólo tres puntos. En el ejercicio anterior señalamossu exactitud para polinomios de grado tres, y en general tenemos la siguiente estimación:

Teorema 3.3.2 Sea f : [a, b] → R una función con derivada cuarta continua, entonces existes ∈ (a, b), tal que∫ b

af(x) dx =

(b− a)6

(f(a) + 4f(m) + f(b))− f (iv)(s)2880

(b− a)5,

donde m = (a+ b)/2 es el punto medio del intervalo (a, b).

Demostración:

Ideas que intervienen

Considerar la función

g(r) =∫ m+r

m−rf(x) dx− r

3(f(m− r) + 4f(m) + f(m+ r)) ,

que cumple g(0) = 0 y g(h) =∫ ba f(x) dx− (b−a)

6 (f(a) + 4f(m) + f(b)), donde h = (b−a)2 .

Si f tiene derivada cuarta continua, lo mismo le sucede a g(r). Al calcular las derivadassucesivas encontramos

g′(r) =23

(f(m− r) + 2f(m) + f(m− r))− r

3(f ′(m+ r)− f ′(m− r)

)(3.11)

g′′(r) =13(f ′(m+ r)− f ′(m− r)

)− r

3(f ′′(m+ r) + f ′′(m− r)

)(3.12)

g′′′(r) = −r3(f ′′′(m+ r)− f ′′′(m− r)

). (3.13)

Como g(0) = g′(0) = g′′(0) = g′′′(0) = 0, utilizar la regla de Barrow para evaluar g(h)

g(h) =∫ h

0g′(x)dx =

∫ h

0

(∫ x

0g′′(s)ds

)dx =

∫ h

0

(∫ x

0

(∫ s

0g′′′(r)dr

)ds

)dx

En la integral anterior para reescribir g′′′(r), el teorema del valor medio de la integral paracada r proporciona un punto tr ∈ (m− r,m+ r) tal que

f ′′′(m+ r)− f ′′′(m− r) =∫ m+r

m−rf (iv)(x)dx = f (iv)(tr)2r.

Aplicar el teorema del valor medio 3.3.1 ( r2 es continua y no cambia de signo, y f (iv)(tr)es continua) para obtener puntos intermedios cs ∈ (m− s,m+ s) tales que

g′′(s) =∫ s

0g′′′(r)dr = −2

3

∫ s

0f (iv)(tr)r2dr = −2

9f (iv)(cs)s3.

Page 74: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

74 um.es / Cálculo Numérico en una variable, 2011-2012

Repetir el argumento anterior ( s3 es continua y no cambia de signo y f (iv)(cs) es continua)para obtener puntos intermedios dx ∈ (m− x,m+ x) tales que

g′(x) =∫ x

0g′′(r)dr = −2

9

∫ s

0f (iv)(cs)s3dr = − 1

18f (iv)(dx)x4.

Una vez más, x4 es continua y no cambia de signo, f (iv)(dx) es continua, y el Teorema3.3.1 nos da la identidad buscada

g(h) =∫ h

0g′(x)dx = − 1

18

∫ h

0f (iv)(dx)x4dx = − 1

90f (iv)(s)h5 = − 1

2880f (iv)(s)(b− a)5

Otra fórmula que se utiliza con frecuencia es la “regla de Simpson 3/8" que consisteen considerar polinomios interpoladores de grado 3 en los cuatro puntos x0 = a, x1 = a + h,x2 = a+ 2h y x3 = b con h = (b− a)/3, entonces existe s ∈ (a, b) tal que:∫ b

af(x)dx =

(b− a)8

(f(x0) + 3f(x1) + 3f(x2) + f(x3))− 16480

f (iv)(s)(b− a)5,

Reglas de Simpson compuestas

Cuando se considera en el intervalo [a, b] los 2n + 1 nodos equiespacioados xj = a + j (b−a)2n

con j = 0, 1, ..., 2n, podemos aplicar la regla de Simpson en los n intervalos [x2k, x2(k+1)], k =0, 1, ..., (n−1) para tener la fórmula de aproximación conocida como regla de Simpson compuesta∫ b

af(x)dx ≈ S :=

h

3

(f(x0) + 4

n−1∑k=0

f(x2k+1) + 2n−1∑k=1

f(x2k) + f(x2n)

)

donde h = (b − a)/(2n). La propiedad del valor intermedio de la derivada cuarta y el Teorema3.3.2 proporcionan la fórmula del error para la aproximación con la regla de Simpson compuesta∫ b

af(x) dx− S = −(b− a)

180f (iv)(θ)h4 = −(b− a)5

2880n4f (iv)(θ)

donde θ ∈ (a, b).

Ejercicio 3.7 Describe la regla de Simpson compuesta 3/8, y la fórmula del error correspon-diente.

3.4. Fórmulas de cuadratura de Extrapolación

L. Euler (1730) y de forma independiente C. MacLaurin (1737) encontraron las fórmulas deexpansión en serie de potencias de h = (b − a)/n para el error en la aproximación con la regladel trapecio compuesta como suma de potencias pares de h:∫ b

af(x)dx−N0(h) = α2h

2 + α4h4 + ...+ αmh

2m + 0(h1(m+1)).

Page 75: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 75

supuesto que f es suficientemente derivable, donde N0(h) := Tnf = h2 (f(a)+f(b)+2

∑n−1i=1 f(a+

ih)).

La estimación de Euler-Maclaurin permite usar el método de extrapolación de Richardsonque ya usamos al aproximar las derivadas, para mejorar las aproximaciones a la integral queproporciona la regla del trapecio:

∫ b

af(x)dx− 4N0(h/2)−N0(h)

4− 1= β4h

4 + β6h6 + ...

La fórmula anterior indica que N1(h) = 4N0(h/2)−N0(h)4−1 es una mejor aproximación de la

integral que la que da la regla del trapecio N0(h).

Repitiendo el argumento,

∫ b

af(x)dx− 42N1(h/2)−N1(h)

42 − 1= γ6h

4 + γ8h8 + ...

Definiendo por inducción Nk(h) = 4kNk−1(h/2)−Nk−1(h)

4k−1encontramos aproximaciones de la

integral del tipo

∫ b

af(x)dx−Nk(h) = 0(h2(k+1).

El algoritmo para calcular las aproximaciones Nk(h) se puede describir mediante la elabora-ción de una tabla de la por filas de la forma

N0(h)N0(h/2) N1(h)N0(h/22) N1(h/2) N2(h)N0(h/23) N1(h/22) N2(h/2) N3(h)...

......

.... . .

Bajo buenas condiciones de derivabilidad de f , se espera que las columnas de la tabla anteriorconverjan a la integral. Este método de extrapolación fue sugerido por W. Romberg en 1955.Por eso se le denomina método/ algoritmo de extrapolación de Romberg. Este algoritmo y abrióla puerta a posteriores resultados sobre este tipo de fórmulas de cuadratura. Por ejemplo lafórmula para los valores de la segunda columna (primera columna extrapolada) coincide con lafórmula de Simpson compuesta. La de la tercera columna, conocida como fórmula de cuadraturade Milne o Boolean, también proviene de interpolar con polinomios de grado 4 y es exactapara polinomios de grado 5. Sin embargo, el resto de las columnas de la tabla de Romberg noprovienen de métodos de interpolación y proporcionan fórmulas de cuadratura diferentes.

Ejercicio 3.8 Comprueba la fórmula de cuadratura de Milne:

N2(b− a) =(b− a)

90

(f(a) + 32f(a+ b−a

4 ) + 12f(a+ b−a2 ) + 32f(a+ 3(b−a)

4 ) + 7f(b)).

Comprueba también que es exacta para el calculo de los polinomios de grado menor o igual a 5.

Page 76: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

76 um.es / Cálculo Numérico en una variable, 2011-2012

Ejercicio 3.9 Programa el método de Romberg empezando con la regla del trapecio para cons-truir k filas de la tabla de Romberg (k ≥ 10) correspondientes a aproximar las integrales

I1 =∫ 2

1

1xdx, I2 =

∫ 1

0

√xdx.

Encuentra el error en cada aproximación.

Determina numéricamente el orden de aproximación de los valores de cada columna de la tabla.

3.5. Fórmulas de cuadratura de Gauss

Recordad que nuestro objetivo inicial era encontrar fórmulas de cuadratura del tipo

∫ b

af(x) dx ≈

n−1∑i=0

cif(xi) (3.14)

que provienen de aproximar la función f por un polinomio en ciertos puntos {x0, x1, ..., xn−1}.K.F. Gauss (1777-1865) observó esta fórmula y se planteó el problema de encontrar los coefi-cientes (ci)n−1

i=0 y los nodos (xi)n−1i=0 para que la fórmula aproximara la integral con la “mayor"

precisión posible.

Una forma de modelizar esta cuestión es la siguiente: Fijemos el intervalo [a, b] = [−1,+1]

Método de Gauss

Se considera el problema de buscar las 2n incógnitas (ci)n−1i=0 y (xi)n−1

i=0 que hagan exacta lafórmula de cuadratura para todos los polinomios f(x) = p(x) de grado a lo más 2n− 1, es decir

∫ +1

−1p(x) dx =

n−1∑i=0

cip(xi) (3.15)

para todo polinomio p(x) de grado menor o igual a 2n− 1.

Si tomamos pn−1(x) el polinomio interpolador de grado menor o igual a n− 1 que interpolalos puntos (xi, p(xi))n−1

i=0 , el teorema fundamental del álgebra nos dice que

p(x) = pn−1(x) + (x− x0)...(x− xn−1)q(x),

donde q(x) es un polinomio de grado menor o igual a n− 1.

Como la fórmula de cuadratura (3.15) debe ser válida tanto para p(x) como para pn−1(x),debe ocurrir que ∫ +1

−1(x− x0)...(x− xn−1)q(x) = 0.

Además, si la formula de cuadratura ha de ser válida para todo polinomio p de grado menor oigual que 2n− 1, la igualdad anterior debe de cumplirse para cualquier polinomio q(x) de gradomenor o igual a n− 1.

Page 77: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 77

Condición de Ortogonalidad

La geometría de los espacios con producto escalar viene a darnos la solución al problema. Enefecto, en Pn que es el espacio vectorial de los polinomios de grado menor o igual a n ( tienedimensión finita n+1), el producto

< g, q >=∫ +1

−1g(x)q(x)dx;

es un producto escalar que define una norma (euclidea) ‖g‖2 =(∫ +1−1 g(x)2dx

)1/2, y nuestro

problema lo podemos leer en términos de “encontrar un polinomio mónico Ln+1(x) = (x −x0)...(x−xn) que sea perpendicular (< Ln+1, q(x) >= 0) a todos los polinomios de grado menoro igual a n− 1".

La suerte suele estar del lado de los trabajadores, y resulta que si se construye la base de poli-nomios (mónicos) ortogonales correspondientes al método de ortogonalización de Gram-Schmidtdel base {1, x, x2, ..., xn se obtiene la sucesión de los polinomios de Legendre 1, L1(x), ..., Ln(x).El polinomio de Legendre de grado n, Ln(x), es mónico, tiene todas sus raíces reales, (xi)n−1

i=0 ,contenidas en [−1,+1], es ortogonal a todos los polinomios de grado menor o igual a n− 1, y sitomamos los valores de las integrales de los factores de Lagrange correspondientes a estas raíces:

ci =∫ +1

−1

∏j 6=i

(x− xj)(xi − xj)

dx,

tenemos la solución al problema planteado:

Teorema 3.5.1 Si (xi)n−1i=0 son las raíces del polinomio de Lagrange de grado n en [−1,+1],

Ln(x), y

ci =∫ +1

−1

∏j 6=i

(x− xj)(xi − xj)

dx,

Entonces para la fórmula de cuadratura∫ +1

−1f(x) dx =

n−1∑i=0

cif(xi) +Rn(f) (3.16)

es una igualdad para todos los polinomios f(x) de grado menor o igual a 2n− 1.Además, en general si f admite derivadas de orden 2n, se tiene la acotación del tipo

Rn(f) =22n+1(n!)4

[(2n)!]3(2n+ 1)f (2n)(t)

para un punto intermedio t ∈ (−1,+1).

La prueba la podéis encontrar en [6, cap7,sec 3].El método de Gauss, consiste en disponer de tablas con los valores de los ceros de los poli-

nomios de Legendre y los coeficientes de las fórmulas de cuadratura para distintos valores de npara hacer las aproximaciones de la integral

En http://en.wikipedia.org/wiki/Gaussian quadrature tenéis tablas con esos datos para n =1, 2, ..., 5.

Page 78: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

78 um.es / Cálculo Numérico en una variable, 2011-2012

Notas:

1) Para hacer integrales sobre otros intervalos basta con hacer un cambio de variable y llevarel intervalo de integración al intervalo (0, 1).

Ejercicio 3.10 Comprueba que el cambio de variable u(x) = a + 1+x2 (b − a) transforma el

intervalo [−1,+1] en el intervalo [a, b] y deduce la fórmula de cuadratura∫ b

af(y) dy =

b− a2

n−1∑i=0

cif(y(xi)) +Rn(f), (3.17)

donde xi son las raíces del polinomio de Legendre de grado n en [−1,+1], ci son los pesoscorrespondientes y el error en la aproximación tiene una expresión de la forma:

Rn(f) =2(n!)4

[(2n)!]3(2n+ 1)f (2n)(t)(b− a)2n.

Describe la regla de integración compuesta correspondiente a dividir el intervalo de integra-ción [a, b] en N subintervalos de longitud h = b−a

N y a la aproximación de la integral en cadasubintervalo usando la fórmula de cuadratura de Gauss con (n=5) puntos y comprueba que laaproximación de del orden de h9.

2) En [6], [3] o en [8] podéis ver que esta misma técnica se puede usar para obtener fórmulasde cuadratura para integrales con pesos w(x) ≥ 0,

∫ ba f(x)w(x)dx ≈

∑i cif(xi), usando otras

familias de polinomios ortogonales.3) En la web de la “Digital Library of Mathematical Functions" http://dlmf.nist.gov/3.5

podéis encontrar un amplio resumen de distintas fórmulas de cuadratura con relación de nodospara distintos pesos y estimaciones del orden de aproximación.

3.6. Aproximación de integrales impropias

Existen métodos de cuadratura de Gauss usando polinomios ortogonales en [0,+∞) (Polino-mios de Lagerre) (ver por ejemplo [6].

Otra posibilidad es acotar las colas de la integral y pasa a hacer la aproximación de la integralen un intervalo:

Ejercicio 3.11 Aproximar numéricamente el valor de la integral∫ +∞

0e−x

2dx.

3.7. Aproximación de integrales múltiples

A la hora de aproximar integrales múltiples definidas en rectángulos n-dimensionales, se puederecordar el teorema de Fubini e ir aproximando cada integral con una fórmula de cuadratura.De esta forma se obtienen fórmulas de cubatura para integrales dobles (ver por ejemplo [6]).

Los métodos más utilizados para aproximar integrales múltiples son los métodos de Monte-Carlo (por lo del casino), que consisten en aplicar la “ Ley de los Grandes Numeros"

Page 79: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Diferenciación e Integración Numéricas. um.es / Grado en Matemáticas 79

Teorema 3.7.1 Si X(w) es una variable aleatoria y Xn(w) es una sucesión de variables inde-pendientes que tienen la misma distribución que X, entonces la sucesión de medias aritméticas1n

∑nk=1Xn(w) converge en casi todo punto w al valor medio E(X)

En términos de integrales y de computación tenemos:

al iterar la variable x = random() se obtiene una sucesión pseudo-aleatoria de números en[0,1], con distribucion uniforme (equi-distribuida).

con el cambio de variable x = a + random() ∗ (b − a) se pueden modelizar sucesionesequidistribuidas en [a,b].

Las funciones medibles f : [a, b]→ R se pueden identificar con variables aleatorias definidasen [a, b] considerando en [a, b] la probabilidad que da la longitud normalizada al dividirpor (b− a), y el valor esperado E(f) = 1

b−a∫ ba f(x)dx.

El método de Monte-Carlo para aproximar la integral anterior consiste en aplicar la LGNconstruyendo las sucesiones, Xn = f(a + random()(b − a)) e Yn = 1

n

∑nk=1Xn, con la

esperanza (LGN) de que los valores de (b − a) ∗ Yn vayan aproximando cada vez mejor ala integral

∫ ba f(x)dx.

Para integrales múltiples sobre rectángulos n-dimensionales se pueden conseguir variablesequidistribuidas tomando en cada intervalo de los lados del rectángulo el valor que propor-ciona random(). En casi todos los compiladores se pueden utilizar copias independientes(casi) de random() para usar en las distintas variables. (Ver por ejemplo en el API de Javalos objetos de la clase Random)

3.8. Actividades complementarias del capítulo

Los documentos se pueden descargar de la zona de recursos en los contenidos de la asignaturadel AULA VIRTUAL.

Métodos de derivación aproximada y ejemplos para incorporar a vuestro proyecto Java.

Hoja de problemas no3

Practica no5.

Page 80: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

80 um.es / Cálculo Numérico en una variable, 2011-2012

Page 81: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Capítulo 4 Ecuaciones no linealesEcuaciones no lineales

'

&

$

%

'

&

$

%

Interrogantes centrales del capítulo

• Aproximar soluciones de ecuaciones no lineales f(x) == 0. con métodoselementales:

Método de la bisección.

Métodos de Regula-Falsi

• Aproximar soluciones de ecuaciones no lineales f(x) == 0. con métodosde Newton, la secante y Muller.

• Conocer y analizar las iteraciones de punto fijo.

• Analizar la convergencia y el error en los métodos iterativos.

• Acelerar la convergencia de una sucesión.

• Aproximar todas las raíces reales y complejas de un polinomio. Métodosde Laguerre y de separación de Sturm.

'

&

$

%

'

&

$

%

Destrezas a adquirir en el capítulo

• Ser capaz de describir algoritmos sencillos y, en particular, los algoritmoscorrespondientes a los distintos métodos del capítulo.

• Conocer el enunciado y la demostración del teorema del punto fijo de Ba-nach así como condiciones suficientes que garanticen sus hipótesis.

• Aplicar los programas construidos de forma efectiva en la localización yaproximación numérica de raíces de algunas ecuaciones no lineales.

• Ser capaz de describir los algoritmos correspondientes a los distintos mé-todos de aproximación de ceros y factorización de polinomios

• Analizar la convergencia de las aproximaciones proporcionadas por cadamétodo y la conveniencia de utilizar uno u otro método numérico.

• Aplicar los programas construidos de forma efectiva en la búsqueda detodas las raíces reales y complejas de un polinomio concreto.

Page 82: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

82 um.es / Cálculo Numérico en una variable, 2011-2012

En este capítulo prestaremos especial atención a los algoritmos iterativos y al “orden de suconvergencia”. Trabajaremos con algunos algoritmos de resolución de ecuaciones, estudiaremosel teorema del punto fijo de Banach y el algoritmo de Aitken para acelerar la convergencia desucesiones. Un caso particular de ecuaciones para las que es muy importante y útil la deter-minación de sus raíces es el de las ecuaciones polinómicas, ampliaremos la lista de métodos deresolución de ecuaciones no lineales desarrollados incluyendo otros obtenidos al estudiar algunaspropiedades específicas de los polinomios.

Desarrollo de los contenidos fundamentales

Algoritmos iterativos. Métodos iterativos elementales de resolución de ecuaciones no linea-les:

• Método de la bisección.

• Método de regula-falsi.

Métodos de Taylor y de interpolación.

• Método de Newton.

• Método de la secante.

• Método de Muller.

Iteración de punto fijo. Atractores y repulsores

Orden de convergencia de una sucesión y constante asintótica del error.

Aceleración de la convergencia: algoritmos de Aitken y Steffensen.

Métodos para polinomios

• Evaluación simultanea de un polinomio y sus derivadas.

• Localización de ceros

• Método de Newton

• Método de Laguerre

• Separación de raíces reales, sucesiones de Sturm.

• Resolución de polinomios.

Temporalización: 8HTe + 2 HPb + 4 HLab

4.1. Métodos elementales de resolución de ecuaciones no lineales

Vamos a analizar unos primeros algoritmos sencillos para la búsqueda de soluciones de ecua-ciones de la forma

f(x) == 0,

donde f : (a, b)→ R es una función real de variable real

Page 83: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 83

4.1.1. El Método de la Bisección

Teorema 4.1.1 (Bolzano) Sea f : [a, b]→ R una función continua tal que

f(a) ∗ f(b) < 0.

Entonces existe x ∈ [a, b] tal que f(x) = 0.

Recuerdas la demostración constructiva representada en el gráfico:

0.25 0.5 0.75 1 1.25 1.5

-1.5

-1

-0.5

0.5

1

0.25 0.5 0.75 1 1.25 1.5

-1.5

-1

-0.5

0.5

1

0.25 0.5 0.75 1 1.25 1.5

-1.5

-1

-0.5

0.5

1

0.25 0.5 0.75 1 1.25 1.5

-1.5

-1

-0.5

0.5

1

0.25 0.5 0.75 1 1.25 1.5

-1.5

-1

-0.5

0.5

1

Page 84: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

84 um.es / Cálculo Numérico en una variable, 2011-2012

¡Escribe la demostración!En si misma esa prueba es el algoritmo de la bisección:

Algoritmo 4.1 Método de la bisecciónDatos de entrada:Funcion f ; a, b ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = 0) o mensaje de errorVariables:aa, bb, h, c, u, v, w ∈ R // auxiliares para operar sin cambiar los números.

Fujo del programa:aa = a; bb = b; u = f(aa); v = f(bb);if(u ∗ v > 0){ Parada: Error- No hay cambio de signo}for(k=1;k<=nmaxiter;k=k+1){h = 0.5 ∗ (bb− aa); c = aa+ h; w = f(c);if((|h| < precision) o (|w| < precision)){ Parada: Solución en x = c }if(w ∗ u > 0){ aa = c; u = w; }

else{ bb = c; v = w;}}

Parada: Error- No hay convergencia

las sucesiones ak = aa y bk == bb (en la etapa k) son monótonas acotadas, encierranla sucesión ck = c (en la etapa k), y convergen hacia una solución x de la ecuaciónf(x) == 0.

El algoritmo de la bisección proporciona en cada etapa k una aproximación ck = c ala raíz x de manera que

|x− ck| ≤b− a2k+1

.

En el algoritmo de la bisección tenemos asegurada la convergencia del método aunque lavelocidad de las iteradas es constante: en cada etapa se reduce el error en la aproximación a lamitad.

Ejemplo 4.1.2 En la tabla que sigue se pueden observar valores de las 37 primeras iteracionesdel método de la bisección aplicado a la función f(x) = ex − x2 − x − 1 en el intervalo [1,2],tomando precision = 10−10.

k= 1 aa= 1.0 bb= 2.0 u=-0.28171817154095447 v=0.3890560989306504k= 2 aa= 1.5 bb= 2.0 u=-0.2683109296619355 v=0.3890560989306504k= 3 aa= 1.75 bb= 2.0 u=-0.05789732399427017 v=0.3890560989306504k= 4 aa= 1.75 bb= 1.875 u=-0.05789732399427017 v=0.13019412033011246k= 5 aa= 1.75 bb= 1.8125 u=-0.05789732399427017 v=0.02808641188198635

k= 11 aa= 1.79296875 bb= 1.7939453125 u=-4.456149959981559E-4 v=9.443070728494263E-4k= 12 aa= 1.79296875 bb= 1.79345703125 u=-4.456149959981559E-4 v=2.4886798603152016E-4k= 13 aa= 1.793212890625 bb= 1.79345703125 u=-9.849297435415849E-5 v=2.4886798603152016E-4k= 14 aa= 1.793212890625 bb= 1.7933349609375 u=-9.849297435415849E-5 v=7.515763303089784E-5k= 15 aa= 1.79327392578125 bb= 1.7933349609375 u=-1.1675138180677891E-5 v=7.515763303089784E-5

Page 85: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 85

k= 21 aa= 1.7932815551757812 bb= 1.7932825088500977 u=-8.21858566979472E-7 v=5.348177927189113E-7k= 22 aa= 1.7932820320129395 bb= 1.7932825088500977 u=-1.4352084320989889E-7 v=5.348177927189113E-7k= 23 aa= 1.7932820320129395 bb= 1.7932822704315186 u=-1.4352084320989889E-7 v=1.9564836062357926E-7k= 24 aa= 1.7932820320129395 bb= 1.793282151222229 u=-1.4352084320989889E-7 v=2.606373072921997E-8k= 25 aa= 1.7932820916175842 bb= 1.793282151222229 u=-5.8728563345766815E-8 v=2.606373072921997E-8

k= 32 aa= 1.7932821325957775 bb= 1.7932821330614388 u=-4.338631676148452E-10 v=2.2857626902350603E-10k= 33 aa= 1.7932821328286082 bb= 1.7932821330614388 u=-1.0264278316185482E-10 v=2.2857626902350603E-10k= 34 aa= 1.7932821328286082 bb= 1.7932821329450235 u=-1.0264278316185482E-10 v=6.296652088622068E-11k= 35 aa= 1.7932821328868158 bb= 1.7932821329450235 u=-1.9838353182421997E-11 v=6.296652088622068E-11k= 36 aa= 1.7932821328868158 bb= 1.7932821329159196 u=-1.9838353182421997E-11 v=2.156363976268949E-11

El método de encuentra c = 1.7932821329013677, f(c) = 8.633094239485217E − 13, comoraíz, en 36 etapas (pasos).

En el apartado siguiente vamos a ver un intento de aceleración de esta convergencia: losmétodos de la “regla falsa”

4.1.2. El método de la “Regula Falsi”

El método de la «Regula Falsi » (regla falsa), es una modificación del método de la biseccióncon la esperanza de obtener una aproximación de la raíz de forma más rápida.

Consiste en utilizar el punto de corte c de la secante que une los extremos de la curva y = f(x)en a y b en vez del punto medio, para dividir el intervalo y después iterar el proceso quedándonoscon los subintervalos en los que f cambie de signo.

En los siguientes gráficos podemos observar distintas etapas de este método:

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

Para describir el algoritmo, debemos recordar que la ecuación de la recta que pasa por lospuntos (a, u) y (b, v) es

y = u+v − ub− a

(x− a).

Page 86: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

86 um.es / Cálculo Numérico en una variable, 2011-2012

Si ahora hacemos y = 0 en esa expresión para determinar la abscisa de corte de la recta con eleje de abscisas se tiene

x = a− u b− av − u

.

Modificando el algoritmo del método de la bisección en la definición de c tomando el cortede la secante a la curva y = f(x) en los extremos de los intervalos con el eje de abscisas en vezde considerar el centro del intervalo, obtenemos el siguiente algoritmo:

(Enmarcada sobre fondo gris, está la modificación efectuada)

Algoritmo 4.2 Algoritmo de la “regula falsi”Datos de entrada:Funcion f ; a, b ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = 0) o mensaje de errorVariables:aa, bb, h, c, u, v, w ∈ R // auxiliares para operar sin cambiar los números.

Fujo del programa:aa = a; bb = b; u = f(aa); v = f(bb);if(u ∗ v > 0){ Parada: Error- No hay cambio de signo}for(k=1;k<=nmaxiter;k=k+1){

h = −u ∗ (bb− aa)/(v − u); c = aa+ h; w = f(c);

if((|h| < precision) o (|w| < precision)){ Parada: Solución en x = c }if(w ∗ u > 0){ aa = c; u = w; }

else{ bb = c; v = w;}}

Parada: Error- No hay convergencia

Ejemplo 4.1.3 Retomando el ejemplo 4.1.2, f(x) = ex − x2 − x − 1 en [1,2], y aplicando elmétodo de la regula falsi con la misma precision = 10−10, tenemos

k= 1 aa= 1.0 bb= 2.0 u=-0.28171817154095447 v=0.3890560989306504k= 2 aa= 1.4199895314155169 bb= 2.0 u=-0.29928267006193354 v=0.3890560989306504k= 3 aa= 1.6721721622963694 bb= 2.0 u=-0.14461267362264119 v=0.3890560989306504k= 4 aa= 1.7610064028149435 bb= 2.0 u=-0.043859961270654724 v=0.3890560989306504k= 5 aa= 1.7852195260508816 bb= 2.0 u=-0.01133990799920781 v=0.3890560989306504

k= 11 aa= 1.7932804127143416 bb= 2.0 u=-2.447094586077725E-6 v=0.3890560989306504k= 12 aa= 1.7932817129360898 bb= 2.0 u=-5.974324321922353E-7 v=0.3890560989306504k= 13 aa= 1.793282030371081 bb= 2.0 u=-1.4585651553211676E-7 v=0.3890560989306504k= 14 aa= 1.7932821078692915 bb= 2.0 u=-3.5609233561828546E-8 v=0.3890560989306504k= 15 aa= 1.7932821267896093 bb= 2.0 u=-8.693593622766116E-9 v=0.3890560989306504k= 16 aa= 1.793282131408792 bb= 2.0 u=-2.1224435542421816E-9 v=0.3890560989306504k= 17 aa= 1.7932821325365136 bb= 2.0 u=-5.181701734358057E-10 v=0.3890560989306504k= 18 aa= 1.7932821328118338 bb= 2.0 u=-1.26505694808543E-10 v=0.3890560989306504k= 19 aa= 1.7932821328790503 bb= 2.0 u=-3.088485023283738E-11 v=0.3890560989306504

Se obtiene la misma solución que con el método de la bisección pero ahora sólo en 19 pasos.

A la vista de este ejemplo podríamos pensar que el algoritmo de la regula falsi es más rápidoque el método de la bisección. En general, ese no es el caso

Page 87: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 87

Ejemplo 4.1.4 Si consideramos la función g(x) = x3 − x − 1 que también cambia de signoen [1,2], y tomamos la precision = 10−10, el método de la bisección nos da la raíz c =1.324717957242683 con g(c) = −8.79785133633959E − 12 en 37 etapas.

Si aplicamos la regula falsi a esta misma función, en el mismo intervalo, y con la mismaprecisión, obtenemos la misma raíz en 31 etapas, que sólo es unas cuantas iteraciones menos queel de la bisección.

Ejercicio 4.1 Trabajando sobre la siguiente gráfica. Dad una estimación del número de etapasque necesitan los métodos de la bisección y de la regula falsi para alcanzar buenas estimacionesde la raíz. Observad que en este caso el método de la bisección parece ser bastante más rápidoque el de la regula falsi.

Observando la gráfica del ejercicio podemos conjeturar (sin equivocarnos demasiado) que elralentizamiento de la regula falsi se debe a la presencia de regiones donde la curva tiene pocapendiente donde la secante aproxima mal a la curva, para pasar al final a una región con muchapendiente donde las secantes aproximan bien a la curva.

Para evadir esta situación se puede utilizar el siguiente “truco” que consiste en reducir lapendiente de las secante en las etapas en las que se sea consciente de que podemos estar ralen-tizandonos.

La modificación esencialmente consiste en guardar memoria del signo de f en el punto decorte de la secante con el eje de abscisas y en caso de que el signo se repita en la siguienteiteración, se inclinará más la secante buscando una mejor aproximación del cero de f .

En la primera etapa, se utiliza f(a) para comparar con el signo de f(c) en el punto de corte,c, de la secante con el eje de abscisas.

Gráficamente hacemos lo siguiente:

Page 88: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

88 um.es / Cálculo Numérico en una variable, 2011-2012

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

1.2 1.4 1.6 1.8

-0.25

0.25

0.5

0.75

1

1.25

(Enmarcadas sobre fondo gris, están la modificaciones efectuadas sobre el método de la regulafalsi)

Algoritmo 4.3 ”Regula falsi” modificadoDatos de entrada:Funcion f ; a, b ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = 0) o mensaje de errorVariables:aa, bb, h, c, u, v, w, w1 ∈ R // auxiliares para operar sin cambiar los números.

Fujo del programa:aa = a; bb = b; u = f(aa); v = f(bb);if(u ∗ v > 0){ Parada: Error- No hay cambio de signo}w1 = ufor(k=1;k<=nmaxiter;k=k+1){h = −u ∗ (bb− aa)/(v − u); c = aa+ h; w = f(c);if((|h| < precision) o (|w| < precision)){ Parada: Solución en x = c }if(w ∗ u > 0){if((w ∗ w1 > 0)){ v = 0.5 ∗ v}

aa = c; u = w; w1 = w }else{

if((w ∗ w1 > 0)){ u = 0.5 ∗ u}

bb = c; v = w; w1 = w }}

Parada: Error- No hay convergencia

Page 89: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 89

Ejemplo 4.1.5 Volviendo a retomar los ejemplos anteriores, para f(x) = ex − x2 − x − 1en [1,2], el método de la regula falsi modificado proporciona la raíz c = 1.7932821329006305f(c) = −1.8562928971732617E − 13 en sólo 8 etapas.

Para la función g(x) = x3 − x − 1 que también cambia de signo en [1,2], la modificación dela regula falsi proporciona la raíz c = 1.324717957244746 f(c) = 2.220446049250313E− 16 en 7etapas.

Con el “truco” propuesto, podemos pensar en que vamos a tener mejor convergencia.

Ejercicio 4.2 Utilizando el método de la bisección encuentra una aproximación de 3√

2007 contres dígitos de precisión.

Da una estimación del número de pasos que se requieren para aproximar la raíz con 14 dígitosde precisión utilizando el método de la bisección.

Ejercicio 4.3 Las siguientes funciones cambian de signo en el intervalo [0, 1]:f(x) = 1

3x−1 ; g(x) = cos 10x;h(x) =

{2 si x≥0.3−1 si x<0.3

¿Qué puntos son localizados por el método de la bisección?.

Ejercicio 4.4 Utilizando los métodos (1) de la bisección, (2) Regula Falsi Modificada y (3)Regula Falsi Modificada, aproxima las menores raíces positivas de las ecuaciones

(i) tan(x)− tanh(x) == 0

(ii) tan(x)− x− 4x3 == 0

(iii) (1 + x2) tan(x)− x(1− x2) == 0.

Compara las aproximaciones, el número de iteraciones empleado y la precisión obtenida.

Referencias para la sección

Método de la Bisección: Libro de Burden-Faires [3], sección 2.1, algoritmo 2.1.

Método de la regula falsi: Libro de Burden-Faires [3], sección 2.3, algoritmo 2.5.

4.2. Métodos de Taylor y de interpolación

Una variación a los métodos anteriores aparece cuando utilizamos aproximaciones de la fun-ción f(x) por polinomios de grado reducido p(x) de manera que la ecuación polinómica p(x) == 0sea fácil de resolver, siguiendo la siguiente idea

Partimos de una o de varias aproximaciones {xi} del cero x de f (f(x) = 0),

tomamos p(x) un polinomio que aproxime a f en términos de los puntos {xi}, de maneraque la ecuación

p(x) == 0

sea fácil de resolver (p de grado 1 o 2).

Page 90: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

90 um.es / Cálculo Numérico en una variable, 2011-2012

A la vista de los ceros de p tomamos el cero xf que este más proximo a la aproximación(o aproximaciones) inicial xi como una nueva aproximación de x.

Se va repitiendo el proceso cambiando las aproximaciones iniciales por las que se vanobteniendo con la esperanza de ir obteniendo mejores aproximaciones cada vez.

Para elegir los polinomios podemos fijarnos en los polinomios de Taylor o en polinomios deinterpolación. En los apartados siguientes utilizaremos en primer lugar polinomios de Taylorde grado 1 (rectas tangentes) que dan lugar al método de Newton. Utilizaremos polinomiosde interpolación de grado 1 con dos aproximaciones a x como nodos (rectas secantes) llegandoal método de la secante. Un caso más será el método de Muller en el que utilizaremos tresaproximaciones como nodos y un polinomio de grado 2 como aproximación.

Acabaremos la sección proponiendo como métodos alternativos, los que se conocen comométodos inversos porque tratan de resolver la ecuación f(x) == 0 buscando evaluar la funcióninversa x := f−1(0). En este caso, en función de una o varias aproximaciones iniciales xi de x,se aproxima f−1 por un polinomio de Taylor o de interpolación q y se toma xf := q(0) comouna nueva aproximación. En estos métodos se sustituye la complejidad de resolver una ecuaciónpolinómica por el cálculo de derivadas de f−1 en el caso de Taylor, mientras que en el caso delos polinomios de interpolación el coste

rectas tangentes a la curva y = f(x) para aproximarnos a la raíz. Este es el conocido comométodo de Newton.

4.2.1. Método de Newton

Consiste en iterar el proceso siguiente:

Dada una aproximación xi de la raíz de f , consideramos g(x) = f(xi) + f ′(xi)(x − xi)la ecuación de la tangente a y = f(x) en xi.

resolvemos la ecuación lineal g(x) = = 0, tomando h = − f(xi)f ′(xi) y xf = xi+ h.

la solución xf de la ecuación aproximada, será la nueva aproximación de la raíz de laecuación inicial.

Gráficamente se puede representar como sigue:

1.25 1.5 1.75 2.25 2.5 2.75 3

2

4

6

8

10

1.25 1.5 1.75 2.25 2.5 2.75 3

2

4

6

8

10

Page 91: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 91

1.25 1.5 1.75 2.25 2.5 2.75 3

2

4

6

8

10

1.25 1.5 1.75 2.25 2.5 2.75 3

2

4

6

8

10

El algoritmo es muy simple:

Algoritmo 4.4 Método de NewtonDatos de entrada:Función f ; x0 ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = 0) o mensaje de errorVariables:xi = x0 // la aproximación inicial.fi; dfi;// Para almacenar el valor de f y el de f′ en la aproximación.hi = 1 + precision; // Para almacenar el incremento de xi, con un valor inicial grande.

Fujo del programa:

for(k=1;k<=nmaxiter;k++){fi = f(xi);if((|fi| < precision) o (|hi| < precision)){ Parada: Raíz en xi }dfi = f ′(xi);if(dfi==0){

Parada:Error: derivada nula }hi = −fi/dfi;xi = xi+ hi; // volvemos a iterar Newton con este nuevo valor de xi}

Parada: Error: No hay convergencia en nmaxiter iteraciones

En secciones posteriores analizaremos con detalle la convergencia de este método. Por elmomento, vamos a ver el comportamiento del algoritmo en algunos ejemplos y vamos a presentarun resultado de convergencia global.

Ejemplo 4.2.1 Volviendo a retomar los ejemplos anteriores, para f(x) = ex − x2 − x − 1 en[1,2], el método de Newton empezando en xi = 1 como aproximación inicial, proporciona laraíz c = 0 f(c) = 0 en 2 etapas. Poniendo xi = 2, encuentra la raíz c = 1.7932821329007607f(c) = 0.0 en 6 pasos, dos menos que con el método de la regula falsi modificado.

Con la función g(x) = x3 − x − 1 y con xi = 1 como aproximación inicial, el método deNewton proporciona la raíz c = 1.3247179572447898 f(c) = 1.865174681370263E − 13 en 6etapas. En este caso el método de Newton es el más eficaz de los cuatro estudiados.

Page 92: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

92 um.es / Cálculo Numérico en una variable, 2011-2012

Los distintos métodos introducidos tienen diferente comportamiento según las ecua-ciones propuestas en los ejemplos.

En principio, debemos admitir la coexistencia de los diferentes métodos de resolu-ción de ecuaciones estudiados, habida cuenta de que ninguno de los cuatro métodosestudiados se puede calificar de “mejor” método que los otros.

El método de Newton es un ejemplo de una iteración funcional, tal y como señalaremos enla siguiente sección. Para estas iteraciones vamos a tener resultados de convergencia local quenos dirán que el método de Newton en general converge más rápido que los otrossupuesto que partimos de una “buena aproximación” a la raíz x de f y que f ′(x) 6= 0.

En los siguientes ejemplos gráficos podemos observar que las iteradas del método de Newtonpueden no ser convergentes e incluso pueden dar lugar a sucesiones periódicas (sucesiones en lasque a partir de un momento, todos los términos se repiten de forma periódica).

Ejemplo 4.2.2 Puntos periódicos

-1 -0.5 0.5 1

-10

-5

5

10

15

-1 -0.5 0.5 1

-10

-5

5

10

15

-1 -0.5 0.5 1

-10

-5

5

10

15

Cuando la derivada de f se anula, aparecen problemas:

Ejemplo 4.2.3 Sucesión divergente (asintotas)

-8 -6 -4 -2

-50

-40

-30

-20

-10

10

-8 -6 -4 -2

-50

-40

-30

-20

-10

10

Page 93: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 93

Ejemplo 4.2.4 Extremos relativos (empezamos cerca del mínimo)

-1 -0.5 0.5 1 1.5 2 2.5

1

2

3

4

5

Cuando la función f es dos veces derivable y f ′(x) 6= 0, el desarrollo de Taylor proporcionauna fórmula para estimar el error en la aproximación de Taylor:

Lema 4.2.5 Sea f : [a, b] → R dos veces derivable tal que, f ′(x) 6= 0 para todo x ∈ [a, b],x ∈ (a, b) y f(x) = 0. Entonces, si xn ∈ [a, b] y xn+1 = xn − f(xn)

f ′(xn) es la iterada de Newton, secumple:

x− xn+1 = −(x− xn)2 f ′′(ξ)2f ′(xn)

con ξ un punto entre x y xn.

Demostración: Basta considerar el desarrollo de Taylor de f en xn

f(xn + h) = f(xn) + f ′(xn)h+12f ′′(ξ)h2

y h = x− xn, entonces

0 = f(x) = f(xn) + f ′(xn)(x− xn) +f ′′(ξ)

2(x− xn)2

dividiendo por f ′(xn) y despejando el último sumando queda

x− xn+1 = x− xn +f ′(x− n)f(xn)

= − f ′′(ξ)2f(xn)

(x− xn)2

Con la fórmula proporcionada por este lema podemos probar el siguiente resultado de conver-gencia

Teorema 4.2.6 Sea f : [a, b]→ R dos veces derivable tal que:

(i) f(a)f(b) < 0

(ii) f ′(x) 6= 0 para todo x ∈ [a, b]

(iii) f ′′(x) tiene signo constante en [a, b] (f es concava o es convexa)

Entonces si x0 ∈ [a, b] es tal que f(x0)f ′′(x0) > 0, entonces la sucesión de iteradas de Newtonxn está bien definda, está acotada por x0 y x el único cero de f y es monótona. En consecuenciaes convergente hacia x.

Page 94: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

94 um.es / Cálculo Numérico en una variable, 2011-2012

4.2.2. Método de la secante

El método de Newton es muy poderoso pero presenta el inconveniente (que puede ser grave)de tener que evaluar la derivada de la función f en cada iteración. Este cálculo puede ser difícily puede requerir más operaciones aritméticas que la evaluación de la función f .

Una forma de evitar el cálculo de f ′ es utilizar aproximaciones de f mediante rectas “secantes”en lugar de las “tangentes” que proporciona la derivada.

El método de la secante consiste en iterar el proceso siguiente:

Dados un par de aproximaciones xn−1 xn de la raíz x de f , consideramos g(x) = f(xn) +f(xn−1)−f(xn)

(xn−1−xn) (x− xn) la ecuación de la secante a y = f(x) en xn−1 y en xn.

resolvemos la ecuación lineal g(x) = = 0, tomando h = −f(xn)(xn−1−xn)f(xn−1)−f(xn) y xn+1 = xn + h.

la solución xn+1 de la ecuación aproximada, será la nueva aproximación de la raíz de laecuación inicial.

Gráficamente se puede representar como sigue:

1.1 1.2 1.3 1.4

1

2

3

4

5

1.1 1.2 1.3 1.4

1

2

3

4

5

1.1 1.2 1.3 1.4

1

2

3

4

5

1.1 1.2 1.3 1.4

1

2

3

4

5

El algoritmo es muy simple:

Page 95: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 95

Algoritmo 4.5 Método de la secanteDatos de entrada:Función f ; x0 ∈ R; x1 ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = 0) o mensaje de errorVariables:x0 = x0; x1 = x1; // las aproximaciones iniciales.f0; f1;// Para almacenar el valor de f en las aproximaciones.h = 1 + precision; // Para almacenar el incremento de x0, con un valor inicial grande.

Fujo del programa:

f0 = f(x0); f1 = f(x1);if((|f0| < precision){ Parada: Raíz en x0 }

for(k=1;k<=nmaxiter;k++){if((|f1| < precision) o (|h| < precision)){ Parada: Raíz en x1 }if(f0-f1==0){

Parada:Error: secante horizontal }hi = −fi ∗ (x0− x1)/(f0− f1);x0 = x1; f0 = f1; x1 = x1 +h; f1 = f(x1); // volvemos a iterar con este nuevovalor de xi1}

Parada: Error: No hay convergencia en nmaxiter iteraciones

Ejemplo 4.2.7 Una vez más retomamos los ejemplos anteriores, para f(x) = ex − x2 − x − 1en [1,2], el método de la secante empezando en x0 = 1 y x1 = 1.5 como aproximación inicial,proporciona la raíz c = 1.793282132900757 f(c) = −5.329070518200751E − 15 en 11 pasos,cinco más que Newton.

Con la función g(x) = x3 − x− 1 y con x0 = 1 y x1 = 1.2 como aproximaciones iniciales, elmétodo de la secante proporciona la raíz c = 1.324717957244745 f(c) = −4.884981308350689E−15 en 6 pasos, los mismos que el método de Newton En este caso el método de Newton es el máseficaz de los cuatro estudiados.

Cuando la función f es dos veces derivable y f ′(x) 6= 0, la fórmula de las diferencias divididasy la fórmula del error en las aproximaciones por polinomios interpoladores proporciona unaestimación del error en la aproximación con el método de la secante:

Lema 4.2.8 Sea f : [a, b] → R dos veces derivable tal que, f ′(x) 6= 0 para todo x ∈ [a, b],x ∈ (a, b) y f(x) = 0. Entonces, si xn−1 y xn ∈ [a, b] y xn+1 = xn − f(xn)(xn−xn−1)

(f(xn−1−f(xn)) es la iteradade Newton, se cumple:

x− xn+1 = −(x− xn)(x− xn−1)f ′′(ξ)2f ′(η)

con ξ y η puntos entre x, xn y xn−1.

Este lema y el lema 4.2.5 nos permitirán probar en las secciones siguientes que si f ′(x) 6= 0 ytomamos como aproximaciones iniciales números suficientemente próximos a x, tanto el métodode Newton como el de la secante convergen. Siendo a priori la velocidad de convergencia deNewton un poco mayor que la del método de la secante. En ocasiones, el hecho de tener quehacer más operaciones en Newton que en el método de la secante (observad que en los algoritmos,en Newton se hacen dos evaluaciones, f y f ′, en cada iteración, mientras que en el de la secante

Page 96: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

96 um.es / Cálculo Numérico en una variable, 2011-2012

sólo se hace una evaluación de f) puede significar que la diferencia que hay en la velocidad deconvergencia se compensa con el número de operaciones

Ejercicio 4.5 (Atkinson [?, pág 53-58] ) Considera la ecuación x6 − x − 1 == 0 que sólotiene una raíz real positiva. Aproxima esta raíz utilizando los métodos de Newton (empezandoen x0 = 2) y de la secante (empezando con x0 = 2 y x1 = 1).

Compara el número de operaciones en cada caso.

Los siguientes ejercicios deberían haber sido incluidos en el apartado 3.2.1 (perdonad)

Ejercicio 4.6 El método de Newton puede utilizarse para calcular inversos 1a sin necesidad de

hacer divisiones. Compruébalo aplicando Newton en la búsqueda de 1a que es el único cero de

f(x) = 1x − a.

Comprueba la bondad de esta técnica evaluando 13 o 1

7 .

Ejercicio 4.7 El método de Newton puede utilizarse para calcular raíces cuadradas√a. Com-

pruébalo aplicando Newton en la búsqueda de√a que es el único cero de f(x) = x2 − a.

La sucesión de iteradas para calcular√

2 está definida por xn+1 = 12(xn + 2

xn). Comprueba

que esta sucesión es convergente para cualquier x0 >√

2.Ind: Haz un esquema de la gráfica de f .

Ejercicio 4.8 ¿Cómo puedes aproximar el número 623 con una calculadora que sólo sume, reste,

multiplique y divida?

4.2.3. Método de Muller

El método de la secante utilizar aproximaciones de f mediante rectas de interpolación,“secantes”,determinadas por dos nodos, una modificación se obtiene al considerar aproximaciones mediantepolinomios interpoladores de segundo grado determinados por tres nodos:

Dadas tres aproximaciones xn−2 xn−1 xn de la raíz x de f , consideramos g(x) = f(xn) +f [xn, xn−1](x− xn) + f [xn, xn−1, xn−2](x− xn)(x− xn−1) la ecuación del polinomio inter-polador a y = f(x) en xn−2, xn−1 y en xn.

resolvemos la ecuación de segundo grado g(x) = = 0, tomando de entre las dos raíces,como xn+1, aquella que esté más próxima de xn (con la esperanza de que la sucesión deiteradas converja más rapidamente). xn+1 = xn + h.

la solución xn+1 de la ecuación aproximada, será la nueva aproximación de la raíz de laecuación inicial.

Muller 1a iteración Muller 1a iteración (zoom)

0.7 0.8 0.9 1.1 1.2 1.3

-1

1

2

1.05 1.1 1.15 1.2 1.25 1.3

-1

-0.5

0.5

1

1.5

2

2.5

Page 97: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 97

Muller 2a iteración Muller 2a iteración (zoom)

0.7 0.8 0.9 1.1 1.2 1.3

-1

1

2

1.05 1.1 1.15 1.2 1.25 1.3

-1

-0.5

0.5

1

1.5

2

2.5

Para describir mejor el algoritmo, expresamos el polinomio g(x) en potencias de (x− xn):

g(x) = f(xn) + f [xn, xn−1](x− xn) + f [xn, xn−1, xn−2](x− xn)(x− xn−1)= f(xn) + f [xn, xn−1](x− xn) + f [xn, xn−1, xn−2](x− xn)[(x− xn) + (xn − xn−1)]

= f(xn) + {f [xn, xn−1] + f [xn, xn−1, xn−2](xn − xn−1)}(x− xn) + f [xn, xn−1, xn−2](x− xn)2

= f(xn) + {f [xn, xn−1] + f [xn, xn−2]− f [xn−1, xn−2]}(x− xn) + f [xn, xn−1, xn−2](x− xn)2

Escribiendo, W = f [xn, xn−1] + f [xn, xn−2] − f [xn−1, xn−2], las dos soluciones de g(x) == 0vienen dadas por

h := (x− xn) =−W ±

√W 2 − 4 ∗ f [xn] ∗ f [xn, xn−1, xn−2]

2 ∗ f [xn, xn−1, xn−2]

=−2 ∗ f [xn]

(W ±√W 2 − 4 ∗ f [xn] ∗ f [xn, xn−1, xn−2])

,

La solución de menor tamaño para h se obtiene cuando el denominador es de mayor tamaño, yproporciona la nueva aproximación

xn+1 = xn + h.

Para determinar el denominador mayor, compararemos el módulo de los dos números |W +√W 2 − 4 ∗ f [xn] ∗ f [xn, xn−1, xn−2]| y |W −

√W 2 − 4 ∗ f [xn] ∗ f [xn, xn−1, xn−2]|, en lugar de

escribir directamenteW+signo(W )∗√W 2 − 4 ∗ f [xn] ∗ f [xn, xn−1, xn−2], para que el algoritmo

sirva para trabajar con funciones definidas en el plano complejo C. Observad que este será elcaso más natural cuando se trabaje con funciones polinómicas o funciones “enteras” que tienenuna única extensión razonable a C.

Page 98: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

98 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 4.6 Método de MullerDatos de entrada:Función f ; x0 ∈ R; x1 ∈ R x2 ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = 0) o mensaje de errorVariables:x0 = x0; x1 = x1; x2 = x2// las aproximaciones iniciales.f0; f1; f2// Para almacenar el valor de f en las aproximaciones.f01; f02; f12// Para almacenar las diferencias divididas de f en las aproximaciones.h = 1 + precision; // Para almacenar el incremento de x0, con un valor inicial grande.

Fujo del programa:

f0 = f(x0); f1 = f(x1); f2 = f(x2);f01 = (f(x0)− f(x1))/(x0− x1);if((|f0| < precision){ Parada: Raíz en x0 }

for(k=1;k<=nmaxiter;k++){if((|f2| < precision) o (|h| < precision)){ Parada: Raíz en x1 }f02 = (f(x0)− f(x2))/(x0− x2); f12 = (f(x1)− f(x2))/(x1− x2);W = f12 + f02− f01;f012 = (f01− f(12))/(x0− x2);if((W==0) y (f012==0)){ Parada:Error: polinomio interp. constante }aux =

√W ∗W − 4 ∗ f2 ∗ f012;

denomin1 = W + aux;denomin2 = W − aux;if((|denomin1|>|denomin2)){ h = −2 ∗ f2/denomin1; }else{ h = −2 ∗ f2/denomin2; }

x0 = x1; f0 = f1; x1 = x2; f1 = f2; f01 = f12;x2 = x2 + h; f2 = f(x2); // volvemos a iterar}

Parada: Error: No hay convergencia en nmaxiter iteraciones

Ejemplo 4.2.9 Una vez más retomamos los ejemplos anteriores, para f(x) = ex − x2 − x − 1en [1,2], el método de Muller empezando en x0 = 1, x1 = 1.5 y x2 = 2 proporciona la raízc = 1.7932821329007607 con f(1.7932821329007607) = 0.0 en 5 iteraciones, una menos queNewton, y 6 menos que la secante.

Con la función g(x) = x3 − x − 1 y con x0 = 1,x1 = 1.5 y x2 = 2 como aproxima-ciones iniciales, el método de Muller c = 1.324717957244746 con f(1.324717957244746) =2.220446049250313E − 16 en 5 iteraciones, una menos que Newton.

En estos casos el método de Muller es el más eficaz de los estudiados.

Ejercicio 4.9 Retomando el ejercicio 4.5. Comprobad que el método de Muller ofrece buenaconvergencia hacia la única raíz positiva con las condiciones iniciales x0 = 2, x1 = 1.5 y x2 = 1,mientras que el método abandona la recta real con las condiciones iniciales x0 = 2, x1 = 1.7 yx2 = 1.5. En este caso podríamos trabajar con números complejos al tratarse de una ecuaciónpolinómica, y tendríamos una buena convergencia.

No vamos a describir una fórmula para cuantificar las aproximaciones en el método de Mu-ller, similar a las que escribíamos para Newton o la secante. En este caso debe ser más complejay deben intervenir las tres primeras derivadas de la función evaluadas en puntos intermedios.

Page 99: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 99

Cuando hablemos del orden de convergencia de las iteraciones, resaltaremos el hecho de queMuller teóricamente es un poco más lento que Newton. También al programar métodos para re-solver ecuaciones polinómicas, implementaremos Muller utilizando números complejos y veremoscómo se pueden alcanzar raíces complejas.

4.2.4. Métodos inversos

En la introducción de esta sección, métodos inversos son aquellos que tratan de aproximarsoluciones x de la ecuación f(x) == 0 tratando de evaluar la función inversa en 0:

x := f−1(0).

Cuando acudimos a aproximaciones de f−1 mediante sus polinomios de Taylor, obtenemosmétodos de Taylor inversos, así, partiendo de una aproximación xn a x, se toma yn = f(xn),y qk(y) el polinomio de Taylor de grado k de la función f−1(y) en potencias de (y − yn), y setoma xn+1 = qk(0) como nueva aproximación de x y se itera el proceso hasta encontrar unaaproximación admisible.

Ejercicio 4.10

(i) Comprueba que q1(y) = xn + 1f ′(xn)(y − yn) y xn+1 := q1(0) = xn − f(xn)

f ′(xn) (Método deNewton).

(ii) Comprueba que para k = 2, xn+1 := q2(0) = xn − f(xn)f ′(xn) −

f ′′(xn)∗f(xn)2

2(f ′(xn))3(se conoce como

Método de Chebichev y lo implementaremos en las sesiones de prácticas).

Cuando acudimos a aproximaciones de f−1 mediante polinomios interpoladores, obtenemosmétodos de Interpolación inversos, así, partiendo de un conjunto de k + 1 aproximacionesxn−k, xn−k+1,...,xn−1 y xn de x, se toma yn−k = f(xn−k), yn−k+1 = f(xn−k+1),...,yn−1 =f(xn−1) e yn = f(xn), y qk(y) el polinomio de interpolador de grado k de la función f−1(y) enlos nodos (yj , f−1(yj) = xj), y se toma xn+1 = qk(0) como nueva aproximación de x y se iterael proceso hasta encontrar una aproximación admisible.

Ejercicio 4.11

(i) Comprueba que q1(y) = xn + xn−1−xn

f(xn−1)−f(xn)(y − yn) y xn+1 := q1(0) = xn − (xn−1−xn)f(xn)f(xn−1−f(xn)

(Método de la secante).

(ii) Construye el polinomio interpolador q2(y) en los nodos (yn, xn), (yn−1, xn−1) e (yn−2, xn−2)y encuentra la fórmula de la iterada xn+1 = q2(0) en términos de las coordenadas de losnodos (implementaremos este método en las sesiones de prácticas.

Referencias para la sección

Métodos de Newton, secante y Muller: Libro de Burden-Faires [3] y libro de Atkinson [?].

Para ejercicios y métodos inversos podéis acudir al libro de Aubanell, Benseny y Delshams[1].

Page 100: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

100 um.es / Cálculo Numérico en una variable, 2011-2012

4.3. Iteración de punto fijo

Definición 4.3.1 Un punto fijo de una función f : C → C es cualquier punto x ∈ C para elcual

f(x) = x.

En esta sección vamos a estudiar los problemas de punto fijo, es decir, problemas deresolución de ecuaciones

f(x) == x,

donde f : C → C es una función del conjunto C en si mismo. Vamos a poner ejemplos defunciones reales de variable real aunque el resultado principal de la sección lo probaremos en elcontexto de espacios métricos completos.

Los problemas de búsqueda de raíces de funciones g(x) == 0 son equivalentes a los debúsqueda de puntos fijos f(x) == x, considerando funciones auxiliares:

Si f(x) tiene un punto fijo en x, entonces g(x) = f(x)− x tiene una raíz en x.

Reciprocamente, si g tiene una raíz en x, entonces f(x) = h(x)g(x) +x tiene un punto fijoen x.

Vamos a buscar puntos fijos viendo el comportamiento (la dinámica) de las iteradas defunciones, es decir, sucesiones de la forma

xn = f(xn−1).

A estas sucesiones se les llama órbitas del punto x[0] y la función f ,

Proposición 4.3.2 Si f es una función continua y xn converge, entonces su límite x es unpunto fijo de f .

La prueba de la proposición es la siguiente cadena de igualdades

f(x) = lımnf(xn) = lım

nxn = lım

nxn+1 = x.

Esta técnica de considerar sucesiones de iteradas, xn = f(xn−1), para buscar puntos fijos,recibe el nombre de iteración de punto fijo o iteración funcional. El algoritmo correspon-diente es:

Page 101: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 101

Algoritmo 4.7 Iteración de punto fijoDatos de entrada:Función f ; x0 ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = x) o mensaje de errorVariables:xx = x0 // los puntos de la órbita.fx = f(xx); // el siguiente punto de la órbita f.

Fujo del programa:

for(k=1;k<=nmaxiter;k++){if(|xx− fx| < precision){ Parada: Punto fijo en xx }xx = fx;fx = f(xx); // el siguiente punto de la órbita f}

Parada: Error: No hay convergencia en nmaxiter iteraciones

Ejemplo 4.3.3 Con la calculadora de mano, configurada para trabajar en radianes, si conside-ramos la función cos(x) y calculamos la órbita de cualquier número obtenemos un/el punto fijodel cos :

cos(0.739085133) = 0.739085133.

Gráficamente, comenzando en 0.5 se tiene:

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

Page 102: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

102 um.es / Cálculo Numérico en una variable, 2011-2012

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

¿Recordáis resultados del curso “Analisis I” que garanticen la existencia de puntos fijos y suunicidad?

Echad un vistazo al Teorema 2.2 del libro de Burden-Faires [3] y seguro que recordáis unaaplicación del teorema de Bolzano y otra de la fórmula de los incrementos finitos.

El siguiente teorema da una condición suficiente para la convergencia de las iteraciones depunto fijo. Vamos e enunciarlo para funciones definidas en espacios métricos completos (X, d),que contiene como caso particular a R, Rn, a los espacios de Banach (espacios normados com-pletos) (X, ‖ ‖) y a sus subconjuntos cerrados.

Definición 4.3.4 Sea (X, d) un espacio métrico completo, se dice que una función f : X → X,es una función contractiva cuando existe una constante c, 0 < c < 1, verificando :

d(f(x), f(y)) ≤ c d(x, y) para cada x e y en X.

Teorema 4.3.5 (Teorema del Punto Fijo de Banach) Sea (X, d) un espacio métrico com-pleto y f : X → X una función (contractiva) tal que existe una constante c, 0 < c < 1,verificando :

d(f(x), f(y)) ≤ c d(x, y) para cada x e y en X.

Entonces la ecuación f(x) = = x tiene una única solución xs ∈ X.Esta solución se encuentra como el límite de la sucesión de iteradas

xs = lımnx(n), x(n) = f(x(n− 1)).

para un x(0) en X arbitrario.Además, el error en cada etapa está acotado por

e(n) = d(x(n), xs) ≤ cn

1− cd(x(1), x(0))

Demostración:Ideas que intervienen

Como f es contractiva si tiene un punto fijo este es único.

En efecto, si f(x) = x y f(y) = y, entonces

d(x, y) = d(f(x), f(y)) ≤ cd(x, y),

y como 0 < c < 1, esto sólo es posible si d(x, y) = 0, e. d. si x = y.

Page 103: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 103

Como f es contractiva, f es continua. Si la iterada funcional xn = f(xn−1) converge, sulímite es el punto fijo de f (Proposición 4.3.2).

Como f es contractiva las iteradas funcionales xn son sucesiones de Cauchy y en conse-cuencia son convergentes ya que X es un espacio métrico completo.

(i) d(xn, xn−1) ≤ c d(xn−1, xn−2) ≤ c2 d(xn−1, xn−3) ≤ ... ≤ cn−1d(x1, x0).

(ii) d(xn+p, xn) ≤ d(xn+p, xn+p−1) + d(xn+p−1, xn) ≤ ...d(xn+p, xn+p−1) + d(xn+p−1, xn+p−2) + ...+ d(xn+1, xn) ≤(cn+p−1 + cn+p−2 + ...+ cn)d(x1, x0) = cn−cn+p

1−c d(x1, x0)→ 0.

La fórmula de los incrementos finitos nos ofrece condiciones para que una función seacontractiva y se cumpla el teorema del punto fijo:

|f(x)− f(y)| = |f ′(x+ t(y − x))||x− y| ≤ c|x− y|,

donde (0 < t < 1), y |f ′(s)| ≤ c para todo s ∈ [a, b] (x+ t(y − x) ∈ [a, b]).

Corolario 4.3.6 Sea f : [a, b] → [a, b] una función derivable para la que existe una constantec, 0 < c < 1 tal que:

|f ′(x)| ≤ c para todo x ∈ [a, b].

Entonces la ecuación f(x) = = x tiene una única solución xs en [a, b]. Esta solución es el límitede la sucesión de iteradas

xn = f(xn−1)

definida a partir de cualquier punto x0 ∈ [a, b]. Además:

en = |xn − xs| ≤cn

1− c|x1 − x0|.

Ejemplo 4.3.7 (Ejemplos 3 y 4 del apartado 2.2 de Burden-Faires [3]) La única raíz dep(x) = x3 + 4x2 − 10 en el intervalo [1, 2] se puede convertir en punto fijo x == g(x), de unafunción g de diferentes formas.

Vamos a relacionar 5 elecciones distintas de g, y describiremos el comportamiento de lasiteradas funcionales empezando en x0 = 1.5

(i) x = g1(x) = x− x3 − 4x2 + 10

xn = g1(xn−1) es divergente.

g1 no es contractiva, |g′(x)| > 1 en todo x ∈ [1, 2].

(ii) x = g2(x) =(

10x − 4x

) 12

g2 no lleva el intervalo [1,2] al intervalo [1,2]. La iterada x3 no está definida.

(iii) x = g3(x) = 12(10− x3)

12

xn = g3(xn−1) es convergente.

g3 es estrictamente decreciente en [1,2]1. Lleva el intervalo [1,1.5] al intervalo [1.28,1.5].Además, como |g′3(x)| ≤ |g′3(1.5)| ≈ 0.66 < 1 para todo x ∈ [1.28, 1.5], podemos concluirque g3 es contractiva en ese intervalo.

1Utilizad XMAXIMA o MATHEMATICA para representar gráficamente g3, g′3 y g′′3 , y deducid de las gráficas las

afirmaciones que se hacen acerca de g3 y g′3

Page 104: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

104 um.es / Cálculo Numérico en una variable, 2011-2012

(iv) x = g4(x) =(

104+x

) 12

xn = g4(xn−1) es convergente, y converge más rápido que la anterior.

g4 es decreciente, lleva el intervalo [1,2] al intervalo [1,2] y |g′4(x)| ≤ |g′(1)| =∣∣∣ −1

5√

2

∣∣∣ =√

210 < 0.15 para todo x ∈ [1, 2].

g4 es contractiva con constante menor que la de g3. Esta es la razón por la iterada para g4

converge más rápidamente que la de g4.

(v) x = g5(x) = x− x3+4x2−103x2+8x

.

La iterada funcional para g5 es la iterada del método de Newton para p(x) y es más rápidaque las dos iteradas anteriores. Enseguida vamos a ver porqué.

Ejercicio 4.12 La ecuación no lineal 2x − senx == 0.5 puede transformarse en una ecuaciónde punto fijo de la forma x == 0.5 sen(x) + 0.25 =: F (x). Encuentra un intervalo [a, b] en elque se verifiquen las hipótesis del teorema del punto fijo para F (x), estima el número de pasosnecesarios para aproximar el punto fijo con un error menor que 10−6 y realiza los cálculos.

Ejercicio 4.13 La función f(x) = 2 + x − arctanx verifica |f ′(x)| < 1 en todo x ∈ R. ¿Tienef un punto fijo?. ¿Contradice esta función el teorema del punto fijo?

Ejercicio 4.14 Sea y el número definido por la fórmula:

y =z

1 +z

1 +z

1 + · · ·Busca un método iterativo para calcular el número y y determina para que valores de z laiteración es convergente. Calcula y (en particular con z = 1 determina y con seis digitos deprecisión).

Ejercicio 4.15 Comprueba que f(x) = 4x(1−x) lleva el intervalo [0,1] al intervalo [0,1] y tienedos puntos fijos en [0,1]. ¿Porqué no contradice al teorema del punto fijo?

4.3.1. Atractores y repulsores

Sea f : [a, b] → R es una función derivable con derivada continua y x ∈ [a, b] un punto fijode f (f(x) = x)

El tamaño de la derivada |f ′(x)| indica el comportamiento de las iteradas funcionales en laspróximidades de x.

Proposición 4.3.8 Sea f : [a, b]→ R es una función derivable con derivada continua y x ∈ [a, b]un punto fijo de f . Si |f ′(x)| < 1 entonces, en un entorno de x se cumplen las hipótesis delteorema del punto fijo. Se dice que x es un punto atractor (o sumidero) de f .

Las iteradas xn = f(xn−1) convergen a x, para x0 próximo a x.

Demostración:

Ideas que intervienen

Page 105: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 105

|f ′(x)| < c < 1 y f ′ continua ⇒ que existe δ > 0 tal que |f ′(x)| < c para x ∈ [x− δ, x+ δ].

f : [x− δ, x+ δ]→ [x− δ, x+ δ] En efecto:

|f(x)− x| = |f(x)− f(x)| = |f ′(ξ)||x− x| < c δ < δ.

(ξ está entre x y x, ξ ∈ [x− δ, x+ δ])

Se cumplen las hipótesis del teorema del punto fijo para f definida en [x− δ, x+ δ].

Ejemplo 4.3.9 (El método de Newton) El método de «Newton » consiste en iterar el pro-ceso siguiente:

Dada una raíz x de una función derivable f , (f(x) = 0). Si xn es una aproximaciónde x consideramos aux(x) = f(xi) + f ′(xi)(x− xi) la ecuación de la tangente a y = f(x)en xn, resolvemos la ecuación lineal aux(x) = = 0, y tomamos la solución como nuevaaproximación xn+1 = xn − f(xn)

f ′(xn) .

Considerando la función

g(x) = x− f(x)f ′(x)

.

Esperamos encontrar x como límite de xn+1 = g(xn), e.d., como punto fijo de g.

Si f es dos veces derivable con f ′′ continua y f ′(x) 6= 0, g es derivable en un entorno de xy

g′(x) = 0(< 1) y g′′(x) =f ′′(x)f ′(x)

.

x es un atractor.

Como corolario de la proposición 4.3.8 tenemos el siguiente teorema de convergencia localpara el método de Newton.

Proposición 4.3.10 Sea f : (a, b) → R una función dos veces derivable con f ′′ continua. Seax ∈ (a, b) una raíz simple de f , e.d. f(x) = 0 y f ′(x) 6= 0. Entonces existe δ > 0 tal que six0 ∈ (a, b), y |x0 − x| < δ, la sucesión de iteradas de Newton, xn+1 = xn − f(xn)

f ′(xn) , está biendefinida para todo n ∈ N y converge hacia x.

Ejemplo 4.3.11 f(x) = 0.25 ∗ ex tiene una atractor cerca de 0.4, si hacemos las iteradasfuncionales gráficamente desde x0 = 0.9 tenemos:

Page 106: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

106 um.es / Cálculo Numérico en una variable, 2011-2012

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

Cuando la derivada de la función en el punto fijo es mayor que 1, el comportamiento de lasiteradas funcionales cerca de este punto fijo es todo lo contrario a lo que ocurre con los atractores.

Ejemplo 4.3.12 f(x) = 0.25 ∗ ex, tiene punto fijo cerca de 2.15, si hacemos las iteradas fun-cionales gráficamente desde x0 = 2.1 tenemos:

0.5 1 1.5 2 2.5 3

1

2

3

4

5

0.5 1 1.5 2 2.5 3

1

2

3

4

5

Page 107: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 107

0.5 1 1.5 2 2.5 3

1

2

3

4

5

0.5 1 1.5 2 2.5 3

1

2

3

4

5

Proposición 4.3.13 Sea f : [a, b] → R es una función derivable con derivada continua y x ∈[a, b] un punto fijo de f . Si |f ′(x)| > 1 entonces, en ningún entorno de x se cumplen las hipótesisdel teorema del punto fijo. Se dice que x es un punto repulsor (o fuente) de f .

Las iteradas xn = f(xn−1) no convergen a x, para x0 próximo a x, salvo que xn = x paraalgún n.

Demostración:

Ideas que intervienen

|f ′(x)| > C > 1 + f ′ continua⇒ que existe δ > 0 tal que |f ′(x)| > C para x ∈ [x−δ, x+δ].

Si xn = f(xn−1), entonces xn 6→ x salvo si para algún n0, xn0 = x (xn = x, ∀n > n0).

En efecto: si fuese convergente existiría n0 tal que 0 < |xn − x| < δ para n ≥ n0. Pero

|xn − x| = |f(xn−1)− f(x)|= |f ′(ξ)||xn−1 − x|> C |xn−1 − x| > ...

> Cn−n0 |xn0 − x| → ∞

(C > 1⇒ Cn−n0 →∞) ABSURDO �

Ejercicio 4.16 Considera la función g(x) = esenx y determina si existe, o no, un intervalocercano a x = 2.2 donde |g′(x)| < 1. Comprueba que g tiene un punto fijo en x = 2.2191... yanaliza la convergencia o divergencia de las iteradas de punto fijo xn = g(xn−1) para x0 próximoa x.

Ejercicio 4.17 Proponemos los tres métodos iterativos siguientes para calcular 3√

21. Clasifíca-los por orden basándote en la rapidez de convergencia suponiendo que x0 = 1:

(i) xn+1 = 121(20xn + 21

x2n

).

(ii) xn+1 = xn − x3n−213x2

n.

(iii) xn+1 =(

21xn

) 12 .

Page 108: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

108 um.es / Cálculo Numérico en una variable, 2011-2012

4.4. Orden de convergencia de una sucesión

Para formalizar la idea de velocidad en la convergencia de una sucesión y poder predecir siuna sucesión va a converger hacia su límite más rápidamente que otra, vamos a considerar lasiguiente definición:

Definición 4.4.1 Si xn → x, existen C > 0 y m > 0 tales que

|xn − x| ≤ C|xn−1 − x|m ∀n,

entonces se dice que xn → x con convergencia de orden al menos mSi xn → x con xn 6= x, existe λ > 0 y m > 0 tales que

lımn

|xn − x||xn−1 − x|m

= λ,

entonces se dice que xn → x con convergencia de orden m. A λ se le llama la constanteasintótica del error.

Si xn es una sucesión convergente con convergencia de orden m = 1, se dice que xn eslinealmente convergente.

Cuando xn es una sucesión convergente con convergencia de orden m = 2, se de que lasucesión es cuadráticamente convergente.

Observad que para si n es grande xn aproxima a x con k dígitos en el sentido que2 |xn−x| <0.5 ∗ 10−k, entonces

|xn+1 − x| ≈ λ ∗ |xn − x|2 < λ ∗ 0.52 ∗ 10−2k

xn+1 aproximará a x con alrededor de 2k dígitos de precisión.El lema 4.2.5 nos dice que el orden de convergencia del Método de Newton cuando f ′(x) 6= 0

es al menos 2, aunque también podemos llegar a esa conclusión si respondemos a la cuestión:¿Cuál es el orden de convergencia de las iteraciones de punto fijo?

Teorema 4.4.2 (Orden de convergencia) Si f : [a, b] → [a, b] es una función con un puntofijo en x.

(Caso m = 1) Si f es derivable con derivada continua, |f ′(x)| < 1, y x0 es un punto próximo ax, entonces xn = f(xn−1) converge a x con convergencia de orden al menos 1 (x es un atractor).

(Caso m ≥ 2) Si f es m-veces derivable en [a, b], con derivada de orden m f (m) continua, secumple:

f ′(x) = f ′′(x) = ... = f (m−1)(x) = 0,

y x0 es un punto próximo a x, entonces xn = f(xn−1) converge a x con convergencia de ordenal menos m.

Si además f (m)(x) 6= 0, la convergencia es de orden m con constante asintótica del error|f (m)(x)|/m!.

Demostración:

Ideas que intervienen2Permitid la licencia de que aquí consideremos errores absolutos en lugar de los errores relativos del capítulo

anterior.

Page 109: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 109

(caso m=1) |f ′(x)| < 1 implica que x es un atractor. e.d. que las iteradas funcionales sonconvergentes.

(caso m>1) Como f ′(x) = 0 < 1 la sucesión de iteradas xn+1 = f(xn) converge hacia xsiempre que x0 esté cerca de x.

Considera la fórmula del desarrollo de Taylor de f en x de orden m:

f(x)− f(x) =f (m)(x)m!

(x− x)m + o((x− x)m).

Así tenemos

xn+1 − x(xn − x)m

=f(xn)− f(x)

(xn − x)m=f (m)(x)m!

+o((xn − x)m)

(xn − x)m→ f (m)(x)

m!.

Como corolario de este resultado y de la proposición 4.3.10, se tiene el siguiente teorema deconvergencia local del método de Newton,

Teorema 4.4.3 Sea f : (a, b) → R una función dos veces derivable con f ′′ continua. Sea x ∈(a, b) una raíz simple de f , e.d. f(x) = 0 y f ′(x) 6= 0. Entonces existe δ > 0 tal que si x0 ∈ (a, b),y |x0−x| < δ, la sucesión de iteradas de Newton, xn+1 = xn− f(xn)

f ′(xn) , está bien definida para todon ∈ N y converge hacia x con convergencia de orden al menos 2. Si además f ′′(x) 6= 0, laconstante asintótica del error es f ′′(x)

2f ′(x)

Volved al ejemplo 4.3.7 y comparar los ordenes de convergencia de los distintos procesositerativos que se estudiaron allí.

Otra forma de alcanzar este resultado deriva de la fórmula de estimación del error en laaproximación por la tangente a f dada en el lema 4.2.5. A continuación vamos a trabajar enesa dirección con el método de la secante dejando al lector la posibilidad de hacer los cambiosoportunos en los razonamientos para el caso del método de Newton. La llave para obtener unteorema de convergencia local para el método de la secante nos la va a dar el lema 4.2.8 quepermite estimar los errores en las aproximaciones con este método.

Teorema 4.4.4 Sea f : (a, b) → R una función dos veces derivable con f ′′ continua. Sea x ∈(a, b) una raíz simple de f , e.d. f(x) = 0 y f ′(x) 6= 0. Entonces existe δ > 0 tal que si x0

y x1 ∈ (a, b),|x0 − x| < δ, y |x1 − x| < δ, entonces la sucesión de iteradas del método de lasecante, xn+1 = xn − f(xn)(xn−xn−1)

f(xn)−f(xn−1) , está bien definida para todo n ∈ N y converge hacia x con

convergencia de orden al menos p = 1+√

52 . Si además f ′′(x) 6= 0, la constante asintótica

del error es(f ′′(x)2f ′(x)

)p−1

Demostración:

Ideas que intervienen

Podemos utilizar la continuidad de f ′ y de f ′′ junto con que f ′(x) 6= 0 para fijar δ0 tal que

M = max{|f′′(t)||f ′(t)|

: |t− x| ≤ δ0} <∞.

Page 110: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

110 um.es / Cálculo Numérico en una variable, 2011-2012

Si M = 0, entonces f(x) = ax+ b con a 6= 0 y xn = x2 = x para todo n ≥ 2.

Si M > 0, vamos a intentar probar que xn converge hacia x comparando |x− xn| con unapotencia de un número menor que 1, por ejemplo 1

2 .

Podemos utilizar la fórmula del lema 4.2.8 para escribir

|x− x2| ≤ |x− x1||x− x0|M < δδM < mın{ 122, δ, δ0}.

si δ < mın{12 ,

12M , δ0} < δ0 y suponemos que |x− x0| < δ y |x− x1| < δ.

Ahora, podemos hacer "inducción" para n ≥ 2 con la misma fórmula del lema 4.2.8 parahacer

|x− xn+1| ≤ |x− xn||x− xn−1|M < mın{ 12n+1

, δ, δ0}

si |x− xn| < mın{ 12n , δ, δ0} |x− xn−1| < mın{ 1

2n−1 , δ, δ0}.

Una vez comprobado que xn converge hacia x, suponemos que el orden de convergencia esp > 0, y traducimos este hecho en que

|x− xn+1| ≈ C|x− xn|p (4.1)

y en que|x− xn| ≈ C|x− xn−1|p ←→ |x− xn−1| ≈ C

−1p |x− xn|

1p ,

para una constante C > 0 si n es grande. Una vez más recurrimos a la fórmula del lema4.2.8 y tenemos que

|x− xn+1| =|f ′′(ξ)||f ′(η)|

|x− xn||x− xn−1| ≈|f ′′(ξ)||f ′(η)|

|x− xn|C−1p |x− xn|

1p . (4.2)

Ahora identificando las aproximaciones (4.1) y (4.2) se llega a la ecuación

|x− xn|p−1− 1p ≈ C−1− 1

p|f ′′(ξ)||f ′(η)|

Si se toman límites en n, |x−xn| → 0, el primer miembro de la ecuación se haría infinito sip−1− 1

p < 0 mientras que el segundo miembro de la ecucación converge hacia la constante

finita: C−1− 1p|f ′′(x)||f ′(x)| .

Así se llega a que p−1− 1p ≥ 0, equivalentemente p2−p−1 ≥ 0, lo que junto a la hipótesis

de que p > 0 se traduce en que p ≥ 1+√

52 ≈ 1.618034, es la constante aúrea. Si además

f ′′(x) 6= 0, el segundo miembro de la ecuación no se anula y el único caso posible es quelos dos miembros valgan 1, en ese caso p = 1+

√5

2 y

C =(|f ′′(x)||f ′(x)|

) 1

1+ 1p =

(f ′′(x)2f ′(x)

)p−1

.

Un argumento similar al de esta última prueba para el método de Muller permitiría probarque en condiciones razonables de existencia de derivadas terceras continuas y si f ′(x) 6= 0,f ′′(x) 6= 0 y f ′′′(x) 6= 0, el método de Muller converge con convergencia de orden p ≈ 1.84...

Page 111: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 111

Ejercicio 4.18 El método de Newton para resolver f(x) == 0 no tiene asegurada la conver-gencia cuadrática hacia x si f(x) = f ′(x) = 0. Si f es m+ 1-veces derivable (m ≥ 2),

f(x) = 0 = f ′(x) = ... = f (m−1)(x) = 0

y f (m)(x) 6= 0, considera la función g(x) = f(x)f ′(x) , observa que g(x) = 0 pero ahora g′(x) 6= 0.

Describe un método para encontrar x aplicando Newton a g.Utiliza el algoritmo anterior y el Método de Newton para encontrar una solución a la ecuación

siguiente con una precisión de 10−3:

x3 − 3x2e−x + 3x2e−x + e−3x == 0

Tomando x0 = 1. como aproximación inicial. ¿Compara los resultados obtenidos en los doscasos?.

Ejercicio 4.19 Sea f una función de clase 2 y x un cero simple de f . Prueba que la iteraciónde Newton de dos pasos:

y := xn −f(xn)f ′(xn)

, xn+1 := y − f(y)f ′(xn)

tiende localmente hacia x con al menos, orden de convergencia 3.Acelera la convergencia de la sucesión de Newton del ejercicio anterior utilizando la iteración

de dos pasos para obtener mayor precisión.

Ejercicio 4.20 Las iteraciones de punto fijo de g(x) = 3x4+42x2−498x3 convergen hacia

√7. Deter-

mina si la convergencia es lineal, cuadrática o cúbica.

Ejercicio 4.21 (ENTREGA VOLUNTARIA antes del 22 de diciembre de 2009 a tra-vés de SUMA, una copia escaneada si la escribís a mano) El método de resoluciónde Taylor inverso de orden 2 para resolver ecuaciones f(x) == 0, se conoce como Método deChebichev,xn+1 := xn − f(xn)

f ′(xn) −f ′′(xn)∗f(xn)2

2(f ′(xn))3.

Estudia el orden de convergencia de este método en función de los valores de las primeras deri-vadas de f en la raíz x.

4.5. Acelerando la convergencia: método ∆2 de Aitken y métodode Steffensen

No siempre tenemos la suerte de construir iteradas que converjan cuadráticamente. Pero side antemano sabemos que nuestra sucesión de iteradas converge linealmente, podemos acelerarla convergencia de la sucesión con el método de aceleración de Aitken.

Supongamos que xn → x con convergencia de orden al menos 1, y que existe

lımn→∞

xn+1 − xxn − x

= A 6= 1.

Remarcad la hipótesis de que la constante asintótica A 6= 1. Esto ocurre en los puntos fijos queson atractores A = |f ′(x)| < 1.

Page 112: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

112 um.es / Cálculo Numérico en una variable, 2011-2012

Entonces, para n suficientemente grande podemos escribir{xn+1 − x ≈ A(xn − x)xn+2 − x ≈ A(xn+1 − x).

(4.3)

Restando esas dos expresiones tenemosxn+2 − xn+1 ≈ A(xn+1 − xn)A ≈ xn+2−xn+1

xn+1−xn, y

1−A ≈ − (xn+2−xn+1)−(xn+1−xn)xn+1−xn

(4.4)

Despejando x en (4.3) y sustituyendo 1−A por la aproximación dada en (4.4) queda

x ≈ xn+1 −Axn1−A

= xn +xn+1 − xn

1−A≈ xn −

(xn+1 − xn)2

(xn+2 − xn+1)− (xn+1 − xn). (4.5)

Se utiliza la notación de Aitken:

∆xn := (xn+1 − xn)

∆2xn := ∆(∆xn) = (xn+2 − xn+1)− (xn+1 − xn) = xn+2 − 2xn+1 + xn.

Con lo que la estimación dada en (4.5) queda

x ≈ xn −(xn+1 − xn)2

(xn+2 − xn+1)− (xn+1 − xn)= xn −

(∆xn)2

∆2xn

El método de aceleración ∆2 de Aitken, consiste en ir construyendo la sucesión

xn = xn −(∆xn)2

∆2xn

con la esperanza de que xn converja hacia x más rápidamente que xn.

Teorema 4.5.1 (Aceleración de Aitken) Supongamos que xn → x con convergencia de or-den al menos 1, que para todo n xn − x 6= 0, y que

lımn→∞

xn+1 − xxn − x

= A 6= 1.

Entonces la sucesión del método de Aitken xn = xn − (∆xn)2

∆2xnconverge hacia x más rápidamente

que xn en el sentido de que

lımn→∞

xn − xxn − x

= 0

Demostración:

Ideas que intervienen

Expresar xn − x en términos de xn − x y A− 1 6= 0.

(i) δn :=xn+1 − xxn − x

−A→ 0.

(ii) xn+1 − x = (xn − x)(δn +A), xn+1 − x = (xn − x) + ∆xn.

Page 113: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 113

(iii) ∆xn := xn+1 − xn = (xn+1 − x)− (xn − x) = (δn + (A− 1))(xn − x).

(iv) ∆2xn = ∆xn+1−∆xn = (δn+1 +(A−1))(xn+1−x)− (δn+(A−1))(xn−x) = Γn(xn−x),donde Γn = (δn+1 + (A− 1))(δn +A)− (δn + (A− 1))→ (A− 1)2 6= 0.

(v) xn − x = (xn − x)− (∆xn)2

∆2xn=

Γn(xn − x)2 − (δn + (A− 1))2(xn − x)2

Γn(xn − x)=

=Γn(xn − x)− (δn + (A− 1))2(xn − x)

Γn.

(vi)xn − xxn − x

=Γn − (δn + (A− 1))2

Γn→ (A− 1)A− (A− 1) =

(A− 1)2 − (A− 1)2

(A− 1)2= 0.

Las hipótesis del teorema anterior se cumplen para iteraciones funcionales

xn = f(xn−1)

que convergen hacia un punto fijo atractor x, |A| = |f ′(x)| < 1.El algoritmo correspondiente a la aceleración de Aitken para iteraciones de punto fijo es el

siguiente. En recuadros grises con texto en blanco tenéis las modificaciones al algoritmo de puntofijo:

Algoritmo 4.8 Iteración de punto fijo con Aceleración de AitkenDatos de entrada:Función f ; x0 ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = x) o mensaje de errorVariables:xx = x0 // los puntos de la órbita.fx = f(xx); // el siguiente punto de la órbita f.

ffx; // para el siguiente punto de la órbita f(fx).

xxacelerado; // para guardar los terminos de la iteración acelerada por Aitken.Fujo del programa:

for(k=1;k<=nmaxiter;k++){if(|xx− fx| < precision){ Parada: Punto fijo en xx }

ffx = f(fx);

xxacelerado = xx− ((fx− xx) ∗ (fx− xx))/(ffx− 2 ∗ fx+ xx);

if(|xxacelerado− f(xxacelerado)| < precision){

Parada: Punto fijo en xxacelerado }

xx = fx;fx = ffx; // el siguiente punto de la órbita f

}Parada: Error: No hay convergencia en nmaxiter iteraciones

Page 114: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

114 um.es / Cálculo Numérico en una variable, 2011-2012

Ejemplo 4.5.2 La función g(x) = 1.6 + 0.99 cosx es contractiva y tiene un único punto fijo.La iteración de punto fijo para g, con inicio en x0 = 1.5707963267948966 proporciona una

aproximación al punto fijo x ≈ 1.585521893915304 en 560 iteraciones (x ≈ x560). La derivadade g en el punto fijo, g′(x) = −0.9898926649877118, tiene valor absoluto menor pero próximo a1. Esto confirma que el punto fijo es un atractor y que la convergencia no es de las más rápidas.

Si aceleramos la convergencia de la iteración de punto fijo iniciada en el mismo punto x0,el método de Aitken proporciona la aproximación al punto fijo x ≈ 1.585471801571905 en 476pasos.

Si consideramos la función f(x) = 0.25ex analizada en los ejemplos 4.3.11 y 4.3.12, y ha-cemos la iteración de punto fijo para f , con inicio x0 = 0.1 aproximamos el punto fijo x =0.35740295618138784 en 33 pasos. Observad que en este ejemplo f ′(x) = 0.3574029561813885es mucho menor que en el caso de la función anterior y que ahora la convergencia es mucho másrápida.

Si aceleramos la convergencia con el método de Aitken, iniciando también en x0 = 0.1 apro-ximamos el mismo punto fijo en 15 pasos.

¡Cuanto menor es el tamaño de la derivada en el punto fijo, más rápido convergen las iteradasde punto fijo y sus aceleradas de Aitken!

4.5.1. Método de Steffensen

Si consideramos una iteración de punto fijo, xn = f(xn−1), que suponemos convergentehacia un punto fijo atractor x, y la aceleramos por el método de Aitken, debemos esperar quela sucesión acelerada xn converja antes hacia x. Esta esperanza, nos permite suponer que eltérmino

y = xn = xn −(f(xn)− xn)2

f(f(xn))− 2f(xn) + xn

se aproxima a x mejor que xn. Con esta idea en mente, ¿Porqué seguir iterando f en xn en lugarde considerar iterar las evaluaciones de y?

Eso es justo lo que propone el Método de Steffensen:

dada yn una aproximación a un punto fijo x de f ,

definimos

yn+1 = yn −(f(yn)− yn)2

f(f(yn))− 2f(yn) + yn.

Teorema 4.5.3 Sea f : [a, b] → [a, b] una función de clase C2 en [a,b], con un punto fijo enx ∈ (a, b) (f(x) = x), f ′(x) 6= 1. Entonces, existe δ > 0 tal que [x − δ, x + δ] ⊂ (a, b) y paracualquier y0 ∈ [x− δ, x+ δ] el algoritmo de Steffensen

yn+1 = yn −(f(yn)− yn)2

f(f(yn))− 2f(yn) + yn,

está bien definido y converge hacia x con convergencia de orden al menos 2.

Demostración:

Ideas que intervienen

Page 115: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 115

Escribir yn+1 − x en términos de yn − x utilizando el desarrollo de Taylor de f en x.

Utilizar la notación z(x) = o((x−x)k) para designar a los infinitésimos lımx→xz(x)

(x−x)k = 0,y simplificar las expresiones.

Recordar que o((x − x)k) + o((x − x)k′) = o((x − x)mın{k,k′}, (x − x)ko((x − x)k

′) =

o((x− x)k+k′ , etc.

(i) f(x) = x+ f ′(x)(x− x) + f ′′(x)2 (x− x)2 + o((x− x)2);

f(x)− x = f ′(x)(x− x) + f ′′(x)2 (x− x)2 + o((x− x)2)

(f(x)− x)2 = f ′(x)2(x− x)2 + o((x− x)2)

(ii) ∆fx := f(x)− x = (f ′(x)− 1)(x− x) + f ′′(x)2 (x− x)2 + o((x− x)2);

(∆fx)2 = (f(x)− x)2 = (f ′(x)− 1)2(x− x)2 + (f ′(x)− 1)f ′′(x)(x− x)3 + o((x− x)3;

(iii) f(f(x))− f(x) = (f ′(x)− 1)(f(x)− x) + f ′′(x)2 (f(x)− x)2 + o((f(x)− x)2) =

= (f ′(x)− 1)(f(x)− x) + f ′′(x)2 (f(x)− x)2 + o((x− x)2) ;

(iv) Restando (III-II) tenemos:

∆2fx := f(f(x))− 2f(x) + x = (f ′(x)− 1)(f(x)− x) +f ′′(x)

2 [(f(x)− x)2 − (x− x)2] + o((x− x)2) =(f ′(x)− 1)2(x− x) + (f ′(x)− 1)f

′′(x)2 (x− x)2 +

f ′′(x)2 (f ′(x)2 − 1)(x− x)2 + o((x− x)2) =

(f ′(x)− 1)2(x− x) + f ′′(x)2 (f ′(x)− 1)(1 + (f ′(x) + 1))(x− x)2 + o((x− x)2);

(v) Consideramos g(x) = x− (f(x)−x)2

f(f(x))−2f(x)+x .

g(x)− x =∆2fx(x− x)− (∆fx)2

∆2fx=

=f ′′(x)

2 (f ′(x)− 1)f ′(x)(x− x)3 + o((x− x)3)

(f ′(x)− 1)2(x− x) + f ′′(x)2 (f ′(x)− 1)(1 + (f ′(x) + 1))(x− x)2 + o((x− x)2)

=

=f ′′(x)

2 f ′(x)(x− x)2 + o((x− x)2)

(f ′(x)− 1) + f ′′(x)2 (1 + (f ′(x) + 1))(x− x) + o(x− x)

;

(vi)

lımx→x

g(x)− x(x− x)2

= lımx→x

f ′′(x)2 f ′(x) + o((x−x)2)

(x−x)2

(f ′(x)− 1) + f ′′(x)2 (1 + (f ′(x) + 1))(x− x) + o(x− x)

=f ′′(x)f ′(x)

2(f ′(x)− 1).

El algoritmo correspondiente a la aceleración de Steffensen para iteraciones de punto fijo esel siguiente. En recuadros grises con texto en blanco tenéis las modificaciones al algoritmo depunto fijo:

Page 116: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

116 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 4.9 Iteración de punto fijo con Aceleración de SteffensenDatos de entrada:Función f ; x0 ∈ R; precision ∈ R; nmaxiter ∈ ZDatos de salida: solución x (f(x) = x) o mensaje de errorVariables:xx = x0 // los puntos de la órbita.fx; // el siguiente punto de la órbita f.

ffx; // para el siguiente punto de la órbita f(fx).Fujo del programa:

for(k=1;k<=nmaxiter;k++){fx = f(xx);

ffx = f(fx);

if(|xx− fx| < precision){ Parada: Punto fijo en xx }

xx = xx− ((fx− xx) ∗ (fx− xx))/(ffx− 2 ∗ fx+ xx);

}Parada: Error: No hay convergencia en nmaxiter iteraciones

Notas:

Observad que la hipótesis del teorema anterior, f ′(x) 6= 1, es más general que pedir que elpunto fijo x sea un atractor, también puede darse en repulsores.

La diferencia fundamental entre el método de aceleración de Aitken y el método de Stef-fensen aplicados a una iteración de punto fijo, radica en que en el método de Aitken laaceleración se produce sobre la sucesión de iteradas que hay que construir de entrada,mientras que en el método de Steffensen se construye directamente la sucesión acelerada.

Si las iteradas de punto fijo convergen linealmente, la acelerada de Steffensen lo hace almenos cuadráticamente. Si las iteradas de punto fijo convergen con convergencia de ordenp > 1, las de Steffensen convergen con convergencia de orden al menos 2p− 1 [1]

Ejemplo 4.5.4 La función f(x) = 0.25ex considerada en los ejemplos 4.3.11, 4.3.12 y 4.5.2 ,tiene dos puntos fijos, uno atractor y el otro repulsor.

Recordad que la iteración de punto fijo para f , con inicio x0 = 0.1 aproximamos el punto fijox = 0.35740295618138784 en 33 pasos, y que acelerando con Aitken este número de iteracionesse reduce a 15 pasos.

El método de Steffensen con inicio en el mismo x0 = 0.1 proporciona la aproximación ax = 0.35740295618138895 en sólo 5 pasos.

Si consideramos la función g(x) = f(x) − x, que se anula en los puntos fijos de f , podemoscomparar el método de Steffensen de búsqueda de puntos fijos de f con el de Newton paralocalizar los ceros de f .

La iteración de Newton para g, con inicio en x0 = 0.1 proporciona x = 0.3573508313620166en 3 pasos.

El otro cero de g se puede encontrar haciendo la iteración de Newton con inicio en x0 = 2.1,obteniendo x = 2.153299834108639 en 3 iteraciones.

Si hacemos la iteración de Steffensen de f con inicio en x0 = 2.1 obtenemos el punto fijorepulsor x = 2.1532923641103503 en 5 pasos.

Page 117: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 117

Observad que el método de Steffensen también permite localizar puntos fijos repulsores, taly como señalábamos antes.

Ejercicio 4.22 Genera las cinco primeras iteraciones de la sucesión de aceleradas de Aitken xnen cada uno de los casos:

(i) x0 = 0.5, xn+1 = 2−exn+x2n

3 .

(ii) x0 = 7, xn+1 = 0.5(cosxn + senxn).

(iii) x0 = 0, xn+1 = 1√3e−

xn2 .

Ejercicio 4.23 Aplica el método de Steffensen para aproximar las soluciones de las ecuacionessiguientes con un error menor que 10−5.

(i) x == 2−ex+x2

3 .

(ii) x == 0.5(cosx+ senx).

(iii) 3x2 == e−x.

Compara los resultados con los del ejercicio anterior.

Referencias para la sección

Aceleración de Aitken: Libro de Burden-Faires [3] y libro de Atkinson [?].

Para más ejemplos y ejercicios podéis acudir al libro de Aubanell, Benseny y Delshams [1].

Ejemplos y métodos implementados en las practicas 5 y 6 y en los ficheros complementariosque están en SUMA.

4.6. Polinomios

En esta sección vamos a analizar distintos métodos para obtener aproximaciones de cerosde polinomios, e.d. soluciones de ecuaciones polinómicas p(x) == 0. Vamos a ver un par demétodos “locales”, en el sentido de aproximar ceros de forma individual, y un método “global”,en el sentido de intentar aproximar simultáneamente todos los ceros del polinomio.

Una observación a tener en cuenta es que un polinomio puede tener todos sus coeficientesreales y sus raíces no tienen porque ser reales. Por ejemplo, en el polinomio

p(x) = x2 + 1 = (x+ i)(x− i)

los coeficientes son números reales y las raíces +i y −i no lo son. En estos casos, si z0 ∈ C esuna raíz del polinomio de coeficientes reales p(z) = a0 + a1z + · · · + anz

n tomando conjugadosen la expresión p(z0) = 0 se deduce que z0 también es raíz de p(z).

p(z0) = a0 + a1z0 + · · ·+ anz0n = a0 + a1z0 + · · ·+ anzn0 = p(z0) = 0.

Así, cada vez que obtenemos una raíz compleja también obtenemos su conjugada.A la hora de construir algoritmos de búsqueda de raíces de polinomios deberemos tener

presente la conveniencia de programarlos utilizando variables complejas (en C) aunque estemospensando en utilizarlos con polinomios reales.

Page 118: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

118 um.es / Cálculo Numérico en una variable, 2011-2012

4.6.1. Localización de ceros

Para aplicar alguno de los métodos descritos en las secciones anteriores para aproximar raíceses conveniente disponer de buenas aproximaciones iniciales de las mismas. A continuación, vamosa localizar regiones del plano complejo en las que tenemos la certeza de que podemos encontrarraíces de un polinomio, y en las que elegiremos nuestras aproximaciones iniciales.

Teorema 4.6.1 Todas las raíces del polinomio de grado n, p(z) = a0 + a1z + · · ·+ anzn están

en el disco de centro 0 y radio ρ,

ρ = 1 +1|an|

max{|a0|, . . . , |an|}

Demostración:

Ideas que intervienen

Vamos a ver que para |z| > ρ se tiene |p(z)| > 0. Así, todas las raíces de p(z) están dentrodel disco de centro 0 y radio ρ. Sólo usamos la desigualdad triangular.

Sea M = max{|a0|, |a1|, . . . , |an|} y ρ como en el enunciado, entonces ρ− 1 = M|an| .

Si |z| > ρ, entonces |an|(|z| − 1) > |an|(ρ− 1) > |an| M|an| = M .La desigualdad triangular proporciona la siguiente cadena de desigualdades que dan la prueba.

|p(z)| = |(a0 + a1z + · · ·+ an−1z

n−1)

+ anzn|

≥ |an||z|n −(|a0|+ |a1||z|+ · · ·+ |an−1||z|n−1

)≥ |an||z|n −M

(1 + |z|+ · · ·+ |z|n−1

)= |an||z|n −M

|z|n − 1|z| − 1

≥ |an||z|n −M|z|n

|z| − 1

= |z|n(|an| −M

1|z| − 1

)=|z|n

|z| − 1(|an|(|z| − 1)−M

)>|z|n

|z| − 1(M −M) = 0

Ejemplo 4.6.2 Los ceros del polinomio p(z) = z4−4z3+7z2−5z−2 están en el circulo de centro0 y radio ρ = 1 + max{2, 5, 7, 4, 1} = 1 + 7 = 8. En la figura 4.1 representamos gráficamente losvalores del polinomio real |p(x)| comprendidos entre −0.5 y 2 cuando x varia en el intervalo real[−8, 8] y observamos que el polinomio sólo tiene dos raíces reales en los cortes de la gráfica conel eje x.

Por otra parte en la figura 4.2 representamos las curvas de nivel de la función |p(z)| en elrectángulo [−1, 4]× [−2.5, 2.5] del plano complejo, contenido en el disco con centro en el origeny radio 8, y visualizamos la posición de las cuatro raíces (las dos reales y las dos complejasconjugadas).

Page 119: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 119

-7.5 -5 -2.5 2.5 5 7.5

-0.5

0.5

1

1.5

2

Figura 4.1: Localización de las raices reales de p(z) = z4 − 4z3 + 7z2 − 5z − 2

-1 0 1 2 3 4

-2

-1

0

1

2

Figura 4.2: Localización de las raíces reales y complejas de p(z) = z4 − 4z3 + 7z2 − 5z − 2

Observación 4.6.3 El teorema de localización 4.6.1 nos da una acotación superior del módulode los ceros de un polinomio. ¿Es posible tener también una acotación inferior?

La respuesta a esta cuestión es afirmativa y para conseguir encontrar una acotación inferiorvamos a recurrir al habitual truco de invertir la variable, es decir hacer el cambio z = 1

w quetransforma números z pequeños en números w grandes y viceversa.

Pero antes de hacer el cambio de variable vamos a detenernos un instante en el caso en quela acotación inferior es 0, es decir cuando z0 = 0 es una raíz del polinomio. En este caso, nonecesitamos recurrir a ningún algoritmo particular para descubrir este cero pues el polinomiotiene una expresión de la forma

p(z) = akzk + ak+1z

k+1 + · · ·+ anzn = zk

(ak + · · ·+ anz

n−k)

con ak 6= 0. De la expresión deducimos sin más que 0 es una raíz de p de multiplicidad k y elproblema de búsqueda de raíces se reduce al caso de polinomios que no se anulan en 0.

Supongamos que p(z) = a0 + a1z + · · · + anzn es un polinomio de grado n que no se anula

en z = 0, por lo tanto, con a0 6= 0 y an 6= 0.Haciendo z = 1

w tenemos p(z) = p( 1w ) = 1

wn

(a0w

n + a1wn−1 + · · ·+ an−1w + an

).

Como 1w 6= 0, p(z) = 0 si, y sólo si, q(w) = a0w

n + a1wn−1 + · · · + an−1w + an = 0.

Ahora hacemos uso del teorema de localización y podemos asegurar que p(z) = 0 sólo cuando|w| = 1

|z| ≤ ρ′ (|z| ≥ 1

ρ′ ), donde

ρ′ = 1 +1|a0|

max{|a0|, . . . , |an|}.

Volviendo al ejemplo 4.6.2, para p(z) = z4 − 4z3 + 7z2 − 5z − 2, ρ′ = 1 + 72 = 9

2 y podemosasegurar que las raíces de p están en el anillo A = {z : 2

9 ≤ |z| ≤ 8}.

Page 120: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

120 um.es / Cálculo Numérico en una variable, 2011-2012

Reuniendo la observación con el Teorema 4.6.1, tenemos el siguiente resultado:

Corolario 4.6.4 Sea p(z) = a0 + a1z + · · ·+ anzn un polinomio de grado n que no se anula en

z = 0, a0 6= 0 y an 6= 0, y sean

ρ = 1 +1|an|

max{|a0|, . . . , |an|} y ρ′ = 1 +1|a0|

max{|a0|, . . . , |an|}.

Entonces, los ceros de p(z) están en el anillo A = {z : 1ρ′ ≤ |z| ≤ ρ}.

Ejercicio 4.24 (Repaso) Considera el polinomio p(x) = 2x5−6x4−5x3 +x2−8x+ 2. Utilizael algoritmo de Horner para

(i) calcular p(4).

(ii) escribir su desarrollo en potencias de (x− 4).

Continuando con este polinomio, localiza un disco que contenga todas las raíces de p, y un discocentrado en el origen que no contenga ninguna raíz de p.

4.6.2. El método de Newton para polinomios.

En la sección 4.2.1 estudiamos el método de Newton para aproximar ceros de funciones p(z),y ya sabemos que si partimos de una aproximación inicial x0 suficientemente próxima a un cerosimple de p, la iteración de Newton dada por

xn+1 = xn −p(xn)p′(xn)

converge cuadráticamente hacia ese cero de p(z).

El esquema de Horner se puede utilizar para evaluar simultáneamente los valores de p y p′,tal y como reflejamos en la siguiente versión del algoritmo de Newton para polinomios.

Page 121: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 121

Algoritmo 4.10 Newton para polinomiosDatos de entrada:a0, a1, . . . , an(coeficientes del polinomio p); z0 (condición inicial); e(precisión para la parada); nmax (número máximo de iteraciones)Fujo del programa:xi = z0; xf = 0;for(j=1;j<=nmax;j++){

b = an; c = b; //evaluación de p(xi) y p′(xi)- Hornerfor(k=n-1;k>=1;k- -){b = bxi+ ak;c = cxi+ b; // p′(xi) = c}

b = bxi+ a0; // p(xi) = bif(|c| 6= 0){xf = xi− (b/c);}

else{Parada: Error: Derivada nula}

if((|b|< e) or (|xf-xi|<e)){Parada: (raíz en) xi}

else{xi = xf}

}Parada: Error: No hay convergencia en nmax iteraciones

Datos de salida: Raíz en xi, o mensaje de Error

Otra propiedad del método de Newton para polinomios interesante la proporciona el siguienteteorema que permite localizar un cero del polinomio dadas dos iteraciones consecutivas, y ofreceuna estimación del error cometido al aproximar una raíz del polinomio por una iterada deNewton.

Teorema 4.6.5 Sean xi y xf dos iteraciones sucesivas del método de Newton para un polinomiop(z) de grado n ≥ 1. Entonces existe un cero de p(z) en el disco complejo de centro xi y radion|xi− xf |.

Demostración:Ideas que intervienen

El teorema de factorización 2.2.4, proporciona una representación del cociente p′(z)p(z) deri-

vada logarítmica de p(z) (llamado así porque coincide con la derivada de log(p(z))). Enefecto, si z1, z2, . . . , zn son las raíces de p(z) repetidas según su multiplicidad,

p(z) = an(z − z1)(z − z2) · · · (z − zn) = an

n∏k=1

(z − zk)

p′(z) = an

n∑k=1

n∏j=1,j 6=k

(z − zj) =n∑k=1

p(z)z − zk

= p(z)n∑k=1

1z − zk

.

Page 122: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

122 um.es / Cálculo Numérico en una variable, 2011-2012

El corrector de la aproximación inicial xi en el método de Newton viene dado por −p(xi)p′(xi)que en términos de las raíces del polinomio se puede escribir como:

xf − xi = − p(xi)p′(xi)

=−1∑n

k=11

xi−zk

.

Alguna de las raíces cumple |xi − zk| ≤ n|xi − xf |, pues en otro caso la desigualdadtriangular nos llevará a una contradicción.

Si suponemos que |xi − zk| > n|xi − xf | para k = 1, . . . , n, tendremos la siguiente cadenacontradictoria de desigualdades:

|xf − xi| = 1|∑n

k=11

xi−zk|

≥ 1∑nk=1

1|xi−zk|

>1∑n

k=11

n|xi−xf |=

11

|xi−xf |= |xi− xf |

Ejemplo 4.6.6 Calculando con ocho cifras decimales, las cinco primeras iteraciones del métodode Newton aplicado al polinomio de los ejemplos anteriores p(z) = z4 − 4z3 + 7z2 − 5z − 2 conincio en x0 = 0 y estimaciones del error con respecto a la raíz próxima a x0 = 0 (véase la figura4.1) obtenemos los siguientes datos:

k p(xk) p′(xk) xk 4|xk−1 − xk|1 -2. -5. 02 1.4016 -12.776 -0.4 1.63 1.46321856 -10.1732291 -0.2902943 0.43882284 0.00225803 -9.86029921 -0.27591126 0.057532145 5.6 10−7 -9.85536835 -0.27568226 0.000283986 3.6 10−14 -9.85536711 -0.27568220 0.00000024

El teorema anterior nos asegura que −0.2756822 es una aproximación de la raíz buscada con unerror menor que 2.4 10−7.

En general, no tenemos ningún procedimiento que nos proporcione una aproximación inicialpara la cual el algoritmo de Newton sea convergente. Sin embargo, esta regla general si existeen algunos casos importantes, como en el siguiente teorema.

Teorema 4.6.7 Sea p(z) un polinomio de grado n > 2 con todas sus raíces y coeficientes reales.Si

rn ≤ rn−1 ≤ · · · ≤ r2 ≤ r1

son los ceros de p(z) ordenados en forma decreciente, y x0 > r1 entonces el método de Newtonproporciona una sucesión de iteradas xk estrictamente decreciente convergente hacia r1.

Demostración:

Ideas que intervienen

Page 123: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 123

El Teorema de Rolle para funciones reales de variable real nos asegura que entre cada dosraíces reales consecutivas, rk y rk+1, hay una raíz sk de la derivada de p(x).

rn ≤ sn−1 ≤ rn−1 ≤ · · · ≤ r2 ≤ s1 ≤ r1.

En consecuencia, p′(x) tiene n − 1 ceros reales s1, . . . , sn−1 y todos son menores que r1.Entonces p′(x) no se anula en [r1,+∞).

Haciendo el mismo razonamiento con los n− 1 ceros de p′(x) podemos concluir que p′′(x)tampoco se anula en [r1,+∞).

Se cumplen las hipótesis del teorema 2.4.2 de convergencia global para el método de New-ton, que asegura la monotonía y convergencia de las iteradas de Newton con inicio enx0 > r1. �

Reuniendo este teorema y el teorema de localización 4.6.1 tenemos el siguiente corolario.

Corolario 4.6.8 Si p(z) = a0 + a1z + · · · + anzn tiene todos sus coeficientes y raíces reales

y elegimos x0 > 1 + 1|an| max{|ak| : k = 1, . . . , n}, entonces el algoritmo de Newton xk+1 =

xk − p(xk)p′(xk) , genera una sucesión monótona decreciente hacia la mayor de las raíces de p(z).

Para el caso de polinomios con todas sus raíces reales, el corolario anterior nos marca uncamino a seguir para localizar todas las raíces. Una vez localizada la mayor raíz r1 si hacemos ladeflación de p en r1 obtenemos un polinomio de grado n− 1 con todas sus raíces reales al cualpodemos repetir el proceso.

En el libro de Stoer y Burlisch [7] podéis encontrar modificaciones interesantes para acele-rar el método de Newton cuando 1 + 1

|an| max{|ak| : k = 1, . . . , n} está lejos de r1. Tambiéntiene procedimientos alternativos a la deflación para hacer la búsqueda de ceros más establenuméricamente.

Ejercicio 4.25 Evalúa dos pasos del método de Newton aplicado al polinomio

p(z) = 9z4 − 7z3 + 7z2 − 2z + 5,

empezando en x0 = 6 y evaluando simultáneamente p y p′.

Ejercicio 4.26 Sea p(x) = a0 +a1x+ · · ·+anxn un polinomio con an > 0. Prueba que si existe

R > 0 con p(k)(R) > 0 para k = 0, 1, . . . , n− 1, entonces p(x) > 0 para x > R.

Ejercicio 4.27 Aplicando el método de Newton a un polinomio p(x) con todos sus ceros realespara encontrar la raíz α de valor mínimo, iniciamos la iteración con un valor inicial x0 < α.¿Porqué podemos asegurar que la iterada de Newton converge hacia α?

4.6.3. El método de Laguerre.

Este método se emplea en varios paquetes de cálculo debido a que sus propiedades de conver-gencia son muy favorables, tiene convergencia de orden tres para condiciones iniciales próximasa una raíz simple. Además sus cálculos numéricos son bastante robustos .

Antes de describir este algoritmo vamos analizar algunos resultados tratando de localizar lasraíces de un polinomio. En un primer lema vamos a posicionar n números reales en un intervalocentrado en su media aritmética y con longitud medida en términos de su desviación típica. Sinllegar a describir y usar estos estadísticos lo enunciamos como sigue:

Page 124: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

124 um.es / Cálculo Numérico en una variable, 2011-2012

Lema 4.6.9 Dados n números reales v1, v2, . . . , vn, sean α =∑n

j=1 vj y β =∑n

j=1 v2j .

Entonces todos los números vj pertenecen al intervalo de extremos

α±√

(n− 1)(nβ − α2)n

.

Demostración:

Ideas que intervienen

Vamos a ver que para un polinomio q(x) de grado 2, que toma valores positivos para |x|grande, q(vj) ≤ 0 en cada número vj y, por lo tanto, estos números están en el intervalocuyos extremos son las dos raíces del polinomio q, que van a coincidir con los números:

α±√

(n− 1)(nβ − α2)n

.

No es restrictivo trabajar sólo con el número v1. Para los otros números basta con permutarlas posiciones, y observar que estas permutaciones no afectan a los valores de α y β.

Utilizaremos la desigualdad de Cauchy-Schwartz:

m∑k=1

akbk ≤

(m∑k=1

a2i

) 12(

m∑k=1

b2i

) 12

.

0 ≤ (α− v1)2 = α2 − 2αv1 + v21 (4.6)

= (α− v1)2 = (v2 + · · ·+ vn)2 = (1.v2 + 1.v3 + · · ·+ 1.vn)2 ≤ ( Cauchy-Schwartz )

≤ (n− 1)(v22 + v2

3 + · · ·+ v2n)

= (n− 1)(β − v21) =

= (n− 1)β − nv21 + v2

1 (4.7)

Restando las expresiones 4.6 y 4.7 se tiene que

0 ≤ (n− 1)β − nv21 + 2αv1 − α2,

nv21 − 2αv1 + α2 − (n− 1)β ≤ 0.

Considerando el polinomio q(x) = nx2−2αx+ (α2− (n−1)β), q(v1) ≤ 0. Como lımx→∞ q(x) =+∞, q(x) cambia de signo, q tiene raíces reales, y v1 está comprendido entre las dos raíces reales:

x =α±

√(n− 1)(nβ − α2)

n.

En la sección anterior analizábamos las distancias de un punto a las raíces de un polinomioescribiendo

p′(x)p(x)

=n∑j=1

1x− zj

,

Page 125: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 125

donde z1, . . . , zn son las n raíces de p(x). Derivando en esa expresión con respecto a x y cam-biando los signos, tenemos

−p(x)p′′(x) + p′(x)2

p(x)2=

n∑j=1

1(x− zj)2

.

Reescribiendo el lema anterior con vj = 1x−zj

, α = p′(x)p(x) , β = p′(x)2−p(x)p′′(x)

p(x)2, se tiene el

siguiente resultado.

Lema 4.6.10 Sea p(x) un polinomio de grado n cuyos ceros, z1, . . . , zn, son todos reales. En-tonces para cualquier número real x que no sea cero de p, los números 1

x−zjestán en el intervalo

de extremos

p′(x)±√

(n− 1)2p′(x)2 − n(n− 1)p(x)p′′(x)np(x)

.

Demostración: Basta con utilizar el lema anterior y escribir:

α±√

(n− 1)(nβ − α2)n

=p′(x)±

√(n− 1)2p′(x)2 − n(n− 1)p(x)p′′(x)

np(x). �

Supongamos que xi es una aproximación de una raíz de p, y que zj es la raíz de p máspróxima a xi. Entonces, la fracción 1

xi−zjserá la de mayor tamaño (en valor absoluto). La idea

de Laguerre consiste en aproximar el valor de esta fracción por el del extremo, C, del intervalodado por el lema, que tiene mayor tamaño. Invirtiendo la fracción 1

xi−zjy su aproximación C,

obtenemos xf = xi− 1C como una nueva aproximación de zj .

Así el algoritmo de Laguerre consiste en el siguiente proceso iterativo:

(i) se parte de una aproximación inicial xi de una raíz de p,

(ii) se calcula A = −p′(xi)p(xi) (A = −α en la discusión anterior)

(iii) se calcula B = p′(xi)2−p(x)p′′(xi)p(xi)2

(B = β en la discusión anterior)

(iv) se elige el signo ± para que −C = A±√

(n−1)(nB−A2)

n tenga el mayor valor absoluto.

(v) y se toma xf = xi− 1C como la nueva aproximación de la raíz de p.

En el algoritmo 4.11 se presenta el método de Laguerre en términos de las dos primerasderivadas del polinomio (evaluadas simultáneamente con el método de Horner) e incluyendo lascorrespondientes condiciones de parada.

Page 126: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

126 um.es / Cálculo Numérico en una variable, 2011-2012

Algoritmo 4.11 Método de LaguerreDatos de entrada:a0, a1, . . . , an(coeficientes del polinomio p); z0 (condición inicial); e(tolerancia para la parada); nmax (número máximo de iteraciones)Fujo del programa:xi = z0; xf = 1 + z0;for(j=1;j<=nmax;j++){

b = an; c = b; d = b //evaluación de p(xi), p′(xi), p′′(xi)- Hornerfor(k=n-1;k>=2;k- -){b = bxi+ ak;c = cxi+ b;d = dxi+ c; // p′′(xi) = 2d}

d = 2d; // p′′(xi) = db = bxi+ a1;c = cxi+ b; // p′(xi) = cb = bxi+ a0; // p(xi) = bif(|b|< e){ Parada:Raíz en xi }// A = −(c/b); B = (c2 − b ∗ d)/b2; −C = (1/n) ∗ (A±

√(n− 1)(nB −A2);

C1 =(

1nb

)(c+

√(n− 1)2c2 − n(n− 1)bd;

C2 =(

1nb

)(c−

√(n− 1)2c2 − n(n− 1)bd;

if(|C1|<|C2|){ C = C2;}else{C = C1;}

if(|C|<e){ Parada:Error: primera y segunda derivadas nulas }xf = xi− 1

C ;if(|xf-xi|<e){Parada:Raíz en xi }xi = xf ;}

Parada: Error: No hay convergencia en nmax iteracionesDatos de salida: Raíz en xi, o mensaje de Error

El siguiente teorema asegura la convergencia global del método de Laguerre aplicado a po-linomios con todas sus raíces reales. El método converge a una raíz para cualquier condicióninicial que se tome.

Teorema 4.6.11 Sea p(x) un polinomio real cuyas raíces son todas reales. Entonces la sucesiónde iteradas de Laguerre con un punto inicial arbitrario x0 converge monótonamente hacia unode los dos ceros de p que tiene más próximos.

Page 127: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 127

Demostración:

Ideas que intervienen

Si r1 ≤ r2 ≤ · · · ≤ rn son las n raíces de p, entonces, entre cada par de raíces consecutivasel signo de p es constante. Además entre cada par de raíces sólo hay un cero de p′(x) taly como veíamos en 4.6.7. Así, si p es positiva, p pasa de ser creciente a decreciente y si pes negativa entonces p pasa de ser decreciente a ser creciente.

r rj j+1

xx01

p(x)

r rj j+1

xx01

p(x)

Si por ejemplo rj < x0 < rj+1 con p(x) > 0 entre las dos raíces y además p′(x0) > 0, p(x)es creciente entre rj y x0 y vamos a ver que rj ≤ x1 < x0 < rj+1, que p(x1) > 0 y quep′(x1) > 0. Repitiendo el argumento, rj ≤ x2 < x1 < x0 < rj+1. Es decir xk es monótonadecreciente y está acotada por inferiormente por rj y, en consecuencia, es convergente.

Si xk converge hacia y, de las fórmulas de iteración resulta que xk+1 − xk = 1C(k) → 0,

entonces C(k)→∞. Ahora de la construcción de los valores de C(k):

C(k) =p′(xk)±

√(n− 1)2p′(xk)2 − n(n− 1)p(xk)p′′(xk)

np(xk)

se deduce que el denominador p(xk) tiende a p(y) = 0. Así, y es un cero de p, y por ladisposición de los xk, y = rj .

Vamos a restringirnos al caso rj < x0 < rj+1 con p(x) > 0 entre las dos raíces y ademásp′(x0) > 0. Los otros casos se pueden analizar en la misma forma.

Como x0 no es una raíz, el lema 4.6.10, nos posiciona todas las fracciones 1x0−rj en el intervalo

de extremos

u(x0) =p′(x0) +

√(n− 1)2p′(x0)2 − n(n− 1)p(x0)p′′(x0)

np(x0)y

v(x0) =p′(x0)−

√(n− 1)2p′(x0)2 − n(n− 1)p(x0)p′′(x0)

np(x0)

En particular para las dos raíces rj y rj+1 se tiene que

v(x0) ≤ 1x0 − rj+1

< 0 <1

x0 − rj≤ u(x0).

De estas desigualdades se sigue que

x0 − rj+1 ≤1

v(x0)< 0 <

1u(x0)

≤ x0 − rj y rj ≤ x0 −1

u(x0)< x0 < x0 −

1v(x0)

≤ rj+1

Como p′(x0) > 0, |v(x0)| < |u(x0)|, y x1 = x0 − 1u(x0) . Lo que prueba la desigualdad buscada

rj ≤ x1 < x0. Además, p es creciente entre rj y x0, por lo que también se tiene p′(x1) > 0Un buen ejercicio para comprobar como funciona el teorema es realizar la demostración en

los casos restantes. �

Page 128: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

128 um.es / Cálculo Numérico en una variable, 2011-2012

Al igual que en el método de Newton, teorema 4.6.5, la construcción de Laguerre tambiénproporciona un disco donde localizar raíces expresado en términos de los cálculos realizados encada iteración. Una prueba del siguiente teorema puede verse en el libro de Kincaid y Cheney [8,pág. 103-105].

Teorema 4.6.12 (Kahan 1967) Sea p(z) un polinomio de grado n, y z0 ∈ C un número com-plejo que tomamos como aproximación inicial en el primer paso de la iteración de Laguerre. SiC se calcula como en el algoritmo,

(1|C| = |xf − xi|

), entonces p(z) tiene un cero en el disco

D(z0,

√n

|C|) =

{z : |z − z0| <

√n

|C|

}Para finalizar revisitamos el polinomio de los ejemplos anteriores:

Ejemplo 4.6.13 Las tres primeras iteraciones del método de Laguerre aplicado a

p(z) = z4 − 4z3 + 7z2 − 5z − 2

con incio en x0 = 0 muestran la rápida convergencia del método de Laguerre a la raíz máspróxima a x0. En la última columna escribimos la cota del error que proporciona el teorema deKahan:

k xk p(xk)√

4/|C|1 0 -2. 0.55777428551206042 -0.2788871427560302 0.031696585387203324 0.0064098860968789623 -0.2756821997075907 0.011457452669712431 7.886788553624726E-94 -0.275682203650985 0. 0.

Obsérvese cómo en la primera aproximación del ejemplo anterior se tienen fijas 2 cifrasdecimales, en la seguna pasan a ser 6 las cifras de precisión y en la tercera se alcanza la precisiónde la máquina. En consonancia con que el orden de convergencia de este método es 3.

Ejercicio 4.28 Utilizando el Método de Laguerre, partiendo de x0 = −15, aproxima un cerodel polinomio

p(x) = x4 + 2x3 + 3x2 + 4x+ 5.

4.6.4. Separación de raíces reales. Sucesiones de Sturm.

En esta sección vamos a trabajar con polinomios con coeficientes reales buscando localizarintervalos en los que podamos asegurar la existencia de raíces reales y determinar el número deraíces reales distintas que tiene el polinomio.

Vamos a utilizar las sucesiones de Sturm para construir un método que cuenta el número deraíces reales que un polinomio tiene en un intervalo. Después usamos ese método como en elalgoritmo de la bisección: partiremos de un intervalo [−A,A], donde A es el radio del disco quecontiene a todas las raíces (véase el teorema 4.6.1); este intervalo contiene a todas las raíces reales,luego iremos dividiendo los intervalos en mitades, contaremos el número raíces en cada mitad,y nos iremos quedando con los trozos que contengan alguna raíz. Conforme vayamos avanzandocon la bisección de los intervalos iremos localizando las raíces reales de forma simultánea. Comoel proceso de bisección no es muy rápido, una vez separadas las raíces en intervalos disjuntos sepuede ensayar con Newton o Laguerre para localizarlas más rápidamente.

Pero primero veamos un resultado más clásico:

Page 129: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 129

4.6.4.1. Regla de Descartes (1612)

Definición 4.6.14 El número de cambios de signo en una sucesión finita {a0, a1, . . . , an} es elnúmero de veces que hay un cambio de un valor positivo a otro negativo, o de uno negativo aotro positivo, ignorando los términos que son cero .

Por ejemplo, en {1, 0,−2, 0,−4, 3, 2, 1} contaremos sólo dos cambios de signo.

Para poder contar el número de cambios de signo de una lista utilizamos el siguiente métodoque no tiene en cuenta los ceros3:

Algoritmo 4.12 Método cuentaCambiosDeSignoDatos de entrada:lista[]( lista de números reales);Variables: ncambios=0; //para contar los cambios de signo

ini=0; sig=0; //ídices para movernos por la sucesiónm=(número de elementos de la lista a);//usamos un método signo(x)=+1,-1, o 0, si x>0,x<0, o x=0

Fujo del programa:pini=lista[ini]; psig=0.;while((ini<m) y (pini==0)){ ini=i+1; pini=lista[ini];

if((ini==m-1)){ Parada: devolver ncambios; } }while(ini< m-1){

sig=ini+1; psig=lista[sig];while((sig<m) y (psig==0)){ sig=sig+1 ; psig=lista[sig]; }if(signo(pini)!=signo(psig)){ ncambios=ncambios+1; }

ini=sig;}

Parada:devolver ncambios;Datos de salida: número de cambios de signo de una lista

Una mirada a la sucesión de los coeficientes del polinomio permite estimar el número de raícesreales en función de los cambios de signo que se producen.

Teorema 4.6.15 (Regla de Harriot-Descartes) El número de raíces positivas del polinomiode coeficientes reales

p(x) = a0 + a1x+ · · ·+ anxn

es menor o igual al número de cambios de signo en la sucesión de los coeficientes {a0, a1, . . . , an}y difiere de éste en un número par4.

La regla de Descartes, también puede utilizarse para acotar el número de raíces negativas deun polinomio p(x), basta con aplicarsela al polinomio q(x) = p(−x) porque las raíces positivasde q determinan las negativas de p.

Ejemplo 4.6.16 Veamos que dice la regla de Descartes de nuestro polinomio

p(x) = x4 − 4x3 + 7x2 − 5x− 2.

3En Java (desde la versión 1.5), la función Math.signum permite evaluar los signos y distinguir cuando unnúmero es cero de forma estable.

4La apreciación de que esta diferencia es un número par es de Gauss (1828)

Page 130: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

130 um.es / Cálculo Numérico en una variable, 2011-2012

Aquí la sucesión de coeficientes y {−2,−5, 7,−4, 1} tiene 3 cambios de signo, por lo tantopodríamos tener 3 raíces reales positivas. Aunque en este caso ya sabemos que sólo tiene 1(difiere de 3 en el número par 2).

Los coeficientes de q(x) = p(−x) {−2, 5, 7, 4, 1} sólo presentan un cambio de signo. Ahora laregla de Descartes sólo se puede interpretar en el sentido de que existe una única raíz negativa(ya la hemos aproximado con anterioridad con Newton y Laguerre).

La prueba de esta regla puede obtenerse como corolario del siguiente resultado de Budan-Fourier observando que los signos de las derivadas sucesivas de p en x = 0 coinciden con lossignos de los coeficientes de p y que para valores grandes de x (en +∞) el signo de p y los detodas sus derivadas coinciden con el del coeficiente de mayor exponente.

Teorema 4.6.17 (Boudan-Fourier) Sea p(x) = a0 + a1x + · · · + anxn un polinomio real de

grado n, y sea δ(x) el número de cambios de signo de la sucesión

{p(x), p′(x), . . . , p(n)(x)}.

Entonces el número de ceros de p (repetidos según su multiplicidad) que hay en [a, b] (con p(a) 6=0 y p(b) 6= 0), es menor o igual al número δ(a)− δ(b), y difiere de éste en un número par.

Una prueba completa de este teorema puede encontrarse en el libro «Álgebra, vol 1» deP.M. Cohn [5, vol. 1, pág. 149]

Ejercicio 4.29 Utiliza la regla de Descartes para comprobar que p(x) = x3 − x2 − x− 1 tieneuna única raíz real positiva. Calcúlala.

4.6.4.2. Sucesiones de Sturm.

En este apartado vamos a trabajar con polinomios con coeficientes reales buscando localizarintervalos en los que podamos asegurar la existencia de raíces reales y determinar el número deraíces reales distintas que tiene el polinomio. Seguiremos el libro de Stoer y Bulirsh [7, Section5.6, pp. 297-301] y el de Aubanell, Benseny y Delshams [1, Sección 5.2.4, pp. 404-406] . Vamos autilizar las sucesiones de Sturm para construir un método que cuenta el número de raíces realesque un polinomio tiene en un intervalo. Después usamos ese método como en el algoritmo dela bisección: partiremos de un intervalo [-A,A], donde A es el radio del disco que contiene atodas las raíces (véase el apartado 4.6.4.3); este intervalo contiene a todas las raíces reales, luegoiremos dividiendo los intervalos en mitades, contaremos el número de raíces en cada mitad, ynos iremos quedando con los trozos que contengan alguna raíz. Conforme vayamos avanzandocon la bisección de los intervalos iremos localizando las raíces reales de forma simultánea. Comoel proceso de bisección no es muy rápido, una vez separadas las raíces en intervalos disjuntos sepuede ensayar con Newton o Laguerre para localizarlas más rápidamente.

Definición 4.6.18 Una sucesión de funciones reales continuas

{f0, f1, . . . , fm}

definidas en un intervalo [a, b], es una sucesión de Sturm si se cumplen las cuatro condicionessiguientes

(i) f0 es derivable en [a, b].

Page 131: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 131

(ii) fm no tiene raíces reales en [a, b] (no se anula).

(iii) Si f0(x) = 0 entonces f1(x).f ′0(x) > 05

(iv) Si fi(x) = 0 (i ∈ {1, 2, . . . ,m− 1}) entonces fi+1(x)fi−1(x) < 0.

La tercera condición implica que f0 sólo puede tener raíces simples, y tanto esta condición comola siguiente permiten detectar las raíces de f0 observando el número de cambios n(x) de signoen la sucesión {f0(x), f1(x), . . . , fm(x)} tal y como establece el siguiente teorema.

Teorema 4.6.19 (Sturm) Sea {f0, f1, . . . , fm} una sucesión de Sturm en el intervalo [a, b], talque f0(a).f0(b) 6= 0, y sea n(x) el número de cambios de signo en la sucesión

{f0(x), f1(x), . . . , fm(x)}.

Entonces el número de raíces reales de f0 en [a, b] es igual a n(a)− n(b).

Demostración:

Ideas que intervienen

De la continuidad de las funciones fi, el número de cambios de signo n(x) va a ser constanteen entornos de los puntos x0 en los que no se anula ninguna de las funciones. Por lo que estenúmero n(x) sólo se pude ver modificado al pasar por alguno de los ceros de las mismas.

Bastará con observar que n(x) disminuye en una unidad al pasar por cada una de las raícesde f0, y permanece constante en otro caso.

Supongamos que fi(x0) = 0 con i ∈ {1, 2, . . . ,m − 1}, entonces de la condición 4a de ladefinición de Sturm tendremos que fi+1(x0)fi−1(x0) < 0. En particular, estas dos funciones nose anulan en un entorno de x0 y tienen distintos signos. Por lo tanto cerca de x0 sucederá unode los casos siguientes (representamos por − los valores negativos, por + los positivos, por ~indistintamente 0,+ o −, y h > 0 es suficientemente pequeño):

x0 − h x0 x0 + h

fi−1 − − −fi ~ 0 ~fi+1 + + +

x0 − h x0 x0 + h

fi−1 + + +fi ~ 0 ~fi+1 − − −

En todos los casos el número de cambios de signo de la sucesión {fi−1, fi, fi+1} es constante eigual a 1 en las proximidades de x0.

Si f0(x0) = 0, por la tercera propiedad de las sucesiones de Sturm, f ′0(x0) 6= 0 y además elsigno de f1(x0) coincide con el de f ′0(x0). Así, si esta derivada es positiva (f0 es creciente en x0)entonces f1(x0) > 0 y por la continuidad, f1 es positiva en un entorno de x0. De la misma forma,cuando la derivada es negativa, la función f1 es negativa en un entorno de x0. Por lo tanto sólose presentan los dos casos siguientes:

5Algunos autores utilizan la condición opuesta f1(x).f ′0(x) < 0, esto afecta a la forma de enunciar la tesis delteorema 4.6.19 que para ellos concluye que el número de raíces reales de f0 en [a, b] es igual a n(b)−n(a). Cuandoestudiéis la prueba de ese teorema podéis daros cuenta que la ídea, y por tanto la prueba, en los dos casos es lamisma.

Page 132: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

132 um.es / Cálculo Numérico en una variable, 2011-2012

x0 − h x0 x0 + h

f0 − 0 + (f ′0(x0) > 0)f1 + + + (f1(x0) > 0)

x0 − h x0 x0 + h

f0 + 0 − (f ′0(x0) < 0)f1 − − − (f1(x0) < 0)

En los dos casos hay un cambio de signo en la sucesión {f0, f1} antes de pasar por x0 que dejade suceder a la derecha de x0.

En resumen, el número de cambios de signo n(x) sólo disminuye en una unidad cuando nosmovemos en el intervalo desde a hacia b al pasar sobre cada una de las raíces de f0. De estaforma, el incremento n(a)− n(b) mide el número de raíces reales de f0 en [a, b]. �

Obsérvese en la demostración, que si fuese f0(b) = 0, entonces n(a)−n(b) mediría el númerode raíces reales de f0 en (a, b] independientemente de que f se anule o no en x = a, es este casono contaría la raiz x = a. Así, si quitamos del enunciado el que f no se anule en los extremosel teorema seguirá siendo cierto cambiando el intervalo cerrado [a, b] por intervalo semiabierto(a, b]. Esto nos servirá para despreocuparnos al hacer la bisección de los intervalos en la sección4.6.4.3.

La construcción de sucesiones de Sturm asociadas a polinomios proviene del método de Eu-clides de búsqueda del máximo común divisor.

Sea p0 = p un polinomio real de grado n ≥ 1.

Se define p1 = p′(x)

Para i = 1, 2, 3, . . . se define pi+1 = −ci+1Resto(pi−1 : pi), donde ci+1 es una constantepositiva y por Resto entendemos el resto que queda al hacer la división entera del polinomiopi−1 entre pi. En otros términos:

pi−1(x) = q(x)pi(x)− c−1i+1pi+1(x). (4.8)

Esta construcción se realiza hasta que pm+1 = 0.

En está construcción el polinomio pm es máximo común divisor de p0 y p1 = −p′.

Por último consideramos la sucesión

{f0 =p0

pm, f1 =

p1

pm, . . . , fm =

pmpm

= 1},

Obsérvese que f0 es un polinomio que tiene las mismas raíces que p0 pero, para f0, todaslas raíces son simples. En efecto, las raíces múltiples de p son las raíces comunes de p yp′, es decir, son las raíces de pm. Si una raíz x0 tiene multiplicidad k en p, entonces tienemultiplicidad k − 1 en p′ y en pm. Por consiguiente, x0 es una raíz simple de f0 = p

pm.

Lema 4.6.20 Si p es un polinomio de grado n ≥ 1 , entonces la sucesión {f0, f1, . . . , fm} queacabamos de construir, es una sucesión de Sturm.

Demostración:

Todas las funciones f0, . . . , fm son polinomios, son funciones continuas (primera condiciónen la definición de sucesiones de Sturm).

Por la definición. fm = pm

pm= 1 es constante y no nula. Por lo que se cumple la segunda

condición de Sturm.

Page 133: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 133

Como pm es máximo común divisor de p0 y p1, entonces f0 = p0pm

y f1 = p1pm

no tienen raícescomunes. Así, si f0(x) = 0, p(x) = 0, f1(x) 6= 0 y

f1(x)f ′0(x) =p′(x)pm(x)

p′(x)pm(x)− p(x)p′m(x)pm(x)2

=p′(x)pm(x)

p′(x)pm(x)

=p′(x)2

pm(x)2= f1(x)2 > 0.

Esta es la tercera condición en las sucesiones de Sturm.Volviendo a mirar en la expresión 4.8, si fi(x) = 0 = pi(x) (1 ≤ i ≤ m− 1),

fi−1(x)fi+1(x) = −c−1i+1fi+1(x)2 ≤ 0,

y se anula sólo si fi−1(x) = fi(x) = fi+1(x) = 0. Si esto último sucediese, podemos repetir elargumento con fi−1 y fi+1, para obtener que

f0(x) = · · · = fi−2(x) = fi−1(x) = fi(x) = fi+1(x) = fi+2(x) · · · = fm(x) = 0.

Como fm(x) = 1, ésto no puede suceder. Por lo tanto, también se cumplira la última condiciónde la definición, completando la prueba de que {f0, . . . , fm} es una sucesión de Sturm. �

Algoritmo 4.13 Método sucesionSturmDatos de entrada:ak( lista con los coeficientes del polinomio p);Variables: n=(número de coeficientes de p); //grado de p+1

sturm[n][]; //matriz para la sucesión de SturmFujo del programa:

sturm[0][n-1]=a[n-1];if(n==1){ Parada:devolver sturm }for(i=0;i<n-1;i++){

sturm[0][i]=a[i]; sturm[1][i]=(i+1)*a[i+1];} // p0 = p y p1 = p′

if(n==2){ Parada:devolver sturm }for(k=2;k<n;k++){

listaauxiliar= resto(sturm[k-2]:sturm[k-1]);if(longitud listaauxiliar== 1){

if(listaauxiliar[0]== 0){for(j=0;j<=k-1;j++){

sturm[j]=cociente(sturm[j],sturm[k-1]);} }Parada: devolver sturm; } }

sturm[k][0]=-listaauxiliar[0];Parada: devolver sturm; } }

sturm[k]=-listaauxiliar;}

Parada:devolver sturm;Datos de salida: sturm[][], matriz con los coeficientes sturm[i][] de los polinomios de lasucesión de Sturm

Observad que si p(a) 6= 0 y p(b) 6== 0 entonces en la construcción de la sucesión de Sturm,también ocurrirá que pm(a) 6= 0 y pm(b) 6== 0, con lo que a la hora de computar los cambios designo podremos usar la sucesión {p0, p1, ..., pm} en lugar de {f0, f1, ..., fm}. Así, hemos probado:

Page 134: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

134 um.es / Cálculo Numérico en una variable, 2011-2012

Corolario 4.6.21 Sea p(x) un polinomio con coeficientes reales y {p0 = p, p1, ..., pm} la sucesiónde polinomios que proporciona el algoritmo de Euler para encontrar el máximo común divisor dep y p′. Sea n(x) el número de cambios de signo (los ceros se ignoran) en la sucesión

{p0(x), p1(x), ..., pm(x)}.

Entonces, si p(a) 6= 0 y p(b) 6= 0, el número de raíces reales de p en [a, b] es igual a n(a)− n(b).

Ejercicio 4.30 Dados dos números. a > 0 y b ∈ R, se considera el polinomio

P (x) = x3 − bx2 + ax− ab.

(i) Encuentra una relación entre a y b que garantice que la sucesión de Sturm de P sólo tengatres términos {p0(x), p1(x), p2(x)}.

(ii) Decide, en el caso en que a y b verifiquen la relación anterior, el número de raíces reales ydistintas de P . ¿Son simples?

Problema resuelto 10.7 del libro de Infante-Rey [?]

4.6.4.3. Separación de Ceros.

El teorema 4.6.1 localiza todas las raíces reales de un polinomio p(z) = a0 + a1z+ · · ·+ anzn

en el intervalo I0 = [−ρ, ρ] con ρ = 1 + max{|a0|, . . . , |an|}/|an|. Por otra parte, el teorema deSturm nos permite conocer el número de raíces reales en cada intervalo.

Así, si comenzando con la lista de intervalos L0 = {I0}, podemos razonar como en el métodode la bisección, y en cada etapa k:

dividir en mitades cada intervalo de la lista Lk,

mirar, con la sucesión de Sturm, si hay ceros reales en cada una de las mitades, y

construir una nueva lista Lk+1, con las mitades que contienen alguna raíz.

Este proceso iterativo puede detenerse cuando tengamos una sóla raíz en cada intervalo yla longitud de estos intervalos sea suficientemente pequeña. Como el proceso de biseccionarintervalos no permite aproximarnos a las raíces de forma rápida podemos optar por

continuar con el proceso hasta que la proximidad de los extremos de los intervalos sea tanpequeña que nos permita admitir que aproximan a una raíz, o

detener la bisección de los intervalos cuando cualquiera de sus extremos sirva como apro-ximación inicial para aplicar métodos más rápidos: Newton, Muller o Laguerre.

El último algoritmo propuesto utiliza «recursividad», es decir, que se va llamando a si mismo.,para construir la lista L que contiene los intervalos que separan las raíces reales. Este método,en vez de proporcionar datos de salida directos, utiliza una lista como dato de entrada en la quese van guardando los intervalos que contienen una sola raíz real.

Dependiendo del entorno de programación, el manejo de listas de longitud variable puede sermás o menos complicado. Si programamos en JAVA, la clase Vector puede facilitar este manejo,

Page 135: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

Ecuaciones no lineales um.es / Grado en Matemáticas 135

aunque una vez construida requiere una transformación en una lista (array) estándar de númerosreales.

Algoritmo 4.14 Método biseccionSturmDatos de entrada: prec (precisión para longitud de intervalos),intervalos (lista para almacenar intervalos) //Lista de longitud variable,sturm (matriz con los coeficientes de la sucesión de Sturm del polinomio),a,b,(extremos del intervalo inicial)Fujo del programa:

//Utilizamos recursividadsturmb[i]=(Evaluación de sturm[i] en x=b); //Lista con las evaluaciones en bsturma[i]=(Evaluación de sturm[i] en x=a);n=cuentaCambiosSigno(sturma)-cuentaCambiosSigno(sturmb);if(n<=0){Parada: }if((n==1) && (|b-a|<prec)){ añadirA(intervalos)({a,b});}else { c=a + 0.5*(b-a);

biseccionSturm(prec,intervalos,sturm,a,c); biseccionSturm(prec,intervalos,sturm,c,b);}

Datos de salida: intervalos es una lista con los extremos de intervalos que contienen unasola raíz real

Ejercicio 4.31 Describe un algoritmo que utilice los métodos de esta sección para, dado unpolinomio real, obtener una lista con tantos intervalos como raíces reales tiene el polinomio,que contienen a estas raíces y tienen longitud menor que una precisión dada. Como datos deentrada sólo deberá tener el polinomio (o sus coeficientes) y una precisión para la longitud delos intervalos.

Para este último método, podéis utilizar los valores ±ρ = ±(1+max{|a0|, . . . , |an|}/|an| comoextremos del intervalo inicial que contiene a todas las raíces reales de p(z) = a0+a1z+· · ·+anzn.

Como en otros apartados, vamos a finalizar volviendo a visitar el polinomio utilizado en losejemplos anteriores:

Ejemplo 4.6.22 La sucesión de Sturm asociada al polinomio p(x) = x4 − 4x3 + 7x2 − 5x − 2es la siguiente

p0(x) = x4 − 4x3 + 7x2 − 5x− 2

p1(x) = p′(x) = 4x3 − 12x2 + 14x− 5

p2(x) = −Resto(p0 : p1) = −0.5x2 + 0.25x+ 3.25 (otra alternativa(4×) : −2x2 + x+ 15)

p3(x) = −Resto(p1 : p2) = −35x+ 70 (otra alternativa(35−1×) : −x+ 2)p4(x) = −Resto(p2 : p3) = −1.75

Si realizamos las operaciones a mano, los polinomios propuestos como alternativa son múltiplospositivos de los otros, pero con coeficientes más sencillos para las evaluaciones.

Comenzando en el intervalo [-8,8] que contiene a todas las raíces reales, observamos que en-8 la sucesión de Sturm toma valores {+,+,-,+,-} y tiene tres cambios de signo y en 8 los valores

Page 136: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

136 um.es / Cálculo Numérico en una variable, 2011-2012

{+,+,-,-,-} con un cambio de signo. La diferencia del número de cambios de signo es 2, el númerode raíces reales. Tomando el punto medio en el intervalo, que es 0, y viendo el signo de los valoresde la sucesión de Sturm en esos puntos {-,-,+,+,-}, aquí hay dos cambios de signo y por lo tantopodemos concluir que una de las raíces es negativa y la otra positiva.

Aplicando el método descrito en el algoritmo con una precisión prec=1.E-14, obtenemos losintervalos: [-0.27568220365174056,-0.27568220365083107] y [2.0,2.0000000000009095]que proporcionan buenas aproximaciones de las dos raíces reales -0.27568220365. . . y 2.

Ejercicio 4.32 Separa con intervalos de longitud 1, utilizando el método de Sturm, las raicesreales de los polinomios

(i) p(x) = x5 − 3x4 + 2x3 − 3x2 + 4x+ 1

(ii) x5 − x4 + x3 − x2 + 1

Ejercicio 4.33

(i) Acota todas las raíces de

p(x) = 36x4 − 60x3 − 29x2 + 9x+ 2

y separar todas sus raíces reales usando el método de Sturm.

(ii) Calcula las raíces anteriores con 2 cifras decimales exactas.

Ejercicio 4.34 Utilizando las correspondientes sucesiones de Sturm y en función del parámetroλ, separa los ceros reales de

p(x) = 0.5x3 + 0.5x2 + 0.5λx+ λ.

Para λ = 1, encuentra un intervalo dónde se pueda aplicar el método de Newton para encontraruna raíz negativa de p. Aproxímala con tres dígitos de precisión.

4.7. Actividades complementarias del capítulo

Los documentos se pueden descargar de la Zona Compartida de SUMA.

Hoja de problemas no3

Practicas no5 y 6

Page 137: Cálculo Numérico en una variable Universidad de Murcia ...webs.um.es/apall/archivos/cn1v/cn1v1112.pdf · mismoproblemaatendiendoala«estabilidad»delmétodoyal«condicio- ... Ejercicio1.3

BibliografíaBibliografía

[1] A. Delshams A. Aubanell, A. Benseny, Útiles básicos de cálculo numérico, Ed. Labor - Univ.Aut. de Barcelona, Barcelona, 1993.

[2] C. Brézinski, Introducton á la pratique du calcul numérique, Dunod Université, Paris, 1988.

[3] R.L. Burden and J.D. Faires, Análisis numérico, 7a edición, Thomson-Learning, Mexico,2002.

[4] P.G. Ciarlet, Introduction à l’analyse numérique matricielle et à l’optimisation, Masson,Paris, 1990.

[5] P.M. Cohn, Algebra, vol. 1 y 2, Ed. Hohn Wiley and Sons, London, 1974.

[6] G. Hammerlin and K.H. Hoffmann, Numerical mathematics, Springer-Verlag, New York,1991.

[7] J.Stoer and R. Burlisch, Introduction to numerical analysis, Springer Verlag, New York, 1980.

[8] D. Kincaid and W. Cheney, Análisis numérico, Ed. Addison-Wesley Iberoamericana,Reading, USA, 1994.

[9] J.A. Fernández Viña, Análisis matemático II, Edit. Tecnos, Madrid, 1984.