Apunte Analisis Numerico I - Prof Schwarz
Apunte Analisis Numerico I - Prof Schwarz
Apunte Analisis Numerico I - Prof Schwarz
12 ANLISIS NUMRICO I
Profesor Adjunto
Curso 008
Ao 2011
ndice general
Prlogo
1.1.
. . . . . . . . . . . . . . . . . . . . . . . . .
1.2.
1.2.1.
Introduccin
1.2.2.
Concepto de error
1.2.3.
Fuentes de error
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.
1.4.
1.5.
1.6.
1.4.1.
Condicin de un problema . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2.
Estabilidad de un algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . .
Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.5.1.
Error inherente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.5.2.
Error de redondeo
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.5.3.
Error de truncamiento/discretizacin . . . . . . . . . . . . . . . . . . . . .
13
1.5.4.
. . . . . . . . . . . . . . . . . . . .
15
Propagacin de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.6.1.
16
1.6.2.
17
1.6.3.
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
17
1.7.
Grca de proceso
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.8.
Perturbaciones experimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
1.9.
1.8.1.
1.8.2.
. . . . . . . . . . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . . . . .
22
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
1.9.1.
Cancelacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
1.9.2.
24
1.9.3.
Aumento de la precisin . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
26
27
2.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.2.
Deniciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.3.
Matrices triangulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.4.
29
2.5.
Factorizacin LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.6.
Mtodo de Cholesky
2.7.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.6.1.
35
2.6.2.
Algoritmo de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
36
NDICE GENERAL
2.8.
2.9.
. . . . . . . . . . . . . . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
48
. . . . . . . . . . . . . . . . . . . . . . . . . . .
54
57
. . . . . . . . . . . . . . . . . . . . . . . . . . .
57
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3. Ecuaciones no Lineales
63
3.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.
Mtodo de la biseccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
3.3.
66
3.4.
. . . . . . . . . . . . . . . .
67
3.5.
Mtodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
3.6.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
3.7.
74
3.8.
Mtodo de Steensen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
3.9.
Notas nales
76
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Interpolacin de curvas
63
77
4.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
4.2.
Mtodo de Lagrange
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
4.3.
Mtodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
4.4.
84
4.5.
Fenmeno de Runge
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
4.6.
Interpolacin de Hermite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4.7.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
4.8.
Notas nales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
5.2.
5.3.
99
Mejor aproximacin
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1.
Introduccin
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
5.1.2.
Error y normas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
5.1.3.
. . . . . . . . . . . . . . . . . . . . . .
101
6.1.
6.2.
ii -
99
Ajuste de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
5.2.1.
Introduccin
105
5.2.2.
5.2.3.
Polinomios de Legendre
Notas nales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
106
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
108
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
42
43
Diferenciacin numrica
111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
6.1.1.
111
6.1.2.
. . . . . . . . . . . . . . . . . . .
115
6.1.3.
Extrapolacin de Richardson
6.1.4.
Notas nales
. . . . . . . . . . . . . . . . . . . . . . . . .
116
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
120
Integracin numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
6.2.1.
Frmulas de Newton-Cotes
6.2.2.
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
121
122
Revisin: 08/2011
ndice general
6.3.
6.2.3.
. . . . . . . . . . . . . . . . . . . . .
131
6.2.4.
Cuadratura de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
132
6.2.5.
Integrales mltiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Notas nales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
137
139
. . . . . . . . . . . . . . . . . . .
139
7.1.1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
139
7.1.2.
Condicin de Lipschitz . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
7.1.3.
141
7.1.4.
142
7.1.5.
7.1.6.
. . . . . . . . . . . . .
144
7.1.7.
145
7.1.8.
Mtodos de Runge-Kutta
. . . . . . . . . . . . . . . . . . . . . . . . . . .
146
7.1.9.
. . . . . . . . . . . . . . . . . . . . . . . . . . .
149
150
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
143
. . . . . . . . . . . . . . . . . . . . .
153
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
153
7.2.
Anlisis de estabilidad
7.3.
Consistencia y convergencia
7.4.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
7.4.1.
7.4.2.
7.4.3.
155
156
156
. . . . . . . . . . . . . . . . . . . . . . . . .
158
159
7.5.
160
7.6.
. . . . . . . . . . . . . . . . . . . .
160
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
160
7.7.
7.6.1.
Introduccin
7.6.2.
161
7.6.3.
Diferencias nitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
163
Notas nales
Revisin: 08/2011
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
166
iii -
NDICE GENERAL
iv -
Revisin: 08/2011
0. Prlogo
Prlogo
Esto no pretende ser un libro sobre Anlisis Numrico ni algo que se le parezca. Simplemente es un resumen, incompleto, de las clases dadas en el mbito de la Facultad de Ingeniera,
durante los aos 2005 y 2006, orientadas originalmente a la parte prctica y luego reconvertidas
como clases tericas durante los aos 2007, 2008 y 2009.
El objetivo es dar una gua de los temas y enfocar a los alumnos en los temas ms
importantes del Anlisis Numrico que suelen aplicarse en el mbito de la ingeniera. No intenta
ser un manual ni un libro de texto, sino servir como ayuda-memoria a la hora de repasar lo visto
en clase. Textos y libros de gran calidad existen por doquier, algunos de los cuales se reeren en
la bibliografa, a los que no busca reemplazar. Es ms, muchas de las demostraciones se deben
buscar en esos textos.
Al mismo tiempo, algunos temas que no suelen incluirse en los libros tradicionales se han
desarrollado con mayor o menor fortuna. Dos ejemplos de ello son el Mtodo de Interpolacin
nitos, pero no siempre en los textos de Anlisis Numrico. Por ejemplo, recin en la sptima
edicin del libro Anlisis Numrico de Burden & Faires se lo incluye como parte importante del
libro. En otros textos ni siquiera se lo menciona, a pesar de ser uno de los mtodos iterativos
ms importantes para resolver sistemas ralos de ecuaciones lineales, sobre todo en los ltimos
aos, gracias al desarrollo de las computadoras personales. Para las clases, tanto tericas como
prcticas, la base que se us para la explicacin es la publicada por el profesor Dr. Jonathan
Richard Shewchuk (School of Computer Science, Carnegie Mellon University), que es de libre
disponibilidad en la web, y muy buena desde el punto de vista de la interpretacin y comprensin
del mtodo. El texto actual usa parte de esa publicacin y agrega tambin algunas ideas propias.
Respecto a versiones anteriores, adems de correcciones tipogrcas y de redaccin, se
han agregado algunos temas que se desarrollaron en los ltimos cuatrimestres, como son el
anlisis de la estabilidad, la consistencia y la convergencia de los mtodos para resolver ecuaciones
diferenciales ordinarias de primer orden con valores iniciales, y los mtodos numricos para
resolver ecuaciones diferenciales de segundo orden, tambin con valores iniciales.
Finalmente, este resumen no sera posible sin la ayuda de todos aquellos que han intervenido e intervienen en el curso 008 de Anlisis Numrico I de la Facultad de Ingeniera de la
Universidad de Buenos Aires. Quiero agradecer a Germn Sosa, Rafael Barrera Oro, Florencia
Lanteri y Micaela Suriano, que actualmente se desempean como colaboradores y a quien se
incorporar, Mara Ciminieri. Tambin a Mariano Ameijeiras, que fue fundamental para armar
la clases cuando empezamos, y a Adolfo Ibez, Guillermo Scolastico, Daro Kubar, Mariano
Castro Conde, Carolina Tortoriello, Mara Actis y Exequiel Escobar, que han colaborado con
el curso en aos anteriores y aportaron sus visiones de cmo encarar las clases y mejorar las
explicaciones o ejemplos que se explican durante el desarrollo del mismo. Y fundamentalmente
Revisin: 08/2011
v-
vi -
Revisin: 08/2011
Captulo 1
profesor en la universidad de Oxford, esta denicin es errnea. Entiende que si esta percepcin
es correcta, resulta poco sorprendente, entonces, que el anlisis numrico sea visto como una
asignatura aburrida y tediosa. Es cierto que los errores de redondeo son inevitables, y que su
anlisis es complejo y tedioso, pero no son fundamentales. Al analizar varios libros dedicados
al tema, encuentra que los captulos iniciales siempre estn referidos al error de redondeo o
sus temas asociados: precisin, exactitud, aritmtica nita, etc. Veamos algunos ejemplos de la
bibliografa disponible en espaol:
Burden & Faires, Mtodos Numricos (2005) : 1. Preliminares matemticos y anlisis del
error.
Maron & Lopz, Anlisis Numrico, un enfoque prctico (1998) : 1. Algoritmos, errores y
dispositivos digitales.
Quintana y otros, Mtodos numricos con aplicaciones en Excel (2005) : Captulo 1. Denicin de error.
Esto ayuda a que los alumnos tengan una percepcin equivocada del objeto principal de
la materia. Para evitar esto, Trefethen propone una denicin alternativa:
Anlisis numrico es el estudio de los algoritmos para resolver problemas de la matemtica continua.
Para l la palabra clave es algoritmo. De hecho, en Wikipedia podemos encontrar esta
denicin:
Revisin: 08/2011
- 1 -
cuya referencia es justamente, Lloyd (Nick) Trefethen! Y, segn l, el principal objetivo del
anlisis numrico es disear algoritmos para aproximar valores desconocidos (no lo conocido de
antemano), y hacerlo en forma rpida, muy rpida.
Por esa razn, este captulo tiene por objeto desmiticar la inuencia de los errores al
aplicar mtodos numricos, y en particular, la inuencia del error de redondeo como fuente
bsica de los problemas en la utilizacin de algoritmos para resolver problemas matemticos,
an cuando la existencia de los mismos debe llevar a tenerlos en cuenta en determinados casos
en los que no se los puede soslayar. Para ello, empezaremos viendo los errores que intervienen en
cualquier procedimiento o clculo numrico.(Para un anlisis ms detallado acerca del estudio
de los errores y la estabilidad de los algoritmos, vase [5].)
Revisin: 08/2011
n
Y
Pn (x) =
n
X
fj lj (x); lj (x) =
j=0
(x xk )
k=0
k6=j
n
Y
(1.1)
(xj xk )
k=0
k6=j
El propio Lagrange adverta en su poca, que su mtodo no era totalmente conable,
pues muchas veces los resultados obtenidos no eran correctos. De todos modos, el mtodo suele
estudiarse como una herramienta terica a pesar de que tiene las siguientes desventajas:
1. Cada evaluacin de
p(x)
requiere
O(n2 )
sumas/restas y multiplicaciones/divisiones.
xn+1 ; fn+1
equivocados. Dicho de otra manera, no pone en duda la conabilidad del mtodo en s, sino que
analiza el grado de incertidumbre de los valores numricos. En la ingeniera esto es de particular
relevancia, puesto que los datos que utilizamos provienen de mediciones en campo, estimaciones
probabilsticas, hiptesis y modelos matemticos simplicados, o de la experiencia profesional.
Rara vez se cuenta con datos con validez exacta. Sin embargo, si una leve modicacin de
estos datos produce resultados considerablemente diferentes que no reejan la realidad, estamos
ante la presencia de un problema que s puede objetar el procedimiento utilizado. Es decir, el
procedimiento es inestable o mal condicionado, conceptos diferentes.
Para analizar cuan conable es un procedimiento o algoritmo, se vuelve necesario el
estudio de los errores que afectan los clculos y las operaciones que intervienen en dicho algoritmo,
y cmo se propagan hasta afectar los resultados que ste entrega.
Error inherente: Es el error de los datos de entrada que puede estar dado por la precisin
en la medicin de los datos, por la representacin numrica, por provenir de clculos previos,
etc.
Revisin: 08/2011
- 3 -
Error de truncamiento/discretizacin: Es el error que aparece al transformar un procedimiento innito en uno nito, por ejemplo, transformar una serie de innitos trminos
en una funcin nita, o de usar una aproximacin discreta para representar un fenmeno
continuo.
Error del modelo matemtico: Es el debido a las simplicaciones e hiptesis introducidas para denir el modelo matemtico que representa el problema fsico.
humana, ya sea por una mala transcripcin o interpretacin incorrecta de los datos originales, por programas de computacin mal hechos y/o fallas en el diseo, implementacin
o conguracin de programas o computadoras.
La ltima fuente de error suele ser asociada al concepto coloquial de error. Desde la
ptica del anlisis numrico, los dos ltimos errores estn fuera de su alcance, si bien no deben
ser despreciados a la hora de evaluar los resultados obtenidos, en particular, el debido al modelo
matemtico.
m.
1.
Error absoluto: ea = m m
;
2.
Error relativo: er =
mm
ea
=
m
m
m
. Sabemos que el valor exacto
(siempre que
m 6= 0).
Generalmente, el error relativo es una medida mucho ms representativa del error, especialmente cuando
|m| >> 1.
Cuando
cmo sabemos qu error estamos teniendo? Si no conocemos la solucin del problema pareciera
que no hay forma de saberlo.
Partamos de no conocer
1 es
m
em
y de que el valor
m.
em = ea = m m
m=m
+ ea ;
que podemos generalizar a:
m=m
ea ;
si tenemos en cuenta que el valor de
ea
2.
|E| = |ea | = |m m|
;
m m
|m m|
|E|
|er | =
=
=
.
m
|m|
|m|
En este caso, precisin se reere a la unidad ms chica que el instrumento puede medir.
- 4 -
Revisin: 08/2011
sin saber cul es nuestro error relativo. Tenemos dos posibilidades para obtener
m=m
+ ea
m=m
ea ,
er =
ea
m
+ ea
er =
ea
|ea |
|er | =
m
ea
|m
+ ea |
|er | =
|ea |
.
|m
ea |
er =
cuando se conoce
|ea |
,
|m|
ea .
anlisis retrospectivo (en ingls, backward error ). En ambos casos estamos estudiando la
inuencia del error inherente.
2. Una segunda aproximacin puede ser analizar el algoritmo con diferentes representaciones
numricas en los datos de entrada y estudiar qu ocurre con los resultados. En este caso
estudiamos la incidencia del error de redondeo.
3. Finalmente, y tal vez el ms sencillo de todos, otra aproximacin puede ser analizar qu
ocurre cuando se trunca un procedimiento o discretiza el dominio de nuestro problema
matemtico. Este tipo de anlisis puede que requiera solamente de un trabajo algebraico
ms que numrico, y, a veces, suele combinarse con el error de redondeo.
La enumeracin anterior en tres aproximaciones es a los efectos de identicar las causas
y la forma de encarar el problema. Sin embargo, la realidad suele ser mucho ms compleja, y
los errores que surgen de aplicar un algoritmo o varios, resultan ser una combinacin de todos y
dependen, muchas veces, de las caractersticas de los datos del problema.
Revisin: 08/2011
- 5 -
forma de corregirlo cambiando el algoritmo (como se ver despus) pues el problema est en el
modelo matemtico.
Denicin 1.1.
queas variaciones en los datos de entrada se traducen en pequeas variaciones de los resultados.
Observacin 1.1.1.
Observacin 1.1.2.
x
Si
a la variable real y
f representa al
x a la variable
algoritmo real y
al algoritmo computacional, y
estabilidad
truncamiento
Veremos ms adelante que las pequeas variaciones en los datos de entrada estn
asociadas al problema en cuestin. No es posible a priori denir cuantitativamente cuando
una variacin es pequea y cuando no lo es. El anlisis de los errores inherentes es importante
para establecer la sensibilidad del modelo numrico a los cambios en los datos, puesto que rara
vez los datos de entrada estn exentos de error.
inestable.
En
estable. Qu sig-
En c n E0
En cn E0
Es evidente que el primer error es controlable, en tanto que el segundo, no. Puesto que
es imposible que no haya errores al trabajar con un algoritmo, lo que se debe buscar es que el
error siga una ley lineal (como en el primer caso) y no una ley exponencial. A partir de esta
comprobacin se desprende la siguiente denicin:
Denicin 1.2.
Revisin: 08/2011
inestable.
Z
yn =
0
con
xn
dx;
x + 10
n = 1; 2; . . . ; 34.
Es fcil ver que las primeras integrales analticas son relativamente sencillas de obtener
y1
y1
y15
siguiente integral:
Z
y15 =
0
x15
dx.
x + 10
yn
que nos permita obtener los valores de las mismas sin tener que integrar o que al menos utilice
aquellas integrales fciles. Para un
yn + 10 yn1 =
Z 1
Z 1
xn + 10 xn1
x + 10 n1
xn1 dx
dx =
x
dx =
x + 10
0
0 x + 10
0
1
1
yn = 10 yn1
n
n
Z
yn + 10 yn1 =
n>1
Si queremos calcular
y1
necesitamos obtener
y0 ,
obtener, pues:
1
dx = ln (x + 10)|10 = ln (11) ln (10)
x
+
10
0
= ln(1, 1) = 0, 0953101798043.
y0 =
y0
Para analizar si el algoritmo arroja resultados conables, empezaremos por calcular algunos valores. Hemos calculado el valor de
y1
0 yn 1 .
xi
Si denimos las funciones fi (x) =
y las gracamos, podemos ver que el rea bajo esas
x + 10
0,1
funciones es menor a
2 = 0, 05. En la gura 1.1 se pueden ver representadas algunas de estas
de comprobacin. Por otro lado, por las caractersticas del problema sabemos que
curvas.
Para comprobar la ecacia del algoritmo hemos utilizado dos programas muy conocidos:
R
R
el MathCAD
y el MS Excel . Con el primero hemos calculado las yi en forma analtica y con
el algoritmo dado; con el segundo, slo con el algoritmo. En la tabla 1.1 se tienen los resultados
obtenidos.
Revisin: 08/2011
- 7 -
- 8 -
yi
R
MathCAD
R
MS Excel
0,0468982019567514000
0,04689820195675065
0,04689820195675
0,0310179804324860060
0,031017980432493486
0,03101798043248
0,0231535290084732900
0,023153529008398455
0,02315352900857
0,0184647099152671080
0,018464709916015454
0,01846470991435
0,0153529008473289370
0,015352900839845474
0,01535290085650
0,0131376581933772860
0,013137658268211921
0,01313765810168
0,0114805609233700040
0,011480560175023635
0,01148056184036
0,0101943907662999780
0,010194398249763648
0,01019438159642
Analtico
1
2
0,0091672034481113700
0,009167128613474629
0,00916729514693
10
0,0083279655188863120
0,008328713865253717
0,00832704853072
11
0,0076294357202277880
0,007621952256553738
0,00763860560192
12
0,0070389761310554600
0,00711381076779595
0,00694727731410
13
0,0065333156125223285
0,005784969245117427
0,00745030378206
14
0,0060954153033481685
0,013578878977397152
-0,00307446639198
15
0,0057125136331849920
-0,06912212310730485
0,09741133058647
16
0,0053748636681500880
0,7537212310730486
-0,91161330586469
17
0,0050748927302638440
-7,478388781318721
9,174956588
18
0,0048066282529171250
74,83944336874276
-91,69401033
19
0,0045652964181971910
-748,3418021084802
916,9927348
20
0,0043470358180281100
7483,468021084803
-9169,877348
21
0,0041486894387665300
-74834,63259180041
91698,8211
22
0,0039676510668801740
748346,3713725496
-916988,1656
23
0,0038017502007634874
-7483463,670247235
9169881,699
24
0,0036491646590318034
74834636,74413903
-91698816,95
25
0,0035083534096819780
-748346367,4013903
916988169,5
26
0,0033780043647186900
7483463674,052364
-9169881695
27
0,0032569933898501480
-74834636740,48662
91698816953
28
0,0031443518157842460
748346367404,902
29
0,0030392404628472014
-7483463674048,985
30
0,0029409287048613280
74834636740489,89
31
0,0028487774675157640
-748346367404898,9
32
0,0027622253248423658
7483463674048989
33
0,0026807770546066550
-74834636740489890
34
0,0026039941598158087
748346367404898800
9, 16988 1011
9, 16988 1012
9, 16988 1013
9, 16988 1014
9, 16988 1015
9, 16988 1016
9, 16988 1017
Revisin: 08/2011
R
Podemos ver que los primeros valores obtenidos con el algoritmo, tanto en MathCAD
R
como en MS Excel , resultan una buena aproximacin de los valores de yn . Los problemas
aparecen para
y12
y12 .
0, 05.
y12 ,
yn ,
n.
yn > yn+1 ,
y14
bajo la curva no puede ser negativa. Con los resultados obtenidos con el MathCAD
algo similar. Para este programa,
y14
da mayor que
y13 ,
y el
y15
incorrectos.
A partir de estos valores, los resultados se vuelven oscilantes (cambian de signo), y mayores que uno (yn
>1
para
como ya vimos. En consecuencia, resulta evidente que el algoritmo tiene algn problema para
calcular los valores de
yn
cuando
no tuviramos el resultado exacto, mirando la curva nos daramos cuenta que hay un diferencia
muy grande entre el valor real y el obtenido con el algoritmo. Ms an, el error que estamos
teniendo no sigue una ley lineal sino una ley exponencial (se va multiplicando por 10), lo que
dice claramente que el algoritmo analizado es inestable.
Este ejemplo nos muestra cmo un algoritmo mal diseado nos puede entregar resultados
que inicialmente son bastante aproximados pero que en pasos posteriores son incorrectos, y por
lo tanto, intiles.
Denicin 1.3. Un algoritmo debe ser diseado procurando que sea bien condicionado y estable.
Observacin 1.3.1.
Revisin: 08/2011
- 9 -
1.5. Errores
1.5. Errores
1.5.1. Error inherente
ste suele ser el error ms fcil de entender. Es el que est relacionado directamente con
los datos de entrada o de base. Dado que estos datos suelen provenir de mediciones, clculos
anteriores, proyecciones estadsticas, etc., el valor numrico de los datos no es exacto sino que
est asociado a un intervalo de validez. Cuando se mide una longitud con una cinta mtrica con
divisiones hasta el centmetro, el error por la apreciacin del instrumento es un centmetro o
medio centmetro (5 mm). Es decir, si mide 145,01 m, en realidad, se est diciendo que el valor
es
145, 01 0, 01
anterior o una estimacin estadstica. En esos casos, el error se obtiene por otros mtodos.
Veamos un ejemplo. Supongamos que tenemos las siguientes cantidades,
b = 5, 0 0, 1
y queremos hallar
z = a + b.
a = 3, 0 0, 1
z = (3, 0 0, 1) + (5, 0 0, 1)
Al efectuar esta operacin obtendremos cinco resultados posibles: 7,8; 7,9; 8,0; 8,1 y 8,2.
Es decir,
z = 8, 0 0, 2.
As cualquier
ciones con los datos de ingreso puede ser imposible y nada prctico. De ah que el anlisis de la
propagacin de los errores inherentes es la forma ms conveniente para establecer la incidencia
de los mismos en los resultados nales. Ms adelante veremos la diversas formas de analizar esta
propagacin.
Representacin numrica
Para empezar, supongamos el siguiente nmero:
tarse como
4
3 . En el sistema decimal suele represen-
o sea, un nmero que slo puede representarse con una serie de innitos trminos, algo imposible
desde el punto de vista prctico. Su nica forma de expresin exacta es simblica. Una calculadora, por ejemplo, slo puede representarlo en forma numrica (en base diez, como la escrita
arriba) y, por ende, la nica representacin posible es nita . En consecuencia, debe truncarse
esta serie en n trminos. Por ejemplo, una representacin posible es:
4
=
3
1
3
3
3
+ 2+ 3+ 4
10 10
10
10
Podemos ver que esta representacin est formada por un coeciente (0,1333), una base
representacin de coma
(punto) otante. Una generalizacin de esta representacin se puede escribir como:
f l(x) = 0, d1 d2 d3 . . . dt1 dt 10 =
2
- 10 -
d1
d1
d1
d1
d1
+ 2 + 3 + . . . + t1 + t
10 10
10
10
10
4
3
10e .
Revisin: 08/2011
d1
Una vez denida la forma de representar los nmeros, pasemos a denir nuestra precisin,
que signica cuantos trminos
di
de la base.
di
d1 ,
1. Esto facilita la representacin de los nmeros y las operaciones. Pero las desventaja es que
slo los nmeros que pueden representarse como sumas de
1
resultan exactos. Veamos cmo
2i
funciona esto.
Supongamos que tomamos nuestro sistema de representacin binario para representar
nuestro nmero inicial,
4
3 . Tomemos que la cantidad de trminos,
4
0, 10101010 2 =
3
e.
t,
1 1
1
1
+ +
+
2 8 32 128
2 = 0, 6640625 2 = 1, 328125;
nmero parecido al buscado pero no igual. Esto nos muestra que existe una limitacin cuando
utilizamos una computadora (o una calculadora) para representar nmeros que no tienen una
representacin directa en base binaria. Asociada a esta limitacin, la de poder representar slo
una cantidad nita de nmeros, surge el error por corte o redondeo.
No siempre se entiende la incidencia del error por la representacin numrica. Un ejemplo
que ya es tradicional de lo catastrco que puede ser tomar una representacin numrica sin
analizar su incidencia, es la falla de la batera de misiles Patriot en Dharan, Arabia Saudita,
durante la Guerra del Golfo en 1991, en detectar un misil SCUD iraqu, que result con 28
soldados muertos y casi 100 heridos.
El problema estaba en el programa de rastreo del sistema de deteccin de blancos enemigos. El sistema dispona de contador de tiempo, en nmeros enteros, que registraba las ventanas
de rastreo de una dcima de segundo (0, 1) para detectar los blancos, contador que luego se
1
10 para transformarlo en tiempo real. El programa trabajaba con una repre1
sentacin numrica de
10 en base 2, cuya representacin es 0, 000110011001100110011001100 . . .,
multiplicaba por
que es peridica, o sea, innita. Como no se puede trabajar con una representacin innita,
de 100 horas de operacin continua se convirti en algo peligroso: al multiplicar 100 horas por
ese error en la representacin numrica del programa (0, 000000095
diferencia de
0, 34
100 60 60 10),
dio una
y el sistema de alerta lo consider una falsa alarma, permitiendo que el misil enemigo impactara
en la base de Dharan.
Lo dramtico en este caso es que esa falla en el sistema de rastreo se haba detectado, establecindose que el sistema deba ser reiniciado cada ocho horas de operacin continua,
porque a las ocho horas la ventana de rastreo se desplazaba un
20 %.
Revisin: 08/2011
- 11 -
1.5. Errores
di
para
i > t.
2.
Redondeo: Sumar 1 a dt
corte si
dt+1 <
si
dt+1
10
2 .
10
2 e ignorar los restantes
di
para
i > t + 1,
o aplicar
Esto nos permite obtener una cota del error absoluto para ambos casos:
eA =
Y como denimos el error absoluto, tambin podemos denir un lmite para el error
relativo, que ser:
10t 10e
= 101t .
0, 1 10e
1.
Corte: er
2.
Redondeo: er
Al valor
101t
1 10t 10e
1
= 101t .
e
2 0, 1 10
2
una idea del error relativo que cometemos al utilizar una representacin de coma otante. Suele
denominarse como
de
unidad de mquina
unidad de redondeo.
Dgitos de guarda
Supongamos el siguiente caso. Tomemos el nmero 0,1425 que debe ser redondeado a tres
dgitos signicativos. Aplicando el criterio anterior rpidamente obtenemos que el resultado es
0,143 pero, es correcto este redondeo? Por qu no redondear a 0,142; si est a medio camino
de ambos? Supongamos que hacemos la operacin
2 0, 1425,
cuyo resultado es
0, 2850,
qu
pasa con la misma operacin si el nmero est redondeado? Evidentemente da diferente puesto
que la operacin es
2 0, 143
cuyo resultado es
0, 286.
0, 001
que es
con
a b).
los programas) trabajen con lo que se conoce como dgitos de guarda, es decir, ms precisin
que la mostrada en forma normal en pantalla. Pero este ejemplo sirve adems para desarrollar
otra forma de redondeo.
Redondeo exacto
Tal como dijimos, el nmero
como a
0, 142.
0, 1425
0, 143
consiste en redondear todos los nmeros que terminan en 5 de manera de que el ltimo dgito
signicativo sea par. En consecuencia, aplicando este criterio,
a
0, 143.
0, 1425
se redondea a
0, 142
y no
Revisin: 08/2011
f 0 (x0 )
nua, pues no es posible obtener la derivada en forma analtica o resulta muy difcil. Por lo tanto,
usaremos un entorno del punto
x0
para calcular
f 0 (x0 )
utilizando solamente
h2
h3
h4
+ f 000 (x0 ) + f 0000 (x0 ) + . . . .
2
6
24
f 0 (x0 )
es:
f (x0 + h) f (x0 )
,
h
el error que cometemos en la aproximacin est dado por:
2
3
0
f (x0 ) f (x0 + h) f (x0 ) = f 00 (x0 ) h + f 000 (x0 ) h + f 0000 (x0 ) h + . . . .
h
2
6
24
El trmino de la derecha es el denominado error de truncamiento, pues es lo que se trunc
a la serie de Taylor para aproximar el valor buscado. Este error suele asociarse tambin con la
convergencia (o la velocidad de convergencia), que suele representarse como
como
O(hn )),
siendo
O(n) (generalmente,
f 0 (x0 ) =
f (x0 + h) f (x0 )
+ O(h),
h
h. (Est claro que adems estn los
h2 << h, h3 << h2 , etc., la inuencia de
h2 , h3 ,
h<1
entonces
para
i 3.
0
f (x0 ) f (x0 + h) f (x0 ) = h f 00 ()
h
2
con lo cual, si conociramos
preciar el trmino
f 00 (),
con
[x; x + h],
h 00
f (x0 ).
2
f <i> (x0 ) =
f (x) = sen(2x).
Revisin: 08/2011
x0 = 0, 45 (f 0 (0, 45))
- 13 -
1.5. Errores
cuestin:
h = 0, 1.
As, tendremos:
f 0 (0, 45) =
f 0 (x0 )
en funcin de h
f 0 (x0 )
Error
101
-6,18033988749895
102
103
104
105
106
107
108
109
1010
1011
1012
1013
1014
1015
1016
-6,03271072100927
2, 04676 101
5, 70464 102
6, 06041 103
6, 09582 104
6, 09936 105
6, 09966 106
6, 12277 107
5, 60549 108
1, 89282 107
1, 74359 106
5, 62937 106
2, 21966 104
6, 66212 104
1, 95400 102
9, 14823 102
2, 35101
-5,98172474217345
-5,97627391137889
-5,97572532307633
-5,97567042914804
-5,97566494175972
-5,97566438553798
-5,97566451876474
-5,97566607307698
-5,97566995885756
-5,97544236313752
-5,97633054155722
-5,99520433297584
-5,88418203051333
-8,32667268468867
h.
Si observamos con atencin, veremos que el algoritmo utilizado aproxima muy bien el
valor buscado hasta
h = 108 .
f 00 (0, 45)
f 00 (x0 )
4:
108
2
obtenemos una
108
= 6, 09975 108 (5, 60549 108 ).
2
h < 108
h < 108
En forma rigurosa deberamos hallar , pero dado que el intervalo es tan pequeo, puede tomarse x0 .
- 14 -
Revisin: 08/2011
9, 999999999
n!
si
n > 69
1098
y 70!=1, 19785716699699
10100 ).
Algo
1012 50,
como
y no lo puede representar, indicar un error por overow, es decir, nmero ms grande que el
mximo a representar, y cortar la ejecucin del algoritmo.
El error por underow es parecido. En este caso, el problema es no poder representar
un nmero muy pequeo, por lo que lo dene como cero (0). Si modicamos levemente el ejem-
p
0, 01 0, 0062 ,
0, 0062 = 0, 0000 y
como
0, 01 0, 0 = 0, 01 = 0, 1.
har
La diferencia entre ambos es que el error por overow no pasa desapercibido, mientras
que el underow s, y en consecuencia, puede ser ms peligroso.
Revisin: 08/2011
- 15 -
Supongamos que tenemos un problema numrico tal que podemos expresarlo como
y(x),
siendo
n
un vector de < , que corresponde a los datos de entrada, e
un vector
x1
y1 (x)
x2
y2 (x)
x . y(x) = . ,
.
.
.
.
xn
ym (x)
donde
de
x;
alrededor
yi (x)
de x
:
x
,
pertenecen a
y(x) = y (
x) +
[y1 (
x); y2 (
x); . . . ; ym (
x)]
(x x
) + T (x x
) .
[x1 ; x2 ; . . . ; xn ]
T (x x
)
conocemos
exi = xi x
i , que tambin conocemos. Y nuestra ltima suposicin
C (x), lo que nos permite desarrollar y(x) en una serie de Taylor
es que las
exi = xi x
1
para
i [1, n]
yi (x) yi (
x) =
n
X
yi (
x)
j=1
e xi
para
i = 1; 2; . . . ; m,
eyi =
n
X
yi (
x)
j=1
xj
(xj x
j )
yi
xj
exj ;
para
i = 1; 2; . . . ; m,
xj .
y (
x1 ; x
2 )
y (
x1 ; x
2 )
ex1 +
ex2 ,
x1
x2
o sea,
ery =
Sabemos que
ex1 = x1 erx1
ery =
2.
ey
ex + ex2
ex1
ex2
= 1
=
+
.
y
x1 + x2
x1 + x2 x1 + x2
ex2 = x1 erx2 ,
x1 erx1
x2 erx2
x1
x2
+
=
erx1 +
er .
x1 + x2
x1 + x2
x1 + x2
x 1 + x 2 x2
ery =
- 16 -
ey
x 2 e x1
x1 ex2
=
+
= erx1 + erx2 .
y
x1 x2
x1 x2
Revisin: 08/2011
Hasta aqu no pareciera haber problemas. Sin embargo, raramente se conoce el error con
su signo, de ah que lo que se busca es una cota del error, no el error en s mismo. En ese caso,
las expresiones del error relativo se modican levemente:
1.
Suma: ery
2.
Producto:
|x1 |
|x2 |
erx1 +
erx2 .
|x1 + x2 |
|x1 + x2 |
ery = erx1 + erx2 .
A partir de este razonamiento es que la suma es una operacin mal condicionada cuando
se da que
|x1 | |x2 |
x2 < 0
ery =
lo que hace que
ery
erxi r
se tiene:
|x1 | + |x2 |
r.
|x1 x2 |
si
x1 x2
es muy chico.
x y(x) : <n <m slo tendremos errores de redondeo debido al algoritmo utilizado.
Sea P (x) nuestro algoritmo para obtener y(x). Si no hubieran errores por redondeo, entonces
y(x) = P (x), pero lo que en realidad obtendremos es y(x) = P (x), es decir que podemos escribir
para
que:
"
y(x) = y(x) + E(x) yi (x) = yi (x) 1 +
p
X
#
Fi,k (x)k ,
k=1
con
|k | ,
y donde los
Fi,k
eyi =
n
X
yi (x)
j=1
P (x)
xj
exj
=
n
X
yi (
x)
xj
j=1
en vez de
y(x),
entonces:
n
X
Pi (
x)
e yi
= ePi =
j=1
exj .
xj
exj ,
n
X
Pi (
x)
erPi =
en consecuencia, el coeciente que afecta a
x
j
Pi (
x)
erxj
dene como :
j=1
erxj ,
n
X
Pi (
x)
Cpi =
Revisin: 08/2011
xj
j=1
xj
Pi (
x)
x
j
.
- 17 -
yi (x) Pi (
x) = Pi (
x)
p
X
p
X
k Te =
Fi,k (X)
k=1
Si suponemos que
erxj r,
k
Fi,k (X)
=
k=1
p
X
Fi,k (X).
k=1
entonces, tendremos:
eryi
= Cpi r + Tei ,
que ser el
r
= ,
entonces tenemos:
Cp + Tei
,
eryi
= (Cpi + Tei ) = Cpi i
Cp i
y podemos decir que un algoritmo es estable si:
Cpi + Tei
Te
> / > 1 1 + i > / > 1,
Cpi
Cp i
es decir, un algoritmo es estable si los errores de redondeo no tienen gran incidencia en el error
del resultado o al menos son del mismo orden que los errores inherentes (1
Tei
= 2).
Cpi
Sin
embargo, esta armacin debe tomarse con cuidado. Dado que lo que se analiza es la relacin
Te
,
Cp
Cp >> 1
Te
1
Cp
entonces
Te >> 1,
Cp
Te
consiste en un diagrama de ujo que representa grcamente todo el proceso de una operacin
dada, permitiendo el anlisis de los errores relativos y de redondeo que intervienen en l. No se incluyen en esta grca los errores debidos a truncamiento/discretizacin, que deben ser analizados
en forma separada.
En las guras 1.3 y 1.4 se pueden ver las grcas de proceso de la suma y el producto.
- 18 -
Revisin: 08/2011
Analicemos brevemente los errores inherentes y de redondeo en ambos casos. Si nos jamos
en la grca de la suma, y tomamos una cota superior para los errores relativos inherentes de x
e y, por ejemplo,
|erx | ; ery < |r|,
entonces el coeciente
Cp =
Cp
|x| + |y|
|x + y|
que es el mismo resultado obtenido antes para la suma. Algo similar se obtiene para el producto.
La ventaja de este mtodo es que facilita el anlisis del error de redondeo al introducirlo
en cada operacin, permitiendo el clculo del trmino de estabilidad (Te ). Segn estas grcas,
en ambos casos el
Te
es igual a 1.
1
10 yn1 ,
n
yn =
pero limitndonos a la tercera iteracin, con
y0 = ln(1, 1).
y0
y3 .
= 0)
por lo tanto
ery0 = 0.
Tambin podemos
considerar que todas las constantes no tienen errores inherentes, pues no son valores obtenidos
por clculo. En consecuencia, al no existir error inherente, lo nico que se propaga es el error de
redondeo de cada una de las operaciones. As, el desarrollo completo de la propagacin de los
errores resulta ser:
ery3
1
[100 1 + 100 3 + 100 4 5 5 5 6 + 100 6 +
y3
1
5 7 + 100 7 + 8 5 9 + 100 9 +
3
+1000 y0 (2 3 4 6 7 8 9 )] .
i < ,
tendremos que
ery3 =
Revisin: 08/2011
1
1
(620 + 6000 y0 ) =
[620 + 6000 ln(1, 1)] .
y3
y3
Resumen de las Clases Tericas
- 19 -
Como
1
1
y3 = 10
10 (1 10 y0 ) ,
| {z }
3
2
y1
|
{z
}
y2
el valor de
y3
Te =
Te
resulta ser
y3 :
Te 25319.
y0 .
Si analizamos
Cp =
- 20 -
1000 y0
.
95, 3333 . . . 1000 ln(1, 1)
Revisin: 08/2011
Cp 4116;
y si analizamos la relacin entre
Cp
1+
Te
25319
Te
=1+
7, 15 > 2;
Cp
4116
Cp .
Te
los errores de redondeo. Busquemos tambin algn procedimiento que nos permita obtener una
estimacin de dicho coeciente.
er = Cp r + Te
y supongamos por un momento que no tenemos errores de redondeo, es decir, despreciamos
Te .
e r = Cp r Cp =
Y con esto podemos estimar valor del
er
r
los datos de entrada. La idea es la siguiente: se toman los datos de entrada (x, y, etc.), y se aplica
el algoritmo a analizar, obteniendo el resultado correspondiente. Luego se perturban los datos
de entrada, es decir, se les incorpora un error. Con estos datos de entrada, se vuelve a calcular
un resultado, que seguramente diferir del anterior, pues los datos no son iguales. Este ltimo
paso se puede hacer varias veces introduciendo distintas perturbaciones (errores) a los datos de
entrada.
Una vez obtenidos los distintos valores de los resultados, tomamos el resultado sin perturbar como resultado exacto, con el cual vamos a calcular los errores relativos de los otros
resultados perturbados. Con cada uno de stos obtendremos diferentes
dremos diferentes
ri ,
Cpi
Cpi .
eri .
Cp .
Con esta
Revisin: 08/2011
- 21 -
f (x) = x
sen(x):
x3
x5
x7
x9
+
+
,
6
120 5040 362880
funcin obtenida a partir del truncamiento de la serie de MacLaurin. Con ella calculemos
sen( 4 )
3
4
=
4
5
4
4:
x=
120
7
4
5040
362880
9
4
f (x2 ):
f
Cp =
= 0, 70711
y calculemos
f (x1 ):
(1 0, 001) = 0.70766
4
Cp . Para
0, 70711 0, 70655
1
= 0, 78571
0, 70711
0, 001
Cp =
Si calculamos el
Cp
0, 70711 0, 70766
1
= 0, 78509
0, 70711
0, 001
2
4
d f (x)
f (x)
=
=1
Cp =
x
dx
4
4
24
Cp < 1
5.
6
4
720
Cp
8
4
40320
cos
4
Cp 0, 78540
er = Cp r + Te
Ahora consideremos como hiptesis que los errores inherentes son despreciables, por lo que podemos decir que el error relativo es:
er = Te .
El error relativo est denido como:
er =
por lo tanto podemos escribir:
y y
,
y
y y
= Te .
y
5
De hecho, las calculadoras poseen algoritmos de este tipo para obtener los valores de las funciones trigonomtricas y trascendentes.
- 22 -
Revisin: 08/2011
t > s,
ert
t = 101t ),
ers
y yt
y ys
= Te t ; ers =
= Te s .
y
y
tenemos:
ers ert =
de donde despejamos
ert =
Si restamos
t y s, (s = 101s
Te :
yt ys
= Te (s t ),
y
yt ys
.
y (s t )
no lo conocemos, tomamos y
t en su lugar. En consecuencia, la expresin
Te =
Como el valor de y
queda:
Te =
yt ys
.
yt (s t )
yt
ys ,
Te
Como ejemplo, utilicemos el mismo algoritmo del caso anterior. Calculemos el valor de
sen 4 con tres precisiones distintas: s = 4; t = 8 y u = 15. Para cada caso tendremos:
ys = 0, 706; yt = 0, 7071068 y yu = 0, 70710678293687. Con estos valores calculamos los Te ,
tomando como valor de referencia y
u . As, obtenemos los siguientes valores:
Tes =
yu ys
0, 70710678293687 0, 706
=
= 1, 565;
yu (s u )
0, 70710678293687 (103 1014 )
Tet =
yu yt
0, 70710678293687 0, 7071068
=
= 0, 241.
yu (t u )
0, 70710678293687 (107 1014 )
Si analizamos un poco los valores obtenidos, vemos que en el primer caso el error de
redondeo se amplica, puesto que el
Te
< 1).
Podramos
decir que calcular el valor de y con ms precisin mejora el resultado nal, pero hemos vistos
que no siempre esto es cierto.
Revisin: 08/2011
- 23 -
1.9.1. Cancelacin
En su libro, Higham presenta el siguiente caso. Supongamos que debemos hacer la siguiente operacin:
f (x) =
con
x = 1, 2 105
y con
cos(x) = c
1 cos(x)
,
x2
c = 0, 9999999999;
de manera que
1 c = 0, 0000000001.
1c
se obtiene
x2
10
10
f (x) = 1,4410
10 = 0, 6944 . . .,
incorrecto pues es claro que 0 f (x) 1/2 para todo x 6= 0.
Al analizar la cota del error relativo para la resta x
= a
b,
b = b(1 + b) obtiene:
Al calcular
f (x) =
resultado evidentemente
donde
a
= a(1 + a)
x x
aa + bb
|a| + |b|
x =
max(|a| , |b|) |a b| .
ab
La cota del error relativo de
que una resta con esta condicin da preeminencia a los errores iniciales.
Tambin arma que la cancelacin no siempre es mala, por varias razones. La primera
es que los nmeros a restar pueden ser libres de error. La segunda, que la cancelacin puede ser
una seal de un problema intrnsecamente mal condicionado y, por lo tanto, inevitable. Tercero,
los efectos de la cancelacin dependen del contexto en que se efecta. Si
resta en la operacin
x + (y z)
x >> y z > 0,
la
es inocua.
1 n
f (n) = lm 1 +
,
n
n
n nito pero lo sucientemente grande. En la tabla 1.3 podemos ver los resultados para
R
n obtenidas en MS Excel
.
Como podemos observar, a medida que n aumenta, mejora la aproximacin de e. Sin
8
9
embargo, eso ocurre slo para n < 10 . Cuando n 10 la aproximacin se vuelva cada vez
15
peor, como es el caso de n = 10 . Al igual que en el ejemplo ya citado, el problema es la
1
imposibilidad de representar correctamente
n cuando n es muy grande y, en consecuencia, un
tomando
distintos
Revisin: 08/2011
f (n)
y diferencia con
f (n)
101
2,593742460100000
102
2,704813829421530
103
104
105
106
107
108
109
1010
1011
1012
1013
1014
1015
2,716923932235590
e.
|e f (n)|
1, 24539 101
1, 34680 102
1, 35790 103
1, 35902 104
1, 35913 105
1, 35936 106
1, 34327 107
3, 01117 108
2, 23553 107
2, 24776 107
2, 24898 107
2, 41668 104
2, 17179 103
2, 17179 103
3, 16753 101
2,718145926824930
2,718268237192300
2,718280469095750
2,718281694132080
2,718281798347360
2,718282052011560
2,718282053234790
2,718282053357110
2,718523496037240
2,716110034086900
2,716110034087020
3,035035206549260
4
104 2
x
1 =
.
3
1
1
x2
Si utilizamos dos precisiones diferentes para resolver el sistema, una con cuatro decimales
y otra con tres, obtenemos los siguientes vectores [x]:
x1
x2
1
0, 01
=
2
con tres decimales,
x1
x2
2
1, 0001
=
2
1
1
x
3
1 =
,
104 2
x2
4
x1
1, 0
=
x2
2, 0
cualquiera sea la precisin utilizada y que corresponde a la solucin correcta.
Revisin: 08/2011
- 25 -
= valorviejo
+ pequea correccin
6 . Muchos de los
mtodos numricos se expresan de esta forma, como por ejemplo, el mtodo de NewtonRaphson, el Mtodo de los Gradientes Conjugados para resolver sistemas de ecuaciones
lineales, etc. Un ejemplo clsico es el mtodo del renamiento iterativo de la solucin para
Ax = B ,
1 resolviendo A1 = r1 ,
x
2 = x
1 + 1 .
r1 = B A
x1 ,
y con l un valor
Wilkinson, el padre del anlisis de la propagacin de errores, gan una gran experiencia respecto a la estabilidad numrica gracias a ese tipo de revisin. Es irnico
que con las grandes facilidades que se tienen hoy para rastrear los pasos de un algoritmo (ventanas mltiples, herramientas grcas, impresoras rpidas), a veces se
obtengan menos resultados que en esa poca en las cuales slo se contaba con papel y
lmparas (vlvulas).
6
Sin embargo, Higham mismo reconoce que no es necesario operar con muchos dgitos signicativos para
obtener buenos resultados utilizando este procedimiento. Vase [6]
- 26 -
Revisin: 08/2011
Captulo 2
Ax = B .
tendido de programas que aplican el mtodo de los elementos nitos o de las diferencias nitas
es un ejemplo de ello. En esos programas, como los de anlisis estructural, el ncleo principal del programa es la resolucin de sistemas de ecuaciones lineales de grandes dimensiones
(1.000 1.000, 10.000 10.000, etc.). En este tipo de problemas no resulta muy eciente invertir
la matriz de coecientes para hallar la solucin del sistema. Tambin la aplicacin de mtodos
de regresin mltiple requieren la solucin de sistemas de ecuaciones lineales, algo usual en estadstica. Podemos decir, entonces, que en ingeniera el uso de sistemas de ecuaciones lineales es
una prctica habitual.
Por lo tanto, uno de los temas ms importantes del anlisis numrico es el estudio de la
resolucin de estos sistemas de ecuaciones. Si bien conocemos mtodos muy precisos (exactos)
para resolver sistemas de pequeas dimensiones, el problema es analizar cmo resolver sistemas
de grandes a muy grandes dimensiones.
Del lgebra lineal sabemos que podemos obtener la solucin de
x=
Ax = B
si hacemos
2.2. Deniciones
Empezaremos dar algunas deniciones relacionadas con los vectores y las matrices.
Denicin 2.1.
nn
Denicin 2.2.
6= 0)
se denomina matriz no
singular.
Revisin: 08/2011
- 27 -
Denicin 2.3.
Una matriz
A1 ,
si
es una matriz
no singular.
A partir de esta ltima denicin podemos decir que un sistema de ecuaciones lineales
tiene solucin nica si la matriz
Denicin 2.4.
del sistema
Ax = B
es cuadrada y no singular.
pendiente.
Por lo tanto, el rango de una matriz cualquiera siempre es menor o igual al nmero de
las (rango(A)
de
nn
Denicin 2.5.
<n
es una funcin,
k k,
de
<n
en
<,
propiedades:
x <n ;
1.
kxk > 0
para todo
2.
kxk = 0
si y slo si
3.
k xk = || kxk
4.
kx + yk kxk + kyk
Denicin 2.6.
1.
x 0 (x = [0; 0; . . . ; 0]T );
para todo
<
para todo
x <n ,
y;
x; y <n .
v
uX
u n 2
kxk2 = t
xi
i=1
2.
kxk = m
ax |xi |.
1in
Denicin 2.7.
k k,
es una
de
nn
1.
kAk > 0;
2.
kAk = 0
3.
k Ak = || kAk;
4.
kA + Bk kAk + kBk;
5.
kA Bk kAk kBk.
si y slo si
nn
A 0,
es decir,
es la matriz nula;
Revisin: 08/2011
0
0 u33
0
0
0
Para resolver un sistema
Ux = B
44
u14
u24
u34
u44
x4
x4 =
x3 =
b4
u44
b3 u34 x4
u33
.
.
.
n
X
bi
xi =
uij xj
j=i+1
uii
sustitucin inversa.
x1 =
x2 =
Lx = B
es:
b1
l11
b2 l21 x1
l22
.
.
.
bi
xi =
En este caso, el mtodo se denomina
i1
X
lij xj
j=1
lii
sustitucin directa.
Cualquiera de estos mtodos es sencillo de aplicar y evita tener que invertir la matriz
de coeciente de un sistema de ecuaciones lineales, lo que facilita la resolucin del mismo. En
consecuencia, los mtodos directos se basan en transformar la matriz de coecientes original no
triangular, en una nueva matriz de coecientes triangular.
A.
a11
pivote.
ai1
se anule, es decir, se
Se ja la siguiente la, se ja el pivote en la diagonal principal y se repite el paso anterior.
Se contina hasta que la matriz queda transformada en una matriz triangular superior.
Revisin: 08/2011
- 29 -
xi .
B,
su vector independiente
de dimensiones
n = 4,
con
a11
a21
A=
a31
a41
Para obtener el vector
a12
a22
a32
a42
a13
a23
a33
a43
a14
a24
a34
a44
m21 =
a21
a11
|
|
|
|
b1
b2
.
b3
b4
m21 :
a2i
b2 :
a3i , a4i , b3
b4 ,
m31
m41
ampliada:
a11
0
A=
0
0
a12
a22
a32
a42
a13
a23
a33
a43
a14
a24
a34
a44
|
|
|
|
b1
b2
;
b3
b4
5. Fijar la siguiente la (la segunda) de la matriz transformada y repetir los pasos 2 a 4,
es decir, calcular los coecientes
mkj , (m32
m42 ),
m43 ),
obtendremos nal-
a14
a24
a#
34
a+
44
| b1
| b2
.
| b#
3
+
| b4
do:
x4 =
x3 =
x2 =
x1 =
- 30 -
b+
4
a+
44
#
b#
3 a34 x4
a#
33
b2 a23 x3 a24 x4
a22
b1 a12 x2 a13 x3 a14 x4
a11
Revisin: 08/2011
Entonces, la expresin general para la transformacin de las las de una matriz ampliada
es la siguiente:
A,
y:
bi = bi mil bl
para los coecientes del vector de trminos independientes (B ), con
mil =
ail
all .
Este procedimiento es muy til puesto que se conoce exactamente la cantidad de pasos
que deben efectuarse, es decir, el mtodo tiene un cantidad
a resolver cuenta con varios vectores
con la matriz
B.
A.
Con este procedimiento, es posible conocer el costo computacional del mtodo, es decir,
establecer cuanto tiempo lleva todo el proceso. Una forma de estimar este costo de transformacin
de la matriz en triangular superior es mediante la siguiente expresin que cuenta las operaciones
realizadas (sumas, restas, multiplicaciones y divisiones). Para la transformacin de la matriz
ampliada con el vector
operaciones:
n1
X
k=1
2
n2 7
[(n k) + 2 (n k) (n k + 1)] = n3 +
n.
3
2
6
1+
n1
X
[2 (n k) + 1] = n2 .
k=1
En consecuencia, si se suman ambos valores, tenemos que el costo de efectuar la eliminacin de Gauss es:
es decir, proporcional a
2 3 3 2 7
n + n n;
3
2
6
n3 .
Conviene tener presente que esta estimacin es aproximada, pues no se han tenido en
cuenta otros costos difciles de evaluar como son el manejo de las prioridades de memoria, la
forma de guardar los datos, etc. Sin embargo, esta estimacin sirve para establecer que a medida
que la dimensin de la matriz aumenta, el costo es proporcional al cubo de la misma, es decir,
el aumento del tiempo empleado en resolver el sistema completo (el costo computacional)
es potencial y no lineal. Es por ello que resolver un sistema de
proporcional a
1.000.000.000
1.000 1.000
insume un costo
operaciones.
Un problema que puede surgir en este mtodo es si alguno de los elementos de la diagonal
principal al ser transformados se anulan. Si esto ocurriera, de acuerdo con el algoritmo anterior,
el procedimiento se detendra y en consecuencia no podra obtenerse solucin alguna. En estos
casos se aplican versiones ms desarrolladas, denominadas
Parcial
(EGPP) o
(EGPT).
x1 + x2 x3 = 1
x1 + x2 + 4x3 = 2
2x1 x2 + 2x3 = 3.
Revisin: 08/2011
- 31 -
1 1 1 | 1
1 1 1 | 1
1 1
4 | 2 0 0
5 | 1 .
2 1 2 | 3
0 3 4 | 1
Como vemos, la transformacin de la matriz nos deja nulo el coeciente
a22
de la segunda
la, lo que nos impide seguir operando. Para poder seguir debemos intercambiar las las dos y
tres, en consecuencia tendremos:
1, 2667
1 1 1 | 1
x1
0 3 4 | 1 x2 = 0, 0667 .
x3
0, 2000
0 0
5 | 1
El intercambio entre las las 2 y 3 evit que el procedimiento se detuviera. Pero tambin
es posible que valores muy chicos en los coecientes de la diagonal principal generen un problema
en la mecnica del sistema. Por ejemplo, consideremos el siguiente sistema:
0, 03
58, 9
|
59, 2
;
0
10400 | 10300
pues al hacer los clculos obtenemos que:
m21 =
5, 31
= 177 a22 = 6, 10 177 58, 9 6, 10 10400 10400
0, 03
b2 = 47, 0 177 59, 2 47, 0 10400 10300.
x1
x2
30, 0
=
,
0, 990
Pero si resolvemos el sistema anterior con precisin innita, el resultado que obtenemos
es:
x1
x2
10
=
,
1
lo que nos indica que el resultado anterior es incorrecto. Esta diferencia est dada por el coeciente
0, 03
5, 31 6, 10 | 47, 0
;
0
58, 9 | 58, 9
m21 =
- 32 -
0, 03
= 0, 005649 0, 005 a22 = 58, 9 0, 005 (6, 10) 58, 9 + 0, 030 58, 9
5, 31
Resumen de las Clases Tericas
Revisin: 08/2011
x1
x2
10
=
,
1
2.5. Factorizacin LU
El mtodo de eliminacin de Gauss es un mtodo muy potente. Sin embargo, no siempre
es conveniente su utilizacin. Supongamos por un momento que para resolver un determinado
problema debemos resolver el sistema de ecuaciones en forma anidada. Es decir, cada nueva
solucin depende del resultado obtenido en un paso anterior, o sea, cada vector B depende de la
solucin anterior (B
<i>
= f x<i1>
).
Si queremos resolver estos sistemas nos encontraremos con la desventaja de que en cada
paso tendremos que recalcular la matriz triangular superior, lo que signica un costo computacional muy grande, tal como vimos en el punto anterior. Por lo tanto, deberamos buscar un
mtodo que nos evite repetir dichos clculos.
Un mtodo muy eciente para estos casos es la descomposicin o factorizacin LU. sta
consiste en descomponer la matriz
Ax = LU x = B
con
A = LU.
Ly = B
Ux = y
En el primer caso, para obtener la solucin intermedia y, aplicamos la sustitucin directa,
y en el segundo, la sustitucin inversa. Vemos que en este mtodo el vector B no es transformado
en ninguno de los sistemas resueltos, que es lo que estbamos buscando. Pero cmo se obtienen
las dos matrices triangulares?
En el caso de la matriz triangular superior, la forma ms sencilla de obtenerla es aplicar
el mismo algoritmo que el utilizado para eliminacin de Gauss, lo que signica que el costo
computacional es similar (pero no igual, puesto que no debe transformarse al vector B ). Nos
falta la matriz L. Pero esta matriz es muy sencilla de obtener. Planteemos el esquema para
obtener los coecientes de la matriz
Revisin: 08/2011
- 33 -
2.5. Factorizacin LU
iguales a 1 (lii
= 1):
u11
a11
l21 u11
a21 l21 =
l31 u11
a31 l31
a21
a21
=
= m21
u11
a11
a31
a31
=
=
= m31
u11
a11
a32 l32 u22 = a32 l31 u12 = a32 m31 a12 = a32
{z
}
|
a32
l32
a32
u22
a32
a22
= m32
siguiente forma:
1
0
0
...
m21
1
0
.
..
..
..
..
..
L= .
.
.
.
mn1,1 mn1,n2
1
mn1
. . . mn,n2 mn,n1
0
0
0
1
0 a33 a3n
U = 0
..
.
.
..
..
.
.
.
.
.
.
.
0
0 . . . 0 ann
donde los
aij
Obtenidas
U,
x.
y1 = b1
y2 = b2 l21 y1
.
.
.
yi = bi
i1
X
lij yj
j=1
puesto que los coecientes lii son iguales a uno (lii
Como dijimos, obtenido
= 1).
xn =
xn1 =
yn
unn
yn1 un1,n yn
un1,n1
.
.
.
yi
xi =
- 34 -
n
X
uij xj
j=i+1
uii
Revisin: 08/2011
L,
B,
por lo que
sustitucin directa primero e inversa despus. Este mtodo se conoce como Mtodo de Doolittle.
Ahora nos quedara analizar el costo computacional del mtodo. Sin embargo, dado que
hemos utilizado el mtodo de eliminacin de Gauss para obtener las matrices
L, el costo para
este mtodo es muy similar al de dicho mtodo. En consecuencia, la ventaja est principalmente
en no tener que repetir la triangulacin de la matriz
Al obtener la matriz
distinto.
ya visto: que un coeciente de la diagonal principal se haga nulo en los pasos intermedios. En
ese sentido, valen las mismas aclaraciones respecto al Pivoteo Parcial y al Pivoteo Total. Es por
eso que suele decirse que existe un par de matrices
P A = LU,
donde
A = AT .
1
Otro tipo de matriz es la conocida como denida positiva . En este caso se debe cumplir
que:
xT Ax > 0
para todo
x 6= 0.
Es de notar que lo que se impone para que una matriz sea denida positiva es que el
escalar resultante de la operacin
resulta muy engorroso, por lo que suelen utilizarse algunos procedimientos alternativos. Para ello
veamos los siguiente conceptos.
Denicin 2.8.
Ak =
..................
ak1 ak2 . . . akn
para alguna
1 k n.
Teorema 2.1.
Teorema 2.2.
Corolario 2.2.1.
la forma
La matriz simtrica
LDLT ,
donde
diagonal principal
Corolario 2.2.2.
1
Algunos autores exigen que A sea simtrica y denida positiva. Sin embargo, en principio, se puede decir que
no es necesario que una matriz sea simtrica para que sea denida positiva.
Revisin: 08/2011
- 35 -
Cholesky.
En efecto, si la matriz
A conocida como
que cumpla:
SS T = A.
LU . De acuerdo
A puede ser factorizada como LDLT . Si adems es
denida positiva, entonces los coecientes de D son positivos. En consecuencia, podemos obtener
sin problemas
D, con lo cual tenemos A = L D DLT . As nuestra matriz A puede ser
Veamos como podemos obtener esta matriz a partir de la factorizacin
expresada como:
T
T
A = |L {zD} | DL
{z } = SS .
S
ST
"
sii = aii
i1
X
#1/2
s2ik
k=1
con
son:
"
#
i1
X
1
sji =
aji
sjk sik ,
sii
k=1
j > i.
Este mtodo es mucho ms eciente puesto que slo debemos calcular y guardar una
sola matriz, a diferencia de la factorizacin LU en la que debo calcular y guardar dos matrices,
si bien algunos algoritmos permiten guardar ambas matrices en una sola. Adems, el mtodo
Cholesky no aumenta considerablemente el costo computacional que analizamos en los puntos
anteriores, por ms que deban extraerse
races cuadradas.
Este mtodo es muy aplicado en programas estructurales que aplican el mtodo de los
elementos nitos, dado que la matriz de coecientes es una matriz simtrica y denida positiva.
De todos modos, tiene las mismas desventajas vistas para los otros mtodos cuando la dimensin
de la matriz es cada vez ms grande.
procedimiento resulta un tanto engorroso y largo, adems de poco prctico. Una segunda manera
es analizar lo siguiente: puesto que nuestro sistema se puede expresar como
alternativa es
x = A1 B .
Si denimos a
N = A1 ,
nos queda
x = N B.
Ax = B ,
una forma
Si desarrollamos esta
nos queda:
xi =
n
X
nij bj .
j=1
Armemos un algoritmo que tenga la siguiente forma:
sj
xi
= nij bj ;
n
X
=
sj .
j=1
- 36 -
Revisin: 08/2011
esj
ersj
sj :
e xi
erxi
n
X
j=1
n
X
j=1
n
X
e sj =
esj
+
xi
j=1
n
X
n
X
nij bj j ,
j=1
k =
n
n
n
X
(bj eij + nij ej ) X nij bj j X
+
+
k .
xi
xi
j=1
j=1
k=2
k=2
erxi =
n
n
X
nij bj (erij + erj + j ) X
+
k .
xi
j=1
k=2
erxi =
n
X
nij bj
j=1
xi
(erij + erj ) +
n
X
xi
j=1
erxi
n
X
nij bj
xi
j +
n
X
k .
k=2
es:
j=1
n
X
T ej j ,
j=1
con
2nij bj
nij bj
y T ej
+ 1,
xi
xi
tomamos que erij ; erj < r y que j < .
Hemos encontrado para cada xi la expresin del error relativo,
Cpj =
si
aproximada del error. Pero, en la prctica, sirve esto? Todos los clculos son engorrosos y adems
hemos partido de un algoritmo no del todo prctico, pues hemos dicho que invertir la matriz no
es conveniente
2 . Entonces, qu hacemos?
kx x
k,
innito.
Como, en principio, no conocemos el resultado exacto de
x,
calcular lo siguiente:
R = B A
x,
donde
vector
Esta deduccin es interesante, pues nos muestra que tanto el Cp como el Te dependen de la matriz A, dado
que la matriz N no es otra cosa que A1 . De ah que la solucin de cualquier sistema de ecuaciones lineales
mediante la inversin de la matriz es potencialmente inestable.
Revisin: 08/2011
- 37 -
R?
A
Supongamos la matriz
A=
y el vector
dados a continuacin:
1, 2969 0, 8648
0, 2161 0, 1441
;B =
0, 8642
0, 1440
.
Supongamos tambin que usando un determinado algoritmo hemos obtenido las siguientes
soluciones:
0, 9911
0, 0126
x
1 =
; x
2 =
.
0, 4870
1, 0182
Entonces, tendremos:
R = B A
xi
Por lo tanto, tendremos que
kRk = 107 .
107
107
.
x=
2
2
.
107
veces el residuo!
x
?
por s solo
x
.
Veamos. Escribamos el
residuo como:
R = B A
x = Ax A
x = A (x x
) .
es decir:
xx
= A1 R.
Elijamos cualquier norma vectorial, por ejemplo, la innita. Entonces tendremos:
kx x
k =
A1 R
A1
kRk .
A1 . Usualmente el error relativo
kAk
1
kBk
, tendremos
kBk kAk kxk implica que kxk
kRk
kx x
k
kAk
A1
kRk
= kAk
A1
.
kxk
kBk
kBk
Esta expresin nos permite establecer que el residuo por s mismo no nos alcanza para
estimar el error de nuestro vector solucin
tersticas de la matriz
A.
1
A
como
el error relativo de
kAk
x
no
x
,
condicin de A
1
A
kAk.
cond (A) o (A)3 .
depende de
y lo expresaremos como
son nmeros reales (son normas de las matrices) por lo tanto para que
sea muy grande, el producto de
1
A
kAk
es decir:
kAk
A1
= (A) > / > 1.
Si la matriz es no singular debe cumplirse que:
1 = kIk =
A1 A
(A),
que puede considerarse el lmite inferior, en tanto que si la matriz
(A) ,
3
A1 ),
que puede ser considerado el lmite superior. As, puede decirse que el nmero de
En este caso hemos utilizado la norma innito. Podra haberse usado la norma eucldea y obtener el cond2 (A).
- 38 -
Revisin: 08/2011
condicin da una idea de cuan cerca est la matriz de ser singular, o lo que es lo mismo, de que
el sistema no tenga solucin o que sean innitas.
Una conclusin interesante es que si la matriz
pequeos desvos en el residuo
kxk = kx x
k,
kxk >> 1,
x
,
mal condicionada. An as, existe la posibilidad de obtener una solucin aceptable, dentro de
cierto rango. Al analizar el error cometido, introdujimos el concepto del vector residuo, que
denominamos
R,
R = B A
x.
Como vimos, con ese vector residuo podemos calcular el error de nuestra aproximacin
respecto de nuestra solucin exacta
x,
B A
x = Ax A
x = A (x x
) = A = R,
| {z }
y, en consecuencia, resolviendo este nuevo sistema de ecuaciones podemos obtener nuestro valor
=xx
,
x=x
+ ,
y con ello hemos obtenido nuestra solucin exacta. Sin embargo, esto no suele ocurrir al primer
intento, de manera que lo que obtendremos en realidad es una nueva aproximacin de nuestra
solucin, que llamaremos
x
.
x
= x1 ; R1 = B Ax1 ; A1 = R1 ,
por lo que tendremos:
x
= x2 = x1 + 1 .
El paso siguiente es obtener
R2
2 ,
en forma anloga a
1 .
En consecuencia, tendremos
que
x3 = x2 + 2 = x1 + 1 + 2 = x
+ 1 + 2 .
Si generalizamos, tenemos que la solucin exacta se puede obtener con la expresin
x=x
+
n
X
i ,
i=1
es decir, que a la solucin aproximada le sumamos todos los errores para obtener la solucin
exacta. Por supuesto, es imposible efectuar innitas iteraciones, por lo que es imprescindible
establecer algn criterio de corte. Un criterio puede ser cortar las iteraciones cuando
kRk k T ol,
pero vimos que esto no asegura que el error sea pequeo. Otro criterio, tal vez ms acertado, es
interrumpir las iteraciones o clculos cuando
kk k T ol,
x
.
Este procedimiento que obtiene la solucin de nuestro sistema sumando los errores, se
conoce como mtodo del renamiento iterativo de la solucin y ha cobrado gran desarrollo en los
ltimos aos, pues pueden obtenerse buenos resultados con matrices mal condicionadas. Suele
decirse que para obtener una buena solucin, los sistemas
Ai = Ri deben
Ax = B
Revisin: 08/2011
entonces debe usarse doble precisin para resolver cada uno de estos sistemas. Esto no es del
todo cierto, ya que pueden obtenerse buenos resultados usando la misma precisin, tal como
ha demostrado N. Higham (vase [6]). Pero existe otra cuestin. Cuando conviene aplicar este
mtodo?
Supongamos (una vez ms) que obtenemos la aproximacin
x
. Con esta solucin, podemos
R1 = B A
x.
Si realizamos los clculos utilizando una precisin de
A.
decir, haciendo
A1 = R1 .
Entonces, podemos escribir lo siguiente:
xk = 10t k
xk (A),
k1 k kx x
k =
A1 R1
A1
kR1 k
A1
10t kAk k
con lo cual podemos estimar
(A)
mediante
(A)
k1 k t
10 .
k
xk
Como hemos dicho, este mtodo permite obtener buenos resultados inclusive con matrices
mal condicionadas. Sin embargo, si
x
para obtener un resultado aproximado
aceptable.
A y B
como el vector
tienen pequeas
x
. Entonces
tendremos:
(A + A)
x = B + B.
Podemos escribir que
A
x + A
x = B + B.
Sabemos que
x=x
+ x,
A(x x) + A(x x) = B + B,
Ax Ax + Ax Ax = B + B.
Si despreciamos
Ax,
tendremos
Ax + Ax Ax = B + B,
Ax Ax = B,
Ax = B + Ax,
x = A1 B + A1 Ax.
- 40 -
Revisin: 08/2011
kxk
A1
kBk +
A1
kAk kxk ,
kBk kAk kxk,
obtener:
kxk
kAk kxk
Si multiplicamos por
kAk
1
A
kBk
A1
kAk kxk
+
,
kBk
kAk kxk
1
1
A
kBk
A
kAk
+
.
kBk
kAk
tendremos que:
kxk
kxk
kxk
kxk
kxk
kxk
1
A
kAk
kxk kAk
kBk +
A1
kAk
kBk
kBk
1
A
kAk
kBk +
A1
kAk
kBk
1
kBk kAk
.
kAk A
+
kAk
|
{z
} kBk
cond(A)
sean pequeos (es decir, que los errores inherentes sean pequeos), sino que es necesario que el
nmero de condicin de
A (cond(A))
sea cercano a 1.
Analicemos ahora los errores de redondeo. Vamos a buscar una cota de estos errores.
Supongamos que aplicamos el mtodo de factorizacin
LU
LU = A + A,
donde
U.
(A + A)(x x) = B
Ax Ax + Ax Ax = B
Ax = A(x x).
por lo tanto,
x = A1 A(x x).
Si tomamos la norma tenemos
kxk
A1
kAk kx xk
kAk
A1
kAk kx xk
kAk
kAk
kxk (A) kx xk
.
kAk
donde
= max
k
aij
kAk
es la
kxk
kxk
- 41 -
kxk
kBk kAk
3
2
(A)
+
+ 1, 01(n + 3n ) .
kxk
kBk
kAk
Podemos ver que si la matriz es de grandes dimensiones, comienzan a tener gran incidencia
los errores de redondeo, con lo cual el sistema puede volverse inestable si
(A) >> 1,
adems de
mal condicionado.
6= 0).
Pero existen muchos otros problemas en los cuales el sistema de ecuaciones tiene una
matriz
que no es densa, sino por el contrario, es rala, es decir, tiene muchos coecientes nulos,
como es el caso del anlisis estructural en tres dimensiones. Entonces trabajar con los mtodos
directos se vuelve muy poco prctico, pues debemos hacer muchas operaciones con coecientes
nulos y, lo que es peor, muchas veces transformar un coeciente nulo en otro no nulo, incorporando
un error que antes no exista. Es por eso que se han desarrollado mtodos que tienen en cuenta
este tipo de matrices. Son los mtodos denominados iterativos.
En estos mtodos, la solucin la obtenemos a partir de una solucin inicial, la cual se
va corrigiendo en sucesivas iteraciones hasta obtener la solucin correcta, de ah el nombre
de iterativos. En principio, podernos suponer que la cantidad de iteraciones es innita, es
decir, que la solucin exacta la obtenemos luego de innitas iteraciones. Como efectuar esto es
imposible, lo que se hace es iterar hasta que la solucin est dentro de las tolerancias impuestas.
Para analizar estos mtodos partamos de denirlos en forma matricial. Sabemos que
nuestro sistema se expresa como
Ax = B,
o, lo que es lo mismo, como
B Ax = 0.
En consecuencia, podemos sumar en ambos miembros
Px
que
P x = P x Ax + B P x = (P A) x + B.
Si despejamos
x = P 1 (P A) x + P 1 B,
que puede escribirse como
x = P 1 P P 1 A x + P 1 B = I P 1 A x + P 1 B,
a partir del cual se puede obtener el mtodo iterativo para resolver un sistema de ecuaciones,
que toma la siguiente forma:
x(n+1) = I P 1 A x(n) + P 1 B,
donde
- 42 -
es la iteracin.
Revisin: 08/2011
x(n+1) = T x(n) + C,
donde
T = I P 1 A
C = P 1 B.
Con esta ltima expresin podemos denir dos tipos de mtodos iterativos: los estacionarios, aquellos en los que
dependen de la iteracin.
son
invariantes, es decir, permanecen constantes en las sucesivas iteraciones necesarias para hallar
la solucin.
Supongamos por un momento que conocemos nuestra solucin exacta
x.
Entonces
(n+1)
x = x(n+1)
+e
(n+1)
(n+1)
(n)
(n)
x
+e
= T x +e
+C
(n)
(n)
= T
| x {z+ C} +T e
= x
x(n+1)
(n+1)
+ T e(n)
e(n+1) = T e(n) .
De la ltima expresin podemos deducir que:
kT k < 1,
y que
kT k << 1
Mtodo de Jacobi
El mtodo estacionario ms sencillo es el Mtodo de Jacobi. Podemos descomponer
como
A = L + D + U.
P = D,
quedar como:
I D1 A x(n) + D1 B
= I D1 (L + D + U ) x(n) + D1 B
x(n+1) =
1
1
(n)
1
= [I D
| {z D} D (L + U )]x + D B
I
h
i
1
= D
B (L + U )x(n) ,
donde
L, D
son:
0
0
...
0
a11 0 . . .
0
a21 0
...
0
0
, D = 0 a22 . . .
L=
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
am1 . . . am m1 0
0
0 . . . amm
Revisin: 08/2011
0 a12 . . .
a1m
. . . . . . . . . . . . . . . . . . . .
U =
0 . . . 0 am1 m .
0 ... 0
0
- 43 -
bi
(n+1)
xi
i1
X
(n)
aij xj
j=1
n
X
(n)
aij xj
j=i+1
aii
= [0]),
Denicin 2.9.
Una matriz
|aii |
n
X
|aij | .
j=1
j6=i
Denicin 2.10.
Una matriz
que
|aii | >
n
X
|aij | .
j=1
j6=i
Denicin 2.11.
Una matriz
cumple que
|aii |
n
X
|aij | ,
j=1
j6=i
para
i = 1; 2; . . . ; n
|akk | >
n
X
|akj | .
j=1
j6=k
El mtodo de Jacobi converge rpidamente si la matriz
Mtodo de Gauss-Seidel
El mtodo de Jacobi es de convergencia muy lenta. Para mejorar esta velocidad de convergencia, imaginemos que usamos parte de los resultados ya obtenidos en el obtencin de los
xi
aprovechando los
i
x(n+1) = D1 B Lx(n+1) U x(n) .
- 44 -
Revisin: 08/2011
bi
(n+1)
xi
i1
X
(n+1)
aij xj
n
X
j=1
(n)
aij xj
j=i+1
aii
Este mtodo converge para las mismas condiciones impuestas al mtodo de Jacobi. Se
puede asegurar que si el mtodo de Gauss-Seidel converge, tambin lo hace el de Jacobi, pero la
inversa no siempre se cumple.
P x(n+1) = P x(n) + |B {z
Ax(n)} = P x(n) + R(n) ,
R(n)
(n)
1 (n)
(n)
1 (n)
1
x(n+1) = P
| {z P} x + P R = x + P R .
I
1
1
(n+1)
D+L x
=
D + L A x(n) + B
1
=
D + L (L + D + U ) x(n) + B
1
=
D + L L D U x(n) + B
1
= B 1
Dx(n) U x(n)
1
1
(n+1)
(n+1)
Dx
= B Lx
1
Dx(n) U x(n)
h
i
1
1
(n+1)
(n)
1
(n+1)
(n)
D
D
x
+
D
B
Lx
U
x
x
= 1
| {z }
I
h
i
= (1 )x(n) + D1 B Lx(n+1) U x(n)
La idea es buscar una matriz
(n+1)
= (1 )x(n) + xGS
Este mtodo se conoce como Mtodo de las sobrerrelajaciones sucesivas (o SOR por sus
bi
(n+1)
xi
Revisin: 08/2011
= (1 )x(n) +
i1
X
(n+1)
aij xj
j=1
n
X
j=i+1
aii
(n)
aij xj
.
- 45 -
existe un valor que hace mxima la velocidad de convergencia para un sistema dado, que puede
ser estimado conociendo el radio espectral de la matriz de Jacobi. Si observamos con detenimiento
veremos que el mtodo de Gauss-Seidel es un caso especial del SOR, pues surge de tomar
En efecto, si
=1
= 1.
tenemos:
bi
(n+1)
xi
i1
X
bi
n
X
(n)
aij xj
j=i+1
aii
(n+1)
aij xj
n
X
j=1
j=1
= (1 1)x(n) +
i1
X
(n+1)
aij xj
(n)
aij xj
j=i+1
aii
0<<2
0 < < 1,
estamos
1 < < 2,
En general, estos mtodos convergen mucho ms rpido que los otros dos, y puede decirse que
cuando Gauss-Seidel no converge, utilizando un
<1
el mtodo de Jacobi.
Criterios de interrupcin
Hasta ac hemos visto los distintos mtodos iterativos estacionarios ms tradicionales que
se aplican para resolver sistemas de ecuaciones lineales. Pero no hemos analizado los criterios
para interrumpir dichas iteraciones. Dado que los mtodos convergen a una solucin cuando
r(n)
(n)
r
< T ol.
2. Que la norma innita del error absoluto entre dos soluciones sucesivas de
sea menor a la
(n)
x x(n1)
< T ol.
3. Que la norma innita del error relativo entre dos soluciones sucesivas sea menor a la
tolerancia, o sea:
(n)
x x(n1)
< T ol.
x(n)
El mejor de los criterios es ltimo, pues hemos visto que es el error relativo el que mejor
representa la incidencia del error en los resultados.
Sin embargo, debemos recordar del anlisis de la cota de error para los mtodos directos
que
kx x
k
kRk
A1
kAk
kxk
kBk
- 46 -
Revisin: 08/2011
<k+1>
x
x<k>
kx<k+1> k
<k+1>
x
x<k>
kx<k+1> k
kRk
A1
kAk
kBk
(A)
kRk
(A) T ol.
kBk
con lo cual debemos cuidarnos al momento de elegir la tolerancia cuando aplicamos un mtodo
iterativo. Queda evidente que cuando la matriz tiende a ser mal condicionada, la tolerancia debe
ser ms chica.
es-
Teorema 2.3.
Si
es una matriz de
1.
1/2
kAk2 = AT A
.
2.
(A) kAk,
n n,
Teorema 2.4.
Teorema 2.5.
Si
aij 0
para cada
i 6= j ,
y si
Ax = B .
aii > 0
para cada
i = 1; 2; . . . ; n,
entonces ser
2.
3.
(TJ ) = (TG ) = 0;
4.
(TJ ) = (TG ) = 1;
donde
TJ
es la matriz de Jacobi, y
TG
es la matriz de Gauss-Seidel.
Teorema 2.6.
Para cualquier
x(0) <n ,
la sucesin
x(k+1) = T x(k) + C,
converge en la solucin nica de
x = Tx + C
x(k)
para cada
si y slo si
k=0
denida por
k 1,
(T ) < 1.
Este teorema nos dice que cualquier mtodo iterativo converge cuando el radio espectral
de la matriz
es menor a 1, tal como vimos al comenzar. Recordemos que la denicin del radio
cualquiera es
(A) = max || ,
es un autovalor de A. En efecto, habamos dicho que para que cualquier mtodo iterativo
kT k < 1. Como (T ) kT k < 1, si los mdulos de los
autovalores de T son menores que 1, entonces los mtodo convergen a la solucin buscada.
donde
Revisin: 08/2011
- 47 -
Teorema 2.7.
Si
0 < < 2,
x(0) .
= 1,
2.7 asegura la convergencia del mtodo SOR para cualquier vector inicial cuando
0 < < 2,
A es
Teorema 2.8.
y la eleccin
A es una matriz denida positiva y tridiagonal, entonces (TG ) = [(TJ )]2 < 1,
ptima de para el mtodo SOR es
Si
2
q
.
1 + 1 [(TJ )]2
se mantienen invariantes en las sucesivas iteraciones. Existen otros mtodos en los cuales
estas dos matrices s se van modicando en las sucesivas iteraciones. Son los llamados mtodos
no estacionarios.
Supongamos que en nuestra expresin general denimos que
P =
obtenemos:
1
I.
Si reemplazamos
para ir corrigiendo
el vector solucin. Nos falta denir ese parmetro. Pero tambin depende de otro vector, el ya
visto residuo. Por lo tanto tenemos dos elementos que podemos manejar para obtener una mejor
aproximacin. Veremos a continuacin algunos de los mtodos no estacionarios ms sencillos que
han servido de base para el desarrollo de los ms modernos y complejos.
r(i+1)
sea mnimo
en cada iteracin. De esta manera siempre tenderemos a la solucin del sistema, pues el ideal
es que sea nulo. Una forma de obtener el mnimo es minimizar la norma eucldea, es decir, el
mdulo de
r(i+1) .
(i+1)
r
=
B Ax(i+1)
.
2
2
(i+1)
2
r
=
B Ax(i+1)
2
2
2
(i+1)
2
(i)
r
=
B A x + r(i)
2
2
h
iT h
i
T
r(i+1) r(i+1) = B A x(i) + r(i)
B A x(i) + r(i) .
- 48 -
Revisin: 08/2011
r(i+1) ,
T h
i
2 Ar(i) B Ax(i) Ar(i) = 0
T h
i
Ar(i) r(i) Ar(i) = 0
T
T
Ar(i) r(i) = Ar(i) Ar(i)
T
Ar(i) r(i)
i =
.
T
Ar(i) Ar(i)
Este coeciente
r(i) = B Ax(i)
T
Ar(i) r(i)
i =
T
Ar(i) Ar(i)
x(i+1) = x(i) + i r(i) .
Este mtodo es convergente si la matriz
4 , pues de lo
contrario no obtendremos un mnimo. (En [10] puede verse una demostracin de esta armacin.)
Existe un segundo algoritmo que tiene la siguiente forma:
r(0) = B Ax(0)
T
Ar(i) r(i)
i =
T
Ar(i) Ar(i)
x(i+1) = x(i) + i r(i)
r(i+1) = r(i) i Ar(i) .
En ambos algoritmos las iteraciones nalizan cuando
pues
r(n) = 0
para
1 T
x Ax B T x + C,
2
es una matriz,
son
es una constante (escalar). la siguiente gura ilustra una forma cuadrtica en dos
dimensiones.
Supongamos ahora que queremos hallar el mnimo (o mximo) de esta funcin. Entonces
debemos obtener su derivada e igualarla a cero, es decir, hacer que:
d f (x)
1
1
= AT x + Ax B = 0.
dx
2
2
4
Revisin: 08/2011
- 49 -
Si
A = AT ,
y podemos escribir:
d f (x)
= Ax B = 0,
dx
que no es otra cosa que nuestro sistema de ecuaciones lineales original. Si adems
es denida
positiva, nos aseguramos que la solucin que se obtenga haga mnima a la forma cuadrtica. En
consecuencia, para aplicar este mtodo, la matriz
denida positiva.
f (x)
f (x)
x
f (x)
d f (x)
0
= f (x) = x2
dx
..
.
f (x)
xn
f (x)
lo ideal sera utilizar estas direcciones de mayor crecimiento pero en sentido inverso, es decir,
usar
f 0 (x),
f 0 (x) = B Ax.
Pero como estamos iterando, tenemos en realidad que:
Revisin: 08/2011
Para obtener el
dx(i+1)
df (x(i+1) )
= f 0 (x(i+1) )T
= f 0 (x(i+1) )T r(i) = 0,
d
d
lo que equivale a decir que el residuo y el gradiente son ortogonales. Como adems sabemos que
r(i+1) = f 0 (x(i+1) ,
entonces tenemos:
T
r(i+1)
T
B Ax(i+1)
iT
h
B A x(i) + i r(i)
T
T
B Ax(i) r(i) i Ar(i)
T
B Ax(i)
r(i) = 0
r(i) = 0
r(i) = 0
r(i) = 0
T
r(i) = i Ar(i) r(i)
i =
r(i) r(i)
T
r(i) Ar(i)
r(0) = B Ax(0)
T
i =
x(i+1)
r(i) r(i)
T
r(i) Ar(i)
= x(i) + i r(i)
Revisin: 08/2011
- 51 -
tiene una desventaja importante: suele usar varias veces la misma direccin de acercamiento.
Esto signica que no utiliza bien las direcciones ms empinadas. Veamos por qu.
Vimos que el vector residuo es el gradiente de nuestra forma cuadrtica. Analicemos la
gura 2.2 ms en detalle. El gradiente lo hemos representado con un plano que pasa por un
punto cuya inclinacin nos da una idea del crecimiento (decrecimiento) en ese punto. Pero
en realidad lo que tenemos son varias direcciones posibles que descienden rpidamente hacia el
mnimo. El Mtodo del Descenso Ms Rpido slo exige que los residuos sean ortogonales, pero
no se ocupa de las direcciones con las cuales se aproxima al siguiente resultado, con lo cual puede
repetir cualquier direccin en el proceso iterativo hasta obtener la solucin. As pierde eciencia.
La forma ms rpida de llegar sera usar direcciones que no se repitan durante el proceso
de descenso. Cul sera el conjunto de direcciones que haran ms rpido ese descenso? La
respuesta es: tomemos un conjunto de direcciones
d(0) d(1) = 0;
d(1) d(2) = 0;
(i)
(j)
= 0,
para
i 6= j.
e(i+1)
d(i)
(i)
e(i+1)
= 0
d
(i)
(i)
= 0
e + i d
i =
d(i) e(i)
T
d(i) d(i)
Sin embargo, este algoritmo no es muy til pues debemos conocer el error que estamos
cometiendo para obtener el coeciente
tendra sentido obtener el coeciente
i .
Y si conocemos
e(i+1) ,
conocemos la solucin y no
En lugar de proponer que el error sea ortogonal a la direccin, vamos a proponer que las
direcciones sean conjugadas, tambin llamadas direcciones ortogonales por A. Qu signica esto?
Supongamos por un momento que trabajamos sobre una supercie esfrica similar a un globo, y
dibujamos sobre sta dos lneas que sean ortogonales, como lo son, un meridiano y un paralelo.
Si deformamos nuestro globo de manera que deje de ser esfrico y se convierta en un elipsoide de
revolucin, las dos lneas se cortarn, pero no sern ortogonales. Si volvemos a transformar ese
globo deformado en una esfera otra vez, dichas lneas volvern a ser ortogonales. Las direcciones
en el elipsoide se denominan conjugadas.
La idea del mtodo es partir de la situacin del elipsoide, transformar los vectores de
forma de llevarlos a la esfera, obtener all las direcciones ortogonales y luego trabajar nuevamente
en el elipsoide. De esa forma, las direcciones sern ortogonales en la supercie de la esfera, y
conjugadas en el elipsoide. (Otro ejemplo en ese mismo sentido sera proyectar la esfera sobre un
plano, prctica comn de la cartografa.)
- 52 -
Revisin: 08/2011
d(i)
sea ortogo-
df (x(i+1) )
dx(i+1)
= f 0 (x(i+1) )T
= f 0 (x(i+1) )T d(i) = 0;
| {z }
d
d
r(i+1)
d(i) r(i+1) = 0
T
d(i)
(i)
Ae(i+1)
d
= 0
(i)
(i)
A e + i d
= 0
i =
d(i) Ad(i)
T
d(i) r(i)
.
T
d(i) Ad(i)
i =
Con este coeciente
d(i) Ae(i)
mediante direcciones conjugadas. Pero nos faltan hallar estas direcciones. Cmo las obtenemos?
La forma ms sencilla es aplicar el mtodo de Gram-Schmidt para ortogonalizar vectores. En
este caso lo que haremos es obtener vectores conjugados a partir de un vector inicial, por lo que
la frmula de Gram-Schmidt queda de la siguiente forma:
d(i) = u(i) +
i1
X
ij Ad(j) ,
j=0
y el coeciente
ij
lo obtenemos mediante:
ij =
siendo
u(i)
u(i) Ad(j)
T
d(j) Ad(j)
el vector a partir del cual obtenemos las direcciones conjugadas (ortogonales por A).
(Vase [11].)
u(i) .
Si proponemos al vector
r(i)
tendremos que:
ij =
ij
r(i) Ad(j)
T
d(j) Ad(j)
tenemos que:
r(j) r(j)
si i = j
T
j
r(i) Ar(j) =
1
T
r(j+1) r(j+1) si i = j + 1
j
T
j+1 j
Revisin: 08/2011
1 r(j+1) r(j+1)
j d(j) T Ad(j)
- 53 -
j =
d(j) r(j)
T
d(j) Ad(j)
1
d(j) Ad(j)
=
,
T
j
d(j) r(j)
j+1 j =
d(j) r(j)
d(j) Ad(j)
r(j+1) r(j+1)
d(j) r(j)
r(j+1) r(j+1)
T
r(j) r(j)
j+1 =
r(j+1) r(j+1)
T
r(j) r(j)
i,
i =
x(i+1)
r(i) r(i)
T
d(i) Ad(i)
= x(i) + i d(i)
i+1 =
d(i+1)
r(i+1) r(i+1)
T
r(i) r(i)
= r(i+1) + i+1 d(i) .
Este mtodo es muy poderoso y converge muy rpidamente, salvo por la aparicin de
los errores de redondeo en las operaciones, lo que hace que no siempre el producto interno sea
nulo. Ms adelante se vern algunas caractersticas sobre la convergencia que lo convierten en
uno de los mtodos iterativos para sistemas de ecuaciones lineales ralos con matrices simtricas
denidas positivas.
A debe
Teorema 2.9.
= mn
entonces el vector
r(i+1)
A + AT
2
; = kAk2 ,
1/2
2
(i+1)
(i)
r
1 2
r
,
2
2
y el algoritmo correspondiente converge para cualquier valor inicial de
x(0) .
Revisin: 08/2011
e(i)
A.
e .
Entonces el
e(i+1) ,
pues es:
e(i+1) = e(i) +
= e(i) +
r(i) r(i)
T
r(i)
T
r(i)
Ar(i)
r(i)
r(i)
T
e r(i) r(i)
e e(i)
= 0.
Si uno elige
i = e ,
e(i)
(i)
n
X
j v (j) ,
j=1
donde los
(i)
= Ae
(i)
n
X
j j v (j)
j=1
2
X
T
(i)
j 2
e
= e(i) e(i) =
j
T
e(i) Ae(i)
X
X
T
=
j v (j)
j j v (j)
j
j 2 j
2
X
T
(i)
j 2 j 2
r
= r(i) r(i) =
j
(i) T
Ar
(i)
j j
e(i+1)
tenemos:
(i+1)
(i)
= e
r(i) r(i)
T
r(i) Ar(i)
X
j 2 j 2
j
= e(i) + X
j j
r(i)
r(i) ,
Revisin: 08/2011
- 55 -
es un promedio ponderado de
1
.
j
energtica
kekA = eT Ae
(i+1)
2
e
1/2
= e(i+1) Ae(i+1)
T
T
=
e(i) + i r(i) A e(i) + i r(i)
T
j j
X
=
e(i)
1 X
2
3
2
A
j j
j j
X
2
2 2
2
j
j
X
=
e(i)
2 con 2 = 1 X
A
j2 j
j2 3j
Esto quiere decir que el error de la iteracin
i+1
A.
Como lo
que interesa es un lmite superior del error, y no el error en si mismo, si denimos que
max
,
mn
1
,
+1
1 i
(i)
(0)
e
e
.
+1
A
A
(La demostracin indicada se puede ver en [11].)
i
1
(i)
(0)
e
2
e
.
+1
A
A
Podemos decir que el mtodo converge ms rpido que el mtodo del descenso ms rpido,
pues en el primero la convergencia depende de
Puesto que
es equivalente a la condicin de
,
A,
condicionada converge rpidamente a la solucin, en tanto que no lo hace si est mal condicionada.
Ax = B , sino que se
M T Ax = M T B de manera
A.
Por esta razn, este mtodo rara vez se aplica directamente sobre el sistema
precondiciona a la matriz
T
tal que
- 56 -
M A
M,
formando el sistema
Revisin: 08/2011
Por otra parte, si la matriz est bien condicionada, el mtodo de los gradientes conjugados
Mtodo de Jacobi:
3.
> 1,
Converge si la matriz
positiva y mejora si adems es simtrica. Es ms fcil de programar pues hay que hacer
operaciones matriciales (vectoriales). La convergencia puede ser lenta, similar a Jacobi.
5.
Mtodo del descenso ms rpido: Se aplica a sistemas con matrices simtricas denidas
positivas. Converge ms rpido que el anterior pero si la matriz no est bien condicionada, no converge. Es ms fcil de programar que el anterior porque reduce la cantidad de
operaciones matriciales. Es equivalente a Gauss-Seidel.
6.
Mtodo de los gradientes conjugados: Se aplica a matrices simtricas denidas positivas. Cuando la matriz est bien condicionada y adems tiene
distribuidos, converge para
k =np
k+1
x(k+1)
el resultado
x(k+1) x = T x(k) x .
Revisin: 08/2011
- 57 -
T x(k+1)
tenemos
x(k+1) x = T x(k) x + T x(k+1) T x(k+1)
= T x(k) x(k+1) + T x(k+1) x .
Si tomamos las normas tenemos que
(k+1)
x
kT k
x(k+1) x(k)
+ kT k
x(k+1) x
x
(1 kT k)
x(k+1) x
kT k
x(k+1) x(k)
kT k
(k+1)
(k+1)
(k)
x
x
.
(1 kT k)
Por lo tanto, el error de truncamiento est dado por
ET
=
kT k
(k+1)
x(k)
.
x
(1 kT k)
x(k+1) = T x(k) + C.
Si consideramos los errores inherentes del sistema, el resultado que obtendremos ser en
realidad
(k)
que x
x
(k+1) .
x
(k) ,
Supongamos que desechamos todos los errores de los pasos anteriores, es decir,
entonces tenemos que
x
(k+1) = x(k) x(k) = (T T )x(k) + (C C).
Como
x = T x + C,
x
(k+1) x = (T T )x(k) + (C C) T x C
= T x(k) x T x(k) C
= T x(k) x T x(k) C + T x(k+1) T x(k+1)
= T x(k+1)x + T x(k) x(k+1) T x(k) C.
Si nuevamente tomamos las normas, obtenemos
(k+1)
x
kT k
x(k+1) x
+ kT k
x(k+1) x(k)
+ kT k
x(k)
+ kCk
x
(1 kT k)
x(k+1) x
kT k
x(k+1) x(k)
+ kT k
x(k)
+ kCk
kT k
kT k
kCk
(k+1)
(k+1)
(k)
(k)
x
x
+
x
.
+
1 kT k
1 kT k
1 kT k
Si analizamos en detalle esta ltima expresin, vemos que se repite el error de truncamiento (primer trmino de la derecha). En consecuencia, el error inherente est dado por
EI
=
kT k
kCk
(k)
.
x
+
1 kT k
1 kT k
x(k+1) = T x(k) + C,
- 58 -
Revisin: 08/2011
x
(k+1)
y que
x(k) x
(k) .
x
(k+1) = T x(k) + C.
Para cada componente de
(k+1)
xi
x(k+1)
tenemos
n
X
(k)
=
tij x + ci (1 i ) .
(k+1)
xi
j=1
Si hacemos un anlisis retrospectivo del error (backward error), y asumimos que
0, 01,
(k+1)
xi
X
(k)
(k+1)
=
tij x 1, 01(n + 2 j)j (1 + i ) + x
i ,
j
j
con
|j | 1
|i | .
Consideremos ahora el hecho de que generalmente las matrices de los sistemas son ralas.
Entonces podemos denir que
p =
q =
m
ax {pi },
1in
con
pi :
m
ax {|tij |},
1i,jn
p
X
(k+1)
(k+1)
xi
q
x(k)
1, 01 (p + 2 j) +
xi
,
j=1
y como
x(k) x(k+1) ,
(k+1)
xi
p2 + 3p
q 1, 01
+ 1 .
x(k)
2
Ahora estimemos la diferencia
x
(k+1) x.
Sabemos que
x
(k+1) = T x(k) + C x(k+1) ,
entonces
x
(k+1) x = T x(k) + C x(k+1) T x C
= T x(k) x x(k+1) .
T x(k+1) , obtenemos
x
(k+1) x = T x(k) x
(k+1) + T x
(k+1) x x(k+1) .
Una vez ms, tomemos las normas, con lo cual nos queda
(k+1)
(k+1)
x
= kT k
x(k+1) x
(k)
+ kT k
x
x
+
x(k+1)
x
(k+1)
(1 kT k)
x
x
= kT k
x(k+1) x
(k)
+
x(k+1)
+
x(k+1)
kT k
(k+1)
(k+1)
(k)
x
=
+x
x
x
1 kT k
1 kT k
Revisin: 08/2011
- 59 -
(k+1)
p2 +3p
x(k)
y como el primer trmino corresponde
x
q
1,
01
+
1
i
2
(k)
x
p2 + 3p
q 1, 01
ER
+ 1 .
1 kT k
2
Finalmente, el error total al aplicar un mtodo iterativo estacionario es la suma de todos
los errores, es decir,
(k+1)
x
ET + EI + ER
x
kT k
kCk
kT k
(k+1)
(k)
(k)
x
+
x
x
+
(1 kT k)
1 kT k
1 kT k
(k)
x
p2 + 3p
q 1, 01
+
+1
1 kT k
2
1
(k+1)
x
kT k
x(k+1) x(k)
+ kT k
x(k)
+ kCk
x
1 kT k
p2 + 3p
(k)
+
x
q 1, 01
+1 .
2
Como hemos visto en el captulo 1, siempre es conveniente que los errores de truncamiento
e inherentes predominen respecto al de redondeo. En consecuencia, siempre debemos tratar que
ER < ET < EI ,
despreciable
5.
Gonzlez, en su libro, dice que ET < ER pero eso se contrapone con lo que arman otros autores. La razn
principal es que el error de redondeo tiene un comportamiento errtico, lo que hace difcil acotarlo. (Ver ejemplo
en el captulo 1 con el error de discretizacin.)
- 60 -
Revisin: 08/2011
ecuaciones lineales con las caractersticas antes mencionadas, por aplicacin del Mtodo de los
Elementos Finitos.
Finalmente, quien quiera adentrarse en los mtodos iterativos no estacionarios, el libro de
Y. Saad es una muestra muy interesante de cmo la necesidad de contar con algoritmos cada vez
ms veloces y con capacidad de resolver grandes sistemas de ecuaciones, disparan el desarrollo y
la investigacin de la matemtica aplicada.
Revisin: 08/2011
- 61 -
- 62 -
Revisin: 08/2011
3. Ecuaciones no Lineales
Captulo 3
Ecuaciones no Lineales
3.1. Introduccin
En el captulo anterior vimos como resolver sistemas de ecuaciones lineales (de la forma
Ax = B
Ax B = 0),
problemas que no pueden representarse mediante ecuaciones lineales. Muchas cuestiones que
debe enfrentar la ingeniera no tienen solucin nica o no se pueden obtener en forma algebraica.
Tomemos el siguiente caso: supongamos que queremos desarrollar una mejora en la costa
y para ello necesitamos un recinto cerrado, el cual vamos a rellenar con arena. Para conseguir ese
recinto necesitamos una pared de contencin que construiremos con tablestacas. Para disear las
tablestacas debemos resolver una ecuacin del tipo
a0 + a1 x + a2 x2 + a3 x3 = 0,
donde
es la
longitud de hinca, tambin conocida como cha. Esta ecuacin tiene tres soluciones posibles
(tres races). Si bien existe una solucin algebraica para obtener las races de una ecuacin de
tercer grado, en general, es mucho ms prctico resolverla mediante algn mtodo iterativo, y
obtener aquella solucin (raz) que sea compatible con el problema.
Como dijimos, estn tambin aquellas ecuaciones que no tienen solucin algebraica y que,
por lo tanto, slo podrn resolverse mediante aproximaciones. Tenemos como ejemplo, el clculo
de la longitud de onda de una ola martima en aguas intermedias (entre aguas poco profundas,
cerca de la costa, y aguas profundas). La expresin para esto es:
L = L0 tanh
donde
L0
2
x ,
L
L
)
2
L
L
x . Como podemos ver, esta ecuacin no tiene solucin
20
2
algebraica, y, en consecuencia, el nico modo de obtenerla es mediante un mtodo iterativo. (En
2
L
2
L
2
tanto L =
2L0 x.)
Esta expresin es vlida para
Dado que este tipo de problemas son regularmente comunes en la ingeniera, en este
captulo nos ocuparemos de estudiar los distintos mtodos para resolver ecuaciones no lineales,
de manera de obtener resultados muy precisos.
Como repaso, recordemos los teorema del valor medio y del valor intermedio.
Teorema 3.1.
existir un nmero
en
(a; b)
f (a)
f (b),
es diferenciable en
(a; b),
entonces
tal que
f 0 (c) =
Teorema 3.2.
f C[a; b]
f (b) f (a)
.
ba
f C[a; b] y M es un nmero cualquiera entre
el cual f (c) = M .
existir un nmero
Revisin: 08/2011
en
(a; b)
para
- 63 -
que
f (
x) = 0.
Asumamos que
ba
b+a
=
.
2
2
vericar que f (x1 ) = 0.
x1 = a +
Para saber si es o no solucin debemos
f (a)f (
x) <
0. Si es cierto, entonces nuestro nuevo intervalo ser (a; x
), si no lo es, nuestro intervalo ser (
x; b).
Supongamos, por simplicidad, que f (a) f (
x) < 0 y que nuestro nuevo intervalo es (a; x
). Con el
obtener una aproximacin mediante un esquema similar. Para ello, veriquemos que
x1 + a
x2 =
=
2
b+a
2
+a
b+a a
=
+ ,
2
4
2
x2 = x1
Nuevamente vericamos si
f (x2 ) = 0.
ba
.
4
xn = xn1
xn ,
tenemos que
ba
,
2n
|
x xn |
ba
.
2n
Las guras 3.1.(a), 3.1.(b) y 3.1.(c) muestran el proceso de aproximacin del mtodo de
la biseccin, reduciendo el intervalo.
x
deberamos iterar hasta que |
x xn | = 0. Pero
|
x xn | < , entonces tendremos que la cantidad
|
x xn |
ba
2n
<
n >
- 64 -
ba
<
2n
ln ba
.
ln(2)
Revisin: 08/2011
3. Ecuaciones no Lineales
ln(10t )
ln(b a)
n>
ln(2)
= 10t ,
iteraciones. Si lo desarrollamos un
n >
n >
ln(b a)
ln(10)
+t
ln(2)
ln(2)
1
[ln(b a) + t ln(10)] ,
ln(2)
1
[ln(b a) + t 2, 30]
0, 69
n > 1, 44 ln(b a) + 3, 32 t,
n >
con lo cual la cantidad de iteraciones depende mucho ms de la tolerancia que del intervalo.
Si en vez del error absoluto usamos el error relativo como criterio de interrupcin, la
cantidad de interaciones queda:
|
x xn |
|
x|
ba
2n |
x|
ba
<
2n |
x|
<
n >
Si consideramos que
ba
,
2
ln
n >
n >
si
=
n >
n >
ba
ln
|
x|
.
ln(2)
ba
ba
2
;
ln(2)
2
ln
;
ln(2)
10t ;
2
ln
10t = ln(2) + t ln(10)
;
ln(2)
ln(2)
ln(10)
1+t
.
ln(2)
es decir, incide poco el intervalo, siempre que el mismo sea pequeo o sus extremos no estn muy
alejados del valor exacto.
Este mtodo de aproximacin de las soluciones se conoce como mtodo de la biseccin. Es
muy sencillo y tiene la ventaja de que siempre converge, pues nada exige a la funcin a la cual se
le quiere calcular la raz, salvo que se cumpla que
Hemos estimado cuantas iteraciones son necesarias para encontrar una solucin aceptable a partir
del error absoluto, pero en realidad los criterios para detener el procedimiento pueden ser los
Revisin: 08/2011
- 65 -
|xn xn1 | ,
|xn xn1 |
,
|xn |
|f (xn | .
donde
Cualquiera de los tres criterios es bueno para detener el proceso, pero el segundo es el
ms efectivo, pues se basa en el error relativo, y nos da una idea aproximada de la cantidad
de cifras o dgitos signicativos que tiene el resultado obtenido, pero a costa de hacer todava
mucho ms lenta la convergencia, por lo ya visto al estimar
conable, pues por denicin
f (xn )
n.
Si bien no tiene problemas por la convergencia, hemos visto que el mtodo resulta muy
lento para alcanzar un resultado aceptable. Adems, segn sea el criterio de interrupcin aplicado,
en muchas ocasiones puede despreciar un resultado intermedio ms preciso. Es por eso que no
suele utilizarse como nico mtodo para alcanzar la solucin.
f (a) (b a)
,
f (b) f (a)
f (b) (b a)
= b
.
f (b) f (a)
x1 = a
x1
x1 ;
x2 = a
f (a) (x1 a)
,
f (x1 ) f (a)
x2 = x1
f (x1 ) (b x1 )
.
f (b) f (x1 )
x2 = b
nos queda
f (b) (b x1 )
,
f (b) f (x1 )
y si no
x2 = x1
f (x1 ) (x1 a)
.
f (x1 ) f (a)
Este mtodo no es una gran mejora al mtodo de la biseccin, aunque al trazar las cuerdas,
hace uso de la funcin y generalmente suele converger un poco ms rpido (guras 3.2.(a), 3.2.(b)
y 3.2.(c) ). Un punto importante a tener en cuenta es que al igual que en el mtodo de la biseccin,
los sucesivos
xk
lo tanto, en el intervalo
[a; b]
por
Revisin: 08/2011
3. Ecuaciones no Lineales
f (x) = 0,
levemente diferente:
f (x) = x g(x) = 0.
Es evidente que podemos despejar
queda:
x = g(x),
g(x).
xk+1 = g(xk ),
k = 1; 2; . . . ; n.
ejemplo x0 , luego de
para
xn ,
que
estar mucho ms cerca del resultado exacto que nuestro valor inicial.
Veamos entonces un ejemplo de cmo aplicar el mtodo. Supongamos que nuestra funcin
es
e0,1x + ln(x) = 0.
Sabemos que existe un mtodo algebraico para obtener las races de este polinomio, pero hagamos
uso del mtodo para obtener la raz en el intervalo
funcin
g(x):
G1 (x) = x e0,1x + ln(x),
x0 = 2.
Calculemos
G1 (x0 )
y obtengamos
x1 ,
luego
x2
y as sucesivamente:
(1, 5; 2, 5),
G1 (x) no
esta funcin
Revisin: 08/2011
- 67 -
G1 (x).
G(x) = ee
Esta vez iniciemos el proceso con
x3 = 2, 231,
calculando f (x10 ):
siguiente resultado:
correcto
x0 = 1, 5.
G(x).
Este valor puede considerarse cercano cero y por lo tanto, hemos podido encontrar la raz
buscada. (La raz de esta funcin es
x = 2, 226.)
Pero por qu fallamos al usar la primera funcin? Para entender esto veamos los siguientes teoremas.
Teorema 3.3.
jo en
Si
g(x) C(a; b) y g(x) [a; b] para todo x [a; b], entonces g(x) tiene un punto
Si
g 0 (x)
[a; b].
Teorema 3.4.
existe en
[a; b]
tal que
es nico.
Revisin: 08/2011
3. Ecuaciones no Lineales
g1 (x)
Si miramos la funcin
g1 (x)
en
0, 5
no se
mapea en el intervalo dado, por lo tanto, no se puede asegurar que exista un punto jo. Y si
hallamos la primera derivada en ese punto tenemos que
con lo
cual si existiera el punto jo, no podramos asegurar que dicho punto jo sea nico. No ocurre
lo mismo con la funcin
g2 (x)
puesto que
g1 (x)),
es convergente.
Vericado que la funcin
g(x)
rupcin. Como en los casos anteriores, stos son similares a los ya vistos, es decir,
|xn xn1 | ,
|xn xn1 |
,
|xn |
|f (xn | .
Con el mismo ejemplo tenemos una pregunta: cmo podemos obtener una solucin por
aproximaciones sucesivas (o punto jo) que tenga una convergencia rpida? Para ello tenemos el
siguiente teorema.
Teorema 3.5.
[a; b]
y que una
x0 [a; b],
en
[a; b],
que existe
g 0 (x)
en
xn = g(xn1 ), n 1,
converge en el nico punto jo
Demostracin
en
[a; b]
| k |xn1 x
| ,
|xn x
| = |g(xn1 ) g(
x)| = g 0 () |xn1 x
donde
(a; b).
|xn x
| k |xn1 x
| k 2 |xn2 x
| . . . k n |x0 x
| .
Como
k < 1,
entonces
lm |xn x
| lm k n |x0 x
| = 0,
Corolario 3.5.1.
xn
Si
para aproximar
x
.
g satisface las hiptesis de teorema 3.5, las cotas de error que supone utilizar
estn dadas por
|xn x
| k n max{x0 a; b x0 },
y por
|xn x
|
1
kn
|x1 x0 | ,
1k
para toda
n 1.
Revisin: 08/2011
- 69 -
Demostracin
|xn x
| k n |xo x
| k n max{x0 a; b x0 },
porque
x (a; b).
x 1,
Con
|xn+1 x
| = |g(xn ) g(xn1 )| |xn xn1 | . . . k n |x1 x0 | .
En consecuencia, cuando
m > n 1,
lmn xm = x
,
|
x xn | = lm k n |x1 x0 |
n
Pero
a
1
,
1k
ki .
i=0
i
i=0 k es una serie geomtrica con razn
|
x xn |
Podemos ver que como
g(x).
por lo tanto
k,
|g 0 (x)| k ,
kn
|x1 x0 | .
1k
f (x) = 0.
y en vez de trazar una cuerda entre los dos extremos del intervalo, trazamos una tangente, que
pase por un punto. Supongamos que para el mismo intervalo
por
f (b).
x1
tal que
xn = xn1
f (xn1 )
.
f 0 (xn1 )
Revisin: 08/2011
3. Ecuaciones no Lineales
una aproximacin de
tal que
f (
x) =
0. Tambin que f 0 (
x)
f (
x)
expandida
f (x) = f (
x) + f 0 (
x)(x x
) + f 00 ((x))
donde
(x)
est entre
x
.
f (
x) = 0,
Puesto que
entonces para
0 = f (
x) + f 0 (
x)(
xx
) + f 00 ((
x))
Al suponer que
|
xx
|
(x x
)2
,
2
x=x
tenemos
(
xx
)2
.
2
(
xx
)2 ,
0 = f (
x) + f 0 (
x)(
xx
),
y despejando
x
=x
f (
x)
.
0
f (
x)
lo hacemos con
x0 ,
{xn }
denida por
xn = xn1
f (xn1 )
,
f 0 (xn1 )
f 00 (x
xn x
(xn ) xn ).
(
x xn )2
o a
De ah que podemos
x0
Teorema 3.6.
un
>0
Sea
2 [a; b]; si
x
[a; b]
es tal que
Revisin: 08/2011
f 0 (
x) 6= 0, entonces existe
f (
x) = 0
x0 [
x ; x
+ ].
- 71 -
Demostracin
g(x) = x
xn = g(xn1 ), n 1,
y que
f (x)
.
f 0 (x)
intervalo
que
g 0 (x) = 1
para
x [
x 1 ; x
+ 1 ]
y como
g 0 (
x) =
Adems
g0
es continua y
que
g C1 [a; b].
f (
x)f 00 (
x)
= 0.
0
2
[f (
x)]
es tal que
tal que
0 < < 1 ,
g : [
x ; x
+ ] [
x ; x
+ ]. Si x x
; x
+ ].
que existe un nmero entre x y x
para el que se cumple
0
|g(x) g(
x)| = g () |x x
| .
El
|g(x) x
| = |g(x) g(
x)| = g 0 () |x x
| k |x x
| < |x x
| .
|x x
| < y que |g(x) x
| < . Este ltimo
resultado nos muestra que g : [
x ; x
+ ] [
x ; x
+ ].
0
En consecuencia, la funcin g(x) = x f (x)/f (x) satisface todas las hiptesis del teore
ma 3.5, de modo que la sucesin {xn }n=1 denida por
Como
x x
; x
+ ],
xn = g(xn1 ) = xn1
converge a
para cualquier
f (xn1 )
,
f 0 (xn1 )
para
n 1,
x0 [
x ; x
+ ].
Como vimos, este mtodo es una variante del mtodo de las aproximaciones sucesivas.
Si la funcin
f (x)
[a; b]
f 0 (xn1 )
f 0 (xn1 ) =
f (xn1 ) f (xn2 )
.
xn1 xn2
xn = xn1
xn =
- 72 -
Revisin: 08/2011
3. Ecuaciones no Lineales
Denicin 3.1.
Un sucesin
{xn }
n=0
convergir a
de orden
si se cumple que
|xn+1 x
|
= ,
n |xn x
|
lm
con
xn 6= x
para toda
n,
= 2),
lineal
= 1),
cuadrtica
cbica ( = 3), etc. Dado que obtener un procedimiento con convergencia mayor a la
cuadrtica no es sencillo, nos ocuparemos de analizar solamente los dos primeros casos.
Enunciaremos dos teoremas que se reeren a la convergencia lineal y a la cuadrtica, que
estn basados en el mtodo de las aproximaciones sucesivas.
Teorema 3.7.
es continua en
y si
g 0 (
x) 6= 0,
(a; b)
y existe
x0 [a; b]
xn = g(xn1 ),
converge slo linealmente al punto jo
para toda
x [a; b].
Si
g0
la sucesin
para
n 1,
x
[a; b].
Teorema 3.8.
0
I
x
, entonces existir un > 0 tal que, para x0 [
x ; x
+ ], la sucesin denida
xn = g(xn1 ) cuando n 1, converge al menos cuadrticamente x
. Adems para valores
sucientemente grandes de n, se tiene
que contiene a
por
|xn+1 x
| <
M
|xn x
|2 .
2
g 0 (
x) = 0 ,
convergencia sea al menos cuadrtica. Este teorema nos indica que el mtodo de las aproximaciones sucesivas nos puede llevar a desarrollar mtodos con orden de convergencia cuadrtica o
superior. En efecto, si partimos de
xn = g(xn1 ),
podemos suponer que
g(x)
g 0 (
x) = 0.
Dado que:
g 0 (
x) = 1 (
x)f 0 (
x),
Revisin: 08/2011
- 73 -
f (
x) = 0, entonces g 0 (
x) = 0 si y slo si (
x) = 1/f 0 (
x). Si reemplazamos esto en la funcin
xn = g(xn1 ) = xn1
f (xn1 )
,
f 0 (xn1 )
M = |g 00 (x)|.
De ah que si
|g 00 (x)| = 0,
la
00
convergencia podra ser cbica, es decir, si f (x) se anula en el intervalo, la convergencia ser
superior a la cuadrtica
2.
{xn }
n=0 que converge linealmente y que los signos
y que n es sucientemente grande. Para construir
xn x
, xn+1 x
y xn+2 x
son iguales
de
xn+1 x
xn+2 x
,
xn x
xn+1 x
(xn+1 x
)2 (xn+2 x
)(xn x
).
Si la desarrollamos nos queda
x2n+1 2xn+1 x
+x
2 xn+2 xn (xn+2 + xn )
x+x
2 ,
y
(xn+2 + xn 2xn+1 )
x xn+2 xn x2n+1 .
Si despejamos
nos queda
x2n
xn+2 xn x2n+1
.
xn+2 2xn+1 + xn
2xn xn+1
en el numerador, tenemos
xn+2 2xn+1 + xn
(xn+1 xn )2
xn
.
xn+2 2xn+1 + xn
{
xn }
n=0
como
x
n = xn
obtenemos una tcnica denominada
converge ms rpidamente a
La notacin
(xn+1 xn )2
,
xn+2 2xn+1 + xn
que la sucesin
{xn }
n=0 .
- 74 -
Revisin: 08/2011
Dada la sucesin
{xn }
n=0 ,
3. Ecuaciones no Lineales
la diferencia progresiva
xn = xn+1 xn ,
k xn
para
xn
n 0.
k xn = (k1 xn ),
A partir de estas deniciones tenemos que
para
2 xn
k 2.
se expresa como
2 xn = (1 xn ) = (xn+1 xn )
= xn+1 xn = (xn+2 xn+1 ) (xn+1 xn )
= xn+2 2xn+1 + xn ,
por lo que el mtodo
x
n = xn
(xn )2
.
2 xn
Teorema 3.9.
Sea la sucesin
cientemente grandes de
converge a
n,
{xn }
n=0
se cumpla que
(xn x
)(xn+1 x
) > 0.
{xn }
n=0
x
,
Entonces la sucesin
{
xn }
n=0
en el sentido de que
x
n x
= 0.
n xn x
lm
Si aplicamos el mtodo
de Aitken.
2
Al aplicar el mtodo de Aitken a una sucesin linealmente convergente, la nueva
sucesin convergente cuadrticamente se construye mediante los siguientes trminos:
x0 ; x1 = g(x0 ); x2 = g(x1 ); x
0 = {2 }(x0 ); x3 = g(x2 ); x
1 = {2 }(x1 ); . . . .
En cambio, el mtodo de Steensen calcula las tres primeras aproximaciones de la forma indicada
pero introduce una leve modicacin al calcular
x3 .
x
0 .
x2
La secuencia queda
as de la siguiente forma:
(0)
(0)
(0)
(0)
(0)
(1)
(0)
(1)
(1)
(1)
(2)
(1)
de Aitken, para continuar otra vez con el mtodo de las aproximaciones sucesivas, obtener
Revisin: 08/2011
de Aitken.
- 75 -
xk+1 =
2 exk + x2k
, x0 = 0, 50.
3
Para ver la ecacia del mtodo y poder comparar, obtendremos la raz por el mtodo de
las aproximaciones sucesivas primero, y por el mtodo de Steensen, despus.
Tabla 3.1: Mtodo de Steensen
xi
k i
0,50000
0,50000
0,20043
0,20043
0,27275
0,27275
0,25361
0,25868
0,25855
0,25723
0,25727
0,25761
0,25760
0,25753
0,25751
0,25753
(k)
xi
En la tabla 3.1 podemos ver los resultados obtenidos al aplicar ambos mtodos. En la
segunda columna estn los obtenidos con aproximaciones sucesivas y en la ltima, los obtenidos
con Steensen. Observemos que el mtodo de Steensen alcanz ms rpidamente el resultado
correcto que el mtodo de las aproximaciones sucesivas. Mientras este ltimo necesit ocho
iteraciones, el de Steensen requiri solamente seis.
f (x) = 0.
son mtodos que aseguran la convergencia pero que son muy lentos. Suelen usarse como una
primera aproximacin cuando no se tiene informacin ms detallada del punto
x
,
de ah que son
conocidos como mtodos de arranque. Sirven para acotar el intervalo en el cual se encuentra la
raz buscada. Los otros cuatro, el de las aproximaciones sucesivas, el Newton-Raphson, el de la
secante y el de Steensen son mucho ms potentes y en el caso de Newton-Raphson y Steensen,
con una rapidez de convergencia cuadrtica. De los cuatro mtodos mtodos, los ms usuales para
programar son el de las aproximaciones sucesivas y el de la secante, puesto que son sencillo y no
requieren conocer la derivada primera. Es comn, adems, que cuando no se tiene un intervalo
los sucientemente acotado para trabajar con los mtodos de renamiento, se comience con el
mtodo de la biseccin, y as, disminuir el costo computacional.
Sin embargo, cuando la ecuacin
funcin
sen(x)),
f (x) = 0
eso que existen otros mtodos para resolver este tipo de problemas (ver [1]).
- 76 -
Revisin: 08/2011
4. Interpolacin de curvas
Captulo 4
Interpolacin de curvas
4.1. Introduccin
En este captulo nos concentraremos en el estudio de los mtodos de interpolacin de
curvas. Es usual que los ingenieros trabajen con datos extrados de mediciones, relevamientos,
ensayos de laboratorio, etc., los cuales no siempre entregan el valor necesitado para el problema
que se est tratando de resolver. Un ejemplo tpico de interpolacin sencilla utilizado por cualquier
profesional de la ingeniera es la interpolacin lineal en una tabla de datos (por ejemplo, de
estadsticas) para obtener un valor entre dos puntos dados. Este tipo de interpolacin lineal era
muy usado cuando no existan las calculadoras cientcas de bolsillo (ni hablar de computadoras)
y deban usarse las famosas
cosenos y
x
y(xj ) > 0
hace
y(x) nulo, cuando disponemos de un conjunto de datos en los cuales se tiene que
para
j = 0; 1; . . . ; i e y(xk ) < 0 para k = i + 1; i + 2; . . . ; n (o a la inversa). Interpolando entre estos
valores podemos hallar x
tal que y(
x) = 0. Este tipo de interpolacin se denomina interpolacin
inversa, pues en lugar de interpolar el conjunto [xi ; yi ], interpolamos el conjunto [yi ; xi ] para
obtener una funcin x(y).
Puesto que hay muchos mtodos y formas de interpolar, nos ocuparemos de los mtodos
clsicos y veremos algunas mejoras que se han desarrollado a estos mtodos. En particular, gracias
al artculo de L.N. Trefethen y J. P. Berrut (vase [14]), analizaremos una mejora al mtodo de
Lagrange bsico, denominada Interpolacin Baricntrica de Lagrange.
y(xA )
para un
xA
entre
x1
x2 .
La
forma sencilla de obtener este valor es gracar estos puntos y trazar un segmento de recta que
una
y1
y2 ,
ubicar
xA
en las abscisas y trazar por l una lnea recta paralela al eje de ordenadas
que corte el segmento ya mencionado. Finalmente, desde este punto, trazamos una lnea recta
Revisin: 08/2011
- 77 -
x0
x1
x2
x3
y0
y1
y2
y3
paralela al eje de abscisas hasta cortar el eje de ordenadas, con lo cual hemos obtenido el valor
de
y(xA ).
Queda muy evidente que este procedimiento es muy engorroso si se quiere hacerlo en forma
y1 = m x1 + n
y2 = m x2 + n
Si restamos
y1
y2
obtenemos
m:
y2 y1 = m(x2 x1 ) m =
Si ahora reemplazamos
y2 y1
.
x2 x1
y1 =
n:
y2 y1
y2 y1
x 1 + n n = y1
x1 .
x2 x1
x2 x1
y(x) =
y1
y2
es:
y2 y1
(x x1 ) + y1 ,
x2 x1
y(x) = y1
Para hallar
y(xA )
x x1
x x2
+ y2
.
x1 x2
x2 x1
xA
Lo hecho anteriormente es equivalente al procedimiento grco. Pero que pasa si queremos usar ms de dos puntos? Supongamos que necesitamos usar los cuatro puntos de la tabla 4.1
para interpolar un punto cualquiera entre
x0
x3 .
posible es un polinomio cbico, porque tiene cuatro coecientes, y se puede expresar as:
y(x) = a0 + a1 x + a2 x2 + a3 x3 .
Si reemplazamos los cuatro puntos en esta ecuacin obtenemos el siguiente sistema de ecuaciones
lineales:
y0 = a0 + a1 x0 + a2 x20 + a3 x30
y1 = a0 + a1 x1 + a2 x21 + a3 x31
y2 = a0 + a1 x2 + a2 x22 + a3 x32
y3 = a0 + a1 x3 + a2 x23 + a3 x33
- 78 -
Revisin: 08/2011
4. Interpolacin de curvas
Basta con resolver este sistema de ecuaciones lineales para obtener los coecientes
ai .
1
1
1
1
|
x20
x21
x22
x2
{z 3
x0
x1
x2
x3
x30
y0
a0
a1 y1
x31
=
x32 a2 y2
x33
y3
a3
}
Se trata de una matriz especial, que se conoce como matriz de VanderMonde. Tiene la
particularidad de ser mal condicionada, por lo que cualquier mtodo que usemos para resolver
este sistema puede traernos algn problema.
La interpolacin de Lagrange es una forma sencilla y sistemtica de resolver el sistema de
ecuaciones lineales anterior. El polinomio interpolador lo obtenemos siguiendo los pasos descriptos
a continuacin:
1. Calculamos los
n+1
polinomios
Ln;i (x)
xi ,
donde
n
Y
Ln;i (x) =
(x xj )
j=0
j6=i
n
Y
(xi xj )
n
Y
x xj
.
xi xj
j=0
j6=i
j=0
j6=i
con
i = 0; 1; . . . ; n, j = 0; 1; . . . ; n,
xi
xj
(
1
Ln;i (x) =
0
si
si
x = xi
x = xj
con
j 6= i.
Pn (x) =
n
X
yi Ln;i (x).
i=0
Por ejemplo, podemos armar una interpolacin lineal mediante los polinomios de Lagrange entre los puntos
x1
x2 .
x x2
x1 x2
x x1
L1;1 =
x2 x1
P1 (x) = y1 L1;0 (x) + y2 L1;1 (x)
x x2
x x1
+ y2
,
P1 (x) = y1
x1 x2
x2 x1
L1;0 =
Revisin: 08/2011
- 79 -
L3;0 (x) =
L3;1 (x) =
L3;2 (x) =
L3;3 (x) =
P3 (x) =
(x x1 )(x x2 )(x x3 )
(x0 x1 )(x0 x2 )(x0 x3 )
(x x0 )(x x2 )(x x3 )
(x1 x0 )(x1 x2 )(x1 x3 )
(x x0 )(x x1 )(x x3 )
(x2 x0 )(x2 x1 )(x2 x3 )
(x x0 )(x x1 )(x x2 )
(x3 x0 )(x3 x1 )(x3 x2 )
y0 L3;0 (x) + y1 L3;1 (x) + y2 L3;3 (x) + y3 L3;3 (x)
Como hemos utilizado todos lo puntos de los datos, es evidente que no podemos crear un polinomio de mayor grado que el cbico. Por lo tanto, existe un slo polinomio posible de construir
con todos los datos disponibles. El siguiente teorema dene a este nico polinomio.
Teorema 4.1.
Sean
x0 , x1 , . . ., xn , n + 1
nico polinomio
Pn (x)
de grado
n,
f (xk ) = P (xk )
k = 0; 1; . . . ; n;
para cada
Pn (x) = f (x0 )Ln;0 (x) + f (x1 )Ln;1 (x) + . . . + f (xn )Ln;n (x) =
n
X
i=0
donde
n
Y
x xj
Ln;i (x) =
,
xi xj
j=0
j6=i
para
i = 0; 1; . . . ; n.
Sin embargo, podemos crear varios polinomios de grados menores a
n.
de la tabla 4.1 estamos en condiciones construir al menos tres polinomios de grado 1 y dos
polinomios de grado 2. (Podemos construir ms polinomios para ambos grados, pero no siempre
son de utilidad prctica.)
Obtenido el polinomio interpolante nos queda un punto por denir: cul es el error que
estamos cometiendo al interpolar mediante un polinomio respecto de la funcin original? Para
ello tenemos el siguiente teorema.
Teorema 4.2.
Entonces, para
Sean
f (n+1) ((x)) Y
f (x) = Pn (x) +
(x xi ),
(n + 1)!
i=0
donde
Pn (x)
Demostracin
(xi ) [a; b]
Si
x = xi
para
i = 0; 1; 2; . . . ; n
entonces
g(u)
para
u [a; b]:
n
Y
(u xi )
i=0
- 80 -
(x xi )
.
Revisin: 08/2011
4. Interpolacin de curvas
tendremos que
n
Y
(xj xi )
= 0 [f (x) Pn (x)]0 = 0.
(x xi )
i=0
g(x) = 0,
pues
n
Y
(x xi )
i=0
y en consecuencia,
g Cn+1 [a; b]
(x xi )
y se anula para
#
" n
n+1
Y (u xi )
d
0 = g (n+1) () = f (n+1) () Pn(n+1) () [f (x) Pn (x)] n+1
du
(x xi )
i=0
Como
Pn (u)
es un polinomio de grado
n,
entonces
(n+1)
Pn
(u) = 0.
A su vez,
u=
n
Y
(u xi )
i=0
polinomio de grado
n + 1,
n+1
(x xi )
es un
ser
" n
#
(n + 1)!
dn+1 Y (u xi )
= n
.
n+1
Y
du
(x xi )
i=0
(x xi )
i=0
Si reemplazamos, tendremos que
(n + 1)!
n
Y
(x xi )
i=0
Al despejar
f (x)
f (x) = Pn (x) +
f (n+1) () Y
(x xi ).
(n + 1)!
i=0
Desde el punto de vista terico, esta expresin del error es muy importante porque muchas
de las tcnicas de derivacin e integracin numrica se derivan de aplicar la interpolacin por el
mtodo de Lagrange. Sin embargo, para otros casos, no debemos olvidarnos que no conocemos
f (x) (y por lo tanto, tampoco f (n+1) (x)), por lo que el error calculado es slo una aproximacin.
Finalmente, podemos ver que el mtodo tiene algunas desventajas:
1. Cada evaluacin del polinomio
Pn (x)
requiere
xn+1 , f (xn+1 )
O(n2 )
operaciones aritmticas.
Ln,i (x).
3. Es numricamente inestable.
Revisin: 08/2011
- 81 -
y0 = a0 + a1 x0 + a2 x20
y1 = a0 + a1 x1 + a2 x21
y2 = a0 + a1 x2 + a2 x22 .
Al eliminar
a0
y1 y0
x1 x0
y2 y1
x2 x1
a1
Si ahora eliminamos
= a1 + a2 (x1 + x0 )
= a1 + a2 (x2 + x1 ).
a2 =
a2
y1 y0
x1 x0
"
a1
y2 y1
x2 x1
= a1 +
a2
y0 = a0 +
y1 y0
x1 x0
a 0 = y0
y1 y0
x1 x0
y1 y0
x1 x0
x2 x0
y2 y1
x2 x1
y1 y0
x1 x0
a1 =
Ahora reemplacemos
y2 y1
y1 y0
x2 x1 x1 x0
y2 y1
y1 y0
x2 x1 x1 x0
.
x2 x0
a2 (x2 x0 ) =
Ahora reemplacemos
a2
obtenemos el coeciente
(x1 + x0 )
y1 y0
x1 x0
x2 x0
(x1 + x0 ).
y2 y1
x2 x1
y1 y0
x1 x0
x2 x0
y2 y1
x2 x1
y1 y0
x1 x0
x2 x0
#
(x1 + x0 ) x0 +
y2 y1
x2 x1
"
y1 y0
x1 x0
y1 y0
+
x1 x0
- 82 -
y2 y1
x2 x1
x1
y1 y0
x1 x0
x2 x0
y2 y1
x2 x1
y1 y0
x1 x0
x2 x0
= y0 +
y1 y0
(x x0 ) +
x1 x0
= y0 +
y1 y0
(x x0 ) +
x1 x0
y1 y0
x1 x0
x2 x0
a0 :
x20
!
x0 .
P (x) = y0
a1
a0 , a1
a2
!
x1
x0 +
#
(x1 + x0 ) x +
y2 y1
x2 x1
y1 y0
x1 x0
x2
y2 y1
x2 x1
x0
0
xy11 y
x0
x2 x0
y2 y1
x2 x1
y1 y0
x1 x0
x2 x0
x2
x2 (x0 + x1 )x + x0 x1
(x x0 )(x x1 ).
Revisin: 08/2011
4. Interpolacin de curvas
Esta forma de armar el polinomio se denomina mtodo de las diferencias dividas de New-
ton, y podemos sistematizarla para que sea muy sencillo de realizar. En primer lugar, podemos
decir que
f (xi ) = yi .
f (x1 ) f (x0 )
x1 x0
f (x2 ) f (x1 )
,
x2 x1
f (x0 ; x1 ) =
f (x1 ; x2 ) =
y generalizando
f (xi+1 ) f (xi )
.
xi+1 xi
f (xi ; xi+1 ) =
Anlogamente tenemos que:
f (x0 ; x1 ; x2 ) =
f (x2 )f (x1 )
x2 x1
f (x1 )f (x0 )
x1 x0
x2 x0
=,
f (x1 ; x2 ) f (x0 ; x1 )
,
x2 x0
Si utilizamos esta notacin para el polinomio que hallamos ms arriba nos queda:
polinomio
x3 ,
Revisin: 08/2011
Pn (x)
requerimos
- 83 -
x
x0
f (x)
f (x0 )
x1
f (x1 )
f (xi ; xi+1 )
f (x0 ; x1 )
f (x0 ; x1 ; x2 )
f (x1 ; x2 )
x2
f (x0 ; x1 ; x2 ; x3 )
f (x2 )
f (x1 ; x2 ; x3 )
f (x2 ; x3 )
x3
O(n2 )
f (x3 )
xi ,
agregamos algn dato intermedio, la ventaja anterior se pierde porque la tabla 4.2 debe rehacerse,
perdiendo practicidad.
Para mejorar esto existe una variante del mtodo de Lagrange que nos permite interpolar
de manera sencilla y al que resulta muy fcil agregarle puntos en cualquier orden.
L(x)
tal que
L(x) = (x x0 )(x x1 ) . . . (x xn ).
Denamos adems los pesos baricntricos como
wi =
n
Y
k=0
k6=i
1
,
xi xk
para todo
i = 0; 1; . . . ; n.
Ln;i = L(x)
wi
,
x xi
Pn (x) =
n
X
f (xi )
i=0
pues
L(x)
X
L(x)wi
wi
= L(x)
f (xi )
,
x xi
x xi
i=0
O(n)
se necesitan slo
par de datos
xn+1 , f (xn+1 ),
Dividir cada
wi
por
Calcular un nuevo
Pn (x)
xi xn+1 .
wi+1 .
De todos modos, se requieren O(n2 ) operaciones para obtener los coecientes f (xk ; xk+1 ; . . . ; xn ).
- 84 -
Revisin: 08/2011
4. Interpolacin de curvas
suele llamrsela mtodo mejorado de Lagrange y tiene una ventaja adicional respecto al mtodo
de Newton que rara vez se menciona: los coecientes
wi
f (xn+1 ).
Esto
permite que podamos interpolar varias funciones con el mismo polinomio. Y mantiene, adems,
la ventaja de no necesitar ordenar los datos, como s requiere el mtodo de Newton.
Pero todava no hemos terminado. Supongamos ahora que interpolamos la constante
1=
n
X
i=0
n
X
i=0
wi
,
x xi
L(x)
n
X
f (xi )
i=0
Pn (x) =
L(x)
n
X
i=0
y simplicando
L(x),
wi
x xi
,
wi
x xi
obtenemos que
n
X
Pn (x) =
f (xi )
i=0
n
X
i=0
wi
x xi
wi
x xi
que se denomina interpolacin baricntrica de Lagrange. Al igual que en el caso del mtodo
mejorado, slo se necesitan
de datos
xn+1 , f (xn+1 )
O(n)
adicionales.
= 10).
Revisin: 08/2011
- 85 -
i
0
1
2
3
4
5
6
7
8
9
10
xi
0, 000
1, 000
2, 000
3, 000
4, 000
5, 000
6, 000
7, 000
8, 000
9, 000
10, 000
yi
0, 500
0, 933
0, 067
0, 500
0, 933
0, 067
0, 500
0, 933
0, 067
0, 500
0, 933
- 86 -
Revisin: 08/2011
4. Interpolacin de curvas
Esta comparacin entre una curva conocida y una obtenida por interpolacin polinomial,
nos ayuda a entender que usar polinomios de grado alto para interpolar un conjunto de datos
distribuidos en forma uniforme, de los cuales no se conoce la funcin que los relaciona (no se
conoce
y = f (x)),
puede no ser una metodologa aceptable si los puntos que luego debemos
ti , la coordenada
vi , para i = 0; 1; . . . ; n. En este caso adems de los valores de
f 0 (ti ) pues vi = f 0 (ti ). Por lo tanto nuestra tabla original podra
para una partcula que se desplaza conocemos los siguientes datos: el instante
de la trayectoria,
f (ti )
yi
y la velocidad
ti ),
pasamos a tener ocho valores. Si queremos utilizar todos los datos disponibles, en lugar de
Revisin: 08/2011
- 87 -
t0
t1
t2
t3
y0
y1
y2
y3
v0
v1
v2
v3
interpolar con una curva de tercer grado, podemos usar ahora una curva de grado 7, pues este
polinomio tiene ocho coecientes, a saber:
y(t) = a0 + a1 t + a2 t2 + a3 t3 + a4 t4 + a5 t5 + a6 t6 + a7 t7 ,
del cual podemos hallar la primera derivada, que resulta ser
Teorema 4.3.
Sea
[a; b]
2n + 1,
y sean
x0 ; x1 ; . . . ; xn [a; b] distintos, el
x0 ; x1 ; . . . ; xn es el polinomio de
0
y f en
polinomio nico de
Hermite de grado a
H2n+1 (x) =
n
X
i=0
n
X
n;i (x),
f 0 (xi )H
i=0
donde
Ln;i (x)
es el
isimo
n.
Si adems
2n+2
[a; b],
tal que
(x x0 )2 . . . (x xn )2 (2n+2)
f
(),
(2n + 2)!
a < < b.
Demostracin
(
1
Ln;i (x) =
0
si
si
x = xi
,
x = xj conj 6= i.
n,i (xj ) = 0,
Hn,i (xj ) = 0 H
- 88 -
Revisin: 08/2011
j 6= i,
4. Interpolacin de curvas
en tanto que
H2n+1 (xi ) =
n
X
i=0
n
X
i=0
i = 0; 1; 2; . . . ; xn ,
f 0 (xi ) 0 = f (xi ),
i=0
para
se
n
X
es decir
0
Hn;j
(xj ) = 2 L2n;j (xj ) + [1 + 2(xj xj )L0n;j (xj )]2Ln;j (xj )L0n;j (xj )
0 (x ) = 0
Hn;i
j
para todas la
i.
j 6= i
tendremos que:
0
n;i
H
(xj ) = L2n;i (xj ) + (xj xi )2Ln;i (xj )L0n;i (xj ) = 0 + 0 = 0,
pues
Ln;i (xj ) = 0,
y cuando
j=i
0
n;j
H
(xj ) = L2n;j (xj ) + (xj xj )2Ln;j (xj )L0n;j (xj ) = 12 + 0 = 1.
Si combinamos ambos casos tenemos
0
H2n+1
(xj )
n
X
0
f (xj )Hn;i
(xj )
i=0
n
X
0 (xj )
f 0 (xj )H
n;i
i=0
n
X
i=0
entonces
0
H2n+1
(x) = f 0 (x)
para
x0 ; x1 ; . . . ; xn .
Denicin 4.1.
mi = 1.
M=
n
X
mi + n,
i=0
pues el nmero de condiciones que debe cumplir es
n
X
(mi + 1) =
i=0
y un polinomio de grado
Revisin: 08/2011
tiene
M +1
n
X
mi + (n + 1),
i=0
coecientes.
- 89 -
Esto quiere decir que adems de las derivadas primeras podemos tener las derivadas segundas, terceras, etc., para armar el polinomio interpolante. Con esos datos (inclusive puede
ocurrir que contemos con datos parciales de las derivadas), el procedimiento visto para la interpolacin de Hermite se puede ampliar para obtener curvas que tengan segundas o terceras
derivadas, si bien esto no resulta tan sencillo de implementar. (Para ms detalles, ver [1].)
Volvamos al mtodo de Hermite. Como est basado en los polinomios de Lagrange, si
se agregan datos, el mtodo tiene las mismas desventajas que el de Lagrange, porque deben
repetirse todos los clculos para obtener el nuevo polinomio interpolante.
Pero tal como vimos para ese mtodo, existe tambin una forma alternativa de armar el
polinomio buscado aplicando el mtodo de Newton, que nos permite desarrollarlo con la siguiente
frmula:
Pn (x) = f (x0 ) +
n
X
f (x0 ; x1 ; . . . ; xk )
k1
Y
(x xj ).
j=0
Dado que conocemos los valores de la derivada primera, debemos redenir nuestra sucesin de datos. Por ejemplo, si tomamos los datos de la tabla 4.4, nuestra nueva sucesin de puntos
es
t0 ; t0 ; t1 ; t1 ; t2 ; t2 ; t3 ; t3 ,
z0 ; z1 ; . . . ; z2n+1
tal que
z2i = z2i+1 = ti ,
con
i = 0; 1; 2; . . . ; n.
con lo que aprovechamos los datos conocidos. En consecuencia, podemos construir la tabla 4.5
con los coecientes para armar el polinomio segn el mtodo de Newton.
Tabla 4.5: Interpolacin Hermite aplicando el Mtodo de Newton
z
z0 = x 0
f (z)
f (z0 ) = f (x0 )
f (zi ; zi+1 )
f (z0 ; z1 ) = f 0 (x0 )
z1 = x 0
f (z1 ) = f (x0 )
z2 = x 1
f (z2 ) = f (x1 )
f (z0 ; z1 ; z2 )
f (z1 ; z2 )
f (z0 ; z1 ; z2 ; z3 )
f (z1 ; z2 ; z3 )
f (z2 ; z3 ) = f 0 (x1 )
z3 = x 1
f (z3 ) = f (x1 )
f (z1 ; z2 ; z3 ; z4 )
f (z2 ; z3 ; z4 )
f (z3 ; z4 )
z4 = x 2
f (z2 ; z3 ; z4 ; z5 )
f (z4 ) = f (x2 )
f (z3 ; z4 ; z5 )
f (z4 ; z5 ) = f 0 (x2 )
z5 = x 2
f (z5 ) = f (x2 )
z6 = x 3
f (z6 ) = f (x3 )
f (z3 ; z4 ; z5 ; z6 )
f (z4 ; z5 ; z6 )
f (z5 ; z6 )
f (z4 ; z5 ; z6 ; z7 )
f (z5 ; z6 ; z7 )
f (z6 ; z7 ) = f 0 (x3 )
z7 = x 3
f (z7 ) = f (x3 )
2n+1
X
f (z0 ; z1 ; . . . ; zk )
k1
Y
k=1
- 90 -
(x zj ) .
j=0
Revisin: 08/2011
4. Interpolacin de curvas
f (2n+2) () Y
E(x) =
(x xi )2 .
(2n + 2)!
i=0
xi ; xi+1 .
tabla 4.4.
Para armar la curva que interpola entre
y
v1 ,
t0
t1 ,
y0 , y1 , v0
con lo cual podemos armar un polinomio de Hermite de tercer grado que cumpla con las
H3 (t0 ) = f (t0 ) = y0 ; H3 (t1 ) = f (t1 ) = y1 , H30 (t0 ) = f 0 (t0 ) = v0 y H30 (t1 ) = f 0 (t1 ) =
mismo podemos hacer entre t1 y t2 , y para el intervalo t2 y t3 . Tendremos, entonces,
1;0 (t) y H
1;1 (t).
polinomios de Hermite para todo el intervalo, a saber, H1;0 (t), H1;1 (t), H
condiciones
v1 .
Lo
cuatro
1
t0 t1
t t1
t0 t1
2
1
t1 t0
t t1 2
H1;0 (t) = (t t0 )
t0 t1
2
t
t
0
1;1 (t) = (t t1 )
H
t1 t0
t t0
t1 t0
2
H1;0 (t) = 1 2(t t0 )
H1;1 (t) = 1 2(t t1 )
0 (t
0
H3;i
i+1 ) = H3;i+1 (ti+1 ),
tene-
mos continuidad para la curva y su primera derivada. Podemos armar una curva con segmentos
de curvas de tercer grado, que puede representar a la funcin y a la primera derivada, sin tener
que preocuparnos por los efectos negativos de las oscilaciones no deseadas en los extremos. Este
mtodo se usa en el mtodo de los elementos nitos para armar las funciones de forma en los
elementos de viga.
Tambin podemos armar este polinomio aplicando el mtodo de Newton adaptado, a
partir de la siguiente tabla:
Tabla 4.6: Interpolacin Hermite segmentada aplicando el Mtodo de Newton
z
z0 = ti
f (z)
f (z0 ) = f (ti )
f (zi ; zi+1 )
f (z0 ; z1 ) = f 0 (ti )
z1 = ti
f (z1 ) = f (ti )
f (z0 ; z1 ; z2 )
f (z1 ; z2 )
z2 = ti+1
f (z2 ) = f (ti+1 )
f (z0 ; z1 ; z2 ; z3 )
f (z1 ; z2 ; z3 )
f (z2 ; z3 ) = f 0 (ti+1 )
z3 = ti+1
f (z3 ) = f (ti+1 )
Revisin: 08/2011
- 91 -
H3 (t) = f (ti ) + f 0 (ti )(t ti ) + f (ti ; ti ; ti+1 )(t ti )2 + f (ti ; ti ; ti+1 ; ti+1 )(t ti )2 (t ti+1 ),
donde:
Al igual que para el caso de la interpolacin completa, el error cometido en una interpolacin segmentada es proporcional a la derivas
armamos una curva entre
i + 1,
E(h) =
con
[x0 ; xn ]
f (iv) ()
max(h4i ),
384
hi = xi+1 xi .
De todos modos, como para poder armar este tipo de curvas debemos conocer los valores
de las derivadas en cada punto, algo que no siempre es posible, usar estos segmentos de curvas con
polinomios de Hermite no siempre resultan ser una solucin aplicable. Buscaremos otra manera
de obtener polinomios interpolantes que eviten el fenmeno de Runge.
Si (x) = ai + bi (x xi ) + ci (x xi )2 + di (x xi )3 ,
con
i = 0; 1; . . . ; n 1.
para cada polinomio, por lo tanto, debemos agregar condiciones para poder armar nuestra curva
interpolante. Como nuevamente no disponemos de ms datos (es decir, no conocemos los valores
de las derivadas en los puntos), vamos a imponer que las curvas cumplan con estas condiciones:
1.
Si (xi ) = f (xi )
2.
para cada
i = 0; 1; . . . ; n 2;
3.
0
0 (x
Si+1
i+1 ) = Si (xi+1 )
para cada
i = 0; 1; . . . ; n 2;
4.
00
00 (x
Si+1
i+1 ) = Si (xi+1 )
para cada
i = 0; 1; . . . ; n;
para cada
i = 0; 1; . . . ; n 2;
a)
- 92 -
00 (x ) = S 00 (x ) = 0
S000 (x0 ) = Sn1
n
n n
(frontera libre);
Revisin: 08/2011
4. Interpolacin de curvas
0
Sn1
(xn ) = Sn0 (xn ) = f 0 (xn ) =
(frontera sujeta).
La primera condicin nos asegura que las curvas pasen por los datos, en tanto que las tres
condiciones siguientes aseguran la continuidad del conjunto de curvas tanto para las funciones
Si (x)
Si (xi ) = f (xi ),
tendremos que:
Si (xi ) = ai = f (xi ).
Al aplicar la segunda condicin tenemos que:
hi = (xi+1 xi ),
y que
i = 0; 1; . . . ; n 1.
Si0 (xi ) = bi ,
por lo tanto, tambin se cumple que
i = 0; 1; . . . ; n 1.
ci+1 = ci + 3di hi ,
una vez ms, para cada
h2i
(2ci + ci+1 ),
3
= bi + hi (ci + ci+1 ),
ai+1 = ai + bi hi +
bi+1
para cada
i = 0; 1; . . . ; n 1.
bi =
Si usamos la segunda para obtener
bi1 ,
para obtener
bi
ai+1 ai hi
(2ci + ci+1 ).
hi
3
en vez de
bi+1
nos queda
ai+1 ai hi
(2ci + ci+1 ) =
hi
3
hi1 ci1 + 2(hi1 + hi )ci + hi ci+1 =
para cada
bi ,
ai ai1 hi1
i = 1; 2; . . . ; n 1.
Ahora nos falta determinar si con este esquema podemos obtener un resultado nico para
los valores de
ci .
Teorema 4.4.
Sea
de frontera libre o
Revisin: 08/2011
en
entonces
- 93 -
Demostracin
00 (b)
Sn1
Sn00 (b)
= 0,
S000 (a) = 0
cn =
Sn00 (xn )
= 0;
2
y que
...
0
.
..
.
.
.
.
..
.
.
.
,
..
.
0
1
0
0
...
..
h0 2(h0 + h1 )
.
h1
0
h1
2(h1 + h2 ) h2
A=
..
..
..
..
.
.
.
.
..
..
..
.
.
.
hn2
0
...
...
0
0
3
(a
a
)
1
h1 2
h0 (a1 a0 )
.
.
B=
.
.
3
3
h (an an1 ) h (an1 an2 )
n1
n2
0
con
c0
c1
..
x=
. .
..
.
cn
Este sistema de ecuaciones lineales tiene solucin nica, lo que nos asegura que existe un
di =
bi =
con lo que obtenemos las
Si (x)
ci+1 ci
,
3hi
ai+1 ai hi
(2ci + ci+1 ),
hi
3
Para el caso de las splines con frontera sujeta tenemos el siguiente teorema.
Teorema 4.5.
Sea
en
y diferenciable en
Demostracin
f 0 (a) = f 0 (x0 ),
b0 = f 0 (a) = f 0 (x0 ) =
y en
b,
entonces
x0 ; x1 ; . . . ; xn .
tenemos que
a 1 a 0 h0
(2c0 + c1 ),
h0
3
a1 a0
0
2h0 c0 + h0 c1 = 3
f (a) .
h0
Anlogamente, tenemos que
Revisin: 08/2011
4. Interpolacin de curvas
f 0 (b) = =
=
an an1 hn1
an an1
hn1 cn1 2hn1 cn = 3 f 0 (b)
.
hn1
En consecuencia, nos queda el siguiente sistema de ecuaciones
2h0
h0
0
...
...
0
.
..
..
.
h0 2(h0 + h1 )
.
.
h
.
1
.
..
.
0
.
h
2(h
+
h
)
h
.
1
1
2
2
,
A= .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
..
..
..
.
.
.
hn2 2(hn2 + hn1 ) hn1
0
...
...
0
hn1
2hn1
a1 a0
h0
f 0 (a)
3
3
h1 (a2 a1 ) h0 (a1 a0 )
.
.
.
,
B=
.
.
3
3
(a
a
)
(a
a
)
n
n1
n1
n2
h
h
n1
n2
i
h
a
a
n1
3 f 0 (b) nhn1
c0
c1
..
x=
. .
..
.
cn
Como en el caso anterior, el sistema de ecuaciones lineales tiene solucin nica, es decir,
existe un nico vector
c0 , c1 , . . ., cn ,
Si (x).
En cuanto al error que cometemos al interpolar una curva utilizando splines, para el
caso con frontera libre podemos expresarlo como
m
ax |f (x) S(x)|
axb
donde
S(x)
es el conjunto de las
Si (x)
curvas,
5
M max |hi |4 ,
384 0in1
M = f iv ()
con
[x0 ; xn ]
embargo, cuando se utiliza este caso, el orden del error en los extremos es
no a
|hi |4 ,
hi = xi+1 xi . Sin
2
proporcional a |hi | y
y
S0 (x) = S1 (x)
2
orden de |hi | .
0 (a) y
d0 = d1 y dn2 =
Sn2 (x) = Sn1 (x), lo cual tambin
c1 c0
3h0
c2 c1
d1 =
.
3h1
c1 = c0 + 3d0 h0 d0 =
c2 = c1 + 3d1 h1
2
Algunos textos denominan a esta aproximacin como condicin no un nodo, por la expresin en ingls not a
knot approximation.
Revisin: 08/2011
- 95 -
d0 = d1 ,
entonces
c2 c1
c1 c0
=
3h0
3h1
h1 c1 h1 c0 = h0 c2 h0 c1 ,
lo que nos deja la siguiente expresin para la primera la del sistema:
h1 c0 (h0 + h1 )c1 + h0 c2 = 0.
Anlogamente, para
dn2
dn1
cn1 cn2
3hn2
cn cn1
=
,
3hn1
h1 (h0 + h1 )
h0
...
...
0
.
..
..
.
h0 2(h0 + h1 )
.
.
h1
.
.
..
.
0
.
h1
2(h1 + h2 ) h2
.
,
A= .
..
..
..
..
.
.
.
.
.
.
0
..
..
..
.
.
.
hn2 2(hn2 + hn1 ) hn1
0
...
...
hn1 (hn2 + hn1 ) hn2
0
3
(a
a
)
1
h1 2
h0 (a1 a0 )
.
.
,
B=
.
.
.
3
c0
c1
..
x=
. .
..
.
cn
Esta variante de la interpolacin por spline es poco usada porque tiene muchas ms
indeniciones que la natural.
L1;0 (x) =
L1;1 (x) =
- 96 -
x x1
x0 x1
x x0
,
x1 x0
Revisin: 08/2011
x0
es el punto inicial y
x1
4. Interpolacin de curvas
Figura 4.5: Cuadro de dilogo del OpenOce Calc para Lneas Suaves.
Figura 4.6: Cuadro de dilogo del MS Excel 2003 para Lnea suavizada.
Por ltimo, resulta interesante observar que las hojas de clculo y el diseo asistido por
computadora (CAD por sus siglas en ingls) hace un uso intensivo de la interpolacin fragmentada
(o segmentada), con las spline, y las curvas paramtricas (curvas de Bezier). Las primeras son
Revisin: 08/2011
- 97 -
R
usadas en programas como el AutoCAD , en tanto que las segundas, en programas como el
R
Corel Draw , OpenOce Draw o similares. Por tal motivo, resulta til conocer los fundamentos
matemticos de cada una de ellas.
Un caso interesante en el uso de interpolacin con segmentos de curvas es la versin
3 del programa OpenOce Calc , la planilla de clculo del paquete de distribucin gratuita
R
OpenOce . Para gracar curvas suavizadas aplica la interpolacin mediante trazadores cbicos
o splines, si se quiere que las curvas pasen por los puntos, o mediante B-splines si lo que se
quiere es que que las curvas tengan una forma determinada. Ambas opciones estn disponibles
en el cuadro de control de la curva, como se puede ver en la gura 4.5. No ocurre lo mismo
R
en el MS Excel
(gura 4.6), al menos hasta la versin 2007, pues la gracacin de la curva
suavizada es hecha mediante un algoritmo no especicado, ni es posible ajustar la densidad de
puntos adicionales para dicha representacin grca.
- 98 -
Revisin: 08/2011
Captulo 5
xi
sean distintos. Qu hacemos cuando esto no es as, cuando la cantidad de puntos exceden la capacidad de armar polinomios interpolantes o cuando los puntos que usaremos son aproximaciones
de los valores reales?
Supongamos que tenemos una serie de datos empricos obtenidos en laboratorio, tales
que el conjunto de datos no cumple estrictamente que los
mismo
xi
distintos, varios
xj
f (xi ).
xi
xi
sean
la cantidad de datos disponibles hagan imposible que armemos un polinomio de grado menor a
4 o 5 que pase por todos los puntos y as evitar el mal condicionamiento del problema. Lo que
necesitamos, entonces, es una curva que ajuste lo mejor posible los datos que disponemos, o sea,
que el error entre los puntos y esa funcin de ajuste sea el menor posible, sin que la curva pase
...
f (xn ).
xi
f (x0 ), f (x1 ),
siguiente manera:
m
X
ci i (x),
i=0
donde
m < n,
i (x)
son lineal-
mente independientes.
Dado que hemos impuesto que la funcin elegida no debe pasar por lo puntos tomados
como dato, buscaremos que el error entre los datos (f (xi ))y los
Revisin: 08/2011
g(xi )
ri = f (xi ) g(xi ),
para
0 i n,
es decir, que el residuo, sea mnimo. Como se trata de un vector, una forma de analizar este caso
es mediante las normas.
krk1
sea mnima;
krk
sea mnima;
krk2
sea mnima.
La primera norma es buena si uno quiere eliminar aquellos valores considerados como
desviaciones, por ejemplo, mediciones mal hechas o valores que fcilmente puede inferirse errneos. Consiste en minimizar la siguiente expresin:
krk1 =
n
X
n
X
|ri | =
i=0
|f (xi ) y(xi )|
i=0
mn
Esto es til cuando los valores mximos del error deben ser considerados al momento de la
vericacin.
Ambos casos resultan muy tiles cuando se trabaja con datos discretos, en los que tiene
suma importancia vericar la exactitud de esos datos, o eventualmente, encontrar errores de
medicin, de transcripcin, etc.
Los dos casos recin analizados,
krk1 ,
krk
que est fuera del alcance de nuestro curso, y que resultan mucho ms complejos de analizar que
la ltima opcin indicada.
sta consiste en minimizar la expresin:
v
v
u n
u n
uX 2 uX
krk2 = t
|ri | = t
[f (xi ) y(xi )]2 ,
i=0
o, lo que es lo mismo,
krk22
n
X
i=0
n
X
|ri | =
i=0
i=0
y(x) =
m
X
cj j x,
j=0
tendremos que la expresin a minimizar es:
E (c0 ; c1 ; . . . ; cm ) =
n
X
i=0
f (xi )
m
X
2
cj j (xi ) ,
j=0
Revisin: 08/2011
E
= 0,
cj
puesto que
cj .
En consecuencia,
tendremos que:
!2
n
m
X
X
=
f (xi )
ck k (xi ) = 0
cj
i=0
k=0
!2
m
n
X
X
f (xi )
ck k (xi )
= 0.
=
cj
E
cj
i=0
k=0
i=0
k=0
X
X
E
=2
f (xi )
ck k (xi )
cj
!
(j (xi )) = 0
para
j = 0; 1; . . . ; m.
n
X
i=0
n
X
f (xi )j (xi )
f (xi )j (xi )
i=0
m
X
ck
k=0
n X
m
X
k (xi )j (xi )
ck k (xi )j (xi ) = 0
i=0 k=0
n X
m
X
ck k (xi )j (xi ) =
i=0 k=0
para
j = 0; 1; . . . ; m.
n
X
f (xi )j (xi ),
i=0
m
X
k=0
para
=0
ck
n
X
k (xi )j (xi ) =
i=0
n
X
f (xi )j (xi ),
i=0
j = 0; 1; . . . ; m.
Avancemos un poco ms. Al desarrollar la sumatoria en
queda:
n
X
i=0
Lo mismo podemos hacer con la sumatoria del trmino de la derecha, con lo que tenemos
n
X
i=0
Para facilitar la notacin, deniremos lo siguiente:
n
X
k (xi )j (xi ) = (k ; j )
i=0
n
X
f (xi )j (xi ) = (f ; j ).
i=0
Entonces, la expresin que nos queda es
m
X
ck (k ; j ) = (f ; j ),
k=0
Revisin: 08/2011
- 101 -
Como
j = 0; 1; . . . ; m,
m+1
c0 (0 ; 0 ) + c1 (1 ; 0 ) + . . . + cm (m ; 0 ) = (f ; 0 )
c0 (0 ; 1 ) + c1 (1 ; 1 ) + . . . + cm (m ; 1 ) = (f ; 1 )
.
.
.
.
.
.
.
.
.
.
.
.
c0 (0 ; m ) + c1 (1 ; m ) + . . . + cm (m ; m ) = (f ; m ),
que podemos escribir tambin en forma matricial como
(f ; 0 )
c0
(0 ; 0 ) (1 ; 0 ) . . . (m ; 0 )
(0 ; 1 ) (1 ; 1 ) . . . (m ; 1 ) c1 (f ; 1 )
.. = .. .
.
.
.
..
.
.
.
. .
.
.
.
.
(f ; m )
(0 ; m ) (1 ; m ) . . . (m ; m ) cm
(i ; j ) = (j ; i ),
ma se reduce a resolver un sistema ecuaciones lineales cuyas incgnitas son los coecientes
ck .
Obtenidos estos coecientes, los reemplazamos en la funcin que hemos denido, que ser la que
aproxime nuestros puntos.
Existe otra forma de plantear el problema, esta vez en forma matricial desde el principio.
Supongamos que representamos nuestros puntos con la funcin elegida. Entonces nos queda:
f (x0 ) =
m
X
k=0
f (x1 ) =
m
X
k=0
.
.
.
f (xn ) =
m
X
k=0
Si escribimos esto en forma matricial tenemos
f (x0 )
0 (x0 ) 1 (x0 ) . . . m (x0 )
c0
f (x1 ) 0 (x1 ) 1 (x1 ) . . . m (x1 ) c1
.. ,
.. = ..
. .
.
f (xn )
0 (xn ) 1 (xn ) . . . m (xn ) cm
que resulta ser un sistema de
incgnitas con
ecuaciones, donde
m < n,
en el cual no existe
f (x0 )
0 (x0 ) 1 (x0 ) . . . m (x0 )
f (x1 )
0 (x1 ) 1 (x1 ) . . . m (x1 )
f = . ; = .
..
..
f (xn )
0 (xn ) 1 (xn ) . . . m (xn )
podemos decir que nos queda una ecuacin del tipo
una funcin, denamos el residuo como
c0
c1
c = . ,
..
cm
krk22 = kf ck22 .
- 102 -
Revisin: 08/2011
krk22 = rT r,
rT r = (f c)T (f c) .
De nuevo, para obtener que el residuo sea mnimo, anulemos la primera derivada, es decir,
hagamos
i
rT r
h
=
(f c)T (f c) = 0.
cj
cj
T (f c) (f c)T = 0,
que desarrollada se transforma en
T f T c + f T cT T = 0.
Como
T f = f T
cT T = T c,
T f T c + T f T c = 0
2(T f T c) = 0
T f T c = 0
T c = T f,
donde
(0 ; 0 ) (1 ; 0 ) . . . (m ; 0 )
(0 ; 1 ) (1 ; 1 ) . . . (m ; 1 )
;
.
.
.
..
.
.
.
.
.
.
.
(0 ; m ) (1 ; m ) . . . (m ; m )
y
T f
tiene la forma
(f ; 0 )
(f ; 1 )
.. .
.
(f ; m )
A = T , x = c y B = T f , volvemos a tener nuestro sistema de
ecuaciones lineales en la forma A x = B . De nuevo, el mtodo de los cuadrados mnimos no es
otra cosa que la resolucin de un sistema de ecuaciones lineales para obtener los coecientes ck
Si hacemos
de nuestra funcin de ajuste, algo a lo que habamos llegado mediante la deduccin anterior.
Este mtodo suele usarse para obtener la recta de regresin. Para obtenerla, basta que
observemos que
y(x) =
m
X
ci i (x) = c0 + c1 x,
i=0
es la recta que ajusta nuestros datos, con lo cual
0 = 1
1 = x.
(k ; j ) =
n
X
i=0
Revisin: 08/2011
k (xi ) j (xi )
(f ; j ) =
n
X
f (xi ) j (xi ),
i=0
- 103 -
n
X
(0 ; 0 ) =
i=0
n
X
(1 ; 0 ) =
como
11=n+1
xi 1 =
i=0
n
X
xi
i=0
n
X
(0 ; 1 ) = (1 ; 0 ) =
xi
i=0
n
X
(1 ; 1 ) =
(xi xi ) =
i=0
n
X
(f ; 0 ) =
i=0
n
X
(f ; 1 ) =
n
X
(xi )2
i=0
(f (xi ) 1) =
n
X
f (xi )
i=0
(f (xi ) xi ),
i=0
y nuestro sistema quedar de la siguiente manera:
n
X
n
X
xi
f (xi )
n + 1
c0
i=0
i=0
n
n
.
=
n
X
X
X
c1
2
xi
(xi )
(f (xi ) xi )
i=0
Despejando
c0
c1
i=0
i=0
obtenemos:
n
X
c0 =
(xi )2
i=0
n
X
f (xi )
i=0
(n + 1)
n
X
(f (xi ) xi )
i=0
n
X
(n + 1)
n
X
(f (xi ) xi )
i=0
c1 =
(n + 1)
n
X
n
X
i=0
n
X
!2
xi
n
X
xi
i=0
i=0
n
X
(xi )2
i=0
xi
i=0
(xi )2
i=0
n
X
f (xi )
xi
i=0
ci i (x)
i
Si ampliamos este esquema a una funcin polinmica de grado mayor o igual a 2, tendremos que
y(x) =
m
X
k=0
- 104 -
ck k (x) =
m
X
ck xk = c0 + c1 x + c2 x2 + . . . + cm xm .
k=0
Revisin: 08/2011
n
X
xi
n+1
i=0
X
n
X
n
xi
x2i
i=0
i=0
.
.
.
.
.
.
X
n
n
X
xm1
xm
i
i
i=0
i=0
X
n
n
X
m
xi
xm+1
i
i=0
n
X
...
xm1
i
i=0
n
X
...
xm
i
.
.
.
...
...
n
X
i=0
2(m1)
xi
i=0
n
X
x2m1
i
i=0
xm
i
n
X
f (xi )
i=0
n
X
m+1
c
0
xi
(f
(x
)
x
)
i
i
i=0
1 i=0
.
.
.
. =
.
.
.
.
.
.
n
n
X
X
c
m1
2m1
m1
xi
cm
(f (xi ) xi )
i=0
i=0
n
n
X
X
2m
m
xi
(f (xi ) xi )
i=0
n
X
i=0
..
n
X
i=0
i=0
con polinomios de grado mayor a 4 o 5, para evitar que la mala condicin de la matriz sea un
problema. An as, trabajar con un polinomio de grado 5 conlleva trabajar con coecientes que
incluyen
x10 ,
lo que resulta casi equivalente a interpolar con polinomios de grado 10. Por esto,
conviene que recordemos que el ajuste polinomial, al igual que la interpolacin polinomial son
problemas con tendencia a ser mal condicionados.
f (x)
para valores de
distintos
veniente efectuar algn tipo de aproximacin. Un ejemplo tpico de ello es el caso de las funciones
trigonomtricas (por ejemplo,
calcular sus valores. La ms comn es la hecha mediante las series de Taylor. Para estas funciones
puede ser muy til aplicar el desarrollo en series, pero no suele ser el caso general, puesto que
las series de Taylor son vlidas slo en el entorno de un punto, lo que le quita generalidad.
Y en qu casos necesitaramos nosotros contar con una aproximacin de una funcin
conocida? Supongamos que tenemos la siguiente funcin:
f (x) =
en un intervalo
f (x)
ex cos(x)
,
ln(x) arctan(x)
[a, b]. Supongamos adems, que nuestro problema exige que integremos esa funcin
en el intervalo dado. Podemos ver que la situacin ya no es tan fcil como parece. Si bien
disponemos de la funcin, hallar la primitiva puede ser todo un desafo, e incluso, imposible.
Pero de alguna manera debemos salvar el escollo.
Que tal si en vez de hacer una integral analtica nos orientamos hacia una solucin
numrica? La idea no es tan descabellada pues lo que nosotros necesitamos generalmente es el
resultado numrico y no la primitiva de la misma. Hagamos uso entonces de nuestras herramientas
numricas aprendidas anteriormente y, si es necesario, adecuemos nuestras expresiones al caso
analizado.
Revisin: 08/2011
- 105 -
P (x),
en el intervalo
[a; b].
f (x)
y nuestro polinomio de manera que nos queden las curvas que se ven la gura 5.1.
Si denimos que:
Z b"
f (x)
E(ak ) =
a
n
X
#2
ak x
dx = kr(ak )k22 ,
k=0
r(ak )2
tanto, para que nuestro error cuadrtico sea mnimo, deberemos buscar que la curva
r(ak )2
sea
los ms parecida al eje de abscisas. (Esta denicin es similar a la vista para ajuste de curvas.)
Para ello, vamos a derivar la funcin
E(ak )
ak
para obtener
los valores, de dichos coecientes, que hagan mnimo el error cuadrtico, tal como hicimos para
el caso de un ajuste discreto. Entonces tendremos:
#2
Z b"
n
E (a0 ; a1 ; . . . , an )
=0
f (x)
ak xk dx = 0.
aj
aj a
k=0
Z b"
2
f (x)
a
n
X
#
ak xk xj dx = 0,
k=0
Z b"
f (x)
a
n
X
#
ak xk xj dx = 0.
k=0
n
X
k=0
- 106 -
Z
ak
x
a
k+j
Z
dx =
xj f (x)dx
para
j = 0; 1; . . . ; n.
Revisin: 08/2011
b
k+j
x
a
b
Z b
xk+j+1
bk+j+1 ak+j+1
k+j
dx =
x
dx
=
k + j + 1 a
k+j+1
a
a=0
Si denimos que
b = 1,
1
k+j+1
La matriz que se genera a partir del coeciente anterior es conocida como matriz de
Hilber t, que es una matriz mal condicionada. Como en el caso anterior de ajuste discreto, al
tener una matriz mal condicionada, el sistema es muy sensible a los cambios en los datos, o
modicaciones de la matriz de coecientes, es decir, es muy sensible a los errores inherentes.
Un segundo problema, en este caso operativo, es que si por algn motivo se desea agregar
un trmino ms al polinomio, hay que recalcular el sistema (agregar una columna y una la), lo
que signica mucho trabajo adicional. Y nada asegura que los nuevos resultados estn exentos
de errores. De todos modos, contamos con mtodo muy potente para ajustar funciones pero con
inconvenientes operativos en el planteo numrico. Podemos buscar la forma de mejorarlo. Veamos
como.
Cul sera la mejor matriz de coecientes para resolver un sistema de ecuaciones lineales?
Evidentemente, aquella que independice cada incgnita de las otras. O sea, que la matriz de
coecientes sea una matriz diagonal. Supongamos modicar levemente la expresin del polinomio
de aproximacin por la siguiente:
n
X
P (x) =
ak k (x),
k=0
En principio, no hemos hecho sino un cambio de notacin, llamando a
xk
como
k (x).
Veamos qu ventajas nos trae esto. Por lo pronto, ahora disponemos de ms posibilidades porque
el mtodo no cambia si proponemos una suma de funciones en vez de un polinomio como funcin
de aproximacin, tal como vimos para ajuste de curvas. Entonces nos queda:
n
X
Z
ak
k=0
Z
k (x)j (x)dx =
j f (x)dx
para
j = 0; 1; . . . ; n.
que conceptualmente es muy parecido a lo anterior. Pero con una diferencia: ahora podemos tomar
cualquier funcin para denir nuestras funciones
k (x)
j (x).
Busquemos entonces que nuestra matriz de coecientes se convierta en una matriz diagonal. Y
cmo lo logramos? Sencillamente estableciendo que se cumpla lo siguiente:
k (x)j (x)dx =
a
donde
0
M >0
k 6= j
,
k=j
si
si
k (x)
M = 1.
k (x).
aproximar una funcin cualquiera, una buena idea es proponer que esas funciones sean tambin
polinomios. Para hallar estos polinomios ortogonales entre s, debemos agregar una segunda
condicin que es agregar una funcin de peso. Esta funcin de peso tiene por objeto asignar
Revisin: 08/2011
- 107 -
diferentes grados de importancia a las aproximaciones de ciertas partes del intervalo. En esta
nueva situacin tenemos:
"
#2
Z b
n
E (a0 ; a1 ; . . . , an )
=0
w(x) f (x)
ak k (x) dx = 0,
aj
aj a
k=0
"
w(x) f (x)
a
n
X
#
ak k j dx = 0.
k=0
0
M 6= 0
w(x) = 1,
Si denimos que
y los
j (x).
k=
6 j
.
k=j
si
si
[1, 1],
polinomios de Legendre .
k (x)
el resultado es que
(x).
B1
Z
w(x)0 (x)1 (x) dx = 0
w(x)[0 (x)] x dx B1
a
y entonces
B1
w(x)[0 (x)]2 dx = 0
w(x)[0 (x)]2 x dx
a
B1 = Z
b
2
w(x)[0 (x)] dx
a
Para los siguientes polinomios, es decir, cuando
k 2,
en
[a; b].
Z
Ck
Ck :
x w(x)[k1 (x)]2 dx
a
Z
Bk =
Bk
w(x)[k1 (x)]2 dx
- 108 -
Revisin: 08/2011
[1; 1],
w(x) = 1
y el
1. El coeciente
B1
se obtiene con:
x dx
B1 =
1
Z 1
;
dx
1
2. Los coecientes
Bk
x [k1 (x)]2 dx
Bk = Z
[k1 (x)]2 dx
1
3. Y, nalmente, los coecientes
Ck
se obtienen con:
Z
Ck =
x k1 (x)k2 (x) dx
.
Z 1
[k2 (x)]2 dx
1
Existe un segundo conjunto de polinomios ortogonales muy utilizados que son los poli-
nomios de Chebishev. Tambin se generan aplicando las expresiones generales ya vistas, pero con
1
w(x) = 1x
.
2
Revisin: 08/2011
- 109 -
- 110 -
Revisin: 08/2011
Captulo 6
2
x .
b
ser
d f (x)
f (x) =
=
dx
0
Revisin: 08/2011
2
b
cos
2
x .
b
- 111 -
x=
b
6 entonces basta con reemplazar ese
b
2
2 b
2
=
cos
=
cos
f
6
b
b 6
b
3
0
x=
b
6
=1
ser
f 0 (1) =
b,
3
(por ejemplo,
cos
3
b = 6),
0, 5236
6
Supongamos ahora que queremos obtener ese mismo valor pero no recordamos cmo
hallar la derivada en forma analtica. Aplicando el concepto del cual se deduce, podemos decir
que
f 0 (x)
f (x + x) f (x)
x
f 0 (x)
f (x + h) f (x)
h
x=
b
6 con
b=6
adoptemos el valor
h = 0, 1.
As tendremos que
f 0 (1)
f (1, 1) f (1)
=
0, 1
f 0 (1)
seno
1, 1 seno
3
3
0, 1
0, 9135 0, 8660
= 0, 4750
0, 1
Podemos ver que nuestra aproximacin es razonable pero no muy buena, y que el error
cometido es del orden del 10 %. Como no estamos conformes con el resultado obtenido, proponemos otro algoritmo para hallar el valor buscado. Este algoritmo es
f 0 (x)
f (x) f (x x)
x
f 0 (x)
f (x) f (x h)
h
f 0 (1)
f (1) f (0, 9)
=
0, 1
f 0 (1)
seno
3
seno
3
0, 9
0, 1
0, 8660 0, 8090
= 0, 5700
0, 1
De nuevo, el valor obtenido tampoco es una aproximacin muy buena, pues el error
cometido del orden del 8 %. Una vez ms, no estamos conformes con el resultado que nos arroj
este algoritmo y proponemos este otro
f 0 (x)
f (x + x) f (x x)
2x
o tambin:
f 0 (x)
- 112 -
f (x + h) f (x h)
2h
Revisin: 08/2011
f 0 (1)
f (1, 1) f (0, 9)
=
0, 2
f 0 (1)
seno
1, 1 seno
0, 9
3
3
0, 2
0, 9135 0, 8090
= 0, 5225
0, 2
f 0 (x)
f (x + h2 ) f (x h2 )
h
seno
f (1, 05) f (0, 95)
f (1)
=
0, 1
0
f 0 (1)
2
6 1, 05
seno
0, 1
2
6
(0, 95)
0, 8910 0, 8387
= 0, 5230
0, 1
El resultado es una mejor aproximacin pero no se nota una gran diferencia con respecto
al anterior, puesto que el error cometido es del orden de 0,1 %. Pero sin lugar a dudas, este ltimo
algoritmo es mucho mejor.
Esta forma de aproximar la derivada en un punto se conoce como aproximacin por
f 0 (x) =
2.
f (x + h) f (x)
;
h
f 0 (x) =
Revisin: 08/2011
f (x) f (x h)
,
h
- 113 -
f 0 (x) =
f (x + h) f (x h)
.
2h
f (x + h) = f (x) + f 0 (x)
de la cual podemos despejar
f 0 (x),
f (x + h),
tendremos que
h
h2
h3
+ f 00 (x) + f 000 (x) + . . . ;
1!
2!
3!
que es
h3
h2
f 000 (x) . . . ;
2!
3!
f (x + h) f (x)
h
h2
f 00 (x) f 000 (x) . . . .
h
2!
3!
n
Si nuestro h es sucientemente pequeo, entonces los h para n 2 se pueden despreciar.
f 0 (x) =
f 0 (x) =
con
[x; x + h].
h
f (x + h) f (x)
f (x + h) f (x)
f 00 () =
+ O(h);
h
2!
h
O(h).
f (x h) = f (x) f 0 (x)
h
h2
h3
+ f 00 (x) f 000 (x) + . . . .
1!
2!
3!
f 0 (x) =
f (x) f (x h)
h
f (x) f (x h)
+ f 00 () =
+ O(h).
h
2!
h
O(h).
h
h2
h3
+ f 00 (x) + f 000 (x) + . . . ;
1!
2!
3!
2
h
h3
h
f (x h) = f (x) f 0 (x) + f 00 (x) f 000 (x) + . . . .
1!
2!
3!
f (x + h) = f (x) + f 0 (x)
Si hacemos
f (x + h) f (x h)
nos queda
f (x + h) f (x h) = 2f 0 (x)
Si despejamos
f 0 (x) =
esta vez con
f 0 (x)
h
h3
+ 2f 000 (x) + . . . .
1!
3!
f (x + h) f (x h)
h2
f (x + h) f (x h)
f 000 ()
=
+ O(h2 ),
2h
3!
2h
[x h; x + h].
O(h2 ),
mucho mejor respecto de los esquemas anteriores. Entonces es conveniente armar un esquema de
- 114 -
Revisin: 08/2011
diferencias centradas para aproximar una derivada en un punto dado. Adems tiene otra ventaja.
Como el error es proporcional a la tercera derivada, podemos obtener resultados muy precisos
(exactos) para un polinomio de grado menor o igual a 2.
Al mismo tiempo, el hecho de que el orden de convergencia sea
que si hacemos el paso
(h)
O(h2 )
aproximacin. Hagamos esto, y con la misma precisin del ejemplo anterior, calculemos de nuevo
la derivada en el punto
x=1
1. Diferencias progresivas:
f 0 (1) =
h = 0, 01,
seno( 3 1,01)seno( 3 )
0,01
2. Diferencias regresivas:
f 0 (1) =
3. Diferencias centradas:
f 0 (1) =
0,87120,8660
0,01
0,86600,8607
0,01
= 0, 5200
= 0, 5300
0,87120,8607
0,02
= 0, 5250
Al achicar el paso utilizado para reducir el error cometido podemos notar dos cosas. La
primera es que para los esquemas progresivos y regresivos el resultado obtenido result ser una
mejor aproximacin que en el caso anterior con un paso diez veces ms grande, mientras que
para el esquema centrado, el resultado no fue mejor. La segunda es que hemos perdido precisin,
principalmente en el esquema con diferencias centradas. La pregunta es: por qu? En todo caso,
habremos hecho algo mal?
En realidad no hemos hecho nada incorrecto. Sucede que no hemos tomado en cuenta la
incidencia del error de redondeo en nuestro algoritmo, es decir, el hecho de trabajar solamente
con cuatro dgitos al representar los resultados intermedios. Supusimos que achicar el paso inmediatamente nos mejoraba nuestra aproximacin. Pero hemos visto que la aproximacin depende
tambin de la precisin usada en los clculos, es decir, de la representacin numrica, que como
vimos, est asociada al error de redondeo
1.
f (x + h) f (x) o sus equivalentes. Esa diferencia se vuelve muy chica y es posible que
x 2h
x h,
2h
4h2
8h3
16h4
32h5
+ f 00 (x)
+ f 000 (x)
+ f iv (x)
+ f v (x)
+ ...;
1!
2!
3!
4!
5!
h
h2
h3
h4
h5
f (x + h) = f (x) + f 0 (x) + f 00 (x) + f 000 (x) + f iv (x) + f v (x) + . . . ;
1!
2!
3!
4!
5!
2
3
4
5
h
h
h
h
h
f (x h) = f (x) f 0 (x) + f 00 (x) f 000 (x) + f iv (x) f v (x) + . . . ;
1!
2!
3!
4!
5!
2
3
4
2h
4h
8h
16h
32h5
f (x 2h) = f (x) f 0 (x)
+ f 00 (x)
f 000 (x)
+ f iv (x)
f v (x)
+ ....
1!
2!
3!
4!
5!
Primero hagamos
f (x + 2h) f /x 2h)
f (x + h) f (x h),
h
h3
h5
+ 16f 000 (x) + 64f v (x) + . . . ;
1!
3!
5!
3
5
h
h
h
f (x + h) f (x h) = 2f 0 (x) + 2f 000 (x) + 2f v (x) + . . . .
1!
3!
5!
1
En el captulo 1 vimos como ejemplo de la incidencia del error de redondeo en un algoritmo, el clculo de una
derivada numrica, y como, a partir de un valor del paso h, a medida que se haca ms chico, el error aumentaba.
Revisin: 08/2011
- 115 -
f 0 (x),
[f (x + 2h) f (x 2h)] 8 [f (x + h) f (x h)].
3
anulemos el trmino con h . Para ello, hagamos
As, nos queda la siguiente igualdad:
f 0 (x) =
y si truncamos en
f (x 2h) 8f (x h) + 8f (x + h) f (x + 2h)
h4
+ 4f v (x) + . . . ;
12h
5!
h4 ,
f 0 (x) =
con
h5
+ ....
5!
nos queda:
f (x 2h) 8f (x h) + 8f (x + h) f (x + 2h)
h4
+ f v () .
12h
30
[x 2h; x + 2h]
y un orden de convergencia
O(h4 ).
decir que una aproximacin de la primera derivada en un punto esta dada por:
f 0 (x)
f (x 2h) 8f (x h) + 8f (x + h) f (x + 2h)
.
12h
Ahora, apliquemos este nuevo esquema centrado para calculas la derivada buscada, con
la misma representacin numrica utilizada en los casos anteriores. Tomemos el paso
h = 0, 1
f (x = 1) =
seno
f 0 (x = 1) =
3 0, 8
8 seno
3 0, 9
+ 8 seno
12 h
3 1, 1
3 1, 2
seno
0, 6283
0, 7431 6, 4721 + 7, 3084 0, 9511
=
= 0, 5236
12 0, 1
1, 2
pequeo, an
cuando esto trae aparejado una inestabilidad de los resultados. Tal como vimos al analizar la
aproximacin por polinomios de Taylor, nuestra aproximacin de la derivada se puede expresar
como:
M = N (h) + E(h),
- 116 -
Revisin: 08/2011
donde
es el valor buscado,
N (h),
la aproximacin de
E(h)
M , E(h),
el error cometido y
h,
el paso.
de la siguiente forma:
E(h) = K1 h + K2 h2 + K3 h3 + . . . .
Anlogamente al caso anterior, para un
(I)
Como
h1 = qh2
(II)
h1
h2
tal que
q=
h1
h2 . Entonces tendremos:
qM M
qM M
h,
es
= qN1 (h2 ) N1 (h1 ) + qK1 (h2 h2 ) + qK2 h22 qh22 + qK3 h32 q 2 h32 + . . .
= qN1 (h2 ) N1 (h1 ) + qK2 h22 qh22 + qK3 h32 q 2 h32 + . . . .
Si despejamos
M,
(q 1)N1 (h2 ) N1 (h2 ) N1 (h1 ) qK2 h22 (q 1) qK3 h32 q 2 1
M=
+
+ ...
q1
q1
q1
q1
en la que podemos expresar
M = N1 (h2 ) +
|
como:
N1 (h2 ) N1 (h1 )
qK2 h22 q (q + 1) K3 h32 + . . . .
q1
{z
}
N2 (h1 )
Al denir
N2 (h1 ) = N1 (h2 ) +
N1 (h2 ) N1 (h1 )
,
q1
- 117 -
K20 = qK2 ;
K30 = q(q + 1)K3 ;
...
h1
h2 ,
entonces tenemos:
(IV)
(V)
q=
h1
h2 , y reescribamos (IV) de la siguiente
forma:
(VI)
h,
multiplicando por
q2
q2M M
= q 2 N2 (h2 ) N2 (h1 ) q 2 K20 h22 h22 + q 2 K30 h32 (q 1) + . . .
q2M M
De la misma forma que para el caso anterior, obtenemos una nueva aproximacin para
M
M=
h1 es
3
M = N2
|
h1
q
N2
h1
q
N2 (h1 )
+
q2 1
{z
q 2 K30
h1
q
q+1
+ ...,
N3 (h1 )
K300 =
K30
;...,
q(q + 1)
h
N
j1 q Nj1 (h)
h
Nj (h) = Nj1
+
.
q
q j1 1
Este mtodo o algoritmo para mejorar una aproximacin se conoce como Extrapolacin de
Richardson. Veremos ms adelante una aplicacin de este mismo mtodo asociado a la integracin
numrica.
Un caso particular muy usado es cuando
q = 2,
Nj1 h2 Nj1 (h)
h
Nj (h) = Nj1
+
.
2
2j1 1
- 118 -
Revisin: 08/2011
Este algoritmo permite aproximar una derivada numrica con poco esfuerzo y teniendo en cuenta
la inestabilidad del algoritmo porque no requiere dividir por nmeros excesivamente pequeos.
Apliquemos este mtodo al ejemplo inicial y calculemos la derivada de
en
x=1
f (x) = seno
3x
Armemos una tabla para aplicar el algoritmo anterior de modo de visualizar fcilmente
cada uno de los pasos. En primer lugar, vamos denir que la primera aproximacin, es decir,
sea la derivada calculada numricamente con
h,
N1 (h)
expresin:
seno 3 (x + h) seno 3 x
f (x + h) f (x)
f (x)
=
.
h
h
columnas sern N2 (h), N3 (h) y N4 (h). En segundo lugar,
0
Las dems
valores de
h,
tomaremos varios
buscada. Para cada caso calcularemos las aproximaciones con la frmula de la Extrapolacin de
Richardson:
Nj1 h2 Nj1 (h)
h
Nj (h) = Nj1
+
.
2
2j1 1
hi
yi0 = N1
0,2
0,4250
N2
N3
0,1
0,4750
0,5250
0,05
0,5000
0,5250
0,5250
0,025
0,5120
0,5240
0,5237
N4
0,5235
N2 .
Analicemos rpidamente los resultados obtenidos. La primera columna contiene los resultados de aproximar la derivada con varios
relativamente pequeo (h
= 0, 025)
Revisin: 08/2011
h = 0, 025,
- 119 -
N3 .
N4 .
vemos que es muy superior. Si quisiramos obtener una aproximacin similar, deberamos trabajar
con ms decimales, puesto que para
h = 0, 01
el valor de
f 0 (1)
M = N (h) + K1 h + K2 h2 + K3 h3 + . . . .
como es el caso de la interpolacin polinomial.
Los distintos mtodos vistos en los puntos anteriores indican que es preferible mejorar el
algoritmo o desarrollar uno nuevo, antes que anar el paso de clculo. Ms an, es mucho ms
efectivo aplicar el mtodo de extrapolacin de Richardson a un algoritmo conocido y sencillo
que desarrollar uno nuevo. En todo caso, la segunda opcin sera utilizar los polinomios de
Taylor o alguna aproximacin polinomial que utilice la informacin disponible (puntos adyacentes
o aledaos). Si bien esta aproximacin puede ser laboriosa, queda ampliamente justicada al
disminuir la incidencia del error de redondeo en los clculos, sobre todo al no tener que dividir
por un nmero muy pequeo.
- 120 -
Revisin: 08/2011
Los desarrollos vistos para el caso de aproximar una primera derivada pueden extrapolarse
para derivadas de orden superior. Un ejemplo de ello es la aproximacin centrada de la segunda
derivada en un punto dado, cuya expresin es:
f (x h) 2f (x) + f (x + h)
.
h2
f 00 (x) =
xh
x + h.
Efectivamente, al
h
h2
h3
+ f 00 (x)
+ f 000 (x)
+ ...;
1!
2!
3!
h2
h3
h
f 000 (x)
+ ....
f (x h) = f (x) f 0 (x) + f 00 (x)
1!
2!
3!
f (x + h) = f (x) + f 0 (x)
h4
+ ...;
12
f (x h) 2f (x) + f (x + h)
h2
iv
f 00 (x) =
f
[]
;
h2
12
f (x h) 2f (x) + f (x + h)
+ O(h2 ),
f 00 (x) =
h2
con
[x h; x + h).
Observemos que el error cometido al calcular la derivada segunda con la expresin dada
es proporcional a
h2
y a
f iv (),
derivada. Podemos asegurar que en el caso de polinomios de grado 3 o inferior, o que no exista
la derivada cuarta, la derivada segunda obtenida en forma numrica, es exacta.
Mediante razonamientos anlogos o similares pueden obtenerse algoritmos para calcular
derivadas numricas de orden superior. Sin embargo, a medida que se aumenta el orden de la
derivada, aumenta el exponente de
h,
derivada numrica de mayor orden puede llevar a que obtengamos valores poco satisfactorios
o directamente intiles, si el paso
Revisin: 08/2011
- 121 -
Denicin 6.1.
la integral
I(f ) =
Rb
a
f (x)dx
f (x)
denida en
[a; b],
Qn (f ) =
n
X
ci f (xi ) ;
i=1
ci < y xi [a; b]. Los puntos xi se denominan puntos de cuadratura (o races) y los
ci , coecientes de cuadratura o de peso. Asimismo, se dene el error de la cuadratura
como En (f ) = I(f ) Qn (f ).
con
valores
Denicin 6.2.
k = 0; 1; . . . ; m
En x
Observacin 6.2.1.
0
si
En (xk ) = 0
para
6= 0.
Denicin 6.3.
m+1
pk (x)
m, entonces En (pk ) =
m (k m).
Denicin 6.4.
[a; b],
Qn (f ) = f (a)(b a);
- 122 -
Revisin: 08/2011
Qn (f ) = f (b)(b a);
para el caso (b).
Otra forma de aproximar el rea la vemos en la gura 6.8.
Qn (f ) =
f (b) + f (a)
(b a).
2
h = b a,
Qn (f ) =
h
2
Qn (f ) = h f (a);
Qn (f ) = h f (b);
[f (a) + f (b)].
Para saber si nuestras aproximaciones son buenas, estimemos el error que cometemos
en cada una. Primeramente, analicemos cualquiera de los dos mtodos que aproximan por un
rectngulo. Al desarrollar
f (x)
(x a)2
+ ....
2
- 123 -
Para obtener la integral basta con integrar la serie tambin. Entonces tenemos que
f 0 (a)(x a)dx +
f 00 (a)
f (a)dx +
f (x)dx =
(x a)2
dx + . . . .
2
f (x)dx = f (a)(b a) + f 0 ()
[a; b].
con
h=ba
Como
(b a)2
,
2
nos queda
f (x)dx = f (a)h + f 0 ()
h2
ba 0
= h f (a) +
f () h,
2
2 | {z }
O(h)
O(h).
f (b)
el error es anlogo.
Para analizar el mtodo del trapecio, usemos una interpolacin entre el punto
f (x) = f (a)
a y b usando
xb
xa
(x a)(x b)
+ f (b)
+ f 00 ()
.
ab
ba
2
f (x)dx =
a
=
=
Z
f (x)dx =
a
nuevamente con
Z b
Z
Z
(x a)(x b)
f (b) b
f (a) b
00
(x b)dx +
(x a)dx + f ()
dx
ab a
ba a
2
a
f (a) + f (b)
(b a)3
(b a) f 00 ()
2
12
3
f (a) + f (b)
h
h f 00 ()
2
12
f (a) + f (b)
b a 00 h2
h
f () ,
2
2
6
[a; b].
x=
a+b
2 , es decir, podemos obtener
a+b
2 . En consecuencia, tenemos ahora tres puntos que
nos pueden servir para obtener el rea buscada. Hagamos pasar una curva por esos tres puntos
utilizando el polinomio de Taylor y asumiendo en este caso que
h =
ba
2 , como se ve en la
gura 6.9. Podemos ver en la gura que el rea aproximada es mayor que el rea buscada, lo que
signica que obtendremos un valor por exceso.
La aproximacin usando parbolas de segundo grado es la conocida frmula de Simpson,
cuya expresin matemtica es:
Qn (f ) =
a+b
h
f (a) + f (b) + 4 f
.
3
2
Analicemos el error cometido con esta nueva expresin. Tomemos nuevamente nuestro
desarrollo de Taylor pero a partir del punto
cuarta. Entonces nos queda
x1 =
a+b
2
(x x1 )2
(x x1 )3
(x x1 )4
+ f 000 (x1 )
+ f iv (1 )
,
2
6
24
Otro camino es truncar el desarrollo por Taylor del rectngulo en el trmino que contiene a f 00 (a).
- 124 -
Revisin: 08/2011
con
1 [a, b].
Si integramos nuevamente nos queda
Z b
(x x1 )2
f 00 (x1 )
f 0 (x1 )(x x1 )dx +
dx +
2
a
a
a
Z b
Z b
(x x1 )3
(x x1 )4
000
+
f (x1 )
dx +
f iv (x1 )
dx
6
24
a
a
b
b
(x x1 )3
(x x1 )2
00
0
= f (x1 )(b a) + f (x1 )
+ f (x1 )
+
2
6
a
a
b
b
4
5
(x x1 )
(x x1 )
iv
+f 000 (x1 )
+ f (1 )
24
120 a
a
f (x1 )dx +
f (x)dx =
h = b x1 = x1 a.
a
Aproximemos la derivada segunda en
x1
h3
h5
+ f iv (1 ) .
3
60
en diferenciacin numrica. Dado que esta aproximacin debe tener un error de truncamiento
similar a nuestra aproximacin de la integral, usaremos la derivada por diferencias centradas,
que tambin es proporcional a
f iv (2 ):
f 00 (x1 ) =
con
2 [a; b].
Al reemplazarla en la frmula de integracin, nos queda
f
(
)
+
f
(
)
2
1
h2
3
36
60
5
h
h
[f (a) + 4f (x1 ) + f (b)] f iv ()
3
90
h
a+b
b a f iv () 4
f (a) + 4f
+ f (b)
h ,
3
2
2
90
=
=
con
[a; b].
E(h) = M h4 ,
Revisin: 08/2011
con
M=
b a iv
f (),
180
- 125 -
O(h4 ).
Vemos que el error del mtodo de Simpson es proporcional a la derivada cuarta, por lo
tanto, esta expresin nos da una integral exacta para polinomios de grado menor o igual a
tres.
Uniquemos los cuatro casos en un intervalo de integracin. Si tomamos como intervalo
[a; b]
el intervalo
[1; 1],
Qn (x) = 2 f (1).
Qn (x) = 2 f (1).
1
3
4
3
f (1) +
f (0) +
1
3
f (1).
Si nos jamos en la denicin de cuadratura podemos ver que hemos denido para cada
caso un valor de
ci
y un valor de
xi ,
c1 = 2, x1 = 1.
c1 = 2, x1 = 1.
c1 = c2 = 1, x1 = 1, x2 = 1.
c1 = c3 =
1
3,
c2 =
4
3,
x1 = 1; x2 = 0; x3 = 1;
con lo cual podemos escribirlos segn la forma general denida como cuadratura numrica :
n
X
Qn (f ) =
ci f (xi ) ;
i=1
siendo
n = 1
n = 2
n = 3
para la de
Simpson.
An cuando estas aproximaciones tienen una precisin interesante (sobre todo la ltima), no son lo sucientemente precisas para resolver cualquier problema. Para mejorar nuestra
aproximacin, veremos a continuacin algunas formas de mejorar la precisin de las cuadraturas.
Frmulas compuestas
Supongamos que en lugar de utilizar la frmula del rectngulo con el paso
h = b a,
dividimos ese intervalo en intervalos ms chicos. Empecemos por denir un nuevo paso ms chico,
tomando
h=
ba
2 . Ahora podemos aproximar la integral con dos subintervalos, tanto por defecto
[a; a + h]
[a + h; b],
aproximaciones:
Qn (f ) = h f (a) + h f (a + h);
o
Qn (f ) = h f (a + h) + h f (b).
Ambas aproximaciones se pueden ver en las guras 6.10(a) y 6.10(b). La primera es una
aproximacin francamente por defecto, en cambio, en la segunda tenemos una primer intervalo
con una aproximacin por exceso y otro intervalo por defecto; en conjunto podemos inferir que
la aproximacin resulta ser por exceso.
Si hacemos un desarrollo similar con la frmula del trapecio, tomando el mismo paso
(h
ba
2 ), y por ende, los mismos subintervalos, tendremos:
h
h
h
a+b
Qn (f ) = [f (a) + f (a + h)] + [f (a + h) + f (b)] =
f (a) + 2f
+ f (b) .
2
2
2
2
- 126 -
Revisin: 08/2011
La aproximacin obtenida se puede ver en el gura 6.11, que resulta ser una aproximacin
por defecto.
Al igual que en los casos anteriores, podemos mejorar la aproximacin de la frmula de
Simpson usando la misma tcnica. Si dividimos nuestro intervalo inicial en dos, de manera de
trabajar con dos subintervalos y denimos
Qn (f ) =
h=
ba
4 , tendremos la nueva aproximacin:
h
h
[f (a) + f (a + 2h) + 4 f (a + h)] + [f (a + 2h) + f (b) + 4 f (a + 3h)] .
3
3
Qn (f ) =
h
[f (a) + f (b) + 2 f (a + 2h) + 4 f (a + h) + 4 f (a + 3h)] .
3
El resultado de aplicar esta frmula, como se puede ver en la gura 6.12, muestra que la aproximacin obtenida es muy precisa, y que el resultado es muy cercano al exacto.
Podemos generalizar las expresiones de los mtodos para
subintervalos:
Rectngulos:
Qn (f ) = h
n1
X
f (a + i h),
i=0
Qn (f ) = h
"n1
X
#
f (a + i h) + f (b) ,
i=1
con
h=
ba
n ;
Revisin: 08/2011
- 127 -
Trapecios:
"
#
n1
X
h
Qn (f ) =
f (a) + f (b) + 2
f (a + i h) ,
2
i=1
tambin con
h=
ba
n ; y
Simpson:
h
Qn (f ) =
3
con
h=
ba
2n y
(
f (a) + f (b) + 2
n1
X
f (a + 2i h) + 4
i=1
n
X
)
f [a + (2i 1) h]
i=1
n = 1; 2; 3; . . . ; k .
h.
En particular, en el
E(h) =
con
[a; b].
b a iv
f ()h4 = M h4 ,
180
con
M=
b a iv
f (),
180
O(h4 ).
Sin embargo, esta metodologa tiene una desventaja. A medida que achicamos el paso
aumentamos notablemente la cantidad de operaciones que debemos realizar, lo que signica
ms tiempo de procesamiento. Esto no siempre es prctico; por ejemplo, dividir el intervalo para
Simpson en 100 subintervalos representa un esfuerzo de clculo que no siempre mejora la precisin
del resultado en el mismo sentido. Puede ocurrir que nuestra representacin numrica nos limite
el tamao del paso
h,
lo que nos impide anar el paso todo lo necesario. Algo similar puede
h,
debe-
mos calcular prcticamente todo otra vez, pues salvo los valores de la funcin en los extremos
del intervalo, el resto de los valores no suelen ser tiles (salvo excepciones). Cambiar el paso no
suele tener costo cero. Busquemos, en consecuencia, otra forma para obtener resultados ms
precisos sin tener achicar el paso, incrementar demasiado las cantidad de operaciones a realizar
o repetir todos los clculos.
Mtodo de Romberg
Como primer paso para desarrollar un mtodo ms eciente que mejore nuestros resultados, analicemos el error que se comete al aplicar cualquiera de las frmulas de cuadratura vistas
- 128 -
Revisin: 08/2011
Z bX
n
Z
I(f ) =
f (x)dx =
a
Z
f (xi )Li (x)dx +
a i=1
n
X
ci f (xi ) +
i=1
{z
Qn (f )
1
n!
f (n) [(x)] Y
(x xi )dx
n!
i=1
f (n) [(x)]
n
Y
(x xi )dx;
i=1
1
En (f ) = I(f ) Qn (f ) =
n!
f (n) [(x)]
n
Y
(x xi )dx.
i=1
Rectngulos:
Trapecios:
Simpson:
ba
2
E1 (f ) =
f 0 () h.
00
2
E2 (f ) = ba
12 f ()h .
iv
4
E3 (f ) = ba
90 f ()h .
Notemos que las aproximaciones mediante cualquiera de las frmulas vistas se pueden
expresar como:
= N (h) + K1 h + K2 h2 + K3 h3 + . . .
M N (h) = E(h) = K1 h + K2 h2 + K3 h3 + . . .
lo que nos permite aplicar el mtodo de extrapolacin de Richardson, visto para diferenciacin
numrica. En el caso particular del mtodo compuesto del trapecio, el error puede expresarse
mediante potencias pares de
3:
mtodo de Romberg.
"
#
n1
X
h
Qn (f ) =
f (a) + f (b) + 2
f (a + i h) ;
2
i=1
"
#
n1
X
h
b a 2 00
I(f ) =
f (a) + f (b) + 2
f (a + i h)
h f ();
2
12
i=1
con
a<<b
h=
ba
n .
2k1
1
X
hk
b a 2 00
I(f ) =
f (a) + f (b) + 2
f (a + i hk )
h f (k ).
2
12 k
i=1
Revisin: 08/2011
- 129 -
Rk,1 (hk ) =
hk
f (a) + f (b) + 2
2
R1,1 =
con
h1 = b a.
Para el caso de
2k1
X1
f (a + i hk ) ;
i=1
Rk,1 .
En efecto, para
k=1
tenemos que
ba
h1
[f (a) + f (b)] =
[f (a) + f (b)] ,
2
2
k=2
tenemos que
h2
[f (a) + f (b) + 2f (a + h2 )]
2
ba
ba
f (a) + f (b) + 2f a +
4
2
R2,1 =
=
h1
"
#
z }| {
ba
1 ba
(f (a) + f (b)) +
6 2f (a + h2 )
2 | 2
62
{z
}
R1,1
1
[R1,1 + h1 f (a + h2 )] ,
2
=
con
h2 =
ba
.
2
Anlogamente, para
R3,1 =
k = 3, h3 =
ba
,
4
o
h3 n
f (a) + f (b) + 2 f (a + h3 ) + f (a + 2h3 ) + f (a + 3h3 )
|{z}
2
h2
=
=
ba
{f (a) + f (b) + 2f (a + h2 ) + 2 [f (a + h3 ) + f (a + 3h3 )]}
8
1
{R2,1 + h2 [f (a + h3 ) + f (a + 3h3 )]} .
2
k , tenemos que
k2
2X
1
=
Rk1;1 + hk1
f [a + (2i 1)hk ] .
Rk,1
i=1
Rk,1
Rk,2 = Rk,1 +
con
k = 2; 3; . . . ; n.
q = 4.
Por lo tanto
Rk,1 Rk1;1
;
41 1
h4 ,
j : 3; 4; . . . ; n,
Rk,j = Rk,j1 +
Rk,j1 Rk1;j1
;
4j1 1
como la 6.2,
La ventaja de este mtodo es que nos permite calcular una nueva la con slo hacer
una aplicacin de la frmula compuesta del trapecio y luego usar los valores ya calculados para
- 130 -
Revisin: 08/2011
R1,i
R1,1
R2,1
R3,1
R2,i
R3,i
R2,2
R3,2
R3,3
.
.
.
.
.
.
.
.
.
..
Rn,1
Rn,2
Rn,3
...
...
Rn,i
Rn,n
obtener el resto de los valores de las dems columnas de esa nueva la; no requiere recalcular
todo.
Una cuestin a tener en cuenta al aplicar este mtodo, es que supone que la frmula
compuesta del trapecio permite la aplicacin de la extrapolacin de Richardson, esto es, se debe
f (x) C 2(k+1) [a, b]; si esto no se cumple, no tiene sentido seguir anando el resultado
hasta la iteracin k . Si generalizamos, es evidente que una funcin f (x) que cumpla con tener
innitas derivadas continuas en el intervalo [a; b], es una funcin a la cual resulta muy conveniente
cumplir que
c =
a+b
2 . En ese caso nuestra
Qn (f ) = (b| {z
a}) f (c) = h f (c).
h
Revisin: 08/2011
- 131 -
brevemente la frmula del punto medio. Al elegir dicho punto y no los extremos del intervalo,
suponemos que el rectngulo que queda formado aproxima mejor la integral buscada. Si dividimos
este intervalo en varios subintervalos ms pequeos, tendremos la frmula compuesta. As y todo,
estamos algo limitados.
Podramos avanzar en la idea y desarrollar una frmula similar para el mtodo de Simpson, es decir, crear una curva que no pase por los extremos y nos permita obtener una buena
aproximacin. Pero de todas maneras tenemos la misma limitante: debemos trabajar con puntos
equidistantes
4 . Esto puede llevar a que debamos utilizar las frmulas compuestas con muchos
Qn (f ) =
n
X
ci f (xi ) .
i=1
Supongamos ahora que elegimos una curva que pase por ciertos puntos y que aproxime
la integral de la funcin dada, usando la frmula de cuadratura. Curvas de ese tipo se ven en la
gura 6.14.
I(f ) =
h
[f (x1 ) + f (x2 )] .
2
h = b a,
donde
[a; b]
es
nuestro intervalo de integracin, para el caso del mtodo del trapecio tendremos que:
x1 = a, x2 = b, c1 = c2 =
ba
.
2
4
Recordemos que la base de la integracin numrica es la interpolacin polinmica, que se vuelve inestable
cuando los puntos usados estn separados uno de otro en forma equidistante.
- 132 -
Revisin: 08/2011
xi ,
[1, 1].
que dispongamos de ms variables para aproximar nuestra integral. En esta nueva situacin
esos parmetros para nuestra frmula de cuadratura es equivalente a obtener los coecientes de
ese polinomio de grado
2n 1.
que:
c1 a0 + a1 x1 +
a2 x21
a3 x31
+ c2 a0 + a1 x2 +
a2 x22
a3 x32
Z
=
a0 + a1 x + a2 x2 + a3 x3 dx,
a
de lo que resulta un sistema de ecuaciones no lineales:
dx = b a
c1 + c2 =
a
2
a2
a
Z b
b3 a3
=
x2 dx =
3
a
Z b
4
b a4
=
x3 dx =
.
4
a
c1 x1 + c2 x2 =
c1 x21 + c2 x22
c1 x31 + c2 x32
Si obtenemos los valores de
ci
y de
x dx =
b2
nuestra integral.
Gauss deni estos polinomios para aproximar la integral, en el intervalo
los
ci
xi
[1; 1] y obtuvo
para la cantidad de puntos que se deseen utilizar o, lo que es lo mismo, del grado del
P0 (x) = 1
1
P2 (x) = (3x2 1)
2
1 dk 2
Pk (x) = k
(x 1)k .
2 k! dxk
P1 (x) = x
1
P3 (x) = (5x3 3x)
2
g 2n 1,
g es el grado del
n = 2, es decir, con
donde
dos puntos de Gauss, podemos aproximar cualquier integral de polinomios cuyo grado sea menor
o igual a tres, pues se cumple que
Revisin: 08/2011
g = 3 2 2 1.
- 133 -
n
1
2
xi
x1
x1
x2
x1
x2
x3
x1
x2
x3
x4
x1
x2
x3
x4
x5
= 0.0000000000
= 13 = 0.5773502692
= 13 = 0.5773502692
= 0.7745966692
= 0.0000000000
= 0.7745966692
= 0.8611363116
= 0.3399810436
= 0.3399810436
= 0.8611363116
= 0.9061798459
= 0.5384693101
= 0.0000000000
= 0.5384693101
= 0.9061798459
Si el intervalo de integracin no es
[1; 1],
ci
c1
c1
c2
c1
c2
c3
c1
c2
c3
c4
c1
c2
c3
c4
c5
= 2.0000000000
= 1.0000000000
= 1.0000000000
= 0.5555555556
= 0.8888888889
= 0.5555555556
= 0.3478548451
= 0.6521451549
= 0.6521451549
= 0.3478548451
= 0.2369268850
= 0.4786286705
= 0.5688888889
= 0.4786286705
= 0.2369268850
I(f ) =
f (x) dx,
a
debemos hacer la siguiente transformacin lineal para poder aproximar con cuadratura de Gauss:
x=
ba
b+a
ba
t+
; I(f ) =
2
2
2
f (t) dt.
1
Finalmente, una cuestin a tener en cuenta es el error cometido al aproximar una integral
mediante cuadratura de Gauss. La expresin del error el intervalo
E=
donde
[a; b],
[1; 1]
22n+1 (n!)4
f 2n (),
(2n + 1)[(2n)!]2
[1, 1].
E=
(b a)2n+1 (n!)4 2n
f (),
(2n + 1)[(2n)!]2
E=
es proporcional a la derivada de
proporcional a la derivada cuarta
(b a)22+1 (2!)4 22
(b a)5 (2!)4 iv
f
()
=
f ().
(2 2 + 1)[(2 2)!]2
5(4!)2
= 2)
iv
por lo tanto, tambin para f () con
- 134 -
f iv (x) = 0
para cualquier
x,
[a, b].
Revisin: 08/2011
Al igual que para los mtodos anteriores, podemos pensar en un mtodo compuesto para
Gauss. Efectivamente, si dividimos el intervalo
[a; b]
Como hemos dicho, el mtodo es muy bueno para aproximar integrales sobre todo de
funciones polinmicas. El mtodo pierde practicidad si no conocemos la funcin (por ejemplo,
solo conocemos puntos), y si debemos programar una base de datos con todas las races de los
polinomios de Legendre con sus coecientes de peso.
ZZ
f (x; y)dA,
A
donde
d Z b
f (x; y)dx dy.
c
Integremos respecto a
f (x; y)dx
a
ba
[f (a; y) + f (b; y)] .
2
y.
d Z b
f (x; y)dx dy
ba
[f (a; y) + f (b; y)] dy
2
c
Z
ba d
[f (a; y) + f (b; y)] dy
2
c
Z d
Z d
ba
f (a; y)dy +
f (b; y)dy
2
c
c
f (a; y)dy
c
f (b; y)dy
c
dc
[f (a; c) + f (a; d)]
2
dc
[f (b; c) + f (b; d)] .
2
dZ b
f (x; y) dx dy
c
(b a)(d c)
[f (a; c) + f (a; d) + f (b; c) + f (b; d)] .
4
En denitiva, podemos obtener una aproximacin de una integral mltiple, en este caso
doble, mediante la aplicacin del mtodo del trapecio en dos dimensiones. Tambin aplicando
Revisin: 08/2011
- 135 -
el mtodo de Simpson podemos obtener una aproximacin de dicha integral. En este caso, la
expresin es
dZ b
f (x; y) dx dy
c
hx hy
f (a; c) + f (a; d) + f (b; c) + f (b; d) +
9
c+d
a+b
c+d
a+b
+ f b;
+f
+4 f a;
;c + f
;d +
2
2
2
2
a+b c+d
,
+16 f
;
2
2
dc
hx = ba
2 y hy = 2 . Si reemplazamos esto ltimo en la expresin general y adems
a+b
c+d
denimos x0 = a, x1 =
2 ,x2 = b, y0 = c, y1 = 2 e y2 = d, tenemos que
Z dZ b
(b a)(d c)
f (x; y) dx dy
{f (x0 ; y0 ) + f (x0 ; y2 ) + f (x2 ; y0 ) + f (x2 ; y2 ) +
36
c
a
+4 [f (x0 ; y1 ) + f (x1 ; y0 ) + f (x1 ; y2 ) + f (x2 ; y1 ) + 4f (x1 ; y1 )]}.
donde
El error cometido por aproximar la integral mediante esta frmula est dado por:
ET
ES =
"
#
2 f (;
)
(b a)(d c) 2 2 f (;
hx
+ h2y
12
x2
y 2
"
#
4 f (;
(b a)(d c) 4 4 f (;
)
)
hx
+ h4y
90
x4
y 4
(Mtodo de Simpson),
que, como podemos observar, son muy parecidos a los vistos para el caso de integrales simples.
Estos mtodos tambin se pueden modicar para obtener las frmulas compuestas, similares a las vistas anteriormente. (Para ms detalles, vase [1].)
As como hemos aplicado los mtodos de trapecio y de Simpson, lo mismo podemos hacer
con la cuadratura de Gauss. Si aplicamos el mismo razonamiento para integrar segn
que
Z
a
baX
f (x; y) dx
ci f (xi ; y).
2
i=1
dZ
y,
obtendremos
baX
ci f (xi ; y) dy
2
c
i=1
n Z
baX d
ci f (xi ; y) dy
2
c
Z
f (x; y) dx dy
x tendremos
i=1
n
m
baXdcX
i=1
ci cj f (xi ; yj )
j=1
n
m
XX
badc
2
2
(b a)(d c)
4
ci cj f (xi ; yj )
i=1 j=1
n X
m
X
ci cj f (xi ; yj ),
i=1 j=1
con
xi =
yj
- 136 -
ba
b+a
ti +
2
2
dc
d+c
tj +
,
2
2
Revisin: 08/2011
ti
tj
n = m = 2
tenemos que
dZ b
f (x; y) dx dy
c
con
(b a)(d c)
[f (x1 ; y1 ) + f (x1 ; y2 ) + f (x2 ; y1 ) + f (x2 ; y2 )] .
4
x1 =
b+a
ba 1
+
2
2
3
x2 =
b+a
ba 1
+
,
2
2
3
y1 =
d+c
dc 1
+
2
2
3
y2 =
dc 1
d+c
+
.
2
2
3
Podemos ver que con este mtodo solamente tenemos que evaluar la funcin a integrar
en cuatro puntos, en cambio, con el mtodo de Simpson debemos evaluar la misma funcin en
nueve puntos. Este mtodo es muy utilizado por el Mtodo de los Elementos Finitos para obtener
integrales dobles.
Revisin: 08/2011
- 137 -
- 138 -
Revisin: 08/2011
Captulo 7
dM
+ p = 0);
dx
di
+ R i = V );
dt
= kA
dT
)
dx
2.
As, buena parte de los mtodos que empleamos para atacar un determinado problema
resultan ser soluciones analticas de ecuaciones diferenciales que se aplican en forma metdica y
que se han obtenido a partir de ciertas condiciones, que pueden ser iniciales o de borde. Un caso
bien conocido es la resolucin de sistemas hiperestticos en Esttica (tambin los isostticos),
en los que se aplican mtodos prcticos y numricos (como el mtodo de Cross) derivados de las
soluciones anliticas.
Del conjunto de ecuaciones diferenciales empezaremos por las ms sencilla, que son aquellas que involucran a la primera derivada, de las que basta conocer las condiciones iniciales. Si
bien en cualquier curso de Anlisis Matemtico se aprenden mtodos analticos para obtener las
soluciones de dichas ecuaciones, sabemos que no siempre son aplicables o no siempre obtendremos
soluciones analticas. Por ejemplo, y volviendo al caso de estructuras hiperestticas, no resulta
sencillo resolver la ecuacin diferencial para el caso de una carga concentrada. Es en estos casos
cuando los mtodos numricos se convierten en la nica herramienta para obtener algn tipo de
solucin aproximada que nos permita resolver el problema.
Existen muchos ejemplos de ecuaciones diferenciales con condiciones iniciales, entre los
cuales podemos mencionar los siguientes:
Dinmica de poblaciones.
dP
= kP ;
dt
1
2
Revisin: 08/2011
- 139 -
total. (Este modelo en realidad no es muy preciso, pues deja de lado otros factores como la
inmigracin, por ejemplo, pero en su momento daba una buena aproximacin al problema
demogrco.)
dA
= kA;
dt
en este caso, con
k < 0.
dT
= k(T Tm );
dt
con
k < 0,
donde
Tm
V = Aw h,
dh
Ah p
=
2gh.
dt
Aw
La mayora de los libros toma el caso del pndulo como el ejemplo tradicional de las
ecuaciones diferenciales ordinarias con valores iniciales. El modelo matemtico que representa
este fenmeno est dado por:
d2
g
= sen(),
2
dt
L
donde
es la aceleracin de la gravedad,
L,
respecto de la vertical. Este ejemplo suele linealizarse para el caso de ngulos muy pequeos,
pues se cumple que
sen() = tan() = ,
d2
g
= ,
2
dt
L
modelo que en realidad est representado con una ecuacin diferencial de segundo orden.
Otro ejemplo de la ingeniera civil en el mbito del anlisis estructural es la ecuacin del
esfuerzo normal en una barra, que se dene como
dN
= t(x);
dx
donde
t(x)
En lo que sigue veremos, primero, las condiciones para que la solucin de una ecuacin
diferencial ordinaria tenga solucin nica, y en segundo trmino, varios mtodos para resolver
numricamente este tipo de ecuaciones.
- 140 -
Revisin: 08/2011
dy
= f (t, y)
dt
f (t, y) D <2 ,
Una funcin
con
con
atb
y(a) = y0 .
satisface que
f (t, y)
y L,
para todo
(t, y) D.
Para que una ecuacin diferencial tenga solucin nica debe satisfacer el siguiente teorema.
Teorema 7.1.
f (t, y)
f (t, y)
Sea
continua en
D,
tal que
inicial
dy
= f (t, y)
dt
y(t) para a t b.
con
en la variable
atb
y(a) = y0
Por lo tanto, toda ecuacin diferencial con valor inicial que cumpla con la condicin de
Lipschitz tiene solucin nica.
dy
= f (t, y)
dt
con
atb
y(a) = y0
> 0, existe una constante positiva k() con la propiedad de que siempre
|0 | < , y un (t) que sea continuo, con (t) < en [a; b], el problema tiene solucin
nica z(t); es decir,
Para cualquier
que
dz
= f (t, z) + (t)
dt
con
atb
z(a) = y0 + 0 ,
con
a t b.
original no cambia la esencia del mismo. El siguiente teorema dene la condicin de problema
bien planteado.
Teorema 7.2.
Sea
dy
= f (t, y)
dt
con
atb
y(a) = y0
Revisin: 08/2011
- 141 -
dy
= f (t, y).
dt
Desarrollamos por Taylor la funcin
y(t + h):
y(t + h) = y(t) + y 0 (t) h + y 00 (t)
Como
h2
+ ... .
2
h2
+ ... .
2
ba
h=
,
N
donde
[a; b],
denamos el paso
ti+1 = ti + h.
como
As, nuestra
h2
+ ... .
2
h2
,
2
i [ti ; ti+1 ].
Puesto que lo que buscamos es una aproximacin de
y(ti ),
deninmosla como
wi ,
sin
wi+1 = wi + h f (ti ; wi ),
para
i = 0; 1; . . . ; N 1.
que
h2
+ ... ;
2
h2
+ ... .
2
h2
,
2
i [ti ; ti+1 ].
En forma anloga al mtodo anterior, lo que en realidad buscamos es una aproximacin
de
y(ti+1 ),
i = 0; 1; . . . ; N 1.
- 142 -
Revisin: 08/2011
Estabilidad de la solucin
Analicemos ahora qu pasa con la estabilidad numrica de ambos mtodos. Si consideramos que los valores de
wi
wi+1
f
= i GEe ;
= i 1 + h
y
Mtodo explcito:
i+1
Mtodo implcito:
i+1 = i
1
f
1h
y
= i GEi ;
|G| < 1,
i+1
i ,
sean menores a
es decir:
f
|GEe | = 1 + h < 1;
y
1
< 1.
|GEi | =
f
1 h y
2 < h
Si suponemos
h > 0,
f
< 0.
y
y < 0
h < f
y,
f
< 0,
y
hy
f
, el mtodo
y
pero tambin si
h>
2
f
y
3.
La desventaja del mtodo implcito est en que para que sea fcil implementarlo,
requiere trabajar algebraicamente la expresin para transformarla en una explcita, modicarla
de tal forma que no aparezca
wi+1
la implementacin del mtodo implcito no siempre resulta sencilla. Cuando esto ocurre, suele
complementarse con algn mtodo para obtener races de ecuaciones, generalmente el mtodo de
las aproximaciones sucesivas, pues ya se tiene la funcin
g(t)
= wi + h f (ti ; wi )
wi+1
Revisin: 08/2011
2
f
y
f
y
> 0.
- 143 -
,
wi+1
wi+1
wi+1 ,
que
corrige el valor antes obtenido. La combinacin de estos dos mtodos se conoce como mtodo
predictor-corrector de Euler
4.
wi+1
= wi + h f (ti ; wi )
0
wi+1
= wi + h f (ti ; wi+1
)
n+1
n
wi+1
= wi + h f (ti ; wi+1
),
iteracin que podemos truncar cuando
n+1
n
w
i+1 wi+1 < T OL
5.
Si bien los mtodos de Euler son bastante sencillos de implementar, los resultados que
se obtienen no son buenas aproximaciones de nuestro problema. Se los usa solamente como
introduccin a los mtodos numricos y para el anlisis del error.
x 1
y para cualquier
{ai }ki=0
0 (1 + x)m emx .
a0 t/s,
y se
cumple que
ai+1 (1 + s)ai + t,
para cada
i = 0; 1; 2; . . . ; k,
entonces
ai+1 e
(i+1)s
t
t
a0 +
.
s
s
Teorema 7.3.
Sea
f (t, y)
en
M,
tal que
|y 00 (t)| M
para toda
t [a; b].
Si
y(t)
es la solucin nica
dy
= f (t, y)
dt
y los
w0 , w1 , . . . , wN
con
atb
y(a) = y0 ,
|y(ti ) wi |
i
h M h L(ti a)
e
1 .
2L
Este mtodo no suele estar incluido en los libros de texto, posiblemente porque no mejora la aproximacin de
una manera signicativa. Una excepcin es [8].
5
En [8] hay una demostracin para algunos casos particulares, en la cual alcanza con dos iteraciones, sin
n+1
n
necesidad de analizar si wi+1
wi+1
< T OL.
- 144 -
Revisin: 08/2011
Orden de convergencia
El error que acabamos de analizar es el error global, pues hemos estimado una cota del
error entre el valor real (o exacto) y la aproximacin por un mtodo numrico. Sin embargo, los
mtodos numricos suelen denirse segn el error local, es decir, el error entre dos iteraciones
sucesivas. Este error, en el mtodo de Euler, est dado por:
eL =
y(ti+1 y(ti )
f [ti ; y(ti )].
h
Como vimos, el mtodo explcito de Euler se puede obtener a partir de una desarrollo de
Taylor, del cual resulta que
h2 00
h2
y (ti ) + . . . = y(ti ) + hf [ti ; y(ti )] + f 0 [ti ; y(ti )] + . . . ;
2
2
por lo tanto
y(ti+1 ) y(ti )
f [ti ; y(ti )] =
h
h 0
f [; y()]
2
h 0
f [; y()],
2
eL =
con
[ti ; ti+1 ], lo que muestra que el error local del mtodo de Euler es O(h), es decir, tiene un
orden de convergencia lineal. Con un anlisis similar podemos demostrar que el mtodo implcito
es del mismo orden de convergencia. Y dado que ambos mtodos son de convergencia lineal, lo
mismo podemos decir del predictor-corrector.
h2 00
h3
hn (n)
hn+1 (n+1)
y (ti ) + y 000 (ti ) + . . . +
y (ti ) +
y
().
2!
3!
n!
(n + 1)!
d y(t)
= y 0 (t) = f (t; y), y(ti ) = yi
dt
y(ti+1 ) = yi+1 ,
yi+1 = yi + h f (ti ; yi ) +
h2 0
h3
hn
hn+1 (n)
f (ti ; yi ) + f 00 (ti ; yi ) + . . . + f (n1) (ti ; yi ) +
f (; y()).
2!
3!
n!
(n + 1)!
f (t; y).
yi+1
a partir de un polinomio de
donde
de
hn+1 (n)
f (; y()),
(n + 1)!
de
y(t)
h 0
h2
hn1 (n1)
f (ti ; yi ) + f 00 (ti ; yi ) + . . . +
f
(ti ; yi ),
2!
3!
n!
- 145 -
hni
. (ti ; yi ) =
n
X
h(i1)
i!
i=1
Por ejemplo, para
h2i
n=2
f (i1) (ti , yi ).
tenemos:
h f (t; y)
h f (t; y)
+
(ti ; yi ) = f (ti ; yi ) +
f (t; y)
.
2
t
2
y
ti ;yi
ti ;yi
Como hemos visto, el error cometido al resolver la ecuacin diferencial aplicando este
esquema es el primer trmino que dejamos de considerar en
E=
hn+1 (n)
f [; y()]
(n + 1)!
con
[ti ; ti+1 ],
eL =
y(ti+1 ) y(ti )
f [ti ; y(ti )];
h
eL =
con
[ti ; ti+1 ].
hn
f (n) [i ; y(i )],
(n + 1)!
n,
(Podramos armar mtodos de Taylor de orden superior implcitos, aunque de escasa utilidad,
dado que deberamos transformar algebraicamente el algoritmo para obtener una formulacin
explcita.)
y(t)
(o de
f (t, y)),
algo que no siempre es fcil de hacer. Eso obligara en muchos casos a programar algoritmos
particulares segn el problema que enfrentemos, lo que le quita generalidad.
Un segundo problema est relacionado directamente con la facilidad para obtener las
derivadas de la funcin
f (t; y).
puede
ser muy complicado obtener las derivadas de mayor orden, perdindose la capacidad de obtener
rpidamente una aproximacin de la solucin buscada.
Es por eso que existen otros mtodos para aproximar la solucin de una ecuacin diferencial que consiguen rdenes de convergencia similares a los de Taylor pero que no requieren la
obtencin de las derivadas de la funcin
f (t; y).
Para poder construir los mtodos de Runge-Kutta, nos basaremos en el siguiente teorema.
Teorema 7.4.
Entonces, para
y sea
(t0 ; y0 ) D.
Revisin: 08/2011
tal que
f (t0 ; y0 )
f (t0 ; y0 )
+
Pn (t; y) = f (t0 ; y0 ) + (t t0 )
+ (y y0 )
t
y
(t t0 )2 2 f (t0 ; y0 )
2 f (t0 ; y0 )
+
+
(t
t
)(y
y
)
+
0
0
2!
t2
t y
(y y0 )2 2 f (t0 ; y0 )
+ ... +
+
2!
y 2
n
n
X
1
n
f (t0 ; y0 )
+
(t t0 )nj (y y0 )j nj j ,
n!
j
t
y
j=0
n+1
X n + 1
n+1 f (; )
1
(t t0 )n+1j (y y0 )j n+1j j .
Rn (t, y) =
(n + 1)!
j
t
y
j=0
A la funcin
para la funcin
a
Pn (t; y).
Esto es necesario pues los mtodos de Runge-Kutta se basan en aproximar el polinomio
de Taylor para una variable mediante polinomios de Taylor de dos variables.(Para ms detalles
de cmo se obtiene esta aproximacin, ver [1].)
Existen varios mtodos de Runge-Kutta que se clasican segn del orden de convergencia.
Los ms sencillos son los de orden 2, los que obtenemos a partir de del mtodo de Taylor de
segundo orden si hacemos lo siguiente:
f (t + ; y + ) = f (t; y) +
h f (t; y) h f (t; y)
+
f (t; y).
2 t
2 y
f (t + ; y + ) = f (t+; y+) +
Ahora igualemos
a1 f (t + , y + )
a1 f (t+; y+) + a1
con
f (t, y)
f (t, y)
+
+ ... .
t
y
f (t, y)
f (t, y)
h f (t; y) h f (t; y)
+ a1
= f (t; y) +
+
f (t; y).
t
y
2 t
2 y
a1 f (t, y) = f (t, y) a1 = 1
f (t, y)
h f (t, y)
h
a1
=
=
t
2! t
2
f (t, y)
h f (t, y)
h
a1
=
f (t, y) = f (t, y).
y
2 y
2
T h2i (ti , yi )
f (t, y):
T
Revisin: 08/2011
h2i
h
h
(ti , yi ) = f ti + , yi + f (ti , yi ) ,
2
2
Resumen de las Clases Tericas
- 147 -
y, entonces, nuestra aproximacin por mtodos de Taylor de orden superior podemos escribirla
as:
i = 0; 1; 2; . . . ; n 1.
T h2i (ti , yi ),
1.
a1 f (t, y) + a2 f (ti + , yi + ) =
w0 = y0
wi+1 = wi +
cuando
2.
a1 = a2 =
1
2,
=h
o
hn
f (ti ; wi ) + f [ti + h; wi + hf (ti ; wi )] ,
2
= h f (ti , wi ),
para
i = 0; 1; 2; . . . ; n 1.
wi+1
cuando
a1 =
1
4,
a2 =
3
4,
= 32 h
= 32 h f (ti , wi ),
para
i = 0; 1; 2; . . . ; n 1.
w0 = y 0
wi+1 = wi +
para
i
hh
f ti ; wi +f ti+1 ; wi+1 ,
2
i = 0; 1; 2; . . . ; n 1.
Paralelamente, los mtodos del Punto Medio y de Crank-Nicolson podemos obtenerlos
f (t; y)
en el intervalo
[ti ; ti+1 ],
dy = f (t, y)dt,
e integramos, obtenemos
yi+1
ti+1
dy =
yi
f (t, y)dt,
ti
ti+1
y(ti+1 ) = y(ti ) +
f (t, y)dt.
ti
h
h
y(ti+1 ) = y(ti ) + h f ti + ; y(ti ) + f ti ; y(ti ) ,
2
2
- 148 -
Revisin: 08/2011
wi+1
h
h
= wi + h f ti + ; wi + f (ti ; wi ) .
2
2
y(ti+1 ) = y(ti ) +
i
hh
f ti ; y(ti ) + f ti+1 ; y(ti+1 ) ,
2
wi+1 = wi +
h
[f (ti ; wi ) + f (ti+1 ; wi+1 )] .
2
Para obtener mtodos de mayor orden de convergencia, debemos aplicar el teorema 7.4.
Con l obtenemos uno de los mtodos ms usados para resolver ecuaciones diferenciales ordinarias, el de
para
i = 0; 1; 2; . . . ; n 1.
El mtodo de Runge-Kutta de orden 4 tiene un error local de truncamiento
que la funcin
y(t)
O(h4 ), siempre
R
R
y el Mathcad
tienen
R
desarrollados distintas funciones que aplican este mtodo. Por ejemplo, Mathcad
cuenta con
Este mtodo es tan preciso, que programas como el MatLab
rkfixed(y ;x1 ;x2 ;npoints;D) que resuelve ecuaciones diferenciales de primer orden
utilizando dicho mtodo, en la cual y es el valor inicial, x1 y x2 son los extremos del intervalo,
x2 x1
npoints es la cantidad de intervalos, y entonces h = npoints
, y D es la funcin f (x, y) que debemos
la funcin
resolver.
Este mtodo puede asociarse a la siguiente formulacin:
wi+1 = wi +
i
hh
f (ti ; wi ) + 4f ti+ 1 ; wi+ 1 + f (ti+1 ; wi+1 ) ,
2
2
6
O(h4 ).
dy
= f (t; y),
dt
w0 = y0
wi+1 = wi1 + 2h f (ti ; wi ),
Revisin: 08/2011
- 149 -
i = 1; 2; . . . ; n 1.
w1
El valor de
ximaciones que obtenemos por el mtodo del salto de rana son del mismo orden que las que
se obtienen por cualquier mtodo de Runge-Kutta de orden 2, es conveniente aproximar
w1
con alguno de esos mtodos. De todos modos, el mtodo del salto de rana es inestable para
determinado tipo de ecuaciones diferenciales.
Existen otros mtodos, muy utilizados, que mejoran la notoriamente la aproximacin que
podemos obtener.
Adams-Moulton.
En ambos casos, la idea es usar los puntos
wi ; wi1 ; . . .;wi+1p
para obtener el
wi+1 ,
los puntos
wi+1
wi .
p
wi
donde
wi1 ,
Mtodos de Adams-Bashforth
Para obtener el mtodo de Adams-Bashforth de orden 2 partamos de:
yi+1
ti+1
f (t, y)dt,
dy =
yi
ti
Z ti+1
y(ti+1 ) y(ti ) =
f (t, y)dt,
ti
ti+1
f (t, y)dt.
y(ti+1 ) = y(ti ) +
ti
R ti+1
Para aproximar
ti
ti+1
f ti ; y(ti ) f ti1 ; y(ti1 )
.
2
h
i
h
3f ti ; y(ti ) f ti1 ; y(ti1 ) .
2
i
hh
3f ti ; y(ti ) f ti1 ; y(ti1 ) .
2
buscamos es una aproximacin de y(ti+1 ), entonces
y(ti+1 ) y(ti ) +
Como siempre, lo que
el mtodo de
wi+1 = wi +
- 150 -
h
[3f (ti ; wi ) f (ti1 ; wi1 )] ,
2
Revisin: 08/2011
i = 1; 2; . . . ; n 1.
w1
wi+1 = wi +
para
h
[55f (ti ; wi ) 59f (ti1 ; wi1 ) + 37f (ti2 ; wi2 ) 9f (ti3 ; wi3 )] ,
24
i = 3; 4; . . . ; n 1.
w1 ; w2
w3
Mtodos de Adams-Moulton
Los mtodos de Adams-Moulton los obtenemos de forma anloga a la aplicada para los
mtodos de Adams-Bashforth. Por ejemplo, para obtener el de orden 2, planteemos el siguiente
f (t; y):
f ti+1 ; y(ti+1 ) f ti ; y(ti )
f (t; y) f ti+1 ; y(ti+1 ) +
(t ti+1 )
ti+1 ti
f ti+1 ; y(ti+1 ) f ti ; y(ti )
f ti+1 ; y(ti+1 ) +
(t ti+1 ).
h
ti+1
f ti+1 ; y(ti+1 ) f ti ; y(ti )
2
ti
i
hh
f ti+1 ; y(ti+1 ) + f ti ; y(ti ) .
2
y(ti+1 ) = y(ti ) +
i
hh
f ti+1 ; y(ti+1 ) + f ti ; y(ti ) ,
2
wi+1 = wi +
y(ti+1 ),
tenemos que
h
[f (ti+1 ; wi+1 ) + f (ti ; wi )] .
2
wi+1 = wi +
para
h
[9f (ti+1 ; wi+1 ) + 19f (ti ; wi ) 5f (ti1 ; wi1 ) + f (ti2 ; wi2 )] ,
24
i = 2; 3; . . . ; n 1.
w1
w2
En general, suelen ser ms precisos los mtodos de Adams-Moulton que los de AdamsBashforth. El de Adams-Moulton de orden 4 entrega resultados muy parecidos, en precisin, al
mtodo de Runge-Kutta de orden 4. Sin embargo, por una cuestin de sencillez al momento
de programar, los paquetes de software preeren incluir este ltimo y no el mtodo de AdamsR
Moulton de orden 4. Una excepcin parece ser la versin 14 del Mathcad , que dispone de
una funcin
Adams(init,x1,x2,npoints,D,[tol])
de acuerdo con la ayuda del programa, utiliza mtodos de Adams-Bashforth, aunque no especica
el orden. Los parmetros de la funcin son:
Revisin: 08/2011
- 151 -
init:
x1,x2:
npoints:
D:
h);
tol:
Tolerancia.
Tambin cuenta con una funcin para resolver Ecuaciones Diferenciales Ordinarias que
aplica mtodos de Adams en forma predenida (Odesolve([vector],x,b,[step])). Todas estas
funciones entregan, adems, una curva obtenida por interpolacin de los valores calculados.
h
[3f (ti ; wi ) f (ti1 ; wi1 )]
2
h
= wi +
f (ti+1 ; wi+1
) + f (ti ; wi ) ,
2
wi+1
= wi +
wi+1
para
i = 2; 3; . . . ; n 1
y donde el valor de
w1 = w1
Runge-Kutta de orden 2 o resolviendo en forma explcita la segunda ecuacin del mtodo. Uno
de los mtodos ms usados es el predictor-corrector de Adams de orden 4, cuya expresin es:
h
[55f (ti ; wi ) 59f (ti1 ; wi1 ) + 37f (ti2 ; wi2 ) 9f (ti3 ; wi3 )]
24
h
= wi +
9f (ti+1 ; wi+1
) + 19f (ti ; wi ) 5f (ti1 ; wi1 ) + f (ti2 ; wi2 ) ,
24
wi+1
= wi +
wi+1
para
i = 4; 5; . . . ; n 1
y donde
w1 = w1 , w2 = w3
w3 = w3
En estos mtodos tambin cabe la posibilidad de iterar con la frmula correctora hasta
obtener la solucin buscada. Por ejemplo, el predictir-corrector de Adams de orden 2 podemos
escribirlo como:
h
[3f (ti ; wi ) f (ti1 ; wi1 )]
2
h
= wi +
f (ti+1 ; wi+1
) + f (ti ; wi ) ,
2
h
n
= wi +
f (ti+1 ; wi+1
) + f (ti ; wi ) ,
2
wi+1
= wi +
0
wi+1
n+1
wi+1
h
[55f (ti ; wi ) 59f (ti1 ; wi1 ) + 37f (ti2 ; wi2 ) 9f (ti3 ; wi3 )]
24
h
= wi +
9f (ti+1 ; wi+1
) + 19f (ti ; wi ) 5f (ti1 ; wi1 ) + f (ti2 ; wi2 ) ,
24
h
n
= wi +
9f (ti+1 ; wi+1
) + 19f (ti ; wi ) 5f (ti1 ; wi1 ) + f (ti2 ; wi2 ) .
24
wi+1
= wi +
0
wi+1
n+1
wi+1
- 152 -
Revisin: 08/2011
n+1
n
w
i+1 wi+1 < T OL
o cuando
wn+1 wn
i+1
i+1
< T OL.
n+1
wi+1
wi+1
0
wi+1
n+1
wi+1
4
= wi3 + h 2f (ti , wi ) f (ti1 , wi1 + 2f (ti2 , wi2 ,
3
h
= wi1 +
f (ti+1 , wi+1
) + 4 f (ti , wi ) + f (ti1 , wi1 ) ,
3
h
n
f (ti+1 , wi+1 ) + 4 f (ti , wi ) + f (ti1 , wi1 ) .
= wi1 +
3
en el que tambin truncamos las iteraciones con los criterios ya vistos. Este mtodo es de orden
cuatro, pero no es de los ms usados pues no entrega mejores resultados que los mtodos de
Adams. (Para ms detalles, ver [1].)
y 0 (t) = y
con
atb
y(a) = y0 .
yi+1 yi + h yi ,
que al agrupar queda:
yi+1 (1 + h ) yi .
Como esto se repite para todas las iteraciones, podemos expresar cualquier iteracin
funcin del valor inicial
yi+1
en
y0 :
yi+1 (1 + h )i+1 y0 ,
y de
> 0:
yi+1
es el producto de
y0
Como este ltimo es dato del problema, se pueden dar dos posibilidades:
En este caso
yi+1 > yi ,
yi+1 ,
en cambio
i+1 = (1 + h) i .
Revisin: 08/2011
- 153 -
y.
(1 + h) i
(1 + h) i
i
i+1
=
=
= ,
yi+1
yi+1
(1 + h) yi
yi
vemos que tiende a ser constante, lo que no trae aparejado ningn inconveniente grave.
2.
< 0:
|yi+1 | |yi |
|1 h| 1.
Esto podemos formularlo as
1 1 h 1 h 2 h
2
.
Es evidente que en este caso no podemos elegir cualquier h, que depender de
. Estamos
yi+1 yi + h yi+1 ,
yi+1 h yi+1 yi
yi
.
yi+1
1 h
Nuevamente, cualquier
yi+1
que
yi+1
1
y0 .
(1 h)i+1
que resulta en
> 0: Tambin se cumple que yi+1 > yi , por lo que el error absoluto crece junto con yi+1 ,
y el error relativo tiende a ser estable.
2.
< 0:
|yi+1 | |yi |
1
1.
|1 + h|
Es evidente que esta condicin se cumple para cualquier valor de h, y por lo tanto, la
eleccin del paso no est condicionada.
Si hacemos un anlisis similar para los mtodos de Euler Modicado y de Crank-Nicolson,
ambos mtodos de Runge-Kutta de Orden 2, obtenemos resultados parecidos. Para el mtodo
de Euler Modicado, que es explcito, si
< 0,
> 0,
tenemos que
h
es decir, el paso est condicionado al valor de
es implcito, la situacin cuando
>0
2
,
<0
tenemos que
h 0.
Revisin: 08/2011
Los mtodos explcitos son ms sencillos para trabajar pero el paso depende de las caractersticas de la ecuacin a resolver;
Los mtodos implcitos son algo ms complicados para operar, pero no tienen complicacin
alguna para la eleccin del paso.
De este anlisis surge otra forma de clasicar a los mtodos:
Mtodos condicionalmente estables, aquellos en los que la estabilidad est condicionada a la eleccin del paso, generalmente mtodos explcitos, y;
Mtodos incondicionalmente estables, aquellos que no tienen ningn tipo de condicionamiento para su estabilidad, generalmente mtodos implcitos.
consistencia y la convergencia
consistente si
de los
lm
max
h0 1in|E(h)|=0
donde
E(h)
convergencia
est denida
como
lm
max
wi y(ti )
es el error global. Como hemos visto, para el mtodo de Euler tenemos que
|wi y(ti )|
i
hM h L(ti a)
e
1 ,
2L
i
hM h L(ti a)
e
1 = 0.
h0 2L
lm
De acuerdo con lo visto, para una ecuacin diferencial de primer orden con valores iniciales
denido por
dy
= f (t, y); a t b; y(a) = ,
dt
que aproximaremos con un mtodo que deniremos as
w0 = ,
wi+1 = wi + h (ti ; wi ; h),
con
h>0
(ti ; wi ; h)
Revisin: 08/2011
estable;
Resumen de las Clases Tericas
- 155 -
E(h),
entonces:
|yi wi |
E(h) (ti a) L
e
L
lm |E(h)| = 0
para
i = m, m + 1, . . . , n
lm |j y(tj )| = 0
para
j = 1; 2; . . . , m 1.
h0
h0
donde los
son los valores adicionales que deben calcularse para empezar a iterar.
d2 y
= f (t; y; y 0 )
d t2
con
dn y
= f (t; y; y 0 ; . . . ; y hn1i )
d tn
con
hn1i
dy
dt
dz
dt
con las mismas condiciones ya vistas:
= z(t, y)
= f (t, y, z).
z(a) = y 0 (a) = z0 .
explcito, y si hacemos wi = yi
v i = zi ,
wi+1 = wi + h vi
vi+1 = vi + h f (ti , wi , vi ).
- 156 -
Revisin: 08/2011
wi+1
vi+1
1 2
k )
2 1
1 2
k )
2 2
Este mismo concepto podemos aplicarlo si queremos usar algn otro mtodo, sea de paso
simple, sea de paso mltiple. En estos ltimos el esquema es ms sencillo, pues lo nico que
hay que cuidar es la formulacin para las distintas ecuaciones. As, la aplicacin del mtodo de
Adams-Bashforth de orden 2 resulta ser:
wi+1 = wi + h (3 vi vi1 )
vi+1 = vi + h [3 f (ti , wi , vi ) f (ti1 , wi1 , vi1 )] ,
obteniendo los valores de
wi1
vi1
primer orden.
Evidentemente, resolver ecuaciones diferenciales de orden superior con mtodos explcitos
no conlleva ms que una complicacin en la formulacin algebraica del mtodo elegido, sobre todo
en el caso de los mtodos de Runge-Kutta.
As como analizamos cmo aplicar los mtodo explcitos, veamos brevemente qu ocurre
con la aplicacin de mtodos implcitos. Supongamos ahora que para resolver la ecuacin diferencial de segundo orden aplicamos el mtodo de Euler implcito. El esquema quedar as:
wi+1 = wi + h vi+1
vi+1 = vi + h f (ti+1 , wi+1 , vi+1 ).
De nuevo, la formulacin es sencilla pero ahora depende del
0
el sistema. En efecto, si f (t, y, y ) no es lineal, tendremos la misma dicultad que habamos visto
anteriormente; debemos obtener
vi+1
1 h
wi+1
wi
=
0 1
vi+1
vi + h f (ti+1 , wi+1 , vi+1 )
entonces
1
h
wi+1
wi
=
2 h 1 + h
vi+1
vi + h t2i+1
Revisin: 08/2011
- 157 -
1
wi+1
1
h
wi
=
vi+1
2 h 1 + h
vi + h t2i+1
pero podemos aplicar cualquier mtodo de resolucin de ecuaciones lineales visto. En este caso
particular, podemos ver que para cualquier
0 < h < 1,
i.
yi+1 :
yi+1 = yi + yi0 h + yi00
Como
y 00 (t) = f (t; y; y 0 ),
h2
h3
h4
+ yi000 + y iv
+ ....
2!
3!
4!
h2
h3
h4
+ f 0 (ti ; yi ; yi0 )i + f 00 (ti ; yi ; yi0 )
+ ....
2!
3!
4!
y 0 (t),
0
yi+1
= yi0 + yi00 h + yi000
tenemos,
h2
+ ...,
2!
h2
+ ....
2!
0
yi+1
= yi0 + f (ti ; yi ; yi0 ) h + f 0 (ti ; yi ; yi0 )
Ambas series representan a la funcin y su primera derivada. Por lo tanto, si queremos obtener una aproximacin de ambas, truncamos las series de Taylor correspondientes y as
obtenemos dos ecuaciones.
h2
h3
+ f 0 [; y(); y 0 ()] ,
2!
3!
2
h
= yi0 + f (ti ; yi ; yi0 ) h + f 0 [; y(); y 0 ()] ,
2!
h2
,
2!
0
yi+1
yi0 + f (ti ; yi ; yi0 ) h.
Si denimos que
y i = wi
yi0 = vi ,
wi+1 = wi + vi h + f (ti ; wi ; vi )
h2
,
2!
vi+1 = vi + f (ti ; wi ; vi ) h.
Esta aproximacin sencilla es de convergencia lineal, similar a los mtodos de Euler para ecuaciones de primer orden. A partir de este tipo de formulacin obtenemos dos mtodos ms:
El
wi+1 = wi + vi h + f (ti ; wi ; vi )
vi+1
- 158 -
Revisin: 08/2011
wi+1 = wi + vi h +
vi+1
Ambos mtodos tiene la particularidad de ser implcitos, el de Taylor slo para la ecuacin
de la derivada primera, en tanto que el de Newmark lo es para las dos ecuaciones.
d2 y
yi+1 2yi + yi1
,
dt2
h2
aproximacin de yi+1 :
yi+1 2yi yi1 + h2 f (ti ; yi ; yi0 ),
es decir,
yi0 = vi .
yi0
wi+1 wi1
yi+1 yi1
vi =
,
2h
2h
con lo que evitamos tener que agregar un algoritmo para calcular dicha derivada.
An nos falta obtener
wi .
ejemplo:
h2
h2
w1 = w0 + v0 h + f (t0 ; w0 ; v0 ) .
2!
2!
h2
w1 = w0 + v0 h + f (t0 ; w0 ; v0 ) ;
2!
wi+1 wi1
2
wi+1 = 2wi wi1 + h f ti ; wi ;
;
2h
que se conoce como
Mtodo de Nystrm
que como podemos ver, es un mtodo implcito. As planteado, el mtodo tiene un orden de
convergencia cuadrtico, pues:
d2 y
dt2
dy
dt
=
=
y
()
,
h2
12
yi+1 yi1
h2
y 000 () .
2h
6
Revisin: 08/2011
- 159 -
d u1
dt
d u2
dt
= f1 (t, u1 ; u2 ; . . . ; un )
= f1 (t, u1 ; u2 ; . . . ; un )
.
.
.
d un
= fn (t, u1 ; u2 ; . . . ; un )
dt
a < t < b; u1 (a) = 1 ; u2 (a) = 2 ; . . . ; un (a) = n .
Ahora, en lugar de transformar la ecuacin diferencial, lo que tenemos son varias funciones
ui (t)
y(t)
dependa de
ui (t)
uj (t),
que es anlogo
z(t).
En consecuencia, podremos aplicar cualquiera de los mtodos vistos para resolver ecuaciones diferenciales ordinarias de primer orden, cuidando de armar la formulacin algebraica
para cada
ui (t)).
j = 0; 1; . . . ; m
ba
h=
.
m
ui,j
con
d2 y
= f (t, y, y 0 ),
dt2
en
[a, b];
similar a lo visto, pero con las condiciones en los extremos del intervalo:
y(a) = ; y(b) = .
Como podemos ver, con estas condiciones no parece posible utilizar los mtodos estudiados, ni siquiera transformando la ecuacin diferencial de segundo orden en un sistema de
ecuaciones diferenciales primer orden. Debemos buscar alguna forma que nos permita aproximar
nuestra ecuacin diferencial y obtener los resultados de la funcin
y(t).
EI
- 160 -
d4 w
p(x) = 0.
dx4
Revisin: 08/2011
que requiere de cuatro condiciones de contorno para ser resuelta. Estas condiciones pueden ser:
1. Condiciones de borde esenciales (Dirichlet);
2. Condiciones de borde naturales (Neumann);
3. Una combinacin de ambas.
Por ejemplo, para una viga doblemente empotrada, de longitud
L, como se ve en la gura,
w0 (L) = 0.
Este es el tpico caso de condiciones de borde esenciales (o forzadas), puesto que las
restricciones estn asociadas a los desplazamientos y los giros en los extremos de la viga. Esta
ecuacin no es posible resolverla aplicando en forma directa los mtodos mencionados anteriormente. En consecuencia, para poder aproximar una solucin, debemos buscar alguna forma de
adaptar los mtodos vistos para tener en cuenta estas condiciones de frontera o de contorno.
Veremos a continuacin dos mtodos que pueden usarse para resolver este tipo de ecuaciones diferenciales. Empezaremos por el ms sencillo, el mtodo del disparo lineal, que hace uso
de los mtodos ya estudiados.
y(0) = y0 ; y(1) = y1 .
Como vemos, no tenemos dos condiciones iniciales, sino una para el valor inicial y otra
para el valor nal que debe tomar la funcin buscada.
Para encarar el problema haremos una modicacin. Resolveremos el siguiente problema
de valores iniciales, suponiendo que lo que buscamos es una aproximacin a
u(ti ).
y(t)
que llamaremos
u01 (0).
u01 (0) = 1 .
Revisin: 08/2011
u1 (1)
igual a
1 ,
que
y1 .
Resumen de las Clases Tericas
- 161 -
Nuevamente, resolvamos con Euler un sistema similar pero proponiendo que u2 (0) = y0
u02 (0) = 2 . Obtendremos otro valor para u(1), es decir, un u2 (1) = 2 , probablemente distinto
a y1 .
En consecuencia, tendremos dos aproximaciones de y1 . Para continuar, vamos a suponer
que existe una relacin lineal entre u(ti ), u1 (ti ) y u2 (ti ). Esta relacin lineal estar dada por:
u(ti ) u1 (ti )
u2 (ti ) y0
=
.
y1 1
2 y0
Para calcular
u(t)
u(ti ) = u1 (ti ) +
y1 1
[u2 (ti ) y0 ] .
2 y0
Para entender como opera el mtodo, veamos un ejemplo prctico, resolviendo una
ecuacin diferencial de orden 2.
Ejemplo
Resolver la siguiente ecuacin diferencial ordinaria con valores de frontera, aplicando el
mtodo de Euler:
y 00 = 4(y x); 0 x 1;
con los valores de contorno:
y(0) = 0; y(1) = 2.
Para resolver la ecuacin por el mtodo de Euler plantearemos primero que
y 0 (x) = z(x),
y 0 (x) = z(x)
z 0 (x) = 4(y x)
Si aplicamos el mtodo de Euler, y hacemos
ui = y(xi )
ciones:
ui+1 = ui + h zi
zi+1 = zi + h 4(ui xi )
Como vemos, debemos resolver dos ecuaciones para obtener el valor de
ui+1 .
Por ello,
en primer trmino, vamos a resolver el sistema obteniendo, primero, valores para unas funciones
v1 (x)
v1 (0) = 0; z1 (0) = 0
por lo que el sistema a resolver ser:
v1i+1
= v1i + h z1i
z1i+1
= z1i + h 4(v1i xi )
v2 (x)
v2 (0) = 0; z2 (0) = 1,
y el sistema a resolver ser:
- 162 -
v2i+1
= v2i + h z2i
z2i+1
= z2i + h 4(v2i xi )
Revisin: 08/2011
xi
0, 00
0, 10
0, 20
0, 30
0, 40
0, 50
0, 60
0, 70
0, 80
0, 90
1, 00
z1,i
0, 000
0, 000
0, 040
0, 120
0, 242
0, 408
0, 624
0, 896
1, 234
1, 647
2, 150
v1,i
0, 000
0, 000
0, 000
0, 004
0, 016
0, 040
0, 081
0, 143
0, 233
0, 356
0, 521
z2,i
1, 000
1, 000
1, 000
1, 000
1, 000
1, 000
1, 000
1, 000
1, 000
1, 000
1, 000
v2,i
0, 000
0, 100
0, 200
0, 300
0, 400
0, 500
0, 600
0, 700
0, 800
0, 900
1, 000
ui
0, 000
0, 252
0, 504
0, 752
0, 992
1, 220
1, 432
1, 621
1, 784
1, 913
2, 000
y(xi )
0, 000
0, 156
0, 313
0, 476
0, 645
0, 824
1, 016
1, 225
1, 455
1, 711
2, 000
e
0, 0
9, 7 102
1, 9 101
2, 8 101
3, 5 101
4, 0 101
4, 2 101
4, 0 101
3, 3 101
2, 0 101
0, 0
Con los valores para cada una de las soluciones y por cada iteracin, calcularemos los
valores denitivos mediante la expresin:
ui = v1i +
y(1) v1 (1)
[v2 y(0)]
v2 (1) y(0) i
y(x) = e2 e4 1
Los valores de
u(xi )
1
e2x e2x + x.
101 , un
error O(h).)
del orden de
tiene un
resolverse mediante alguno de los mtodos ya vistos. Est claro que estamos limitados en la
eleccin de nuestro intervalo
h,
y(xi+1 )
y(xi1 )
h2 00
h3
h4
y (xi ) + y 000 (xi ) + y (iv) (i+ ),
2
6
24
- 163 -
i+
en
(xi ; xi+1 ),
en
(xi1 ; xi ).
h3
h4
h2 00
y (xi ) y 000 (xi ) + y (iv) (i ),
2
6
24
Si
00
sumamos ambas expresiones y despejamos y (xi ), tendremos:
y 00 (xi ) =
i
h2 h (iv) +
1
(iv)
y
(
)
+
y
(
)
.
[y(x
)
2y(x
)
+
y(x
)]
i+1
i
i1
i
i
h2
24
y 00 (xi ) =
para alguna
en
h2 (iv)
1
[y(x
)
2y(x
)
+
y(x
)]
y (i ),
i+1
i
i1
h2
12
(xi1 ; xi+1 ).
1
h2 (iv)
[y(x
)
2y(x
)
+
y(x
)]
y (i ) = 4 [y(xi ) xi ] .
i+1
i
i1
h2
|12 {z }
O(h2 )
y(xi1 ) 2(1 + 2h2 )y(xi ) + y(xi+1 ) = 4h2 xi ,
1 2(1 + 2h2 )
1
0
0
...
0
0
1
2(1 + 2h2 ) 1
0
...
0
..
.
..
..
..
..
..
. .
A = .
.
.
.
.
.
.
0
...
0
1 2(1 + 2h2 )
1
0
0
...
0
0
1
2(1 + 2h2 ) 1
como
ba
N siendo
podemos
Si hacemos que
yi = y(xi )
y0
y1
y = ... .
yN 1
yN
4h2 x1
4h2 x2
.
.
B=
.
.
2
4h xN 2
4h2 xN 1
- 164 -
Revisin: 08/2011
y0 =
1
0
0
1 2(1 + 2h2 )
1
0
1
2(1
+
2h2 )
..
..
..
.
.
.
0
.
.
.
0
0
...
0
0
0
0
0
0
1
..
1
0
0
y0
2
0
y1 4h2 x1
0 y2 4h x2
.
. .
..
..
.
.
.
=
.
.
.
.
.
.
2
2
2(1 + 2h )
1
0
yN 2 4h xN 2
2
2
4h xN 1
yN 1
1
2(1 + 2h ) 1
yN
...
0
1
0
0
0
h =
...
...
...
2 1 + 2(0, 1)2 = 2 (1 + 0, 02) = 2, 04;
y en el vector de trminos independientes:
i [1, N 1].
1
0
0
0
0
0
0
0
0
0
1 2, 04
1
0
0
0
0
0
0
0
0
1
2,
04
1
0
0
0
0
0
0
0
0
1
2, 04
1
0
0
0
0
0
0
0
1
2, 04
1
0
0
0
0
0
0
0
0
1
2, 04
1
0
0
0
A = 0
0
0
0
0
1
2, 04
1
0
0
0
0
0
0
0
0
0
1
2, 04
1
0
0
0
0
0
0
0
0
1
2, 04
1
0
0
0
0
0
0
0
0
1
2, 04
0
0
0
0
0
0
0
0
0
0
0
0
0 ,
1
1
0
0, 004
0, 008
0, 012
0, 016
B = 0, 020 .
0, 024
0, 028
0, 032
0, 036
2
Revisin: 08/2011
- 165 -
Al resolver el sistema de ecuaciones por alguno de los mtodos numricos que hemos
estudiado en el captulo 2, obtenemos el siguiente vector solucin:
0, 000
0, 156
0, 313
0, 476
0, 645
y = 0, 824 .
1, 017
1, 225
1, 455
1, 711
2, 000
Si lo comparamos con el vector
- 166 -
Revisin: 08/2011
Bibliografa
Bibliografa
[1] Burden, R.L. & Faires, J.D. Anlisis Numrico. Sexta Edicin, International Thomson, 1998.
[2] Gavurin, M.K. Conferencias sobre los mtodos de clculo. Editorial Mir, 1973.
[3] Goldberg, D. What every Computer Scientist should know about Floating-Point Arithmetic.
ACM Computing Surveys, March 1991.
[4] Gonzlez, H. Anlisis Numrico, primer curso. Primera Edicin, Nueva Librera, 2002.
[5] Higham, N.J. Accuracy and Stability of Numerical Algorithms. SIAM, 1996.
[6] Higham, N.J. How accurate is Gaussian Elimination. Numerical Analysis 1989, Proceedings
of the 13th Dundee Conference, volume 228 of Pitman research Notes in Mathematics.1990.
[7] Higham, N. J. The numerical stability of barycentric Lagrange interpolation. IMA Journal
of Numerical Analysis. 2004.
[8] Marshall, G. Solucin numrica de ecuaciones diferenciales, Tomo I. Editorial Revert S.A.,
1985.
[9] Saad, Y. Iterative Methods for Sparse Linear Systems. Second Edition, 2000.
[10] Samarski, A.A. Introduccin a los mtodos numricos. Editorial Mir, 1986.
[11] Shewchuk, J. R. An introduction to the Conjugate Gradient Method without the agonizing
pain. Edition
1 41 .
[12] Trefethen, L.N. The Denition of Numerical Analysis. SIAM News. November 1992.
[13] Trefethen, L.N. Numerical Analysis. Princeton Companion to Mathematics, to appear.
[14] Trefethen, L.N. & Berrut, J.P. Barycentric Lagrange Interpolation. 2004.
[15] Zill, D. G. Ecuaciones diferenciales con aplicaciones de modelado. Sptima Edicin, International Thomson, 2002.
Revisin: 08/2011
- 167 -
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: