250
7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2) http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 1/250 Introducción a los métodos numéricos para ecuaciones diferenciales 2ª edición Sergio Blanes Zamora Damián Ginestar Peiró María Dolores Roselló Ferragud EDITORIAL UNIVERSITAT POLITÈCNICA DE VALÈNCIA

Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

  • Upload
    ubaldo

  • View
    241

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 1/250

Introducción a los

métodos numéricos paraecuaciones diferenciales2ª edición

Sergio Blanes Zamora

Damián Ginestar Peiró

María Dolores Roselló Ferragud

EDITORIAL

UNIVERSITAT POLITÈCNICA DE VALÈNCIA

Page 2: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 2/250

Page 3: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 3/250

Page 4: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 4/250

Los contenidos de esta publicación han sido revisados por el departamento deMatemática Aplicada de la UPV

Colección Académica

Para referenciar esta publicación utilice la siguiente cita: ROSELLÓ FERRAGUD, MARÍADOLORES [et al] 2ª ed (2014) Introducción a los métodos numéricos para ecuaciones

diferenciales. Valencia: Universitat Politècnica

Segunda edición, 2014 (versión impresa)Segunda edición, 2014 (versión electrónica)

© Sergio Blanes ZamoraDamián Ginestar PeiróMaría Dolores Roselló Ferragud

© de la presente edición: Editorial Universitat Politècnica de ValènciaTelf.: 963 877 012 / www.lalibreria.upv.es  / Ref. 6100_01_02_01 

ISBN: 978-84-9048-190-5 (versión impresa)ISBN: 978-84-9048-206-3 (versión electrónica)

 

Queda prohibida la reproducción, la distribución, la comercialización, la transformacióny, en general, cualquier otra forma de explotación, por cualquier procedimiento, de la

totalidad o de cualquier parte de esta obra sin autorización expresa y por escrito de losautores.

Page 5: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 5/250

Page 6: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 6/250

Índice general

Índice general 5

I Contenidos teóricos 9

1 Introducción a la modelización matemática en la Ingeniería 11

1.1 Modelización matemática. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2 Algunos modelos diferenciales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.3 Ecuaciones adimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.4 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.5 Ejercicios propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2 Resolución de sistemas de ecuaciones lineales 29

2.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2 Métodos directos para la resolución de sistemas lineales . . . . . . . . . . . . . 30

2.2.1 Algoritmo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.2.2 Factorización  LU   de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.2.3 Pivotación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.2.4 Errores y número de condición. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.2.5 Matrices especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.3 Métodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.3.1 Algoritmo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.3.2 Algoritmo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.3.3 Algoritmos SOR y SSOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5

Page 7: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 7/250

Índice general 

2.4 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.5 Ejercicios propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3 Interpolación y aproximación de funciones 55

3.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.2 Interpolación polinómica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.2.1 Polinomios de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.2.2 Algoritmo de Neville . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.2.3 Fórmula de interpolación de Newton. Diferencias divididas . . . . . . . . . . 66

3.2.4 Error en la interpolación polinómica . . . . . . . . . . . . . . . . . . . . . . . . 70

3.2.5 Problemas con la interpolación polinómica . . . . . . . . . . . . . . . . . . . . 70

3.3 Interpolación por splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.4 Derivación e integración numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.4.1 Derivación numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.4.2 Integración numérica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.5 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.6 Ejercicios propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

4 Métodos numéricos para problemas de valor inicial 994.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.2 Método de Euler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

4.3 Método del desarrollo en serie de Taylor. . . . . . . . . . . . . . . . . . . . . . . . 105

4.4 Métodos de Runge-Kutta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

4.4.1 Métodos RK explícitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

4.4.2 Métodos RK implícitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

4.5 Métodos multipaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.6 Ecuaciones rígidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.6.1 Estabilidad lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

4.6.2 Métodos implícitos hacia atrás. . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

4.7 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

4.8 Ejercicios propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

5 Métodos numéricos para problemas de contorno 135

5.1 Diferencias finitas para EDOs con condiciones de frontera . . . . . . . . . . . . 136

6

Page 8: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 8/250

Índice general 

5.2 Diferencias finitas para problemas parabólicos . . . . . . . . . . . . . . . . . . . . 138

5.3 Diferencias finitas para problemas hiperbólicos . . . . . . . . . . . . . . . . . . . 144

5.4 Diferencias finitas para problemas elípticos . . . . . . . . . . . . . . . . . . . . . . 147

5.5 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

5.6 Ejercicios propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

6 Introducción a los elementos finitos 159

6.1 Técnicas variacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

6.2 Condiciones de contorno no nulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

6.3 Introducción a los elementos finitos bidimensionales . . . . . . . . . . . . . . . . 165

6.4 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

6.5 Ejercicios propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

II Ejercicios con  Matlab   175

7 Resolución de sistemas de ecuaciones lineales con  Matlab   177

7.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

7.2 Métodos directos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

7.2.1 Errores y número de condición. . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

7.2.2 Factorización LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

7.2.3 Factorización de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

7.3 Métodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

7.3.1 Método de Jacobi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

7.3.2 Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

7.3.3 Método SOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

7.4 Ejercicios con  Matlab   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

8 Interpolación y aproximación de funciones con  Matlab   193

8.1 Polinomios en  Matlab   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

8.2 Interpolación polinómica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

8.3 Interpolación mediante splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

8.4 Diferencias divididas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

8.5 Ejercicios con  Matlab   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

7

Page 9: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 9/250

Índice general 

9 Derivación e integración con  Matlab   211

9.1 Derivación con  Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

9.2 Integración con  Matlab   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

9.3 Ejercicios con Matlab   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

10 Resolución de problemas de valor inicial con  Matlab   223

10.1 Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

10.2 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

10.3 Métodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

10.4 Métodos multipaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22910.5 Ejercicios con  Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

11 Resolución de problemas de contorno con  Matlab   235

11.1 ODEs lineales con condiciones en la frontera . . . . . . . . . . . . . . . . . . . . 235

11.2 Diferencias finitas para EDPs de evolución . . . . . . . . . . . . . . . . . . . . . 237

11.2.1 Diferencias finitas para problemas parabólicos . . . . . . . . . . . . . . . . . 237

11.2.2 Diferencias finitas para problemas hiperbólicos . . . . . . . . . . . . . . . . . 242

11.3 Ejercicios con  Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

Bibliografía 247

8

Page 10: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 10/250

Parte I

Contenidos teóricos

Page 11: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 11/250

Page 12: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 12/250

Capítulo 1

Introducción a la modelizaciónmatemática en la Ingeniería

Uno de los principales logros de la Matemática es su aplicabilidad a la soluciónde problemas reales. Algunos de estos problemas aparecen en fenómenos de lanaturaleza como, por ejemplo, la propagación de ondas, la predicción del tiempo,y otros muchos aparecen en aplicaciones o procesos industriales y técnicos como,por ejemplo, el control de temperaturas, el diseño de una cadena de montaje, elcontrol de vuelo en un avión, el diseño de una aeronave, etc. Frecuentemente, ala resolución del problema se añaden otro tipo de factores, como pueden ser, lainaccesibilidad de la maquinaria o procesos de corrosión química, que incrementanla dificultad de obtener los resultados deseados y detectar averías. Las matemáticas

 juegan un papel fundamental en estos casos ya que permiten diseñar modelos quese ajusten al comportamiento del problema, complementando el estudio teórico delmodelo con un proceso de simulación que permita optimizar los diseños y mejorarlos resultados obtenidos.

1.1 Modelización matemática

En esta parte pretendemos dar respuesta, de forma introductoria, a las siguientespreguntas:

¿Qué significa el término modelo?, ¿cómo se construye un modelo? y ¿qué es loque podemos conseguir con él?

A grandes rasgos, un modelo matemático es aquel que utiliza las técnicas ma-

temáticas como, por ejemplo, ecuaciones, funciones, probabilidades, etc., para la11

Page 13: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 13/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

representación de un determinado proceso o fenómeno del mundo real. Los modelosmatemáticos pueden ser de diferentes tipos, como por ejemplo:

•  Estáticos: Son modelos invariables en el tiempo. El modelo de una cons-trucción, pieza o dispositivo en los que se relacionen sus variables de estadoprincipales con otras primarias puede considerarse como un modelo estático.

•  Dinámicos: Son aquellos modelos que evolucionan con el tiempo. La mayoríade modelos tienen un comportamiento dinámico.

•   Continuos: Son los modelos que consideran las variables de estado del sistemacomo continuas.

•  Discretos: Son aquellos que consideran las variables discretas. Los modelosdiscretos son de gran utilidad en procesos intrínsecamente discretos como losque aparecen en procesos económicos o en diseño de procesos informáticos.

•   Deterministas: Son modelos donde no hay incertidumbre y se puede conocerde manera puntual la forma del resultado. Los principales  modelos deter-ministas de procesos continuos  suelen estar representados por ecuaciones osistemas de ecuaciones diferenciales ordinarias o en derivadas parciales. Losprincipales   modelos deterministas de procesos discretos   suelen estar repre-sentados por ecuaciones o sistemas de ecuaciones en diferencias.

•  Estocásticos: Son modelos en los que no se conoce el resultado esperado, sinosu probabilidad y existe, por tanto, incertidumbre. Los modelos estocásticos permiten extraer información acerca de una causa-efecto o hacer prediccionessobre algún proceso. Estos modelos vienen representados por ecuaciones queinvolucran probabilidades. Cuando un parámetro o variable involucra alea-toriedad se le suele llamar variable aleatoria y, si se trata de una función,proceso estocástico.

La solución de los modelos matemáticos se puede obtener por métodos analíticoso por métodos numéricos. La resolución analítica consiste en la obtención de una

expresión que nos proporcione toda la información necesaria sobre dicha solución.La resolución numérica consiste en encontrar una aproximación de la soluciónbuscada dentro de un orden de tolerancia.

Uno de los propósitos de un modelo es que permita predecir la respuesta de unsistema dadas unas condiciones. Por una parte, el modelo debe ser una buenaaproximación al sistema real e incorporar la mayor parte de sus características. Porotra parte, no debe ser tan complejo que sea imposible de entender o experimentarcon él. También hay que tener en cuenta el coste de la construcción y resolución delmodelo, ya que en muchas ocasiones necesitaremos una respuesta rápida. Además,el modelo debe ser flexible, esto es, deber ser capaz de responder adecuadamentea cambios en el sistema.

12

Page 14: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 14/250

1.1 Modelización matemática 

Resumiendo, para elaborar un modelo matemático hay que tener en cuenta lassiguientes propiedades:

•   Fidelidad.

•   Complejidad.

•   Coste.

•   Flexibilidad.

Un buen modelo debe mantener el equilibrio entre realidad y simplicidad. Es con-veniente empezar con un modelo sencillo e ir completándolo de forma gradual.

El proceso para elaborar un modelo matemático es el siguiente:

Paso 1. Identificación del problema:  Identificar el problema real que hay queresolver y determinar qué se quiere hacer o encontrar.

Paso 2. Formulación del modelo matemático:  Determinar la información re-levante y los datos que son de utilidad y hacer hipótesis. Básicamente serealizarán dos tareas:

a. Determinación de variables:   Identificar las variables involucradas enel proceso, estableciendo si son parámetros, variables dependientes o

independientes, especificar las restricciones, etc.b. Formulación matemática:   Realizar hipótesis lo suficientemente sim-

ples para tratarse de manera matemática. Formular el tipo de ecuacióno procedimiento que mejor describe y se ajusta a la idealización del pro-blema, teniendo en cuenta si existen diferentes alternativas al modelo.

Paso 3. Resolución o interpretación:  Aplicar los conocimientos matemáticospara resolver o interpretar el modelo.

Paso 4. Verificación y validación:   Comparar los datos obtenidos con datos

reales. Esto puede dar lugar a incorporar nuevas necesidades en el mode-lo para mejorar los resultados. Si los resultados se alejan de los objetivos,reajustar los parámetros y/o el modelo e iniciar el proceso.

En la Figura 1.1 podemos ver de forma esquemática el procedimiento anterior.Se empieza examinando el sistema e identificando el comportamiento particularque deseamos predecir o explicar. Después se identifican las variables y se realizanhipótesis lo suficientemente sencillas para poderlas formular matemáticamente ygenerar el modelo. Entonces se valida el modelo con las pruebas o ensayos necesa-rios. Si los resultados son satisfactorios se puede usar el modelo para la finalidad

prevista. Si los resultados no son satisfactorios hay varias posibilidades. Se puededecidir que el modelo necesita ser refinado bien incorporando nuevas variables o13

Page 15: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 15/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

reestructurando parte del modelo. En algunos casos los resultados pueden ser taninsatisfactorios que el problema original debe ser redefinido porque era demasiado

ambicioso.

Examina el“sistema”

Identifica elcomportamientoy haz hipótesis

¿Puedesformular un

modelo?

¿Puedesresolver el

modelo?

Valida el modelo

¿Son losresultadosprecisos?

Realizapredicciones y/o

explicaciones

Aplica losresultados al

sistema

Sí   No,

refina

Resultados no aceptables

No, simplificaNo, simplifica

Figura 1.1:  La naturaleza iterativa de la construcción de un modelo.

El proceso que se presenta en la Figura 1.1 no sólo hace hincapié en la naturalezaiterativa de la construcción del modelo, sino también introduce el equilibrio entre

la simplificación y el refinamiento del modelo. Generalmente se empieza con unmodelo simple y se evoluciona en el proceso de modelado, refinándolo según losresultados obtenidos en el proceso de validación. Si no se puede llegar a un mo-delo adecuado o no puede resolverse, se debe simplificar. Si los resultados no sonsuficientemente precisos se debe refinar el modelo.

Debido generalmente a los altos costes en la fabricación de prototipos, en los úl-timos años se ha incrementado considerablemente el uso de la simulación. El usode la simulación antes de cambiar o elaborar un nuevo producto permite redu-cir las posibilidades de que no se cumplan las especificaciones deseadas, eliminar

obstáculos imprevistos, prevenir el hecho de utilizar excesivos o escasos recursos yoptimizar su rendimiento.

En particular, dentro del campo de la aeronáutica, debido al alto coste de la cons-trucción y las pruebas de vuelo en aviones reales, los modelos matemáticos jueganun papel fundamental. Estos modelos se usan conjuntamente con la simulaciónpor ordenador, entre otras cosas, para evaluar las posibilidades de un prototipode avión y de aquí mejorar el diseño del mismo. Además, una vez obtenido y vali-dado el modelo, se puede utilizar para realizar simulaciones de vuelo, reconstruirlas condiciones de vuelo tras un accidente, estudiar efectos en la modificación deldiseño, predecir la fatiga producida en cierta parte del fuselaje del avión, etc.

14

Page 16: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 16/250

1.2 Algunos modelos diferenciales

1.2 Algunos modelos diferenciales

En este apartado veremos algunos ejemplos de modelos matemáticos sencillos quese basan en ecuaciones diferenciales ordinarias y en ecuaciones diferenciales enderivadas parciales.

El primer ejemplo describe las oscilaciones de una masa sujeta por un muelleobligada a moverse en línea recta.

Ejemplo 1.1 (Sistema masa-muelle)  Considerar un sistema mecánico consti-tuido por una masa  m  que se puede trasladar a lo largo de una línea horizontal,por ejemplo, el eje  x  (ver Figura 1.2). La posición de la masa se identifica por la coordenada de su centro de masas,  P , que está atado a un muelle elástico, cuyos 

extremos son  A y  P . Escribir las ecuaciones del movimiento del sistema mecánicoconsiderando los siguientes casos de dificultad creciente:

a)  No hay rozamiento ni fuerzas externas y las oscilaciones son pequeñas.

b)  No hay rozamiento ni fuerzas externas pero las oscilaciones no son peque-ñas, esto es, la ley de Hook no es válida y hay que tener en cuenta fuerzas proporcionales al cuadrado o al cubo del valor del desplazamiento.

c)   Caso b)  donde además hay rozamiento y se aplican fuerzas externas depen-

dientes del tiempo.

P A

k

x

Figura 1.2:  Sistema masa-muelle.

Solución:

a)  Las hipótesis que definen el sistema mecánico son las siguientes:

•  El sistema se comporta como una masa puntual cuya posición se iden-tifica por la variable  x.

•  La acción del muelle es una fuerza de la forma  T   = kx.

•  Las fuerzas de rozamiento son despreciables con respecto a la acción delmuelle.15

Page 17: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 17/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

Aplicando la Segunda ley de Newton de la mecánica clásica tenemos

m

d2x

d t2   = −kx.   (1.1)

El modelo matemático es una ecuación de evolución para el siguiente vectorde variables:

u =

  xdxdt

.

Utilizando las variables anteriores y llamando  v  =   dxdt ,  κ  =   k

m , la ecuacióndiferencial ordinaria de segundo orden (1.1) queda

dx

dt  =   v,

dvdt

  =   −κx, (1.2)

que es un sistema de ecuaciones diferenciales lineales de primer orden. Elsistema (1.2) lo escribiremos habitualmente en la forma vectorial,

d

dt

  xv

=

  v−κ x

.

b)   Si consideramos un orden superior en el desarrollo de Taylor de la fuerza derestitución, esto es,

F (x) = −kx + x

2

( suele ser un parámetro pequeño y, por tanto, la contribución del términox2 sólo es relevante cuando x  toma valores grandes, esto es, con oscilacionesde gran amplitud). En este caso, considerando  ε  =  

m  el sistema a resolverserá

d

dt

  xv

=

  v

−κ x + ε x2

,

cuya solución analítica puede adquirir una complejidad considerable.

c)  Si consideramos una fuerza de rozamiento en sentido opuesto al movimientoproporcional a la velocidad, con coeficiente de rozamiento  α, y una fuerzaexterna,  f (t), la fuerza total será:

F (x, t) = −k x + x2 − αdx

dt  + f (t),

y denotando  β  =   αm  y  f (t) =   f (t)

m  , el sistema a resolver será

d

dt

  xv

=

  v

−κ x + ε x2 − βv  +  f (t)

,

que no tiene solución analítica.

16

Page 18: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 18/250

1.2 Algunos modelos diferenciales

En el siguiente ejemplo deducimos las ecuaciones que describen el movimiento deun péndulo, particularizando posteriormente para el caso en que las oscilaciones

sean pequeñas.Ejemplo 1.2 (Movimiento de un péndulo)  Escribir la ecuación que describe el movimiento de un péndulo de longitud   l   en el que cuelga una bola de masa m  y que oscila sin rozamiento bajo la acción de la gravedad como un sistema de ecuaciones diferenciales de primer orden. Escribir también la ecuación aproximada para oscilaciones pequeñas.

Solución:

θ

θ

l

Figura 1.3:  Péndulo.

El movimiento de un péndulo viene descrito por la Segunda ley de Newton. Apartir de la Figura 1.3, podemos plantear las ecuaciones

md2(lθ)

dt2  = −mg sen(θ), θ(0) = θ0, θ(0) = θ0 ,

donde   g  es la constante gravitatoria y   θ  es el ángulo que forma con la vertical.Simplificando y agrupando términos se tiene

d2 θ

dt2  = −k2 sen(θ), k =

 g

l .

Si las oscilaciones son pequeñas, podemos tomar  sen(θ)   θ  y, llamando  ω  =  θ,los sistemas de ecuaciones de primer orden son

d

dt   θω =

  ω

−k2 sen(θ)  ,

  d

dt   θω =

  ω

−k2 θ .

17

Page 19: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 19/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

El problema linealizado se corresponde con un oscilador armónico, cuya soluciónes fácil de obtener y viene dada por

θ(t) = θ0 cos(kt) +  θ0k

  sen(kt).

En cambio, la solución del problema no lineal es bastante complicada y viene dadaen términos de integrales elípticas de primera especie (cuyo valor hay que calcularnuméricamente), por lo que lo más sencillo y rápido suele ser resolver el sistemade ecuaciones numéricamente.  

Ejemplo 1.3 (Vibraciones)  Bajo condiciones generales, las oscilaciones de una cuerda de masa despreciable vienen descritas por la ecuación de ondas,

∂ 2u

∂t2  = α2

∂ 2u

∂x2

  .

Si en vez de una cuerda se tiene una membrana bidimensional, la ecuación de ondas se puede expresar como

∂ 2u

∂t2  = α2

∂ 2u

∂x2 +

 ∂ 2u

∂y2

= α2∇2u .

Para placas rectangulares, las ondas transversales de pequeña amplitud se pueden 

describir mediante la ecuación ∂ 2u

∂t2  = α2

∂ 4u

∂x4 + 2

  ∂ 4u

∂x2∂y2 +

 ∂ 4u

∂y4

= α2∇4u .

Ejemplo 1.4 (Ecuaciones de los fluidos)  La ecuación de continuidad para un  fluido se escribe, para el campo de velocidades  v, como

∇v = 0   .

La ecuación de conservación del momento para un fluido Newtoniano se expresa 

comoρ

∂ v

∂t  = ρg − ∇ p + µ∇2v   ,

donde  ρ  es la densidad del fluido,   g   la aceleración de la gravedad,  p   la presión y µ el coeficiente de viscosidad.

La ecuación de la conservación de la energía es de la forma 

ρc pdT 

dt  = λ∇2T  + Φ   ,

donde  T  es la temperatura, c p es el calor específico, λ el coeficiente de conductividad térmica y  Φ  la función de disipación viscosa.

18

Page 20: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 20/250

1.3 Ecuaciones adimensionales

1.3 Ecuaciones adimensionales

En ocasiones, es interesante expresar los modelos en términos de variables adi-mensionales, con ello, se obtienen modelos que no dependen de las característicasconcretas del problema particular que se estudia.

Los ejemplos anteriores se pueden reescribir usando variables adimensionales. Esteprocedimiento siempre se puede aplicar y es útil. En algunos casos es necesarioescribir modelos en los que todas las variables, dependientes e independientes, esténescritas en forma adimensional referidas a unas variables de referencia adecuadas.Éstas se pueden elegir de forma que las nuevas variables tomen valores en losdominios [0, 1] o  [−1, 1].

Las variables de referencia se pueden elegir considerando razones físicas y/o geomé-tricas relacionadas con el sistema particular que se esté modelizando. Técnicamen-te, si consideramos  w cierta variable (dependiente o independiente), y suponemosque los valores menor y mayor de   w   son, respectivamente,   wm   y   wM , determi-nados por medidas físicas o geométricas, podemos obtener la siguiente variableadimensional:

w∗ =  w − wm

wM  − wm, w∗ ∈ [0, 1].

Por ejemplo, si w  representa la temperatura de un material sólido, podemos supo-

ner wm = 0 y  wM  = wc, siendo  wc  la temperatura de fusión del sólido.En principio, la descripción del modelo debería definir la evolución dentro deldominio  [0, 1]. Si esto no ocurriera, el modelo tendría que ser analizado de formacrítica.

Si  w  es una de las variables espaciales independientes, por ejemplo,  x,  y  y  z  paraun sistema de dimensión finita, entonces podemos adimensionalizar tomando co-mo variables de referencia el menor y mayor valor que toman cada una de ellas,respectivamente, xm,  ym,  zm, y  xM ,  yM ,  zM .

En algunos casos, puede ser útil referenciar todas las variables con respecto a unaúnica variable espacial, generalmente la que alcanza un valor mayor. Por ejemplo,supongamos que xm = ym =  zm = 0, y que yM  = axM , y zM  = bxM , con a, b < 1,entonces,

x∗ =  xv

xM , y∗ =

  yvxM 

, z∗ =  zvxM 

,

con  x∗ ∈ [0, 1],  y∗ ∈ [0, a],  z∗ ∈ [0, b].

Una cuestión más delicada es la elección del tiempo de referencia. Técnicamente,si el tiempo inicial es  t0  y  t es el tiempo real, podemos tomar:

t∗ =   t − t0T c − t0

, t∗ ≥ 0.

19

Page 21: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 21/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

Generalmente podemos tomar   t0   = 0  y   T c   es un parámetro con dimensiones detiempo que se elige para que se satisfagan ciertas condiciones.

De modo ilustrativo, vamos a adimensionalizar uno de los ejemplos estudiados enel apartado 1.2.

Ejemplo 1.5 (Adimensionalización del modelo lineal muelle-masa)  Con-siderar el modelo descrito en el apartado  a)  del Ejemplo 1.1, en el que se añade la siguiente hipótesis:

•  Se aplica una fuerza  F  en la dirección del eje  x.

Obtener una ecuación adimensionalizada para el modelo descrito.

Solución:En este caso, el modelo se puede escribir de la siguiente forma:

md2x

dt2  = F  − kx.   (1.3)

Es natural tomar   l  =  F/k,   t∗   =   t/T c, y  x∗   =  x/l. Entonces la ecuación (1.3) sereescribe

m

kT 2c

d2x∗

dt∗2  = 1 − x∗.

Suponiendom

kT 2c= 1 =⇒   T 2c   =

 m

k  ,

se tiened2x∗

dt∗2  = 1 − x∗,

que es un modelo de segundo orden cuya evolución se puede analizar en términosde unidades de T c.  

1.4 Ejercicios resueltos

En el siguiente ejercicio, obtenemos el sistema de ecuaciones diferenciales de unmodelo simplificado que nos permite determinar la órbita de un satélite alrededorde la Tierra.

Ejercicio 1.1 (Órbita de un satélite)  Un modelo simplificado para calcular la órbita de un satélite alrededor de la Tierra consiste en suponer que la masa total de la Tierra se encuentra concentrada en su centro de gravedad y que la única 

 fuerza que interviene es la de la gravedad. Escribe las ecuaciones diferenciales que describen el movimiento como un sistema de ecuaciones de primer orden.20

Page 22: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 22/250

1.4 Ejercicios resueltos

Solución:Consideramos un sistema de referencia en el que la Tierra se encuentra en el origen

de coordenadas y el movimiento tiene lugar en el plano  X − Y . Si la posición delsatélite en el plano lo denotamos por  r  = (x, y), la ecuación de Newton viene dadapor

md2 r

dt2  = −G M m

  r

r3 ,   r(0) = r0,   r(0) = r0,

donde G es la constante de gravitación universal,  M  es la masa de la Tierra y  m esla masa del satélite. Posteriormente, en el Ejercicio 1.5 de este apartado veremosque tomando las unidades adecuadas para medir la distancia y reescalando eltiempo adecuadamente se obtiene la ecuación adimensional,

d2

rdt2

  = −   rr3 .

Si denotamos por   v  =  r  = (vx, vy), el sistema de ecuaciones diferenciales que sepide es:

x   =   vx   ,

vx   =   −   x

(x2 + y2)3/2  ,

y   =   vy   ,

vy   =   −   y(x2 + y2)3/2   .

(1.4)

Nota: Este problema todavía tiene solución analítica, aunque viene dada en formaimplícita (por lo que para obtener la trayectoria hay que recurrir necesariamentea métodos numéricos). En la práctica se necesita calcular las trayectorias con granprecisión y, por tanto, hay que considerar modelos más sofisticados (el efecto debidoa que la Tierra es achatada, la influencia del Sol, de la Luna, efectos relativistas,etc.) que obviamente dan lugar a ecuaciones que no tienen solución analítica y, portanto, la única forma de poder calcular las trayectorias de los satélites es mediante

métodos numéricos.Por ejemplo, un modelo un poco más realista que tiene en cuenta el términodominante del efecto del achatamiento de la Tierra viene dado por

d2r

dt2  = −   r

r3 − ε  r

r5 ,

donde  ε  es una constante que para el caso de la Tierra tiene un valor del ordende   ε ∼   10−3. Este problema ya no tiene solución analítica y hay que resolverlonuméricamente.  

21

Page 23: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 23/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

El siguiente ejercicio trata sobre la modelización del fenómeno de difusión del calor.

Ejercicio 1.2 (Modelo lineal de difusión del calor)   Consideremos el mode-lo lineal unidimensional de difusión del calor en una barra. Las hipótesis que de-

 finen el modelo mecánico son las siguientes:

•  El estado del sistema se describe por la temperatura  u  =  u(x, t) a lo largo del eje de la barra que podemos identificar por la variable  x ∈ [0, 1]. Se desprecian variaciones ortogonales a los ejes de la barra, ya que las paredes de la barra están perfectamente aisladas.

•  El flujo de calor,  q , por unidad de área es proporcional al gradiente de tem-peraturas:

q  = −h0∂u

∂x,   (1.5)

donde  h0  es el coeficiente de conducción del calor.

•  Las propiedades materiales del conductor se identifican por el coeficiente de conducción del calor,  h0, y el calor específico  c0.

Escribe las ecuaciones que describen dicho modelo.

Solución:El modelo matemático se puede obtener igualando el flujo neto de calor en elelemento de volumen a la velocidad de crecimiento de la capacidad calorífica en elvolumen. Sean q − y  q +, respectivamente, los flujos de calor entrante y saliente porunidad de área (ver Figura 1.4). El equilibrio anterior lo podemos formular como

c0A∂u

∂t dx = −A

q + − q −

= −A

∂q 

∂x dx,   (1.6)

donde A es el área de una sección perpendicular al eje de la barra.

dx

q −   q +

Figura 1.4:  Difusión en una dimensión espacial.

Usando la ecuación (1.5) en (1.6) se tiene:

∂u∂t

  = k0 ∂ 2

u∂x2 , k0  =  h0

c0.

22

Page 24: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 24/250

1.4 Ejercicios resueltos

Para modelizar la difusión de calor en una barra tridimensional prismática homo-génea se tiene el modelo siguiente

∂u

∂t  = k0

∂ 2u

∂x2 +

 ∂ 2u

∂y2  +

 ∂ 2u

∂z2

= k0∇2u ,

que es una ecuación de difusión multidimensional.

El modelo unidimensional anterior también se puede utilizar para describir ladistribución de temperaturas estacionaria, que se obtiene igualando a cero la partederecha de la ecuación,

k0d2u

dx2  = 0.

Y en varias dimensiones se tiene

∇2u = 0  ,

que es la ecuación de Laplace. Una ecuación similar a ésta es la ecuación de Poisson,

∇2u =  f ,

que es una ecuación muy utilizada en problemas de electrostática.

Estas ecuaciones se pueden tratar mediante el método de separación de variables

si el recinto donde se estudian y las condiciones de contorno son sencillas. Pararecintos más complejos, el problema se ha de tratar numéricamente.  

Una generalización del modelo unidimensional de la difusión del calor visto en elejercicio anterior a un modelo no lineal la proponemos a continuación.

Ejercicio 1.3 (Modelo no lineal de difusión del calor)  Cuando se modeliza el fenómeno del flujo de calor se puede introducir la no linealidad. Por ejemplo,si el coeficiente del flujo de calor depende de la temperatura, esto es,   h  =  h(u).Escribe la ecuación no lineal que describe dicho modelo.

Solución:En este caso, la ecuación de equilibrio para el flujo de calor genera el siguientemodelo:

∂u

∂t  =

  ∂ 

∂x

k(u)

∂u

∂x

, k(u) =

 h(u)

c0.

El siguiente ejercicio está relacionado con el modelo de difusión del calor vistoen el Ejercicio 1.2. En él, consideramos un modelo matemático capaz de describir

la difusión de un contaminante de un fluido en un espacio unidimensional. Comoveremos, se obtendrá una ecuación de evolución análoga a la del Ejercicio 1.2.23

Page 25: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 25/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

Ejercicio 1.4 (Modelo lineal de difusión de un contaminante)  Considera un conducto lleno de un fluido en reposo y un contaminante que se difunde en el con-

ducto en la dirección   x  del eje del conducto. Las hipótesis que definen el modelomecánico son las siguientes:

•   La cantidad física que define el estado del sistema es la concentración del contaminante:

c =  c(x, t) : [0, l] × [t0, T ] → R+.

Las variaciones de  c  a lo largo de coordenadas ortogonales al eje  x son des-preciables.

•  La densidad del contaminante la indicaremos por  ρ0  y la supondremos cons-tante.

•  No hay dispersión o inmersión de contaminante en las paredes.

•   El fluido es estacionario, mientras que la velocidad de difusión del contami-nante se describe por un modelo fenomenológico que establece que la veloci-dad de difusión es directamente proporcional al gradiente de  c e inversamente proporcional a  c.

Obtén la ecuación que describe el modelo.

Solución:El modelo de evolución, es decir, una ecuación de evolución para  c  se puede obte-ner utilizando la ecuación de conservación de la masa. Para derivar tal ecuación,consideremos, teniendo en cuenta la Figura 1.4, el flujo  q  =  q (x, t)  a lo largo delconducto y sean  q −  y  q + los flujos entrante y saliente, respectivamente. Bajo lascondiciones de regularidad adecuadas, que son consistentes con el sistema físico,tenemos que la relación entre los flujos anteriores viene dada por

q + = q − + ∂q 

∂x dx.

Una ecuación de equilibrio se puede obtener igualando la cantidad de flujo neto alincremento de masa en el elemento de volumen  A dx, siendo  A  la sección del con-ducto. Como q  =  Acv, donde v  es la velocidad de difusión, obtenemos la siguienteecuación:

ρ0A∂c

∂t dx + A

∂ (cv)

∂x  dx = 0.   (1.7)

Teniendo en cuenta las hipótesis anteriores, la ecuación (1.7) se puede escribir dela siguiente forma:

v = −h0

c

∂c

∂x,   (1.8)

siendo h0  el coeficiente de difusión.24

Page 26: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 26/250

1.4 Ejercicios resueltos

Sustituyendo la ecuación (1.8) en (1.7), tenemos

∂c

∂t   = k0

∂ 2c

∂x2 , k0  =

 h0

ρ0 ,

que es un modelo lineal.  

Ejercicio 1.5 (Modelo adimensional para la órbita de un satélite)  Escri-be las ecuaciones diferenciales adimensionalizadas correspondientes al modelo del Ejercicio 1.1.

Solución:En el Ejercicio 1.1 obtuvimos las ecuaciones

d2 rdt2

  = −G M    rr3 ,   r(0) = r0,   r(0) = r0 .   (1.9)

Tomamos una longitud de referencia,   l, que podría ser, por ejemplo, la distanciainicial del satélite a la Tierra, y definimos las variables adimensionalizadas  r∗ = r/ly  t∗ =  t/T c  . Entonces la ecuación (1.9) se reescribe

l

T 2c

d2 r∗

dt∗2  = −G M 

  l r∗

l3r∗3 ,

es decir, d2 r∗

dt∗2  = −G M T 2c

l3r∗

r∗3 .

Para determinar  T c, suponemos

G M T 2cl3

  = 1 =⇒   T 2c   =  l3

G M   ,

y obtenemos la ecuación adimensionalizada

d2 r∗

dt∗2   = −  r∗

r∗3  ,   (1.10)

que representa una ecuación (vectorial) diferencial de segundo orden. Si denotamospor  v  =  r  = (vx, vy), el sistema de ecuaciones diferenciales de primer orden quese pide es (1.4).  

Ejercicio 1.6 (Modelo adimensional lineal de difusión de un contami-nante)   Obtén un modelo adimensional para el modelo descrito en el Ejercicio1.4, teniendo en cuenta que la ecuación en términos de variables reales se puede escribir como:

∂c

∂t   = k0∂ 2c

∂x2 .   (1.11)25

Page 27: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 27/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

Solución:Es natural tomar  c∗  =  c/cM ,   t∗  =  t/T c, y  x∗  =  x/l. Entonces la ecuación (1.11)

se reescribe 1

T c

∂c∗

∂t∗  =

 k0l2

∂ 2c∗

∂x∗2.

Suponiendok0T c

l2  = 1 =⇒   T c =

  l2

k0,

se tiene∂c∗

∂t∗  =

  ∂ 2c∗

∂x∗2.   (1.12)

En particular, la ecuación (1.12) que se obtiene es el mismo modelo para describirel fenómeno de difusión en distintos medios. De hecho, sólo varía   T c  al cambiarlas propiedades del medio. Esto significa que la evolución es cualitativamente lamisma, pero el sistema evoluciona en el tiempo con diferentes velocidades escaladasrespecto a T c.  

Ejercicio 1.7 (Ecuaciones adimensionales para los fluidos)  Considera la ecua-ción de continuidad 

∇v = 0   ,

y la ecuación de conservación del momento

ρ∂ v

∂t  = ρg − ∇ p + µ∇2v .

Reescribe estas ecuaciones utilizando variables adimensionales.

Solución:Estas ecuaciones contienen tres dimensiones básicas, la masa, la longitud y eltiempo. Todas las variables pueden adimensionalizarse utilizando, por ejemplo, ladensidad y dos constantes de referencia, que pueden ser características del fluido

como,  U , una velocidad de referencia (como puede ser la velocidad a la entrada)y  L una longitud de referencia (como puede ser el diámetro de un cuerpo).

Las variables adimensionales que tomaremos son

v∗ =  v

U   ,

x∗ =  x

L  , y∗ =

  y

L  , z∗ =

  z

L  ,

t∗ =  tU 

L  , p∗ =

 p + ρgz

ρU 2  .

26

Page 28: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 28/250

1.5 Ejercicios propuestos

Se cumple, por ejemplo, que

∂u

∂x  =

 ∂ (Uu∗)

∂ (Lx∗)   =

 U 

L

∂u∗

∂x∗   .

Así, las ecuaciones adimensionales del movimiento del fluido son

∇∗v∗ = 0  ,

∂ v∗

∂t∗  = −∇∗ p∗ +

  µ

ρUL∇∗2v∗   ,

que introduciendo el número de Reynolds,

Re = ρUL

µ  ,

se expresan como

∇∗v∗ = 0  ,

∂ v∗

∂t∗  = −∇∗ p∗ +

  1

Re∇∗2v∗   .

1.5 Ejercicios propuestos

1. Adimensionaliza la ecuación del muelle

md2x

d t2  = −k x, x(0) = x0, x(0) = v0

y resuélvela. Considera el caso particular:   m   = 0.3 Kg, k   = 3N/m, x0   =30 cm, v0  = −0.2 m/s y escribe la solución,  x(t), con sus unidades.

2. Adimensionaliza la ecuación de conservación de la energía para un fluido

ρc pdT 

dt  = λ∇2T  + Φ  ,

de forma similar a como se ha hecho para las ecuaciones de continuidad y deconservación del momento. Para ello, considera la temperatura adimensionalT ∗ = T /T 0, donde T 0  es una temperatura de referencia.

3. La siguiente ecuación diferencial constituye un modelo para la dinámica delas reacciones químicas en un reactor de flujo continuo:

u∂C 

∂x  = D

∂ 2C 

∂x2 − kC −  ∂C 

∂t  ,

donde   u  es la velocidad,   D  es el coeficiente de difusión,   k   es el ritmo de

reacción,   x  es la distancia a lo largo del reactor y   C   es la concentración(adimensional) de un determinado compuesto químico en el reactor.27

Page 29: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 29/250

Capítulo 1. Introducción a la modelización matemática en la Ingeniería 

a ) Determina las dimensiones apropiadas para  D  y  k.

b) Escribe esta ecuación en forma adimensional utilizando una longitud

L  y la velocidad media  V  como magnitudes para definir las variablesadimensionales.

4. La ecuación diferencial que describe el movimiento bidimensional en el planoX − Y  de un fluido compresible no viscoso es

∂ 2φ

∂t2  +

  ∂ 

∂t

u2 + v2

  +

u2 − a2

∂ 2φ

∂x2

+

v2 − a2

∂ 2φ

∂y2  + 2u v

  ∂ 2φ

∂x∂y  = 0 ,

donde  φ  es el potencial de velocidades y  a  es la velocidad del sonido en elgas (variable). Adimensionaliza esta relación, utilizando como parámetros  Lpara longitud y  a0  para la velocidad de entrada del sonido para definir lasvariables adimensionales.

5. La ecuación diferencial que describe las vibraciones de pequeña amplitudy(x, t) de una viga tiene la forma

ρ A∂ 2y

∂t2  + E I 

∂ 4y

∂x4  = 0  ,

donde ρ es la densidad del material,  A es el área de la sección recta,  I  es elmomento de inercia y  E  el módulo de Young. Utiliza las cantidades  ρ,  E  yA para adimensionalizar  y,  x y  t, y escribe la ecuación diferencial en formaadimensional.

28

Page 30: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 30/250

Capítulo 2

Resolución de sistemas deecuaciones lineales

2.1 Introducción

Muchos problemas de ingeniería, como veremos más adelante, requieren planteary resolver un sistema de ecuaciones algebraicas.

Se llama  sistema lineal   de  n ecuaciones y  n  incógnitas a un conjunto de  n igual-dades de la forma

a11x1   +   a12x2   +   a13x3   +   · · ·   +   a1nxn =  b1a21x1   +   a22x2   +   a23x3   +   · · ·   +   a2nxn =  b2

...an1x1   +   an2x2   +   an3x3   +   · · ·   +   annxn = bn

donde  aij , i, j  = 1, 2, . . . , n, son los coeficientes del sistema,  xi , i  = 1, 2, . . . , n,

las incógnitas y  bi , i = 1, 2, . . . , n, los términos independientes.

Habitualmente usaremos la notación matricial:

a11   a12   a13   · · ·   a1na21   a22   a23   · · ·   a2n

...  ...

  ...  ...

  ...an1   an2   an3   · · ·   ann

   A

x1

x2

...xn

   x

=

b1b2...

bn

   b

.

29

Page 31: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 31/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Así, un sistema de ecuaciones lineales tiene la forma genérica

Ax =  b,   (2.1)

donde A  es la matriz de coeficientes del sistema y  b  el vector de términos indepen-dientes.

Si A es invertible, formalmente la solución de este sistema se puede obtener como

x =  A−1b ,

pero en la mayoría de ocasiones no resulta conveniente calcular la matriz inversa,A−1, para resolver el sistema y se recurre a técnicas alternativas.

Nosotros en particular estudiaremos dos tipos de métodos para resolver los sistemasde ecuaciones lineales: métodos directos y métodos iterativos. Los métodos directosobtienen la solución exacta de (2.1) siempre que todas las operaciones se puedanhacer sin errores de redondeo, es decir, trabajemos con aritmética exacta. Losmétodos iterativos construyen una sucesión de aproximaciones a la solución exactadel sistema.

2.2 Métodos directos para la resolución de sistemas

lineales

Generalmente, los métodos directos se basan en transformar el sistema de ecuacio-nes inicial en un sistema equivalente (o sea, que tenga las mismas soluciones) que sepueda resolver más fácilmente. Para ello, se hace uso de las siguientes propiedades:

•  Dado un sistema de ecuaciones, si a una de las ecuaciones se le suma unacombinación lineal de las ecuaciones restantes, el sistema de ecuaciones re-sultante es equivalente al sistema inicial.

•  Si se intercambian las ecuaciones de un sistema de ecuaciones, el sistemaresultante es equivalente al inicial.

•  Si se multiplica una ecuación de un sistema por una constante no nula, seobtiene un sistema equivalente.

Estas propiedades son las que utiliza el método de triangularización de Gauss.

30

Page 32: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 32/250

2.2 Métodos directos para la resolución de sistemas lineales

2.2.1 Algoritmo de Gauss

Recordemos cómo funciona este método con un ejemplo.

Ejemplo 2.1  Resolver el sistema  10   −7 0

−3 2 65   −1 5

x1

x2

x3

=

7

46

  ,   (2.2)

utilizando el método de triangularización de Gauss.

Solución:

Si en el sistema (2.2) restamos −3/10   veces la primera ecuación a la segundaobtenemos el sistema 10   −7 0

0   −0.1 65   −1 5

x1

x2

x3

=

7

6.16

  .

Ahora restamos 5/10 veces la primera ecuación a la tercera y obtenemos el sistemaequivalente

10   −7 0

0   −0.1 60 2.5 5

x1

x2x3

= 7

6.12.5

  .

Por último, si a la tercera ecuación la restamos −2.5/0.1 veces la segunda se llegaal sistema  

10   −7 00   −0.1 60 0 155

x1

x2

x3

=

7

6.1155

  .

Con lo que hemos llegado a un sistema de ecuaciones equivalente al inicial cuya

matriz de coeficientes es una matriz triangular superior,

10x1   −   7x2   = 7−   0.1x2   + 6x3   = 6.1

155x3   = 155

.

Este tipo de sistemas tiene una solución sencilla. Se empieza despejando la últimaecuación, la solución obtenida se utiliza para despejar la penúltima ecuación y asísucesivamente.

31

Page 33: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 33/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Aplicando dicho procedimiento al sistema que acabamos de obtener, resulta,

155x3  = 155→

  x3  = 1

−0.1x2 + 6x3  = 6.1 → −0.1x2 + 6 = 6.1 →   x2  = −1

10x1 − 7x2  = 7 → 10x1 + 7 = 7 →   x1  = 0

El método utilizado para resolver el sistema cuya matriz de coeficientes es trian-gular superior se llama el método de  sustitución regresiva . Si la matriz resultantede la triangularización fuese triangular inferior, se puede obtener la solución delsistema mediante un procedimiento similar que, en este caso, se llama sustitución 

progresiva .

De forma esquemática, el algoritmo de Gauss se estructura del siguiente modo:Dado un sistema  Ax =  b, se considera la matriz ampliada  del sistema

(A|b)   ,

y se realizan los siguientes pasos:

•  Para cada fila i se elige un  pivote ,  aii. Si  aii = 0 se intercambian filas.

•  Se anulan los elementos por debajo del pivote.

•  Se procede de forma análoga hasta la fila  n-ésima.

•  El sistema resultante es equivalente al de partida y su matriz asociada estriangular superior. Para resolver este sistema se puede usar el método desustitución regresiva.

2.2.2 Factorización  LU   de una matriz

Denotemos por L y  U  a matrices triangulares inferiores y superiores dadas por

L =

l11   0   · · ·   0

l21   l22...

...  ...

  . . .   0ln1   ln2   · · ·   lnn

, U  =

u11   u12   · · ·   u1n

0   u22

......

  ...  . . .   un−1,n

0 0   · · ·   unn

.

(L y  U  vienen de las palabras inglesas lower  y  upper ).

Como hemos visto, los sistemas Lx  =  b y  U x =  b  son inmediatos de resolver y, por

tanto, si podemos descomponer la matriz A en la forma A =  LU  podremos resolver32

Page 34: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 34/250

2.2 Métodos directos para la resolución de sistemas lineales

nuestro sistema en dos pasos. Si la matriz A  es no singular esta descomposición essiempre posible (en algunos casos se requiere un cambio de filas y/o columnas).

El siguiente paso es escribir los coeficientes  lij , uij  en términos de los coeficientesaij . Como el problema está sobredeterminado (hay más coeficientes   lij , uij   quecoeficientes aij) tenemos cierta libertad en la elección de algunos de éstos. Nosotrostomaremos siempre  lii = 1, que se corresponde con el llamado método de Doolite(también es posible tomar, por ejemplo,  uii = 1 o  uii = lii).

Las siguientes fórmulas recursivas nos permiten obtener los coeficientes de lasmatrices L y  U  a partir de los coeficientes de la matriz  A:

u1j   =   a1j   ,

uij   =   aij −i−1k=1

likukj   , j ≥ i, i > 1  ,

lii   = 1  ,

lij   =  1

ujj

aij −

i−1k=1

likukj

  , j < i .

Este algoritmo permite obtener cada coeficiente a partir de coeficientes que ya hansido calculados. Si ujj  = 0 o toma valores muy pequeños aparecerá una singulari-

dad y hay que reordenar la matriz  A para evitar que esto ocurra.

Vamos a ilustrar con un ejemplo sencillo los pasos a seguir para obtener estadescomposición.

Ejemplo 2.2  Hallar la descomposición  LU  de la matriz 

A =

10   −7 0−3 2 6

5   −1 5

,

que es la matriz de coeficientes del sistema   (2.2).

Solución:La matriz A se puede descomponer como el producto

A =  L1A1   ,

con

L1  =

1 0 0−   3

10   1 0

0 0 1

  , A1  =

10   −7 00   −0.1 6

5   −1 5

  .

33

Page 35: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 35/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Por otra parteA1  =  L2A2   ,

con

L2  =

1 0 0

0 1 0510   0 1

  , A2  =

10   −7 0

0   −0.1 60 2.5 5

  .

Por último,A2  =  L3U ,

con

L2  = 1 0 00 1 0

0   − 2.50.1   1   , U  =

10   −7 00

  −0.1 6

0 0 155   .

Con lo que tenemos queA =  L1L2L3U  = LU ,

donde U  es la matriz triangular superior resultante al aplicar el método de Gaussy

L =

1 0 0

−   310   1 0510

  −2.50.1   1

  ,

es una matriz triangular inferior, cuyos elementos son los factores utilizados paratriangularizar la matriz  A.  

Si al aplicar el método de Gauss no hace falta intercambiar filas, este proceso esgeneral y permite descomponer una matriz cuadrada   A   como producto de unamatriz triangular inferior,  L, por una matriz triangular superior,  U .

A partir de la descomposición  LU   de  A, se puede resolver el sistema  Ax =  b  delsiguiente modo:

Ax =  b

−→L Ux  y

= b.

Se resuelve  Ly   =   b  por el método de sustitución progresiva y posteriormente seresuelve el sistema  Ux =  y  por el método de sustitución regresiva.

34

Page 36: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 36/250

2.2 Métodos directos para la resolución de sistemas lineales

2.2.3 Pivotación

Los elementos de la diagonal de la matriz U  de la descomposición LU  de la matriz A

se llaman pivotes. En el algoritmo de Gauss se realizan divisiones por los distintospivotes, de este modo, el algoritmo no podrá llevarse a cabo si alguno de los pivoteses cero. Además, es lógico pensar que si alguno de los pivotes es muy pequeño seproducirán errores.

Veamos un ejemplo.

Ejemplo 2.3  La solución exacta del sistema 

10   −7 0

−3 2.099 65   −1 5

x1

x2x3 =

7

3.9016   ,

es  x = (0, −1, 1). Resolver el sistema mediante el método de Gauss con una arit-mética de 5 dígitos significativos y comparar la solución obtenida con la solución exacta.

Solución:Aplicando el método de Gauss con 5 dígitos significativos tenemos

10   −7 0 7

−3 2.099 6 3.9015   −1 5 6

 ≈ 10   −7 0 7

0   −0.001 6 6.0010 2.5 5 2.5

 ≈ 10   −7 0 7

0   −0.001 6 6.0010 0 1.5005 104 1.5004 104

.

Al hacer el cálculo para la sustitución regresiva, se tiene

x3  = 1.5004 104

1.5005 104  = 0.99993 ,

que comparado con el resultado exacto,  x3   = 1, nos da un resultado aceptable.Para x2, se tiene

−0.001x2 + (6)(0.99993) = 6.001 ,

o sea,x2  = −1.5  ,

que ya no es un resultado aceptable, comparado con el valor exacto  x2  = −1. Esteproblema se debe principalmente a la propagación del error debida a la división porel pivote 0.001. Esto se resuelve intercambiando la segunda ecuación por la tercera,

ya que al realizar la triangularización ya no se obtiene un pivote tan pequeño. Estaestrategia de intercambiar filas se conoce como  pivotación .  

35

Page 37: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 37/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Una estrategia que se suele utilizar para evitar estos problemas del algoritmo deGauss es la estrategia de  pivotación parcial , que consiste en tomar como pivote en

el paso k-ésimo del algoritmo de triangularización el elemento más grande en valorabsoluto en la parte no reducida de la columna  k-ésima. La fila que contiene estepivote se intercambia con la fila  k-ésima para poner el pivote en la posición  (k, k)de la matriz. Los mismos intercambios se han de llevar a cabo en el vector  b.

Otra estrategia, conocida como pivotación completa , consiste en elegir como pivoteen el paso  k-ésimo al elemento de máximo valor absoluto de la submatriz activa(la que resulta de eliminar las  k − 1  primeras filas y primeras columnas). La filaque contiene a este pivote se intercambia con la fila  k-ésima y la columna que locontiene con la columna  k-ésima para poner el pivote en la posición   (k, k)  de lamatriz. Hay que tener en cuenta que el cambio de fila también se realiza sobre el

vector  b. La pivotación completa se utiliza menos que la parcial, ya que, aunquese obtienen mejores resultados, es mucho más costosa.

2.2.4 Errores y número de condición

Cuando se obtiene la solución numérica de un sistema de ecuaciones, se obtiene unvalor aproximado de la solución,  x∗, mientras que la solución exacta,  x, satisface

x =  A−1b .

Usualmente se tienen dos magnitudes que nos dan una idea del error cometido, elerror , definido como

e =  x − x∗   ,

y el residuor =  b − Ax∗   .

Estas dos magnitudes no tienen porqué ser pequeñas al mismo tiempo si se trabajacon aritmética finita.

Por otra parte, cuando se están resolviendo problemas prácticos los coeficientes

de un sistema de ecuaciones y los términos independientes están afectados de uncierto error. Por ello, es interesante preguntarse cómo se puede medir lo que cambiala solución,  x, de un sistema si se hacen cambios en  A y/o en  b.

ConsideramosAx =  b ,

y el sistema(A + δA)x =  b + δb .

Definiendo  δx = x − x, se tiene que

δx  =  A−1(−δA x + δb).   (2.3)36

Page 38: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 38/250

2.2 Métodos directos para la resolución de sistemas lineales

Introducimos el concepto de norma matricial

A ≡ maxAx

x   ,   ∀x = 0  ,

que cumple propiedades similares a la norma de vectores.

Tomando normas en la ecuación (2.3) se tiene

δx ≤ A−1(δA x + δb),   (2.4)

o sea,δx

x ≤ A−1A

δA

A

  +

  δb

A

x

.   (2.5)

A la cantidadκ(A) = AA−1   ,

se le llama número de condición  de la matriz A y nos da una idea de la propagacióndel error en la solución de un sistema de ecuaciones lineales.

El número de condición es un número difícil de calcular y se utilizan estimacionespara este número. Generalmente el número de condición de una matriz es muyalto si la matriz es casi singular.

2.2.5 Matrices especiales

En este apartado veremos cómo es posible simplificar los métodos que hemos vistohasta ahora cuando la matriz de coeficientes tiene una estructura particular.

Matrices tridiagonales

Un caso especial de sistemas de ecuaciones que aparecen frecuentemente son aque-

llos cuya matriz de coeficientes es tridiagonal, o sea, un sistema de ecuaciones conla siguiente estructura

b1   c1   0   · · ·a1   b2   c2   · · ·

· · ·an−2   bn−1   cn−1

0   an−1   bn

x1

x2

...xn−1

xn

=

d1d2...

dn−1dn

.   (2.6)

37

Page 39: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 39/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Para estos sistemas, la descomposición  LU  adopta una forma simple, ya que po-demos considerar

L =

1 0 0   · · ·   0

l21   1 0...

0  . . .

  . . .  . . .   0

...  ...   1 0

0   · · ·   0   ln,n−1   1

, U  =

u11   u12   0   · · ·   0

0   u22   u23

......

  . . .  . . .

  . . .   0...

  ...  . . .   un−1,n

0 0   · · ·   0   unn

.

Si realizamos el producto de matrices LU  e igualamos a la matriz A  obtenemos elsiguiente esquema recursivo

ui,i+1   =   ci   ,

li+1,i   =  ai

uii, i = 1, . . . , n − 1  ,

u11   =   b1   ,

uii   =   bi − li,i−1ui−1,i   , i = 2, . . . , n .

Matrices simétricas definidas positivas

Recordemos que una matrix A es simétrica si cumple que A =  AT. Además diremosque una matriz es definida positiva si cumple

xTAx > 0  ,   ∀x = 0 .

Si  A   es una matriz simétrica y definida positiva se puede encontrar una matriztriangular inferior,  L, de forma que

LLT = A .

Esta descomposición se denomina descomposición de Cholesky  de la matriz  A.

Veamos cómo se puede calcular la matriz L. Para ello, consideremos un caso  3 ×3, l11   0 0

l21   l22   0l31   l32   l33

l11   l21   l31

0   l22   l320 0   l33

=

a11   a12   a13

a21   a22   a23a31   a32   a33

  ,

38

Page 40: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 40/250

2.2 Métodos directos para la resolución de sistemas lineales

calculando el producto, se tienen las relaciones

a11   =   l211   ,

a22   =   l221 + l222   ,

a33   =   l231 + l232 + l233   ,

a12   =   l11l21   ,

a13   =   l11l31   ,

a23   =   l21l31 + l22l32   ,

o sea,

l11   = (a11)12 ,

l21   =

  a12l11 ,

l22   =

a22 − l221 12 ,

l31   =  a13

l11,

l32   =  a23 − l21l31

l22,

l33   =

a33 − l231 − l232 12 .

Para una matriz  n × n, los elementos de L  se pueden calcular mediante las expre-siones

l11   = (a11)12 ,

lj1   =  a1j

l11, j = 2, . . . , n

lii   =

aii −

i−1k=1

l2ik

12

,

lji

  =  1

lii aij −

i−1

k=1

lik

ljk   , j  = i + 1, i + 2, . . . , n .

Si se tiene un sistemaAx =  b ,

cuya matriz de coeficientes es simétrica y definida positiva, para su resolución sepuede obtener la factorización de Cholesky de  A,  A =  LLT, con lo que se tiene

LLTx =  b .

Así, primero se resuelve  Ly  =  b  mediante el método de sustitución progresiva y,posteriormente, LTx =  y  mediante el método de sustitución regresiva.

39

Page 41: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 41/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Algunas ventajas e inconvenientes del método son:

•  Menor coste (aproximadamente la mitad) que utilizar el algoritmo de Gaussconvencional.

•  No utiliza técnicas de pivotamiento.

•  El algoritmo es estable (errores de redondeo pequeños).

•  Tenemos que comprobar la simetría de la matriz (fácil) y que ésta es definidapositiva (difícil).

2.3 Métodos iterativos

Los métodos iterativos para la resolución de sistemas de ecuaciones lineales suelenutilizarse para problemas de gran dimensión, ya que usan menos memoria y suelenser más rápidos que los métodos directos. A continuación veremos alguno de losmétodos iterativos más sencillos.

Se parte de un sistema de ecuaciones de la forma

Ax =  b .   (2.7)

Para resolver el sistema lineal buscaremos una sucesión   x0, x1, . . ., que converjaa la solución de (2.7). Así, diremos que el método iterativo converge si existe unvector x tal que

lımk→+∞

xk = x,

tal que Ax =  b.

Para construir los métodos iterativos realizamos la siguiente descomposición de lamatriz de coeficientes

A =  D

−E 

−F ,

donde  D  es la diagonal de  A, −E  es la parte estrictamente triangular inferior deA y −F  es la parte estrictamente triangular superior. Se supone que los elementosde  D  son todos no nulos.

2.3.1 Algoritmo de Jacobi

Si en el sistema   Ax   =   b, se cumple que   aii = 0, i   = 1, 2, . . . , n, de la ecuacióni-ésima

ai1x1 +

· · ·+ aiixi +

· · ·+ ainxn = bi ,

40

Page 42: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 42/250

2.3 Métodos iterativos

podemos despejar  xi, obteniendo

xi =   1aii

bi −n

j=1,j=i

aijxj , i = 1, 2, . . . , n .

El método de Jacobi  parte de una solución inicial  x0, y para  i = 1, . . . , n, calcula

xki   =

  1

aii

bi −

nj=1,j=i

aijxk−1j

, k = 1, 2, . . .   (2.8)

Para cada  i = 1, . . . , n, (2.8) se puede reescribir como

aiixki   =

bi −

nj=1,j=i

aijxk−1j

, k = 1, 2, . . .

En forma matricial el método de Jacobi es de la forma

Dxk = (E  + F )xk−1 + b, k = 1, 2, . . .

O equivalentemente

xk = D−1(E  + F )xk−1 + D−1b, k = 1, 2, . . .

Para dar condiciones de convergencia para este método se introducen las matri-ces diagonal dominantes. De este modo, se dice que una matriz cuadrada   A   esestrictamente diagonal dominante  si para cada i = 1, 2, . . . , n, satisface

|aii| >

n

j=1,j=i

|aij |  .

Teorema 2.1   Si  A es estrictamente diagonal dominante, entonces la sucesión que resulta de la iteración de Jacobi converge a la solución de  Ax =  b, cualquiera que sea la solución inicial,  x0.

Observación: Si A  no es diagonal dominante se puede reordenar, intercambiandofilas o columnas y puede que, de este modo, la matriz resultante lo sea.

41

Page 43: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 43/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

2.3.2 Algoritmo de Gauss-Seidel

Otro método similar al método de Jacobi es el método de Gauss-Seidel.

Hemos de tener en cuenta que en el método de Jacobi para  i = 1, . . . , n

xki   =

  1

aii

bi −

nj=1,j=i

aijxk−1j

, k = 1, 2, . . .

para calcular   xk2   se utiliza   xk−1

1   , pero   xk1   ya se ha calculado. Si el método es

convergente, es mejor usar   xk1   que   xk−1

1   . Con esta idea se obtiene el  método de Gauss-Seidel , que es de la forma

xk1  =

  1

a11

b1 −n

j=2

a1jxk−1j

, k = 1, 2, . . .

xki   =

  1

aii

bi −

i−1j=1

aijxkj −

nj=i+1

aijxk−1j

, i > 1, k = 1, 2, . . .

(2.9)

Este método en forma matricial se escribe de la forma

(D

−E )xk = F xk−1 + b .   (2.10)

Análogamente, se puede definir otro método de Gauss-Seidel como sigue

(D − F )xk = Exk−1 + b .   (2.11)

El siguiente resultado nos da una condición para que este método converja.

Teorema 2.2   Si  A es estrictamente diagonal dominante, entonces la sucesión que resulta de la iteración de Gauss-Seidel converge a la solución de  Ax =  b, cualquiera que sea la solución inicial  x0.

2.3.3 Algoritmos SOR y SSOR

El método SOR (successive over relaxation) se basa en el método de Gauss-Seidelintroduciendo un factor de escala que reduce más rápidamente el error de la apro-ximación.

En primer lugar tomamos una iteración de Gauss-Seidel

xk

i   =

  1

aiibi −

i−1

j=1

aijxk

j −n

j=i+1

aijx

k

−1

j , i = 1, . . . , n ,

42

Page 44: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 44/250

2.3 Métodos iterativos

y calculamos

xk

i

  = xk−1i

  + ω xk

i −xk−1i , i = 1, . . . , n ,   (2.12)

donde ω  es un parámetro que se elige para acelerar la convergencia.

Hemos de tener en cuenta lo siguiente:

•   Si  w  = 1, es el método de Gauss-Seidel.

•   Si  0 < w < 1, se llama  método de subrelajación . Puede usarse para obtenerconvergencia cuando el método de Gauss-Seidel no converge.

•  Si   1   < w, se llama   método de sobrerrelajación , y se usa para acelerar la

convergencia cuando el método de Gauss-Seidel converge.

La convergencia de este método la garantiza el siguiente resultado.

Teorema 2.3   Si   A   es definida positiva y   0   < ω <   2, entonces la sucesión que resulta de la iteración del método SOR converge a la solución de  Ax =  b, cualquiera que sea la solución inicial,  x0.

Utilizando (2.12) y (2.10) tenemos

xk = xk−1 + ω D−1 b + Exk + F xk−1− xk−1 ,

y premultiplicando por la matriz  D,

Dxk = (D − ωD) xk−1 + ωb + ωExk + ωF xk−1.

Por tanto, el método SOR admite la expresión matricial siguiente

(D − ωE )xk = (ωF  + (1 − ω)D) xk−1 + ωb .

Utilizando (2.12) y (2.11), se puede definir otro método SOR de la forma

(D − ωF )xk = (ωE  + (1 − ω)D)xk−1 + ωb .

Un método SOR simétrico, SSOR, se define por las ecuaciones

(D − ωE )xk−1/2 = (ωF  + (1 − ω)D)xk−1 + ωb ,

(D − ωF )xk = (ωE  + (1 − ω)D)xk−1/2 + ωb .

43

Page 45: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 45/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Ejemplo 2.4  La solución del sistema lineal 

4x1   + 3x2   = 24,3x1   + 4x2   −   x3   = 30,

−   x2   + 4x3   =   −24,

es   (3, 4, −5)T. Utilizar los métodos de Gauss-Seidel y SOR con   ω   = 1.25   para resolver el sistema con una precisión de 7 decimales, tomando para ambos métodos x0 = (1, 1, 1)T.

Solución:Mediante el método de Gauss-Seidel se obtienen los resultados de la siguientetabla,

k   0 1 2 3 7xk1   1 5.2500000 3.1406250 3.0878906 3.0134110

xk2   1 3.8125000 3.8828125 3.9267578 3.9888241

xk3   1   −5.0468750   −5.0292969   −5.0183105   −5.0027940

Si utilizamos el método SOR con  ω = 1.25 se obtienen los siguientes resultados

k   0 1 2 3 7xk1   1 6.3125000 2.6223145 3.1333027 3.0000498

xk2   1 3.5195313 3.9585266 4.0102646 4.0002586

xk3   1   −6.6501465   −4.6004238   −5.0966863   −5.0003486

Para este ejemplo se puede comprobar que el método de Gauss-Seidel convergecon 34 iteraciones y el método SOR con 14 iteraciones.  

2.4 Ejercicios resueltos

Ejercicio 2.1  Considera el siguiente sistema de ecuaciones lineales,  Ax  =  b  (la solución del sistema se incluye para comprobar los resultados):

4   −1 0

−1 4   −10   −1 4

x1

x2

x3

=

2

8−6

  ⇒

x1

x2

x3

=

1

2−1

.

44

Page 46: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 46/250

2.4 Ejercicios resueltos

Resuélvelo utilizando los siguientes métodos directos, teniendo en cuenta que la matriz  A es tridiagonal simétrica y definida positiva:

a)  Algoritmo de Gauss.

b)   Factorización  LU .

c)  Factorización de Cholesky.

Solución:

a)  Algoritmo de Gauss.

Con ayuda de la matriz ampliada tenemos

4   −1 0 2

−1 4   −1 80   −1 4   −6

4   −1 0 2

0 15   −4 340   −1 4   −6

4   −1 0 2

0 15   −4 340 0 56 56

y por sustitución regresiva se obtiene la solución.

b)   Factorización  LU .

Por ser una matriz tridiagonal consideraremos 1 0 0

l21   1 00   l31   1

u11   u12   0

0   u22   u23

0 0   u33

=

u11   u12   0

l21u11   l21u12 + u22   u23

0   l32u22   l32u23 + u33

.

Igualando con la matriz   A   podemos calcular los coeficientes   lij, uij   en lasiguiente secuencia

u11  = 4, u12  = −1, u23  = −1,

l21u11  =

−1

 →  l21  =

−1

4

,

l21u12 + u22  = 4  →   u22  = 15

4  ,

l32u22  = −1  →   l32  = −  4

15,

l32u23 + u33  = 4  →   u33  = 56

15,

esto es

L = 1 0 0

−1

4   1 00   −   415   1

, U  = 4   −1 0

0  15

4   −10 0   5615

.

45

Page 47: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 47/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Resolvemos ahora el sistema  Ly =  b  por sustitución progresiva, esto es

1 0 0− 1

4   1 00   −   4

15   1

y1y2y3

= 28

−6

  ⇒ y1y2y3

= 2172−5615

,

y finalmente resolvemos el sistema U x =  y  por sustitución regresiva 4   −1 0

0   154

  −10 0   56

15

x1

x2

x3

=

2

172− 5615

  ⇒

x1

x2

x3

=

1

2−1

.

c)  Factorización de Cholesky.

Por tratarse de una matriz simétrica definida positiva podemos aplicar ladescomposición de Cholesky. Además, por ser una matriz tridiagonal consi-deraremos la siguiente descomposición l11   0 0

l21   l22   00   l32   l33

l11   l21   0

0   l22   l320 0   l33

=

l211   l11l12   0

l21l11   l221 + l222   l22l320   l32l22   l232 + l233

.

Igualando con la matriz A podemos calcular los coeficientes  lij en la siguientesecuencia

l211  = 4  →   l11  = 2,

l11l21  = −1  →   l21  = −1

2,

l221 + l222  = 4  →   l22  =

√ 15

2  ,

l22l32  = −1  →   l32  = −   2√ 15

,

l232 + l233  = 4  →   l33  =  56

15,

esto es

L =

2 0 0

− 12

√ 152   0

0   −   2√ 15

 5615

.

Resolvemos ahora el sistema,  Ly =  b

2 0 0

−12

√ 152   0

0   −   2√ 15

 5615

y1y2y3 =

28

−6  ⇒ y1y2y3 =

117√ 15

− 5615

,

46

Page 48: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 48/250

2.4 Ejercicios resueltos

y finalmente resolvemos el sistema  LT x =  y

2

  −12   0

0 √ 152   −   2√ 

15

0 0 

5615

x1x2

x3

=

117√ 15

− 

5615

 ⇒ x1x2

x3

= 12

−1

.

Ejercicio 2.2  Considera el sistema 

4x1 + 3x2   = 24   ,

3x1 + 4x2 − x3   = 30   ,

−x2 + 4x3   =   −24   .

a)  Resuélvelo utilizando la factorización  LU .

b)  Considera la factorización de Cholesky y halla la correspondiente matriz  L.

Solución:

a)   Por ser una matriz tridiagonal, consideramos la factorización LU  del Ejercicio

2.1. Igualando con la matriz A  podemos calcular los coeficientes  lij , uij en lasiguiente secuencia

u11  = 4, u12  = 3, u23  = −1,

l21u11  = 3  →   l21  = 3

4,

l21u12 + u22  = 4  →   u22  = 7

4,

l32u22  = −1  →   l32  = −4

7,

l32u23 + u33  = 4  →   u33  = 24

7   ,

esto es

L =

1 0 0

34   1 00   −4

7   1

, U  =

4 3 0

0   74

  −10 0   24

7

.

Resolviendo el sistema  Ly =  b  por sustitución progresiva se obtiene

y1

y2y3 = 24

12−1207

  47

Page 49: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 49/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

y del sistema  U x =  y  por sustitución regresiva obtenemos

x1

x2

x3

= 3

4−5

.

b)   Considerando la factorización de Cholesky del Ejercicio 2.1, e igualando conla matriz A podemos calcular los coeficientes  lij  en la siguiente secuencia

l211  = 4  →   l11  = 2,

l11l21  = 3  →   l21  = 3

2,

l221 + l222  = 4  →   l22  =

√ 7

2   ,

l22l32  = −1  →   l32  = −   2√ 7

,

l232 + l233  = 4  →   l33  =

 24

7  ,

esto es

L =

2 0 032

√ 72   0

0   −  2

√ 7  247

.

Ejercicio 2.3  Considera el sistema del Ejercicio 2.2 y aplica dos iteraciones del método de Jacobi para obtener  x1, x2 partiendo de las condiciones iniciales:

x0 =

44

−4

.

Solución:El esquema recursivo viene dado por:

4 0 00 4 00 0 4

xk+1

1

xk+12

xk+13

=

0   −3 0

−3 0 10 1 0

xk

1

xk2

xk3

+

24

30−24

,

esto es

  xk+11

x

k+1

2xk+13

=

 1

4 0   −3 0

−3 0 10 1 0

xk1

x

k

2xk3

+615

2−6 .

48

Page 50: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 50/250

2.4 Ejercicios resueltos

Si aplicamos dos iteraciones del algoritmo se obtiene:

x1 = 3

72−5 , x2 = 27

8

4−418

.

Ejercicio 2.4  Dada la matriz tridiagonal genérica  (2.6), escribe un algoritmo (in-dependiente del lenguaje de programación) que permita calcular los coeficientes de las matrices  L y  U , de manera que en cada evaluación sólo se utilicen coeficientes ya evaluados o conocidos. Una vez obtenidos los coeficientes, escribe otro algorit-mo que permita obtener la solución del sistema. Comparar con el algoritmo de Thomas.

Solución:El siguienere algoritmo recursivo permite evaluar los coeficientes de las matricesL y  U 

u1,1  = b1

for i = 2 : n

li,i−1  =  ai−1ui−1,i−1

ui−1,i  =  ci−1uii = bi

−li,i

−1ui

−1,i

end

donde se puede comprobar cómo en cada evaluación sólo se utilizan coeficientes quehan sido evaluados previamente. Una vez tenemos los coeficientes de las matricesL y  U , procedemos a la resolución de los sistemas  Ly =  d  y  U x =  y:

y1  = d1

for  i = 2 : n

yi =  di − li,i−1 yi−1end

xn =   ynun,n

for  i =  n − 1 : −1 : 1

xi =  1

uj,j(yj − ui,i+1xi+1)

end

Todos estos cálculos se pueden realizar de manera óptima (con respecto al númerode operaciones, utilizando el menor número posible de matrices o vectores don-

de se almacenan los datos) utilizando el llamado  algoritmo de Thomas  y que, acontinuación, se presenta implementado en un programa  Matlab.49

Page 51: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 51/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

La matriz se tiene almacenada en los vectores  a,  b,  c, y el término independienteen el vector  d.

Primero se copia en  x el vector  d

x = d ;

luego se triangulariza la matriz y el término independiente mediante el siguientebucle

for j=1:n-1

 mu=a(j)/b(j);

b(j+1)=b(j+1)-mu*c(j);

x(j+1)=x(j+1)-mu*x(j);

end

Posteriormente, se realiza la sustitución regresiva

x(n)=x(n)/b(n);

for j=n-1:-1:1

x(j)=(x(j)-c(j)*x(j+1))/b(j);

end

Este algoritmo no utiliza pivotación parcial y es mucho más rápido que el algoritmode Gauss.  

Ejercicio 2.5   Considera el sistema del Ejercicio 2.1 y resuélvelo por métodos iterativos como sigue: supón que tras  k  iteraciones de cualquiera de los métodos nos encontramos cerca de la solución, y ésta la denotamos por 

xk1

xk2

xk3

= 1 + αk

2 + β k−1 + γ k .

Las iteraciones se paran cuando dos iteraciones consecutivas difieren menos que una cantidad que se estime suficientemente pequeña. Esto es, medimos 

xk+11

xk+12

xk+13

xk

1

xk2

xk3

=

αk+1 − αk

β k+1 − β k

γ k+1 − γ k

.

La rapidez de convergencia viene dada por cuan rápido tienden a 0 las coeficientes αk, β k, γ k según vamos realizando iteraciones.

50

Page 52: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 52/250

2.4 Ejercicios resueltos

Halla la relación entre  

αk+1, β k+1, γ k+1T

y  

αk, β k, γ kT

para los siguientes métodos iterativos:

a)  Método de Jacobi.

b)  Método de Gauss-Seidel.

Solución:

a)  Método de Jacobi. El esquema recursivo viene dado por:

4 0 00 4 00 0 4

1 + αk+1

2 + β k+1

−1 + γ k+1

= 0 1 0

1 0 10 1 0

1 + αk

2 + β k

−1 + γ k

+ 2

8−6

.

Operando y simplificando se obtiene αk+1

β k+1

γ k+1

=

 1

4

β k

αk + γ k

β k

,

esto es, básicamente, tras cada iteración el error se reduce por un factor entre2 y 4.

b)  Método de Gauss-Seidel. El esquema recursivo viene dado por: 4 0 0

−1 4 00   −1 4

1 + αk+1

2 + β k+1

−1 + γ k+1

=

0 1 0

0 0 10 0 0

1 + αk

2 + β k

−1 + γ k

+

2

8−6

.

Operando y simplificando se obtiene

αk+1

β k+1

γ 

k+1

=  1

16

4β k

4γ k + β k

γ 

k

+

  1

4β 

k

.

Viendo cómo se reduce el error en iteraciones sucesivas, se puede ver que el errorse reduce en un factor aproximadamente de 16.

Sugerencia:  Para ver mejor esta reducción, supón que αk

β k

γ k

=

1

10120140

,

y calcula el error utilizando los algoritmos de Jacobi y de Gauss-Seidel tras dositeraciones consecutivas.  

51

Page 53: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 53/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

Ejercicio 2.6  Dada la matriz  A  =

  1 1α   1

  con  α >  1, calcula el número de 

condición de la matriz,   κ(A) = 

A

A−1

, en el caso en que consideremos la 

1-norma, definida por A1  = max

i

j

|Aij |.

Calcula su valor para  α = 3 y  α =   1110 .

Solución:Por un lado tenemos que A1  = max{1 + α, 2} = 1 + α. Su matriz inversa vienedada por

A−1 =  1

1 − α   1   −1

−α   1 de donde inmediatamente vemos que A−11  =   1+α

α−1 . Luego

κ(A) = A A−1 = (1 + α)2

α − 1

y, por tanto,

α = 3   ⇒ κ(A) = 8;   α = 11

10  ⇒ κ(A) =

 441

10  = 44.1 .

Vemos que si  α se acerca a 1 o toma valores muy grandes, el valor de  κ(A)  crece

considerablemente.  

2.5 Ejercicios propuestos

1. Resuelve por el método de Gauss el sistema

0 2 41 2 30 0 3

x1

x2

x3

=

433

  .

2. Dada la matriz   3 0 2

0 4 30 0 2

  ,

obtén su inversa.

3. Dada la matriz  

α   1 0β    2 10 1 2

  ,

obtén todos los valores de  α y  β  para los cuales la matriz es singular.52

Page 54: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 54/250

2.5 Ejercicios propuestos

4. Resuelve los siguientes sistemas de ecuaciones factorizados:

a)

1 0 0

2 1 0−1 0 1

2 3   −1

0   −2 10 0 3

x1

x2

x3

=

2

−11

  ,

b)

2 0 0

−1 1 03 2   −1

1 1 10 1 20 0 1

x1

x2

x3

=

−1

30

  .

5. Compara la solución que se obtiene mediante el método de Gauss para lossistemas de ecuaciones

  x − y = 1  ,x − 1.01y = 0  ,

  y

  x − y = 1  ,x − 0.99y = 0  .

6. Dado el sistema

0.15 2.11 30.750.64 1.21 2.053.21 1.53 1.04

x1

x2

x3

=

−26.38

1.015.23

  ,

resuélvelo utilizando el método de Gauss sin pivotación parcial y con pivo-tación parcial.

7. Considera el sistema de ecuaciones

Ax =  b ,

con

A =

3 2 12 3 21 2 3

  , b =

100

  ,

comprueba que el método de Jacobi diverge mientras que el método de Gauss-Seidel converge.

8. Determina las dos primeras iteraciones del método de Jacobi para los siguien-tes sistemas de ecuaciones, si tomamos como vectores iniciales  x0 = (0, 0, 0)T

y  x0 = (0, 0, 0, 0)T, respectivamente.

a)

10x1 − x2   = 9  ,

−x1 + 10x2

−2x3   = 7  ,

−2x2 + 10x3   = 6  .53

Page 55: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 55/250

Capítulo 2. Resolución de sistemas de ecuaciones lineales

b)

4x1 + x2

−x3 + x4   =

  −2  ,

x1 + 4x2 − x3 − x4   =   −1  ,

−x1 − x2 + 5x3 + x4   = 0 ,

x1 − x2 + x3 + 3x4   = 1 .

9. Dado el sistema

3x1 + 2x2  = 1  ,

4x1 + 3x2  = 5  ,

calcula dos iteraciones del método SSOR partiendo del vector inicial x01, x02 =

(0, 0) y tomando  ω = 1.25.

10. Dado el sistema

4x1 + 3x2   = 24 ,

3x1 + 4x2 − x3   = 30 ,

−x2 + 4x3   =   −24 ,

compara 3 iteraciones del método de SOR y el método SSOR tomando  x0 =

(0, 0, 0)T, y  ω = 1.25.

11. Repite los cálculos del Ejercicio Resuelto 2.5 con el algoritmo de Jacobi parael sistema:

3 1 1

−1 1 32 5 1

x1

x2

x3

=

4

4−1

  ⇒

x1

x2

x3

=

1

−12

y demuestra que el algoritmo diverge. Intercambia ahora las filas 2 y 3, esto

es   3 1 1

2 5 1−1 1 3

x1

x2

x3

=

4

−14

,

que convierte la matriz en diagonal dominante, y comprueba que ahora síconverge el algoritmo de Jacobi.

54

Page 56: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 56/250

Capítulo 3

Interpolación y aproximación defunciones

3.1 Introducción

En muchos problemas debemos trabajar con funciones cuyos valores son conocidosúnicamente en un conjunto de puntos. Esto ocurre, por ejemplo, cuando realizamosmedidas experimentales o cuando trabajamos con funciones muy complejas, comopueden ser las soluciones de ecuaciones diferenciales, de las que sólo podemos co-nocer aproximaciones a la solución en un determinado número de puntos. En talescasos es útil trabajar con funciones conocidas y sencillas que aproximen suficien-temente bien nuestro problema. Un conjunto de tales funciones son el conjunto defunciones polinónicas. El Teorema de Weierstrass nos garantiza que cualquier fun-ción continua en un intervalo cerrado se puede aproximar, con cualquier precisiónprefijada, por algún polinomio. Debido a la facilidad de operar con polinomios(derivar, integrar, etc.) en este capítulo nos centraremos en la aproximación defunciones por polinomios.

Cuando truncamos el desarrollo de Taylor de una función,  f (x), a un determina-do orden, realmente lo que hacemos es aproximar la función por un polinomio.Por ejemplo, si consideramos el desarrollo hasta orden  n  alrededor del punto  x0,tenemos

f (x) = f (x0) + f (x0)(x − x0) + · · · +  1

n!f n)(x0)(x − x0)n + Rn(x),

55

Page 57: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 57/250

Capítulo 3. Interpolación y aproximación de funciones

donde Rn(x) es el residuo, que nos permite acotar el error cometido al truncar eldesarrollo, y viene dado por

Rn(x) =   1(n + 1)!

f n+1)(ξ )(x − x0)n+1,   |ξ | ≤ |x − x0|.

Observamos que si el valor de   x   toma valores distantes de   x0  el error crecerá,en general, como  (x − x0)n+1 y, por tanto, nos puede dar malas aproximacionesen intervalos grandes. Además, de normal no se conoce el valor de las derivadasde la función en un punto, por lo que el desarrollo de Taylor no será de utilidaden estos casos y debemos buscar otras alternativas. En concreto, en este temanos centraremos en aquellos problemas en los que la función es conocida en unconjunto de puntos distribuidos en una determinada región y veremos diferentes

formas de aproximar la solución en esa región por interpolación.Dados los pares de números reales   (x0, f 0),   (x1, f 1), . . . ,   (xn, f n), que frecuente-mente vendrán expresados en una tabla de valores,

x0   x1   · · ·   xn

f 0   f 1   · · ·   f n

la interpolación trata de resolver uno o ambos de los siguientes problemas:

•  Encontrar una función  f (x) tal que

f (xi) = f i, i = 0, 1, . . . , n .

En este caso, a la función  f (x) se le llama  función interpolante .

•   Calcular f (x) para un punto  x distinto de  xi,  i = 0, 1, 2, . . . , n.

El último problema veremos que puede resolverse sin necesidad de obtener explíci-tamente la función f (x). Cuando  x se encuentra comprendido entre el mínimo y elmáximo de los valores tabulados xi, se tiene propiamente el problema de interpola-

ción . En cambio cuando  x se encuentra fuera de dicho intervalo se llama problema de extrapolación . Los métodos que vamos a estudiar sirven en ambos casos, perosiempre hay que tener en cuenta que el error en la extrapolación suele ser muchomayor que en la interpolación.

Calcular  f (x)  a partir de  x  es un problema de   interpolación directa . En algunasocasiones necesitaremos calcular el valor de  x  a partir del valor de  f (x), en estecaso se trataría de un problema de  interpolación inversa .

Los datos conocidos   (xi, f i)  por los que tiene que pasar la función que se busca

se llaman puntos soporte  de la interpolación o  puntos de interpolación ,  xi  son lasabcisas soporte  o nodos soporte  o de interpolación y  f i  son las ordenadas soporte .56

Page 58: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 58/250

3.2 Interpolación polinómica 

Según se elija la función  f (x) se tienen diferentes tipos de interpolación, cada unacon sus características y algoritmos. Los tipos más frecuentes son:

•  Polinómica, en este caso la función interpolante  f (x) es un polinomio.

•   Splines1, cuando la función interpolante   f (x)  es una función polinómica atrozos a la que se le exigen dos condiciones adicionales.

•   Racional, si la función f (x) es una función racional. Un caso particular muyimportante es el  interpolante de Padé , en el que se necesitan los datos co-rrespondientes a valores de la función y sus derivadas en un punto.

•   Trigonométrica, cuando   f (x)   es una combinación de funciones trigonomé-tricas. Se aplica sobre todo cuando se sabe que los datos responden a unproblema periódico.

Debido a que los polinomios tienen, entre otras, la ventaja de derivarse e integrarsefácilmente, siendo las funciones resultantes nuevamente polinomios, la interpola-ción polinómica es de las más sencillas y utilizadas, no sólo para resolver el proble-ma de interpolación propiamente dicho sino como herramienta para resolver otrosproblemas numéricamente, como el cálculo de integrales o de derivadas. Tambiénse utiliza, cada vez con más frecuencia, la interpolación por splines. Los dos ti-pos de interpolación que vamos a abordar en este capítulo son la interpolaciónpolinónica y por splines.

Trabajar sólo con la información de  f (x) que proporciona la tabla significa desco-nocer “casi todo” sobre  f (x), en particular si  f (x)  es continua y derivable. En eldesarrollo del tema se asumirá la hipótesis de continuidad y derivabilidad sobre lafunción  f (x). Intentaremos resolver los problemas de interpolación aproximandola función “desconocida”,   f (x), mediante una función polinómica o una funciónconstruida a partir de polinomios (splines).

La interpolación, con las hipótesis descritas es un procedimiento usualmente sa-tisfactorio, sobre todo si los valores  x  para los que se quiere calcular  f (x)  están

cerca de los valores tabulados.

3.2 Interpolación polinómica

Supongamos conocidos los valores en los  n+1 puntos x0, x1, . . . , xn de una funciónsegún la tabla

x0   x1   · · ·   xn

f 0   f 1

  · · ·  f n

1En la literatura también se utiliza el término cercha para referirse a spline.

57

Page 59: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 59/250

Capítulo 3. Interpolación y aproximación de funciones

Vamos a construir un polinomio P n(x), de grado menor o igual que  n, que cumpla

P n (xi) = f i, i = 0,  1, . . . , n.   (3.1)Al polinomio  P n(x)  así construido se le denomina  polinomio interpolador   o  poli-nomio de interpolación .

Una posible forma de resolver el problema es plantear el siguiente polinomio degrado n

P n(x) = a0 + a1x + a2x2 + · · · + anxn ,   (3.2)

con coeficientes  ai, i = 0,  1, . . . , n, indeterminados, e imponer que (3.2) verifique(3.1). Esto significa que obtener el polinomio interpolador es equivalente a resolverel sistema de ecuaciones lineales

a0 + a1x0 + · · · + anxn0   = f 0   ,

a0 + a1x1 + · · · + anxn1   = f 1   ,

...a0 + a1xn + · · · + anxn

n =  f n   .

(3.3)

La existencia y unicidad de solución del sistema anterior depende del determinantede Vandermonde,

∆ =

1   x0   x

2

0   · · ·   xn

01   x1   x2

1   · · ·   xn1

...  ...

  ...  ...

  ...1   xn   x2

n   · · ·   xnn

= (x1 − x0) (x2 − x0) (x2 − x1) · · · (xn − x0) · · · (xn − xn−1)

=

0≤k<j≤n

(xj − xk)   .

De aquí concluimos que si todos los  xi  son distintos entre sí, entonces  ∆ = 0 y elsistema anterior tiene una única solución. Por tanto, si los nodos de interpolaciónson distintos, el polinomio interpolador (3.2) existirá y será único independiente-mente del valor que tomen los  f i.

Pero esta forma de afrontar el problema es, desde el punto de vista práctico, pocooperativa. Vamos a estudiar otros métodos para construir el polinomio interpola-dor.

58

Page 60: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 60/250

3.2 Interpolación polinómica 

3.2.1 Polinomios de Lagrange

El siguiente resultado proporciona una forma explícita del polinomio interpoladorbuscado sin tener que resolver el sistema de ecuaciones (3.3).

Teorema 3.1 (Polinomio interpolador de Lagrange)  Dado el conjunto de pun-tos  (x0, f 0) , (x1, f 1) , . . . , (xn, f n), se considera el polinomio

P n(x) =

ni=0

f i Ln,i(x),

donde los polinomios  Ln,i(x) son los polinomios de Lagrange,

Ln,i(x) =   (x − x0) (x − x1) · · · (x − xi−1) (x − xi+1) · · · (x − xn)(xi − x0) (xi − x1) · · · (xi − xi−1) (xi − xi+1) · · · (xi − xn)

,

con   i   = 0, 1, . . . , n. El polinomio   P n(x)   es un polinomio interpolador para los puntos  (xi, f i),  i = 0, 1, . . . , n.

Demostración:En primer lugar, el polinomio  P n(x)  tiene grado menor o igual que  n puesto quees combinación lineal de los polinomios  Ln,i(x), y éstos tienen grado  n. Por otraparte, observamos que si tomamos un nodo  xl, tenemos

Ln,i (xl) =n

j=0

j=i

xl − xj

xi − xj=

  1   si   l =  i0   si   l = i

  ,   (3.4)

de dondeP n(xi) = f i Ln,i(xi) = f i, i = 0,  1, . . . , n.

El polinomio  P n(x)  obtenido en el Teorema 3.1 se conoce con el nombre de  poli-

nomio interpolador de Lagrange . A partir de ahora también lo denotaremos porP (x).

Ejemplo 3.1  Calcular el polinomio de interpolación para 

xi   0 2 3f i   0.5 2 0.5

y calcular  P (1) y  P (1.5).

59

Page 61: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 61/250

Capítulo 3. Interpolación y aproximación de funciones

Solución:Como tenemos tres puntos soporte, los polinomios de Lagrange necesarios son

L2,0(x) = (x − 2)(x − 3)(0 − 2)(0 − 3)

  = 16

(x − 2)(x − 3),

L2,1(x) = (x − 0)(x − 3)

(2 − 0)(2 − 3)  = −1

2x(x − 3),

L2,2(x) = (x − 0)(x − 2)

(3 − 0)(3 − 2)  =

 1

3x(x − 2).

Por tanto, el polinomio interpolador es

P (x) = 0.5 L2,0(x) + 2 L2,1(x) + 0.5 L2,2(x).

Una vez obtenido, se calcula el valor aproximado en  1 y en  1.5

P (1) = 0.5 L2,0(1) + 2 L2,1(1) + 0.5 L2,2(1)

= 0.5 1

3 + 2 · 1 + 0.5

−1

3

= 2,

P (1.5) = 0.5 L2,0(1.5) + 2 L2,1(1.5) + 0.5 L2,2(1.5)= 0.5 · 0.125 + 2 · 1.125 + 0.5 (−0.25) = 2.1875.

En la Figura 3.1 puede verse la representación gráfica de los polinomios de La-grange utilizados en este ejemplo así como el polinomio de interpolación obtenido.Observamos que los polinomios de Lagrange construidos verifican la fórmula (3.4).Así, por ejemplo,  L2,0  vale 1 en  x0  = 0 y se anula en el resto de nodos,  x1  = 2 yx2  = 3.

La interpolación de Lagrange es muy sencilla conceptualmente. En aspectos teó-

ricos, es útil, por ejemplo, para deducir fórmulas de integración numérica. Sinembargo, en las aplicaciones, es poco práctica, salvo en el caso de tener que inter-polar para los mismos nodos con diferentes ordenadas soporte. Añadir o eliminaruno sólo de los puntos soporte cambia totalmente los polinomios de Lagrange yhace que se deba volver a recalcular todo desde el principio como se ilustra enel siguiente ejemplo, en el que se añade un punto soporte más a los datos delEjemplo 3.1.

Ejemplo 3.2  Calcular el polinomio de interpolación para 

xi   0 1 2 3f i   0.5 2.5 2 0.560

Page 62: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 62/250

3.2 Interpolación polinómica 

−1 0 1 2 3 4−3

−2

−1

0

1

2

3

L2,0(x)

L2,1(x)

L2,2(x)

datos

Pol. Interp

Figura 3.1:   Polinomios de Lagrange,   L2,0,   L2,1   y   L2,2, y polinomio de interpolación,

P (x), correspondientes a los datos del Ejemplo 3.1.

y obtener el valor de  P (1.5).

Solución:En este caso, como tenemos 4 datos, los polinomios de Lagrange son de grado 3

L3,0(x) = (x − 1)(x − 2)(x − 3)

(0

−1)(0

−2)(0

−3)

  = −1

6x3 + x2 −  11

6  x + 1,

L3,1(x) = (x − 0)(x − 2)(x − 3)

(1 − 0)(1 − 2)(1 − 3)  =

 12

x3 −  52

x2 + 3 x,

L3,2(x) = (x − 0)(x − 1)(x − 3)

(2 − 0)(2 − 1)(2 − 3)  = −1

2x3 + 2 x2 −  3

2x,

L3,3(x) = (x − 0)(x − 1)(x − 2)

(3 − 0)(3 − 1)(3 − 2)  =

 1

6x3 −  1

2x2 +

 1

3x.

El polinomio de interpolación es

P (x) = 0.5 L3,0(x) + 2.5 L3,1(x) + 2 L3,2(x) + 0.5 L3,3(x).

61

Page 63: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 63/250

Capítulo 3. Interpolación y aproximación de funciones

Finalmente

P (1.5) = 0.5 L3,0(1.5) + 2.5 L3,1(1.5) + 2 L3,2(1.5) + 0.5 L3,3(1.5) = 2.46875.

Como se puede observar, los polinomios de Lagrange son diferentes a los del Ejem-plo 3.1, ya que son de un grado más, igual que el de interpolación. También esnecesario utilizar un polinomio más. Los polinomios de Lagrange y el polinomiointerpolador están representados en la Figura 3.2.

−1 0 1 2 3 4−3

−2

−1

0

1

2

3

4

L3,0(x)L3,1(x)L3,2(x)

L3,3(x)DatosPol. Interp

Figura 3.2:  Polinomios de Lagrange L3,0, L3,1, L3,2  y L3,3  y polinomio de interpolación,P (x), correspondientes a los datos del Ejemplo 3.2 .

Por la forma en que se construye el polinomio interpolador de Lagrange, notemosque no es necesario tener los nodos ordenados.

62

Page 64: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 64/250

3.2 Interpolación polinómica 

3.2.2 Algoritmo de Neville

El algoritmo de Neville se utiliza para aproximar el valor en un punto, pero nopara calcular el polinomio en sí. Es decir, sólo resuelve el segundo de los problemasmencionados en la introducción.

La idea del algoritmo de Neville es calcular el valor de la aproximación mediantepolinomios de interpolación de grado pequeño y luego enlazarlos  de forma adecua-da. Se empezará así con polinomios de grado 0 (constantes) y luego se enlazaránhasta unir todos los datos.

Denotemos por   P i0i1...ij   a un polinomio de grado menor o igual que   j   tal queP i0i1...ij (xik) =   f ik ,   k   = 0, 1, . . . , j. Dicho polinomio se puede construir de la

siguiente formaP ik(x) = f ik ,   (3.5)

P i0i1...ij (x) = (x − xi0)P i1...ij (x) − (x − xij )P i0i1...ij−1(x)

xij − xi0

.   (3.6)

Veamos por inducción que se cumple la propiedad indicada. En primer lugar,tenemos que los polinomios de (3.5) son de grado cero y además cumplen queP ik(xik) =  f ik . Supongamos que se satisfacen las condiciones   P i1...ij (xik) =  f ik ,k = 1, 2, . . . , j  y P i0i1...ij−1(xik) = f ik , para k  = 0, 1, 2, . . . , j

−1, es decir, estamos

suponiendo que cada uno de los polinomios pasa por los puntos soporte indicadospor sus subíndices que, salvo   i0   e   ij   son comunes. Entonces el nuevo polinomiodado por (3.6) cumple

P i0i1...ij (xi0) = (xi0 − xi0)P i1...ij (xi0) − (xi0 − xij )P i0i1...ij−1(xi0)

xij − xi0

= −(xi0 − xij )f i0

xij − xi0

= f i0 ,

P i0i1...ij (xij ) = (xij − xi0)P i1...ij (xij ) − (xij − xij )P i0i1...ij−1(xij )

xij − xi0

= (xij − xi0)f ij

xij − xi0

= f ij ,

es decir, pasa por los puntos soporte  (xi0 , f i0) y  (xij , f ij ). Además, también pasapor los restantes pues si  k = 1, 2, . . . , j − 1,

P i0i1...ij (xik) = (xik − xi0)P i1...ij (xik) − (xik − xij )P i0i1...ij−1(xik)

xij − xi0

=

 (xik

 −xi0)f ik

 −(xik

 −xij )f ik

xij − xi0 = f ik ,

63

Page 65: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 65/250

Capítulo 3. Interpolación y aproximación de funciones

por lo que el polinomio construido tiene la propiedad de pasar por los puntossoporte correspondientes a   i0,   i1, . . . ij . Además, si   P i1...ij (x)   y   P i0i1...ij−1   son

polinomios de grado menor o igual que  j −1, de (3.6) tenemos que P i0i1...ij (x) seráun polinomio de grado menor o igual que j.

Hay que tener en cuenta que a la hora de la práctica no se calculará con lospolinomios sino con el valor en el que se quiera aproximar la función. Los índicesse eligen consecutivos para facilitar los cálculos, aunque los nodos no tienen porquéestar ordenados. Para esquematizar el cálculo se puede hacer una tabla como lasiguiente

0 1 2 3x0   P 0(x) = f 0

P 01(x)x1   P 1(x) = f 1   P 012(x)

P 12(x)   P 0123(x)x2   P 2(x) = f 2   P 123(x)

P 23(x)x3   P 3(x) = f 3

donde  x es la abcisa a interpolar, la columna correspondiente a los polinomios degrado 0 son datos (fórmula (3.5)) y el resto se calcula con (3.6) a partir de losdatos exclusivamente de la columna anterior y los nodos. Es decir, para rellenar

la tabla se avanza hacia la derecha calculando cada nuevo valor a partir de los dosde la columna de la izquierda situados por encima y por debajo de él aplicandola fórmula (3.6) . En cada columna se calcula un valor menos que en la de suizquierda, el último valor calculado, que es el único de su columna,   P 0123(x)  ennuestro ejemplo, es el valor interpolado correspondiente a la abcisa  x.

Ejemplo 3.3   Calcular   P (1)   con los mismos datos del Ejemplo 3.1 utilizando el algoritmo de Neville.

Solución:A partir de los datos obtenemos la siguiente tabla

0 1 2x0  = 0   P 0(1) = f 0  = 0.5

P 01(1) = 1.25x1  = 2   P 1(1) = f 1  = 2   P 012(1) = 2

P 12(1) = 3.5x2  = 3   P 2(1) = f 2  = 0.5

Por tanto, obtenemos el valor aproximado  P (1) = 2, que obviamente coincide con

el obtenido anteriormente, pero con la ventaja de que se han hecho menos cálculos.64

Page 66: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 66/250

3.2 Interpolación polinómica 

Ejemplo 3.4   Calcular  P (1.5) con los mismos datos del Ejemplo 3.1 utilizando el algoritmo de Neville.

Solución:Como el punto donde queremos interpolar es distinto al del Ejemplo 3.3, tenemosque volver a calcular los valores de la tabla partiendo de las mismas columnas denodos y de polinomios constantes. Hacemos los cálculos para la columna corres-pondiente a los polinomios de grado 1 según la fórmula (3.6), y así sucesivamentehasta rellenar toda la tabla, obteniendo,

0 1 2x0  = 0   P 0(1.5) = f 0  = 0.5

P 01

(1.5) = 1.625x1  = 2   P 1(1.5) = f 1  = 2   P 012(1.5) = 2.1875

P 12(1.5) = 2.75x2  = 3   P 2(1.5) = f 2  = 0.5

Por tanto, hemos obtenido el valor aproximado  P (1.5) = 2.1875, que coincide conel calculado en el Ejemplo 3.1.  

Ejemplo 3.5   Calcular  P (1.5) con los mismos datos del Ejemplo 3.2 utilizando el algoritmo de Neville.

Solución:Por comodidad denotaremos  P i0i1...ij (x) = P i0i1...ij . Notemos que podemos partirde la tabla del Ejemplo 3.4, añadiendo el nuevo dato al final, y sólo tendremos quecalcular el valor de los polinomios que corresponden al nuevo nodo, que situamosen la última fila de cada columna

0 1 2 3x0  = 0   P 0  = f 0  = 0.5

P 01  = 1.625x1

 = 2   P 1

 = f 1

 = 2   P 012

 = 2.1875P 12  = 2.75   P 0123  = 2.46875

x2  = 3   P 2  = f 2  = 0.5   P 123  = 2.375P 23  = 2

x3  = 1   P 3  = f 3  = 2.5

Por tanto, obtenemos el valor aproximado  P (1.5) = 2.46875, que, como tenía queocurrir, coincide con el obtenido en el Ejemplo 3.2.  

El algoritmo de Neville no es práctico para calcular el polinomio en sí y existen

variantes para hacer los cálculos de forma que no se cometan errores de redondeoimportantes.65

Page 67: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 67/250

Capítulo 3. Interpolación y aproximación de funciones

3.2.3 Fórmula de interpolación de Newton. Diferencias

divididas

El algoritmo de Neville permite ahorrar operaciones cuando se quiere obtenerexclusivamente el valor del polinomio interpolador en un punto. Pero hemos vistoque para calcular valores de dicho polinomio en otro u otros puntos se ha de repetirtodo el proceso cada vez desde el principio. La técnica que vamos a introducira continuación es preferible al algoritmo de Neville cuando se quiere calcular elpolinomio de interpolación o se quiere interpolar en varios puntos.

La idea es escribir el polinomio de interpolación en la forma

P (x) = a0 + a1(x − x0) + a2(x − x0)(x − x1) + · · · + an(x − x0) · · · (x − xn−1),

que tiene la ventaja de permitir el cálculo de  P (x) utilizando el esquema de Horner ,que es el más eficiente

P (x) = a0 + (x − x0) (a1 + (x − x1) (a2 + · · · )) .   (3.7)

Si en  P (x)  sustituimos  x  por  x0  se obtiene que  a0  =  f 0. Si sustituimos  x  por  x1

se obtiene que  f 1   =  f 0  +  a1(x1 − x0), de donde  a1   = (f 1 − f 0)/(x1 − x0). Paracalcular el resto vamos a introducir las  diferencias divididas .

Se define  f [xi] = f i, que son las diferencias divididas de orden 0. Supuestas defi-nidas las de orden  k − 1 se definen las de orden  k por

f [xi0 , xi1 , . . . , xik ] = f [xi1 , . . . , xik ] − f [xi0 , xi1 , . . . , xik−1 ]

xik − xi0

.   (3.8)

Esta ecuación tiene una cierta similitud con (3.6). Notemos además que no importael orden en que se escriban los argumentos, es decir, se tiene la siguiente propiedad

f [x0, x1] =   f [x1, x0]

f [x0, x1, x2] =   f [x0, x2, x1] = f [x1, x0, x2] = f [x1, x2, x0]=   f [x2, x0, x1] = f [x2, x1, x0]...

Supongamos ahora que  ai  =  f [x0, x1, . . . , xi]  para   i  = 0, 1, 2, . . . , k − 1. Para cal-cular ak  damos a  x el valor  xk. Teniendo en cuenta que  f k  = f [xk], se obtiene,

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

+

· · ·+ f [x0, x1, x2, . . . , xk−1](xk

−x0)(xk

−x1)

· · ·(xk

−xk−2)

+ ak(xk − x0)(xk − x1) · · · (xk − xk−2)(xk − xk−1),

66

Page 68: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 68/250

3.2 Interpolación polinómica 

dividiendo por  (xk − x0) y reordenando de forma adecuada se tiene

f [x0, xk] =f [x0, x1] + f [x0, x1, x2](xk

−x1)

+ · · · + f [x0, x1, x2, . . . , xk−1](xk − xk−2) · · · (xk − x1)

+ ak(xk − xk−1)(xk − xk−2) · · · (xk − x1),

dividiendo ahora por (xk − x1) y reordenando se llega a

f [x0, x1, xk] = f [x0, x1, x2] + · · · + f [x0, x1, x2, . . . , xk−1](xk − xk−2) · · · (xk − x2)

+ ak(xk − xk−1)(xk − xk−2) · · · (xk − x2),

prosiguiendo de esta forma se obtiene que  ak  = f [x0, x1, . . . , xk].

Por tanto, los coeficientes del polinomio de Newton (o mejor dicho del polinomio deinterpolación escrito en la forma de Newton) son las diferencias divididas, siendola expresión del mismo

P (x) =f [xi0 ] + f [xi0 , xi1 ](x − xi0)

+ · · · + f [xi0 , xi1 , . . . , xin ](x − xi0) · · · (x − xin−1).  (3.9)

La forma práctica de calcular las diferencias divididas es en una tabla como lasiguiente

0 1 2 3x0   f [x0] = f 0

f [x0, x1]x1   f [x1] = f 1   f [x0, x1, x2]

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

f [x2, x3]x3   f [x3] = f 3

En la tabla anterior, la columna correspondiente a las diferencias divididas deorden 0 son datos y las demás son cocientes entre la diferencia de dos de la columnade la izquierda y dos nodos soporte. Una vez calculadas las diferencias divididashay diversas alternativas para calcular el polinomio de interpolación, ya que, alno importar el orden en que se tomen los nodos soporte, se puede aplicar (3.9)con cualquier elección de   i0, i1, . . .  Elegida una diferencia dividida cualquiera dela primera columna podemos elegir cualquiera de las dos contiguas de la segundacolumna y así sucesivamente, de forma que añadimos una nueva abcisa soportecada vez.

Ejemplo 3.6  Calcular, usando diferencias finitas, el polinomio de interpolación 

con los mismos datos del Ejemplo 3.1.67

Page 69: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 69/250

Capítulo 3. Interpolación y aproximación de funciones

Solución:De (3.8) construimos la tabla

0 1 2x0  = 0   f [0] = 0.5

f [0, 2] = 0.75x1  = 2   f [2] = 2   f [0, 2, 3] = −0.75

f [2, 3] = −1.5x2  = 3   f [3] = 0.5

El polinomio se puede calcular de varias formas. Si elegimos la primera diferenciadividida,  f [0] = 0.5 luego hemos de tomar  f [0, 2] = 0.75 y finalmente  f [0, 2, 3] =

−0.75, obtenemos P (x) = 0.5 + 0.75(x − 0) − 0.75(x − 0)(x − 2).

Si empezamos con   f [2] = 2  podemos seguir dos caminos: Tomar   f [2, 0] = 0.75y finalmente   f [2, 0, 3] = −0.75, obteniendo la expresión del polinomio   P (x) =2 + 0.75(x−2)−0.75(x−2)(x−0), o tomar f [2, 3] = −1.5 y por último f [2, 3, 0] =−0.75, obteniendo ahora la expresión del polinomio  P (x) = 2−1.5(x−2)−0.75(x−2)(x − 3).

Por último, empezando por  f [3] = 0.5 se toma luego  f [3, 2] = −1.5  y finalmentef [3, 2, 0] = −0.75, con lo que se obtiene la expresión  P (x) = 0.5 − 1.5(x − 3) −0.75(x

−3)(x

−2).

Conviene resaltar que lo que se obtiene son distintas expresiones del  único  poli-nomio de interpolación. En efecto, desarrollando las expresiones anteriores todasellas dan  P (x) = 0.5 + 2.25x − 0.75x2.  

Para calcular  P (x)   se eligen las diferencias divididas en zig-zag de forma que seempieza por el  xi  más próximo a  x, el siguiente punto a incorporar es el siguientemás próximo a  x, y así sucesivamente. Esto minimiza el error en el esquema deHorner.

Ejemplo 3.7   Calcular  P (1.25) para los datos del Ejemplo 3.1.

Solución:Como los nodos soporte son  0,  2  y  3  conviene elegirlas en el orden  2,  0  y  3, porser el orden de cercanía a   1.25. Por tanto, a partir de las diferencias divididasproporcionadas en la tabla del Ejemplo 3.6 calculamos

P (1.25) = f [2] + f [2, 0](1.25 − 2) + f [2, 0, 3](1.25 − 2)(1.25 − 0)

= f [2] + (1.25 − 2)(f [2, 0] + f [2, 0, 3] 1.25)

= 2 + (1.25 − 2)(0.75 − 0.75 1.25) = 2.14063.

68

Page 70: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 70/250

3.2 Interpolación polinómica 

Ejemplo 3.8  Calcular el polinomio interpolador correspondiente a los datos del Ejemplo 3.2 utilizando diferencias divididas. Calcular  P (0.8)  utilizando la expre-

sión que minimiza el error.Solución:La tabla de las diferencias divididas correspondiente al Ejemplo 3.2 es

0 1 2 3x0  = 0   f [0] = 0.5

f [0, 1] = 2x1  = 1   f [1] = 2.5   f [0, 1, 2] = −1.25

f [1, 2] = −0.5   f [0, 1, 2, 3] = 0.25

x2  = 2   f [2] = 2   f [1, 2, 3] = −0.5f [2, 3] = −1.5x3  = 3   f [3] = 0.5

Algunas formas de calcular el polinomio de interpolación son:

P (x) = f [0] + f [0, 1](x − 0) + f [0, 1, 2](x − 0)(x − 1)

+ f [0, 1, 2, 3](x − 0)(x − 1)(x − 2)

= 0.5 + 2(x − 0) − 1.25(x − 0)(x − 1) + 0.25(x − 0)(x − 1)(x − 2)

= 0.5 + 3.75x−

2x2 + 0.25x3.

P (x) = f [2] + f [2, 1](x − 2) + f [2, 1, 3](x − 2)(x − 1)

+ f [2, 1, 3, 0](x − 2)(x − 1)(x − 3)

= 2 − 0.5(x − 2) − 0.5(x − 2)(x − 1) + 0.25(x − 2)(x − 1)(x − 3)

= 0.5 + 3.75x − 2x2 + 0.25x3.

Para calcular P (0.8), minimizando los errores de redondeo en los cálculos, eligiría-mos los nodos soporte en el siguiente orden:  1, 0, 2  y  3, es decir, se empieza por elmás cercano a  0.8, y luego, de entre los que quedan por elegir, siempre se toma el

más cercano a  0.8. De esta forma se obtiene

P (0.8) = f [1] + f [1, 0](0.8 − 1) + f [1, 0, 2](0.8 − 1)(0.8 − 0)

+ f [1, 0, 2, 3](0.8 − 1)(0.8 − 0)(0.8 − 2)

= 2.5 + 2(−0.2) − 1.25(−0.2)(0.8) + 0.25(−0.2)(0.8)(−1.2)

que para reducir el número de operaciones se calcula por el esquema de Horner

= 2.5 + (−0.2) (2 + (0.8) (−1.25 + 0.25(−1.2)))

= 2.348.

69

Page 71: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 71/250

Capítulo 3. Interpolación y aproximación de funciones

3.2.4 Error en la interpolación polinómica

El siguiente resultado nos permite acotar el error cometido en la interpolaciónpolinómica.

Teorema 3.2   Si  f   tiene derivada de orden  n + 1, entonces para cada  x existe un ξ  en el menor intervalo que contiene a  x y todos los nodos soporte  xi  que cumple 

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

(n + 1)!  ,   (3.10)

donde  w(x) = (x − x0)(x − x1) · · · (x − xn).

El polinomio   w(x)  de grado   n + 1   que aparece en la expresión del error dadapor la ecuación (3.10), es un polinomio que se anula en los nodos soporte perolejos de ellos puede tomar valores muy grandes. En general  w  crece muy rápidofuera del intervalo mínimo que contiene a todos los nodos soporte. Por tanto, laextrapolación puede contener errores muy grandes y, en general, no es aconsejable.

3.2.5 Problemas con la interpolación polinómica

Los polinomios de grado alto tienen muchos máximos y mínimos y cuando  x tiendea infinito tienden a infinito, por lo que no interpolan bien funciones que no tenganestas características, tal como sucede en el siguiente ejemplo.

Ejemplo 3.9 (Función de Runge)  Interpolar la función de Runge 

f (x) =  1

1 + 25x2  (3.11)

en el intervalo   [−1, 1]   usando nodos igualmente espaciados. Representar   f   y los distintos polinomios obtenidos.

Solución:Vamos a interpolar la función (3.11) utilizando 5, 7, 9 y 13 puntos igualmenteespaciados. En la Figura 3.3 están representados estos polinomios interpoladores

 junto a la función  f (x) .

En la Figura 3.3 se observa que al aumentar el número de nodos soporte y, portanto, el grado del polinomio, las oscilaciones en los extremos del intervalo se hacencada vez mayores. En cambio, el error disminuye en el centro del mismo. Estefenómeno fue descubierto por Runge cuando estudiaba el comportamiento de loserrores al usar interpolación polinómica para aproximar determinadas funciones.Se conoce como fenómeno de Runge.  

70

Page 72: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 72/250

3.2 Interpolación polinómica 

−1 −0.5 0 0.5 1−0.4

−0.2

0

0.2

0.4

0.6

0.8

1F. RungePol. InterpDatos

(a) 5 puntos

−1 −0.5 0 0.5 1−0.2

0

0.2

0.4

0.6

0.8

F. RungePol. InterpDatos

(b) 7 puntos

−1 −0.5 0 0.5 1−1

−0.5

0

0.5

1F. RungePol. InterpDatos

(c) 9 puntos

−1 −0.5 0 0.5 1−4

−3

−2

−1

0

1

F. RungePol. InterpDatos

(d) 13 puntos

Figura 3.3: Función de Runge y diferentes polinomios de interpolación con nodos soporteigualmente espaciados.

El fenómeno de Runge demuestra que no siempre aumentando el número de nodosde una interpolación mejora su precisión. Una forma de resolver el problema eseligir los puntos soporte de forma que se minimice el error en todo el intervalo.

Así, esta técnica utiliza nodos con diferentes distancias entre ellos y tiene el in-conveniente de que no se puede aplicar si no conocemos los valores reales en losnodos necesarios. El problema observado con la función de Runge también puederesolverse mediante los splines, que es la técnica que se estudia en el siguienteapartado.

71

Page 73: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 73/250

Capítulo 3. Interpolación y aproximación de funciones

3.3 Interpolación por splines

Teniendo en cuenta los inconvenientes que presentan los polinomios de grado alto,se llega de forma natural a la interpolación segmentaria o interpolación a trozos,que consiste en dividir el intervalo en varios subintervalos y construir una funcióninterpoladora distinta sobre cada intervalo. La interpolación segmentaria lineal nospermite obtener una curva continua, pero sin suavidad, es decir, sin derivabilidaden los nodos.

Las funciones polinómicas segmentarias cúbicas proporcionan curvas interpolantesque definirán una trayectoria suave, que se ajustan a los puntos predefinidos peroque no presentan las grandes oscilaciones de los polinomios de grados elevados. Seutilizan en métodos numéricos pero también en aplicaciones gráficas.

La palabra inglesa  spline  denota un instrumento flexible usado en dibujo técnicoque sirve para trazar curvas suaves (trazador). Se trata de una regla que puedeser adaptada, flexionándola a la forma que tome la curva que se desee dibujar. Lapropiedad de los  splines  de adaptarse bien a formas dadas es por lo que se le dadicho nombre.

Definicion 3.1  Dado el conjunto de datos de la siguiente tabla de valores,

x0   x1

  · · ·  xn

f 0   f 1   · · ·   f n

cuyos nodos suponemos ordenados, es decir,

x0 ≤ x1 ≤ · · · ≤ xn,

llamamos spline de orden   k  asociado a los nodos anteriores a la función   S (x)definida como sigue:

S (x) = S i(x),

  ∀x

∈[xi

−1, xi], i = 1, . . . , n ,

donde  S i(x),  i = 1, . . . , n  son polinomios de grado  k  que satisfacen:

S i(xi−1) = f i−1,S i(xi) = f i,

  i = 1, . . . , n ,

y además,

S i(xi) = S i+1(xi),...

S k−1)i   (xi) = S 

k−1)i+1   (xi),

i = 1, . . . , n − 1.

A  k  se le llama grado del spline.72

Page 74: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 74/250

3.3 Interpolación por splines

Los splines que más se utilizan en la práctica son los cúbicos, es decir, los degrado 3. En este caso tendremos un conjunto de  n polinomios

S i(x) = aix3 + bix2 + cix + di, i = 1, . . . , n ,

cumpliendo las condiciones anteriores, que para splines cúbicos quedan de la forma

S i(xi−1) = f i−1,S i(xi) = f i,

  i = 1, . . . , n ,

S i(xi) = S i+1(xi),S i (xi) = S i+1(xi),

  i = 1, . . . , n − 1.

Tenemos que determinar  4n  coeficientes, pero en total tenemos  2n + 2(n − 1) =4n − 2 condiciones. Tendremos que imponer dos condiciones más. Éstas se puedenelegir, por ejemplo, como una de las siguientes:

•   S 1 (x0) = A  y  S n(xn) = B , con  A y  B  números reales. (Cuando  A =  B  = 0los splines se llaman naturales ).

•   S k)1   (x0) = S 

k)n  (xn),  k = 0, 1, 2, para splines periódicos (debe cumplirse  f 0  =

f n).

•   S 1(x0) = f 0  y  S n(xn) = f n, con  f 0  y  f n  números prefijados.

•   Imponer que la derivada tercera sea continua en  x1   y en  xn−1. Esta es lacondición llamada not a knot  (no-nudo).

Ejemplo 3.10  Calcular el spline cúbico natural,  S (x), correspondiente a los datos del Ejemplo 3.1, cuyos puntos soporte son 

xi   0 2 3

f i   0.5 2 0.5

y calcular  S (1).

Solución:Como tenemos 3 puntos de interpolación, necesitamos 2 polinomios cúbicos

S 1(x) = a1x3 + b1x2 + c1x + d1,   en   [0, 2],S 2(x) = a2x3 + b2x2 + c2x + d2,   en   [2, 3].

73

Page 75: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 75/250

Capítulo 3. Interpolación y aproximación de funciones

Tenemos que determinar 8 incógnitas. Imponemos las condiciones:

1.   S 1(x) tiene que pasar por  (0, 0.5), es decir,  S 1(0) = 0.5, de donde

d1  = 0.5.

2.   S 1(2) = 2, de donde8a1 + 4b1 + 2c1 + d1  = 2.

3.   S 2(2) = 2, de donde8a2 + 4b2 + 2c2 + d2  = 2.

4.   S 2(3) = 0.5, de donde27a2 + 9b2 + 3c2 + d2  = 0.5.

5.   S 1(2) = S 2(2), de donde

12a1 + 4b1 + c1  = 12a2 + 4b2 + c2.

6.   S 1 (2) = S 2 (2), de donde

12a1 + 2b1  = 12a2 + 2b2.

Hasta aquí tenemos 6 ecuaciones, las dos restantes dependen del tipo despline. Como en este caso el spline que queremos determinar es natural,imponemos

7.   S 1 (0) = 0, de donde2b1  = 0.

8.   S 

2 (3) = 0, de donde18a2 + 2b2  = 0.

Tenemos un sistema de 8 ecuaciones con 8 incógnitas. Resolviéndolo llegamos aque el spline natural buscado es

S (x) =

  S 1(x) = −0.1875x3 + 1.5x + 0.5,   si   x ∈ [0, 2],S 2(x) = 0.375x3 − 3.375x2 + 8.25x − 4,   si   x ∈ [2, 3].

Para calcular  S (1), como  1 ∈   [0, 2], utilizamos el primer polinomio y obtenemoscomo resultado S (1) =  S 1(1) = 1.8125. La gráfica del spline junto con los datospuede verse en la Figura 3.4.

74

Page 76: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 76/250

3.3 Interpolación por splines

0 0.5 1 1.5 2 2.5 30.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.2

2.4Datos

Spline

Figura 3.4:  Interpolación de los datos del Ejemplo 3.1 mediante un spline natural.

En la práctica no se obtiene el sistema de ecuaciones lineales tal como hemoshecho en el ejemplo. En su lugar se escriben algunas condiciones de otra forma,que a continuación desarrollaremos, para obtener sistemas de ecuaciones linealestridiagonales, o casi tridiagonales, lo que facilita su resolución.

Para obtener los polinomios, partimos de que S i (x) son polinomios de grado 1 quecumplen S i (xi) = S i+1(xi),  i = 1, . . . , n − 1. Así

S i (x) = M i−1(xi

−x)

(xi − xi−1) + M i

(x

−xi

−1)

(xi − xi−1) , i = 1, . . . , n .   (3.12)

Efectivamente

S i (xi) =   M i   (3.13)

S i+1(xi) =   M i(xi+1 − xi)

(xi+1 − xi) + M i+1

(xi − xi)

(xi+1 − xi) = M i   .

Integrando la expresión (3.12) para cada  i = 1, . . . , n, obtenemos

S i(x) = −M i−1 (xi − x)

2

2(xi − xi−1) + M i (x − xi−1)

2

2(xi − xi−1) + αi,

75

Page 77: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 77/250

Capítulo 3. Interpolación y aproximación de funciones

donde αi  es una constante de integración. Integrando nuevamente obtenemos

S i(x) = M i−1(xi

−x)3

6(xi − xi−1) + M i(x

−xi−1)3

6(xi − xi−1) + αix + β i,

siendo  β i  otra constante de integración. Las constantes de integración  αi  y  β i   sedeterminan imponiendo

S i(xi−1) = f i−1,S i(xi) = f i,

  i = 1, . . . , n ,

con lo que se obtiene:

αi =  f i

−f i−1

xi − xi−1 − 1

6 (M i − M i−1)(xi − xi−1)

β i = f i − αixi −  1

6M i(xi − xi−1)2 .

Introduciendo la notación  hi ≡ xi − xi−1  podemos escribir:

S i(x) =  M i−1

6hi(xi − x)3 +

 M i6hi

(x − xi−1)3 +

f i −  1

6M ih

2i

(x − xi−1)

hi+

+

f i−1 −  1

6M i−1h2

i

(xi − x)

hi.   (3.14)

Falta calcular los M i, para ello, se hace uso de la condición que nos queda S i(xi) =S i+1(xi),  i = 1, . . . , n − 1, obteniendo el sistema de  n − 1 ecuaciones

aiM i−1 + M i + ciM i+1 = di   ,   (3.15)

donde los coeficientes vienen dados por las expresiones

ai =  hi

2(hi+1 + hi)  , ci =

  hi+1

2(hi+1 + hi)  ,

di =   3hi+1 + hif i+1 − f ihi+1

−  f i − f i−1hi  .

Ahora imponemos las condiciones según el spline que queramos determinar. Vamosa hacer el caso en que  S 1 (x0) =  A  y  S n(xn) =  B . En este caso, de (3.12)–(3.13)tenemos

A =  S 1 (x0) = M 0,

B = S n(xn) = M n.

76

Page 78: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 78/250

3.3 Interpolación por splines

Por tanto, una vez hemos determinado  M 0 y  M n, sólo nos quedan por determinarM 1, . . . , M  n−1  a partir de (3.15). En forma matricial, el sistema a resolver es

1   c1   0   · · ·   0a2   1   c2   · · ·   0

0  . . .

  . . .  . . .

  ......

  . . .  . . .

  ...0   · · ·   an−1   1

M 1M 2

...M n−2M n−1

=

d1 − a1M 0d2...

dn−2dn−1 − cn−1M n

.

Hemos obtenido un sistema cuya matriz de coeficientes es tridiagonal. Para suresolución podríamos utilizar el algoritmo de Thomas visto en el capítulo anterior.

Una vez resuelto el sistema, basta sustituir en (3.14) para obtener los distintospolinomios del spline cúbico.

Ejemplo 3.11  Considerar la tabla de valores 

x   0 1 2 3 4 5f (x) 0 1 4 9 16 25

Obtener el spline natural que interpola los puntos de la tabla.

Solución:Como el spline pedido es natural, tenemos que  M 0  = M 5  = 0. Teniendo en cuentaque   hj   = 1,   j   = 1, . . . ,  5, calculamos los valores   ai   = 0.25,   ci   = 0.25,   di   = 3,i = 1, . . . ,  4, que dan lugar a la matriz

A =

1   c1   0 0a2   1   c2   00   a3   1   c30 0   a4   1

=

1 0.25 0 00.25 1 0.25 0

0 0.25 1 0.250 0 0.25 1

.

Tenemos que resolver el sistema

A

M 1M 2M 3M 4

=

d1d2d3d4

cuya solución es

M 1M 2

M 3M 4

=

2.5261.895

1.8952.526

.

77

Page 79: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 79/250

Capítulo 3. Interpolación y aproximación de funciones

Sustituyendo en (3.14) obtenemos el spline

S 1(x) =  2.526

6   x3

+1 − 2.526

6x ,

S 2(x) =  2.526

6  (2 − x)3 +

 1.895

6  (x − 1)3 +

4 −  1.895

6

(x − 1)

+

1 −  2.526

6

(2 − x)  ,

S 3(x) =  1.895

6  (3 − x)3 +

 1.895

6  (x − 2)3 +

9 −  1.895

6

(x − 2)

+4

− 1.895

6 (3

−x)  ,

S 4(x) =  1.895

6  (4 − x)3 +

 2.526

6  (x − 3)3 +

16 −  2.526

6

(x − 3)

+

9 −  1.895

6

(4 − x)  ,

S 5(x) =  2.526

6  (5 − x)3 + 25(x − 4) +

16 −  2.526

6

(5 − x)  .

En la Figura 3.5, representamos los puntos de la tabla junto con la gráfica del

spline obtenido.

Ejemplo 3.12  Aproximar mediante splines cúbicos la función de Runge utilizan-do nodos igualmente espaciados.

Solución:En la Figura 3.6 representamos la función de Runge (Ecuación (3.11)) junto a laaproximación polinónica mediante splines cúbicos utilizando 9 nodos igualmente

espaciados. Podemos observar que la interpolación por splines para la función deRunge no tiene los mismos problemas que la interpolación utilizando el polinomiointerpolador (ver Figura 3.3).

Hemos descrito con detalle los splines cúbicos, pero obviamente, utilizando la Defi-nición 3.1 se puede proceder de forma análoga para otros grados del polinomio quese construye entre dos puntos soporte consecutivos. Si, por ejemplo, son polino-mios de grado 1 (rectas) se obtiene una función quebrada en la que cada segmentoune dos puntos soporte consecutivos y que es un tipo de interpolación que se uti-

liza desde hace tiempo para calcular valores de funciones tabuladas haciendo un78

Page 80: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 80/250

3.4 Derivación e integración numérica 

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

5

10

15

20

25

Datos

Spline

Figura 3.5:  Interpolación de los datos del Ejemplo 3.11 mediante un spline natural.

cálculo muy sencillo que utiliza sólo los dos valores más cercanos disponibles en latabla.

3.4 Derivación e integración numérica

3.4.1 Derivación numérica

Como veremos a lo largo del curso, con mucha frecuencia es necesario conocer elvalor aproximado de la derivada de una función en varios puntos. Veremos cómo,a partir del cálculo de una función en valores próximos al que se quiere calcularla derivada, es posible obtener una aproximación a la misma. Si aproximamosesta función por el polinomio interpolador en los puntos vecinos considerados esinmediato obtener, derivando el polinomio, una aproximación a la derivada de lafunción.

Sin embargo, si conocemos el valor de la función en un número de puntos igualmen-te espaciados es posible obtener aproximaciones a la derivada de manera sencilla

y que a la vez nos permiten conocer el orden de aproximación.79

Page 81: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 81/250

Capítulo 3. Interpolación y aproximación de funciones

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

F. Runge

Datos

Spline

Figura 3.6:   Interpolación de la función de Runge por spline con nueve puntos soporte

igualmente espaciados.

Dada la función,   f (x), supongamos que queremos calcular una aproximación alvalor de su derivada evaluada en  x  =  x0, y que conocemos los siguientes valoresde la función

x0 − 2h x0 − h x0   x0 + h x0 + 2hf (x0 − 2h)   f (x0 − h)   f (x0)   f (x0 + h)   f (x0 + 2h)

Si aplicamos el desarrollo de Taylor a las funciones  f (x0+h) y f (x0−h) obtenemos

f (x0 + h) =   f (x0) + hf (x0) + h2

2! f (x0) +

 h3

3! f (x0) +

 h4

4! f iv)(x0) + O(h5)

f (x0 − h) =   f (x0) − hf (x0) + h2

2! f (x0) −  h3

3! f (x0) +

 h4

4! f iv)(x0) + O(h5).

Restando las dos ecuaciones tenemos

f (x0 + h) − f (x0 − h) = 2hf (x0) + h3

3 f (x0) + O(h5),

y despejando  f (x0) obtenemos

f (x0) =  f (x0 + h) − f (x0 − h)2h

  −  h2

3! f (x0) + O(h4).   (3.16)

80

Page 82: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 82/250

3.4 Derivación e integración numérica 

Si h es suficientemente pequeño, podemos tomar la aproximación

f (x0)  f (x0 + h)

−f (x0

−h)

2h   ,   (3.17)

donde sabemos que estamos cometiendo un error de orden O(h2), por lo que de-cimos que es una aproximación de segundo orden.

Por otro lado, si en vez de restar las funciones las sumamos obtenemos

f (x0 + h) + f (x0 − h) = 2f (x0) + h2f (x0) + h4

12f iv)(x0) + O(h5),   (3.18)

y si despejamos  f (x0) obtenemos

f (x0) = f (x0 − h) − 2f (x0) + f (x0 + h)

h2  −  h2

12f iv)(x0) + O(h3).   (3.19)

Por tanto, podemos aproximar el valor de la segunda derivada por

f (x0)  f (x0 − h) − 2f (x0) + f (x0 + h)

h2  ,   (3.20)

siendo ésta una aproximación de segundo orden. Estas aproximaciones tanto a laprimera como a la segunda derivada nos serán de gran utilidad en el desarrollo demétodos numéricos para resolver ecuaciones diferenciales.

Si se quiere obtener resultados más precisos podemos hacer uso de la funciónevaluada en más puntos. Por ejemplo, es inmediato ver que si en (3.16) en vez detomar los dos puntos vecinos tomamos los siguientes, se tiene

f (x0) = f (x0 + 2h) − f (x0 − 2h)

4h  − 4

h2

3! f (x0) + O(h4).   (3.21)

Por tanto, si multiplicamos por 4 la ecuación (3.16) y le restamos (3.21) se cancelael término dominante del error, obteniendo

f (x0) =  1

12h (f (x0 − 2h) − 8f (x0 − h) + 8f (x0 + h) − f (x0 + 2h)) + O(h4

)(3.22)

que tiene un error de orden O(h4).

Es posible también aproximar el valor de la derivada teniendo en cuenta sólo puntosque se encuentran a la derecha de   x0  o a su izquierda, o si los puntos no estánigualmente espaciados.

Un método alternativo para calcular aproximaciones de la derivada de una funciónbasadas en los valores de la función en una serie de puntos hace uso del polinomio

interpolador. Supongamos, por ejemplo, que queremos calcular la derivada  f  (x0),basándonos en la siguiente tabla de puntos81

Page 83: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 83/250

Capítulo 3. Interpolación y aproximación de funciones

x0 − h x0   x0 + hf  (x0 − h)   f  (x0)   f  (x0 + h)

Se calcula el polinomio interpolador de Lagrange asociado con la tabla. Para ello,se tiene

L2,0(x) =  1

2h2 (x − x0) (x − x0 − h) ,

L2,1(x) =   −  1

h2 (x − x0 + h) (x − x0 − h) ,

L2,2(x) =  1

2h2 (x − x0 + h) (x − x0) .

y, por tanto,

P 2(x) =  f  (x0 − h)

2h2  (x − x0) (x − x0 − h) −  f  (x0)

h2  (x − x0 + h) (x − x0 − h)

+f  (x0 + h)

2h2  (x − x0 + h) (x − x0)   .

Derivando se obtiene que

P 2 (x0) = f  (x0 + h) − f  (x0 − h)

2h   ≈f  (x0)   ,

que coincide con (3.17).

Usando esta técnica se pueden obtener aproximaciones de la derivada de una fun-ción que se basen en cualquier conjunto de puntos. De la misma forma, se puedenobtener fórmulas que aproximen las derivadas de orden superior de una funciónen un punto.

Por otro lado, si se tiene un conjunto de puntos igualmente espaciados y unaaproximación de O

h2

 de la derivada de una función

f  (x0) = D0(h) + Ch2 ,

si evaluamos esta misma expresión con un paso  2h, se tiene

f  (x0) = D0(2h) + C 4h2 ,

y, por tanto,4f  (x0) − f  (x0) ≈ 4D0(h) − D0(2h)  ,

o sea,

f  (x0) ≈ 4D0(h)

−D0(2h)

3   ,

82

Page 84: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 84/250

3.4 Derivación e integración numérica 

que constituye una aproximación de orden superior de la derivada. En particular,si

D0(h) =   f  (x0 + h) − f  (x0 − h)2h

  ,

D0(2h) =  f  (x0 + 2h) − f  (x0 − 2h)

4h  ,

se tiene,

f  (x0)   ≈   4D0(h) − D0(2h)

3

=  −f  (x0 + 2h) + 8f  (x0 + h) − 8f  (x0 − h) + f  (x0 − 2h)

12h

  ,

que, com hemos visto antes (ecuación (3.22)), es una aproximación de orden O h4

de la derivada. A este proceso, se le conoce como el método de extrapolación deRichardson.

3.4.2 Integración numérica

Pasemos ahora a estudiar algunos métodos numéricos que nos permitan calcularel valor de la integral definida dada por   b

a

f (x) dx.   (3.23)

Si el intervalo   [a, b]  es muy grande podemos realizar una partición del mismo enN  partes de longitud  h  = (b − a)/N  y tendremos en cuenta la propiedad de lasintegrales definidas   b

a

f (x) dx   =

   a+h

a

f (x) dx +

   a+2h

a+h

f (x) dx + · · · +

+   a+(N 

−1)h

a+(N −2)hf (x) dx +    a+Nh

a+(N −1)hf (x) dx.   (3.24)

Suponiendo que  h  es suficientemente pequeño, vamos a estudiar varios métodospara aproximar el valor de la integral en cada uno de los intervalos por separado.Lo estudiaremos en un intervalo genérico.

El proceso a seguir es el siguiente:

•  Consideramos el intervalo a integrar:  α+h

α   f (x) dx.

•  Evaluamos la función  f (x) en  m puntos del intervalo  [α, α + h].83

Page 85: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 85/250

Capítulo 3. Interpolación y aproximación de funciones

•   Calculamos el polinomio interpolador de Lagrange para estos puntos.

• Calculamos la integral de este polinomio obteniendo una expresión de la

forma:    α+h

α

f (x) dx =  hmi=1

bif (α + cih) + O(h p+1).   (3.25)

Los coeficientes  bi, ci  reciben el nombre de  pesos   y  nodos , respectivamente,mientras que  p es el orden  del método.

Obviamente, dependiendo de cuántos puntos se elijan y cómo se elijan se obtendránresultados más o menos precisos.

Por ejemplo, evaluando  f (x)  en los dos extremos y tomando el polinomio inter-polador de primer orden que pasa por ellos (la recta que une ambos puntos) seobtiene

P 1(x) =  1

h ((x − α)(f (α + h) − f (α)) + hf (α))

e integrando se tiene   α+h

α

f (x) dx    α+h

α

P 1(x) dx = h

2(f (α + h) + f (α)).   (3.26)

Este método recibe el nombre de método del trapecio, y se trata de un métodode segundo orden. Otros métodos más precisos se pueden obtener utilizando máspuntos del intervalo. Utilizando un polinomio interpolador de segundo grado enuna distribución de puntos igualmente espaciados se obtiene el método de Simpson,que es de orden 4 y que viene dado por   α+h

α

f (x) dx = h

6

f (α + h) + 4f 

α +

 h

2

+ f (α)

+ O(h5).   (3.27)

Una vez conocido el método para evaluar un intervalo, podemos calcular la integralbuscada (3.24). Por ejemplo, si utilizamos el método del trapecio y denotamos

f i = f (a + ih), i = 0, 1, 2, . . . , N  , donde  a + N h =  b  se tiene que   ba

f (x) dx   =

   a+Nh

a

f (x) dx

=  h

2

(f 0 + f 1) + (f 1 + f 2) + . . . + (f N −2 + f N −1) + (f N −1 + f N )

=

  h

2(f 0 + f N ) + h

N −1i=1

f i ,   (3.28)

que tiene una forma más adecuada para ser implementada en un algoritmo numé-rico.84

Page 86: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 86/250

3.5 Ejercicios resueltos

3.5 Ejercicios resueltos

Ejercicio 3.1  Considera los valores de la siguiente tabla 

xi   0 1/2 1 3/2 2f i   0.5 1.2 2 1.4 0.7

Si  P (x) es el polinomio que interpola estos datos, calcula  P (0.2) de las siguientes  formas:

a)  Hallando el polinomio interpolador de Lagrange.

b)  Utilizando el algoritmo de Neville.

c)  Utilizando la fórmula de interpolación de Newton.

Solución:

a)  Hallando el polinomio interpolador de Lagrange.

En primer lugar, calculamos los 5 polinomios de Lagrange de orden 4,

L4,0(x) =  (x − 1/2)(x − 1)(x − 3/2)(x − 2)

(0 − 1/2)(0 − 1)(0 − 3/2)(0 − 2)

=  2

3(x − 1/2)(x − 1)(x − 3/2)(x − 2),

L4,1(x) =  (x − 0)(x − 1)(x − 3/2)(x − 2)

(1/2 − 0)(1/2 − 1)(1/2 − 3/2)(1/2 − 2)

=   −8

3x(x − 1)(x − 3/2)(x − 2),

L4,2(x) =  (x

−0)(x

−1/2)(x

−3/2)(x

−2)

(1 − 0)(1 − 1/2)(1 − 3/2)(1 − 2)

= 4x(x − 1/2)(x − 3/2)(x − 2),

L4,3(x) =  (x − 0)(x − 1/2)(x − 1)(x − 2)

(3/2 − 0)(3/2 − 1/2)(3/2 − 1)(3/2 − 2)

=   −8

3x(x − 1/2)(x − 1)(x − 2),

L4,4(x) =  (x − 0)(x − 1/2)(x − 1)(x − 3/2)

(2 − 0)(2 − 1/2)(2 − 1)(2 − 3/2)

=  2

3 x(x − 1/2)(x − 1)(x − 3/2),

85

Page 87: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 87/250

Capítulo 3. Interpolación y aproximación de funciones

y a partir de éstos obtenemos el polinomio interpolador buscado

P (x) = 0.5 L4,0(x) + 1.2 L4,1(x) + 2 L4,2(x) + 1.4 L4,3(x) + 0.7 L4,4(x)

= 0.5 − 1.1 x + 8.33333 x2 − 7.6 x3 + 1.86667 x4.

Luego:  P (0.2) = 0.55552.

b)  Utilizando el algoritmo de Neville

Este algoritmo es útil cuando se quiere calcular directamente el valor deP (0.2) a través de la siguiente tabla:

0 1 2 3 4x0  = 0   P 0  = 0.5

P 01x1  = 1/2   P 1  = 1.2   P 012

P 12   P 0123x2  = 1   P 2  = 2   P 123   P 01234

P 23   P 1234x3  = 3/2   P 3  = 1.4   P 234

P 34x4  = 2   P 4  = 0.7

donde

P 01   =   (0.2 − x0)P 1 − (0.2 − x1)P 0x1 − x0

= 0.78

P 12   =  (0.2 − x1)P 2 − (0.2 − x2)P 1

x2 − x1= 0.72

P 23   =  (0.2 − x2)P 3 − (0.2 − x3)P 2

x3 − x2= 2.96

P 34   =  (0.2 − x3)P 4 − (0.2 − x4)P 3

x4 − x3= 3.22

P 012   =  (0.2 − x0)P 12 − (0.2 − x2)P 01

x2 − x0

= 0.768

P 123   =  (0.2 − x1)P 23 − (0.2 − x3)P 12

x3 − x1= 0.048

P 124   =  (0.2 − x2)P 34 − (0.2 − x4)P 23

x4 − x2= 2.752

P 0123   =  (0.2 − x0)P 123 − (0.2 − x3)P 012

x3 − x0= 0.672

P 1234   =  (0.2 − x1)P 234 − (0.2 − x4)P 123

x4 − x1= −0.4928

P 01234   =   (0.2 − x0)P 1234 − (0.2 − x4)P 0123x4 − x0

= 0.55552

86

Page 88: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 88/250

3.5 Ejercicios resueltos

La solución viene dada por

P 01234  = 0.55552

c)   Utilizando la fórmula de interpolación de Newton.

Los coeficientes de los polinomios de interpolación de Newton se obtienen dela siguiente tabla

0 1 2 3 4x0   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 [x0, x1, x2, x3, x4]

f [x2, x3]   f [x1, x2, x3, x4]x3   f [x3]   f [x2, x3, x4]

f [x3, x4]x4   f [x4]

donde   f [xi] =   f i,   i   = 0, . . . , 4, y el resto de coeficientes se obtienen muyfácilmente por diferencias divididas como sigue

f [x0, x1] =   f [0, 0.5] = 1.2

−0.5

0.5 − 0   = 1.4

f [x1, x2] =   f [0.5, 1] = 2 − 1.2

1 − 0.5 = 1.6

f [x2, x3] =   f [1, 1.5] = 1.4 − 2

1.5 − 1 = −1.2

f [x3, x4] =   f [1.5, 2] = 0.7 − 1.4

2 − 1.5  = −0.2

f [x0, x1, x2] =   f [0, 0.5, 1] = 1.6 − 1.4

1 − 0  = 0.2

f [x1, x2, x3] =   f [0.5, 1, 1.5] = −1.2 − 1.61.5 − 0.5

  = −2.8

f [x2, x3, x4] =   f [1, 1.5, 2] = −1.4 + 1.2

2 − 1  = −0.2

f [x0, x1, x2, x3] =   f [0, 0.5, 1, 1.5] = −2.8 − 0.2

1.5 − 0  = −2

f [x1, x2, x3, x4] =   f [0.5, 1, 1.5, 2] = −0.2 + 2.8

2 − 0.5  = 1.7333

f [x0, x1, x2, x3, x4] =   f [0, 0.5, 1, 1.5, 2] = 1.7333 + 2

2

−0

  = 1.86667

87

Page 89: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 89/250

Capítulo 3. Interpolación y aproximación de funciones

Hay muchas opciones distintas de escribir el polinomio según el orden quetomemos en la factorización. Para reducir errores de redondeo, es preferible

empezar a construir el polinomio empezando por los puntos vecinos al delpunto en el que queremos evaluar el polinomio. En nuestro caso, lo queremosevaluar en   x   = 0.2, por lo que es preferible empezar por   x0   = 0   o porx1  = 0.5. Presentamos las dos opciones, cuyo resultado final, obviamente, esel mismo (si no hay errores de redondeo):

•  La primera de las opciones es:

P (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)

+f [x0

, x1

, x2

, x3

, x4

](x−

x0

)(x−

x1

)(x−

x2

)(x−

x3

),

y sustituyendo por los coeficientes obtenidos en la tabla se tiene

P (x) = 0.5 + 1.4 x + 0.2 x

x −  1

2

− 2 x

x −  1

2

(x − 1)

+1.86667 x

x −  1

2

(x − 1)

x −  3

2

.

•  Para la segunda opción tenemos

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

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

+f [x1, x0, x2, x3, x4](x − x1)(x − x0)(x − x2)(x − x3).

Teniendo en cuenta que

f [x1, x0] = f [x0, x1], f [x1, x0, x2] = f [x0, x1, x2], . . .

vemos que podemos hacer uso de los coeficientes de la tabla, obteniendoel polinomio:

P (x) = 1.2 + 1.4

x −  1

2

+ 0.2

x −  1

2

x − 2

x −  1

2

x (x − 1)

+1.86667

x −  1

2

x(x − 1)

x −  3

2

.

Los dos polinomios son equivalentes, y en ambos casos se obtiene queP (0.2) = 0.55552.

88

Page 90: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 90/250

3.5 Ejercicios resueltos

Ejercicio 3.2  Dadas las funciones   f 1(x) = ex,   f 2(x) = sen(x),  f 3(x) = cos(x),obtén las aproximaciones de las derivadas  f 1(1),  f 2(1), y  f 3(1)  usando la aproxi-

mación del cociente incremental f (1) ≈  f (1 + h) − f (1)

h  ,

con   h  = 10−k,   k   = 1, 2, . . . , 6. Repite los cálculos utilizando la aproximación de segundo orden de la derivada 

f (1) ≈  f (1 + h) − f (1 − h)

2h  .

Solución:

Si se utiliza la primera aproximación de la derivada se obtienen los siguientesvalores

h f 1(x) = ex f 2(x) = sen(x)   f 3(x) = cos(x)0.1 2.8588 0.49736 -0.867060.01 2.7319 0.53609 -0.844160.001 2.7196 0.53988 -0.841740.0001 2.7184 0.54026 -0.841500.00001 2.7183 0.54030 -0.841470.000001 2.7183 0.54030 -0.84147

Valor exacto   2.7183 0.54030 -0.84147

Si se utiliza ahora la aproximación de segundo orden de la derivada, se tienen losvalores

h f 1(x) = ex f 2(x) = sen(x)   f 3(x) = cos(x)0.1 2.7228 0.53940 -0.840070.01 2.7183 0.54029 -0.841460.001 2.7183 0.54030 -0.841470.0001 2.7183 0.54030 -0.841470.00001 2.7183 0.54030 -0.841470.000001 2.7183 0.54030 -0.84147Valor exacto   2.7183 0.54030 -0.84147

Ejercicio 3.3  Repite el proceso para obtener la aproximación 

f  (x0) ≈  f  (x0 + h) − f  (x0 − h)

2h  ,

basándose en la formulación de Newton del polinomio interpolador.89

Page 91: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 91/250

Capítulo 3. Interpolación y aproximación de funciones

Solución:El primer paso consiste en construir el polinomio interpolador de Newton asociado

a la tabla

x x0 − h x0   x0 + hf (x)   f  (x0 − h)   f  (x0)   f  (x0 + h)

El polinomio de Newton asociado a  ((x0 − h) , f  (x0 − h)) es

P 0(x) = f  (x0 − h)   .

El polinomio de Newton asociado a  (x0

−h, f  (x0

−h)),  (x0, f  (x0)) es

P 1(x) = f  (x0 − h) + f  (x0) − f  (x0 − h)

h  (x − x0 + h)   .

Y, por último el polinomio asociado a los puntos de la tabla es

P 2(x) =   f  (x0 − h) + 1

h (f  (x0) − f  (x0 − h)) (x − x0 + h)

+  1

2h2 (f  (x0 + h) + f  (x0 − h) − 2f  (x0)) (x − x0 + h) (x − x0)   .

Derivando,

P 2(x) =  1

h (f  (x0) − f  (x0 − h))

+  1

2h2 (f  (x0 + h) + f  (x0 − h) − 2f  (x0))((x − x0) + (x − x0 + h))   ,

y, por tanto,

P 2 (x0) =  1

2h (f  (x0 + h) − f  (x0 − h))   .

Ejercicio 3.4   Obtener la aproximación de   f  (x0)   con menor error de trunca-miento que se basa en  f  (x0),  f  (x0 + ∆x) y  f  (x0 + 2∆x).

Solución:Se escribe

f  (x0 + ∆x) =   f  (x0) + ∆xf  (x0) + 1

2∆x2f  (x0) +

 1

6∆x3f  (x0) + O

∆x4

,

f  (x0 + 2∆x) =   f  (x0) + 2∆xf  (x0) + 42

∆x2f  (x0) + 86

∆x3f  (x0) + O ∆x4 .

90

Page 92: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 92/250

3.5 Ejercicios resueltos

Escribimos ahora,

af  (x0) + bf  (x0 + ∆x) + cf  (x0 + 2∆x)

= (a + b + c)f  (x0) + ∆x(b + 2c)f  (x0) + 1

2∆x2(b + 4c)f  (x0) + O

∆x3

.

Se impone que

a + b + c = 0

b + 2c = 1

b + 4c = 0

cuya solución esa = −3

2  , b = 2  , c = −1

2  .

Por tanto queda

−3

2f  (x0) + 2f  (x0 + ∆x) −  1

2f  (x0 + 2∆x) = ∆xf  (x0) + O

∆x3

  ,

y la aproximación se escribe

f  (x0) =  1

2∆x (−3f  (x0) + 4f  (x0 + ∆x) − f  (x0 + 2∆x)) + O ∆x2

  .

Ejercicio 3.5  Demuestra que 

f  (x0) ≈  2f 0 − 5f 1 + 4f 2 − f 3h2

  ,

siendo f i = f (xi),  i = 0, . . . , 3.

Solución:

Si usamos el desarrollo de Taylor, se puede escribir

f 1   =   f 0 + hf 0 + 1

2h2f 0   +

  1

3!h3f 0   + O

h4

,

f 2   =   f 0 + 2hf 0 + 1

24h2f 0   +

  1

3!8h3f 0   + O

h4

,

f 3   =   f 0 + 3hf 0 + 1

29h2f 0   +

  1

3!27h3f 0   + O

h4

.

Si suponemos que

f  (x0) =   1h2

 (a0f 0 + a1f 1 + a2f 2 + a3f 3)   ,

91

Page 93: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 93/250

Capítulo 3. Interpolación y aproximación de funciones

haciendo uso de los desarrollos de Taylor, se obtiene el sistema

a0 + a1 + a2 + a3   = 0  ,

a1 + 2a2 + 3a3   = 0  ,1

2a1 +

 4

2a2 +

 9

2a3   = 1,

1

6a1 +

 8

6a2 +

 27

6 a3   = 0,

cuya solución esa0  = 2, a1  = −5, a2  = 4, a3  = −1.

Ejercicio 3.6  Considera los valores de la siguiente tabla 

x   0 1 2

f (x) = e−x2 1   1e  0.36788   1

e4  0.018316

A partir de estos datos calcula:

a)   Una aproximación a 

  de−x2

dx   (1)   y 

  d2e−x2

dx2   (1). Compara con las soluciones exactas:

de−x2

dx  (1) = −2

1

e  −0.73576,

  d2e−x2

dx2  (1) = 2

1

e  0.73576

b)  La función error viene dada por 

erf(x) =  2√ 

π

   x0

e−s2 ds.

Aproxima el valor de la integral en el intervalo x ∈ [0, 2], (esto es, aproxima el valor de  erf(2)) utilizando:

i)  Dos pasos con el método del trapecio.

ii)  Un paso con el método de Simpson.

Halla el error cometido en cada caso comparando con la solución exacta ( erf(2) = 0.99532).

92

Page 94: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 94/250

3.5 Ejercicios resueltos

Solución:

a)de−x2

dx  (1)

1e4

 − 1

2  −0.49084 ,

d2e−x2

dx2  (1)

1e4

 − 21e  + 1

12  0.28256 ,

donde vemos que se trata de aproximaciones bastante pobres debido a lagran separación entre los puntos.

b) i)

T 1  =  2√ 

π

1

2

1 +

 1

e

+

 1

2

1

e +

  1

e4

= 0.98963 ,

ErrT 1  = |erf (2) − T 1| = 0.0056917 .

ii)

S 1  =  2√ 

π

2

6

1 + 4

1

e +

  1

e4

= 0.93649 ,

ErrS 1  = |erf (2) − S 1| = 0.058830 .

En este ejercicio, el método del trapecio, que es de segundo orden, da unasolución más precisa que el método de Simpson porque hemos utilizado pasosde integración grandes.

Ejercicio 3.7  Repite el Ejercicio 3.6 pero utilizando los datos de la siguiente tabla que contiene más puntos 

x   0   12   1   3

2   2

f (x) 1   1e1/4

  0.77880   1e  0.36788   1

e9/4  0.10540   1

e4  0.018316

a)   Aproxima   de−x2

dx  (1) y 

  d2e−x2

dx2  (1) utilizando sólo el valor en  x = 1 y sus dos 

vecinos. Compara con las soluciones exactas.

b)  Aproxima el valor de  erf(2) utilizando:

i)  Cuatro pasos con el método del trapecio.

ii)  Dos pasos con el método de Simpson.

Halla el error cometido en cada caso.93

Page 95: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 95/250

Capítulo 3. Interpolación y aproximación de funciones

Solución:

a)de−x2

dx  (1)

1e9/4

 −   1e1/4

1  −0.67340

d2e−x2

dx2  (1)

1e9/4

 − 21e  +   1

e1/412

2   0.59376

donde vemos que las aproximaciones son mejores que las anteriores debidoa la menor separación entre los puntos.

b) i)

T 2   =  2√ 

π

1

4

1 +

  1

e1/4

+

 1

4

  1

e1/4 +

 1

e

+

 1

4

1

e +

  1

e9/4

+

 1

4

  1

e9/4 +

  1

e4

=  2√ 

π

1

4

1 +

  1

e4

+

 1

2

  1

e1/4 +

 1

e +

  1

e9/4

0.99367

ErrT 2  = |erf (2) − T 2| 0.0016505

ii)

S 2  =  2√ 

π

1

6

1 + 4

  1

e1/4 +

 1

e

+

 1

6

1

e +

  1

e9/4 +

  1

e4

= 0.99502

ErrS 2  = |erf (2) − S 2| 0.00030349

Vemos ahora que el método de Simpson, que es de cuarto orden, es bastantemás preciso que el del trapecio, que es de segundo orden, siendo la diferenciamayor según vamos reduciendo los pasos de integración.

Ejercicio 3.8  Considera las siguientes tablas de datos 

I)  x   2 4f (x) 5 12

  II)  x   2 4 6

f (x) 5 12 26

Construye la tabla de diferencias divididas para la tabla  I)  y escribe los dos po-linomios de Newton que puedes contruir a partir de estos coeficientes. Repite lomismo para la tabla  II)  escribiendo ahora los 4 polinomios correspondientes.

94

Page 96: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 96/250

3.5 Ejercicios resueltos

Solución:Los coeficientes de los polinomios de interpolación de Newton se obtienen de la

siguiente tabla

0 1 2x0  = 2   f [x0] = 5

f [x0, x1] =   72

x1  = 4   f [x1] = 12   f [x0, x1, x2] =   7

8

f [x1, x2] = 7

x2 =  6 f [x2] = 26

Observemos que la tabla anterior se corresponde a los coeficientes para la tabla II)

y los datos no resaltados en negrita corresponden a los coeficientes para la tabla  I).

Los polinomios para la tabla  I)  son

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

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

Y para la tabla  I)  tenemos los siguientes polinomios de interpolación de Newton

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

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

x0)(x−

x1),

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

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

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

Ejercicio 3.9  A partir de los datos de la siguiente tabla 

x   0 1 2

f (x) = 2x 1 2 4

a)  Calcula una aproximación numérica a la integral 

I  =

   20

2x dx

utilizando dos pasos del método del trapecio. Calcula el error cometido (toma ln(2) 0.69)

b)  Aplica un método de segundo orden para aproximar  f (1)  y calcula el error cometido.95

Page 97: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 97/250

Capítulo 3. Interpolación y aproximación de funciones

Solución:

a)  La solución exacta es    20

2x dx =  3

ln(2)  4.32 .

Utilizando dos pasos del método del trapecio se tiene

I    1

2(1 + 2) +

 1

2(2 + 4) =

 9

2 = 4.5 .

El error cometido es |4.5 − 4.32| = 0.18.

b)  De la tabla deducimos que  h  = 1 y, por tanto, la aproximación a f (1) vienedada por

f (1)  f (2) − f (0)

2  =

 4 − 0

2  = 2 .

La solución exacta es  f (1) = 2 ln(2) = 1.38, y, por tanto, el error cometidoes |2 − 1.38| = 0.62.

3.6 Ejercicios propuestos

1. Calcula el polinomio interpolador,  P (x), para los siguientes datos

xi   0 0.5 1 1.5 2f i   0.5 1.2 2 1.4 0.7

Calcula P (0.2) y  P (2.5) utilizando los métodos de Neville, Lagrange y New-ton. Analiza los resultados obtenidos.

2. Aproxima √ 3  usando la función  f (x) = 3x

y las abcisas  x0   = −1,  x1  = 0,x2  = 1,  x3  = 2,  x4  = 3, utilizando:

a ) El método de Neville.

b) El método de Lagrange.

c ) El método de Newton.

d ) Un spline natural.

e ) Un spline  S (x) tal que S (x0) = f 0,  S (x4) = f 4.

 f  ) Un spline “no-nudo”.

Compara los resultados obtenidos.96

Page 98: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 98/250

3.6 Ejercicios propuestos

3. Aproxima √ 

3  usando la función  f (x) = √ 

x  y las abcisas  x0   = 0,  x1   = 1,x2  = 2,  x3  = 4,  x4  = 9, utilizando:

a ) El método de Neville.b) El método de Lagrange.

c ) El método de Newton.

d ) Un spline natural.

e ) Un spline  S (x) tal que  S (x0) = f 0,  S (x4) = f 4.

 f  ) Un spline “no-nudo”.

Compara con los resultados obtenidos en el Ejercicio 2.

4. Calcula un spline natural,  S (x), que interpole los nodos de la tabla del Ejerci-

cio 1. Utilízalo para calcular S (0.2) y S (2.5). Analiza los resultados obtenidosy compara con los resultados del Ejercicio 1.

5. Calcula el polinomio interpolador de Newton para la siguiente función tabu-lada

x   2 4 6 8f (x) 5 12 26 45

Si a posteriori sabemos que f (10) = 70, determina el nuevo polinomo interpo-lador de Newton. Calcula una aproximación a  f (4.5) utilizando el polinomio

interpolador.6. Considera el Ejercicio 2 y calcula las aproximacines a segundo orden de

f (0), f (1), f (2) y  f (0), f (1), f (2), y compara con la solución exacta.

7. Considera el Ejercicio 2 y calcula de forma aproximada la integral   3−1

f (x) dx =  80

3 ln(3)

dividiendo el intervalo en 4 partes y utilizando el método del trapecio; ydividiéndolo en 2 partes y utilizando el método de Simpson. Compara ambas

aproximaciones con la solución exacta dada.8. La función error viene dada por

erf (x) =  2√ 

π

   x0

e−s2 ds.

Considera los valores de la siguiente tabla

x   0 1 2f (x) 1   1

e1e2

Utiliza el método de Simpson con un solo paso para aproximar el valor de

erf (1), y compara con la solución exacta (erf (1) = 0.842701).97

Page 99: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 99/250

Page 100: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 100/250

Capítulo 4

Métodos numéricos para problemasde valor inicial

4.1 Introducción

Los métodos analíticos de integración de ecuaciones diferenciales son útiles pararesolver sólo una pequeña parte de las ecuaciones diferenciales que aparecen en lapráctica. Este hecho justifica, junto al avance de la capacidad de computación, elinterés práctico por los métodos que se denominan aproximados.

Los métodos numéricos son los métodos aproximados de uso más extendido enla resolución de problemas reales científicos y técnicos. Se caracterizan porqueproporcionan una solución aproximada dada mediante una tabla de valores, ytienen la gran ventaja de basarse en procedimientos generales que no dependendel tipo de ecuación a resolver. No obstante, obtener resultados con una precisiónaceptable con estos métodos exige tener que hacer un gran número de cálculos,

para lo cual es necesario el uso del ordenador. Dedicamos este capítulo a exponeruna introducción a los métodos numéricos para la resolución de problemas de valorinicial asociados a una ecuación diferencial.

Recordemos que un problema de valores iniciales  consiste en

Dada una ecuación diferencial obtener la función solución  y(t)  de la que se conoce su valor y el de sus derivadas en un punto inicial  t0.

En caso de resolver analíticamente el problema, las condiciones iniciales son lasque permiten determinar las constantes arbitrarias de la solución general y, de esta99

Page 101: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 101/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

forma, llegar a la expresión analítica de la solución  y(t)  del problema de valoresiniciales. En cambio, si resolvemos el problema mediante un método numérico

obtenemos, para cada punto t que se considere, un valor aproximado de la soluciónevaluada en dicho punto.

En este capítulo presentamos métodos numéricos para obtener un valor aproxima-do de la solución  y(t) del problema de valor inicial

  y   =   f (t, y),y(t0) =   y0,

  (4.1)

donde y ∈ R p. Esto es, estudiaremos la resolución de sistemas de ecuaciones dife-

renciales ordinarias (EDOs) con condiciones iniciales, donde y  = (y1, . . . , y p)T, f  =

(f 1, . . . , f   p)

T

y

d

dt

y1

...y p

=

f 1(t, y1, . . . , y p)

...f  p(t, y1, . . . , y p)

, y0  =

y1,0

...y p,0

.   (4.2)

Supondremos siempre que la función  f  es tal que el problema tiene solución únicaen un intervalo que contiene a  t0.

En el caso de un problema de valor inicial asociado a una ecuación diferenciallineal de orden  p de la forma

y p) = f (t ,y,y, . . . , y p−1)),

y(t0) = y0, . . . , y p−1)(t0) = y p−1)0   ,

consideraremos el cambio de variables

y1  = y, y2  =  y , . . . , y p = y p−1),

obteniendo un sistema de ecuaciones diferenciales de primer orden equivalente

d

dt

y1

...y p−1

y p

=

y2

...y p

f (t, y1, y2, . . . , y p)

,

y1(t0)

...y p−1(t0)

y p(t0)

=

y0

...

y p−2)0

y p−1)0

.

Una ecuación diferencial lineal de orden  p de la forma

y p) + a p−1(t)y p−1) + · · · + a1(t)y + a0(t)y =  g(t),

se corresponde con el caso particular en que

f (t, y1, y2, . . . , y p) = g(t) − a p−1(t)y p − · · · − a1(t)y2 − a0(t)y1.

100

Page 102: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 102/250

4.1 Introducción 

Ejemplo 4.1  Escribir la ecuación de segundo orden 

y + a1(t)y + a0(t)y =  g(t), y(t0) = y0, y(t0) = y 0,

como un sistema de ecuaciones de primer orden.

Solución:Denotamos

y1  = y, y2  = y,

derivamos  y1, y2   respecto a   t  y teniendo en cuenta la ecuación de segundo ordense llega a la expresión buscada

d

dt   y1

y2 =   y2

g(t) − a0(t)y1 − a1(t)y2 ,   y1(0)

y2(0) =   y0

y0 .

En este capítulo estudiaremos algunos de los métodos numéricos más elementalesy conocidos para resolver EDOs. Consideraremos que la función  f  es Lipschitz,esto es, existe  λ ≥ 0 tal que, para una determinada norma

f (t, v) − f (t, w) ≤ λv − w, t ∈ [0, t∗], v, w ∈ R p.

Por simplicidad, siempre consideraremos que la función f  es suficientemente suave

y supondremos que es analítica. Por tanto, siempre se podrá desarrollar en seriede Taylor. Nuestro objetivo será obtener las aproximaciones  yn+1 ≈ y(tn+1), n =0, 1, . . . , donde  tn+1  =  tn +  hn, n  = 0, 1, . . . , con  hn  >  0 un paso de integraciónsuficientemente pequeño, y para el que podremos hacer uso de los valores calculadospreviamente y0, . . . , yn  y la ecuación (4.1). El valor  hn  >  0  puede variar en cadapaso de integración aunque por simplicidad en la presentación se tomará constantey, por tanto,  tn = t0 + nh.

Introducimos algunos conceptos que serán utilizados a lo largo del curso.

Definicion 4.1  Método de un Paso: es una transformación de la forma  yn+1  =

ψh(tn, yn), esto es, proporciona una aproximación a la solución exacta   y(tn+1)partiendo sólo de la aproximación que se obtuvo en el paso anterior.Método Multipaso: es una transformación de la forma  yn+1 = ψh(t0, y0, . . . , tn, yn),esto es, da una aproximación a la solución exacta  y(tn+1)  partiendo de las apro-ximaciones que se obtuvieron en los pasos anteriores.Método Explícito: es una transformación de la forma  yn+1 = ψh(t0, y0, . . . , tn, yn),esto es, para calcular  yn+1  sólo requiere de valores conocidos.Método Implícito: es una transformación de la forma 

yn+1  =  ψh(t0, y0, . . . , tn+1, yn+1),

esto es, para calcular  yn+1  hay que resolver una ecuación implícita.101

Page 103: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 103/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Partimos de la ecuación diferencial (4.1), con el objetivo de obtener el valor de lafunción y  en el punto  tf , conocido el valor de  y  en el punto  t0. Para ello, dividimos

el intervalo   [t0, tf ] en  N  subintervalos iguales, tomando  tn  = tn−1 + h  =  t0 + nh,n   = 1, 2, . . . , N  ,   h   =

  tf  − t0N    , donde tomamos   tN    =   tf . En el primer paso se

calcula un valor aproximado de la solución exacta en  t1  = t0 + h, que llamaremosy1. En el segundo paso, se calcula un valor aproximado,  y2, de la solución exactaen  t2  = t1 + h, etc. En cada paso, los cálculos se llevan a cabo mediante la mismafórmula.

4.2 Método de Euler

El método de Euler es el más simple de los métodos numéricos de resolución deecuaciones diferenciales. Se obtiene considerando el desarrollo de Taylor a primerorden en  h,

y(t0 + h) ≈ y(t0) + hy(t0).

A partir de la ecuación diferencial  y(t0) = f (t0, y0), obtenemos

y1  = y0 + hf (t0, y0) .

Análogamente, utilizando  y1  como condición inicial, tenemos en el segundo paso,

y2  =  y1 + hf (t1, y1),

y, en general, el algoritmo recursivo viene dado por

y0   =   y (t0)   ,

yn+1   =   yn + hf  (tn, yn) , n = 1, 2, . . .

Geométricamente, este método consiste en realizar una aproximación de la curva

y(t) mediante un polígono cuyo primer lado es tangente a la curva en  t0  (véase laFig. 4.1).

El error que se comete en la primera iteración es,

ε1   =   | y(t1) − y1 |=| y(t1) − y0 − hf (t0, y0) |==

y(t0) + hy(t0) + 1

2h2y(t0) + · · · − y0 − hf (t0, y0)

=

=

1

2h2y(t0) + · · ·

= O(h2)  .

A este error se le llama  error local   o error de truncamiento   del método.102

Page 104: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 104/250

4.2 Método de Euler 

x

y

y1

y0

x0   x1

h

y(x1)

y1

=y0

+hf(x0

,y0

)

Figura 4.1:  Método de Euler.

Lógicamente, el error aumentará a medida que aumente el número de iteraciones.El valor práctico de este método es limitado aunque resulta útil para obtener almenos una primera aproximación de la solución, para un valor de h suficientementepequeño.

Ejemplo 4.2  Considerar el problema de valor inicial  y  =  y − t, con la condición y(0) = y0  = 1.5, cuya solución analítica es 

y = 1 + 1

2 et +t .

Calcular, mediante el método de Euler, una aproximación a  y(1.5)  tomando  h  =0.25.

Solución:

Tomamos h  = 0.25 y realizamos los cálculos, con un redondeo de cuatro decimales,que figuran en la siguiente tabla

n tn   yn   y (tn)   |y (tn) − yn|0 0 1.5000 1.5000 0.00001 0.25 1.8750 1.8920 0.01702 0.50 2.2812 2.3244 0.04323 0.75 2.7265 2.8085 0.08204 1.00 3.2206 3.3591 0.1385

5 1.25 3.7758 3.9952 0.21946 1.50 4.4072 4.7408 0.3336103

Page 105: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 105/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Al final, se tiene que   y(1.5) ≈   4.4072  con un error de   0.3336. Como ya hemoscomentado, el error va aumentado a medida que aumenta el número de iteraciones.

Para el método de Euler, el siguiente teorema nos da una cota para el error globalque se comete.

Teorema 4.1   Consideremos  y(t) la solución del problema del valor inicial 

y  = f (t, y)   , t0 ≤ t ≤ tf   , y(t0) = y0   ,

y llamemos   y0, y1, . . . , yn   las aproximaciones generadas con el método de Euler con paso  h. Supongamos que  f  es continua para  t

∈[t0, tf ] e  y

 ∈]

− ∞, +

∞[ y que 

existen constantes  L y  M   tales que ∂f 

∂y(t, y)

≤ L ,   |y| ≤ M .

Entonces, para  n = 0, 1, 2, . . . , N  , se cumple 

|y (tn) − yn| ≤  hM 

2L

eL(tn−t0) −1

  .   (4.3)

A continuación introducimos otro concepto fundamental que es el orden de losmétodos numéricos.

Definicion 4.2 (Orden de un Método)  Dado un método numérico que deno-tamos por  yn+1  =  ψh(tn, yn), diremos que el orden del método es  q  si al reemplazar la solución aproximada,  yn, por la correspondiente solución exacta en   tn  se tiene que 

y(tn+1) − ψh(tn, y(tn)) = O(hq+1)

para todo  h > 0, n ≥ 0 y para toda función  f   suficientemente suave.

Veamos cuál es el orden del método de Euler aplicando la definición. Tenemos queel método viene dado por la transfomación   ψh(tn, yn) =   yn +  hf (tn, yn), dondelos valores aproximados deben de sustituirse por la solución exacta, con lo queobtenemos

y(tn+1) − y(tn) + hf (tn, y(tn))

  (4.4)

=

y(tn) + hy(tn) +

 1

2h2y(tn) + · · ·

y(tn) + hy(tn)

  (4.5)

=  1

2h2y(tn) + · · · = O(h2),

por lo que se tiene que el método de Euler es de primer orden.104

Page 106: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 106/250

4.3 Método del desarrollo en serie de Taylor 

Hemos de resaltar que el error local o de truncamiento del método de Euler esO

h2

 mientras que el error global obtenido en (4.3) es O (h). Esta reducción del

error local al error global en un grado de h es típica de las técnicas numéricas paraproblemas de valor inicial.

Ejemplo 4.3  Aplicar el método de Euler al problema del péndulo adimensional 

d

dt

  θω

=

  ω

− sen(θ)

, θ0  = 0, ω0  = 3/2,

t ∈   [0, 10]   tomando como pasos de integración  h  = 1/10  y  h  = 1/20. Dibujar  θn frente a  ωn  en ambos casos y comparar los resultados.

Solución:El método de Euler para este problema viene dado por

  θω

n+1

=

  θω

n

+ h

  ω

− sen(θ)

n

ó

  θn+1 = θn + hωn

ωn+1  =  ωn − h sen(θn),

y para alcanzar el tiempo final  tf  = 10 utilizando un paso de integración  h  = 1/10deberemos repetir el algoritmo N  = 10/h = 100 veces. Los resultados obtenidos semuestran en la Figura 4.2 (la trayectoria exacta se corresponde con la línea conti-nua, la del modelo linealizado (sen(θ)

≈θ) con línea discontinua, y los resultados

del método se corresponden con los cuadrados). Repetimos el mismo experimentotomando ahora  h  = 1/20 (el algoritmo se aplica  N   = 10/h  = 200  veces, esto es,duplicamos el número de evaluaciones). Los resultados se corresponden con loscírculos, donde se aprecia: (i ) el error cometido va creciendo según se avanza en laintegración y; (ii ) si utilizamos un paso más pequeño podemos obtener mayor pre-cisión a costa de una mayor cantidad de cálculos. Se aprecia que el error se reduceaproximadamente a la mitad cuando dividimos por dos el paso de integración,como corresponde a un método de primer orden.

4.3 Método del desarrollo en serie de Taylor

El método del desarrollo en serie de Taylor es un método de un paso. Suponiendoque la solución,  y  =  y(t), admite desarrollo en serie de Taylor en un entorno delpunto  t =  t0, la solución de la ecuación diferencial en  t1  se puede escribir

y(t1) = y(t0 + h) = y(t0) + y(t0)h + y(t0)h2

2!  + · · · + yn)(t0)

hn

n!  + · · ·  ,

105

Page 107: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 107/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

−2 −1 0 1 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

θ

    ω    =       d      θ       /       d       t

Figura 4.2:  Método de Euler aplicado al problema del Ejemplo 4.3.

donde los coeficientes pueden ser calculados a partir de la ecuación diferencial.Tendremos

y(t0) =   y0,

y(t0) =   f (t0, y0),

y(t0) =

∂f 

∂t  + ∇f 

dy

dt

(t0,y0)

= (f t + f yf )|(t0,y0) ,

donde f y  = ∇f  (esto es,  (∇f )ij  =   ∂f i∂yj ).

De esta forma, sucesivamente, pueden obtenerse las derivadas de y  en (t0, y0). Porlo tanto, si consideramos el desarrollo de Taylor hasta orden 2 en  h, obtenemos

y(t1) =   y0 + f (t0, y0)h +  1

2!h2 (f t + f yf )|(t0,y0) + O(h3),   (4.6)

donde denotamos por O(h3)   a los siguientes términos del desarrollo que seránproporcionales a potencias de  h  iguales o superiores a 3. En este caso, podemosaproximar  y(t1) por y1

y1   =   y0 + f (t0, y0)h + 12

h2 (f t + f yf )|(t0,y0) .   (4.7)106

Page 108: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 108/250

4.3 Método del desarrollo en serie de Taylor 

Una vez obtenido y1, calculamos y2  sustituyendo en la expresión (4.7),  t0  por  t1  ey0  por el valor y1  que hemos obtenido. El método iterativo, consiste en seguir este

proceso obteniéndose para la aproximación  n + 1,

yn+1   =   yn + f (tn, yn)h + 1

2h2 (f t + f yf )|(tn,yn)   .

Vemos que el método de Euler puede considerarse también como el método deTaylor a primer orden.

Ejemplo 4.4  Construir los métodos de Taylor de orden 1 y orden 2, para el pro-blema de valor inicial 

y  = y − t

2

+ 1   ,   0 ≤ t ≤ 2   , y(0) = 0.5   .   (4.8)

Solución:El método de Taylor de orden 1 (o método de Euler) es

yn+1  =  yn + hy (tn) = yn + hf  (tn, yn)   .

Para el problema (4.8),

yn+1  =  yn + h yn

−t2n + 1 = (1 + h)yn

−ht2n + h .

El método de Taylor de orden 2 es de la forma

yn+1  =  yn + hy (ti) + 1

2h2y (ti)   .

Para el problema (4.8), se tiene

y   =   y − t2 + 1  ,

y   =   y − 2t =  y − t2

− 2t + 1  ,

y, por tanto, el método de Taylor de orden 2 es

yn+1  =  yn + h

yn − t2n + 1

+ 1

2h2

yn − t2n − 2tn + 1

  .

Este problema tiene como solución analítica

y(t) = 1 −  1

2 et +2t + t2 ,

y nos permite comprobar el error cometido por el método.  

107

Page 109: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 109/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Como puede observarse, el proceso a seguir en el método del desarrollo de Taylores, en general, costoso desde el punto de vista de los cálculos que hay que realizar.

Puede resultar interesante su aplicación cuando la función  f (t, y) admita derivadasparciales respecto de   t   e   y   que sean fáciles de calcular como son las funcionespolinómicas, en cuyo caso las derivadas sucesivas se calcularán fácilmente y seanularán a partir de cierto término. En resumen, este método permite aumentarindefinidamente la precisión tomando muchos términos del desarrollo de Taylor,siempre a costa de aumentar también el esfuerzo computacional.

4.4 Métodos de Runge-Kutta

Como ya hemos comentado, el método del desarrollo en serie de Taylor es compu-tacionalmente costoso debido, sobre todo, a la complicación creciente de las de-rivadas de  f . Los métodos de Runge-Kutta (RK) evitan este cálculo mediante laevaluación de f  en uno o varios puntos auxiliares, elegidos adecuadamente, de for-ma que el desarrollo en serie que se obtiene se ajuste al desarrollo de Taylor conuna aproximación mejor que la del método de Euler.

Para introducir los métodos RK es interesante empezar por la siguiente ecuaciónescalar

y  =  f (t), y(0) = y0,

cuya solución trivial es  y(t) = y0 +  t0  f (τ ) dτ , o bien, para un paso de integración

y(tn+1) = y(tn) +

   tn+1tn

f (τ ) dτ, n = 0, 1, . . . .

Como vimos en el capítulo anterior, para  h   =   tn+1 − tn  podemos considerar laaproximación    tn+1

tn

f (τ ) dτ   hs

l=1

blf (tn + clh),

donde los bl son los pesos y los cl son los correspondientes nodos del método elegido.Por tanto, tenemos el siguiente método numérico para aproximar la solución

yn+1 = yn + hs

l=1

blf (tn + clh).

El siguiente paso es ver si es posible generalizar este procedimiento para resolvernuestra EDO,

y = f (t, y).

108

Page 110: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 110/250

4.4 Métodos de Runge-Kutta 

Integrando ambas partes de la igualdad sobre el intervalo  t ∈ [tn, tn+1] se tiene

   tn+1tn

y(t) dt =    tn+1tn

f (t, y(t)) dt ,

esto es, la solución se puede escribir formalmente como

y(tn+1) = y(tn) +

   tn+1tn

f (t, y(t)) dt,

por lo que podemos utilizar la aproximación

yn+1 = yn + hs

l=1

blf (tn + clh, y(tn + clh)).   (4.9)

El problema de utilizar este método radica en que los valores   y(tn  + clh), l   =1, . . . , s, no son conocidos.

Los métodos RK resuelven este problema y dan aproximaciones a los valores dey(tn + clh), l = 1, . . . , s, para conseguir que el método final sea del orden deseado.Los métodos RK se clasifican en métodos explícitos e implícitos y a continuaciónpresentamos algunos de los más sencillos de cada familia.

4.4.1 Métodos RK explícitos

Un método RK explícito de  s  etapas viene dado (para el caso particular en quec1  = 0) por la siguiente forma recursiva de ir realizando los cálculos

k1   =   f (tn, yn),

k2   =   f (tn + c2h, yn + ha2,1k1),

k3   =   f (tn + c3h, yn + h(a3,1k1 + a3,2k2)),

.

..

ks   =   f 

tn + csh, yn + h

s−1j=1

as,jkj

,

yn+1   =   yn + hs

l=1

blkl.   (4.10)

Como veremos, los parámetros   ai,j   junto con los   bi, ci   deben de elegirse de talmanera que   yn+1   sea una buena aproximación a la solución. Para ello, debensatisfacer un sistema ecuaciones algebraicas polinómicas no lineales y cuya solución

puede ser bastante compleja para métodos de órdenes altos con muchas etapas.109

Page 111: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 111/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Por ejemplo, el método de Euler se puede considerar también como un métodoRK de primer orden de una sola etapa dado por

k1   =   f (tn, yn),

yn+1   =   yn + hk1.   (4.11)

Veamos cómo es posible desarrollar métodos de Runge-Kutta de orden 2.

Método del punto medio: Utilizando el desarrollo de Taylor, tenemos

y (tn+1) =   y (tn) + hy (tn) + h2

2 y (tn) +

 h3

3! y (ξ )

=   y (tn) + hf  (tn, y (tn)) +

 h2

2  f  (tn, y (tn)) +

 h3

3! y (ξ )=   y (tn) + hf  (tn, y (tn))

+h2

2

∂f 

∂t  (tn, y (tn)) +

 ∂f 

∂y (tn, y (tn)) f  (tn, y (tn))

+

 h3

3! y (ξ )   ,

donde ξ  ∈]tn, tn+1[.

Por otra parte, se puede buscar un método de la forma

y (tn+1) = y (tn) + ha1f  (tn + α, y (tn) + β )   ,

que tenga el mismo error de truncamiento que el método de Taylor de segundoorden. Como

a1f  (tn + α, y (tn) + β ) ≈ a1f  (tn, y (tn))+a1α∂f 

∂t  (tn, y (tn))+a1β 

∂f 

∂y (tn, y (tn))   ,

para tener el mismo error de truncamiento se ha de cumplir

1 = a1   ,  h

2  = a1α ,

  h

2f  (tn, y (tn)) = a1β ,

o sea,

a1  = 1 , α =

 h

2   , β  =

 h

2 f  (tn, y (tn))   .

Obtenemos de esta forma el  método del punto medio

yn+1   =   yn + hf 

tn +

 h

2, yn +

 h

2f  (tn, yn)

  .

También se le conoce como algoritmo de Runge o primera fórmula de Runge. Estemétodo se puede reescribir siguiendo el esquema (4.12) como sigue

k1   =   f  (tn, yn) ,

k2   =   f  (tn + h/2, yn + hk1/2) ,yn+1   =   yn + hk2   ,110

Page 112: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 112/250

4.4 Métodos de Runge-Kutta 

esto es, se corresponde con el caso en que

s = 2, a2,1  =

 1

2 , b1  = 0, b2  =

 1

2 , c1  = 0, c2  =

 1

2 .

Como vemos, el método necesita evaluar la función  f  dos veces en cada paso deintegración, por lo que requiere de más operaciones que en el caso del método deEuler. Por otro lado, este coste adicional se compensa porque el método suele serbastante más preciso. Tiene un error de truncamiento O

h3

 y un error globalO

h2

.

Otra posible elección del método numérico es

yn+1  =  yn + h (a1f  (tn, yn) + a2f  (tn + α, yn + β ))   .

El parámetro adicional que se introduce permite la posibilidad de construir muchosmétodos de Runge-Kutta. Para que el error de truncamiento sea O

h3

se obtienenlas siguientes relaciones,

a1 + a2  = 1,  h

2  = a2α,

  hf  (tn, yn)

2  = a2β .

Dos de las posibles opciones se corresponden con los siguientes métodos.

Método de Euler modificado. Se obtiene tomando   a1

  =   a2

  =   1

2,   α   =   h,

β  = hf  (tn, yn)

yn+1   =   yn + h

2 (f  (tn, yn) + f  (tn + h, yn + hf  (tn, yn)))   ,

que es equivalente al siguiente algoritmo

k1   =   f  (tn, yn) ,k2   =   f  (tn + h, yn + hk1) ,yn+1   =   yn +   h

2 (k1 + k2) .

esto es, se corresponde con el caso

s = 2, a2,1  = 1, b1  =  b2  = 1

2, c1  = 0, c2  = 1.

También requiere de dos evaluaciones de la función  f  por paso y tiene un error detruncamiento O

h3

 y un error global O h2

.

Método de Heun. Se corresponde con la siguiente elección de los parámetros:a1  =   1

4 ,  a2  =   34  y  α =   2

3h y  β  =   2

3hf  (tn, yn)

yn+1   =   yn +  h4f  (tn, yn) + 3f tn + 23 h, yn + 23 hf  (tn, yn)   .

111

Page 113: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 113/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Su algoritmo esk1   =   f  (tn, yn) ,

k2   =   f  (tn + 2h/3, yn + 2hk1/3) ,yn+1   =   yn +   h4  (k1 + 3k2)   ,

esto es, se corresponde con el caso

s = 2, a2,1  = 2

3, b1  =

 1

4, b2  =

 3

4, c1  = 0, c2  =

 2

3,

que tiene un error de truncamiento O h3

 y un error global O h2

.

Método   estándard   Runge-Kutta de orden 4. Es posiblemente el métodoRunge-Kutta más conocido y utilizado porque mantiene un buen balance entre el

coste del método y la precisión que se consigue con el mismo. Es de orden 4 yrequiere de 4 evaluaciones por paso. El método viene dado por:

k1   =   f  (tn, yn) ,k2   =   f  (tn + h/2, yn + hk1/2) ,k3   =   f  (tn + h/2, yn + hk2/2) ,k4   =   f  (tn + h, yn + hk3) ,yn+1   =   yn +   h

6 (k1 + 2k2 + 2k3 + k4)   ,

en el que el error de truncamiento es O

h5

y el error global del método es O

h4

.

4.4.2 Métodos RK implícitos

Un método RK implícito de s etapas viene dado por el siguiente esquema implícito

ki   =   f 

tn + cjh, yi + h

sj=1

ai,jkj

, i = 1, . . . , s ,

yn+1   =   yn + hs

i=1

biki.   (4.12)

El método es explícito si  ai,j  = 0, j ≥ i e implícito en caso contrario. Algunos delos métodos de primer y segundo orden más utilizados son:

Método de Euler implícito. Viene dado por el esquema

yn+1  =  yn + hf (tn+1, yn+1).   (4.13)

o equivalentemente

k1   =   f (tn + h, yn + hk1),

yn+1   =   yn + hk1,   (4.14)112

Page 114: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 114/250

4.5 Métodos multipaso

que es un método de primer orden.

Este resultado se puede ver del modo siguiente. Si multiplicamos por h  la primerade las ecuaciones obtenemos

k1  =  f (tn + h, yn + hk1),

y si ahora sumamos  yn  a las dos partes de la ecuación

yn + k1  =  yn + f (tn + h, yn + hk1).

Tomando  yn+1 = yn + hk1  se obtiene la segunda de las ecuaciones.

Método del trapecio. Es un método de segundo orden que viene dado por el

esquema

yn+1  =  yn + h

2(f (tn, yn) + f (tn+1, yn+1)),   (4.15)

o equivalentemente

k1   =   f (tn, yn),

k2   =   f (tn + h, yn + h

2(k1 + k2)),

yn+1   =   yn + h

2(k1 + k2).   (4.16)

4.5 Métodos multipaso

Los métodos de Euler y de Runge-Kutta que se han expuesto son métodos de unpaso. Esto es, para calcular la aproximación yn+1 de  y (tn+1), hacen uso sólamentede la aproximación  yn. Se podría mejorar el funcionamiento de los métodos si alcalcular la aproximación  yn+1, se tuviera en cuenta las aproximaciones evaluadaspreviamente,   yn, yn−1, . . . , yn−k. Los métodos que hacen uso de estas aproxima-

ciones se llaman métodos multipaso.

Definicion 4.3 (Método Lineal Multipaso (MLM))   Es un método multipa-so yn+1 = ψh(t0, y0, . . . , tn+1, yn+1), donde  ψh  es una transformación lineal en las yk  y la función  f  evaluada en diferentes puntos.

Suponiendo que   yn, yn+1, . . . , yn+s−1, s ≥   0  son conocidos, la forma general derepresentar los MLM es:

s

l=0

ρlyn+l  = hs

l=0

σlf (tn+l, yn+l), n = 0, 1, 2, . . .   (4.17)

113

Page 115: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 115/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

donde suponemos que  ρs = 0 y, por tanto, podemos tomar  ρs = 1, donde ademásse debe cumplir que

sl=0 ρl  = 0. Diremos que el esquema (4.17) es un método de

s pasos. Obsérvese que si  σs = 0 entonces el método es explícito, siendo implícitoen caso contrario.

La principal peculiaridad de estos métodos es que inicialmente sólo conocemos y0,y si  s ≥ 2  entonces nos hace falta conocer también  y1, . . . , ys−1  para empezar lasiteraciones. Estos valores se pueden obtener utilizando, por ejemplo, un métodoRK explícito.

Veamos cómo obtener algunos de estos métodos. Partimos del problema de valorinicial

dy

dt

  = f (t, y) , t0 ≤

t

≤tn.   (4.18)

Integrando en el intervalo  [tn, tn+1], tenemos

y (tn+1) − y (tn) =

   tn+1tn

f  (t, y(t)) dt .   (4.19)

Supongamos que conocemos las aproximaciones a la solución del problema (4.18),yj0 , yj1 , . . . , yjk  correspondientes a  tj0 , tj1 , . . . , tjk , y construimos el polinomio in-terpolador de Lagrange  P k(t) que pasa por  (tj0 , f j0) , (tj1 , f j1) , . . . , (tjk , f jk),

P k(t) =k

l=0

Lk,l(t)f jl   ,

donde f n ≡ f (tn, yn). A continuación, se sustituye el problema (4.19) por la apro-ximación

yn+1 = yn +

   tn+1tn

P k(t) dt =  yn +k

l=0

f jl

   tn+1tn

Lk,l(t) dt .

Llamandoαk,l  =

   tn+1tn

Lk,l(t) dt ,

se obtienen los métodos multipaso o métodos de Adams

yn+1  =  yn +k

l=0

αk,lf jl   .   (4.20)

Ejemplo 4.5  Obtener el método de dos pasos que pasa por  yn,  yn−1  y el métodode tres pasos que pasa por  yn,  yn

−2.

114

Page 116: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 116/250

4.5 Métodos multipaso

Solución:

En primer lugar construimos el polinomio interpolador que pasa por  (tn−1, f n−1),y  (tn, f n),

P 1(t) =  t − tntn−1 − tn

f n−1 +  t − tn−1tn − tn−1

f n   .

El método se obtiene calculando las siguientes integrales

yn+1   =   yn +  f n−1

tn−1 − tn

   tn+1tn

(t − tn) dt +  f n

tn − tn−1

   tn+1tn

(t − tn−1) dt

=   yn +  f n−1

2 (tn−1 − tn)

 (tn+1

−tn)

2

+  f n

2 (tn − tn−1)

(tn+1 − tn−1)

2 − (tn − tn−1)2

  .

Si los instantes tj están igualmente espaciados, con un paso temporal  h (tn+1−tn =tn − tn−1  = h) se tiene el método

yn+1 = yn + h

2 (3f n − f n−1)   ,   (4.21)

que requiere de las condiciones inicialesy0  =  α0   , y1   =   α1 .

Repitiendo los mismos pasos con el polinomio interpolador que pasa por (tn−2, f n−2),y  (tn, f n),

P 1(t) =  t − tntn−2 − tn

f n−2 +  t − tn−2tn − tn−2

f n   ,

y calculando las integrales, se obtiene el método

yn+1 = yn +  h4

 (5f n − f n−2)   ,   (4.22)

que requiere de las condiciones iniciales

y0  = α0   , y1   =   α1   , y2   =   α2 .

En el estudio de estos métodos consideraremos que los instantes tj están igualmente

espaciados, con un paso temporal  h, esto es,  tj  = t0 + jh. Se distinguen dos tiposde métodos: explícitos e implícitos. Los métodos explícitos  calculan yn+1 haciendo115

Page 117: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 117/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

uso de la función f  evaluada instantes anteriores conocidos. Los métodos multipasoexplícitos se llaman también métodos de  Adams-Bashforth . El método (4.21) se

conoce como el método de Adams-Bashforth de dos pasos, siendo de segundoorden. Métodos de orden k > 2 se pueden obtener de manera similar haciendo usodel polinomio interpolador que pasa por (tn, f n), . . . , (tn−k+1, f n−k+1), obteniendo,por ejemplo, los métodos siguientes:

Método de Adams-Bashforth de tres pasos

y0   =   α0   , y1   =   α1   , y2   =   α2   ,

yn+1   =   yn +  h

12 (23f n − 16f n−1 + 5f n−2)  ,

que tiene un error local O h4.

Método de Adams-Bashforth de cuatro pasos

y0   =   α0   , y1   =   α1   , y2   =   α2   , y3   =   α3   ,

yn+1   =   yn +  h

24 (55f n − 59f n−1 + 37f n−2 − 9f n−3) ,

que tiene un error local O

h5

.

A los métodos multipaso implícitos se les llama métodos de  Adams-Moulton . Pa-ra el cálculo de   yn+1, estos métodos hacen uso de   f n+1. Estos métodos se ob-tienen de manera similar haciendo uso del polinomio interpolador que pasa por(tn+1, f n+1), (tn, f n), . . . , (tn−k+1, f n−k+1). Así, algunos de estos métodos son:

Método de Adams-Moulton de un paso.   Supongamos que se conocen lasaproximaciones   yn,   yn+1   de un problema de la forma (4.18). Si construimos elpolinomio interpolador que pasa por  (tn, f n), y  (tn+1, f n+1),

P 1(t) =  t − tn+1

tn−

tn+1f n +

  t − tntn+1

−tn

f n+1   ,

queda el método numérico

yn+1 = yn + h

2 (f n + f n+1)   ,

que tiene un error local O h3

. Este método es conocido como el método trape-zoidal, aunque se corresponde también con un método RK implícito de orden 2.

116

Page 118: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 118/250

4.5 Métodos multipaso

Método de Adams-Moulton de dos pasos

y0   =   α0   , y1  =  α1   ,

yn+1   =   yn +  h

12 (5f n+1 + 8f n − f n−1)  ,

que tiene un error local O h4

.

Método de Adams-Moulton de tres pasos

y0   =   α0   , y1   =   α1   , y2   =   α2   ,

yn+1   =   yn +  h

24 (9f n+1 + 19f n − 5f n−1 + f n−2) ,

que tiene un error local O h5

.

Método de Adams-Moulton de cuatro pasos

y0   =   α0   , y1   =   α1   , y2   =   α2   , y3   =   α3   ,

yn+1   =   yn +  h

720 (251f n+1 + 646f n − 246f n−1 + 106f n−2 − 19f n−3)  ,

que tiene un error local O

h6

.

Métodos predictor-corrector 

En la práctica, los métodos multipaso implícitos no se usan en solitario, más biense utilizan para mejorar las aproximaciones obtenidas por los métodos explícitos.La combinación de una técnica explícita con una implícita se llama método depredicción y corrección o método predictor-corrector. Se suele tomar un métodoexplícito de k etapas y orden k como predictor  combinado con un método implícitode k etapas y orden  k + 1. Por ejemplo, el método predictor-corrector de 3 etapasviene dado por:

y0   =   α0   , y1  = α1   , y2  = α2   ,

y[p]n+1   =   yn +

  h

12 (23f n − 16f n−1 + 5f n−2) ,

yn+1   =   yn +  h

24

9f 

[p]n+1 + 19f n − 5f n−1 + f n−2

,

donde  f [p]n+1   =  f (tn+1, y

[p]n+1). Esto es, con el método explícito hacemos una esti-

mación del valor de  yn+1, que se denota por y [p]n+1 y que es utilizado en la ecuación

implícita para hacerla explícita.

117

Page 119: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 119/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

4.6 Ecuaciones rígidas

Los métodos numéricos para la aproximación de la solución de problemas de valoresiniciales tienen fórmulas de error que incluyen una derivada de orden superior dela solución de la ecuación diferencial. Si la derivada de la solución se puede acotarpor una constante, entonces el error del método numérico se puede mantener bajocontrol. Hay ciertos problemas en los que el valor de la derivada se hace grande yel error del método puede dominar los cálculos a medida que crece el número deiteraciones. A este tipo de problemas se les llama  problemas rígidos .

Ejemplo 4.6  Considerar el problema de valores iniciales 

y1   = 9y1 + 24y2 + 5 cos(t) − 1

3 sen(t)   , y1(0) =

 4

3   ,

y2   =   −24y1 − 52y2 − 9cos(t) + 1

3 sen(t)   , y2(0) =

 2

3  .

Comparar la solución exacta con la solución numérica obtenida con el RK explícitode 4 etapas para  h = 0.1 y  h = 0.05

Solución:La solución analítica del problema es

y1(t) = 2 e−3t − e−39t + 13

 cos(t) ,

y2(t) =   − e−3t +2 e−39t −1

3 cos(t)  .

Si se usa un método de Runge-Kutta de 4 pasos para calcular la solución delproblema, obtenemos los resultados aproximados   y1n  que se proporcionan en lasiguiente tabla

t y1(t)   y1n  (h = 0.05)   y1n  (h = 0.1)0.1 1.793061 1.712219   −2.6451690.2 1.423901 1.414070   −18.451580.3 1.131575 1.130523   −87.472210.4 0.909409 0.909276   −934.07220.5 0.738788 0.738751   −1760.016

118

Page 120: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 120/250

4.6 Ecuaciones rígidas

4.6.1 Estabilidad lineal

En el ejemplo anterior hemos visto que un método numérico puede tener un com-portamiento divergente u oscilante cuando el número de iteraciones tiende a in-finito. Por ello, va a ser interesante tratar de caracterizar en qué condiciones unmétodo dado se hace inestable.

Supongamos que se está interesado en utilizar un método numérico para estudiarla ecuación

dy

dt  = −λy , y (t0) = y0   ,

con  λ > 0. La solución analítica del problema es

y =  y0 e−λt

,que satisface y → 0 cuando  t → ∞. Si utilizamos el método de Euler

yn+1 = yn − λhyn   ,

se tiene la ecuación en diferencias

yn+1 − (1 − λh)yn = 0  .   (4.23)

Si probamos soluciones de la forma  yi = ri, tenemos

rn+1

− (1 − λh)rn

= 0  ,que da lugar a la ecuación característica

r − (1 − λh) = 0 ,

y la solución de la ecuación (4.23) es

yn = (1 − λh)ny0   .

Para que el método numérico sea estable se ha de satisfacer

|1 − λh| < 1  ,

o sea,

h <  2

|λ|   .

Si ahora repetimos el análisis utilizando el método de Euler implícito

yn+1  =  yn − λhyn+1   ,

se tiene la ecuación en diferencias

(1 + λh)yn+1 − yn = 0  .   (4.24)119

Page 121: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 121/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

La ecuación característica es

(1 + λh)r

−1 = 0  ,

y la solución de la ecuación (4.24) es

yn =

  1

1 + λh

n

y0   .

Para que el método numérico sea estable, se ha de cumplir 1

1 + λh

< 1   ⇒   1 + |λ|h > 1  ,

lo cual se satisface para cualquier valor de  h.

Este tipo de análisis se puede repetir para los métodos de Runge-Kutta y paralos métodos multipaso. Así, los métodos de Runge-Kutta y los métodos multipasoexplícitos tienen problemas para aproximar ecuaciones diferenciales rígidas a noser que se tomen valores de  h  muy pequeños lo cual hace que se necesite aplicarel método muchas veces para llegar al   tf , haciéndolos demasiado costosos. En lapráctica, para este tipo de ecuaciones se utilizan los métodos multipaso implícitos.La ecuación en diferencias que se obtiene con estos métodos para  yn+1   se puederesolver de forma sencilla para problemas lineales. En las ecuaciones diferencialesno lineales, para la obtención de  yn+1 se utilizan técnicas numéricas que permiten

la resolución de ecuaciones algebraicas no lineales, como el método del punto fijoo el método de Newton.

4.6.2 Métodos implícitos hacia atrás

Dada una ecuación diferencial ordinaria de primer orden, de la forma

dy

dt  = f (t, y(t)) ,

un método en diferencias hacia atrás (Backward) general de  m  pasos para la re-

solución de esta ecuación, consiste en una ecuación en diferencias de la formayn+1 + α1yn + α2yn−1 + · · · + αmyn+1−m = hβ 0f  (tn+1, yn+1)   ,   (4.25)

donde  β 0  >  0, y  α1, . . . , αm  se eligen de forma que se minimice el error de trun-camiento. En la Tabla 4.1 se muestran posibles elecciones de los parámetros delmétodo en diferencias hacia atrás para distintos valores de m. Es fácil comprobarque el caso  m = 1 coincide con el método de Euler implícito.

Con esta elección de los parámetros, los métodos Backward obtenidos son estables.Los métodos hacia atrás son métodos implícitos, y su utilización para la integra-

ción de un sistema de ecuaciones diferenciales implica la necesidad de resolver unsistema de ecuaciones lineales en cada paso de integración.120

Page 122: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 122/250

4.7 Ejercicios resueltos

Tabla 4.1:  Coeficientes de los métodos hacia atrás.

m β 0   α1   α2   α3   α41 1 - 12   2

3  − 4

313

3   611

  − 1811

911

  −   211

4   1225

  − 4825

3625

  − 1625

325

4.7 Ejercicios resueltos

Ejercicio 4.1  Dado el problema 

y = −xy +   1y2

  , y(1) = 1   .

Obtén un método de Taylor con error de truncamiento O h4

.

Solución:El método de Taylor se basa en el desarrollo

y (x0 + h) = y (x0) + hy (x0) +  1

2!h2y (x0) +

  1

3!h3y (x0) + O

h4

.

Se tiene que

y  = −xy +   1y2

  ,

la derivada segunda,

y   =  d

dt

−xy +

  1

y2

= −y − xy − 2

 1

y3y

=   −y + x2y −   x

y2 +

 2x

y2 −   2

y5  ,

y la derivada tercera

y = −y + 2xy + x2y −  1

y2  + 2x

y3 y +  2

y2 − 4x

y3 y + 10

y6 y   ,

que se reescribe como

y = xy + 2xy − x3y + x2

y2 −  2x2

y2  +

 2x

y6  +

 4x2

y2 −  4x

y5 −  10x

y5  +

 10

y8  ,

y, por tanto, el método queda

yn+1   =   yn + h

−xnyn +

  1

y2n

+

 1

2h2

−yn + x2

nyn + xn

y2n−   2

y5n

+ 16 h3 3xnyn − x3nyn + 3x

2

ny2n

−  14xny5n

+ 2xny6n

+ 10y8n   .

121

Page 123: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 123/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Ejercicio 4.2  Utiliza el método de Euler para obtener una solución del problema de valor inicial y = y , y(0) = 1   ,

en   t  = 0.4, utilizando  h  = 0.2  y  h  = 0.4. Suponiendo que el error que se comete con el método de Euler es proporcional a   h, estima el valor exacto de   y(0.4)   y compáralo con la solución analítica.

Solución:El método de Euler se escribe

yn+1 = yn + hf  (tn, yn)   .

Si hacemos el cálculo con  h = 0.4 se tiene

y1  = y0 + hy0  = 1.4 .

Si usamos  h = 0.2, se tiene

y1  =  y0 + h y0  = 1.2

y2  =  y1 + h y1  = 1.44

Para estimar la solución  y(0.4), supondremos que

y(0.4) − y∗ = α h ,

con  y∗  la solución obtenida con el método con paso  h, así

y(0.4) − 1.4 = α 0.4

y(0.4) − 1.44 = α 0.2

con lo que restando

0.04 = α(0.4 − 0.2) ⇒ α = 0.04

0.2  = 0.2

y, asíy(0.4) = 1.4 + 0.2 · 0.4 = 1.48

Por otro lado, la solución analítica es

Y   = y(0)et = et ⇒ y(0.4) = e0.4 = 1.4918.

122

Page 124: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 124/250

4.7 Ejercicios resueltos

Ejercicio 4.3  Utiliza los métodos de Euler y Euler modificado para resolver el problema de valor inicial 

y = x2 + y3 , y(1) = 1   .

Calcula  y(1.3) utilizando paso de integración  h = 0.1 y compara los resultados con la solución que proporciona  Matlab.

Solución:Recordemos que el método de Euler se escribe como

y0   =   y (t0)

yn+1   =   yn + hf  (tn, yn)

y el método de Euler modificado

y0   =   y (t0)

yn+1   =   yn + h

2 (f  (tn, yn) + f  (tn + h, yn + hf  (tn, yn)))

Así, si realizamos los cálculos con el método de Euler, se tiene

y1  = 1 + 0.1 12 + 13 = 1.2

 →y(1.1)

y2  = 1.2 + 0.1

(1.1)2 + (1.2)3

= 1.494  → y(1.2)

y3  = 1.494 + 0.1

(1.2)2 + (1.494)3

= 1.971  → y(1.3)

Con el método de Euler modificado

y∗1  = 1 + 0.1

12 + 13

= 1.2

y1  = 1 + 0.1

2

12 + 13

+

(1.1)2 + (1.2)3

= 1 + 0.05(2 + (1.1)

2

+ (1.2)

3

) = 1.2469 → y(1.1)

y∗2  = 1.2469 + 0.1((1.1)2 + (1.2469)3) = 1.5617

y2  = 1.2469 + 0.05((1.1)2 + (1.2469)3 + (1.2)2 + (1.5617)3) = 1.6668 → y(1.2)

y∗3  = 1.6668 + 0.1((1.2)2 + (1.6668)3) = 2.2739

y3  = 1.6668 + 0.05((1.2)2 + (1.6668)3 + (1.3)2 + (2.2739)3) = 2.6427 → y(1.3)

Estos resultados se pueden comparar con el resultado obtenido mediante la funciónode45 de  Matlab:  y(1.3) = 2.95738.  

123

Page 125: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 125/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Ejercicio 4.4  La función 

erf(x) =

  2

√ π    x0 e−

t2

dt ,

se puede ver como la solución del problema de valor inicial 

y =  2√ 

π e−x2 , y(0) = 0   .

Estima, utilizando el método de Euler con  h  = 0.1, los valores de  erf(0.1) y  erf(0.2).

Solución:Basta aplicar dos iteraciones del método de Euler,

y1   =   y0 + h f 0  = 0 + 0.1

  2√ 

π e0

= 0.1128 → erf(0.1)

y2   =   y1 + h f 1  = 0.1128 + 0.1

  2√ 

π e0.1

2

= 0.2245 → erf(0.1)

Los valores tabulados son:  erf(0.1) = 0.11246 y  erf(0.2) = 0.2227.  

Ejercicio 4.5  Resuelve numéricamente la siguiente ecuación diferencial 

  y = y − t2 + 1, t ∈ [0, 1]y(0) =   1

2

y compara con la solución exacta en  t = 1 sabiendo que ésta viene dada por 

y(t) = t2 + 2t + 1 −  et

2  ⇒   y(1) = 4 −  e

2 = 2.641

utilizando los siguientes métodos numéricos:

1. Método de Euler con paso de integración  h =   12   (utilizando dos pasos).

2. Método de Taylor de segundo orden con paso de integración  h  =   12

 (utilizandodos pasos).

3. Método de Euler modificado de segundo orden con paso de integración  h  =   12

(utilizando dos pasos).

4. Método de Runge-Kutta estándard de orden 4 y 4 pasos utilizando un pasode integración  h = 1 (un solo paso).

5. Método de predictor-corrector de dos pasos con paso de integración  h  =   12 .

Como solución del primer paso, utilizar la solución obtenida con el métodode Euler modificado de segundo orden.

124

Page 126: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 126/250

4.7 Ejercicios resueltos

Solución:De la ecuación tenemos que

f (t, y) = y − t2 + 1,

y de la condición inicial,  t0  = 0,  y0  =   12 .

1. Método de Euler con  h =   12 .

Como t = 1 y  h =   12 , necesitamos dos pasos de integración, es decir,  y(1) ≈

y2. En el primer paso de integración, obtenemos

y1  =  y0 + hf (t0, y0) = 1

2 +

 1

2 1

2 − 0 + 1 =

 1

2 +

 3

4 =

 5

4 .

Para el segundo paso, como t1  = t0 + h =   12 , tenemos

y2  = y1 + hf (t1, y1) = 5

4 +

 1

2

5

4 −

1

2

2

+ 1

=

 5

4 + 1 =

 9

4 = 2.25 .

Por tanto, la solución con el método de Euler es

y2  = 2.25

Comparando con la solución exacta, tenemos que el error absoluto cometidoesError = |2.641 − 2.25| = 0.391 .

2. Método de Taylor de segundo orden con  h =   12 .

El método viene dado por

yn+1 = yn + hf  + h2

2

∂f 

∂t  +

 ∂f 

∂yf 

,

con  f ,  ∂f ∂t   y   ∂f ∂y  evaluadas en  tn  y donde

∂f 

∂t  = −2t,

  ∂f 

∂y  = 1.

Necesitamos dos pasos. Para el primer paso de integración utilizamos quey0 + hf (t0, y0) es  y1  del método de Euler calculado en el apartado a), así

y1   =   y0 + hf (t0, y0)

   5/4

+h2

2

∂f 

∂t (t0, y0) +

 ∂f 

∂y(t0, y0) f (t0, y0)

=   54 + 1222

0 + 112 − 0 + 1 = 54 + 18 32 = 2316 .

125

Page 127: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 127/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

Segundo paso de integración (t1  = t0 + h = 1/2)

y2   =   y1 + h y1 − t21 + 1 + h2

2−2t1 + y1 − t21 + 1

=  23

16 +

 1

2

23

16 −

1

2

2

+ 1

+

12

22

−2

1

2 +

 23

16 −

1

2

2

+ 1

=  23

16 +

 1

2

23

16 −   4

16 +

 16

16

+

 1

8

23

16 −   4

16

=

  23

16 +

 35

32 +

  19

128 =

 343

128 = 2.679 .

Por tanto, la solución obtenida usando el método de Taylor es

y2  = 2.679

y el error absoluto cometido es

Error = |2.679 − 2.641| = 0.038 .

3. Método de Euler modificado con  h =   12

.

Necesitamos dos pasos. El primer paso del método viene dado por

k1   =   f (t0, y0) = y0 − t20 + 1 = 12 − 0 + 1 = 3

2,

k2   =   f (t0 + h, y0 + hk1) = (y0 + hk1) − (t0 + h)2 + 1

=

1

2 +

 1

2

3

2

1

2

2

+ 1 = 5

4 −  1

4 + 1 = 2,

y1   =   y0 + h

2(k1 + k2) =

 1

2 +

12

2

3

2 + 2

=

 1

2 +

 7

8 =

 11

8  .

El segundo paso de integración (t1  = t0 + h = 1/2) es

k1   =   f (t1, y1) = y1 − t21 + 1 = 11

8 −

1

2

2

+ 1 = 11

8 −  2

8 +

 8

8 =

 17

8  ,

k2   =   f (t1 + h, y1 + hk1) = (y1 + hk1) − (t1 + h)2 + 1

=

11

8  +

 1

2

17

8

− 1 + 1 =

 39

16,

y2   =   y1 + h

2(k1 + k2) =

 11

8  +

12

2

17

8  +

 39

16

=

 11

8  +

 73

64

=  88

64 + 73

64 = 161

64   = 2.516 .

126

Page 128: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 128/250

4.7 Ejercicios resueltos

Así, la solución obtenida usando el método de Euler modificado es

y2  = 2.516

y el error absoluto cometido es

Error = |2.516 − 2.641| = 0.125 .

4. Método de Runge-Kutta de orden 4 y 4 etapas,  h = 1.

Necesitamos un paso del método,

k1   =   f (t0, y0) = 3

2,

k2   =   f 

t0 +

 h

2, y0 +

 h

2k1

=

y0 +

 h

2k1

t0 + h

2

2

+ 1

=

1

2 +

 1

2

3

2

1

2

2

+ 1 = 5

4 −  1

4 + 1 = 2,

k3   =   f 

t0 +

 h

2, y0 +

 h

2k2

=

y0 +

 h

2k2

t0 + h

2

2

+ 1

=

1

2 +

 1

22

−  1

4 + 1 =

 9

4,

k4   =   f (t0 + h, y0 + hk3) = (y0 + hk3) − (t0 + h)2 + 1

=

1

2 +

 9

4

− 1 + 1 =

 11

4  ,

y1   =   y0 + h

6(k1 + 2k2 + 2k3 + k4) =

 1

2 +

 1

6

3

2 + 2 · 2 + 2

9

4 +

 11

4

=  1

2 +

 1

6

6

4 +

 16

4  +

 18

4  +

 11

4

=

 1

2 +

 51

54 =

 12

24 +

 51

24 =

 63

24

= 2.625 .

Por tanto, la solución obtenida usando el método de Runge-Kutta estándardde orden 4 y 4 etapas es

y2  = 2.625

y el error absoluto cometido es

Error = |2.625 − 2.641| = 0.016 .

5. Método predictor-corrector de dos pasos,  h = 1/2.

Necesitamos dos pasos. Como nos indica el enunciado del ejercicio, el primer

paso lo calculamos con el método de Euler modificado de segundo orden127

Page 129: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 129/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

(apartado c)), luego

y0  =

 1

2 , y1  =

 11

8   ,

f 0  =  f (t0, y0) = 3

2,

f 1  =  f (t1, y1) = y1 − t21 + 1 = 11

8 −  1

4 + 1 =

 11

8 −  2

8 +

 8

8 =

 17

8  .

Aplicamos el predictor para el segundo paso

y

[p]

2   =   y1 +

 h

2 (3f 1 − f 0) =

 11

8   +

12

2 3

17

8  − 3

2=

  11

8  +

 1

4

51

8 −  12

8

=

 44

32 +

 39

32 =

 83

32,

y el corrector

y2   =   y1 + h

2

t2, y[p]2

+ f 1

=

 11

8  +

 1

4

y[p]2   − t22 + 1

+

 17

8

=  11

8  +

 1

4 83

32 − 1 + 1 +

 17

8 = 11

8  +

 1

4 83

32 +

 68

32=

  176

128 +

 151

128 =

 327

128 = 2.555 .

La solución con el método predictor-corrector de dos pasos es

y2  = 2.555

y el error absoluto cometido es

Error = |2.555 − 2.641| = 0.086 .

Ejercicio 4.6  Obtén la solución formal del esquema de Runge-Kutta de 4 pasos para el problema 

y = λy , y (t0) = y0   .

128

Page 130: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 130/250

4.7 Ejercicios resueltos

Solución:El esquema de Runge-Kutta de 4 pasos se escribe:

k1   =   f  (tn, yn) = λyn,

k2   =   f 

tn +

 h

2, yn + h

 k1

2

= λ

yn + h

k12

=   λyn +

 1

2hλ2yn,

k3   =   f 

tn +

 h

2, yn + h

 k2

2

= λ

yn + h

k22

=   λyn +

 1

2hλ2yn +

 1

4h2λ3yn,

k4   =   f  (tn + h, yn + h k3n) = λ (yn + hk3)

=   λyn + hλ2yn + 1

2h2λ3yn +

 1

4h3λ4yn.

Así, el esquema queda

yn+1   =   yn + h

6 (k1 + 2k2 + 2k3 + k4)

=   yn + 1

6 hλyn + 2hλyn + h2λ2yn + 2hλyn

h2λ2yn + 1

2h3λ3yn + hλyn + h2λ2yn +

 1

2h3λ3yn +

 1

4h4λ4yn

=

1 + hλ +

 1

2h2λ2 +

 1

6h3λ3 +

  1

24h4λ4

yn   .

Se obtiene una expresión cerrada para la solución del esquema,

yn =

1 + hλ +

 1

2h2λ2 +

 1

6h3λ3 +

  1

24h4λ4

n

y0   .

Ejercicio 4.7  Obtén el método de Adams-Moulton 

yn+1  =  yn +  h

24 (9f n+1 + 19f n − 5f n−1 + f n−2) .

Solución:Hemos visto que la solución de la ecuación diferencial

y  =  f (t, y(t)),129

Page 131: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 131/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

se puede escribir como

y(tn+1) = y(tn) +    tn+1tn

f (t, y(t)) dt.

Construimos el polinomio interpolador basado en la siguiente tabla

t tn−2   tn−1   tn   tn+1

f f n−2   f n−1   f n   f n+1

usando el método de Lagrange

L3,0(t) =  (t − tn−1) (t − tn) (t − tn+1)

(tn−2 − tn−1) (tn−2 − tn) (tn−2 − tn+1)

=   −   1

6h3 (t − tn−1) (t − tn) (t − tn+1) ,

L3,1(t) =  (t − tn−2) (t − tn) (t − tn+1)

(tn−1 − tn−2) (tn−1 − tn) (tn−1 − tn+1)

=  1

2h3 (t − tn−2) (t − tn) (t − tn+1) ,

L3,2(t) =  (t − tn−2) (t − tn−1) (t − tn+1)

(tn − tn−2) (tn − tn−1) (tn − tn+1)

=   −   1

2h3 (t − tn−2) (t − tn−1) (t − tn+1) ,

L3,3(t) =  (t − tn−2) (t − tn−1) (t − tn)

(tn+1 − tn−2) (tn+1 − tn−1) (tn+1 − tn)

=  1

6h3 (t − tn−2) (t − tn−1) (t − tn) .

Así, el polinomio interpolador es

P 3(t) = f n−2L3,0(t) + f n−1L3,1(t) + f nL3,2(t) + f n+1L3,3(t),

y hay que calcular las integrales

I 1  =

   tn+1tn

L3,0(t) dt = −   tn+1tn

1

6h3 (t − tn−1) (t − tn) (t − tn+1) dt

Para hacer esta integral se hace el cambio  t − tn = z, con lo que

I 1  =    h0

−   16h3 (z + h)z(z − h) dz =   h24 .

130

Page 132: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 132/250

4.7 Ejercicios resueltos

De la misma manera,

I 2   =    tn+1tn L3,1(t) dt =    tn+1

tn

1

2h3  (t − tn−2) (t − tn) (t − tn+1) dt

=

   h0

  1

2h3

(z + 2h)z(z − h) dz = −5h

24,

I 3   =

   tn+1tn

L3,2(t) dt =

   tn+1tn

−1

2h3 (t − tn−2) (t − tn−1) (t − tn+1) dt

=

   h0

−1

2h3

(z + 2h)(z + h)(z − h) dz =

 19h

24  ,

I 4   =    tn+1

tn L3,3(t) dt =    tn+1

tn

1

6h3  (t − tn−2) (t − tn−1) (t − tn) dt

=

   h0

  1

6h3

(z + 2h)(z + h)z  dz =

 9h

24,

con lo que se tiene el esquema

yn+1  =  yn +  h

24 (9f n+1 + 19f n − 5f n−1 + f n−2) .

Ejercicio 4.8  Determina los valores  A,  B  y  C  del método numéricoyn+1 = yn + h (Af n + Bf n−2 + Cf n−4)   .

Comprueba, mediante un ejemplo, que el método proporciona los valores exactos al problema 

y = 1 + t + t2 , y(0) = 0   .

Solución:Se construye el polinomio interpolador basado en la tabla

t tn−4   tn−2   tnf f n−4   f n−2   f n

así,

L2,0(t) =  (t − tn−2) (t − tn)

(tn−4 − tn−2) (tn−4 − tn)  ,

L2,1(t) =  (t − tn−4) (t − tn)

(tn−2 − tn−4) (tn−2 − tn)  ,

L2,2(t) =   (t − tn−4) (t − tn−2)(tn − tn−4) (tn − tn)   ,

131

Page 133: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 133/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

y el polinomio interpolador es:

P 2(t) = f n−4L2,0(t) + f n

−2l2,1(t) + f nL2,2(t)  .

Así, hemos de calcular   tn+1tn

L2,0(t) dt   =

   tn+1tn

(t − tn−2) (t − tn)

(tn−4 − tn−2) (tn−4 − tn)  dt

=  1

(−2h)

1

(−4h)

   h0

(z + 2h)z  dz =  1

8h2

4h3

3  =

 h

6  ,

   tn+1

tn

L2,1(t) dt   =    tn+1

tn

(t − tn−4) (t − tn)

(tn−2 − tn−4) (tn−2 − tn)

  dt

=  1

2h

1

(−2h)

   h0

(z + 4h)z  dz = −   1

4h2

7h3

3  = −7h

12  ,   tn+1

tn

L2,2(t) dt   =

   tn+1tn

(t − tn−4) (t − tn−2)

(tn − tn−4) (tn − tn−2)  dt

=  1

4h

1

2h

   h0

(z + 4h)(z + 2h) dz = 34

24h =

 17h

12  .

Queda el método

yn+1  =  yn + h

1

6f n−4 −   7

12f n−2 +

 17

12f n

  .

Para el problemay = 1 + t + t2 , y(0) = 0  ,

integrando

y(t) = t + t2

2  +

 t3

3  ,

y, por tanto,

y(h) = h + h2

2  +

 h3

3  .

Con el método numérico

y1   =   h

1

6

1 − 4h + (−4h)2

−   7

12

1 − 2h + (−2h)2

+

 17

12

1 − 0h + (−0h)2

=   h + h2

2  +

 h3

3  .

132

Page 134: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 134/250

4.8 Ejercicios propuestos

4.8 Ejercicios propuestos

1. Escribe el algoritmo correspondiente al método de Euler aplicado al problemadel satélite.

2. Mediante el método de Euler:

a ) Halla  y(0.4) si

y  = y − x

y + x,

para la condición inicial y(0) = 1, y el paso  h = 0.1 .

b) Halla  y(0.4) si  y  = x + y, para la condición inicial  y(0) = 1, y el pasoh = 0.1 .

3. El modelo de Lotka-Volterra, también conocido como modelo depredador-presa o predador-presa, se suele utilizar para describir la evolución de dospoblaciones que interaccionan entre ellas como, por ejemplo, zorros (cuyapoblación denotamos por   z(t)) y conejos (cuya población denotamos porc(t)). Este sencillo modelo de evolución temporal viene dado por el siguientesistema de ecuaciones diferenciales no lineales y acopladas (tomando que lavariación de individuos es continua)

dc

dt

  =   c(1

−z),

dz

dt  =   z(c − 2).   (4.26)

a ) Comprueba que la siguiente función

I (c, z) = c − 2 log(c) + z − log(z) ,

es constante a lo largo de la solución, esto es,   dI dt   = 0.

b) Escribe el algoritmo correspondiente al método de Euler.

c ) Escribe el algoritmo correspondiente al método de Taylor de segundoorden.

4. Un proyectil de masa m  = 0.11 kg que ha sido disparado verticalmente haciaarriba con una velocidad inicial de v(0) = 8 m/s se ve frenado por la acción dela fuerza de la gravedad F g  = mg y la resistencia del aire F r  = −kv |v|, dondeg  = −9.8  m/s2, y  k  = 0.002 kg/m. La ecuación diferencial del movimientoes

mv = mg − kv |v|   .

Utilizando el método de Euler, determina la velocidad del cuerpo a los

0.1, 0.2, . . . , 1.0 s. Determina, usando h  = 0.1, el instante en el que el cuerpose detiene.133

Page 135: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 135/250

Capítulo 4. Métodos numéricos para problemas de valor inicial 

5. Utilizando los métodos de Runge-Kutta de Euler modificado y de Heun, hallael valor aproximado   y(0.6), de la función   y  definida mediante la ecuación

diferencial  y  =  x

2

+ y

2

, con el valor inicial  y(0) = 0 y el paso  h = 0.2 .6. Mediante el método de Runge-Kutta de 4 pasos:

a ) Halla   y(2)   si   x2y − xy   = 1   para la condición inicial   y(1) = 0, y elpaso  h  = 1. Comparar con la solución analítica exacta de la ecuación

diferencial,  y(x) = x2 − 1

2x  .

b) Halla  y(1)  si  4y   =  y2 + 4x2 para la condición inicial  y(0) = −1, y elpaso h = 0.5.

7. Aprovechando las tres primeras iteraciones realizadas, mediante Runge-Kutta4 pasos, obtén las mismas aproximaciones buscadas en los apartados  a ) yb) del problema anterior, aplicando el método de Adams-Bashforth  m = 3.Compara los resultados.

8. Utiliza el método Runge-Kutta de cuatro pasos para obtener la soluciónaproximada del problema

y  =  y3 + x3, y(0) = 0,

en  y(0.3) con un paso  h = 0.1.

9. Resuelve el problema del Ejemplo 4.3 utilizando el método de RK del puntomedio utilizando el paso de integración h =   2

10 y el método de RK de orden

4 utilizando el paso de integración   h   =   410

  y comparar los resultados conlos obtenidos con el método de Euler con paso  h  =   1

10   (todos los métodosrequieren del mismo mismo número de evaluaciones de la función).

10. Resuelve la ecuación del ejercicio 8 utilizando el método predictor-correctorde 2 etapas y tomando  y1  de la solución numérica obtenida con el métodoRunge-Kutta de cuatro pasos.

11. Considera el método implícito hacia atrás con  m  = 2 para resolver el PVI

y  = −10y + 10, y(0) = 2.

Obtén la aproximación en   t   = 2  tomando   h   =   12 ,   y0   = 2, y1   = 1.006, y

compara con la solución exacta  y(2) = 1 + e−20.

134

Page 136: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 136/250

Capítulo 5

Métodos numéricos para problemasde contorno

En este capítulo mostraremos distintos métodos numéricos para obtener solucionesaproximadas de problemas de contorno. Mientras que en los problemas de valoresiniciales las condiciones que determinan la solución del problema se imponen en unmismo punto (condiciones iniciales), en los problemas de contorno las condicionesse imponen en puntos separados.

Por ejemplo, para una ecuación diferencial ordinaria de segundo orden, un proble-ma de contorno es un problema de la forma

y =  f  (x,y,y)   , a ≤ x ≤ b ,

con las condicionesy(a) = α , y(b) = β .

Para obtener soluciones aproximadas de este tipo de problemas, en este capítuloutilizaremos métodos basados en diferencias finitas, y en el próximo capítulo semostrará cómo utilizar otras técnicas como los elementos finitos. Empezaremosestudiando el método de las diferencias finitas para EDOs lineales de segundoorden, lo cual nos permitirá sentar las bases para la utilización de las diferenciasfinitas en problemas de EDPs lineales con condiciones de frontera.

135

Page 137: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 137/250

Capítulo 5. Métodos numéricos para problemas de contorno

5.1 Diferencias finitas para EDOs con condiciones de

frontera

Por sencillez, analizaremos problemas lineales de segundo orden y con condicionesen la frontera para  y(a) e  y(b) (se podrían considerar también condiciones para laderivada, y (a) e  y(b) o combinaciones de ambas). Supongamos pues que se quiereobtener una solución aproximada del siguiente problema

y = p(x)y + q (x)y + r(x)  , a ≤ x ≤ b , y(a) = α , y(b) = β .

El primer paso consistirá en dividir el intervalo   [a, b]  en  N  + 1  subintervalos delmismo tamaño cuyos extremos son los nodos

xi = a + i∆x , i = 0, 1, . . . , N   + 1  ,

siendo ∆x = (b − a)/(N  + 1). En los  N  nodos interiores se ha de cumplir

y (xi) = p (xi) y (xi) + q (xi) y (xi) + r (xi)   ,   (5.1)

con  i = 1, 2, . . . , N  .

A continuación buscaremos aproximaciones de las derivadas evaluadas en los no-dos, y (xi) e  y (xi). Haciendo uso del desarrollo de Taylor vimos que

y (xi) =  1

∆x2 (y (xi−1) − 2y (xi) + y (xi+1)) + O

∆x2

  ,   (5.2)

y

y (xi) =  1

2∆x (y (xi+1) − y (xi−1)) + O

∆x2

  .   (5.3)

Sustituyento las aproximaciones (5.3) y (5.2) en (5.1) obtenemos en los nodosi = 1, . . . , N  , las ecuaciones

yi−1 − 2yi + yi+1∆x2   = p (xi) yi+1 − yi−1

2∆x  + q (xi) yi + r (xi)   .   (5.4)

Este sistema de ecuaciones se completa con las condiciones de contorno

y0  = α , yN +1 = β .   (5.5)

Las ecuaciones (5.4) se pueden expresar matricialmente de la forma

Ay =  b ,

136

Page 138: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 138/250

5.1 Diferencias finitas para EDOs con condiciones de frontera 

donde A es la matriz tridiagonal

A =

2 + ∆x2q (x1)   −1 +   ∆x2  p (x1) 0   · · ·   0

−1 −

  ∆x2  p (x2) 2 + ∆x2q (x2)

. . .   · · ·

...

0. . .

  . . .

.... . .

  . . .   0

. . .  . . .   −1 +   ∆x

2  p (xN −1)

0   · · ·   0   −1 −

 ∆x2  p (xN ) 2 + ∆x2q (xN )

(5.6)

y los vectores  y  y  b vienen dados por

y =

y1y2...

yN −1

yN 

, b = −∆x2

r (x1)r (x2)

...r (xN −1)r (xN )

+

1 +  ∆x2   p (x1)

α

0...0

1 −

 ∆x2  p (xN )

β

.   (5.7)

Por tanto, debemos resolver un sistema de ecuaciones lineales. Como la matriz  Aes tridiagonal (no simétrica) podemos hacer uso de la descomposición   LU   paraeste tipo de sistemas que es bastante eficiente y rápida.

Ejemplo 5.1  Resolver el siguiente problema de frontera mediante el método de diferencias finitas para  N  = 3 (esto es  ∆x = 1/(N  + 1) = 1/4)

y = 4y + 4x(e−2 −1)   ,   0 ≤ x ≤ 1   , y(0) = 0   , y(1) = 0.

Sabiendo que la solución exacta del problema es 

y(x) = e−2x − e2x

1 + e2  + (1 − e−2)x,

hallar el error máximo del método.

Solución:Con la discretización considerada tenemos 5 puntos: dos en la frontera y 3 interio-res, donde

x1  = ∆x = 1/4, x2  = 2∆x = 1/2, x3  = 3∆x = 3/4.

Nos construimos la matriz  A

A = 2 + ∆x2q (x1)   −1 +  ∆x

2  p (x1) 0

−1

− ∆x

2

  p (x2) 2 + ∆x2q (x2)  −

1 +  ∆x

2

  p (x2)0   −1 −  ∆x

2  p (x3) 2 + ∆x2q (x3)   ,

137

Page 139: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 139/250

Capítulo 5. Métodos numéricos para problemas de contorno

y los vectores

y = y1y2y3

  , b = −∆x2r (x1) + 1 +  ∆x

2   p (x1)α

−∆x2r (x2)−∆x2r (x3) +

1 −  ∆x

2  p (x3)

β 

  .

Identificamos las funciones

 p(x) = 0, q (x) = 4, r(x) = 4x(e−2 −1),

y el sistema a resolver es (considerando que  α =  β  = 0):

94

  −1 0−1   9

4  −1

0   −1  9

4

y1y2

y3

=

−   116(e−2 −1)

−18 (e−2 −1)

−  3

16(e−2

−1)

  ,

cuya solución representamos en la siguiente tabla. En la última fila mostramos lasolución exacta donde se aprecia la buena precisión obtenida.

xi   0 0.25 0.5 0.75 1yi   0 0.0907 0.1500 0.1387 0

y(xi) 0 0.0919 0.1521 0.1408 0

5.2 Diferencias finitas para problemas parabólicos

Vamos a estudiar ahora cómo aplicar el método de las diferencias finitas para laresolución numérica de una EDP parabólica (también llamada ecuación del calor ode difusión) con término fuente y condiciones de frontera variables. Estudiaremos elproblema unidimensional en una región de longitud  L. El problema viene descritopor

∂u

∂t   = a2

∂ 2u

∂x2  + F (x, t),

u(0, t) = f 0(t), u(L, t) = f L(t),u(x, 0) = u0(x),

x ∈ [0, L], t ≥ 0,   (5.8)

donde  a  es una constante que depende del medio en el que se propaga el calor,F (x, t)  es una fuente de calor que puede depender tanto de la posición como deltiempo y f 0(t), f L(t) son los valores de la temperatura que mantenemos controladaen los extremos, pudiendo variar en el tiempo.

Por sencillez, empezaremos viendo cómo resolver el problema numéricamente parael caso sin fuente, F   = 0, y posteriormente veremos cómo, modificando ligeramente138

Page 140: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 140/250

5.2 Diferencias finitas para problemas parabólicos

Figura 5.1:  Mallado para un problema parabólico.

el algoritmo, podemos incluir este término. Debemos recordar que la resoluciónanalítica de este problema se puede obtener utilizando separación de variables,pero el problema se complica de manera considerable al incluir condiciones defrontera variables y el término fuente.

El primer paso en la obtención de una aproximación numérica para resolver estaecuación es discretizar el tiempo y el espacio en intervalos equidistantes, t  =  n∆t,n = 0, 1, 2, . . . , N  t, y x =  x0+i∆x, i = 0, 1, . . . , N  x+1 (para la coordenada espacialtomamos  ∆x  =  L/(N x + 1)  de tal manera que haya  N x + 2  nodos de los cualesN x  son interiores y desconocidos mientras que los otros 2 son los nodos fronteraconocidos). Si representamos en el eje de ordenadas la coordenada espacial y enlas abcisas la temporal tendremos un mallado del espacio y el tiempo en el queconocemos la solución en tres de los lados y buscamos la solución en el interiordel mallado. La Figura 5.1 muestra con círculos blancos los nodos en los que lasolución es conocida y en círculos negros los nodos en los que vamos a buscar

soluciones aproximadas.

La derivada temporal la aproximamos por diferencias finitas de primer orden

∂u

∂t ≈  u(x, t + ∆t) − u(x, t)

∆t  + O (∆t)   ,

mientras que para la derivada espacial tomamos una aproximación de segundoorden

∂ 2u

∂x2 ≈  u(x − ∆x, t) − 2u(x, t) + u(x + ∆x, t)

∆x2  + O

∆x2

  .

Denotaremos por u

n

i  a las aproximaciones de la solución en los puntos del mallado,u (n∆t, x0 + i∆x), para i = 0, 1, . . . , N  x + 1, n = 0, 1, . . .139

Page 141: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 141/250

Capítulo 5. Métodos numéricos para problemas de contorno

Método de Euler explícito. Se corresponde con el siguiente esquema para apro-ximar la ecuación (5.8)

un+1i   − un

i

∆t  = a2 uni−1 − 2uni   + uni+1

∆x2  ,

o sea,un+1i   = un

i   + r

uni−1 − 2un

i   + uni+1

  ,

donde r  =   a2∆t∆x2 . Esta relación se puede escribir en forma matricial de manera más

compactaun+1 = (I  + rA)un + rbn ,   (5.9)

siendo I  la matriz identidad de dimensión  N x × N x  y donde

un =

un1un2

...unN x−1

unN x

, A =

2 11   −2 1

. . .

1   −2 11   −2

, bn =

f n00...0

f nL

.   (5.10)

Aquí hemos tenido en cuenta que  un0   = f n0   = f 0(tn), un

N x+1  =  f nL  = f L(tn). Vemosque  un es el vector solución correspondiente a la fila  n-ésima en el mallado de laFigura 5.1, esto es, avanzamos el cálculo fila a fila. Si las condiciones de fronterafueran nulas (b  = 0)  n  pasos del método se podrían escribir de forma compacta

como un = (I  + rA)nu0.   (5.11)

Es posible demostrar que los valores propios de la matriz  I  + rA  son:

σ(I  + rA) =

1 − 4r sen2

  πk

2N x + 2

  :   k = 1, . . . , N  x

.

Para garantizar la estabilidad del esquema explícito y que la solución numérica nocrezca indefinidamente, estos valores propios deben ser, en valor absoluto, menoresque la unidad, por lo que es necesario que se cumpla la condición

0 < r =  a2∆t∆x2

  <  12

  ,

que se conoce como la condición de Courant . Esta condición limita la longitud delpaso temporal,  ∆t que es necesario elegir una vez se ha elegido un paso espacial,∆x.

Método de Euler implícito.   Para evitar problemas de estabilidad, se puedeevaluar la derivada segunda espacial en el instante  (n +1)∆t, en vez de hacerlo enel instante  n∆t, obteniendo de este modo la aproximación

un+1i   − u

ni

∆t  = a2 u

n+1

i−1 − 2un+1

i   + un+1

i+1

∆x2  ,

140

Page 142: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 142/250

5.2 Diferencias finitas para problemas parabólicos

o sea,−run+1

i−1  + (1 + 2r)un+1i   − run+1

i+1   = uni   ,

que es un método implícito, ya que si hacemos variar   i  = 1, . . . , N  x, para cadapaso de tiempo, se ha de resolver un sistema de ecuaciones que matricialmentetoma la forma

(I − rA)un+1 = un + rbn+1,   (5.12)

donde A  es la dada en (5.10). Éste es un método implícito y requiere la resoluciónde un sistema lineal de ecuaciones. Como la matriz I −rA es tridiagonal, podemosaplicar una factorización  LU  para matrices tridiagonales como vimos en el temade sistemas lineales y que es muy rápido y eficiente de evaluar.

Por tanto, el algoritmo recursivo que nos permite obtener  un+1, con las condiciones

de frontera conocidas,  bn+1, se puede escribir formalmente como

un+1 = (I − rA)−1

un + rbn+1

.   (5.13)

Es posible demostrar que los valores propios de la matriz (I −rA)−1 tienen módulomenor que la unidad y por tanto el método es incondicionalmente estable.

Método de Crank-Nicholson. Otro método que se puede obtener que no tieneproblemas de estabilidad y es más preciso que el método implícito, es el métodode Crank-Nicholson, que viene dado por la ecuación

un+1i   − un

i

∆t  =

 a2

2

uni−1 − 2un

i   + uni+1

∆x2  +

un+1i−1 − 2un+1

i   + un+1i+1

∆x2

  .

Matricialmente se puede escribir en la formaI −  1

2rA

un+1 =

I  +

 1

2rA

un +

 r

2(bn + bn+1),   (5.14)

luego

un+1 =

I −  1

2rA−1

I  + 1

2rA

un + r

2(bn + bn+1)

.   (5.15)

Hemos visto que con estos tres métodos hemos ido calculando aproximacionesnuméricos en los nodos del mallado de la Figura 5.1. Cada método hace uso depuntos vecinos. A la hora de construir un método es útil conocer de qué nodosvecinos se ha hecho uso. En la Figura 5.2 se muestran los diagramas de nodosutilizados para cada uno de los métodos: (a) Euler explícito, (b) Euler implícito y(c) Crank-Nicholson.

141

Page 143: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 143/250

Capítulo 5. Métodos numéricos para problemas de contorno

Figura 5.2:  Diagrama de nodos correspondiente a los métodos: (a) Euler explícito, (b)Euler implícito y (c) Crank-Nicholson, utilizados en la resolución del problema parabólico.

Éstos y otros métodos más elaborados se pueden obtener fácilmente a partir delos métodos estudiados en el tema anterior para ecuaciones diferenciales ordina-

rias si primeramente discretizamos solamente en espacio y tomamos el vector desoluciones

u(t) =

u1(t)u2(t)

...uN x−1(t)

uN x(t)

,

en el que uj(t) u(xj , t), y la EDP la aproximamos por el siguiente sistema linealde EDOs

du

dt  = sAu + sb(t) ,

donde s =   a2

∆x2 . Esta técnica se llama el Método de líneas. Vemos que se tratade un sistema de ecuaciones diferenciales ordinarias de la forma  y  = f (t, y) dondey  =  u  y  f (t, u) = sAu + sb(t). Si utilizamos el método de Euler explícito visto enel tema anterior obtenemos el método (5.9). En cambio, si utilizamos el método deEuler implícito (yn+1  = yn + hf (tn+1, yn+1)) se obtiene el esquema (5.12) o bien(5.13). Finalmente, si utilizamos el método implícito trapezoidal, o lo que es lomismo, el método de Adams-Moulton de un paso (yn+1  =  yn +  h

2 (f (tn+1, yn+1) +f (tn, yn))) obtenemos el método de Crank-Nicolson. Como vemos, en principio,podríamos utilizar cualquiera de los métodos vistos para EDOs con condicionesiniciales (observar que las condiciones de frontera se encuentran en el vector  b(t)).

Ejemplo 5.2  Considerar el problema 

∂u

∂t  =

 ∂ 2u

∂x2,

u(0, t) = u(1, t) = 0,u(x, 0) = sen(πx),

x ∈ [0, 1], t ∈ [0, 1],   (5.16)

cuya solución exacta es:   u(x, t) = e−π2t

sen(πx). Tomar   ∆x   =

  1

10   y resolver el problema utilizando los métodos Euler explícito (con  ∆t =   1174   y  ∆t =   1

173 ), Euler 142

Page 144: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 144/250

5.2 Diferencias finitas para problemas parabólicos

implícito (con  ∆t =   110) o Crank-Nicholson (con  ∆t =   1

10). Hallar el error máximo,maxi,n |u(xi, tn) − un

i |, para cada método.

Solución:Para resolver este problema nos hará falta el uso de ordenador. En la Figura 5.3se muestran los resultados obtenidos y el programa Matlab que lo genera se veráen el correspondiente capítulo de prácticas.

0

5

10

15

0

100

200−0.5

0

0.5

1

xt

       u

(a) Euler explícito,  ∆t = 1/174

0

5

10

15

0

100

200−10

−5

0

5

10

xt

  u

(b) Euler explícito,  ∆t = 1/173

0

5

10

15

0

5

10

150

0.2

0.4

0.6

0.8

1

xt

     u

(c) Euler implícito,  ∆t = 1/10

0

5

10

15

0

5

10

150

0.2

0.4

0.6

0.8

1

xt

     u

(d) Crank-Nicholson,  ∆t = 1/10

Figura 5.3: Soluciones obtenidas para el Ejemplo 5.2 con los métodos Euler explícito ((a)error = 0.2017, (b) error = 9.4727), Euler implícito (error  = 0.1326) y Crank-Nicholson(error = 0.0299).

143

Page 145: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 145/250

Capítulo 5. Métodos numéricos para problemas de contorno

Inclusión del término fuente

Con esta fórmula de discretizar en la coordenada espacial e integrar con un mé-todo numérico el sistema de ODEs asociado, es inmediato y sencillo extender losmétodos para el caso en que tengamos un término fuente,   Q(x, t), y resolver elproblema general (5.8). Simplemente, hay que resolver el sistema de EDOs dadopor

du

dt  = sAu + F (t) + sb(t),

donde

F (t) =

F (x1, t)F (x2, t)

..

.F (xN x , t)

.

De manera similar se podrían resolver otras ecuaciones más complejas y cuyasolución por separación de variables no sería posible.

5.3 Diferencias finitas para problemas hiperbólicos

Como ejemplo de un problema de contorno hiperbólico consideraremos la ecuaciónde ondas descrito por las ecuaciones

∂ 2u

∂t2  = a2 ∂ 2u

∂x2 + F (x, t),

u(0, t) = f 0(t), u(L, t) = f L(t),

u(x, 0) = f (x),  ∂u

∂t(x, 0) = g(x),

x ∈ [0, L], t ≥ 0,   (5.17)

donde a es la velocidad de propagación en el medio,  F (x, t) es una fuerza externaque puede depender tanto de la posición como del tiempo, y  f 0(t), f L(t)  puedenrepresentar los movimientos de los extremos. Este modelo describe, por ejemplo,el movimiento de una cuerda de longitud  L.

Mostramos en primer lugar cómo obtener un método para el caso en que F   = f 0  =f L   = 0. Para este problema utilizaríamos el mismo mallado que en el problemaparabólico (ver Figura 5.1) pues conocemos la solución en el instante inicial y enlos dos extremos, y habría que calcular la solución en el mallado interior. Si aproxi-mamos las derivadas segundas tanto espacial como temporal por una aproximaciónde segundo orden

∂ 2u

∂x2 (xi, tn) ≈  un

i−1 − 2uni   + un

i+1

∆x2  ,

y

∂ 2

u∂t2

  (xi, tn) ≈  un−1

i   − 2uni   + u

n+1i

∆t2  ,

144

Page 146: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 146/250

5.3 Diferencias finitas para problemas hiperbólicos

se llega a una aproximación de la ecuación (5.17) de la forma

un−1i   −

2un

i  + un+1

i∆t2   = a2

un

i−1 −2un

i

  + un

i+1∆x2   ,

que se puede reescribir como

un+1i   = 2un

i

1 −  a2∆t2

∆x2

+

uni−1 + un

i+1

a2∆t2

∆x2

− un−1

i   ,

para  i = 1, . . . , N  x.

El cálculo de  u1 requiere conocer previamente  u0, que se obtiene de la condicióninicial, pero también de  u−1. Una posibilidad consiste en usar la condición

∂u

∂t(x, 0) = g(x),   0 ≤ x ≤ L ,

sustituyendo∂u

∂t(x, 0) ≈  u1

i − u0i

∆t  = g (xi)   ,

o sea,u1i   = u0

i  + ∆tg (xi)   , i = 1, . . . , N  x   .

Una aproximación de mayor orden se puede obtener si se tiene en cuenta que

u (xi, t1) = u (xi, 0) + ∆t∂u

∂t  (xi, 0) +

 (∆t)2

2

∂ 2u

∂t2  (xi, 0) + O

∆t3

  .

Si existe f , podemos usar la ecuación de ondas y escribir

∂ 2u

∂t2  (xi, 0) = a2 ∂ 2u

∂x2 (xi, 0) = a2f  (xi)   ,

con lo que se tiene

u1i   = u0

i  + ∆tg (xi) + a2 (∆t)

2

2  f  (xi)   .

Alternativamente, podemos utilizar el método de líneas. De nuevo, al igual queen el problema parabólico, si discretizamos solamente respecto a la coordenadaespacial, nos queda el sistema de EDOs de la forma (utilizando la misma notaciónque anteriormente)

d2 u

dt2

  = sAu,

145

Page 147: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 147/250

Capítulo 5. Métodos numéricos para problemas de contorno

donde s =   a2

∆x2  y la matriz  A viene dada por (5.10) (proviene de la discretización

del mismo operador,   ∂ 2

∂x2   donde además  b(t) = 0 debido a que las condiciones de

frontera son nulas). Las condiciones iniciales son

u(0) =

f (x1)f (x2)

...f (xN x−1)

f (xN x)

, u(0) =

g(x1)g(x2)

...g(xN x−1)

g(xN x)

.

Debemos resolver un sistema de ecuaciones diferenciales lineales de segundo ordencon condiciones iniciales en la función y su derivada.

Podemos transformar este sistema de ecuaciones diferenciales de segundo orden enuno de primer orden,

d

dt

  uv

=

  vsAu

y condiciones iniciales:  u(0)  y  v(0) =  u(0). De nuevo es de la forma  y  =  f (t, y)donde   y   = (u, v)T y   f (t, y) = (v,sAu)T, y podemos utilizar cualquiera de losmétodos estudiados para EDOs.

Un esquema distinto pero a la vez muy sencillo y con muy buenas propiedades,

que es de segundo orden tanto en la discretización espacial como en la temporalse corresponde con el siguiente algoritmo

U  = un +  ∆t2  vn

vn+1 = vn + ∆tsAU un+1 = U  +  ∆t

2 vn+1

el cual se inicia con:  u0 =  u(0), v0 =  u(0). Este esquema recibe el nombre demétodo de  Strang  o también  leap-frog  por la forma especial en que se evalúan  un

y  vn.

Inclusión de las condiciones de frontera y del término fuente

Lo mostramos únicamente para el método de líneas. Estos dos términos se puedenincluir de manera similar a como se hizo en el problema parabólico, y el sistemade EDOs a resolver será

d

dt

  uv

=

  v

sAu + F (t) + sb(t)

.

146

Page 148: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 148/250

5.4 Diferencias finitas para problemas elípticos

Figura 5.4:  Mallado para un problema elíptico 2D rectangular.

El algoritmo habría que modificarlo ligeramente de la siguiente forma:

U    =   un + ∆t

2   vn,

vn+1 =   vn + ∆t(sAU  + F (tn) + sb(tn)),   (5.18)

un+1 =   U  + ∆t

2  vn+1 .

5.4 Diferencias finitas para problemas elípticos

Como ejemplo de problema elíptico vamos a considerar el problema de contorno

asociado a la ecuación de Poisson, y por sencillez consideraremos condiciones defrontera nulas

∂ 2u

∂x2 +

 ∂ 2u

∂y2  = f (x, y) ,   (x, y) ∈ D = [0, l1] × [0, l2]   ,

u(x, y) = 0 ,   (x, y) ∈ ∂ D.

(5.19)

El primer paso que realizaremos consistirá en discretizar el rectángulo  [0, l1]×[0, l2]mediante un conjunto de nodos igualmente espaciados, como se muestra en la

Figura 5.4,147

Page 149: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 149/250

Capítulo 5. Métodos numéricos para problemas de contorno

Figura 5.5:  Diagrama correspondiente al método de 5 puntos.

xi  =  i∆x , i = 0, 1, 2, . . . , N   + 1  ,

yj  = j∆y , j = 0, 1, 2, . . . , M   + 1  .

Utilizando una aproximación similar a la de (5.2), para las derivadas segundas, setiene que

∂ 2u∂x2

 (xi, yj) ≈  ui−1j − 2uij + ui+1j

∆x2  ,

∂ 2u

∂y2 (xi, yj) ≈  uij−1 − 2uij + uij+1

∆y2  ,

donde   uij   =   u (xi, yj). De este modo, se tiene que la ecuación (5.19) se puedeaproximar de la forma

1

∆x2 (ui−1j − 2uij + ui+1j) +

  1

∆y2 (uij−1 − 2uij + uij+1) = f ij   .   (5.20)

Si reescalamos los ejes x e y, y tomamos un mallado tal que ∆x = ∆y la recurrenciatoma la forma

ui−1j + ui+1j + uij−1 + uij+1 − 4uij  = ∆x2f ij   .   (5.21)

para i  = 1, . . . , N , j  = 1, . . . , M  . Este esquema se corresponde con el diagrama de5 puntos de la Figura 5.5.

Para poder escribir las ecuaciones resultantes se han de ordenar los nodos delmallado de algún modo. Una posibilidad es utilizar el orden dado por

l =  i + N ( j − 1) .148

Page 150: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 150/250

5.4 Diferencias finitas para problemas elípticos

Cuando se escriben las ecuaciones teniendo en cuenta las condiciones de contornose obtiene un sistema de ecuaciones de la forma

Au =  b,   (5.22)

donde  u  y   b  son vectores de dimension  N M   y A  es una la matriz de dimensionN M  × N M .

Ejemplo 5.3  Halla el sistema de ecuaciones a resolver para  N  = M  = 2.

Solución:Los nodos interiores en los que debemos encontrar una aproximación a la soluciónson   u1   = (u11, u12)T , u2   = (u21, u22)T  y los valores de frontera conocidos son

u0   = (u01, u02)T , u3   = (u31, u32)T  así como los valores de   u10, u20, u13, u23. Siaplicamos la ecuación (5.21) para i, j = 1, 2 obtenemos

u01 + u21 + u10 + u12 − 4u11  = ∆x2f 11

u02 + u22 + u11 + u13 − 4u12  = ∆x2f 12

u11 + u31 + u20 + u22 − 4u21  = ∆x2f 21

u12 + u32 + u21 + u23 − 4u22  = ∆x2f 22

que se puede escribir matricialmente como (5.22) donde

A = −

4 1 1 01   −4 0 11 0   −4 10 1 1   −4

, u =

u11u12

u21

u22

,

b =

−u01 − u10

−u02 − u13

−u31 − u20

−u32 − u23

+ ∆x2

f 11f 12f 21f 22

.

En general, se tiene

A =

A I    0I A I 

. . .  . . .

  . . .0   I A

, u =

u1

u2

...uN 

, b =

b1b2...

bN 

,   (5.23)

con

A =

−4 1 01   −4 1

. ..

  . ..

  . ..0 1   −4

,   (5.24)

149

Page 151: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 151/250

Capítulo 5. Métodos numéricos para problemas de contorno

donde   ui   = (ui,1, . . . , ui,M )T , i   = 1, . . . , N  , luego   u, b ∈   R

NM ,   I, A ∈   RM ×M 

y A ∈   RNM ×NM . El vector   b   contiene la información proveniente tanto de la

frontera (en caso de las condiciones no fueran nulas) como del término fuente  f .Como vemos, esta ordenación hace que A sea una matriz en banda con amplitudde banda  2N  + 1  como mucho, por lo que los métodos del capítulo de sistemaslineales serán aplicables. Para problemas de grandes dimensiones, con valores deN  grandes, los métodos iterativos de resolución de ecuaciones lineales suelen serlos más eficientes.

5.5 Ejercicios resueltos

Ejercicio 5.1  Obtén una aproximación en diferencias finitas para el problema 

−∂ 2u

∂x2  = f (x)   ,   0 ≤ x ≤ 1   ,

∂u

∂x(0) = 0   ,

  ∂u

∂x(1) = 0   ,

que tenga un error de truncamiento O ∆x2

.

Solución:Se considera una malla como la que se muestra en la Figura 5.6.

0 1

0 1 2   N  + 1N N  + 2−1

Figura 5.6:  Malla para el problema unidimensional.

Se tiene la aproximación

∂ 2u

∂x2  =

 ui−1 − 2ui + ui+1

∆x2  + O

∆x2

  .

Si usamos las aproximaciones de las derivadas

∂u

∂x(0) =

 u1 − u0

∆x  + O(∆x)  ,

  ∂u

∂x (xN ) =

 uN +1 − uN 

∆x  + O(∆x)  ,

se obtiene un esquema con orden O(∆x).150

Page 152: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 152/250

5.5 Ejercicios resueltos

Para obtener un esquema de orden mayor, se introducen los nodos ficticios  x−1  yxN +2  y se usan las aproximaciones,

∂u∂x

(0) = u1 − u−1

2∆x  + O(∆x2) ,

  ∂u∂x

 (xN +1) = uN +2 − uN 

∆x  + O(∆x2)  .

Para eliminar los nodos ficticios, se evalúa la ecuación que define el problema enlos nodos  x0, x1, . . . , xN +1, obteniendo

1

∆x2 (u−1 − 2u0 + u1) =   f  (x0)

1

∆x2 (u0 − 2u1 + u2) =   f  (x1)

...1

∆x2 (uN  − 2uN +1 + uN +2) =   f  (xN +1)

Se tienen las condiciones de contorno

u−1  =  u1   , uN +2 = uN 

y haciendo uso de estas condiciones, se tiene el sistema

−u0   +2u1   = ∆x2f  (x0)u0   −2u1   u2   = ∆x2f  (x1)

. . .   =2uN    −2uN +1   = ∆x2f  (xN +1)

que define el esquema con orden de truncamiento O(∆x2).  

Ejercicio 5.2  Dado el problema 

y = λ

2

y ,   −1 ≤ x ≤ 1   ,con  y(−1) = y(1) = 1. Obtén un método numérico para la solución de este proble-ma. ¿Cúal es la solución exacta del problema en diferencias obtenido? 

Solución:Si se utiliza la aproximación

y (xi) ≈  yi−1 − 2yi + yi+1

∆x2  ,

se tiene el problema yi−1 − 2yi + yi+1 = ∆x2λ2yi   ,151

Page 153: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 153/250

Capítulo 5. Métodos numéricos para problemas de contorno

o sea,yi+1 −

2 + ∆x2λ2

yi + yi−1  = 0  .

Si probamos soluciones del tipo  yi = ri, tenemos la ecuación característica

r2 − (2 + ∆x2λ2)r + 1 = 0  ,

cuyas soluciones son

r =2 + ∆x2λ2 ±

 (2 + ∆x2λ2)

2 − 4

2  =

 2 + ∆x2λ2

2  ±  ∆x2

√ 4 + ∆x2λ2

2  = r1,2   .

La solución general del problema discreto es de la forma

yi  =  c1ri1 + c2ri2   ,

Se toman los nodos  0, 1, . . . , N  x + 1, y se imponen las condiciones de contorno

y0  = 1 = c1 + c2   , ynx+1 = c1rN x+11   + c2rN x+1

2   = 1 ,

se obteniene que

c1  =

  1

−rN x+12

rN x+11   − rN x+1

2, c2  =

  rN x+11

  −1

rN x+11   − rN x+1

2.

Ejercicio 5.3  Considera el problema 

∂u

∂t  =

 ∂ 2u

∂x2,

u(0, t) = u(1, t) = 0,

u(x, 0) = sen(πx),

x ∈ [0, 1], t ∈

0, 1

9

,   (5.25)

cuya solución exacta es:  u(x, t) = e−π2t sen(πx). Toma  ∆x =   13   e integra con un 

paso de integración, ∆t =   19  utilizando los métodos Euler explícito, Euler implícito

y Crank-Nicholson. Halla el error máximo para cada método.

Solución:El mallado que hay que considerar con las condiciones del problema se muestra enla Figura 5.7. Conocemos la solución en los puntos marcados con •  y falta saberla solución en los marcados con ♦.

152

Page 154: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 154/250

5.5 Ejercicios resueltos

t0  = 0

t1  =   19

x0  = 0   x1   x2   x3  = 1

∆x =   13   ∆t =   1

9

Figura 5.7:  Mallado para el problema de valor inicial.

Se puede establecer la notación que se indica en la Figura 5.8. Por las condiciones

u00   u0

1   u02   u0

3

u10   u1

1   u12   u1

3

Figura 5.8:  Notación para el problema de valor inicial.

de frontera u(0, t) = u(1, t) = 0, se tiene queu00  = u1

0  = u03  = u1

3  = 0  .

Haciendo uso de las condiciones iniciales tenemos que

u01   = sen (πx1) = sen

π

3

=

√ 3

2  ,

u02   = sen (πx2) = sen

3

=

√ 3

2  .

Si utilizamos el método de Euler explícito,

un+1i   − un

i

∆t  =

 uni−1 − 2un

i   + uni+1

∆x2  ,

o sea,un+1i   = (1 − 2r)un

i   + runi−1 + run

i+1   ,

con  r  =   ∆t∆x2 . Tomamos  n = 0 y consideramos  i = 1, 2,

(i = 1)   u11  = (1

−2r)u0

1 + ru02   ,

(i = 2)   u12  = (1 − 2r)u0

2 + ru01   ,

153

Page 155: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 155/250

Capítulo 5. Métodos numéricos para problemas de contorno

que en forma matricial se expresa

  u11

u12 =   u0

1

u02 + r −

2 1

1   −2   u01

u02 = (I  + rA)   u0

1

u02   .

Con las condiciones del problema

r =  ∆t

∆x2  =

19132

= 1

y, por tanto, no se cumple la condición de Courant.

Se tiene

    u11

u12 =  −1 1

1   −1   1

1 √ 

3

2  =   0

0   .

Esta solución se ha de comparar con la solución analítica

u

t1  =

 1

9

=

  u (x1, t1)u (x2, t2)

=

  e−

π2

9 senπ3

e−

π2

9 sen2π3

=

  0.28920.2892

  .

Si se usa el método de Euler implícito,

un+1i   − un

i

∆t  =

un+1i−1 − 2un+1

i   + un+1i+1

∆x2  ,

que en forma matricial se expresa  un+1

1

un+12

=

  un

1

un2

+ r

 −2 11   −2

  un+1

1

un+12

  .

Con las condiciones del problema se tiene el sistema  3   −1−1 3

  u1

1

u12

=

√ 3

2

  11

  .

Resolviendo el sistema se obtiene  u1

1

u12

=

√ 3

4

  11

=

  0.4330.433

  ,

con lo que el error máximo obtenido es  ε = |0.433 − 0.289| = 0.144.

Si ahora utilizamos el método de Crank-Nicholson,

un+1i

  −uni

∆t   = 1

2un+1

i−1

 −2un+1

i   + un+1i+1

∆x2   +

 uni−1

−2un

i   + uni+1

∆x2   ,

154

Page 156: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 156/250

5.5 Ejercicios resueltos

que en forma matricial se expresa

  un+11

un+12

=   un1

un2 +

 r

2  −2 1

1   −2   un+11

un+12

+

 r

2  −2 1

1   −2   un1

un2   .

Para nuestro problema  1 00 1

−  1

2

 −2 11   −2

  u1

1

u12

=

  1 00 1

+

 1

2

 −2 11   −2

  u0

1

u02

  ,

esto es   2   − 1

2− 12   2

  u1

1

u12

=

  0   1

212   0

√ 3

2

  11

=

√ 3

4

  11

  ,

cuya solución es   u1

1

u12

=

  1

2√ 

3

  11

=

  0.28860.2886

con lo que el error máximo es  ε  = |0.2892 − 0.2886| = 0.0006.  

Ejercicio 5.4  Considera el problema 

∂u

∂t  =

 ∂ 2u

∂x2 + t(1 + x),

u(0, t) = t,u(1, t) = 2t,u(x, 0) = sen(πx),

x ∈ [0, 1], t ∈

0,  1

10

  .

Toma  ∆x =   13  y obtén el sistema de ecuaciones diferenciales que satisface el vector 

u(t) =   u(x1, t)

u(x2, t) ,

esto es, escribe explícitamente el sistema de ecuaciones 

du

dt  = sAu + F (t) + sb(t).

Solución:Se puede considerar un mallado similar al que se muestra en la Figura 5.7, y unaaproximación para la derivada segunda de la forma

∂ 2

u∂x2

 ≈  ui−1 − 2ui + ui+1

∆x2  .

155

Page 157: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 157/250

Capítulo 5. Métodos numéricos para problemas de contorno

En un nodo  i se tiene la aproximación

dui

dt   =

 ui

−1

−2ui + ui+1

∆x2   + t (1 + xi)   .

Usando las condiciones de frontera, para el nodo  i = 1 se tiene

du1

dt  =

 −2u1 + u2

∆x2  +

  t

∆x2 + t (1 + x1)   ,

y para el nodo  i = 2,

du2

dt  =

 u1 − 2u2

∆x2  +

  2t

∆x2 + t (1 + x2)   .

En forma matricial

d

dt

  u1

u2

  =   s

 −2 1

1   −2

  u1

u2

+ s

  t

2t

+

  43

t53

t

  ,

con lo que se idenfifican las matrices

A =

 −2 1

1   −2

  , b =

  t

2t

  , F   =

  43 t53

t

  .

5.6 Ejercicios propuestos

1. Resuelve la siguiente ecuación diferencial con condiciones en la frontera

y + 1

2xy −  1

2x2y = −2 e−x2/2

y(0) = 2, y(1) =  2√ 

e,

x ∈ [0, 1]

utilizando el método de diferencias finitas y  ∆x =   14 . Compara el resultado

obtenido con la solución exacta,   y(x) = 2 e−x2/2, e indica cual es el errormáximo cometido.

2. Obtén el error de truncamiento del método

un+1i   = un

i   + r

uni−1 − 2un

i   + uni+1

, r =

 α∆t

∆x2,

para la ecuación del calor∂u

∂t   = α∂ 2u

∂x2 .

156

Page 158: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 158/250

5.6 Ejercicios propuestos

3. Obtén una solución aproximada del problema

∂ 2u

∂x2  + ∂ 2u

∂y2   = 0,   0 < x < 2,   0 < y < 2,

u(0, y) = 0, u(2, y) = y(2 − y),   0 < y < 2,

u(x, 0) = 0, u(x, 2) =

  x,   0 < x < 1,2 − x,   1 ≤ x < 2,

usando diferencias finitas con un tamaño de malla ∆x = ∆y = 2/3. Expresael sistema a resolver en forma matricial.

4. Obtén una solución aproximada del problema

∂ 2u

∂x2 +

 ∂ 2u

∂y2  = x(3 − x)y(3 − y)  ,   (x, y) ∈ [0, 3] × [0, 3]   ,

u(0, y) = u(3, y) = u(x, 0) = u(x, 3) = 0 ,

usando diferencias finitas con un tamaño de malla  ∆x = ∆y = 1.

5. Deduce los métodos de Euler explícito, Euler implícito y Crank-Nicholsoncuando el término fuente depende linealmente de la solución:

∂u

∂t  = a2 ∂ 2u

∂x2 − b u ,

u(0, t) = f 0(t), u(L, t) = f L(t) ,u(x, 0) = u0(x),

x ∈ [0, L], t ≥ 0 ,

con  b > 0.

6. Deduce el método de leap-frog  cuando el término fuente depende linealmentede la solución:

∂ 2u

∂t2  = a2 ∂ 2u

∂x2 + b u ,

u(0, t) = f 0(t), u(L, t) = f L(t) ,

u(x, 0) = f (x),  ∂u

∂t(x, 0) = g(x),

x ∈ [0, L], t ≥ 0 .

157

Page 159: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 159/250

Page 160: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 160/250

Capítulo 6

Introducción a los elementos finitos

6.1 Técnicas variacionales

Hemos visto que el método de las diferencias finitas consiste, esencialmente, ensustituir el valor de las derivadas de la función en un punto por un cociente incre-mental obteniendo de este modo una ecuación en diferencias, cuya solución nos da

la solución aproximada del problema.

Ahora expondremos el método de Rayleigh-Ritz, que es una técnica variacionalque trata el problema desde otro punto de vista. En primer lugar, se reformula elproblema de contorno, como el problema de encontrar, dentro de un conjunto defunciones suficientemente derivables que verifican las condiciones de contorno, lafunción que minimiza cierta integral. La solución de este nuevo problema nos daráuna aproximación al problema original.

El método de Rayleigh-Ritz servirá como una introducción al método de los ele-mentos finitos, que se desarrolló entre los años 1940 y 1960 en el campo de lamecánica estructural. Este método es una técnica numérica estándar en el estudiode la mecánica de sólidos y ha sido utilizado con éxito en muchos otros campos.

Para exponer cómo funciona el método de Rayleigh-Ritz, consideremos el problemade contorno asociado a la deformación de una viga, que es de la forma

−  d

dx

 p(x)

dy

dx

+ q (x)y =  f (x) ,   0 ≤ x ≤ 1  ,   (6.1)

con las condiciones de contorno  y(0) = y(1) = 0.

159

Page 161: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 161/250

Capítulo 6. Introducción a los elementos finitos

Se puede ver que la solución de la ecuación (6.1) es la función que minimiza unacierta integral entre todas las funciones del conjunto  C 20 [0, 1], definido por

C 20 [0, 1] = u ∈ C 2[0, 1]/u(0) = u(1) = 0 .

Así, una función y ∈ C 20 [0, 1] es la solución del problema de la viga (6.1) si, y sólosi,  y es la única función que minimiza la integral

I (u) =

   10

 p(x) (u(x))

2+ q (x) (u(x))

2 − 2f (x)u(x)

 dx .   (6.2)

Para resolver el problema de encontrar una función   y   que minimice la integral(6.2), se eligen ciertas funciones básicas,  φ1, φ2, . . . , φn, que sean linealmente in-dependientes y que verifiquen

φi(0) = φi(1) = 0 , i = 1, 2, . . . , n .

Suponemos que

u =n

i=1

ciφi(x) ,

y tratamos de obtener las constantes  c1, c2, . . . , cn, que hacen mínima la integral

I   ni=1

ciφi(x)=

   10

 p(x)

  ni=1

ciφi(x)

2

+ q (x)

  ni=1

ciφi(x)

2

− 2f (x)

ni=1

ciφi(x)

 dx .

Para que se alcance un mínimo se han de satisfacer las ecuaciones normales

∂I 

∂cj= 0  , j  = 1, . . . n .

Derivando, se obtienen las ecuacionesn

i=1

   10

 p(x)φi(x)φj(x) + q (x)φi(x)φj(x)

 dx

ci −

   10

f (x)φj(x) dx = 0  ,

para j  = 1, 2, . . . , n. Estas ecuaciones dan lugar a un sistema de ecuaciones lineales

Ac =  b ,

donde A es una matriz simétrica cuyos elementos son de la forma

aij  =    10

 p(x)φi(x)φj(x) + q (x)φi(x)φj(x)  dx ,

160

Page 162: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 162/250

6.1 Técnicas variacionales

y las coordenadas del vector  b son

bi =    10

f (x)φi(x) dx .

La solución de este sistema nos da los coeficientes  ci  que permiten reconstruir lasolución aproximada.

Para obtener una solución aproximada hace falta elegir unas funciones base   φi

determinadas. Una posibilidad es tomar como funciones básicas polinomios linealesa trozos. Para construir estas funciones comenzamos tomando una partición delintervalo [0, 1] cuyos nodos  x0, x1, . . . , xn+1, satisfacen

0 = x0 ≤ x1 ≤ · · · ≤ xn+1 = 1  .

Tomando  ∆xi = xi+1 − xi, se definen las funciones básicas

φi(x) =

0 si 0 ≤ x ≤ xi−1,1

∆xi−1(x − xi−1) si   xi−1 ≤ x ≤ xi,

1∆xi

(xi+1 − x) si   xi ≤ x ≤ xi+1,

0 si   xi+1 ≤ x ≤ 1,

para  i = 1, 2, . . . , n. Derivando, se tiene

φi(x) =

0 si 0 < x < xi−1,1

∆xi−1si   xi−1  < x < xi,

−   1∆xi

si   xi < x < xi+1,

0 si   xi+1 < x < 1,

para  i  = 1, 2, . . . , n. Como  φi  y  φi  son no nulas en  (xi−1, xi+1), los elementos dela matriz  A no nulos son

aii   =

   10

 p(x) (φi(x))2

+ q (x) (φi(x))2

 dx

=   xixi−1

  1∆xi−1

2 p(x) dx +

   xi+1xi

 −1∆xi

2 p(x) dx

+

   xixi−1

  1

∆xi−1

2

(x − xi−1)2 q (x) dx

+

   xi+1xi

  1

∆xi

2

(xi+1 − x)2 q (x) dx ,

para  i = 1, 2, . . . , n.

161

Page 163: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 163/250

Capítulo 6. Introducción a los elementos finitos

aii+1   =    10 p(x) φi(x)φi+1 + q (x) (φi(x)φi+1(x))  dx

=

   xi+1xi

  1

∆xi

2

 p(x) dx

+

   xi+1xi

  1

∆xi

2

(xi+1 − x) (x − xi) q (x) dx ,

para i = 1, 2, . . . , n − 1; y

aii−1   =  

  1

0  p(x) φi(x)φ

i−1 + q (x) (φi(x)φi−1(x))  dx

=

   xixi−1

  1

∆xi−1

2

 p(x) dx

+

   xixi−1

  1

∆xi−1

2

(xi − x) (x − xi−1) q (x) dx ,

para i  = 2, . . . , n. Los elementos del vector  b son,

bi   =    1

0

f (x)φi(x) dx

=

   xixi−1

1

∆xi−1(x − xi−1) f (x) dx +

   xi+1xi

1

∆xi(xi+1 − x) f (x) dx .

Para implementar el método se deben evaluar las integrales

Q1i   =

  1

∆xi

   xi+1xi

(xi+1 − x) (x − xi) q (x) dx , i = 1, 2, . . . n − 1,

Q2i   =   1

∆xi−1   xi

xi−1

(x

−xi

−1)

2 q (x) dx , i = 1, 2, . . . n,

Q3i   =

  1

∆xi

   xi+1xi

(xi+1 − x)2 q (x) dx , i = 1, 2, . . . n,

Q4i   =

  1

∆xi−1

   xi+1xi

 p(x) dx , i = 1, 2, . . . n + 1,

Q5i   =

  1

∆xi−1

   xixi−1

(x − xi−1) f (x) dx , i = 1, 2, . . . n,

Q6i   =   1

∆xi   xi+1

xi

(xi+1 − x) f (x) dx , i = 1, 2, . . . n.

162

Page 164: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 164/250

6.2 Condiciones de contorno no nulas

Una vez calculadas las integrales se tiene que

aii   =   Q4i + Q4i+1 + Q2i + Q3i   ,

aii+1   =   −Q4i + Q1i   ,

aii−1   =   −Q4i + Q1i−1

ybi  =  Q5i + Q6i   .

6.2 Condiciones de contorno no nulas

Para ver cómo se resolvería un problema con condiciones de contorno no homogé-neas, consideremos el siguiente problema

−∂ 2u

∂x2  = f , a < x < b ,   (6.3)

con las condiciones

u(a) = ua   ,  ∂u

∂x(b) = tb   .

Para resolver este problema se buscan soluciones de la forma

u(x) = φ0(x) +n

k=1

ckφk(x) .   (6.4)

φ0(x)  ha de satisfacer  φ0(a) =  ua  y las otras funciones  φk(a) = 0. Introduciendola expresión (6.4) en el problema (6.3), se obtiene

−∂ 2φ0

∂x2 −

nk=1

∂ 2φk

∂x2  = f .

Para este problema se define el residuo

R = −∂ 2φ0

∂x2 −

nk=1

∂ 2φk

∂x2 − f ,

y las constantes  ck  se pueden obtener imponiendo que se satisfagan las ecuaciones   ba

R wj   dx = 0  , j  = 1, . . . , n ,

163

Page 165: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 165/250

Capítulo 6. Introducción a los elementos finitos

para unas funciones arbitrarias  wj . Este método se llama  método de los residuos ponderados . Si se eligen wj  = φj , j  = 1, . . . , n, se tiene un método de Galerkin. En

este último caso, se tienen las ecuaciones

−   ba

∂ 2φ0

∂x2  φj   dx −

   ba

nk=1

ck∂ 2φk

∂x2  φj   dx =

   ba

f φj   dx .

Usando la integración por partes, se tiene   ba

∂φ0

∂x

∂φj

∂x  dx −

∂φ0

∂x  φj

ba

+n

k=1

   ba

∂φk

∂x∂φj

∂x  dx − ∂φk

∂x  φj

ba

ck  =    ba

f φj   dx .

Como las funciones  φj  hemos supuesto que se anulan en  x =  a, se puede escribir

   ba

∂φ0

∂x

∂φj

∂x  dx +

nk=1

ck

   ba

∂φk

∂x

∂φj

∂x  dx

=    b

a

f φj   dx + ∂φ0

∂x (b)φj(b) +

n

k=1

∂φk

∂x (b)φj(b)ck   .

Usando la condición de contorno en  x =  b, se llega a que

nk=1

ck

   ba

∂φk

∂x

∂φj

∂x  dx   =

   ba

f φj   dx + tbφj(b) −   ba

∂φ0

∂x

∂φj

∂x  dx ,

que se expresa como un sistema de ecuaciones de la forma

Sc  =  b ,

con las matrices

S jk  =

   ba

∂φj

∂x

∂φk

∂x  dx ,

bj  =

   ba

f φj dx + tbφj(b) −   ba

∂φ0

∂x

∂φj

∂x  dx .

164

Page 166: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 166/250

6.3 Introducción a los elementos finitos bidimensionales

6.3 Introducción a los elementos finitos bidimensionales

El método de los elementos finitos es similar al método de Rayleigh-Ritz. Paramostrar cómo funciona este método consideremos el problema bidimensional

∂ 

∂x

 p(x, y)

∂u

∂x

+

  ∂ 

∂y

q (x, y)

∂u

∂y

+ r(x, y)u =  f (x, y)  ,   (6.5)

con (x, y) ∈ D, siendo D una región plana cuya frontera es  S  = S 1 ∪ S 2. Sobre S 1se impone una condición de contorno de la forma

u(x, y) = g(x, y) ,   (x, y) ∈ S 1   .

Sobre S 2  se impone una condición de contorno de la forma

 p(x, y)∂u

∂xn1 + q (x, y)

∂u

∂yn2 + g1(x, y)u =  g2(x, y)  ,   (x, y) ∈ S 2   ,

donde el vector n1  = (n1, n2) es un vector que en cada punto es normal a la curvaS 2.

Supongamos que  p, q, r  y  f  son funciones continuas en  D ∪ S , que  p y  q  admitenderivadas parciales continuas y que   g1   y   g2   son continuas en   S 2. Supongamosademás que  p(x, y)  >  0,   q (x, y)  >  0,   r(x, y) ≤  0  y que  g1(x, y) ≥  0. Entonces lasolución del problema (6.5) es la única función que minimiza la integral

I (w) = D

1

2

 p(x, y)

∂w

∂x

2

+ q (x, y)

∂w

∂y

2

− r(x, y)w2

+ f (x, y)w

 dx dy

+

 S 2

−g2(x, y)w +

 1

2g1(x, y)w2

 dS ,   (6.6)

sobre todas las funciones w  =  w(x, y) que satisfacen w(x, y) = g(x, y) para (x, y) ∈S 1.

Para obtener el mínimo de (6.6), el primer paso que se sigue es dividir la región  Den un número finito de secciones o elementos regulares, que pueden ser rectánguloso triángulos (véase la Figura 6.1)

Para las funciones base que se utilizan para aproximar la función que minimiza(6.6) se suelen utilizar polinomios a trozos.

Supondremos que la región   D   se ha dividido en elementos triangulares, cuyosvértices se llaman nodos. El método busca una aproximación de la forma

φ(x, y) =

mi=1

γ iφi(x, y) ,

165

Page 167: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 167/250

Capítulo 6. Introducción a los elementos finitos

 D

Figura 6.1:  Mallado de la región  D.

donde   φi   son polinomios lineales a trozos y   γ i   son constantes. Algunas de lasconstantes, γ n+1, γ n+2, . . . , γ m se usan para garantizar que se cumpla la condiciónde contorno

φ(x, y) = g(x, y)  ,   (x, y) ∈ S 1   ,

mientras que las otras constantes   γ 1,   γ 2,   . . . ,   γ n   se utilizan para minimizar laintegral

I   m

i=1

γ iφi(x, y)

=

 D

1

2

 p(x, y)

 mi=1

γ i∂φi

∂x

2

+ q (x, y)

 mi=1

γ i∂φi

∂y

2

−r(x, y)

 mi=1

γ iφi

2 + f (x, y)

mi=1

γ iφi

dx dy

+ S 2

−g2(x, y)mi=1

γ iφi +  12

g1(x, y)  m

i=1

γ iφi2dS .

Para obtener el mínimo se plantean las ecuaciones normales

∂I 

∂γ j= 0  , j  = 1, 2, . . . , n .

Estas ecuaciones de expresan como el sistema de ecuaciones lineales

Ac =  b ,   (6.7)166

Page 168: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 168/250

6.3 Introducción a los elementos finitos bidimensionales

donde c = (γ 1, γ 2, . . . , γ  n)T,  A es una matriz cuyos elementos son

aij   =  D p(x, y)

∂φi

∂x

∂φj

∂x   + q (x, y)

∂φi

∂y

∂φj

∂y

−r(x, y)φiφj) dx dy +

 S 2

g1(x, y)φiφj dS ,

y el vector  b tiene los elementos

bi =

 D

f (x, y)φi  dx dy +

 S 2

g2(x, y)φi dS −m

k=n+1

aikγ k   .

La elección de las funciones básicas es importante para obtener una matriz conbuenas propiedades a la hora de resolver el sistema (6.7). Veremos una posibilidadbasada el polinomios lineales a trozos definidos sobre triángulos.

Comenzamos dividiendo la región  D  en triángulos  T i, y se escoge una ordenaciónde los triángulos de la malla que se genera y otra ordenación para los vértices onodos,  E 1, E 2, . . . , E  m. Un ejemplo típico se muestra en la Figura 6.2.

 E 3

 E 7

 E 5

 E 1

 E 4

 E 6

 E 2

T 1

T 2

T 5

T 6

T 3

T 4

Figura 6.2:  Ordenación del mallado.

Si   E 1, E 2, . . . , E  m   son los nodos de la malla, a cada nodo   E k   se le asocia unafunción φk, que es lineal en cada triángulo y vale 1 en  E k  y 0 en los demás nodos.

Para construir estas funciones  φk, se procede como sigue. Se fija un triángulo  T i  yse elige una ordenación para sus vértices, como se muestra en la Figura 6.3. y seconstruyen los polinomios lineales

N (i)1   (x, y) =   a

(i)1   x + b

(i)1   y + c

(i)1   ,

N (i)

2   (x, y) =   a(i)2   x + b(

i)2   y + c(

i)2   ,

N (i)3   (x, y) =   a(i)3   x + b(i)3   y + c(i)3   ,167

Page 169: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 169/250

Capítulo 6. Introducción a los elementos finitos

(x1, y1) (x2, y2)

T i

(x3, y3)

Figura 6.3:  Ordenación de los vértices en un triángulo.

de forma que se satisfaga x1   y1   1

x2   y2   1x3   y3   1

a

(i)1

b(i)1

c(i)1

=

1

00

  ,

x1   y1   1x2   y2   1x3   y3   1

a(i)2

b(i)2

c(i)2

=

010

  ,

y x1   y1   1

x2   y2   1x3   y3   1

a

(i)3

b(i)3

c(i)3

=

0

01

  .

A continuación, se ve qué nodos están en la frontera  S 1. Si estos nodos son, porejemplo,  E n+1, . . . , E  m, se determinan los valores de  γ n+1, . . . , γ  m, de forma queen estos nodos se satisfaga la condición de contorno

φ(x, y) = g(x, y) .

Una vez se han determinado estas constantes, hay que evaluar las integrales doblesy las integrales curvilíneas.

Las integrales dobles de los elementos de matriz  aij  se descomponen de la forma

aij  =

 D

G (φi, φj) dx dy =l∈I 

 T l

G (φi, φj) dx dy ,

donde I  es el conjunto de triángulos donde  φi  y  φj  toman valores no nulos.168

Page 170: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 170/250

6.3 Introducción a los elementos finitos bidimensionales

Para evaluar las integrales dobles sobre un triángulo se suele usar una fórmula decuadratura que aproxima el valor de estas integrales. Una posibilidad es la siguien-

te. Sean  (x4, y4),  (x5, y5),  (x6, y6) los puntos medios del triángulo  T i  y  (x7, y7)  elbaricentro, o sea,

x4   =  1

2 (x1 + x2)   , y4  =

 1

2 (y1 + y2)   ,

x5   =  1

2 (x1 + x3)   , y5  =

 1

2 (y1 + y3)   ,

x6   =  1

2 (x2 + x3)   , y6  =

 1

2 (y2 + y3)   ,

x7   =  1

2 (x1 + x2 + x3)   , y7  =

 1

2 (y1 + y2 + y3)   .

Entonces se puede aproximar T 

F (x, y) dx dy   ≈   1

2|∆|

 1

20F  (x1, y1) + F  (x2, y2) + F  (x3, y3)

+ 2

15 (F  (x4, y4) + F  (x5, y5) + F  (x6, y6)) +

  9

20F  (x7, y7)

  ,

donde   12|∆| es el área del triángulo, que se puede calcular como

AT   = 12

|∆| = 12

det 1   x1   y11   x2   y2

1   x3   y3

.

Por último, se han de calcular las integrales curvilíneas sobre los segmentos queunen los nodos situados en S 2. Para ello, por ejemplo, se usa una parametrizacióndel segmento   l1, que une  (x1, y1) con  (x2, y2), de la forma  x =  x(t),  y  = y(t) conx (t1) = x1,  y (t1) = y1,  x (t2) = x2  e  y (t2) = y2, y se usa la expresión

 l1 H (x, y) dS  =    t2

t1

H  (x(t), y(t)) (x(t))

2+ (y

(t))

2dt .

Con estos elementos ya es posible calcular los elementos de matriz aij y los elemen-tos bi del término independiente del sistema (6.7), cuya solución permite aproximarla solución del problema inicial.

Hay otras posibilidades para la construcción de las funciones  φk, que dan lugar adistintos métodos de elementos finitos para resolver el problema (6.5).

169

Page 171: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 171/250

Capítulo 6. Introducción a los elementos finitos

6.4 Ejercicios resueltos

Ejercicio 6.1   Plantear el sistema de ecuaciones que hay que resolver si se utiliza el método de Rayleigh-Ritz lineal para discretizar el problema 

− d2y

dx2  = 4x2 − 8x + 1   ,   0 < x < 1;   y(0) = y(1) = 0   ,

si se divide el intervalo   [0, 1] en 4 subintervalos.

Solución:Se utilizan las funciones

φi =

0 0 < x

≤xi

−1

1∆x (x − xi−1)   xi−1 ≤ x ≤ xi

1∆x (xi+1 − x)   xi ≤ x ≤ xi+1

0   x ≥ xi+1

y se plantea el funcional

I (u) =

   10

u(x)2 − 2

4x2 − 8x + 1

u(x)

 dx ,

con

u(x) =

3i=1

ciφi(x) ,

con lo que se tiene

I (u) =

   10

  3

i=1

ciφi(x)

2

− 2

4x2 − 8x + 1   3

i=1

ciφi(x)

 dx .

Derivando

∂I ∂cj

=    10

23

i=1

ciφi(x)φj − 2 4x2 − 8x + 1φj(x)  dx = 0 .

Se tiene: para  j  = 1   10

  3i=1

ciφi(x)

φ1 −

4x2 − 8x + 1

φ1(x)

 dx = 0  .

Para j = 2

   10   3

i=1ciφi(x)φ2 − 4x

2

− 8x + 1φ2(x)  dx = 0  .

170

Page 172: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 172/250

6.4 Ejercicios resueltos

Para j  = 3

   10   3

i=1ciφi(x)φ3 − 4x

2

− 8x + 1φ3(x)  dx = 0  .

De donde se tiene el sistema

 1

0  φ1φ1  dx

 1

0  φ1φ2  dx

 1

0  φ

1φ3  dx 1

0  φ1φ2  dx

 1

0  φ2φ2  dx

 1

0  φ

2φ3  dx 1

0  φ1φ3  dx

 1

0  φ2φ3  dx

 1

0  φ

3φ3  dx

c1c2c3

=

 1

0

4x2

− 8x + 1

φ1  dx 1

0

4x2

− 8x + 1

φ2  dx 1

0

4x2

− 8x + 1

φ3  dx

Hay que calcular los distintos elementos de matriz. Para ello, se tiene en cuenta

que

φ1(x) =

1∆xx   0 < x ≤ x1

1∆x (x2 − x)   x1  < x ≤ x2

0   x ≥ x2

, φ2(x) =

0 0 ≤ x ≤ x1

1∆x (x − x1)   x1 ≤ x ≤ x2

1∆x (x3 − x)   x2  < x ≤ x3

0   x ≥ x3

,

y

φ3(x) =

0 0 ≤ x ≤ x2

1∆x (x − x2)   x2 ≤ x ≤ x3

1

∆x (x4 − x)   x3  < x ≤ x4

,

Y las derivadas

φ1(x) =

1∆x   0 < x < x1

−   1∆x   x1  < x < x2

0   x > x2

, φ2(x) =

0 0 ≤ x ≤ x1

1∆x   x1  < x < x2

−   1∆x   x2  < x < x3

0   x ≥ x3

,

y

φ3(x) = 0 0 < x < x2

1∆x   x2  < x < x3

−   1∆x   x3  < x < x4

.

Calculando las integrales, se tiene   10

4x2 − 8x + 1

φ1(x) dx

=

   x10

x

∆x

4x2 − 8x + 1

 dx +

   x2x1

(x − x1)

∆x

4x2 − 8x + 1

φ1(x) dx

=   1∆xx21 − 4x31 + 43 x41 −  13 x1x2 3 − 12x2 + 4x22

+ 16 x223 − 16x2 + 6x22

,

171

Page 173: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 173/250

Capítulo 6. Introducción a los elementos finitos

   104x

2

− 8x + 1φ2(x) dx

=

   x2x1

(x − x1)

∆x

4x2 − 8x + 1

 dx +

   x3x2

(x3 − x)

∆x

4x2 − 8x + 1

φ1(x) dx

=  1

6∆x

3x2

1 − 8x31 + 2x4

1 − 2x1x2

3 − 12x2 + 4x2

2

− 6x2x3

−8x32 (4 + x3) + 6x2

2 (1 + 4x3) + x23

3 − 8x3 + 2x2

3

,

   10

4x2 − 8x + 1

φ3(x) dx

=

   x3x2

(x − x2)

∆x

4x2 − 8x + 1

 dx +

   1x3

(1 − x)

∆x

4x2 − 8x + 1

φ1(x) dx

=  1

6∆x

−3 + 3x22 − 8x3

2 + 2x42 − 6x3 + 30x2

3

−40x33 + 12x4

3 − 2x2x3

3 − 12x3 + 4x2

3

.

   10

φ1φ1  dx =   10

φ2φ2  dx =   10

φ3φ3  dx =   2∆x

  ,

   10

φ1φ2  dx = −   1

∆x,

   10

φ1φ3  dx = 0,

   10

φ2φ3  dx = −   1

∆x.

6.5 Ejercicios propuestos

1. Plantea el sistema de ecuaciones que se ha de resolver si se utiliza el métodode Rayleigh-Ritz lineal para discretizar el problema

−d2 y

dx2  = 4x2 − 8x + 1  ,   0 < x < 1  ,

con las condiciones de contorno  y(0) = y(1) = 0.

2. Dado el problema de contorno

−  ddxex  dydx

+ ex y =  x,   0 < x < 1, y(0) = y(1) = 0.

172

Page 174: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 174/250

6.5 Ejercicios propuestos

Obtén el sistema de ecuaciones que hay que resolver si se quiere aplicarel método de Rayleigh-Ritz dividiendo el intervalo   [0, 1]  en 4 subintervalos

iguales.3. Obtén el método de Rayleigh-Ritz para el problema

− (a(x)u(x)) = f (x) ,   0 < x < 1  ,

con las condiciones  u(0) = 0,  u(1) = 0.

173

Page 175: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 175/250

Page 176: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 176/250

Parte II

Ejercicios con  Matlab

Page 177: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 177/250

Page 178: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 178/250

Capítulo 7

Resolución de sistemas deecuaciones lineales con  Matlab

Vamos a aprender a resolver sistemas de ecuaciones lineales con Matlab utilizandotanto las distintas instrucciones que dispone este programa como creando nuestraspropias funciones.

7.1 Introducción

Vamos a centrarnos en la resolución de sistemas de la forma

Ax =  b,

siendo A una matriz cuadrada  n × n, y  x y  b vectores con  n componentes.

Como se ha visto a lo largo del capítulo 2, hay dos tipos de métodos para obtener

una solución numérica de un sistema de ecuaciones, los métodos directos y losmétodos iterativos. Los métodos directos son, generalmente, variantes del métodode Gauss y para utilizarlos es necesario conocer explícitamente los elementos dela matriz. Los métodos iterativos obtienen una aproximación numérica tras unnúmero finito de iteraciones. Para utilizar estos métodos es suficiente conocer unmétodo para realizar el producto de la matriz de coeficientes por un vector.

177

Page 179: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 179/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

7.2 Métodos directos

Los métodos directos para la resolución de ecuaciones están implementados en elnúcleo de  Matlab, de forma que resulten lo más eficientes posibles.

La forma más usual de resolver un sistema de ecuaciones en  Matlab es haciendouso del operador \ como mostramos a continuación. Así, por ejemplo, para resolverel sistema

x1 − x2 + 3x4   = 02x1 + x2 − x3 + x4   = 1

3x1 − x2 − x3 + 2x4   =   −3−x1 + 2x2 + 3x3 − x4   = 4

(7.1)

se introducen las instrucciones

A = [ 1 , - 1 , 0 , 3 ;

2, 1, -1, 1;

3, -1, -1, 2;

-1, 2, 3,-1];

b=[0;1;-3;4];

x=A\b

obteniendo

x =

-1.0000

2.0000

-0.0000

1.0000

por tanto, la solución del sistema (7.1) es  x = (−1, 2, 0, 1)T.

El operador \  tiene implementados distintos algoritmos de forma que, cuando  Aes cuadrada:

•   Si  A es una matriz triangular usa el método de sustitución regresiva o pro-gresiva para resolver el sistema.

•   Si  A es simétrica trata de calcular una descomposición de Cholesky de  A.

•   Si  A  no es simétrica o la descomposición de Cholesky falla, se usa un algo-ritmo de Gauss con pivotación parcial.

•   Si  A es singular da un error.178

Page 180: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 180/250

7.2 Métodos directos

7.2.1 Errores y número de condición

Hay sistemas en los que un pequeño cambio en los coeficientes produce un grancambio en la solución. Estos sistemas se llaman mal condicionados .

Por ejemplo, si consideramos el sistema

  x   +   y   = 2x   + 1.0001y   = 2.0001

Para obtener la solución con  Matlab escribimos

A=[1,1;1,1.0001];b=[2;2.0001];

A\b

y obtenemos

ans =

1.0000

1.0000

es decir, su solución exacta es  x = 1, y = 1.

Si cambiamos un poco el término independiente, por ejemplo  x   +   y   = 2x   + 1.0001y   = 2.0002

Resolvemos el nuevo sistema con  Matlab escribiendo

A=[1,1;1,1.0001];

b=[2;2.0002];

A\b

que nos proporciona la solución

ans =

-0.0000

2.0000

179

Page 181: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 181/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

con lo que la solución cambia a  x  = 0, y  = 2. Esto indica que el sistema es muysensible a errores de redondeo. Esta sensibilidad la podemos medir con el número

de condición de la matriz de coeficientes  A.El número de condición de una matriz se puede calcular con la función de  Matlab

cond( ). Los resultados serán valores mayores o iguales a 1. Si el número decondición proporcionado es cercano a 1, la matriz estará bien condicionada, y sise aleja estará mal condicionada.

En nuestro ejemplo

cond(A)

proporciona

ans =

4.0002e+004

Esta respuesta nos dice que pequeños errores o cambios en el sistema puedenproducir grandes errores en la solución. Mientras que la matriz

A=[1,2;3,-1];

cond(A)

ans =

1.4561

está bien condicionada. Comprobémoslo resolviendo los sistemas cuya matriz decoeficientes es  A y el vector de términos independientes  b y  b1, respectivamente

format long

b=[3;1];

b1=[3.0001;1];

A\b

A\b1

ans =

0.714285714285714

1.142857142857143

180

Page 182: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 182/250

7.2 Métodos directos

ans =

0.714300000000000

1.142900000000000

Observamos que un pequeño cambio en los datos nos ha proporcionado práctica-mente la misma solución.

7.2.2 Factorización LU

Matlab  nos proporciona la factorización  LU  de una matriz mediante la función

lu( ). Si escribimos

format short

A=magic(3);

[L,U]=lu(A)

obtenemos

L =

1.0000 0 0

0.3750 0.5441 1.0000

0.5000 1.0000 0

U =

8.0000 1.0000 6.0000

0 8.5000 -1.0000

0 0 5.2941

observamos que la matriz  L obtenida no es triangular inferior. Esto significa queMatlab  ha aplicado pivotación parcial en la obtención de las matrices y en lamatriz   L   está incluida dicha permutación. Se cumple   LU   =   A, como podemoscomprobar

L*U

A

ans =

181

Page 183: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 183/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

8 1 6

3 5 74 9 2

A =

8 1 6

3 5 7

4 9 2

Pero esta descomposición no nos permite resolver el sistema mediante dos sistemastriangulares. Si hay permutaciones de filas, y queremos L  y  U  matrices triangularinferior y superior, respectivamente, escribiremos

[L,U,P]=lu(A)

L =

1.0000 0 0

0.5000 1.0000 0

0.3750 0.5441 1.0000

U =

8.0000 1.0000 6.0000

0 8.5000 -1.0000

0 0 5.2941

P =

1 0 0

0 0 1

0 1 0

en este caso se cumple  P A =  LU , como podemos comprobar

P*A

L*U

182

Page 184: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 184/250

7.2 Métodos directos

ans =

8 1 64 9 2

3 5 7

ans =

8 1 6

4 9 2

3 5 7

Una vez tenemos la descomposición, resolvemos por sustitución progresiva el sis-tema

Ly =  P b

y la solución del sistema original la obtenemos resolviendo por sustitución regresivael sistema

U x =  y

Podemos resolver el sistema por sustitución regresiva definiendo una función conMatlab, por ejemplo,  susreg.m ,

function [x]=susreg(U,b)

n=length(b);

x=zeros(n,1);

for k=n:-1:1

x(k)=b(k)/U(k,k);

for i=1:k-1

b(i) = b(i)-x(k)*U(i,k);

end

end

Un ejemplo:

a=[1,2;0,1]

b=[1;1]

susreg(a,b)

a =

1 2

0 1

183

Page 185: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 185/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

b =

1

1

ans =

-1

1

De forma análoga se puede definir una función, que podemos llamar   susprog.m 

para resolver por sustitución progresiva un sistema triangular inferior. Se proponecomo ejercicio.

7.2.3 Factorización de Cholesky

Cuando la matriz  A  es simétrica y definida positiva admite una factorización deCholesky, esto es, una factorización

A =  LLT = U TU .

La función de  Matlab  chol( ) realiza esta descomposición en caso de ser posibley nos proporciona una matriz triangular superior. Así, si escribimos

A=pascal(7);

U=chol(A)

calculamos de descomposición de Cholesky de una matriz de Pascal de dimensión 7,que es simétrica y definida positiva, obteniendo

U =

1 1 1 1 1 1 1

0 1 2 3 4 5 6

0 0 1 3 6 10 15

0 0 0 1 4 10 20

0 0 0 0 1 5 15

0 0 0 0 0 1 6

0 0 0 0 0 0 1

184

Page 186: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 186/250

7.2 Métodos directos

Comprobamos la descomposición,

A

A =

1 1 1 1 1 1 1

1 2 3 4 5 6 7

1 3 6 10 15 21 28

1 4 10 20 35 56 84

1 5 15 35 70 126 210

1 6 21 56 126 252 462

1 7 28 84 210 462 924

transpose(U)*U

ans =

1 1 1 1 1 1 1

1 2 3 4 5 6 7

1 3 6 10 15 21 28

1 4 10 20 35 56 84

1 5 15 35 70 126 2101 6 21 56 126 252 462

1 7 28 84 210 462 924

como es un caso particular de descomposición LU , procederíamos a resolver prime-ro el sistema triangular inferior por sustitución progresiva y finalmente el triangularsuperior por sustitución regresiva.

En caso de no poder realizar la descomposición de Cholesky,  Matlab nos propor-ciona un aviso

A=[1,2;-1,2]

chol(A)

A =

1 2

-1 2

??? Error using ==> chol

Matrix must be positive definite.

185

Page 187: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 187/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

7.3 Métodos iterativos

Dado el sistema  Ax  =  b  consideramos la siguiente descomposición de la matriz decoeficientesA =  D − E − F 

donde

•   D  la diagonal de  A.

• −E  la parte estrictamente triangular inferior de  A.

• −F  la parte estrictamente triangular superior de  A.

Además, consideraremos que los elementos de la diagonal de D  son todos no nulos.

7.3.1 Método de Jacobi

El método de Jacobi en forma matricial se escribe como

Dxk = (E  + F )xk−1 + b, k = 1, 2, . . .

Una posible implementación en   Matlab   del método de Jacobi es la siguientefunción  jacobi.m 

function [x]=jacobi(A,b)

% esta funcion implementa el metodo de Jacobi basico

tol=1.e-5;

itmax=1000;

[n,n]=size(A);x0=zeros(n,1);

it=0;

error=1000.0;

D=diag(diag(A));

D1=inv(D);

while it<=itmax & error >tol

it=it+1;

x=D1*(D-A)*x0+D1*b

verr=x-x0;

error=norm(verr)/norm(x);

186

Page 188: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 188/250

7.3 Métodos iterativos

x0=x;

end

x=x0;disp(’el numero de iteraciones es’)

disp(it)

disp(’el error es’)

disp(error)

Por ejemplo, si escribimos

a=[4,1,0;1,4,1;0,1,4];

b=[-3;10;1];

jacobi(a,b)

obtenemos

el numero de iteraciones es

12

el error es

8.0334e-06

ans =

-1.5000

3.0000

-0.5000

7.3.2 Método de Gauss-Seidel

Un método de Gauss-Seidel en forma matricial es

(D − E )xk = F xk−1 + b

Teniendo en cuenta que la instrucción de  Matlab  tril(A) proporciona la partetriangular inferior de la matriz   A, y   triu(A)   la parte triangular superior, unaposible implementación del método de Gauss-Seidel es:

function [x]=gaussseidel(matriz,vector)

% esta rutina implementa el metodo de Gauss-Seidel basico

187

Page 189: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 189/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

tol=1.e-5;

itmax=1000;

[n,n]=size(matriz);x0=zeros(n,1);

it=0;

error=1000.0;

% calculo de las matrices

D=diag(diag(matriz));

E=-(tril(matriz)-D);

F=-(triu(matriz)-D);

while it<=itmax & error >tol

it=it+1;

x=(D-E)\(F*x0+vector);

error=norm(x-x0)/ norm(x);

x0=x;

end

disp(’el numero de iteraciones es’)

disp(it)

disp(’el error es’)

disp(error)

Para el ejemplo anterior, escribiendo

a=[4,1,0;1,4,1;0,1,4];

b=[-3;10;1];

gaussseidel(a,b)

obtenemos

el numero de iteraciones es7

el error es

5.5366e-06

ans =

-1.5000

3.0000

-0.5000

188

Page 190: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 190/250

7.3 Métodos iterativos

Observamos que el método de Gauss-Seidel ha convergido con menos iteracionesque el método de Jacobi.

7.3.3 Método SOR

Un método SOR en forma matricial es

(D − ωE )xk = (ωF  + (1 − ω)D) xk−1 + ωb

con  0  < ω < 2.

Una posible implementación en  Matlab de este método es:

function [x]=sor1(matriz,vector,w);

[n,n]=size(matriz);

tol=1.e-5;

itmax=300;

x0=zeros(n,1);

it=0;

error=1000.0;

% calculo de las matrices

D=diag(diag(matriz));

E=-(tril(matriz)-D);

F=-(triu(matriz)-D);

while it<=itmax & error >tol

it=it+1;

x=(D-w*E)\(w*F*x0+(1-w)*D*x0+w*vector);

error=norm(x-x0)/ norm(x);

x0=x;

end

disp(’el numero de iteraciones es’)

disp(it)

disp(’el error es’)

disp(error)

Para el ejemplo anterior, escribiendo

a=[4,1,0;1,4,1;0,1,4];

b=[-3;10;1];

sor1(a,b,1.1)

189

Page 191: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 191/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

obtenemos

el numero de iteraciones es6

el error es

8.6727e-06

ans =

-1.5000

3.0000-0.5000

Si cambiamos el valor de  w , por ejemplo, hacemos

sor1(a,b,1.7)

el número de iteraciones necesario para obtener la solución es 35.

Matlab  dispone de funciones implementadas para la resolución de sistemas de

ecuaciones lineales mediante métodos iterativos como  bicg, bicgstab, cgs, gmres,lsqr,  pcg, etc., pero se basan en métodos más complejos que los que hemos estu-diado en la teoría y sobrepasan las pretensiones del curso.

7.4 Ejercicios con  Matlab

1. Adapta la función que hemos construido,   susreg.m  para que resuelva unsistema por sustitución progresiva. Llama susprog.m  a la función construida.

2. Considera el siguiente sistema:

4   −1 0 0 0−1 4   −1 0 0

0   −1 4   −1 00 0   −1 4   −10 0 0   −1 4

x1

x2

x3

x4

x5

=

10000

.

Resuélvelo utilizando la descomposición  LU  y la de Cholesky de la matrizdel sistema.

Nota: tienes que utilizar las funciones susreg.m 

 y susprog.m 

 para resolverlos sistemas triangulares.190

Page 192: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 192/250

7.4 Ejercicios con   Matlab

3. Implementa el algoritmo SSOR simétrico, que en forma matricial es:

(D−

ωE )xk−1/2 = (ωF  + (1−

ω)D)xk−1 + ωb,(D − ωF )xk = (ωE  + (1 − ω)D)xk−1/2 + ωb.

Resuelve el ejercicio 2 con el método SSOR con distintos valores  0 < ω < 2.

4. Una viga horizontal flexible empotrada en un extremo A y libre en el extremoB   se considera que tiene cuatro grados de libertad traslacional  u1, . . . , u4,donde  ui  se localiza a   i/5  de la distancia de  A  a  B. Si se aplica una cargaunitaria en  u3, el vector  u = (u1, u2, u3, u4)

T, satisface el sistema

Ku =  r ,

donde la matriz de rigidez  K  y el vector de cargas  r, vienen dadas por

K  =

5   −4 1 0−4 6   −4 1

1   −4 6   −40 1   −4 5

, r =

00

EI 0

,

la constante  EI  depende del material de la viga y de su geometría. Calculau cuando  EI  = 1.

5. La distribución de temperatura en el estado estacionario de una placa planase puede aproximar en 9 puntos internos aplicando la ecuación de Laplacediscretizada en cada punto. Si se mantienen los lados de una placa cuadradaa temperaturas constantes de 0◦ C y 100◦ C, las temperaturas en los 9 puntosse pueden obtener como la solución del siguiente sistema

−4T 1 + T 2 + T 4   =   −100

T 1 − 4T 2 + T 3 + T 5   =   −100

T 2 − 4T 3 + T 6   =   −200

T 1 − 4T 4 + T 5 + T 7   = 0T 2 + T 4 − 4T 5 + T 6 + T 8   = 0

T 3 + T 5 − 4T 6 + T 9   =   −100

T 4 − 4T 7 + T 8   = 0

T 5 + T 7 − 4T 8 + T 9   = 0

T 6 + T 8 − 4T 9   =   −100

Obtén la temperatura en los distintos puntos de la placa y haz una gráficade la temperatura en la placa.

191

Page 193: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 193/250

Capítulo 7. Resolución de sistemas de ecuaciones lineales con   Matlab

6. Construye el sistema de ecuaciones que han de cumplir los coeficientes de unpolinomio de tercer grado

y =  c3x3 + c2x2 + c1x + c0   ,

para que pase por los puntos (12, 8), (3, 27), (6, 64), (5, 125). Utiliza la funcióncond( )   para obtener el número de condición de la matriz del sistema.Obtén la solución del sistema y dibuja los puntos y el polinomio obtenido.

192

Page 194: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 194/250

Capítulo 8

Interpolación y aproximación defunciones con  Matlab

Vamos a ver cómo utilizar las distintas instrucciones que dispone  Matlab  parala interpolación resolviendo algunos ejemplos. También crearemos nuestra propiafunción para el cálculo de diferencias divididas.

Consideremos un conjunto de pares de números reales

(x0, f 0),   (x1, f 1), . . . (xn, f n),

que frecuentemente vendrán expresados en una tabla de valores,

x0   x1   · · ·   xn

f 0   f 1   · · ·   f n

La interpolación trata de resolver uno o ambos de los siguientes problemas:

•  Encontrar una función  f (x) tal que  f (xi) = f i, i = 0, 1, . . . , n .

•   Calcular  f (x) para un punto  x = xi,  i = 0, 1, . . . , n.

Los tipos de interpolación que trabajaremos son la polinómica e interpolación porsplines. Por ello, empezamos viendo algunas consideraciones sobre polinomios enMatlab.

193

Page 195: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 195/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

8.1 Polinomios en  Matlab

Un polinomio de grado n se representa en Matlab

 mediante un vector de longitudn + 1  cuyos elementos son los coeficientes del polinomio ordenados en potenciasde mayor a menor grado. Por ejemplo, el polinomio

 p(x) = 4x4 − 20x2 + 2x

se representa en  Matlab por el vector

p=[4,0,-20,2,0];

Para operar con polinomios en  Matlab  hay que tener en cuenta que estos sonvectores. Así, para sumar o restar polinomios tendremos que representarlos comovectores de la misma longitud, rellenando con los ceros necesarios por la izquierdacuando haga falta. Si consideramos el polinomio

q (x) = 3x3 − x ,

y queremos calcular p(x) + q (x), escribimos

q=[0,3,0,-1,0];

p+q 

obteniendo el resultado

ans =

4 3 -20 1 0

que corresponde al polinomio  4x4 + 3x3 − 20x2 + x.

Si definimos

q1=[3,0,-1,0];

p+q1

obtenemos el resultado

ans =

Error using ==> plus

Matrix dimensions must agree.

194

Page 196: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 196/250

8.1 Polinomios en   Matlab

Matlab nos advierte que los vectores utilizados no corresponden a polinomios delmismo grado.

El producto de polinomios se realiza con la instrucción  conv( , ). Así si hacemos

conv(p,q)

conv(p,q1)

obtenemos

ans =

0 12 0 -64 6 20 -2 0 0

ans =12 0 -64 6 20 -2 0 0

Para evaluar un polinomio en un punto usaremos el comando  polyval( ). Así, porejemplo, si queremos calcular p(2), siendo p(x) el polinomio definido anteriormente,escribimos

polyval(p,2)

obteniendo

ans =

-12

La instrucción anterior nos permite representar un polinomio en cierto intervalo,por ejemplo,

x=-4:0.01:4;

y=polyval(p,x);plot(x,y)

obteniendo la Figura 8.1.

Las raíces de un polinomio se obtienen mediante la instrucción   roots( ), porejemplo,

raices=roots(p)

nos da el resultado195

Page 197: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 197/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

−4 −3 −2 −1 0 1 2 3 4−100

0

100

200

300

400

500

600

700

800

Figura 8.1:  Gráfica del polinomio  p(x) = 4x4− 20x2 + 2x

raices =

0-2.2845

2.1843

0.1002

que son las raíces del polinomio  p(x). Podemos reconstruir un polinomio a partirde sus raíces con la instrucción

poly(raices)

obteniendo

ans =

1.0000 -0.0000 -5.0000 0.5000 0

Y si queremos obtener el polinomio inicial,  p(x), como el coeficiente que acompañaa la potencia de mayor grado es 4, escribimos

4*poly(raices)

196

Page 198: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 198/250

8.2 Interpolación polinómica 

obteniendo

ans =4.0000 -0.0000 -20.0000 2.0000 0

8.2 Interpolación polinómica

Para interpolar de forma polinómica podemos utilizar las funciones de  Matlab

interp1( )  y   polyfit( ). Estudiaremos su utilización y distintas opciones conun ejemplo. Los valores de la función sen(x) los conocemos para múltiplos de  π/3.Haciendo

x=0:pi/3:3*pi;

y=sin(x)

se obtienen los valores

y =

Columns 1 through 6

0 0.8660 0.8660 0.0000 -0.8660 -0.8660

Columns 7 through 10

-0.0000 0.8660 0.8660 0.0000

Podemos representar los valores anteriores mediante la instrucción

plot(x,y,’o’)

obteniendo la Figura 8.2.

Veamos cómo obtener aproximaciones a la función   sen(x)   a partir de los datosdados anteriormente.

La sintaxis de la función   interp1( ) es  yi=interp1(x,y,xi,’metodo’) donde  x

es el vector de abcisas de la tabla cuyos valores están ordenados de forma crecienteo decreciente, y son los correspondientes valores de las ordenadas, xi son los valoresde las abcisas donde se quieren obtener las interpolaciones,  yi  nos proporcionanlos valores interpolados para los  xi  y  metodo es un argumento opcional que puedetomar los siguientes valores:

197

Page 199: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 199/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

0 2 4 6   8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.2:  Gráfica de los valores de la función  sen(x).

•   nearest

•   linear

•   spline

•   cubic o  pchip

Vamos a calcular valores aproximados de la función sen(x) en las abcisas xi=pi/6:pi/3:3*pi

a partir de los valores indicados anteriormente,

•   Usando  nearest, hacemos

yn=interp1(x,y,xi,’nearest’);

plot(x,y,’o’,xi,yn,’*’)

obteniendo la Figura 8.3.

Como podemos apreciar, a cada punto  x  se le asigna el valor de la ordenadasoporte correspondiente a la abcisa soporte más próxima. Esto se puede vermejor si interpolamos más puntos,

xi2=0:0.01:3*pi;

yn2=interp1(x,y,xi2,’nearest’);

plot(x,y,’o’,xi2,yn2)

198

Page 200: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 200/250

8.2 Interpolación polinómica 

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.3:   Interpolación del  sen(x)  usando la opción  nearest.

que da como resultado la Figura 8.4.

•   Usando  linear, hacemos

yl=interp1(x,y,xi,’linear’);

plot(x,y,’o’,xi,yl,’*’)

obteniendo la Figura 8.5. En este caso  Matlab  construye la poligonal quepasa por los puntos soporte.

•   Usando  spline, hacemos

ys2=interp1(x,y,xi2,’spline’);plot(x,y,’o’,xi2,ys2)

y obtenemos la Figura 8.6. En este caso la función interpolante es un poli-nomio a trozos de grado 3. Se eligen de forma que la función sea de claseC 2, en los puntos soporte. Además, las dos condiciones adicionales que senecesitan se obtienen exigiendo que el primer y segundo polinomio coincidanasí como el penúltimo y el último. Este spline es conocido como "no-nudo".Matlab  puede calcular otro tipo de splines con la instrucción   spline( ),como veremos más adelante.

199

Page 201: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 201/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.4:  Interpolación del  sen(x)  usando la opción  nearest  con más puntos.

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.5:  Interpolación del  sen(x)  usando la opción  linear.

200

Page 202: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 202/250

8.2 Interpolación polinómica 

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.6:   Interpolación del  sen(x)  usando la opción  spline.

•  Usando  cubic o  pchip, se usan las instrucciones

yc2=interp1(x,y,xi2,’cubic’);

plot(x,y,’o’,xi2,yc2)

obteniendo la Figura 8.7. Podemos comprobar que se obtiene el mismo re-sultado con el método  pchip. Si no definimos el método a utilizar se usa laopción  linear.

Matlab  dispone de la orden   polyfit( )  para resolver el problema de ajustardatos a una curva por el método de mínimos cuadrados. También podemos utilizardicha instrucción para obtener el polinomio interpolador de grado menor o igualque n que interpola  n + 1  datos. Para ello, le requeriremos un ajuste exacto. Así,la instrucción

pol=polyfit(x,y,length(x)-1)

nos proporcionará el polinomio interpolador que pasa por los  n+1 datos de abcisasx y ordenadas  y.

201

Page 203: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 203/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.7:  Interpolación del  sen(x)  usando la opción  cubic.

En nuestro ejemplo, si hacemos

pol=polyfit(x,y,length(x)-1)

obtenemos

Warning: Polynomial is badly conditioned. Add points with distinct X

values, reduce the degree of the polynomial, or try

centering and scaling as described in HELP POLYFIT.

pol =

Columns 1 through 60.0000 -0.0000 0.0006 -0.0080 0.0516 -0.1359

Columns 7 through 10

0.0801 -0.2362 1.0899 -0.0000

que nos proporciona el polinomio interpolador. Para calcular el polinomio de in-terpolación en las abcisas que queremos interpolar y mostrar el resultado gráfica-mente, escribimos

yp=polyval(pol,xi);

plot(x,y,’o’,xi,yp,’*’)

202

Page 204: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 204/250

8.2 Interpolación polinómica 

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.8:   Interpolación del  sen(x)  usando   polyfit( ).

y obtenemos la gráfica mostrada en la Figura 8.8.

Podemos evitar los problemas de mal condicionamiento utilizando unas abcisasdesplazadas, normalizándolas para que su desviación típica sea la unidad. Esto lopodemos conseguir con la siguiente instrucción

[p,s,mu]=polyfit(x,y,length(x)-1)

que da los resultados

p = Columns 1 through 60.0000 -0.1517 -0.0000 1.2739 0.0000 -4.1391

Columns 7 through 10

-0.0000 5.0144 0.0000 -0.9997

s =

R: [10x10 double]

df: 0

normr: 5.8620e-015

 mu =

4.7124

3.1705

203

Page 205: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 205/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figura 8.9:  Interpolación del  sen(x)  usando   polyfit( )  mejorando el mal condiciona-miento.

El polinomio  p que se obtiene está referido a la nueva variable  u = (x − x)/σ, loque ha de tenerse en cuenta para evaluarlo respecto a los datos iniciales. Para ello,escribimos

ug=(xi-mu(1))/mu(2);

yg=polyval(p,ug);

plot(x,y,’o’,xi,yg,’*’)

obteniendo la Figura 8.9.

Vamos a comparar los resultados obtenidos calculando los errores cometidos porlos distintos métodos. Empezamos calculando los valores exactos

yexact=sin(xi);

A continuación calculamos el error cometido en cada uno de los puntos al realizarla interpolación con la opción  nearest

errorn=yexact-yn;

204

Page 206: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 206/250

8.2 Interpolación polinómica 

Para tener una idea del error calculamos el máximo error cometido en todos lospuntos de  xi con la orden

norm(errorn,inf)

obteniendo

ans =

0.5000

Una medida que recoge todos los errores se puede obtener calculando la norma

euclídea del vector error,

norm(errorn)

ans =

1.0439

De forma análoga obtenemos ambos errores para los distintos tipos de interpolaciónque hemos utilizado.

Podemos resumir los resultados obtenidos en la siguiente tabla

Método Máximo error en un punto Norma euclídea del error

nearest   0.5000 1.0439linear   0.1340 0.2842spline   0.0275 0.0428cubic   0.1340 0.2808

polinomio int.   0.0090 0.0131

En este caso el menor error se comete con el polinomio interpolador. Pero esto notiene porqué ser siempre así. Dependiendo del tipo de datos será más adecuadoun tipo de interpolación u otro. Como se ha visto en la teoría, los polinomios degrado alto suelen dar problemas si la función no se comporta como un polinomio,esto se puede observar claramente con la función de Runge.

205

Page 207: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 207/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

1

1.2

1.4

nodos

no−nudo

primera derivada

Figura 8.10:   Interpolación del  sen(x)   usando diferentes splines.

8.3 Interpolación mediante splines

Con la orden   spline( )  podemos calcular, además de los splines "no-nudo"quenos permite calcular la función   interp1( )   , el spline cuya primera derivada enlos extremos del intervalo de interpolación tiene valores conocidos.

Si consideramos el ejemplo que hemos estado trabajando, sabemos que sen(0) = 1,sen(3π) = −1. Vamos a calcular   ys1  que son los valores interpolados utilizandouna spline "no-nudo", e   ys2   los valores obtenidos incluyendo el valor de las pri-meras derivadas en los extremos. Para ello, hacemos

x=[0,0.5,1,3];y=sin(x);

xi=0:.1:3;

ys1=spline(x,y,xi);

y2=[1,y,-1];

ys2=spline(x,y2,xi);

plot(x,y,’o’,xi,ys1,’r’,xi,ys2,’b’)

legend(’nodos’,’no-nudo’,’primera derivada’)

obteniendo la Figura 8.10.

206

Page 208: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 208/250

8.4 Diferencias divididas

La instrucción   spline( )  puede usarse con sólo dos argumentos. En ese caso elresultado es una estructura con toda la información sobre el spline. La intrucción

ys3=spline(x,y)

da el resultado

ys3 =

form: ’pp’

breaks: [0 0.5000 1 3]

coefs: [3x4 double]

pieces: 3

order: 4

dim: 1

que nos dice que se trata de un polinomio a trozos (pp: piecewise polynomial), delos puntos donde cambia el polinomio, el tamaño de la matriz que almacena loscoeficientes, el número de polinomios, el número de coeficientes de cada polinomioy la dimensión (una variable).

8.4 Diferencias divididas

Podemos crear una función para calcular las diferencias divididas, que llamaremosdifdiv.m  y otra función para que calcule la interpolación en un punto utilizandodichas diferencias divididas, que llamaremos  polynew.m . Por ejemplo, la funcióndifdiv.m  se puede definir de la siguiente forma,

function D=difdiv(x,y)

% Calcula las diferencias divididas para los puntos soporte (x,y)

% El resultado es una matriz con NaN’s donde no corresponde que

% se calcule nada[m,n]=size(x);

if m==1 x=x’; end

[m,n]=size(y);

if m==1 y=y’; end

[m,n]=size(x);

[m1,n1]=size(y);

if m~=m1 error(’Error en los datos’), end

if n~=1 error(’Error en los datos’), end

if n1~=1 error(’Error en los datos’), end

clear m1 n1

D=NaN*ones(m);

207

Page 209: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 209/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

D(:,1)=y;

for j=2:m 

for i=j:m D(i,j)=(D(i,j-1)-D(i-1,j-1))/(x(i)-x(i-j+1));

end

end

y la función  polynew.m 

function yi=polynew(D,x,xi)

[m,~]=size(D);

yi=D(end,end);

for k=1:m-1yi=yi*(xi-x(m-k))+D(m-k,m-k);

end

Evaluemos el polinomio interpolador y el polinomio obtenido con diferencias divi-didas en la abcisa 2.1

pol=polyfit(x,y,length(x)-1);

polyval(pol,2.1)

D=difdiv(x,y)

polynew(D,x,2.1)

obteniendo los resultados

ans =

0.9846

D =

0 NaN NaN NaN

0.4794 0.9589 NaN NaN

0.8415 0.7241 -0.2348 NaN0.1411 -0.3502 -0.4297 -0.0650

ans =

0.9846

que también muestran la tabla de diferencias divididas.

208

Page 210: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 210/250

8.5 Ejercicios con   Matlab

8.5 Ejercicios con  Matlab

1. El primer elemento de la estación orbital internacional incluía el sistemade manipulación remota canadiense: Canadian Mobile Servicing Center. Lossistemas de manipulación remota utilizan un avanzado sistema de controlque guía un brazo manipulador hasta posiciones predeterminadas. Uno delos requisitos de dicho sistema de control es el diseño de una trayectoria paraque el brazo se mueva de un sitio a otro de manera que se eviten movimientosbruscos que podrían causar que se desprendan los objetos transportados ose dañe el propio brazo robótico.

Supongamos que tenemos un brazo robótico y tenemos almacenados en unatabla algunos puntos de la trayectoria del brazo. Dichos puntos están orde-

nados para que el brazo se mueva hasta su posición para coger un objetoy luego vuelva a la posición original. Supondremos además que los puntosintermedios incluidos en la trayectoria tratan de evitar choques del brazo obien guiarlo hacia sensores que recogen información. Así, cada punto tendrátres datos asociados: las coordenadas  x  e   y  de la posición del brazo, y untercer dato que denotaremos acción, codificado del siguiente modo

Acción Significado0   posición de partida1   posición intermedia

2   posición de coger objeto3   posición de soltar objeto

El problema consiste en encontrar una curva suave mediante interpolaciónde manera que sirva de guía para el brazo robótico, partiendo de un puntodeterminado, se mueva a una posición concreta para coger un objeto, lodeje en otra posición y vuelva al punto de partida. Estas posiciones y otrasintermedias las proporcionamos en la siguiente tabla:

x y Acción0 0 02 4 16 4 17 6 2

12 7 115 1 38   −1 14   −2 10 0 0

Representa los puntos anteriores uniéndolos mediante rectas. Los movimien-tos obtenidos serían bruscos. Si queremos redefinir la trayectoria necesitamos209

Page 211: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 211/250

Capítulo 8. Interpolación y aproximación de funciones con  Matlab

al menos definir dos trozos, uno para la ida y otro para la vuelta. Define estasdos trayectorias y dibuja las distintas trayectorias que se obtienen al aplicar

los distintos tipos de interpolación que sabes realizar con Matlab

.Divide ahora la trayectoria de ida en dos: la primera desde el inicio hastael objeto a recoger y otra desde que se recoge el objeto hasta que se deja.Aplica las distintas opciones de interpolación y representa las trayectoriasobtenidas. Compara los resultados obtenidos.

2. En la siguiente tabla mostramos algunos valores tabulados de la función deerror, erf(x)

x   0.15 0.27 0.76 0.89 1.07 2.11erf(x)   0.1680 0.2974 0.7175 0.7918 0.8698 0.9972

a ) Construye un spline cúbico no-nodo que aproxime la función de error.Representa gráficamente dicho spline, junto con los datos tabulados.

b) Compara las aproximaciones obtenidas en x = 0.33, x = 0.92 y x = 2.05con los valores que  Matlab proporciona con la instrucción   erf( ).

c ) ¿Mejoran los resultados si utilizamos otro tipo de spline?

3. Interpola la función

f (x) =  1

1 + x2  ,

de dos modos, primero un conjunto de puntos   xn   = −5 + n,   yn   =   f (xn)con   n   = 0, 1, 2, . . . , 10, y luego utilizando otro conjunto de puntos,   xn   =5cos(πn/10),   yn   =   f (xn)  con   n   = 0, 1, 2, . . . , 10. Utiliza un polinomio degrado 10 para la interpolación de la función. Realiza una gráfica con las dosinterpolaciones y los valores de la función.

210

Page 212: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 212/250

Capítulo 9

Derivación e integración conMatlab

9.1 Derivación con  Matlab

Una primera aproximación de la derivada de una función en un punto se puedecalcular con el cociente incremental

f (t) ≈  f (t + h) − f (t)

h  .

Se va a usar este tipo de aproximación para estimar la derivada de una función apartir de una tabla de números. Consideremos la función  f (t) = 4 sen(t). Con lasinstrucciones

func = @(t)4.*sin(t);

dfunc = @(t)4.*cos(t);

tt = linspace(0,pi,100);

yy = func(tt);

dyy = dfunc(tt);

plotrange = [0 4 -5 5];

grid on;

axis(plotrange);

plot(tt,yy,’k’,tt,dyy,’r--’);

legend(’funcion’,’derivada’)

se obtiene la gráfica de la función y su derivada, que se muestran en la Figura 9.1.211

Page 213: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 213/250

Capítulo 9. Derivación e integración con  Matlab

0 0.5 1 1.5 2 2.5 3 3.5 4−5

−4

−3

−2

−1

0

1

2

3

4

5

funcion

derivada

Figura 9.1:  Función  f (t) = 4 sen(t)  y su derivada  f (t) = 4 cos(t).

Supongamos que de esta función se conocen los valores de la función que se recogenen la siguiente tabla junto con los valores de la derivada en esos puntos.

t   0 1.0472 2.0944 3.1416f (t)   0 3.4641 3.4641 0.0000f (t)   4.0 2.0 -2.0 -4.0

La instrucción y=diff(t) de  Matlab para los elementos de un vector  t1, t2, . . . tndevuelve otro vector cuyas componentes son  yi  = ti+1 − ti. Haciendo uso de estafunción podemos escribir

func = @(t)4.*sin(t);np = 4;

t = linspace(0,pi,np);

y=func(t);

dydt = diff(y)./diff(t);

tt = t(1:end-1);

plot(tt,dydt,’b-o’); % hacia atras

hold on

grid on

tt = t(2:end); % hacia delante

plot(tt,dydt,’g-s’)

tt = t(1:end-1) + diff(t)./2; % central

212

Page 214: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 214/250

9.1 Derivación con   Matlab

plot(tt,dydt,’k-*’);

legend(’dy/dt’,...

’dy/dt (delante)’,’dy/dt (atras)’,’dy/dt (central)’);

obteniendo las aproximaciones de la derivada que se recogen en la siguiente tabla.

Aproximación hacia delantet   0 1.0472 2.0944

f (t)   3.3080 0.0000 -3.3080Aproximación hacia detrás

t   1.0472 2.0944 3.1416f (t)   3.3080 0.0000 -3.3080

Aproximación del punto mediot   0.5236 1.5708 2.6180

f (t)   3.3080 0.0000 -3.3080

Estos resultados se resumen en la gráfica mostrada en la Figura 9.2.

 

Figura 9.2:  Función derivada  f (t) = 4 cos(t)  y sus aproximaciones.

Se puede estimar la derivada de la función en los puntos centrales utilizando laaproximación centrada

f  (ti) ≈   f i+1 − f i−1xi+1 − xi−1

.

213

Page 215: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 215/250

Capítulo 9. Derivación e integración con  Matlab

Podemos implementar este esquema para los puntos centrales haciendo

vec=[];for i=2:length(t)-1;

fp(i)= (y(i+1) -y(i-1))/(t(i+1) - t(i-1));

vec=[vec,[t(i);fp(i)]];

end

vec

y se obtiene el resultado

t   1.0472 2.0944

f (t)   1.6540 -1.6540

Hemos de tener en cuenta que la diferenciación numérica es muy sensible a po-sibles errores en los datos. Para poner de manifiesto esto consideremos los datoscorrespondiente a una función con cierto ruido

t   0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1f (t)   -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2

Podemos calcular la derivada de la función mediante las instrucciones

x = 0:0.1:1;

y = [-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];

x_FD = x(1:end-1);

y_FD = diff(y)./diff(x);

plot(x,y,’-s’,x_FD,y_FD,’--o’)

legend(’funcion’,’derivada’)

obteniendo la gráfica que se muestra en la Figura 9.3.Se observa que la derivada de la función tiene un mal comportamiento, para re-solver este problema se suele suavizar la función mediante alguna técnica. Unaposibilidad es ajustar la función mediante un polinomio de segundo grado y cal-cular la derivada derivando el polinomio. Podemos introducir las instrucciones

a = polyfit(x,y,2);

a_deriv = polyder(a);

y_d = polyval(a_deriv,X_FD);

plot(x_FD,y_FD,’--o’,X_FD,y_d,’.*’)

legend(’Con ruido’,’ajuste’)

214

Page 216: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 216/250

9.1 Derivación con   Matlab

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−5

0

5

10

15

20

25

30

funcion

derivada

Figura 9.3:  Función con ruido y su derivada.

obteniendo el resultado que se muestra en la Figura 9.4, donde se observa que elcompartamiento de la derivada mejora.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−5

0

5

10

15

20

25

30

Con ruido

ajuste

Figura 9.4:  Cálculo de la derivada suavizando la función.

215

Page 217: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 217/250

Capítulo 9. Derivación e integración con  Matlab

9.2 Integración con  Matlab

El Matlab

 dispone de una función que permite obtener integrales simbólicamente.Supongamos que se quiere obtener la integral   dx

(x + 3)(x − 1)(x2 + 1)  .

Primero se declara la variable  x  como una variable simbólica mediante la instruc-ción

syms x

y, posteriormente se hace uso de la función   int( )

int(x/(x+3)/(x-1)/(x^2+1))

obteniendo el resultado

1

8 log(x − 1) +

  3

40 log(x + 3) +

  i

20 −   1

10

log(x + i) −

  i

20 +

  1

10

log(x − i) .

Usando la función   int( ), se pueden calcular algunas integrales definidas. Así, si

queremos calcular    52

x dx

(x + 3)(x − 1)(x2 + 1)  ,   (9.1)

podemos escribir

syms x res

res=int(x/(x+3)/(x-1)/(x^2+1),2,5);

vpa(res,15)

obteniendo el resultado

0.0702964096897709

Una de las funciones de las que dispone  Matlab para aproximar integrales defi-nidas es las función   quad( ). Para utilizar esta función, primero hemos de definirel integrando. Por ejemplo para calcular la integral (9.1), podemos escribir

clear x

f1=inline(’x./((x+3).*(x-1).*(x.^2+1))’)

Q=quad(f1,2,5)

216

Page 218: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 218/250

9.2 Integración con   Matlab

obteniendo el resultado

0.070296459629483

Otra forma de definir el integrando y calcular la integral es

f2=@(x)x./((x+3).*(x-1).*(x.^2+1));

Q=quad(f2,2,5)

o bien, se construye una función

function y=mifunc(x)

y=x./((x+3).*(x-1).*(x.^2+1));

y luego se calcula la integral

Q=quad(@mifunc,2,5)

Se puede cambiar la precisión del cálculo de la integral usando un argumento másen la función   quad( ), así, podemos escribir

Q=quad(@mifunc,2,5,1e-10)

obteniendo el resultado

0.070296409691589

El siguiente programa implementa la Regla del Trapecio

function s=trapecio(f,a,b,M)

% Input - f es el integrando (es una cadena ’f’)% - a and b son los limites inferior y superior

% - M es el numero de subintervalos

%Output - es el valor de la integral

h=(b-a)/M;

s=0;

for k=1:(M-1)

x=a+h*k;

s=s+feval(f,x);

ends=h*(feval(f,a)+feval(f,b))/2+h*s;

217

Page 219: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 219/250

Capítulo 9. Derivación e integración con  Matlab

Podemos estimar el valor de la integral (9.1) mediante la Regla del Trapecio uti-lizando distinto número de subintervalos. Introduciendo las instrucciones

format long

s=trapecio(’mifunc’,2,5,10)

s=trapecio(’mifunc’,2,5,40)

s=trapecio(’mifunc’,2,5,80)

s=trapecio(’mifunc’,2,5,120)

obtenemos los resultados

0.071162694853645

0.070351048850790

0.070310075925561

0.070302484104059

El siguiente programa implementa la Regla de Simpson

function s=simpson(f,a,b,M)

% Input - f es el integrando (es una cadena ’f’)

% - a and b son los limites inferior y superior

% - M es el numero de subintervalos%Output - es el valor de la integral

h=(b-a)/(2*M);

s1=0;

s2=0;

for k=1:M

x=a+h*(2*k-1);

s1=s1+feval(f,x);

end

for k=1:(M-1)x=a+h*2*k;

s2=s2+feval(f,x);

end

s=h*(feval(f,a)+feval(f,b)+4*s1+2*s2)/3;

Para estimar el valor de la integral (9.1) utilizando la Regla de Simpson, se intro-ducen las instrucciones

format long

s=simpson(’mifunc’,2,5,10)

218

Page 220: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 220/250

9.3 Ejercicios con   Matlab

s=simpson(’mifunc’,2,5,40)

s=simpson(’mifunc’,2,5,80)

s=simpson(’mifunc’,2,5,120)

y se obtienen los resultados

0.070298512021709

0.070296418283818

0.070296410228200

0.070296409796175

Matlab

además dispone de una función llamada  trapz( ), que dados dos vectoresx e  y, nos permite estimar el valor de la integral   xnx1

y(x) dx .

Así la función   trapz( )  utiliza el método de los trapecios basado en la divisiónutilizada para definir el vector  x. De este modo, si queremos calcular

   π2

0

sen(x) dx ,

podemos escribir, por ejemplo,

x=0:pi/10:pi/2;

y=sin(x);

integral=trapz(x,y)

9.3 Ejercicios con  Matlab

1. Dada la función

f (x) = 5 cos(10x) + x3 − 2x2 − 6x + 10,

evalúa la función en los puntos,  x = 0, 0.5, 1, . . . , 10 y utilizando los valoresde la función en estos puntos estima distintas aproximaciones de la derivadade f (x) y compara los valores obtenidos con la derivada analítica. Repite loscálculos usando un paso  ∆x = 0.01.

219

Page 221: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 221/250

Capítulo 9. Derivación e integración con  Matlab

2. La distancia D  =  D(t) viajada por un objeto viene dada en la siguiente tabla

t D(t)

8.0 17.4539.0 21.460

10.0 25.75211.0 30.30112.0 35.084

Encuentra estimaciones para la velocidad del objeto.

3. La altura   q (t)  en el tiempo   t  en un depósito cilíndrico de radio   R   = 1mcon un agujero circular de radio  r = 0.1m en el fondo se ha medido cada  5sobteniéndose los siguientes valores

t   0 5 10 15 20q (t)   0.6350 0.5336 0.4410 0.3572 0.2822

Se quiere obtener una estimación de la velocidad  q (t)  del fluido. Comparaesta estimación con la ley de Torricelli

q (t) = −γ  r

R

2 2gq (t),

donde g  es la aceleración de la gravedad y  γ  = 0.6 es un factor de corrección.Obtén el polinomio interpolador asociado a los puntos de la tabla y calculala derivada,  q (t), derivando el polinomio obtenido.

4. Dada la función

f (x) = x10 − 10x8 + 33x6 − 40x4 − 16x2 ,

dibuja la función en el intervalo  x ∈ [−2, 2]. Obtén el valor exacto de   2−2

f (x) dx

y compara las aproximaciones numéricas que se obtienen con la Regla del

Trapecio, la Regla de Simpson y la función   quad( ).5. Se tiene que construir una hoja de techo corrugado usando una máquina que

comprime una hoja plana de aluminio convirtiéndola en una cuya seccióntransversal tiene la forma de una onda senoidal. Supongamos que se necesitauna hoja corrugada de 50 cm de longitud y que cada ondulación tiene unaaltura de 1 cm respecto de la línea horizontal y un periodo de   2π   cm. Elproblema de encontrar la longitud de la hoja inicial viene dado por la integral

L =

   50

0  1 + cos2(x) dx .

Estima esta longitud.220

Page 222: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 222/250

9.3 Ejercicios con   Matlab

6. Calcula aproximadamente el valor de

  ∞

0

cos(2x)

cosh(x)   dx,

y compáralo con el valor exacto,   π2 sech(π).

7. Es conocido que1

  ∞0

e−x2

2 dx = 1

2  .

Comprueba el resultado utilizando la Regla de los trapecios, la Regla deSimpson y la función   quad( ).

8. El volumen  V  de un gas en función de la presión  P  ejercida por un pistón

viene dada en la tabla siguienteP    60 80 100 120 140 160 180V    80.0 69.2 60.0 52.0 45.0 38.6 32.5

Calcula el trabajo necesario para disminuir  V  de 80 a 32.5,

W  =

   8032.5

P   dV .

9. La potencia P  proporcionada por las ruedas de un coche como función de lavelocidad v  viene dada en la siguiente tabla

v  (m/s)   0 1.0 1.8 2.4 3.5 4.4 5.1 6.0P   (kW)   0 4.7 12.2 19.0 31.8 40.1 43.8 43.2

Teniendo en cuenta que la potencia se puede expresar  P   =  F v, usando laLey de Newton, se tiene que el tiempo necesario para que la velocidad delcoche pase de 1 m/s a  6 m/s viene dado por

t =  m

   61

v

P   dv .

Estima este tiempo si se supone que el coche tiene una masa de  m = 2000 kg.10. Interpola la función

f (x) =  1

1 + x2  ,

de dos modos, primero un conjunto de puntos   xn   = −5 + n,   yn   =   f (xn)con   n   = 0, 1, 2, . . . , 10, y luego utilizando otro conjunto de puntos,   xn   =5cos(πn/10),   yn   =   f (xn)  con   n   = 0, 1, 2, . . . , 10. Utiliza un polinomio degrado 10 para la interpolación de la función. Con los dos polinomios obtenidosestima el valor de

   5−5 1

1 + x2   dx .

221

Page 223: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 223/250

Page 224: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 224/250

Capítulo 10

Resolución de problemas de valorinicial con  Matlab

10.1 Introducción

En este capítulo mostraremos cómo resolver problemas de valor inicial utilizandolas funciones que tiene implementadas  Matlab. Así mismo, construiremos algunasfunciones que implementen algunos de los métodos numéricos para obtener un valoraproximado de la solución  y(t) del problema de valor inicial

  y   =   f (t, y),y(t0) =   y0,

  (10.1)

con  y ∈ R p.

Matlab  dispone de funciones para resolver ecuaciones diferenciales. Para ello

debemos definir el campo vectorial (la función f (t, y)) en un fichero aparte. Algunosde los comandos más utilizados en  Matlab son:

•  ode23: Utiliza una combinación de métodos Runge-Kutta de órdenes 2 y 3explícitos y paso de integración variable.

•  ode45: Utiliza una combinación de métodos Runge-Kutta de órdenes 4 y 5explícitos y paso de integración variable.

•  ode113: Utiliza métodos multipaso de órdenes 1 a 13 explícitos y paso deintegración variable.

223

Page 225: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 225/250

Capítulo 10. Resolución de problemas de valor inicial con  Matlab

Ilustramos su uso con un ejemplo.

Ejemplo 10.1  Considerar el problema de Lotka-Volterra (4.26)

c   =   c(1 − z),   (10.2)

z   =   z(c − 2),

suponiendo que inicialmente las poblaciones son   c(0) = 4, z(0) = 1  y obtener la solución numérica  c(t), z(t)  para  t ∈ [0, 100].

Solución:Reescribimos el sistema

y1   =   y1(1 − y2)

y2   =   y2(y1 − 2),   (10.3)

con (y1, y2) = (c, z),   (y1(0), y2(0)) = (4, 1). Para resolver este problema utilizandoun método numérico, en primer lugar construiremos un fichero que llamaremosfVolt.m , que contiene a la función  f , y al que llamaremos cada vez que necesite-mos evaluar la parte derecha de la ecuación diferencial (o sistema de ecuacionesdiferenciales). Este fichero puede ser, por ejemplo:

% fVolt.m  % Modelo de Lotka-Volterra para el sistema depredador-presa

function Ydot = fVolt(t, Y)

% Parte derecha de la ecuación diferencial

Yd( 1) = Y(1)*(1-Y(2));

Yd( 2) = Y(2)*(Y(1)-2);

Ydot = [Yd(1) ; Yd(2)];

En un nuevo fichero escribimos:

% y’ = f(t,y)% Método ode23

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Tiempo inicial, final

t0=0; tf=100;

% Condiciones iniciales

y0 = [4 ; 1];

% Options

options = odeset(’AbsTol’,1e-8,’RelTol’,1e-5);

[t,y] = ode23(’fVolt’,[t0,tf],y0,options);

224

Page 226: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 226/250

10.1 Introducción 

En este fichero se integra en el intervalo  t ∈ [0, 100] y se almacena la solución enuna matriz de tres columnas en la que en la primera columna se encuentran los

instantes en los que se obtiene las soluciones numéricas, en la segunda y terceracolumnas se encuentran los valores obtenidos para  y1 e  y2 en esos instantes. Hemosutilizado el método  ode23 pero podemos utilizar otros como el ode45 o el ode113.En  options podemos introducir una lista de opciones que dispone Matlab. En elejemplo hemos elegido el error absoluto y el relativo. Si los reducimos en un ordende magnitud debemos esperar que los errores se reduzcan aproximadamente enesta magnitud.

Podemos dibujar la solución obtenida junto con el campo de vectores para vermejor como es la solución del problema añadiendo los siguientes comandos

[y1,y2] = meshgrid(0:.2:4.5,0:.2:3);Dy1Dt = y1.*(1-y2);

Dy2Dt = y2.*(y1-2);

quiver(y1,y2,Dy1Dt,Dy2Dt,1.5)

figure(1)

hold on

plot(y(:,1),y(:,2),’r^’,’MarkerSize’,4)

axis equal, axis([0 4.5 0 3.2])

hold off

figure (2)

plot(t,y(:,1),’r.-’,t,y(:,2),’b’)

legend(’y_1’,’y_2’)

axis([0 100 0 5])

xlabel(’t’)

obteniendo las gráficas mostradas en la Figura 10.1.  

0 0.5 1 1.5 2 2.5 3 3.5 4 4.50

0.5

1

1.5

2

2.5

3

0 10 20 30 40 50 60 70 80 90 1000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

t

 

y1

y2

Figura 10.1:  Diagrama de fases y soluciones del problema de Lotka-Volterra.

225

Page 227: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 227/250

Capítulo 10. Resolución de problemas de valor inicial con  Matlab

Cada método numérico suele ser útil sólo para ciertos tipos de problemas y por esoMatlab  dispone de muchos métodos implementados para ser utilizados en pro-

blemas distintos, y uno debe saber cuando debe utilizar cada uno. En esta prácticavamos a estudiar algunos de estos métodos para entender su funcionamiento. Com-parar distintos métodos nos puede ayudar a elegir el método más adecuado paraun determinado problema, o adaptar nuevos métodos para resolver un problemaespecífico.

10.2 Método de Euler

El método de Euler es el más simple de los métodos numéricos de resolución de

ecuaciones diferenciales y viene dado poryn+1  =  yn + hf  (tn, yn) , n = 0, 1, 2, . . .

con  tn  =  t0 + nh.

Ejemplo 10.2  Aplicar método de Euler al problema de Lotka-Volterra (10.2) con c0  = z0  = 2 para  t ∈ [0, 3] tomando como pasos de integración  h  = 1/5 y  h  = 1/20.Dibujar  cn  frente a  zn  en ambos casos y comparar los resultados.

Solución:

El método de Euler para este problema viene dado por  cn+1   =   cn + hcn(1 − zn),zn+1   =   zn + hzn(cn − 2),

  o

  y1,n+1   =   y1,n + hy1,n(1 − y2n),y2,n+1   =   y2,n + hy2,n(y2n − 2),

y para alcanzar el tiempo final  tf   = 3 utilizando un paso de integración  h = 1/5deberemos reperit el algoritmo N  = 3/h = 15 veces. El algoritmo escrito en formade método RK de una etapa viene dado por:

% ejemploEuler.m  

% y’ = f(t,y)% Método de Euler

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Tiempo inicial, final y número de divisiones

t0=0; tf=3; Npasos = 15;

% Tamaño del paso de integración

h = (tf-t0)/Npasos;

% Condiciones iniciales

y = [2 ; 2];

% EU almacena las soluciones obtenidas en cada instante

EU = [t0 y’ ];

t = t0;

226

Page 228: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 228/250

10.2 Método de Euler 

for i2 = 1:Npasos;

%%%% Metodo de Euler %%%%%%%%%%%%%%%%%%%%%%

K1 = fVolt(t,y);y = y + h*K1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

t = t + h ;

EU = [EU ; t y’ ];

end

y si queremos podemos dibujar, por ejemplo, el resultado obtenido incluyendoel comando  plot(EU(:,2),EU(:,3),’s’) donde la solución  u(t) frente a  v(t)  en

cada instante la hemos marcado con cuadrados.Los resultados obtenidos se muestran en la Figura 10.2 (la trayectoria exacta secoresponde con la línea continua y los resultados del método se representan concuadrados). Repetimos lo mismo tomando ahora h  = 1/20 (repetimos el algoritmoN  = 3/h = 60 veces, esto es 4 veces más de cálculo). Los resultados vienen dadospor los círculos, donde se aprecia: (i ) el error cometido va creciendo según se avanzaen la integración y; (ii ) si utilizamos un paso más pequeño podemos obtener mayorprecisión a costa de una mayor cantidad de cálculos.

0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

 v

   u

Figura 10.2:  Método de Euler aplicado al problema del Ejemplo 10.2.

227

Page 229: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 229/250

Capítulo 10. Resolución de problemas de valor inicial con  Matlab

10.3 Métodos de Runge-Kutta

Recordamos los métodos explícitos que hemos estudiado:Método del punto medio. Este método RK de orden 2 viene dado por:

k1   =   f  (tn, yn) ,k2   =   f  (tn + h/2, yn + hk1/2) ,yn+1   =   yn + hk2   .

Como vemos, el método necesita evaluar la función  f  dos veces en cada paso deintegración, por lo que requiere de más operaciones que en el caso del método deEuler. Por otro lado, este coste adicional se compensa porque el método suele ser

bastante más preciso.Método de Euler modificado. El método viene dado por:

k1   =   f  (tn, yn) ,k2   =   f  (tn + h, yn + hk1) ,yn+1   =   yn +   h

2 (k1 + k2)  ,

que también requiere de dos evaluaciones de la función  f  por paso y tiene un errorde truncamiento O

h3

 y un error global O

h2

.

Método de Heun. El método viene dado por:k1   =   f  (tn, yi) ,k2   =   f  (tn + 2h/3, yn + 2hk1/3) ,yn+1   =   yn +   h

4  (k1 + 3k2)   ,

que tiene un error de truncamiento O h3

 y un error global O h2

.

Método   estándard  Runge-Kutta de orden 4. El método viene dado por:

k1   =   f  (tn, yn) ,

k2   =   f  (tn + h/2, yn + hk1/2) ,k3   =   f  (tn + h/2, yn + hk2/2) ,k4   =   f  (tn + h, yn + hk3) ,yn+1   =   yn +   h

6 (k1 + 2k2 + 2k3 + k4)   ,

en el que el error de truncamiento es O h5

y el error global del método es O h4

.

A continuación presentamos cómo modificar el programa de Euler para implemen-tar el método RK de orden 4. Lo llamaremos  ejemploRK4.m .

% ejemploRK4.m  

% y’ = f(t,y)

228

Page 230: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 230/250

10.4 Métodos multipaso

% Método Runge-Kutta-4 standard de 4 etapas y de orden 4

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Tiempo inicial, final y número de divisionest0=0; tf=100; Npasos = 500;

% Tamaño del paso de integración

h = (tf-t0)/Npasos;

% Condiciones iniciales

y = [4 ; 1];

% R4 almacena las soluciones obtenidas en cada instante

RK4 = [t0 y’ ];

t = t0;

for i2 = 1:Npasos;

t1 = t + h/2; t2 = t + h/2; t3 = t + h;

%%%% Metodo RK-4 estandard %%%%%%%%%%%%%%%%%%%%%%

K1 = fVolt(t,y);

K2 = fVolt(t1,y+h*K1/2);

K3 = fVolt(t2,y+h*K2/2);

K4 = fVolt(t3,y+h*K3);

y = y + (K1 + 2*K2 + 2*K3 + K4)*h/6;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

t = t + h ;

RK4 = [RK4 ; t y’ ];

end

10.4 Métodos multipaso

A continuación recopilamos los métodos lineales multipaso explícitos de órdenesmás bajos, llamados también métodos de  Adams-Bashforth :

Método de Adams-Bashforth de dos pasos

y0   =   α0   , y1  = α1   ,

yn+1   =   yn + h

2 (3f n − f n−1)

que tiene un error local O h3

.

Método de Adams-Bashforth de tres pasos

y0   =   α0   , y1  = α1   , y2  = α2   ,

yn+1   =   yn +  h

12 (23f n − 16f n−1 + 5f n−2) ,

que tiene un error local O h4.

229

Page 231: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 231/250

Capítulo 10. Resolución de problemas de valor inicial con  Matlab

Método de Adams-Bashforth de cuatro pasos

y0   =   α0   , y1  = α1   , y2  = α2   , y3  =  α3   ,

yn+1   =   yn +  h

24 (55f n − 59f n−1 + 37f n−2 − 9f n−3) ,

que tiene un error local O h5

.

Los métodos lineales multipaso implícitos, llamados también métodos de  Adams-Moulton  de órdenes más bajos son:

Método de Adams-Moulton de un paso

y0   =   α0   ,

yn+1   =   yn + h

2 (f n + f n+1)   ,

que se corresponde también con el método RK implícito de orden 2 llamado métodotrapezoidal.

Método de Adams-Moulton de dos pasos

y0   =   α0   , y1  = α1   ,

yn+1   =   yn +  h

12

 (5f n+1 + 8f n−

f n−1)   ,

que tiene un error local O h4

.

Método de Adams-Moulton de tres pasos

y0   =   α0   , y1  = α1   , y2  = α2   ,

yn+1   =   yn +  h

24 (9f n+1 + 19f n − 5f n−1 + f n−2) ,

que tiene un error local O h5

.

Método de Adams-Moulton de cuatro pasos

y0   =   α0   , y1  = α1   , y2  = α2   , y3  =  α3   ,

yn+1   =   yn +  h

720 (251f n+1 + 646f n − 246f n−1 + 106f n−2 − 19f n−3) ,

que tiene un error local O h6

.

A continuación presentamos la implementación del siguiente método predictor-corrector de 3 pasos.

230

Page 232: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 232/250

10.4 Métodos multipaso

Método predictor-corrector A-B-M de tres pasos

y0   =   α0   , y1  = α1   , y2  =  α2   ,

y[ p]n+1   =   yn +

  h

12 (23f n − 16f n−1 + 5f n−2)

yn+1   =   yn +  h

24

9f 

[ p]n+1 + 19f n − 5f n−1 + f n−2

  ,

donde f [ p]n+1 = f (tn+1, y

[ p]n+1). Los primeros 3 pasos se pueden evaluar utilizando un

método de un paso. Nosotros lo haremos utilizando el método RK  estándard  de 4pasos y de orden 4. Un algoritmo para implementar este método sobre el ejemplodel problema de Lotka-Volterra viene dado por:

% EjemploPredictorCorrectorABM3.m  

% y’ = f(t,y)

% Predictor: Adams-Bashforth de 3 pasos

% Corrector: Adams-Moulton de 3 pasos

% Se inicializa con el método RK4

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Tiempo inicial, final y número de divisiones

t0=0; tf=10; Npasos = 300;

% Tamaño del paso de integración

h = (tf-t0)/Npasos;

% Condiciones iniciales

y = [4 ; 1];

% PC3 almacena las soluciones obtenidas en cada instante

PC3 = [t0 y’];

t = t0;

% Metodo RK4 explicito para los dos primeros pasos

for i2 = 1:2;

t1 = t + h/2; t2 = t + h/2; t3 = t + h;

%%%% Metodo RK-4 estandard %%%%%%%%%%%%%%%%%%%%%%

K1 = fVolt(t,y);

K2 = fVolt(t1,y+h*K1/2);K3 = fVolt(t2,y+h*K2/2);

K4 = fVolt(t3,y+h*K3);

y = y + ((K1 + 2*(K2 + K3) + K4)*h/6);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

t = t + h; PC3 = [PC3 ; t y’ ];

end

% Primeras 3 evaluaciones del método RK4 almacenados en PC3

y0 = PC3(1,2:3)’; f0 = fVolt(t0,y0);

y1 = PC3(2,2:3)’; f1 = fVolt(t0+h,y1);

y2 = PC3(3,2:3)’; f2 = fVolt(t0+2*h,y2);

231

Page 233: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 233/250

Capítulo 10. Resolución de problemas de valor inicial con  Matlab

for i3 = 3:Npasos;

y2p = y2 + h*(23*f2 - 16*f1 + 5*f0)/12; %Predictor

f2p = fVolt(t,y2p);y2 = y2 + h*(9*f2p + 19*f2 - 5*f1 + f0)/24; %Corrector

t = t + h ;

f0 = f1; f1 = f2; f2= fVolt(t,y2); %para siguiente paso

PC3 = [PC3 ; t y2’];

end

10.5 Ejercicios con  Matlab

1. Considera el problema del satélite dado por las ecuaciones

x   =   vx

vx   =   −   x

(x2 + y2)3/2

y   =   vy

vy   =   −   y

(x2 + y2)3/2

que sirve como un modelo simple para describir su trayectoria alrededor de

la Tierra. Como sabemos, la energía mecánica (cinética más potencial) sedebe de conservar, y viene dada por:

H  = 1

2(v2x + v2y) −   1 

x2 + y2.   (10.4)

Toma como condiciones iniciales

x = 1 − e, y = 0, vx  = 0, vy  = 

(1 + e)/(1 − e)

y comprueba que  H  = −1/2, siendo éste un valor que debe mantenerse fijo

para todos los valores futuros de  x, y, vx, vy. La solución viene dada por unatrayectoria cerrada elíptica con excentricidad, e, y de periodo T   = 2π. Tomae = 0.5 e integra el sistema para  t ∈ [0, 100].

a ) Define la nueva función vectorial (de dimensión 4) y prepara un nuevofichero adaptando los métodos  ode23,  ode45 y  ode113.

b) i) Construye dos ficheros que utilicen el método Runge-Kutta de or-den 4 y el método de Heun. Para ello puedes modificar el programaEjemploRK4.m  y cambiar el nombre adecuadamente.

ii) Integra el sistema utilizando los siguientes pasos de integración:

h =

  1

10 ,

  1

100 ,

  1

1000  para el método de Heun, y  h =

  2

10 ,

  2

100 ,

  2

1000  parael otro, indicando cómo disminuye el error.232

Page 234: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 234/250

10.5 Ejercicios con   Matlab

c ) i) Adapta el método multipaso al problema del satélite.

ii) Modifica el programa para que utilice el método predictor-corrector

que utiliza el método de Adams-Bashforth y el de Adams-Moulton,ambos de cuatro pasos.

2. Considera la ecuación del péndulo (y1, y2) = (θ, ω)  y1   =   y2,y2   =   − sen(y1),

  y1(0) = 1, y2(0) = 0,

cuya energía total (cinética más potencial) es  E  =   12

y22 + (1 − cos(y2))).

a ) i) Construye dos ficheros implementando el método de Euler y el deHeun. Para ello puedes modificar el programa EjemploRK4.m ycambiar el nombre adecuadamente.

ii) Integra el sistema en el intervalo t ∈ [0, 10] utilizando los siguientespasos de integración:  h  = 1,   1

10,   1100

,   11000  para el método de Euler,

y   h  = 2,   210

,   2100

,   21000  para el método de Heun. Añade una nueva

columna a la matriz   RK4  del fichero con los errores en la energíaobtenidos en cada paso.

iii) Escribe una tabla que contenga en la primera columna el paso deintegración utilizado y en segunda el error máximo obtenido.

b) i) Construye un método predictor-corrector que utilice el método de

Adams-Bashforth y el de Adams-Moulton, ambos de cuatro pasos.Para ello puedes modificar el programa  EjemploABM3.m  y cambiarel nombre adecuadamente.

ii) Integra el sistema anterior en el intervalo  t ∈ [0, 10] utilizando lossiguientes pasos de integración:   h   =   1

2   y   h   =   120 . Compara los

errores máximos obtenidos.

233

Page 235: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 235/250

Page 236: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 236/250

Capítulo 11

Resolución de problemas decontorno con  Matlab

11.1 ODEs lineales con condiciones en la frontera

Veamos cómo contruir un algoritmo numérico para resolver la ecuación diferenciallineal de segundo orden

y =  p(x)y + q (x)y + r(x)  , a ≤ x ≤ b , y(a) = α , y(b) = β ,

que tiene condiciones de contorno en  y(a)  e  y(b). Dividimos el intervalo   [a, b]  enN  + 1 subintervalos del mismo tamaño cuyos extremos son los nodos

xi = a + i∆x , i = 0, 1, . . . , N   + 1  ,

siendo ∆x = (b − a)/(N  + 1). Esto es, x0  = a  y  xN +1  =  b  se corresponden con lospuntos frontera donde la función es conocida, y buscaremos soluciones aproximadasen los  N  puntos interiores:  y(x1), . . . , y(xN ). Aproximando la primera y segunda

derivadas por diferencias finitas de segundo orden en estos nodos se llegamos a larelación

yi−1 − 2yi + yi+1

∆x2  = p (xi)

 yi+1 − yi−12∆x

  + q (xi) yi + r (xi)   ,   (11.1)

que se pueden expresar en forma matricial de la forma

Ay =  b ,   (11.2)

donde  A  es la matriz tridiagonal y los vectores  y  y  b  dados en (5.6) y (5.7). Por

tanto, la aproximación numérica viene dada por las componentes del vector,   y,solución del sistema (11.2).235

Page 237: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 237/250

Capítulo 11. Resolución de problemas de contorno con   Matlab

Ejemplo 11.1  Resolver el siguiente problema de frontera mediante el método de diferencias finitas 

y = 4y + 4x(e−2 − 1)   ,   0 ≤ x ≤ 1   , y(0) = 0   , y(1) = 0.

Sabiendo que la solución exacta del problema es 

y(x) = e−2x − e2x

1 + e2  + (1 − e−2)x,

hallar el error máximo del método para  N  = 5 y para  N  = 50.

Solución:

Nos construimos el siguiente programa Matlab

 para resolver el problema:

% Problema: y’’ = p(x) y’ + q(x) y + r(x)

% Condiciones frontera: y(x0)=alfa, y(xf)=beta

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Intervalo de integracion

x0=0; xf=1;

% Valores en la frontera

alfa=0; beta=0;

% Division del intervalo en Nint partes y paso de integracion

N=5; Nint=N+1; h=(xf-x0)/Nint;A = zeros(N); b=[];

for i = 1:N;

x(i)=x0 + i*h;

p(i)=0; q(i)=4; r(i)=4*x(i)*(exp(-2)-1);

end

for i = 1:N-1;

A(i,i)= 2 + h^2*q(i);

A(i,i+1)= -1 + (h/2)*p(i);

A(i+1,i)= -1 - (h/2)*p(i+1);

b(i)=-h^2*r(i);end

A(N,N)=2 + h^2*q(N);

b(1) = b(1) + (1 + (h/2)*p(1))*alfa;

b(N) = -h^2*r(N) + (1 - (h/2)*p(N))*beta;

% Solucion aproximada por diferencias finitas

ylin1 = A\b’;

yl1=[ x0 alfa ; x’ ylin1 ; xf beta];

236

Page 238: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 238/250

11.2 Diferencias finitas para EDPs de evolución 

Podemos comparar con la solución exacta añadiendo al programa las siguienteslíneas:

z=[];

for i=1:N;

% Solucion exacta

yz=(exp(-2*x(i))-exp(2*x(i)))/(1+exp(2))+(1-exp(-2))*x(i);

% z: vector que contiene la solucion exacta en el mallado

z = [z ; x(i) yz ];

end

% Incluir las soluciones conocidas en la frontera

z = [ x0 alfa ; z ; xf beta];

% Error maximo cometido max(abs(yl1(:,2)-z(:,2)))

dando un error máximo de   0.0010. Si además queremos dibujar en una mismafigura la solución exacta y la aproximada, ambas evaluada en el mallado, podemosañadir también los siguientes comandos

% Dibujar la solucion

hold on

plot(yl1(:,1),yl1(:,2),’r’,’LineWidth’,3)

plot(z(:,1),z(:,2),’k’,’LineWidth’,3);axis([0 1 0 0.2])

xlabel(’{\fontsize{16}x}’)

ylabel(’{\fontsize{16}y(x)}’)

box

Observamos cómo, efectivamente, ambas prácticamente se solapan.  

11.2 Diferencias finitas para EDPs de evolución

11.2.1 Diferencias finitas para problemas parabólicos

La ecuación del calor o de difusión sin término fuente viene dada por

∂u

∂t  = a2 ∂ 2u

∂x2,

u(0, t) = f 0(t), u(L, t) = f L(t),u(x, 0) = u0(x),

x ∈ [0, L], t ≥ 0.   (11.3)

237

Page 239: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 239/250

Capítulo 11. Resolución de problemas de contorno con   Matlab

Discretizamos el espacio en intervalos igualmente espaciados,  x =  x0 + i∆x, i =0, 1, . . . , N  x+1, y hacemos lo mismo en el tiempo,  t =  n∆t, n  = 0, 1, 2, . . . Debemos

buscar la solución en el interior del mallado mostrado en la Figura 5.1.El método de Euler explícito nos permite ir avanzando fila a fila con la siguientediscretización

un+1i   − un

i

∆t  = a2 un

i−1 − 2uni   + un

i+1

∆x2  ,

y que se puede escribir en forma matricial de manera compacta

un+1 = (I  + rA)un + rbn ,   (11.4)

donde r  =   a2

∆t∆x2   y siendo  I  la matriz identidad de dimensión  N x × N x  y donde la

matriz A  y los vectores  un y  bn vienen dados por (5.10).

El método obtenido es un método explícito, ya que los valores de  un+1 se puedencalcular directamente conociendo los valores en el instante anterior,   un. Vimostambién que para garantizar la estabilidad del esquema explícito, es necesario quese cumpla la condición de Courant

0 < a2∆t

∆x2  <

 1

2  ,

que limita la longitud del paso temporal que es necesario elegir una vez se haelegido un paso espacial.

Para evitar problemas de estabilidad, podemos utilizar el método de Euler implí-cito, que se corresponde con la discretización

un+1i   − un

i

∆t  = a2

un+1i−1 − 2un+1

i   + un+1i+1

∆x2  ,

y que matricialmente se puede escribir como

(I 

−rA)un+1 = un + rbn+1 (11.5)

donde A es la misma matriz que antes. Por tanto, el algoritmo recursivo que nospermite obtener un+1 es

un+1 = (I − rA)−1

un + rbn+1

.   (11.6)

Otro método que tampoco tiene problemas de estabilidad y es más preciso que elmétodo de Euler implícito, es el método de Crank-Nicolson, que viene dado por laecuación

un+1i

  −uni

∆t   = a2

2un

i−1

−2un

i   + uni+1

∆x2   +

un+1i−1

 −2un+1

i   + un+1i+1

∆x2   .

238

Page 240: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 240/250

11.2 Diferencias finitas para EDPs de evolución 

Matricialmente se puede escribir en la forma

I − 1

2 rAun+1

= I  +

 1

2 rA un

+

 r

2 (bn

+ bn+1

),   (11.7)

y despejando  un+1 se tiene

un+1 =

I −  1

2rA

−1 I  +

 1

2rA

un +

 r

2(bn + bn+1)

.   (11.8)

Como vimos en teoría, todos estos métodos se pueden obtener fácilmente a partirde los métodos estudiados en el tema anterior para ecuaciones diferenciales ordi-narias si primeramente discretizamos solamente en espacio y tomamos el vector desoluciones

u(t) =

u1(t)u2(t)

...uN x−1(t)

uN x(t)

,

el cual debe satisfacer el sistema de ecuaciones diferenciales ordinarias

du

dt  = sAu + sb(t),

donde  s  =   a2

∆x2 . Se trata de un sistema de ecuaciones diferenciales ordinarias dela forma   y   =   f (t, y)  donde   y   =   u  y   f (t, u) =   sAu +  sb(t)  y podemos utilizarcualquiera de los métodos vistos para EDOs con condiciones iniciales (teniendo encuenta que las condiciones de frontera se encuentran en el vector  b(t)).

Ejemplo 11.2  Considerar el problema 

∂u

∂t  =

 ∂ 2u

∂x2

u(0, t) = u(1, t) = 0u(x, 0) = sen(πx)

x ∈ [0, 1], t ∈ [0, 1],   (11.9)

cuya solución exacta es: u(x, t) = e−π2t sen(πx). Escribir un programa que resuelva el problema y en el que se pueda elegir cualquiera de los métodos: Euler explícito,Euler implícito o Crank-Nicholson (dependiendo de la elección de una determinada variable). Tomar  ∆x  =   1

10  y comparar las soluciones obenidas con el método de Euler explícito para los pasos de integración:  ∆t  =   1

174   y   ∆t  =   1173 , y comentar 

los resultados. Repetir los cálculos con el método de Crank-Nicholson utilizando∆t =   1

10.

239

Page 241: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 241/250

Capítulo 11. Resolución de problemas de contorno con   Matlab

Solución:

% Problema parabolico: du/dt = a2 d^2u/dx^2

% Condiciones frontera: u(t,0)=alfa, u(t,L)=beta

% Condiciones iniciales: u(0,x)=g(x)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

a=1; a2=a^2;

% Intervalo espacial y temporal

x0=0; xL=1; t0=0; tf=1;

% Discretizacion espacial y temporal

Nx=9; Nxint=Nx+1; hx=(xL-x0)/Nxint; Nt=174; ht=(tf-t0)/Nt;

% imet = Metodo a utilizar:% 1=Euler explicito, 2=Euler implicito, 3=Crank-Nicholson

imet=1;

% Condiciones iniciales

un=[]; uex=[]; MU=[]; MUex=[];

for i = 1:Nx;

x(i)=x0 + i*hx; un(i)=sin(pi*x(i));

end

% Valores en la frontera

f0(1)=0; fL(1)=0;

for i = 1:Nt+1;t(i)=t0 + i*ht; f0(i+1)=0; fL(i+1)=0;

end

MU = [ f0(1) un fL(1) ]; MUex = MU;

A =zeros(Nx); b=zeros(Nx,1);

for i = 1:Nx-1;

A(i,i)= -2; A(i,i+1)= 1; A(i+1,i)=1;

end

A(Nx,Nx)=-2; r=a2*ht/hx^2;

for i=1:Nt

if (imet == 1)b(1) = f0(i); b(Nx) = fL(i);

un = ((eye(Nx)+r*A)*un’ + r*b)’;

elseif (imet == 2)

b(1) = f0(i+1); b(Nx) = fL(i+1);

un = ((eye(Nx)-r*A)\(un’ + r*b))’;

elseif (imet == 3)

b(1) = (f0(i+1)+f0(i))/2; b(Nx) = (fL(i+1)+fL(i))/2;

un = ((eye(Nx)-r*A/2)\((eye(Nx)+r*A/2)*un’ + r*b))’;

end

% MU contiene las soluciones aproximadas por filas junto

% con las condiciones de frontera

240

Page 242: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 242/250

11.2 Diferencias finitas para EDPs de evolución 

MU = [MU ; f0(i+1) un fL(i+1) ];

% Solucion exacta

for j=1:Nxuex(j)=exp(-pi^2*t(i))*sin(pi*x(j));

end

MUex = [MUex ;f0(i+1) uex fL(i+1) ];

end

figure(1)

surf(MU)

box

% Error maximo cometido

 max(max(abs(MU-MUex)))

Condiciones de frontera variables. Si las condiciones de frontera dependen deltiempo

u(0, t) = f 0(t), u(L, t) = f L(t),

sólo hay que modificar dos líneas del programa. Por ejemplo, si  f 0(t) = sen(t)  yf L(t) = sen(2t), habría que cambiar

% Valores en la frontera

f0(1)=0; fL(1)=0;

for i = 1:Nt+1;

t(i)=t0 + i*ht; f0(i+1)=0; fL(i+1)=0;

end

por

% Valores en la frontera

f0(1)=sin(t0); fL(1)=sin(2*t0);

for i = 1:Nt+1;t(i)=t0 + i*ht; f0(i+1)=sin(t(i)); fL(i+1)=sin(t(i));

end

Término fuente independiente del tiempo.  Si el problema contiene un tér-mino fuente independiente del tiempo, F (x), las modificaciones al programa tam-bién son mínimas. Por ejemplo, si  F (x) = x(1 − x), podemos definir el vector  F  enel bucle donde se definen las condiciones iniciales

% Condiciones iniciales

un=[]; uex=[]; MU=[]; MUex=[];

241

Page 243: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 243/250

Capítulo 11. Resolución de problemas de contorno con   Matlab

for i = 1:Nx;

x(i)=x0 + i*hx; un(i)=sin(pi*x(i)); F(i)=x(i)*(1-x(i));

end

Este vector hay que incluirlo en los métodos de Euler explícito, implícito y Crank-Nicholson de la siguiente forma

un = ((eye(Nx)+r*A)*un’ + F + r*b)’;

un = ((eye(Nx)-r*A)\(un’ + F + r*b))’;

un = ((eye(Nx)-r*A/2)\((eye(Nx)+r*A/2)*un’ + F + r*b))’;

Si comparamos con las técnicas analíticas de separación de variables nos damos

cuenta de la enorme diferencia que existe. Los métodos numéricos permiten abor-dar problemas más complejos con pequeñas modificaciones en los algoritmos.

11.2.2 Diferencias finitas para problemas hiperbólicos

Como ejemplo de un problema de contorno hiperbólico consideraremos la ecuaciónde ondas, o sea, un problema de la forma

∂ 2u

∂t2  = a2 ∂ 2u

∂x2 + F (x, t)

u(0, t) = f 0(t), u(L, t) = f L(t)

u(x, 0) = f (x),  ∂u

∂t(x, 0) = g(x)

x ∈ [0, L], t ≥ 0 .   (11.10)

En esta práctica resolveremos este problema utilizando el método de líneas. Esto es,tomamos el mallado espacial con los nodos  0 = x0, x1, . . . xN x+1  = L  y tomamosel tiempo como una variable continua, por lo que debemos resolver el sistema deEDOs

d2udt2

  = sAu + F (t) + s b(t)

donde s  =   a2

∆x2  y la matriz A  es la misma que en el problema parabólico. El vectordel término fuente (fuerza externa que actúa sobre el sistema) se corresponde conla discretización espacial, esto es,  F (t) = (F (x1, t), F (x2, t), . . . , F  (xN x , t)), y  b(t)es el vector que contiene las condiciones de frontera. Las condiciones iniciales son

u(0) =

f (x1)f (x2)

...

f (xN x−1)f (xN x)

, u(0) =

g(x1)g(x2)

...

g(xN x−1)g(xN x)

.

242

Page 244: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 244/250

11.2 Diferencias finitas para EDPs de evolución 

Esto es un sistema de ecuaciones diferenciales lineales de segundo orden con con-diciones iniciales en la función y su derivada. Si transformamos este sistema deecuaciones diferenciales de segundo orden en uno de primer orden se obtiene

d

dt

  uv

=

  v

sAu + F (t) + s b(t)

con condiciones iniciales:   u(0)  y   v(0) =   u(0). El esquema de segundo orden seescribe mediante el siguiente algoritmo, correspondiente al método leap-frog,

U    =   un +  ∆t2  vn

vn+1

=   vn

+ ∆t(sAU  + F (tn) + sb(tn)un+1 =   U  +  ∆t2

 vn+1

el cual se inicia con:  u0 = u(0), v0 = u(0).

Ejemplo 11.3  Considerar la siguiente ecuación hiperbólica con condiciones ini-ciales y de frontera 

∂ 2u

∂t2  =

 ∂ 2u

∂x2

u(0, t) = u(1, t) = 0

u(x, 0) = sen(πx) +   12 sen(3πx)u(x, 0) = 0

x

∈[0, 1],   (11.11)

para  t ∈ [0, 1] y cuya solución exacta es:

u(x, t) = 2cos(πt)sen(πx) + 1

2 cos(3πt) sen(3πx).

Escribir un algoritmo que implemente el método de it leap-frog con  ∆x =   1100

,   ∆t =1100 . Dibujar la solución obtenida en 3 dimensiones y hallar el error máximo co-metido comparando con la solución exacta en los puntos del mallado.

Solución:

% Problema hiperbolico: d^2u/dt^2 = al^2 d^2u/dx^2

% Condiciones frontera: u(t,0)=0, u(t,L)=0

% Condiciones iniciales: u(0,x)=f(x), u’(0,x)=g(x)

al=1;

% Intervalo espacial y temporalde

x0=0; xL=1; t0=0; tf=1;

243

Page 245: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 245/250

Capítulo 11. Resolución de problemas de contorno con   Matlab

% Discretizacion espacial y temporal

Nx=99; Nxint=Nx+1; hx=(xL-x0)/Nxint;Nt=100; ht=(tf-t0)/Nt;

% Valores en la frontera

alfa=0; beta=0;

% Condiciones iniciales

un=[]; vn=[]; uex=[]; MU = []; MUex = [];

for i = 1:Nx;

x(i)=x0 + i*hx;

un(i) = sin(pi*x(i)) + 0.5*sin(3*pi*x(i));

vn(i) = 0;

end

MU = [ alfa un beta ]; MUex = MU;

A = zeros(Nx); b=zeros(Nx,1);

for i = 1:Nx-1;

A(i,i)= -2; A(i,i+1)= 1; A(i+1,i)= 1;

end

A(Nx,Nx)=-2; r=al^2/hx^2;

for i=1:Nt

t(i)=t0 + i*ht;

un = un + vn*ht/2;

vn = vn + ht*r*(A*un’)’;

un = un + vn*ht/2;

% MU contiene las soluciones aproximada por filas

MU = [MU ; alfa un beta ];

% Solucion exacta

for j=1:Nx

uex(j)=cos(pi*t(i))*sin(pi*x(j))+...

cos(3*pi*t(i))*sin(3*pi*x(j))/2;

end

MUex = [MUex ; alfa uex beta ];

end

figure(1)

surf(MU)

box

% Error maximo cometido

 max(max(abs(MU-MUex)))

244

Page 246: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 246/250

11.3 Ejercicios con   Matlab

11.3 Ejercicios con  Matlab

1. Resuelve la siguiente ecuación diferencial con condiciones en la frontera  y +   1

2xy −   1

2x2y = −2e−x2/2,

y(0) = 2, y(√ 

2) =   2e ,

  x ∈ [0,√ 

2] ,

utilizando el método de diferencias finitas. Compara el resultado obtenidocon la solución exacta: y(x) = 2e−x2/2 para los valores h  =

√ 2

10 ,√ 2

100 ,√ 2

1000 . Enfunción del resultado obtenido, comenta de qué orden es el método.

2. Considera la siguiente ecuación parabólica con condiciones iniciales y defrontera

∂u

∂t  =

 1

4

∂ 2u

∂x2,

u(0, t) = 0,u(1, t) = 0,u(x, 0) = sen(πx),

x ∈ [0, 1], t ∈ [0, 2] .   (11.12)

Compara los resultados obtenidos utilizando en método de Euler explícito,el de Euler implícito y el de Crank-Nicholson para   ∆x   =   1

10   y   ∆t   =   110 .

Compara con la solución exacta,  u(x, t) = exp

−π2

4 t

sen(πx), y comenta

los resultados.3. Considera la siguiente ecuación hiperbólica con condiciones iniciales y de

frontera

∂ 2u

∂t2  = 4

∂ 2u

∂x2,

u(0, t) = u(1, t) = 0,u(x, 0) = 2 sen(3πx),u(x, 0) = −12 sen(2πx),

x ∈ [0, 1], t ∈ [0, 10] .   (11.13)

Utiliza el método de   leap-frog  tomando: (i)  ∆x  =

  1

25 , ∆t  =

  1

50  y (ii)  ∆x  =150

, ∆t =   1100 . Compara con la solución exacta,

u(x, t) = 2 cos(6πt) sen(3πx) −  3

π sen(4πt) sen(2πx),

y comenta los resultados.

4. Modifica el algoritmo del Ejemplo 11.3 para incluir las condiciones de frontera

u(0, t) = sen(t), u(1, t) = sen(2t),

y el término fuente independiente del tiempo,  F (x) = x(1 − x).245

Page 247: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 247/250

Page 248: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 248/250

Bibliografía

Aràndiga, F., R. Donat y P. Mulet (2000).   Mètodes Numèrics per a l’Àlgebra Lineal . Valencia: Universitat de València.

Aubanell, A., A. Benseny y A. Delshams (1993). Útiles Básicos de Cálculo Numé-rico. Barcelona: Labor.

Burden, R.L. y J.D. Faires (2004).  Métodos Numéricos . Tercera edición. Madrid:Thomson.

Chapra, A.C. y R.P. Canale (2006).  Métodos Numéricos para Ingenieros . Quinta

edición. México: McGraw-Hill.

Coleman, M.P. (2004).   An Introduction to Partial Differential Equations with Matlab. Boca Raton, Florida: Chapman & Hall/CRC.

Cordero, A. y col. (2005).   Métodos Numéricos con Matlab. Valencia: EditorialPolitécnica de Valencia.

— (2006). Problemas Resueltos de Métodos Numéricos . Madrid: Thomson.

Eriksson, K. y col. (1996). Computational differential equations . Cambridge: Cam-bridge University Press.

Giordano, F.R., M.D. Weir y W.P. Fox (1997).  A First Course in Mathematical Modeling . Segunda edición. Pacific Grove, CA: Brooks/Cole.

Guardiola, R., E. Higón y J. Ros (2002).  Mètodes Numèrics per a la Física . Va-lencia: Universitat de València.

Holmes, M.H. (2007). Introduction to Numerical Methods in Differential Equations .

New York: Springer.247

Page 249: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 249/250

Page 250: Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

7/24/2019 Introducción a Los Métodos Numéricos Para Ecuaciones Diferenc (2)

http://slidepdf.com/reader/full/introduccion-a-los-metodos-numericos-para-ecuaciones-diferenc-2 250/250

Bibliografía 

Mathews, J.H. (1992).  Numerical Methods: for Mathematics, Science and Engi-neering . Segunda edición. Englewood Cliffs, NJ: Prentice-Hall.

Mathews, J.H. y K.D. Fink (2000).   Métodos Numéricos con Matlab. Madrid:Prentice-Hall.