Métodos Numéricos Problemas Resueltos y Prácticas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 365

Métodos

numéricos
Problemas
resueltos
y prácticas

Isaac A. García
Susanna Maza
Subido por:

Libros de Ingeniería Química y más

https://www.facebook.com/pages/Interfase-
IQ/146073555478947?ref=bookmarks

Si te gusta este libro y tienes la posibilidad,


cómpralo para apoyar al autor.
eines 62

Métodos numéricos

Problemas resueltos y prácticas

Isaac A. García y Susanna Maza

Seminari de Sistemes Dinàmics


Departament de Matemàtica
Universitat de Lleida


ISBN: 978-84-8409-

© Edicions de la Universitat de Lleida, 2009


© Els autors

Maquetación
Edicions i Publicacions de la UdL

Diseño de portada
cat & cas













La reproducción total o parcial de esta obra por cualquier procedimiento, incluidos la reprografía y el tratamiento
informático, y la distribución de ejemplares mediante alquiler o préstamo público, queda rigurosamente prohibida
sin la autorización de los titulares del “copy-right”, y será sometida a las sanciones establecidas por la Ley.
Índice general

1. Prólogo 11

2. Errores, Estabilidad y Condicionamiento 15


2.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 16

3. Sistemas Lineales 27
3.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1. Algoritmo de eliminación Gaussiana . . . . . . . . . . . . 27
3.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 31

4. Interpolación Polinómica 43
4.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 49

5. Derivación Numérica 71
5.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 72

6. Integración Numérica 85
6.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 90

7. Ecuaciones Diferenciales Ordinarias 125


7.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 127

8. Solución de Ecuaciones no Lineales 153


8.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 153
8.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 154

9. Aproximación de Funciones 195


9.1. Resumen de teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.2. Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . 197

5
6 ÍNDICE GENERAL

10.Introducción a la Programación 217


10.1. Velocidad del Sonido en el Aire en Función de la Temperatura . . 217
10.2. Ecuación de Segundo Grado . . . . . . . . . . . . . . . . . . . . . 218
10.3. Método de Newton: Cálculo de Raı́ces Cuadradas . . . . . . . . . 220
10.4. Algoritmo de Arquimedes y el Número π . . . . . . . . . . . . . . 222
10.5. El problema 3x + 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 225

11.El Periodo del Péndulo Simple 227


11.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
11.2. Algoritmo de Integración Gaussiana con 5 Nodos . . . . . . . . . 229
11.3. Resultados Numéricos . . . . . . . . . . . . . . . . . . . . . . . . 231

12.Sistemas Lineales de Ecuaciones: Eliminación Gaussiana 233


12.1. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 233
12.1.1. Solución en Fortran . . . . . . . . . . . . . . . . . . . . 234
12.1.2. Solución en Mathematica . . . . . . . . . . . . . . . . . 236
12.2. Aplicación al Cálculo de Intensidades en Redes Eléctricas . . . . 238

13.La Ecuación del Calor Unidimensional 241


13.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
13.2. Método de Crank-Nicholson . . . . . . . . . . . . . . . . . . . . . 241
13.3. Separación de Variables: Series de Fourier . . . . . . . . . . . . . 243
13.3.1. Búsqueda de las soluciones fundamentales Tn (x, t) con
condiciones de contorno homogéneas . . . . . . . . . . . . 243
13.3.2. Realización de la práctica . . . . . . . . . . . . . . . . . . 245
13.3.3. Representación gráfica de los resultados . . . . . . . . . . 246
13.3.4. Comparación con el método de Fourier . . . . . . . . . . . 247

14.Interpolación de Newton 249


14.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
14.2. Diferencias Divididas de Newton . . . . . . . . . . . . . . . . . . 250
14.3. Fenómeno Runge . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
14.4. Minimización del Error de Interpolación . . . . . . . . . . . . . . 252

15.Interpolación por Splines Cúbicos Naturales 255


15.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
15.2. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 257
15.3. Solución en Fortran . . . . . . . . . . . . . . . . . . . . . . . . 258
15.4. Solución en Mathematica . . . . . . . . . . . . . . . . . . . . . 260

16.Derivación Numérica 263


16.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
16.2. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 264
16.2.1. Apéndice: generación de números aleatorios . . . . . . . . 265
ÍNDICE GENERAL 7

17.Integración Romberg 267


17.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
17.2. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 268
17.3. La Capacidad Calorı́fica de los Sólidos . . . . . . . . . . . . . . . 270

18.Ecuaciones Integrales: Transmisión de Calor 271


18.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
18.2. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 272
18.3. Existencia de Solución para Ecuaciones de Fredholm . . . . . . . 273

19.Aproximación Trigonométrica y Coeficientes de Fourier 275


19.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
19.2. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 277

20.Distribución de Velocidades en un Fluido 279


20.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
20.2. Integración Gauss-Chebychev . . . . . . . . . . . . . . . . . . . . 280
20.3. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 281

21.La Condensación de Bose-Einstein 283


21.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
21.1.1. La fı́sica estadı́stica cuántica . . . . . . . . . . . . . . . . 284
21.2. Un Gas de Bosones Ideal . . . . . . . . . . . . . . . . . . . . . . . 285
21.3. Realización de la Práctica . . . . . . . . . . . . . . . . . . . . . . 286
21.3.1. Apéndice: Integrales de Bose . . . . . . . . . . . . . . . . 286

22.Ecuaciones Diferenciales Ordinarias: Método RK4 287


22.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
22.2. El Método RK4 en Rn . . . . . . . . . . . . . . . . . . . . . . . . 288
22.3. Ciclos Lı́mite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
22.4. El Problema del Centro-Foco . . . . . . . . . . . . . . . . . . . . 291
22.5. El Péndulo de Wilberforce . . . . . . . . . . . . . . . . . . . . . . 293
22.6. El Modelo de Lorenz: Convección de Fluidos . . . . . . . . . . . 294
22.6.1. Las ecuaciones de Lorenz . . . . . . . . . . . . . . . . . . 295
22.6.2. Realización de la práctica . . . . . . . . . . . . . . . . . . 296

23.Raı́ces de Ecuaciones: Método de Newton-Raphson 299


23.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
23.2. Ecuaciones de Estado de los Gases . . . . . . . . . . . . . . . . . 300
23.2.1. Ecuación de Dieterici . . . . . . . . . . . . . . . . . . . . 301
23.2.2. El Módulo de elasticidad en la ecuación de van der Waals 301
23.3. Un Problema Sobre la Profundidad de Absorción . . . . . . . . . 302
23.3.1. Realización de la práctica . . . . . . . . . . . . . . . . . . 302
23.4. Método de Newton para Sistemas de Ecuaciones . . . . . . . . . 303
23.4.1. Equlibrio en sistema masa-muelle . . . . . . . . . . . . . . 305
8 ÍNDICE GENERAL

24.Método de los Elementos Finitos 307


24.1. Introducción: Modelo Matemático . . . . . . . . . . . . . . . . . 307
24.2. Solución Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . 308
24.2.1. Mallado del dominio . . . . . . . . . . . . . . . . . . . . . 308
24.2.2. Las ecuaciones de los elementos: método variacional . . . 308
24.2.3. Aproximación de la solución . . . . . . . . . . . . . . . . . 310
24.2.4. Método variacional de Galerkin . . . . . . . . . . . . . . . 310
24.2.5. Notas computacionales . . . . . . . . . . . . . . . . . . . . 311
24.2.6. Encadenamiento de los elementos . . . . . . . . . . . . . . 312
24.2.7. La solución del sistema encadenado . . . . . . . . . . . . . 314
24.3. Desplazamientos Longitudinales Elásticos . . . . . . . . . . . . . 314
24.4. Fluidos Viscosos en Canalización Cilı́ndrica . . . . . . . . . . . . 316

25.Problemas Variacionales con Fronteras Fijas 317


25.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
25.2. Un método numérico . . . . . . . . . . . . . . . . . . . . . . . . . 317
25.3. El problema de la braquistocrona . . . . . . . . . . . . . . . . . . 319

26.Introducción a Mathematica 321


26.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
26.2. Estructuras de datos: Listas . . . . . . . . . . . . . . . . . . . . . 321
26.3. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
26.4. Representación Gráfica . . . . . . . . . . . . . . . . . . . . . . . . 323
26.5. Matrices y Sistemas Lineales . . . . . . . . . . . . . . . . . . . . 325
26.6. El Lenguaje de Programación . . . . . . . . . . . . . . . . . . . . 325
26.6.1. Tipos de números . . . . . . . . . . . . . . . . . . . . . . 325
26.6.2. Entradas de datos . . . . . . . . . . . . . . . . . . . . . . 326
26.6.3. Asignación de variables . . . . . . . . . . . . . . . . . . . 327
26.6.4. Iteraciones y bucles . . . . . . . . . . . . . . . . . . . . . 327
26.6.5. Condicionales y operadores lógicos . . . . . . . . . . . . . 328
26.6.6. Sentencias de control . . . . . . . . . . . . . . . . . . . . . 328
26.7. Cálculo Numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
26.7.1. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
26.7.2. Polinomio interpolador . . . . . . . . . . . . . . . . . . . . 330
26.7.3. Aproximación lineal por mı́nimos cuadrados . . . . . . . . 330
26.7.4. Integración . . . . . . . . . . . . . . . . . . . . . . . . . . 331
26.7.5. Raı́ces de ecuaciones . . . . . . . . . . . . . . . . . . . . . 331
26.7.6. Ecuaciones diferenciales ordinarias . . . . . . . . . . . . . 333

27.Introducción a Octave 337


27.1. Introducción a Matlab–Octave . . . . . . . . . . . . . . . . . . . 337
27.1.1. Algunas convenciones . . . . . . . . . . . . . . . . . . . . 337
27.1.2. Primeros cálculos: funciones elementales . . . . . . . . . . 338
27.1.3. Matrices y vectores . . . . . . . . . . . . . . . . . . . . . . 339
27.1.4. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
27.1.5. Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
ÍNDICE GENERAL 9

27.1.6. Generación de números aleatorios . . . . . . . . . . . . . . 347


27.1.7. Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . 347
27.2. El Lenguaje de Programación . . . . . . . . . . . . . . . . . . . . 348
27.2.1. Iteraciones y bucles . . . . . . . . . . . . . . . . . . . . . 348
27.2.2. Condicionales y operadores lógicos . . . . . . . . . . . . . 350
27.2.3. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
27.2.4. Comparando la eficiencia de algoritmos . . . . . . . . . . 352
27.3. Métodos Numéricos . . . . . . . . . . . . . . . . . . . . . . . . . 353
27.3.1. Polinomio interpolador . . . . . . . . . . . . . . . . . . . . 353
27.3.2. Splines Cúbicos . . . . . . . . . . . . . . . . . . . . . . . . 354
27.3.3. Integración Numérica . . . . . . . . . . . . . . . . . . . . 355
27.3.4. Ecuaciones Diferenciales Ordinarias . . . . . . . . . . . . 355
27.3.5. Raı́ces de Ecuaciones . . . . . . . . . . . . . . . . . . . . . 357
27.3.6. Aproximación Polinomial por Mı́nimos Cuadrados . . . . 359
Capı́tulo 1

Prólogo

Los Métodos Numéricos son una herramienta fundamental en el campo de


las ciencias aplicadas que tratan de disen̄ar métodos que aproximen, de forma
eficiente, las soluciones de problemas previamente formulados matemáticamente.
En la mayorı́a de los casos, el problema matemático se deriva de un problema
práctico en áreas experimentales como la Fı́sica, Quı́mica, Ingenierı́a, Economı́a,
etc... Sobre él se aplican, tı́picamente, dos tipos de estrategias generales:
1. Se dan por supuestas algunas hipótesis de carácter simplificador que per-
miten llegar a una formulación matemática resoluble.
2. Se prescinde de alguna de estas hipótesis para llegar a una formulación
matemática más complicada, que no se puede resolver explı́citamente, pero
cuya solución puede calcularse de forma aproximada.
Aunque de ninguna de las dos formas anteriores obtenemos la solución del
problema original, a menudo resulta más apropiado utilizar la segunda. Las
dificultades que aparecen en la resolución explı́cita de los modelos hacen que
no se puedan hallar efectivamente las soluciones, en otros casos que el proceso
de solución precise de infinitas operaciones. Es entonces cuando los métodos
numéricos proporcionan soluciones aproximadas a tales problemas.
En este libro se aplican algoritmos y métodos constructivos que nos permitan
obtener la solución de un problema con una precisión arbitraria en un número
finito de pasos. Se pretende poner al alcance de los estudiantes una introducción
a los Métodos Numéricos con el objetivo de ir aprendiendo las técnicas que hace
servir la Matemática Aplicada no sólo a nivel teórico, sino también de una forma
práctica mediante la resolución de problemas concretos. Dichos problemas son
una forma de aproximarse a situaciones reales relacionadas con la ingenierı́a.
El presente libro consta de dos partes. En primer lugar, de dan problemas
resueltos y corresponde a los temas básicos de un primer curso de introducción
a los Métodos Numéricos. El libro comprende los siguientes temas: Errores,
Estabilidad y Condicionamiento, Sistemas Lineales, Interpolación Polinómica,
Derivación Numérica, Integración Numérica, Ecuaciones Diferenciales Ordinar-
ias, Solución de Ecuaciones no Lineales y Aproximación de Funciones. A parte

11
12 Prólogo

de un breve resumen de teorı́a en cada capı́tulo, el objetivo principal es que


el alumno pueda seguir paso a paso la resolución de numerosos problemas de
los temas mencionados como ejemplificación de los conceptos y resultados teóri-
cos, complementando ası́ los realizados en clase. El presente libro es un buen
complemento del libro de teorı́a [4]. Se ha procurado presentar las soluciones
en la forma más práctica y directa. Cabe destacar que, a medida que avan-
zan los capı́tulos, los problemas propuestos pueden tener preguntas de capı́tulos
anteriores entrelazadas con las del tema actual.
En la segunda parte, las prácticas propuestas consisten en la confección de
programas que realicen los métodos explicados en las clases teóricas para la re-
solución de algún problema en concreto. De esta forma, en dichas prácticas el
alumno se ha de familiarizar con el ordenador. Un programa es una secuencia
de instrucciones que se dan a la computadora para procesar datos. El resultado
del procesamiento es la salida de datos, que puede ocurrir en varias formas, co-
mo por ejemplo una lista impresa o un gráfico. Las operaciones realizadas por
una computadora pueden clasificarse en cálculos aritméticos y decisiones lógi-
cas adoptadas sobre la base de los valores calculados, lectura y escritura de datos.

Uno de los lenguajes utilizados en las prácticas será el Fortran (el nombre
que proviene de las primeras letras de las palabras inglesas FORmula y TRANs-
lation) que es un lenguaje de traducción de fórmulas, ver por ejemplo [3]. El
nombre sugiere la aplicación más importante de dicho lenguaje: calcular expre-
siones matemáticas. Es, por lo tanto, un lenguaje de programación muy usual
en cálculo numérico. Se utilizará también el programa de libre distribución Oc-
tave que es también muy adecuado para cálculos numéricos. Otra opción que se
utiliza consiste en usar también manipuladores algebraicos (en concreto Math-
ematica) que tanto se han aconsejado para otras asignaturas de matemáticas
de carreras técnicas, de manera que en muchas de las prácticas propuestas se
pide realizar programas que se podrı́an sustituir por la utilización de un único
comando de tales manipuladores. Pero, sin embargo, creemos que debe de ser
un objetivo, cuando se trata de asignaturas de carácter numérico, el utilizar
un lenguaje de programación y profundizar más en la propia estructura de los
métodos. Si hacemos esto es porque estamos convencidos, y la experiencia con
nuestros alumnos ası́ nos lo demuestra, de que sólo cuando uno se enfrenta a la
programación efectiva de los métodos es capaz de entenderlos en profundidad.
De cualquier forma, en el estudio de los métodos de aproximación puede ser
sumamente útil contar con un paquete de cómputo simbólico. Por ejemplo, mu-
chos métodos numéricos tienen lı́mites de error que exigen acotar una derivada
ordinaria o parcial de una función. A veces se trata de una tarea tediosa y de
poco valor didáctico una vez dominados los métodos del cálculo. Estas derivadas
pueden obtenerse rápidamente en forma simbólica, y un poco de ingenio per-
mitirá que una computación simbólica facilite también el proceso de acotación.
Hemos escogido Mathematica para este uso debido a que los estudiantes ya
lo han utilizado en prácticas realizadas en las asignaturas de Cálculo y Álgebra
Lineal de primer curso. Una guı́a completa sobre las posibilidades de Math-
ematica se encuentra en el manual del programa contenido en la página web
13

http://documents.wolfram.com/v5/TheMathematicaBook/index.html.

El principal objetivo de las prácticas es fijar conceptos y resultados teóricos


mediante la realización de una serie de ejercicios con la ayuda del ordenador.
Además, dichas prácticas pretenden ser una aproximación a problemas reales de
la ingenierı́a en los cuales su solución pasa por la programación de algún método
numérico. Nos gustarı́a que este libro de problemas facilitase el aprendizaje de la
asignatura y, agradecerı́amos cualquier sugerencia o comentario que pueda mejo-
rarlo dirigiéndose a las direcciones electrónicas: [email protected]
o bien [email protected].

Isaac A. Garcı́a y Susanna Maza, Lleida 2009.


Capı́tulo 2

Errores, Estabilidad y
Condicionamiento

2.1. Resumen de teorı́a


Habitualmente se requiere el uso del ordenador en el tratamiento numérico
de los problemas planteados debido a la gran extensión en los cálculos. De esta
forma, al ejecutarse los algoritmos en un ordenador, las operaciones básicas de
suma, multiplicación y división se realizan con un cierto error. Uno de los proble-
mas más importantes cuando se realizan cálculos numéricos es conocer el grado
de precisión que se puede obtener en su realización. La limitación en la precisión
de los resultados es consecuencia del hecho que los cálculos se han realizado con
un número finito de dı́gitos, por lo que los resultados de las operaciones van
afectados por un error. De los errores hay que conocer su procedencia, mag-
nitud y comportamiento en el transcurso de los cálculos. A la hora de disen̄ar
un buen algoritmo numérico hay que tener en cuenta estas limitaciones. Hemos
de intentar evitar, mediante una organización cuidadosa de las operaciones, la
propagación y acumulación de los errores.

Sea x∗i un valor aproximado del valor xi . Denotamos el error absoluto por
Δxi := |xi − x∗i | y al error relativo de la forma xi := |Δxi /xi | siempre que
xi = 0.
Sea f : D ⊂ Rn → R con f ∈ C 1 (D) tal que y = f (x1 , x2 , . . . , xn ). Las
fórmulas de propagación de errores son: 
n  
Error Absoluto: Δy ≈ j=1  ∂f∂x(x) j
 Δxj .
n  xj ∂f (x) 

Error Relativo: y ≈ j=1  f (x) ∂xj  xj .

Los factores de amplificación |(xj /f (x))∂f (x)/∂xj | de los errores relativos


son llamados números de condición. Si cualquier número de condición presente
en un problema tiene una magnitud grande decimos que estamos ante un prob-

15
16 Errores, Estabilidad y Condicionamiento

lema mal condicionado.

Se sabe que, con el ordenador, no podemos trabajar con los números reales,
sino sólo con un subconjunto de los números racionales. Como existe un número
representable por el ordenador máximo en valor absoluto, cuando el ordenador
intenta utilizar uno de mayor valor absoluto se produce un error llamado over-
flow. También se tiene el caso contrario que consiste en utilizar un número no
nulo pero menor en va-lor absoluto que el mı́nimo número representable en
valor absoluto. Entonces el ordenador devuelve un error llamado underflow. Se
dispone del concepto epsilon de la máquina, que es el mayor valor positivo  que
verifique
1 + x = 1 ∀x ∈ (0, ) .
Tenemos pues que la precisión de la aritmética en coma flotante se caracteriza
por  y dependerá del ordenador y del tipo de variable.

2.2. Problemas resueltos


Problema 2.1 Es conocido que el periodo T de un péndulo simple de longitud
 viene dado por T = 2π /g, siendo g la gravedad. Se pretende medir la
aceleración de la gravedad g usando un péndulo. Aproximar el error relativo
cometido si las medidas efectuadas son  = 1 ± 0,001 metros y T = 2 ± 0,01
segundos.

Solución. La aceleración de la gravedad es



g(, T ) = 4π 2 .
T2
Según la fórmula de propagación de errores relativos se tiene
   
  ∂g   T ∂g 

g ≈   
 +  T .
g(, T ) ∂  g(, T ) ∂T 

Calculando las derivadas parciales

∂g 4π 2 ∂g 8π 2 
= 2 , =− 3 ,
∂ T ∂T T
se obtiene
g ≈  + 2T .
Según los datos del enunciado
0,001 0,01
 = = 0,001 , T = = 0,005 ,
1 2
de manera que
g ≈ 0,001 + 2 × 0,005 = 0,011 .
2.2 Problemas resueltos 17

Problema 2.2 La velocidad lı́mite v de una gota esférica de radio R compuesta


de un fluido de viscosidad μ1 y densidad ρ1 desplazándose bajo la acción de la
gravedad constante g en otro fluido de viscosidad μ2 = 0 y densidad ρ2 viene
dada por
2R2 g(ρ1 − ρ2 )(μ1 + μ2 )
v= .
3μ2 (2μ2 + 3μ1 )
(i) Si se conocen de manera exacta los siguientes datos en el sistema interna-
cional ρ1 = 10, ρ2 = 15 y μ2 = 0,3, pero sin embargo μ1 = 0,2 ± 0,1 y
R = 1,5 ± 0,2, aproximar el error absoluto con el que obtiene la velocidad
v.
(ii) Suponiendo que sólo se tienen errores en la medida de R, averiguar si el
problema de evaluar v está mal condicionado para alguna relación entre
las variables del problema.

Solución. (i) Puesto que las únicas variables del problema que contienen
errores son μ1 y R, la fórmula de propagación de errores absolutos permite
aproximar el error absoluto Δv con el que obtiene la velocidad v de la forma
   
 ∂v   
Δv =   Δμ +  ∂v  ΔR ,
∂μ1  1  ∂R 

siendo Δμ1 y ΔR los errores absolutos de las magnitudes μ1 y R respectivamente.


Calculando las anteriores derivadas parciales de v a partir de la expresión dada
en el enunciado se tiene
   
 −2gR2 (ρ1 − ρ2 )   4gR(μ1 + μ2 )(ρ1 − ρ2 ) 
Δv =   Δμ +   ΔR .
3(3μ1 + 2μ2 )2  1  3μ2 (3μ1 + 2μ2 ) 

Sustituyendo los datos del enunciado y tomando la gravedad como g = 9,8 se


tiene
 
 −2 × 9,8 × 1,52 (10 − 15) 
Δv =   × 0,1
3(3 × 0,2 + 2 × 0,3)2 
 
 4 × 9,8 × 1,5(0,2 + 0,3)(10 − 15) 
+   × 0,2

3 × 0,3(3 × 0,2 + 2 × 0,3)
= |51,0417| × 0,1 + | − 136,111| × 0,2 = 32,3264 .

(ii) Suponiendo que sólo se tienen errores en la medida de R, el problema de


evaluar v estará mal condicionado si existe alguna relación entre las variables
del problema para la cual el número de condición κR asociado a la variable R
sea de una magnitud considerable. Por definición de número de condición se
tiene
 
   
 R ∂v   R 4gR(μ + μ )(ρ − ρ 2 
)
   1 2 1
κR :=  =
v ∂R   2R2 g(ρ1 −ρ2 )(μ1 +μ2 ) 3μ2 (3μ1 + 2μ2 ) =2.
3μ2 (2μ2 +3μ1 ) 
18 Errores, Estabilidad y Condicionamiento

Por lo tanto κR es una constante independiente de los valores de las variables


del problema y en consecuencia el problema de evaluar v teniendo únicamente
errores en R está bien condicionado siempre. Esto es debido a que, por la fórmula
de propagación de los errores relativos se tiene que, en este caso, el error relativo
v en la medida de la velocidad v vale aproximadamente v ≈ |κR |R = 2R ,
siendo R el error relativo asociado a R.

Problema 2.3 Bajo ciertas hipótesis, la velocidad v del sonido en el aire en


función de la temperatura T viene expresada por

T
v(T ) = 331 1 + ,
273
donde T y v son medidos en ◦ C y m/s respectivamente. Averiguar si existe
algún rango de temperaturas para el cual la evaluación de la función v está mal
condicionada.

Solución. Se sabe, de la fórmula de propagación de errores relativos, que los


errores relativos T y T en la temperatura y en la velocidad T y v están
relacionados por
v ≈ κT T ,

siendo κT el número de condición asociado a la variable T y definido como


 
 T dv 

κT :=   .
v(T ) dT 

Puesto que

T
v(T ) = 331 1+ ,
273

y su derivada es
dv 331 1
=  ,
dT 273 2 1 + T
273

se tiene que
 
 T 
κT =   .
2(273 + T ) 

En definitiva, pequen̄os errores relativos en la temperatura T pueden provocar


grandes errores relativos en la velocidad v si κT >> 1, es decir, si la temperatura
está en un rango de valores tal que T ≈ −273. Por supuesto, por motivos
termodinámicos, se debe detener T  −273◦ C.
2.2 Problemas resueltos 19

Problema 2.4 Sean x e y la solución del sistema lineal

2x + ay = 1,
x + by = 0,

con 2b − a = 0.
(i) Si a = 1 ± 0,1 y b = 2 ± 0,2, aproximar con qué exactitud se puede calcular
x + y.
(ii) Obtener el rango de valores de a y de b para los cuales el problema de hallar
x + y está mal condicionado.

Solución. (i) La solución del sistema lineal es

b −1
x= , y= ,
2b − a 2b − a
de manera que, definimos su suma como la función

b−1
f (a, b) = x + y = .
2b − a
Aplicando la fórmula de propagación de errores absolutos, se tiene que el error
absoluto Δf al evaluar la suma x + y está realcionado con los errores absolutos
de a y de b mediante    
 ∂f   ∂f 
Δf ≈   Δa +   Δb .
 
∂a ∂b
Puesto que las derivadas parciales de f de primer orden son

∂f b−1 ∂f 2−a
= , = ,
∂a (a − 2b)2 ∂b (a − 2b)2

obtenemos    
 b−1   
Δf ≈   Δa +  2 − a  Δb .
(a − 2b)2   (a − 2b) 
2

Tomando, según los datos del problema, a = 1, Δa = 0,1, b = 2 y Δb = 0,2 se


obtiene
Δf ≈ 0,03333 .
(ii) Para obtener el rango de valores de a y de b para los cuales el problema
de hallar x + y, es decir hallar f (a, b), está mal condicionado, calcularemos los
dos números de condición κa y κb asociados a la función f y posteriormente
estudiaremos para qué valores de a y de b dichos números de condición son
grandes.
Por definición de número de condición se tiene que
   
 a ∂f   b ∂f 
κa =   
, κb =   ,
f (a, b) ∂a  f (a, b) ∂b 
20 Errores, Estabilidad y Condicionamiento

por lo tanto    
 a   b(a − 2) 

κa =   
, κb =   .
2b − a  (a − 2b)(b − 1) 
De aquı́ se deduce que, si a − 2b ≈ 0 o bien b − 1 ≈ 0 entonces el problema de
hallar x + y está mal condicionado.

Problema 2.5 Estudiar el condicionamiento de la suma de n números reales.


¿Es bueno desde el punto de vista numérico restar dos números reales muy
próximos a la vista del resultado anterior?

Solución. Sean xi , con i = 1, . . . , n, los números que se desean sumar.


n Hemos de
estudiar pues el condicionamiento de la función S(x1 , . . . , xn ) = i=1 xi . Puesto
que S : Rn → R es de clase C 1 (Rn ) se tiene, por la fórmula de propagación de
errores, que el error relativo en la suma S viene dado aproximadamente por

n
S ≈ κxj xj ,
j=1

siendo xj y κxj el error relativo y el número de condición asociado a la magnitud


xj . Además se sabe que  
 xj ∂S 
κxj =   .
S ∂xj 
En nuestro caso, ∂S/∂xj = 1 para todo j = 1, . . . , n. De este modo se obtienen
los números de condición
 
 xj 

κxj =  n  , j = 1, . . . , n.

i=1 xi

Es claro que si se verifica la condición



n
xi ≈ 0 ,
i=1

entonces los números de condición asociados al problema de sumar n números


son grandes y por lo tanto el problema está mal condicionado.

Existe otra forma alternativa de obtener los números de condición para la


suma de n números reales. Sean las perturbaciones x∗i = xi ± Δi , siendo Δi el
error absoluto cometido en la aproximación xi ≈ x∗i . El error absoluto Δ en la
suma es    n   
n n     n 
 ∗  ∗   
Δ= xi − xi  =  (xi − xi ) =  Δi  .
     
i=1 i=1 i=1 i=1
Una cota del error relativo  cometido en la suma es la siguiente
   
  |n Δ | n n
 Δi 
 Δ   i=1 i  i=1 |Δi| 
|xi |
  
 =  n = ≤  =
 j=1 xj  n x  
n
x 
n
 x
  xi 

j=1 j j=1 j i=1 j=1 j
2.2 Problemas resueltos 21


n
|x |
=  i  i ,
 n 
i=1  j=1 xj 

donde i es el error relativo cometido en la aproximación xi ≈ x∗i . Ası́, los


números de condición son
|xi |
κxi =   , i = 1, . . . , n.

n
 j=1 xj 

Por lo que se refiere a la pregunta ¿Es bueno desde el punto de vista numérico
restar dos números reales muy próximos? la respuesta es NO a la vista del
resultado anterior puesto que x1 + x2 ≈ 0 lo cual implica κxi >> 1.

Problema 2.6 Demostrar que, si x está próximo al valor 1 entonces, pequen̄os


errores relativos en x pueden provocar grandes errores relativos en arcsin x.

Solución. Definimos la función f (x) = arcsin x. Sea x el error relativo en la


variable x. Se sabe, de la fórmula de propagación de errores relativos, que el error
relativo en f viene aproximado por f ≈ κx x , siendo el número de condición
    
 xf (x)   x 
κx =    
= √  .
f (x)  1 − x2 arcsin x 
Puesto que para x próximo a 1 se tiene arcsin x ≈ π/2, entonces
 
 2x 
κx ≈  √  ,
π 1 − x2 
es decir, lı́mx→1 κx = ∞. De este modo se comprueba que, para x cercano a 1,
el número de condición κx es muy grande con lo que, aunque x sea pequen̄o,
f puede ser muy grande.

√ 2.7 Calcular aproximadamente


Problema √ con qué precisión se debe conocer el
número 2 si se pretende calcular ln(1/ 2) con 4 cifras decimales de precisión.

Solución. Consideremos la función f (x) = ln(1/x). Sea Δx y Δf los errores


absolutos, es decir, precisiones, con los que se conocen x y f (x) respectivamente.
Se sabe de la teorı́a de propagación de errores que Δf ≈ |f  (x)| Δx . En nuestro
caso particular, esta fórmula reduce a
 
 1
Δf ≈ −  Δx ,
x
de donde, usando las propiedades del valor absoluto y despejando se llega a
Δx ≈ |x| Δf .

Finalmente, en el caso que nos ocupa, x = 2 y Δf ≤ 10−4 de modo que

Δ√2 ≤ 2 10−4 ≈ 0,00014 < 10−3 .
22 Errores, Estabilidad y Condicionamiento

Problema 2.8 Un bloque de masa m desliza bajo la acción de la gravedad por


un plano inclinado formando un ángulo θ respecto de la horizontal. Se puede
demostrar que, si la fuerza de rozamiento Fr entre el bloque y el plano viene
dada por Fr = −kmv 2 con v la velocidad del bloque y k un coeficiente de roza-
miento, entonces el tiempo T requerido para que el bloque recorra una distancia
D partiendo del reposo está relacionado de la forma

ekD = cosh[T kg sin θ] ,

siendo g = 9,8 la aceleración de la gravedad. Si θ = π/4, k = 0,5 ± 0,1 y


T = 2 ± 0,2, hallar la precisión con la que se conoce D.

Solución. A partir de la relación



ekD = cosh[T kg sin θ] ,

despejamos D y obtenemos

1  
D = f (k, T, θ) = ln cosh[T kg sin θ] .
k
El valor aproximado de D será

D∗ = f (0,5, 2, π/4) = 6,060 .

Puesto que en las magnitudes k y T se tienen asociadas errores absolutos Δk y


ΔT respectivamente, se obtiene la siguiente aproximación del error absoluto en
la magnitud D
   
 ∂D   ∂D 
ΔD ≈    
Δk +   ΔT
∂k  ∂T 
 
 ln
cosh[T √kg sin θ] gT sin θ tanh[T √kg sin θ] 
 
= − + √  Δk +
 k2 2k gk sin θ 
√ √ 
 gk sin θ tanh[T kg sin θ] 
  ΔT .
 k 

Sustituyendo en esta expresión los valores Δk = 0,1, ΔT = 0,2, g = 9,8, T = 2


y k = 0,5 se obtiene

ΔD ≈ |−4,684| 0,1 + |3,718| 0,2 = 1,212 .

En definitiva se obtiene

D = D∗ ± ΔD ≈ 6,060 ± 1,212 .

Problema 2.9 Averiguar si el cálculo de raı́ces cuadradas es una operación


computacionalmente segura atendiendo a la propagación de errores.
2.2 Problemas resueltos 23

Solución. Sea R+ el conjunto de todos los números reales positivos. Sea x∗ ∈ R+


+
una aproximación√de x ∈ R √ . Nos preguntamos cómo se propaga el error relativo
si aproximamos √x por x∗ . Puesto que la función f : R+ → R+ definida
mediante f (x) = x es una función de clase C 1 (R+ ), se sabe que f ≈ κx x ,
siendo x = |x − x∗ |/|x| y f = |f (x) − f (x∗ )|/|f (x)| los errores relativos en las
aproximaciones x ≈ x∗ y f (x) ≈ f (x∗ ) respectivamente y
  
 xf (x) 

κx =  
f (x) 
√ √
el número de condición. En nuestro caso, f (x) = x y f  (x) = 1/(2 x), de
modo que
1
κx = ,
2
es decir, los errores relativos se reducen aproximadamente a la mitad cuando se
evalúa una raı́z cuadrada y por lo tanto el cálculo de raı́ces cuadradas es una
operación computacionalmente segura.

Problema 2.10 Consideremos la función f (x) = sin x. Se realiza con un orde-


nador una tabla donde se obtiene la aproximación dada por la fórmula de dife-
rencias hacia adelante de f  (1) con longitudes de paso h cada vez más pequen̄as
obteniéndose
f  (1) 0.5402980 0.5403023 0.5551115 0
h 10−5 10−9 10−15 10−16

Dar una explicación del comportamiento obtenido en términos de errores de


truncamiento y errores de redondeo. ¿Se obtendrá un comportamiento similar
para cualquier otra función f (x)?

Solución. La fórmula de diferencias hacia adelante aproxima la derivada f  (x)


de una función mediante
f (x + h) − f (x)
f  (x) ≈ ,
h
con un error truncamiento Δ = O(h). Esto significa que, si se realizan los
cálculos de manera exacta (es decir, sin errores de redondeo) entonces el error
Δ disminuye cuando lo hace la longitud de paso h y además lı́mh→0 Δ = 0. Sin
embargo, cuando se realizan los cálculos con un ordenador, este comete errores
de redondeo de forma inevitable. En el caso que nos ocupa, debido al epsilon de
la máquina , cuando h se hace suficientemente pequen̄a 0 < h < , el ordenador
aproxima x + h ≈ x de modo que f (x + h) − f (x) ≈ 0. Este comportamiento
explica el valor incorrecto f  (1) = 0 de la tabla dada en el enunciado.
En resumen, cuando el ordenador realiza los cálculos, el valor óptimo de h
en la fórmula de diferencias hacia adelante debe ser pequen̄o para minimizar el
error de truncamiento propio de la fórmula, pero sin ser del orden de magnitud
de  para evitar los errores de redondeo. En el caso particular que nos ocupa,
24 Errores, Estabilidad y Condicionamiento

f (x) = sin x de modo que f  (1) = cos(1) = 0,5403023 observándose en la tabla


el comportamiento descrito anteriormente.
Este comportamiento lo verificará cualquier función f (x) con la única ex-
cepción de las funciones constantes f (x) = c ∈ R para todo x. El motivo es que
la función f no depende de su argumento x de modo que f (x + h) = f (x) para
todo x y h y además f  (x) = 0.

Problema 2.11 Se puede demostrar que la sucesión {xn }n∈N ⊂ R definida de


la forma recurrente siguiente
 
1
x2 = 2 , xn+1 = 2n− 2 1 − 1 − 41−n x2n

converge hacia π. Explica el siguiente comportamiento al usar un ordenador


para calcular los primeros términos de la sucesión.

n 2 6 10 25 550
xn 2 3.1365 3.1415 3.1425 0

Solución. A pesar de que un cálculo muestra que lı́mn→∞ xn = π ≈ 3,14159, en


la tabla adjunta se observa que, al ir calculando con un ordenador los términos
xn de la sucesión para valores crecientes de n, el comportamiento es de un
acercamiento hacia π para n ≤ 10. Sin embargo, al seguir aumentando n, la
sucesión comienza a alejarse de π hasta estabilizarse en el valor 0 para n ≥ 550.
La explicación de este comportamiento anómalo se debe a los errores de redondeo
cometidos por el ordenador. Notemos que, para n suficientemente grande, 41−n
es suficientemente cercano a cero como para que, debido al épsilon de la máquina,
se cometa
 la aproximación por redondeo 1 − 41−n x2n ≈ 1. De este modo se tiene
 n− 12

que 1 − 1 − 4 1−n 2
xn ≈ 0 con lo cual xn+1 = 2 1 − 1 − 41−n x2n ≈
0 mostrando de esta forma el comportamiento indeseado debido a errores de
redondeo.

Problema 2.12 Un disco de radio R y grosor despreciable está cargado eléctri-


camente con una densidad de carga σ constante. Consideremos su eje de
simetrı́a, es decir, la recta perpendicular al disco que pasa por su centro. En-
tonces, se puede demostrar que la intensidad de campo eléctrico E que genera
el disco en un punto de su eje de simetrı́a que está a distancia x del disco viene
dado por
σ x
E= 1− √ ,
20 x2 + R2
siendo 0 = 8,8542 × 10−12 la permitividad del vacio en el sistema interna-
cional. Tomando unidades del sistema internacional, realizamos las siguientes
mediciones: σ = 10−10 , x = 1 ± 0,1 y R = 3 ± 0,1. Aproximar el error absoluto
con el que se conoce E.

Solución. Puesto que las únicas magnitudes que contienen errores son x y R,
2.2 Problemas resueltos 25

tomaremos la función

σ x
E(x, R) = 1− √ .
20 x + R2
2

Denotamos ΔE , Δx y ΔR a los errores absolutos asociados a las cantidades E,


x y R. Utilizando la fórmula de propagación de errores absolutos se tiene que
       
 ∂E     −R2 σ   
ΔE ≈   Δx +  ∂E  ΔR =   Δx +  Rσx  ΔR .
∂x   ∂R   2
20 (x + R )2 3/2   20 (x + R ) 
2 2 3/2

Tomamos 0 = 8,8542 × 10−12 , σ = 10−10 y recordamos que x = 1 ± 0,1 y


R = 3 ± 0,1 de modo que Δx = ΔR = 0,1. Particularizando para estos valores
se obtiene

ΔE ≈ |−1,60718| × 0,1 + |0,535725| × 0,1 = 0,21429 .


Capı́tulo 3

Sistemas Lineales

3.1. Resumen de teorı́a


El sistema lineal se escribe en la forma matricial Ax = b, siendo A = (aij )
una matriz cuadrada n × n y b = (bi )T un vector columna. Supondremos que el
sistema es compatible y determinado, es decir la matriz A es no singular y por
lo tanto det A = 0, lo que nos garantiza una única solución xT = (x01 , . . . , x0n ).
Desde un punto de vista teórico, la resolución de tales sistemas de ecuaciones
puede hacerse a través de la regla de Cramer (cálculo de determinantes) o bien
mediante el cálculo de la matriz inversa x = A−1 b. Sin embargo, ambos métodos
no son recomendables desde el punto de vista numérico para sistemas lineales
con muchas ecuaciones e incógnitas bien por que son muy costosos o por que
son numéricamente inestables.

Los procedimientos de resolución de sistemas de ecuaciones lineales se divi-


den fundamentalmente en dos grupos

Métodos directos, que son algoritmos finitos para el cálculo de las solu-
ciones de un sistema lineal. El método de eliminación Gaussiana es un
ejemplo de este tipo.

Métodos iterativos, los cuales permiten obtener las soluciones de un sistema


lineal con una exactitud dada mediante procesos infinitos convergentes.

3.1.1. Algoritmo de eliminación Gaussiana


La eliminación Gaussiana es uno de los métodos más utilizados a la hora de
resolver numéricamente un sistema de cuaciones lineales. Llamaremos transfor-
maciones elementales a las siguientes manipulaciones

(1) Permutar ecuaciones.

(2) Multiplicar una ecuación por un número diferente de cero.

27
28 Sistemas Lineales

(3) Sumar a una ecuación una combinación lineal de las ecuaciones restante.
Es conocido que las transformaciones elementales no modifican la solución del
sistema lineal.

El algoritmo Gaussiano consiste en la utilización repetida de la segunda y


tercera transformación elemental con el objetivo de transformar el sistema en
uno triangular superior. Una vez se ha conseguido este paso, la solución del sis-
tema triangular superior vendrá dada por el algoritmo de sustitución hacia atrás.

Consideremos el sistema Ax = b, con det A = 0. Más explı́citamente


⎛ ⎞ ⎛ ⎞ ⎛ ⎞
a11 a12 a13 · · · a1n x1 b1
⎜ a21 a22 a23 · · · a2n ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ x2 ⎟ ⎜ b2 ⎟
⎜ a31 a32 a33 · · · a3n ⎟ ⎜ x3 ⎟ ⎜ b3 ⎟
⎜ ⎟ ⎜ ⎟=⎜ ⎟ . (3.1)
⎜ .. .. .. .. .. ⎟ ⎜ .. ⎟ ⎜ .. ⎟
⎝ . . . . . ⎠ ⎝ . ⎠ ⎝ . ⎠
an1 an2 an3 · · · ann xn bn

Paso 1. Denotemos por A(0) = A y supongamos que a11 = 0. El primer


paso de la eliminación Gaussiana consiste en eliminar x1 de las n − 1 últimas
ecuaciones. Para hacerlo, le restamos a la i-ésima ecuación la primera ecuación
multiplicada por el factor mi1 = ai1 /a11 para i = 2, . . . , n. De esta forma el
sistema lineal queda A(1) x = b(1) , es decir
⎛ (0) (0) (0) (0) ⎞ ⎛ ⎞ ⎛ (0) ⎞
a11 a12 a13 · · · a1n x1 b1
⎜ (1) (1) (1) ⎟ ⎟ ⎜ (1) ⎟
⎜ 0 a22 a23 · · · a2n ⎟ ⎜ ⎜ x 2 ⎜
⎟ ⎜ b2(1) ⎟
⎜ (1) (1) (1) ⎟ ⎜ x ⎟ ⎟
⎜ 0 a32 a33 · · · a3n ⎟ 3 ⎟ = ⎜ b3 ⎟ ,
⎜ ⎟ ⎜ ⎜
.. ⎟ ⎜ . ⎟
(3.2)
⎜ .. .. .. .. .. ⎟ ⎜⎝ ⎠ . ⎟
⎝ . . . . . ⎠ . ⎝ . ⎠
(1) (1) (1) x (1)
0 a n2 a ··· a
n3 nn
n b n

(1) (0) (0) (1) (0) (0)


donde hemos definido aij = aij − mi1 a1j y bi = bi − mi1 b1 para i, j =
2, . . . , n.
(1)
Paso 2. Supongamos que a22 = 0. El segundo paso del algoritmo Gaussiana
consiste en eliminar x2 de las n − 2 últimas ecuaciones del sistema (3.2). Para
conseguirlo, restamos a la i-ésima ecuación la segunda ecuación multiplicada
(1) (1)
por el factor mi2 = ai2 /a22 para i = 3, . . . , n, consiguiendo que el sistema (3.2)
adopte la forma matricial A(2) x = b(2) o más detallado
⎛ (0) (0) (0) (0) ⎞ ⎛ ⎞ ⎛ (0) ⎞
a11 a12 a13 · · · a1n x1 b1
⎜ (1) (1) (1) ⎟ ⎜ ⎟ ⎜ (1) ⎟
⎜ 0 a 22 a23 · · · a2n ⎟ ⎜ x 2 ⎟ ⎜ b2 ⎟
⎜ (2) (2) ⎟ ⎜ x ⎟ ⎜ (2) ⎟
⎜ 0 a33 · · · a3n ⎟ 3 ⎟ = ⎜ b3 ⎟ ,
⎜ 0 ⎟ ⎜ .. ⎟ ⎜ ⎟ (3.3)
⎜ .. .. .. .. .. ⎟ ⎜ ⎝ ⎠ ⎜ .. ⎟
⎝ . . . . . ⎠ . ⎝ . ⎠
(2) (2) x (2)
0 0 a ··· a
n3 nn
n b n
3.1 Resumen de teorı́a 29

(2) (1) (1) (2) (1) (1)


siendo aij = aij − mi2 a2j y bi = bi − mi2 b2 para i, j = 3, . . . , n .

Paso k-ésimo. Despues de k − 1 pasos, el sistema tiene la siguiente forma


⎛ (0) (0) (0) (0) ⎞ ⎛ ⎞ ⎛ (0) ⎞
a11 · · · a1k−1 a1k ··· a1n x1 b1
⎜ . . . . . . ⎟ ⎜ . ⎟ ⎜ .. ⎟
⎜ .. .. .. .. .. .. ⎟ ⎜ . ⎟ ⎜ . ⎟
⎜ ⎟ ⎜ . ⎟ ⎜ ⎟
⎜ (k−2) (k−2) (k−2) ⎟ ⎜ ⎟ ⎜ (k−2) ⎟
⎜ 0 · · · ak−1k−1 ak−1k · · · ak−1n ⎟ ⎜ xk−1 ⎟ ⎜ bk−1 ⎟
⎜ (k−1) ⎟ = ⎜ (k−1) ⎟ ,
⎜ 0 ···
(k−1)
· · · akn ⎟ ⎜ xk ⎟ ⎟ ⎜ ⎟
⎜ 0 akk ⎟ ⎜ ⎜ ⎟ ⎜ bk ⎟
⎜ .. .. .. .. .. .. ⎟ ⎝ .. ⎠ ⎜ .. ⎟
⎝ . . . . . . ⎠ . ⎝ . ⎠
(k−1) (k−1) x (k−1)
0 ··· 0 ank · · · ann n bn
(3.4)
de manera que para conseguir los ceros subdiagonales de la columna k-ésima
(k−1)
hacemos (siempre y cuando akk = 0) la transformación siguiente
(k) (k−1) (k−1) (k) (k−1) (k−1)
aij = aij − mik akj , bi = bi − mik bk , (3.5)
(k−1) (k−1)
siendo mik = aik /akk y con i, j = k + 1, . . . , n.
(k−1)
Los elementos akk con k = 1, 2, . . . que van apareciendo en este proceso se
llaman pivotes. Si todos los pivotes son no nulos, la aplicación descrita en (3.5)
desde k = 1, . . . , n − 1 da lugar a la triangularización superior de la matriz de
los coeficientes del sistema
⎛ (0) (0) (0)
⎞ ⎛ ⎞ ⎛ (0) ⎞
a11 a12 · · · a1n x1 b1

⎜ 0
(1)
a22 · · · a2n ⎟ ⎜
(1) ⎟
x ⎟ ⎜ ⎜ b
(1) ⎟

⎜ . ⎟ ⎜ 2 ⎟ ⎜ 2 ⎟ ,
⎜ . .. .. .. ⎜
⎟ ⎝ . ⎠ ⎜. ⎟ = .. ⎟ (3.6)
⎝ . . . . ⎠ . ⎝ . ⎠
(n−1) xn (n−1)
0 0 · · · ann bn
de manera que hemos reducido el problema a la resolución de un sistema trian-
gular.

Estrategia de pivotación parcial: En el paso k-ésimo, en el cual pasamos de


(k−1)
la matriz A(k−1) → A(k) , podemos tener el pivote akk o bien nulo o bien muy
pequen̄o. Entonces, tomaremos como pivote al elemento de la columna k-ésima
(k−1) (k−1) (k−1)
diagonal y subdiagonal akk , ak+1k , . . . , ank más grande en valor absoluto
e intercambiaremos la fila k-ésima y la fila del pivote elegido. Es decir, sea r el
número entero más pequen̄o que verifique
 
(k−1)  (k−1) 
ark = máx aik  , (3.7)
i=k,...,n

e intercambiaremos las filas (ecuaciones) k y r.


Existen casos particulares para los cuales el algoritmo de eliminación Gaus-
siana aplicado a la resolución del sistema lineal Ax = b es numéricamente estable
y no es necesaria ninguna estrategia de pivote. Alguno de estos casos son cuando
30 Sistemas Lineales

La matriz cuadrada A es diagonal dominante por filas, es decir


n
|aii | > |aij | para i = 1, . . . , n.
j=1
j=i

La matriz cuadrada A es simétrica (A = At ) y definida positiva (xt Ax > 0


para toda x = 0 con x ∈ Rn ). A este respecto es útil el llamado Criterio
de Sylvester: “una matriz simétrica es definida positiva si y sólo si todos
sus determinantes menores principales Δk son positivos ”.

Del estudio realizado en la eliminación Gaussiana sin pivotación, se despren-


de que los elementos de la matriz triangular superior resultante vienen dados
por
 (1) (i−2)
(i−1) aij − mi1 a1j − mi2 a2j − · · · − mii−1 ai−1j si i ≤ j ,
aij =
0 si i > j ,

de lo que se deduce que


(1) (i−2) (i−1)
aij = mi1 a1j + mi2 a2j + · · · + mii−1 ai−1j + aij .

Esta última ecuación nos permite asegurar que la matriz original de coeficientes
del sistema puede descomponer en el producto de dos matrices triangulares de
la forma
⎛ ⎞
a11 a12 a13 · · · a1n
⎜ a21 a22 a23 · · · a2n ⎟
⎜ ⎟
⎜ a31 a32 a33 · · · a3n ⎟
⎜ ⎟= (3.8)
⎜ .. .. .. .. .. ⎟
⎝ . . . . . ⎠
an1 an2 an3 · · · ann
⎛ ⎞ ⎛ a a12 a13 · · · a1n

1 0 0 ··· 0 11
⎜ m21 ⎜ 0 a(1) a(1) · · · a2n ⎟
(1)
⎜ 1 0 ··· 0 ⎟ ⎟ ⎜ 22 23 ⎟
⎜ m31 m32 ⎜ ⎟
⎜ 1 ··· 0 ⎟ ⎟˙⎜ 0 0
(2)
a33 · · ·
(2)
a3n ⎟
⎜ .. . ⎟ ⎜ ⎟
. .. ⎠ ⎜ ⎟
.. .. .. . .. .. .. ..
⎝ . . . ⎝ .. . . . . ⎠
mn1 mn2 mn3 · · · 1 0 0 0
(n−1)
· · · ann

Respecto a la unicidad de esta descomposición tenemos el siguiente teorema.

Teorema 3.1 Sea A una matriz n × n. Denotemos por Ak las submatrices


cuadradas k × k formadas por las primeras k filas y columnas de A. Si los
determinantes menores principales det Ak = 0 para k = 1, . . . , n, entonces ex-
isten matrices triangulares únicas L = (ij ) y U = (uij ), inferior y superior
respectivamente, con ii = 1 para i = 1, . . . , n, tales que A = LU .
3.2 Problemas resueltos 31

La relación entre la eliminación Gaussiana y la descomposición LU descrita


en el Teorema 3.1 es la siguiente

 ⎨ 0 si i < j ,
0 si i > j ,
uij = (i−1) ,  ij = 1 si i = j ,
aij si i ≤ j , ⎩
mij si i > j ,
donde el paso k-ésimo de la eliminación Gaussiana de una matriz cuadrada de
orden n consiste en la transformación elemental
fi → fi − mik fk , para i = k + 1, . . . , n,
utilizando la notación fi para la fila i-ésima de la matriz.
Finalmente, recordemos que el número de condición de la matriz A respecto
de una norma dada es
κ(A) := A A−1 . (3.9)
Sea A = (aij ) ∈ Mn (R). Algunas normas matriciales son:
n
A 1 := máx1≤j≤n i=1 |aij |.
n
A ∞ := máx1≤i≤n j=1 |aij |.

3.2. Problemas resueltos


Problema 3.1 Consideremos el sistema lineal Ax = b definido de la forma
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
6 −2 2 4 x1 12
⎜ 12 −8 6 10 ⎟ ⎜ x2 ⎟ ⎜ 34 ⎟
⎜ ⎟ ⎜ ⎟=⎜ ⎟ .
⎝ 3 −13 9 3 ⎠ ⎝ x3 ⎠ ⎝ 27 ⎠
−6 4 1 −18 x4 −38

(i) Resolver el sistema lineal utilizando el algoritmo de eliminación Gaussiana


sin pivotación.

(ii) A partir de los cálculos efectuados en el apartado (i), hallar la descomposi-


ción LU de la matriz A y calcular el valor del determinante de A.
(iii) Demostrar que la descomposición LU hallada es única.
Solución. (i) Realizando transformaciones elementales por filas a la matriz
ampliada A∗ del sistema lineal se tiene A∗ ∼ A(1) ∼ A(2) ∼ A(3) como detalla-
mos a continuación
⎛ ⎞ ⎛ ⎞
6 −2 2 4 12 6 −2 2 4 12
⎜ 12 −8 6 10 34 ⎟ ⎜ 10 ⎟
⎜ ⎟ ∼ ⎜ 0 −4 2 2 ⎟∼
⎝ 3 −13 9 3 27 ⎠ ⎝ 0 −12 8 1 21 ⎠
−6 4 1 −18 −38 0 2 3 −14 −26
⎛ ⎞ ⎛ ⎞
6 −2 2 4 12 6 −2 2 4 12
⎜ 0 −4 2 2 10 ⎟ ⎜ 0 −4 2 2 10 ⎟
⎜ ⎟ ∼ ⎜ ⎟
⎝ 0 0 2 −5 −9 ⎠ ⎝ 0 0 2 −5 −9 ⎠ .
0 0 4 −13 −21 0 0 0 −3 −3
32 Sistemas Lineales

Ahora podemos resolver el sistema por substitución hacia atrás y obtener

(x1 , x2 , x3 , x4 ) = (1, −3, −2, 1) .

(ii) Sabemos que U = A(3) es triangular superior y que L = (ij ) es trian-


gular inferior tal que ⎧
⎨ 0 si i<j
ij = 1 si i=j

mij si i>j
Las transformaciones elementales (por filas) realizadas en el apartado (i) han
sido:

⎨ f2 → f2 − 2f1 =⇒ m21 = 2
(1) f3 → f3 − 1/2f1 =⇒ m31 = 1/2

f4 → f4 + f1 =⇒ m41 = −1

⎨ f3 → f3 − 3f2 =⇒ m32 = 3
(2) f4 → f4 + 1/2f2 =⇒ m42 = −1/2

f4 → f4 + f1 =⇒ m41 = −1
(3) f4 → f4 − 2f3 =⇒ m43 = 2

de manera que la descomposición LU de la matriz A viene dada por las matrices


⎛ ⎞ ⎛ ⎞
1 0 0 0 6 −2 2 4
⎜ 2 0 0 ⎟ ⎜ ⎟
L=⎜
1 ⎟ , U = ⎜ 0 −4 2 2 ⎟ .
⎝ 1/2 3 1 0 ⎠ ⎝ 0 0 2 −5 ⎠
−1 −1/2 2 1 0 0 0 −3

Finalmente, el determinante de la matriz A es

det A = det(LU ) = det L det U = det U = 6(−4)2(−3) = 144 .

(iii) Definimos Δk como el determinante menor principal de orden k de


la matriz A. Que la descomposición LU hallada es única se desprende de la
condición suficiente Δk = 0 para k = 1, 2, 3, 4. En concreto tenemos

Δ1 = 6 , Δ2 = −24 , Δ3 = −48 , Δ4 = det A = 144 .

Problema 3.2 Supongamos que se quiere resolver el sistema lineal Ax = b,


donde x, b ∈ R2 , b = 0 y A es la matriz cuadrada 2 × 2 siguiente

1 1+
A= ∈ M2 (R) ,
1− 1

con  > 0. Utilizando la norma del infinito y suponiendo que  ≤ 0,01, demostrar
que una pequen̄a perturbación relativa del término independiente b puede pro-
ducir una perturbación relativa 40401 veces mayor en la solución del sistema
lineal.
3.2 Problemas resueltos 33

Solución. Sea Δb una perturbación del vector de términos independientes del


sistema Ax = b. Se sabe que el error relativo que se producirá en la solución del
sistema debido a la perturbación viene acotado por
Δx Δb
≤ κ(A) ,
x b
donde κ(A) := A A−1 .

En primer lugar calculamos la inversa de la matriz A, por ejemplo mediante


la utilización de la fórmula
1
A−1 = (A∗ ) ,
T
det A
donde A∗ es la matriz de adjuntos de ma matriz A y viene dada por

∗ 1 −1
A = .
−1 −  1
Como det A = 2 , se concluye que

1 1 − − 1
A−1 = .
2 −1 1
Finalmente se calcula, utilizando la norma del infinito, el número de condición
de la matriz A
κ(A) = A ∞ A−1 ∞
 
1 + | − 1| 1 + 1 + 
= máx{1 + |1 − |, 1 +  + 1} máx ,
2 2
2
2 2+
= (2 + ) 2 = .
 
Si tomamos  = 0,01 se tiene κ(A) = 40401, de manera que
Δx Δb
≤ 40401 ,
x b
como se querı́a demostrar.
Problema 3.3 Considerar la matriz A ∈ M4 (R) definida de la forma
⎛ ⎞
1 1 0 3
⎜ 2 1 −1 1 ⎟
A=⎜ ⎝ 3 −1 −1 2 ⎠ .

−1 2 3 −1

(i) Hallar la descomposición LU de la matriz A y calcular el valor del determi-


nante de A.
(ii) Averiguar si la descomposición LU hallada es única.
34 Sistemas Lineales

Solución. (i) Realizamos las siguientes transformaciones elementales a la ma-


triz A
⎛ ⎞ ⎛ ⎞
1 1 0 3 1 1 0 3
⎜ 2 1 −1 1 ⎟ ⎜ 0 −1 −1 −5 ⎟
A=⎜ ⎟ (1)
⎝ 3 −1 −1 2 ⎠ ∼ A = ⎝ 0 −4 −1 −7 ⎠ ∼
⎜ ⎟

−1 2 3 −1 0 3 3 2
⎛ ⎞
1 1 0 3
⎜ 0 −1 −1 −5 ⎟
A(2) = ⎜
⎝ 0 0
⎟ = A(3) .
3 13 ⎠
0 0 0 −13

Sabemos que U = A(3) es triangular superior y que L = (ij ) es triangular


inferior tal que ⎧
⎨ 0 si i<j
ij = 1 si i=j

mij si i>j
Las transformaciones elementales (por filas) realizadas han sido:

⎨ f2 → f2 − 2f1 =⇒ m21 = 2
(1) f3 → f3 − 3f1 =⇒ m31 = 3

f4 → f4 + f1 =⇒ m41 = −1

f3 → f3 − 4f2 =⇒ m32 = 4
(2)
f4 → f4 + 3f2 =⇒ m42 = −3
(3) f4 → f4 − 0f3 =⇒ m43 = 0
de manera que la descomposición LU de la matriz A es
⎛ ⎞ ⎛ ⎞
1 0 0 0 1 1 0 3
⎜ 2 1 0 0 ⎟ ⎜ 0 −1 −1 −5 ⎟
L=⎝ ⎜ ⎟ , U =⎝ ⎜ ⎟ .
3 4 1 0 ⎠ 0 0 3 13 ⎠
−1 −3 0 1 0 0 0 −13
Finalmente, el determinante de la matriz A es
det A = det(LU ) = det L det U = det U = (1)(−1)(3)(−13) = 39 .
(ii) Definimos Δk como el determinante menor principal de orden k de
la matriz A. Que la descomposición LU hallada es única se desprende de la
condición suficiente Δk = 0 para k = 1, 2, 3, 4. En concreto tenemos
Δ1 = 1 , Δ2 = −1 , Δ3 = −3 , Δ4 = det A = 39 .
Problema 3.4 Averiguar si es posible resolver el siguiente sistema lineal por
desomposición LU .
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
1 2 6 x 9
⎝ 4 8 −1 ⎠ ⎝ y ⎠ = ⎝ 100 ⎠
−2 3 5 z 45
3.2 Problemas resueltos 35

Solución. Recordemos que, dada una matriz A ∈ Mn (R), si todos sus de-
teminantes menores principales Δk con k = 1, 2, . . . , n, son diferentes de cero,
entonces existen matrices triangulares únicas L = (ij ) y U = (uij ) triangulares
inferiores y superiores respectı́vamente con ii = 1 para i = 1, 2, . . . , n tales que
A = LU .

En nuestro caso, si A es la matriz de coeficientes del sistema lineal dado, sus


determinantes menores principales son

 
 1 2 
Δ1 = 1 = 0 , Δ2 =   = 0 , Δ3 = det A = 175 = 0 .
4 8 

Como Δ2 = 0 no podemos aplicar el resultado que hemos comentado en un prin-


cipio. Ası́, hemos de proceder a su construcción explı́cita. En concreto, suponien-
do que A = LU , se tiene

⎛ ⎞ ⎛ ⎞ ⎛ ⎞
1 2 6 1 0 0 u11 u12 u13
⎝ 4 8 −1 ⎠ = ⎝ 21 1 0 ⎠ ⎝ 0 u22 u23 ⎠ .
−2 3 5 31 32 1 0 0 u33

Efectuando el producto de las dos matrices anteriores e igualando elemento a


elemento se tiene:
(a) En la primera columna:

1 =
u11 ,
4 = m21 u11 = m21 ,
−2 = m31 u11 = m31 .

(b) En la segunda columna:

2 = u12 ,
8 = m21 u12 + u22 = 4 × 2 + u22 , u22 = 0 ,
3 = m31 u12 + m32 u22 = −2 × 2 + m32 × 0 = −4 ,

donde esta última igualdad es una contradicción. Concluimos que A no admite


desomposición LU y por lo tanto el sistema del enunciado no puede ser resuelto
por este método.
36 Sistemas Lineales

Problema 3.5 Sean x e y la solución del sistema lineal



b 2 x 2
= .
1 a y 3

(i) Averiguar para qué valores de los parámetros a y b es posible hallar la des-
composición LU de la matriz de coeficientes del sistema a partir del algo-
ritmo de eliminación Gaussiana sin pivotación. Para esos valores de los
parámetros obtener las matrices L y U . ¿Es única dicha descomposición
si a = 2 y b = 7?
(ii) Utilizando la norma L1 , calcular el número de condición de la matriz de
coeficientes del sistema cuando a = 1 y b = 3.
(iii) Si a = 2 ± 0,5 y b = 5 ± 0,1, aproximar la precisión con la que se puede
determinar x + y.

Solución. (i) Sea A la matriz de coeficientes del sistema lineal, es decir,



b 2
A= .
1 a

Para hallar la descomposición LU de la matriz A mediante el algoritmo de


eliminación Gaussiana sin pivotación, el primer paso de dicho algoritmo con-
siste en realizar la transformación elemental por filas f2 → f2 − m21 f1 , siendo
el multiplicador m21 = 1/b. Obviamente este paso es sólo posible cuando el
pivote utilizado b = 0. Bajo esta hipótesis, se realiza la anterior transformación
elemental y se obtiene la matriz A(1) semejante a A y dada por

(1) b 2
A = .
0 a − 2b

Puesto que A(1) ya es triangular superior, el algoritmo finaliza. En resumen, si


b = 0 entonces

(1) 1 0 b 2
A = LU = LA = 1 .
b 1 0 a − 2b

Finalmente, como para los valores a = 2 y b = 7 los determinantes menores


principales de A son no nulos, es decir,

Δ1 = 7 = 0 , Δ2 = 12 = 0 ,

se concluye que la descomposición LU es única.

(ii) Si a = 1 y b = 3 la matriz A es

3 2
A= .
1 1
3.2 Problemas resueltos 37

Tomando la norma L1 , el número de condición κ(A) de la matriz A es κ(A) =


A 1 A−1 1 . Finalmente, puesto que la matriz inversa de A es

1 −2
A−1 = ,
−1 3

las normas involucradas son

A 1 = máx{|3|+|1|, |2|+|11} = 4 , A−1 1 = máx{|1|+|−1|, |−2|+|3|} = 5 .

En definitiva κ(A) = 20.

(iii) Puesto que a = 2 ± 0,5 y b = 5 ± 0,1, es obvio que det A = ab − 2 = 0 y


por lo tanto el sistema lineal es compatible y determinado. Además, su solución
es
2(a − 3) 3b − 2
x= , y= .
ab − 2 ab − 2
Se tiene por lo tanto que la función f suma de las soluciones del sistema lineal,
es decir f = x + y, vale
2a + 3b − 8
f (a, b) = .
ab − 2
Puesto que a y b tienen errores absolutos Δa y Δb respectı́vamente, se puede
aproximar el error absoluto Δf al calcular la función f de la forma
   
 ∂f   ∂f 
Δf ≈  (a, b) Δa +  (a, b) Δb
  
∂a ∂b
   
 (3b − 2)(2 − b)   2(a − 3)(1 − a) 
=   
Δa +   Δb .
(ab − 2)2  (ab − 2)2 

Sustituyendo en la anterior expresión a = 2, b = 5, Δa = 0,5 y Δb = 0,1 se


obtiene Δf ≈ 0,307813.

Problema 3.6 Si  = 10−5 , averiguar si la siguiente matriz A ∈ M2 (R)


está bien condicionada utilizando la norma L1

1 2
A= .
1 2+

Solución. Sea A = (aij ) ∈ M2 (R). Entonces


2

A 1 := máx |aij | .
1≤j≤2
i=1

La matriz inversa de A es

−1 1 2+ −2
A = .
 −1 1
38 Sistemas Lineales

De esta forma, se tiene que

A 1 = máx{2, 4 + } = 4 +  ,
1 3+
A−1 1 = máx{3 + , 3} = .
 
Se concluye que, el número de condición κ(A) asociado a A en la norma L1 vale

3+
κ(A) = A 1 A−1 1 = (4 + ) .

Para el caso  = 10−5 se obtiene

κ(A) = 1.20001 × 106 >> 1 ,

de manera que A está muy mal condicionada.

Problema 3.7 Consideremos el sistema lineal Ax = b, siendo


⎛ ⎞ ⎛ ⎞
3 −1 2 0
A=⎝ 1 2 3 ⎠ , b=⎝ 1 ⎠ .
2 −2 −1 2

(i) Averiguar si la matriz A admite una única descomposición LU .


(ii) Utilizar dicha descomposición para resolver el sistema lineal del enunciado.

Solución. (i) Puesto que todos los determinantes menores principales de la


matriz A
Δ1 = 3 = 0 , Δ2 = 7 = 0 , Δ3 = det A = −7 = 0
son no nulos, podemos concluir que la matriz A admite una única descomposi-
ción LU .

(ii) Para hallar la descomposición LU de la matriz A, utilizaremos el algo-


ritmo de eliminación gaussiana sin pivotación.
⎛ ⎞ ⎛ ⎞
3 −1 2 3 −1 2
A ∼ ⎝ 0 7/3 7/3 ⎠ ∼ ⎝ 0 7/3 7/3 ⎠ = U ,
0 −4/3 −7/3 0 0 −1

donde las transformaciones elementales por filas realizadas han sido: 1) fi →


fi − mi1 f1 , con i = 2, 3, siendo m21 = 1/3 y m31 = 2/3; 2) f3 → f3 − m32 f2 ,
con m32 = −4/7.
En definitiva A = LU , siendo
⎛ ⎞ ⎛ ⎞
1 0 0 3 −1 2
L = ⎝ 1/3 1 0 ⎠ , U = ⎝ 0 7/3 7/3 ⎠ .
2/3 −4/7 1 0 0 −1
3.2 Problemas resueltos 39

Descomponiendo el sistema lineal Ax = b en los dos sistemas triangulares Ly =


b, U x = y se tiene que, la solución del primer sistema se puede hallar por
sustitución hacia adelante obteniéndose y = (0, 1, 18/7)t mientras que la solución
del segundo sistema por sustitución hacia atrás es x = (19/7, 3, −18/7)t .

Problema 3.8 Considerar un conjunto de osciladores armónicos acoplados con


un grado de libertad. En concreto el sistema tiene 3 masas y cuatro muelles
enganchados a dos paredes de forma consecutiva. Las distancias de las masas
a la pared izquierda son xi , con i = 1, 2, 3. Las paredes están separadas una
distancia d. Los cuatro muelles tienen asociados las constantes elásticas ki y
una longitud natural i , con i = 1, 2, 3, 4. Es fácil demostrar que, las posiciones
de equilibrio x∗i con i = 1, 2, 3 de los osciladores deben verificar el sistema lineal
tridiagonal
⎛ ⎞⎛ ∗ ⎞ ⎛ ⎞
−(k1 + k2 ) k2 0 x1 −k1 1 + k2 2
⎝ k2 −(k2 + k3 ) k3 ⎠ ⎝ x∗2 ⎠ = ⎝ −k2 2 + k3 3 ⎠ .

0 k3 −(k3 + k4 ) x3 −k3 3 + k4 (4 − d)

(i) Supongamos que se han de hallar las posiciones de equilibrio x∗i con i =
1, 2, 3 de los osciladores en 1000 experimentos diferentes, donde la única
variación entre los experimentos es la longitud d entre las paredes. Ra-
zonar qué método se programarı́a en un ordenador para resolver los 1000
sistemas lineales asociados a cada experimento.
(ii) Si todos los muelles son iguales de constante elástica k y longitud natural ,
utilizar el método elegido en el apartado anterior para hallar las posiciones
de equilibrio de los osciladores.

Solución. (i) Se han de resolver 1000 sistemas lineales Ax = bi para i =


1, . . . , 1000 con A ∈ M3 (R), bi ∈ R3 y x = (x∗1 , x∗2 , x∗3 )t ∈ R3 . Ya que la única
variación entre los sistemas lineales a resolver es el vector de términos independi-
entes bi , es natural utilizar para su resolución el método de descomposición LU
de la matriz A de coeficientes. Observar además que, los determinantes menores
principales de A son no nulos debido a que ki = 0 para i = 1, 2, 3, 4, de modo
que la descomposición LU de la matriz A existe y es única.

(ii) Si todos los muelles son iguales de constante elástica k y longitud natural
, el sistema lineal a resolver es
⎛ ⎞⎛ ∗ ⎞ ⎛ ⎞
−2k k 0 x1 0
⎝ k −2k k ⎠ ⎝ x∗2 ⎠ = ⎝ 0 ⎠ .
0 k −2k x∗3 −kd

Denotando por A a la matriz de coeficientes de este sistema, hallaremos su des-


composición LU a través del algoritmo de eliminación Gaussiana. En concreto
40 Sistemas Lineales

se tiene
⎛ ⎞ ⎛ ⎞
−2k k 0 −2k k 0
A = ⎝ k −2k k ⎠∼⎝ 0 −3/2k k ⎠
0 k −2k 0 k −2k
⎛ ⎞
−2k k 0
∼ ⎝ 0 −3/2k k ⎠=U .
0 0 −4/3k

Las transformaciones elementales por filas realizadas han sido en primer lugar
fi → fi − mi1 f1 para i = 2, 3, con m21 = −1/2 y m31 = 0 y en segundo lugar
f3 → f3 − m32 f2 con m32 = −2/3. De este modo se tiene que
⎛ ⎞
1 0 0
L = ⎝ −1/2 1 0 ⎠ .
0 −2/3 1

Aprovechando la descomposición A = LU , el sistema lineal a resolver Ax = b


con b = (0, 0, −kd)t se descompone en dos sistemas triangulares Ly = b, U x = y.
La solución del primer sistema por sustitución hacia adelante es y = (0, 0, −kd)t ,
mientras que la solución del segundo sistema por sustitución hacia atrás es x =
(d/4, d/2, 3d/4)t . Se tiene pues que las posiciones de equilibrio de los osciladores
son
d d 3d
x∗1 = , x∗2 = , x∗3 = .
4 2 4

Problema 3.9 Resolver el siguiente sistema lineal utilizando el algoritmo de


eliminación Gaussiana con pivotación parcial.
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
6 −2 2 4 x 12
⎜ 12 −8 6 −10 ⎟ ⎜ y ⎟ ⎜ 34 ⎟
⎜ ⎟ ⎜ ⎟=⎜ ⎟ .
⎝ 3 −13 9 3 ⎠ ⎝ z ⎠ ⎝ 27 ⎠
−6 4 1 −18 t −38

Solución. Tomamos la matriz ampliada A∗ del sistema


⎛ ⎞
6 −2 2 4 12
⎜ 12 −8 6 −10 34 ⎟
A∗ = ⎜⎝ 3 −13 9
⎟ .
3 27 ⎠
−6 4 1 −18 −38

Con el objetivo de terner el pivote mayor en valor absoluto, permutamos las


filas 1 y 2 de modo que
⎛ ⎞
12 −8 6 −10 34
⎜ 6 −2 2 4 12 ⎟
A∗ ∼ A(1) = ⎜⎝ 3 −13 9
⎟ .
3 27 ⎠
−6 4 1 −18 −38
3.2 Problemas resueltos 41

Ahora realizamos las transformaciones elementales por filas fi → fi − mi1 f1 ,


para i = 2, 3, 4, siendo m21 = 1/2, m31 = 1/4 y m41 = −1/2. Se tiene de esta
forma ⎛ ⎞
12 −8 6 −10 34
⎜ 0 2 −1 9 −5 ⎟
A(1) ∼ A(2) = ⎜
⎝ 0 −11 7,5 5,5 18,5 ⎠ .

0 0 4 −23 −21
Permutamos ahora la fila 2 y la 3 con lo cual
⎛ ⎞
12 −8 6 −10 34
⎜ 0 −11 7,5 5,5 18,5 ⎟
A(2) ∼ A(3) = ⎜⎝ 0
⎟ .
2 −1 9 −5 ⎠
0 0 4 −23 −21

Realizando las transformaciones elementales por filas fi → fi − mi2 f2 , para


i = 3, 4, siendo m32 = −2/11 y m42 = 0 se llega a
⎛ ⎞
12 −8 6 −10 34
⎜ 0 −11 7,5 5,5 18,5 ⎟
A(3) ∼ A(4) = ⎜
⎝ 0
⎟ .
0 0,3636 10 −1,6364 ⎠
0 0 4 −23 −21

Permutamos a continuación la fila 3 y la 4 de modo que


⎛ ⎞
12 −8 6 −10 34
⎜ 0 −11 7,5 5,5 18,5 ⎟
A ∼A =⎜
(4) (4)
⎝ 0
⎟ .

0 4 −23 −21
0 0 0,3636 10 −1,6364

Finalmente, la transformaciones elemental f4 → f4 −m43 f3 con m43 = 0,3636/4


lleva el sistema a la forma triangular
⎛ ⎞
12 −8 6 −10 34
⎜ 0 −11 7,5 5,5 18,5 ⎟
A(4) ∼ A(5) = ⎜
⎝ 0
⎟ .
0 4 −23 −21 ⎠
0 0 0 12,09 0,2726

Utilizando a continuación el algoritmo de sustitución hacia atrás se obtiene la


solución
(x, y, z, t) = (1,97118, −5,16165, −5,1203, 0,0225564) .
Capı́tulo 4

Interpolación Polinómica

4.1. Resumen de teorı́a


Interpolar una función f : I ⊂ R → R en un conjunto de n + 1 puntos
{x0 , x1 , . . . , xn } ⊂ I es encontrar otra función φ de manera que sobre estos
puntos, la nueva función tome los mismos valores que la función original. Es
decir, verificando

φ(xi ) = f (xi ) = fi , para i = 0, 1, . . . , n.

Son muchos los problemas en ingenierı́a en los que hay que estudiar funciones
que no se conocen explı́citamente. En su lugar sólo se conoce una tabulación
de los valores que toma la función en ciertos puntos (por ejemplo como resulta-
do de medidas experimentales). Dichos problemas son buenos candidatos para
la utilización de las técnicas interpolatorias que explicaremos a continuación.
Nosotros sólo vamos a centrarnos en la interpolación polinómica que es la más
sencilla.
Teorema 4.1 Supongamos conocido el valor de una función f (x) en un con-
junto de puntos distintos dos a dos {x0 , x1 , . . . , xn }. Entonces, existe un único
polinomio Pn (x) de grado menor o igual que n que interpola a la función en
estos puntos, es decir Pn (xi ) = f (xi ) para i = 0, . . . , n.

Presentamos ahora una método para calcular el polinomio interpolador Pn (x)


asociado a una tabla de datos (xi , fi ) con i = 0, . . . , n. Este método es el más
explı́cito, aunque no el más eficaz por lo que se refiere al número de operaciones
requeridas. La fórmula de interpolación de Lagrange es

n n
x − xj
Pn (x) = fk k (x) , k (x) = , k = 0, . . . , n. (4.1)
j=0
xk − xj
k=0
j=k

Los polinomios k (x) reciben el nombre de polinomios básicos de Lagrange.

43
44 Interpolación Polinómica

Otro método alternativo para calcular Pn (x) es el llamado de las diferencias


divididas de Newton. En concreto, el polinomio interpolador adopta la forma

Pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + · · · +


f [x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) · · · (x − xn−1 ) , (4.2)

donde, las diferencias divididas vienen definidas recurrentemente de la forma


siguiente

f [xi ] = fi , (4.3)
f [xi+1 , xi+2 , . . . , xi+j ] − f [xi , xi+1 , . . . , xi+j−1 ]
f [xi , xi+1 , . . . , xi+j ] = .
xi+j − xi

Una forma efectiva de realizar esta recurrencia es el siguiente esquema triangular


(dado para el caso n = 3)

x0 f [x0 ]
f [x0 , x1 ]
x1 f [x1 ] f [x0 , x1 , x2 ]
f [x1 , x2 ] f [x0 , x1 , x2 , x3 ]
x2 f [x2 ] f [x1 , x2 , x3 ]
f [x2 , x3 ]
x3 f [x3 ]

Teorema 4.2 Sea f una función de clase C n+1 [a, b], y sea Pn un polinomio de
grado menor o igual que n que interpola a la función f en los siguientes n + 1
puntos {x0 , x1 , . . . , xn } ⊂ [a, b] distintos dos a dos. Entonces, para cualquier
x ∈ [a, b], existe un punto ξx ∈ (a, b) tal que

f (n+1) (ξx ) 
n
f (x) − Pn (x) = (x − xi ) . (4.4)
(n + 1)! i=0

Si, además de interpolar a la función f en n + 1 puntos {x0 , x1 , . . . , xn }


queremos buscar un polinomio H2n+1 (x) tal que f  (xi ) = H2n+1

(xi ) entonces,
el proceso se llama interpolación de Hermite y se tiene el siguiente resultado.
4.1 Resumen de teorı́a 45

Teorema 4.3 Sea f : [a, b] ⊂ R → R una función derivable en [a, b]. Con-
sideremos n + 1 puntos {x0 , x1 , . . . , xn } ⊂ [a, b] distintos dos a dos. Existe
un único polinomio H2n+1 (x) de grado menor o igual que 2n + 1 tal que

H2n+1 (xk ) = f (xk ) y H2n+1 (xk ) = f  (xk ), k = 0, 1, . . . , n. La expresión ex-
plı́cita de H2n+1 (x) es la siguiente:


n 
n
H2n+1 (x) = fk hk (x) + fk h̃k (x) ,
k=0 k=0

siendo hk (x) = [1 − 2k (xk )(x − xk )]2k (x), h̃k (x) = (x − xk )2k (x), donde k (x)
denota al polinomio k-ésimo básico de Lagrange. Además, si f ∈ C 2n+2 [a, b],
entonces
f (2n+2) (ξx ) 
n
f (x) − H2n+1 (x) = (x − xk )2 ,
(2n + 2)!
k=0

para todo x ∈ [a, b].

Como se ha visto en la expresión (4.4), el 


error en la interpolación depende
n
de los nodos a través del polinomio πn (x) = i=0 (x − xi ) con xi ∈ [a, b]. Nos
preguntamos si es posible realizar una elección de los nodos de manera que, la
norma del máximo o del infinito de πn (x) en el intervalo [a, b] dada por

 

n
πn (x) ∞ := máx |x − xi |
a≤x≤b
i=0

sea la más pequen̄a de entre cualquier otra posible elección de nodos. La respues-
ta a esta pregunta es afirmativa y su solución se basa en una teorı́a desarrollada
por el matemático ruso P.L. Chebychev que exponemos a continuación.

Definición 4.4 Consideremos la sucesión de polinomios {Tn (x)}n∈N definidos


de la forma recurrente siguiente

T0 (x) = 1 , T1 (x) = x , Tn+1 (x) = 2xTn (x) − Tn−1 (x) .

Tn (x) es llamado el polinomio de Chebychev de grado n.

Algunos de los primeros polinomios de Chebychev son T2 (x) = 2x2 − 1, T3 (x) =


4x3 − 3x, etc... Veamos alguna propiedad importante de estos polinomios.
46 Interpolación Polinómica

Proposición 4.5 Los polinomios de Chebychev verifican los siguiente:


(i) Tn (x) es un polinomio de grado n del tipo Tn (x) = 2n−1 xn + · · ·, donde los
puntos suspensivos denotan términos de grado inferior a n.
(ii) Para todo x ∈ [−1, 1] se verifica

Tn (x) = cos(n arc cos x) .

(iii) |Tn (x)| ≤ 1 para todo x ∈ [−1, 1] y para todo n ∈ N.

(iv) Tn (cos(kπ/n)) = (−1)k para k = 0, 1, . . . , n.

Demostración. La parte (i) se prueba fácilmente por inducción a partir de la


Definición 4.4. Demostraremos a continuación la parte (ii). Definamos la fun-
ción gn (x) = cos(n arc cos x) para todo n ∈ N y x ∈ [−1, 1]. Vamos a ver que
la sucesión de funciones {Tn (x)}n∈N satisface la relación de recurrencia de la
Definición 4.4 de modo que gn (x) = Tn (x). Para ello, recordemos las relaciones
trigonométricas siguientes

cos[(n + 1)θ] = cos(nθ) cos(θ) − sin(nθ) sin(θ) ,


cos[(n − 1)θ] = cos(nθ) cos(θ) + sin(nθ) sin(θ) .

Tomando θ = arc cos x y sumando las dos anteriores ecuaciones se tiene que

gn+1 (x) + gn−1 (x) = 2 cos(θ) cos(nθ) = 2xgn (x) ,

es decir, las funciones gn (x) verifican la misma recurrencia que los Tn (x). Además,
satisfacen las dos condiciones iniciales de la recurrencia puesto que

g0 (x) = cos 0 = 1 , g1 (x) = cos(arc cos x) = x .

Entonces, gn (x) = Tn (x).


Las partes (iii) y (iv) son consecuencias inmediatas de la parte (ii).

Un polinomio se llama mónico si el coeficiente de la indeterminada de mayor


grado es la unidad. Por ejemplo, a partir de la sentencia (i) de la Proposición
4.5, es claro que el polinomio 21−n Tn (x) es mónico siendo Tn (x) el polinomio
de Chebychev de grado n. Para este tipo de polinomios se tiene el siguiente
resultado.

Proposición 4.6 Sea p(x) un polinomio mónico de grado n. Entonces,

p(x) ∞ := máx {|p(x)|} ≥ 21−n .


−1≤x≤1

Demostración. Por reducción al absurdo, supongamos que |p(x)| < 21−n para
todo x ∈ [−1, 1] y lleguemos a una contradicción. Sea q(x) = 21−n Tn (x) siendo
Tn (x) el polinomio de Chebychev de grado n. Entonces, q(x) es mónico y de
4.1 Resumen de teorı́a 47

grado n. Definamos los puntos xk ∈ [−1, 1] de la forma xk = cos(kπ/n), con


k = 0, 1, . . . , n. Entonces, se tiene la siguiente cadena de desigualdades

(−1)k p(xk ) ≤ |p(xk )| < 21−n = (−1)k q(xk ) ,

donde la primera desigualdad es por definición de valor absoluto, la segunda


desigualdad es debida a nuestra hipótesis inicial y la última igualdad proviene
de utilizar la sentencia (iv) de la Proposición 4.5. Se tiene pues que

(−1)k [q(xk ) − p(xk )] > 0 , k = 0, 1, . . . , n .

De este modo, se comprueba que el polinomio q(x) − p(x) cambia de signo en


n+1 puntos distintos del intervalo [a, b] y, por el Teorema de Bolzano, q(x)−p(x)
tiene al menos n raı́ces reales en el intervalo [−1, 1]. Pero esto es imposible puesto
que, al ser p(x) y q(x) mónicos, el polinomio q(x) − p(x) tiene grado n − 1 a lo
sumo.

Teorema 4.7 Sea f una función de clase C n+1 [−1, 1], y sea Pn un polinomio
de grado menor o igual que n que interpola a la función f en los siguientes n + 1
nodos {x0 , x1 , . . . , xn } ⊂ [−1, 1] distintos dos a dos. Entonces, si se eligen los
nodos xk como las raı́ces del polinomio de Chebychev Tn+1 (x), es decir, xk =
cos((2k + 1)π/(2n + 2)), con k = 0, 1, . . . , n, se minimiza la norma del infinito
del error de interpolación máx−1≤x≤1 {|f (x)−Pn (x)|} respecto de cualquier otra
elección de nodos en [−1, 1].

Demostración. Se sabe a partir del Teorema 4.2 que, para todo x ∈ [−1, 1],
existe ξx ∈ (−1, 1) tal que

f (n+1) (ξx )
f (x) − Pn (x) = πn (x) ,
(n + 1)!
n
siendo πn (x) = i=0 (x − xi ). Entonces,

M
máx {|f (x) − Pn (x)|} ≤ máx {|πn (x)|} ,
−1≤x≤1 (n + 1)! −1≤x≤1

siendo M := máx−1≤x≤1 {|f (n+1) (x)|}. Si queremos minimizar el error de inter-


polación máx−1≤x≤1 {|f (x) − Pn (x)|} elijiendo los nodos adecuadamente, hemos
de elejirlos de manera que se minimice máx−1≤x≤1 {|πn (x)|}. Veamos cómo con-
seguirlo.
De la Proposición 4.6, se sabe que, para cualquier conjunto de nodos obten-
emos
máx {|πn (x)|} ≥ 2−n , (4.5)
−1≤x≤1

puesto que πn (x) es un polinomio mónico de grado n + 1 por construcción.


Además, de la sentencia (iii) de la Proposición 4.5, se tiene que |Tn+1 (x)| ≤ 1
48 Interpolación Polinómica

para todo x ∈ [−1, 1] y para todo n ∈ N. De este modo obtenemos que el


polinomio 2−n Tn+1 (x) mónico de grado n + 1 verifica

|2−n Tn+1 (x)| ≤ 2−n , para todo x ∈ [−1, 1] . (4.6)

A partir de (4.5) y (4.6) se tiene que el valor mı́nimo de máx−1≤x≤1 {|πn (x)|}
se obtiene cuando

n
πn (x) := (x − xi ) = 2−n Tn+1 (x) ,
i=0

es decir, los nodos xk a elegir son las raı́ces del polinomio de Chebychev Tn+1 (x).
Es además obvio que dichas raı́ces son xk = cos((2k + 1)π/(2n + 2)) a partir de
la expresión Tn+1 (x) = cos((n + 1) arc cos x).

Notemos que el Teorema 4.7 está formulado para realizar una interpolación
con nodos únicamente en el intervalo [−1, 1]. Sin embargo, no existe pérdida
de generalidad, puesto que el intervalo x ∈ [−1, 1] se transforma en el intervalo
y ∈ [a, b] mediante el cambio lineal de variables
a+b b−a
y= + x.
2 2
De este modo es fácil mostrar la siguiente generalización del Teorema 4.7

Teorema 4.8 Dada una función f ∈ C n+1 [a, b], el menor error en la norma
del máximo en la interpolación de f se comete cuando se toman las siguientes
abscisas de interpolación {y0 , y1 , . . . , yn } ⊂ [a, b]

a+b b−a (2j + 1)π


yj = + cos , j = 0, 1, . . . , n .
2 2 2(n + 1)

En general, no es aconsejable efectuar interpolación polinómica con muchas


abscisas de interpolación x0 , x1 , . . . , xn . Dicho de otro modo, no es conveniente
tener un polinomio de interpolación Pn (x) cuyo grado n sea elevado. Una de las
razones de esta afirmación es la siguiente. Supongamos que la función f (x)
es continua y que Pn (x) es su polinomio interpolador en las abscisas a =
x0 , x1 , . . . , xn = b. Entonces, en general, no es cierto que se verifique la con-
vergencia puntual siguiente

lı́m Pn (x) = f (x) ∀x ∈ [a, b] .


n→∞

Esto se conoce como fenómeno Runge. Una forma de evitarlo es la llamada


interpolación de splines.
Una función spline está formada por varios polinomios, cada uno definido
en un subintervalo, que se unen entre sı́ obedeciendo a ciertas condiciones de
continuidad.
4.2 Problemas resueltos 49

Más concretamente, supongamos que tenemos definidas n + 1 abscisas (lla-


madas nudos) x0 < x1 < · · · < xn . Definimos una función spline de grado k
sobre los nudos x0 , x1 , . . . , xn como una función S satisfaciendo las siguientes
propiedades
(i) S es un polinomio de grado menor o igual que k en cada intervalo [xi−1 , xi ).
(ii) S ∈ C k−1 [x0 , xn ].
Dada una tabulación (xi , f (xi )) con i = 0, 1, . . . , n la función Spline debe inter-
polar a la función f en dichos puntos, es decir, S(xi ) = f (xi ). Entonces


⎪ S0 (x) x ∈ [x0 , x1 ] ,

⎨ S1 (x) x ∈ [x1 , x2 ] ,
S(x) = .. .. (4.7)

⎪ . .


Sn−1 (x) x ∈ [xn−1 , xn ] ,

En la práctica los splines más utilizados son los cúbicos (k = 3). Se puede ver
que, en la construcción de splines cúbicos existen 2 grados de libertad. Si se
toma S  (x0 ) = S  (xn ) = 0 los splines se llaman splines cúbicos naturales.

4.2. Problemas resueltos


Problema 4.1 A partir de la siguiente tabulación de la función f (x) = ln x

xi 0.40 0.50 0.70 0.80


fi -0.916291 -0.693147 -0.356675 -0.223144

(i) Aproximar el valor de ln 0,6 utilizando interpolación cúbica de Lagrange.


(ii) Acotar el error cometido en la aproximación realizada en el apartado ante-
rior (sin utilizar la calculadora para averiguar el valor exacto de ln 0,6).

Solución. (i) La fórmula de interpolación de Lagrange viene dada por



n n
x − xj
Pn (x) = fk k (x) , k (x) = , k = 0, . . . , n.
j=0
xk − xj
k=0
j=k

En este problema n = 3, de manera que los polinomios de Lagrange son


(x − 0,5)(x − 0,7)(x − 0,8)
0 (x) =
(0,4 − 0,5)(0,4 − 0,7)(0,4 − 0,8)
−83,3333x3 + 166,667x2 − 109,167x + 23,3333
=
(x − 0,4)(x − 0,7)(x − 0,8)
1 (x) =
(0,5 − 0,4)(0,5 − 0,7)(0,5 − 0,8)
= 166,667x3 − 316,667x2 + 193,333x − 37,3333
50 Interpolación Polinómica

(x − 0,4)(x − 0,5)(x − 0,8)


2 (x) =
(0,7 − 0,4)(0,7 − 0,5)(0,7 − 0,8)
= −166,667x3 + 283,333x2 − 153,333x + 26,6667
(x − 0,4)(x − 0,5)(x − 0,7)
3 (x) =
(0,8 − 0,4)(0,8 − 0,5)(0,8 − 0,7)
= 83,3333x3 − 133,333x2 + 69,1667x − 11,6667 .

Tenemos que el polinomio interpolador es

P3 (x) = −0,9162910 (x) − 0,6931471 (x) − 0,3566752 (x) − 0,2231443 (x) .

Finalmente, realizamos la aproximación



−1 2
ln 0,6 ≈ P3 (0,6) = −0,916291 − 0,693147
6 3

2 −1
−0,356675 − 0,223144 = −0,509975 .
3 6

(ii) Sabemos que existe ξ ∈ (0,4, 0,8) tal que el error de interpolación viene
dado por
3
f (iv) (ξ) 
ln 0,6 − P3 (0,6) = (0,6 − xi ) .
4! i=0

−6
Como f (iv) (ξ) = ξ4 , obtenemos un error

−0,0004 1
ln 0,6 − P3 (0,6) = .
4 ξ4

Finalmente, debido a que

1 1 1 1 1 1
0,4 < ξ < 0,8 =⇒ < < =⇒ < 4 < ,
0,8 ξ 0,4 0,84 ξ 0,44

podemos acotar el error de la forma


 
0,0004  1  0,0004 1
| ln 0,6 − P3 (0,6)| = < = 0,00390625 .
4  ξ4  4 0,44

Problema 4.2 Considerar una función f : [a, b] → R de clase C 2 [a, b]. Sean
tres puntos distintos x0 , x1 , x2 ∈ [a, b]. Demostrar que existe un único polinomio
P (x) de grado menor o igual que tres verificando

P (x0 ) = f (x0 ) , P (x2 ) = f (x2 ) , P  (x1 ) = f  (x1 ) , P  (x2 ) = f  (x2 ) .

Solución. Sea P (x) ∈ R3 [x] un polinomio de grado menor o igual que tres,
de manera que P (x) = a0 + a1 x + a2 x2 + a3 x3 , P  (x) = a1 + 2a2 x + 3a3 x2 y
4.2 Problemas resueltos 51

P  (x) = 2a2 + 6a3 x. Imponiendo las condiciones del enunciado obtenemos el


siguiente sistema lineal de 4 ecuaciones para las incógnitas a0 , a1 , a2 , a3

P (x0 ) = f (x0 ) =⇒ a0 + a1 x0 + a2 x20 + a3 x30 = f (x0 )


P (x2 ) = f (x2 ) =⇒ a0 + a1 x2 + a2 x22 + a3 x32 = f (x0 )
P  (x1 ) = f  (x1 ) =⇒ 2a2 + 6a3 x1 = f  (x1 )
P  (x2 ) = f  (x2 ) =⇒ 2a2 + 6a3 x2 = f  (x2 )

El determinante de la matriz A de coeficientes del sistema es


   
 1
 x0 x20 x30   1 x0 x20 x30 

 1 x2 x2 x2   0 x2 − x0 x2 − x0
2 3  2 2
x2 − x30
3 
det A =  = 
 0 0 2 6x1   0 0 2 6x1 

 0 0 2 6x2   0 0 0 6(x2 − x1 ) 
= 12(x2 − x1 )(x2 − x0 ) .

Como los tres puntos x0 , x1 , x2 son distintos dos a dos, tenemos que det A = 0
y el sistema lineal es compatible y determinado con lo que demostramos la
existencia y unicidad del polinomio P (x).

Problema 4.3 Consideremos una función f ∈ C n+1 [x0 , xn ]. Sea P (x) el poli-
nomio que interpola a la función f (x) en los nudos x0 < x1 < · · · < xn .
Consideremos un valor x̄ ∈ (x0 , xn ) que no coincida con ninguno de los nudos
anteriores, es decir, x̄ = xi para i = 0, 1, . . . , n.
(i) Utilizando el formalismo de diferencias divididas de Newton, demostrar que


n
f (x̄) − P (x̄) = f [x0 , x1 , . . . , xn , x̄] w(x̄) , siendo w(x) = (x − xi ) .
i=0

(ii) Hallar una relación entre la diferencia dividida f [x0 , x1 , . . . , xn ] y la n-


ésima derivada de la función f .

Solución. (i) Utilizando el formalismo de diferencias divididas de Newton, el


polinomio interpolador P adopta la forma

P (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + · · · + f [x0 , x1 , . . . , xn ](x − x0 ) · · · (x − xn−1 ) .

Definamos P̄ (x) como el polinomio que interpola a la función f (x) en los


nudos x0 , x1 , · · · , xn , x̄. Por las propiedades del polinomio interpolador de New-
ton se sabe que

P̄ (x) = P (x) + f [x0 , x1 , . . . , xn , x̄] w(x) .

Particularizando esta ecuación para x = x̄ se obtiene

f (x̄) = P̄ (x̄) = P (x̄) + f [x0 , x1 , . . . , xn , x̄] w(x̄) ,


52 Interpolación Polinómica

de lo que se deduce

f (x̄) − P (x̄) = f [x0 , x1 , . . . , xn , x̄] w(x̄) .

(ii) Por el teorema del error interpolatorio se sabe que

f (n+1) (ξ)
f (x̄) − P (x̄) = w(x̄) ,
(n + 1)!

siendo ξ ∈ (x0 , xn ). Comparando este resultado con el obtenido en el apartado


(i) concluimos que
f (n+1) (ξ)
f [x0 , x1 , . . . , xn , x̄] = .
(n + 1)!
Tenemos pues, por la simetrı́a de las diferencias divididas, que

f (n) (ξ)
f [x0 , x1 , . . . , xn ] = .
n!

Problema 4.4 Sea Pn (x) el polinomio de grado menor o igual que n que in-
terpola a la función f (x) = sinh x en cualquier conjunto de n + 1 abscisas en el
intervalo [−1, 1].
(i) Suponiendo que n es impar, hallar una cota del error absoluto |f (x)−Pn (x)|
para x ∈ [−1, 1] que sólo dependa de n.
(ii) Calcular, por el método de las diferencias divididas de Newton, el polinomio
que interpola a la siguiente tabulación.

xi -1 0 1
sinh(xi ) -1.1752 0.0000 1.1752

Solución. (i) El error absoluto es


 
 f (n+1) (ξ ) 
n 
 x 
|f (x) − Pn (x)| =  (x − xi ) .
 (n + 1)! 
i=0

Como n es impar, n+1 es par y por lo tanto f (n+1) (ξx ) = sinh ξx . Además, como
ξx ∈ (−1, 1) y la función sinh x es impar y creciente se tiene que | sinh ξx | ≤ sinh 1
de manera que  
sinh 1  
n

|f (x) − Pn (x)| ≤  (x − xi ) .
(n + 1)!  i=0


Finalmente, como x, xi ∈ [−1, 1] para i = 0, 1, . . . , n se tiene que |x − xi | ≤ 2


para i = 0, 1, . . . , n de manera que
sinh 1 n+1
|f (x) − Pn (x)| ≤ 2 .
(n + 1)!
4.2 Problemas resueltos 53

Notemos que lı́mn→∞ |f (x) − Pn (x)| = 0.

(ii) Utilizando el formalismo de diferencias divididas de Newton, el poli-


nomio interpolador P2 adopta la forma

P2 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) .

Realizando el esquema de diferencias divididas se obtiene

f [x0 ] = −1,1752 , f [x0 , x1 ] = 1,1752 , f [x0 , x1 , x2 ] = 0 ,

de manera que

P2 (x) = −1,1752 + 1,1752(x + 1) = 1,1752x .

Problema 4.5 Se quiere construir una tabulación equiespaciada de la función


f (x) = (x4 −x)/12 en el intervalo [0, a] de manera que, si no se tienen en cuenta
los errores de redondeo, el error absoluto cometido en cualquier interpolación
lineal efectuada con dos abscisas consecutivas de dicha tabulación sea inferior a
un valor dado  > 0. Calcular el mı́nimo número de abscisas en la tabulación n
en función de a y de .

Solución. Se ha de hallar la tabulación equiespaciada {0 = x0 , x1 , . . . , xn = a}


de la función f (x). Sean xj y xj+1 dos puntos del intervalo [0, a]. Sea x ∈
[xj , xj+1 ]. El error absoluto Δ cometido en una interpolación lineal de la función
f en las abscisas consecutivas xj y xj+1 viene dado por
  
 f (ξ) 
Δ =  (x − xj )(x − xj+1 ) ,
2
siendo ξ ∈ [xj , xj+1 ]. Definimos la longitud del paso de tabulación h = xj+1 −xj .
Puesto que x ∈ [xj , xj+1 ] es evidente que |x − xi | ≤ h para i = j, j + 1. Como
f  (ξ) = ξ 2 , podemos acotar el error absoluto de la forma
  
 f (ξ)  ξ2 ξ2
Δ =   (x − xj )(x − xj+1 ) = |x − xj ||x − xj+1 | ≤ h2 .
2 2 2
Finalmente, como ξ ∈ [xj , xj+1 ] ⊆ [0, a] es evidente que ξ ≤ a de manera que

h2 a2
Δ≤ <,
2

de lo que se deduce h < 2/a. Finalmente, puesto que en la tabulación {0 =
x0 , x1 , . . . , xn = a}
√ se tiene h = a/n, el mı́nimo número de abscisas n viene
dado por n > a2 / 2. Es decir
 2 
a
n=E √ +1 ,
2
donde E[ ] denota la parte entera.
54 Interpolación Polinómica

Problema 4.6 Estudiar de manera razonada la existencia y unicidad del poli-


nomio interpolador P (x) con coeficientes reales en los casos siguientes:
(i) gr(P ) = 2, P (0) = 0, P (1) = 1 y P  (1/2) = 2.
(ii) gr(P ) = 3, P (0) = 0, P (1) = 1 y P  (1/2) = 2.

(iii) gr(P ) ≤ n, P (xk ) = fk con xk , fk ∈ R conocidos para k = 0, 1, . . . , n y


xi = xj si i = j.
(iv) gr(P ) = n + 1, P (xk ) = fk con xk , fk ∈ R conocidos para k = 0, 1, . . . , n y
xi = xj si i = j.
(v) gr(P ) ≤ 2n + 1, P (xk ) = fk , P  (xk ) = fk con xk , fk , fk ∈ R conocidos para
k = 0, 1, . . . , n.

Solución. (i) Sea P (x) = a + bx + cx2 con a, b, c ∈ R. Imponiendo la condición


de interpolación P (0) = 0 se tiene a = 0. Del restante de condiciones P (1) = 1
y P  (1/2) = 2 se construye el sistema lineal

1=b+c , 2=b+c ,

que evidentemente es incompatible. Por lo tanto no existe el polinomio P (x).

(ii) Sea P (x) = a + bx + cx2 + dx3 con a, b, c, d ∈ R. Imponiendo P (0) = 0


se tiene a = 0. De imponer P (1) = 1 y P  (1/2) = 2 se obtiene el sistema lineal

3
1=b+c+d , 2=b+c+ d ,
4

que es compatible indeterminado. Sus soluciones son de la forma d = −4 y


b + c = 5 de manera que existen infinitos polinomios P (x) todos ellos de la
forma
P (x) = (5 − c)x + cx2 − 4x3 , c ∈ R .

(iii) En este caso está garantizada la existencia y la unicidad del polinomio


P (x) puesto que se está realizando una interpolación de Lagrange.

(iv) Puesto que si se sustituye la condición gr(P ) = n + 1 por gr(P ) ≤ n se


está en las condiciones de interpolación de Lagrange y se sabe que en este caso
el polinomio P (x) existe y es único, es obvio que con la condición gr(P ) = n + 1
también existirá pero no será único.

(v) En este caso está garantizada la existencia y la unicidad del polinomio


P (x) debido a que se está realizando una interpolación de Hermite.
4.2 Problemas resueltos 55

Problema 4.7 Considerar la siguiente tabulación de la función f (x) = ln x.


xi 1 2 3
f (xi ) 0 0.693147 1.09861
Calcular una cota del error cometido si se aproxima ln 1,5 a partir de una in-
terpolación polinomial con todos los datos de la tabla adjunta.

Solución. Sea P2 (x) el polinomio de grado menor o igual que 2 que interpola
a todos los puntos de la tabulación del enunciado, es decir, f (xi ) = P2 (xi ) para
i = 0, 1, 2. Como f (x) ∈ C 3 [1, 3], si se realiza la aproximación f (x) ≈ P2 (x)
para cualquier x ∈ [1, 3], el error Δ cometido viene dado por
 (3) 
 f (ξx ) 
Δ = |f (x) − P2 (x)| =  (x − 1)(x − 2)(x − 3) ,
3!

siendo ξx ∈ (x0 , x2 ) = (1, 3). Puesto que f (x) = ln x, se tiene que f (3) (ξx ) =
2/ξx3 . Por otra parte, la aproximación que se quiere efectuar es ln 1,5 = f (1,5) ≈
P2 (1,5), de manera que el error cometido es
   
 2/ξx3   0,375 
Δ=   
(1,5 − 1)(1,5 − 2)(1,5 − 3) =   .
3! 3ξx3 

Como 1/ξx3 es una función decreciente en el intervalo ξ ∈ (1, 3), se concluye que
0,375
Δ< = 0,125 .
3
Problema 4.8 Se ha de realizar una interpolación polinomial cuadrática de
la función f (x) = ex sin x para valores de x ∈ [0, 1]. Hallar una cota superior
del error absoluto que se cometerı́a al aproximar la función f por el polinomio
interpolador.

Solución. Puesto que la función f (x) = ex sin x es infinitas veces derivable en


R, en particular f ∈ C 3 [0, 1]. Por lo tanto, el error absoluto Δ que se comete
al realizar la aproximación f (x) ≈ P2 (x) para cualquier valor x ∈ [0, 1], siendo
P2 (x) el polinomio de grado menor o igual que 2 que interpola a f en los nodos
{x0 , x1 , x2 } ⊂ [0, 1], viene dado por
  
 f (ξx ) 
Δ =  π(x) ,
3!
siendo π(x) = (x − x0 )(x − x1 )(x − x2 ) y ξx ∈ (0, 1). Utilizando las propiedades
del valor absoluto se tiene
|f  (ξx )|
Δ= |π(x)| .
3!
Puesto que x ∈ [0, 1], es claro que |x − xi | ≤ 1 para i = 0, 1, 2, de manera que

|π(x)| = |x − x0 ||x − x1 ||x − x2 | ≤ 1 .


56 Interpolación Polinómica

En definitiva
|f  (ξx )|
Δ≤ ,
3!
donde la tercera derivada de la función f viene dada por

f  (ξx ) = 2eξx (cos ξx − sin ξx ) .

Es fácil ver que la función f  (ξx ) es decreciente en el intervalo (0, 1) puesto que
f iv (ξx ) = −4eξx sin ξx < 0 para todo ξx ∈ (0, 1). De este modo se tiene que los
extremos absolutos de f  (ξx ) en el compacto [0, 1] ocurren en los extremos de
dicho intervalo. Puesto que f  (0) = 2 y f  (1) = −1,63 se tiene la siguiente
acotación del error
|f  (0)| 2 1
Δ< = = .
3! 3! 3
Problema 4.9 Se han realizado las siguientes mediciones de la capacidad
calorı́fica molal a presión constante c del nitrógeneo para diferentes temperaturas
T obteniéndose

Tk (K) 300 700 1500


ck (cal/gr. mol K) 6.81495 7.40495 8.25375

(i) Hallar la expresión polinomial de la función c(T ) a partir de una inter-


polación polinomial mediante el método de las diferencias divididas de
Newton con los datos de la tabla adjunta.
(ii) Si el termómetro utilizado tiene una escala que varı́a entre 300 y 1500 gra-
dos Kelvin, obtener las 3 temperaturas donde se realizarı́an las mediciones
de c sabiendo que posteriormente se hará una interpolación polinomial con
esas mediciones.
Solución. (i) Con los datos de la tabla adjunta, es decir, la tabulación c(Tk )
para k = 0, 1, 2, se obtiene el siguiente esquema triangular de diferencias divi-
didas de Newton
300 6.81495
0.001475
700 7.40495 -3.45 ×10−7
0.001061
1500 8.25375

El polinomio P2 (T ) que interpola a la función c(T ) según los datos de la


tabla es

P2 (T ) = c[T0 ] + c[T0 , T1 ](T − T0 ) + c[T0 , T1 , T2 ](T − T0 )(T − T1 )


= 6,81495 + 0,001475(T − 300) − 3,45 × 10−7 (T − 300)(T − 700) .

Por lo tanto c(T ) ≈ P2 (T ) = 6,3 + 1,82 × 10−3 T − 0,345 × 10−6 T 2 .


4.2 Problemas resueltos 57

(ii) El rango de temperaturas T donde se pueden realizar las mediciones es


T ∈ [300, 1500]. Por lo tanto, utilizando la teorı́a de los nodos de Chebychev,
las mediciones se realizarán en las temperaturas
300 + 1500 1500 − 300
Tk = + xk ,
2 2
siendo los nodos de Chebychev xk = cos[(2k + 1)π/(2n + 2)] con k = 0, 1, . . . , n.
Realizaremos tres mediciones y por lo tanto n = 2. En definitiva, las tempera-
turas son
π √
T0 = 900 + 600 cos = 900 + 300 3 ≈ 1419,62 ,
6

T1 = 900 + 600 cos = 900 ,
2
5π √
T2 = 900 + 600 cos = 900 − 300 3 ≈ 380,385 .
6
Problema 4.10 (i) Sea Pn (x) el único polinomio de grado menor o igual que
n que interpola a la función f (x) en los nodos equiespaciados x0 < x1 <
. . . < xn , con longitud de paso h. Demostrar que, si f ∈ C n+1 [x0 , xn ], el
error absoluto Δ := |f (x) − Pn (x)| para cualquier x ∈ [x0 , xn ] viene dado
por
t
Δ= hn+1 |f (n+1) (ξ)| , ξ ∈ (x0 , xn ) ,
n+1

a
siendo t = (x − x0 )/h y el número combinatorio a!
= b!(a−b)! .
b

(ii) Supongamos que se quiere aproximar el polinomio f (x) = x4 (5 − x)/60


mediante un polinomio interpolador P2 (x) de grado menor o igual que
2 en los nodos equiespaciados xi = i con i = 0, 1, 2. Hallar una cota del
error absoluto Δ cometido en la aproximación f (x) ≈ P2 (x) para cualquier
x ∈ [0, 2].
Solución. (i) Partiendo del error cometido por interpolación se sabe que existe
ξ ∈ (x0 , xn ) tal que  (n+1) 
f (ξ) 
Δ=  π(x) ,
(n + 1)!
n
siendo π(x) = i=0 (x − xi ). Ya que los nodos son equiespaciados con longitud
de paso h, se tiene que xi = x0 + ih con i = 0, 1, . . . , n. Además, por definición
se tiene que x = x0 + ht, de manera que x − x0 = th, x − x1 = x − (x0 + h) =
th − h = (t − 1)h. En general se obtiene x − xi = (t − i)h para i = 0, 1, . . . , n,
de manera que
   
 f (n+1) (ξ) n   f (n+1) (ξ) 
  
Δ =  (t − i)h =  h n+1
t(t − 1)(t − 2) · · · (t − n)
 (n + 1)!  (n + 1)!
i=0
 
t  
= hn+1 f (n+1) (ξ) .
n+1
58 Interpolación Polinómica

(ii) Podemos utilizar la fórmula hallada en el apartado anterior. En primer


lugar, se observa que si x = x0 + th y x ∈ [x0 , xn ] entonces t ∈ [0, n] y por lo
tanto t − i ≤ n para i = 0, 1, . . . , n. De este modo, se tiene que
 
   f (n+1) (ξ) n 
t n+1  (n+1)   
Δ = h f (ξ) =  h n+1
(t − i)
n+1  (n + 1)! 
i=0
 (n+1) 
f (ξ) n+1 n+1
≤ h n .
(n + 1)!

En nuestro problema se tiene n = 2 y h = 1, por lo que

|f  (ξ)| 3 4
Δ≤ 2 = |f  (ξ)| ,
3! 3
siendo ξ ∈ (0, 2). Calculando la tercera derivada de la función f (x) = x4 (5 −
x)/60 se obtiene f  (ξ) = −(ξ − 1)2 + 1. La gráfica de f  (ξ) es una parábola
con un máximo relativo en ξ = 1, de manera que podemos realizar una última
acotación de la forma
4  4
Δ≤ f (1) = = 1,3333 .
3 3
Nota: En la acotación efectuada se ha utilizado que |π(t)| := |t(t − 1)(t −
2)| < 23 para todo t ∈ [0, 2]. Existe, por supuesto, otra forma mejor de acotar
|π(t)| para todo t ∈ [0, 2] que consiste en obtener su máximo absoluto en el
 2
intervalo compacto√ [0, 2]. Ası́, ya que las raı́ces del polinomio π (t) = 2 − 6t + 3t
son t± = 1 ± 1/ 3 ∈ [0, 2], es claro que π(t) tiene extremos relativos en t± .
Además, para obtener los extremos absolutos calculamos los valores de π(t) en
los extremos del intervalo cerrado π(0) = π(2) = 0 y en los extremos relativos
|π(t± )| = 0,3849. Se tiene en definitiva que |π(t)| ≤ 0,3849 para todo t ∈ [0, 2]
y por lo tanto una mejor cota del error

|f  (ξ)| |f  (1)| 0,3849


Δ≤ 0,3849 < 0,3849 = = 0,06415 .
3! 3! 3!

Problema 4.11 Sean f (x) y g(x) dos funciones reales definidas sobre el inter-
valo [a, b]. Definamos Pn (x) y Qn (x) como los polinomios de grado menor o igual
que n que interpolan a f y g respectivamente en los nodos {x0 , x1 , . . . , xn } ⊂
[a, b] distintos entre sı́.
(i) ¿Es αPn + βQn el polinomio de grado menor o igual que n que interpola a
la función αf + βg en los nodos {x0 , x1 , . . . , xn }, siendo α, β ∈ R?
(ii) ¿Es Pn Qn el polinomio de grado menor o igual que n que interpola a la
función f g en los nodos {x0 , x1 , . . . , xn }?

Solución. Por definición, si Pn (x) y Qn (x) son los polinomios que interpolan a
f y g respectivamente en los nodos {x0 , x1 , . . . , xn }, entonces, por ser los nodos
4.2 Problemas resueltos 59

distintos entre sı́, Pn (x) y Qn (x) son polinomios de grado menor o igual que
n, es decir, Pn , Qn ∈ Rn [x]. Además Pn (xi ) = f (xi ) y Qn (xi ) = g(xi ) para
i = 0, 1, . . . , n.

(i) La respuesta es positiva puesto que αPn + βQn ∈ Rn [x] y además


αPn (xi ) + βQn (xi ) = αf (xi ) + βg(xi ) para i = 0, 1, . . . , n.

(ii) Aunque se verifique Pn (xi )Qn (xi ) = f (xi )g(xi ) para i = 0, 1, . . . , n, la


respuesta es, en general, negativa puesto que Pn Qn ∈ R2n [x] no tiene grado
menor o igual que n.

Problema 4.12 Averiguar si la función



⎨ 1 + x − x3 si x ∈ [0, 1] ,
S(x) = 1 − 2(x − 1) − 3(x − 1)2 + 4(x − 1)3 si x ∈ [1, 2] ,

4(x − 2) + 9(x − 2)2 − 3(x − 2)3 si x ∈ [2, 3] ,

es el spline cúbico natural que interpola a los puntos (0, 1), (1, 1), (2, 0) y (3, 10).

Solución. Recordemos que la función



⎨ s0 (x) si x ∈ [x0 , x1 ] ,
S(x) = s1 (x) si x ∈ [x1 , x2 ] ,

s2 (x) si x ∈ [x2 , x3 ] ,

es el spline cúbico natural que interpola a los puntos (x0 , f0 ), (x1 , f1 ), (x2 , f2 )
y (x3 , f3 ) si se verifica lo siguiente: (i) si (x) ∈ R3 [x] para i = 0, 1, 2; (ii) S ∈
C 2 [x0 , x2 ]; (iii) S(xi ) = fi para i = 0, 1, 2; (iv) S  (x0 ) = S  (x2 ) = 0.

En nuestro caso se tiene s0 (x) = 1 + x − x3 , s1 (x) = 1 − 2(x − 1) − 3(x −


1)2 + 4(x − 1)3 y s2 (x) = 4(x − 2) + 9(x − 2)2 − 3(x − 2)3 que verifican
obviamente la condición (i).

Los puntos de interpolación son (x0 , f0 ) = (0, 1), (x1 , f1 ) = (1, 1), (x2 , f2 ) =
(2, 0) y (x3 , f3 ) = (3, 10), de modo que también se verifica la condición
(iii) ya que

S(x0 ) = S(0) = s0 (0) = 1 = f0 ,


S(x1 ) = S(1) = s0 (1) = s1 (1) = 1 = f1 ,
S(x2 ) = S(2) = s1 (2) = s2 (2) = 0 = f2 ,
S(x3 ) = S(3) = s2 (3) = 10 = f3 .

Además, de aquı́ tambien se ve que S ∈ C[0, 3]

Para comprobar la condición (ii) sólo es necesario demostrar que la función


S(x) es derivable dos veces con continuidad en los puntos donde dicha
función se parte, es decir, en x = 1 y x = 2.
60 Interpolación Polinómica

Calculamos los siguientes lı́mites laterales:


lı́m S  (x) = lı́m s0 (x) = lı́m− 1 − 3x2 = 2 ,
x→1− x→1− x→1
lı́m S  (x) = lı́m+ s1 (x) = lı́m+ −2 − 6(x − 1) + 12(x − 1)2
x→1 + x→1 x→1
= −2 .
Como lı́mx→1− S  (x) = lı́mx→1+ S  (x) se tiene que S(x) es derivable con
continuidad en x = 1.

lı́m S  (x) = lı́m s1 (x) = lı́m− −2 − 6(x − 1) + 12(x − 1)2 = 4 ,


x→2− x→2− x→2

lı́m S (x) = lı́m s2 (x) = lı́m 4 + 18(x − 2) − 9(x − 2)2
x→2+ x→2+ x→2+
= 4.
Como lı́mx→2− S  (x) = lı́mx→2+ S  (x) se tiene que S(x) es derivable con
continuidad en x = 2.

lı́m S  (x) = lı́m s0 (x) = lı́m −6x = −6 ,


x→1− x→1− x→1−

lı́m S (x) = lı́m s1 (x) = lı́m+ −6 + 24(x − 1)
x→1+ x→1+ x→1
= −6 .
Como lı́mx→1− S  (x) = lı́mx→1+ S  (x) se tiene que S(x) es derivable dos
veces con continuidad en x = 1.

lı́m S  (x) = lı́m s1 (x) = lı́m− −6 + 24(x − 1) = 18 ,


x→2− x→2− x→2
lı́m S  (x) = lı́m s2 (x) = lı́m 18 − 18(x − 2)
x→2+ x→2+ x→2+
= 18 .

Como lı́mx→2− S  (x) = lı́mx→2+ S  (x) se tiene que S(x) es derivable dos veces
con continuidad en x = 2.
Se concluye que la función S verifica la condición (ii). Finalmente, puesto que
S  (x0 ) = S  (0) = s0 (0) = 0 y S  (x3 ) = S  (3) = s2 (3) = 0 también se cumple
la condición (iv). En resumen, S(x) es el spline cúbico natural que interpola a
los puntos (0, 1), (1, 1), (2, 0) y (3, 10).

Problema 4.13 Sea Pn (x) el polinomio de grado menor o igual que n que
interpola a la función f (x) = sinh x en n + 1 puntos del intervalo [−2, 0]. Si
n es impar, hallar una cota que sólo dependa de n del error absoluto Δn (x)
cometido en la aproximación f (x) ≈ Pn (x) para cualquier x ∈ [−2, 0]. ¿Se
puede afirmar a partir de la cota de error anterior que lı́mn→∞ Pn (x) = f (x)
para todo x ∈ [−2, 0]?
4.2 Problemas resueltos 61

Solución. Sean {x0 , x1 , . . . , xn } ⊂ [−2, 0] los nodos de interpolación. El error


absoluto Δn (x) cometido en la aproximación f (x) ≈ Pn (x) para cualquier x ∈
[−2, 0] viene dado por
 (n+1) 
f (ξ)
Δn (x) = |f (x) ≈ Pn (x)| = |πn (x)| ,
(n + 1)!
n
siendo ξ ∈ (−2, 0) y el polinomio πn (x) = i=0 (x − xi ). Puesto n que x, xi ∈
[−2, 0] se tiene |x − xi | ≤ 2 y por lo tanto la acotación |πn (x)| = i=0 |x − xi | ≤
2n+1 . De esta forma  (n+1) 
f (ξ) n+1
Δn (x) ≤ 2 .
(n + 1)!
Por otra parte, como n es un número impar, f n+1 (ξ) = sinh ξ. Puesto que la
función sinh ξ es creciente en R e impar, es claro que |f n+1 (ξ)| ≤ |f n+1 (−2)| =
3,6269. De esta forma se halla finalmente la cota del error
3,6269 n+1
Δn (x) ≤ 2 .
(n + 1)!
Como por definición de error absoluto Δn (x) ≥ 0, de la anterior cota se tiene
que
lı́m Δn (x) = 0 ,
n→∞

de modo que
lı́m Pn (x) = f (x) para todo x ∈ [−2, 0] .
n→∞

Problema 4.14 Considerar la función f (x) = 1/(1+x) definida en el intervalo


[a, b] y sea Pn (x) el polinomio de grado menor o igual que n que interpola a f (x)
en n + 1 nodos pertenecientes al intervalo [a, b].
(i) Si [a, b] = [1, 3], hallar una cota del error absoluto que se comete cuando se
aproxima f (x) ≈ Pn (x) para cualquier x ∈ [1, 3].
(ii) Sea [a, b] = [−2, 3]. ¿Es posible ahora hallar una cota similar a la del aparta-
do anterior?
Solución. (i) Considerar la función f (x) = 1/(1 + x) definida en el interva-
lo [1, 3]. Calculemos en primer lugar la derivada n-ésima de la función f por
inducción. Observamos que las primeras derivadas de la función f son
1 2
f  (x) = − 2
, f  (x) = ,
(1 + x) (1 + x)3
3! 4!
f  (x) = − 4
, f (iv) (x) = .
(1 + x) (1 + x)5
Estos cálculos nos inducen a suponer cierto que
n!
f (n) (x) = (−1)n . (4.8)
(1 + x)n+1
62 Interpolación Polinómica

Calculemos ahora f (n+1) (x) suponiendo cierta la ecuación (4.8). Puesto que

d (n) d n! (n + 1)!
f (n+1) (x) = f (x) = (−1)n = (−1)n+1
dx dx (1 + x)n+1 (1 + x)n+2
continua obedeciendo la ley dada en (4.8), el método de inducción concluye que
(4.8) es correcta.

A partir de la expresión explı́cita de f (n+1) (x) hallada anteriormenete se


tiene que f ∈ C n+1 [1, 3]. Entonces, el error absoluto Δ cometido en la aproxi-
mación f (x) ≈ Pn (x) para cualquier x ∈ [1, 3] viene dado por
   
 f (n+1) (ξ ) n    n
  1
(x − xi ) =  
x
Δ= |x − xi | .
 (n + 1)!
i=0
 (1 + ξx )n+2  i=0

siendo xi los nodos y ξx ∈ (1, 3). Puesto


n que x, xi ∈ [1, 3] para i = 0, 1, . . . , n se
tiene que |x − xi | ≤ 2 y por lo tanto i=0 |x − xi | ≤ 2n+1 . Entonces
 
 1  n+1
Δ ≤  n+2
2
 .
(1 + ξx )
Finalmente, como ξx ∈ (1, 3), es claro que
 
 1  n+1 1
Δ≤  2 = .
(1 + 1)n+2  2
(ii) Sea [a, b] = [−2, 3]. Ahora no es posible hallar una cota similar a la
del apartado anterior. El motivo es que la función f (x) = 1/(1 + x) no es una
función continua en x = −1 de modo que, en particular, f (x) no es una función
continua en el intervalo [−2, 3] y, en consecuencia f ∈ C n+1 [−2, 3]. Entonces,
no podemos escribir una expresión del tipo
 
 f (n+1) (ξ ) 
n 
 x 
Δ= (x − xi )
 (n + 1)! 
i=0

para el error absoluto Δ cometido en la aproximación f (x) ≈ Pn (x) para


cualquier x ∈ [−2, 3].
Problema 4.15 (i) Sea P2 (x) el polinomio de grado menor o igual que 2 que
interpola a la función
1
f (x) = 1 + x(6 + 3x + 5x2 ) + sinh(1 − x)
6
en 3 nodos pertenecientes al intervalo [0, 3]. Hallar una cota del error
absoluto cometido en la aproximación f (x) ≈ P2 (x) para cualquier x ∈
[0, 3].
(ii) Hallar, mediante el método de las diferencias divididas de Newton, el poli-
nomio Q2 (x) que interpola a la función f (x) en los nodos xi ∈ [0, 3]
(i = 0, 1, 2) de modo que se minimice máx0≤x≤3 {|f (x) − Q2 (x)|}.
4.2 Problemas resueltos 63

Solución. (i) Notemos que la función f (x) es la suma de un polinomio y de


la función sinh(1 − x), por lo tanto f ∈ C ∞ (R) y, en particular, f ∈ C 3 [1, 3].
Entonces, para cualquier x ∈ [0, 3], el error absoluto Δ que se comete en la
aproximación f (x) ≈ P2 (x) viene dado por
2
|f (ξx )| 


Δ= |x − xi | ,
3! i=0

donde ξx ∈ (0, 3) y xi son los nodos. Existe una acotación inmediata del término
con el productorio: puesto que x, xi ∈ [0, 3] para i = 0, 1, 2, entonces |x − xi | ≤ 3
2
y por lo tanto i=0 |x − xi | ≤ 33 . En definitiva se obtiene

|f (ξx )| 3 9 
Δ≤ 3 = |f (ξx )| .
3! 2
Puesto que
1
f (x) = 1 + x(6 + 3x + 5x2 ) + sinh(1 − x) ,
6

se obtiene derivando tres veces que f (ξx ) = 5 − cosh(1 − ξx ). Calculemos a

continuación el máximo absoluto de la función continua |f (x)| en el intervalo

compacto [0, 3]. Para ello calculamos primero los extremos relativos de f en el
intervalo [0, 3], es decir, resolvemos la ecuación f (iv) (x) = sinh(1 − x) = 0 para
x ∈ [0, 3]. La solución de dicha ecuación es x = 1. Entonces, el máximo absoluto

M de |f (x)| en el intervalo [0, 3] viene dado por
  
M = máx{|f (0)|, |f (1)|, |f (3)|} = máx{3,45692, 4, 1,2378} = 4 .
Concluimos que
9
Δ≤ × 4 = 18 .
2
(ii) Los nodos xi ∈ [0, 3] (i = 0, 1, 2) de modo que se minimize f (x) −
Q2 (x) ∞ = máx0≤x≤3 {|f (x) − P2 (x)|} son, por definición, los nodos de Cheby-
chev en el intervalo [a, b] = [0, 3], es decir,

a+b b−a 2i + 1
xi = + cos π , i = 0, 1, . . . , n .
2 2 2n + 2
En nuestro caso n = 2, de modo que
 
3 1
x0 = 1 + cos π = 2,79904 ,
2 6
 
3 1
x1 = 1 + cos π = 1,5 ,
2 2
 
3 5
x2 = 1 + cos π = 0,200962 .
2 6
Puesto que f (x0 ) = 23,0517, f (x1 ) = 5,9164 y f (x2 ) = 2,11474, se obtiene el
siguiente esquema triangular de diferencias divididas de Newton
64 Interpolación Polinómica

2.79904 23.0517
13.1907
1.5 5.9164 3.95068
2.92652
0.200962 2.11474

El polinomio Q2 (x) que interpola a la función f (x) en los nodos de Cheby-


chev {x0 , x1 , x2 } viene dado por

Q2 (x) = 23,0517 + 13,1907(x − 2,79904) + 3,95068(x − 2,79904)(x − 1,5) .

Problema 4.16 Sea Pn (x) el polinomio de grado menor o igual que n que
interpola a la función f (x) en los nodos {x0 , x1 , . . . , xn } ⊂ [a, b] distintos dos a
dos.
(i) Si f (x) = xn , calcular Pn (x).
(ii) Si f (x) = xn+1 , calcular Pn (x) utilizando la fórmula del error en la inter-
polación.
(iii) Si f (x) = xn+2 y [a, b] = [−2, −1,5], acotar en función de n el error
absoluto cometido en la aproximación f (x) ≈ Pn (x) para todo x ∈ [a, b].
¿Qué se puede decir de lı́mn→∞ Pn (x)?

Solución. (i) Si f (x) = xn , en particular f es un polinomio de grado menor


o igual que n, es decir f ∈ Rn [x]. Entonces, por el Teorema de existencia y
unicidad del polinomio interpolador, existe un único polinomio Pn (x) de grado
menor o igual que n que interpola a f (x) en los nodos {x0 , x1 , . . . , xn } distintos
dos a dos. En consecuencia se debe tener Pn (x) = f (x) = xn .

(ii) Si f ∈ C n+1 [a, b], entonces, la fórmula del error en la interpolación es

f (n+1) (ξx )
f (x) − Pn (x) = πn (x) ,
(n + 1)!
n
siendo ξx ∈ (a, b) y πn (x) = i=0 (x − xi ). Como f (x) = x
n+1
, se tiene
(n+1)
f (x) = (n + 1)!, de modo que


n
Pn (x) = f (x) − πn (x) = xn+1 − (x − xi ) .
i=0

(iii) Ahora f (x) = xn+2 , de modo que f (n+1) (x) = (n + 2)!x. Entonces,
utilizando de nuevo la fórmula del error en la interpolación, para todo x ∈ [a, b],
el error absoluto Δn (x) cometido en la aproximación f (x) ≈ Pn (x) es
 (n+1) 
f (ξx ) 

Δn (x) = |f (x) − Pn (x)| =  πn (x) = (n + 2)|ξx ||πn (x)| ,
(n + 1)!
4.2 Problemas resueltos 65

con ξx ∈ (a, b). Como [a, b] = [−2, −1,5] y x, xi ∈ [a, b] es claro que
n n+1
1
|πn (x)| = |x − xi | < .
i=0
2

Por otra parte, como ξx ∈ (a, b) = (−2, −1,5) se tiene |ξx | < |−2| = 2. Utilizando
las dos acotaciones halladas se concluye que
n+1
1 n+2
Δn (x) < 2(n + 2) = .
2 2n
Finalmente, puesto que 0 ≤ Δn (x) < n+2
2n y lı́mn→∞ n+2
2n = 0, se tiene
lı́mn→∞ Δn (x) = 0. Entonces
lı́m |f (x) − Pn (x)| = lı́m Δn (x) = 0 ,
n→∞ n→∞

de modo que
lı́m Pn (x) = f (x) .
n→∞

Problema 4.17 Considerar la función f (x) = (1 − x)/x2 .
(i) Calcular el polinomio P2 (x) de grado menor o igual que 2 que interpola a
f (x) en los nodos {2, 3, 4}.
(ii) Hallar una cota del error absoluto cometido al aproximar f (x) ≈ P2 (x)
para cualquier x ∈ [2, 4].

Solución. (i) Sea√ P2 (x) el polinomio de grado menor o igual que 2 que interpola
a f (x) = (1 − x)/x2 en los nodos {2, 3, 4}. Entonces, la gráfica de P2 (x)
pasa por los puntos (2, f (2)) = (2, −0,103553), (3, f (3)) = (3, −0,081339) y
(4, f (4)) = (4, −0,0625). Es fácil obtener (mediante un esquema de diferencias
divididas o bien con el método de Lagrange) la expresión
P2 (x) = −0,1581 − 0,0306x − 0,0016x2 .
(ii) Sea Δ = |f (x) − P2 (x)|. Como f ∈ C ∞ para todo x > 0, en parti-
cular, f ∈ C 3 ([2, 4]). Entonces, podemos utilizar la expresión del error en la
interpolación
|f  (ξx )|
Δ= |π2 (x)| ,
3!
siendo π2 (x) = (x − 2)(x − 3)(x − 4) y ξ ∈ (2, 4). Es evidente que, para todo
x ∈ [2, 4] se tiene que |π2 (x)| < 23 . Entonces, se tiene una primera acotación
|f  (ξx )| 3 M 3
Δ< 2 ≤ 2 ,
3! 3!
siendo M = máx2≤ξx ≤4 {|f  (ξx )|}. Derivando tres veces la función f se tiene

 3 35 ξx − 64
f (ξx ) = .
8 ξx5
66 Interpolación Polinómica

Calculemos a continuación los posibles extremos relativos de f  (ξx ) en el inter-


valo [2, 4]. En concreto, la solución de la ecuación

15 63 ξx − 128
f (iv) (ξx ) = − =0
16 ξx6

viene dada por ξx∗ = 16384/3969 = 4,1279 ∈ [2, 4]. Entonces

M = máx{|f  (2)|, |f  (4)|} = máx{0,169951, 0,00219727} = 0,169951 .

En definitiva,
0,169951 3
Δ< 2 = 0,226601 .
3!
Problema 4.18 Se desea construir una tabulación de la función f (x) =
x
0
exp(−t2 )dt en abscisas equiespaciadas de modo que posteriormente se uti-
lizará para aproximar los valores de f (x) para cualquier x ∈ R mediante in-
terpolación lineal entre dos abscisas consecutivas. ¿Cuál debe ser la longitud de
paso en dichas abscisas si se desea que el error absoluto cometido en cualquiera
de las anteriores aproximaciones sea menor que 10−3 ?

Solución. Sea h > 0 la longitud de paso en las abscisas consecutivas que defin-
imos como {x0 , x1 , . . . , xn }, Se tiene pues que xi = x0 + ih para i = 0, 1, . . . , n.
Tomemos un punto arbitrario x entre dos abscisas consecutivas, es decir, x ∈
[i]
[xi , xi+1 ]. Sea P1 (x) el polinomio de grado menor o igual que 1 que interpola
a f (x) en los nodos {xi , xi+1 }. Puesto que la función exp(−x2 ) ∈ C ∞ (R), se
tiene que f (x) ∈ C ∞ (R) y, en particular, f (x) ∈ C 2 ([xi , xi+1 ]). Entonces, si de-
[i]
notamos por Δ(x) el error absoluto cometido en la aproximación f (x) ≈ P1 (x)
para cualquier x ∈ [xi , xi+1 ], se tiene que existe un número ξx ∈ (xi , xi+1 ) tal
que
|f  (ξx )|
Δ(x) = |w1 (x)| , siendo w1 (x) = (x − xi )(x − xi+1 ) .
2!
Es claro que |w1 (x)| ≤ (xi+1 − xi )2 = h2 para todo x ∈ [xi , xi+1 ]. Entonces, se
tiene una primera acotación

h2 
Δ(x) ≤ |f (ξx )| .
2
Utilizando el Teorema Fundamental del Cálculo se tiene que f  (x) = exp(−x2 ).
Entonces, derivando de nuevo, se llega a que

f  (x) = −2x exp(−x2 ) .

Hemos de hallar (si es que existe) una cota superior de |f  (x)| para todo x ∈ R
puesto que, aunque x ∈ [xi , xi+1 ], se tiene que el intervalo [xi , xi+1 ] ⊂ R es
arbitrario. Recordemos que R no es un intervalo compacto (cerrado y acotado),
de modo que en un principio no tiene ni siquiera por qué existir la cota superior
que buscamos. Sin embargo, para la función que tenemos sı́ que existe como
4.2 Problemas resueltos 67

veremos a continuación. En primer lugar, observemos que una condición sufi-


ciente para que dicha cota exista es que f  (x) ∈ C(R) y además f  (x) tenga
ası́ntota horizontal tanto cuando x → ∞ como cuando x → −∞. Como además
f  (x) ∈ C 1 (R), denotando por lı́mx→±∞ f  (x) = α± con α± ∈ R finitos y
siendo x∗i ∈ R con i = 1, . . . , k las abscisas de los extremos relativos de f  (x),
se tiene que existe una cota M = máx{|f  (x)| : ∀x ∈ R} y su valor viene dado
por
M = máx{|f  (α+ )|, |f  (α− )|, |f  (x∗1 )|, . . . , |f  (x∗k )|} .
En nuestro caso, como además f  (x) es una función impar (f (−x) = −f (x)),
sólo es necesario estudiar el siguiente lı́mite:
−2x −1
lı́m f  (x) = lı́m 2
= lı́m = 0 = α+ ,
x→∞ x→∞ exp(x ) x→∞ x exp(x2 )

donde en la penúltima igualdad se ha utilizado la regla de l’Hopital. Por simetrı́a,


α+ = α− = 0. Los extremos relativos de f  (x) serán solución de la ecuación
f  (x)= −2 exp(−x

2
)(1−2x2
) = 0, es decir, x =
 ± 1/2. Puesto que la derivada
(iv) 
f ( 1/2) = 4 2/e  > 0, se tiene que x = 1/2 es un mı́nimo de f (x) y,
por simetrı́a, x = − 1/2 un máximo. Se tiene pues que la gráfica f (x) es la
dada en la Figura 4.1.

0.5

3 2 1 1 2 3

0.5

Figura 4.1: Gráfica de la función f  (x) = −2x exp(−x2 ).


 
En definitiva, es claro que M = |f  ( 1/2)| = 2/e. De este modo se tiene
que 
h2 2 h2
Δ(x) ≤ =√ .
2 e 2e
Finalmente, para hallar la longitud de paso h de modo que Δ(x) < 10−3 , re-
solvemos la inecuación
h2
√ < 10−3 ,
2e
√
y obtenemos que h < 2e 10−3 = 0,0482871.
68 Interpolación Polinómica


Problema 4.19 Consideremos la función f (x) = (4 + x)5 (328 − 19x + x2 ).
(i) Hallar, mediante el método de las diferencias divididas de Newton, el poli-
nomio P2 (x) de grado menor o igual que 2 que interpola a la función f (x)
en los tres nodos equiespaciados de la partición del intervalo [0, 2].
(ii) Acotar el error absoluto Δ(x) cometido en la aproximación f (x) ≈ P2 (x)
para todo x ∈ [0, 2].
(iii) Hallar el polinomio Q2 (x) de grado menor o igual que 2 tal que la cota del
error absoluto Δ̄(x) cometido en la aproximación f (x) ≈ Q2 (x) para todo
x ∈ [0, 2] sea la mı́nima posible.

Solución. (i) Los nodos xi ∈ [0, 2] (i = 0, 1, 2) equiespaciados que definen una


partición del intervalo [0, 2] son xi = i. Puesto que f (0) = 10496, f (1) = 17329,5
y f (2) = 25925,4, se obtiene el siguiente esquema triangular de diferencias
divididas de Newton
0 10496
6833.5
1 17329.5 881.2
8595.9
2 25925.4

El polinomio P2 (x) que interpola a la función f (x) en los nodos {0, 1, 2}


viene dado por

P2 (x) = 10496 + 6833,5x + 881,2x(x − 1) .



(ii) Notemos que la función f (x) = (4 + x)5 (328−19x+x2 ) es el producto
de un polinomio (por lo tanto de clase C ∞ (R)) por la función (4 + x)5/2 que
es de clase C ∞ (I) siendo el intervalo I = {x ∈ R : x > −4}. Como el intervalo
[0, 2] ⊂ I, se concluye que f ∈ C ∞ ([0, 2]) y, en particular, f ∈ C 3 ([0, 2]).
Entonces, para cualquier x ∈ [0, 2], el error absoluto Δ(x) que se comete en la
aproximación f (x) ≈ P2 (x) viene dado por
2
|f (ξx )| 


Δ(x) = |x − i| ,
3! i=0

donde ξx ∈ (0, 2). Puesto que x ∈ [0, 2], entonces para i = 0, 1, 2, se tiene
2
|x − i| ≤ 2 y por lo tanto i=0 |x − i| ≤ 23 . En definitiva se obtiene

|f (ξx )| 3 4 
Δ(x) ≤ 2 = |f (ξx )| ,
3! 3
con ξx ∈ (0, 2). Derivando tres veces la función f (x) se llega a
 315 x(x − 1)
f (x) = √ .
8 4+x
4.2 Problemas resueltos 69


Calculemos a continuación el máximo absoluto de la función continua |f (x)| en
el intervalo compacto [0, 2]. Para ello calculamos primero los extremos relativos

de f en el intervalo [0, 2], es decir, resolvemos la ecuación
315 −8 + 15x + 3x2
f (iv) (x) =  =0
16 (4 + x)3
para x ∈ [0, 2]. Las soluciones de dicha ecuación son las soluciones de la ecuación
−8 + 15x + 3x2 = 0 que vienen dadas por
1 √
x = (−15 ± 321) ,
6
es decir, x = 0,486079 ∈ [0, 2] puesto que la otra solución −5,48608 ∈ [0, 2].

Entonces, el máximo absoluto M de |f (x)| en el intervalo [0, 2] viene dado por
  
M = máx{|f (0)|, |f (2)|, |f (0,486079)|} = máx{0, 32,1496, 4,64398}
= 32,1496 .
Concluimos que
4
Δ(x) ≤ × 32,1496 = 42,8661 .
3
(iii) El polinomio Q2 (x) deberá interpolar a la función f (x) en los 3 nodos
xi (i = 0, 1, 2) de Chebychev en el intervalo [a, b] = [0, 2]. Entonces,

a+b b−a 2i + 1
xi = + cos π , i = 0, 1, 2 .
2 2 2×2+2
En nuestro caso

1
x0 = 1 + cos π = 1,86603 ,
6

1
x1 = 1 + cos π =1,
2

5
x2 = 1 + cos π = 0,133975 ,
6

Puesto que f (x0 ) = 24671,3, f (x1 ) = 17329,5 y f (x2 ) = 11309,3, se obtiene el


siguiente esquema triangular de diferencias divididas de Newton
1.86603 24671.3
8477.54
1 17329.5 881.039
6951.53
0.133975 11309.3
El polinomio Q2 (x) que interpola a la función f (x) en los nodos de Cheby-
chev {x0 , x1 , x2 } viene dado por
Q2 (x) = 24671,3 + 8477,54(x − 1,86603) + 881,039(x − 1,86603)(x − 1) .
Capı́tulo 5

Derivación Numérica

5.1. Resumen de teorı́a


Las reglas de diferenciación para funciones usuales son bien conocidas. Sin
embargo, no siempre es posible utilizarlas; por ejemplo si nuestro único cono-
cimiento sobre la función es el valor que toma en unas determinadas abscisas,
es decir sólo se dispone de una tabulación de la función; o bien no nos intere-
sa utilizarlas, por ejemplo en funciones con una expresión analı́tica demasiado
complicada. En este sentido son interesante las técnicas de derivación numérica,
ya que nos van a permitir calcular una aproximación de la derivada k-ésima de
la función en un punto. Las fórmulas de derivación numérica tienen su aplicación
más importante en la resolución numérica de ecuaciones diferenciales.
Suponiendo la función f suficientemente diferenciable, mediante desarro-
llos de Taylor se pueden obtener fórmulas de derivación numérica. Por
ejemplo:
f (x + h) − f (x)
f  (x) = + O(h) , (5.1)
h
que se conoce con el nombre de fórmula de diferencias hacia adelante, o
bien, de forma totalmente análoga podemos obtener la llamada fórmula
de diferencias hacia atrás
f (x) − f (x − h)
f  (x) = + O(h) , (5.2)
h
o la llamada fórmula de diferencias centradas
f (x + h) − f (x − h)
f  (x) = + O(h2 ) . (5.3)
2h
Sea F (h) una fórmula que nos proporciona una aproximación discreta (con
paso de discretización h) de cierto cálculo exacto V . Supongamos además
que del análisis del error de truncamiento hemos obtenido la relación
V = F (h) + a1 hp1 + a2 hp2 + a3 hp3 + · · · con 0 < p1 < p2 < · · · . (5.4)

71
72 Derivación Numérica

Mediante la Extrapolación de Richardson se consigue


F (h) − F (2h)
a1 hp1 ≈ . (5.5)
2p1 − 1
La derivación interpolatoria consiste en aproximar la derivada de f por la
de un cierto polinomio interpolador Pn de f , es decir,
f  (a) ≈ Pn (a) .

5.2. Problemas resueltos


Problema 5.1 Supongamos que conocemos el valor de una función f en dos
puntos, es decir las parejas (x0 , f0 ) y (x1 , f1 ).
(i) Obtener (utilizando el formalismo de Lagrange) la fórmula de derivación
interpolatoria que nos permite aproximar la derivada f  (x0 ).
(ii) Demostrar que la fórmula obtenida en el apartado anterior es en realidad
la fórmula de diferencias hacia adelante.
Solución. (i) Utilizando derivación interpolatoria y el formalismo de Lagrange
para el polinomio interpolador P (x) podemos escribir
f  (x0 ) ≈ P  (x0 ) = f0 0 (x0 ) + f1 1 (x0 ) .
Como los polinomios de Lagrange son
x − x1 x − x0
0 (x) = , 1 (x) = ,
x0 − x1 x1 − x0
concluimos que
f0 f1
f  (x0 ) ≈ + .
x0 − x1 x1 − x0
(ii) Definimos h de la forma x1 = x0 + h. Entonces, podemos reescribir la
ecuación anterior como
f (x0 ) f (x0 + h) f (x0 + h) − f (x0 )
f  (x0 ) ≈ + = ,
−h h h
que no es más que la fórmula de diferencias hacia adelante.
Problema 5.2 Considerar la tabulación de una función f (x) siguiente

xi 5 -7 -6 0
f (xi ) 1 -23 -54 -954

(i) Calcular el polinomio de tercer grado que interpola a todos los puntos de la
tabla mediante el método de las diferencias divididas de Newton.
(ii) Aproximar el valor de la derivada f  (−6,5) mediante alguna de las siguien-
tes fórmulas: diferencias hacia adelante, diferencias hacia atrás o diferen-
cias centradas. Explicar vuestra elección.
5.2 Problemas resueltos 73

Solución. (i) Realizando el esquema de diferencias divididas siguiente


5 1
2
-7 -23 3
-31 4
-6 -54 -17
-150
0 -954
obtenemos el polinomio interpolador P (x) = 1 + 2(x − 5) + 3(x − 5)(x + 7) +
4(x − 5)(x + 7)(x + 6). Finalmente, desarrollando se tiene

P (x) = 4x3 + 35x2 − 84x − 954 .

(ii) Según la tabulación de que disponemos, la única fórmula posible es la


de diferencias centradas
f (x + h) − f (x − h)
f  (x) = + O(h2 ) .
2h
En concreto, tomando la longitud de paso h = 0,5 se tiene

f  (−6,5) ≈ f (−6) − f (−7) = −54 − (−23) = −31 .

Problema 5.3 Se está analizando un circuito eléctrico que tiene una bobina,
una resistencia y un generador de corriente. Aplicando las leyes de Kirchhoff se
sabe que dicho circuito está gobernado por la siguiente ecuación
dI
(t) = L + RI ,
dt
siendo (t) la fuerza electromotriz en función del tiempo del generador, L el
coeficiente de autoinducción de la bobina, R la resistencia e I la intensidad de
corriente eléctrica. Se realiza con un cronómetro y un amperı́metro las siguientes
mediciones
ti (segundos) 0 1 2
I(ti ) (amperios) 2 4 10

Se sabe que L = 0,5 henries y R = 5 ohms son constantes.


(i) Utilizar el formalismo de las diferencias divididas de Newton para realizar
derivación interpolatoria con todos los puntos de la tabulación con el ob-
jetivo de aproximar el valor (0).
(ii) Suponiendo que los valores I(ti ) de la tabulación dada son exactos pero que
R = 5±0,3 ohms, aproximar el error absoluto cometido en la aproximación
efectuada en el apartado (i) en función de la derivada de algún orden de
I(t).
74 Derivación Numérica

Solución. (i) Utilizando el formalismo de diferencias divididas de Newton, el


polinomio P2 (t) de grado menor o igual que 2 que interpola a todos los datos
de la tabla es

P (t) = I[t0 ] + I[t0 , t1 ](t − t0 ) + I[t0 , t1 , t2 ](t − t0 )(t − t1 ) .

Realizando el esquema de diferencias divididas se obtiene


0 2
2
1 4 2
6
2 10
de manera que I[t0 ] = I[t0 , t1 ] = I[t0 , t1 , t2 ] = 2 y por lo tanto

P2 (t) = 2[1 + (t − 0) + (t − 0)(t − 1)] = 2(1 + t2 ) .

Este polinomio será utilizado para realizar la aproximación

˙ dI(0) dP2 (0)


I(0) := ≈ =0. (5.6)
dt dt
Podemos aproximar el valor (0) mediante la anterior aproximación y la ecuación
que gobierna el circuito, es decir

dI(0) dP2 (0)


(0) = L + RI(0) ≈ L + RI(0) = 0,5 × 0 + 5 × 2 = 10 voltios .
dt dt
(ii) Se ha de obtener una expresión aproximada para Δ(0) , es decir el error
absoluto cometido en el apartado anterior. Según el enunciado del problema,
las únicas magnitudes que contienen errores son R y las aproximadas en el
˙
apartado (i), es decir I(0) y (0). Tomando la ecuación del circuito se tiene que
˙ R) = LI˙ + RI, de manera que según la fórmula de propagación de errores
(I,
absolutos    
 ∂   ∂ 
Δ ≈   ΔI˙ +   ΔR = LΔ ˙ + |I|ΔR .
∂ I˙ ∂R  I

Particularizando esta expresión para tiempo t = 0 se obtiene

Δ(0) ≈ LΔI(0)
˙ + |I(0)|ΔR = 0,5ΔI(0)
˙ + 2 × 0,3 . (5.7)

Para finalizar el problema es necesario obtener una expresión de ΔI(0) ˙ en función


de la derivada de algún orden de I(t). Como I(0) ˙ ha sido aproximado mediante
(5.6), es de allı́ de donde se ha de obtener tal expresión. En concreto, se sabe
por la teorı́a de interpolación que el error absoluto cometido en la aproximación
I(t) ≈ P2 (t) para cualquier valor t ∈ [0, 2] viene dado por
 (iii) 
I (ξ(t)) 
ΔI(t) := |I(t) − P2 (t)| =  (t − 0)(t − 1)(t − 2) ,
3!
5.2 Problemas resueltos 75

donde ξ(t) ∈ (0, 2). Derivando esta ecuación respecto del tiempo t y particula-
rizándola para t = 0 se obtiene
 (iii) 
I (ξ(0))  1  (iii) 

ΔI(0) := | ˙
I(0) − Ṗ (0)| =  (−1)(−2)  = I (ξ(0)) ,
˙ 2  3!  3

donde ξ(0) ∈ (0, 2). Finalmente, introduciendo esta expresión en la aproximación


(5.7) se obtiene
1  

Δ(0) ≈ I (iii) (ξ(0)) + 0,6 .
6
Problema 5.4 Cosideremos la fórmula de diferencias centradas

f (x + h) − f (x − h)
f  (x) = + O(h2 ) .
2h
(i) Aplicar la extrapolación de Richardson a la fórmula de diferencias centradas
para obtener una nueva fórmula de aproximación para f  (x), obteniendo
también el orden del error.
(ii) Sea f ∈ C 4 [x − 2h, x + 2h], con h > 0. Utilizando desarrollos de Taylor
hasta cuarto orden para f (x ± h) y f (x ± 2h), obtener la misma fórmula
que en el apartado anterior.

Solución. (i) La fórmula de diferencias centradas tiene un desarrollo asintótico


del error que sólo contiene potencias pares de la longitud de paso h, es decir,

f  (x) = F (h) + a1 h2 + O(h4 ) ,

siendo a1 una constante independiente de h y

f (x + h) − f (x − h)
F (h) = .
2h
Realizando la extrapolación de Richardson con duplicación del paso, se obtiene
el primer término del error, es decir,

F (h) − F (2h)
a1 h2 = + O(h4 )
22 − 1
−f (x + 2h) + 2f (x + h) − 2f (x − h) + f (x − 2h)
= + O(h4 ) .
12h
Se tiene pues que

−f (x + 2h) + 8f (x + h) − 8f (x − h) + f (x − 2h)
f  (x) = + O(h4 ) .
12h
(ii) Una forma de obtener expresiones en diferencias finitas para la derivada
consiste (suponiendo que la función es suficientemente derivable) en combinar
diferentes desarrollos de Taylor en un entorno de los puntos donde conocemos
76 Derivación Numérica

la función. En concreto, realizamos los desarrollos de Taylor hasta cuarto orden


siguientes

4h3  2h4 (iv)


f (x + 2h) = f (x) + 2hf  (x) + 2h2 f  (x) + f (x) + f (ξ1 ) ,
3 3
h2 h3 h4
f (x + h) = f (x) + hf  (x) + f  (x) + f  (x) + f (iv) (ξ2 ) ,
2 6 24
2 3 4
h h h
f (x − h) = f (x) − hf  (x) + f  (x) − f  (x) + f (iv) (ξ3 ) ,
2 6 24
 2  4h3  2h4 (iv)
f (x − 2h) = f (x) − 2hf (x) + 2h f (x) − f (x) + f (ξ4 ) ,
3 3
siendo ξi ∈ [x − 2h, x + 2h] para i = 1, 2, 3, 4. A continuación realizamos la
siguiente combinación lineal −f (x + 2h) + 8f (x + h) − 8f (x − h) + f (x − 2h) y
obtenemos
1

12hf  (x) + − 2f (iv) (ξ1 ) + f (iv) (ξ2 ) − f (iv) (ξ3 ) + 2f (iv) (ξ4 ) h4 .
3
Se tiene pues, despejando f  (x) de la igualdad entre las dos expresiones anteri-
ores, que

−f (x + 2h) + 8f (x + h) − 8f (x − h) + f (x − 2h)
f  (x) = + O(h4 ) .
12h
Problema 5.5 Considerar la siguiente tabla de valores

x 0 1 2
f (x) 3.121 2.714 4.128

(i) Sabiendo que |f  (x)| ≤ 3/4 para todo x ∈ [0, 2], hallar una cota para el
error cometido cuando aproximamos f (1.3) por interpolación polinomial
con la tabla adjunta.
(ii) Aproximar f  (1) por derivación interpolatoria y, teniendo en cuenta el
apartado anterior, obtener una cota del error cometido.
(iii) ¿Se obtendrı́a la misma aproximación que la efectuada en el apartado an-
terior mediante alguna fórmula de derivación numérica obtenida a través
de desarrollos de Taylor?

Solución. (i) Sea P2 (x) el polinomio que interpola a f mediante la tabulación


adjunta. Se sabe que para todo x ∈ [0, 2] se verifica
  
 f (ξx ) 

|f (x) − P2 (x)| =  π(x) ,
3!

donde ξx ∈ (0, 2) y π(x) = x(x − 1)(x − 2). Puesto que |f  (ξx )| ≤ 3/4, particu-
larizando para x = 1.3 se tiene la siguiente acotación del error Δ cometido en
5.2 Problemas resueltos 77

la aproximación f (1.3) ≈ P2 (1.3)


  
 f (ξ1.3 )  3/4
Δ := |f (1.3) − P2 (1.3)| =  π(1.3) ≤ |π(1.3)|
3! 3!
1
= |1.3 × (1.3 − 1) × (1.3 − 2)| = 0.034125 .
8
(ii) La derivada de la función f en un nodo xα se aproxima de forma inter-
polatoria por
f  (xα ) ≈ P2 (xα ) ,
donde el error cometido Δ vale
  
 f (ξxα )  
Δ =  π (xα ) .
3!

Realizando el esquema de diferencias divididas asociado a la tabulación del


enunciado se tiene
0 3.121
-0.407
1 2.714 0.9105
1.414
2 4.128

de manera que

P2 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 )


= 3.121 − 0.407x + 0.9105x(x − 1)
= 3.121 − 1.3175x + 0.9105x2 .

Por consiguiente, tomando el nodo xα = 1, la aproximación buscada es f  (1) ≈


P2 (1) = 0.5035.
El error absoluto Δ cometido en la anterior aproximación es
  
 f (ξ1 )  

Δ =  π (1) .
3!

Como ξ1 ∈ (0, 2) se tiene la cota |f  (ξ1 )| ≤ 3/4. Además, como π(x) = x(x −
1)(x − 2), obtenemos π  (1) = −1. En definitiva la cota del error es
 
 3/4  1

Δ ≤ − = .
3!  8

(iii) Puesto que los nodos de la tabulación son equiespaciados, seguro que
existe alguna fórmula de derivación numérica procedente de desarrollos de Taylor
78 Derivación Numérica

que nos da la misma aproximación de f  (1) que la obtenida en el apartado


anterior. De hecho es natural pensar en la fórmula de diferencias centradas
f (x + h) − f (x − h)
f  (x) ≈ .
2h
Como la longitud de paso de los nodos es h = 1, particularizando la fórmula
anterior para el valor x = 1 se tiene
f (2) − f (0) 4.128-3.121
f  (1) ≈ = = 0.5035 .
2 2
Problema 5.6 Se han realizado las siguientes mediciones de la posición x en
función del tiempo t para una partı́cula.

t (s) 0 1 2
x (m) 0 1.1752 3.6268

(i) Aproximar la velocidad v de la partı́cula para tiempo t = 1 mediante


derivación interpolatoria con todos los datos de la tabla adjunta y utilizan-
do el formalismo de Newton. ¿Se habrı́a obtenido la misma aproximación
utilizando alguna fórmula de derivación numérica mediante desarrollos de
Taylor? Razonar la respuesta.
(ii) Posteriormente se sabe que la expresión explı́cita de la posición en función
del tiempo viene dada por x(t) = sinh t. Hallar una cota del error absoluto
cometido en la aproximación v(1) ≈ dP2 (1)/dt, siendo P2 (t) el polinomio
de grado menor o igual que dos que interpola a los datos de la tabla ad-
junta y posteriormente comparar dicha cota con el valor exacto del error
absoluto.
Solución. (i) Con los datos de la tabla adjunta se obtiene el siguiente esquema
triangular de diferencias divididas de Newton
0 0
1.1752
1 1.1752 0.6382
2.4516
2 3.6268

El polinomio P2 (t) que interpola a la función x(t) según los datos de la tabla
es
P2 (t) = 1,1752t + 0,6382t(t − 1) .
La aproximación mediante derivación interpolatoria es

v(1) ≈ dP2 (1)/dt = 1,1752 + 0,6382 = 1,8134 .

Notemos que los nodos de interpolación de la tabla adjunta son equiespacia-


dos. Esto implica que existe una fórmula de derivación interpolatoria procedente
5.2 Problemas resueltos 79

de desarrollos de Taylor que nos ofrece la misma aproximación que la efectuada


mediante derivación interpolatoria. Además, la aproximación efectuada ha sido
la derivada de la función x(t) en el nodo central de manera que, podemos utilizar
la fórmula de diferencias centradas
x(1 + h) − x(1 − h) x(2) − x(0) 3,6268 − 0
v(1) = x (1) ≈ = = = 1,8134 ,
2h 2 2
donde se ha tomado la longitud de paso h = 1 para poder utilizar la tabulación
dada.

(ii) Sabemos que el error absoluto Δ cometido en la aproximación x(t) ≈


P2 (t) para cualquier valor de t ∈ [0, 2] viene dado por
  
 x (ξt ) 
Δ = |x(t) − P2 (t)| =   t(t − 1)(t − 2) ,
3!
donde ξt ∈ (0, 2). Entonces, derivando la expresión anterior respecto de t, el
error absoluto Δ cometido en la aproximación v(1) ≈ P2 (1) viene dado por
  
 x (ξ1 )  |x (ξ1 )|
Δ = |x (1) − P2 (1)| =  1(1 − 2) = ,
3! 3!
donde ξ1 ∈ (0, 2). Puesto que la tercera derivada de la función x(t) = sinh t
viene dada por x (ξ1 ) = cosh ξ1 , siendo esta una función positiva y creciente
en el intervalo ξ1 ∈ (0, 2), es claro que
cosh 2 3,7622
Δ ≤ = = 0,627 .
3! 3!
Por supuesto en este caso es posible calcular de manera exacta el error ab-
soluto Δ . En concreto
Δ = |x (1) − P2 (1)| = | cosh 1 − 1,8134| = |1,54308 − 1,8134| = 0,270319 .
Problema 5.7 Responder a las siguientes preguntas.
(i) Suponiendo que la función f (x) es suficientemente derivable, hallar median-
te desarrollos de Taylor el orden del error en la aproximación

−3f (x) + 4f (x + h) − f (x + 2h)


f  (x) ≈ ,
2h
cuando h > 0 tiende a cero.
(ii) Si f (x) = sin x, acotar el error absoluto cometido en el apartado (i) en
función de h utilizando adecuadamente la derivación interpolatoria.

Solución. (i) Supongamos que f ∈ C 3 [x, x + 2h]. Entonces, podemos efectuar


los siguientes desarrollos de Taylor de f entorno de x.
h2  h3
f (x + h) = f (x) + hf  (x) + f (x) + f  (ξ1 ) ,
2 3!
80 Derivación Numérica

8 3 
f (x + 2h) = f (x) + 2hf  (x) + 2h2 f  (x) + h f (ξ2 ) ,
3!

siendo ξ1 ∈ (x, x + h) y ξ2 ∈ (x, x + 2h). Restando cuatro veces la primera


ecuación menos la segunda se consigue eliminar el término que contiene f  (x)
y se obtiene

4f (x + h) − f (x + 2h) = 3f (x) + 2hf  (x) + O(h3 ) .

Despejando de aquı́ f  (x) se llega a


−3f (x) + 4f (x + h) − f (x + 2h)
f  (x) = + O(h2 ) .
2h
(ii) Observemos que la fórmula que aproxima la derivada primera del aparta-
do anterior proviene del método de Taylor, de manera que la misma fórmula
puede ser obtenida por derivación interpolatoria. Puesto que la función f en
esta fórmula se evalúa en tres puntos equiespaciados con longitud de paso h,
tomaremos los nodos Σ = {x0 , x1 , x2 }, siendo xi = x0 + ih con i = 0, 1, 2. De-
notando por P2 (x) al polinomio de grado menor o igual que 2 que interpola a
f (x) en Σ, se tiene que f (x) = P2 (x) + Δ(x), siendo

2
f  (ξx )
Δ(x) = w2 (x) , w2 (x) = (x − xi ) , ξx ∈ (x0 , x2 ) .
3! i=0

Derivando respecto de x la expresión f (x) = P2 (x) + Δ(x) y evaluando en en


nodo x0 se tiene que f  (x0 ) = P2 (x0 ) + Δ (x0 ). De este modo, se tendrá que
la aproximación f  (x0 ) ≈ P2 (x0 ) conincidirá con la fórmula del apartado (i)
y tendrá asociada un error absoluto |Δ (x0 )|. Tomando el conjunto de nodos
equiespaciados Σ, se tiene que
|f  (ξx0 )| |f  (ξx0 )| 2
|Δ (x0 )| = |x0 − x1 ||x0 − x2 | = h , ξx0 ∈ (x0 , x0 + 2h) .
3! 3
Finalmente, como f (x) = sin x, es claro que |f  (ξx0 )| ≤ 1, de modo que se
obtiene la cota
h2
|Δ (x0 )| ≤ .
3
Problema 5.8 La capacidad calorı́fica C depende de la temperatura T a la que
está sometido el material. La siguiente tabla muestra unas medidas experimen-
tales de la capacidad calorı́fica de 1Kg de agua a diferentes temperaturas
T (K) 273 323 373
C (KJ/K) 4.217 4.180 4.215

Suponiendo que la función C(T ) es suficientemente derivable, hallar mediante


desarrollos de Taylor una aproximación de dC/dT en T = 273 utilizando los
valores C(323) y C(373).
5.2 Problemas resueltos 81

Solución. En primer lugar, notemos que conocemos la función C(T ) en un


conjunto de puntos Ti equiespaciados, es decir, Ti = T0 + ih con una longitud de
paso h = 50. Es por este motivo que podemos utilizar desarrollos de Taylor para
aproximar dC/dT en T0 = 273. Además, se han de utilizar los valores C(323)
y C(373) que no son más que los valores de C(T0 + h) y C(T0 + 2h). Existen
varias formas de resolver el problema. Tres de ellas son:
Supongamos que C ∈ C 2 [T0 , T0 +2h] y realizemos los siguientes desarrollos
de Taylor de la función C(T ) entorno de T0 :
1
C(T0 + h) = C(T0 ) + hC  (T0 ) + h2 C  (ξ1 ) ,
2
C(T0 + 2h) = C(T0 ) + 2hC  (T0 ) + 2h2 C  (ξ2 ) ,
con ξ1 ∈ (T0 , T0 + h) y ξ2 ∈ (T0 , T0 + 2h). Aquı́, la prima indica derivada
respecto de T . Restando la ecuación segunda menos la primera se llega a
que
C(T0 + 2h) − C(T0 + h) = hC  (T0 ) + O(h2 ) ,
de donde, despejando se obtiene
C(T0 + 2h) − C(T0 + h)
C  (T0 ) = + O(h) .
h
De este modo,
C(373) − C(323) 4,215 − 4,180
C  (273) ≈ = = 0,0007 .
50 50
Nota: Si, en los anteriores desarrollos de Taylor, en lugar de restar la
ecuación segunda menos la primera se suman las dos ecuaciones se llega a
que
C(T0 + h) + C(T0 + 2h) = 2C(T0 ) + 3hC  (T0 ) + O(h2 ) ,
de donde, despejando se obtiene
C(T0 + h) + C(T0 + 2h) − 2C(T0 )
C  (T0 ) = + O(h) .
3h
De este modo,
C(323) + C(373) − 2C(273)
C  (273) ≈
150
4,180 + 4,215 − 2 × 4,217
= = −0,00026 .
150
El resultado anterior puede ser mejorado si suponemos que C ∈ C 3 [T0 , T0 +
2h] y realizamos los siguientes desarrollos de Taylor de la función C(T )
entorno de T0 :
1 1
C(T0 + h) = C(T0 ) + hC  (T0 ) + h2 C  (T0 ) + h3 C  (ξ1 ) ,
2 3!
4
C(T0 + 2h) = C(T0 ) + 2hC  (T0 ) + 2h2 C  (T0 ) + h3 C  (ξ2 ) ,
3
82 Derivación Numérica

con ξ1 ∈ (T0 , T0 + h) y ξ2 ∈ (T0 , T0 + 2h). Restando 4 veces la ecuación


primera menos la segunda se llega a que

4C(T0 + h) − C(T0 + 2h) = 3C(T0 ) + 2hC  (T0 ) + O(h3 ) ,

de donde, despejando se obtiene


4C(T0 + h) − C(T0 + 2h) − 3C(T0 )
C  (T0 ) = + O(h2 ) .
2h
De este modo, tomando h = 50 se tiene
4C(323) − C(373) − 3C(273)
C  (273) ≈
100
4 × 4,180 − 4,215 − 3 × 4,217
= = −0,00146 .
100

Problema 5.9 Sea la función f ∈ C ∞ [x − h, x + 3h].


(i) Hallar el orden del error en la aproximación de la derivada siguiente

−3f (x − h) − 10f (x) + 18f (x + h) − 6f (x + 2h) + f (x + 3h)


f  (x) ≈ .
12h

(ii) Obtener, mediante extrapolación de Richardson aplicada a la fórmula an-


terior, otra aproximación de f  (x) con un error menor para h suficiente-
mente pequen̄o.

Solución. (i) Como f ∈ C 5 [x − h, x + 3h], podemos realizar los siguientes


desarrollos de Taylor:
h2  h3 h4
f (x ± h) = f (x) ± hf  (x) + f (x) ± f  (x) + f (iv) (x) + O(h5 ),
2 3! 4!
 (2h)2  (2h)3 
f (x + 2h) = f (x) + 2hf (x) + f (x) + f (x) +
2 3!
(2h)4 (iv)
f (x) + O(h5 ),
4!
(3h)2  (3h)3 
f (x + 3h) = f (x) + 3hf  (x) + f (x) + f (x) +
2 3!
(3h)4 (iv)
f (x) + O(h5 ).
4!
De este modo,

−3f (x − h) − 10f (x) + 18f (x + h) − 6f (x + 2h) + f (x + 3h) = 12hf  (x) + O(h5 ) ,

con lo que
−3f (x − h) − 10f (x) + 18f (x + h) − 6f (x + 2h) + f (x + 3h)
f  (x) = +O(h4 ) .
12h
5.2 Problemas resueltos 83

(ii) Del apartado anterior sabemos que

f  (x) = F (h) + a1 h4 + O(h5 ) ,

siendo a1 ∈ R una constante independiente de h y

−3f (x − h) − 10f (x) + 18f (x + h) − 6f (x + 2h) + f (x + 3h)


F (h) = .
12h
Mediante extrapolación de Richardson se tiene

F (h) − F (2h)
a1 h4 = + O(h5 ) .
24 − 1
Entonces
F (h) − F (2h) 1
f  (x) = F (h) + 4
+ O(h5 ) = (16F (h) − F (2h)) + O(h5 ).
2 −1 15
Desarrollando esta expresión se llega a

1
f  (x) = [3f (x − 2h) − 96f (x − h) − 310f (x) + 576f (x + h)
360h
−210f (x + 2h) + 32f (x + 3h) + 6f (x + 4h) − f (x + 6h)]
+O(h5 ) .

Problema 5.10 Considerar la función f (x) = sin x definida en el intervalo


[0, π/2]. Sea Pn (x) el polinomio de grado menor o igual que n que interpola a
f (x) en n + 1 nodos arbitrarios pertenecientes al intervalo [0, π/2].
(i) Obtener una cota del error absoluto Δ(n) cometido en la aproximación
f  (xj ) ≈ Pn (xj ) en función únicamente de n, siendo xj cualquier nodo.
(ii) Teniendo en cuenta el valor de lı́mn→∞ Δ(n), ¿qué se puede decir del
fenómeno Runge en este problema?

Solución. (i) El error absoluto Δ(n) cometido en la aproximación f  (xj ) ≈


Pn (xj ) viene dado por

|f (n+1) (ξ)| 
n
Δ(n) = |f  (xj ) − Pn (xj )| = |xj − xi | ,
(n + 1)! i=0
i=j

siendo ξ ∈ (0, π/2). Puesto que todos los nodos pertenecen al intervalo [0, π/2],
es claro que |xj − xi | ≤ π/2, de modo que


n  π n
|xj − xi | ≤ .
i=0
2
i=j
84 Derivación Numérica

Por otra parte, como f (x) = sin x, se verifica que |f (n+1) (ξ)| ≤ 1. Entonces,
obtenemos la acotación
π n
2
Δ(n) ≤ .
(n + 1)!
(ii) Debido a la cota obtenida en el apartado anterior se tiene que

π n
2
0 ≤ Δ(n) ≤ .
(n + 1)!

Como
π n
2
lı́m =0,
n→∞ (n + 1)!
se tiene que lı́mn→∞ Δ(n) = 0. Entonces, en el problema de aproximar f (x) por
Pn (x) en el intervalo [0, π/2] no se produce el fenómeno Runge.
Capı́tulo 6

Integración Numérica

6.1. Resumen de teorı́a


Dada una función f (x) integrable Riemann en el intervalo [a, b], nos planteamos
el problema de calcular la integral de Riemann
! b
f (x) dx .
a

Se sabe que no siempre es posible calcular la anterior integral mediante


métodos analı́ticos. Por ejemplo si una función no admite primitiva expresable
mediante funciones elementales no podremos utilizar la regla de Barrow para la
determinación de la integral definida. Algunos ejemplos conocidos son
! !
sin x
exp(−x2 ) dx , dx ,
x
entre otros. La necesidad de disponer de técnicas numéricas para el cálculo
de integrales definidas también surge cuando no conocemos la función f (x) de
forma explı́cita pero sin embargo conocemos una tabulación de la misma para
un cierto conjunto de abscisas.
En primer lugar, consideramos la partición equiespaciada del intervalo de
integración [a, b] dada por
b−a
xi = a + ih para i = 0, 1, . . . , n, siendo h := . (6.1)
n
Definimos f (xk ) = fk . Si se aproxima f por el polinomio que interpola a f en
los nodos xi se obtiene la fórmula de Newton-Cotes
! b 
n
f (x) dx ≈ h αk fk , (6.2)
a k=0

siendo ! n
αk := φk (t) dt , (6.3)
0

85
86 Integración Numérica

con
n
t−j
φk (t) = , k = 0, . . . , n . (6.4)
j=0
k −j
j=k

Algunos casos particulares son los siguientes.


Fórmula de los Trapecios:
! b
h b−a
f (x) dx ≈ (f0 + f1 ) = (f (a) + f (b)) . (6.5)
a 2 2
Fórmula de Simpson:
! b  
h b−a a+b
f (x) dx ≈ (f0 + 4f1 + f2 ) = f (a) + 4f + f (b) .
a 3 6 2
(6.6)
Para determinar los coeficientes αi de la fórmula de cuadratura numérica
! b 
n
f (x) dx ≈ αi f (xi ) , (6.7)
a i=0

donde f es una función real continua en el intervalo cerrado [a, b] ⊂ R y los


nodos xi son dados y no necesitan ser equiespaciados, puede utilizarse un pro-
cedimiento alternativo llamado método de los coeficientes indeterminados. El
método es muy práctico cuando los nodos son equiespaciados o cuando el val-
or de n es grande. El procedimiento consiste en imponer que (6.7) tenga al
menos un grado de precisión n, es decir, sea exacta para cualquier f ∈ Rn [x]
polinomio de grado menor o igual que n. Imponiendo dicha condición a la base
canónica {1, x, x2 , . . . , xn } de Rn [x] se obtiene el siguiente sistema lineal de n+1
ecuaciones para las n + 1 incógnitas αi

n
αi = b−a ,
i=0

n
1 2
αi xi = (b − a2 ) ,
i=0
2
..
.

n
1
αi xni = (bn+1 − an+1 ) .
i=0
n+1
Observemos que el sistema es compatible y determinado puesto que el determi-
nante de la matriz de los coeficientes del sistema es de Vandermonde
 
 1 1 · · · 1 

 x0 x1 · · · xn 
 2 
 x0 x21 · · · x2n  
 = (xk − xi ) = 0 ,
 .. .. ..  k>i
 . . . 

 xn xn · · · xn 
0 1 n
6.1 Resumen de teorı́a 87

ya que hemos supuesto los nodos xi distintos entre sı́.

Una estrategia muy habitual consiste en no aplicar las fórmulas de Newton-


Cotes sobre todo el intervalo de integración [a, b]. En su lugar, dichas fórmulas
se aplicarán sobre subintervalos de [a, b]. Tomando h = (b − a)/n, algunos casos
particulares son los siguientes.
Fórmula de los Trapecios compuesta:
! b
f (x) dx = Th (f ) + O(h2 )
a

f0 fn h2
:= h + f1 + · · · + fn−1 + − (b − a)f (2) (ξ) ,
2 2 12
con ξ ∈ (a, b).
Fórmula de Simpson compuesta:
! b
h
f (x) dx = Sh (f ) + O(h4 ) = (f0 + 4f1 + 2f2 · · · + 4fn−1 + fn )
a 3
h4
− (b − a)f (4) (ξ),
180
con ξ ∈ (a, b).
El método de Romberg consiste en una aplicación repetitiva de la extrapo-
lación de Richardson. Si se parte de la regla trapezoidal compuesta con longitud
de paso h
! b
(1)
f (x) dx = Th (f ) + O(h2 ) ,
a
se puede realizar una tabla triangular de la forma
(1)
Th (f )
(2)
Th (f )
(1) (3)
Th/2 (f ) Th (f )
(2)
Th/2 (f )
(1)
Th/4 (f )
La primera columna consta de los valores obtenidos al aplicar la regla de los
trapecios con diferentes pasos h, h/2, h/4, etc... La segunda columna se genera
de la siguiente forma recurrente
(2) 1 " (1) (1)
#
(2) 1 " (1) (1)
#
Th (f ) = 4Th/2 (f ) − Th (f ) , Th/2 (f ) := 4Th/4 (f ) − Th/2 (f ) , · · ·
3 3
Se puede demostrar por inducción que
(k−1) (k−1)
(k)
4k−1 Th/2 (f ) − Th (f )
Th (f ) = . (6.8)
4k−1 −1
88 Integración Numérica

Otra técnica utilizada en la integración numérica se conoce como integración


Gaussiana. Ya se ha visto la forma de obtener los coeficientes αi de la fórmula
de integración numérica (6.2) de manera que se obtiene un grado de precisión
al menos de n cuando los n + 1 nodos x0 , x1 , . . . , xn están fijados. Ahora, per-
mitiremos una elección tanto de los coeficientes αi como de los nodos xi (sien-
do estos no equiespaciados) de forma que se obtengan fórmulas de integración
numérica con el máximo grado de precisión. Notemos que, ahora se dispone de
2(n+1) = 2n+2 grados de libertad, de manera que cabe esperar la obtención de
fórmulas con una grado de precisión 2n + 1. Observemos además que si se utiliza
el método de los coeficientes indeterminados, entonces el sistema de ecuaciones
a resolver ya no es lineal. Se necesitará entonces una estrategia diferente que
explicamos a continuación.

Definición 6.1 Un conjunto de polinomios {ψ0 , ψ1 , . . . , ψn , . . .} constituye una


familia de polinomios ortogonales en el intervalo [a, b] respecto a una función
peso w : (a, b) → R positiva y continua en (a, b) si:
(a) deg ψi = i para i = 0, 1, . . . , n, . . . y ψ0 = 0.
b
(b) a w(x)ψi (x)ψj (x) dx = 0 cuando i = j.

Notemos que, debido a la condición (a) de la anterior definición, es obvio


que {ψ0 , ψ1 , . . . , ψn } constituye una base del espacio vectorial Rn [x] de los poli-
nomios de grado menor o igual que n. En particular, esto implica que ψn+1 (x)
es ortogonal a cualquier polinomio P (x) de grado menor o igual que n puesto
que
! b ! b $ n %

w(x)P (x)ψn+1 (x) dx = w(x) ci ψi (x) ψn+1 (x) dx
a a i=0

n ! b
= ci w(x)ψi (x)ψn+1 (x) dx = 0 ,
i=0 a

siendo ci las componentes de P es la anterior base de polinomios ortogonales.

El objetivo del resto de la sección es mostrar que la elección de las abscisas


xk con k = 0, 1, . . . , n, como los ceros de un polinomio ψn+1 (x) de grado n+1, de
una familia de polinomios ortogonales, llevará siempre a fórmulas de cuadratura
exactas para polinomios de grado más pequen̄o o igual que 2n + 1.

Proposición 6.2 Sea ψn+1 (x) el polinomio ortogonal de grado n + 1 en el in-


tervalo [a, b] respecto de la función peso w(x). Entonces, el polinomio ψn+1 (x)
tiene n + 1 ceros reales simples xk con k = 0, 1, . . . , n en el intervalo (a, b).

Veamos algunos casos particulares de polinomios ortogonales.


6.1 Resumen de teorı́a 89

Peso Intervalo Nombre Expresión


2 n
1
n dxn (x − 1)
d n
1 [-1,1] Legendre Pn (x) = n!2
√ 1
[-1,1] Chebychev Tn+1 (x) = 2xTn (x) − Tn−1 (x) , T0 = 1, T1 = x
1−x2
2 n
exp(−x ) (−∞, ∞) Hermite Hn (x) = (−1)n exp(x2 ) dx
d 2
n [exp(−x )]
dn
exp(−x) [0, ∞) Laguerre n
Ln (x) = exp(x) dxn [x exp(−x)]

Consideramos la fórmula de integración numérica


! b 
n
w(x)f (x) dx ≈ αk f (xk ) . (6.9)
a k=0

Imponiendo la exactitud de la fórmula anterior para todos los polinomios de


grado menor o igual que n, es decir aproximando f por el polinomio Pn que
interpola a f en las abscisas x0 , x1 , . . . , xn , se obtiene
! b
αk = w(x)k (x) dx k = 0, 1, . . . , n ,
a

siendo k el k-ésimo polinomio básico de Lagrange.

Sea p2n+1 (x) un polinomio de grado n + 1 ≤ gr p2n+1 ≤ 2n + 1. Sean cn (x)


y rn (x) los polinomios de grado menor o igual que n que son respectivamente
el cociente y el resto obtenidos de hacer la división entre p2n+1 (x) y ψn+1 (x),
es decir
p2n+1 (x) = cn (x)ψn+1 (x) + rn (x) .
Usando la ortogonalidad entre cn (x) y ψn+1 (x) y teniendo en cuenta que la
fórmula (6.9) es exacta para polinomios de grado menor o igual que n se tiene
! b ! b ! b
w(x)p2n+1 (x) dx = w(x)cn (x)ψn+1 (x) dx + w(x)rn (x) dx
a a a
! b 
n
= w(x)rn (x) dx = αk rn (xk ) .
a k=0

Finalmente, teniendo en cuenta que ψn+1 (xk ) = 0 para k = 0, 1, . . . , n obten-


emos la exactitud de (6.9) para polinomios de grado menor o igual que 2n + 1,
es decir

n 
n 
n
αk p2n+1 (xk ) = αk cn (xk )ψn+1 (xk ) + αk rn (xk )
k=0 k=0 k=0
n ! b
= αk rn (xk ) = w(x)p2n+1 (x) dx .
k=0 a

Hemos demostrado hasta el momento que las fórmulas gaussianas tienen


al menos un grado de precisión 2n + 1. Veamos que este es en realidad su
90 Integración Numérica

máximo grado de precisión. Para verlo basta con tomar el polinomio Π2 (x) =
 n 2
i=0 (x − xk ) de grado 2n + 2 y comprobar que

! b 
n
0< w(x)Π2 (x) dx = αk Π2 (xk ) = 0 .
a k=0

El uso de la fórmula de Gauss–Chebychev es la siguiente:


! 1
π 
n
f (x)
√ dx ≈ f (xk ) ,
−1 1 − x2 n+1
k=0


2k+1
siendo xk = cos 2n+2 π .

Teorema 6.3 Sea f ∈ C 2n+2 [a, b]. Entonces existe un ξ ∈ (a, b) tal que el error
Δ cometido en la fórmula de integración gaussiana con n + 1 puntos viene dado
por
! 
n !
b
f (2n+2) (ξ) b
2
Δ := w(x)f (x) dx − αk f (xk ) = w(x)ψn+1 (x) dx ,
a (2n + 2)! a
k=0

donde los nodos xk con k = 0, 1, . . . , n son las raı́ces del polinomio ortogonal
mónico ψn+1 (x) de grado n + 1 en el intervalo [a, b] respecto al peso w(x).

6.2. Problemas resueltos


Problema 6.1 Aproximar el valor de la integral
! 1
sin x
dx
0 x

(i) Dividiendo el intervalo de integración [0, 1] en 5 subintervalos y aplicando


la regla de los Trapecios compuesta. Realizar los cálculos truncando a tres
decimales.

(ii) Utilizar el algoritmo de integración de Romberg para obtener una mejora


en el cálculo efectuado en el apartado (i).

Solución. (i) Si dividimos el intervalo de integración [0, 1] en 5 subintervalos,


en realidad estamos haciendo una partición equiespaciada con los puntos

x0 = 0 , x1 = 0,2 , x2 = 0,4 , x3 = 0,6 , x4 = 0,8 , x5 = 1 ,

de manera que n = 5 o equivalentemente la longuitud de paso es h = 0,2.


Tomando la función que integramos f (x) = sin x/x y aplicando la regla de los
6.2 Problemas resueltos 91

Trapecios compuesta tenemos que

! 1
sin x f0 f5
dx ≈ Th (f ) := h + f1 + f2 + f3 + f4 +
0 x 2 2

f (0) f (1)
= 0,2 + f (0,2) + f (0,4) + f (0,6) + f (0,8) +
2 2

1 0,841
= 0,2 + 0,993 + 0,973 + 0,941 + 0,896 +
2 2
= 0,944 .

Nota: Observar que en realidad la función f (x) no está definida en x = 0


puesto que presenta una indeterminación del tipo 0/0. Sin embargo presenta en
x = 0 una discontinuidad evitable ya que

sin x
lı́m f (x) = lı́m =0.
x→0 x→0 x

Entonces, en la fórmula Th (f ) se ha tomado lı́mx→0 f (x) en lugar de f (0).

(ii) Para utilizar el algoritmo de Romberg a partir del cálculo efectuado en


el apartado (i) hemos de calcular previamente


h f0 f10
Th/2 (f ) := + f1 + f2 + f3 + f4 + f5 + f6 + f7 + f8 + f9 +
2 2 2

f (0)
= 0,1 + f (0,1) + f (0,2) + f (0,3) + f (0,4) + f (0,5)+
2

f (1)
f (0,6) + f (0,7) + f (0,8) + f (0,9) +
2

1
= 0,1 + 0,998 + 0,993 + 0,985 + 0,973 + 0,958+
2

0,841
0,941 + 0,920 + 0,896 + 0,870 + = 0,945
2

Finalmente, utilizamos el algoritmo de integración Romberg para obtener la


mejora

! 1
sin x (2) 1 " (1) (1)
#
dx ≈ Th (f ) := 4Th/2 (f ) − Th (f )
0 x 3
1
= [4 × 0,945 − 0,944] = 0,945
3
92 Integración Numérica

6 √
Problema 6.2 (i) Aproximar el valor de la integral 1 2 + sin(2 x) dx uti-
lizando la regla de Simpson compuesta con 10 subintervalos.
b
(ii) Se sabe que el error absoluto Δ cometido al aproximar la integral a
f (x) dx
por la regla de Simpson compuesta Sh (f ) viene dado por
!  
 b   (b − a)f (iv) (ξ)h4 
 
Δ :=  f (x) dx − Sh (f ) =   ,

 a  180

donde ξ ∈ (a, b). Calcular el número de puntos n que se han de tomar del
intervalo [2, 7] para obtener mediante la regla de Simpson compuesta una
7
aproximación de la integral 2 1/x dx con un error menor que 5 × 10−9 .

Solución. (i) La regla de Simpson compuesta con n subintervalor (siendo n


un número par) viene dada por
! b
h
f (x) dx ≈ Sh (f ) := (f0 + 4f1 + 2f2 + 4f3 + 2f4 + · · · + 2fn−2 + 4fn−1 + fn ) ,
a 3

donde h = (b − a)/n. En este problema se tiene n = 10 por lo tanto h =


(6 − 1)/10 = 1/2. En definitiva obtenemos
! 6
1
f (x) dx ≈ S1/2 (f ) := f (1) + 4f (3/2) + 2f (2) + 4f (5/2) + 2f (3)
1 6

+4f (7/2) + 2f (4) + 4f (9/2) + 2f (5) + 4f (11/2) + f (6) .

Utilizando que la función f (x) = 2 + sin(2 x) evaluamos dicha función en los
nudos indicados en la fórmula anterior y obtenemos
! 6
1
f (x) dx ≈ 2,90929 + 4 × 2,63815 + 2 × 2,30807 + 4 × 1,97931 +
1 6
2 × 1,68305 + 4 × 1,43530 + 2 × 1,24319 + 4 × 1,10831 +

2 × 1,02872 + 4 × 1,00024 + 1,01735 = 8,18301 .

(ii) Sea la función f (x) = 1/x. La derivada cuarta de esta función viene
dada por f (iv) (x) = 24/x5 . Como f (iv) (x) es una función positiva y decreciente
en el intervalo [2, 7] podemos concluir que para cualquier ξ ∈ [2, 7] se puede
realizar la acotación    
 (iv)   (iv)  3
f (ξ) ≤ f (2) = .
4
De esta forma se consigue la siguiente acotación del error
     
 (b − a)f (iv) (ξ)h4   (7 − 2)f (iv) (ξ)h4   (7 − 2) 34 h4  h4
Δ =  = ≤ =
 180   180   180  48 .
6.2 Problemas resueltos 93

Recordando la relación existente entre la longitud de paso h y el número de


puntos n se tiene que h = (7 − 2)/n. De esta forma concluimos que

(5/n)4 625
Δ≤ = .
48 48n4

Finalmente, imponiendo que el error sea menor que 5 × 10−9 se tiene

625
Δ≤ < 5 × 10−9 ,
48n4
de donde se puede despejar n para obtener

4 125
n> × 109 = 225,9 .
48
Como n ∈ N y además ha de ser par tomaremos n = 226.

Problema 6.3 Se quiere construir un tejado ondulado de aluminio usando una


máquina que comprime la plancha plana inicial y la transforma en una plancha
cuya sección transversal tiene la forma de la función g(x) = sin x. Se sabe que
la longitud transversal del tejado ondulado ha de ser 20 metros.
(i) Demostrar que la longitud transversal L de la plancha plana inicial
viene
 dada por una integral elı́ptica de segunda especie E(k, φ) =
1 − k 2 sin2 x dx.
φ
0

(ii) Aproximar la longitud L utilizando la regla de Simpson compuesta con n =


4 subintervalos.

Solución. (i) La longitud L vendrá dada por


!
 20 ! 20  ! 20 
L =  2
1 + [g (x)] dx = 2
1 + cos x dx = 2 − sin2 x dx
0 0 0

√ ! 20 1 √ √
= 2 1 − sin2 x dx = 2E(1/ 2, 20) .
0 2
20 √
(ii) Sea L = 0 f (x) dx, donde f (x) = 1 + cos2 x. La regla de Simpson
compuesta con n = 4 nos permite aproximar la longitud L de la forma

h
L ≈ (f0 + 4f1 + 2f2 + 4f3 + f4 )
3
20/4
= (f (0) + 4f (5) + 2f (10) + 4f (15) + f (20))
3

5 √
= 2 + 4 × 1,03945 + 2 × 1,30539 + 4 × 1,25584 + 1,08006
3
= 23,8104
94 Integración Numérica

1 √
Problema 6.4 Considerar la integral I = 0
f (x) dx siendo f (x) = cos x/ x.
(i) ¿Qué problema existe si se pretende aproximar la integral I por alguna regla
de Newton-Cotes?
(ii) Utilizando que f (x) = f (x) − √1 + √1 , descomponer la integral I en dos
x x
1
integrales de la forma I = I1 + I2 , siendo I1 = 0 √1x dx. Calcular la
integral I mediante el cálculo exacto de I1 y la aproximación numérica de
I2 por la fórmula compuesta de Simpson con 5 abscisas.

Solución. (i) Notemos que la integral I es impropia de segunda especie puesto


que lı́mx→0+ f (x) = ∞, de manera que el integrando f (x) no está acotado en
el intervalo de integración [0, 1]. No es posible aplicar una regla de integración
de Newton-Cotes en este caso debido a que dichas reglas utilizan siempre los
extremos del intervalo de integración para evaluar la función integrando.

(ii) Realizando la descomposición indicada se tiene I = I1 + I2 , siendo


! 1 ! 1
1 cos x − 1
I1 = √ dx , I2 = √ dx .
0 x 0 x
La primera integral, aunque impropia, es fácilmente calculable siendo su valor
! 1 ! 1
1 1 & √ '1 √
I1 = √ dx = lı́m √ dx = lı́m 2 x  = lı́m (2 − 2 ) = 2 .
0 x →0 +
 x →0 + →0 +

Por lo que se refiere a la segunda integral I2 observemos que no es impropia


debido a que
cos x − 1 0 √
lı́m √ = = lı́m −2 x sin x = 0 ,
x→0+ x 0 x→0+
donde se ha aplicado la regla de l’Hopital para resolver la indeterminación. Para
obtener la aproximación numérica de I2 por la fórmula compuesta de Simpson
con 5 abscisas, realizamos a√continuación una tabulación equiespaciada de la
función g(x) = (cos x − 1)/ x en el intervalo [0, 1] con una longitud de paso
h = 1/4.

xi 0 1/4 1/2 3/4 1


g(xi ) 0 -0.0621752 -0.173124 -0.309819 -0.459698

Aplicando la regla de Simpson compuesta se tiene


! 1
h
I2 = g(x) dx ≈ [g0 + 4g1 + 2g2 + 4g3 + g4 ]
0 3
1
= [0 + 4 × (−0,0621752) + 2 × (−0,173124) + 4 × (−0,309819)
12
1
+(−0,459698)] = (−2,29392) = −0,19116 .
12
6.2 Problemas resueltos 95

Finalmente la aproximación obtenida de la integral I es

I ≈ 2 − 0,19116 = 1,80884 .

Problema 6.5 Considerar la integral


! 1
ex
I= √ dx .
−1 1 − x2

(i) Aproximar el valor de I utilizando el algoritmo de Gauss-Chebychev con 3


puntos.
(ii) Si en vez de tener la función ex en la integral I se tiene un polinomio de
grado m ¿ Cuál es el máximo valor de m para el cual el algoritmo usado
en el anterior apartado es exacto ?

Solución. (i) El algoritmo de Gauss-Chebyhev con n + 1 puntos viene dado


por
! 1
π 
n
f (x)
√ dx ≈ f (xk ) ,
−1 1 − x2 n+1
k=0

donde xk son las abscisas de Chebychev, es decir los ceros del polinomio de
Chebychev Tn+1 (x) = cos[(n + 1) arc cos x]. En concreto

2k + 1
xk = cos π , k = 0, 1, . . . , n .
2n + 2

Puesto que queremos aplicar el algoritmo con 3 puntos, se tiene n = 2, es decir


!   
1
f (x) π π  π 5π
√ dx ≈ f cos + f cos + f cos
−1 1 − x2 3 6 2 6
( $√ % $ √ %)
π 3 3
= f + f (0) + f − .
3 2 2

Finalmente, como en la integral I se tiene f (x) = ex , se concluye que


! 1
ex π " √3/2 √ #
I = √ dx ≈ e + e0 + e− 3/2
−1 1 − x2 3
π π
= [2,37744 + 1 + 0,42062] = 3,79806 = 3,97732 .
3 3

(ii) Cualquier método de integración Gaussiana con n + 1 puntos es exacto


cuando la función f (x) es sustituida por un polinomio arbitrario de grado menor
o igual que 2n + 1. Por lo tanto el valor máximo de m es m = 2n + 1. En nuestro
caso, como n = 2, el valor máximo de m es m = 5.
96 Integración Numérica

Problema 6.6 Una ecuación integral de segunda clase de Fredholm para la


función y(x) tiene la forma
! b
y(x) = f (x) + K(x, t)y(t) dt ,
a

donde se conocen la función f (x) y el llamado núcleo K(x, t), ası́ como las
constantes a y b. Se pretende aproximar la función y(x) dando su tabulación
y(xk ) con k = 0, 1, . . . , n, donde a = x0 < x1 < · · · < xn−1 < xn = b es una
partición equiespaciada del intervalo [a, b]. Para conseguirlo, se aproximarán las
integrales que aparecen mediante la regla de Simpson.
(i) Si a = 0, b = 2 y el núcleo K(x, t) = x2 − t, hallar el sistema lineal de
ecuaciones que deben verificar las incógnitas y(0), y(1) e y(2).
(ii) La tabulación y(0), y(1) e y(2) se pretende realizar varias veces, donde
en cada tabulación lo único que varı́a es la función f (x). Razonar cual
es el método más eficaz para resolver los distintos sistemas lineales que
aparecen.
(iii) Resolver por el método descrito en el apartado (ii) el sistema lineal del
apartado (i) sabiendo que estamos realizando la tabulación en el caso en
que f (x) = x.

Solución. (i) La tabulación que se pretende obtener es la siguiente


! b
y(xk ) = f (xk ) + K(xk , t)y(t) dt , k = 0, 1, . . . , n .
a

Puesto que a = 0, b = 2, la partición del intervalo [0, 2] dada por 0 = x0 <


x1 < · · · < xn−1 < xn = 2 es equiespaciada y se quiere obtener y(0), y(1) e
y(2), de aquı́ se deduce que n = 2, es decir

a+b
x0 = a < x1 = < x2 = b .
2
Utilizando la regla de Simpson para calcular las integrales que aparecen
cuando se realiza la tabulación se obtiene
! b
b−a
y(a) = f (a) + K(a, t)y(t) dt ≈ f (a) + [K(a, a)y(a)
a 6
+4K(a, (a + b)/2)y((a + b)/2) + K(a, b)y(b)] ,
! b
y((a + b)/2) = f ((a + b)/2) + K((a + b)/2, t)y(t) dt ≈ f ((a + b)/2)
a
b−a
+ [K((a + b)/2, a)y(a) + 4K((a + b)/2, (a + b)/2)
6
y((a + b)/2) + K((a + b)/2, b)y(b)] ,
6.2 Problemas resueltos 97

! b
b−a
y(b) = f (b) + K(b, t)y(t) dt ≈ f (b) +
[K(b, a)y(a)
a 6
+4K(b, (a + b)/2)y((a + b)/2) + K(b, b)y(b)] ,

que particularizado para los valores a = 0 y b = 2 reduce a


! 2
y(0) = f (0) + K(0, t)y(t) dt
0
1
≈ f (0) + [K(0, 0)y(0) + 4K(0, 1)y(1) + K(0, 2)y(2)] ,
3
! 2
y(1) = f (1) + K(1, t)y(t) dt
0
1
≈ f (1) + [K(1, 0)y(0) + 4K(1, 1)y(1) + K(1, 2)y(2)] ,
3
! 2
y(2) = f (2) + K(2, t)y(t) dt
0
1
≈ f (2) + [K(2, 0)y(0) + 4K(2, 1)y(1) + K(2, 2)y(2)] .
3
Escrito en forma matricial, el anterior sistema lineal de ecuaciones para las
incógnitas y(0), y(1) y y(2) es
⎛ 1 4 1
⎞ ⎛ ⎞ ⎛ ⎞
3 K(0, 0) − 1 3 K(0, 1) 3 K(0, 2) y(0) −f (0)
⎝ 1 K(1, 0) 4 1 ⎠ ⎝ y(1) ⎠ = ⎝ −f (1) ⎠ .
3 3 K(1, 1) − 1 3 K(1, 2)
1 4 1
3 K(2, 0) 3 K(2, 1) 3 K(2, 2) − 1
y(2) −f (2)

Finalmente, teniendo en cuenta que K(x, t) = x2 − t, el sistema lineal a


resolver es ⎛ ⎞ ⎛ ⎞ ⎛ ⎞
−1 − 43 − 23 y(0) −f (0)
⎝ 1 −1 − 1 ⎠ ⎝ y(1) ⎠ = ⎝ −f (1) ⎠ . (6.10)
3 3
4 1
3 4 − 3
y(2) −f (2)
(ii) Si se desean realizar distintas tabulaciones de la función y(x) donde en
cada tabulación sólo cambia la función f (x), se ha de resolver para cada tabu-
lación el sistema (6.10) donde lo único que varı́a son los términos independientes.
Entonces, el método más eficaz para resolver los distintos sistemas lineales que
aparecen es el método de la descomposición LU de la matriz A de coeficientes
del sistema (6.10) definida por
⎛ ⎞
−1 − 43 − 23
A = ⎝ 31 −1 − 13 ⎠ .
4
3 4 − 13

(iii) Si f (x) = x, el sistema (6.10) es


⎛ ⎞ ⎛ ⎞ ⎛ ⎞
−1 − 43 − 23 y(0) 0
⎝ 1 −1 − 1 ⎠ ⎝ y(1) ⎠ = ⎝ −1 ⎠ .
3 3
4
3 4 − 13 y(2) −2
98 Integración Numérica

Para resolver el anterior sistema lineal en primer lugar hallaremos la descompo-


sición LU de la matriz A de coeficientes del sistema. El método que se utilizará es
el de eliminación gaussiana mediante transformaciones elementales por filas sin
pivotación. En concreto se obtendrá una sucesión de matrices equivalentes A ∼
A(1) ∼ A(2) , de manera que U = A(2) es una matriz triangular superior. Los
multiplicadores utilizados en las transformaciones elementales formarán parte
de la matriz L triangular inferior con unos en la diagonal principal. Mostramos
a continuación el cálculo detallado.

⎛ ⎞ ⎛ ⎞
− 43 − 23
−1 −1 − 43 − 23
1 ⎠ ⎝
A = ⎝ 1
3 −1 − 3 ∼ 0 − 13
9 − 59 ⎠
4 1 20
3 4 −3 0 9 − 11
9
⎛ 4 2

−1 − 3 −3
∼ ⎝ 0 − 13 9 − 59 ⎠ = U ,
0 0 − 27
13

donde las transformaciones elementales por filas efectuadas han sido

(1) fi → fi − mi1 f1 , i = 2, 3 , m21 = −1/3 , m31 = −4/3 ,


(2) f3 → f3 − m32 f2 , m32 = −20/13 .

De esta forma, se tiene que

⎛ ⎞ ⎛ ⎞ ⎛ ⎞
−1 − 43 − 23 1 0 0 −1 − 43 − 23
A=⎝ 1
3 −1 − 13 ⎠ = LU = ⎝ − 13 1 0 ⎠ ⎝ 0 − 13
9 − 59 ⎠
4
3 4 0 − 43 − 20
13 1 0 0 − 27
13

Resolveremos el sistema lineal mediante la resolución de los dos sistemas


triangulares siguientes

⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞
α 0 y(0) α
L ⎝ β ⎠ = ⎝ −1 ⎠ , U ⎝ y(1) ⎠ = ⎝ β ⎠ .
γ −2 y(2) γ

La solución del primer sistema mediante el algoritmo de sustitución hacia ade-


lante es (α, β, γ) = (0, −1, −46/13). Finalmente, la solución del segundo sistema
mediante el algoritmo de sustitución hacia atrás es

(y(0), y(1), y(2)) = (−32/27, 1/27, 46/27) .


6.2 Problemas resueltos 99

Problema 6.7 La función gamma se define mediante la integral impropia


! ∞
Γ(t) = xt−1 e−x dx ,
0

convergente para todo t > 0.

(i) Una propiedad notable de dicha función es que Γ(n) = (n−1)! para todo n ∈
N. Utilizar este hecho para aproximar Γ(5/2) mediante una interpolación
polinomial cúbica por el método de las diferencias divididas de Newton.
(ii) Aproximar el valor de Γ(5/2) utilizando el método de integración Gauss-
Laguerre con 2 puntos.
Indicación 1: Los polinomios de Laguerre son ortogonales en el intervalo
[0, ∞) respecto de la función peso w(x) = e−x . Las raı́ces del polinomio
de Laguerre de segundo grado L2 (x) son x0 = 0,58578, x1 = 3,41421.
∞ ∞
Indicación 2: 0 e−x dx = 0 xe−x dx = 1.

Solución. (i) La propiedad Γ(n) = (n−1)! para todo n ∈ N nos permite realizar
una tabulación de la función Γ(x) en los números naturales. Como queremos
aproximar Γ(5/2) mediante una interpolación polinomial cúbica, realizamos la
siguiente tabulación

xi 1 2 3 4
Γ(xi ) 1 1 2 6

Utilizando el método de las diferencias divididas de Newton, el polinomio


interpolador P3 (x) se escribe como
P3 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 )
+f [x0 , x1 , x2 , x3 ](x − x0 )(x − x1 )(x − x2 ) .
Realizando el esquema triangular de las diferencias divididas se obtiene
1 1
0
2 1 1/2
1 1/3
3 2 3/2
4
4 6
de donde se sigue que
1 1 1
P3 (x) = 1 + (x − 1)(x − 2) + (x − 1)(x − 2)(x − 3) = x(13 − 9x + 2x2 ) .
2 3 6
La aproximación a efectuar es
5
Γ(5/2) ≈ P3 (5/2) = = 1,25 .
4
100 Integración Numérica

(ii) Los métodos gaussianos de integración con n + 1 puntos aproximan de


la forma

! b 
n
w(x)f (x) dx ≈ αk f (xk ) ,
a k=0

donde xk con k = 0, 1, . . . , n son las raı́ces del polinomio ortogonal en el in-


tervalo [a, b] respecto de la función peso w(x) y αk con k = 0, 1, . . . , n, son los
coeficientes a determinar imponiendo un grado de precisión al menos n aunque
se sabe que al final la fórmula tendrá un grado de precisión 2n + 2.

En nuestro problema se tiene

! ∞
e−x f (x) dx ≈ α0 f (0,58578) + α1 f (3,41421) . (6.11)
0

Los coeficientes α0 y α1 se han de calcular imponiendo que la fórmula (6.11)


tenga un grado de precisión al menos 1 (aunque ya sabemos que al final tendrá un
grado de precisión 4). Esto es equivalente a imponer que (6.11) sea exacta para
f (x) = 1 y f (x) = x, es decir

! ∞
1 = e−x dx = α0 + α1 ,
!0 ∞
1 = xe−x dx = 0,58578α0 + 3,41421α1 .
0

La solución de este sistema lineal es α0 = 0,853551 y α1 = 0,146449. En defini-


tiva, la fórmula de Gauss-Laguerre con 2 puntos es

! ∞
e−x f (x) dx ≈ 0,853551f (0,58578) + 0,146449f (3,41421) .
0

Si queremos aproximar Γ(5/2) mediante la fórmula anterior se ha de tomar


f (x) = x5/2−1 = x3/2 . De esta forma se tiene

! ∞
Γ(5/2) = x3/2 e−x dx ≈ 0,853551 × 0,585783/2 +
0
0,146449 × 3,414213/2 = 1,30657 .
6.2 Problemas resueltos 101

Problema 6.8 La función de Bessel de primera especie y de orden n, con n ∈


N, está definida como
!
1 π
Jn (x) = cos[x sin(t) − nt] dt .
π 0

Se conoce la siguiente tabulación de J2 (x)

xk 5 7 9
J2 (xk ) 0.0465 -0.3014 0.1448

(i) Aproximar el valor de J2 (6) por interpolación polinomial con todos los datos
de la tabla adjunta y utilizando el formalismo de las diferencias divididas
de Newton y acotar el error cometido.
(ii) Si se pudiera tabular la función J2 (x) en tres nodos cualesquiera del in-
tervalo [5, 9], explicar detalladamente en qué nodos se tabuları́a sabiendo
que posteriormente dicha tabulación se va a usar para realizar una inter-
polación polinomial.
(iii) Aproximar el valor de J2 (6) mediante una extrapolación de Richardson
según el método de Romberg.
(iv) Aproximar el valor de J2 (7) mediante una derivación interpolatoria a par-
tir de la tabulación dada y acotar el arror absoluto asociado. Sin realizar
ningún cálculo ¿se conoce alguna fórmula de aproximación de la deriva-
da J2 (x) por un truncamiento de series de Taylor de la función J2 (x)
alrededor de x que proporcione la misma aproximación de J2 (7) que hemos
obtenido en el cálculo anterior?
(v) Aproximar, a partir de la expresión integral de J2 (x), el valor de J2 (7)
mediante el método de Simpson.

Solución. (i) Utilizando la tabla del enunciado, construimos las diferencias


divididas de Newton mediante el esquema triangular siguiente

5 0.0465
-0.1739
7 -0.3014 0.0992
0.2231
9 0.1448

El polinomio P2 (x) que interpola a la función de Bessel J2 (x) en los nodos


{x0 = 5, x1 = 7, x2 = 9} viene dado por

P2 (x) = J2 [x0 ] + J2 [x0 , x1 ](x − x0 ) + J2 [x0 , x1 , x2 ](x − x0 )(x − x1 )


= 0,0465 − 0,1739(x − 5) + 0,0992(x − 5)(x − 7)
= 4,388 − 1,3643x + 0,0992x2 .
102 Integración Numérica

Por consiguiente, la aproximación interpolatoria es J2 (6) ≈ P2 (6) = −0,2266.

El error absoluto Δ cometido en la aproximación J2 (x) ≈ P2 (x) con x ∈ [5, 9]


se puede expresar como
  
 J2 (ξx ) 
Δ=  (x − 5)(x − 7)(x − 9) ,
3!

donde ξx ∈ (5, 9). En el apartado (i) se ha realizado la aproximación J2 (6) ≈


P2 (6), por lo tanto el error absoluto asociado es
  
 J2 (ξ)  |J  (ξ)|
Δ=  (6 − 5)(6 − 7)(6 − 9) = 2 , (6.12)
3! 2

con ξ ∈ (5, 9). A continuación obtendremos una cota de |J2 (ξ)|. En primer
lugar, a partir de la expresión integral de J2 (x), calculamos J2 (x). Derivando
sucesivamente respecto de x se tiene
!
 −1 π
J2 (x) = sin t sin[x sin t − 2t] dt ,
π 0
! π
−1
J2 (x) = sin2 t cos[x sin t − 2t] dt ,
π 0
!
1 π 3
J2 (x) = sin t sin[x sin t − 2t] dt .
π 0
 
 b  b
Utilizando que  a f (t) dt ≤ a |f (t)| dt para cualquier función f integrable
Riemann en el intervalo [a, b] y que | sin θ| ≤ 1 para todo θ ∈ [0, 2π) se obtiene
la siguiente cadena de acotaciones
!
1 π
|J2 (x)| ≤ | sin3 t| | sin[x sin t − 2t]| dt
π 0
!
1 π
≤ | sin3 t| dt .
π 0
Puesto que sin t ≥ 0 para 0 ≤ t ≤ π, se puede quitar el valor absoluto de la
última integral, de manera que
!
1 π 3
|J2 (x)| ≤ sin t dt .
π 0
Esta integral se calcula de manera exacta utilizando la identidad

sin3 t = sin2 t sin t = (1 − cos2 t) sin t

y realizando el cambio de variable z = cos t. En definitiva


! !
1 π 3 1 1 4
|J2 (x)| ≤ sin t dt = (1 − z 2 ) dz = = 4,18879 .
π 0 π −1 3π
6.2 Problemas resueltos 103

Se tiene pues que, a partir de la ecuación (6.12), el error absoluto Δ está acotado
de la forma
|J  (ξ)| 2
Δ= 2 ≤ = 0,212207 .
2 3π
(ii) Se sabe que, si la interpolación se efectúa en el intervalo −1 ≤ x ≤ 1,
entonces las abscisas de Chebychev definidas de la forma

2k + 1
xk = cos ∈ (−1, 1) , k = 0, 1, . . . , n ,
2n + 2

son las que minimizan el error absoluto Δ cometido en la interpolación si se


utiliza la norma del máximo o del infinito. Puesto que hemos de tomar tres
nodos se tiene n = 2, de manera que
 π √3
x0 = cos = = 0,866025 ,
π6 2
x1 = cos =0,
2 √

5π − 3
x2 = cos = = −0,866025 .
6 2

Puesto que en realidad la interpolación es realizada en el intervalo [5, 9], reali-


zamos el cambio de variables y = 7 + 2x que transforma el intervalo −1 ≤ x ≤ 1
en el intervalo −5 ≤ y ≤ 9. Se tiene pues que los nodos donde se tabuları́a la
función de Bessel J2 (x) son

y0 = 7 + 2x0 = 7 + 3 = 8,73205 ,
y1 = 7 + 2x1 = 7 + 2 × 0 = 7 ,

y2 = 7 + 2x2 = 7 − 3 = 5,26795 .

(iii) A partir de su expresión integral se tiene que


!
1 π
J2 (6) = f (t) dt , f (t) = cos[6 sin t − 2t] .
π 0
π
Vamos a aproximar la integral 0 f (t) dt mediante una extrapolación de Richard-
son según el método de Romberg, es decir, partiendo de las aproximaciones
(1) h
proporcionadas
" por la
fórmula de
# los Trapecios Th (f ) = 2 [f (0) + f (π)] y
(1)
Th/2 (f ) = h f (0) π
2 +f 2 + 2
f (π)
, siendo h = π. Se tiene pues que

π π
Tπ(1) (f ) =[f (0) + f (π)] = [1 + 1] = π = 3,14159 ,
2 2
π f (0)  π f (π)  π 
1 1

(1)
Tπ/2 (f ) = +f + = − 0,96017 +
2 2 2 2 2 2 2
= 0,06256 .
104 Integración Numérica

Finalmente, mediante la extrapolación de Richardson con los dos valores ante-


riores se obtiene
1 " (1) # 1
Tπ(2) (f ) = 4Tπ/2 (f ) − Tπ(1) (f ) = [4 × 0,06256 − 3,14159]
3 3
= −0,963783 .

Concluimos que la aproximación obtenida es


!
1 π 1 1
J2 (6) = f (t) dt ≈ Tπ(2) (f ) = × (−0,963783) = −0,30678 .
π 0 π π

(iv) Una aproximación de J2 (7) mediante derivación interpolatoria con todos
los datos de la tabla adjunta consiste en realizar la aproximación J2 (7) ≈ P2 (7)
siendo P2 (x) el polinomio de interpolación calculado en el apartado (i). Puesto
que P2 (x) = 0,0465 − 0,1739(x − 5) + 0,0992(x − 5)(x − 7), se tiene

J2 (7) ≈ P2 (7) = −0,1739 + 0,0992(7 − 5) = 0,0245 .

Si definimos Δ = |J2 (7) − P2 (7)| como el error absoluto cometido en la anterior
aproximación de la derivada, se sabe que
  
 J2 (ξ)  2

Δ =  (7 − 5)(7 − 9) = |J2 (ξ)| , ξ ∈ (5, 9) .
3! 3

En el apartado (i) hemos obtenido una cota de |J2 (x)| para cualquier valor de
4
x ∈ R. En concreto se tiene |J2 (x)| ≤ 3π . Por lo tanto tenemos la siguiente cota

del error Δ cometido en la derivación interpolatoria efectuada anteriormente
2 4 8
Δ ≤ = = 0,282942 .
3 3π 9π
Por último, recordemos que las fórmulas de derivación interpolatoria con
nodos equiespaciados xk = x0 +kh, siendo h la longitud de paso, son totalmente
equivalentes a las fórmulas que aproximan la derivada obtenidas a partir de un
truncamiento de series de Taylor. Puesto que los nodos {x0 = 5, x1 = 7, x2 =
9} donde se ha realizado la interpolación del apartado (i) son equiespaciados
con paso h = 2 y además, en este apartado se ha aproximado la derivada de
la función J2 (x) en el nodo central x1 se tiene que la fórmula de derivación
aproximada equivalente obtenida por un método de Taylor debe ser la fórmula
de diferencias centradas
J2 (x + h) − J2 (x − h)
J2 (x) ≈ .
2h
La comprobación de este resultado es la siguiente. Aplicando la fórmula de
diferencias centradas se obtiene
J2 (9) − J2 (5)
J2 (7) ≈ = 0,0245 ,
4
6.2 Problemas resueltos 105

que coincide con la aproximación J2 (7) ≈ P2 (7) realizada anteriormente.

(v) En este apartado se pretende aproximar el valor de J2 (7) por el método
de Simpson. En consecuencia se debe de expresar J2 (7) mediante una integral
de Riemann. Esta expresión integral la hemos obtenido en el apartado (i). En
concreto !
−1 π
J2 (7) = g(t) dt , g(t) = sin t sin[7 sin t − 2t] .
π 0
Realizando la aproximación de la anterior integral por el método de Simpson se
obtiene
−1 −1 π/2 " π #
J2 (7) ≈ Sπ/2 (g) := g(0) + 4g + g(π)
π π 3 2
−1
= [0 − 4 × 0,656987 + 0] = 0,437991 .
6
Existe una forma alternativa de resolver el problema como se explica a con-
tinuación. En primer lugar se aproxima, por el método de Simpson, el valor de
J2 (x). Puesto que
!
1 π
J2 (x) = f (t) dt , f (t) = cos[x sin t − 2t] ,
π 0
se tiene
1 1 π/2 " π #
J2 (x) ≈ Sπ/2 (f ) := f (0) + 4f + f (π)
π π 3 2
1 1
= [1 + 4 cos(x − π) + 1] = [1 + 2 cos(x − π)] .
6 3
Finalmente, derivamos la expresión anterior

 d 1 −2
J2 (x) ≈ [1 + 2 cos(x − π)] = sin(x − π) ,
dx 3 3
y la evaluamos en x = 7 para obtener
−2
J2 (7) ≈ sin(7 − π) = 0,437991 .
3
Problema 6.9 Aproximar el valor de ln 2 a partir de la expresión integral
! 2
1
ln 2 = dx ,
1 x

utilizando el algoritmo de integración Romberg con una única extrapolación.

Solución. Definimos la función f de manera que


! 2 ! 2
1
ln 2 = f (x) dx = dx .
1 1 x
106 Integración Numérica

El primer paso del método de Romberg consiste en aproximar ln 2 utilizando


(1)
la regla trapezoidal simple que denotaremos por Th (f ), siendo el paso h =
2 − 1 = 1. De esta forma
 
(1) 1 1 1 3
ln 2 ≈ T1 (f ) = [f (1) + f (2)] = 1+ = .
2 2 2 4
A continuación disminuimos a la mitad el paso y aplicamos la regla trapezoidal
compuesta para obtener
 
(1) 1 f (1) f (2)
ln 2 ≈ T1/2 (f ) = + f (3/2) +
2 2 2
 
1 1 2 1/2 17
= + + = .
2 2 3 2 24
A partir de los dos cálculos efectuados se realiza una extrapolación de Richard-
son para obtener
1 " (1) # 1 17 3

(2) (1)
ln 2 ≈ T1 (f ) = 4T1/2 (f ) − T1 (f ) = 4× −
3 3 24 4
25
= .
36
Problema 6.10 Se ha medido la capacidad calorı́fica molal a presión constante
cp del nitrógeno en función de la temperatura T obteniéndose la siguiente tabla.

T (K) 300 1500 2100


cp (cal/mol K) 6.81495 8.25375 8.60055

(i) Hallar una aproximación de la función cp (T ) mediante una expresión poli-


nomial de segundo grado, realizando interpolación con los datos de la tabla
adjunta.

(ii) Utilizar el resultado del apartado anterior para aproximar el calor total Q
absorbido por 23 moles de nitrógeno en un proceso isobárico cuasi-estático
sabiendo que su temperatura inicial es 350 K y la final 800 K.
Indicación: El calor Q absorbido por n moles en un proceso isobárico
cuasi-estático con temperatura inicial Ti y final Tf viene dado por la ex-
T
presión Q = n Tif cp dT .

(iii) Sabiendo que |c


p (T )| ≤ 10
−13
para toda T ∈ [350, 800], hallar una cota
del error absoluto cometido en el apartado anterior.

Solución. (i) Sea P2 (T ) el polinomio que interpola a cp mediante la tabulación


adjunta. Utilizando el formalismo de las diferencias divididas de Newton, se tiene
que

P2 (T ) = cp [T0 ] + cp [T0 , T1 ](T − T0 ) + cp [T0 , T1 , T2 ](T − T0 )(T − T1 ) .


6.2 Problemas resueltos 107

Realizando el esquema de diferencias divididas asociado a la tabulación del


enunciado obtenemos
300 6.81495
0.001199
1500 8.25375 -3.45 ×10−7
0.000578
2100 8.60055
de manera que
P2 (T ) = 6,81495 + 0,001199(T − 300) − 3,45 × 10−7 (T − 300)(T − 1500)
= 6,3 + 0,00182T − 3,45 × 10−7 T 2 .
(ii) El calor total Q absorbido por n moles de nitrógeno en el proceso isobári-
T
co con temperatura inicial Ti y final Tf es Q = n Tif cp (T ) dT . Puesto que
desconocemos la función cp (T ), utilizaremos el resultado del apartado anteri-
or para aproximar cp (T ) ≈ P2 (T ) de lo que deduciremos una aproximación
Q ≈ Q∗ . Más concretamente, se tiene
! Tf
Q ≈ Q∗ := n P2 (T ) dT
Ti
! 800
= 23 (6,3 + 0,00182T − 3,45 × 10−7 T 2 ) dT = 74795,4 cal
350
(iii) Al realizar la aproximación Q ≈ Q∗ , el error absoluto Δ cometido es
!  ! Tf
 Tf 
∗  
Δ = |Q − Q | = n  (cp (T ) − P2 (T )) dT  ≤ n |cp (T ) − P2 (T )| dT ,
 Ti  Ti

donde en el último paso se han tenido en cuenta las propiedades del valor abso-
luto y de la integral de Riemann. Puesto que P2 (T ) es el polinomio que interpola
a cp en los nodos T0 , T1 y T2 , se tiene que existe un valor ξT ∈ (Ti , Tf ) tal que
cp (T ) − P2 (T ) = c
p (T )π(T )/3!, siendo π(T ) = (T − T0 )(T − T1 )(T − T2 ). En
definitiva obtenemos que
!
n Tf 
Δ≤ |cp (T )||(T − T0 )(T − T1 )(T − T2 )| dT ,
3! Ti
de manera que, teniendo en cuenta que |c
p (T )| ≤ 10
−13
para toda T ∈ [350, 800]
y substituyendo los datos del enunciado obtenemos
!
23 800
Δ ≤ 10−13 |(T − 300)(T − 1500)(T − 2100)| dT
3! 350
! 800
−13 23
= 10 (T − 300)(T − 1500)(T − 2100) dT
6 350
! 800
23
= 10−13 (−945000000 + 4230000T − 3900T 2 + T 3 ) dT
6 350
23
= 10−13 158048437500 = 0,0605852 .
6
108 Integración Numérica

donde se ha tenido en cuenta que el polinomio (T − 300)(T − 1500)(T − 2100)


es positivo en el intervalo de integración.
Problema 6.11 La distribución normal es una distribución de probabilidad
para una variable aleatoria continua Z frecuentemente utilizada en las aplica-
ciones estadı́sticas. La densidad de probabilidad f (x) asociada a dicha distribu-
ción es la llamada campana de Gauss y viene dada por

1 (x − μ)2
f (x) = √ exp − ,
σ 2π 2σ 2

siendo μ y σ la media y desviación tı́pica respectivamente. De este modo, la


probabilidad P (a ≤ Z ≤ b) de que en un experimento aleatorio Z tome un valor
b
entre a y b viene dada por P (a ≤ Z ≤ b) = a f (x) dx. Sabiendo que μ = 0 y
σ = 1, aproximar la probabilidad de que Z tome un valor entre 10 y 20 mediante
la fórmula de Simpson compuesta con 4 subintervalos.
Solución. La probabilidad de que Z tome un valor entre 10 y 20 es
! 20
P (10 ≤ Z ≤ 20) = f (x) dx ,
10

siendo 2
1 x
f (x) = √ exp − .
2π 2
Observemos que la función f (x) no admite primitiva expresable mediante fun-
ciones elementale, de modo que, su aproximación numérica está perfectamente
justificada. Utilizando ahora la fórmula de Simpson compuesta Sh (f ) con n = 4
subintervalos se tiene que la longitud de paso vale h = (b − a)/n = 5/2, de modo
que
5/2
P (10 ≤ Z ≤ 20) ≈ S5/2 (f ) = (f0 + 4f1 + 2f2 + 4f3 + f4 )
3
5
= [f (10) + 4f1 (25/2) + 2f (15) + 4f (35/2) + f (20)]
6
5 1 " −102 /2 2 2
= √ e + 4e−(25/2) /2 + 2e−15 /2
6 2π
2 2
#
+4e−(35/2) /2 + e−20 /2
= 0,332452[1,92875 × 10−22 ] = 6,41217 × 10−23 .
Problema 6.12 Utilizar el método de los coeficientes indeterminados para ha-
llar una fórmula de integración numérica del tipo
! 3
f (x) dx ≈ af (0) + bf (2) + cf (4) ,
1

con a, b, c ∈ R, que sea exacta para polinomios del máximo grado posible. Dar
dicho grado máximo.
6.2 Problemas resueltos 109

Solución. Se han de hallar a, b, c ∈ R de modo que


! 3
f (x) dx = af (0) + bf (2) + cf (4) ,
1

para todo f ∈ Rn [x] polinomio de grado n, siendo n lo más grande posible.


Utilizaremos la base canónica de Rn [x]. Dicho de otro modo, como
! 3
3m+1 − 1
xm dx = , m ∈ N ∪ {0} ,
1 m+1
imponiendo la exactitud de la fórmula numérica para f (x) = xm con m = 0, 1, 2,
se obtiene el sistema lineal
2 = a+b+c ,
4 = 2b + 4c ,
26
= 4b + 16c ,
3
siendo su única solución
1 11
a=c= , b= .
12 6
De momento hemos demostrado que la fórmula de aproximación numérica
! 3
1 11
f (x) dx ≈ [f (0) + f (4)] + f (2) ,
1 12 6
es exacta para todo f ∈ R2 [x]. Sin embargo, si tomamos en dicha fórmula
f (x) = x3 y f (x) = x4 obtenemos
! 3
1 & 3 ' 11
x3 dx = 20 = 0 + 4 3 + 23 ,
1 12 6
! 3
242 1 & 4 ' 11 152
x4 dx = = 0 + 44 + 24 = ,
1 5 12 6 3
respectivamente. Se concluye que la fórmula numérica
! 3
1 11
f (x) dx ≈ [f (0) + f (4)] + f (2) ,
1 12 6
es exacta para todo f ∈ R3 [x], siendo 3 el máximo grado polinomial para el cual
se verifica dicha exactitud.
Problema 6.13 Considerar la integral impropia de primera especie
! ∞
e−x
I= dx .
0 1 + xe−x

(i) Realizar el cambio de variable z = e−x en la integral I. ¿Se ha convertido I


en una integral propia?
(ii) Aproximar el valor de I utilizando la regla de Simpson compuesta dividiendo
el intervalo de integración en 4 subintervalos.
110 Integración Numérica

Solución. (i) Realizamos el cambio de variable z = e−x . Diferenciando el cam-


bio se tiene dz = −e−x dx. Además, si x = 0 se tiene z = 1 y si x tiende a ∞
entonces z tiende a cero. De este modo la integral I se escribe como
! 1
1
I= f (z) dz , siendo f (z) = . (6.13)
0 1 − z ln z
Notar que se han permutado los lı́mites de integración y se ha cambiado el signo
de la integral. Observar que la función f (z) no está bien definida en z = 0 debido
al término z ln z que produce una indeterminación del tipo 0.∞. Sin embargo,
aplicando la regla de L’Hôpital se tiene
ln z 1/z
lı́m z ln z = lı́m = lı́m = − lı́m z = 0 ,
z→0+ z→0+ 1/z z→0 −1/z 2
+ z→0+

de modo que
lı́m f (z) = 1 . (6.14)
z→0+

Finalmente, observamos que la función f (z) está acotada en el intervalo de in-


tegración [0, 1] puesto que su denominador 1 − z ln z = 0 para todo z ∈ [0, 1]. De
este modo, la integral I se ha transformado en la integral propia dada por (6.13).

(ii) Utilizamos la regla de Simpson compuesta con n = 4 subintervalos, es


decir, ! 1
h
I= f (z) dz ≈ Sh (f ) = (f0 + 4f1 + 2f2 + 4f3 + f4 ) ,
0 3
siendo h = 1/4 y fi = f (zi ) con zi = ih para i = 1, 2, 3, 4. Se tiene pues
1/4
I ≈ [f (0) + 4f (1/4) + 2f (1/2) + 4f (3/4) + f (1)]
3
1
= [1 + 4 × 0,742626 + 2 × 0,742626 + 4 × 0,82253 + 1] = 0,812156 ,
12
donde se ha tenido en cuenta (6.14) para calcular la indeterminación f (0).

Problema 6.14 Utilizar la técnica de la extrapolación de Richardson aplicada


a la fórmula de Simpson compuesta para obtener una fórmula que aproxime
integrales con un error menor que la fórmula de Simpson compuesta.

Solución. La fórmula de Simpson compuesta viene dada por


! b
f (x) dx = Sh (f ) + a1 h4 + O(h5 ) , (6.15)
a

siendo h la longitud de paso, a1 una constante independiente de h. Tomando la


mitad de la longitud de paso se tiene
! b 4
h
f (x) dx = Sh/2 (f ) + a1 + O(h5 ) .
a 2
6.2 Problemas resueltos 111

Restando las dos expresiones de la misma integral se obtiene



1
0 = Sh (f ) − Sh/2 (f ) + a1 h4 1 − 4 + O(h5 ) ,
2

de donde
16 & '
a1 h4 = Sh/2 (f ) − Sh (f ) + O(h5 ) .
15
Sustituyendo este término en (6.15) se obtiene la siguiente fórmula mejorada
! b
f (x) dx = F̃ (h) + O(h5 ) ,
a

siendo
16 & ' 1 & '
F̃ (h) = Sh (f ) + Sh/2 (f ) − Sh (f ) = 16Sh/2 (f ) − Sh (f ) .
15 15

Problema 6.15 Considerar un anillo circular de radio R con una distribución


de carga eléctrica uniforme de carga total Q. Tomando el origen de coordenadas
en el centro del anillo y el eje z perpendicular al plano del anillo se puede
demostrar, utilizando coordenadas esféricas (r, ϕ, θ), que el potencial eléctrico
V (r, θ) que crea el anillo en el punto de coordenadas (r, ϕ, θ) viene dado por

2κλ
V (r, θ) = √ K(κ) ,
Rr sin θ
siendo λ = Q/(2πR) la densidad lineal de carga en el anillo,

4Rr sin θ
κ2 = ,
R2 + r2 + 2Rr sin θ
y K(κ) la integral elı́ptica de primera especie
! π/2

K(κ) =  .
0 1 − κ2 sin2 φ

(i) Utilizando el método de los trapecios compuesto con una división de 3 subin-
tervalos, aproximar el potencial eléctrico en cualquier punto de la circun-
ferencia (r, ϕ, θ) = (1, ϕ, π/2) con 0 ≤ ϕ < 2π concéntrica al anillo.
Datos: Q = 10C, R = 5m.
(ii) ¿Es necesario utilizar métodos numéricos para calcular el potencial eléctrico
en cualquier punto del eje z?

Solución. (i) Con los datos del problema Q = 10C, R = 5m se tiene λ =


Q/(2πR) = 1/π y
20r sin θ
κ2 = .
25 + r2 + 10r sin θ
112 Integración Numérica

Sobre los puntos de la circunferencia (r, ϕ, θ) = (1, ϕ, π/2) se obtiene κ2 = 5/9


con lo cual el potencial eléctrico en cualquier punto de dicha circunferencia viene
dado por 

2 59 π1 5 2 
V (1, π/2) = √ K( )= K( 5/9) ,
5 9 3π
siendo !
 π/2
K( 5/9) = f (φ) dφ ,
0
con
1
f (φ) =  .
1− 5
9 sin2 φ

Utilizamos a continuación el método de los trapecios


 compuesto con una división
de n = 3 subintervalos para aproximar K( 5/9). Dicho método consiste en
realizar la aproximación
! b
f0 fn
f (φ) dφ ≈ Th (f ) := h + f1 + · · · + fn−1 + ,
a 2 2

con h = (b − a)/n y fi = f (φi ), siendo φi = a + ih. En nuestro caso se tiene


h = π/6 y φi = iπ/6 para i = 0, 1, 2, 3, de modo que
!
 π/2
f0 π f3
K( 5/9) = f (φ) dφ ≈ Tπ/6 (f ) := + f1 + f2 +
0 2 6 2

π f (0) f (π/2)
= + f (π/6) + f (π/3) +
6 2 2

π 1 1,5
= + 1,07763 + 1,30931 + = 1,9043 .
6 2 2

Finalmente
2 
V (1, π/2) = K( 5/9) ≈ 0,4041 .

(ii) Nótese que los puntos del eje z verifican θ = 0. De este modo, en dichos
puntos se tiene κ = 0 con lo cual el potencial eléctrico en cualquier punto del
eje z será

V (r, 0) = √ K(0) ,
r + R2
2

donde la integral elı́ptica de primera especie que se debe calcular reduce a la


integral inmediata
! π/2
π
K(0) = dφ = .
0 2
En consecuencia, no es necesario utilizar métodos numéricos para calcular el
potencial eléctrico en cualquier punto del eje z.
6.2 Problemas resueltos 113

Problema 6.16 Según la teorı́a de Debye, la capacidad calorı́fica a volumen


constante Cv de los sólidos se calcula de la forma
!
9N k xD x4 ex
Cv = 3 dx ,
xD 0 (ex − 1)2

siendo N el número de átomos del cristal y k = 1,381 × 10−23 J/◦ K la constante


de Boltzmann. La variable auxiliar xD está definida como xD = ΘD /T , siendo
ΘD la temperatura de Debye caracterı́stica del material y T la temperatura.
(i) Suponiendo que el material es cobre (ΘD = 310◦ K) y se tiene un mol (con
lo que N = 6,023×1023 átomos) y que está a una temperatura T = 300◦ K,
utilizar la regla de Simpson compuesta con una división de 4 subinterva-
los para obtener una aproximación de la capacidad calorı́fica Cv . Nota:
Realizar los cálculos con 4 decimales de precisión.
(ii) Acotar el error absoluto cometido en el apartado (i), sabiendo que la gráfica
de derivada cuarta de la función integrando en la expresión de Cv es:

x
0.5 1 1.5 2
-1

-2

-3

-4

-5

Solución. (i) Tomando los datos ΘD = 310 y T = 300 se tiene xD = ΘD /T =


1,0333. De este modo
! 1,0333
x4 ex
Cv = 67,8472 f (x) dx , f (x) = .
0 (ex − 1)2

Aproximando la anterior integral mediante la regla de Simpson compuesta con


una división de n = 4 subintervalos se tiene una longitud de paso h = 1,0333/4 =
0,2583. Entonces

h
Cv ≈ 67,8472Sh (f ) = 67,8472 × (f0 + 4f1 + 2f2 + 4f3 + f4 )
3
0,2583
= 67,8472 × (f (0) + 4f (0,2583) + 2f (0,5166) + 4f (0,7749)
3
+f (1,0333))

Antes de continuar notamos que la función f (x) no está bien definida en


x = 0. En particular, se obtiene la indeterminación f (0) = 0/0. Sin embargo, la
función f (x) presenta en x = 0 una discontinuidad evitable ya que lı́mx→0 f (x)
114 Integración Numérica

existe. En concreto1 teniendo en cuenta que ex −1 es un infinitésimo equivalente


a x cuando x → 0 se llega a que
x4 e x
lı́m f (x) = lı́m = lı́m x2 ex = 0 .
x→0 x→0 (ex − 1)2 x→0

Entonces,
0,2583
Cv ≈ 67,8472 × (0 + 4 × 0,0663 + 2 × 0,2610 + 4 × 0,5713
3
+0,9775) = 67,8472 × 0,348709 = 23,659 .
(ii) Se sabe que, si f ∈ C 4 [a, b], el error absoluto Δ cometido en la aproxi-
mación ! b
f (x) dx ≈ Sh (f ) ,
a
siendo Sh (f ) la fórmula de Simpson compuesta con una longitud de paso h
aplicada a la función f viene dado por
 4 
h 
Δ =  (b − a)f (iv) (ξ) , ξ ∈ (a, b) .
180
En nuestro caso, el error absoluto cometido en la aproximación
! 1,0333
f (x) dx ≈ S0,2583 (f ) ,
0

realizada en el apartado anterior es


 
 0,25834 
Δ=  (1,0333 − 0)f (ξ) = 0,000025|f (iv) (ξ)| , ξ ∈ (0, 1,0333) .
(iv)
180

Teniendo en cuenta la gráfica de la función f (iv) , es claro que |f (iv) (ξ)| < 2 para
todo ξ ∈ (0, 1,0333). Entonces
Δ < 0,000025 × 2 = 0,000051 .
Finalmente, como la aproximación efectuada en el apartado (i) ha sido
! 1,0333
Cv = 67,8472 f (x) dx ≈ 67,8472S0,2583 (f ) ,
0

el error absoluto cometido es


! 1,0333 
 

67,8472  f (x) dx − S0,2583 (f ) = 67,8472Δ ,
0

de modo que una cota es


67,8472 × 0,000051 = 0,00346 .
1 También se puede calcular el lı́mite lı́m
x→0 f (x) aplicando varias veces la regla de
l’Hopital.
6.2 Problemas resueltos 115

Problema 6.17 Hallar el valor que se obtiene al aproximar la integral


! n
|x cos(πx)| dx ,
0

siendo n ∈ N un número par, mediante la fórmula de Simpson compuesta con


n subintervalos.
Indicación: Si {am }m∈N ⊂ R es una sucesión aritmética, entonces, la suma
k
de los k primeros términos vale i=1 ai = 12 k(a1 + ak ).

Solución. Definimos f (x) = |x cos(πx)|. Entonces, aplicando la fórmula de


Simpson compuesta con n subintervalos se tiene
! n
h
f (x) dx ≈ Sh (f ) = (f0 + 4f1 + 2f2 + · · · + 4fn−1 + fn ) ,
0 3
siendo h = (n − 0)/n = 1 y fk = f (xk ) = f (0 + kh) = f (k) para k = 0, 1, . . . , n.
Entonces
! n
1
f (x) dx ≈ S1 (f ) = (f (0) + 4f (1) + 2f (2) + · · · + 4f (n − 1) + f (n)) .
0 3

En el caso que nos ocupa, se tiene f (k) = |k cos(kπ)| = |k(−1)k | = |k| = k, de


modo que
! n
1
f (x) dx ≈ S1 (f ) = [n + 4(1 + 3 + 5 + · · · + n − 1) + 2(2 + 4 + 6 + · · · + n − 2)] .
0 3
Aplicando la fórmula de la suma finita de términos consecutivos de una sucesión
aritmética se tiene que
1n n2
1 + 3 + 5 + ··· + n − 1 = (1 + n − 1) = ,
22 4

1 n n n
2 + 4 + 6 + ··· + n − 2 = − 1 (2 + n − 2) = −1 .
2 2 2 2
Finalmente, sustituyendo obtenemos
! n   n 2
1 n2 n n
f (x) dx ≈ S1 (f ) = n+4 +2 −1 = .
0 3 4 2 2 2

Problema 6.18 Condiderar la integral impropia de segunda especie


! 1
sin x
I= √ dx .
0 1 − x2
(i) Aproximar el valor de I mediante la regla de los trapecios compuesta con 4
subintervalos. Indicación: Realizar el cambio de variable x = sin t para
evitar la singularidad en x = 1.
(ii) Acotar el error absoluto cometido en el apartado anterior.
116 Integración Numérica

Solución. (i) Notemos que la integral del enunciado


! 1
sin x
I= f (x) dx , f (x) = √ ,
0 1 − x2

es impropia de segunda especie puesto que la función integrando f (x) no está aco-
tada en el intervalo de integración [0, 1]. En particular, la gráfica de f (x) tiene
una ası́ntota vertical en x = 1. Realizando el cambio de variable x = sin t en la
integral I se obtiene
! π/2 ! π/2
sin(sin t)
I=  cos t dt = sin(sin t) dt .
0 1 − sin2 t 0

Notemos que, tras el cambio de varible, la integral I deja de ser impropia puesto
que la función integrando g(t) = sin(sin t) está acotada en el intervalo de inte-
gración [0, π/2].
A continuación aproximamos el valor de I mediante la regla de los trapecios
compuesta con n = 4 subintervalos, es decir, con una longitud de paso h =
(π/2 − 0)/4 = π/8.
g g4
0
I ≈ Th (g) = h + g1 + g2 + g3 +
2 2
π g(0) g(π/2)
= + g(π/8) + g(π/4) + g(3π/8) +
8 2 2

π 0 0,841471
= + 0,373411 + 0,649637 + 0,797946 + = 0,880325 .
8 2 2
b
(ii) El error absoluto Δ en la aproximación a
g(t) dt ≈ Th (g) viene dado
por  2 
h 
Δ =  (b − a)g  (ξ) , ξ ∈ (a, b) .
12
En nuestro caso se tiene
(π/8)2 π 3 
Δ= (π/2 − 0)|g  (ξ)| = |g (ξ)| ,
12 1536
siendo ξ ∈ (0, π/2). Derivando 2 veces la función g(t) = sin(sin t) se tiene
g  (t) = − cos(sin x) sin x − cos2 x sin(sin x). Para hallar el valor máximo (es
decir, la menor de las cotas superiores) de Δ se ha de obtener el valor

M = máx {|g  (t)|} .


0≤t≤π/2

Sin embargo, el problema de extremos absolutos que se plantea para hallar


M , pasa por obtener los extremos relativos de f  (t), es decir, por la ecuación
f  (t) = 0 que resulta ser una ecuación trascendente. Entonces, optamos por
hallar una cota superior de |g  (t)| en el intervalo [0, π/2] por simple inspección.
6.2 Problemas resueltos 117

En concreto, utilizando las propiedades del valor absoluto y las acotaciones de


las funciones trigonométricas, se tiene
|g  (t)| = | − cos(sin x) sin x − cos2 x sin(sin x)|
≤ | cos(sin x) sin x| + | cos2 x sin(sin x)|
= | cos(sin x)|| sin x| + cos2 x| sin(sin x)|
≤ 1+1=2 ,
para todo t ∈ R. Entonces
π 3  2π 3
Δ= |g (ξ)| ≤ = 0,0403728 .
1536 1536
Problema 6.19 En la descripción del fenómeno óptico conocido como difrac-
z
ción de Fresnel, aparece la llamada integral de Fresnel S(z) = 0 sin(x2 ) dx que
no puede expresarse mediante funciones elementales.

(i) Utilizando el cambio de variable x = 1/t, expresar la integral impropia


! ∞
1 1
I= 2
sin 2
dt
1 t t

como una integral de Fresnel.


(ii) Aproximar el valor de I mediante la regla de Simpson compuesta con 4
subintervalos.
(iii) Acotar el error absoluto cometido en el apartado anterior.
Solución. (i) Realizando el cambio de variable x = 1/t en la integral impropia
! ∞
1 1
I= 2
sin 2
dt ,
1 t t
se obtiene ! 1
I= sin(x2 ) dx = S(1) .
0
Como S(1) es una integral propia, es claro que I < ∞.

(ii) Aplicamos la regla de Simpson para aproximar el valor de I. Obviamente,


utilizaremos este método numérico aplicado a la expresión equivalente dada por
la integral propia S(1). De este modo
! 1
I = S(1) = f (x) dx con f (x) = sin(x2 ) .
0

Aproximando I con la regla de Simpson compuesta con n = 4 subintervalos, se


tiene una longitud de paso h = 1/4, de modo que
h
I ≈ S1/4 (f ) = (f0 + 4f1 + 2f2 + 4f3 + f4 )
3
118 Integración Numérica

1
= (f (0) + 4f (1/4) + 2f (1/2) + 4f (3/4) + f (1))
12
1
= (0 + 4 × 0,0624593 + 2 × 0,247404 + 4 × 0,533303 + 0,841471)
12
= 0,309944 .

(iii) Sea Δ = |I −S1/4 (f )| el error absoluto cometido en el apartado anterior.


Se sabe que
h4
Δ= (b − a)|f (iv) (ξ)| ,
180
siendo [a, b] = [0, 1] el intervalo de integración y ξ ∈ (0, 1). En resumen,

1/44 (iv)
Δ= |f (ξ)| ,
180
siendo f (iv) (ξ) = 4[(4ξ 4 − 3) sin(ξ 2 ) − 12ξ 2 cos(ξ 2 )]. Aplicando las propiedades
del valor absoluto y teniendo en cuenta que las funciones seno y coseno están
acotadas entre 1 y -1 se tiene la siguiente acotación

|f (iv) (ξ)| ≤ 4[|4ξ 4 − 3|| sin(ξ 2 )| + 12ξ 2 | cos(ξ 2 )|] < 4[|4ξ 4 − 3| + 12ξ 2 ]
< 4[3 + 12] = 60,

donde en la última desigualdad se ha utilizado que ξ ∈ (0, 1). En definitiva,

1/44
Δ< 60 = 0,00130208 .
180
Problema 6.20 La teorı́a de estática de fluidos dice que la presión P que ejerce
un fluido de densidad ρ a una profundidad x de su superficie viene dada por
P (x) = ρgx, siendo g la intensidad gravitatoria. Entonces, la fuerza total F
que ejerce un fluido estancado una profundidad H sobre la compuerta de una
H
presa es F = ρg 0 xL(x) dx donde L(x) es la anchura de la compuerta a una
profundidad x.
(i) Sabiendo que el fluido es agua (ρ = 103 ), H = 8 y que se han realizado las
siguientes mediciones de la función L(x)

x 0 2 4 6 8
L(x) 150 20 2.5 0.5 0

aproximar el valor de F mediante la fórmula de Simpson compuesta.


(ii) Aproximar, mediante interpolación polinómica de Newton con todos los
puntos de la tabulación dada, el valor de L(1).
(iii) Supongamos ahora que se dispone de más información. En concreto L(x) =
(150 − x)/ex . Acotar el error absoluto cometido al aproximar F mediante
la fórmula de Simpson compuesta con una longitud de paso h = 0,1.
6.2 Problemas resueltos 119

Solución. (i) La fuerza total F que ejerce el agua sobre la compuerta de la


presa es ! 8
F = ρg f (x) dx , f (x) = xL(x) .
0

A partir de la tabulación del enunciado para la función L(x) se obtiene la sigu-


iente tabulación de la función f (x).

x 0 2 4 6 8
f (x) 0 40 10 3 0

Notemos que las abscisas de la tabulación son equiespaciadas con una longitud
de paso h = 2. Entonces, podemos aproximar mediante la fórmula de Simpson
compuesta la integral
! 8
h
f (x) dx ≈ (f0 + 4f1 + 2f2 + 4f3 + f4 )
0 3
2
= (0 + 4 × 40 + 2 × 10 + 4 × 3 + 0) = 128 .
3
En definitiva, tomando la gravedad g = 9,8, se tiene

F ≈ 103 × 9,8 × 128 = 1,25 × 106 .

(ii) Realizamos un esquema de diferencias divididas de Newton con todos


los puntos de la tabulación dada de la función L(x).

0 150
-65
2 20 14.062
-8.75 -2.027
4 2.5 1.9 0.2177
-1 -0.285
6 0.5 0.1875
-0.25
8 0

Entonces, el polinomio de interpolación es

P4 (x) = 150 − 65(x − 0) + 14,062(x − 0)(x − 2)


−2,027(x − 0)(x − 2)(x − 4)
+0,2177(x − 0)(x − 2)(x − 4)(x − 6).

Finalmente, L(1) ≈ P4 (1) = 61,5915.

(iii) Recordemos que, al realizar la aproximación de una integral por el


b
método de Simpson I = a f (x) dx ≈ Sh (f ), el error absoluto cometido es
120 Integración Numérica

ΔI = h4 (b − a)/180|f (4) (ξ)|, siendo ξ ∈ (a, b). En nuestro caso a = 0, b = 8 y


h = 0,1. Entonces, una cota de ΔI se halla de la forma
(0,1)4 (8 − 0)
ΔI < M ,
180
siendo M = máx0≤ξ≤8 {|f (4) (ξ)|}. Como L(x) = (150 − x)/ex , es decir, f (x) =
xL(x) = x(150 − x)/ex se obtiene su derivada cuarta
−612 + 158ξ − ξ 2
f (4) (ξ) = .

Para hallar M , calculamos en primer lugar los extremos relativos de la función
f (4) (ξ) en el intervalo (0, 8). Puesto que
770 − 160ξ + ξ 2
f (5) (ξ) = ,


las únicas soluciones de la ecuación f (5) (ξ) = 0 son 80± 5630, es decir, ξ = 4,96
y ξ = 155,03. Entonces
M = máx {|f (4) (ξ)|} = máx{|f (4) (0)|, |f (4) (4,96)|, |f (4) (8)|}
0≤ξ≤8
= máx{612, 1,03, 0,19} = 612 .
En definitiva
(0,1)4 (8 − 0)
ΔI < 612 = 0,00272 .
180
Puesto que F = ρgI = 103 × 9,8 × I, el error absoluto ΔF cometido en la
aproximación de F está acotado por
ΔF = 103 × 9,8 × ΔI < 103 × 9,8 × 0,00272 = 26,656 .
Problema 6.21 Aproximar el valor de la integral impropia
! ∞
2
x2 e−x dx
1

mediante la fórmula de los trapecios compuesta utilizando


√ 4 subintervalos.
Indicación 1: Utilizar el cambio de variable x = 1/ t en la integral.
Indicación 2: El cálculo de lı́mz→0+ z −5/2 e−1/z se simplifica con el cambio
z = 1/k.
Solución. Definamos la integral impropia de primera especie
! ∞
2
I= x2 e−x dx .
1

Realizamos el cambio de variable x = 1/ t, con lo cual, diferenciando se obtiene
que dx = − 12 t−3/2 dt. En la nueva variable t, la integral I se escribe como
!
1 1 e−1/t
I= f (t) dt , f (t) = 5/2 .
2 0 t
6.2 Problemas resueltos 121

La integral I dada por la anterior expresión se ha convertido en una integral


propia si y sólo si el lı́mite siguiente lı́mt→0+ f (t) es finito. Calculamos dicho
lı́mite realizando el cambio t = 1/k. Entonces, se tiene que

e−1/t k 5/2 ∞
lı́m f (t) = lı́m = lı́m k = =0,
t→0+ t→0+ t5/2 k→∞ e ∞
donde la indeterminación ∞/∞ se ha resuelto teniendo que el numerador es un
infinito de orden inferior al del denominador. También se puede ver aplicando
tres veces la regla de l’Hopital. En definitiva, la integral I se ha transformado
en una integral propia y por lo tanto convergente. Ahora podemos utilizar para
su aproximación la fórmula de los trapecios compuesta con 4 subintervalos:
! 1
f0 f4
f (t) dt ≈ h + f1 + f2 + f3 + ,
0 2 2

siendo h = 1/4 y fi = f (ih) para i = 0, 1, 2, 3, 4. Se tiene pues que


! 1
1 0 0,367879
f (t) dt ≈ + 0,5861 + 0,765572 + 0,541112 + = 0,519181 .
0 4 2 2
Se obtiene entonces la aproximación
1
I≈ × 0,519181 = 0,25959 .
2
Problema 6.22 Consideremos la siguiente integral impropia
! 0
ex
I= 2x
dx .
−∞ 1 + e

(i) Hallar el valor exacto de I.


Indicación: Usar el cambio de variable z = ex .

(ii) Mediante el método de coeficientes indeterminados, hallar los valores de los


pesos wi para que la fórmula de integración numérica
! 1
f (z)dz ≈ w0 f (0) + w1 f (1/3) + w2 f (1) ,
0

sea exacta para los polinomios de grado menor o igual que 2.


(iii) Aproxima el valor de I usando la expresión hallada en la fórmula del
apartado anterior y calcula el error absoluto cometido.

Solución. (i) Diferenciando el cambio de variable z = ex se tiene dz = ex dx.


Entonces, la integral I escrita en la nueva variable z adopta la forma
! 1
1
I= dz .
0 1 + z2
122 Integración Numérica

Observamos que I se ha convertido en una integral propia. Además, puesto que


1
una primitiva de la función 1+z 2 es arctan z, aplicando la regla de Barrow se

obtiene que
! 1 " #1
1 π
I= 2
dz = arctan z = arctan 1 = .
0 1+z 0 4

(ii) Utilizando el método de coeficientes indeterminados, impondremos la


igualdad
! 1
f (z)dz = w0 f (0) + w1 f (1/3) + w2 f (1) ,
0

para cualquier polinomio f ∈ R2 [z] de grado menor o igual que 2. Esto es


equivalente a imponer la anterior igualdad para f (z) igual a todos los monomios
{1, z, z 2 } de la base canónica del espacio vectorial R2 [z]. De este modo se obtiene
! 1
dz = 1 = w0 + w1 + w2 ,
0
! 1
1 1
z dz = = w0 × 0 + w1 × + w2 × 1 ,
0 2 3
! 1 2
1 1
z 2 dz = = w0 × 02 + w1 × + w2 × 12 .
0 3 3

En definitiva, los pesos wi son solución del sistema lineal


⎛ ⎞ ⎛ ⎞ ⎛ ⎞
1 1 1 w0 1
⎝ 0 1/3 1 ⎠ ⎝ w1 ⎠ = ⎝ 1/2 ⎠ ,
0 1/9 1 w2 1/3

es decir, (w0 , w1 , w2 ) = (0, 3/4, 1/4).

(iii) Para aproximar el valor de I usando la expresión hallada en la fórmula


del apartado anterior, recordemos primero el resultado del apartado (i), es decir,
la expresión
! 1
1
I= f (z) dz , f (z) = .
0 1 + z2
Entonces, se tiene que
! 1
3 1 1 3 1 11 4
f (z)dz ≈ f + f (1) = 2
+ = .
0 4 3 4 4 1 + (1/3) 42 5

El error absoluto Δ cometido en esta aproximación es

Δ = |I − 4/5| = |π/4 − 4/5| = 0,0146018 .


6.2 Problemas resueltos 123

Problema 6.23 Sea F : [a, b] ⊂ R → R una función de clase C 1 ([a, b]). Al


rotar la curva plana y = F (x) alrededor del eje de abscisas desde x = a hasta
x = b se obtiene una superficie de revolución en R3 cuya área A vale
! b 
A= |F (x)| 1 + (F  (x))2 dx .
a

Aproximar el área que genera la curva y = tan x al rotar alrededor del eje
de abscisas desde x = 0 hasta x = 1 mediante una única extrapolación de
Richardson según el método de Romberg.

Solución. La derivada de la función F (x) = tan x es F  (x) = 1/ cos2 x, de


modo que el área A que genera la curva y = tan x al rotar alrededor del eje de
abscisas desde x = 0 hasta x = 1 será
! 1 
1
A= f (x) dx con f (x) = tan x 1 + .
0 cos2 x

Notar que se ha quitado el valor absoluto puesto que tan x ≥ 0 para todo
x ∈ [0, 1]. Vamos a aproximar la integral A mediante una extrapolación de
Richardson según el método de Romberg. Entonces, partimos de las aproxima-
(1) h
ciones proporcionadas
" por la fórmula# de los Trapecios Th (f ) = 2 [f (0) + f (1)]
(1)

y Th/2 (f ) = h f (0) 1
2 +f 2 + 2
f (1)
siendo h = 1. Se tiene pues que

(1) 1 1
T1 (f ) = [f (0) + f (1)] = [0 + 5,55761] = 2,77881 ,
2 2   
(1) 1 f (0) 1 f (1) 1 0 5,55761
T1/2 (f ) = +f + = + 0,89533 +
2 2 2 2 2 2 2
= 1,83707 .

Finalmente, mediante la extrapolación de Richardson con los dos valores ante-


riores se obtiene
(2) 1 " (1) (1)
# 1
T1 (f ) = 4T1/2 (f ) − T1 (f ) = [4 × 1,83707 − 2,77881]
3 3
= 1,52316 .

Concluimos que la aproximación obtenida es


(2)
A ≈ T1 (f ) = 1,52316 .
Capı́tulo 7

Ecuaciones Diferenciales
Ordinarias

7.1. Resumen de teorı́a


Muchos problemas importantes en ciencia y ingenierı́a son modelados me-
diante ecuaciones diferenciales. Sin embargo, la probabilidad de saber resolver
una ecuación diferencial tomada al azar es prácticamente nula. Este hecho im-
plica la necesidad de utilizar métodos numéricos para su solución. Por otra
parte, aunque algunas ecuaciones diferenciales pueden resolverse por métodos
analı́ticos, dicha solución es demasiado complicada y no es de mucha utilidad.
Existen también ecuaciones diferenciales cuya solución no puede expresarse en
términos de funciones elementales.

Definición 7.1 Sea D ⊂ R2 un dominio y f : D → R una función continua.


Decimos que la función y : [a, b] → R de clase C 1 [a, b] es una solución de la
ecuación diferencial y  = f (x, y) si (x, y(x)) ∈ D y además y  (x) = f (x, y(x))
para toda x ∈ [a, b].

Teorema 7.2 Si f y ∂f /∂y son continuas en un rectángulo R = {(x, y) ∈ R2 :


|x−x0 | ≤ α , |y −y0 | ≤ β} centrado en (x0 , y0 ), entonces el problema de Cauchy

y  = f (x, y) , y(x0 ) = y0 ,

tiene una única solución y(x) definida para |x − x0 | ≤ mı́n{α, β/M } , siendo M
el máximo de |f (x, y)| en el rectángulo R.

Veamos algunos de los métodos numéricos para la aproximación de la solu-


ción del problema de Cauchy para una ecuación diferencial de primer orden

y  = f (x, y) , y(x0 ) = y0 . (7.1)

125
126 Ecuaciones Diferenciales Ordinarias

Resolver numéricamente el problema de Cauchy (7.1) no significa obtener


una fórmula explı́cita para la dependencia y(x) de la solución. Se entiende por
solución numérica una tabulación del tipo

x0 x1 x2 ··· xn
y0 y1 y2 ··· yn

siendo yi una aproximación numérica del valor exacto y(xi ). Además, si no


decimos lo contrario, siempre consideraremos las abscisas equiespaciadas xi =
x0 + ih para i = 0, 1, . . . , n, con longitud de paso h.

Euler: yi+1 = yi + hf (xi , yi ).


" #
∗ h ∗
Heun: yi+1 = yi + hf (xi , yi ), yi+1 = yi + 2 f (xi , yi ) + f (xi+1 , yi+1 ) .
2
" #
Taylor de 2◦ orden: yi+1 = yi +hf (xi , yi )+ h2 ∂f ∂f
∂x (xi , yi )+ ∂y (xi , yi )f (xi , yi ) .

RK4: yi+1 = yi + h6 (k1 + 2k2 + 2k3 + k4 ), con k1 = f (xi , yi ), k2 =





f xi + h2 , yi + h2 k1 , k3 = f xi + h2 , yi + h2 k2 , k4 = f (xi + h, yi + hk3 ).

Los métodos numéricos presentados pueden ser generalizados utilizando no-


tación vectorial a ecuaciones diferenciales ordinarias definidas en Rn . De esta
forma, consideremos el problema de Cauchy

ẋ = f (t, x) , x(t0 ) = x0 . (7.2)

Aquı́, t ∈ R es la variable independiente y x = (x1 , . . . , xn )t ∈ Rn es la variable


vectorial dependiente y f (t, x) = (f1 (t, x), . . . , fn (t, x))t ∈ Rn . Se tienen en
definitiva las funciones incógnita xi (t), con i = 1, . . . , n. La condición inicial es
el valor vectorial x0 = (x01 , . . . , x0n )t ∈ Rn .

La iteración de Euler con longitud de paso h consiste en: yi+1 = yi +


hf (xi , yi ).
xi+1 = xi + hf (ti , xi ) . (7.3)

La iteración RK4 con longitud de paso h consiste en


h
xi+1 = xi + (k1 + 2k2 + 2k3 + k4 ) , (7.4)
6
siendo

k1 = f (ti , xi ) ,

h h
k2 = f ti + , xi + k1 ,
2 2

h h
k3 = f ti + , xi + k2 ,
2 2
k4 = f (ti + h, xi + hk3 ) .
7.2 Problemas resueltos 127

Problema Lineal de Contorno: Si p(x), q(x), r(x) ∈ C[a, b] con q(x) > 0
en [a, b], entonces el problema lineal de frontera y  (x) = p(x)y  + q(x)y + r(x)
con y(a) = α, y(b) = β tiene una única solución y(x) con x ∈ [a, b]. Además
dicha solución viene dada por y(x) = u(x) + Cv(x), siendo C = (β − u(b))/v(b),
donde u(x) y v(x) son la única solución de los problemas de Cauchy (1) u (x) =
p(x)u + q(x)u + r(x) con u(a) = α, u (a) = 0; (2) v  (x) = p(x)v  + q(x)v con
v(a) = 0, v  (a) = 1.

7.2. Problemas resueltos


Problema 7.1 Se define la función y(x) de la forma
! x
y(x) = 1 + t3 dt .
0

Obtener una tabulación de la función y(x) en el intervalo 0 ≤ x ≤ 2 utilizando


el método de Taylor de segundo orden con paso h = 1/2 para resolver de forma
numérica un problema de valor inicial adecuado.

Nota: La integral 1 + t3 dt es elı́ptica y por lo tanto no es posible
obtener una primitiva expresable en términos de funciones elementales.

Solución. Aplicando el Teorema fundamental del cálculo obtenemos y  (x),


es decir, la derivada de la función y(x). Además, por definición es claro que
y(0) = 0. De esta forma se tiene que la función y(x) es la única solución del
problema de valor inicial

y  = 1 + x3 , y(0) = 0 .

Definiendo la función f (x, y) = 1 + x3 , el método de Taylor de segundo
orden para aproximar la solución del problema de valor inicial viene dado por
 
h2 ∂f (xi , yi ) ∂f (xi , yi )
yi+1 = yi + hf (xi , yi ) + + f (xi , yi ) .
2 ∂x ∂y

En nuestro problema, las derivadas parciales de primer orden de la función f


son
∂f (x, y) 3x2 ∂f (x, y)
= √ , =0,
∂x 2 1 + x3 ∂y
de manera que el método de Taylor adopta la forma
( )
1 3 3x2i
yi+1 = yi + 1 + xi +  .
2 8 1 + x3i

Realizando esta iteración con el valor inicial (x0 , y0 ) = (0, 0) obtenemos la tabla
siguiente
128 Ecuaciones Diferenciales Ordinarias

i xi yi
0 0 0
1 0.5 0.5
2 1 1.07452
3 1.5 1.91421
4 2 3.16173
donde la tercera columna es una tabulación aproximada de la función y(x).
Problema 7.2 La función de error erf(x), utilizada en estadı́stica y en proba-
bilidad, está definida de la forma
! x
2
erf(x) = √ exp(−t2 ) dt .
π 0

(i) Aproximar el valor de erf(2) mediante la fórmula de Simpson.


(ii) Aproximar el valor de erf(2) mediante la transformación en un problema de
valor inicial y la posterior utilización del método de Euler con una longitud
de paso h = 1/2.
Solución. (i) Utilizando la fórmula de Simpson
! b
h
f (t) dt ≈ (f0 + 4f1 + f2 ) , siendo h = (b − a)/2 ,
a 3
se tiene que
! 2
2 2 2 1 4 1
erf(2) = √ exp(−t ) dt ≈ √ 1+ + 4 ≈ 0,936492.
π 0 π3 e e
(ii) Aplicando el Teorema fundamental del cálculo, la derivada de la función
error es
d erf(x) 2
= √ exp(−x2 ) .
dx π
Además, de la definición de función error se desprende que erf(0) = 0. En
definitiva, la función y = erf(x) es la solución del problema de Cauchy
2
y  = f (x, y) = √ exp(−x2 ) , y(0) = 0 .
π
Aplicando el método de Euler
yi+1 = yi + hf (xi , yi ) ,
con paso h = 1/2 para aproximar la solución del anterior problema de Cauchy
se tiene la siguiente iteración
1
yi+1 = yi + √ exp(−x2i ) , con y0 = 0 ,
π
que da lugar a la tabla siguiente.
7.2 Problemas resueltos 129

i xi yi
0 0 0
1 0.5 0.56419
2 1 1.00358
3 1.5 1.21113
4 2 1.2706

Finalmente, se concluye con la aproximación erf(2) ≈ y4 = 1,2706.

Problema 7.3 Considerar el problema de Cauchy y  = f (x, y), y(x0 ) = y0 . Se


pretende aproximar la solución y(x) en el intervalo [x0 , xn ] mediante el método
de Runge-Kutta  
2 1 4
yi+1 = yi + h k1 + k2 + k3 ,
9 3 9
3h 3h
donde k1 = f (xi , yi ), k2 = f (xi + h2 , yi + h2 k1 ), k3 = f (xi + 4 , yi + 4 k2 ).

(i) Demostrar que dicho método es consistente.


(ii) Demostrar que si f ∈ C 2 [x0 , xn ] entonces el método tiene al menos orden
de consistencia 2.

Solución. (i) El método numérico es de un paso yi+1 = yi + hφ(xi , yi ; h). Por


lo tanto será consistente si y sólo si

lı́m φ(xi , yi ; h) = f (xi , yi ) . (7.5)


h→0

En este método RK se tiene la función


2 1 4
φ(xi , yi ; h) = k1 + k2 + k3 .
9 3 9
Además, de la definición de kj se verifica que lı́mh→0 kj = f (xi , yi ) para j =
1, 2, 3. Se tiene por lo tanto que

2 1 4
lı́m φ(xi , yi ; h) = f (xi , yi ) + f (xi , yi ) + f (xi , yi ) = f (xi , yi ) ,
h→0 9 3 9

de manera que el método es consistente.


(ii) El error de discretización local Δ(xi , yi ; h) viene dado por

y  (xi )
Δ(xi , yi ; h) = f (xi , yi ) + h + O(h2 ) − φ(xi , yi ; h)
2!  
y  (xi ) 2 2 1 4
= k1 + h + O(h ) − k1 + k2 + k3
2! 9 3 9

 
7 y (xi ) 1 4
= k1 + h + O(h2 ) − k2 + k3 .
9 2! 3 9
130 Ecuaciones Diferenciales Ordinarias

Como y(x) es solución exacta de la ecuación diferencial y  = f (x, y), apli-


cando la regla de la cadena se tiene
df ∂f (xi , yi ) ∂f (xi , yi )
y  (xi ) = (xi , yi )) = + f (xi , yi ) .
dx ∂x ∂y
Por otra parte, como f ∈ C 2 [x0 , xn ], podemos realizar los siguientes desa-
rrollos de Taylor
h h
k2 = f (xi + , yi + k1 )
2 2
∂f (xi , yi ) h ∂f (xi , yi ) h
= f (xi , yi ) + + k1 + O(h2 ) ,
∂x 2 ∂y 2
3h 3h
k3 = f (xi + , yi + k2 )
4 4
∂f (xi , yi ) 3h ∂f (xi , yi ) 3h
= f (xi , yi ) + + k2 + O(h2 )
∂x 4 ∂y 4
 
3 ∂f (xi , yi ) ∂f (xi , yi )
= f (xi , yi ) + + f (xi , yi ) h + O(h2 ) .
4 ∂x ∂y
Introduciendo estos resultados y agrupando por potencias de h, el error de
discretización local adopta la forma
   
7 1 4 1 1 3 ∂f (xi , yi )
Δ(xi , yi ; h) = − − f (xi , yi ) + − −
9 3 9 2 6 9 ∂x

∂f (xi , yi )
+f (xi , yi ) h + O(h2 ) = O(h2 ) ,
∂y
de manera que el orden de consistencia es al menos 2.
Problema 7.4 La variación de la velocidad v con el tiempo t de una partı́cula
verifica la ecuación
dv 5000 − 0,1v 2
= −g ,
dt 300 − 10t
siendo g = 9,8ms−2 la aceleración de la gravedad. Sabiendo que inicialmente la
partı́cula está en reposo, aproximar la velocidad al cabo de 1 segundo de haber
iniciado el movimiento v(1) mediante el método de Euler con incrementos de
tiempo de 0,5 segundos.
Solución. Dada la ecuación diferencial v̇ = f (t, v) con la condición inicial
v(t0 ) = v0 , el método de Euler aproxima su solución exacta v(t) mediante una
tabulación (ti , vi ) para i = 0, 1, . . . , n. Los tiempos son equiespaciados ti =
t0 + ih siendo h el paso constante y los valores de vi son generados a partir de
la recurrencia vi+1 = vi + hf (ti , vi ).
En el problema planteado se tiene h = 0,5 y como la partı́cula está inicial-
mente en reposo t0 = 0 y v0 = 0. Además
5000 − 0,1v 2
f (t, v) = − 9,8 .
300 − 10t
7.2 Problemas resueltos 131

De esta forma, la iteración que se ha de realizar es


 
5000 − 0,1vi2
vi+1 = vi + hf (ti , vi ) = vi + 0,5 − 9,8 ,
300 − 10ti

con valor inicial (t0 , v0 ) = (0, 0). Se obtiene de esta forma la tabla siguiente

i ti vi
0 0 0
1 0.5 3.43333
2 1 7.00591

Finalmente la aproximación pedida es v(1) ≈ v2 = 7,00591m/s.

Problema 7.5 Consideremos el problema de valor inicial y  = f (x, y) con


y(x0 ) = y0 . Calcular las constantes A y B de manera que se obtenga el siguiente
método multipaso implı́cito de Adams-Moulton
" #
yi+1 = yi + h Af (xi , yi ) + Bf (xi+1 , yi+1 ) ,

siendo h la longitud de paso, es decir, xi+1 = xi + h para i = 0, 1, . . ..

Solución. Sea y(x) la única solución del problema de valor inicial y  = f (x, y)
con y(x0 ) = y0 . Como la fórmula de Adams-Moulton que hemos de demostrar
es de la forma yi+1 = yi + h(T ERM IN O), entonces separamos variables e
integramos la ecuación diferencial de la forma
! y(xi+1 ) ! xi+1
dy = f (x, y(x)) dx ,
y(xi ) xi

es decir ! xi+1
y(xi+1 ) = y(xi ) + f (x, y(x)) dx .
xi

Como T ERM IN O depende de las abscisas xi , xi+1 , la integral anterior


será aproximada por la integral de un polinomio P (x) que interpole a la función
f (x, y(x)) en dichas abscisas. Pero ahora sucede un comportamiento inusual en
las fórmulas de Adams-Moulton que consiste en observar que la aproximación
numérica de la integral que pretendemos efectuar no es más que una regla de
Newton-Cotes (en concreto es la regla de los Trapecios). Aprovechando esta
información obtenemos
! xi+1
h
yi+1 = yi + P (x) dx = yi + [f (xi , yi ) + f (xi+1 , yi+1 )] ,
xi 2

de lo que se deduce A = B = 1/2.


132 Ecuaciones Diferenciales Ordinarias

Problema 7.6 Demostrar que el método de Heun aplicado a la resolución del


problema de valor inicial y  = f (x) con y(x0 ) = y0 es equivalente a la apli-
cación de la regla de los trapecios al reformular el problema de Cauchy en forma
integral.
Solución. El método de Heun para la resolución del problema de valor inicial
y  = f (x, y) con y(x0 ) = y0 se basa en el esquema predictor-corrector
∗ h ∗
yi+1 [f (xi , yi ) + f (xi+1 , yi+1
= yi + hf (xi , yi ) , yi+1 = yi + )] .
2
En el problema que abordamos f (x, y) = f (x), de manera que el método de
Heun se simplifica y queda
h
yi+1 = yi + [f (xi ) + f (xi+1 )] .
2
Por otra parte la ecuación diferencial y  = f (x) es de variables separables,
de manera que se tiene
! y(x+h) ! x+h
dy = f (x)dx .
y(x) x

Resolviendo la primera integral y despejando se tiene la formulación integral del


problema de Cauchy
! x+h
y(x + h) = y(x) + f (x)dx .
x
Tomando en la anterior igualdad x = xi y recordando que las abscisas xi son
equiespaciadas con paso h, es decir xi+1 = xi + h, se tiene
! xi +h
y(xi+1 ) = y(xi ) + f (x)dx .
xi

Finalmente, utilizando la regla de los trapecios para aproximar la anterior inte-


gral y denotando y(xi ) ≈ yi , concluimos que
h
yi+1 = yi + [f (xi ) + f (xi+1 )] ,
2
es decir, obtenemos el mismo tipo de aproximación que con el método de Heun.
Problema 7.7 Una masa m oscila entorno de su punto de equilibrio debido a la
acción de un muelle de constante elástica k. La masa está sumergida en un medio
viscoso que le provoca una fuerza de rozamiento proporcional a su velocidad al
cubo. En estas condiciones, la ecuación diferencial que rige el movimiento de la
partı́cula es
mẍ + cẋ3 + kx = 0 .
Teniendo en cuenta que la partı́cula se encuentra inicialmente en x(0) = 1/2 y
que tiene una velocidad inicial ẋ(0) = 1/4, utilizar el método de Euler con una
longitud de paso h = 1 para evidenciar de forma numérica que dicha partı́cula
realiza un movimiento periódico y aproximar el valor del periodo T . Datos:
m = c = k = 1.
7.2 Problemas resueltos 133

Solución. Teniendo en cuenta los datos del problema, la ecuación diferencial


del movimiento del oscilador viene dada por la siguiente ecuación diferencial no
lineal de segundo orden ẍ+ẋ3 +x = 0. Esta ecuación puede ser reescrita mediante
el cambio de variables ẋ = y en un sistema de ecuaciones diferenciales de primer
orden. Además, teniendo en cuenta las condiciones iniciales del movimiento del
oscilador se obtiene el siguiente problema de Cauchy

ẋ = y , ẏ = −x − y 3 , (x(0), y(0)) = (1/2, 1/4) .

Utilizaremos el método de Euler con una longitud de paso h = 1 para aproximar


la solución de este problema de valor inicial. En concreto se tiene (xi+1 , yi+1 ) =
(xi , yi ) + hf (xi , yi ), donde h = 1 y f (x, y) = (y, −x − y 3 ). En resumen, se ha de
realizar la iteración


xi+1 xi yi x0 1/2
= + , = .
yi+1 yi −xi − yi3 y0 1/4

Con la notación x(ti ) ≈ xi , y(ti ) ≈ yi , ti = t0 + ih = i, la anterior iteración de


Euler da lugar a la tabulación

i xi yi ti
0 1/2 1/4 0
1 0.75 -0.2656 1
2 0.484 -0.9968 2
3 -0.512 -0.4905 3
4 -1.003 0.1399 4
5 -0.863 1.1403 5
6 0.2772 0.5205 6

Hemos detenido la iteración puesto que ya se observa la ejecución de un ciclo


completo en el plano de las fases xy. La aproximación del periodo T dada por
el método es T ≈ 6.
134 Ecuaciones Diferenciales Ordinarias

Problema 7.8 La solución exacta del problema de Cauchy



ẋ = −x + (t + 1)y
(7.6)
ẏ = x − ty

con condiciones iniciales



2 1
x(0) = = 0.483941 , y(0) = erf √ = 0.682689 , (7.7)
eπ 2
viene dada por

2 (t + 1)2 t+1 t+1
x(t) = exp − + t erf √ , y(t) = erf √ , (7.8)
π 2 2 2

donde la función error erf(z) está definida por


! z
2
erf(z) := √ exp(−s2 ) ds . (7.9)
π 0

(i) Aproximar a partir de (7.9) el valor de erf(2) utilizando una vez la extrapo-
lación de Richardson según el método de Romberg.
(ii) Utilizar un paso del método clásico de Runge-Kutta de cuarto orden√para
aproximar el valor de x(t) e y(t) solución de (7.6) y (7.7) para t = 2 2 −
1 = 1.82843.
(iii) ¿Es posible comparar los resultados obtenidos en los anteriores apartados?

(1)
Solución. (i) Definamos la función integrando f (s) = exp(−s2 ). Sea Th (f ) la
regla de los trapecios aplicada a la función f con longitud de paso h. Entonces,
aplicando la regla de los trapecios simple se tiene
! 2
2 2 (1)
erf(2) = √ f (s) ds ≈ √ T2 (f )
π 0 π
2 2 2
= √ [f (0) + f (2)] = √ [1 + 0.0183156] = 1.14905 .
π2 π

Utilizando de nuevo la regla de los trapecios, pero ahora con longitud de paso
la mitad que la anterior, se obtiene
! 2
2 2 (1)
erf(2) = √ f (s) ds ≈ √ T1 (f )
π π
0 
2 f (0) f (2)
= √ + f (1) +
π 2 2
 
2 1 0.0183156
= √ + 0.367879 + = 0.989631
π 2 2
7.2 Problemas resueltos 135

A partir de las dos estimaciones de erf(2) realizadas se obtiene una mejor aproxi-
mación por extrapolación de la forma
2 (2) 4 × 0.989631 - 1.14905
erf(2) ≈ √ T2 (f ) = = 0.936491 .
π 4−1

(ii) El método RK4 con una longitud de paso h aplicado a la solución numéri-
ca del problema de Cauchy

ẋ = f (t, x, y)
ẏ = g(t, x, y) ,

con la condición inicial (x(0), y(0)) = (x0 , y0 ) consiste en realizar la iteración



xi+1 xi h r1 + 2r2 + 2r3 + r4
= + ,
yi+1 yi 6 k1 + 2k2 + 2k3 + k4

donde

r1 = f (ti , xi , yi ) ,
k1 = g(ti , xi , yi ) ,

h h h
r2 = f ti + , xi + r1 , yi + k1 ,
2 2 2

h h h
k2 = g ti + , xi + r1 , yi + k1 ,
2 2 2

h h h
r3 = f ti + , xi + r2 , yi + k2 ,
2 2 2

h h h
k3 = g ti + , xi + r2 , yi + k2 ,
2 2 2
r4 = f (ti + h, xi + hr3 , yi + hk3 ) ,
k4 = g (ti + h, xi + hr3 , yi + hk3 ) .

En nuestro caso f (t, x, y) = −x + (t + 1)y,


√ g(t, x, y) √= x − ty. Además,
puesto que se ha de aproximar el valor de x(2 2 − 1) e y(2 2 − 1) con una sola
√ y las condiciones iniciales son dadas para tiempo t0 = 0, es obvio que
iteración
h = 2 2 − 1 = 1.82843. En definitiva, sustituyendo los datos se tiene que

r1 = f (t0 , x0 , y0 ) = f (0, 0.483941, 0.682689) = 0.198748 ,


k1 = g(t0 , x0 , y0 ) = g(0, 0.483941, 0.682689) = 0.483941 ,

de modo que

1.82843 1.82843
r2 = f , 0.483941 + 0.198748 , 0.682689
2 2

1.82843
+ 0.483941 = 1.48807 ,
2
136 Ecuaciones Diferenciales Ordinarias


1.82843 1.82843
k2 = g , 0.483941 + 0.198748 , 0.682689
2 2

1.82843
+ 0.483941 = -0.362958 ,
2
y en consecuencia

1.82843 1.82843
r3 = f , 0.483941 + 1.48807 , 0.682689
2 2

1.82843
− 0.362958 = -1.17272 ,
2

1.82843 1.82843
k3 = g , 0.483941 + 1.48807 , 0.682689
2 2

1.82843
− 0.362958 = 1.52359 ,
2
de manera que

r4 = f (1.82843 , 0.483941 - 1.82843 × 1.17272 , 0.682689


+1.82843 × 1.52359) = 11.4706 ,
k4 = g (1.82843 , 0.483941 - 1.82843 × 1.17272, 0.682689
+1.82843 × 1.52359) = -8.00215 .

En definitiva se obtiene, según la recurrencia del método RK4


√ √
x(2 2 − 1) ≈ x1 = 4.23224 , y(2 2 − 1) ≈ y1 = -0.90102 .

(iii) Notar que, a partir de la solución exacta (7.8), se tiene que



y(2 2 − 1) = erf(2) ,

de modo que es posible realizar una comparación de los resultados obtenidos en


los apartados (i) y (ii).

Problema 7.9 Considerar el problema de valor inicial de primer orden y  =


x2 + y, y(0) = 1.
(i) Averiguar si el problema de Cauchy tiene solución única.
(ii) Utilizar el método de Taylor de segundo orden con una longitud de paso
h = 0,1 para aproximar el valor de y(0,3) y calcular el error absoluto
cometido sabiendo que la solución exacta es y(x) = 3ex − x2 − 2x − 2.

Solución. (i) Según un corolario del Teorema de Picard-Lindelöf, si f y ∂f /∂y


son continuas en un entorno del punto (x0 , y0 ), entonces el problema de Cauchy
y  = f (x, y) con y(x0 ) = y0 tiene una única solución y(x) definida en un entorno
de x0 . Puesto que en nuestro problema f (x, y) = x2 + y es un polinomio en x e
7.2 Problemas resueltos 137

y está claro que se verifica que tanto f como ∂f /∂y son continuas en un entorno
de cualquier punto (x0 , y0 ) ∈ R2 y en particular en un entorno del punto (0, 1).
Se concluye pues que el problema de Cauchy y  = x2 + y, y(0) = 1 tiene solución
única.

(ii) Para aplicar el método de Taylor de segundo orden se ha de realizar un


desarrollo de Taylor de la solución hasta segundo orden, es decir,

h2 
y(x + h) = y(x) + hy  (x) + y (x) + O(h3 ) .
2
Calculando las derivadas
∂f ∂f
y  (x) = f (x, y(x)) , y  (x) = (x, y(x)) + (x, y(x))f (x, y(x)) ,
∂x ∂y
se concluye que el método de Taylor para el problema de Cauchy del enunciado
consiste en la aplicación de la iteración siguiente

h2 " ∂f ∂f #
yi+1 = yi + hf (xi , yi ) + (xi , yi ) + (xi , yi )f (xi , yi ) , i = 0, 1, . . . .
2 ∂x ∂y

Como en nuestro problema se tiene f (x, y) = x2 + y, las derivadas parciales de


primer orden de la función f son
∂f ∂f
(x, y) = 2x , (x, y) = 1 ,
∂x ∂y
y el método de Taylor toma la forma

h2 " #
yi+1 = yi + h(x2i + yi ) + 2xi + x2i + yi , i = 0, 1, . . . .
2
La aplicación de esta iteración permite realizar la tabla siguiente

n xn yn
0 0.0 1.0
1 0.1 1.105
2 0.2 1.22307
3 0.3 1.35769

de manera que se obtine la estimación y(0,3) ≈ y3 = 1,35769. Finalmente, el


valor exacto es

y(0,3) = 3e0,3 − (0,3)2 − 2(0,3) − 2 = 1,35958 ,

de manera que el error absoluto cometido es

Δ = |y(0,3) − y3 | = |1,35769 − 1,35958| = 0,00189 .


138 Ecuaciones Diferenciales Ordinarias

Problema 7.10 Consideremos la ecuación diferencial dy/dx = y cos x con la


condición inicial y(0) = 1.
(i) Demostrar que este problema de Cauchy tiene una única solución y(x).
(ii) Aproximar el valor de y(1) mediante el método de Heun con una longitud
de paso h = 1/2 y calcular, mediante el cálculo de la solución exacta, el
error absoluto cometido.

Solución. (i) El problema de Cauchy se puede escribir como y  = f (x, y) con


y(0) = 1 si definimos la función f (x, y) = y cos x. Puesto que tanto f como
∂f /∂y son funciones de clase C ∞ (R2 ), en particular son ambas funciones con-
tinuas en un entorno del punto (0, 1) ∈ R2 . Por lo tanto el problema de valor
inicial admite una única solución y(x).

(ii) Utilizando el método predictor-corrector de Heun (también llamado de


Euler mejorado), hallaremos una aproximación de la función y(x) solución del
problema de Cauchy para los valores xi = x0 + ih, es decir, xi = i/2 con
i = 0, 1, 2. Dicha tabulación (xi , yi ) para i = 0, 1, 2, donde y(xi ) ≈ yi se obtiene
a partir de los tres primeros términos de la sucesión generada de forma recurrente
mediante la iteración

yi+1 = yi + hf (xi , yi ) ,
h& ∗
'
yi+1 = yi + f (xi , yi ) + f (xi+1 , yi+1 ) .
2
En concreto se tiene la iteración

∗ 1
yi+1 = yi + yi cos xi , i = 0, 1, 2.
2
1 ∗
yi+1 = yi + [yi cos xi + yi+1 cos xi+1 ] ,
4
que da lugar a la tabulación

i xi yi
0 0 1
1 1/2 1.57909
2 1 2.23242

Por lo tanto, la aproximación efectuada es y(1) ≈ y2 = 2,23242.

Por otra parte, es fácil resolver de manera exacta el problema de Cauchy


planteado. Esto es debido a que la ecuación diferencial es de variables separables.
Separando las variables e integrando se tiene
! y ! x
dy
= cos x dx ,
1 y 0
7.2 Problemas resueltos 139

donde se han incorporado las condiciones iniciales del problema de Cauchy en los
lı́mites inferiores de las integrales. En definitiva, la solución general del problema
de Cauchy viene dada por y(x) = esin x .
Finalmente, el error absoluto Δ cometido en la aproximación y(1) ≈ y2 es
 
Δ = |y(1) − y2 | = esin 1 − 2,23242 = |2,31978 − 2,23242| = 0,08736 .

Problema 7.11 Obtener el error absoluto que comete el método de Euler cuan-
do aproxima y(1/2) mediante 2 iteraciones siendo y(x) la solución del problema
de Cauchy y  = (x − 1)y 2 con la condición inicial y(0) = 2.

Solución. El método de Euler para aproximar la solución del problema de


Cauchy y  = f (x, y), y(x0 ) = y0 consiste en realizar la iteración yi+1 = yi +
hf (xi , yi ), donde y(xi ) ≈ yi y la variable independiente toma valores equiespa-
ciados xi = x0 + ih.

En nuestro caso se tiene (x0 , y0 ) = (0, 2). Como además se quiere aproximar
y(1/2) mediante 2 iteraciones, es decir, y(1/2) ≈ y2 , se concluye que la condición
x2 = x0 +2h debe ser 1/2 = 0+2h de modo que la longitud de paso vale h = 1/4.
De este modo, la iteración de Euler que se debe realizar es
1
yi+1 = yi + hf (xi , yi ) = yi + (xi − 1)yi2 .
4
La tabla que se obtiene es la siguiente.

i xi yi
0 0 2
1 1/4 1
2 1/2 0.8125

Se tiene pues que el método de Euler con 2 iteraciones realiza la aproximación


y(1/2) ≈ y2 = 0,8125. Por definición, el error absoluto Δ cometido en esta
aproximación es Δ = |y(1/2) − 0,8125|, de modo que se necesita calcular el valor
exacto de y(1/2). Esto es fácil en este caso puesto que la ecuación diferencial
es de variables separables y se puede hallar la solución exacta del problema de
Cauchy y  = (x − 1)y 2 con y(0) = 2. En concreto, separando variables se obtiene
! y(x) ! x
dy
= (x − 1) dx .
2 y2 0

Realizando las integrales y despejando y(x) se obtiene


2
y(x) = ,
−x2 + 2x + 1
con lo cual y(1/2) = 8/7 = 1,1428. Se tiene finalmente

Δ = |y(1/2) − y2 | = |1,1428 − 0,8125| = 0,3303 .


140 Ecuaciones Diferenciales Ordinarias

Problema 7.12 Dos masas m1 y m2 están conectadas mediante un hilo inex-


tensible que pasa por dos poleas fijas, pequen̄as y sin fricción colocadas en los
puntos de coordenadas (0, 0) y (L, 0). La localización de las masas m1 y m2
en función del tiempo t viene dada por las coordenadas (x(t), H) con H una
altura constante y (L, y(t)) respectivamente, ver Figura 7.1. Es fácil ver que la
ecuación del movimiento para la masa m1 es

(H 2 + x2 )[H 2 m1 + (m1 + m2 )x2 ]ẍ = −m2 x[H 2 ẋ2 + g (H 2 + x2 )3 ] ,

siendo g la aceleración de la gravedad. Además, se puede demostrar que el


movimiento de la masa m1 es periódico en un entorno del origen del eje x.
Utilizar el método de Euler con una longitud de paso h = 0,5 para aproximar el
periodo T de dicho movimiento suponiendo las condiciones iniciales x(0) = 1,
ẋ(0) = 0. Datos: m1 = 1, m2 = 0,9, H = 0,1, g = 9,8.

Figura 7.1: Oscilador mecánico.

Solución. Pasando la ecuación diferencial del movimiento no lineal de segundo


orden a sistema de primer orden mediante el cambio ẋ = v se obtiene

m2 x[H 2 v 2 + g (H 2 + x2 )3 ]
ẋ = f (t, x, v) = v , v̇ = g(t, x, v) = − 2 .
(H + x2 )[H 2 m1 + (m1 + m2 )x2 ]
Utilizando ahora el método de Euler para aproximar la solución (x(t), v(t)) del
anterior sistema de ecuaciones diferenciales con la condición inicial (x(0), v(0)) =
(1, 0) se tiene la siguiente iteración

xn+1 xn f (tn , xn , vn )
= +h ,
vn+1 vn g(tn , xn , vn )
siendo tn = nh con h la longitud de paso. En nuestro caso se tiene
$ %
xn+1 xn √ vn 2 3
= + 0,5 2
0,9xn [9,8 (0,01+xn ) +0,01vn ] ,
vn+1 vn − 2 2
(0,01+xn )(0,01+1,9xn )
7.2 Problemas resueltos 141

con la condición inicial (x0 , v0 ) = (1, 0). Se genera de esta forma la siguiente
sucesión

n tn xn vn
0 0 1 0
1 0.5 1 -2.32042
2 1 -0.160208 -4.65339
3 1.5 -2.4869 5.06518
4 2 0.0456857 7.39007

Observamos que la sucesión de puntos (xn , vn ) con n = 0, 1, 2, 3, 4 realiza en el


plano de fases x − v un ciclo completo pasando de un cuadrante a otro entre
puntos consecutivos. Por supuesto, debido principalmente a los errores de trun-
camiento o discretización asociados al método de Euler y a la longitud de paso
utilizada, la sucesión de puntos obtenida no es periódica. De cualquier modo,
una aproximación del periodo T del movimiento de la masa m1 viene dado por

T ≈ t4 = 4h = 4 × 0,5 = 2 .

Problema 7.13 Un cohete tiene una velocidad v(t) respecto de un cierto sis-
tema de referencia inercial y sus gases de escape son expulsados a una veloci-
dad constante V respecto del cohete. Supóngase que 0 << v/c < 1, siendo
c = 3 × 108 m/s la velocidad de la luz en el vacı́o, es decir para describir el
movimiento del cohete es necesaria la teorı́a de la relatividad especial de Ein-
stein. En estas condiciones se puede demostrar que la ecuación del movimiento
del cohete es  3/2
dv dm0 v2
m0 +V 1− 2 =0,
dt dt c
donde m0 (t) es la masa variable del cohete en su sistema de referencia en reposo.
(i) Supongamos que se conoce la siguiente tabulación en el sistema interna-
cional de la función m0 (t)

ti 0 10 20 30 40
m0 (ti ) 1200 1100 1005 910 900

Calcular una tabulación aproximada de dm0 /dt para los tiempos ti = 10i,
con i = 0, 1, 2, 3, 4, utilizando de entre las fórmulas de diferencias hacia
adelante, hacia atrás y centradas, la más adecuada en cada caso.
(ii) Utilizando el resultado del apartado anterior, calcular mediante el método
de Euler con una longitud de paso adecuada, una aproximación de v(20)
sabiendo que V = 103 m/s y v(0) = 104 .
142 Ecuaciones Diferenciales Ordinarias

Solución. (i) Las fórmulas de diferencias hacia adelante, hacia atrás y centradas
son
dm0 m0 (ti + h) − m0 (ti )
(ti ) = + O(h) ,
dt h
dm0 m0 (ti ) − m0 (ti − h)
(ti ) = + O(h) ,
dt h
dm0 m0 (ti + h) − m0 (ti − h)
(ti ) = + O(h2 ) ,
dt 2h
respectivamente, siendo h la longitud de paso. Siempre que sea posible (es decir,
en todos los nodos interiores) utilizaremos la fórmula de diferencias centradas
puesto que es la que contiene un menor error de truncamiento. Para el primer
y último nodo sólo se pueden usar las fórmulas de diferencias hacia adelante y
hacia atrás respectivamente. En definitiva, tomando la longitud de paso h = 10,
se tiene
dm0 m0 (10) − m0 (0) 1100 − 1200
(0) ≈ = = −10 ,
dt 10 10
dm0 m0 (20) − m0 (0) 1005 − 1200 39
(10) ≈ = =− ,
dt 20 20 4
dm0 m0 (30) − m0 (10) 910 − 1100 19
(20) ≈ = =− ,
dt 20 20 2
dm0 m0 (40) − m0 (20) 900 − 1005 21
(30) ≈ = =− ,
dt 20 20 4
dm0 m0 (40) − m0 (30) 900 − 910
(40) ≈ = = −1 .
dt 10 10
(ii) La función v(t) es la solución del problema de Cauchy

dv
= f (t, v) , v(0) = 104 ,
dt
siendo
 3/2
V dm0 v2
f (t, v) = − (t) 1 − 2 .
m0 (t) dt c
Teniendo en cuenta que c = 3 × 108 , V = 103 y los valores m0 (ti ) y dm 0
dt (ti )
para los tiempos ti = 10i, con i = 0, 1, 2, 3, 4, se pueden obtener del apartado
anterior, podemos aplicar el método de Euler

vi+1 = vi + hf (ti , vi ) , i = 0, 1, 2, 3 ,

donde v(ti ) ≈ vi . Tomaremos h = 10 de modo que los tiempos discretizados de


forma equiespaciada sean justo ti = 10i, es decir, los de la tabulación de que
disponemos en el apartado anterior. De esta forma se tiene

v1 = v0 + 10f (t0 , v0 ) = 104 + 10f (0, 104 )


7.2 Problemas resueltos 143

 3/2
103 dm0 (104 )2
= 104 − 10 × (0) 1 −
m0 (0) dt (3 × 108 )2
 3/2
4 103 (104 )2
= 10 − 10 × × (−10) 1 − = 10083,3 ,
1200 (3 × 108 )2
v2 = v1 + 10f (t1 , v1 ) = 10083,3 + 10f (10, 10083,3)
 3/2
103 dm0 (10083,3)2
= 10083,3 − 10 × (10) 1 −
m0 (10) dt (3 × 108 )2
 3/2
103 39 (10083,3)2
= 10083,3 − 10 × − 1− = 10171,9
1100 4 (3 × 108 )2

Concluimos que v(20) ≈ v2 = 10171,9 m/s.

Problema 7.14 Un proyectil de masa m es lanzado desde la superficie terrestre


verticalmente hacia arriba con una velocidad inicial v0 . El proyectil es frenado
debido a la acción de la gravedad y mediante una fuerza de fricción con el aire
proporcional a la velocidad v del proyectil.

(i) Suponiendo la gravedad constante, aplicar las leyes de la dinámica clásica


y hallar la ecuación diferencial que verifica la función v(t), siendo t el
tiempo.
(ii) Sabiendo que la masa es m = 2, la constante de proporcionalidad en la
fuerza de fricción k = 4 y la velocidad inicial v0 = 20, utilizar el método
de Heun con una longitud de paso h = 1/2 para aproximar el tiempo τ
que tarda el proyectil en llegar al punto de altura máximo.
(iii) Calcular el error absoluto cometido en el apartado anterior.

Solución. (i) Tomando el sistema de referéncia en la dirección vertical y posi-


tivo en el sentido contrario a la gravedad y aplicando la segunda ley de Newton
se obtiene que la ecuación diferencial que verifica la función v(t), siendo t el
tiempo, es
mv̇ = −mg − kv ,

siendo k > 0 la constante de proporcionalidad en la fuerza de fricción.

(ii) Reescribimos la ecuación diferencial del apartado anterior despejando la


derivada y obtenemos

k
v̇ = f (t, v) = −g − v = −9,8 − 2v
m
El problema de Cauchy está formado por la anterior ecuación diferencial acom-
pan̄ada de la condición inicial v(0) = v0 = 20. Aplicaremos el método de Heun
para aproximar la solución v(t). Dicho método consiste en realizar la iteración
144 Ecuaciones Diferenciales Ordinarias

predictor–corrector
∗ 1
vi+1 = vi + hf (ti , vi ) = vi + (−9,8 − 2vi ) ,
2
h& ∗
'
vi+1 = vi + f (ti , vi ) + f (ti+1 , vi+1 )
2
1& ∗
'
= vi + −19,6 − 2(vi + vi+1 ) ,
4
donde los tiempos ti son equiespaciados con longitud de paso h, es decir, ti =
ih = i/2 con i = 0, 1, 2, . . .. De este modo se obtienen las aproximaciones v(ti ) ≈
vi dadas en la siguiente tabla

i ti vi
0 0 20
1 0.5 7.55
2 1 1.325
3 1.5 -1.7875

Hemos parado las iteraciones puesto que el tiempo τ verificará v(τ ) = 0.


Entonces, el método de Heun predice que τ ∈ (1, 1,5). Una aproximación es, por
ejemplo, el punto medio del intervalo τ ≈ 1,25.

(iii) Para calcular el error absoluto cometido en el apartado anterior, halla-


remos τ de manera exacta. En primer lugar, resolvemos el problema de valor
inicial
k
v̇ = −g − v , v(0) = v0 .
m
Separando las variables en la ecuación diferencial e integrando se tiene
! v ! t
dv
k
= − dt ,
v0 g + m v 0

de modo que
 
m k k
v(t) = −g + g + v0 exp − t .
k m m
Con los datos del problema se tiene
1
v(t) = [−9,8 + 49,8 exp (−2t)] ,
2
de modo que, la ecuación v(τ ) = 0 tiene por solución

m v0 k
τ= ln 1 + = 0,8128 .
k mg
El error absoluto cometido en el apartado anterior es
Δ = |0,8128 − 1,25| = 0,4372 .
7.2 Problemas resueltos 145

Problema 7.15 Una viga horizontal, colocada a lo largo del eje x se pandea
bajo la influencia de diversas cargas verticales. Según la teorı́a de la elasticidad,
la curva de flexión y(x) se puede determinar, para pequen̄as flexiones, mediante
la ecuación diferencial lineal de segundo orden

d2 y
EI = M (x) ,
dx2
siendo M (x) el momento flector en x, E el módulo de Young del material e I
el momento de inercia de una sección transversal de la viga respecto a su eje
central.
(i) Se tiene una viga con un extremo (situado en x = 0) empotrado en una
dy
pared, es decir, y(0) = dx (0) = 0 y tal que M (x) = 10(1 − x) con EI = 2.
Aproximar la flexión de la viga en x = 2 mediante el método de Runge–
Kutta de orden 4 con una longitud de paso h = 1.
(ii) Hallar la flexión exacta y(x) de la viga del apartado anterior. ¿Se cal-
culó una buena aproximación en el apartado (i)?

Solución. (i) Con los datos del problema, la flexión y(x) de la viga verifica la
ecuación diferencial
d2 y
= 5(1 − x) ,
dx2
dy
con las condiciones iniciales y(0) = dx (0) = 0. Realizando el cambio de variable
dy
usual dx = z, reescribimos el anterior problema de Cauchy de segundo orden
como un problema de Cauchy de primer orden de la forma

y  = z , z  = 5(1 − x) , (y(0), z(0)) = (0, 0) ,

donde la prima indica derivada respecto de x. Escrito en forma vectorial, se


tiene
w = f (x, w) , w(0) = (0, 0) .
Aquı́, x ∈ R es la variable independiente, w = (y, z)t ∈ R2 es la variable vectorial
dependiente y f (x, w) = (z, 5(1 − x))t ∈ R2 . La iteración RK4 con longitud de
paso h consiste en
h
wi+1 = wi + (k1 + 2k2 + 2k3 + k4 ) ,
6
siendo

k1 = f (xi , wi ) ,

h h
k2 = f xi + , wi + k1 ,
2 2

h h
k3 = f xi + , wi + k2 ,
2 2
k4 = f (xi + h, wi + hk3 ) .
146 Ecuaciones Diferenciales Ordinarias

Nos piden aproximar la flexión de la viga en x = 2, es decir, y(2). Para


ello calcularemos w(2) = (y(2), z(2))t mediante el método de Runge–Kutta de
orden 4 con una longitud de paso h = 1. La tabla que se genera es la siguiente:

i xi wi = (yi , zi )
0 0 (0,0)
1 1 (5/3 , 5/2)
2 2 (10/3 , 0)

Se tiene pues que y(2) ≈ y2 = 10/3.

Nota: En este problema se puede también


 utilizar
el método RK4 para la
 x2
ecuación escalar y = f (x) con f (x) = 5 x − 2 como se puede ver en el sigu-
iente apartado.

(ii) La flexión y(x) de la viga verifica la ecuación diferencial

d2 y
= 5(1 − x) ,
dx2

dy
con las condiciones iniciales y(0) = dx (0) = 0. Podemos hallar la solución y(x)
de manera exacta integrando dos veces la ecuación diferencial respecto de x.
Integrando una vez se tiene que
!
dy x2
=5 (1 − x) dx + C1 = 5 x − + C1 ,
dx 2

siendo C1 una constante arbitraria que calculamos con la condición inicial


dy
dx (0) = 0, es decir, C1 = 0. Integrando de nuevo obtenemos

! 2
x2 x x3
y(x) = 5 x− dx + C2 = 5 − + C2 ,
2 2 6

siendo C2 una constante arbitraria que calculamos con la condición inicial y(0) =
0, es decir, C2 = 0. En resumen, la flexión exacta de la viga es

5
y(x) = (3 − x)x2 ,
6

de modo que y(2) = 10/3. Entonces, el método RK4 del apartado (i) calculó y(2)
de manera exacta, es decir, con un error absoluto cero.
7.2 Problemas resueltos 147

Problema 7.16 Consideremos un circuito eléctrico LRC que consta de una


bobina de inductancia L, una resistencia R y un condensador de capacidad C.
Conectamos los dispositivos en serie con un generador de corriente que propor-
ciona un voltaje dependiente del tiempo V (t). Entonces, se sabe que la carga
eléctrica Q(t) almacenada en el condensador satisface la ecuación diferencial

Q
LQ̈ + RQ̇ + = V (t) .
C
Si L = R = 2, C = 1 y V (t) = 3 sin(t), aproximar mediante el método de Euler
con una longitud de paso h = 1 la carga del condensador para tiempo t = 2,
sabiendo que inicialmente tenı́a una carga Q(0) = 3. Recordar que la intensidad
de corriente I(t) que circula es, por definción, I = Q̇ siendo I(0) = 0.

Solución. Con los datos del enunciado, la carga eléctrica Q(t) almacenada en el
condensador satisface la ecuación diferencial de segundo orden 2Q̈ + 2Q̇ + Q =
3 sin(t). Esta ecuación se escribe como un sistema de primer orden de la forma

1
Q̇ = I , I˙ = [3 sin(t) − 2I − Q] .
2
Se satisface la condición inicial (Q(0), I(0)) = (3, 0). En definitiva, definiendo el
vector x = (Q, I) ∈ R2 y la función f : R3 → R2 de la forma

1
f (t, x) = I, [3 sin(t) − 2I − Q] ,
2

la función vectorial x(t) es la solución del problema de Cauchy

ẋ = f (t, x) , x(0) = (3, 0) .

Utilizando el método de Euler con una longitud de paso h = 1, se tiene que las
aproximaciones x(tn ) = (Q(tn ), I(tn )) ≈ xn = (Qn , In ) ∈ R2 para los tiempos
equiespaciados tn = 0 + nh = n con n ∈ N vienen dadas de forma recurrente
por la iteración xn+1 = xn + hf (tn , xn ). Se tiene pues

Qn+1 Qn In Q0 3
= + 1 , = .
In+1 In 2 [3 sin(tn ) − 2In − Qn ] I0 0

Realizando la iteración se llega a la tabla siguiente.

n tn (Qn , In )
0 0 (3,0)
1 1 (3, -3/2)
2 2 (1.5, -0.237794)

Se tiene entonces la aproximación buscada Q(2) ≈ Q2 = 1,5.


148 Ecuaciones Diferenciales Ordinarias

Problema 7.17 Considerar el problema de Cauchy


dy xy
= 2 , y(1) = 1 .
dx 3x − y 4

(i) Estudiar la existencia y unicidad de la solución.


(ii) Averiguar si alguna de las siguientes funciones es la solución

(a) y(x) = x , (b) y(x) = x2 .

(iii) Aproximar el valor de la solución en x = 2 mediante el método de Heun


con una longitud de paso 0,5. Calcular también el error absoluto cometido.

Solución. (i) El problema de Cauchy y  = f (x, y), y(1) = 1 con


xy
f (x, y) = ,
3x2 − y4
tiene una única solución puesto que la función f (x, y) es racional y el denomi-
nador no se anula en el punto (x0 , y0 ) = (1, 1). En particular esto implica que
las funciones f y ∂f /∂y son continuas en un entorno del punto (1, 1) y por lo
tanto se puede utilizar el Teorema de Picard–Lindelöf concluyendo la existencia
y unicidad de la solución del problema de Cauchy.

(ii) Una función y(x) de clase C 1 en un intervalo I ⊂ R que contenga a


x = 1 será solución del problema de Cauchy si verifica y  (x) = f (x, y(x)) para
todo x ∈ I y además satisface la condición inicial y(1) = 1. Es obvio que esta
condición inicial es satisfecha por las dos funciones del enunciado del problema.
Veamos pues si satisfacen la ecuación diferencial:

(a) Sea y(x) = x. Entonces se tiene que
√ √
1 x x 1 x
y  (x) − f (x, y(x)) = √ − 2 √ 4 = √ − = 0,
2 x 3x − ( x) 2 x 2x

de modo que la función y(x) = x satisface la ecuación diferencial y por
lo tanto es la solución del problema de Cauchy.
(b) Sea y(x) = x2 . Es obvio que√esta función no puede ser solución del problema
de Cauchy debido a que x lo es y la unicidad de la solución. De todos
modos veamos que la función y(x) = x2 no satisface la ecuación diferencial.

xx2 x
y  (x) − f (x, y(x)) = 2x − 2 2 4
= 2x − = 0 .
3x − (x ) 3 − x6

(iii) Sea y(x) la solución del problema de Cauchy y  = f (x, y), y(x0 ) = y0 .
Discretizando equiespaciadamente la variable independiente con una longitud de
paso h, definimos xi = x0 + ih con i = 0, 1, 2, . . .. Si aproximamos y(xi ) ≈ yi , el
7.2 Problemas resueltos 149

método de Heun obtiene dichos valores mediante el siguiente método predictor–


corrector:

yi+1 = yi + hf"(xi , yi ) , #
h ∗
yi+1 = yi + 2 f (xi , yi ) + f (xi+1 , yi+1 ) , para i = 0, 1, . . .

En nuestro caso se tiene h = 1/2 de modo que


∗ 1 xi y i
yi+1 = yi + 2 3x2 4 ,
" i −yi ∗ #
1 xi yi xi+1 yi+1
yi+1 = yi + 4 3x2i −yi4 + 3x2i+1 −yi+1
∗4 , para i = 0, 1, . . .

Teniendo en cuenta que (x0 , y0 ) = (1, 1), realizamos la anterior iteración y


mostramos los resultados en la tabla siguiente.

i xi yi∗ yi
0 1 1 1
1 1.5 1.25 1.23379
2 2 1.44255 1.43221

Se tiene pues la aproximación y(2) ≈ y2 = 1,43221.



Puesto que sabemos del apartado (ii) que la solución exacta es y(x) = x,
el error absoluto Δ cometido en la anterior aproximación es

Δ = |y(2) − y2 | = | 2 − 1,43221| = 0,0179964 .

Problema 7.18 Consideremos un péndulo simple de longitud  sin rozamiento.


Se puede demostrar que, si el punto de suspensión del péndulo sigue la trayecto-
ria plana (x(t), y(t)) parametrizada con el tiempo t en un sistema de referencia
cartesiano, entonces el ángulo ϕ que forma el péndulo con la vertical (eje y)
verifica la ecuación diferencial no lineal

ϕ̈ + (ÿ + g) sin ϕ + ẍ cos ϕ = 0 ,

siendo g la aceleración de la gravedad. Si  = 1, g = 9,8 y la trayectoria del punto


de suspensión es (x(t), y(t)) = (t2 + t, 7t), aproximar el valor de la velocidad
angular ϕ̇ cuando el tiempo es t = 2 sabiendo que inicialmente el péndulo se
encuentra en el estado (ϕ(0), ϕ̇(0)) = (3, 1). Usar el método de Euler con una
longitud de paso h = 1.

Solución. Teniendo en cuenta que la posición en función del tiempo del punto
de suspensión es (x(t), y(t)) = (t2 + t, 7t), su aceleración es (ẍ(t), ÿ(t)) = (2, 0).
Entonces, introduciendo el dato  = 1, la función ϕ(t) satisface el problema de
Cauchy de segundo orden

ϕ̈ = −g sin ϕ − 2 cos ϕ , (ϕ(0), ϕ̇(0)) = (3, 1) .


150 Ecuaciones Diferenciales Ordinarias

Definimos la velocidad angular w como ϕ̇ = w y transformamos el problema de


Cauchy de segundo orden anterior en un problema de Cauchy de primer orden.
En concreto,
ż = f (t, z) , z(0) = (3, 1) ,
siendo z = (ϕ, w) ∈ R2 y f (t, z) = (w, −g sin ϕ − 2 cos ϕ) ∈ R2 . Tomando los
tiempos equiespaciados ti = t0 + ih = i con i ∈ N y aplicando el método de
Euler zi+1 = zi + hf (ti , zi ), se obtiene la siguiente iteración:

ϕi+1 ϕi wi
= +
wi+1 wi −g sin ϕi − 2 cos ϕi
con la condición inicial (ϕi , wi ) = (3, 1). Realizando dicha iteración, se obtiene
la tabla siguiente:

i ti (ϕi , wi )
0 0 (3,1)
1 1 (4, 1.59701)
2 2 (5.59701, 10.321)

Se concluye que la velocidad angular w(2) se aproxima por w(2) ≈ w2 = 10,321.

Problema 7.19 Sea z(t) la solución del problema de valor inicial ż = ln t,


z(1) = 3. Obtener el error absoluto que se comete al aproximar el valor de
z(2) mediante el método de Taylor de segundo orden con una longitud de paso
h = 1/2.

Solución. La solución z(t) del problema de valor inicial ż = f (t, z) = ln t,


z(1) = 3, se puede aproximar mediante el método de Taylor de segundo orden
con una longitud de paso h = 1/2 de la forma
 
h2 ∂f (ti , zi ) ∂f (ti , zi )
zi+1 = zi + hf (ti , zi ) + + f (ti , zi ) .
2 ∂t ∂z
En nuestro problema, las derivadas parciales de primer orden de la función f
son
∂f (t, z) 1 ∂f (t, z)
= , =0,
∂t t ∂z
de manera que el método de Taylor adopta la forma
1 1
zi+1 = zi + ln ti + .
2 8ti
Realizando esta iteración con el valor inicial (t0 , z0 ) = (1, 3) obtenemos la tabla
siguiente
i ti zi
0 1 3
1 3/2 25/8
2 2 3.41107
7.2 Problemas resueltos 151

Se finaliza con la aproximación z(2) ≈ z2 = 3,41107.

El problema de valor inicial ż = ln t, z(1) = 3 se puede resolver de manera


exacta puesto que la ecuación diferencial es de variables separables. Se tiene
t t
entonces que z(t) − z(1) = 1 ln s ds, es decir, z(t) = 3 + 1 ln s ds. La integral
que aparece se puede calcular mediante integración por partes obteniéndose
! t " #t ! t
ln s ds = s ln s − ds = t ln t − t + 1 .
1 1 1

En definitiva z(t) = t ln t − t + 4, de modo que z(2) = 2(1 + ln 2) = 3,38629.


Entonces, se concluye que el error absoluto Δ que se comete al aproximar el
valor de z(2) mediante el método de Taylor de segundo orden es

Δ = |z(2) − z2 | = |3,38629 − 3,41107| = 0,02478 .


Capı́tulo 8

Solución de Ecuaciones no
Lineales

8.1. Resumen de teorı́a


Son muchos los problemas en ciencia e ingenierı́a que se pueden modelar
matemáticamente como una ecuación f (x) = 0, siendo f una función de la
variable x. Los valores de x soluciones de dicha ecuación son llamados ceros de
la función f o raices de la ecuación. Existen muchas de estas ecuaciones que no
admiten que su solución pueda ser expresada a través de funciones elementales.
El objetivo del presente capı́tulo es el estudio de algunas de las técnicas
numéricas que nos permitan abordar este tipo de problemas. Es importante
destacar el hecho de que las técnicas que estudiaremos en este capı́tulo son
siempre iterativas, es decir, partiremos de una aproximación inicial x0 del cero
exacto x∗ de f y posteriormente construiremos una sucesión de números reales
{xn }∞ ∗
n=0 que converja hacia x cuando n → ∞.

Teorema 8.1 (Bolzano) Sea f una función continua en [a, b] tal que cambia
de signo en los extremos, es decir, f (a)f (b) < 0. Entonces, existe al menos un
ξ ∈ (a, b) tal que f (ξ) = 0.
El algoritmo de bisección se basa en el teorema de Bolzano y consiste en
ir estrechando de manera sistemática el intervalo en el cual una función con-
tinua cambia de signo. De esta forma conseguiremos obtener un intervalo ar-
bitrariamente pequen̄o que contenga el cero de la función. El método de bisec-
ción para una función f ∈ C[a0 , b0 ] procede de la forma siguiente: (a0 , b0 ) ⊃
(a1 , b1 ) ⊃ · · · ⊃ (an , bn ) ⊃ · · ·. La sucesión de puntos medios {cn }∞
n=0 siendo
cn = (an + bn )/2, verifica lı́mn→∞ cn = x∗ con |x∗ − cn | ≤ (b − a)/2n+1 .
Método de Newton-Raphson:
f (xn )
xn+1 = xn − .
f  (xn )

153
154 Solución de Ecuaciones no Lineales

Teorema 8.2 (Convergencia de la sucesión de Newton-Raphson)


Supongamos que f ∈ C 2 [a, b] con f (a)f (b) < 0 y f  (x) y f  (x) son de
signo constante ∀x ∈ [a, b]. Entonces, tomando x0 ∈ {a, b} que verifique
signf (x0 ) = signf  (x0 ), la sucesión de Newton-Raphson {xn }n∈N converge
hacia la única raı́z de f en [a, b].

Método de la Secante:
xn − xn−1
xn+1 = xn − f (xn ) .
f (xn ) − f (xn−1 )

Consideremos un sistema de n ecuaciones con n incógnitas x1 , x2 , . . . , xn .


Dicho sistema puede ser escrito de la forma f (x) = 0, siendo

x = (x1 , x2 , . . . , xn )T .

La aplicación f : Rn → Rn tiene las funciones componentes fi : Rn → R para


i = 1, 2, . . . , n, es decir

f (x) = (f1 (x), f2 (x), . . . , fn (x))T .

Sea x∗ un cero de la función f , es decir f (x∗ ) = 0. El método de Newton-Raphson


para aproximar las soluciones del sistema f (x) = 0 es

xi+1 = xi − (Df (xi ))−1 f (xi ) con i = 0, 1, . . . , (8.1)

siendo Df (xi ) la matriz Jacobiana de la función f en el punto xi , es decir


⎛ ∂f1 (xi ) ∂f1 (xi ) ⎞
∂x1 ··· ∂xn
⎜ .. .. ⎟
Df (xi ) = ⎝ . . ⎠ .
∂fn (xi ) ∂fn (xi )
∂x1 ··· ∂xn

Si la matriz Jacobiana Df (xi ) es no singular, es decir si det Df (xi ) = 0, entonces


se puede realizar la iteración.

8.2. Problemas resueltos


Problema 8.1 Consideremos el intervalo I = [0, 1/2] y sea g : I → I una
función derivable en I cuya derivada está acotada de la forma |g  (x)| ≤ 1/2
para todo x ∈ I. Partiendo de un punto arbitrario x0 ∈ I, se realiza la iteración
xn+1 = g(xn ).
(i) Explicar si dicha iteración será convergente o no. Si lo fuera, es decir si
lı́mn→∞ xn = x∗ , averiguar el valor g(x∗ ).
(ii) Calcular una cota superior de |x8 − x∗ | en función de la distancia entre los
dos primeros términos de la sucesión |x1 − x0 |.
8.2 Problemas resueltos 155

Solución. La solución del problema viene dada por el siguiente teorema: Si


g ∈ C[a, b] y g([a, b]) ⊆ [a, b], entonces existe almenos un punto fijo x∗ ∈ [a, b]
de la función g. Si además g ∈ D(a, b) y es contractiva, es decir |g  (x)| ≤ L < 1
para todo x ∈ (a, b) entonces g tiene un único punto fijo x∗ ∈ [a, b]. Además la
sucesión generada mediante la iteración xn+1 = g(xn ) converge hacia x∗ para
Ln
cualquier vlor inicial x0 ∈ [a, b]. Además |x∗ − xn | ≤ 1−L |x1 − x0 |.

(i) Como la función del enunciado es g : I → I, entonces si se toma I = [a, b]


es evidente que g([a, b]) ⊆ [a, b]. Además, como g es una función derivable en I
entonces se tiene que también es continua en I, es decir g ∈ C[a, b]. Finalmente,
del enunciado se desprende que la constante L = 1/2 < 1. Se concluye que
la sucesión generada con la recurrencia xn+1 = g(xn ) converge hacia el único
punto fijo x∗ de g y por lo tanto g(x∗ ) = x∗ .

(ii) La cota superior es

(1/2)8 1
|x∗ − x8 | ≤ |x1 − x0 | = |x1 − x0 | = 0,0078125|x1 − x0 |.
1 − 1/2 128

Problema 8.2 Considerar el polinomio P (x) = x5 + 5x + 8.


(i) Encontrar dos números enteros negativos y consecutivos a y a+1 de manera
que P (x) tenga una única raı́z x∗ ∈ I = [a, a + 1].
(ii) Averiguar cual de los dos extremos del intervalo I es el adecuado para ini-
ciar la iteración de Newton-Raphson si se pretende asegurar la convergen-
cia hacia x∗ de la sucesión obtenida. Calcular la aproximación x∗ ≈ x2 .

Solución. (i) Como P (x) es un polinomio entonces P es continuo en todo R.


Entonces, si encontramos dos números enteros consecutivos en los cuales cambie
el signo de P se podrá aplicar el Teorema de Bolzano y concluir que entre esos dos
puntos existe al menos una raı́z de P . En concreto se tiene que P (−1) = 2 > 0
y P (−2) = −34 < 0 de manera que existe al menos un x∗ ∈ [−2, −1].
Para demostrar que x∗ es único vamos a demostrar que P (x) tiene derivada
de signo constante en [−2, −1] de manera que sólo puede cortar una vez al eje
de abscisas. En concreto se tiene que P  (x) = 5x4 + 5 = 5(x4 + 1) > 0 para todo
x ∈ R.

(ii) Para resolver la segunda cuestión utilizaremos el siguiente teorema: Sea


f ∈ C 2 [a, b] con f (a)f (b) < 0 tal que f  (x) y f  (x) tienen signo constante para
todo x ∈ [a, b]. Sea c ∈ {a, b} tal que signf (c) = signf  (c). Entonces el método
de Newton-Raphson para f con valor inicial x0 = c converge hacia la única raı́z
de f en [a, b].
Ya se ha visto que P  (x) tiene signo constante. Como P  (x) = 20x3 < 0
para todo x < 0 se tiene que P  es negativa en [−2, −1]. Finalmente, como
signP (−2) = signP  (−2), el anterior teorema asegura la convergencia de la
sucesión generada con el método de Newton-Raphson para P tomando como
156 Solución de Ecuaciones no Lineales

valor inicial x0 = −2.

Realizando la iteración de Newton-Raphson

P (xn ) x5 + 5xn + 8
xn+1 = xn − 
= xn − n 4
P (xn ) 5(xn + 1)

tomando x0 = −2 se obtiene

n xn
0 -2
1 -1.58025
2 -1.27709

Se concluye que x∗ ≈ x2 = −1,27709.

Problema 8.3 Considerar la función g(x) = sinh x + sin x − 3x.


(i) Demostrar que g(x) tiene un extremo relativo en el intervalo [1, 2].
Indicación: Las curvas y = sinh x, y = sin x no tienen ningún punto de
corte con abscisa en el intervalo [1, 2].
(ii) Aproximar la abscisa x∗ de dicho extremo mediante dos iteraciones del
método de Newton-Raphson. Comenzar la recurrencia en el valor más ade-
cuado x0 = 1 o bien x0 = 2. Indicación: Ver la figura adjunta.

cosh x - cos x

10

x
0.5 1 1.5 2 2.5 3

Solución. (i) Una condición necesaria para que la función g(x) tenga un ex-
tremo relativo en x∗ es que la función f (x) := g  (x) se anule para x = x∗ . Note-
mos que f (x) = cosh x+cos x−3 es una función continua en todo R y por lo tanto
en particular f ∈ C[1, 2]. Como además f (1)f (2) = (−0,916617) × 0,346049 < 0
se puede aplicar el Teorema de Bolzano de manera que se concluye con la existen-
cia de al menos un valor x∗ ∈ (1, 2) tal que f (x∗ ) = 0. Una condición suficiente
para que x∗ sea un extremo relativo de g es que g  (x∗ ) = 0. Pero esta condición
está garantizada puesto que si las curvas y = sinh x, y = sin x no tiene ningún
punto de corte en el intervalo [1, 2] entonces la función g  (x) = sinh x − sin x no
8.2 Problemas resueltos 157

tiene ningún zero en dicho intervalo.

(ii) El extremo relativo x∗ de g(x) viene dado por la raı́z de la función f (x) en
el intervalo [1, 2]. Recordemos que si f ∈ C 2 [1, 2] y además f  (x) tiene signo con-
stante para toda x ∈ [1, 2] entonces la recta tangente trazada desde el extremo
del intervalo [1, 2] adecuada para hallar la raı́z de f por el método de Newton-
Raphson es el extremo p (con p = 1 o p = 2) en el cual sigf (p) = sigf  (p). A
partir de la gráfica adjunta en el enunciado se comprueba que f  (x) tiene signo
constante en [1, 2]. Además, como f (2) = 0,3460 > 0 y f  (2) = 4,1783 > 0
resulta p = 2.

La iteración de Newton-Raphson viene dada por


f (xn ) cosh xn + cos xn − 3
xn+1 = xn − = xn − , x0 = 2
f  (xn ) sinh x − sin x
de donde se obtiene la siguiente tabla

n xn f (xn )
0 2 0.346049
1 1.87266 0.0323507
2 1.8581 0.000382472

La aproximación buscada es x∗ ≈ x2 = 1,8581.

Problema 8.4 La ecuación de ondas bidimensional c2 (uxx + uyy ) = utt , donde


c es la velocidad constante de propagación de la onda, se utiliza en ingenierı́a
mecánica para modelar las vibraciones u(x, y, t) de una placa elástica rectangu-
lar en las coordenadas espaciales (x, y) para tiempo t. Tomando el sistema de
referencia cartesiano x − y con origen en el vértice inferior izquierdo de la placa
y sabiendo que, para un cierto instante de tiempo, el despazamiento de la placa
respecto de su posición de equilibrio viene dado por la función

u(x, y) = sin x + sin y + cos(x + y) ,

se pretende hallar en qué punto (x∗ , y ∗ ) de la placa cuadrada de lado 2π se tiene


un mı́nimo relativo de u(x, y).
(i) Aproximar dicho punto mediante dos iteraciones del método de Newton,
sabiendo que (x∗ , y ∗ ) ∈ [4π/3, 7π/4] × [4π/3, 7π/4]. Comenzar la iteración
en el extremo inferior izquierdo del anterior cuadrado.
(ii) Hallar los errores absolutos cometido en el anterior apartado sabiendo que
la solución exacta es (x∗ , y ∗ ) = (3π/2, 3π/2).
(iii) Demostrar que la solución hallada es la única.

Solución. (i) Puesto que se ha de hallar un mı́nimo relativo de la función


u(x, y), en primer lugar obtendremos el sistema de ecuaciones que debe verificar
158 Solución de Ecuaciones no Lineales

dicho punto, es decir, ∇u(x, y) := (ux (x, y), uy (x, y)) = (0, 0). Calculando las
derivadas paciales de u se tiene

ux (x, y) = cos x − sin(x + y) = 0 , uy (x, y) = cos y − sin(x + y) = 0 . (8.2)

La matriz Jacobiana de la aplicación ∇u calculada en el punto (xn , yn ) es



uxx (xn , yn ) uxy (xn , yn )
D∇u (xn , yn ) =
uyx (xn , yn ) uyy (xn , yn )

− sin xn − cos(xn + yn ) − cos(xn + yn )
= ,
− cos(xn + yn ) − sin yn − cos(xn + yn )

siendo su matriz inversa



−1 1 − sin yn − cos(xn + yn ) cos(xn + yn )
D∇u (xn , yn ) = ,
δ cos(xn + yn ) − sin xn − cos(xn + yn )

donde δ := det[D∇u (xn , yn )] = sin xn cos(xn + yn ) + sin yn cos(xn + yn ) +


sin xn sin yn .
La iteración de Newton para aproximar una solución del sistema ∇u(x, y) =
(0, 0) viene dada por

xn+1 xn −1 ux (xn , yn )
= − D∇u (xn , yn ) . (8.3)
yn+1 yn uy (xn , yn )

En el primer paso, tomando el valor inicial (x0 , y0 ) = (4π/3, 4π/3) se tiene



−1 2 1 + 3 −1 √
D∇u (x0 , y0 ) = √ ,
3+2 3 −1 1+ 3
√ √
(ux (x0 , y0 ), uy (x0 , y0 )) = (−[1 + 3]/2, −[1 + 3]/2) ,

de manera que el primer iterado vale


√ $ √ %
x1 4π 2 1+ 3 −1 √ − 1+2√3
= 3
4π − √
y1 3 3+2 3 −1 1+ 3 − 1+2 3
⎛ √ ⎞
9+12π+(3+8π) 3


4,92084
= ⎝ 9+6 3 √
9+12π+(3+8π) 3
⎠≈ .
√ 4,92084
9+6 3

Los cálculos en el segundo paso son los siguientes.


−1 −1
D∇u (x1 , y1 ) = D∇u (4,92084, 4,92084)

0,689186 −0,33294
= ,
−0,33294 0,689186
(ux (x1 , y1 ), uy (x1 , y1 )) = (ux (4,92084, 4,92084), uy (4,92084, 4,92084))
= (0,611877, 0,611877) .
8.2 Problemas resueltos 159

Ası́, el segundo iterado del método de Newton es



x2 4,92084 0,689186 −0,33294 0,611877
= −
y2 4,92084 −0,33294 0,689186 0,611877

4,70286
= .
4,70286
Se tiene pues la aproximación (x∗ , y ∗ ) ≈ (x2 , y2 ) = (4,70286, 4,70286).

(ii) Los errores absolutos cometidos son


 
 3π 

Δx∗ = |x − x2 | =   − 4,70286 = 9,529 × 10−3 ,
2
 
 3π 

Δy∗ = |y − y2 | =   − 4,70286 = 9,529 × 10−3 .
2
(iii) Resolvamos de manera exacta el sistema (8.2). En primer lugar, despe-
jando cos x y cos y de la primera y segunda ecuación respectivamente del sistema
(8.2) se obtiene que cos x = cos y, de manera que, recordando que 0 ≤ x ≤ 2π
y 0 ≤ y ≤ 2π, se tiene x = y o bien x + y = 2π. Tenemos pues dos casos por
analizar.
Si x+y = 2π, de la primera ecuación del sistema (8.2) se tiene cos x = 0, es
decir x = π/2 o x = 3π/2. En definitiva se obtiene la pareja de soluciones

∗ ∗ π 3π ∗ ∗ 3π π
(x1 , y1 ) = , , (x2 , y2 ) = , .
2 2 2 2

Sea x = y. En este caso, la primera ecuación del sistema (8.2) adopta


la forma cos x = sin(2x), es decir cos x = 2 sin x cos x. Entonces, o bien
cos x = 0 o sin x = 1/2. De la primera opción se obtienen las soluciones
π π
∗ ∗ ∗ ∗ 3π 3π
(x3 , y3 ) = , , (x4 , y4 ) = , ,
2 2 2 2
mientras que de la segunda opción se tiene
π π
5π 5π
(x∗5 , y5∗ ) = , , (x∗6 , y6∗ ) = , .
6 6 6 6

A continuación clasificaremos los puntos (x∗i , yi∗ ) con i = 1, 2, 3, 4, 5, 6 estu-


diando la matriz Jacobiana de ∇u en dichos puntos D∇u (x∗i , yi∗ ).
La matriz Jacobiana de ∇u en (x∗1 , y1∗ ) es

∗ ∗ −2 −1
D∇u (x1 , y1 ) = ,
−1 0
y sus determinantes menores principales son Δ1 = −2 < 0 y Δ2 = −1 < 0.
Por lo tanto D∇u (x∗1 , y1∗ ) no es definida y (x∗1 , y1∗ ) es un punto de silla de
la función u(x, y).
160 Solución de Ecuaciones no Lineales

La matriz Jacobiana de ∇u en el punto (x∗2 , y2∗ ) es


0 −1
D∇u (x∗2 , y2∗ ) = ,
−1 2

y sus determinantes menores principales son Δ1 = 0 y Δ2 = −1 = 0.


Entonces D∇u (x∗2 , y2∗ ) es no definida y el punto (x∗2 , y2∗ ) es un punto de
silla de la función u(x, y).

La matriz Jacobiana de ∇u en (x∗3 , y3∗ ) es


0 1
D∇u (x∗3 , y3∗ ) = ,
1 0

siendo Δ1 = 0 y Δ2 = −1 = 0 sus determinantes menores principales.


Concluimos que D∇u (x∗3 , y3∗ ) no es definida y por lo tanto (x∗3 , y3∗ ) es un
punto de silla de la función u(x, y).

La matriz Jacobiana de ∇u en (x∗4 , y4∗ ) es


2 1
D∇u (x∗4 , y4∗ ) = .
1 2

Como sus determinantes menores principales son Δ1 = 2 > 0 y Δ2 = 3 > 0


se tiene que D∇u (x∗4 , y4∗ ) es definida positiva y por lo tanto (x∗4 , y4∗ ) es un
mı́nimo de la función u(x, y).

La matriz Jacobiana de ∇u en los puntos (x∗5 , y5∗ ) y (x∗6 , y6∗ ) coincide y


vale

∗ ∗ ∗ ∗ −1 −1/2
D∇u (x5 , y5 ) = D∇u (x6 , y6 ) = .
−1/2 −1

Sus determinantes menores principales son Δ1 = −1 < 0 y Δ2 = 3/4 > 0,


de manera que la anterior matriz es definida negativa y por lo tanto los
puntos (x∗5 , y5∗ ) y (x∗6 , y6∗ ) son máximos de la función u(x, y).

En definitiva, la función u(x, y) tiene un único mı́nimo relativo en la placa


que es justo el punto (x∗4 , y4∗ ).
8.2 Problemas resueltos 161

Problema 8.5 La deformación u de una esfera de radio R calentada no uni-


formemente con una distribución de temperaturas esféricamente simétrica T (r)
viene dada por
( ! ! R )
1+σ 1 r
2(1 − 2σ) r
u(r) = α r2 T (r) dr + r2 T (r) dr ,
3(1 − σ) r2 0 1 + σ R3 0

donde σ y α son el coeficiente de Poisson y el coeficiente de dilatación térmica


caracterı́sticos del material que forma la esfera. Con esta formulación la tem-
peratura T (r) se mide tomando como origen la temperatura en la superficie de
la esfera, es decir, T (R) = 0. Datos: R = 4, α = 1, σ = 80.

(i) Sea la distribución de temperaturas T (r) = (r − R) exp(sin r). Aplicando la


regla de los Trapecios con una longitud de paso h = 1, aproximar el valor
de la deformación sufrida por los puntos de la esfera que se encuentran a
una distancia radial r = R/2. Obtener además una cota del error cometido
sabiendo que la gráfica de la segunda derivada [r2 T (r)] viene dada en la
Figura 8.1.
(ii) Supongamos que la distribución de temperaturas viene dada por T (r) =
(r − R)3 .
(ii.1) Demostrar que existe una única capa esférica donde la deformación
es nula.
(ii.2) Aproximar el radio de la capa esférica de deformación nula utilizan-
do 3 iteraciones del método de Newton-Raphson con un valor inicial
adecuado que nos asegure a priori la convergencia del método.

30

20

10

r
1 2 3 4

-10

-20

Figura 8.1: Gráfica de f (r) = [r2 T (r)] para los valores 0 ≤ r ≤ 4 cuando
T (r) = (r − R) exp(sin r).

Solución. Con los datos del enunciado R = 4, α = 1, σ = 80, la expresión


162 Solución de Ecuaciones no Lineales

para la deformación de la esfera es


! r ! 4
27 2 53
u(r) = − r T (r) dr + r r2 T (r) dr . (8.4)
79r2 0 2528 0

(i) Tomando la distribución de temperaturas T (r) = (r − R) exp(sin r), la


deformación de los puntos de la esfera situados en r = R/2 = 2 viene dada por
! 2 ! 4
27 53
u(2) = − f (r) dr + f (r) dr ,
316 0 1264 0

siendo f (r) = r2 T (r) = r2 (r − 4) exp(sin r). Aproximaremos el valor de las


dos integrales anteriores utilizando la regla de los Trapecios con una longi-
b
tud de paso h = 1. Recordando que dicha regla es a f (r) dr ≈ Th (f ) =
h (f0 /2 + f1 + · · · + fn−1 + fn /2) se tiene que
! 2
f (0) f (2)
f (r) dr ≈ T1 (f ) = + f (1) +
0 2 2
0 8 exp(sin 2)
= − 3 exp(sin 1) −
2 2
= −6,95933 − 9,93031 = −16,8896 ,
! 4
f (0) f (4)
f (r) dr ≈ T1 (f ) = + f (1) + f (2) + f (3) +
0 2 2
0 0
= − 3 exp(sin 1) − 8 exp(sin 2) − 9 exp(sin 3) +
2 2
= −6,95933 − 19,8606 − 10,3641 = −37,184 .

En definitiva, se tiene
27 53
u(2) ≈ − (−16,8896) + (−37,184) = −0,116041 .
316 1264
Por otra parte, se sabe que el error absoluto Δ cometido al utilizar la regla
b 2
de los Trapecios viene dado por Δ := a f (r) dr − Th (f ) = − h12 (b − a)f  (ξ)
con ξ ∈ (a, b). En nuestro problema hemos realizado dos aproximaciones y por
lo tanto se tienen dos errores
! 2 
  1
Δ1 :=   f (r) dr − T1 (f ) = |f  (ξ1 )| ,
0 6
! 4 
  1
Δ2 :=  f (r) dr − T1 (f ) = |f  (ξ2 )| ,
0 3

donde ξ1 ∈ (0, 2) y ξ2 ∈ (0, 4). A partir de la gráfica de la Figura 8.1 se obtienen,


por ejemplo, las cotas siguientes: |f  (ξ1 )| < 40 y |f  (ξ2 )| < 40. Concluimos pues
que Δ1 < 20/3 y Δ2 < 40/3.
Finalmente, a partir de la fórmula de propagación de errores absolutos se
tiene que el error absoluto Δu(2) cometido en la aproximación efectuada de u(2)
8.2 Problemas resueltos 163

viene dado por


   
 27   53 

Δu(2) ≈ −  
Δ1 +   Δ2 < 27 20 + 53 40 = 535 = 1,12869 .
316  1264  316 3 1264 3 474

(ii.1) Tomando la distribución de temperaturas T (r) = (r − R)3 = (r − 4)3


en la ecuación (8.4) se tiene
! r ! 4
27 2 3 53
u(r) = − r (r − 4) dr + r r2 (r − 4)3 dr .
79r2 0 2528 0
Integrando esta expresión es fácil ver que
r
u(r) = P (r) ,
2370
donde P (r) = 13888−9720r+1944r2 −135r3 . Los radios r∗ de las capas esféricas
que no sufren deformación vendrán dados por las raı́ces reales y positivas del
polinomio P que pertenezcan al intervalo [0, R] = [0, 4]. Notemos que, por ser P
un polinomio cúbico (grado impar) con coeficientes reales, se sabe que tendrá al
menos una raı́z real. Sin embargo hemos de demostrar que P tiene una única raı́z
real positiva en el intervalo [0, 4]. Una forma de verlo es la siguiente: en primer
lugar demostraremos que P tiene al menos una raı́z real r∗ en el intervalo [0, 4]
mediante el Teorema de Bolzano y posteriormente mostraremos que es única
estudiando la monotonı́a del polinomio P en [0, 4].
Como P (r) es un polinomio, entonces es continuo en todo R. Además se
tiene que P (0) = 1388 > 0 y P (4) = −2528 < 0 de manera que, por el Teorema
de Bolzano, existe al menos un r ∗ ∈ [0, 4] tal que P (r∗ ) = 0. Finalmente, como
P  (r) = −9720 + 3888r − 405r2 es un polinomio de segundo grado con discrimi-
nante negativo, es fácil comprobar que P  (r) < 0 para todo r ∈ R. Esto implica
que el polinomio P es monótono decreciente y por lo tanto hemos demostrado
que r∗ es única.

(ii.2) Iniciaremos la búsqueda iterativa de r∗ utilizando el valor del extremo


adecuado del intervalo [0, 4] que nos asegure la convergencia del método de
Newton-Raphson hacia la raı́z r∗ del polinomio P . Puesto que P ∈ C 2 [0, 4]
con P (0)P (4) < 0 y además P  (r) y P  (r) tienen signo constante para todo
r ∈ [0, 4], se elige el valor r0 ∈ {0, 4} que verifique signP (r0 ) = signP  (r0 ) y
este r0 será el valor inicial para comenzar la iteración de Newton-Raphson.
Ya se ha visto en el apartado anterior que P  (r) < 0 para todo r. Como
P (r) = 3888 − 810r > 0 para todo r ∈ [0, 4] se tiene signP (0) = signP  (0), de


manera que se tomará valor inicial r0 = 0.


Realizando la iteración de Newton-Raphson
P (rn ) 13888 − 9720rn + 1944rn2 − 135rn3
rn+1 = rn − 
= rn −
P (rn ) −9720 + 3888rn − 405rn2
con el valor inicial r0 = 0 que asegura la convergencia hacia la única raı́z de P
en el intervalo [0, 4] se obtiene la siguiente sucesión.
164 Solución de Ecuaciones no Lineales

n rn
0 0
1 1.42881
2 2.14499
3 2.34559

Se tiene pues la aproximación r∗ ≈ r3 = 2,34559 del radio de la capa con


deformación nula.
Problema 8.6 Una partı́cula de masa m puede deslizarse sin rozamiento a lo
largo de una alambre. El alambre gira entorno al origen, en un plano vertical
y a una velocidad angular constante w. Tomando en el alambre la coordenada
ξ para el movimiento de la partı́cula se puede demostrar que, si las condiciones
iniciales vienen dadas por el alambre en posición horizontal y la partı́cula en
˙
reposo respecto del alambre (es decir ξ(0) = 0 y ξ(0) = 0), entonces la posición
de la partı́cula sobre el alambre en función del tiempo t es
g
ξ(t) = [cosh(wt) − cos(wt)] ,
2w2
siendo g = 9.8 la aceleración de la gravedad. Suponed que w = 3.
(i) Demostrar que antes de t = 1 la partı́cula alcanza una única vez la posición
ξ = 4.
(ii) Sea t∗ el tiempo para el cual la partı́cula alcanza la posición ξ = 4. Apro-
ximar t∗ mediante dos iteraciones con el método de la secante.
Solución. (i) Para demostrar que antes de t = 1 la partı́cula alcanza al
menos una vez la posición ξ = 4 hemos de ver que existe al menos un tiem-
po t∗ ∈ (0, 1) tal que ξ(t∗ ) = 4. Para demostrarlo, utilizaremos el Teorema de
Bolzano aplicado a la función f (t) := ξ(t)−4. En concreto, f ∈ C[0, 1] y además
f (0) = ξ(0) − 4 = −4 < 0, f (1) = ξ(1) − 4 = 6.02028 − 4 > 0. Por lo tanto existe
al menos un tiempo t∗ ∈ (0, 1) tal que f (t∗ ) = 0 o equivalentemente ξ(t∗ ) = 4.

Finalmente, para ver que t∗ es único estudiaremos el crecimiento o decreci-


miento de la función f (t) en el intervalo (0, 1). En concreto
g 9.8
f  (t) = [sinh(wt) + sin(wt)] = [sinh(3t) + sin(3t)] .
2w 6
Puesto que sinh(3t) > 0 para todo t > 0 y sin(3t) > 0 para t ∈ (0, 1) se concluye
que f  (t) > 0 para t ∈ (0, 1) y por lo tanto f (t) es una función creciente en el
intervalo (0, 1). En definitiva esto muestra que t∗ es único.

(ii) Aproximaremos el cero t∗ de la función f mediante el método de la


secante, es decir, a través de la iteración
ti − ti−1
ti+1 = ti − f (ti ) ,
f (ti ) − f (ti−1 )
8.2 Problemas resueltos 165

donde, para comenzar la iteración, tomaremos los valores t0 = 0 y t1 = 1 debido


a que sabemos que del apartado anterior que t∗ ∈ (0, 1). La tabla generada es
la siguiente
i ti f (ti )
0 0 -4
1 1 2.02028
2 0.664421 -1.74172
3 0.819787 -0.369878
Por lo tanto, t∗ ≈ t3 = 0.819787.
Problema 8.7 Una cadena uniforme, de longitud , está colocada sobre una
tabla horizontal, libre de fricción, de tal manera que una longitud b de la cadena
cae por el borde. Es fácil demostrar que el tiempo T que tardará la cadena en
deslizarse completamente hacia abajo viene dado por
* $ √ %
  + 2 − b2
T = ln , (8.5)
g b

siendo g = 9,8 la intensidad del campo gravitatorio.


(i) Se han realizado las mediciones  = 5 ± 0,1 y b = 2 ± 0,5. Aproximar la
precisión con la que se puede calcular el tiempo T .
(ii) ¿Es la ecuación (8.5) trascendente si su incógnita es la longitud ? ¿Y si
la incógnita es la longitud b?
(iii) Si T = 15 y b = 5, demostrar que existe al menos una raı́z ∗ positiva de la
ecuación (8.5). Calcular el mı́nimo número n de iteraciones necesarias en
el algoritmo de bisección para aproximar ∗ con un error absoluto menor
que 10−5 , partiendo del intervalo [130, 140].
Solución. (i) Utilizando la fórmula de propagación de errores absolutos se
tiene que    
 ∂T   
ΔT ≈   Δ +  ∂T  Δb .
∂   ∂b 
Calculamos las derivadas parciales
* ⎛  √ ⎞
+ 2 −b2 
∂T 1 ⎝ 2 ln b ∂T  /g
= √ + ⎠ , =− √ ,
∂ 2 g 2 − b2  ∂b b 2 − b2

de manera que, sustituyendo los datos del enunciado se obtiene


 ⎛  √ ⎞  
 
1
2
ln 5+ 52 −2
2 
  55/9,8 
 5 ⎝ 2 ⎠   
ΔT ≈  √ +  Δ + − 2√52 − 22  Δb
 2 9,8 52 − 22  
= |0,267784|0,1 + | − 0,389675|0,5 = 0,221616 .
166 Solución de Ecuaciones no Lineales

(ii) La ecuación (8.5) es trascendente respecto de la variable  puesto que


no es posible despejarla de la ecuación (8.5) mediante funciones elementales.
Sin embargo, la ecuación (8.5) no es trascendente respecto de la variable b.
De hecho es fácil despejar de tal ecuación para obtener

2 exp √T √
/g gT
b= =  sech √ .
√2T 
1 + exp
/g

(iii) Tomando T = 15, b = 5 y pasando todos los términos de la ecuación


(8.5) a la izquierda, dicha ecuación adopta la forma f () = 0, siendo
* $ √ %
  + 2 − 25
f () = 15 − ln .
9,8 5

Demostrar que existe al menos una raı́z ∗ positiva de la ecuación (8.5) es equi-
valente a demostrar que existe ∗ > 0 tal que f (∗ ) = 0. Para ello nos basaremos
en el Teorema de Bolzano. En primer lugar, observemos que, la expresión del
tiempo T dada por (8.5) sólo tiene sentido fı́sico si  ≥ b > 0. Matemáticamente
observamos que si no se verifica la desigualdad  ≥ b, debido a la raı́z cuadrada
que aparece en (8.5), la función T no es real.
De esta forma, sólo tiene sentido que estudiemos la función f () para  > 5.
Además, bajo esta restricción, los únicos problemas de continuidad de la fun-
ción f , es decir, la raı́z cuadarada y el logaritmo, desparecen ya que sus ar-
gumentos son mayor o igual que cero y positivo respectı́vamente. En definitiva
la función f ∈ C[5, ∞). En particular f ∈ C[5, 150] y verifica f (5)f (150) =
15 × (−1,01723) < 0, de manera que, aplicando el Teorema de Bolzano con-
cluimos que existe ∗ ∈ (5, 150) tal que f (∗ ) = 0.

Se sabe que el error absoluto Δn cometido en la aproximación ∗ ≈ cn siendo


n el número de iteraciones realizadas con el algoritmo de bisección está acotado
por
|b0 − a0 |
Δn := |∗ − cn | ≤ ,
2n+1
siendo [a0 , b0 ] el intervalo inicial de búsqueda. Ası́, se tiene que
10
Δn ≤ < 10−5 ,
2n+1
de donde obtenemos que

log 106 6
n > log2 10−6 − 1 = −1= − 1 = 18,93 .
log 2 log 2
Se puede asegurar entonces que, con 19 iteraciones del método de bisección
obtenemos la longitud ∗ con un error menor que 10−5 .
8.2 Problemas resueltos 167

Problema 8.8 Consideremos una partı́cula de masa m con un grado de libertad


sometida a un campo de fuerzas conservativo con energı́a potencial asociada
U (x). A partir del teorema de la conservación de la energı́a mecánica E se
tiene 1
mẋ2 + U (x) = E . (8.6)
2
Puesto que la energı́a cinética es una magnitud semidefinida positiva, el
movimiento de la partı́cula tiene lugar únicamente en las regiones del espa-
cio para las cuales se verifique U (x) ≤ E. Los puntos x̃i en los que se verifique
U (x̃i ) = E determinan los lı́mites del movimiento y son llamados puntos de
retorno puesto que allı́ la velocidad es nula. Sean x̃1 y x̃2 dos puntos de retorno
tales que U (x) < E para todo x ∈ (x̃1 , x̃2 ). Entonces, la partı́cula realiza un
movimiento oscilatorio cuyo periodo T es el doble del tiempo necesario para ir
de x̃1 a x̃2 , es decir, separando las variables en (8.6) e integrando se obtiene
√  x̃2
dx
T = 2m  . (8.7)
x̃1 E − U (x)
(i) Si la partı́cula está sometida a un campo cuya energı́a potencial es U (x) =
Axn , siendo A una constante real no nula y n ∈ N un número par, es fácil
demostrar que el periodo T de oscilación de su movimiento dado a partir
de (8.7) no se puede expresar, en general, mediante funciones elementales.
(i.1) Suponiendo que A = 1, n = 4, m = 2Kg y E = 16J, aproximar
el valor del periodo T mediante la fórmula de integración Gauss-
Legendre con 2 puntos. Indicación: Los polinomios de Legendre
1 dk 2
k dxk (x −1)
k
Pk (x) de grado k son Pk (x) = k!2 y forman una sucesión
ortogonal en el intervalo [−1, 1] respecto de la función peso w(x) = 1.
(i.2) Suponiendo que A = 1, n = 2, m = 2Kg y E = 16J, calcular
el mı́nimo número de puntos N necesarios de manera que se pueda
calcular de forma exacta el periodo T utilizando la fórmula de inte-
gración Gauss-Chebychev con N puntos. Calcular con dicha fórmula
el periodo T .
(ii) Supongamos que la partı́cula tiene una energı́a potencial U (x) = 5x − ln x3
con x > 0 y una energı́a mecánica E = 5J.
(ii.1) Es claro que x̃2 = 1 es un punto de retorno. Demostrar que existe
otro único punto de retorno x̃1 con 0 < x̃1 < 1.
(ii.2) Utilizando el método de Newton-Raphson, aproximar el anterior
punto de retorno x̃1 mediante tres iteraciones y partiendo de un punto
inicial adecuado que asegure la convergencia hacia x̃1 .
(ii.3) Explicar detalladamente qué problema se encuentra si se desea
aproximar el periodo T dado por (8.7) mediante una fórmula de
Newton-Cotes.
(ii.4) A partir de la ecuación diferencial (8.6), sabiendo que la partı́cula
tiene una masa m = 2Kg y que inicialmente se encuentra en el punto
x(0) = 0,9 con una velocidad negativa, aproximar el valor x(0,1) de
la posición para tiempo t = 0,1 mediante un paso con el algoritmo de
Runge-Kutta de orden 4.
168 Solución de Ecuaciones no Lineales

Solución. (i.1) Si la partı́cula de masa m = 2 tiene una energı́a mecánica


E = 16 y está sometida a una energı́a potencial U (x) = x4 , sus puntos de
retorno x̃i serán soluciones de la ecuación U (x) = E, es decir, x̃4i = 16. Se tinen
pues dos puntos de retorno x̃1 = −2 y x̃2 = 2. De esta forma, el periodo T de la
partı́cula confinada a moverse en la región del espacio −2 ≤ x ≤ 2 viene dado
por ! 2
1
T =2 f (x) dx , f (x) = √ . (8.8)
−2 16 − x4
Un estudio
√ más detallado sobre la integral que aparece en (8.8) muestra
que T = 2 πΓ(5/4)/Γ(3/4) siendo Γ la función gamma de Euler definida como

Γ(z) = 0 tz−1 exp(−t) dt. Sin embargo en este problema se realizará un estudio
numérico del valor del periodo T a partir de la fórmula de integración de Gauss-
Legendre con 2 puntos, es decir,
! 1 n
g(x) dx ≈ αk g(xk ) , (8.9)
−1 k=0

con n = 1 y siendo x0 y x1 las dos raı́ces del polinomio de Legendre de segundo


grado P2 (x). A partir de la fórmula generadora de los polinomios de Legendre,
se tiene que
1 d2 2 1
P2 (x) = (x − 1)2 = (3x2 − 1) ,
2!22 dx2 2
√ √
de modo que x0 = −1/ 3, x1 = 1/ 3. Los coeficientes de la fórmula de Gauss-
Legendre (8.9) con n = 1 se obtendrán de imponer que (8.9) tenga grado de
precisión n, es decir que sea exacta para cualquier polinomio g de grado menor
o igual que n = 1. Ası́, según el método de los coeficientes indeterminados y
tomando la base canónica {1, x} del espacio vectorial R1 [x] de los polinomios
de grado menor o igual que 1, se tiene que α0 y α1 verifican el sistema lineal de
ecuaciones ! !
1 1
dx = α0 + α1 , xdx = α0 x0 + α1 x1 ,
−1 −1
es decir
1
2 = α0 + α1 , 0 = √ (−α0 + α1 ) ,
3
cuya solución es α0 = α1 = 1. En definitiva, la fórmula de Gauss-Legendre con
2 puntos es ! 1
−1 1
g(x) dx ≈ g √ +g √ , (8.10)
−1 3 3
y tiene un grado de precisión 2n + 1 = 3. Obviamente, para poder aproximar
mediante la fórmula (8.10) el periodo T dado por (8.8), previamente se ha de
realizar un cambio de variable que lleve el intervalo x ∈ [−2, 2] al intervalo
y ∈ [−1, 1]. El cambio lineal que verifica lo anterior es y = x/2. En la nueva
variable, (8.8) se escribe como
! 1 ! 1
1
T =4 f (2y) dy = g(y) dy , g(y) =  .
−1 −1 1 − y4
8.2 Problemas resueltos 169

Aproximando el anterior valor de T mediante (8.10) se tiene



−1 1 3 3 3
T ≈g √ +g √ = √ + √ = √ ≈ 2,12132 .
3 3 2 2 2 2 2
(i.2) Ahora la partı́cula de masa m = 2 tiene una energı́a mecánica E = 16
y una energı́a potencial U (x) = x2 . Nótese que la partı́cula realiza entonces un
movimiento armónico simple. Los puntos de retorno x̃i son las soluciones de la
ecuación x̃2i = 16 y por lo tanto x̃1 = −4 y x̃2 = 4. En definitiva, el periodo T
del oscilador armónico es
! 4
dx
T =2 √ . (8.11)
−4 16 − x2
Realizamos el cambio de variable x = 4y, de manera que (8.11) se reescribe
como una integral definida en el intervalo [−1, 1] de la forma
! 1
dy
T =2  , (8.12)
−1 1 − y2

pudiéndose calcular de forma exacta, es decir, T = 2[arcsin y]1−1 = 2π. Obsérvese


que el valor obtenido concuerda con el periodo T = 2π/w de un oscilador
armónico simple siendo su energı́a potencial U (x) = 12 mw2 x. Sin embargo, se
pretende calcular de forma exacta el valor de T dado por (8.12) a través de la
fórmula de Gauss-Chebychev con N puntos. Recordemos que dicha fórmula es
! 1
π 
n
g(y)
 dy ≈ g(yk ) ,
−1 1 − y2 n+1
k=0

siendo n = N − 1 y yk las abscisas de Chebychev. Además tiene un grado de


precisión 2n + 1 = 2N − 1, es decir, la anterior fórmula de Gauss-Chebychev
es exacta para cualquiere polinomio g de grado menor o igual que 2N − 1.
Como la integral que aparece en (8.12) tiene g(y) = 1 y este es un polinomio
de grado cero, se debe imponer 2N − 1 = 0, es decir utilizar la fórmula de
Gauss-Chebychev con N = 1 punto.
(ii.1) Los puntos de retorno x̃i son las soluciones de la ecuación U (x) = E.
Definiendo la función f (x) = U (x) − E, los puntos de retorno x̃i son los ceros
de la función f (x) con x > 0. Puesto que E = 5 y U (x) = 5x − ln x3 , se tiene
f (x) = 5(x − 1) − ln x3 . Es obvio que x̃2 = 1 es un cero de f . Se ha de demostrar
que f tiene un único cero x̃1 verificando 0 < x̃1 < 1.
Calculando la primera y segunda derivada de f se obtiene f  (x) = 5 − 3/x
y f (x) = 3/x2 . Ya que f  (3/5) = 0 y además f  (3/5) > 0 se comprueba que


f tiene un único mı́nimo relativo en x = 3/5 = 0,6 de manera que f  (x) < 0
para todo x ∈ (0, 0,6) y f  (x) > 0 para todo x ∈ (0,6, ∞). Además f ∈ C(0, ∞),
f (0,6) < 0, lı́mx→0+ f (x) = ∞ y f (1) = 0, de manera que, ver Figura 8.2, se ha
demostrado que f tiene un único cero x̃1 ∈ (0, 1).
Otra forma de proceder es la siguiente. Utilizando el Teorema de Bolzano se
puede ver que f tiene al menos un cero x̃1 ∈ (0, 1). Efectivamente, puesto que
170 Solución de Ecuaciones no Lineales

f
8

x
0.5 1 1.5 2

Figura 8.2: Gráfica de f (x) = 5(x − 1) − ln x3 .

f es una función continua para todo x > 0, en particular f ∈ C[0,1, 0,5] por
ejemplo. Además f (0,1)f (0,5) = f (0,1)f (0,5) < 0. Entonces, se concluye que
f tiene al menos un cero x̃1 ∈ [0,1, 0,5]. Para ver que dicho cero es único en
este intervalo la función f es decreciente y por lo tanto f tiene un único cero en
x̃1 ∈ [0,1, 0,5].

(ii.2) Una vez se sabe que f tiene un único cero x̃1 ∈ [0,1, 0,5], se utilizará el
método de Newton-Raphson con el objetivo de aproximarlo, es decir

f (xn ) 5(xn − 1) − ln x3n


xn+1 = xn − = xn − . (8.13)
f  (xn ) 5 − 3/xn

Como f ∈ C 2 [0,1, 0,5], f (0,1)f (0,5) < 0 y tanto f  como f  tienen signo con-
stante en el intervalo [0,1, 0,5], se tomará, con el objetivo de asegurar la con-
vergencia de la sucesión {xn }n∈N hacia x̃1 , el punto inicial x0 de la iteración de
Newton-Raphson verificando x0 ∈ {0,1, 0,5} tal que sign(f (x0 )) = sign(f  (x0 )).
Es evidente que el valor inicial es x0 = 0,1. De esta forma, la sucesión {xn }n∈N
generada mediante la iteración de Newton-Raphson (8.13) con el valor inicial
x0 = 0,1 tiene los siguientes primeros términos de la sucesión.

n xn
0 0.1
1 0.19631
2 0.280509
3 0.318437

Se concluye que el punto de retorno x̃1 es aproximado por x̃1 ≈ x3 =


0,318437.
8.2 Problemas resueltos 171

(ii.3) El periodo T dado por la fórmula integral (8.7) es una integral impropia
de segunda especie ya que la función integrando
1
f (x) =  ,
E − U (x)

no está acotada en el intervalo de integración [x̃1 , x̃2 ]. Esto es debido a que


U (x̃1 ) = U (x̃2 ) = E y, como E > U (x) para todo x ∈ (x̃1 , x̃2 ), se tiene
1 1
lı́m+  = lı́m−  =∞.
x→x̃1 E − U (x) x→x̃2 E − U (x)

Puesto que cualquier fórmula de Newton-Cotes evaluará la función integran-


do f en los dos extremos del intervalo de integración [x̃1 , x̃2 ], el resultado que
nos proporcionarı́a es siempre T = ∞.

(ii.4) La ecuación diferencial (8.6) se puede escribir en la forma habitual



2(E − U (x))
ẋ = f (t, x) , siendo f (t, x) = ± .
m
Con los datos del problema se tiene el problema de Cauchy

ẋ = f (t, x) , x(0) = 0,9 ,



siendo f (t, x) = − 5(1 − x) + ln x3 . Obsérvese que se ha utilizado la rama
negativa de la raı́z cuadrada debido a que el enunciado asegura que la velocidad ẋ
es negativa. Utilizando el algoritmo RK4 para aproximar la solución del anterior
problema de Cauchy se genera la sucesión {xn }n∈N , siendo x(ti ) ≈ xi para
tiempos equiespaciados ti = t0 + ih, donde t0 es el tiempo inicial y h una
constante. En el caso que nos ocupa t0 = 0 y x0 = 0,9. Además, la ecuación
diferencial es autónoma, es decir, la función f no depende del tiempo. Por lo
tanto, el algoritmo RK4 aplicado a este problema consiste en calcular la sucesión
definida de forma recursiva siguiente
h
xn+1 = (k1 + 2k2 + 2k3 + k4 ) ,
xn +
6
k1 = f (xn ) ,

h
k2 = f xn + k1 ,
2

h
k3 = f xn + k2 ,
2
k4 = f (xn + hk3 ) .

Teniendo en cuenta que f (x) = − 5(1 − x) + ln x3 y que se quiere aproximar
x(0,1), se tomará una longitud de paso es h = 0,1, de manera que con una
iteración del algoritmo RK4 se obtiene
172 Solución de Ecuaciones no Lineales

n tn xn
0 0 0.9
1 0.1 0.853091

En definitiva x(0,1) ≈ x1 = 0,853091.

Problema 8.9 Para la radiación de un cuerpo negro se sabe que, la energı́a


radiada por unidad de volumen en el rango de longitudes de onda entre λ y
λ + dλ viene dada por u(λ) dλ, donde

8π hc
u(λ) = 5

hc ,
λ exp λKT − 1

siendo T la temperatura del cuerpo, c la velocidad de la luz, h la constante de


Planck y K la constante de Boltzmann.

(i) Demostar que la longitud de onda λmax para la cual u(λ) es máxima se puede
escribir como λmax = αhc/(KT ), siendo α ∈ R una raı́z de la ecuación
trascendente
e1/α (5α − 1) − 5α = 0 . (8.14)

(ii) Demostrar que la ecuación (8.14) tiene una única raı́z en el intervalo
[0,15, 0,25].
(iii) Aproximar el valor de α mediante dos iteraciones del método de Newton-
Raphson, partiendo de un punto inicial tal que nos asegure la convergencia
hacia la raı́z buscada.
(iv) Supongamos que la temperatura del cuerpo negro es T = 350 grados
Kelvin. Aproximar con qué exactitud se puede calcular la energı́a radi-
ada por unidad de volumen u sabiendo que la longitud de onda vale λ =
5 × 10−6 ± 10−7 metros. Datos: En el sistema internacional c = 3 × 108 ,
K = 1,381 × 10−23 y h = 6,626 × 10−34 .

Solución. (i) Puesto que u(λ) es máxima para λ = λmax se debe verificar que
la derivada du/dλ se anule para λ = λmax . La primera derivada de la función u
respecto de λ es
&
hc '
du 8chπ exp λKT (hc − 5KT λ) + 5KT λ
= &
'2 ,
dλ KT λ7 exp hc − 1
λKT

de modo que, sustituyendo en el numerador de esta expresión el valor de λ por


el de λmax = αhc/(KT ) e igualando a cero se obtiene −8c2 h2 πf (α) = 0, siendo

f (α) := e1/α (5α − 1) − 5α ,

con lo cual queda demostrado.


8.2 Problemas resueltos 173

(ii) La ecuación (8.14) se escribe de la forma f (α) = 0. Puesto que f ∈


C[0,15, 0,25] y además f (0,15)f (0,25) < 0, por el Teorema de Bolzano se sabe
que la ecuación (8.14) tiene al menos una raı́z en el intervalo [0,15, 0,25].
Para ver que dicha raı́z es única demostraremos que la función f es monótona
en el intervalo [0,15, 0,25].
La primera y segunda derivada de f valen
1 " 1/α #
f  (α) = e (1 − 5α + 5α 2
) − 5α 2
,
α2
1 1/α
f  (α) = e (3α − 1) .
α4
Puesto que f  (α) < 0 en el intervalo [0,15, 0,25], esto significa que f  (α) es decre-
ciente en el intervalo [0,15, 0,25]. Como además f  ∈ C[0,15, 0,25], f  (0,15) > 0
y f  (0,25) > 0 se concluye que f  (α) > 0 en el intervalo [0,15, 0,25] y, en conse-
cuencia, f (α) es monótona creciente en el intervalo [0,15, 0,25].

(iii) La iteración de Newton-Raphson para aproximar la solución de la


ecuación f (α) = 0 viene dada por

f (αn )
αn+1 = αn − , n = 0, 1, 2, . . .
f  (αn )

En nuestro caso se tiene

e1/αn (5αn − 1) − 5αn


αn+1 = αn − 1
& ' .
α2n e1/αn (1 − 5αn + 5αn2 ) − 5αn2

Puesto que f ∈ C 2 [0,15, 0,25] y se ha demostrado en el apartado anterior


que f (0,15) = −197,193 < 0, f (0,25) = 12,3995 > 0, f  (α) < 0 y f  (α) > 0
para todo α ∈ [0,15, 0,25], tomando el valor inicial de la iteración de Newton-
Raphson α0 = 0,15 se asegura la convergencia de la sucesión {αn }n∈N generada
hacia el cero de f en el intervalo [0,15, 0,25]. Esto es debido a que el signo de f
y de f  coinciden en α0 .
Realizando la iteración con este valor inicial se tiene

n αn
0 0.15
1 0.165583
2 0.181035

(iv) Puesto que el único error se comete en la medida de la longitud de onda


λ, mediante la fórmula de propagación de errores se tiene que el error absoluto
Δu en el cálculo de u es aproximado por
 
 du 
Δu ≈   Δλ ,

174 Solución de Ecuaciones no Lineales

siendo Δλ = 10−7 . Sabemos del apartado (i) que


&
hc '
du 8chπ exp λKT (hc − 5KT λ) + 5KT λ
= &
'2 ,
dλ KT λ7 exp hc − 1 λKT

de modo que, sustituyendo los datos del problema, se tiene


Δu ≈ |276461| × 10−7 = 0,027646 .
Problema 8.10 Consideremos la ecuación 4 − x − tan x = 0.
(i) ¿Cuántas soluciones tiene dicha ecuación? ¿Es una ecuación trascendente?
(ii) Demostrar que existe una única solución x∗ de dicha ecuación perteneciente
al intervalo [1, 1  5].
(iii) Averiguar el mı́nimo número de pasos a realizar con el algoritmo de bisec-
ción si se pretende aproximar x∗ con un error menor que 10−1 . Dar dicha
aproximación.
Solución. (i) Es fácil ver que la ecuación f (x) = 0, con f (x) = 4 − x − tan x,
tiene infinitas soluciones reales. Para verlo basta con notar que dicha ecuación se
puede reescribir de la forma g1 (x) = g2 (x), siendo g1 (x) = 4 − x y g2 (x) = tan x.
Finalmente, dibujando las gráficas de las funciones g1 y g2 se comprueba que
existen infinitos puntos de corte (siendo las abscisas de dichos puntos soluciones
de la ecuación f (x) = 0). Ver la Figura 8.3.

30

20

10

-6 -4 -2 2 4 6

-10

-20

-30

Figura 8.3: Gráfica superpuesta de las funciones g1 (x) = 4 − x y g2 (x) = tan x.

A pesar de tener infinitas soluciones, la ecuación f (x) = 0 es trascendente


puesto que es imposible despejar la incógnita x, es decir, expresar x mediante
funciones elementales a partir de la ecuación.

(ii) Notar que la función tan x (y por lo tanto la función f ) es continua


en todo R excepto en los puntos xk = ±(2k + 1)π/2 con k ∈ N ∪ {0}. Puesto
8.2 Problemas resueltos 175

que xk ∈ [1, 1  5] para ningún k se concluye que la función f (x) es continua en


el intervalo [1, 1  5]. Como además f (1)f (1  5) = 1,44259 × (−11,6014) < 0,
aplicando el Teorema de Bolzano podemos asegurar que existe al menos una
solución x∗ de la ecuación f (x) = 0 perteneciente al intervalo [1, 1  5].

Finalmente, mostraremos que x∗ es única viendo la monotonicidad de la fun-


ción f . Puesto que la función derivada de f es f  (x) = −1 − 1/ cos2 x < 0 para
todo x ∈ [1, 1  5], se tiene que f es monótona decreciente en el intervalo [1, 1  5]
y, en consecuencia, existe una única solución x∗ perteneciente al intervalo [1, 15].

(iii) El método de bisección consiste en hallar una sucesión de intervalos


anidados
(1, 1  5) = (a0 , b0 ) ⊃ (a1 , b1 ) ⊃ · · · ⊃ (an , bn ) ⊃ · · ·
de manera que la anchura del siguiente intervalo es la mitad que la anchura del
intervalo anterior y además x∗ pertenezca a todos los intervalos. Entonces, la
sucesión de puntos medios {cn }∞ ∗ ∗
n=0 verifica lı́mn→∞ cn = x con |x − cn | ≤
(b0 − a0 )/2n+1
.
Queremos hallar n de modo que
b0 − a0 1/2
|x∗ − cn | ≤ = n+1 < 10−1 .
2n+1 2
De la anterior desigualdad se tiene 2n+2 > 10, de donde, tomando logaritmos
neperianos y aislando n obtenemos
ln 10
n> − 2 = 1  322 .
ln 2
Se tiene, en definitiva, que el mı́nimo número de iteraciones en el algoritmo
de bisección aplicado a la ecuación f (x) = 0 y partiendo del intervalo inicial
[1, 15] es 2 si se pretende aproximar la solución x∗ con un error menor que 10−1 .

Aplicamos el método de bisección 2 veces de modo que aproximaremos x∗ ≈


c2 , siendo la sucesión de puntos medios {cn }∞
n=0 definida como cn = (an +bn )/2.
En primer lugar calculamos f (a0 ) = f (1) = 1  442 > 0 y f (b0 ) = f (1  5) =
−11  601 < 0.
Ya que f (c0 ) = f (1  25) = −0  259 < 0, el siguiente intervalo es (a1 , b1 ) =
(a0 , c0 ) = (1, 1  25).
Como f (c1 ) = f (1  125) = 0  782 > 0, el siguiente intervalo es (a2 , b2 ) =
(c1 , b1 ) = (1  125, 1  25), siendo su punto medio c2 = 1  187.
Tenemos en resumen la siguiente tabulación

n cn f (cn )
0 1.25 -0.259
1 1.125 0.782
2 1.187 0.332
176 Solución de Ecuaciones no Lineales

con la cual aproximamos x∗ ≈ c2 = 1,187.

Problema 8.11 Demostrar que la ecuación trascendente ex + sin x = 2 tiene


una única solución x∗ en el intervalo [0, 1]. Aproximar dicha solución utilizando
2 iteraciones del método de Newton-Raphson con una condición inicial adecuada
que garantice la convergencia de la sucesión hacia x∗ .

Solución. Reescribimos la ecuación trascendente como f (x) = ex +sin x−2 = 0.


Observemos que f ∈ C ∞ (R), de modo que, en particular f ∈ C[0, 1]. Puesto que
además verifica f (0)f (1) = (−1)(1,55975) < 0, aplicando el Teorema de Bolzano
se demustra que la ecuación f (x) = 0 tiene al menos una solución x∗ ∈ (0, 1).
Para ver que x∗ es único basta con probar que f es una función monótona en el
intervalo [0, 1]. Como f  (x) = ex + cos x, se tiene que f  (x) > 0 para todo x > 0
ya que ex > 1 para todo x > 0 y | cos x| ≤ 1 para todo x ∈ R. En particular
f  (x) > 0 para todo x ∈ [0, 1] con lo cual existe una única solución x∗ ∈ [0, 1]
de la ecuación f (x) = 0.

Observemos que f  (x) = ex − sin x. Con un argumento similar al dado


anteriormente se tiene f  (x) > 0 para todo x ∈ [0, 1], de modo que se tomará el
punto inicial x0 de la iteración de Newton-Raphson como x0 ∈ {0, 1} tal que
f (x0 )f  (x0 ) > 0. En nuestro caso se tiene x0 = 1.
Aproximaremos a continuación x∗ utilizando 2 iteraciones del método de
Newton-Raphson, es decir,

f (xi ) exi + sin xi − 2


xi+1 = xi − 
= xi − , x0 = 1 .
f (xi ) exi + cos xi

Se obtiene de esta forma la siguiente tabla

n xn
0 1
1 0.52134
2 0.44988

de modo que la aproximación deseada es x∗ ≈ x2 = 0,44988.

Problema 8.12 Consideremos un oscilador lineal con rozamiento forzado.


Supongamos que su posición x(t) en función del tiempo verifica la ecuación
diferencial ẍ + ẋ + 2x = F (t), siendo la fuerza externa aplicada F (t) = t sin t.
(i) Demostrar que existe un tiempo t∗ tal que 1 ≤ t∗ ≤ 2 para el cual la fuerza
externa ejercida sobre el oscilador vale 1. Aproximar t∗ mediante dos ite-
raciones del método de bisección.
(ii) Sabiendo que inicialmente el oscilador se encuentra en reposo en la posi-
ción x(0) = 5, hallar una aproximación de la velocidad del oscilador para
tiempo t = 2 mediante el método de Euler con una longitud de paso h = 1.
8.2 Problemas resueltos 177

Solución. (i) El tiempo t∗ ∈ [1, 2], si existe, verifica F (t∗ ) = 1. Definimos la


función f (t) = F (t) − 1. Es claro por construcción que t∗ , si existe, es un cero de
la función f (t). Veamos que efectivamente t∗ existe. Para ello observamos que
f (t) = F (t) − 1 = t sin t − 1 es una función de clase C ∞ (R), de modo que, en
particular, f ∈ C[1, 2]. Además, f (1)f (2) = −0,158 × 0,818 < 0 por lo tanto la
función f cambia de signo en los extremos del intervalo [1, 2]. Se concluye que,
aplicando el Teorema de Bolzano, existe al menos un tiempo t∗ ∈ [1, 2] tal que
f (t∗ ) = 0, o equivalentemente, F (t∗ ) = 1.

Aplicando el método de bisección, generaremos una sucesión de intervalos


encajados [a0 , b0 ] ⊃ [a1 , b1 ] ⊃ [a2 , b2 ] de modo que t∗ ∈ [ai , bi ], siendo la anchura
del siguiente intervalo la mitad que el del anterior. Finalmente aproximaremos
t∗ ≈ c2 , siendo ci = (ai + bi )/2 el punto medio del intevalo [ai , bi ].
Partimos del intervalo [a0 , b0 ] = [1, 2] con punto medio c0 = 1,5. Puesto que
f (c0 ) = f (1,5) = 0,496242 > 0, esto significa que t∗ ∈ [a0 , c0 ] := [a1 , b1 ] =
[1, 1,5]. El punto medio c1 = (1 + 1,5)/2 = 1,25, de modo que f (c1 ) = f (1,25) =
0,186231 > 0. Entonces t∗ ∈ [a1 , c1 ] := [a2 , b2 ] = [1, 1,25]. Finalizamos con la
aproximación
1 + 1,25
t ∗ ≈ c2 = = 1,125 .
2
(ii) Antes de aplicar el método de Euler, convertimos mediante el cambio de
variable habitual ẋ = y la ecuación diferencial de segundo orden del oscilador
en un sistema de ecuaciones diferenciales de primer orden, es decir,

ẋ = f (t, x, y) = y ,
ẏ = g(t, x, y) = −y − 2x + F (t) = −y − 2x + t sin t .

Según los datos del enunciado, inicialmente el oscilador se encuentra en reposo


en la posición 5. Esto significa que el anterior sistema de ecuaciones diferenciales
está acompan̄ado de la condición inicial (x(0), y(0)) = (5, 0) convertiéndose de
esta forma en un problema de Cauchy. Definiendo las aproximaciones x(ti ) ≈ xi ,
y(ti ) ≈ yi , con tiempos equiespaciados ti = ih = i, el método de Euler

xi+1 = xi + hf (ti , xi , yi ),
yi+1 = yi + hg(ti , xi , yi ),

genera la sucesión de puntos (xi , yi ) con i = 1, 2, . . . partiendo de la condición


inicial (x0 , y0 ) = (5, 0). Aplicando esta iteración al oscilador del enunciado se
tiene

xi+1 = x i + yi ,
yi+1 = −2xi + i sin i,

dando lugar a la siguiente tabla


178 Solución de Ecuaciones no Lineales

i ti xi yi
0 0 5 0
1 1 5 -10
2 2 -5 -9.15853

Se concluye que la velocidad del oscilador para tiempo t = 2 es aproximada-


mente
ẋ(2) = y(2) ≈ y2 = −9,15853 .

Problema 8.13 Los laureados con el premio Nobel de fı́sica E. Fermi, J. Pasta
y S. Ulam descubrieron mediante experimentos numéricos con un ordenador que
un sistema de osciladores no lineales acoplados no verificaban una propiedad
de equilibrio termodinámico llamada equipartición de la energı́a. Posteriormen-
te, M. Toda fue capaz de estudiar el problema de forma analı́tica mediante la
introducción de un potencial de interacción del tipo
α
V (r) = exp(−βr) + αr .
β
Tomando α = 2 y β = 1:
(i) Demostrar que existe un único r∗ > 0 verificando V (r∗ ) = 4. ¿Es posible
hallar r∗ de manera exacta?
(ii) Aplicar 2 iteraciones del algoritmo de bisección con el objetivo de aproximar
r∗ . Iniciar el algoritmo en un intervalo del tipo [m, m+1] ⊂ R con m ∈ N.
(iii) Partiendo del intervalo de menor anchura obtenido en el apartado anterior
tras 2 iteraciones del algoritmo de bisección, refinar la aproximación de r∗
mediante 2 iteraciones del método de Newton-Raphson. Iniciar la iteración
en un punto adecuado que asegure la convergencia hacia r∗ de la sucesión
de Newton-Raphson.
(iv) Hallar una aproximación del error relativo que se comete al evaluar la
función V (r) cuando r = 10 ± 1.

Solución. (i) Puesto que V (r∗ ) = 4, es claro que r∗ es un cero de la función

f (r) = V (r) − 4 = 2 exp(−r) + 2r − 4 .

Calculando la primera derivada

f  (r) = 2(1 − exp(−r)) ,

es inmediato comprobar que f  (r) > 0 para todo r > 0. Por lo tanto la función
f (r) es creciente en el intervalo (0, ∞). Como además verifica que

f (0) = −2 < 0 , lı́m f (r) = ∞ > 0 ,


r→∞
8.2 Problemas resueltos 179

queda demostrado que exista un único r∗ > 0 verificando f (r∗ ) = 0.


Por supuesto, la ecuación f (r) = 0 es trascendente y no se puede resolver de
manera exacta.

(ii) Observemos en primer lugar que la función f (r) ∈ C(R). Entonces, el in-
tervalo [m, m+1] ⊂ R con m ∈ N para iniciar el algoritmo de bisección sólo debe
de verificar la condición f (m)f (m + 1) < 0. Se halla calculando el signo de f (m)
con m = 0, 1, 2, . . . y parando cuando se observe un cambio de signo. En concreto
se tiene f (0) = −2 < 0, f (1) = −1,26424 < 0 y f (2) = 0,270671 > 0 por lo tanto
el intervalo inicial es [a0 , b0 ] = [m, m+1] = [1, 2]. Iniciamos el algoritmo calculan-
do el punto medio c0 = (1 + 2)/2 = 1,5. Como f (c0 ) = f (1,5) = −0,55374 < 0,
entonces el nuevo intervalo es [a1 , b1 ] = [c0 , b0 ] = [1,5, 2] y su punto medio
c1 = (1,5 + 2)/2 = 1,75. Como f (c1 ) = f (1,75) = −0,152452 < 0, entonces el
siguiente intervalo es [a2 , b2 ] = [c1 , b1 ] = [1,75, 2] con punto medio c2 = 1,875.
En definitiva, r∗ ≈ c2 = 1,875.

(iii) Según los resultados anteriores, f ∈ C 2 [1,75, 2], f (1,75)f (2) < 0 y

f (r) > 0 para todo r > 0. Además, como
f  (r) = 2 exp(−r) ,
la función f (r) tiene curvatura positiva en todo R puesto que f  (r) > 0 para
todo r ∈ R. En definitiva, como el signo de f (2) coincide con el signo de f  (2),
tomamos el punto inicial r0 = 2 en la iteración de Newton-Raphson
f (rn ) exp(−rn ) + rn − 2
rn+1 = rn − = rn − .
f  (rn ) 1 − exp(−rn )
De esta forma se obtiene la siguiente tabla

n rn
0 2
1 1.8434
2 1.8414

de donde se concluye que r∗ ≈ r2 = 1,8414.

(iv) Como r = 10 ± 1, se conoce r con un error relativo


   
 Δr   1 

r =   =   = 0,1 .
r   10 
Entonces, al evaluar V (r) = 2(exp(−r) + r) en r = 10 ± 1, el error relativo
cometido es
   
 r dV (r)   r 
r ≈   r = −
  (− exp(−r) + 1) 0,1

V (r) dr exp(−r) + r
 
 10 
= − (− exp(−10) + 1) 0,1 = 0,099995 .
exp(−10) + 10
180 Solución de Ecuaciones no Lineales

Problema 8.14 Consideremos una partı́cula de masa m con un grado de li-


bertad sometida a un campo de fuerzas conservativo con energı́a potencial aso-
ciada U (x), siendo x la posición de la partı́cula. A partir del teorema de la
conservación de la energı́a mecánica E y suponiendo que la partı́cula verifica la
condición inicial x(t0 ) = x0 , es fácil ver que
 ! x
m ds
t − t0 =  , (8.15)
2 x0 E − U (s)

siendo t el tiempo para el cual la posición es x.

(i) Si m = 2, E = 10, U (x) = x4 y la partı́cula se encuentra inicialmente en


x(0) = 0, calcular la longitud de paso en la regla de los Trapecios com-
puesta si se pretende aproximar con ella el tiempo t que tarda la partı́cula
en llegar por primera vez a la posición x = 1 con un error absoluto menor
que 10−4 .
(ii) Puesto que la energı́a cinética es una magnitud semidefinida positiva, el
movimiento de la partı́cula tiene lugar únicamente en las regiones del es-
pacio para las cuales se verifique U (x) ≤ E. Los puntos en los que se
verifique U (x) = E determinan los lı́mites del movimiento y son llamados
puntos de retorno puesto que allı́ la velocidad es nula. Suponed ahora que
E = 0,4 y U (x) = x2 ex .

(ii.1) Demostrar que existe un único punto de retorno positivo.


(ii.2) Aproximar el anterior punto de retorno mediante 3 iteraciones del
método de bisección partiendo de un intervalo inicial de extremos
formados por dos enteros consecutivos. Hallar además una cota del
error absoluto cometido.

Solución. (i) Puesto que m = 2, E = 10, U (x) = x4 y la partı́cula se encuentra


inicialmente en x(0) = 0, la ecuación (8.15 ) adopta la forma
! x
ds
t= √ .
0 10 − s4

Entonces, el tiempo t que tarda la partı́cula en llegar por primera vez a la


posición x = 1 es
! 1
1
t= f (s)ds , f (s) = √ .
0 10 − s4
Recordemos, por otra parte, que la regla de los Trapecios compuesta con longitud
b 2 
de paso h es a f (s) ds ≈ Th (f ) con un error absoluto Δ = h12 (b − a)|f (ξ)|,
ξ ∈ (a, b). En nuestro caso se tiene

h2 
Δ= |f (ξ)| , ξ ∈ (0, 1) .
12
8.2 Problemas resueltos 181

Puesto que la función derivada segunda de f es

 6ξ 2 (10 + ξ 4 )
f (ξ) =
(10 − ξ 4 )5/2

y además ξ ∈ (0, 1), es obvio que f (ξ) > 0. Además, al aumentar ξ aumenta

el numerador y disminuye el denominador de f (ξ) con lo que vemos que la

función f (ξ) es creciente1 en el intervalo ξ ∈ (0, 1). En definitiva, se puede
acotar el error absoluto de la forma
h2  h2 22 11 2
Δ< f (1) = = h .
12 12 81 486
Si imponemos que la longitud de paso h verifique la desigualdad

11 2
h < 10−4
486
nos aseguramos de que Δ < 10−4 como se desea. De esta forma se tiene que

486
h < 10−4 = 0,066 .
11

(ii) En primer lugar observamos que los puntos de retorno x∗ son los ceros
de la función f (x) = U (x) − E. En nuestro caso se tiene f (x) = x2 ex − 0,4.

(ii.1) Hemos de demostrar que la función f (x) tiene un único cero positivo
x∗ . Para verlo, notemos que f (0) < 0 y lı́mx→∞ f (x) = ∞ de modo que, como
la función f (x) es continua, esta tiene al menos un cero x∗ > 0. Para ver que x∗
es único, basta con demostrar que f (x) es una función creciente en el intervalo
(0, ∞). Esto es cierto puesto que f  (x) = x(2 + x)ex > 0 para todo x > 0.
(ii.2) Como f ∈ C[0, 1], f (0) = −0,4 < 0 y f (1) = 2,31828 > 0, aplicando
el Teorema de Bolzano sabemos que existe x∗ ∈ [0, 1] tal que f (x∗ ) = 0. De
hecho, por el apartado anterior, sabemos que x∗ es único. Aplicando 3 iteraciones
en el método de bisección, obtendremos una colección de intervalos anidados
(a0 , b0 ) = (0, 1) ⊃ (a2 , b2 ) ⊃ (a3 , b3 ) de anchura del siguiente la mitad que la del
anterior tal que [ai , bi ]  x∗ ≈ c3 , siendo ci el punto medio del intervalo i–ésimo.
Un simple cálculo nos muestra la siguiente tabla

i ci f (ci )
0 0.5 0.0121803
1 0.25 -0.319748
2 0.375 -0.195392
3 0.4375 -0.103544
 
1 Otraforma de ver que f (ξ) es creciente en el intervalo ξ ∈ (0, 1) es calculando f (ξ) =

24x(50 + 35x4 + x8 )/(10 − x4 )7/2 y viendo que, efectivamente, f (ξ) > 0 para todo ξ ∈ (0, 1).
182 Solución de Ecuaciones no Lineales

Se concluye que x∗ ≈ c3 = 0,4375.

Para hallar una cota del error absoluto Δ3 cometido en la aproximación


x∗ ≈ c3 recordamos que, en el método de bisección se verifica que Δn := |x∗ −
cn | ≤ (b0 − a0 )/2n+1 . En nuestro caso se tiene
1
Δ3 = |x∗ − c3 | ≤ .
24
Problema 8.15 Consideremos el siguiente sistema no lineal de ecuaciones de-
pendiendo del parámetro a.

x2 − y = a , x2 + 4y 2 = 4 .

(i) Hallar, mediante un método gráfico, el número de soluciones (x∗ , y ∗ ) ∈ R2


que tiene el sistema para los casos a = 0 y a = −1.
(ii) Si a = 0, realizar dos iteraciones del método de Newton-Raphson partiendo
del punto inicial (x0 , y0 ) = (1, 1).
(iii) Si a = −1, explicar el problema que se tendrá al aplicar el método de
Newton-Raphson para aproximar la solución del sistema.
(iv) Si a = 0, transforma el sistema de ecuaciones en una única ecuación
para la incógnita x. Demostrar, para esta ecuación, que existe una única
solución x∗ ∈ (1/2, 1). Utilizar dos iteraciones del método de Newton-
Raphson para aproximar x∗ , partiendo de un punto inicial x0 que asegure
la convergencia del método.
Solución. (i) Notemos que, para cualquier valor del parámetro a ∈ R, las
soluciones del sistema
x2 − y = a , x2 + 4y 2 = 4 ,
son representadas geométricamente por los puntos de corte entre la parábola
y = x2 − a y la cónica x2 + 4y 2 = 4. Además, es fácil ver que la cónica es en
realidad la elipse
x2 y2
2
+ 2 =1,
2 1
centrada en el origen de coordenadas y de semiejes 2 y 1. Se tiene pues que las
gráficas superpuestas de la parábola y la elipse viene dadas en las Figuras 8.4 y
8.5.
Concluimos que si a = 0 el sistema tiene dos soluciones reales y si a = −1
sólo tiene una solución que es justo (x∗ , y ∗ ) = (0, 1).

(ii) Tomando a = 0, el sistema se puede escribir de la forma vectorial sigu-


iente f (x) = 0, siendo x = (x, y)T y la aplicación f : R2 → R2 de finida de la
forma
f1 (x) x2 − y
f (x) = = .
f2 (x) x2 + 4y 2 − 4
8.2 Problemas resueltos 183

1.5

0.5

-2 -1 1 2

-0.5

-1

Figura 8.4: Gráfica de las cónicas en el plano x − y con a = 0.

1.5

0.5

-2 -1 1 2

-0.5

-1

Figura 8.5: Gráfica de las cónicas en el plano x − y con a = −1.

Sea x∗ un cero de la función f , es decir f (x∗ ) = 0. El método de Newton-


Raphson para aproximar las soluciones del sistema f (x) = 0 consiste en realizar
la iteración vectorial
xi+1 = xi − (Df (xi ))−1 f (xi ) con i = 0, 1, . . . , (8.16)
siendo Df (xi ) la matriz Jacobiana de la función f en el punto xi = (xi , yi ) ∈ R2 ,
es decir $ ∂f (x ) ∂f (x ) %
1 i 1 i
∂x ∂y 2xi −1
Df (xi ) = ∂f2 (xi ) ∂f2 (xi ) = .
2xi 8yi
∂x ∂y
Si la matriz Jacobiana Df (xi ) es no singular, es decir si det Df (xi ) = 2xi (1 +
8yi ) = 0, entonces se puede realizar la iteración (8.16). En concreto, se tiene

xi+1 xi 1 8yi 1 x2i − yi
= − ,
yi+1 yi 2xi (1 + 8yi ) −2xi 2xi x2i + 4yi2 − 4
partiendo del punto inicial (x0 , y0 ) = (1, 1). Obtenemos la siguiente tabla a
partir de la anterior iteración
184 Solución de Ecuaciones no Lineales

i xi yi
0 1 1
1 0.9444 0.8888
2 0.9395 0.8828

La sucesión de puntos (xi , yi ) parece converger hacia la solución (x∗ , y ∗ ) del


primer cuadrante.

(iii) Si a = −1 y procedemos de igual forma que en el apartado anterior, se


tiene que el sistema se puede escribir de la forma vectorial siguiente f (x) = 0,
siendo
x2 − y + 1
f (x) = .
x2 + 4y 2 − 4
Para aplicar el método de Newton-Raphson, la matriz Jacobiana es la misma
que en el anterior apartado

2xi −1
Df (xi ) = ,
2xi 8yi

y sabemos que no es invertible si det Df (xi ) = 2xi (1 + 8yi ) = 0. Puesto que,


con a = −1, el sistema sólo tiene una solución que es justo (x∗ , y ∗ ) = (0, 1), es
claro que det Df (0, 1) = 0, de modo que, la sucesión de puntos que se genera con
el método de Newton–Raphson tenderı́a, en caso de converger, hacia un punto
donde la matriz Df no es invertible. Esto originará problemas numéricos a la
hora de calcular la matriz inversa de Df en puntos suficientemente cercanos a
la solución (0, 1).
Nota: Geométricamente ya se ve que la solución (0, 1) del sistema con
a = −1 presentará problemas con el método de Newton–Raphson puesto que
en ese punto la intersección de las dos cónicas (parábola f1 (x, y) = 0 y elipse
f2 (x, y) = 0) no es transversal si no que es tangencial. Entonces, los vectores
gradiente ∇f1 (0, 1) y ∇f2 (0, 1) son proporcionales y en consecuencia, el deter-
minante de la matriz Jacobiana det Df (0, 1) = 0.

(iv) Volvemos al caso a = 0. Entonces, despejando la incógnita y de la


primera ecuación y sustituyéndola en la segunda ecuación se obtiene una única
ecuación para la incógnita x. En concreto se llega a que x verifica la ecuación

0 = f (x) = −4 + x2 + 4x4 .

Puesto que f (x) es un polinomio, es claro que f ∈ C ∞ (R). En particular, f ∈


C([1/2, 1]) y f (1/2)f (1) = (−7/2) × 1 < 0 de modo que, aplicando el Teorema
de Bolzano, se tiene que existe al menos un cero x∗ de f con x∗ ∈ (1/2, 1).
Además, como f  (x) = 2x(1+8x2 ) se tiene f  (x) > 0 para todo x > 0. Entonces,
f (x) es una función creciente en el intervalo x ∈ (1/2, 1) de modo que el cero
x∗ ∈ (1/2, 1) de f es único.
Utilizaremos a continuación dos iteraciones del método de Newton-Raphson
para aproximar x∗ , partiendo de un punto inicial x0 que asegure la convergencia
8.2 Problemas resueltos 185

del método. Para elejir x0 , observemos que f  (x) = 2(1 + 24x2 ) > 0 para todo
x ∈ R. En definitiva, aplicando el Teorema de convergencia de la sucesión de
Newton–Raphson, se tiene que, puesto que i) f ∈ C 2 [1/2, 1]; ii) f (1/2)f (1) < 0;
iii) f  (x) > 0 y f  (x) > 0 para todo x ∈ [1/2, 1], concluimos que una elección
de x0 que asegura la convergencia de la sucesión de Newton–Raphson hacia x∗
es x0 = 1 ya que el signo de f (1) y de f  (1) coinciden.
Realizaremos dos iteraciones del método de Newton-Raphson para aproxi-
mar x∗ . La iteración es
f (xi ) −4 + x2i + 4x4i
xi+1 = xi − = xi − ,
f  (xi ) 2xi (1 + 8x2i )

con condición inicial x0 = 1. Obtenemos la siguiente tabla.

i xi f (xi )
0 1 1
1 0.9444 0.0737
2 0.9396 0.0005

Se tiene pues que x∗ ≈ x2 = 0,9396.

Problema 8.16 Considerar la ecuación ex = x + 2.


(i) Demostrar gráficamente que esta ecuación tiene sólo dos soluciones x∗1 >
0, x∗2 < 0. Obtener dos intervalos entre dos enteros consecutivos Ii =
[mi , mi + 1] ⊂ R con mi ∈ Z para i = 1, 2, tal que x∗i ∈ Ii .
(ii) Calcular el número de pasos que se deben ejecutar en el algoritmo de bisec-
ción partiendo del intervalo I1 si se desea aproximar x∗1 con un error
absoluto menor que 10−2 .
(iii) Utilizar 2 iteraciones del método de Newton–Raphson para aproximar x∗2 .
Usar un punto inicial en la iteración de modo que quede garantizada la
convergencia de la sucesión hacia x∗2 .

Solución. (i) Las soluciones de la ecuación ex = x + 2 son las abscisas de los


puntos de corte entre las gráficas de la función exponencial y = ex y la recta
y = x + 2, ver la gráfica de la Figura 8.6.
Es claro que dichas gráficas sólo tienen 2 puntos de corte (x∗1 , y1∗ ) y (x∗2 , y2∗ )
con x∗1 > 0 y x∗2 < 0. Definiendo la función f (x) = ex − (x + 2) se verifica-
rá que f (x∗i ) = 0 para i = 1, 2. Además, si tomamos los intervalos I1 = [1, 2] y
I2 = [−2, −1] se tiene que f (1)f (2) = −0,281718×3,38906 < 0 y f (−2)f (−1) =
0,135335 × (−0,632121) < 0. De este modo, teniendo en cuenta que f ∈ C(R),
aplicando el teorema de Bolzano a la función f en los intervalos I1 e I2 con-
cluimos que x∗i ∈ Ii para i = 1, 2.

(ii) Sea n el número de pasos que se deben ejecutar en el algoritmo de


bisección partiendo del intervalo I1 = [a0 , b0 ] = [1, 2] para aproximar x∗1 con un
186 Solución de Ecuaciones no Lineales

-3 -2 -1 1 2

Figura 8.6: Superposición de las gráficas de las funciones y = ex , y = x + 2.

error absoluto Δn < 10−2 . Recordemos que el algoritmo de Bisección genera


una sucesión de intervalos encajados de anchura del siguiente la mitad que la
del anterior (a0 , b0 ) ⊃ (a1 , b1 ) ⊃ · · · ⊃ (an , bn ) ⊃ · · · de modo que, la sucesión de
puntos medios {cn = (an + bn )/2}∞ ∗
n=0 verifica lı́mn→∞ cn = x1 . De este modo,
aproximando x∗1 ≈ cn , el error absoluto cometido es Δn = |x∗1 − cn | ≤ (b0 −
a0 )/2n+1 . En nuestro caso se tiene Δn ≤ (2 − 1)/2n+1 = 1/2n+1 . Imponiendo
pues que Δn < 10−2 se llega a una inecuación para n de la forma
1
< 10−2 .
2n+1
Invirtiendo y tomando logaritmos neperianos se obtine (n + 1) ln 2 > 2 ln 10, de
donde
ln 10
n>2 − 1 = 5,64386 .
ln 2
Puesto que n ∈ N, realizaremos n = 6 iteraciones.

(iii) Sabemos que x∗2 ∈ I2 = [−2, −1] es solución de la ecuación f (x) = 0


siendo f (x) = ex − (x + 2). Queremos aproximar x∗2 mediante 2 iteraciones del
algoritmo de Newton-Raphson

f (xn )
xn+1 = xn − ,
f  (xn )

partiendo de un punto inicial x0 adecuado que asegure la convergencia de la


sucesión. Sabemos que f ∈ C 2 [−2, −1] y que f (−2)f (−1) < 0. Además, f  (x) =
ex − 1 y f  (x) = ex , de modo que f  (x) sólo se anula en x = 0 y f  (x) > 0
para todo x ∈ R. En definitiva, para todo x ∈ [−2, −1] se tiene que f  (x) < 0
8.2 Problemas resueltos 187

y f  (x) > 0. Entonces, tomando x0 ∈ {−2, −1} que verifique signf (x0 ) =
signf  (x0 ) se asegura la convergencia de la sucesión de Newton–Raphson hacia
la única raı́z de f en [−2, −1]. En nuestro caso es claro que x0 = −2. Realizando
2 iteraciones de Newton-Raphson se obtiene la siguiente tabla

n xn f (xn )
0 -2 0.135335
1 -1.84348 0.00174769
2 -1.84141 3.40602 ×10−7

Obtenemos pues x∗2 ≈ x2 = −1,84141.


Problema 8.17 Se pretende construir un depósito en forma de paralelepı́pedo
sin tapa superior a partir de una plancha rectangular de dimensiones L y H. La
construcción se basa en plegar la plancha tras extraer sus 4 vértices mediante
el recortado de 4 cuadrados de lado . Es obvio que el volumen V de la caja
construida verifica la ecuación V = (L − 2)(H − 2). Sabiendo que L = 12
y H = 20, queremos aproximar el valor de  más pequen̄o posible de modo que
V = 49,5. Localizar dicho valor de  en un intervalo entre dos enteros conse-
cutivos y utilizar dos iteraciones del método de Newton–Raphson asegurando la
convergencia de la sucesión.
Solución. La longitud  satisface la ecuación polinomial cúbica f () = (L −
2)(H − 2) − V = 0. Con los datos del enunciado se obtiene
f () = (12 − 2)(20 − 2) − 49,5 .
Puesto que f () es un polinomio cúbico, es fácil esbozar de manera cualitativa
su gráfica. Para ello, primero calculamos las derivadas f  () = 4(3√2 −32+60) y
f  () = 8(3 − 16). En concreto, f  () = 0 si y sólo si  = 2/3(8 ± 19), es decir,
 = 2,4274 y  = 8,23927. Además, f  () = 0 sólo para  = 16/3 = 5,3333. En
definitiva, la gráfica de la función f () tiene un máximo relativo en  = 2,4274,
un mı́nimo relativo en  = 8,23927 y un punto de inflexión en  = 5,3333. Al
ser un polinomio, dicha gráfica no tiene ası́ntotas horizontales ni verticales. De
este modo, y teniendo en cuenta que f (0) < 0, f (2,4274) > 0 y f (8,23927) < 0,
se obtiene la gráfica cualitativa de la Figura 8.2.
En particular, el cero ∗ más pequen̄o de la función f se encuentra en el
intervalo (0, 2,4274) que es un intervalo de decrecimiento y de curvatura positiva
de la función f .
En resumen, como f (0) = −49,5 < 0, f (1) = 130,5 > 0 y f ∈ C[0, 1], por
el Teorema de Bolzano se tiene que existe al menos una raı́z ∗ ∈ (0, 1) de la
ecuación f () = 0. Además, esta raı́z es única ya que f  () > 0 para todo  ∈
[0, 1], de modo que f es creciente en el intervalo [0, 1]. Como además f  () < 0
para todo  ∈ [0, 1], se concluye que podemos tomar el punto inicial 0 = 0 en la
iteración de Newton–Raphson asegurando de antemano su convergencia hacia
∗ . En definitiva, realizando la iteración
f (n ) n (12 − 2n )(20 − 2n ) − 49,5
n+1 = n − = n − , 0 = 0 ,
f  (n ) 4(32n − 32n + 60)
188 Solución de Ecuaciones no Lineales

500

400

300

200

100

2 4 6 8 10 12
100

Figura 8.7: Gráfica del polinomio cúbico f () = (12 − 2)(20 − 2) − 49,5.

se obtiene la siguiente tabla.

n n
0 0
1 0.20625
2 0.218801

La aproximación buscada de la longitud del cuadrado es ∗ ≈ 0,218801.

Problema 8.18 Si C es la cantidad total en euros de un préstamo, n es el


número de pagos (mensualidades) a efectuar, a el importe de cada pago y r el
interés mensual aplicado, se satisface la siguiente relación
rn − 1
Crn = a .
r−1
Supongamos que nos ofrecen un crédito de 10000 euros a devolver en 100 men-
sualidades de 150 euros. Realizar dos iteraciones del método de Newton–Raphson
para aproximar el tipo de interés mensual r que se ha aplicado sabiendo que
r > 1. Tomar como valor inicial de la anterior sucesión un número natural
adecuado y explicar dicha elección de modo que se garantice la convergencia de
la sucesión de Newton–Raphson hacia r.
Ayuda. Escribir la ecuación que verifica r de la forma f (r) = 0 con f un
polinomio.

Solución. A partir de la relación


rn − 1
Crn = a ,
r−1
es claro que r satisface la ecuación polinomial f (r) = 0 siendo f (r) el polinomio
de grado n + 1 dado por

f (r) = Crn (r − 1) − a(rn − 1) = 10000r100 (r − 1) − 150(r100 − 1) .


8.2 Problemas resueltos 189

La derivada de f es

f  (r) = C(n + 1)rn − Cnrn−1 − anrn−1 = rn−1 [C(n + 1)r − n(C + a)]
= 5000r99 (202r − 203) .

El método de Newton–Raphson para aproximar las soluciones de f (r) = 0


consiste en generar la sucesión {rn }n∈N definida de modo recurrente según

f (ri ) 10000ri100 (ri − 1) − 150(ri100 − 1)


ri+1 = ri − = r i −
f  (ri ) 5000ri99 (202ri − 203)

Para elegir de modo adecuado el valor inicial r0 , haremos un análisis cualitativo


de la gráfica de f (r). En primer lugar, los puntos crı́ticos de f (r), es decir los
ceros de f  (r), son r = 0 y r = 203/202 ≈ 1,00495. En particular, vemos que si
r ∈ (0, 203/202) entonces f  (r) < 0 (y por lo tanto f (r) decrece) mientras que
si r > 203/202 entonces f  (r) > 0 y en consecuencia f (r) crece. Finalmente,
como f (1) = 0 por simple inspección y sabiendo que los polinomios no pueden
tener ası́ntotas horizontales, se deduce que existe un único r∗ > 203/202 tal que
f (r∗ ) = 0. Este valor r∗ es el interés mensual que se ha aplicado.
La segunda derivada de f es

f  (r) = 5000r98 (20200r − 20097) ,

de modo que los puntos de inflexión de f (r) son los ceros de f  (r), es decir,
r = 0 y r = 20097/20200 ≈ 0,994901. Tras el análisis efectuado, es fácil ver
que un intervalo [α, β] ⊂ R tal que r∗ ∈ [α, β] y además el signo de f  (r) y
de f  (r) sea constante en todo [α, β] debe ser de la forma α > 203/202 con
f (α) < 0 y f (β) > 0. Además, para asegurar la convergencia de la sucesión
{rn }n∈N generada por el método de Newton-Raphson hacia r∗ , se debe tomar el
valor inicial r0 = β puesto que el signo de f (β) coincide con el signo de f  (β).
Calculando vemos que f (2) > 0 de manera que tomaremos r0 = 2. Entonces, se
obtiene la siguiente tabla.

i ri
0 2
1 1.9804
2 1.96099

La aproximación buscada es r∗ ≈ r2 = 1,96099.


190 Solución de Ecuaciones no Lineales

Problema 8.19 Considerar la ecuación trascendente x2 + cos x − 2 = 0.


(i) Demostrar gráficamente que dicha ecuación tiene exactamente dos solu-
ciones reales.

√ si x es una solución de la
(ii) Acotando la función cos x, √demostrar que

ecuación, entonces x ∈ [− 3, −1] ∪ [1, 3].
(iii) Demostrar que existe un único x∗ > 0 solución de la ecuación.

(iv) Aproximar el valor de la solución x∗ > 0 mediante dos iteraciones del


método de Newton–Raphson asegurando la convergencia de la sucesión.

Solución. (i) Las soluciones reales de la ecuación x2 + cos x − 2 = 0 corres-


ponden con las abscisas de los puntos de corte de las gráficas de las funciones
y = cos x e y = 2 − x2 . Dichas gráficas están dibujadas a continuación.

3 2 1 1 2 3

2

4

6

8

Figura 8.8: Gráficas superpuestas de las funciones y = cos x e y = 2 − x2 .

A la vista de la gráfica, es evidente que existen exactamente dos soluciones


reales de dicha ecuación, siendo una positiva y la otra negativa. De hecho, puesto
que la función f (x) = x2 + cos x − 2 es una función par (es decir f (−x) = f (x)
para todo x ∈ R), es claro que si x∗ es un cero de f , entonces −x∗ también lo es.

(ii) Reordenando la ecuación de la forma x2 = 2 − cos x y teniendo en


∗ 2
cuenta √ √ x ≤ 1, es evidente que (x ) ∈ [1, 3], de modo que,
que −1 ≤ cos

x ∈ [− 3, −1] ∪ [1, 3].

(iii) Definamos la función f (x) = x2 + cos x − 2. Teniendo en cuenta el resul-


tado del apartado anterior, para demostrar que existe un único cero x∗ > 0 de√ la
función f basta con demostrar que f tiene un único cero en el intervalo [1, √ 3].
En primer lugar utilizaremos
√ el Teorema de Bolzano. Puesto que f ∈ C([1, 3])
y además f (1) > 0 y f ( 3) < 0, por el Teorema de Bolzano se sabe que f tiene
8.2 Problemas resueltos 191


al menos un cero en el intervalo [1, 3]. Finalmente mostraremos√la unicidad de
dicha raı́z puesto que f  (x) = 2x − sin x√= 0 para todo x ∈ [1, 3]. De hecho,
se tiene que f  (x) > 1 para todo x ∈ [1, 3] debido a que −1 ≤ sin x ≤ 1.

(iv) Una vez sabemos que existe un único x∗ ∈ [1, 3] tal que f (x∗ ) = 0,
vamos a aproximarlo mediante dos iteraciones del método de Newton–Raphson
xn+1 = xn − ff(x n)
(xn ) . Para asegurar la convergencia de la sucesión {xn }n∈N ,
hemos
√ de elegir adecuadamente el punto inicial x0 . Tomamos el intervalo [a, b] =
[1, 3]. Por los cálculos realizados en el apartado (iii) sabemos que f ∈ C 2 [a, b]
con f (a)f (b) < 0. Además, f  (x) > 0 para todo x ∈ [a, b]. Sólo falta estudiar
el signo de f  (x) en el intervalo [a, b]. Puesto que f  (x) = 2 − cos x, es claro
que f  (x) > 0 para todo x ∈ [a, b]. De este modo, se tomará el valor inicial
x0 ∈ {a, b} que verifique signf (x0 ) = signf  (x0 ). En definitiva, x0 = a = 1.
Realizando la iteración de Newton–Raphson

f (xn ) x2n + cos xn − 2


xn+1 = xn − = xn − , x0 = 1 ,
f  (xn ) 2xn − sin xn
se obtienen los primeros términos

n xn f (xn )
0 1 -0.459698
1 1.39679 0.12416
2 1.32815 0.00425146

Se concluye con la aproximación x∗ ≈ x2 = 1,32815.

Problema 8.20 Consideremos la ecuación x3 + 10x = − cos x.


(i) Demostrar gráfica y analı́ticamente que la ecuación tiene una única solución
x∗ ∈ R. Además, acotarla entre dos números enteros consecutivos, es
decir, hallar m ∈ Z tal que x∗ ∈ [m, m + 1].
(ii) Hallar el mı́nimo número de iteraciones que se deben realizar con el algo-
ritmo de bisección partiendo del intervalo [m, m + 1] dado en el apartado
(i) para obtener una aproximación de x∗ con un error menor que 10−1 .
Obtener mediante ese número de iteraciones el intervalo I ⊂ R que con-
tiene a x∗ .
(iii) Mejorar la aproximación de x∗ dada en el apartado anterior aplicando
2 iteraciones del método de Newton–Raphson partiendo del intervalo I
hallado en el apartado (ii). Usar una condición inicial adecuada de modo
que se garantice la convergencia de la sucesión Newton–Raphson hacia x∗ .

Solución. (i) Escribimos la ecuación de la forma g(x) = h(x) siendo g(x) =


x3 + 10x = x(x2 + 10) y h(x) = − cos x. Es fácil hallar cualitativamente la
gráfica de las dos funciones g(x) y h(x). En particular, |h(x)| ≤ 1, la gráfica de
g(x) sólo corta al eje de abscisas en x = 0 y, puesto que g  (x) = 3x2 + 10 > 0
192 Solución de Ecuaciones no Lineales

para todo x ∈ R, se concluye que el polinomio g(x) es una función creciente en


todo R. Teniendo en cuenta además que h(x) oscila tomando valores entre −1
y 1, que h(±π/2) = 0 y que g(±π/2) = ±19,58 se concluye que las gráficas de
las funciones g(x) y h(x) sólo se cortan en un punto de abscisa x∗ ∈ [−π/2, 0].
Por supuesto, el valor x∗ es pues la única solución de la ecuación g(x) = h(x).
Para hallar m ∈ Z tal que x∗ ∈ [m, m + 1], primero reescribimos la ecuación
de la forma f (x) = 0, siendo f (x) = x3 + 10x + cos x. Como f ∈ C(R) y además
f (0) = 1 > 0 y f (−1) = −11 + cos(1) = −10,4597 < 0, aplicando el Teorema de
Bolzano se tiene que existe x∗ ∈ [−1, 0] tal que f (x∗ ) = 0.

(ii) Utilizando el algoritmo de bisección, se obtiene una sucesión de intervalos


encajados (a0 , b0 ) = (−1, 0) ⊃ (a1 , b1 ) ⊃ · · · ⊃ (an , bn ) ⊃ · · ·, de modo que la
sucesión de puntos medios {cn }∞ n=0 con cn = (an + bn )/2 satisface lı́mn→∞ cn =
x∗ . Además, el error absoluto Δ = |x∗ − cn | cometido en la aproximación x∗ ≈
cn tras realizar n iteraciones con el algoritmo de bisección está acotado por
Δ ≤ (b0 − a0 )/2n+1 . Imponiendo que Δ ≤ 1/2n+1 < 10−1 se tiene que
ln 10
n > −1 + = 2,32 ,
ln 2
de modo que n = 3.
Procedemos a calcular, según el método de bisección, los intervalos (a0 , b0 ) =
(−1, 0) ⊃ (a1 , b1 ) ⊃ (a2 , b2 ) ⊃ I = (a3 , b3 ). El punto medio c0 = (a0 + b0 )/2 =
−1/2 verifica f (−1/2) = −4,24742 < 0 de modo que (a1 , b1 ) = (−1/2, 0). Luego,
el punto medio c1 = (a1 + b1 )/2 = −1/4 satisface f (−1/4) = −1,54671 < 0 con
lo que (a2 , b2 ) = (−1/4, 0). Finalmente, el punto medio c2 = (a2 +b2 )/2 = −1/8,
con lo que f (−1/8) = −0,259755 < 0 y se tiene I = (a3 , b3 ) = (−1/8, 0). Con-
cluimos que x∗ ∈ I = (−1/8, 0).

(iii) Sabemos de los apartados anteriores que existe un único x∗ ∈ I =


[−1/8, 0] tal que f (x∗ ) = 0. Además, f ∈ C 2 (I) con f (−1/8)f (0) < 0 ya que
f (−1/8) < 0 y f (0) > 0. Por otra parte, f  (x) = 3x2 + 10 − sin x ≥ 9 > 0 para
todo x ∈ R puesto que 3x2 + 10 ≥ 10 y −1 ≤ sin x ≤ 1. Entonces, en particular
f  (x) > 0 para todo x ∈ I. Finalmente, es evidente que f  (x) = 6x − cos x < 0
para todo x ∈ I. Entonces, tomando el punto inicial x0 de la sucesión Newton–
Raphson como x0 ∈ {−1/8, 0} que verifique signf (x0 ) = signf  (x0 ), es decir,
tomando x0 = −1/8 la sucesión de Newton-Raphson {xn }n∈N converge hacia la
única raı́z x∗ de f en I.
Acabamos el problema realizando 2 iteraciones de Newton-Raphson
f (xi ) x3 + 10xi + cos xi
xi+1 = xi − 
= xi − i 2
f (xi ) 3xi + 10 − sin xi
y obteniendo la tabla siguiente
i xi
0 -1/8
1 -0.0994625
2 -0.0994081
8.2 Problemas resueltos 193

Se concluye que x∗ ≈ x2 = −0,0994081.


Capı́tulo 9

Aproximación de Funciones

9.1. Resumen de teorı́a


El problema básico en este capı́tulo consiste en reconstruir la función f (x)
teniendo en cuenta la clase funcional a la cual pertenece. La idea principal con-
siste en representar la función f mediante una combinación lineal de funciones
linealmente independientes ϕ1 (x), . . . , ϕn (x) pertenecientes a dicha clase fun-
cional, es decir

f (x) ≈ f ∗ (x) := c1 ϕ1 (x) + · · · + cn ϕn (x) .

Se tienen que calcular los coeficientes de la combinación lineal ci para i =


1, . . . , n, de manera que f ∗ aproxime a f de la “mejor manera posible”.

Un planteamiento general del problema de la aproximación de funciones serı́a


el siguiente: dada una función f perteneciente a un cierto espacio de funciones F
dotado de una norma . y un subespacio G ⊂ F de dimensión finita, encontar
la función f ∗ ∈ G que mejor aproxima a la función f con la norma dada, es
decir, tal que

f − f ∗ ≤ f − g para toda función g ∈ G .

En otras palabras, la función f ∗ es la mejor aproximación de la función f res-


pecto al subespacio G con la norma . si

f − f ∗ = ı́nf f − g .
g∈G

La aproximación efectuada será discreta si sólo se necesitan un número finito


de puntos para calcular la norma. En caso contrario, es decir, si es necesario
evaluar la función en todos los puntos de un intervalo [a, b] para calcular la
norma se dice que la aproximación es continua. Existe otra clasificación de las
aproximaciones atendiendo a la norma utilizada. De esta manera, si se utiliza la
norma del infinito o del máximo . ∞ se habla de aproximación min-max y si se

195
196 Aproximación de Funciones

utiliza la norma euclidiana . 2 se llama aproximación por mı́nimos cuadrados.


En concreto, se tiene:
La aproximación min-max discreta utiliza la seminorma
f ∞ = máx |f (xi )| .
1≤i≤n

La aproximación min-max continua utiliza la norma


f ∞ = máx |f (x)| .
x∈[a,b]

La aproximación por mı́nimos cuadrados discreta utiliza la seminorma


+
, n
,
f 2 = - [f (xi )]2 .
i=1

La aproximación por mı́nimos cuadrados continua utiliza la norma


*
! b
f 2 = [f (x)]2 dx .
a

Teorema 9.1 Sea F un espacio vectorial de funciones normado. Sean ϕ1 , . . . ,


ϕn ∈ F un conjunto de funciones linealmente independientes. Entonces, para
cada función f ∈ F existe una única combinación lineal f ∗ = 
n
i=1 ci ϕ i tal que
f − f ∗ ≤ f − g para cualquier otra combinación lineal g = i=1 c̃i ϕi .
n

Nuestro objetivo consiste en calcular el valor de los coeficientes ci de man-


era que f − f ∗ o equivalentemente f − f ∗ 2 tenga un valor mı́nimo. Para
conseguirlo se ha de imponer la anulación de las derivadas parciales

f − f ∗ 2 = 0 j = 1, . . . , n .
∂cj
Desarrollando esta expresión obtenemos las ecuaciones normales
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
< ϕ1 , ϕ1 > · · · < ϕ1 , ϕn > c1 < f, ϕ1 >
⎜ .. .. ⎟ ⎜ .. ⎟ ⎜ .. ⎟
⎝ . ··· . ⎠ ⎝ . ⎠=⎝ . ⎠ , (9.1)
< ϕn , ϕ1 > · · · < ϕn , ϕn > cn < f, ϕn >
donde < ., . > denota el producto escalar asociado a la norma . , es decir,
f 2 =< f, f >.

Otra forma alternativa de llegar a las ecuaciones normales es mediante los


sistemas lineales sobredeterminados.
Teorema 9.2 Sea A una matriz m × n con m > n y b ∈ Rm . Si x ∈ Rn verifica
las ecuaciones normales AT (b − Ax) = 0, entonces b − Ax 2 ≤ b − Ay 2 para
todo y ∈ Rn .
9.2 Problemas resueltos 197

9.2. Problemas resueltos


Problema 9.1 Un ingeniero en una central nuclear mide las siguientes os-
cilaciones de la temperatura T en función del tiempo t en el interior de un
dispositivo termonuclear

ti (s) 0 1 2 3
T (ti ) (K) 27 34 25 38

(i) Si el modelo fı́sico al que deben responder las medidas anteriores es

T (t) = α + β sin t + γ cos2 t ,

calcular las constantes α, β y γ de manera que la función T (t) sea la


mejor aproximación, según la teorı́a de mı́nimos cuadrados, a los datos
experimentales.
(ii) Se pretende ahora aproximar la función T (t) por un polinomio P (t) de
grado menor o igual que 2 que pase por los tres primeros puntos (ti , T (ti ))
con i = 0, 1, 2.
(a) Utilizando el método de las diferencias divididas de Newton, obtener
el polinomio P (t).
(b) Supongamos que ciertas consideraciones fı́sicas indican que la función
tercera derivada de la temperatura respecto del tiempo T (3) (t) debe estar
acotada de la forma |T (3) (t)| ≤ 0,1 para todo tiempo t ∈ [0, 2]. Obtener
una cota (independiente del tiempo) del error absoluto cometido al realizar
la aproximación T (t) ≈ P (t) para cualquier tiempo t ∈ [0, 2].
(c) Utilizar el polinomio del apartado (a) para realizar la aproximación
2 2
0
T (t) dt ≈ 0 P (t) dt. Explicar cual es la fórmula de Newton-Cotes con
la que se obtiene la misma aproximación.

Solución. (i) La temperatura en función del tiempo se quiere aproximar por


una función del tipo

T (t) = αϕ1 (t) + βϕ2 (t) + γϕ3 (t) ,

siendo ϕ1 (t) = 1, ϕ2 (t) = sin t y ϕ3 (t) = cos2 t. Las ecuaciones normales para
obtener los parámetros α, β y γ según la teorı́a de mı́nimos cuadrados son
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
< ϕ 1 , ϕ1 > < ϕ 1 , ϕ2 > < ϕ 1 , ϕ3 > α < T, ϕ1 >
⎝ < ϕ2 , ϕ1 > < ϕ2 , ϕ2 > < ϕ2 , ϕ3 > ⎠ ⎝ β ⎠ = ⎝ < T, ϕ2 > ⎠ ,
< ϕ 3 , ϕ1 > < ϕ 3 , ϕ2 > < ϕ 3 , ϕ3 > γ < T, ϕ3 >

donde <, > denota el producto escalar discreto euclideano. Se tiene pues que
4
 4

< ϕ 1 , ϕ1 > = ϕ21 (ti ) = 1=4,
i=1 i=1
198 Aproximación de Funciones

4
 4

< ϕ 2 , ϕ2 > = ϕ22 (ti ) = sin2 (ti ) = 0 + 0,708073 + 0,826822
i=1 i=1
+0,0199149 = 1,55481 ,
4 4

< ϕ3 , ϕ 3 > = ϕ23 (ti ) = cos4 (ti ) = 1 + 0,0852211 + 0,0299907
i=1 i=1
+ 0,960567 = 2,07578 ,
4 4

< ϕ 1 , ϕ2 > = ϕ1 (ti )ϕ2 (ti ) = sin(ti ) = 0 + 0,841471 + 0,909297
i=1 i=1
+0,14112 = 1,89189 ,
4 4

< ϕ 1 , ϕ3 > = ϕ1 (ti )ϕ3 (ti ) = cos2 (ti ) = 1 + 0,291927 + 0,173178
i=1 i=1
+0,980085 = 2,44519 ,
4 4

< ϕ 2 , ϕ3 > = ϕ2 (ti )ϕ3 (ti ) = sin(ti ) cos2 (ti ) = 0,541428 ,
i=1 i=1
4

< T, ϕ1 > = T (ti )ϕ1 (ti ) = 27 + 34 + 25 + 38 = 124 ,
i=1
4

< T, ϕ2 > = T (ti )ϕ2 (ti ) = 56,705 ,
i=1
4

< T, ϕ3 > = T (ti )ϕ3 (ti ) = 78,4982 .
i=1

Finalmente, como el producto escalar verifica la propiedad conmutativa, las


ecuaciones normales son
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
4 1,89189 2,44519 α 124
⎝ 1,89189 1,55481 0,541428 ⎠ ⎝ β ⎠ = ⎝ 56,705 ⎠ ,
2,44519 0,541428 2,07578 γ 78,4982
y su solución es (α, β, γ) = (−87,0139, 102,828, 113,495).

Otra forma de resolver el problema consiste en imponer que la función T (t)


pase por todos los puntos experimentales (ti , T (ti )) con i = 1, 2, 3, 4. De esta
forma se obtiene un sistema lineal sobredeterminado Ax = b para x = (α, β, γ)T .
En concreto se tiene
⎛ ⎞ ⎛ ⎞
1 sin 0 cos2 0 ⎛ ⎞ 27
⎜ 1 sin 1 cos2 1 ⎟ α ⎜ ⎟
⎜ ⎟ ⎝ β ⎠ = ⎜ 34 ⎟ .
⎝ 1 sin 2 cos 2 ⎠2 ⎝ 25 ⎠
γ
1 sin 3 cos2 3 38
Según la teorı́a de mı́nimos cuadrados, la mejor aproximación vendrá dada
por la solución de las ecuaciones normales At Ax = At b. En este problema se
9.2 Problemas resueltos 199

tiene
⎛ ⎞ ⎛ ⎞
1 sin 0 cos2 0 1 0 1
⎜ 1 sin 1 cos2 1 ⎟ ⎜ 1 0,841471 0,291927 ⎟
A=⎜ ⎟ ⎜ ⎟ ,
⎝ 1 sin 2 cos2 2 ⎠ = ⎝ 1 0,909297 0,173178 ⎠
1 sin 3 cos2 3 1 0,14112 0,980085
de manera que las ecuaciones normales adoptan la forma
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
4 1,89189 2,44519 α 124
⎝ 1,89189 1,55481 0,541428 ⎠ ⎝ β ⎠ = ⎝ 56,705 ⎠ ,
2,44519 0,541428 2,07578 γ 78,4982
siendo su solución es (α, β, γ) = (−86,7386, 102,583, 113,234).

Observar que los dos métodos utilizados llevan a las mismas ecuaciones nor-
males, aunque debido a los errores de redondeo en los cálculos efectuados exista
algún dı́gito diferente en ellas.

(iia) Realizamos el siguiente esquema de diferencias divididas

0 27
7
1 34 -8
-9
2 25
El polinomio interpolador es
P (t) = T [t0 ] + T [t0 , t1 ](t − t0 ) + T [t0 , t1 , t2 ](t − t0 )(t − t1 ) = 27 + 7t − 8t(t − 1) ,
que desarrollado resulta P (t) = 27 + 15t − 8t2 .

(iib) Se sabe que el error absoluto Δ cometido al realizar la aproximación


T (t) ≈ P (t) para cualquier tiempo t ∈ [0, 2] viene dado por
 
 T (3) (ξ) 
2 
 
Δ = |T (t) − P (t)| =  (t − ti ) ,
 3! 
i=0

siendo ξ ∈ (0, 2). Como tanto t como ti pertenecen al intervalo [0, 2] se tiene que
2
|t − ti | ≤ 2 y por lo tanto i=0 |t − ti | ≤ 23 = 8. Además el enunciado asegura
que |T (3) (t)| ≤ 0,1 para todo tiempo t ∈ [0, 2] de manera que |T (3) (ξ)| ≤ 0,1.
Con estas acotaciones se tiene que
0,1
Δ = |T (t) − P (t)| ≤ 8 = 0,13333 .
3!
(iic) La aproximación requerida es
! 2 ! 2 ! 2
188
T (t) dt ≈ P (t) dt = [27 + 7t − 8t(t − 1)] dt = ≈ 62,66 .
0 0 0 3
200 Aproximación de Funciones

Como P (t) es el polinomio que interpola a la función T (t) en las abscisas


equiespaciadas a = t0 < t1 < · · · < tn = b y además la aproximación efectuada
b b
es a T (t) dt ≈ a P (t) dt es evidente que se ha utilizado una formula de Newton-
Cotes. Además como n = 2 la fórmula es la de Simpson.

Problema 9.2 La viscosidad μ de un cierto fluido varı́a con la temperatura T


a la que está sometido el fluido. Un ingeniero realiza las siguientes mediciones

Tk (◦ C) 1 10 38
μk (centipoises) 50 10 5

(i) Suponiendo que se tiene el siguiente modelo fı́sico μ(T ) = μ0 T k , calcular


las constantes μ0 y k de manera que la función μ(T ) sea la mejor aproxi-
mación por mı́nimos cuadrados a los datos experimentales de la tabla.
(ii) Aproximar el valor μ(20) mediante interpolación polinomial de Lagrange
con todos los datos de la tabla de valores experimentales. En vista del
resultado obtenido, ¿se puede afirmar que es una buena aproximación?
(iii) Supongamos que podemos realizar las tres mediciones experimentales
(Tk , μk ) con k = 0, 1, 2, de la tabla para cualquier valor Tk ∈ [1, 38].
Sabiendo que posteriormente se pretende realizar una aproximación por
interpolación polinomial como en el anterior apartado, dar de manera ra-
zonada las tres temperaturas Tk donde se efectuarı́an las mediciones con
el objetivo de disminuir el error en la aproximación interpolatoria.

Solución. (i) Puesto que el parámetro k no inteviene de forma lineal en la


expresión de la función μ(T ) = μ0 T k , realizamos una estrategia de linearización
tomando logaritmos en ambos miembros de la anterior igualdad. De esta forma,
utilizando las propiedades de la funión logaritmo se tiene que

ln μ(T ) = ln μ0 + k ln T . (9.2)

En segundo lugar, realizamos una nueva tabulación de la nueva variable ln T


y la nueva función ln μ a partir de la tabla de valores del enunciado.

ln Tk 0 2.30259 3.63759
ln μk 3.91202 2.30259 1.60944

A continuación imponemos que la función (9.2) verifique todos los puntos de


la nueva tabulación. Ası́, se obtiene el siguiente sistema lineal sobredeterminado
⎛ ⎞ ⎛ ⎞
1 0 3,91202
⎝ 1 2,30259 ⎠ log μ 0
= ⎝ 2,30259 ⎠ .
k
1 3,63759 1,60944

Buscaremos la “mejor solución posible”del anterior sistema lineal, dentro


de la teorı́a de mı́nimos cuadrados, multiplicando por la izquierda el anterior
9.2 Problemas resueltos 201

sistema lineal por la matriz traspuesta de los coeficientes del sistema. De esta
forma se obtiene el sistema lineal de ecuaciones normales

3 5,94018 log μ0 7,82405
= , (9.3)
5,94018 18,534 k 11,1564
cuya solución es (log μ0 , k) = (3,87571, −0,64023). Por lo tanto
μ0 = exp(3,87571) = 48,217 ,
y, en definitiva, la mejor aproximación por mı́nimos cuadrados viene dada por
μ(T ) = 48,217 T −0,64023 .
Existe otra forma de resolver el problema, basada en la obtención de las
ecuaciones normales (9.3) a partir del producto escalar euclideano discreto que
denotaremos por < ., . >. En concreto, tomando la función f (T ) = ln μ(T ) y las
funciones ϕ1 (T ) = 1, ϕ2 (T ) = ln T , se tiene que f (T ) es una combinación lineal
de ϕ1 (T ), ϕ2 (T ), es decir, f (T ) = ln μ0 ϕ1 (T ) + kϕ2 (T ). De esta forma, se sabe
que las ecuaciones normales adoptan la forma

< ϕ1 , ϕ1 > < ϕ1 , ϕ2 > log μ0 < f, ϕ1 >
= . (9.4)
< ϕ2 , ϕ1 > < ϕ2 , ϕ2 > k < f, ϕ2 >
Calculando los productos escalares euclideanos discretos asociados a la tabla del
enunciado e involucrados en este sistema se tiene
2

< ϕ1 , ϕ1 > = ϕ21 (Tk ) = 12 + 12 + 12 = 3 ,
k=0
2

< ϕ2 , ϕ2 > = ϕ22 (Tk )
k=0
= ln2 T0 + ln2 T1 + ln2 T2 = ln2 1 + ln2 10 + ln2 38 = 18,534 ,
2
< ϕ 1 , ϕ2 > = ϕ1 (Tk )ϕ2 (Tk ) = ln 1 + ln 10 + ln 38 = 5,94018 ,
k=0
2

< f, ϕ1 > = f (Tk )ϕ1 (Tk )
k=0
= ln μ(1) + ln μ(10) + ln μ(3) = ln 50 + ln 10 + ln 5
= 7,82405 ,
2
< f, ϕ2 > = f (Tk )ϕ2 (Tk ) = ln 50 ln 1 + ln 10 ln 10 + ln 5 ln 38
k=0
= 11,1564 .
De estos cálculos se desprende que las ecuaciones normales (9.4) coinciden con
las ecuaciones (9.3) y por lo tanto el problema sigue de igual manera.
202 Aproximación de Funciones

(ii) En este segundo apartado del problema, realizaremos una aproximación


polinomial μ(T ) ≈ P2 (T ), donde P2 (T ) es el polinomio de grado menor o igual
que 2 que interpola a todos los datos (Tk , μk ) de la tabla del enunciado.
Utilizando el formalismo de Lagrange se tiene
2

P2 (T ) = μk k (T ) = 500 (T ) + 101 (T ) + 52 (T ) ,
k=0

donde los polinomios básicos de Lagrange k (T ) son

T − T1 T − T2 T − 10 T − 38
0 (T ) = = ,
T0 − T1 T0 − T 2 1 − 10 1 − 38
T − T0 T − T2 T − 1 T − 38
1 (T ) = = ,
T1 − T 0 T1 − T 2 10 − 1 10 − 38
T − T0 T − T1 T − 1 T − 10
2 (T ) = = .
T2 − T 0 T2 − T1 38 − 1 38 − 10

Finalmente, la aproximación que se desea efectuar es

μ(20) ≈ P2 (20) = 500 (20) + 101 (20) + 52 (20)



−20 19 95
= 50 × + 10 × +5× = −12,5386 .
37 14 518

Notamos que la aproximación que acabamos de realizar no es buena puesto


que hemos obtenido que cuando la temperatura es 20◦ C, la viscosidad del fluido
es μ(20) < 0, lo cual no concuerda con la realidad fı́sica, ya que μ(T ) > 0 para
−273,16 < T < ∞. El motivo ha sido la oscilación no deseada del polinomio
interpolador P2 (T ).

(iii) Recordemos que, si se quiere realizar una interpolación polinomial con


n + 1 nodos en el intervalo [−1, 1] para posteriormente aproximar una función
suficientemente derivable en dicho intervalo, la mejor elección de los nodos con el
objetivo de minimizar el error en dicha aproximación con la norma del máximo
o del infinito vienen dados por las abscisas de Chebychev xk ∈ (−1, 1) definidas
como
2k + 1
xk = cos π , k = 0, 1, . . . , n .
2n + 2
Si se pretende realizar una interpolación polinomial en el intevalo [a, b], lo único
que se debe realizar es un cambio lineal de variables que lleve el intervalo [−1, 1]
al intervalo [a, b].

En concreto, en el problema planteado, los nodos Tk ∈ [a, b] = [1, 38], de


manera que el cambio de variable
39 37
T = + x,
2 2
9.2 Problemas resueltos 203

lleva los valores x ∈ [−1, 1] a valores T ∈ [1, 38]. Por lo tanto, los nodos que
tomaremos son

39 37 39 37 2k + 1
Tk = + xk = + cos π , k = 0, 1, . . . , n .
2 2 2 2 2n + 2
Finalmente, como n = 2, las temperaturas Tk donde se realizarán las mediciones
de la viscosidad serán
39 37  π 39 37 √3 √
78 + 37 3
T0 = + cos = + = = 35,5215◦ C ,
2 2 6 2 2 2 4
39 37  π 39
T1 = + cos = = 19,5◦ C ,
2 2 2 2 √ √

39 37 5π 39 37 3 78 − 37 3
T2 = + cos = − = = 3,47853◦ C .
2 2 6 2 2 2 4

Problema 9.3 La intensidad I de la radiación de una fuente radioactiva de-


pende del tiempo de la forma I(t) = I0 exp(−αt). Determinar, mediante el méto-
do de mı́nimos cuadrados, la intensidad inicial de la radiación I0 y la constante
de desintegración α sabiendo que se han realizado las mediciones siguientes

t 0.2 0.3 0.4 0.5 0.6 0.7 0.8


I 3.16 2.38 1.75 1.34 1.00 0.74 0.56

Solución. Observemos que el parámetro α no interviene de forma lineal en la


expresión de la función a aproximar I(t). Por lo tanto se realizará una lin-
earización de la forma siguiente. Tomando logaritmos neperianos en ambos
miembros de la ecuación I(t) = I0 exp(−αt) se obtiene que ln I(t) = ln I0 − αt.
De este modo, los nuevos parámetros ln I0 y α intervienen de forma lineal. Cal-
culamos una nueva tabulación a partir de la dada en el enunciado
t 0.2 0.3 0.4 0.5 0.6 0.7 0.8
ln I 1.15057 0.8671 0.559616 0.29267 0 -0.301105 -0.579818

Ahora imponemos que la ecuación ln I(t) = ln I0 − αt sea verificada para to-


dos los puntos de esta tabulación. Obtenemos, en definitiva, el siguiente sistema
lineal sobredeterminado Ax = b para x = (ln I0 , α)T . En concreto se tiene
⎛ ⎞ ⎛ ⎞
1 −0,2 1,15057
⎜ 1 −0,3 ⎟ ⎜ 0,8671 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 1 −0,4 ⎟ ⎜ 0,559616 ⎟
⎜ ⎟ ln I ⎜ ⎟
⎜ 1 −0,5 ⎟ 0
=⎜ ⎟
⎜ ⎟ α ⎜ 0,29267 ⎟ .
⎜ 1 −0,6 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟
⎝ 1 −0,7 ⎠ ⎝ −0,301105 ⎠
1 −0,8 −0,579818
Por supuesto, el anterior sistema lineal sobredeterminado es incompatible,
sin embargo, en el contexto de la teorı́a de mı́nimos cuadrados, la “mejor aprox-
imación”vendrá dada por la solución de las ecuaciones normales At Ax = At b,
204 Aproximación de Funciones

siendo At la matriz traspuesta de A. Aplicado al anterior sistema sobredetermi-


nado, las ecuaciones normales resultan

7 −3,5 ln I0 1,98903
= .
−3,5 2,03 α −0,185798
La solución de estas ecuaciones normales es (ln I0 , α) = (1,72829, 2,88828). Por
lo tanto, la solución es
(I0 , α) = (5,63102, 2,88828) .
Se puede comprobar el ajuste obtenido mediante la gráfica de la Figura 9.1.
I
4
3.5
3
2.5
2
1.5
1
0.5
t
0.2 0.4 0.6 0.8 1

Figura 9.1: Gráfica de la intensidad radioactiva I(t) en función del tiempo su-
perpuesta a la nube de puntos experimentales.

Problema 9.4 La posición x en función del tiempo t para cualquier movimien-


to rectilineo uniforme es x(t) = x0 + v0 t + 12 at2 , siendo x0 , v0 y a la posición
inicial, veocidad inicial y aceleración de movil. Se han realizado las siguientes
mediciones experimentales

ti 0 1 2 3 4
x(ti ) 1.1 0.3 -6.5 -21 -39

Hallar x0 , v0 y a por el método de mı́nimos cuadrados.

Solución. Imponiendo que la función x(t) = x0 + v0 t + 12 at2 pase por todos los
puntos de la tabulación del enunciado obtenemos el sistema lineal sobredeter-
minado ⎛ ⎞ ⎛ ⎞
1 0 0 ⎛ ⎞ 1,1
⎜ 1 1 1/2 ⎟ x0 ⎜ 0,3 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 1 2 2 ⎟ ⎝ v0 ⎠ = ⎜ −6,5 ⎟
⎜ ⎟ ⎜ ⎟
⎝ 1 3 9/2 ⎠ a ⎝ −21 ⎠
1 4 8 −39
9.2 Problemas resueltos 205

Multiplicamos por la izquierda ambos miembros de esta ecuación por la matriz


traspuesta de la matriz de coeficientes del sistema obteniendo las ecuaciones
normales

⎛ ⎞T ⎛ ⎞ ⎛ ⎞T ⎛ ⎞
1 0 0 1 0 0 ⎛ ⎞ 1 0 0 1,1
⎜ 1 1 1/2 ⎟ ⎜ 1 1 1/2 ⎟ x ⎜ 1 1 1/2 ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟ 0 ⎜ ⎟ ⎜ 0,3 ⎟
⎜ 1 2 2 ⎟ ⎜ 1 2 2 ⎟ ⎝ v0 ⎠ = ⎜ 1 2 2 ⎟ ⎜ −6,5 ⎟.
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎝ 1 3 9/2 ⎠ ⎝ 1 3 9/2 ⎠ a ⎝ 1 3 9/2 ⎠ ⎝ −21 ⎠
1 4 8 1 4 8 1 4 8 −39

Operando, se llega a que

⎛ ⎞ ⎛ ⎞ ⎛ ⎞
5 10 15 x0 −65,1
⎝ 10 30 50 ⎠ ⎝ v0 ⎠ = ⎝ −231,7 ⎠ ,
15 50 177/2 a −419,35

cuya solución es

(x0 , v0 , a) = (1,26571, 1,87857, −6,01429) .

En la Figura 9.2 se muestra una superposición de la parábola x(t) = 1,26571+


1,87857t − 6,01429/2t2 y de la nube de puntos (ti , xi ) del enunciado.

t
1 2 3 4

-10

-20

-30

-40

Figura 9.2: Parábola x(t) = 1,26571 + 1,87857t − 6,01429/2t2 y nube de puntos


experimentales.
206 Aproximación de Funciones

Problema 9.5
La siguiente tabla muestra el volumen v de un gas en un cilindro cuando la
presión p en un pistón es aumentada

pk (Pa) 5 6 7
vk (m3 ) 2.5 1 0.5

(i) Aproximar, con todos los datos de la tabla adjunta, la función v(p) mediante
una interpolación polinómica de Lagrange.
(ii) Posteriormente se averigua que la evolución termodinámica del gas es
adiabática y por lo tanto verifica la ecuación pv γ = c con c y γ con-
stantes. Calcular dichas constantes por el método de mı́nimos cuadrados
a partir de las mediciones experimentales dadas.
(iii) Supongamos que se realiza una tabulación del volumen v del gas en los
n + 1 nudos dados por las presiones 3 = p0 < p1 < · · · < pn−1 < pn =
5 y posteriormente se calcula el polinomio de interpolación de Lagrange
Pn (p). Se sabe que se tienen N = 15 moles de gas a temperatura constante
T = 300 K y que además suponemos válida la aproximación de gas ideal,
es decir, se verifica la ecuación de estado pv = N RT con R = 8,314
J/K mol. Acotar el error absoluto Δn que se comete cuando se realiza la
aproximación v(p) ≈ Pn (p) para cualquier valor p ∈ [3, 5] en el caso de
que n = 3. Calcular (únicamente en función de n) la anterior acotación
de Δn para un valor arbitrario de n y obtener lı́mn→∞ Δn .
(iv) Un modelo de gas más realista donde se tienen en cuenta las interacciones
entre sus moléculas ası́ como su taman̄o mediante las constantes a y b
caracterı́sticas del gas viene dado por la ecuación de estado de van der
Waals
N 2a
p+ 2 (v − N b) = N RT .
v
Si el gas que se estudia es el Oxı́geno, se tiene a = 137,4, b = 0,031.
Suponiendo que T = 300, N = 15 y p = 2000
(iv.a) Reescribir la ecuación de estado de van der Waals en la forma
f (v) = 0, siendo f un polinomio cúbico.
(iv.b) Demostrar que el volumen v ∗ ocupado por el Oxı́geno está en el
intervalo [17, 20]. Partiendo de dicho intervalo, calcular el número
de iteraciones necesarias en el algoritmo de bisección para aproximar
v ∗ con un error absoluto menor que 10−5 .
(iv.c) Aproximar el valor de valor de v ∗ mediante 2 iteraciones con el
método de la secante partiendo de los valores iniciales v0 = 17 y
v1 = 20.

Solución. (i) Sea (pk , vk ) con k = 0, 1, 2, las parejas presión-volumen de la


9.2 Problemas resueltos 207

tabulación dada en el enunciado. Según el método de interpolación polinómica


de Lagrange, la función v(p) ≈ P2 (p), siendo P2 (p) un polinomio de grado menor
o igual que 2. La forma explı́cita de P2 (p) es
2

P2 (p) = vk k (p) = v0 0 (p) + v1 1 (p) + v2 2 (p) ,
k=0

donde k (p) con k = 0, 1, 2, son los llamados polinomios básicos de Lagrange y


vienen dados por
2
p − pj
k (p) = .
j=0
pk − pj
j =k

En definitiva se tiene
p − p1 p − p2 p−6 p−7 1
0 (p) = = = (p − 6)(p − 7) ,
p0 − p1 p0 − p2 5−6 5−7 2
p − p0 p − p2 p−5 p−7
1 (p) = = = −(p − 5)(p − 7) ,
p1 − p0 p1 − p2 6−5 6−7
p − p0 p − p1 p−5 p−6 1
2 (p) = = = (p − 5)(p − 6) ,
p2 − p0 p2 − p1 7−5 7−6 2
de manera que
1 1
P2 (p) = 2,5 × (p − 6)(p − 7) − (p − 5)(p − 7) + 0,5 × (p − 5)(p − 6)
2 2
1
= (50 − 14p + p2 ) .
2
(ii) En primer lugar observamos que el parámetro γ no interviene de forma
lineal en la ecuación pv γ = c. Por consiguiente utilizaremos, en primer lugar,
una estrategia de linearización de los datos. Para conseguirlo tomamos logar-
itmos neperianos en la anterior expresión y obtenemos ln c − γ ln v = ln p, de
manera que los parámetros ln c y γ intervienen de forma lineal. En segundo
lugar calculamos la nueva tabulación

ln pk 1.60944 1.79176 1.94591


ln vk 0.916291 0 -0.693147

A partir de la linearización de los datos realizada se tiene el sistema lineal


sobredeterminado Ax = b siguiente
⎛ ⎞ ⎛ ⎞
1 −0,916291 1,60944
⎝ 1 ⎠ ln c
0 = ⎝ 1,79176 ⎠ .
γ
1 0,693147 1,94591
De la teorı́a de aproximación por mı́nimos cuadrados se obtienen las ecuaciones
normales AT Ax = AT b, es decir,

3 −0,223144 ln c 5,34711
= .
−0,223144 1,32004 γ −0,125914
208 Aproximación de Funciones

La solución de las anteriores ecuaciones normales es


(ln c, γ) = (1,79788, 0,208533) ,
de lo que se deduce los valores
c = exp(1,79788) = 6,03684 , γ = 0,208533 .
Concluimos que la mejor aproximación por mı́nimos cuadrados de la tabla
presión-volumen del proceso adiabático del enunciado viene dada por
pv 0,208533 = 6,03684 .
(iii) Cuando se realiza la aproximación v(p) ≈ Pn (p) para cualquier valor
p ∈ [3, 5], el error absoluto Δn cometido es
 
 v (n+1) (ξ ) 
n 
 p 
Δn := |v(p) − Pn (p)| =  (p − pk ) ,
 (n + 1)! 
k=0

siendo ξp ∈ (3, 5). En primer lugar se ha de calcular la derivada de orden n + 1


de la función v(p). Puesto que se supone válida la aproximación de gas ideal, se
tiene v(p) = N RT /p, que con los datos del enunciado resulta v(p) = C/p, siendo
la constante C = N RT = 37413. Para esta función v(p) resulta fácil calcular
por inducción la derivada de orden n + 1. En concreto, v  (p) = −Cp−2 , v  (p) =
2Cp−3 , v  (p) = −6Cp−4 , v (4) (p) = 24Cp−5 ,...,v (n) (p) = (−1)n n!Cp−(n+1) .
Sustituyendo en la expresión del error absoluto Δn se tiene
 
 (−1)n+1 C  n  37413  n
 
Δn =  (p − pk ) = |p − pk | .
 ξpn+2  ξpn+2 k=0
k=0

Veamos como acotar esta expresión. En primer lugar, puesto que ξp ∈ (3, 5),
es evidente que 1/ξpn+2 < 1/3n+2 para cualquier n ∈ N. En segundo lugar,
como p ∈ [3, 5] y pk ∈ [3, 5] para cualquier k = 0, 1, . . . , n, se deduce que
n
|p − pk | ≤ 5 − 3 = 2 para k = 0, 1, . . . , n y por lo tanto k=0 |p − pk | ≤ 2n+1 .
En definitiva, hemos probado la siguiente cadena de desigualdades

37413  37413 
n n
37413
Δn = |p − p k | < |p − pk | ≤ n+2 2n+1 .
ξpn+2 k=0 3n+2
k=0
3

Una vez se tiene la acotación de Δn para cualquier n, es directo ver que si n =


3 entonces Δ3 < 66512/27 = 2463,41. Además, puesto que lı́mn→∞ (2/3)n+1 =
0, a partir de la acotación de Δn es obvio que
lı́m Δn = 0 .
n→∞

(iv.a) Multiplicando la ecuación de estado de van der Waals por v 2 se obtiene


(pv +N 2 a)(v−N b) = N RT v 2 . Ası́, pasando todos los términos de esta ecuación
2

a un lado de la igualdad y agrupando por potencias de v se tiene


f (v) = pv 3 − N (bp + RT )v 2 + N 2 av − N 3 ab = 0 .
9.2 Problemas resueltos 209

(iv.b) Sustituyendo los datos del enunciado se tiene que

f (v) = −14375,5 + 30915v − 38343v 2 + 2000v 3 = 0 .

Puesto que f es un polinomio, en particular f ∈ C[17, 20]. Además f (17) =


−743947 < 0, f (20) = 1,26672 × 106 > 0 de lo que se deduce, a través del
Teorema de Bolzano, que existe al menos un v ∗ ∈ (17, 20) tal que f (v ∗ ) = 0.
Obviamente este cálculo no ha “demostrado”que el volumen v ∗ ocupado por el
Oxı́geno está en el intervalo [17, 20], pero una comparación con el resultado que
proporciona la aproximación de gas ideal muestra que el rango de valores es el
adecuado fı́sicamente.

Usaremos el algoritmo de bisección para aproximar el cero v ∗ de la función


f que pertenece al intervalo [a0 , b0 ] = [17, 20]. Sabemos que el error absoluto
cometido en n iteraciones del algoritmo de bisección, es decir aproximando v ∗ ≈
cn , está acotado por
|b0 − a0 | 3
|v ∗ − cn | ≤ = n+1 .
2n+1 2
Si imponemos un error menor que 10−5 tenemos
3
|v ∗ − cn | ≤ < 10−5 ,
2n+1
de lo que se deduce 2n+1 > 3 × 105 o equivalentemente

log(3 × 105 ) 5 + log 3


n > log2 (3 × 105 ) − 1 = −1= − 1 = 17,1946 .
log 2 log 2
Podemos concluir pues que son necesarias al menos 18 iteraciones.

(iv.c) El método de la secante para aproximar las soluciones de la ecuación


f (v) = 0 consiste en calcular la sucesión de números reales {vn }n∈N generada a
partir de la recurrencia siguiente
vn − vn−1
vn+1 = vn − f (vn ) .
f (vn ) − f (vn−1 )
Partiendo de los valores iniciales v0 = 17 y v1 = 20 se obtiene la siguiente tabla

n vn
0 17
1 20
2 18.3111
3 18.3516

Concluimos que el volumen v ∗ que ocupa el Oxı́geno es aproximadamente v ∗ ≈


v3 = 18,3516.
210 Aproximación de Funciones

Problema 9.6 Consideremos una masa m restringida a moverse con fricción


despreciable y gravedad g constante en un circunferencia vertical de radio .
Supongamos además que la masa está sujeta a la posición más alta de la cir-
cunferencia mediante un muelle de longitud natural  y constante elástica k. Sea
θ(t) el ángulo que forma la recta que une la masa y el centro de la circunferencia
con la vertical en función del tiempo.

(i) Es fácil mostrar que la ecuación diferencial del movimiento de la masa m


viene dada por

θ θ
mθ̈ = −mg sin θ + k 2 cos − 1 sin .
2 2

La estabilidad del punto de equilibrio (θ, θ̇) = (0, 0) depende de dos con-
tribuciones: intuitivamente, el sistema sugiere que si el muelle es blando
(k pequen̄a) y la masa m es grande entonces el punto de equilibrio es es-
table y viceversa, es decir, k grande y m pequen̄a convertirá el punto de
equilibrio en inestable.
Si  = k = 1, m = 100 y la masa se encuentra inicialmente en reposo
y formando un ángulo θ(0) = π/4, usar un paso del método RK4 con
una longitud de paso h = 1/5 para verificar las hipótesis de estabilidad
establecidas.
(ii) Suponiendo que el muelle verifica la ley de Hooke, geometrı́a elemental
muestra que la fuerza F que ejerce el muelle es

θ
F = k 2 cos − 1 .
2

Si  = 1 y se han realizado las siguientes mediciones

F (N) 1.1 2.6 3.2 4.6


θ (rad.) 0.71 0.63 0.42 0.22

aproximar k por el método de mı́nimos cuadrados.


9.2 Problemas resueltos 211

Solución. (i) Tomando  = k = 1, m = 100 y g = 9,8, la ecuación diferencial


del movimiento de la masa es

θ θ
100θ̈ = −100g sin θ + 2 cos − 1 sin .
2 2

Utilizando la velocidad angular w = θ̇ de la masa como variable auxiliar, conver-


timos la ecuación diferencial de segundo orden en el siguiente sistema de primer
orden

θ̇ = f (t, θ, w) = w ,

1 θ θ
ẇ = g(t, θ, w) = −9,8 sin θ + 2 cos − 1 sin ,
100 2 2
con la condición inicial (θ(0), w(0)) = (π/4, 0). Puesto que f = f (w) sólo de-
pende de w y g = g(θ) sólo de θ, el método RK4 reduce a

θi+1 θi h r1 + 2r2 + 2r3 + r4
= + ,
wi+1 wi 6 k1 + 2k2 + 2k3 + k4
siendo

r1 = f (wi ) , k1 = g(θi ) ,

h h
r2 = f wi + k1 , k2 = g θi + r1 ,
2 2

h h
r3 = f wi + k2 , k3 = g θi + r2 ,
2 2
r4 = f (wi + hk3 ) , k4 = g (θi + hr3 ) .

Tomando la longitud de paso h = 1/5 y la condición inicial (θ(0), w(0)) =


(θ0 , w0 ) = (π/4, 0) se tiene, para la primera iteración,

r1 = f (0) = 0 , k1 = g(π/4) = −6,9264 ,



1 1
r2 = f 0 + k1 = −0,69264 , k2 = g π/4 + r1 = −6,9264 ,
10 10

1 1
r3 = f 0 + k2 = −0,69264 , k3 = g π/4 + r2 = −6,43038 ,
10 10

1 1
r4 = f 0 + k3 = −1,28608 , k4 = g π/4 + r3 = −5,90353 ,
5 5
de manera que

θ1 π/4 1 −4,05664 0,650177
= + = .
w1 0 30 −39,5435 −1,31812
Notar que θ1 < θ0 y w1 < 0, lo cual confirma numéricamente que la masa se
desplaza hacia el punto de equilibrio estable.
212 Aproximación de Funciones

(ii) Como  = 1, la relación entre F y θ es



θ
F = k 2 cos − 1 .
2

Imponiendo la tabulación

F (N) 1.1 2.6 3.2 4.6


θ (rad.) 0.71 0.63 0.42 0.22

a dicha relación obtenemos el sistema lineal sobredeterminado


⎛ ⎞ ⎛ ⎞
0,875293 1,1
⎜ 0,901593 ⎟ ⎜ ⎟
⎜ ⎟ k = ⎜ 2,6 ⎟ .
⎝ 0,956062 ⎠ ⎝ 3,2 ⎠
0,987912 4,6

Multiplicamos por la izquierda ambos miembros de esta ecuación por la matriz


traspuesta de la matriz de coeficientes del sistema obteniendo de esta forma la
ecuación normal
⎛ ⎞T ⎛ ⎞ ⎛ ⎞T ⎛ ⎞
0,875293 0,516724 0,875293 1,1
⎜ 0,901593 ⎟ ⎜ 0,616055 ⎟ ⎜ 0,901593 ⎟ ⎜ 2,6 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎝ 0,956062 ⎠ ⎝ 0,826178 ⎠ k = ⎝ 0,956062 ⎠ ⎝ 3,2 ⎠ ,
0,987912 0,951795 0,987912 4,6

es decir,
3,469k = 10,9108 ,
con lo que k = 3,14523.

Problema 9.7 Consideremos la aproximación de la función f (x) = x/2 defini-


da en el intervalo [−π, π] por una expresión del tipo

f ∗ (x) = c1 + c2 cos(x) + c3 sin(x) .

Calcular los valores de los coeficientes reales cj de modo que la aproximación se


realice dentro del contexto de mı́nimos cuadrados.

Solución. Deseamos realizar una aproximación f (x) ≈ f ∗ (x) por mı́nimos


cuadrados en el intervalo [−π, π]. En primer lugar notamos que la expresión
3
de la función aproximadora es de la forma f ∗ (x) = i=1 ci ϕi (x), siendo las
funciones ϕ1 (x) = 1, ϕ2 (x) = cos x y ϕ3 (x) = sin(x) linealmente independientes
en el intervalo [−π, π]. Las ecuaciones normales (sistema lineal de ecuaciones
que verifican los coeficientes ci ) serán de la forma
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
< ϕ1 , ϕ1 > < ϕ1 , ϕ2 > < ϕ1 , ϕ3 > c1 < f, ϕ1 >
⎝ < ϕ2 , ϕ1 > < ϕ2 , ϕ2 > < ϕ2 , ϕ3 > ⎠ ⎝ c2 ⎠ = ⎝ < f, ϕ2 > ⎠ ,
< ϕ3 , ϕ1 > < ϕ3 , ϕ2 > < ϕ3 , ϕ3 > c3 < f, ϕ3 >
9.2 Problemas resueltos 213

donde <, > denota el producto escalar euclideano continuo en el intervalo [−π, π].
Se tiene pues que
! π
< ϕ 1 , ϕ1 > = dx = 2π ,
−π
! π
< ϕ2 , ϕ2 > = cos2 (x)dx = π
−π
! π
< ϕ3 , ϕ3 > = sin2 (x)dx = π
−π
! π
< ϕ 1 , ϕ2 > = cos(x)dx = 0
−π
! π
< ϕ1 , ϕ3 > = sin(x)dx = 0
−π
! π
< ϕ2 , ϕ3 > = sin(x) cos(x)dx = 0
−π
! π
< f, ϕ1 > = 1/2 xdx = 0
−π
! π
< f, ϕ2 > = 1/2 x cos(x)dx = 0
−π
! π
< f, ϕ3 > = 1/2 x sin(x)dx = π .
−π

Las integrales que aparecen en los anteriores productos escalares son, o bien in-
mediatas, o bien (segunda y tercera) se calculan con las identidades trigonométri-
cas
1 − cos(2x) 1 + cos(2x)
sin2 (x) = , cos2 (x) = ,
2 2
excepto la última que se calcula mediante la fórmula de integración por partes.
De hecho hay muchas de esas integrales (desde la quinta hasta la octava inclu-
idas) que valen cero puesto que la función integrando es impar y el intervalo de
integración es simétrico respecto del origen.

Finalmente, como el producto escalar verifica la propiedad conmutativa, la


matriz de Gram es diagonal y las ecuaciones normales tienen la forma
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
2π 0 0 c1 0
⎝ 0 π 0 ⎠ ⎝ c2 ⎠ = ⎝ 0 ⎠ .
0 0 π c3 π

La solución del sistema es (c1 , c2 , c3 ) = (0, 0, 1), de modo que la aproximación


es
x
≈ sin(x) .
2
214 Aproximación de Funciones

Problema 9.8 La siguiente tabla muestra la evolución de una enfermedad con-


tagiosa en función del tiempo t. Aquı́, c indica el número de contagiados.

t 0 3 5 7
c 1 20 22 23

(i) Aproximar, mediante interpolación polinómica con el método de Lagrange


el valor de c(4).
(ii) En la tabulación dada de c(t) se observa que dicha función parece saturarse
a medida que pasa el tiempo, es decir, presenta una ası́ntota horizontal.
Explica entonces por qué el polinomio obtenido en el apartado anterior no
resulta adecuado para aproximar valores de c en tiempos superiores a 7.
(iii) Una forma de resolver el problema del apartado (ii) consiste en ajustar los
datos de la tabulación a un modelo de crecimiento logı́stico
1
c(t) = .
α + β exp(−3t)

Calcula el valor de los parámetros α y β mediante el método de mı́nimos


cuadrados.
Solución. (i) Aproximaremos c(t) ≈ P3 (t) siendo P3 (t) el polinomio de grado
menor o igual que 3 que interpola a los datos de la tabla adjunta. Denotando
los nodos de interpolación por {t0 , t1 , t2 , t3 } = {0, 3, 5, 7} y usando la fórmula
de interpolación de Lagrange se tiene que
3

P3 (t) = ck k (t) ,
k=0

siendo ck = c(tk ) y los polinomios básicos de Lagrange


n
t − tj
k (t) = , k = 0, 1, 2, 3.
j=0
t k − tj
j=k

En concreto, se tiene que


t−3 t−5 t−7
0 (t) = ,
0−30−50−7
t−0 t−5 t−7
1 (t) = ,
3−03−53−7
t−0 t−3 t−7
2 (t) = ,
5−05−35−7
t−0 t−3 t−5
3 (t) = .
7−07−37−5
De este modo obenemos la siguiente aproximación
c(4) ≈ P3 (4) = c0 0 (4) + c1 1 (4) + c2 2 (4) + c3 3 (4)
9.2 Problemas resueltos 215

= 0 (4) + 201 (4) + 222 (4) + 233 (4)


1 1 3 1 1507
= − + 20 × + 22 × − 23 × = = 21,5286 .
35 2 5 14 70
(ii) Es bien sabido que los polinomios no pueden tener ası́ntotas horizon-
tales, de modo que crecen o decrecen indefinidamente cuando t es suficiente-
mente grande. Este es el motivo por el cual la aproximación c(t) ≈ P3 (t) no es
adecuada para t grandes.

(iii) Consideremos el modelo de crecimiento logı́stico

1
c(t) = .
α + β exp(−3t)

Como los parámetros α y β intervienen de forma no lineal en la expresión de c(t),


antes de utilizar el método de mı́nimos cuadrados para hallarlos realizaremos
una estrategia de linearización de datos. En el caso que nos ocupa basta con
invertir la ecuación logı́stica de la forma

1
= α + β exp(−3t) .
c(t)

Realizamos la nueva tabulación

exp(−3t) 1 exp(−9) exp(−15) exp(−21)


1/c 1 1/20 1/22 1/23

e imponemos dicha tabulación sobre nuestro modelo linearizado para llegar al


siguiente sistema lineal sobredeterminado
⎛ ⎞ ⎛ ⎞
1 1 1
⎜ 1 exp(−9) ⎟ α ⎜ 1/20 ⎟
⎜ ⎟ =⎜ ⎟
⎝ 1 exp(−15) ⎠ β ⎝ 1/22 ⎠ .
1 exp(−21) 1/23

Escribimos el anterior sistema lineal en la forma vectorial Ax = b, siendo el


vector incógnita x = (α, β)T y
⎛ ⎞ ⎛ ⎞
1 1 1
⎜ 1 exp(−9) ⎟ ⎜ ⎟
A=⎜ ⎟ , b = ⎜ 1/20 ⎟ .
⎝ 1 exp(−15) ⎠ ⎝ 1/22 ⎠
1 exp(−21) 1/23

Entonces, el valor de x buscado se obtiene resolviendo las ecuaciones normales


AT Ax = AT b, es decir,

4 1,00012 α 1,13893
= ,
1,00012 1 β 1,00001
216 Aproximación de Funciones

cuya solución es
α = 0,0462715 , β = 0,953729 .
En definitiva, la mejor aproximación viene dada por
1
c(t) = .
0,0462715 + 0,953729 exp(−3t)

Problema 9.9 Demostrar que la recta de regresión asociada a cualquier nube


de puntos (xi , yi ) ∈ R2 con i = 1, . . . , m, con m ≥ 2, pasa por el punto
(x̄, ȳ) ∈ R2 , siendo x̄ e ȳ los valores medios de {x1 , . . . , xm } y {y1 , . . . , ym }
respectivamente.

Solución. Sea y = f (x) = ax + b la recta de regresión asociada a la nube de


puntos (xi , yi ) ∈ R2 con i = 1, . . . , m. Calculemos en primer lugar los coeficientes
a, b ∈ R de esta recta. Hemos de imponer que f (xi ) = axi + b = yi para todo
i = 1, . . . , m. Obtenemos de este modo el sistema lineal sobredeterminado
⎛ ⎞ ⎛ ⎞
x1 1 y1
⎜ x2 1 ⎟ ⎜ y ⎟
⎜ ⎟ a ⎜ 2 ⎟
⎜ .. .. ⎟ =⎜ . ⎟ .
⎝ . . ⎠ b ⎝ .. ⎠
xm 1 ym

Escribimos las ecuaciones normales asociadas


⎛ ⎞ ⎛ ⎞
x1 1 y1
⎜ x ⎟ ⎜ ⎟
x1 x2 · · · xm ⎜ 2 1 ⎟ a x1 x2 · · · xm ⎜ y2 ⎟
⎜ .. .. ⎟ = ⎜ .. ⎟.
1 1 ··· 1 ⎝ . . ⎠ b 1 1 ··· 1 ⎝ . ⎠
xm 1 ym

Multiplicando las matrices del sistema se tiene que (a, b) es la solución de


 2  
i xi i xi a
= i xi yi , (9.5)
i xi m b i yi

donde en todos los sumatorios el subı́ndice i corre desde 1 hasta m. Finalmente,


para demostrar que la recta de regresión y = f (x) = ax + b pasa por el punto
(x̄, ȳ), hemos de demostrar que f (x̄) = ȳ, es decir, hemos de ver que ȳ =
ax̄ + b siendo (a, b) la solución del sistema lineal (9.5). La forma más simple
dedemostrarlo consiste
 en tomar la última ecuación del sistema (9.5), es decir,
a i xi + mb = i y i . Entonces, dividiendo por m ambos miembros  de esta
ecuación
 y recordando que por definición de valor medio se tiene x̄ = ( i xi )/m,
ȳ = ( i yi )/m, se obtiene el resultado deseado ax̄ + b = ȳ.
Capı́tulo 10

Introducción a la
Programación

La presente sección está dedicada a la confección de pequen̄os programas en


los lenguajes de programación Fortran y Mathematica con el objetivo de
iniciarse en sus peculiaridades.

10.1. Velocidad del Sonido en el Aire en Función


de la Temperatura
En esta práctica veremos un ejemplo de tabulación de una función cuando
su variable independiente recorre un determinado intervalo. En concreto se sabe
que, bajo ciertas hipótesis, la velocidad del sonido en el aire en función de la
temperatura viene expresada por

T
v(T ) = 331 1+ , (10.1)
273

donde la temperatura T está en ◦ C y la velocidad v en m/s.


Un código Fortran para obtener una tabulación de los pares (T, v) en el
rango de temperaturas 20◦ C ≤ T ≤ 35◦ C con incrementos de 1◦ C puede ser el
dado en la Figura 10.1. Un código Mathematica con el mismo objetivo es el
siguiente.

v[T ] = 331*Sqrt[1 + T/273];

Do[
Print["Para T = ", T, "la velocidad del sonido es ", v[T]],
{T, 20, 35, 1}
]

217
218 Introducción a la Programación

PROGRAM VELOCIDAD
REAL T,DT,V
T=20.
DT=1.
10 V=331.*SQRT(1.+T/273.)
WRITE(*,*) ’ Para T= ’,T,’ La velocidad del sonido es ’, V
T=T+DT
IF(T .LT. 36.0) THEN
GO TO 10
ELSE
WRITE(*,*) ’Cálculo terminado’
STOP
END IF
END

Figura 10.1: Tabulación de la velocidad del sonido para diferentes temperaturas.

10.2. Ecuación de Segundo Grado


Consideremos la ecuación de segundo grado

ax2 + bx + c = 0 .

Sabemos que la naturaleza de las raı́ces depende del valor del discriminante
δ = b2 − 4ac. En concreto tenemos
1  √
(i) si δ > 0 =⇒ dos raı́ces reales y diferentes x± = −b ± δ .
2a
b
(ii) si δ = 0 =⇒ una única raı́z real doble x+ = x− = − .
2a
1  √
(iii) si δ < 0 =⇒ dos raı́ces complejas conjugadas x± = −b ± i −δ .
2a
El objetivo de esta práctica es realizar un programa para calcular la raı́z real
(si existe) de menor valor absoluto de una ecuación de segundo grado.

Observar que la raı́z real (δ ≥ 0) de menor valor absoluto es


⎧  √
⎨ 1 −b − δ si b < 0
2a 
xmin = √
⎩ 1 −b + δ si b ≥ 0
2a

Un posible código Fortran para calcular la raı́z real de menor valor abso-
luto de una ecuación de segundo grado puede ser el dado en la Figura 10.2. El
análogo código Mathematica es, por ejemplo, el siguiente.
10.2 Ecuación de Segundo Grado 219

a = 1; b = 8; c = 5;

discr = b∧2 - 4*a*c;

If[discr <0, Print[‘‘Raı́ces complejas "]; Interrupt[],


T1 = -b/(2*a);
T2 = Sqrt[discr]/(2*a);
If[b >= 0, xmin = T1 + T2;, xmin = T1 - T2;]
]

Print["La raı́z de menor valor absoluto es ", xmin]

PROGRAM CUADRATICO
REAL A,B,C,DISCR,DENOM,T1,T2,XMIN
WRITE(*,*) ’ Introduce los coeficientes separados por comas ’
READ(*,*) A,B,C
DISCR=B*B-4.*A*C
IF(DISCR .LT. 0) THEN
WRITE(*,*) ’Raı́ces Complejas’
STOP
ELSE
DENOM=2.*A
T1=-B/DENOM
T2=SQRT(DISCR)/DENOM
IF(B .GE. 0) THEN
XMIN=T1+T2
ELSE
XMIN=T1-T2
END IF
END IF
WRITE(*,*)’ La raı́z real de menor valor absoluto es: ’,XMIN
STOP
END

Figura 10.2: Raı́z real de menor valor absoluto de una ecuación de segundo
grado.
220 Introducción a la Programación

10.3. Método de Newton: Cálculo de Raı́ces Cua-


dradas
El siguiente procedimiento para calcular raı́ces cuadradas, utilizado por Isaac
Newton1 , es un claro ejemplo de cálculo iterativo. Se puede demostrar que la
sucesión de números reales {xn } con n ∈ N definida de forma recurrente medi-
ante
1 a
xn+1 = xn + , (10.2)
2 xn
√ √
converge hacia a, es decir lı́mn→∞ xn = a, si tomamos el valor inicial x0
próximo a la raı́z cuadrada de a.

Como caso particular, vamos a demostrar que la sucesión



1 2
xn+1 = xn + , x0 = 2 ,
2 xn

converge hacia 2. En primer lugar, observamos que x0 = 2, x1 = 3/2 = 1,5,
x2 = 17/12 ≈ 1,416, de manera que parece que la sucesión es decreciente.
Comprobémoslo de una manera formal, es decir, veamos que xn −xn+1 ≥ 0 para
todo n ∈ N. Notemos que, debido a la expresión de la fórmula de recurrencia y
puesto que x0 = 2 > 0, se tiene xn > 0 para todo n ∈ N. Entonces, como

1 2 x2 − 2
xn − xn+1 = xn − xn + = n ,
2 xn 2xn

es fácil ver que xn − xn+1 ≥ 0 si y sólo si x2n − 2 ≥ 0, es decir xn ≥ 2.
Esta última desigualdad puede ser demostrada por reducción al absurdo2 de
la forma siguiente: Supongamos lo contrario, es decir supongamos que xn <

2 para algún valor de n. Entonces,
√ a partir de la recurrencia se tiene que
xn = 1/2[xn−1√+ 2/xn−1 ] < 2. Operando en esta desigualdad √ se llega a que
x2n−1 + 2 < 2 2xn−1 , o de forma equivalente [xn−1 − 2]2 < 0, lo que es

imposible. Finalmente, concluimos que xn ≥ 2 para todo n ∈ N y por lo tanto
la sucesión {xn } es decreciente.
√ {xn } es decreciente y además está acotada
Por otra parte, como la sucesión
inferiormente, puesto que xn ≥ 2, se concluye que dicha sucesión tiene lı́mite,
1 Este método de aproximación de la raı́z cuadrada es muy antiguo. Se atribuye general-

mente a Heron de Alejandrı́a, quien vivió en el siglo I, pero probablemente es anterior. Natu-
ralmente, no fue obtenido a partir de lo que hoy se conoce como el método de Newton-Raphson
(descrito en secciones posteriores), sino por un razonamiento que muestra bien √ la estructura
del pensamiento matemático griego: si xn es una aproximación por exceso de a, entonces
a/xn es una aproximación por defecto y recı́procamente. Tomando la media aritmética entre
una aproximación por defecto y una por exceso se obtiene una aproximación que es mejor que
las anteriores.
2 Recordemos que el método de reducción al absurdo consiste en suponer cierto lo contrario

de lo que se quiere demostrar y comprobar que esta suposición implica algún tipo de absurdo.
10.3 Método de Newton: Cálculo de Raı́ces Cuadradas 221

es decir lı́mn→∞ xn = . Dicho lı́mite  se puede calcular tomando el paso al


lı́mite cuando n → ∞ en la relación de recurrencia, de manera que se obtiene

1 2
= + ,
2 

o de forma equivalente  = 2.

La idea del programa que lleve a cabo el algoritmo de Newton (10.2) ha


de partir de un número a del√cual queramos calcular su raı́z cuadrada y de un
número x0 próximo al valor a. Entonces,
√ el resultado de la primera iteración
x1 es una mejor aproximación al valor a. Si el valor x1 no es lo suficientemente
bueno (es decir x21 − a no es pequen̄o) realizamos una nueva iteración y calcu-
lamos x2 y ası́ sucesivamente hasta obtener un resultado aceptable o hasta que
se supere un número de iteraciones máximo preestablecido.

Nota: Todos los programas basados en un método iterativo deben estar


preparados para hacer frente a una serie de problemas especı́ficos de estos algo-
ritmos, entre los más comunes se encuentran:

El proceso diverge. Es decir, en lugar de acercarnos a la solución nos


alejamos de ella.

Aunque exista convergencia, ésta es demasiado lenta. Es decir, después


de efectuar un cierto número de iteraciones prefijado, la solución no es lo
suficientemente aproximada.

Supongamos que se permite una tolerancia de 10−6 , es decir paramos las


2 −6
√ condición |xn − a| ≤ 10 . Tomando como primera
iteraciones si se verifica la
aproximación al número a el valor x0 = (a + 1)/2 y permitiendo un máximo
de 100 iteraciones, un posible código Fortran es el dado en la Figura 10.3. El
código Mathematica es el siguiente.

a = 2;

x = (a + 1)/2;

For[i = 1, i <= 100, i++,


x = (x + a/x)/2;
If[Abs[x∧2 - a ] <10∧(-6), Print["La raı́z cuadrada de ", a,‘‘ es
", x]; Interrupt[]]
]

Print["No hay convergencia en 100 iteraciones"]


222 Introducción a la Programación

PROGRAM NEWTON
REAL A,X
INTEGER I
WRITE(*,*) ’ Introduce el número cuya raı́z queremos hallar ’
READ(*,*) A
I=0
X=(A+1.)/2.
1 X=0.5*(X+A/X)
I=I+1
IF(I. GT. 100) THEN
WRITE(*,*) ’ No hay convergencia en 100 iteraciones ’
STOP
ELSE IF (ABS(X*X-A) .LT. 1.E-6) THEN
WRITE(*,*) ’ La raı́z cuadrada de ’, A, ’ es ’ , X
STOP
ELSE
GO TO 1
END IF
END

Figura 10.3: Algoritmo de Newton para el cálculo de la raı́z cuadrada de a.

10.4. Algoritmo de Arquimedes y el Número π


Uno de los primeros que calculó el número π fue Arquı́medes quien com-
paró la longitud de una circunferencia con el perı́metro de un polı́gono regular
inscrito en dicha circunferencia.

Supongamos un circulo de radio unidad en el cual inscribimos un cuadrado


(polı́gono regular de 22 lados). Entonces, el lado del cuadrado vale
π √
2 = 2 sin = 2,
4
de manera que el perı́metro del cuadrado es

P2 = 22 2 = 4 2 ,

que es la primera aproximación a la longitud de la circunferencia cuyo valor es


2π.
Decimos que una aproximación pk de orden k-ésimo al número π es la mitad
del perı́metro de un polı́gono regular de 2k lados inscrito en la circunferencia
unidad, es decir

1 1 1
pk := Pk = 2k k = 2k 2 sin θk = 2k sin θk , (10.3)
2 2 2
10.4 Algoritmo de Arquimedes y el Número π 223

Figura 10.4: Aproximación con k = 2.

Figura 10.5: Aproximación con k = 3.

siendo el ángulo θk = 2πk , ver las Figuras 10.4 y 10.5. De la ecuación (10.3)
observamos que si doblamos el número de lados, es decir k pasa a k + 1, se tiene

θk
pk+1 = 2k+1 sin . (10.4)
2
Realizando ahora un poco de trigonometrı́a

θk 1 1
sin2 = (1 − cos θk ) = (1 − 1 − sin2 θk ) ,
2 2 2

de manera que introduciendo esta igualdad trigonométrica en la ecuación (10.4)


se obtiene * 
1
pk+1 = 2 k+1
1 − 1 − sin2 θk .
2
224 Introducción a la Programación

Finalmente, despejando sin θk de la ecuación (10.3) e introduciéndolo en la an-


terior ecuación obtenemos una relación de recurrencia para las aproximaciones
pk al número π de la forma
* 
√ k  p 2
k
pk+1 = 22 1 − 1 − k . (10.5)
2

La práctica consiste en:

1. Programar la iteración (10.5) para distintos valores de k = 2, 3, 4, · · ·.

2. Observar el comportamiento del algoritmo según va aumentando el valor


k.

El código Fortran de la Figura 10.6 implementa el algoritmo de Arquı́medes


(10.5) para aproximar al número π. El subı́ndice k toma los valores k = 2, 3, . . . , 15.
La salida del algoritmo son la parejas (k, pk ). De forma análoga, el código Math-
ematica es el siguiente.

k = 2;

P = 2*Sqrt[2];

While[k <= 15,


Print[k, ", ", N[P]]
P = Sqrt[2]*2∧k*Sqrt[1 - Sqrt[1 - (P/2∧k)∧2]];
k = k + 1;
]

PROGRAM PI
REAL P
INTEGER K
K=2
P=2*SQRT(2)
DO WHILE(K .LE. 15)
WRITE(*,*) K,P
P=SQRT(2)*2**K*SQRT(1-SQRT(1-(P/2**K)**2))
K=K+1
END DO
END

Figura 10.6: Algoritmo de Arquı́medes.

Una vez ejecutado el programa, obtenemos el resultado siguiente.


10.5 El problema 3x + 1 225

k pk
2 2.828427
3 3.061467
4 3.121445
5 3.136549
6 3.140331
7 3.141277
8 3.141514
9 3.141573
10 3.141588
11 3.141592
12 3.141593
13 3.141593
14 3.141593
15 3.141593

10.5. El problema 3x + 1
Vamos a describir un problema no resuelto en matemáticas conocido como el
problema 3x + 1. A partir de un número natural x ∈ N cualquiera, se construye
una sucesión de números naturales siguiendo el siguiente procedimiento:

1. Si x es par, el siguiente término de la sucesión es x/2.

2. Si x es impar, el siguiente término de la sucesión es 3x + 1.

Por ejemplo, si la sucesión comienza en x = 6, se obtiene la secuencia: 6, 3,


10, 5, 16, 8, 4, 2, 1, 4, 2, 1,.... Observar que, a partir de ahora los números 4,
2, 1 se repiten indefinidamente. Hasta el momento, todos los que han proba-
do construir esta sucesión a partir de algún número natural han observado
que siempre se acaba en 4, 2, 1. A veces se puede tardar un poco en lle-
gar (tomar por ejemplo el valor inicial x = 27). Entonces, se ha conjeturado
que siempre ocurrirá el comportamiento descrito anteriormente independiente-
mente de qué número natural inicial x sea tomado. La conjetura 3x + 1 es muy
fácil de enunciar, pero hasta la actualidad no se ha podido verificar si es cier-
ta o falsa a pesar de haber sido atacada por eminentes matemáticos. Parece
ser que el primero en formular la conjectura fue el matemático Lothar Col-
latz de la Universidad de Hamburg en el an̄o 1930. Actualmente hay más de
150 artı́culos publicados sobre la conjetura 3x + 1, ver por ejemplo la pági-
na web http://www.cecm.sfu.ca/organics/papers/lagarias/. El an̄o 1999,
Oliveira y Silva prueban que la conjetura es cierta para números naturales x
menores o iguales que los del orden de 1016 .
El siguiente programa en Octave genera la secuencia del problema 3x + 1
comenzando en un número x ∈ N especificado. Si se alcanza un término de
226 Introducción a la Programación

la sucesión con valor 1, el programa finaliza. La sucesión se almacena en las


componentes del vector s.

function s=sucesion(x)
s=x;
while(x>1)
if(rem(x,2)==0)
x=x/2;
else
x=3*x+1;
endif
s=[s, x];
endwhile
endfunction
Capı́tulo 11

El Periodo del Péndulo


Simple

11.1. Introducción
Esta sección está dedicada a la presentación de una práctica en concreto con
el objetivo de que el alumno disponga de un material preliminar.

Un problema de fı́sica elemental es el movimiento de un péndulo simple


de longitud  y masa m. Utilizando las leyes de Newton y suponiendo que
no hay rozamiento, es fácil ver que la ecuación del movimiento viene dada por
mθ̈ = −mg sin θ, siendo θ el ángulo que forma el péndulo respecto de la vertical
y g = 9,806 ms−2 un valor promediado de la aceleración de la gravedad en la
superficie terrestre.

Figura 11.1: El péndulo simple.

227
228 El Periodo del Péndulo Simple

Notemos que la ecuación del movimiento


g
θ̈ = − sin θ ,

es independiente de la masa m del péndulo.
Puesto que la fuerza de la gravedad mg es conservativa y la tensión de la
cuerda es perpendicular a la trayectoria de la partı́cula, se sabe que la energı́a
total E del péndulo es constante. Teniendo en cuenta que E = K + U es la
suma de la energı́a cinética K y la potencial gravitatoria U se tiene fácilmente
que E = 12 m2 θ̇2 + mg(1 − cos θ). Concluimos con la existencia de la integral
primera (constante del movimiento)

1 2 g
θ̇ + (1 − cos θ) = C ,
2 
siendo C una constante que se determina con las condiciones iniciales del movimien-
to del péndulo. Tomando θ̇ = 0 para tiempo t = 0 en el cual el péndulo forma
un ángulo θ = θ0 se tiene, despejando de la anterior ecuación

dθ 2g 
= θ̇ = cos θ − cos θ0 .
dt 
Recordando que el periodo T es cuatro veces el tiempo que tarda el péndulo en
ir de θ = 0 hasta θ = θ0 , separando variables e integrando se tiene
* !
θ0
 dθ
T =4 √ .
2g 0 cos θ − cos θ0

Finalmente, teniendo en cuenta la identidad trigonométrica



θ0 θ
cos θ − cos θ0 = 2 sin2 − sin2 ,
2 2

y realizando el cambio de variable

sin(θ/2)
sin ξ = ,
sin(θ0 /2)

se obtiene que el periodo es


*

T =4 K(sin(θ0 /2)) ,
g

siendo ! π/2

K(k) :=  , (11.1)
0 1 − k 2 sin2 ξ
la integral elı́ptica completa de primera especie.
11.2 Algoritmo de Integración Gaussiana con 5 Nodos 229

11.2. Algoritmo de Integración Gaussiana con 5


Nodos
Si la función de peso es w(x) = 1, el intervalo de integración es [−1, 1]
y tomamos 5 nodos x0 , x1 , x2 , x3 , x4 , las raı́ces del polinomio de Legendre de
quinto grado
1 d5 2 1
P5 (x) = (x − 1)5 = x(15 − 70x2 + 63x4 ) ,
5!25 dx5 8
son
 
1
−x0 = x4 = 5 + 2 10/7 ≈ 0,906179845938664 ,
3
1 
−x1 = x3 = 5 − 2 10/7 ≈ 0,538469310105683 ,
3
x2 = 0.
Además, los coeficientes αk de la fórmula de integración gaussiana
! 1 4
f (x) dx ≈ αk f (xk ) ,
−1 k=0
son
! 1 ! 
14
x − xj
αk = k (x) dx = dx .
−1 −1 j=0 xk − xj
j=k

Calculando estas integrales se obtiene



0,7 + 5 0,7
α0 = α4 = 0,3 √ ≈ 0,236926885056189 ,
2 + 5 0,7

−0,7 + 5 0,7
α1 = α3 = 0,3 √ ≈ 0,478628670499366 ,
−2 + 5 0,7
128
α2 = ≈ 0,568888888888889 .
225
A continuación presentamos un programa Fortran para aproximar los val-
ores de la integral
! b
I= f (ξ) dξ ,
a
mediante el algoritmo gaussiano presentado anteriormente. El programa realiza
el cambio lineal de variables ξ(x) = 12 [(b − a)x + (a + b)] en la anterior integral,
de manera que transforma el intervalo de integración [a, b] en [−1, 1]. De esta
forma se tiene
! 4
b−a 1 b−a 
I= f (ξ(x)) dx ≈ αk f ([(b − a)xk + (a + b)]/2) .
2 −1 2
k=0

Las caracterı́sticas del programa son las siguientes:


230 El Periodo del Péndulo Simple

Define en la sentencia Parameter la constante π y la aceleración de la


gravedad g.
Las constantes X(I) y ALP HA(I) son los nodos xi y los coeficientes αi de
la fórmula de integración gaussiana. El algoritmo aprovecha las simetrı́as
de estas constantes en la fórmula gaussiana con 5 puntos.
Las constantes A y B son los lı́mites de integración, a y b que en nuestro
caso valen a = 0 y b = π/2.
Las variables L y T HET A denotan la longitud  y el ángulo inicial θ0
respecto de la vertical del péndulo. Ambos son los únicos datos de entrada
del algoritmo.
La variable K denota la integral elı́ptica completa de primera especie
(11.1) que es aproximada mediante la fórmula gaussiana con 5 puntos.
El integrando de la integral elı́ptica es la función F definida al final del
programa.
La salida del algoritmo es el valor aproximado de la integral elı́ptica com-
pleta de primera especie K y el periodo del péndulo T .

El programa Fortran es el siguiente:

PROGRAM INTGAUSS5
REAL L, K
COMMON THETA0
DIMENSION X(0:1), ALPHA(0:2)

PARAMETER(PI=3.141592, G=9.806)

X(0)= -0.906179
X(1)= -0.538469
ALPHA(0)= 0.236926
ALPHA(1)= 0.478628
ALPHA(2)= 0.568888

A=0.
B=PI*0.5

WRITE(*,*)’Introduce la longitud del pendulo’


READ(*,*) L

WRITE(*,*)’Introduce EN GRADOS el angulo inicial’


READ(*,*) THETA0
THETA0=THETA0*PI/180.

K=ALPHA(2)*F((A+B)*0.5)
11.3 Resultados Numéricos 231

DO I=0,1
U=((B-A)*X(I)+A+B)*0.5
V=(-(B-A)*X(I)+A+B)*0.5
K=K+ALPHA(I)*(F(U)+F(V))
END DO
K=0.5*(B-A)*K

T=4.*SQRT(L/G)*K

WRITE(*,*)’La integral eliptica vale’, K


WRITE(*,*)’El periodo del pendulo es T=’, T

STOP
END

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

FUNCTION F(XI)
COMMON THETA0
F=1./SQRT(1.-(SIN(THETA0*0.5)*SIN(XI))**2)
RETURN
END

11.3. Resultados Numéricos


Si se realiza la aproximación del péndulo de pequen̄as oscilaciones, es decir si
aproximamos sin θ ≈ θ en las ecuaciones del movimiento del péndulose obtiene
la ecuación diferencial lineal θ̈ = − g θ cuya solución es θ(t) = θ0 cos[ g/ t]. De
aquı́ se deducefácilmente que el periodo del péndulo de pequen̄as oscilaciones
es Taprox = 2π /g.
Tomando la longitud del péndulo  = 1, nótese en la tabla adjunta al final de
esta sección que la diferencia entre la aproximación obtenida por nuestro algo-
ritmo para el periodo real del péndulo T y el periodo Taprox = 2,007089 aumenta
con el ángulo θ0 . Dicho de otro modo, los resultados obtenidos muestran que el
periodo de un péndulo simple es una función monótona creciente de su amplitud.

La salida del programa K(k) para diferentes ángulos iniciales θ0 es com-


parada con las tablas de integrales elı́pticas completas de primera especie K(k)
dadas en la página 610 del libro Handbook of Mathematical Functions,
M. Abramowitz y I.A. Stegun, Dover Publications, New York. Observamos que,
a medida que aumenta el ángulo inicial θ0 se van perdiendo en nuestros cálcu-
lo dı́gitos significativos hasta llegar a un resultado totalmente absurdo para
θ0 = 180◦ . Notemos que, para este ángulo inicial se tiene que la integral elı́pti-
cas completa de primera especie K(1) es una integral impropia divergente puesto
232 El Periodo del Péndulo Simple

que
! π/2 ! π
2 −
dξ dξ
K(1) =  = lı́m
2 cos ξ
0 1 − sin ξ →0+ 0
" # π2 −
= lı́m ln(sec ξ + tan ξ) =∞.
→0+ 0

θ0 = 2 arcsin k K(k) K(k) en Abramowitz T para  = 1


20◦ 1.582839 1.582842 2.021859
40◦ 1.620022 1.620025 2.069355
60◦ 1.685747 1.685750 2.153309
80◦ 1.786768 1.786769 2.282350
100◦ 1.935589 1.935581 2.472448
120◦ 2.156442 2.156515 2.754558
140◦ 2.503612 2.504550 3.198020
160◦ 3.163038 3.153385 4.040345
180◦ 4.808182 ∞ 6.141790
Capı́tulo 12

Sistemas Lineales de
Ecuaciones: Eliminación
Gaussiana

12.1. Realización de la Práctica


En esta práctica, el alumno ha de realizar un programa con el objetivo de
resolver sistemas de ecuaciones lineales. El método utilizado será el algoritmo
de eliminación Gaussiana sin pivotación que mostramos en la Figura 12.1.

para k=1, n-1


para i=k+1, n (CALC. MULTIP.)
mik = aik /akk
finpara

para i=k+1, n (REDUC. COEF. SIST.)


para j=k+1, n
aij = aij − mik akj
finpara
finpara

para i=k+1, n (REDUC. TÉRM. INDEP.)


bi = bi − mik bk
finpara
finpara

Figura 12.1: Algoritmo de eliminación Gaussiana.

Una vez hemos triangularizado la matriz de los coeficientes del sistema con el

233
234 Sistemas Lineales de Ecuaciones: Eliminación Gaussiana

algoritmo anterior, el segundo paso consiste en resolverlo por sustitución hacia


atrás, ver el algoritmo de la Figura 12.2.

Se puede realizar un único programa que realize los dos pasos (eliminación
Gaussiana y sustitución hacia atrás) o bién partirlo en subroutinas.

para i=n, 1, -1
xi = bi /uii
para j=i+1, n
xi = xi − uij xj /uii
finpara
finpara

Figura 12.2: Algoritmo de sustitución hacia atrás.

Queremos resolver el sistema lineal compatible y determinado Ax = b, de


manera que los datos de entrada han de ser los coeficientes de la matriz
A = (aij ) y el vector de términos independientes b = (b1 , b2 , . . . , bn ). Estos
datos se pueden introducir manualmente por el teclado o bién ser leidos
por un fichero.

El programa nos debe devolver en la salida la solución del sistema lineal,


es decir el vector x = (x1 , x2 , . . . , xn ). Esta salida puede ser por pantalla
o bién escrita en un fichero.

Un segundo programa mejorado ha de incluir la estrategia de pivotación


parcial.

12.1.1. Solución en Fortran


Un programa Fortran que implementa el algoritmo de eliminación Gaus-
siana es el siguiente:

PROGRAM GAUSS
IMPLICIT REAL*8(A-H,O-Z)
REAL*8 M
PARAMETER(NMAX=100)
DIMENSION A(NMAX,NMAX), M(NMAX,NMAX), B(NMAX), X(NMAX)

10 WRITE(*,*)’ Introduce el numero de ecuaciones ’


READ(*,*) N
IF (N .GE. NMAX) GO TO 10

20 WRITE(*,*)’ Sistema por (1) TECLADO, (2) FICHERO’


READ(*,*) L
12.1 Realización de la Práctica 235

IF ((L .NE. 1) .AND. (L .NE. 2)) GO TO 20


IF(L .EQ. 2) GO TO 40

C-----ENTRADAR EL SISTEMA POR TECLADO


WRITE(*,*)’ Introduce los coeficientes del sistema:’
DO I=1,N
DO J=1,N
WRITE(*,*)’fila’,I,’columna’,J,’=’
READ(*,*) A(I,J)
END DO
END DO
WRITE(*,*)’ Introduce los terminos independientes:’
DO I=1,N
WRITE(*,*)’B(’,I,’)=’
READ(*,*) B(I)
END DO
GO TO 50

C-----ENTRADA DEL SISTEMA POR FICHERO


40 OPEN(UNIT=1,FILE=’SISTEMA.DAT’,STATUS=’UNKNOWN’)
DO I=1,N
READ(1,*,ERR=100) (A(I,J),J=1,N), B(I)
END DO

C-----TRIANGULARIZACION
50 DO K=1,N-1
IF(A(K,K) .EQ. 0.) THEN
WRITE(*,*)’Hay un pivote nulo: MATRIZ SINGULAR’
STOP
END IF

C-------CALCULO DE LOS MULTIPLICADORES


DO I=K+1,N
M(I,K)=A(I,K)/A(K,K)
END DO

C-------ELIMINACION GAUSSIANA EN LA MATRIZ DEL SISTEMA


DO I=K+1,N
DO J=K+1,N
A(I,J)=A(I,J)-M(I,K)*A(K,J)
END DO
END DO

C-------ELIMINACION GAUSSIANA EN LOS TERMINOS INDEPENDIENTES


DO I=K+1,N
B(I)=B(I)-M(I,K)*B(K)
236 Sistemas Lineales de Ecuaciones: Eliminación Gaussiana

END DO
END DO

C-----RESOLUCION POR SUSTITUCION HACIA ATRAS


DO I=N,1,-1
X(I)=B(I)/A(I,I)
DO J=I+1,N
X(I)=X(I)-A(I,J)*X(J)/A(I,I)
END DO
END DO

C-----OPCIONES DE SALIDA
60 WRITE(*,*)’ Solucion por (1) PANTALLA, (2) FICHERO’
READ(*,*) L
IF ((L .NE. 1) .AND. (L .NE. 2)) GO TO 60
IF(L .EQ. 1) GO TO 70

C-----IMPRIMIR SOLUCION EN FICHERO


OPEN(UNIT=2,FILE=’SOLUCION.DAT’,STATUS=’UNKNOWN’)
DO I=1,N
WRITE(2,*,ERR=200) X(I)
END DO
STOP

C-----IMPRIMIR SOLUCION EN PANTALLA


70 DO I=1,N
WRITE(*,*) X(I)
END DO
STOP

C-----ADVERTENCIAS
100 WRITE(*,*)’Error de lectura en el fichero de datos’
STOP
200 WRITE(*,*)’Error de lectura en el fichero de datos’
STOP
END

12.1.2. Solución en Mathematica


Un programa Mathematica que implementa el algoritmo de eliminación
Gaussiana y además calcula la descomposición LU de la matriz de coeficientes
del sistema es el siguiente:

A = ReadList[‘‘ c:/matriz.dat ", Number,RecordLists ->True];

b = ReadList[‘‘ c:/vector.dat ", Number,RecordLists ->True][[1]];


12.1 Realización de la Práctica 237

n = Dimensions[A][[1]];

M = IdentityMatrix[n];

U = Table[0, i, n, j, n]; x = Table[0, i, n];

For[k = 1, k <= n - 1,k++, (* k-esimo paso de eliminación *)


For[i = k + 1, i <= n,i++, (* multip. con pivotes no nulos *)
If[A[[k, k]] != 0, M[[i, k]] = A[[i, k]]/A[[k, k]],
Print["pivote nulo"]; Interrupt[]]
];

For[i = k + 1, i <= n, i++, (* Eliminación *)


For[j = k + 1, j <= n, j++,
A[[i, j]] = A[[i, j]] - M[[i, k]]*A[[k, j]] ]];
For[i = k + 1, i <= n, i++, b[[i]] = b[[i]] - M[[i,k]]*b[[k]]
];
];

For[i = n, i >= 1,i--, (* Sustitucin hacia atrás *)


x[[i]] = b[[i]]/A[[i, i]];
For[j = i + 1, j <= n, j++,
x[[i]] = x[[i]] - A[[i, j]]*x[[j]]/A[[i, i]]
];
];

L = M; (* Matrices L y U *)
For[i = 1, i <= n, i++,
For[j = 1, j <= n, j++,
If[i >j, U[[i, j]] = 0, U[[i, j]] = A[[i, j]] ]
]
]

Print["L=",MatrixForm[L]] (*salida*)
Print[‘‘U=", MatrixForm[U]]
Print["x=", MatrixForm[x]]
Print["FIN"]

Es posible comprobar si los cálculos efectuados son correctos mediante co-


mandos propios de Mathematica para la resolución de sistemas lineales de ecua-
ciones.

AA = ReadList[‘‘c:/matriz.dat", Number, RecordLists ->True];


238 Sistemas Lineales de Ecuaciones: Eliminación Gaussiana

bb = ReadList[‘‘c:/vector.dat", Number, RecordLists ->True][[1]];

MatrixForm[AA]
MatrixForm[L]
MatrixForm[U]
MatrixForm[AA - L.U]

x
LinearSolve[AA, bb]
LinearSolve[U, b]

12.2. Aplicación al Cálculo de Intensidades en


Redes Eléctricas
Finalizamos esta sección con una aplicación del programa de eliminación
Gaussiana desarrollado anteriormente al cálculo de intensidades en redes eléctri-
cas.

Es conocido que las Leyes de Kirchoff de los circuitos eléctricos establecen


que
1. Conservación de la carga: el flujo neto de la corriente que pasa por las
uniones de un circuito (nudos) es cero.
2. Conservación de la energı́a: la caida de voltaje neto alrededor de las partes
cerradas de un circuito (mallas) es cero.
Cualquier problema de redes eléctricas se puede resolver de una forma sis-
temática por medio de las Leyes de Kirchoff. Recordemos que, para aplicar las
Leyes de Kirchoff, es necesaria la Ley de Ohm que establece que la caida de
potencial vj en una resistencia Rj por la que circula una intensidad de corriente
eléctrica ij es vj = ij Rj . De esta forma, la primera y segunda ley de Kirchoff
adoptan la forma siguiente
  
ij = 0 , vj + ij Rj = 0 .
j j j

Supóngase que aplicamos un potencial V = 5,5 voltios entre los puntos A y


G del circuito de la Figura 12.3. Aplicar las Leyes de Kirchoff para obtener el
sistema lineal de ecuaciones que verifican las intensidades ij con j = 1, 2, 3, 4, 5,
y resolverlo con el programa de eliminación gaussiana realizado anteriormente.
12.2 Aplicación al Cálculo de Intensidades en Redes Eléctricas 239

Figura 12.3: Las intensidades de la red eléctrica verifican un sistema lineal de


ecuaciones.
Capı́tulo 13

La Ecuación del Calor


Unidimensional

13.1. Introducción
Consideremos un material de coeficiente de conductividad térmica κ, calor
especı́fico c y densidad ρ tal que su anchura es despreciable respecto de su
longitud L (por ejemplo un alambre). Es fácil demostrar que, si el material
está aislado lateralmente y se verifica la ley de Fourier, entonces la ecuación que
govierna la evolución de la temperatura T (x, t) en un punto de posición x para
tiempo t es la llamada ecuación del calor
∂T ∂2T
(x, t) = σ 2 2 (x, t) , (13.1)
∂t ∂x
donde σ 2 = cρ κ
es el llamado coeficiente de difusividad. Este es un ejemplo
de ecuación en derivadas parciales parabólica. Para hallar una única solución
T (x, t) se necesita una condición inicial, la distribución inicial de temperatura
en el material
T (x, 0) = f (x) , 0 ≤ x ≤ L , (13.2)
y una condición de contorno, temperatura en los extremos del material
T (0, t) = T0 , T (L, t) = TL , 0 ≤ t < ∞ . (13.3)
Las constantes T0 y TL ası́ como la función f (x) son datos del problema.

13.2. Método de Crank-Nicholson


Vamos a dar un método numérico para aproximar la solución T (x, t) me-
diante un esquema de diferencias divididas implı́cito ideado por John Crank y
Phyllis Nicholson.

241
242 La Ecuación del Calor Unidimensional

Tomemos el origen de coordenada espacial x en un extremo de la barra del


material. Realizemos una discretización del espacio y del tiempo con longitudes
de paso h y k constantes, de manera que xi = ih y tj = jk para i = 0, 1, . . . , n,
j = 0, 1, . . . , m. De esta forma hemos formado una malla de puntos

(xi , tj ) ∈ {(x, t) : 0 ≤ x ≤ L , 0 ≤ t ≤ τ } .

Obviamente, se verifica T (xi , t0 ) = f (xi ) y se pretende obtener las aproxima-


ciones Tij ≈ T (xi , tj ) de la solución exacta para 1 ≤ j ≤ m.
Usando la aproximación de la derivada parcial respecto del tiempo que se
obtiene a partir de la fórmula de diferencias centradas

∂T T (x, t + k) − T (x, t)
(x, t + k/2) = + O(k 2 ) , (13.4)
∂t k

y, en vez de utilizar ∂ 2 T /∂x2 (x, t) = [T (x − h, t) − 2T (x, t) + T (x + h, t)]/h2 +


O(h2 ), usamos como aproximación el valor medio de las aproximaciones en las
cantidades ∂ 2 T /∂x2 (x, t) y ∂ 2 T /∂x2 (x, t + k), es decir,

∂2T 1
(x, t + k/2) = [T (x − h, t + k) − 2T (x, t + k) + T (x + h, t + k)
∂x2 2h2
+T (x − h, t) − 2T (x, t) + T (x + h, t)] + O(h2 ) . (13.5)

Sustituyendo (13.4) y (13.5) en la ecuación del calor (13.1) y despreciando los


términos O(h2 ) y O(k 2 ) se tiene

Tij+1 − Tij T j+1 − 2Tij+1 + Ti+1


j+1 j
+ Ti−1 − 2Tij + Ti+1
j
= σ 2 i−1
k 2h2

Definiendo r = σ 2 k/h2 y despejando los valores de T j+1 se obtiene la ecuación


implı́cita
j+1
−rTi−1 + (2 + 2r)Tij+1 − rTi+1
j+1
= (2 − 2r)Tij + r(Ti−1
j j
+ Ti+1 ),

para i = 1, 2, . . . , n − 1. Es habitual tomar r = 1 en las anteriores ecuaciones,


de manera que se simplifican notablemente dando lugar a
j+1
−Ti−1 + 4Tij+1 − Ti+1
j+1 j
= Ti−1 j
+ Ti+1 , i = 1, 2, . . . , n − 1 , (13.6)

siendo la longitud de paso en el tiempo

h2
k= . (13.7)
σ2

Conocidos los T j se calculan a partir del sistema (13.6) los T j+1 . Además, hay
que tener en cuenta las condiciones de contorno T0j = T0j+1 = T0 y Tnj = Tnj+1 =
TL .
13.3 Separación de Variables: Series de Fourier 243

Desarrollando en forma matricial las ecuaciones (13.6) se tiene el siguiente


sistema lineal de ecuaciones donde la matriz del sistema es tridiagonal y diagonal
dominante por filas
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
4 −1 T1j+1 2T0 + T2j
⎜ −1 4 −1 ⎟ ⎜ T2j+1 ⎟ ⎜ T1j + T3j ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ −1 4 −1 ⎟ ⎜ T3j+1
⎟ ⎜
T2j + T4j

⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟=⎜ ⎟ .
⎜ .. .. .. ⎟ ⎜ .. ⎟ ⎜ .. ⎟
⎜ . . . ⎟ ⎜

. ⎟ ⎜
⎟ ⎜ j
. ⎟

⎝ −1 4 −1 ⎠ ⎝ j+1
Tn−2 ⎠ ⎝ Tn−3 + Tn−1
j

−1 4 j+1
Tn−1 j
Tn−2 + 2TL
(13.8)
Se han de resolver m sistemas lineales (13.8) correspondientes a los distintos
valores j = 0, 1, . . . , m − 1. Obsérvese que, cada vez que se resuelve un sistema
lineal (13.8) se está aproximando la solución de la temperatura en la barra en
una unidad de tiempo, es decir, conocidos los términos independientes que no
son más que los Tij , se obtienen los Tij+1 .

13.3. Separación de Variables: Series de Fourier


Es posible calcular la solución exacta T (x, t) de la ecuación (13.1) sujeta
a las condiciones (13.2) y (13.3) mediante el uso de series de Fourier. Para
conseguirlo se buscan soluciones de la ecuación del calor (13.1) con las variables
separadas, es decir, de la forma T (x, t) = ξ(x)η(t). La idea general del método
de separación de variables consiste en que es posible obtener un número infinito
de este tipo de soluciones que verifican al mismo tiempo la condición inicial
(13.2) y las condiciones de contorno (13.3). Este número infinito de soluciones
serán denotadas por Tn (x, t) = ξn (x)ηn (t) con n = 1, 2, . . . , ∞ y son llamadas
soluciones fundamentales. Puesto que la ecuación del calor es una ecuación en
derivadas parciales lineal se verifica el principio de superposición, de manera
que la serie

 ∞

T (x, t) = αn Tn (x, t) = αn ξn (x)ηn (t) , (13.9)
n=1 n=1

con coeficientes αn ∈ N, es la solución de la ecuación del calor en el supuesto de


que la serie sea convergente.

13.3.1. Búsqueda de las soluciones fundamentales Tn (x, t)


con condiciones de contorno homogéneas
Supongamos que las condiciones de contorno (13.3) son homogéneas, es decir,
T0 = TL = 0. Entonces, las condiciones de contorno (13.3) reducen a

T (0, t) = 0 , T (L, t) = 0 , 0 ≤ t < ∞ . (13.10)


244 La Ecuación del Calor Unidimensional

Impongamos que T (x, t) = ξ(x)η(t) sea una solución de la ecuación del calor
(13.1). Entonces se obtiene que

ξ(x)η̇(t) = σ 2 ξ  (x)η(t) .

Separando en esta ecuación los términos espaciales y temporales llegamos a


η̇(t) ξ  (x)
= .
σ 2 η(t) ξ(x)
Puesto que las variables x y t son independientes, cada miembro de la anterior
ecuación sólo puede ser una constante que, por conveniencia, llamamos −λ2 .
Se llega de esta forma a que la ecuación del calor (13.1) en derivadas parciales
reduce a un sistema de dos ecuaciones diferenciales ordinarias lineales y no
acopladas

0 = η̇(t) + σ 2 λ2 η(t) ,
0 = ξ  (x) + λ2 ξ(x) ,

ambas fáciles de resolver. En concreto ξ(x) verifica la ecuación de un oscilador


armónico y η(t) verifica una ecuación lineal de primer orden de variables sepa-
rables. En definitiva se tiene

ξ(x) = A sin(λx) + B cos(λx) ,


η(t) = C exp(−λ2 σ 2 t) ,

siendo A, B, C ∈ R constantes arbitrarias. De momento se tiene que las funciones


del tipo

T (x, t) = ξ(x)η(t) = [A sin(λx) + B cos(λx)]C exp(−λ2 σ 2 t)


= [A1 sin(λx) + A2 cos(λx)] exp(−λ2 σ 2 t) ,

con A1 , A2 , λ ∈ R constantes arbitrarias verifican la ecuación del calor (13.1).


Calculemos dichas constantes imponiendo ahora las condiciones de contorno
homogéneas (13.10). De T (0, t) = 0 para todo t > 0 se deduce que A2 = 0.
Finalmente, de T (L, t) = 0 para todo t > 0 se obtiene A1 sin(λL) = 0. Como
no queremos hallar la solución trivial T (x, t) ≡ 0 no anularemos de la anterior
ecuación A1 sino que tomaremos sin(λL) = 0 o equivalentemente λ := λn con

λn = , n∈N. (13.11)
L
Hemos obtenido pues las soluciones fundamentales

Tn (x, t) = ξn (x)ηn (t) = sin(λn x) exp(−λ2n σ 2 t) . (13.12)

Por lo tanto, según (13.15), la solución exacta T (x, t) viene dada por la serie

  nπ nπ 2 2 '
T (x, t) = αn sin x exp [−( σ t . (13.13)
n=1
L L
13.3 Separación de Variables: Series de Fourier 245

Sólo falta hallar los coeficientes αn , que vendrán determinados por la distribu-
ción inicial de temperaturas. En concreto, puesto que

  nπ
T (x, 0) = f (x) = αn sin x ,
n=1
L

es una serie de Fourier, los coeficientes αn vienen determinados por


!  nπ
2 L
αn = f (x) sin x . (13.14)
L 0 L

13.3.2. Realización de la práctica


Realizar un programa Fortran que implemente el esquema de diferencias
divididas implı́citas de Crank-Nicholson.

(i) Los datos de entrada han de ser L, σ, T0 , TL , f (x), n, τ .


(ii) Utilizar el procedimiento FUNCTION después del END del programa prin-
cipal, para definir la distribución de temperaturas inicial f (x). Por ejem-
plo, si f (x) = sin(x), se escribirá

FUNCTION F(X)
F=SIN(X)
RETURN
END
(iii) Puesto que todos los sistemas lineales (13.8) tienen la misma matriz de
coeficientes y lo único que varı́a son los términos independientes, un buen
método para su resolución consiste en hallar la descomposición LU de
la matriz de coeficientes del sistema (13.8). Además para hallar tal des-
composición LU , la eliminación Gaussiana será numéricamente estable.
Aprovechar además la estructura tridiagonal de la matriz de coeficientes
de (13.8).
(iv) Definir en una sentencia PARAMETER los valores máximos de n y m
asignándoles, por ejemplo, los valores N M AX = 100, M M AX = 100.
Dimensionar posteriormente las matrices L, U ∈ Mn−1 (R). Los elementos
T (xi , tj ) ≈ Tij almacenarlos también en una matriz que se habrá dimen-
sionado adecuadamente y que en el programa serán utilizados de la forma
T (I, J).
(v) Nota: Llamar en el programa LL a la longitud de la barra para no tener
confusiones con la matriz triangular inferior L.
(vi) La salida del programa será un fichero, por ejemplo temperaturas.dat, que
contenga las parejas de valores (xi , Tij ) ordenados de la forma

x0 , T0
246 La Ecuación del Calor Unidimensional

x1 , T10
..
.
0
xn−1 , Tn−1
xn , TL
x0 , T0
x1 , T11
..
.
1
xn−1 , Tn−1
xn , TL
..
.
x0 , T0
x1 , T1m
..
.
m
xn−1 , Tn−1
xn , TL

Cuando el anterior programa funcione correctamente, aplicarlo al siguiente


problema:

Problema: Considerar una barra de un cierto material cuya anchura es


despreciable respecto de su longitud L = 1, que verifique la ley de Fourier y
tal que su coeficiente de conductividad vale σ = 0,5. Los extremos de dicha
barra se ponen en contacto con dos focos térmicos a temperatura cero. La barra
está aislada térmicamente por los laterales y además se sabe que la distribución
inicial de temperaturas viene dada por la función continua

x si 0 ≤ x ≤ 1/2 ,
T (x, 0) = f (x) :=
1 − x si 1/2 < x ≤ 1 .

Aproximar la evolución de la temperatura T (x, t) en la barra en el intervalo


de tiempo t ∈ [0, τ ], es decir, hallar T (xi , tj ) para xi = ih, tj = jk con i =
0, 1, . . . , n y j = 0, 1, . . . , m, siendo n = 10 y τ = 2.

13.3.3. Representación gráfica de los resultados


Se pretende realizar secciones a tiempo constante de la superficie T (x, t), con
el objetivo de hallar las curvas T (x, tj ) con x ∈ [0, L] y tj fijado.
Para representar gráficamente los resultados obtenidos en el problema de
la sección anterior, es decir, las aproximaciones de T (xi , tj ), se procede con el
programa Mathematica de la forma siguiente.
13.3 Separación de Variables: Series de Fourier 247

1. Definir los parámetros necesarios:

n = 10; L = 1; τ = 2; σ = 0,5; h = L/n; k = h2 /σ 2 ; m =IntegerPart[τ /k];

2. Cargar en una lista que llamaremos temp el fichero temperaturas.dat:

temp = ReadList[”temperaturas.dat”, Number, RecordLists → True]

3. Extraer de la lista temp las parejas de puntos (xi , Tij ) para cada val-
or de j, es decir, las posiciones y temperaturas de la barra par tiempo tj con
j = 0, 1, . . . , m e incluirlos en sublistas llamadas t[j]:

For[j = 0, j < = m - 1, j++, lista = { };


For[i = (n + 1)*j + 1, i < = (n + 1)*(j + 1), i++,
AppendTo[lista, temp[[i]]]];
t[j] = lista
]

4. Dibujar las gráficas de la temperatura de la barra para los tiempos tj


con j = 0, 1, . . . , m. En concreto, a cada una de estas gráficas las llamaremos
grafica[j]:

For[j = 0, j < = m, j++,


grafica[j] = ListPlot[t[j], PlotJoined → True, AxesLabel → {”x”, ”T”}];
]

5. Dibujar superpuestas las gráficas de la temperatura de la barra para los


tiempos tj con j = 0, 5, 10, 15, es decir , superponer las graficas grafica[0], grafi-
ca[5], grafica[10], grafica[15]:

Show[grafica[0], grafica[5], grafica[10], grafica[15]]

13.3.4. Comparación con el método de Fourier


Una forma de aproximar la solución exacta T (x, t) dada por la serie (13.13)
es tomar una suma parcial


s  nπ nπ 2 2 '
T (x, t) ≈ αn sin x exp [−( σ t , (13.15)
n=1
L L

con s ∈ N suficientemente grande y los coeficientes αn dados por (13.14).

Tomar s = 10 y visualizar gráficamente los resultados con Mathematica


de la forma siguiente.
248 La Ecuación del Calor Unidimensional

1. Definir los parámetros necesarios:

s = 10; L = 1; sigma = 0,5; h = L/10; k = h2 /sigma2 ;

2. Definir las dos funciones que introducen la distribución inicial de tempe-


raturas

f1[x ] = x
f2[x ] = 1-x

3. Definir los coeficientes λn y αn a partir de (13.11) y (13.14):

lambda[n ]=n*Pi/L

alpha[n ]:= alpha[n] = 1/L*(NIntegrate[f1[x]*Sin[lambda[n]*x],{x,0,1/2}] +


NIntegrate[f2[x]*Sin[lambda[n]*x],{x,1/2,1}])

4. Definir las soluciones fundamentales Tn (x, t) dadas por (13.12):

T[x ,t , n ] := T[x ,t, n] = alpha[n]*Sin[lambda[n]*x]*Exp[-sigma2 *lambda[n]2 *t]

5. Obtener la expresión de la temperatura aproximada a partir de la suma


parcial (13.15):

Taprox[x ,t ]=Sum[T[x,t,n],{n,1,s}]

6. Dibujar las gráficas de la temperatura aproximada de la barra para los


tiempos tj con j = 0, 5, 10, 15 y almacenar dichas gráficas en tempaprox[j] :

For[j = 0, j < = 15, j += 5,


t[j] = j*k;
tempaprox[j] = Plot[Taprox[x, t[j]], { x, 0, L }, AxesLabel → { ”x”, ”T”}]
]

7. Dibujar superpuestas las anteriores gráficas:

Show[tempaprox[0], tempaprox[5], tempaprox[10], tempaprox[15]]


Capı́tulo 14

Interpolación de Newton

14.1. Introducción
El problema de la interpolación tiene una relevancia especial en muchas
aplicaciones a la ingenierı́a. Los métodos de interpolación tratan de encontrar
una función (polinómica, trigonométrica, exponencial,...) que satisfaga ciertas
condiciones en un conjunto finito de puntos. Estas condiciones pueden darse
sobre los valores de la función, y también sobre sus derivadas. En diferentes
disciplinas cientı́ficas y técnicas se plantea muy a menudo este problema. De
hecho, son muchas y muy distintas las situaciones en las que aparecen series
de datos o resultados de mediciones experimentales de los cuales sólo se conoce
cómo se comportan en una cierta cantidad finita de puntos y para los cuales
se necesita encontrar una “ley general”. Dicha ley no es mas que una función
que tome unos valores predeterminados. Éste es, precisamente, el cometido de
la interpolación. La función interpoladora servirá para sustituir a la función
desconocida, tanto para evaluarla en puntos en los que no se conoce su val-
or (interpolación en sentido estricto), como para conocer su tasa de variación
(diferenciación numérica) o su distribución acumulativa (integración numérica).
Además, la interpolación sirve para fundamentar una amplia gama de métodos
para el tratamiento numérico de ecuaciones diferenciales.

La función interpoladora debe ser, por tanto, fácil de evaluar, derivar e in-
tegrar.
Nos limitaremos a la interpolación polinómica que consiste en lo siguiente:

“Dada una función f : [a, b] → R y un conjunto de abscisas Σ =


{x0 , x1 , . . . , xn } ⊂ [a, b] con xi = xj si i = j, encontrar un polinomio
Pn verificando Pn (xi ) = f (xi ) para i = 0, 1, . . . , n”.

En esta práctica el alumno ha de realizar un programa que implemente el


método interpolatorio de las diferencias divididas de Newton. En una segunda
parte de la práctica, aplicaremos el programa realizado para verificar de forma

249
250 Interpolación de Newton

numérica el fenómeno Runge, es decir comprobar que en general

lı́m Pn (x) = f (x) .


n→∞

14.2. Diferencias Divididas de Newton


Sabemos que el polinomio que interpola a las parejas (xi , fi ) con i = 0, 1, . . . , n
puede escribirse de la forma

n
Pn (x) = ci ϕi (x) ,
i=0

donde

i−1
ϕ0 (x) := 1 , ϕi (x) = (x − xk ) para i = 1, 2, . . . , n.
k=0
Los coeficientes ci se conocen con el nombre de diferencias divididas y su
notación histórica es
ci := f [x0 , x1 , . . . , xi ] .
Se puede demostrar que las diferencias divididas vienen definidas de la forma
siguiente

f [xi ] = fi ,
f [xi+1 , xi+2 , . . . , xi+j ] − f [xi , xi+1 , . . . , xi+j−1 ]
f [xi , xi+1 , . . . , xi+j ] = .
xi+j − xi
Un ejemplo de como esquematizar el proceso descrito para el cálculo de las
diferencias divididas en el caso n = 3 es el siguiente
x0 f [x0 ]
f [x0 , x1 ]
x1 f [x1 ] f [x0 , x1 , x2 ]
f [x1 , x2 ] f [x0 , x1 , x2 , x3 ]
x2 f [x2 ] f [x1 , x2 , x3 ]
f [x2 , x3 ]
x3 f [x3 ]
A continuación, ver Figura 14.1, damos un algoritmo para el cálculo de las
diferencias divididas.
Este algoritmo permite el cálculo de los coeficientes ci que no son más que
f [x0 , x1 , . . . , xi ]. Una forma de ahorrar memoria en la computadora consiste en
dimensionar un vector c = (c0 , c1 , . . . , cn ). Al introducir los datos de entrada
f0 , f1 , . . . , fn , se almacenan en el vector c, de manera que c0 ya es el primer
coeficiente del polinomio interpolador. Después se computa la primera columna
del esquema de diferencias divididas y colocamos estos valores en c1 , c2 , . . . , cn ,
de manera que c0 conserva su valor y el nuevo c1 es el segundo coeficiente del
polinomio interpolador y ası́ sucesivamente.
14.3 Fenómeno Runge 251

para i=0,n
ci = fi
finpara

para j=1,n
para i=n,j
ci = (ci − ci−1 )/(xi − xi−j )
finpara
finpara

Figura 14.1: Algoritmo de diferencias divididas de Newton.

14.3. Fenómeno Runge


Para n = 5, 10 y 15, calcular utilizando el programa de la sección anterior
con abscisas equiespaciadas, el polinomio de interpolación de Newton Pn (x)
correspondiente a la función racional
1
f (x) = definida en el intervalo [−5, 5] .
1 + x2
Finalmente, computar para cada valor de n el error cometido |f (xj )−Pn (xj )|
en 31 puntos distribuidos a iguales distancias en el intervalo [−5, 5], es decir en
xj = −5 + j/3 para j = 0, 1, . . . , 30. El objetivo de este cálculo es evidenciar
de forma numérica la divergencia de Pn respecto de f que es lo que se conoce
como fenómeno Runge.

Observemos que para realizar esta parte de la práctica es necesario evaluar


el polinomio interpolador en 31 puntos, es decir Pn (xj ) para j = 0, 1, . . . , 30.
Una vez se conocen las diferencias divididas ci para i = 0, 1, . . . , n, ver el
anterior apartado, una forma de evaluar el polinomio interpolador Pn en un
valor x viene dada en el seudocódigo de la Figura 14.2. Dicho código utiliza la
forma de Newton1 del polinomio Pn , es decir


n
Pn (x) = ci ϕi (x)
i=0
= c0 + c1 (x − x0 ) + · · · + cn (x − x0 ) · · · (x − xn−1 ) .

Como resultado final de esta práctica se tiene que apreciar los efectos de
borde: el polinomio interpolador tiende a oscilar en los extremos del intervalo de
interpolación [−5, 5].
1 En esta práctica tomamos esta forma del polinomio aunque recordemos que, la forma más

conveniente desde el punto de vista del número de operaciones necesarias para de  evaluar
un polinomio es la de Horner. Por ejemplo el polinomio de cuarto grado P4 (x) = 4i=0 ai xi
adopta la forma de Horner P4 (x) = a0 + x(a1 + x(a2 + x(a3 + aa4 ))).
252 Interpolación de Newton

inicializar x
valor=c0
p=1
para i=0,n-1
p = p(x − xi )
valor=valor+ci p
finpara
salida x, valor

Figura 14.2: Dando un valor x y conocidas las diferencias divididas ci , el algo-


ritmo devuelve la pareja (x, Pn (x)).

14.4. Minimización del Error de Interpolación


Se sabe que, si f ∈ C n+1 [a, b] y Pn es el polinomio que interpola a f en n + 1
puntos distintos {x0 , x1 , . . . , xn } ⊂ [a, b], para cada x ∈ [a, b] existe ξx ∈ [a, b]
tal que el error Δx cometido en la interpolación en el punto x viene dado por
 (n+1) 
f (ξx ) 
Δx := |f (x) − Pn (x)| =   Πn (x) ,
(n + 1)!

siendo

n
Πn (x) = (x − xi ) .
i=0

Fijadas la función f y el grado n del polinomio interpolador Pn , se pretende


encontrar los puntos de interpolación {x0 , x1 , . . . , xn } que hagan mı́nimo el error
Δx con la norma del infinito o del máximo. En concreto se ha de minimizar
Πn ∞ en el intervalo [a, b], es decir

Πn ∞ := maxa≤x≤b |Πn (x)| .

P.L. Chebychev fue el primero en hallar la solución al problema planteado.

Teorema 14.1 (Chebychev) Dada una función f ∈ C n+1 [−1, 1], el menor
error en la norma del máximo en la interpolación de f se comete cuando se
toman las siguientes abscisas de interpolación {x0 , x1 , . . . , xn } ⊂ [−1, 1]

(2j + 1)π
xj = cos , j = 0, 1, . . . , n .
2(n + 1)

Notas:

Los puntos {x0 , x1 , . . . , xn } dados por el Teorema 14.1 no son equiespaci-


ados, sino que se agrupan cerca de los extremos del intervalo.
14.4 Minimización del Error de Interpolación 253

Aunque el Teorema 14.1 hace únicamente referencia a una interpolación


en el intervalo [−1, 1] puede extenderse fácilmente a un intervalo arbitrario
[a, b]. Para éllo basta con realizar el cambio lineal de variables z = (2x −
a − b)/(b − a) que lleva el intervalo [a, b] al [−1, 1]. De esta forma, la nueva
función a interpolar F (z) : [−1, 1] → R está definida como

a+b b−a
F (z) = f (x) = f + z .
2 2

Se puede concluir que, las abscisas de interpolación

a+b b−a (2j + 1)π


xj = + cos , j = 0, 1, . . . , n , (14.1)
2 2 2(n + 1)

minimizan el error de la interpolación de la función f en el intervalo [a, b].

La parte final de la práctica consiste en repetir los cálculos de la sección


anterior pero ahora con las abscisas de interpolación dadas por (14.1) con [a, b] =
[−5, 5] y comprobar como el error |f (x) − Pn (x)| ha disminuido sensiblemente.
Capı́tulo 15

Interpolación por Splines


Cúbicos Naturales

15.1. Introducción
El fenómeno Runge mostrado en la práctica anterior nos está indicando que
la interpolación polinomial sobre un número grande de abscisas no es siempre
adecuada debido a la tendencia a oscilar que tienen los polinomos. Una solu-
ción adecuada para este problema es la interpolación mediante funciones spline1 .

Matemáticamente, una función spline en un intervalo [x0 , xn ] está forma-


da por polinomios definidos en subintervalos de [x0 , xn ] obedeciendo a ciertas
condiciones de regularidad. Más concretamente, consideremos un conjunto de
n + 1 pares (xi , fi ) para i = 0, 1, . . . , n sobre los que queremos construir un
spline cúbico S que los interpole. Sea Si el polinomio cúbico que representa a S
en el intervalo x ∈ [xi , xi+1 ], es decir


⎪ S0 (x) x ∈ [x0 , x1 ]

⎨ S1 (x) x ∈ [x1 , x2 ]
S(x) = .. .. (15.1)

⎪ . .


Sn−1 (x) x ∈ [xn−1 , xn ]

tal que se verifique la continuidad de S, S  y S  .

Se puede demostrar que los splines cúbicos naturales se calculan de la forma


" #
Si (x) = fi + (x − xi ) Ci + (x − xi )[Bi + (x − xi )Ai ] , (15.2)

1 La palabra inglesa “spline”denota un instrumento flexible usado en dibujo técnico que

sirve para trazar curvas suaves. Precisamente, la propiedad de adaptarse bien a formas dadas
que tienen las funciones spline es lo que hace que se les dé tal nombre

255
256 Interpolación por Splines Cúbicos Naturales

donde hemos definido

1 zi hi hi 1
Ai := (zi+1 −zi ) , Bi := , Ci := − zi+1 − zi + (fi+1 −fi ) , (15.3)
6hi 2 6 3 hi

siendo
hi := xi+1 − xi , zi := S  (xi ) . (15.4)

Observar que lo único que nos queda por hacer para finalizar el problema de
la interpolación de splines es calcular los valores z0 , z1 , . . . , zn .

Tomando la elección z0 = zn = 0 (spline cúbico natural) se puede demostrar


que las zi verifican el sistema lineal, simétrico, tridiagonal y diagonal dominante
por filas siguiente
⎛ ⎞⎛ ⎞ ⎛ ⎞
h̃1 h1 z1 f˜1
⎜ h ⎟⎜ ⎟ ⎜ f˜2 ⎟
⎜ 1 h̃2 h2 ⎟⎜ z2 ⎟ ⎜ ⎟
⎜ ⎟⎜ ⎟ ⎜ f˜3

⎜ h2 h̃3 h3 ⎟⎜ z3 ⎟ ⎜ ⎟
⎜ ⎟⎜ ⎟=⎜ ⎟ (15.5)
⎜ ⎟⎜ ⎟ ⎜ ⎟
.. .. .. .. ..
⎜ . . . ⎟⎜ . ⎟ ⎜ . ⎟

⎝ hn−3 h̃n−2 hn−2
⎟⎝
⎠ zn−2 ⎠ ⎜
⎝ ˜
fn−2


hn−2 h̃n−1 zn−1 f˜n−1

donde hemos definido


6
h̃i := 2(hi + hi−1 ) , f˜i := bi − bi−1 , siendo bi = (fi+1 − fi ) . (15.6)
hi

Para resolver numericamente el sistema lineal (15.5) se puede pensar en la


eliminación Gaussiana sin pivotación. Las entradas del algoritmo son el número
de nudos n y las parejas (xi , fi ) desde i = 0, 1, . . . , n. La salida serán los valores
de zi para i = 0, 1, . . . , n. Observar que el algoritmo utiliza divisiones por h̃i ,
pero no existe ningún problema ya que es fácil comprobar que h̃i > 0.

Una vez se han determinado todos los valores de zi se procederı́a al cálculo


de la función spline S(x) definida a partir de las ecuaciones (15.1), (15.4), (15.2)
y (15.3). Una forma de calcular numéricamente el subintervalo [xi , xi+1 ] al que
pertenece x es mediante la evaluación ordenada de las diferencias

x − xn−1 , x − xn−2 , . . . , x − x1 ,

de manera que si denotamos por x − xi a la primera de estas diferencias que es


positiva, entonces x ∈ [xi , xi+1 ).

Un código para resolver el sistema lineal (15.5) puede ser el dado en la Figura
15.1.
15.2 Realización de la Práctica 257

entrada n, xi , fi

para i=0, n-1


hi = xi+1 − xi
bi = 6(fi+1 − fi )/hi
finpara

th1 = 2(h0 + h1 )
tf1 = b1 − b0
para i=2, n-1
thi = 2(hi + hi−1 ) − h2i−1 /thi−1
tfi = bi − bi−1 − hi−1 tfi−1 /thi−1
finpara

zn = 0
para i=n-1, 1, -1
zi = (tfi − hi zi+1 )/thi
finpara
z0 = 0

salida zi

Figura 15.1: Algoritmo para generar las segundas derivadas de splines cúbicos
naturales calculadas en los nodos.

15.2. Realización de la Práctica


Hacer un pequen̄o√ programa Fortran para tabular, con nudos equiespa-
ciados, la función x en el intervalo [0, 1] utilizando n = 10 y escribiendo

las parejas (xi , xi ) en un fichero.

Realizar un programa Fortran que lea de un fichero los datos (xi , fi )


para i = 0, 1, . . . , n y que implemente un algoritmo de splines cúbicos
naturales.

Utilizar √el programa anterior para aproximar en nudos equiespaciados la


función x en el intervalo [0, 1] utilizando n = 100 y escribiendo las parejas
(xi , S(xi )) en otro fichero.

Mostrar
√ (con un software adecuado) las gráficas superpuestas de la función
x y de la función spline S(x) obtenida en el apartado anterior. Por
ejemplo, con el software Mathematica:

(i) Cargar en una lista el fichero guardado en el apartado anterior

datos=ReadList[“fichero.dat”, Number, RecordLists→True]


258 Interpolación por Splines Cúbicos Naturales

(ii) Dibujar una gráfica de la función Spline utilizando los puntos de


fichero.dat

spline=ListPlot[datos, PlotJoined→True]

(iii) Dibujar una gráfica de la función x en el intervalo [0, 1]

raiz=Plot[ Sqrt[x], { x,0,1 } ]


(iv) Mostrar las dos gráficas superpuestas

Show[ spline, raiz ]

15.3. Solución en Fortran


Un posible codigo Fortran que implemente el cálculo de los splines cúbicos
naturales es el siguiente.

PROGRAM SPLINE
IMPLICIT REAL*8(A-H,O-Z)
PARAMETER(NMAX=100)
DIMENSION X(0:NMAX), F(0:NMAX), Z(0:NMAX)
DIMENSION FT(0:NMAX), H(0:NMAX), HT(0:NMAX), B(0:NMAX)

10 WRITE(*,*)’ Introduce numero de nodos N’


READ(*,*) N
IF (N .GE. NMAX) GO TO 10

20 WRITE(*,*)’ Introducir puntos por (1) TECLADO, (2) FICHERO’


READ(*,*) M
IF ((M .NE. 1) .AND. (M .NE. 2)) GO TO 20
IF(M .EQ. 2) GO TO 40

C-----ENTRADA DE PUNTOS POR TECLADO


WRITE(*,*)’ Introduce los puntos:’
DO I=0,N
READ(*,*) X(I),F(I)
END DO
GO TO 50

C-----ENTRADA DE PUNTOS POR FICHERO


40 OPEN(UNIT=1,FILE=’INTERP.DAT’,STATUS=’UNKNOWN’)
DO I=0,N
READ(1,*,ERR=100) X(I), F(I)
END DO

C-----INICIALIZACION DE PARAMETROS
15.3 Solución en Fortran 259

50 DO I=0,N-1
H(I)=X(I+1)-X(I)
B(I)=6*(F(I+1)-F(I))/H(I)
END DO

DO I=1,N-1
HT(I)=2*(H(I)+H(I-1))
FT(I)=B(I)-B(I-1)
END DO

C-----INICIALIZACION DE PARAMETROS
DO I=2,N-1
HT(I)=HT(I)-H(I-1)**2/HT(I-1)
FT(I)=FT(I)-H(I-1)*FT(I-1)/HT(I-1)
END DO

C-----SPLINES NATURALES
Z(0)=0.
Z(N)=0.

C-----SUSTITUCION HACIA ATRAS


DO I=N-1,1,-1
Z(I)=(FT(I)-H(I)*Z(I+1))/HT(I)
END DO

C--INTRODUCIR EL VALOR X DONDE SE REALIZARA LA APROXIMACION


C--AVERIGUAR A QUE SUBINTERVALO DE LA FUNCION SPLINE PERTENECE X
WRITE(*,*)’ Introduce X (valor donde se realiza la aproximacion)’
READ(*,*) XX
DO I=N-1, 1,-1

IF(XX-X(I) .GT. 0.) THEN


GO TO 55
END IF
END DO

C-----CALCULO DE LA APROXIMACION
55 AA=(Z(I+1)-Z(I))/(6.*H(I))
BB=Z(I)/2.
CC=-H(I)*Z(I+1)/6.-H(I)*Z(I)/3.+(F(I+1)-F(I))/H(I)
S=F(I)+(XX-X(I))*(CC+(XX-X(I))*(BB+(XX-X(I))*AA))
WRITE(*,*)’ La aproximacion calculada vale’, S
STOP

C-----ADVERTENCIAS
260 Interpolación por Splines Cúbicos Naturales

100 WRITE(*,*)’Error de lectura en el fichero de datos’


STOP
END

15.4. Solución en Mathematica


Un programa Mathematica para el cálculo de la función Spline cúbica nat-
ural a partir de una tabulación dada en un fichero es el siguiente.

tabul = ReadList[‘‘c:/tabulacion.dat", Number, RecordLists ->True];

n = Dimensions[tabul][[1]];

x = Table[tabul[[i, 1]], i, 1, n];

y = Table[tabul[[i, 2]], i, 1, n];

For[i = 1, i <= n - 1, i++, (* Inicializo variables *)


h[i] = x[[i + 1]] - x[[i]];
b[i] = 6*(y[[i + 1]] - y[[i]])/h[i];
]

For[i = 2, i <= n - 1, i++,


ht[i] = 2 *(h[i] + h[i - 1]);
ft[i] = b[i] - b[i - 1];
]

A = IdentityMatrix[n - 2]; (* Matriz de coeficientes *)


For[i = 1, i <= n - 2, i++, A[[i, i]] = ht[i + 1] ];
For[i = 1, i <= n - 3, i++,
A[[i, i + 1]] = A[[i + 1, i]] = h[i + 1];
]

bb = Table[0, i, n - 2]; (* términos independientes *)


For[i = 1, i <= n - 2, i++, bb[[i]] = ft[i + 1]];

z = LinearSolve[A, bb];
(* resuelvo sistema lineal e impongo splines naturales *)
z = AppendTo[z, 0];
z = PrependTo[z, 0];

For[i = 1, i <= n - 1, i++,


AA[i] = (z[[i + 1]] - z[[i]])/(6*h[i]);
BB[i] = z[[i]]/2;
CC[i] = -h[i]*z[[i + 1]]/6 - h[i]*z[[i]]/3 +
15.4 Solución en Mathematica 261

(y[[i + 1]] - y[[i]])/h[i];


]

For[i = 1, i <= n - 1, i++,(*Defino el spline*)


s[i,t ]=y[[i]]+(t-x[[i]])*(CC[i]+(t-x[[i]])*(BB[i]+
(t-x[[i]])*AA[i]));
];

Print["La funcin spline S(t) vale:"] (*salida*)


For[i = 1, i <= n - 1, i++,
Print[‘‘Si ", x[[i]], ‘‘<= t <=", x[[i + 1]], ‘‘ S(t)=",
Expand[s[i, t]]]
]

For[i = 1, i <= n - 1, i++, (* gráficas *)


graf[i] = Plot[s[i, t], {t, x[[i]], x[[i + 1]] },
DisplayFunction ->Identity]
]

grafspline = { };
For[i = 1, i <= n - 1, i++, AppendTo[grafspline, graf[i]]];
grafspline = Show[grafspline,
DisplayFunction ->Identity];

graftabul = ListPlot[tabul, PlotStyle ->{PointSize[0.03]},


DisplayFunction ->Identity];

Show[graftabul, grafspline, AxesLabel ->{‘‘x", ‘‘S"},


DisplayFunction ->$DisplayFunction]

Este programa, además de dar la expresión explı́cita de la función spline


S(x) muestra una gráfica, ver Figura 15.4, donde se superponen los puntos de
la tabulación inicial y la gráfica de S(x).

0.5

x
4 6 8 10

-0.5
Capı́tulo 16

Derivación Numérica

16.1. Introducción
Para la aproximación de la derivada de una función f (x) en un punto x0 ; los
paquetes de cálculo simbólico, por ejemplo el comando D[f[x],x] de Mathemat-
ica, proporcionan la expresión de la derivada f  (x) y, por lo tanto, sólo queda
evaluar dicha función en el punto dado para obtener f  (x0 ). Sin embargo, en
el caso en que tan sólo se conocen los valores de la función en algunos puntos,
aquı́ las fórmulas de derivación aproximada si serán de gran utilidad.

En esta práctica se pretende programar un método numérico sencillo para


evaluar la derivada de una función tabulada en un cierto conjunto de abscisas
equiespaciadas.

Una forma de obtener expresiones en diferencias finitas para la derivada


consiste (suponiendo que la función es suficientemente derivable) en combinar
diferentes desarrollos de Taylor en un entorno de los puntos donde conocemos la
función. Supongamos que tenemos la función f (x) discretizada, es decir cono-
cemos los valores fi := f (xi ) para las abscisas equiespaciadas xi = x0 + ih
con i = 0, 1, . . . , n y siendo h > 0 la longitud de paso. Realizemos ahora los
siguientes desarrollos de Taylor
4h3  2h4 (iv)
f (x + 2h) = f (x) + 2hf  (x) + 2h2 f  (x) + f (x) + f (x) + O(h5 ) , (16.1)
3 3
h2  h3  h4 (iv)
f (x + h) = f (x) + hf  (x) + f (x) + f (x) + f (x) + O(h5 ) , (16.2)
2 6 24
h2  h3  h4 (iv)
f (x − h) = f (x) − hf  (x) + f (x) − f (x) + f (x) + O(h5 ) , (16.3)
2 6 24
4h3  2h4 (iv)
f (x − 2h) = f (x) − 2hf  (x) + 2h2 f  (x) − f (x) + f (x) + O(h5 ) . (16.4)
3 3
De la ecuación (16.2) se obtiene
f (x + h) − f (x)
f  (x) = + O(h) , (16.5)
h
263
264 Derivación Numérica

que se conoce con el nombre de fórmula de diferencias hacia adelante. De forma


totalmente análoga, de la ecuación (16.3) podemos obtener la llamada fórmula
de diferencias hacia atrás

f (x) − f (x − h)
f  (x) = + O(h) . (16.6)
h
Restando la ecuación (16.2) de la (16.3) se deduce la fórmula de diferencias
centradas
f (x + h) − f (x − h)
f  (x) = + O(h2 ) . (16.7)
2h
Combinando (16.1), (16.2), (16.3) y (16.4) podemos obtener

−f (x + 2h) + 8f (x + h) − 8f (x − h) + f (x − 2h)
f  (x) = + O(h4 ) . (16.8)
12h
Otra forma de obtener la fórmula (16.8) es mediante extrapolación de Richard-
son a partir de (16.7).

16.2. Realización de la Práctica


Hacer un pequen̄o programa Octave para discretizar, con abscisas equies-
paciados, la función f (x) = sinx x en el intervalo [−10, 10] tomando los pasos
h = 1, h = 0,5 y h = 0,01. Guardar las parejas (xi , fi ) en tres ficheros
diferentes según la longitud de paso h utilizada. Nota: cuidado con la
función en x = 0!!!.
Realizar un programa Octave que lea de un fichero los datos (xi , fi ) para
i = 0, 1, . . . , n y que aproxime la derivada de la función f (x) combinando
las fórmulas (16.5), (16.6), (16.7) y (16.8) de manera adecuada y con el ob-
jetivo de tener un error de truncamiento lo más pequen̄o posible. Mostrar
las gráficas superpuestas de la función f  (x) y los resultados numéricos
obtenidos.
Supongamos ahora que la función f (x) es desconocida y que el tercer
fichero de datos del primer apartado, es decir con h = 0,01, que contiene
los puntos (xi , fi ) proviene de un experimento. Para simular con la com-
putadora los errores inherentes a las medidas efectuadas en el supuesto
experimento an̄adiremos una incertidumbre a cada uno de los valores de
la función. Esto lo conseguiremos sumando una perturbación aleatoria1 de
manera que
f˜(xi ) = f (xi ) + 0,01 RAN D . (16.9)

(i) Guardar la nueva discretización (xi , f˜i ) en un archivo y mostrar, me-


diante una gráfica, que los nuevos puntos perturbados no se desvı́an
excesivamente de la función sin perturbar.
1 Ver el apéndice.
16.2 Realización de la Práctica 265

(ii) Calcular, a través del programa confeccionado en el segundo apartado,


la derivada de la función perturbada y comparar, mediante una gráfi-
ca, los resultados con los obtenidos para la función sin perturbar. En
este apartado se tiene que comprobar que unos pequen̄os errores en
los datos experimentales pueden llevar a obtener una derivada que
difiere significativamente de la que de forma teórica pretendı́amos
obtener. Explicar de forma teórica dicho comportamiento.

16.2.1. Apéndice: generación de números aleatorios


Octave: La función rand de Octave genera números aleatorios uniformemente
distribuidos en el intervalo [0, 1]. Ası́, siendo n, m ∈ N, rand(n) genera una
matriz cuadrada de orden n con elementos aleatorios en el intervalo [0, 1].
rand(n,m) genera una matriz de orden n × m con elementos aleatorios en
el intervalo [0, 1].
Mathematica: La instrucción Random[] de Mathematica genera un número
real pseudoaleatorio en el intervalo [0, 1].
Fortran: Una forma de generar números pseudoaleatorios en un programa
Fortran es siguiendo los pasos que mostramos a continuación.
Al principio del programa, hacer la declaración de variables

DOUBLE PRECISION RND, RAND, CRND


RND=1.0D0
Tomar un valor cualquiera al azar para la variable CRND

READ(*,*) CRND
Para modificar los valores de la función, utilizar el siguiente bucle

DO I=0,N
RND=RND*CRND
RND=DMOD(1.6807D4*RND, 2.147483647D9)
RAND=RND*4.65661287524579692D-10
F(I)=F(I)+0.01*RAND
END DO
De esta forma, la variable RAND toma valores aleatorios entre 0 y 1.
Capı́tulo 17

Integración Romberg

17.1. Introducción
Uno de los problemas matemáticos más antiguos es el del cálculo del área
que encierra una curva. Este problema desembocó en lo que hoy se conoce como
cálculo integral.
Las fórmulas de integración numéricas, también conocidas como fórmulas de
cuadratura, tienen como objetivo aproximar el valor de la integral de una fun-
b
ción en un intervalo a f (x) dx. El cálculo simbólico mediante un manipulador
algebraico es de gran ayuda, ver por ejemplo el comando Integrate[f[x], {x,a,b}]
del programa Mathematica. Sin embargo esta ayuda sólo es posible cuando
se conoce la expresión explı́cita de f (x) y además cuando dicha función admite
una primitiva. En el resto de los casos, por ejemplo cuando sólo se conoce los
valores de la función en algunos puntos o cuando la primitiva de la función no
es posible expresarla mediante funciones elementales, habrá que acudir a las
fórmulas de integración numérica.

En la integración Romberg se usa la regla de los Trapecios compuesta para


obtener aproximaciones preliminares de la integral, y luego el proceso de extrap-
olación de Richardson para mejorar las sucesivas aproximaciones.

Sabemos que la regla de los Trapecios compuesta viene dada por


! b
2 f0 fn
f (x) dx = Th (f ) + O(h ) = h + f1 + f2 + · · · + fn−1 + + O(h2 ) .
a 2 2

Por otra parte, consideremos dos aproximaciones numéricas R(2h, k − 1)


y R(h, k − 1) con longitud de paso 2h y h respectivamente para la integral
b
a
f (x) dx. Si se verifican los siguientes desarrollos en potencias de h
! b
f (x) dx = R(h, k − 1) + a1 h2k + a2 h2k+2 + · · · ,
a

267
268 Integración Romberg

! b
f (x) dx = R(2h, k − 1) + a1 (2h)2k + a2 (2h)2k+2 + · · · ,
a

es fácil comprobar que, utilizando la extrapolación de Richardson, una mejor


aproximación de la integral viene dada por
! b
4k R(h, k − 1) − R(2h, k − 1)
f (x) dx = R(2h, k) + O(h2k+2 ) = + O(h2k+2 ) .
a 4k − 1
Si ahora definimos la regla trapezoidal compuesta
b−a
T (j, 1) := Th (f ) , siendo el paso h= , j = 1, 2, . . . (17.1)
2j−1
podemos obtener mejores aproximaciones para la integral a partir de la llamada
integración Romberg
4k−1 T (j, k − 1) − T (j − 1, k − 1)
T (j, k) = para j ≥ k . (17.2)
4k−1 − 1
Se obtiene de esta forma la siguiente tabla (sólo se representan los primeros
elementos T (j, k)).

T (1, 1)
T (2, 2)
T (2, 1) T (3, 3)
T (3, 2) T (4, 4)
T (3, 1) T (4, 3)
T (4, 2)
T (4, 1)

17.2. Realización de la Práctica


Realizar un programa que implemente el algoritmo de integración Romberg
descrito en la sección anterior, de manera que obtengamos la aproximación
! b
f (x) dx ≈ T (j, j) .
a

(i) Si se programa en Fortran, dimensionar una matriz 100 × 100 para alma-
cenar los valores de T (j, k). En Octave no es necesario.
(ii) Las entradas del programa tienen que ser
El intervalo de integración [a, b].
Dos criterios para finalizar las iteraciones: (1) El número máximo
permitido para j (por ejemplo 20). (2) La toleracia (por ejemplo
10−5 ). Pararemos las iteraciones cuando se verifique la condición
|T (j, j) − T (j − 1, j − 1)| < tolerancia .
17.2 Realización de la Práctica 269

(iii) La salida del programa debe ser la escritura en un fichero de las parejas
j, T (j, j) para j = 0, 1, 2, . . .

(iv) Escrbier la función integrando f (x) en un fichero:

Octave: Si se programa en Octave, y por ejemplo la función f (x) que


se desea integrar es f (x) = ex − x, escribiremos1
function y=f(x)
y=exp(x)-x;
endfunction
Cuando en el programa principal llama a la función para evaluarla
en un argumento, se escribe (suponiendo que el argumento es 3) de
la forma f(3).
Fortran: Si se programa en Fortran, utilizar el procedimiento FUNC-
TION (después del END del programa principal) para definir la fun-
ción f (x) que se desea integrar. Por ejemplo, si f (x) = ex − x, es-
cribiremos
FUNCTION F(X)
F=EXP(X)-X
RETURN
END
El programa principal llama a la función F para evaluarla en un
argumento (5 por ejemplo), de la forma F(5).

(v) Notemos que el numerador de la fórmula (17.2) es la resta de dos canti-


dades que pueden llegar a ser muy cercanas, de manera que es posible
el fenómeno de cancelación sustractiva2 con la consiguiente pérdida de
cifras significativas en el cálculo. Para evitar dichos errores de redondeo,
es recomendable utilizar en el programa la expresión

T (j, k) = T (j, k − 1) + CORRECT OR ,

en lugar de la fórmula (17.2). Averiguar la expresión que tiene el término


CORRECTOR.

(vi) Con el objetivo de disminuir al máximo el tiempo de cómputo, es re-


comendable obtener una relación entre T (j, 1) y T (j − 1, 1) que nos per-
mita evitar la evaluación de la función f (x) en las abscisas donde ya ha
sido evaluada.
1 Verel último Capı́tulo dedicado a Octave.
2 Larepresentación en los ordenadores de números de punto flotante puede contener errores
capaces de propagarse en todo un proceso y siendo capaces de inutilizar una solución. Cuando
en una resta el sustraendo es casi igual al minuendo, se puede producir en dicha operación un
gran error relativo. Este fenómeno se llama cancelación sustractiva.
270 Integración Romberg

17.3. La Capacidad Calorı́fica de los Sólidos


El paso fundamental para resolver la discrepancia entre la teorı́a clásica y
los resultados experimentales concernientes a la capacidad calorı́fica asociada
con las vibraciones de la estructura de los sólidos cristalinos, fue dado por el
famoso fı́sico A. Einstein (1907) utilizando la teorı́a cuántica. En 1912 Debye
mejoró dicha teorı́a introduciendo los modos normales de vibración del cristal
completo. En esta teorı́a, la capacidad calorı́fica a volumen constante Cv =
(∂E/∂T )v (es decir la variación de la energı́a de vibración E de los átomos
respecto de la temperatura T a volumen constante) se calcula de la forma
!
9N k xD x4 ex
Cv = 3 dx , (17.3)
xD 0 (ex − 1)2

siendo N el número de átomos del cristal y k = 1,381 × 10−23 J/◦ K la constante


de Boltzmann. La variable auxiliar xD está definida como xD = ΘD /T , siendo
ΘD la temperatura de Debye caracterı́stica del material, ver por ejemplo la tabla
adjunta en la Figura 17.1 donde se muestran las temperatura de Debye para
diferentes elementos quı́micos.

Pb Na Ag Cu Al Be
ΘD 86◦ K 160◦ K 220◦ K 310◦ K 380◦ K 980◦ K

Figura 17.1: Temperaturas de Debye ΘD para algunos elementos quı́micos.

Observar que, el integrando en la expresión de Cv no está definido para


x = 0. Se tiene una indeterminación 0/0 que hay que resolver.

Problema 17.1 Suponiendo que la muestra de material es de un mol (con lo


que N vale el número de Avogadro N = 6,023 × 1023 átomos) y que está a
temperatura ambiente (tomar por ejemplo T = 293◦ K), utlilizar el algoritmo
de Romberg para obtener una aproximación de la capacidad calorı́fica Cv en los
materiales de la tabla de la Figura 17.1.
Capı́tulo 18

Ecuaciones Integrales:
Transmisión de Calor

18.1. Introducción
Consideremos dos placas de longitud infinita, anchura  y separadas una
distancia d. Supongamos que las placas están a temperaturas constantes T1 y
T2 , siendo sus emisividades 1 y 2 respectivamente. Tomemos dos sistemas de
referencia unidimensionales x1 y x2 con el origen en un punto cualquiera del
centro de las placas y dirigidos hacia sus extremos finitos respectivamente. Se
puede demostrar que las radiosidades locales B1 y B2 , es decir, la suma de las
cantidades de calor (radiación) emitida y reflejada que abandonan una unidad de
área por unidad de tiempo, verifican el siguiente sistema de ecuaciones integrales
! /2
4
B1 (x1 ) = 1 σT1 + (1 − 1 ) B2 (x2 )K(x1 , x2 , d) dx2 , (18.1)
−/2
! /2
B2 (x2 ) = 2 σT24 + (1 − 2 ) B1 (x1 )K(x1 , x2 , d) dx1 , (18.2)
−/2

donde σ = 5,67 × 10−8 w.m2 .K −4 es la constante de Stefan-Boltzmann y el


núcleo K de las ecuaciones integrales es
d2
K(x1 , x2 , d) = . (18.3)
2[d2 + (x1 − x2 )2 ]3/2
La integral que aparece en la ecuación (18.1) se denota por
! /2
I1 (x1 ) = (1 − 1 ) B2 (x2 )K(x1 , x2 , d) dx2 , (18.4)
−/2

y es llamada irradiosidad. Representa a la cantidad de calor incidente por unidad


de área en un punto x1 por unidad de tiempo. Obviamente, esta integral aparece

271
272 Ecuaciones Integrales: Transmisión de Calor

debido a la radiación emitida por todos los puntos de la otra placa. De forma
totalmente análoga se tiene la irradiosidad en la otra placa
! /2
I2 (x2 ) = (1 − 2 ) B1 (x1 )K(x1 , x2 , d) dx1 . (18.5)
−/2

Los caudales netos de calor por unidad de longitud Q1 y Q2 que se deben propor-
cionar a dichas placas con el objetivo de mantenerlas a temperatura constante
son
! /2
Q1 = (B1 (x1 ) − I1 (x1 )) dx1 , (18.6)
−/2
! /2
Q2 = (B2 (x2 ) − I2 (x2 )) dx2 . (18.7)
−/2

18.2. Realización de la Práctica


Realizar un programa Fortran que calcule las radiosidades e irradiosidades
locales B1 , B2 , I1 e I2 en las abscisas de las placas equiespaciadas con longitud1
de paso h = /(2n), ası́ como la calor recibida Q1 y Q2 en cada placa. La forma
de proceder es la siguiente:

(i) Implementar la regla de Simpson compuesta en una subroutina o en una


función. Dicha regla es
⎡ ⎤
! b 2n−1
 2n−2

h⎢ ⎥
f (x) dx ≈ ⎣f (a) + 4 f (zi ) + 2 f (zi ) + f (b)⎦ ,
a 3 i=1 i=2
Δi=2 Δi=2

donde h = (b − a)/(2n) y zi = a + ih y Δi indica el salto de la varia-


ble i de los sumatorios. Una llamada a dicha función podrı́a ser SIMP-
SON(A,B,N,F) donde, según la fórmula anterior, A = a, B = b, N = n y
F es la función a integrar f (x).

(ii) Las entradas del programa tienen que ser T1 , T2 , 2 , 2 , d,  y n, además de


dos constantes de control ITMAX y TOL (ver su definición en el apartado
siguiente).

(iii) Algoritmo de Sustituciones Sucesivas: El algoritmo iterativo que se


utilizará para aproximar las funciones B1 (x1 ) y B2 (x2 ) solución del sistema
de ecuaciones integrales (18.1) y (18.2) es el siguiente. En el primer paso se
supone la aproximación de orden cero B1 (x1 ) ≈ 1 σT14 y B2 (x2 ) ≈ 2 σT24 .
Con estos valores, se calculan I1 (x1 ) e I2 (x2 ) dados por (18.4) y (18.5), lo
1 Nota: La simetrı́a de la geometrı́a de las placas asociada a este problema nos permi-

tirá suponer que B1 (x1 ) e I1 (x1 ) son funciones simétricas respecto del centro de la placa
x1 = 0 y, de forma análoga, B2 (x2 ) e I2 (x2 ) son simétricas respecto de x2 = 0.
18.3 Existencia de Solución para Ecuaciones de Fredholm 273

que nos permite estimar según (18.1) y (18.2) las aproximaciones de orden
uno para B1 (x1 ) y B2 (x2 ). Estos valores son introducidos nuevamente
en las integrales (18.4) y (18.5) para posteriormente obtener mediante
(18.1) y (18.2) las aproximaciones de orden dos para B1 (x1 ) y B2 (x2 ) y
ası́ sucesivamente. El proceso iterativo terminará o bien cuando se llegue
a un número máximo ITMAX de iteraciones permitido por el usuario, o
bien cuando los valores de B1 y B2 no cambien más que un cierto valor
de toleracia TOL en dos iteraciones consecutivas.
(iv) Cada vez que se aproximen, según el algoritmo descrito anteriormente, los
valores de las integrales I1 (x1 ) e I2 (x2 ) dadas por (18.4) y (18.5) se re-
alizará una llamada a la subroutina o función SIMPSON(A,B,N,F). Nótese
que el número de aplicaciones de la regla de Simpson compuesta es n y
que a su vez es también el número de abscisas en cada semiancho de las
placas.

18.3. Existencia de Solución para Ecuaciones de


Fredholm
En este apéndice se considerarán condiciones bajo las cuales existen solu-
ciones y(x) para la ecuación integral de tipo Fredholm
! b
y(x) = f (x) + α K(x, t, y(t)) dt , (18.8)
a

siendo α ∈ R un parámetro y K el núcleo. Para poder establecer un criterio de


existencia de solución para la ecuación integral (18.8) supondremos lo siguiente:
1. La función f (x) está acotada en el intervalo [a, b], es decir, |f (x)| < f¯ para
todo x ∈ [a, b].
2. El núcleo K(x, y, z) es integrable y acotado de la forma |K(x, y, z)| < K̄
en el dominio D := {(x, y, z) ∈ R3 : a ≤ x, y ≤ b, |z| < c}.
3. K(x, y, z) satisface la condición de Lipschitz en D, es decir, |K(x, y, z) −
K(x, y, z  )| < L|z − z  | con L constante.
Bajo las anteriores condiciones se asegura2 que el método de aproximaciones
sucesivas definido por

y0 (x) = f (x) − f (a) ,


! b
y1 (x) = f (x) + α K(x, t, y0 (t)) dt ,
a
..
.
2 Ver por ejemplo el libro “Introduction to nonlinear differential and integral equations”de

H.T. Davis, Dover Publications.


274 Ecuaciones Integrales: Transmisión de Calor

! b
yn (x) = f (x) + α K(x, t, yn−1 (t)) dt ,
a

genera una sucesión de funciones {yn (x)} que converge uniformemente hacia una
solución y(x) de (18.8) cuando n → ∞ para cualquier valor de α que verifique
 
1 f¯
|α| < , M := máx L, K̄ 1 + .
M (b − a) |α|K̄(b − a)

Algunos ejemplos de ecuaciones integrales y sus soluciones son:


1
1. La ecuación integral y(x) = 0 (x−t)y 2 (t) dt admite, además de la solución
trivial y(x) ≡ 0, la solución y(x) = 12x − 6.
1
2. La ecuación integral y(x) = − 73 x − 32 + 0
(x − t)y 2 (t) dt admite la solución
y(x) = 2x − 3.
Capı́tulo 19

Aproximación
Trigonométrica y
Coeficientes de Fourier

19.1. Introducción
Se define el espacio vectorial real Tn como el generado por el conjunto de
funciones
 
1
, cos x, sin x, cos 2x, sin 2x, cos 3x, sin 3x, . . . , cos nx, sin nx , (19.1)
2

siendo n ∈ N. Tn es llamado el espacio de los polinomios trigonométricas de


grado menor o igual que n. De esta forma, gn ∈ Tn si existen ai , bi ∈ R llamados
coeficientes de Fourier, tal que

a0 n n
gn (x) = + am cos mx + bm sin mx , (19.2)
2 m=1 m=1

Notemos que, para cualquier n ∈ N, se verifica gn (x + 2π) = gn (x) para todo x,


es decir, gn es una función periódica de periodo 2π.

El problema de la aproximación trigonométrica en el caso continuo se define


de la forma siguiente: Dada una función f : [0, 2π] → R continua y 2π-periódica,
es decir f (2π) = f (0), encontrar f ∗ ∈ Tn tal que

f − f ∗ = mı́n f − gn 2 ,
gn ∈Tn

siendo 2 la norma euclideana continua en el intervalo [0, 2π]. El problema de


la aproximación trigonométrica es un problema de aproximación continua por

275
276 Aproximación Trigonométrica y Coeficientes de Fourier

mı́nimos cuadrados.

Obsérvese que el conjunto de funciones (19.1) es ortogonal respecto del pro-


ducto escalar euclideano continuo en el intervalo [0, 2π]. Ello es debido a que

! 2π
< sin x, sin mx > = sin x sin mx dx
0
! 2π
1
= [cos( − m)x − cos( + m)x] dx ,
2 0
! 2π
< cos x, cos mx > = cos x cos mx dx
0
! 2π
1
= [cos( − m)x + cos( + m)x] dx ,
2 0
! 2π
< sin x, cos mx > = sin x cos mx dx
0
! 2π
1
= [sin( − m)x + sin( + m)x] dx .
2 0

Por lo tanto

0 si  = m ,
< sin x, sin mx >=< cos x, cos mx >=< sin x, cos mx >=
π si =m.

para todo , m ∈ N.

Sea
a∗0 n n
f ∗ (x) = + a∗m cos mx + b∗m sin mx , (19.3)
2 m=1 m=1

la aproximación trigonométrica de orden n de la función f (x), también conocida


como desarrollo de Fourier de orden n de f . Puesto que el conjunto de funciones
(19.1) es ortogonal, las ecuaciones normales para los coeficientes de Fourier que
resuelven el problema de la aproximación trigonométrica son diagonales, siendo
su solución
! 2π
< 1/2, f > 1
a∗0 = = f (x) dx ,
< 1/2, 1/2 > π 0
! 2π
< cos mx, f > 1
a∗m = = f (x) cos mx dx ,
< cos mx, cos mx > π 0
! 2π
< sin mx, f > 1
b∗m = = f (x) sin mx dx .
< sin mx, sin mx > π 0
19.2 Realización de la Práctica 277

19.2. Realización de la Práctica


Utilizar la regla de Simpson
! b
h
g(x) dx ≈ Sh (g) = (g0 + 4g1 + 2g2 + 4g3 + · · · + 4gn−1 + gn )
a 3

con h = (b − a)/n y n = 20 para hallar el desarrollo de Fourier f ∗ (x) de orden


5 de la función f (x) = x exp(x) extendida a R de forma 2π-periódica. Dar
6 gráficas donde se superpongan la función f y sus desarrollos de Fourier de
orden 0, 1, . . . , 5.
Capı́tulo 20

Distribución de Velocidades
en un Fluido

20.1. Introducción
Se ha deducido1 una expresión para la distribución de velocidades en un
fluido en movimiento por una tuberı́a circular lisa mediante una modificación de
la llamada longitud de mezcla de Prandtl. En concreto, la velocidad adimensional
axial u es una función de la distancia adimensional y desde la pared interior de
la tuberı́a dada por la expresión integral siguiente
! y 
−1 + 1 + 4c(y)d(y)
u(y) = dy , (20.1)
0 2c(y)
siendo
"  y
#2
c(y) = 0,36y 1 − e−φ ȳ , (20.2)
y
d(y) = 1− , (20.3)

donde ȳ es la distancia adimensional del interior de la tuberı́a a su eje, cuya
expresión viene dada por 
NRe f¯
ȳ = , (20.4)
2 2
y φ es una función de ȳ y de constantes empı́ricas dada por
ȳ − 60
φ= . (20.5)
22
En la expresión (20.4), NRe y f¯ representan el número de Reynolds y el factor
de fricción de Fanning respectivamente, siendo estos parámetros adimensionales
1 W.N. Gill y M. Schear, A modification of the momentum transport hypothesis,

A.I.Ch.E. Journal 7, 61–65, (1961).

279
280 Distribución de Velocidades en un Fluido

que dependen de las propiedades fı́sicas y de la velocidad media del fluido,


ası́ como de la rugosidad superficial de las paredes de la tuberı́a. La expresión
del número de Reynolds es
vDρ
NRe = , (20.6)
μ
siendo v, ρ y μ la velocidad media, densidad y viscosidad del fluido respecti-
vamente y D el diámetro interior de la tuberı́a. Para 2000 ≤ NRe ≤ 50000, f¯
satisface la ecuación de Blasius
−0,25
f¯ = 0,079NRe . (20.7)

Se observa que el integrando de (20.1) es indeterminado en el lı́mite inferior


de integración y = 0. Una forma de evitar este problema consiste en multi-
plicar el numerador y el denominador
√ de la función integrando en (20.1) por el
conjugado del numerador 1 + 1 + 4cd. De esta forma se obtiene la expresión
equivalente
! y
2d(y)
u(y) =  dy . (20.8)
0 1 + 1 + 4c(y)d(y)

20.2. Integración Gauss-Chebychev


La fórmula de integración Gauss-Chebychev con n+1 puntos viene dada por
!
1
π 
n
f (z) 2k + 1
√ dz ≈ f (zk ) , zk = cos π . (20.9)
−1 1 − z2 n+1
k=0
2n + 2

Para poder utilizar la fórmula de integración Gauss-Chebychev (20.9) en la


aproximación de la integral
! b
g(x) dx , (20.10)
a

la forma de proceder es la siguiente. Se transforma el intervalo de integración


a ≤ x ≤ b en el intrevalo normalizado −1 ≤ z ≤ 1 mediante el cambio lineal de
variable
b−a b+a
x= z+ .
2 2
De esta forma se tiene que
! ! 1 ! 1
b
b−a b−a b+a b−a f (z)
g(x) dx = g z+ dz = √ dz ,
a 2 −1 2 2 2 −1 1 − z2

siendo
 b−a b+a
f (z) = 1 − z2 g z+ .
2 2
20.3 Realización de la Práctica 281

20.3. Realización de la Práctica


Supongamos que el fluido tiene un número de Reynolds NRe = 10000. Re-
alizar un programa con el objetivo de aproximar u(yi ) dada por (20.8) mediante
integración de Gauss-Chebychev (20.9) con n = 15 para los valores yi = 1 + ih
con i = 0, 1, . . . , 100 y una longitud de paso h = 10.

Una forma de mejorar la exactitud numérica en las integraciones efectuadas


es la siguiente. Denotando por ui la aproximación obtenida para el valor de
u(yi ), se tiene que
! yi
2d(y)
ui = ui−1 + Δui , Δui =  dy .
yi−1 1 + 1 + 4c(y)d(y)
Capı́tulo 21

La Condensación de
Bose-Einstein

21.1. Introducción

El premio Nobel de Fı́sica del an̄o 2001 fué otorgado a los cientı́ficos Carl
E. Wieman (Universidad de Colorado, EEUU), Eric A. Cornell (National Insti-
tute of Standards & Technology, Colorado, EEUU) y Wolfgang Ketterle (Mas-
sachusetts Institute of Technology, Cambridge, Massachusetts, EEUU). Los galar-
donados crearon, de forma independiente, en el an̄o 1995, por primera vez en el
laboratorio un condensado de Bose-Einstein. De hecho, las relaciones existentes
entre la condensación de Bose-Einstein y otros fenómenos de la fı́sica de bajas
temperaturas como es la superfluidez (descubierta en el 4 He lı́quido por Kapitza
en 1937) ha sido un tópico continuo en las investigaciones realizadas en los últi-
mos 60 an̄os.

En realidad, la descripción teórica del fenómeno fı́sico de la condensación de


Bose-Einstein se remonta al an̄o 1924 cuando el fı́sico Bose trató de deducir la
fórmula de la radiación del cuerpo negro que Planck habı́a obtenido en 1900,
considerando la radiación como un gas de fotones. En el esquema utilizado por
Bose está implı́cito el significante hecho de que los fotones son partı́culas in-
distinguibles. Einstein, conocedor del trabajo de Bose, intuyó cómo extrapolar
los resultados para fotones a otras partı́culas materiales de naturaleza indistin-
guible. De esta forma, en dos artı́culos publicados por Einstein en los an̄os 1924
y 1925, utilizó lo que hoy en dı́a se conoce como estadı́stica de Bose-Einstein y
predijo que, si un gas de este tipo de átomos se enfrı́a hasta temperaturas su-
ficientemente bajas, entonces todos sus átomos estarı́an en el estado de energı́a
más baja (estado fundamental).

283
284 La Condensación de Bose-Einstein

21.1.1. La fı́sica estadı́stica cuántica


La formulación cuántica de la mecánica estadı́stica1 , es decir, la visión mi-
croscópica de la termodinámica, proporciona la distribución de equilibrio en un
sistema ideal de N bosones (partı́culas de spin entero). En concreto, el número
medio de partı́culas n en el estado de energı́a  cuando el gas está sometido a
una temperatura T viene dado por

1
n = " # , (21.1)
−μ
exp KB T −1

donde KB = 1,381 × 10−23 J/◦ K es la constante de Boltzmann y μ el potencial


quı́mico, es decir, la energı́a que se le ha de dar al sistema para an̄adirle una
partı́cula manteniendo su entropı́a y su volumen constantes.
Notemos que siempre es posible redefinir el potencial quı́mico de forma que
la energı́a del estado fundamental sea cero, de manera que, a partir de ahora
supondremos esto. Observar que, puesto que n es positivo y finito por definición,
se tiene μ < 0. Además, es habitual introducir z, la llamada fugacidad definida
de la forma z = exp[μ/(KB T )], de manera que 0 ≤ z < 1. Ası́, en términos de
la fugacidad, se puede escribir (21.1) como

1
n = " # . (21.2)
z −1 exp 
KB T −1

Obsérvese que el estado fundamental corresponde al lı́mite z → 1 y aquı́ el


miembro derecho de la ecuación (21.2) diverge, lo que indica que el número de
partı́culas en ese estado es muy grande.
El número total N de partı́culas (bosones) de gas se escribe pues de la forma

 1
N = N0 + " # , (21.3)
>0 z −1 exp 
KB T −1

siendo N0 = z/(1 − z) en número de partı́culas en el estado fundamental y


por lo tanto con energı́a  = 0. Existe una forma aproximada de calcular la
suma (21.3) que se puede aplicar cuando el volumen V que ocupa el gas es
macroscópico. El método consiste en pasar del discreto al continuo, es decir
aproximar el sumatorio por una integral, introduciendo lo que se conoce como
densidad de estados ρ(). De esta forma se tiene que
! ∞
ρ()
N = N0 + " # d . (21.4)
0 z −1 exp KB T − 1

1 Ver por ejemplo K. Huang, Statistical Mechanics, 2a ed. Wiley, New-York, 1987.
21.2 Un Gas de Bosones Ideal 285

21.2. Un Gas de Bosones Ideal


Veamos cómo se aplica la teorı́a anterior en un caso particularmente sencillo.
Supongamos que el gas de bosones es ideal y permanece en ausencia de fuerzas
externas, de manera que su energı́a es puramente cinética. Se puede demostrar
que, en este caso, la densidad de estados viene dada por
3/2
V 2m
ρ() = , (21.5)
4π 2 2

siendo m la masa de cada partı́cula y  = h/(2π) con h = 6,626 × 10−34 J.s. la


constante de Planck. Introduciendo (21.5) en (21.4) se obtiene
V
N = N0 +  3/2 B3/2 (z) , (21.6)
2π2
mKB T

siendo B3/2 (z) la integral de Bose2 de ı́ndice 3/2.

Puede ocurrir que la temperatura T sea tan grande que N0 = 0. Pero, por
el contrario, si la temperatura es suficientemente baja entonces N0 puede ser
muy grande. En el caso extremo en que z → 1 se puede definir una temperatura
crı́tica Tc definida por
2/3
2π2 N
Tc = (21.7)
m B3/2 (1)V
de manera que, si T > Tc entonces no hay una ocupación del estado fundamental
que sea macroscópicamente apreciable. Por el contrario, si T < Tc , un número
macroscópico de partı́culas pueden ocupar el estado fundamental. Obsérverse
que el fenómeno que se acaba de describir implica que el gas puede ser conside-
rado como una mezcla de dos fases; una fase constituida por aquellas partı́culas
que se encuentran en el estado fundamental y la otra fase por el resto de las
partı́culas. Una forma interesante de ver el fenómeno consiste en reescribir la
ecuación (21.6) de la forma
3/2
N0 T
=1− , (21.8)
N Tc
con lo que la Tc puede interpretarse como la temperatura de transición entre
las dos fases del gas: para T << Tc prácticamente todas las partı́culas del gas
están en el estado fundamental y se ha formado la llamada condensación de
Bose-Einstein3 .
2 Ver el apéndice.
3 Nótese las semejanzas con la clásica condensación gas-lı́quido. En realidad, la diferencia
básica entre el cambio de fase de la clásica condensación gas-lı́quido y la condensación de
Bose-Einstein reside en que la primera es debida a la interacción entre las partı́culas mientras
que la segunda es un fenómeno puramente cuántico y se puede dar en un gas ideal sin ningún
tipo de interacción entre partı́culas.
286 La Condensación de Bose-Einstein

21.3. Realización de la Práctica


Calcular la temperatura crı́tica Tc a la cual se produce la transición Bose-
Einstein para un gas ideal de N = 1023 bosones cuyas moléculas tienen una
masa m = 10−19 Kg y ocupan un volumen V = 0,01 m3 . Aproximar en dicho
cálculo B3/2 (1) mediante integración de Gauss-Hermite aumentando el número
de puntos.

21.3.1. Apéndice: Integrales de Bose


Se define la integral de Bose de ı́ndice n como
! ∞
1 xn−1
Bn (z) = −1
dx , (21.9)
Γ(n) 0 z ex − 1

donde Γ(n) es la función Gamma de Euler que está definida por


! ∞
Γ(n) = tn−1 e−t dt , con n > 0 .
0

Por ejemplo Γ(1/2) = π. Se puede demostrar la siguiente fórmula de recur-
rencia
Γ(n + 1) = nΓ(n) .
Además, la función Gamma generaliza a la función factorial en el sentido de que

Γ(n + 1) = n! , para todo n ∈ N .

Las integrales de Bose (21.9) han sido estudiadas por J.E. Robinson, Phys.
Rev. 83, pag. 678 (1951).
Capı́tulo 22

Ecuaciones Diferenciales
Ordinarias: Método RK4

22.1. Introducción
Una de las herramientas matemáticas más efectivas de que disponemos ac-
tualmente para modelizar y explicar la naturaleza son, sin lugar a dudas, las
ecuaciones diferenciales (o más generalmente los sistemas dinámicos). Una re-
solución exacta de las ecuaciones diferenciales no es posible en general. De esta
forma, son necesarias vias alternativas tales como los métodos numéricos o la
teorı́a cualitativa para poder estudiar las ecuaciones diferenciales. Por lo que
respecta a los métodos numéricos, el algoritmo que presentamos es uno de los
más populares para aproximar la solución del problema de valor inicial

ẋ = f (t, x, y) , x(t0 ) = x0 ,
(22.1)
ẏ = g(t, x, y) , y(t0 ) = y0 ,

donde el punto denota, como es usual, derivación respecto a la variable inde-


pendiente t, es decir, ẋ = dx/dt, ẏ = dy/dt. Supondremos que las funciones f y
g satisfacen las condiciones del Teorema de existencia y unicidad de la solución
del problema de valor inicial (22.1).

Entenderemos por resolver de forma numérica el problema de Cauchy (22.1)


en el intervalo [t0 , tn ] la obtención de una tabla del tipo

t0 t1 t2 ··· tn
x0 x1 x2 ··· xn
y0 y1 y2 ··· yn

donde xi e yi sean una aproximación numérica de los valores exactos x(ti ) e y(ti )
respectivamente. Además, siempre consideraremos una discretización equiespa-
ciada de la variable independiente ti = t0 + ih para i = 0, 1, . . . , n, siendo h > 0

287
288 Ecuaciones Diferenciales Ordinarias: Método RK4

la longitud de paso.

El método de Runge-Kutta RK4 que utilizaremos para aproximar las solu-


ciones de (22.1) viene dado por las siguientes iteraciones

xi+1 = xi + h6 (r1 + 2r2 + 2r3 + r4 ) ,
(22.2)
yi+1 = yi + h6 (k1 + 2k2 + 2k3 + k4 ) ,

siendo

r1 = f (ti , xi , yi ) ,

h h h
r2 = f ti + , xi + r1 , yi + k1 ,
2 2 2

h h h
r3 = f ti + , xi + r2 , yi + k2 ,
2 2 2
r4 = f (ti + h, xi + hr3 , yi + hk3 ) ,
k1 = g(ti , xi , yi ) ,

h h h
k2 = g ti + , xi + r1 , yi + k1 ,
2 2 2

h h h
k3 = g ti + , xi + r2 , yi + k2 ,
2 2 2
k4 = g (ti + h, xi + hr3 , yi + hk3 ) .

22.2. El Método RK4 en Rn


Por supuesto, el método RK4 puede ser generalizado utilizando notación
vectorial a ecuaciones diferenciales ordinarias definidas en Rn . La exposición de
la sección anterior se ha restringido únicamente al caso n = 2.
De esta forma, consideremos el problema de Cauchy

ẋ = f (t, x) , x(t0 ) = x0 . (22.3)

Aquı́, t ∈ R es la variable independiente y x = (x1 , . . . , xn )t ∈ Rn es la variable


vectorial dependiente y f (t, x) = (f1 (t, x), . . . , fn (t, x))t ∈ Rn . Se tienen en
definitiva las funciones incógnita xi (t), con i = 1, . . . , n. La condición inicial es
el valor vectorial x0 = (x01 , . . . , x0n )t ∈ Rn . La iteración RK4 con longitud de
paso h consiste en
h
xi+1 = xi + (k1 + 2k2 + 2k3 + k4 ) , (22.4)
6
siendo

k1 = f (ti , xi ) ,

h h
k2 = f ti + , xi + k1 ,
2 2
22.3 Ciclos Lı́mite 289


h h
k3 = f ti + , xi + k2 ,
2 2
k4 = f (ti + h, xi + hk3 ) .

Problema 22.1 Programar el método RK4 en Rd dado en (22.4) mediante una


función en Octave cuya entrada sea:
Los tiempos inicial t0 y final tn .

El número de puntos n.
El vector de condiciones iniciales x0 ∈ Rd .
La salida de la función debe ser:

El vector fila de tiempos equiespaciados.


La matriz (n + 1) × d que contiene en cada fila las aproximaciones del
vector de estado del sistema.
La función f (t, x) ∈ Rd que define el sistema de ecuaciones diferenciales se debe
programar a parte en un fichero f.m que será utilizado por la anterior función
RK4.

22.3. Ciclos Lı́mite


Sea x una magnitud fı́sica que evoluciona con el tiempo t. Para fijar ideas
podemos pensar en que x(t) es la posición en función del tiempo para una
partı́cula. Supongamos que la partı́cula realiza oscilaciones no lineales regidas
por la siguiente ecuación diferencial de segundo orden

d2 x dx
2
+ f (x) + g(x) = 0 . (22.5)
dt dt

Nótese que una partı́cula cuya ecuación del movimiento esté regida por la
ecuación (22.5) no puede tener soluciones periódicas cuyas órbitas estén en
la región en la que f (x) sea de signo constante puesto que fı́sicamente estas
zonas corresponden a regiones de amortiguamiento positivo o negativo. Solu-
ciones periódicas, es decir cuyas trayectorias formen curvas cerradas en el plano
de las fases, desempen̄an un papel importante en muchos fenómenos fı́sicos. Una
solución periódica a menudo representa una clase de “estado final”, hacia el cual
todas las soluciones vecinas tienden. La existencia de estas soluciones periódi-
cas (ciclos lı́mite) sólo pueden explicarse por la consideración de términos no
lineales en las ecuaciones que gobiernan el movimiento.

La ecuación diferencial de segundo orden (22.5) puede transformarse (me-


diante el cambio habitual y = dx/dt) en el siguiente sistema de ecuaciones
290 Ecuaciones Diferenciales Ordinarias: Método RK4

diferenciales de primer orden


 dx
dt = y,
dy (22.6)
dt = −yf (x) − g(x) .

El anterior sistema está definido en el plano de posiciones x y velocidades


y que habitualmente se conoce tanto en matemáticas como en mecánica con el
nombre de plano de las fases.

Un caso particular de la ecuación (22.5) es la conocida ecuación de van der


Pol1 . Esta ecuación viene definida de la forma

d2 x dx
2
+ μ(x2 − 1) +x=0 , (22.7)
dt dt
siendo μ un parámetro real positivo por razones fı́sicas.

Un estudio detallado de la ecuación (22.7) muestra la existencia de un único


ciclo lı́mite (órbita periódica y aislada) en el plano de las fases. Si denotamos el
ciclo lı́mite por C y su periodo por T , se tiene que

C := {(x(t), y(t)) ∈ R2 : x(t + T ) = x(t) , y(t + T ) = y(t)} .

Además, puede demostrarse que el ciclo lı́mite C es estable, es decir, todas las
órbitas excepto el punto de equilibrio (0, 0) tienden asintóticamente hacia el
ciclo lı́mite C cuando t → ∞, ver Figura 22.1.

Problema 22.2 Considerar la ecuación de van der Pol (22.7).

Tomar la ecuación (22.7) con el parámetro μ = 0,1 y escribirla como un


sistema de primer orden en el plano de las fases x − y.
Utilizar el algoritmo de Runge-Kutta de cuarto orden RK4 para eviden-
ciar de forma numérica el ciclo lı́mite. Experimentar con valores iniciales
(x(0), y(0)) = (x0 , y0 ) diferentes y dibujar (con un software adecuado) las
órbitas obtenidas (xi , yi ) para i = 0, 1, . . ..
Cuando el parámetro μ = 0,1, el ciclo lı́mite de van der Pol se puede
aproximar por una circunferencia centrada en el origen, es decir, C ≈
{(x, y) ∈ R2 : x2 + y 2 = R2 }. Estimar el radio R de dicha circunferencia
a partir de las gráficas realizadas en el apartado anterior.
1 Balthasar van der Pol (1889-1959), cientı́fico holandés especialista en aspectos teóricos

de radio-ingenierı́a, inició el estudio de la ecuación que lleva su nombre en los an̄os veinte,
estimulando con ello a Liénard y otros a investigar la teorı́a matemática de las oscilaciones
automantenidas en mecánica no lineal. En su ecuación, la variable x denota la intensidad de
corriente eléctrica en un oscilador de triodo. Experimentalmente se observa que el flujo de
corriente es periódico. Este flujo periódico sólo puede ser explicado mediante la consideración
de una ecuación no lineal.
22.4 El Problema del Centro-Foco 291

Figura 22.1: Ciclo lı́mite C. Notar como la trayectoria C1 se acerca espiralando


hacia el ciclo lı́mite.

22.4. El Problema del Centro-Foco


Consideremos una partı́cula de masa m que describe un movimiento armónico
simple de frecuencia ω. Aplicando la segunda ley de Newton, la ecuación difer-
encial que rige la posición x de la partı́cula en función del tiempo t viene dada
por
d2 x
= −ω 2 x .
dt2
Tomando unidades adecuadas se puede conseguir que ω = 1. Con estas unidades,
el sistema diferencial que describe a un oscilador armónico simple es

dx dy
= −y , =x. (22.8)
dt dt
Este sistema es trivial de integrar puesto que dy/dx = −x/y. Entonces, sepa-
rando las variables e integrando, obtenemos que las órbitas en el plano de las
fases x − y vienen dadas por circunferencias concéntricas x2 + y 2 = C 2 . Como el
origen (0, 0) posee un entorno totalmente relleno de órbitas cerradas del sistema
diferencial, se dice que el punto crı́tico (0, 0) es un centro.

Consideremos ahora una perturbación polinomial del sistema (22.8) definida


de la forma
dx dy
= −y + f (x, y) , = x + g(x, y) , (22.9)
dt dt
siendo f, g ∈ Rn [x, y] polinomios reales en las variables x e y de grado n ≥ 2.

Se sabe que, las órbitas en el plano de las fases del sistema perturbado (22.9)
pueden seguir siendo periódicas, de manera que el punto crı́tico (0, 0) continua
siendo un centro, o bien espiralan alrededor del punto crı́tico en cuyo caso se
292 Ecuaciones Diferenciales Ordinarias: Método RK4

dice que el punto crı́tico (0, 0) es un foco, ver las Figuras 22.2 y 22.3. Averiguar
si el punto (0, 0) es un centro o un foco para el sistema (22.9) es un problema
clásico y difı́cil.

Figura 22.2: El origen de coordenadas (0, 0) es un punto crı́tico de tipo centro.

Figura 22.3: El origen de coordenadas (0, 0) es un punto crı́tico de tipo foco.


22.5 El Péndulo de Wilberforce 293

Problema 22.3 Considerar los sistemas diferenciales siguientes


dx dy
= −y − x2 , =x, (22.10)
dt dt
dx dy
= −y − x3 , =x, (22.11)
dt dt
Utilizando el algoritmo de Runge-Kutta de cuarto orden RK4 con dife-
rentes condiciones iniciales (x0 , y0 ), averiguar de forma numérica si el
origen (0, 0) es un centro o un foco para los sistemas (22.10) y (22.11).
Una forma gráfica de averiguarlo es mediante el dibujo (con un software
adecuado) de las órbitas computadas de forma numérica.
Es posible que al experimentar con valores iniciales (x(0), y(0)) = (x0 , y0 )
diferentes se obtenga en el programa un error de OVERFLOW. Dar una
explicación para este error.

22.5. El Péndulo de Wilberforce


El péndulo de Wilberforce2 es un popular instrumento de demostración en
los laboratorios de fı́sica y mecánica, ver Figura 22.4.

Figura 22.4: El péndulo de Wilberforce con sus dos modos de oscilación.

2 R.E. Berg and T. S. Marshall, Wilberforce pendulum oscillations and normal modes, Am.

J. Phys. 59, 32–38 (1991).


294 Ecuaciones Diferenciales Ordinarias: Método RK4

Para simplificar el sistema, supondremos que el movimiento se caracteri-


za por una fuerza lineal restauradora tanto en la dirección lineal z como en
la angular θ. An̄adiendo un factor de acoplamiento  entre los dos modos de
oscilación vertical y de torsión, las ecuaciones del movimiento del péndulo de
Wilberforce vienen dadas por dos ecuaciones diferenciales ordinarias de segundo
orden lineales y acopladas para los dos grados de libertad del péndulo:
1 1
mz̈ + kz + θ = 0 , I θ̈ + δθ + z = 0 , (22.12)
2 2
siendo m la masa del péndulo, I el momento de inercia, k y δ las constantes
elásticas longitudinales y de torsión del muelle.
Problema 22.4 Demostrar de forma numérica y utilizando el algoritmo RK4
que cuando se entra  en resonancia, es decir, cuando
 cuando las frecuencias lon-
gitudinales wz = k/m y de torsión wθ = δ/I del péndulo de Wilberforce
son iguales, entonces el movimiento del péndulo alterna de forma periódica en-
tre movimientos únicamente longitudinales y únicamente de torsión. Para con-
seguirlo, mostrar de forma superpuesta las gráficas de z(t) y de θ(t), tomando,
por ejemplo, los valores siguientes: m = 0,5 Kg, k = 5 N/m, I = 10−4 Kg.m2 ,
δ = 10−3 N.m,  = 10−2 N. Además de ir probando distintas condiciones ini-
ciales z(0) = z0 , θ(0) = θ0 , ż(0) = ż0 y θ̇(0) = θ̇0 , utilizar también los tipos de
condiciones iniciales siguientes: (i) z(0) = 10 cm, θ(0) = 0; (ii) z(0) = 0 cm,
θ(0) = 2π.

22.6. El Modelo de Lorenz: Convección de Flu-


idos
El modelo de Lorenz es un modelo áltamente simplificado del fenómeno
de convección en fluidos. El modelo fue introducido en 1963 por el meteorólo-
go Edward Lorenz, quien estaba interesado en modelizar la convección en la
atmósfera. Lo que Lorenz demostró fue que incluso un sistema muy sencillo de
ecuaciones diferenciales puede tener soluciones cuyo comportamiento es esen-
cialmente impredecible dando lugar a lo que hoy se conoce como teorı́a del caos.
Una detallada derivación del modelo de Lorenz se puede ver, por ejemplo, en el
libro de Robert C. Hilborn titulado Chaos and Nonlinear Dynamics: an intro-
duction for scientists and engineers.

En términos fı́sicos, Lorenz modeliza una capa horizontal de fluido que se


calienta en el fondo y se enfrı́a en la parte superior de la capa. La parte inferior
y superior de la capa se mantiene a temperaturas constantes Ti y Ts respecti-
vamente, con Ti > Ts . Este tipo de sistemas fue estudiado expedrimentalmente
por Bénard en 1900. No fue hasta 1916 que Lord Rayleigh obtuvo algún resul-
tado teórico. Hoy en dia se conoce como sistema de fluido de Rayleigh–Bénard.

Si la diferencia de temperaturas ΔT = Ti − Ts no es muy grande, el fluido


permanece estacionario y la transferencia de calor se produce desde abajo hacia
22.6 El Modelo de Lorenz: Convección de Fluidos 295

arriba por conducción. La tendencia del fluido (menos denso) en la parte inferior
a elevarse se cancela debido a la pérdida de calor hacia el entorno y el rozamiento
debido a la viscosidad. En estas condiciones estacionarias, la temperatura del
fluido varı́a linealmente respecto de la posición vertical.
Por el contrario, si la diferencia de temperaturas ΔT aumenta suficiente-
mente, las fuerzas flotantes llegan a ser suficientemente grandes como para
vencer al rozamiento viscoso y se desarrollan corrientes estacionarias dentro
del fluido. En estas condiciones, la transferencia de calor desde la parte inferior
hacia la parte superior de la capa de fluido se realiza por convección, es decir,
debida al movimiento de la masa del fluido. Como resultado se obtiene una
circulación de fluido que es estable en el tiempo.
Con un aumento posterior de la diferencia de temperaturas ΔT , tanto las
corrientes de fluido como las diferencias de temperaturas dentro del fluido dejan
de ser estacionarias y comienzan a variar con el tiempo.

22.6.1. Las ecuaciones de Lorenz


El modelo de Lorenz está basado en una gran simplificación de las ecuaciones
fundamentales de la dinámica de fluidos, es decir, de las ecuaciones de Navier–
Stokes. En resumen, el movimiento del fluido y las diferencias de temperaturas
resultantes en el fluido se pueden expresar en términos de tres variables x(t),
y(t), z(t) que dependen del tiempo t. La variable x está relacionada con la
dependencia temporal de la llamada función de corriente cuya derivada respecto
de las variables espaciales da las componentes del campo de vectores velocidad
del fluido. Las variables y, z, están relacionadas con la dependencia temporal
de las desviaciones de temperatura respecto del régimen lineal que se tiene
en la situación no convectiva. En concreto, y es proporcional a la diferencia
de temperaturas entre las partes del fluido que suben y las que bajan a una
determionada altura y z es proporcional a la desviación de la linearidad en la
temperatura del fluido como una función de la posición vertical.
Usando esas variables, las ecuaciones de Lorenz adoptan la forma de las
siguientes tres ecuaciones diferenciales no lineales y acopladas

ẋ = p(y − x) , ẏ = rx − y − xz , ż = −bz + xy , (22.13)

siendo p, r y b parámetros del modelo. En concreto, p es el llamado número de


Prandtl que se define como el cociente entre la viscosidad cinemática del fluido
y su coeficiente de difusión térmica. Por lo tanto p depende del fluido que se es-
tudia. El parámetro r es proporcional al llamado número de Rayleigh que es una
medida adimensional de la diferencia de temperaturas ΔT entre la parte inferior
y superior de la capa de fluido. Cuando ΔT aumenta, r aumenta. Usualmente,
r es utilizado como un parámetro de control. El parámetro b está relacionado
con el cociente entre la altura de la capa de fluido y el taman̄o de los rollos de
convección que efectúa el fluido.
296 Ecuaciones Diferenciales Ordinarias: Método RK4

22.6.2. Realización de la práctica


A pesar de la sencillez del modelo de Lorenz (22.13), sus soluciones exhiben
un comportamiento muy complejo (llamado caótico) bajo ciertas condiciones.
No se conoce la solución general (x(t), y(t), z(t)) de (22.13) de modo que (22.13)
se debe resolver de forma numérica. Utilizaremos el método RK4 en R3 y los
valores de los parámetros p = 10, b = 8/3.

El estado no convectivo del fluido viene determinado por la solución esta-


cionaria (x(t), y(t), z(t)) = (0, 0, 0) para todo t. Para valores pequen̄os del
parámetro r, es decir, para ΔT pequen̄o, ¿predice el modelo de Lorenz
el estado no convectivo? Responder suponiendo el valor de los parámetro
r = 0,5 y que el sistema se encuentra en el estado inicial (x(0), y(0), z(0)) =
(0, 1, 0). Obtener las gráficas de las funciones x(t), y(t) y z(t) en función del
tiempo en el intervalo 0 ≤ t ≤ 10 ası́ como la trayectoria (x(t), y(t), z(t))
en el espacio de fases.

Si r < 1, se puede demostrar que todas las soluciones de (22.13), indepen-


dientemente de cual es su condición inicial, se aproximan en un tiempo
suficiente al punto (0, 0, 0). Mostrarlo numéricamente tomando varios val-
ores de r ∈ (0, 1) y diversas condiciones iniciales (x(0), y(0), z(0)).

Si r > 1, pero no muy grande (por ejemplo menor que 13) se puede ver
que toda solución que comience cercana al punto (0, 0, 0) se aleja de este
y se acerca (con un tiempo suficiente) a alguno de los puntos
 
A± = (± b(r − 1), ± b(r − 1), r − 1)

dependiendo de cual es la condición inicial. La explicación en términos


fı́sicos consiste en que cuando r aumenta hacia un valor superior a 1 (es
decir, incrementamos la diferencia de temperaturas ΔT entre la parte in-
ferior y superior de la capa de fluido) el sistema ya no tiende al estado no
convectivo representado por el punto (0, 0, 0) sino que tiende hacia un esta-
do convectivo estacionario representado por los puntos A± donde el signo
± indica una rotación de convección en el sentido horario o antihorario.
Mostrar este comportamiento de forma numérica usando el valor r = 2 y
las dos condiciones iniciales (x(0), y(0), z(0)) = (0, ±1, 0).

Si continuamos aumentando el valor de r, se observa que no pasa nada


dramático hasta que r alcanza un valor aproximadamente de r ≈ 13,93
donde se observa que se desarrollan regiones entorno de los puntos A±
de modo que las soluciones con condiciones iniciales en dichas regiones se
alejan de los puntos A± . El comportamiento temporal de estas soluciones
es bastante complicado. Obtener un ejemplo numérico con los valores del
parámetr r = 25 y la condición inicial (x(0), y(0), z(0)) = (0, −5, 15).
Realizar la gráfica de la trayectoria (x(t), y(t), z(t)) en el espacio de fases.
¿Se acerca ahora la trayectoria a alguno de los puntos A± ?
22.6 El Modelo de Lorenz: Convección de Fluidos 297

Como el comportamiento de las soluciones en el apartado anterior ha si-


do muy complicado, seguimos aumentando el valor de r. Por ejemplo,
tomamos r = 160 y la condición inicial (x(0), y(0), z(0)) = (0, −5, 15) del
apartado anterior. Mostrar mediante las gráficas de las funciones x(t), y(t)
y z(t) que, el comportamiento de dichas funciones es periódico. En concre-
to, x(t) oscila de forma simétrica entorno del valor x = 0. ¿Qué significa
fı́sicamente?
Nos embarcamos a continuación en la cuestión crucial de decidir si el mod-
elo de Lorenz exhibe comportamiento caótico para valores grandes de r.
Aquı́, comportamiento caótico se traduce por sensibilidad del sistema a las
condiciones iniciales. Nos preguntamos si, para valores grandes de r, dos
soluciones con condiciones iniciales muy próximas divergen alejándose al
pasar el tiempo. Si esto ocurre se dice que el sistema es caótico y, aunque
proviene de un modelo determinista (sistema de ecuaciones diferenciales),
resulta imposible predecir el estado futuro del sistema debido a la precisión
limitada innata en los aparatos que miden fı́sicamente las condiciones ini-
ciales (este fenómeno se conoce popularmente como efecto mariposa).
Demostrar numéricamente que el sistema de Lorenz con el valor del pará-
metro r = 143 es caótico mostrando las gráficas de la función z(t) para dos
condiciones iniciales cercanas, por ejemplo, (x(0), y(0), z(0)) = (20, 0, 163)
y (x(0), y(0), z(0)) = (20, 0, 166) y viendo que, tras unas pocas oscila-
ciones, las funciones son completamente diferentes.
Capı́tulo 23

Raı́ces de Ecuaciones:
Método de
Newton-Raphson

23.1. Introducción

Uno de los cálculos que más a menudo se realizan en el cálculo cientı́fico


o técnico es el de encontrar las raı́ces de una ecuación. Son muchos los pro-
blemas en ciencia e ingenierı́a que se pueden modelar matemáticamente como
una ecuación f (x) = 0, siendo f una función de la variable x. El algoritmo
que presentamos en esta sección es un método iterativo. Partiremos de una a-
proximación inicial x0 del cero exacto x∗ de f y posteriormente construiremos
una sucesión de números reales {xn }∞ ∗
n=0 que converja hacia x cuando n → ∞.
En el método de Newton-Raphson, dicha sucesión, está generada a partir de la
iteración siguiente

f (xn )
xn+1 = xn − . (23.1)
f  (xn )

Notemos que, para poder utilizar el método de Newton-Raphson, hemos de


suponer que la función f (x) es derivable en un entorno de la raı́z x∗ .

Puesto que el método de Newton-Raphson genera una sucesión de números


reales {xn }∞n=0 , es claro que en su programación se deberá dar al menos un
criterio de parada. En la programación que se pide en esta práctica se darán
tres criterios de parada tal y como se detallan a continuación.

299
300 Raı́ces de Ecuaciones: Método de Newton-Raphson

Problema 23.1 Programar el método de Newton-Raphson dado en (23.1) me-


diante una función en Octave cuya entrada sea:
El punto inicial de iteración x0 ∈ R.

El número máximo de iteraciones nmax. De este modo, si el programa no


finaliza, se calculará como mucho el valor xnmax y se tomará x∗ ≈ xnmax .
Finalizar la ejecuación del programa de esta forma indica alguna anomalı́a
en su ejecución.
La precisión prec. Ası́, si |f (xn )| < prec, se parará el cálculo y se
tomará x∗ ≈ xn .
La tolerancia tol. De este modo, si |xn −xn−1 | < tol, se parará el cálculo
y se tomará x∗ ≈ xn .
La salida de la función debe ser:
El vector fila de dimensión variable que contenga a los términos xn de la
sucesión de Newton-Raphson.
Las funciones f (x) y f  (x) se deben programar a parte en sendos fichero f.m y
fp.m que serán utilizado por la anterior función principal.

23.2. Ecuaciones de Estado de los Gases


Es conocido que la ecuación de estado de los gases ideales es

nRT
P = , (23.2)
V
siendo n el número de moles del gas, T su temperatura y R = 8,3143JK −1 mol−1
la constante de los gases ideales.

Al tratar gases reales, debemos tomar en consideración las fuerzas inter-


moleculares y las dimensiones finitas de las moléculas. Las fuerzas intermole-
culares son de corto alcance y disminuyen rápidamente con la distancia entre
moléculas. Por consiguiente, la presión P de un gas real será tanto más cercana
a la de un gas ideal, ecuación (23.2), cuanto menor sea el número de moléculas
por unidad de volumen. Esto sugiere que expresemos la presión de un gas real
en términos de la siguiente serie de potencias en n/V

nRT n2 n3 n4
P = + A 2 + B 3 + C 4 + ··· . (23.3)
V V V V
La ecuación (23.3) se puede considerar como la ecuación de estado de un gas
real. A, B, C, ... son cantidades caracterı́sticas de cada gas y son llamados se-
gundo, tercer, cuarto, etc.. coeficientes viriales. Estos coeficientes son funciones
de la temperatura T y dependen de la intensidad de las fuerzas moleculares.
23.2 Ecuaciones de Estado de los Gases 301

Midiendo P a temperaturas y volúmenes diferentes se pueden obtener los coe-


ficientes viriales A(T ), B(T ), C(T ), ... experimentalmente.

Los métodos de la mecánica estadı́stica permiten un cálculo de los coefi-


cientes viriales. En las secciones siguientes veremos algunos casos particulares
de ecuaciones de estado relacionadas con desarrollos del virial.

23.2.1. Ecuación de Dieterici


Una ecuación empı́rica de estado para gases reales, propuesta por Dieterici,
viene dada por  na
P (V − nb) exp = nRT , (23.4)
V RT
siendo los coeficientes a y b caracterı́sticos del gas.

Problema 23.2 Se tienen 10 moles de Nitrógeno gaseoso y suponemos que se


verifica la ecuación de Dieterici (23.4) con a = 140,4 y b = 0,039. Aproximar,
utilizando el método el Newton-Raphson, el volumen que ocupa sabiendo que
está a temperatura T = 300K y presión P = 105 P a.

23.2.2. El Módulo de elasticidad en la ecuación de van der


Waals
El módulo de elasticidad de volumen a temperatura constante de una sus-
tancia se define de la forma

1 ∂V
κT = − .
V ∂P T

Es fácil ver que un gas real que sigue la ecuación de van der Waals

n2 a
P + 2 (V − nb) = nRT , (23.5)
V

donde a y b son las constantes de van der Waals caracterı́sticas del gas, tiene
un módulo de elasticidad
V 2 (V − nb)2
κT = . (23.6)
nRT V 3 − 2n2 a(V − nb)2

Problema 23.3 Demostrar la expresión de κT dada en (23.6).

Problema 23.4 Se sabe que el Oxı́geno tiene unas constantes de van der Waals
a = 137,4 y b = 0,031. Aproximar mediante el método el Newton-Raphson el
volumen que ocupan 30 moles de Oxı́geno a temperatura T = 310K sabiendo que
su módulo de elasticidad es κT = 2,74P a−1 y el volumen ocupado es superior a
200000m3 .
302 Raı́ces de Ecuaciones: Método de Newton-Raphson

Nota: Tanto en el Problema 23.2 como en el Problema 23.4, al aplicar el


método de Newton-Raphson es necesaria una estimación inicial del volumen
V0 para poder comenzar las iteraciones. Esta estimación se puede realizar o
bien a través de un teorema de convergencia de la sucesión generada con la
iteración de Newton-Raphson (ver Teorema 8.2) o bien tomando el volumen V0
que predecirı́a la suposición de gas ideal.

23.3. Un Problema Sobre la Profundidad de Ab-


sorción
Consideremos un medio material poroso que absorve un cierto gas. Tomemos
el eje x perpendicular a la superficie plana del medio con sentido positivo hacia
el interior del medio. Sea ρ(x) la concentración de gas a una profundidad x del
medio y supongamos que la concentración de gas ρ(0) en la superficie del medio
es constante. Para fijar ideas tomaremos ρ(0) = 1. Sea a(x) la tasa de absorción
de gas a profundidad x una función conocida. Obviamente, el gas se difunde
únicamente hasta una profundidad  y estamos interesados en hallarla. De esta
forma, el modelo planteado es

ρ (x) = −a(x) , 0 < x <  , (23.7)


ρ(0) = 1 , (23.8)
ρ() = ρ () = 0 . (23.9)

Es fácil probar que la única solución ρ(x) del problema de valor final formado
por las ecuaciones (23.7) y (23.9) viene dada por
! 
ρ(x) = − (s − x)a(s) ds . (23.10)
x

Sólo falta averiguar el valor  de modo que se verifique la condición (23.8).


Notemos que dicho valor de  debe ser una raı́z de la función
! 
f () = 1 − ρ(0) = 1 + sa(s)ds . (23.11)
0

23.3.1. Realización de la práctica


¿Es necesario algún método numérico para hallar la profundidad de ab-
sorción  si la tasa de absorción de gas es a(x) = 2 − x? Hallar el valor
exacto de  en caso de ser posible.
Supongamos ahora que la función sa(s) no admite primitiva expresable
mediante funciones elementales. Entonces, no es posible utilizar la ecuación
(23.11) para hallar  de forma exacta. En su defecto, se puede utilizar una
estrategia numérica con el objetivo de aproximar  como veremos a con-
tinuación. En primer lugar, supongamos que se dispone de una subrutina
23.4 Método de Newton para Sistemas de Ecuaciones 303

de algún método numérico (por ejemplo el comando NDSolve[] de Math-


ematica o el algoritmo RK4) que integra el problema reducido de valor
final (23.7) y (23.9), es decir,

ρ (x) = −a(x) , 0 < x < n , ρ(n ) = ρ (n ) = 0 .

Por supuesto, al resolver el anterior problema, como comenzamos a in-


tegrar a partir de x = n y llegamos hasta x = 0, si se utiliza RK4 se
hará con una longitud de paso negativa. A partir de ahora se asumirá que
se dispone de la subrutina RK4(n ), cuyo argumento de entrada es n y
la salida es ρn , siendo ρn una aproximación al valor inicial ρ(0), es decir,
ρ(0) ≈ ρn . El método numérico para hallar  consiste en introducir dos
valores distintos de inicio 0 y 1 que sean las primeras aproximaciones de 
y posteriormente generar una sucesión {n }n∈N que tenga la propiedad de
convergencia lı́mn→∞ n =  mediante el método de la secante aplicado a
la función (23.11) dada por f () = 1−ρ(0). A la vez que se va calculando la
sucesión {n }n∈N , necesitaremos computar también otra sucesión {ρn }n∈N
de números que aproximan a ρ(0) tal que verifiquen lı́mn→∞ ρn = ρ(0).
El algoritmo funciona de la siguiente manera. En primer lugar se intro-
ducen los datos de entrada 0 y 1 . Posteriormente se calculan los valores
ρ0 = RK4(0 ) y ρ1 = RK4(1 ). El resto de valores de las sucesiones
{n }n∈N y {ρn }n∈N se calculan en un bucle. Ahı́, los valores de n se cal-
culan con el método de la secante aplicado a la función f () = 1 − ρ(0)
donde ρ(0) se ha sustituido por el último de los valores obtenidos de ρn .
Los valores de ρn en el bucle se obtienen de la forma ρn = RK4(n ), siendo
n el valor calculado en el cálculo anterior.
Para que el algoritmo funcione bien sólo es necesario usar algún criterio de
parada en el anterior bucle. Usaremos dos criterios de parada de modo que
el bucle finaliza cuando |1 − ρn | < 1 o bien |n − n−1 | < 2 , siendo 1 y 2
las tolerancias introducidas a priori como datos de entrada del algoritmo
y pueden ser, por ejemplo, del orden de 104 .
Comprobar que el algoritmo funciona bien utilizando la misma función
a(x) del apartado anterior.

23.4. Método de Newton para Sistemas de Ecua-


ciones
El método de Newton-Raphson para aproximar las soluciones de la ecuación
f (x) = 0 se basa en el concepto de linearizar la función f . Se puede generalizar
dicho método para aproximar por un método iterativo las soluciones de un sis-
tema de ecuaciones.

Consideremos un sistema de n ecuaciones con n incógnitas x1 , x2 , . . . , xn .


304 Raı́ces de Ecuaciones: Método de Newton-Raphson

Dicho sistema puede ser escrito de la forma f (x) = 0, siendo

x = (x1 , x2 , . . . , xn )T .

La aplicación f : Rn → Rn tiene las funciones componentes fi : Rn → R para


i = 1, 2, . . . , n, es decir,

f (x) = (f1 (x), f2 (x), . . . , fn (x))T .

Sea x∗ un cero de la función f , es decir, f (x∗ ) = 0. Supongamos que x0 es


un punto próximo a x∗ y que f es diferenciable en x0 . Entonces, en primera
aproximación se tiene

0 = f (x∗ ) ≈ f (x0 ) + Df (x0 )(x∗ − x0 ) ,

siendo Df (x0 ) la matriz Jacobiana de la función f en el punto x0


⎛ ∂f1 (x0 ) ∂f1 (x0 ) ⎞
∂x1 ··· ∂xn
⎜ .. .. ⎟
Df (x0 ) = ⎝ . . ⎠ .
∂fn (x0 ) ∂fn (x0 )
∂x1 ··· ∂xn

Si la matriz Jacobiana Df (x0 ) es no singular, es decir, si det Df (x0 ) = 0, en-


tonces se puede despejar de la ecuación 0 = f (x0 ) + Df (x0 )(x1 − x0 ) el vector
x1 . De esta manera se obtiene

x1 = x0 − (Df (x0 ))−1 f (x0 ) ,

donde (Df (x0 ))−1 denota la matriz inversa de la Jacobiana. Generalizando el


proceso de forma iterativa se tiene el método de Newton-Raphson

xi+1 = xi − (Df (xi ))−1 f (xi ) con i = 0, 1, . . . , (23.12)

para aproximar las soluciones del sistema f (x) = 0.


Nótese que, desde un punto de vista numérico y con el objetivo de no calcular
matrices inversas, es más conveniente reescribir el método de Newton-Raphson
de la forma

Df (xi ) xi+1 = Df (xi ) xi − f (xi ) con i = 0, 1, . . . . (23.13)

Puesto que el método de Newton-Raphson genera una sucesión de vectores


{xi }∞
i=0 ⊂ R , es claro que en su programación se deberá dar al menos un
n

criterio de parada. En la programación que se pide en esta práctica se darán


tres criterios de parada tal y como se detallan a continuación.
23.4 Método de Newton para Sistemas de Ecuaciones 305

Problema 23.5 Programar el método de Newton-Raphson dado en (23.12) o


en (23.13) mediante una función en Octave cuya entrada sea:
El punto inicial de iteración x0 ∈ Rd .

El número máximo de iteraciones nmax. De este modo, si el programa no


finaliza, se calculará como mucho el vector xnmax y se tomará x∗ ≈ xnmax .
Finalizar la ejecuación del programa de esta forma indica alguna anomalı́a
en su ejecución.
La precisión prec. Ası́, si f (xn ) < prec, se parará el cálculo y se
tomará x∗ ≈ xn .
La tolerancia tol. De este modo, si xn − xn−1 < tol, se parará el
cálculo y se tomará x∗ ≈ xn .
La salida de la función debe ser:
La matriz con d columnas y número de filas variable que contenga en cada
fila a los vectores xn de la sucesión de Newton-Raphson.
La función f (x) y la matriz jacobiana Df (x) se deben programar a parte en
sendos fichero f.m y Df.m que serán utilizado por la anterior función principal.

23.4.1. Equlibrio en sistema masa-muelle


Consideremos el sistema bidimensional masa-muelle de la Figura 23.1.

Figura 23.1: Sistema sistema bidimensional masa-muelle en equilibrio estable.

Es fácil demostrar que, tomando el sistema de referencia x − y dado en la


306 Raı́ces de Ecuaciones: Método de Newton-Raphson

Figura 23.1, la energı́a potencial U del sistema viene dada por


1  2 1 
U (x, y) = k1 ( x + y 2 − L1 )2 + k2 ( (x − D)2 + y 2 − L2 )2 − mgy ,
2 2
siendo D la separación horizontal entre los puntos de enganche de los dos
muelles, k1 y k2 las constantes elásticas de los muelles, L1 y L2 las longitudes
naturales de los muelles, m la masa de la bola y g = 9,8m/s2 la aceleración de
la gravedad.

Puesto que la fuerza total F que actúa sobre la masa m es conservativa,


verifica F = −∇U  , siendo ∇  = (∂/∂x, ∂/∂y) el operador vectorial gradiente.
De este modo, cuando el sistema se encuentre en equilibrio estático se veri-
 = 0. De forma equivalente, las coordenadas (x∗ , y ∗ ) de la masa m en
ficará ∇U
equilibrio estático verificarán el sistema de ecuaciones
∂U ∗ ∗ ∂U ∗ ∗
(x , y ) = 0 , (x , y ) = 0 . (23.14)
∂x ∂y

Problema 23.6 Supongamos que k1 = 10N/m, L1 = L2 = D = 0,1m y m =


0,1Kg. Obtener las gráficas de las funciones x∗ (k2 ) y y ∗ (k2 ) para el rango de
valores 0 ≤ k2 ≤ 10.
Para conseguirlo utilizaremos el método de Newton-Raphson para resolver
los 101 sistemas (23.14) que se obtienen tomando los valores equiespaciados
(i)
k2 = i10/n, con i = 0, 1, . . . , n, siendo n = 100. Además, puesto que los valores
(i)
de k2 consecutivos están cercanos, se tomará la condición inicial (x0 , y0 ) para
resolver un sistema como la aproximación (x∗ , y ∗ ) obtenida en la resolución del
sistema anterior.
La forma de proceder en el Problema 23.6 se conoce como Método de Con-
tinuación y sirve para obtener una gráfica de x(ξ) donde se verifica la ecuación
f (x; ξ) = 0 siendo ξ un parámetro de la ecuación.
Capı́tulo 24

Método de los Elementos


Finitos

24.1. Introducción: Modelo Matemático


Se considera la ecuación diferencial ordinaria lineal de segundo orden

d2 u du
a(x) + b(x) + c(x)u(x) = g(x) (24.1)
dx2 dx
definida para x perteneciente al domino [0, L] ⊂ R. Supondremos que las fun-
ciones a(x), b(x), c(x) y g(x) son continuas en dicho dominio. Si la función a(x)
tiene signo constante en el intervalo [0, L], es decir, (24.1) es una ecuación elı́pti-
ca, entonces, (24.1) puede reescribirse como una ecuación diferencial autoadjunta
de la forma
d du
− a1 (x) + a0 (x)u = f (x) , (24.2)
dx dx
siendo
! x
b(t)
a1 (x) := exp dt ,
0 a(t)
−c(x)a1 (x)
a0 (x) := ,
a(x)
−g(x)a1 (x)
f (x) := .
a(x)

La forma autoadjunta (24.2) no sólo tiene ventajas desde el punto de vista


numérico como se verá posteriormente, si no que también describe muchos pro-
cesos fı́sicos. La ecuación (24.2) será acompan̄ada de alguna de las siguientes
condiciones de contorno

u(0) = Ū0 , u(L) = ŪL , (24.3)

307
308 Método de los Elementos Finitos

du
u(0) = Ū0 , a1 (L)(L) = QL , (24.4)
dx
du du
−a1 (0) (0) = Q0 , a1 (L) (L) = QL , (24.5)
dx dx
du
u(0) = Ū0 , a1 (L) (L) + βu(L) = γ , (24.6)
dx

siendo Ū0 , ŪL , Q0 , QL , β y γ valores fijados.

24.2. Solución Numérica


En esta sección buscaremos, mediante el método de los elementos finitos,
aproximaciones de la solución del problema de contorno (24.2) con alguna de las
condiciones (24.3), (24.4), (24.5) o (24.6).

24.2.1. Mallado del dominio


Se realizará un mallado del dominio [0, L], es decir, una subdivisión de dicho
dominio en elementos. Identificaremos algunos puntos de cada elementos del
mallado y les llamaremos nodos1 . De esta forma, subdividimos el dominio [0, L]
en N elementos Ωk ⊂ [0, L], con k = 1, . . . , N . Más concretamente, tomaremos
Ωk = [xk , xk+1 ], siendo xk y xk+1 los nodos del elemento Ωk y su anchura
hk = xk+1 − xk . De esta forma sólo tomaremos dos nodos por cada elemento.
Posteriormente se realizará la numeración global de los nodos. En nuetro caso
se tomará el nodo global 1 en x = 0 y, numerando los nodos en orden creciente
y de manera consecutiva se llegará a que el nodo x = L corresponderá al nodo
global N + 1. Se tiene pues que el nodo global k−ésimo se encuentra en el punto
de coordenada x = xk .

24.2.2. Las ecuaciones de los elementos: método varia-


cional
Consideremos el elemento Ωk = [xA , xB ], donde en nuestro caso se tiene
xA = xk y xB = xk+1 debido a que se han tomado dos nodos en cada elemento,
pero esto no tenı́a por qué haber sido ası́.
Aproximaremos la solución exacta u(x) de (24.2) en el elemento Ωk por la
función Uk (x). Se tiene pues que


⎪ U1 (x) si x ∈ Ω1 ,

⎨ U2 (x) si x ∈ Ω2 ,
u(x) ≈ U (x) := .. (24.7)

⎪ .


UN (x) si x ∈ ΩN ,
1 En función del grado de los polinomios que aproximarán a la solución u(x) de (24.2) en

cada elemento se distinguirán más o menos nodos dentro de cada elemento


24.2 Solución Numérica 309

donde Uk (x) se tomará como una combinación lineal de un conjunto finito de n


funciones de aproximación {φkj (x)}nj=1 , es decir,


n
Uk (x) := ukj φkj (x) . (24.8)
j=1

Habitualmente las funciones de aproximación φkj (x) se toman polinomiales de


grado n − 1. Veremos posteriormente que las constantes ukj serán los valores
que toma la solución aproximada Uk en los nodos del elemento Ωk . Además, se
tomará n igual al número de nodos en el elemento Ωk , que para nosotros será 2.

Definamos el residuo R(u) de la ecuación diferencial (24.2) como



d du
R(u) := − a1 (x) + a0 (x)u − f (x) . (24.9)
dx dx

Por supuesto, si u(x) es la solución exacta de (24.2) entonces R(u) = 0. Sin


embargo R(Uk ) = 0 para x ∈ Ωk . Las relaciones que deben verificar las n
constantes ukj las obtendremos imponiendo que Uk (x) aproxime a u(x) en Ωk de
la “mejor manera posible”, donde esto se puede hacer de varias formas, dando
lugar a diferentes métodos de elementos finitos. Aquı́ se utilizará un método
variacional, que consiste en imponer que el residuo ponderado valga cero. En
concreto se impondrá que Ωk wj (x)R(u) dx = 0 para j = 1, . . . , n, donde wj (x)
son ciertas funciones peso. Las diferentes elecciones de las funciones peso wj dan
también lugar a diferentes metodos de elementos finitos. El método de Galerkin
de elementos finitos consiste en tomar wj (x) = φkj (x).
En definitiva, para hallar las constantes ukj con j = 1, . . . , n, se impondrá la
anulación de los residuos ponderados
! xB  
d du
wj (x) − a1 (x) + a0 (x)u − f (x) dx = 0 , j = 1, . . . , n .
xA dx dx

Utilizando el método de integración por partes, es claro que


!   !
d du du dwj du
wj (x) − a1 (x) dx = −wj (x)a1 (x) + a1 (x) dx ,
dx dx dx dx dx

de manera que, pasaremos a la llamada forma débil de la anulación de residuos


ponderados
! xB  x
dwj du du B
a1 (x) + a0 (x)wj (x)u − wj (x)f (x) dx− wj (x)a1 (x) =0.
xA dx dx dx xA

Definiendo
du du
QA := −a1 (xA ) (xA ) , QB := a1 (xB ) (xB ) , (24.10)
dx dx
310 Método de los Elementos Finitos

donde el cambio de signo proviene de una interpretación fı́sica de QA y QB en


términos de flujos, se tiene la forma débil
! xB
dwj du
0 = a1 (x) + a0 (x)wj (x)u − wj (x)f (x) dx
xA dx dx
−wj (xA )QA − wj (xB )QB . (24.11)

24.2.3. Aproximación de la solución


Aproximaremos la solución exacta u(x) de (24.2) en el elemento Ωk =
[xA , xB ] por la función Uk (x) dada en (24.2). Impondremos que Uk (x) sea un
polinomio de grado n − 1 que interpole a la función u(x) en los nodos del ele-
mento Ωk . De esta forma se tendrá en particular que Uk (xA ) = u(xA ) := uA
y Uk (xB ) = u(xB ) := uB . Tomaremos el número de nodos n = 2 sobre cada
elemento Ωk , de manera que Uk (x) será el polinomio interpolador de Lagrange
2

Uk (x) = ukj φkj (x) , (24.12)
j=1

siendo las funciones aproximadoras φkj (x) los polinomios básicos de Lagrange
x − xk+1 x − xk
φk1 (x) = , φk2 (x) = .
xk − xk+1 xk+1 − xk
Observar que se verifica Uk (xk ) = uk1 y Uk (xk+1 ) = uk2 para todo k = 1, . . . , N .

24.2.4. Método variacional de Galerkin


El método de Galerkin de elementos finitos consiste en tomar las funciones
peso wj (x) = φkj (x) en la formulación débil (24.11) con j = 1, 2, teniendo en
cuenta (24.12). De esta forma se tiene
⎛ ⎞ ⎛ ⎞
! xB " 2 2
dφk1 ⎝ dφkj ⎠ 
0 = a1 (x) ukj + a0 (x)φk1 ⎝ ukj φkj (x)⎠ −
xA dx j=1
dx j=1

# 2

φk1 (x)f (x) dx − φk1 (xkj )Qkj ,
j=1
⎛ ⎞ ⎛ ⎞
! xB " 2 2
dφk2 ⎝ dφkj ⎠ 
0 = a1 (x) ukj + a0 (x)φk2 ⎝ ukj φkj (x)⎠ −
xA dx j=1
dx j=1

# 2

φk2 (x)f (x) dx − φk2 (xkj )Qkj ,
j=1

para cada elemento Ωk . Aquı́ se han denotado por xkj , con j = 1, 2, los nodos
del elemento Ωk y por Qk1 = QA , Qk2 = QB .
24.2 Solución Numérica 311

Teniendo en cuenta que los polinomios basicos de Lagrange φki (x) verifican
la propiedad φki (xkj ) = δij , siendo δij la delta de Kronecker, es decir, δij = 1
si i = j y δij = 0 para i = 0, podemos escribir la ecuación i−ésima del método
de Galerkin mediante un reordenamiento como
2 ! xB  2 ! xB 
dφki dφkj
0 = a1 (x) dx ukj + a0 (x)φki φkj dx ukj
j=1 xA dx dx j=1 xA
! xB
− a0 (x)f (x)φki dx − Qki , i = 1, 2 .
xA

Este sistema de ecuaciones, llamado ecuación del elemento Ωk = [xA , xB ] se


escribe en forma matricial para el vector incógnita u[k] := (uk1 , uk2 )t como

K [k] u[k] = F [k] + Q[k] , (24.13)

donde la matriz de coeficientes K [k] , llamada matriz de rigidez, viene dada por
[k] [k] [k,1] [k,0]
K [k] = (Kij ) ∈ M2 (R) , Kij = Kij + Kij , (24.14)
! xB
[k,1] dφki dφkj
Kij = a1 (x) dx , (24.15)
xA dx dx
! xB
[k,0]
Kij = a0 (x)φki φkj dx , (24.16)
xA

y el vector de términos independientes tiene dos contribuciones, una dada por


[k] [k]
el vector fuente F [k] = (F1 , F2 )t de componentes
! xB
[k]
Fi = f (x)φki dx , (24.17)
xA

y la otra por el vector Q[k] = (Qk1 , Qk2 )t . Observar que la matriz de rigidez
[k] [k]
K [k] es simétrica puesto que Kij = Kji .

Se tiene en definitiva, para cada elemento Ωk , dos ecuaciones con cuatro


incógnitas que son uk1 , uk2 y también Qk1 y Qk2 . Por lo tanto todavı́a nos
faltan dos ecuaciones más para cada elemento Ωk que se obtendrán posterior-
mente cuando realizemos el encadenamiento de los elementos finitos (recordar
la ecuación (24.7)) y usemos las condiciones de contorno del problema.

24.2.5. Notas computacionales


[k] [k]
Veamos como calcular de forma numérica las componentes Kij y Fi de
la matriz de rigidez y del vector fuente. Para ello realizaremos un cambio de
variable lineal que pase el intervalo x ∈ Ωk = [xA , xB ] al intervalo ξ ∈ [−1, 1],
es decir,
hk
x = ηk (ξ) := (ξ + 1) + xA , (24.18)
2
312 Método de los Elementos Finitos

siendo hk = xB − xA la longitud del elemento Ωk . Con este cambio de variable,


los polinomios básicos de Lagrange φk1 (x) y φk2 (x) se transforman en
1 1
Φ1 (ξ) = (1 − ξ) , Φ2 (ξ) = (1 + ξ) . (24.19)
2 2
En estas nuevas coordenadas, los elementos de la matriz de rigidez (24.16) adop-
tan la forma
! 1
[k,1] 2 dΦi dΦj
Kij = a1 (ηk (ξ)) dξ , (24.20)
hk −1 dξ dξ
!
[k,0] hk 1
Kij = a0 (ηk (ξ))Φi (ξ)Φj (ξ) dξ , (24.21)
2 −1
y las componentes del vector fuente
!
[k] hk 1
Fi = f (ηk (ξ))Φi (ξ) dξ . (24.22)
2 −1
Para evaluar de forma numérica las integrales (24.20), (24.21) y (24.22) se
utilizará, por ejemplo, la cuadratura de Gauss-Legendre con dos puntos
! 1 √ √
g(ξ) dξ ≈ g(− 3/3) + g( 3/3) . (24.23)
−1

24.2.6. Encadenamiento de los elementos


Una vez se tienen las ecuaciones para cada elemento, ver (24.13), para a-
proximar la solución exacta u(x) en el dominio [0, L] tal y como indica (24.7),
se impondrá, en primer lugar, la continuidad de la función U (x) definida a
trozos (24.13). Para ello es necesario previamente una renumeración global de
los nodos. Si numeramos de manera consecutiva a los nodos de todo el dominio
[0, L] comenzando por el nodo 1 que estará localizado en x = 0, y denotando
por Ui , desde i = 1, . . . , N + 1 al valor de la función U (x) en el nodo i-ésimo,
es decir, uki = U(n−1)(k−1)+i en el supuesto de haber tomado n nodos en cada
elemento Ωk . Por supuesto, en nuestro caso n = 2 de manera que uki = Uk+i−1 .
De esta forma, la continuidad de la solución aproximada U (x) se expresa como

U1 = u11 ,
Ui = ui−1,2 = ui1 , para i = 2, . . . , N , (24.24)
UN +1 = uN 2 .

En segundo lugar se impondrá un balance de flujos de la forma



0,
Qk2 + Qk+1,1 =
Qk ,
dependiendo de si no hay fuente externa aplicada en el nodo que conecta el
elemento Ωk y Ωk+1 o por el contrario hay una fuente de valor Qk . Observar
24.2 Solución Numérica 313

que, en el caso de que Qk2 + Qk+1,1 = 0, esta condición implica en dicho nodo
de conexión que la derivada de la solución exacta du(x)/dx es continua debido
a la definición de Qki , ver (24.10).

La forma efectiva de realizar el balance de flujo consiste en sumar la última


ecuación del elemento Ωk con la primera del elemento Ωk+1 . Se tiene pues que,
el sistema con numeración local

[1] [1] [1]
K11 u11 + K12 u12 = F1 + Q11 ,
Ω1 [1] [1] [1]
 K21 u11 + K22 u12 = F2 + Q12 ,
[2] [2] [2]
K11 u21 + K12 u22 = F1 + Q21 ,
Ω2 [2] [2] [2]
 21 u21 + K22 u22
K = F2 + Q22 ,
[3] [3] [3]
K11 u31 + K12 u32 = F1 + Q31 ,
Ω3 [3] [3] [3]
K21 u31 + K22 u32 = F2 + Q32 ,
..
. 
[N ] [N ] [N ]
K11 uN 1 + K12 uN 2 = F1 + QN 1 ,
ΩN [N ] [N ] [N ]
K21 uN 1 + K22 uN 2 = F2 + QN 2 ,

pasa al sistema con numeración global de nodos siguiente


[1] [1] [1]
K11 U1 + K12 U2 = F1 + Q11 ,
[1] [1] [2] [2] [1] [2]
K21 U1 + (K22 + K11 )U2 + K12 U3 = F2 + F1 + Q12 + Q21 ,
[2] [2] [3] [3] [2] [3]
K21 U2 + (K22 + K11 )U3 + K12 U4 = F2 + F1 + Q22 + Q31 ,
.
.
.
[N −1] [N −1] [N ] [N ] [N −1] [N ]
K21 UN −1 + (K22 + K11 )UN + K12 UN +1 = F2 + F1 + QN −1,2 + QN 1 ,
[N ] [N ] [N ]
K21 UN + K22 UN +1 = F2 + QN 2 .

Estas ecuaciones lineales adoptan la forma de un sistema matricial tridiagonal


simétrico que escribiremos como

KU = F , (24.25)

y llamaremos sistema encadenado. Aquı́, la matriz de coeficientes K, el vector


incógnita U y el vector de términos independientes F son los dados de forma
explı́cita en las siguientes ecuaciones.

⎛ [1] [1]

K11 K12
⎜ [1] [1] [2] [2] ⎟
⎜ K21 K22 + K11 K12 ⎟
⎜ [2] [2] [3] [3] ⎟
⎜ K21 K22 + K11 K12 ⎟
⎜ ⎟
⎜ .. .. .. ⎟
K = ⎜ . . . ⎟ ,
⎜ ⎟
⎜ ⎟
⎜ .. .. .. ⎟
⎜ . . . ⎟
⎜ [N −1] [N −1] [N ] [N ] ⎟
⎝ K21 K22 + K11 K12 ⎠
[N ] [N ]
K21 K22
314 Método de los Elementos Finitos

⎛ ⎞
U1
⎜ U2 ⎟
⎜ ⎟
⎜ U3 ⎟
⎜ ⎟
⎜ .. ⎟
⎜ ⎟
U = ⎜ . ⎟
⎜ ⎟
⎜ .. ⎟
⎜ . ⎟
⎜ ⎟
⎝ UN ⎠
UN +1
⎛ [1]
⎞ ⎛ ⎞
F1 Q11
⎜ [1] [2] ⎟ ⎜ ⎟
⎜ F 2 + F1 ⎟ ⎜ Q12 + Q21 ⎟
⎜ [2] [3] ⎟ ⎜ ⎟
⎜ F 2 + F1 ⎟ ⎜ Q22 + Q31 ⎟
⎜ ⎟ ⎜ ⎟
⎜ .. ⎟ ⎜ .. ⎟
F = ⎜ . ⎟+⎜ . ⎟.
⎜ ⎟ ⎜ ⎟
⎜ .. ⎟ ⎜ .. ⎟
⎜ ⎟ ⎜ ⎟
⎜ . ⎟ ⎜ . ⎟
⎜ [N −1] [N ] ⎟ ⎝ ⎠
⎝ F2 + F1 ⎠ QN −1,2 + QN 1
[N ] QN 2
F2

24.2.7. La solución del sistema encadenado


En esta sección se verá cómo introducir los diferentes tipos de condiciones
de contorno (24.3), (24.4), (24.5) o (24.6) ası́ como técnicas prácticas que sim-
plifiquen el tratamiento numérico para la resolución del sistema encadenado
(24.25). En concreto se expondrá el método de unos en la diagonal. De esta
forma, si las condiciones de contorno son, por ejemplo, u(0) = Ū0 , u(L) = ŪL ,
entonces la primera y última fila de la matriz de coeficientes y el primero y últi-
mo de los términos independientes del sistema encadenado (24.25) se modifican
de forma que se verifique U1 = Ū0 , UN +1 = ŪL .

24.3. Desplazamientos Longitudinales Elásticos


Definamos las siguientes magnitudes:

u(x, t), el desplazamiento longitudinal respecto de la posición inicial de


equilibrio del punto de coordenada x para el instante de tiempo t. Unidades:
m.
σ(x, t), tensión del punto de coordenada x para el instante de tiempo t.
Unidades: N/m2 .
F (x, t), fuerza interna que actúa en el punto x para el tiempo t. Por
ejemplo la gravedad. Unidades: N .
f (x, t) = ∂F/∂x. Son las fuerzas internas por unidad de longitud. Unidades:
N/m.
E(x), módulo de Young del material. Unidades: N/m2 .
24.3 Desplazamientos Longitudinales Elásticos 315

A(x), área de la sección transversal del material. Unidades: m2 .


ρ(x), densidad del material. Unidades: Kg/m3 .
Teniendo en cuenta las fuerzas que actúan sobre el elemento de longitud dx
y aplicando la segunda ley de Newton se tiene, para el instante de tiempo t,
∂2u
σ(x + dx, t)A(x + dx) − σ(x, t)A(x, t) + F (x + dx, t) − F (x, t) = ρ(x)A(x)dx .
∂t2
Dividiendo por dx y pasando al lı́mite cuando dx tiende a cero se tiene
∂ ∂2u
(σA) + f = ρA 2 .
∂x ∂t
Finalmente, teniendo en cuenta la ley de Hooke
∂u
σ=E ,
∂x
se obtiene
∂2u ∂ ∂u
ρA − EA =f
∂t2 ∂x ∂x
Para el caso estacionario, es decir, con independencia del tiempo, la anterior
ecuación en derivadas parciales se convierte en la ecuación diferencial ordinaria
de segundo orden autoadjunta

d du
− E(x)A(x) = f (x) , (24.26)
dx dx
que es un caso particular de la ecuación (24.2).

Problema 24.1 (Deformación de una columna de hormigón)


Consideremos una columna de hormigón de altura H = 3m en forma de
prisma rectangular truncado. Tomando un sistema de referencia con x = 0
en la base de la columna, la sección transversal A(x) de la columna es un
rectángulo donde uno de los lados siempre vale 0,5m mientras que el otro varı́a
desde 1,5m en la base hasta 0,5m en la altura. Bajo estas condiciones es fácil
demostrar que A(x) = 3/4 − x/6 metros cuadrados. La columna soporta en su
parte superior una densidad de carga continua de 24 × 103 N/m2 mientras que
a una altura de dos metros tiene dos anclajes cargando 2 × 103 N cada uno de
ellos.
El hormigón tiene peso especı́fico w = 25×103 N/m3 y módulo de elasticidad
E = 28 × 109 N/m2 . Las fuerzas internas f (x) en el hormigón son debidas a su
propio peso, de manera que f (x) = −wA(x).
Queremos hallar los desplazamientos verticales que experimentan los puntos
de la columna. Para conseguirlo usaremos 30 elementos de longitud constante
h = 0,1m y una numeración global consecutiva de los nodos comenzando en el
nodo 1 en la base de la columna x = 0 y finalizando en el nodo 31 a la altura
máxima de la columna x = H. Mostrar la gráfica de los desplazamientos U en
función de la posición x.
316 Método de los Elementos Finitos

24.4. Fluidos Viscosos en Canalización Cilı́ndri-


ca
Consideremos un fluido viscoso laminar en una tuberı́a cilı́ndrica de radio R.
Debido a la geometrı́a del problema, tomaremos coordenadas cilı́ndricas (r, θ, z),
siendo z el eje de simetrı́a de la tuberı́a. Supondremos que la velocidad v de las
partı́culas de fluido sólo depende de la coordenada radial, es decir v(r). Se puede
demostrar en este caso que el perfil de velocidades verifica la ecuación diferencial

1 d dv dp
rμ = , (24.27)
r dr dr dz
que es un caso particular de la ecuación (24.2). En esta ecuación diferencial, μ
es la viscosidad dinámica del fluido cuyas unidades son Kg/ms y p es la pre-
sión en el interior del fluido con unidades N/m2 . Supondremos que p depende
únicamente de z y, por consideraciones fı́sicas dp/dz < 0. Las condiciones de
contorno asociadas a la ecuación (24.27) son v(R) = 0 y μdv(0)/dr = 0. La
primera condición tiene su origen en que, debido a la viscosidad, las moléculas
del fluido se adhieren a la pared de la tuberı́a. La segunda condición es debida
a la imposición de la anulación de tensiones de cizallamiento.

Observemos que, si la viscosidad μ es una constante independiente de r,


entonces es fácil integrar respecto de r la ecuación (24.27) y comprobar que v
depende de r a través de un polinomio de segundo grado, es el llamado perfil
parabólico de velocidades.
Problema 24.2 (Perfil de velocidades con viscosidad variable)
Consideremos una solución de glicerina que se desplaza por una tuberı́a de
radio R = 8cm y caida de presión de 100 N/m2 , es decir, dp/dz = −100 N/m2 .
Se sabe que la viscosidad de la solución de glicerina depende de la temperatura
T . Además, la tuberı́a está sometida a un gradiente radial de temperaturas
según la tabulación siguiente.

r(cm) 0 2 4 6 8
T (◦ C) 30 35 40 45 50
μ(Kg/ms) 0.40 0.28 0.20 0.12 0.10

A partir de la primera y tercera fila de dicha tabulación podemos reconstruir


la función μ(r) suponiendo que se comporta de forma lineal entre dos datos
consecutivos.

Queremos hallar el perfil de velocidades v(r) de la solución de glicerina.


Para conseguirlo usaremos 16 elementos de longitud constante h = 0,5m y una
numeración global consecutiva de los nodos comenzando en el nodo 1 en el centro
de la tuberı́a (r = 0) y finalizando en el nodo 17 para r = R = 8cm. Mostrar la
gráfica de la velocidad V en función de la posición r.
Capı́tulo 25

Problemas Variacionales
con Fronteras Fijas

25.1. Introducción
Sea E un espacio de funciones y(x) de clase C 1 [a, b] tomando valores fijos
en los extremos, es decir, y(a) = ya , y(b) = yb . Consideremos el funcional
J : E → R, definido de la forma
! b
J(y) = F (x, y, y  ) dx . (25.1)
a

El problema que nos planteamos consiste en hallar una función y(x) ∈ E que
sea un extremal (máximo o mı́nimo) del funcional J(y) definido en (25.1). Por
ejemplo, la función y ∗ (x) minimiza al funcional J si se verifica J(y ∗ ) ≤ J(y) para
todo y ∈ E. Por supuesto, el principal problema con el que nos encontramos y
que lo diferencia radicalmente de las técnicas utilizadas en los problemas clásicos
de hallar máximos y mı́nimos de funciones de varias variables es el hecho de que
la dimensión del espacio de funciones E es infinita.

25.2. Un método numérico


Sea n ∈ N y consideremos una partición equiespaciada del intervalo [a, b] con
longitud de paso h, es decir,

b−a
xi = a + ih , h = , i = 0, 1, . . . , n + 1 .
n+1

Consideremos las aproximaciones y(xi ) ≈ yi , con i = 1, . . . , n, con y(x0 ) =


y(a) = ya , y(xn+1 ) = y(b) = yb .

317
318 Problemas Variacionales con Fronteras Fijas

Realizamos la siguiente aproximación F (x, y, y  ) ≈ Fn (x, y1 , . . . , yn ) median-


te una interpolación constante a trozos:

yi − yi−1
Fn (x, y1 , . . . , yn ) = F xi , yi , , si x ∈ (xi , xi+1 ) , i = 1, . . . , n .
h

A continuación, aproximamos J(y) ≈ Jn (y1 , . . . , yn ), siendo la función Jn :


Rn → R definida de la forma
! 
n+1
b
yj − yj−1
Jn (y1 , . . . , yn ) = Fn (x, y1 , . . . , yn ) dx = F xj , yj , h.
a j=1
h

Una condición necesaria para que la función Jn tenga un extremos en el


punto crı́tico y ∗ = (y1∗ , . . . , yn∗ ) es ∇Jn (y ∗ ) = 0, siendo el operador gradiente
∇ = (∂/∂y1 , . . . , ∂/∂yn ).
Notemos que yi sólo aparece 3 veces de manera explı́cita en la expresión de
Jn . Más concretamente
 
yi − yi−1 yi+1 − yi
Jn (y1 , . . . , yn ) = h · · · + F xi , yi , + F xi+1 , yi+1 , ··· .
h h

Entonces

∂Jn ∂F yi − yi−1 ∂F yi − yi−1
= xi , y i , h +  xi , yi ,
∂yi ∂y h ∂y h

∂F yi+1 − yi
−  xi+1 , yi+1 , = 0 , i = 1, . . . , n. (25.2)
∂y h

De forma más compacta, si definimos las funciones fi (y1 , . . . , yn ) := ∂Jn /∂yi


según (25.2), la condición ∇Jn = 0 es equivalente al sistema de n ecuaciones
no lineal con n incógnitas f (y1 , . . . , yn ) = 0, siendo la función f : Rn → Rn
definida de la forma f = (f1 , . . . , fn ).
Buscaremos la solución del sistema no lineal mediante el método de Newton,
es decir,
y j = y j−1 − [Df (y j−1 )]−1 f (y j−1 ) , j = 1, 2, . . . ,
donde la condición inicial y 0 = (y10 , . . . , yn0 ) ∈ Rn debe ser dada. Observemos
que, en cada iteración, se ha de invertir la matriz Jacobiana Df (y j−1 ). Esto es
sencillo puesto que en nuestro caso dicha matriz Df es la matriz Hessiana de la
función Jn y es, por lo tanto, Df es una matriz simétrica, es decir,

∂fi ∂fj
= .
∂yj ∂yi

Por otra parte, debido a (25.2), se tiene

∂fi ∂ 2 Jn
=
∂yi−1 ∂yi ∂yi−1
25.3 El problema de la braquistocrona 319


∂2F yi − yi−1 ∂2F yi − yi−1 1
= − xi , y i , − 2 xi , yi , (25.3)
∂y∂y  h ∂y h h

∂fi ∂ 2 Jn ∂2F yi − yi−1 ∂2F yi − yi−1
= = xi , yi , h+2 xi , yi ,
∂yi ∂yi2 ∂y 2 h ∂y∂y  h
2
2

∂ F yi − yi−1 1 ∂ F yi+1 − yi 1
+ 2 xi , yi , + xi+1 , yi+1 , (25.4)
∂y h h ∂y 2 h h
2 2

∂fi ∂ Jn ∂ F yi+1 − yi
= =− xi+1 , yi+1 ,
∂yi+1 ∂yi ∂yi+1 ∂y∂y  h
2

∂ F yi+1 − yi 1
− 2 xi+1 , yi+1 , , (25.5)
∂y h h

siendo el resto de elementos de la matriz nulos, de modo que la matriz es además


tridiagonal.

25.3. El problema de la braquistocrona


El problema de la braquistocrona o curva de descenso más rápida, es pro-
puesto y resuelto por el eminente matemático de origen suizo Johann Bernoulli
en 1696, aunque también dieron soluciones otros contemporáneos suyos como
Jacob Bernoulli, Leibniz y Newton. Dicho problema consistı́a en determinar
cuál, de entre todas las posibles trayectorias, era la que llevaba a una partı́cula
sin rozamiento en el menor tiempo posible, desde un punto A hasta otro punto B
en el mismo plano vertical, sujeta sólo a la acción de la gravedad. Para resolver
este problema, se deben de considerar todas las infinitas curvas que pasan por
A y B, de modo que, a cada una de ellas se le asigna un tiempo (el invertido
por el punto material en descender desde A hasta B) y nos hemos de quedar
con la curva con menor tiempo asociado.
Veamos cómo formularlo matemáticamente. Consideremos el plano vertical
de coordenadas cartesianas x e y que contiene a los puntos A y B. Obviamente,
la curva solución debe estar contenida en dicho plano. Tomemos el punto A como
el origen de coordenadas, el eje x de abscisas con sentido positivo hacia donde
apunta la gravedad y, sea B = (x1 , y1 ) con x1 > 0 e y1 ≥ 0. Consideremos
una curva en dicho plano arbitraria y descrita por la gráfica y = y(x) con
0 ≤ x ≤ x1 . Supondremos que la curva es suave, es decir, es de clase C 1 en
su dominio. Además impondremos que los puntos inicial y final de dicha curva
sean A y B respectivamente, es decir, y(0) = 0 e y(x1 ) = y1 .
La masa m, en su descenso, conserva su energı́a mecánica puesto que no
hay rozamiento. Supondremos que parte con velocidad inicial nula del punto A.
Entonces, la energı́a mecánica en A vale EA = mghA , siendo EA > 0 y hA la
altura a la que se encuentra el punto A. Conservando la energı́a mecánica en
cualquier otro punto de la trayectoria de la partı́cula se tiene

1
mv 2 + mgh = mghA ,
2
320 Problemas Variacionales con Fronteras Fijas

de modo que v 2 = 2g(hA − h). Con el sistema de referencia tomado está claro
que x = hA − h, de modo que, la ecuación diferencial que rige el movimiento de
la masa m es
ds 
v := = 2gx ,
dt
siendo v el módulo de la velocidad que tiene la partı́cula cuando se encuentra en
un punto con coordenada
 (x, y(x)) y ds el elemento de longitud de la trayectoria.
Sabemos que, ds = 1 + y  (x)2 dx, de modo que se obtiene

1 + y  (x)2 dx
dt = √ .
2gx

Integrado esta expresión se obtiene el tiempo total T que tarda la masa m en


recorrer la curva y = y(x) desde el punto A hasta el punto B. En concreto se
tiene que
! x1 
1 1 + y  (x)2
T = J(y) = √ dx .
2g 0 x
Hallar la braquistocrona consiste en obtener, de entre todas las funciones y(x)
definidas para 0 ≤ x ≤ x1 , con y(0) = 0 e y(x1 ) = y1 , aquella que corresponda
al menor valor del funcional J(y).
Cabe destacar aquı́ que, la solución de este problema viene dado por la
famosa curva llamada cicloide, cuya ecuación paramétrica es
1 1
x(t) = (1 − cos t) , y(t) = 2 (t − sin t) ,
k2 k
siendo k una constante adecuada, ver por ejemplo [9].

Problema 25.1 Utilizar el algoritmo numérico de la sección anterior para


aproximar la curva de descenso más rápida (braquistocrona) que pasa por los
puntos de coordenadas (x0 , y0 ) = (0, 0) y (x1 , y1 ) = (3, 3).
Datos de entrada: Los extremos a y b del intervalo de abscisas; el número
de nodos n; un criterio de parada en la iteración de Newton, por ejemplo,
nmax el número máximo de iteraciones; las condiciones de frontera y(a) =
ya e y(b) = yb .
Tomar, para la iteración inicial del método de Newton, una interpolación
lineal entre los extremos, es decir, la recta que pasa por (a, ya ) y (b, yb ).
Salida: La tabulación (xi , yi ) con xi abscisas equiespaciadas e y(xi ) ≈ yi .
Finalmente comparar el resultado numérico aproximado con la solución
exacta mediante superposición de gráficas.
Capı́tulo 26

Introducción a
Mathematica

26.1. Introducción
En este apéndice se pretende dar unas breves nociones sobre algunos de los
comandos utilizados por el programa Mathematica1 .
Además, la ayuda en Mathematica para conocer información detallada
sobre un cierto comando puede realizarse escribiendo ?? delante del nombre del
comando o bien acudiendo al menú de ayuda.

26.2. Estructuras de datos: Listas


Una lista es para Mathematica una estructura de datos cuyos elementos
aparecen ordenados antre llaves y separados por comas. En realidad, los vectores
y matrices son casos particulares de listas. Por ejemplo, el vector x y la matriz
A siguientes

1 2
x = (1, 2, 3) ∈ R3 , A = ∈ M2 (R) ,
3 4

son representados por Mathematica a través de las listas

x = {1, 2, 3} , A = {{1, 2}, {3, 4}} .

Cuando un comando de Mathematica es aplicado a una lista, este de-


vuelve otra lista de las mismas dimensiones donde ha aplicado dicho comando
a todos los elementos de la lista. Ası́, por ejemplo, si y = {x, Sin[x], Exp[x]},
1 Por supuesto, una guı́a completa y mucho más detallada sobre las posibilidades de

Mathematica se encuentra en el manual del programa contenido en la página web


http://documents.wolfram.com/v5/TheMathematicaBook/index.html

321
322 Introducción a Mathematica

entonces puedo integrar respecto de la variable x a todos los elementos de la


lista y de la forma Integrate[y, x]. El resultado que devuelve Mathematica es
{x2 /2, −Cos[x], Exp[x]}.
Si los elementos de una lista se generan a partir de una cierta función f , en-
tonces, se puede utilizar el comando T able[] de la forma T able[f, {i, imin , imax , d}].
Por ejemplo T able[i ∧ 2, {i, 0, 6, 2}] produce la lista {0, 4, 16, 36}. De igual modo,
por ejemplo, la matriz de Hilbert de orden 3 se genera de la forma T able[1/(i +
j − 1), {i, 1, 3, 1}, {j, 1, 3, 1}].

En la programación con Mathematica resulta muy util poder obtener de


forma individualizada los elementos de una cierta lista. En concreto, z[[i]] y
w[[i, j]] devuelven los elementos i-ésimo de la lista z y el elemento que ocupa la
posición fila i columna j de la lista w. De esta forma, si z = {a, a2 , a5 }, entonces
z[[1]] vale a, z[[2]] vale a2 y z[[3]] vale a5 . De forma análoga, si w = {{a, b}, {c, d}}
entonces w[[1]] equivale a {a, b} y w[[2]] es {c, d}. Sin embargo w[[1, 1]] es a,
w[[1, 2]] es b, w[[2, 1]] es c y w[[2, 2]] es d.

Existen diversos comandos de Mathematica que nos permiten modificar,


an̄adir o eliminar elementos de listas. Por ejemplo, P repend[x, e] y Append[x, e]
an̄aden el elemento e a la lista x como el primer elemento y el último respectiva-
mente. Por ejemplo P repend[{a, b, c}, e] devuelve {e, a, b, c} y Append[{a, b, c}, e]
devuelve {a, b, c, e}.

Otra función interesante aplicable a listas es el comando Length[x], que da


como resultado el número de elementos de la lista x. Ası́, Length[{a, b, c}] vale
3, mientras que Length[{{a, b, c}, {d, e, f }}] es 2.

Una forma de visualizar los elementos de una lista x en forma de una tabla es
mediante el comando T ableF orm[x]. Por ejemplo, la salida que produce Math-
ematica tras el comando T ableF orm[{{1, 2}, {3, 4}}] es
1 2
3 4

26.3. Funciones
Si se desea definir una función real de variable real f : R → R, por ejemplo,
x3 exp(2x)
f (x) = ,
sin x
la forma de realizarlo es
f [x ] := (x ∧ 3 ∗ Exp[2 ∗ x])/Sin[x] .
Para evaluar la función f en un punto, por ejemplo x0 , simplemente se escribe
f [x0 ].
26.4 Representación Gráfica 323

Por supuesto también es posible definir una función real de varias variables
reales f : Rm → R. Por ejemplo, para definir la función

f (x, y) = x3 − 3xy ,

escribirı́amos la sentencia

f [x , y ] := x ∧ 3 − 3 ∗ x ∗ y

de modo que para evaluarla en el punto (x0 , y0 ) simplemente se escribe f [x0 , y0 ].


El argumento de la función de varias variables también puede ser único, es decir,
en forma de una lista. Ası́, la anterior función se hubiera definido como

f [{x , y }] := x ∧ 3 − 3 ∗ x ∗ y

y su evaluación de la forma f [{x0 , y0 }].

Finalmente, para definir funciones vectoriales reales de varias variables reales


f : Rm → Rn como puede ser

f (x, y) = (x3 y, cos x, exy ) ,

escribirı́amos la sentencia

f [x , y ] := {x ∧ 3 ∗ y, Cos[x], E ∧ (x ∗ y)} .

26.4. Representación Gráfica


En esta sección veremos algunas de las capacidades gráficas del programa
Mathematica.
Para dibujar la gráfica de la función de una variable y = f (x) en el intervalo
a ≤ x ≤ b el comando a utilizar es P lot[f, {x, a, b}].
El comando P lot[] tiene una gran variedad de opciones que nos permiten,
por ejemplo, dar un tı́tulo a la gráfica, etiquetar los ejes coordenados o bien
modificarlos, elegir el origen de coordenadas, dar colores a las gráficas y un
largo etcétera que puede consultarse en el manual del programa.

Si se tienen diversas gráficas, es posible realizar una superposición de ellas


con el comando Show[graf ica1 , graf ica2 . . . , graf ican ].

Una instrucción muy util que nos permitirá, dada una nube de puntos, re-
presentarlos gráficamente es el comando ListP lot[]. La forma de utilizarlo es la
siguiente. Consideremos una conjunto de puntos en el plano (xi , yi ) ∈ R2 con
i = 1, . . . , n. Entonces introduciendo

ListP lot[{{x1 , y1 }, {x2 , y2 }, . . . , {xn , yn }}, P lotStyle− > P ointSize[0  02]]


324 Introducción a Mathematica

se dibujan los puntos en el plano. P lotStyle− > tiene diversas opciones (ver
el manual del programa), nosotros hemos utilizado una opción que nos permite
controlar el taman̄o de los puntos. Si además se utiliza
ListP lot[{{x1 , y1 }, {x2 , y2 }, . . . , {xn , yn }}, P lotJoined− > T rue]
entonces los puntos representados serán unidos por una recta. También es posi-
ble crear gráficas con colores mediante la opción P lotStyle− > Hue[m], con
0 ≤ m ≤ 1, de manera que a medida que aumenta m se pasa por rojo, amarillo,
verde, azul, etc...

En muchas ocasiones la nube de puntos proviene de un fichero de datos


llamado, por ejemplo, puntos.dat con la estructura siguiente
x1 y1
x2 y2
.. ..
. .
xn yn
Entonces, con la instrucción
ReadList[”puntos.dat”, N umber, RecorLists− > T rue]
se cargará la nube de puntos desde el fichero hacia una lista de la forma
{{x1 , y1 }, {x2 , y2 }, . . . , {xn , yn }} .
Para las gráficas en 3D se dispone de comandos análogos a los presentados
anteriormente en 2D. Ası́, para dibujar la gráfica de la función de dos variable
z = f (x, y) en el dominio rectangular a ≤ x ≤ b, c ≤ y ≤ d el comando a utilizar
es P lot3D[f [x, y], {x, a, b}, {y, c, d}].
Por otra parte, consideremos una conjunto de puntos en el R3 (xi , yi , zi ) con
i = 1, . . . , n. Entonces introduciendo
ListP lot3D[{{x1 , y1 , z1 }, . . . , {xn , yn , zn }}, P lotStyle− > P ointSize[0  02]]
se dibujan los puntos en el espacio.

Los gráficos obtenidos se pueden exportar a otras aplicaciones. En algunos


casos simplemente copiando y pegando desde el menú Edit. También se puede
utilizar el comando
Display[”nombre.ext”, graf ico, ”tipo”]
de modo que el gráfico llamado graf ico se graba en un fichero llamado nombre.ext
que es de un cierto tipo. Los posibles tipo son: EPS, PDF, Ilustrator, PICT,
Metafile, TIFF, GIF, PSImage, XBitmap, PCL, MGF y PBM. Por ejemplo:
dibujo = P lot[Sin[x], {x, 0, P i}]
Display[”graf ica.eps”, dibujo, ”EP S”]
26.5 Matrices y Sistemas Lineales 325

guarda el dibujo en el fichero graf ica.eps que está en formato EP S. A partir


de la versión 6 de Mathematica, la orden Display[] está obsoleta y se utiliza la
instrucción
Export[”nombre.ext”, graf ico]

26.5. Matrices y Sistemas Lineales


Para visualizar los elementos de una matriz A en Mathematica se usa el co-
mando M atrixF orm[x]. Por ejemplo, el comando M atrixF orm[{{1, 2}, {3, 4}}]
produce

1 2
.
3 4

La matriz identidad de orden n ∈ N se puede genera con el comando

IdentityM atrix[n]

Por ejemplo IdentityM atrix[2] devuelve {{1, 0}, {0, 1}}.

Si A y B son dos matrices del mismo orden, A+B, A−B y k ∗A representan


la suma, resta y producto por un escalar k. Si A y B se pueden multiplicar,
entonces A.B es su matriz producto.
Sea A ∈ Mn (R). Su determinante es Det[A]. Si además A es inversible, su
matriz inversa es Inverse[A].
Por otra parte, la traspuesta de la matriz A es T ranspose[A].

Sea A ∈ Mn (R) y b ∈ Rn . La solución del sistema lineal Ax = b viene


dada por el comando LinearSolve[A, b]. Por ejemplo, en Mathematica, el co-
mando LinearSolve[{{1, 1}, {1, −1}}, {2, 0}] produce por salida el vector {1, 1}.
Recordemos que si el sistema lineal es compatible indeterminado, entonces
LinearSolve[A, b] sólo da una solución particular del sistema.

26.6. El Lenguaje de Programación


El programa Mathematica, además de los múltiples comandos que lleva
incorporados y nos permiten resolver de manera exacta o bien aproximada una
gran variedad de problemas, dispone también de un lenguaje de programación
de alto nivel.

26.6.1. Tipos de números


Mathematica puede trabajar de forma simbólica, es decir, con precisión
infinita. En realidad la precisión depende únicamente de la memoria que dispone
326 Introducción a Mathematica

el ordenador con el que se trabaja. Las operaciones con números enteros se


realizan de forma exacta. Por ejemplo, el número factorial 215! da

463908967738245731201181971316266541335354
606980986542278147922285826879934715156756
753035191305059570813964428091287791299849
47682780134232434682183959939102665927776
439857317019738245619747364381030569622906
549543129198965152594576297260803180404842
596116964782060639065966089166712338842834
343045860606296811709288710361986642298681
053856193817242616463360000000000000000000
000000000000000000000000000000000

Los números racionales son también tratados de forma exacta. Por ejemplo
(2/5 + 7/4) ∧ 2 − 1/2 devuelve 1649/400. Nótese la diferencia con (2/5 + 7/4) ∧
2 − 0,5 que devuelve la aproximación 4,1225.
Respecto a los números irracionales, debido a sus infinitas cifras decimales,
o bien se trabaja con ellos de forma simbólica o bien son aproximados
√ con
un número finito de decimales. Por ejemplo Sqrt[2] devuelve 2. Sin embargo
N [Sqrt[2]] da la aproximación numérica 1,41421 o bien la aproximación con 20
dı́gitos 1,4142135623730950488. Otro ejemplo es la aproximación del número π
con 30 dı́gitos dada por N [P i, 30] que da

3,14159265358979323846264338328

Finalmente, recordar que Mathematica también trabaja √ con números com-


plejos. La representación de a + ib ∈ C con a, b ∈ R y i = −1 es a + I ∗ b. Por
ejemplo (I + 3) ∧ 2 − 7/4 + 2 ∗ I devuelve 25/4 + 8i.

26.6.2. Entradas de datos


En esta sección describiremos cómo entrar datos desde Mathematica ası́ co-
mo desde un archivo.

Por ejemplo, si se requiere que el usuario introduzca un número real y este sea
asignado a la variable z, la sintaxis será z = Input[”introduzca un numero real”].

En ocasiones los datos se introducen desde un fichero de forma automatizada.


En primer lugar, el operador !! muestra el contenido de un fichero. Por ejemplo
!!valores.dat muestra el contenido del fichero valores.dat. Para leer un fichero
de datos y cargarlo en una lista, ver la sección Estructura de datos: Listas.
26.6 El Lenguaje de Programación 327

26.6.3. Asignación de variables


No es necesario declarar variables al principio de un programa. Los nom-
bres de las variables no pueden coincidir con los nombres de ninguna de las
instrucciones de Mathematica. Además, recordar√que Mathematica asigna
las letras E, I y P i a las constantes e = 2  71828..., −1 ∈ C y π = 3  141592....
La forma de asignar un cierto valor a una variable es variable = valor.
Se pueden utilizar estructuras tı́picas de la programación como son variable =
variable + numero con lo cual, el actual valor de variable es el que tenı́a más
numero.
Si se utiliza un punto y coma al final de una asignación, o de cualquier
otra instrucción, Mathematica realiza la asignación pero no devuelve ningún
resultado por pantalla. Esto es muy útil en la programación cuando no se quieren
ver por pantalla los cálculos intermedios de un programa.
Para borrar el valor de una variable se utiliza la instrucción Clear[variable].

26.6.4. Iteraciones y bucles


La sentencia F or[variable = inicial, condicion, incremento, proceso] repite
el proceso que se especifique para los valores de variable desde el valor inicial,
mientras que la condicion sea cierta, incrementando en incremento los valores
de variable después de cada iteración. Por ejemplo

F or[i = 1, i <= 5, i + +, P rint[Integrate[x ∧ i, x]]]

imprime por pantalla las primitivas de las funciones xi para i = 1, 2, . . . , 5.

La sentencia Do[proceso, {variable, inicial, f inal, incremento}] repite lo de-


scrito en proceso para los valores de variable desde el valor inicial hasta el f inal,
aumentando en incremento los valores de variable después de cada iteración.
Por ejemplo
Do[P rint[Integrate[x ∧ i, x]], {i, 1, 5, 1}]

imprime otra vez por pantalla las primitivas de las funciones xi para i =
1, 2, . . . , 5.

La sentencia W hile[condicion, proceso] realiza proceso mientras sea cierta


condicion. Por ejemplo

i = 1;
W hile[i <= 5, P rint[Integrate[x ∧ i, x]]; i = i + 1]

vuelve a imprimir por pantalla las primitivas de las funciones xi para i =


1, 2, . . . , 5.
328 Introducción a Mathematica

26.6.5. Condicionales y operadores lógicos


La sentencia If [condicion, accion] realiza lo siguiente: si condicion es cierta
entonces realiza accion. Incluso puede ser más general, de modo que la sentencia

If [condicion, accion − verdadera, accion − f alsa]

realiza accion − verdadera si condicion es cierta y en caso contrario realiza


accion − f alsa.
Por ejemplo, se puede definir la función partida

ln x si x > 0 ,
f (x) =
sin x si x ≤ 0 ,

de la forma
f [x ] = If [x > 0, Log[x], Sin[x]]
En muchas ocasiones, es necesario incluir en las sentencias condicionales
anteriores algún operador lógico. Estos operadores son

Operador Significado
! NO
&& Y
|| O

26.6.6. Sentencias de control


Existen unas sentencias de control que permiten o bien detener o bien con-
trolar el desarrollo de un cierto programa. Por ejemplo Break[] abandona el
bloque que se está realizando en ese momento. Return[expresion] abandona el
proceso que se realiza y devuelve el valor expresion.

26.7. Cálculo Numérico


26.7.1. Errores
Debido a errores de redondeo, se define el epsilon de la máquina como el
mayor número positivo  tal que 1 + x = 1 para todo x ∈ (0, ). Si intentamos
averiguar el menor número n ∈ N tal que  ≥ 10−n con un programa escrito en
el lenguaje de Mathematica podrı́amos intentar lo siguiente.

F or[n = 1, n <= 1000, n + +,


If [1 + 10 ∧ (−n) == 1, P rint[”El valor de n es”, n]; Break[]]
]

Se comprueba que, con el anterior programa, no se produce ninguna salida. Pero


esto no significa que  < 10−1000 . Lo que ha ocurrido es que Mathematica ha
26.7 Cálculo Numérico 329

operado de modo simbólico, es decir exacto. Se puede forzar a un cálculo con


decimales, por ejemplo, escribiendo un punto en la suma efectuada de la forma

F or[n = 1, n <= 1000, n + +,


If [1. + 10 ∧ (−n) == 1, P rint[”El valor de n es”, n]; Break[]]
]

Ahora, la salida del programa es

El valor de n es 14

Un sencillo ejercicio donde se muestra el efecto debido al epsilon de la


máquina es el siguiente. Se sabe que
n
1
e = lı́m 1 + = 2,7182818.....
n→∞ n

Vamos a ir almacenando en una lista calculo las aproximaciones al número e


obtenidas a medida que se aumenta el número n.

calculo = {};
F or[n = 1, n <= 20, n + +, AppendT o[calculo, (1. + 1/10 ∧ n) ∧ (10 ∧ n)];
]
calculo

Se obtiene la siguiente lista de salida.

{2  59374, 2  70481, 2  71692, 2  71815, 2  71827,


2  71828, 2  71828, 2  71828, 2  71828,
2  71828, 2  71828, 2  71852, 2  71611, 2  71611,
3  03504, 1, 1, 1, 1, 1}

Se observa como a medida que n aumenta, las aproximaciones obtenidas del


número e son mejores hasta que llega un momento, en que van empeorando,
llegando a estabilizarse en 1.

Siempre que se restan magnitudes muy próximas, se produce un error por


cancelación con la consiguiente pérdida de cifras significativas. Si además esta
resta es multiplicada por√ un número
√ grande, el error se verá aumentado. Por
ejemplo, la expresión x( x + 1 − x) para x ≥ 0 es equivalente, multiplicando
y dividiendo por el conjugado, a la expresión
x
√ √ ,
x+1+ x

de donde se √
ve que, para
√ valores grandes de x es aproximadamente igual a x/2
puesto que x + 1 ≈ x. Sin embargo, la primera expresión es prácticamente
330 Introducción a Mathematica

cero debida a errores de redondeo en la resta entre paréntesis. Veamos este efecto
de los errores por cancelación con el siguiente programa.

calculo = {};
F or[n = 1, n <= 20, n + +,
mal = 10 ∧ n ∗ (Sqrt[10 ∧ n + 1.] − Sqrt[10 ∧ n]);
bien = 10 ∧ n/(Sqrt[10 ∧ n + 1.] + Sqrt[10 ∧ n]);
AppendT o[calculo, {mal, bien}];
]
T ableF orm[calculo, T ableHeadings− > {N one, {”M AL”, ”BIEN ”}}]

La salida del programa es la siguiente.

M AL BIEN
1  54347 1  54347
4  98756 4  98756
15  8074 15  8074
49  9988 49  9988
158  113 158  113
.. ..
. .
5  02914 106 5  106
1  49012 107 1  58114 107
0 5  107
0 1  58114 108
.. ..
. .
0 5  109

26.7.2. Polinomio interpolador


Con Mathematica es posible hallar el polinomio Pn (x) de grado menor o
igual que n que interpola a una nube de puntos (xi , yi ) para i = 0, 1, . . . , n. La
sintaxis a utilizar es

InterpolatingP olynomial[{{x0 , y0 }, {x1 , y1 }, . . . , {xn , yn }}, x] .

Observar que el primer argumento es una lista que contiene las coordenadas de la
nube de puntos y el segundo argumento es el nombre de la variable del polinomio
interpolador. Por ejemplo, la recta en el plano que pasa por los puntos (0, 1) y
(3, 7) se puede obtener de la forma InterpolatingP olynomial[{{0, 1}, {3, 7}}, x],
siendo la solución 1 + 2x.

26.7.3. Aproximación lineal por mı́nimos cuadrados


m
Mathematica tiene la posibilidad de hallar la función f ∗ (x) = i=1 ci ϕi (x)
que mejor aproxima a la nube de puntos (xi , yi ) para i = 0, 1, . . . , n. Aquı́, ci ∈ R
y ϕi (x) son funciones dadas linealmente independientes.
26.7 Cálculo Numérico 331

La sintaxis a utilizar es

F it[{{x1 , y1 }, . . . , {xn , yn }}, {ϕ1 [x], . . . , ϕm [x]}, x] .

Observar que el primer argumento es una lista que contiene las coordenadas de
la nube de puntos, el segundo argumento es una lista con las funciones base y el
tercero el nombre de la variable. Por ejemplo, la recta de regresión en el plano
que pasa por los puntos (xi , yi ) para i = 0, 1, . . . , n se puede obtener de la forma

F it[{{x1 , y1 }, . . . , {xn , yn }}, {1, x}, x] .

26.7.4. Integración
Con el comando N Integrate[f, {x, a, b}] se obtiene una aproximación numéri-
ca de la integral
! b
f (x) dx .
a

Por supuesto, si es posible, se puede obtener el valor exacto de la anterior integral


mediante el comando Integrate[f, {x, a, b}]. Veamos algunos ejemplos:
e
La integral 0
sin x dx se calcula de forma exacta y numérica, es decir,

Integrate[Sin[x], {x, 0, E}]

produce 1 − Cos[e], mientras que con el comando numérico

N Integrate[Sin[x], {x, 0, E}]

devuelve 1  91173.
1 2
Para la integral 0 ex dx, el comando Integrate[E ∧ (x ∧ 2), {x, 0, 1}]

de Mathematica devuelve 12 πErf i[1], es decir, utiliza la función error
iz
imaginaria Erf i[] que está definida como Erf i[z] := i√2π 0 exp(−t2 ) dt.
Sin embargo N Integrate[E ∧ (x ∧ 2), {x, 0, 1}] da el valor aproximado
1  46265.

26.7.5. Raı́ces de ecuaciones


Consideremos una ecuación polinomial de grado n, es decir, p(x) = 0 con
p ∈ Rn [x], siendo Rn [x] el conjunto de los polinomios de grado n. Se sabe,
gracias a la teorı́a de Galois, que en general no es posible hallar de manera
exacta (mediante radicales) las raı́ces de dicha ecuación cuando n ≥ 5.
El comando Solve[p == 0, x] de Mathematica intenta hallar la solu-
ción exacta de dicha ecuación. Cuando esto no sea posible, el comando de
N Solve[p == 0, x] obtiene la aproximación numérica de dichas raı́ces. En ambos
casos, las raı́ces las ordena en una lista. Veamos algunos ejemplos:
332 Introducción a Mathematica

Las raı́ces de la ecuación polinomial x3 − 2x = 0 se calculan de forma


exacta y numérica,
√ √ Solve[x ∧ 3 − 2x == 0, x] produce {{x− >
es decir,
0}, {x− > − 2}, {x− > 2}}, mientras que con el comando numérico
N Solve[x∧3−2x == 0, x] devuelve {{x− > 0}, {x− > −141421}, {x− >
1  41421}}.

A diferencia del apartado anterior, si se pretenden hallar de forma excta


las raı́ces de la ecuación polinomial x5 − x − 2 = 0 utilizando Solve[x ∧
5 − x − 2 == 0, x], entonces Mathematica fracasa. Sin embargo, de
forma numérica, utilizando N Solve[x ∧ 5 − x − 2 == 0, x] obtiene {{x− >
−0  894548 − 0  534149i}, {x− > −0  894548 + 0  534149i}, {x− > 0 
260964 − 1√ 17723i}, {x− > 0  260964 + 1  17723i}, {x− > 1  26717}},
donde i = −1 ∈ C. Nótese cómo no sólo aproxima las raı́ces reales si no
también las complejas.

Si se desea hallar de forma exacta o en su defecto una aproximación numérica


de las soluciones de un sistema de ecuaciones polinomiales pi (x1 , . . . , xm ) = 0
con i = 1, . . . , m, siendo pi ∈ Rn [x1 , . . . , xm ], la forma de proceder es

Solve[{p1 == 0, . . . , pm == 0}, {x1 , . . . , xm }]

o bien
N Solve[{p1 == 0, . . . , pm == 0}, {x1 , . . . , xm }]
respectivamente. Ası́, los puntos de corte entre la circunferencia unidad x2 +y 2 =
1 y la recta bisectriz del segundo cuadrante y = −x se calculan de forma exacta
mediante Solve[{x∧2+y∧2−1 == 0, x+y √ == 0}, {x, y}]
√ obteniéndose√las pare-
jas de
√ coordenadas en la lista {{x− > −1/ 2, y− > 1/ 2}, {x− > 1/ 2, y− >
−1/ 2}}. De forma numérica se tiene N Solve[{x ∧ 2 + y ∧ 2 − 1 == 0, x + y ==
0}, {x, y}] que produce por resultado la aproximación {{x− > −0707107, y− >
0  707107}, {x− > 0  707107, y− > −0  707107}}.

Consideremos ahora una ecuación trascendente f (x) = 0. El comando

N Solve[f == 0, x]

de Mathematica intenta hallar una solución aproximada de la ecuación trascen-


dente, aunque en este caso el éxito no está garantizado. Por ejemplo, si se
utiliza Solve[E ∧ x − Sin[x] == 0] no se obtendrá ninguna raı́z como res-
puesta de Mathematica. Sin embargo, existe otro comando cuya sintaxis es
F indRoot[f, {x, x0 }] que implementa el método de Newton-Raphson para hallar
una raı́z de la ecuación f (x) = 0 comenzando la iteración de Newton-Raphson
en el punto inicial x0 . Ası́, F indRoot[E ∧ x − Sin[x], {x, 1}] converge hacia la
raı́z {x− > −6  28131}. Por supuesto no halla todas las raı́ces de la ecuación
f (x) = 0, observar que en el ejemplo propuesto existen infinitas raı́ces nega-
tivas y ninguna positiva mediante un simple análisis gráfico de las funciones
involucradas.
26.7 Cálculo Numérico 333

Se puede realizar un análisis gráfico previo a la resolución de la ecuación


f (x) = 0 dibujando la gráfica de la función y = f (x) y observando visualmente
por qué zona del eje de abscisas se produce el corte. De este modo se tiene una
estimación inicial de x0 .

Si se desea hallar una aproximación numérica de alguna solución de un sis-


tema de ecuaciones trascendente fi (x1 , . . . , xm ) = 0 con i = 1, . . . , m, se puede
utilizar el comando

F indRoot[{f1 , . . . , fm }, {y1 , . . . , ym }]

que utiliza el método de Newton-Raphson con un punto inicial (y1 , . . . , ym ) ∈


Rm .
Por ejemplo, dado el sistema de ecuaciones sin x−y+2 = 0, x2 +tan(xy)−1 =
0, el comando F indRoot[{Sin[x] − y + 2, x ∧ 2 + T an[x ∗ y] − 1}, {x, 0}, {y, 1}]
devuelve {x− > 1  05524, y− > 2  87002}.

26.7.6. Ecuaciones diferenciales ordinarias


Consideremos la ecuación diferencial ordinaria de primer orden

dy
= f (x, y) .
dx
Mathematica intenta hallar la solución general exacta y(x) mediante el co-
mando DSolve[y  [x] == f [x, y[x]], y[x], x]. Por ejemplo, para hallar la solución
general exacta de la ecuación diferencial lineal de primer orden dy/dx = y + 2x,
mediante la instrucción DSolve[y  [x] == y[x] + 2 ∗ x, y[x], x] se obtiene

{{y[x]− > −2(1 + x) + ex C[1]}} .

La constante arbitraria de integración es denotada en la expresión anterior por


C[1]. Si se pretende hallar una solución particular de manera exacta, es dedir,
resolver el problema de Cauchy

dy
= f (x, y) , y(x0 ) = y0 , (26.1)
dx
entonces la condición inicial y(x0 ) = y0 se introduce de la forma DSolve[{y  [x] ==
f [x, y[x]], y[x0 ] == y0 }, y[x], x]. De este modo, la solución exacta del prob-
lema de valor inicial dy/dx = y + 2x con y(0) = 1 mediante el comando
DSolve[{y  [x] == y[x] + 2 ∗ x, y[0] = 1}, y[x], x] es

{{y[x]− > −2(1 + x) + 3ex }} .

Sin embargo, sabemos que existen muchas ecuaciones diferenciales de este


tipo que no admiten expresar su solución general mediante funciones elemen-
tales. Por ejemplo, para la ecuación diferencial de Riccati dy/dx = y 2 + 2xy,
334 Introducción a Mathematica

la sintaxis DSolve[y  [x] == y[x] ∧ 2 + 2 ∗ x ∗ y[x], y[x], x] devuelve la solución


general  
2
2ex
y[x]− > − √ ,
2C[1] + πErf i[x]

expresada a través de la función error imaginaria Erf i[] que se ha visto ante-
riormente que es una expresión integral y no es por lo tanto de ayuda. Es en
este tipo de casos donde los métodos numéricos tienen sentido de ser aplicados.

La solución numérica del problema de Cauchy (26.1) en el intervalo x ∈


[a, b] se obtiene con Mathematica mediante el comando N DSolve[{y  [x] ==
f [x, y[x]], y[x0 ] == y0 }, y, {x, a, b}]. En este caso, Mathematica devuelve lo
que el llama una InterpolatingFunction. Esta solución puede ser dibujada e
incluso evaluada en un punto.
Veamos un ejemplo de cómo proceder. Consideremos el problema de Cauchy
definido por una ecuación diferencial de Abel dy/dx = −y 3 +xy tal que y(0) = 1.
Utilizando el comando

solucion = N DSolve[{y  [x] == −y[x] ∧ 3 + x ∗ y[x], y[0] == 1}, y, {x, 0, 10}]

Mathematica devuelve

{{y− > InterpolatingF unction[0., 10., ” <> ”]}}

Observar que hemos llamado solucion a la anterior función. Podemos dibujar


la solución y(x) del problema de Cauchy anterior en el intervalo 0 ≤ x ≤ 10
mediante el comando

P lot[y[x]/.solucion, {x, 0, 10}]

con lo cual Mathematica produce la gráfica de la Figura 26.1.

2.5

1.5

2 4 6 8 10

Figura 26.1: Gráfica de la solución del problema de cauchy asociado a la ecuación


de Abel.

Además, mediante el comando y[5]/.solucion se obtiene el valor de la solu-


ción y(x) en x = 5. En concreto Mathematica da {2  21258}.
26.7 Cálculo Numérico 335

Por supuesto Mathematica permite también resolver de forma exacta si se


puede o, en su defecto, de forma numérica una ecuación diferencial o problema
de Cauchy de orden superior a 1. La sintaxis de los comandos es totalmente
análoga a la descrita anteriormente para las ecuaciones diferenciales de primer
orden. De este modo, la solución general de la ecuación diferencial de segundo
orden d2 y/dx2 = 4y + x viene dada, mediante el comando DSolve[y  [x] ==
4 ∗ y[x] + x, y[x], x], por
44 x 55
y[x]− > − + C[1]e−2x + C[2]e2x ,
4
siendo C[1] y C[2] dos constantes arbitrarias de integración. Del mismo modo,
el problema de Cauchy de segundo orden d2 y/dx2 = 4y + x con y(0) = 1,
dy/dx(0) = 2 se resuelve de manera exacta mediante DSolve[{y  [x] == 4 ∗
y[x] + x, y[0] == 1, y  [0] == 2}, y[x], x] obteniéndose
 
1 −2x 2x
y[x]− > (−e + 17e − 4x) .
16
Los problemas de Cauchy de orden superior se resuelven también de forma
numérica. Por ejemplo, volviendo al caso d2 y/dx2 = 4y + x con y(0) = 1,
dy/dx(0) = 2 se tendrı́a
solucion = N DSolve[{y  [x] == 4 ∗ y[x] + x, y[0] == 1, y  [0] == 2}, y, {x, 0, 10}]
Mathematica devuelve la función y(x) dada por
{{y− > InterpolatingF unction[0., 10., ” <> ”]}}
que obviamente puede graficarse y evaluarse como hemos comentado anterior-
mente.

Finalmente, comentemos que los sistemas de ecuaciones diferenciales tam-


bién pueden resolverse de forma exacta o bien de forma numérica. Ası́, si se pre-
tende hallar la solución general del sistema de ecuaciones diferenciales dyi /dx =
fi (x, y1 , . . . , ym ) con i = 1, . . . , m, el comando a utilizar es
DSolve[{y1 [x] == f 1[x, y1[x], . . . , ym[x]], . . . , ym [x] == f m[x, y1[x], . . . ,
ym[x]]}, {y1[x], . . . , ym[x]}, x]
Si además se tienen las condiciones iniciales y1 (x0 ) = α1 , . . . , ym (x0 ) = αm
entonces se debe utilizar
DSolve[{y1 [x] == f 1[x, y1[x], . . . , ym[x]], . . . , ym [x] == f m[x, y1[x], . . . ,
ym[x]], y1[x0 ] = α1 , . . . , ym[x0 ] = αm }, {y1[x], . . . , ym[x]}, x]
La versión numérica del anterior comando es
N DSolve[{y1 [x] == f 1[x, y1[x], . . . , ym[x]], . . . , ym [x] == f m[x, y1[x], . . . ,
ym[x]], y1[x0 ] = α1 , . . . , ym[x0 ] = αm }, {y1, . . . , ym}, {x, a, b}]
Capı́tulo 27

Introducción a Octave

27.1. Introducción a Matlab–Octave


Matlab–Octave tiene un lenguaje de programación muy intuitivo junto con
una gran biblioteca de funciones de modo que se convierte en una herramienta
extremadamente útil para ingenieros y cientı́ficos en general. En estas notas
se pretende dar unas breves nociones sobre algunos de los comandos utilizados
por el programa Matlab–Octave. Por supuesto, una guı́a completa y mucho
más detallada sobre las posibilidades de Octave se encuentra en el manual del
programa contenido, por ejemplo, en la página web:
http://www.sce.carleton.ca/faculty/adler/octave/octave manual.pdf.
En la página web oficial de Octave http://www.octave.org se encuentra
todo tipo de información sobre el programa.

27.1.1. Algunas convenciones


Existen algunas convenciones en Matlab–Octave. Ası́, una linea de código
que comience por el sı́mbolo % se interpreta que es un comentario y por lo tanto
no se ejecuta. Cuando en el final de una linea de código se escriben tres puntos,
es decir ..., se toma la linea siguiente como continuación. Un punto y coma de
la forma ; sirve para unir varias sentencias en una misma linea y además no
permite salir por pantalla el resultado.

Las instrucciones exit o bien quit cierra el intérprete mientras que <CTRL>-c
para la ejecución de los comandos. El comando help seguido del nombre de una
función permite acceder a la ayuda asociada a una función.

Es conveniente, en muchas situaciones, usar dos ventanas activas en el es-


critorio. En una ventana se tiene la sesión de trabajo con el intérprete Matlab–
Octave y en la otra un editor de texto en el cual modificar el código fuente de
un cierto programa.

337
338 Introducción a Octave

27.1.2. Primeros cálculos: funciones elementales


El ejemplo más simple es utilizar Matlab–Octave a modo de calculadora, es
decir, una entrada y una salida. Al lado del sı́mbolo >> se introduce la entrada
y la salida se almacena en una variable llamada por defecto ans (del inglés
answer). Por ejemplo, introduciendo 3+2, se devuelve
√ ans=5.
Por otro lado, sabemos que sin(π/4) = 2/2 ∈ R\Q es un número irra-
cional y tiene por lo tanto infinitas cifras decimales. Sin embargo, introduciendo
sin(pi/4), el programa devuelve 0.70711 que no es más que una aproximación
con 5 decimales del valor exacto. El mismo valor se obtiene, por supuesto, si se
introduce sqrt(2)/2.

Recordar que Matlab-Octave, además de utilizar números reales, también


trabaja con números complejos. En √ concreto, la representación del número
a + ib ∈ C con a, b ∈ R, siendo i = −1 la unidad imaginaria es a+bi.

Matlab-Octave asigna por defecto


√ las constantes pi, e, i a las constantes
π ≈ 3,1416, e ≈ 2,7183 y i = −1. Además, eps es la precisión en las op-
eraciones en coma flotante (de hecho es la diferencia entre 1.0 y el número
representable inmediatamente superior); realmax y realmin son el mayor y
menor respectivamente número real positivo representable (tı́picamente del or-
den de 10308 y 10−308 ); ±inf números fuera del rango representable; NaN (not a
number) se guarda para operaciones sin sentido como pueden ser, por ejemplo,
indeterminaciones del tipo 0/0.

Todos los cálculos en Matlab–Octave se realizan en doble precisión. Sin em-


bargo, el formato de salida se puede modificar. Por defecto, la salida contiene 4
decimales. En resumen, algunos formatos son:
Formato Significado
format short 4 decimales
format long 14 decimales
format short e notación cientı́fica con 4 decimales
format long e notación cientı́fica con 14 decimales

La instrucción who o bien whos devuelve una lista con las variables almace-
nadas en la sesión de trabajo. Una variable variable se elimina de la memoria con
el comando clear variable. Si se usa sólo clear se borran todas las variables
de la memoria.
El comando save seguido de un nombre de archivo y un conjunto de vari-
ables sirve para guardar el archivo en el llamado directorio de trabajo (worwing
directory) con el valor de las variables especificadas. Posteriormente, en otra
sesion, utilizando el comando load se pueden recuperar todas las variables al-
macenadas. Por ejemplo, save sesion v1 v2 v3 guarda en el archivo sesion el
valor que tengan almacenadas las variables v1, v2 y v3.

Algunas operaciones algebraicas elementales con números reales x e y son:


27.1 Introducción a Matlab–Octave 339

Operación Sintaxis
x±y x±y
xy x*y
x
y x/y
y
x x∧y
Algunas funciones elementales con números reales x e y son:
Función Sintaxis Descripción
|x| abs(x) valor absoluto
sign(x) sign(x) -1 si x < 0; 0 si x = 0; 1 si x > 0
rem(x/y) rem(x,y) resto del cociente x/y
ex exp(x) exponenial
ln x log(x) logaritmo neperiano de x > 0
log10 x log10(x) logaritmo decimal de x > 0

x sqrt(x) raı́z cuadrada de x ≥ 0
sin(x) sin(x) seno
cos(x) cos(x) coseno
tan(x) tan(x) tangente
arcsin(x) asin(x) arco seno de x ∈ [−1, 1] da ángulo en [−π/2, π/2]
arc cos(x) acos(x) arco coseno de x ∈ [−1, 1] da ángulo en [0, π]
arctan(x) atan(x) arco tangente da ángulo en [−π/2, π/2]
Recordar que los ángulos en los argumentos de las funciones trigonométricas
han de estar siempre en radianes.

27.1.3. Matrices y vectores


Matlab significa laboratorio de matrices. Esto indica que las matrices y vec-
tores son pieza clave en su funcionamiento. El programa en realidad no distingue
entre escalares y matrices. Además, no es necesario dimensionar las matrices.
Esto significa que realiza una asignación dinámica de memoria, de modo que, si
se pretende controlar la memoria conviene dimensionar las matrices.
El vector fila x = (1, 2, 3) ∈ R3 se introduce de la forma x=[1,2,3], el vector
columna y = (1, 2, 3)T ∈ R3 como y=[1;2;3] y la matriz

1 2 3
A= ∈ M2×3 (R) ,
4 5 6
de la forma A=[1,2,3;4,5,6]. Entonces, para denominar a sus elementos se
utiliza la notación convencional, es decir, x(2) devuelve 2, y(1) devuelve 1, y
finalmente A(1,2) es 2.
También se pueden extraer submatrices de una dada. Por ejemplo, si defin-
imos la matriz ⎛ ⎞
a b c d
⎜ e f g h ⎟
B=⎜ ⎟
⎝ i j k  ⎠ ∈ M4 (R) ,
m n o p
340 Introducción a Octave

como B=[a,b,c,d; e,f,g,h; i,j,k,l; m,n,o,p], entonces la submatriz que


contiene las filas de la segunda a la cuarta y las columnas de la primera a la
tercera
⎛ ⎞
e f g
⎝ i j k ⎠
m n o

se expresa como B(2:4,1:3). Para tomar el vector de la columna segunda


⎛ ⎞
b
⎜ f ⎟
⎜ ⎟ 4
⎝ j ⎠∈R ,
n

se harı́a de la forma B(:,2).

Una función interesante aplicable a vectores es el comando length(x), que


da como resultado el número de elementos del vector x. Ası́, length([a,b,c])
vale 3.

Las matrices se pueden introducir de varias formas. (i) Mediante la intro-


ducción explı́cita de sus elementos (el método utilizado hasta el momento); (ii)
Mediante instrucciones especiales: por ejemplo rand(m,n) crea una matriz de m
filas y n columnas con elementos aleatorios uniformemente distribuidos en el in-
tervalo [0, 1]; (iii) Creando, en un editor de texto un fichero donde se introducen
los elementos de la matriz distribuidos en filas–columnas y lo guardamos, por
ejemplo, con el nombre matriz.dat, entonces, con el comando load matriz.dat
se lee el fichero y se asigna la matriz en la variable matriz. Un posible fichero
con una matriz puede ser simplemente
1234
5678

Se puede crear un vector fila x cuyas componentes comiencen en inicio,


aumenten conseutivamente con incremento y acabe en f inal de la forma:
x=[inicio:incremento:final]. Por ejemplo, x=[0:0.2:1] es equivalente a
x=[0, 0.2, 0.4, 0.6, 0.8, 1]. Si se omite incremento, entonces por defecto
vale 1. Una elección particular de inicio e incremento puede dar lugar a no llegar
a f inal. Por ejemplo x=[0:0.3:1] es equivalente a x=[0, 0.3, 0.6, 0.9].
Otra forma de generar un vector fila x ∈ Rn de componentes equiespaciadas
cuya primera componente es inicio y su última componente es f in es mediante la
instrucción x=linspace(inicio, fin, n). Por ejemplo, x=linspace(4,6,3)
es equivalente a x=[4,5,6].

Sean x, y ∈ Rn . Algunas funciones sobre vectores son las siguientes:


27.1 Introducción a Matlab–Octave 341

Función Descripción
length(x) Devuelve n si x ∈ Rn
dot(x,y) Produto escalar x.y
norm(x) Norma euclideana x
x’ Traspuesto conjugado
max(x) Valor máximo de las componentes de x
min(x) Valor mı́nimo de las componentes de x
sum(x) Suma todas las componentes de x
prod(x) Multiplica todas las componentes de x
Sea A ∈ Mn×m (R). Por lo que se refiere al orden de las matrices, se dispone
de la función size(A) que devuelve el vector fila [n, m] con las filas y columnas
de A.
Para definir rápidamente matrices que contienen ceros y unos se dispone,
entre otras, de las siguientes funciones:
Función Descripción
zeros(n) Matriz nula cuadrada de orden n
zeros(n,m) Matriz nula de orden n × m
ones(n) Matriz de unos cuadrada de orden n
ones(n,m) Matriz de unos de orden n × m
eye(n) Matriz identidad de orden n
rand(n,m) Matriz de orden n × m con elementos aleatorios
uniformemente distribuidos en el intervalo [0, 1]
Por ejemplo, zeros(size(A)) crea una matriz de elementos nulos del mismo
orden que la matriz A.
Las operaciones básicas entre matrices A y B de órdenes adecuados para
poder realizarse son:
Operación Descripción
a*A Producto del escalar a por la matriz A
A±B Suma y resta
A*B Multiplicación
A∧n Potencia
A’ Traspuesta conjugada
En Matlab–Octave existe lo que se conoce como operaciones entre matrices
elemento a elemento y son de gran utilidad. Por supuesto, las matrices deben
tener el orden adecuado para poder realizarse la operación. Ası́, si A = (aij ), B =
(aij ) ∈ Mn×m (R) y k, l ∈ R se tiene:
Operación Descripción
C=k*A ± l C = (cij ) tal que cij = kaij ± l
C=A.*B C = (cij ) tal que cij = aij bij
C=A./B C = (cij ) tal que cij = aij /bij
b
C=A.∧B C = (cij ) tal que cij = aijij
C=A.∧k C = (cij ) tal que cij = akij
342 Introducción a Octave

Algunas funciones para matrices son:

Función Descripción
size(A) Vector fila [n, m] si A ∈ Mn×m (R)
det(A) Determinante de A
rank(A) Rango de A
inv(A) Inversa de A
x=A\b Solución del sistema lineal Ax = b
eig(A) Vector columna con los valores propios de A
[P,D]=eig(A) P es una matriz con los vectores propios de A en columnas
D es una matriz diagonal con los valores propios de A en la diagonal
poly(A) Polinomio caracterı́stico de A
expm(A) Matriz exponencial de A

Recordemos finalmente que, cualquiera de las funciones elementales que


actúan sobre escalares también lo hacen sobre vectores y matrices mediante la
actuación elemento a elemento. Por ejemplo, si x=[1, 4, 9], entonces sqrt(x)
es justo el vector [1,2,3] o bien sin([pi/2, pi, 3*pi/2]) devuelve el vector
[1.00000, 0.00000, -1.00000].

27.1.4. Funciones
Una de las herramientas más potentes de Matlab–Octave es el concepto de
función. A parte de las funciones elementales habituales en un curso de cálculo,
como son las trigonométricas, logaritmos, etc..., Matlab–Octave dispone de una
enorme biblioteca de funciones matemáticas menos conocidas. Por ejemplo la
función gamma de Euler definida de la forma
! ∞
Γ(z) = tz−1 exp(−t) dt ,
0

está implementada en la función gamma(z).


Matlab–Octave busca funciones no sólo en sus bibliotecas sino también en
un directorio especial llamado directorio de trabajo (worwing directory). Para
conocer el directorio de trabajo existe la instrucción pwd. Para cambiar el direc-
torio de trabajo se usa la instrucción cd. Con la orden dir o bien ls se muestra
el contenido del directorio de trabajo. Los comandos delete y type se pueden
usar para borrar archivos o mostrarlos por pantalla respectivamente. La forma
general de definir una función es

function [vs1,...,vsm]=nombre(ve1,...,ven)
...comandos...
endfunction

siendo ve1,...,ven las n variables de entrada y vs1,...,vsm las m variables


de salida. Ası́, por ejemplo, una función que tome como argumento de entrada
27.1 Introducción a Matlab–Octave 343

un vector x y la salida sea un número real M que consiste en el valor medio de


las componentes del vector x es la siguiente. Escribimos en un editor de texto
la función

function [M]=media(x)
M=sum(x)/length(x);
endfunction

y la grabamos con el mismo nombre, es decir media.m, en el directorio de tra-


bajo. Desde el intérprete, se utilizarı́a, por ejemplo, de la manera siguiente. Si
se teclea media([1,2,3,4,5]) se obtiene 3.
Si se utilizan comentarios mediante % antes de la definición de la función,
entonces esos comentarios aparecen cuando se escribe help seguido del nombre
de la función. Si sólo hay una variable de salida, el corchete [] es opcional. Usual-
mente las funciones terminan cuando se alcanza un endfunction. Sin embargo
se puede forzar un regreso más temprano utilizando el comando return.

Si se desea definir una función real de variable real f : R → R, por ejemplo,

x3 exp(2x)
f (x) = ,
sin x
la forma de realizarlo es

function y=f(x)
y=(x ∧ 3*exp(2*x))/sin(x);
endfunction

Para evaluar la función f en un punto, por ejemplo 3, simplemente se es-


cribe en el intérprete f(3) y Matlab-Octave devuelve 7.7187e+04 que significa
7,7187 × 104 .

Por supuesto también es posible definir una función real de varias variables
reales g : Rm → R. Por ejemplo, para definir la función

g(x, y) = x3 − 3xy ,

escribirı́amos

function z=g(x,y)
z=x∧3-3*x*y;
endfunction

Para evaluar la función g en un punto, por ejemplo (1, 2), se escribe g(1,2)
y Matlab-Octave devuelve -5.
344 Introducción a Octave

Finalmente, para definir funciones vectoriales reales de varias variables reales


h : Rm → Rn como puede ser

h(x, y) = (x3 y, cos x, exy ) ,

escribirı́amos, por ejemplo,

function y=h(x)
y(1)=x(1)∧3*x(2);
y(2)=cos(x(1));
y(3)=exp(x(1)*x(2));
endfunction

Notemos que la variable de entrada de la función h es vectorial de 2 com-


ponentes y la de salida vectorial de 3 componentes. La forma de utilizar esta
función es del modo siguiente. Si queremos hallar h(1, 2) escribimos h([1,2])
y Matlab-Octave devuelve [2.00000, 0.54030, 7.38906].

El comando return, al ser usado en una función, sale de ésta y devuelve


el control al resto del programa que ha llamado a dicha función, llevándose el
valor que tenga la variable de salida de la función.

Existe una forma de definir funciones sin necesidad de crear un archivo a


parte. Esto se consigue con√ la sentencia inline. Por ejemplo, podemos definir
la función f (x) = sin(x) x y posteriormente evaluarla en x = 1 para obtener
el valor de f (1) de la forma:

f=inline(’sin(x)*sqrt(x)’);
f(1)

Se obtiene 0,84147 que es el valor de f (1). También se puede utilzar el coman-


do feval(funcion, argumento) para evaluar una función en un argumento. De
este modo

f=inline(’sin(x)*sqrt(x)’);
feval(f,1)

muestra el valor de f (1), es decir, 0,84147. El comando feval es necesario


cuando se escribe una función que llama a otra función también escrita por
nosotros en versiones antiguas de Octave.

27.1.5. Gráficos
Una de las mayores ventajas de Matlab–Otave es su capacidad gráfica para
mostrar resultados. Se generan gráficas 2D y 3D. Los comandos básicos son:
27.1 Introducción a Matlab–Octave 345

fplot para dibujar funciones reales de variable real; plot para dibujar puntos
en R2 y plot3 para dibujar puntos en R3 .

Para dibujar una función f : [a, b] ⊂ R → R se utiliza fplot(f,[a,b]). Por


ejemplo,

f=inline(’sqrt(x)’);
fplot(f,[0,1])

muestra la gráfica de la función f (x) = x en el intervalo [0, 1]

Sean x, y ∈ Rn vectores fila de componentes x = (x1 , . . . , xn ) e y = (y1 , . . . , yn ).


La orden plot(x,y) abre una ventana y dibuja los puntos (xi , yi ) ∈ R2 para
i = 1, . . . , n, donde dos puntos consecutivos son unidos mediante un segmento.
Ası́, una forma de dibujar una función f : [a, b] ⊂ R → R consiste en generar
dos vectores x e y. El primero, x tiene por componentes los puntos de una
partición fina y equiespaciada del intervalo [a, b] mientras que el segundo, y,
contiene los valores de la función f en las componentes de x. Por ejemplo, para
dibujar la función cos(x) en el intervalo [−π, π] podemos ejecutar el siguiente
código:

x=[-pi:0.01:pi];y=cos(x); plot(x,y)

Supongamos que se pretende superponer varias gráficas en una misma figura.


Por ejemplo las gráficas de las funciones sin(x), cos(x), exp(x) y x2 + 5 en el
intervalo [−2, 2]. Entonces, se puede hacer de varias formas. Una de ellas es justo

x=[-2:0.01:2];y=sin(x); z=cos(x); w=exp(x); r=x.∧2+5;


plot(x,y,x,z,x,w,x,r)

Otra forma es creando una matriz Y cuyas columnas se desean dibujar, es


decir,

x=[-2:0.01:2];y=sin(x); z=cos(x); w=exp(x); r=x.∧2+5;


Y=[y’,z’,w’,r’];
plot(x,Y)

Finalmente, también existe la orden hold on que congela la figura actual,


de modo que la siguiente gráfica se superpone a la actual. Con hold off se
elimina esta opción. Entonces, la misma superposición gráfica que la obtenida
anteriormente se puede realizar de la forma

x=[-2:0.01:2];y=sin(x); z=cos(x); w=exp(x); r=x.∧2+5;


plot(x,y); hold on; plot(x,z); plot(x,w); plot(x,r); hold off;
346 Introducción a Octave

Sean x, y, z ∈ Rn vectores fila de componentes x = (x1 , . . . , xn ), y = (y1 , . . . , yn )


y z = (z1 , . . . , zn ). La orden plot3(x,y,z) abre una ventana y dibuja los pun-
tos (xi , yi , zi ) ∈ R3 para i = 1, . . . , n, donde dos puntos consecutivos son unidos
mediante un segmento.

Sea f : [a, b] ⊂ R → R3 . Para dibujar la curva en R3 definida de forma


paramétrica por las componentes de f en el intervalo de definición [a, b], es
decir, la curva f (t) = (x(t), y(t), z(t)) con a ≤ t ≤ b, se utiliza también la
instrucción plot3. De esta forma, si se quiere dibujar la espiral definida de
forma paramétrica como(x(t), y(t), z(t)) = (cos(t), sin(t), t) para 0 ≤ t ≤ 10,
teclearemos

t=[0:0.01:10];x=cos(t); y=sin(t); z=t; plot3(x,y,z)

Nota: Observar cómo, con el puntero del ratón colocado sobre la ventana
gráfica, apretando el botón izquierdo y desplazando, se obtienen perspectivas
diferentes de la gráfica 3D. Se puede conseguir el mismo efecto con las teclas de
flechas del cursor.

En los gráficos se puede poner un tı́tulo y etiquetar los ejes. Por ejemplo,
el código siguiente genera la gráfica etiquetada de la parábola y = x2 − 2 en el
intervalo [−5, 5].

x=[-5:0.01:5];y=x.∧2-2; xlabel(’x’), ylabel(’y=x∧2-2’),


title(’GRAFICA DE LA PARABOLA’)
plot(x,y)

GRAFICA DE LA PARABOLA
25
line 1

20

15
y=x2-2

10

-5
-6 -4 -2 0 2 4 6
x

Nota: Una forma de grabar en un fichero una gráfica es mediante la instruc-


27.1 Introducción a Matlab–Octave 347

ción print(’c:nombre.eps’,’-deps’). Ejecutándolo, se graba en el disco c el


fichero nombre.eps en formato EPS.

27.1.6. Generación de números aleatorios


En muchos problemas en ingenierı́a es útil la generación de números aleato-
rios. Por ejemplo, cuando se quiere simular un sistema complejo o bien omo
una forma de simular que los datos han sido tomados en un laboratorio con los
inherentes errores en las medidas. La función rand genera números aleatorios
uniformemente distribuidos en el intervalo [0, 1]. Ası́, siendo n, m ∈ N, rand(n)
genera una matriz cuadrada de orden n con elementos aleatorios en el intervalo
[0, 1]. rand(n,m) genera una matriz de orden n × m con elementos aleatorios en
el intervalo [0, 1].

27.1.7. Polinomios
Sea p(x) ∈ Rn [x] un polinomio a coeficientes reales de grado n, es decir,
n
f (x) = i=0 ai xi con ai ∈ R. En Matlab–Octave, los polinomios se introducen
como vectores fila de Rn+1 que contienen los coeficientes del polinomio p en
orden descendente. De este modo, se debe introducir p=[an , an−1 , . . . , a1 , a0 ].
Para evaluar el polinomio en un punto, es decir, calcular p(c) con c ∈ R, se
utiliza el comando polyval(p,c). La derivada de un polinomio p (x) se obtiene
mediante la instrucción polyder(p) o polyderiv(p). El polinomio F (x) que es
x
la primitiva del polinomio p(x) tal que F (0) = 0, es decir, F (x) = 0 p(s) ds,
se calcula mediante la instrucción polyinteg(p).
Dados dos polinomios p(x) ∈ Rn [x] y q(x) ∈ Rm [x], el polinomio producto
p(x)q(x) ∈ Rn+m [x] se obtiene de la forma conv(p,q). Veamos un ejemplo con
los polinomios p(x) = x3 − x + 1 y q(x) = −x + 2:

p=[1,0,-1,1]; q=[-1,2];
polyval(p,4)
polyder(p)
polyinteg(p)
conv(p,q)

devuelve los resultados

41
3 0 -1
0.25000 0.00000 -0.50000 1.00000 0.00000
-1 2 1 -3 2

Dado el vector r = (r1 , . . . , rn ) ∈ Rn , la instrucción poly(r) devuelve un


vector de Rn+1 cuyos coeficientes son los del polinomio mónico nde grado n que
tiene las raı́ces ri para i = 1, . . . , n, es decir, del polinomio i=1 (x − ri ). Por
ejemplo, si tomamos r=[1,2,3], entonces poly(r) devuelve el vector [1, -6,
348 Introducción a Octave

11, -6]. Notemos que el polinomio (x − 1)(x − 2)(x − 3) tiene la expresión


x3 − 6x2 + 11x − 6.

27.2. El Lenguaje de Programación


El programa Matlab-Octave, además de los múltiples comandos que lleva
incorporados, dispone también de un lenguaje de programación de alto nivel.
Las entradas–salidas básicas por teclado–pantalla se realizan con las instruc-
ciones input y disp respectivamente de la forma siguiente.

x=1;
disp(’El valor de x es:’)
disp(x)

devuelve por pantalla

El valor de x es:
1

Si, por ejemplo, ejecutamos y=input(’Introdue el valor de y:’), en-


tonces se imprime por pantalla Introdue el valor de y: y el ordenador es-
pera a la escritura de un valor por el teclado, asignándolo a la variable y.

Recordemos que, los comandos save y load permiten escribir y leer del disco
duro. Por ejemplo, podemos tabular la función f (x) = sin(x) en el intervalo
[−10, 10] con una longitud de paso h = 1 y guardar en el directorio de trabajo la
tabulación obtenida en un fichero llamado tabulacion.dat de la forma siguiente:

h=1; x=[-10:h:10]; f=sin(x);


save tabulacion.dat x f

Posteriormente, en otra sesión, podemos leer los valores de las abscisas y


ordenadas de la tabulación grabada de la forma:

load tabulacion.dat

de modo que, a partir de esta instrucción, el vector x y el vector f son recono-


cidos por el programa como las abscisas y ordenadas de la tabulación.

27.2.1. Iteraciones y bucles


La sentencia for funciona de la manera siguiente.

for variable = inicial:incremento:final


27.2 El Lenguaje de Programación 349

.....proceso......
endfor

Repite el proceso que se especifique para los valores de variable desde el


valor inicial hasta el valor f inal saltando de incremento en incremento. Si se
omite el incremento entonces este es por defecto 1. Por ejemplo, tras el código

for i = 2:2:8
disp(i), disp(’es multiplo de 2’)
endfor

Matlab-Octave devuelve

2
es multiplo de 2
4
es multiplo de 2
6
es multiplo de 2
8
es multiplo de 2

Si, en lugar de querer controlar un bucle con un contador se desea hacer-


lo mediante una condición lógica, podemos utilizar, por ejemplo, la sentencia
while1 . Esta estructura se utiliza ası́.

while(condicion)
.....proceso......
endwhile

El proceso se repite mientras condicion sea cierta. Por ejemplo

a=0;
while(a <3)
disp(a)
a=a+1;
endwhile

tiene por salida

0
1
1 También es posible una estructura del tipo do--until.
350 Introducción a Octave

Existen instrucciones que permiten irse de un buble. Por ejemplo, la sen-


tencia break dentro de un bucle hace que salga de este bucle y siga o bien
ejecutando otro bucle externo o bien continúe el programa. Por el contrario, la
sentencia continue no nos saca del bucle, simplemente se salta un paso.

Existe otra estructura controlada mediante una condición lógica. Es la sen-


tencia if. Su estructura es

if(condicion)
.....proceso......
endif

El proceso se ejecuta sólo si condicion sea cierta. Una generalización obvia


es la siguiente:

if(condicion 1)
.....proceso 1......
elseif(condicion 2)
.....proceso 2......
else
.....proceso 3......
endif

Por ejemplo, el siguiente código asigna a la variable p los valores 0, 1 y 2


dependiendo de si el número n ∈ Z es negativo o cero, positivo e impar o positivo
y par respectivamente2 .

if(n <= 0)
p=0;
elseif(rem(n,2)==0)
p=2;
else
p=1;
endif

27.2.2. Condicionales y operadores lógicos


En muchas ocasiones, es necesario incluir en las sentencias condicionales
anteriores algún operador lógico. Estos operadores son
2 Se utiliza la instrucción rem(a,b) que proporciona el resto de la división entre a y b.
27.2 El Lenguaje de Programación 351

Operador Significado
! NO
& Y
| O

Los operadores de relación son:

Operador Significado
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
== igual que
! = o bien ∼= distinto que

27.2.3. Errores
Debido a errores de redondeo, se define el epsilon de la máquina como el
mayor número positivo  tal que 1 + x = 1 para todo x ∈ (0, ). Si intentamos
averiguar  con un programa escrito en el lenguaje de Matlab–Octave podrı́amos
intentar lo siguiente.

x=1;
while(x+1>1)
x=x/2;
endwhile
disp(’El epsilon de la maquina es:’)
disp(2*x)

La salida del programa es

El epsilon de la maquina es:


2.2204e-16

De hecho, el mismo valor está almacenado en la variable eps.

Un sencillo ejercicio donde se muestra el efecto debido al epsilon de la


máquina es el siguiente. Se sabe que
n
1
e = lı́m 1 + = 2,7182818.....
n→∞ n

Sin embargo, si programamos

for i=1:10
n=100∧i; disp((1+1/n)∧n)
352 Introducción a Octave

endfor

la salida es la siguiente:

2.7048
2.7181
2.7183
2.7183
2.7183
2.7185
2.7161
1
1
1

Se observa que, a medida que n aumenta, las aproximaciones obtenidas del


número e son mejores hasta que llega un momento en que van empeorando,
llegando a estabilizarse en 1.

Siempre que se restan magnitudes muy próximas, se produce un error por


cancelación con la consiguiente pérdida de cifras significativas. Si además esta
resta es multiplicada por√ un número
√ grande, el error se verá aumentado. Por
ejemplo, la expresión x( x + 1 − x) para x ≥ 0 es equivalente, multiplicando
y dividiendo por el conjugado, a la expresión
x
√ √ ,
x+1+ x

de donde se √ve que, para
√ valores grandes de x es aproximadamente igual a x/2
puesto que x + 1 ≈ x. Sin embargo, la primera expresión es prácticamente
cero debida a errores de redondeo en la resta entre paréntesis. Veamos este efecto
de los errores por cancelación con el siguiente programa.

for n=1:10
x=10∧n;
mal=x*(sqrt(x+1)-sqrt(x)); bien=x/(sqrt(x+1)-sqrt(x));
A(n,:)=[mal,bien];
endfor

Observar que la primera columna de la matriz A tiende hacia cero a medida


que aumenta la fila.

27.2.4. Comparando la eficiencia de algoritmos


La eficiencia de un algoritmo puede ser medido en términos de el número
de operaciones en coma flotante realizados (flops) o bien en el tiempo total (en
27.3 Métodos Numéricos 353

segundos) de ejecución.

El comando flops(0) inicializa flops a cero. Ası́, poniendo flops(0) antes


de comenzar un algoritmo y poniendo flops al finalizarse se obtiene el número
de flops utilizados en el algoritmo.

El comando tic inicializa el reloj a cero y toc devuelve el tiempo pasado.


Ası́, poniendo tic antes de comenzar un algoritmo y poniendo toc al finalizarse
se obtiene los segundos de tiempo utilizados en realizarse el algoritmo.

Por ejemplo, dado un vector columna b ∈ Rn y una matriz inversible A ∈


Mn (R), se desea resolver el sistema lineal Ax = b. Con Matlab–Octave, existen
dos formas diferentes de hacerlo. La primera es utilizando el algoritmo de elimi-
nación Gaussiana de la forma x = A \ b. La segunda es mediante el cálculo de
la matriz inversa, es decir, x=inv(A)*b. Se puede comparar la eficiencia de los
dos algoritmos de las forma

flops(0), x = A \ b; flops
flops(0), x=inv(A)*b; flops

o bien de la forma

tic, x = A \ b; toc
tic, x=inv(A)*b; toc

¿Qué algoritmo es el más eficiente?

27.3. Métodos Numéricos


27.3.1. Polinomio interpolador
n i
Con Matlab–Octave es posible hallar el polinomio Pn (x) = i=0 ci x de
grado menor o igual que n que interpola a una nube de puntos (xi , yi ) para
i = 0, 1, . . . , n. La sintaxis a utilizar es polyfit(x,y,n) siendo x=[x0 , . . . , xn ],
y=[y0 , . . . , yn ] los vectores fila con las abscisas y ordenadas, respectivamente,
de la nube de puntos. El resultado es el polinomio Pn (x) en la notación usual de
Matlab–Octave, es decir, el vector fila (cm , cm−1 , . . . , c1 , c0 )T que contiene los
coeficientes de Pn (x) en orden descendente.

Existen otras formas de operar. Por ejemplo, vander(x) \ y’, siendo x=[x0 ,
. . . , xn ], y=[y0 , . . . , yn ] los vectores fila con las abscisas y ordenadas, respecti-
vamente, de la nube de puntos. El resultado es el polinomio Pn (x) dado como
un vector columna que contiene los coeficientes de Pn (x) en orden descendente.
354 Introducción a Octave

Por ejemplo, la recta en el plano que pasa por los puntos (0, 1) y (3, 7) es
y = P1 (x) = 1 + 2x. Se puede hallar de la forma vander([0, 3]) \ [1,7]’,
siendo el resultado el vector columna

2
1

27.3.2. Splines Cúbicos


Se pretende calcular una función spline cúbica que interpole a la nube de
puntos (xi , yi ) ∈ R2 , i = 1, . . . , n.
Matlab y Octave disponen de la función spline(x,y,xe) para el cálculo de
una función spline cúbica. Sus dos primeros argumentos son x = [x1 , . . . , xn ],
y = [y1 , . . . , yn ], es decir, dos vectores fila que contienen las abscisas y ordenadas
respectivamente de los puntos a interpolar. El tercer argumento xe corresponde
a un vector fila de Rk , que contiene las k abscisas donde se desea evaluar la
función spline. Como resultado, la función spline(x,y,xe) devuelve un vector
fila de Rk con los valores de la función spline en las abscisas xe. Si se toman las
componentes de xe como los puntos de una partición fina del intervalo [x1 , xn ] ⊂
R de definición de la función spline, entonces luego se puede realizar un dibujo
de la función spline. Veamos un ejemplo.

x=[1,2,3,4,5]; y=[3,9,2,4,6]; xe=[1:0.2:5];


ye=spline(x,y,xe);
plot(x,y,’*’,xe,ye)

10
line 1
line 2
9

1
1 1.5 2 2.5 3 3.5 4 4.5 5

Matlab–Octave devuelve como resultado la gráfica de la función spline en el


intervalo [1, 5] superpuesta a la nube de puntos de interpolación.
27.3 Métodos Numéricos 355

27.3.3. Integración Numérica


b
Para calcular una aproximación numérica de la integral a f (x) dx, podemos
utilizar la función quad(f,a,b). La función f (x) se debe introducir, o bien me-
diante un archivo de función o bien mediante la sentencia inline. Por ejemplo,
1
para calcular 0 exp(−x2 ) dx, podemos introducir

quad(inline(’exp(-x∧2)’),0,1)

y se obtiene 0,74682.
Puede aproximar numéricamente
√ integrales impropios. Por ejemplo, se sabe

que 0 exp(−x2 ) dx = π/2. Entonces

quad(inline(’exp(-x∧2)’),0,inf)

da como resultado 0,88623.

27.3.4. Ecuaciones Diferenciales Ordinarias


En este caso, las diferencias entre Matlab y Octave son importantes, ganando
Octave con diferencia. Esto es debido a que Octave incorpora uno de los paque-
tes de integración numérica de ecuaciones diferenciales ordinarias más robusto y
efectivo llamado ODEPACK. Sólo explicaremos el uso en Octave en esta sección.

Consideremos la ecuación diferencial ordinaria de primer orden ẋ = f (t, x).


Sabemos que existen muchas ecuaciones diferenciales de este tipo que no admiten
expresar su solución general mediante funciones elementales. Por ejemplo, la
ecuación diferencial de Riccati ẋ = x2 + 2tx. Es en este tipo de casos donde los
métodos numéricos tienen sentido de ser aplicados.
Pretendemos pues hallar la solución numérica del problema de Cauchy

ẋ = f (t, x) , x(t0 ) = x0 ,

en el intervalo t ∈ [t0 , tf ] ⊂ R. Aquı́, f : R × Rn → Rn . La instrucción para


conseguirlo es lsode(’f’,x0 , τ ), donde x0 ∈ Rn es un vector de condiciones
iniciales y τ es un vector cuyas componentes contienen los tiempos donde se
aproxima la solución x(t) del problema de Cauchy. Por coherencia, la primera
componente de τ es t0 y la última tf . La función f (t, x) debe ser definida en un
fichero de función a parte.
Por ejemplo, consideremos la ecuación de van der Pol ẍ + μ(ẋ2 − 1) + x = 0.
Pasamos la ecuación de segundo orden a un sistema de primer orden de la forma

ẋ = y , ẏ = μ(1 − ẋ2 ) − x . (27.1)

Supongamos que se desea aproximar la solución de (27.1) utilizando la condi-


ción inicial (x(0), y(0) = (2, 0) en el intervalo de tiempos t ∈ [0, 20]. En primer
356 Introducción a Octave

lugar, escribimos en un fichero la función f (x, y) que define el sistema de van


der Pol, por ejemplo con μ = 1, de la forma:

function xp=f(x)
mu=1;
xp=zeros(2,1);
xp(1)=x(2);
xp(2)=mu*x(2)*(1-x(2)∧2)-x(1);
endfunction

y lo guardamos en el directorio de trabajo con el nombre f.m. A continuación,


tomamos 100 tiempos equiespaciados ti con i = 1, . . . , 100, en el intervalo t ∈
[0, 20] y resolvemos de la forma:

x0=[2,0];
tau=linspace(0,20,100);
sol=lsode(’f’,x0,tau);

Se obtiene una matriz 100 × 2 llamada sol, donde la fila i-ésima contiene una
aproximación del vector (x(ti ), y(ti )). Podemos dibujar la solución x(t) en el
intervalo t ∈ [0, 20] de la forma

x=sol(:,1);
xlabel(’t’) , ylabel(’x(t)’) ,
title(’Ecuacion de van der Pol con mu = 1’) ,
plot(tau,x)

obteniendo la gráfica siguiente.

Ecuacion de van der Pol con mu = 1


2
line 1

1.5

0.5
x(t)

-0.5

-1

-1.5
0 5 10 15 20
t
27.3 Métodos Numéricos 357

27.3.5. Raı́ces de Ecuaciones


Ecuaciones polinomiales

Consideremos una ecuación polinomial de grado n, es decir, f (x) = 0 con


f ∈ Rn [x],
n siendo Rn [x] el conjunto de los polinomios de grado n, es decir,
f (x) = i=0 ai xi con ai ∈ R. Se sabe, gracias a la teorı́a de Galois, que en
general no es posible hallar de manera exacta (mediante radicales) las raı́ces
de dicha ecuación cuando n ≥ 5 con lo cual es necesario aproximar las raı́ces
mediante métodos numéricos.
Pretendemos hallar todas las raı́ces x∗ (reales o complejas) del polinomio
f , es decir, todos los valores x∗ ∈ C tales que f (x∗ ) = 0. Para ello, Matlab y
Octave tienen la función roots(p). El argumento de la función es un vector fila
de Rn+1 que contiene los coeficientes del polinomio f en orden descendente. De
este modo, se debe introducir p=[an , an−1 , . . . , a1 , a0 ]. El resultado es un vector
columna con todas las raı́ces del polinomio.

Por ejemplo, si f (x) = 10−19x+13x2 −5x3 +x4 , entonces se debe introducir


el siguiente código.

p=[1,-5,13,-19,10]; x=roots(p)

Matlab–Octave devuelve como resultado:

x=
1.0000 + 2.0000i
1.0000 - 2.0000i
2.0000
1.0000

El resultado obtenido no es otro que el que se obtendrı́a mediante la Regla


de Ruffini, es decir, la factorización f (x) = (x − 1)(x − 2)(x2 − 2x + 5).
Se puede realizar finalmente una comprobación gráfica donde dibujemos el
polinomio f (x), por ejemplo en el intervalo [0, 3] ⊂ R y observemos las raı́ces
reales como puntos de corte con el eje de abscisas. Una forma de hacerlo es la
siguiente.
p=[1,-5,13,-19,10]; x=[0:0.1:3]; y=polyval(p,x);
plot(x,y) , hold
xx=[0,3]; yy=[0,0]; plot(xx,yy)

Matlab–Octave devuelve como resultado la superposición de la gráfica del


polinomio f (x) en el intervalo [0, 3] ⊂ R con el eje de abscisas (segmento que
une el punto (0, 0) con el punto (0,3)).
358 Introducción a Octave

16
line 1
line 2
14

12

10

-2
0 0.5 1 1.5 2 2.5 3

Ecuaciones Trascendentes
Consideremos a partir de ahora una ecuación trascendente f (x) = 0. El
comando fzero(f,x0 ) intenta hallar una solución aproximada de la ecuación
trascendente f (x) = 0 comenzando la búsqueda en el punto inicial x0 . Si no se
converge hacia una solución, devuelve por respuesta NaN. También se puede uti-
lizar de la forma fzero(f,[x0 , x1 ]) si sabemos que la raı́z buscada se encuentra
en el intervalo [x0 , x1 ] ⊂ R.
Ası́, supongamos que f (x) = exp(x) − sin(x). Observar que, en el ejemplo
propuesto, existen infinitas raı́ces negativas y ninguna positiva mediante un
simple análisis gráfico de las funciones involucradas. Entonces el código

f=inline(’exp(x)-sin(x)’);
raiz=fzero(f,1)

da como resultado raiz=NaN de modo que no converge hacia ninguna solución.


Se puede realizar un análisis gráfico previo a la resolución de la ecuación f (x) =
0 dibujando la gráfica de la función y = f (x) y observando visualmente por
qué zona del eje de abscisas se produce el corte. De este modo se tiene una
estimación inicial de x0 . Entonces, cambiando la condición inicial x0 de la forma

f=inline(’exp(x)-sin(x)’);
raiz=fzero(f,-5)

da como resultado raiz=-6.2813. Por supuesto, no halla todas las raı́ces de la


ecuación f (x) = 0, sólo ha hallado una de ellas.

Si se desea hallar una aproximación numérica de alguna solución de un


sistema de ecuaciones trascendente f (x) = 0 con f : Rm → Rm de com-
ponentes fi (x1 , . . . , xm ) = 0 con i = 1, . . . , m, se puede utilizar el comando
fsolve(’f’,x0 ). Para su utilización, se debe crear a parte un fichero que defi-
na la función f (x). Por ejemplo, supongamos que se quiere hallar una solución
del sistema de ecuaciones sin x − y + 2 = 0, x2 + tan(xy) − 1 = 0 partiendo del
27.3 Métodos Numéricos 359

punto inicial x0 = (0, 1) ∈ R2 . En primer lugar creamos el fichero

function y=f(x)
y(1)=sin(x(1))-x(2)+2;
y(2)=x(1)∧2+tan(x(1)*x(2))-1;
endfunction

y lo guardamos en el directorio de trabajo con el nombre f.m. Posteriormente,


ejecutamos en el intérprete

raiz=fsolve(’f’,[0;1])

y se obtiene

raiz=
1.05524
2.87002

27.3.6. Aproximación Polinomial por Mı́nimos Cuadrados


Matlab–Octave tiene la posibilidad de hallar el polinomio

m
f ∗ (x) = ci xi ∈ Rm [x]
i=0

que mejor aproxima (en el sentido de mı́nimos cuadrados) a la nube de pun-


tos (xi , yi ) ∈ R2 para i = 0, 1, . . . , n. La sintaxis a utilizar es polyfit(x,y,m)
siendo x=[x0 , . . . , xn ], y=[y0 , . . . , yn ] los vectores fila con las abscisas y orde-
nadas, respectivamente, de la nube de puntos y m ∈ N el grado del polinomio de
aproximación. El resultado es el polinomio f ∗ en la notación usual de Matlab–
Octave, es decir, el vector columna que contiene los coeficientes de f ∗ en orden
descendente, es decir, (cm , cm−1 , . . . , c1 , c0 )T . Como se ha visto en una sección
anterior, en el caso particular de que m = n, polyfit(x,y,n) devuelve el poli-
nomio interpolador de grado menor o igual que n.

Por ejemplo, la recta de regresión en el plano que pasa por los puntos (0, 1),
(2, 3) y (3, 5) se puede obtener de la forma:

x=[0,2,3]; y=[1,3,5];
p=polyfit(x,y,1)

Matlab–Octave devuelve como resultado

1.28571
0.85714
360 Introducción a Octave

que se interpreta diciendo que la recta de regresión es y = f ∗ (x) = 1,28571x +


0,85714.
Podemos visualizar el resultado, superponiendo la gráfica de la nube de pun-
tos y la gráfica de la recta de regresión:

xx=[0:0.1:3];
pp=polyval(p,xx);
plot(x,y,’*’)
hold on
plot(xx,pp)
5
line 1
line 2
4.5

3.5

2.5

1.5

0.5
0 0.5 1 1.5 2 2.5 3

Sea Ax = b un sistema lineal sobredeterminado, es decir, con más ecuaciones


que ingógnitas. De este modo, se tiene que A ∈ Mm×n , x ∈ Rn y b ∈ Rm con
m > n. Entonces, el comando A \ b calcula la “solución”del sistema dentro del
contexto de mı́nimos cuadrados, es decir, calcula el valor de x ∈ Rn tal que la
norma b − Ax 2 sea mı́nima.
Bibliografı́a

[1] M. Abramowitz, I.A. Stegun. Handbook of mathematical functions


with formulas, graphs and mathematical tables. Dover, 1964.

[2] A. Aubanell, A. Benseny, A. Delshams. Eines Bàsiques de Càlcul


Numèric. Manuals de la UAB, 1991. Versión en castellano: Útiles básicos
de cálculo numérico. Labor, 1993.

[3] G. J. Borse. Programación en FORTRAN 77 con aplicaciones de cálculo


numérico en ciencias e ingenierı́a. Anaya, 1989.

[4] J. Chavarriga, I.A. Garcı́a, J. Giné. Manual de Métodos Numéricos.


Eines 35, Edicions de la Universitat de Lleida, 1999.

[5] G. Dalquist, A. Bjórck. Numerical methods. Prentice Hall, 1974.

[6] B.P. Demidovich, I.A. Maron. Cálculo Numérico Fundamental. Paran-


info, 1988.

[7] L. Eldén, L. Wittmeyer-Koch. Numerical Analysis. Academic Press,


1990.

[8] C. Froberg. Introducción al análisis numérico. Vicens-Vives, 1974.

[9] I.A. Garcı́a. Teorı́a de Estabilidad y Control. Eines 52, Edicions de la


Universitat de Lleida, 2005.

[10] M. Grau, M. Noguera. Càlcul Numèric. Edicions UPC, 1993.

[11] P. Henrici. Elements of numerical analysis. John Wiley, New York, 1964.

[12] E. Isaacson, B. Keller. Analysis of numerical methods. John Wiley &


sons, 1966.

[13] D. Kincaid, W. Cheney. Análisis numerico. Addison-Wesley, 1994.

[14] R. Kress. Numerical Analysis. Graduate texts in Mathematics, Springer-


Verlag, 1998.

[15] S.S. Kuo. Numerical methods and computers. Addison-Wesley, 1965.

361
362 BIBLIOGRAFÍA

[16] J. H. Mathews. Numerical Methods for Mathematics, Science and En-


gineering. Prentice Hall, 1992.
[17] A. Ralston. Introducción al análisis numérico. Limusa-Wiley, 1970.
[18] H.R. Schwarz. Numerical Analysis. John Wiley & sons, 1989.
[19] J. Stoer, R. Bulirsch. Introduction to Numerical Analysis. Texts in
Applied Mathematics, 12. Springer-Verlag, 1972.
[20] F. Scheid, R.E. Di Costanzo. Métodos numéricos. MacGraw-Hill, 1991.

También podría gustarte