Documente Academic
Documente Profesional
Documente Cultură
Cálculo Numérico I
1 Sistemas de numeración
Base 8 Base 16
000 0 0000 0 1000 8
001 1 0001 1 1001 9
010 2 0010 2 1010 A
011 3 0011 3 1011 B
100 4 0100 4 1100 C
101 5 0101 5 1101 D
110 6 0110 6 1110 E
111 7 0111 7 1111 F
∞
!
X
x=σ· xk 10−k · 10N
k=1
t
!
X
FLO(x) = σ · xk · 10−k · 10N = σ · x̄ · 10N
k=1
FLO
3 Error
E(xa ) = xa − x.
E(xa ) xa − x
Er (xa ) = =
x x
Hemos de señalar en primer lugar el error de cálculo, es decir el 2. Desviación del modelo con la
realidad.
error que comete el calculista por equivocación. Incluimos aquı́ los
errores de programación. La forma de evitar este tipo de error es la 3. Errores de observación en los
datos numéricos.
verificación de los cálculos y la comprobación de los programas. El
verificar un programa completo puede resultar una tarea compleja 4. Errores debidos al funciona-
miento de la máquina.
y poco agradable. Tal vez la mejor estrategia sea la de dividir el
programa en partes (subrutinas) y comprobar separadamente cada 5. Errores intrı́nsecos de los mé-
todos numéricos.
una de ellas experimentalmente con datos sencillos de los que es
fácil deducir el resultado esperado.
Al resolver problemas fı́sicos suelen darse dos tipos de errores.
Primeramente aquellos que proceden de la medición de los datos.
Los sistemas de medida nunca pueden ser exactos —en realidad,
según nuestros modelos, tratamos las más de las veces de medir
algo que consideramos un número real— y por tanto ya tendremos
una ı́nfima desviación de partida. En segundo lugar debemos tener
en cuenta que el modelo fı́sico que utilizamos —las ecuaciones que
modelan el experimento— suele obtenerse a través de aproxima-
ciones que simplifican las propiedades fı́sicas —linealización, ...—
y que por tanto producirán desviaciones respecto de la realidad.
Tanto unas como otras desviaciones no serán objeto de estudio por
parte del Cálculo Numérico sino que de ellas se ocupa el estudio
de la estabilidad del modelo —ecuaciones diferenciales, álgebra li-
neal. . . .
También debemos considerar los errores debidos al funcionamiento
de la máquina, entre los que debemos destacar los errores de re-
dondeo, la pérdida de significación, el ruido al evaluar una función,
y los llamados overflow y underflow.
De los errores de redondeo y del overflow y underflow ya hemos
hablado más arriba. En cuanto a los errores debidos a la pérdida
de significación en el número de dı́gitos, suelen aparecer al restar pérdida de significación
dos cantidades muy próximas. Supongamos que queremos evaluar
la función
√ √
f (x) = x[ x + 1 − x]
x f¯(x) f (x)
1 0’41421 0’414121
10 1’5434 1’5434
100 4’99
1000 15’8
10 000 50
100 000 100 158’114
1 000 000 0 499’999
x
f (x) = √ √
x+1+ x
1 − cos x
x2
que evite la diferencia entre dos números próximos que aparece en
el numerador cuando x está próximo a cero.
Por ruido al evaluar una función nos referimos a la indetermi- ruido al evaluar una función
nación que puede aparecer en los valores de una función cuando
se trata de analizar experimentalmente una propiedad cualitativa.
Por ejemplo, si tratamos de ver donde está el cero del polinomio
P (x) = x3 − 3x2 + 3x − 1 dando valores y utilizamos aritmética de
seis dı́gitos
10
Sn − S = Sn − (a1 + · · · + an )
= Sn−1 (1 + εn ) + an εn − (a1 + · · · + an−1 )
= ...
= a1 (ε2 + · · · + εn ) + a2 (ε2 + · · · + εn )
+ · · · + an−1 (εn−1 + εn ) + an εn .
11
Cálculo Numérico I
6 Métodos iterativos
La demostración del teorema anterior sugiere que para calcular
aproximadamente el valor del punto fijo de la aplicación F puede
recurrirse al siguiente proceso. Se parte de un punto cualquiera
x0 de E e iterativamente se van calculando los términos xn de la
sucesión por medio de la regla xn = F (xn−1 ). Tras cada cálculo se
estima si la aproximación que xn proporciona de x̄ es suficiente; en
caso afirmativo se detiene el proceso; en caso negativo se prosigue.
Si la función F está definida sobre un intervalo [a, b ] con valores en
[a, b ] y además tiene derivada que verifica |F ′ | ≤ c < 1 entonces es
contractiva en [a, b ]. Si además F ′ es continua entonces el error en
xn+1 puede estimarse por medio de
(xn − xn+1 )2
.
xn+1 − 2xn − xn−1
Este resultado es consecuencia de la siguiente proposición (véase
también la Sección 9 en la página 6).
Proposición 2. Sea F : [a, b] → [a, b] ∈ C 1 tal que |F ′ | ≤ c < 1.
Si x0 ∈ [a, b] y la sucesión (xn ) está definida por xn+1 = F (xn )
entonces se tiene que
x̄ − xn+1 xn+1 − xn
lim = lim = F ′ (x̄).
n x̄ − xn n xn − xn−1
xn+1 − xn F ′ (ξn ) − 1 ′
lim = lim ′ F (ξn−1 ) = F ′ (x̄).
n xn − xn−1 n F (ξn−1 ) − 1
7 El método de Newton
Como ya se ha explicado más arriba, el problema de hallar la
solución de la ecuación f (x) = 0 en un intervalo [a, b] puede trans-
formarse en el de hallar el único punto fijo de una aplicación con-
tractiva F . Esta función F puede elegirse de distintas formas.
Suponiendo que nuestra función de partida f es derivable, una
condición suficiente para que la aplicación F sea contractiva en
el intervalo [a, b] es que |F ′ | ≤ c < 1 en el mismo intervalo. Si
elegimos
F (x) = x + k(x)f (x)
como se ha sugerido más arriba y tratamos que |F ′ (x)| sea lo menor
posible en un intervalo de x̄, una posible elección serı́a aquella que
anulara |F ′ | en el punto x̄. Dado que f (x̄) = 0 se tiene que F ′ (x̄) =
1 + k(x̄)f ′ (x̄). Eligiendo k(x) = − f ′1(x) se verifica esta condición.
Se tendrá entonces F (x) = x − ff′(x)(x)
, que por continuidad será
una aplicación contractiva en un intervalo que contiene a x̄. El
método de Newton consiste en comenzar con un valor x1 próximo
a la solución (una solución aproximada) y mejorar su aproximación
por medio de
f (xn )
xn+1 = xn − , n = 1, 2, . . .
f ′ (xn )
el proceso se para cuando, para nuestros propósitos, no podamos
distinguir la diferencia entre dos valores xn consecutivos.
Ejemplo 7.1. Resuelve la ecuación x2 −x−1 = 0. Tiene una solución
en el intervalo [1, 2]. La función de iteración será
x2 − x − 1 x2 + 1
F (x) = x − = .
2x − 1 2x − 1
Comenzamos la iteración con x1 = 1′ 5. Obtenemos
1 1’500000
2 1’625000
3 1’618056
4 1’618034
5 1’618034
0 0’1
1 0’13
2 0’1417
3 0’14284777
4 0’1428571422
5 0’14285714285714
por tanto
1
|xn+1 − x̄| = |F (xn ) − F (x̄)| = |F ′ (x̄)||xn − x̄| + |F ′′ (ξ)||xn − x̄|2
2
2 1 ′′
|xn+1 − x̄| ≤ K|xn − x̄| donde K = sup |F (x)| |x ∈ I .
2
f (x0 )
x1 = x0 − ,
f ′ (x0 )
8 El método de la secante
Una vez vista la interpretación geométrica del método de Newton
podemos plantearnos el utilizar un método geométricamente pare-
cido en el cual en vez de utilizar como aproximación a la gráfica de
y = f (x) su tangente en un punto próximo al cero buscado, utilice-
mos la secante que pasa por dos de sus puntos también próximos a
este cero.
Supongamos que el intervalo [a, b ] aı́sla el cero buscado, que es un
cero simple, y por tanto f (a)f (b) < 0. Utilizando los valores a y
b como aproximaciones al cero buscado esperamos que una mejor
aproximación será la intersección de la recta que pasa por los puntos
(a, f (a)) y (b, f (b)) con el eje X. El valor de esta abscisa será
f (b)
c=b− (b − a)
f (b) − f (a)
x̄ − xn+1
1−
x̄ − xn x̄ − xn ′ 1 − F ′ (ξn )
= = F (ξn−1 ) (9.3)
x̄ − xn−1 1 − x̄ − xn 1 − F ′ (ξn−1 )
x̄ − xn−1
donde los puntos ξk caen en los intervalos que unen los puntos x̄ y
xk según el teorema del valor medio.
Si tomamos el lı́mite de la última fracción obtenemos, por con-
tinuidad de F ′ ,
lim dn = F ′ (x̄).
n
xn+1 − xn
dn = ≈ F ′ (x̄),
xn − xn−1
y entonces
x̄ − xn+1
x̄ − xn+1 = (x̄ − xn ) + (xn − xn+1 ) ≈ + (xn − xn+1 )
dn
1
(1 − )(x̄ − xn+1 ) = xn − xn+1
dn
dn
x̄ − xn+1 ≈ (xn − xn+1 )
dn − 1
De esta última expresión obtenemos la aproximación
dn
c ≈ xn+1 + (xn+1 − xn )
1 − dn
que es la llamada fórmula de extrapolación de Aitken. Este método
nos da a partir de los iterados (xn ) las correcciones (x̂n ); una vez
substituidas las dn obtenemos
(xn+1 − xn )2 xn+1 xn−1 − xn 2
x̂n+1 = xn+1 − = .
xn+1 − 2xn + xn−1 xn+1 − 2xn + xn−1
g(x)
F (x) = x − (x − x̄)
mg(x) + (x − x̄)g ′ (x)
F ′ (x) =
g(x) d g(x)
1− − (x − x̄)
mg(x) + (x − x̄)g ′ (x) dx mg(x) + (x − x̄)g ′ (x)
1
F ′ (x̄) = 1 − 6= 0
m
(10.4)
f (xn )
F (xn+1 ) = xn − m (10.5)
f ′ (xn )
ya que entonces, al repetir los cálculos de (10.4), obtendrı́amos
m
F ′ (x̄) = 1 − = 0.
m
O bien podrı́amos calcular el cero simple de f (m−1) .
El valor de m se puede determinar experimentalmente por medio de
la estimación de F ′ (x̄) a partir de los iterados. Resulta que, como
hemos visto anteriormente
xn+1 − xn
xn − xn−1
se estabilizan cerca de un valor λ; en caso afirmativo determinamos
el entero m por medio de m−1 = λ.
√m
Ejemplo 10.1. Cálculo de 2 como cero doble del polinomio x4 −
4x2 + 4 por diversos métodos.
3x4 − 4x2 − 4
Método de Newton: F (x) =
4x3 − 8x
x4 − 4
Newton doble: F (x) = 3
2x − 4x
2x3
Newton derivada: F (x) = 2
3x − 2
xk+1 xk−1 − x2k
Aitken (sobre Newton): x̂k+1 = .
xk+1 − 2xk + xk−1
Iniciamos todos los métodos con x0 = 1′ 5.
Newton Newton doble Newton der. Aitken
1’5 1’5 1’5
1’458333333 1’416666667 1’421052632
1’436607143 1’414225686 1’414262619 1’4129
1’425497619 1’414214593 1’414213565 1’413872357
1’419877922 1’414216893 1’414213565 1’414125283
1’417051391 1’414214181 1’414227626
xn+1 − xn
xn − xn−1
los tres primeros valores son: 0’5214, 0’5113, 0’5058; se estabilizan
sobre el valor λ = 0′ 5 por tanto m = 2, como ya sabı́amos.
11 El método de Muller
Consiste en sustituir la función f por un polinomio de segundo grado P (x) en un intervalo
que contenga la solución buscada y resolver P (x) = 0. Para ello se parte de tres puntos
x0 , x1 , x2 en dicho intervalo y se localiza la intersección de la cónica que pasa por (x0 , f (x0 )),
(x1 , f (x1 )), (x2 , F (x2 )) con el eje X: x3 . Se itera el proceso obteniéndose xn+1 con base en
xn−2 , xn−1 , xn .
Cálculo Numérico I
Interpolación
El objeto de este capı́tulo es el estudio de técnicas que permitan
manejar una función dada por medio de otra sencilla y bien deter-
minada que la aproxime en algún sentido.
El lector ya conoce la aproximación que de una función de clase
C k+1 proporciona su polinomio de Taylor de orden k en torno a
un punto. Sabemos que, en general, esta aproximación es buena
cerca del punto dado. Sin embargo, si queremos obtener una buena
aproximación de la función en todo un intervalo tenemos que re-
currir a otras técnicas.
Estudiaremos en primer lugar la interpolación polinómica y más
adelante la interpolación por medio de polinomios osculadores y
por splines.
Algunas otras posibilidades que no estudiaremos: interpolación
por funciones racionales, ajuste por mı́nimos cuadrados, series de
Fourier, wavelets.
12 Interpolación polinómica
Sea f (x) una función, que en todo este capı́tulo supondremos al
menos continua, definida sobre un intervalo [a, b ]. Ya sea porque
el calcular los valores de f requiere un cierto trabajo ya porque
la función f no es totalmente conocida —digamos que podemos
calcular experimentalmente unos cuantos valores de f — queremos
sustituir f por una función sencilla con la propiedad de coincidir con
f en ciertos puntos de [a, b ]. Nos ocuparemos en principio del caso
en el que la función sencilla que buscamos es un polinomio del menor
grado posible. Si el número de puntos distintos del intervalo [a, b ]
sobre los que queremos que el polinomio coincida con la función
es de k + 1 entonces siempre podremos encontrar un polinomio de
grado k.
13 Forma de Lagrange
Teorema 3 (Existencia y unicidad). Dados (x0 , y0 ), (x1 , y1 ),
. . . , (xn , yn ), puntos de R2 verificando la propiedad de que, si i 6= j,
xi 6= xj , existe un único polinomio Pn de grado menor o igual que
n que verifica ∀i = 0, 1, . . . , n, Pn (xi ) = yi .
toma el valor 1 en x = xj .
A partir de estos polinomios Lj es muy fácil construir el polinomio
buscado. Éste será
n
X
Pn (x) = yj Lj (x).
j=1
x(x − 2)
L0 (x) =
(−1)(−3)
(x + 1)(x − 2)
L1 (x) =
1(−2)
(x + 1)x
L2 (x) =
3·2
f (xn+1 ) − Pn (xn+1 )
C= .
(xn+1 − x0 )(xn+1 − x1 ) · · · (xn+1 − xn )
f (n+1) (ξ)
C=−
(n + 1)!
ası́
f (n+1) (ξ)
E(t) = P(x) − f (x) = − (t − x0 )(t − x1 ) · · · (t − xn )
(n + 1)!
y por tanto
1. n
X f (xi )
f [x0 , . . . , xn ] = Qn .
i=0 j=0,j6=i (xi − xj )
3. Si f ∈ C n [a, b] entonces
f (n) (x)
lim f [x0 , . . . , xn ] =
x0 ,...,xn →x n!
siempre que x0 , . . . , xn , x ∈ [a, b ].
3
|E(x)| ≤ M h4 , donde ahora M = sup |f iv (ξ)|.
128 ξ∈[x0 ,x3 ]
16 Interpolación osculatoria
Recordemos una de las formas en las que se obtiene el polinomio
de Taylor: dada una función f , de clase n, y su valor y los valores
de sus n primeras derivadas en un punto x0 hallar el polinomio del
menor grado posible que tiene estos mismos valores. Escribiendo
el polinomio en función de sus coeficientes (por simplicidad, en
potencias de x − x0 ) podemos determinarlos con los n + 1 datos y
por tanto el polinomio tendrá grado menor o igual que n.
Si en el la fórmula de Newton del polinomio interpolador de n + 1
puntos hacemos que todos ellos tiendan a uno, sea este x0 , observa-
mos, dadas las propiedades de las diferencias divididas, que nuestro
polinomio se convierte en el de Taylor.
Podemos imaginar cualquier situación intermedia en la que agru-
pemos los nodos en varias clases y todos los correspondientes a una
clase tiendan a uno dado. Obtenemos ası́ un polinomio interpo-
lador osculador , llamado también polinomio de Hermite en el cual polinomio interpolador osculador
se tienen un cierto número de nodos y en cada uno de estos se cono- polinomio de Hermite
x0 f (x0 )
f ′ (x0 )
f [x0 , x1 ] − f ′ (x0 )
x0 f (x0 )
x1 − x0
f ′ (x1 ) − 2f [x0 , x1 ] + f ′ (x0 )
f [x0 , x1 ]
(x1 − x0 )2
f ′ (x1 ) − f [x0 , x1 ]
x1 f (x1 )
x1 − x0
f ′ (x1 )
x1 f (x1 )
17 Splines
En todo lo anterior hemos aproximado una función dada por medio
de un polinomio de un cierto grado en todo un intervalo. Obser-
vando cualquiera de las fórmulas de error que hemos obtenido se
ve que éste depende de la longitud del intervalo [a, b ]. Por ejem-
plo, si el grado del polinomio es 2, una cota superior grosera del
error será proporcional a ( (b−a)
2
)3 . As , una estrategia para encon-
trar una aproximación a la función f podr a ser la de subdividir el
intervalo de partida [a, b ] y hallar en cada uno de los subinterva-
los resultantes un polinomio interpolador de grado bajo en vez de
aumentar el grado del polinomio interpolador en todo [a, b ].
El procedimiento anterior tiene el defecto de que si bien la función
global resultante es continua, en los puntos de unión de subinter-
valos consecutivos no será, generalmente derivable. Si se quiere
conseguir una función de aproximación que sea de orden C l y que
1 (x − xi )2 (x − xi−1 )2
s′i (x) = 2
Mi−1 + 21 Mi + Ai + Bi
xi−1 − xi xi − xi−1
1 (x − xi )3 1 (x − xi−1 )3
si (x) = Mi−1 + Mi +Ai (x−xi−1 )+Bi (x−xi )
6 xi−1 − xi 6 xi − xi−1
Si tomamos valores en los extremos:
1
f (xi−1 ) = (xi−1 − xi )2 Mi−1 + (xi−1 − xi )Bi
6
1
f (xi ) = (xi − xi−1 )2 Mi + (xi − xi−1 )Ai
6
Y de estas expresiones obtenemos
f (xi−1 ) 1
Bi = − (xi−1 − xi )Mi−1
xi−1 − xi 6
f (xi ) 1
Ai = − (xi − xi−1 )Mi
xi − xi−1 6
El sistema de ecuaciones que tenemos que resolver para determinar
las Mi lo obtenemos ahora de las condiciones que nos faltan por
usar: las derivadas primeras a la izquierda y a la derecha en cada
uno de los nodos interiores xi , i = 1, 2, . . . , n − 1, coinciden.
s′i (xi ) = s′i+1 (xi )
s′i (xi ) = 12 (xi − xi−1 )Mi + Ai + Bi
s′i+1 (xi ) = 12 (xi − xi+1 )Mi + Ai+1 + Bi+1
Por tanto
1 1 1
(xi − xi−1 )Mi−1 + (xi+1 − xi−1 )Mi + (xi+1 − xi )Mi+1
6 3 6
f (xi+1 ) − f (xi ) f (xi ) − f (xi−1 )
= −
xi+1 − xi xi − xi−1
Para i = 1, 2, . . . , n−1. Se obtiene ası́ un sistema de n−1 ecuaciones
y n + 1 incógnitas que queda por tanto indeterminado. Requerimos
añadir dos ecuaciones más para tener todas las si definidas.
Como se indica en el ejemplo 17.2, una de las formas de añadir estas
dos ecuaciones extra es poniendo M0 = 0 y Mn = 0. Se obtiene ası́
el llamado spline cúbico natural.
Otra solución es la del ejemplo 17.3, que consiste en prescribir
los valores de las derivadas primeras en los extremos del intervalo:
f ′ (x0 ) y f ′ (xn ). El resultado ası́ obtenido se denomina spline cúbico
completo.
Se deja como ejercicio el obtener las dos ecuaciones resultantes en
los Mi que completan el sistema lineal.
10
Cálculo Numérico I
Integración Numérica
La integral resuelve el problema de calcular el área bajo la gráfica de
una función positiva definida sobre un intervalo cerrado. El cálculo
elemental de funciones de una variable real proporciona un método
elegante de calcular la integral de una función. El teorema funda-
mental del cálculo nos dice que el problema de calcular la integral
de una función continua se reduce al de buscar una segunda función
cuya derivada sea la función dada, es decir una primitiva de ella.
Sin embargo el problema de hallar una primitiva de una función
dada puede resultar muy difı́cil si no imposible. De hecho sabemos
que existen funciones elementales —es decir, combinaciones alge-
braicas de funciones trigonométricas y logarı́tmicas y sus inversas—
2
cuyas primitivas no son expresables de esta forma (p. ej. e−x ). Por
esta razón es por la que estudiamos métodos numéricos que apro-
ximen el valor de la integral buscada. Ya la definición de integral
de Riemann proporciona un método de aproximación numérica: las
sumas de Riemann. Sin embargo su convergencia es muy lenta y
no resultan útiles para obtener resultados prácticos. Los métodos
numéricos que vamos a estudiar consisten en sustituir la función
dada por una aproximación suya y tomar como valor de la integral
de la función el valor de la integral de su aproximada.
Veremos en primer lugar los resultados que se obtienen aproxi-
mando la función por medio de un polinomio interpolador con es-
pecial énfasis en los casos lineal (regla del trapecio) y cuadrático
(regla de Simpson). A continuación estudiaremos las cuadraturas
de Gauss.
b−a 1
Tn f = [ f (x0 ) + f (x1 ) + · · · + f (xn−1 ) + 12 f (xn )].
n 2
El error que se comete al tomar Tn f en vez de If es
n
h3 X ′′
E(Tn f ) = Tn (f ) − I(f ) = f (ξj )
12 j=1
n
h2 1 X ′′ h2
= (b − a) f (ξj ) = (b − a)f ′′ (ξ), ξ ∈ (a, b).
12 n j=1 12
Este error puede estimarse asintóticamente de la siguiente manera:
( n
)
E(Tn f ) h X ′′
lim = lim f (ξj )
n→∞ h2 n→∞ 12 j=1
y ası́ se obtiene
h2 ′
E(Tn f ) ≈ [f (b) − f ′ (a)] ≡ Ẽ(Tn f )
12
Se dice que Ẽ(Tn f ) es una estimación asintótica del error E(f ).
Utilizando esta estimación asintótica del error se puede mejorar la
regla del trapecio con la llamada regla del trapecio corregida: regla del trapecio corregida
(b − a)2 ′
CTn (f ) = Tn f − 2
[f (b) − f ′ (a)].
12n
Ejemplo 18.1. Calcular por medio de la regla del trapecio la integral
Z 1
4dx
2
(= π).
0 1+x
(b − a)3 2
|E| ≤ 2
sup |f ′′ (x)| ≤ 2
12n x∈[a,b] 3n
buscamos n tal que 2(3n2 )−1 ≤ 5 · 10−3 es decir 102 ≤ 0′ 75 · n2 , es
suficiente tomar n = 12.
Aplicando la regla compuesta del trapecio con n = 12 y trabajando
con mantisa de 12 dı́gitos con una casio fx-3600G se obtiene:
19 Regla de Simpson
Thomas Simpson, 1710–1761
Si en vez de aproximar la función f linealmente se aproxima por
medio del polinomio cuadrático P2 que interpola a f con nodos en
los puntos a, c = (a + b)/2, b entonces el valor de la integral de f
sobre el intervalo [a, b ] se aproximará por medio de
Z b
Sf = P2 (x)dx
a
Y a esta última integral sı́ que puede aplicarse el teorema del valor
medio: d
dx f [a, b, c, x] = f [a, b, c, x, x]
Z b
= f [a, b, c, ξ, ξ] w(x)dx.
a
Obtenemos
f (4) (ξ) 4 b − a 5
E= ( ).
24 15 2
Nuevamente, si h = (b − a)/2 es grande el error será inadmisible.
Como hicimos en el caso de la regla del trapecio podemos aplicar
la regla de Simpson a trozos sobre el intervalo [a, b ]:
b−a
Sn f = [f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 )+
6n
n n
h5 X iv h4 1 X iv h4
E(Sn f ) = f (ξj ) = (b−a) f (ξj ) = (b−a)f iv (ξ).
90 j=1 90 2n j=1 180
(b − a)4 ′′′
CSn (f ) = Sn f − 4
[f (b) − f ′′′ (a)].
2880n
Ejemplo 19.1. Tratando ahora el ejemplo anterior
Z 1
4dx
2
0 1+x
96
|E(Sn f )| ≤ ;
90n4
buscamos n tal que
96
4
≤ 5 · 10−3
90n
20 Reglas de Newton–Cotes
En general las reglas de integración numérica que se obtienen por
medio de la interpolación polinómica —como las del trapecio y de
Simpson— reciben el nombre de reglas de Newton–Cotes. Para Roger Cotes, 1682–1716
obtenerlas se escribe el polinomio interpolador en su forma de La-
grange
Regla de Boole
George Boole, 1815–1864
2
I4 f = h[7f (x0 ) + 32f (x1 ) + 12f (x2 ) + 32f (x3 ) + 7f (x4 )]
45
El error en el caso de la regla de los tres octavos viene dado por
b
3 5 iv
Z
I3 f − f (x)dx = h f (ξ) ξ ∈ [a, b].
a 80
El error para la regla de Boole es
Z b
8 7 vi
I4 f − f (x)dx = h f (ξ), ξ ∈ [a, b].
a 945
donde
n
1
Z
Cn = − t2 (t − 1) . . . (t − n)dt.
(n + 2)! 0
donde
n
1
Z
Cn = − t(t − 1) . . . (t − n)dt.
(n + 1)! 0
21 Reglas Gaussianas
Las reglas de Newton–Cotes garantizan la integración exacta de
polinomios hasta un determinado grado: el error en las reglas im-
pares (trapecio, tres octavos,...) depende de la derivada de un orden
superior (segunda, cuarta,...) y por tanto la regla integra exacta-
mente polinomios hasta el mismo grado que indica la regla (primero,
tercero,...); el error en las reglas pares (punto medio, Simpson,
Boole,...) depende de la derivada de orden dos unidades por encima
de la regla (segunda, cuarta, sexta,...) y por tanto integra exacta-
mente polinomios polinomios hasta un grado por encima del orden
de la regla (primero, tercero, quinto,...).
A la vista de este comportamiento P vamos a buscar reglas de in-
tegración numérica de la forma wi f (xi ) que integren todos los
polinomios hasta un determinado grado, el mayor posible para el
número de sumandos elegidos para la regla. Obtendremos ası́ las
llamadas reglas Gaussianas o cuadraturas de Gauss. reglas Gaussianas
cuadraturas de Gauss
Si utilizamos un sólo nodo la regla resultante integrará exactamente
polinomios de grado menor o igual a uno: (normalizamos el cálculo
al intervalo [−1, 1]). Sea x0 el nodo y w0 el peso correspondiente, peso
Z 1 Z 1
dx = w0 , xdx = w0 x0 .
−1 −1
De aquı́ resulta x0 = 0, w0 = 2.
Si utilizamos dos nodos podemos integrar exactamente todos los
polinomios de grado menor o igual que tres:
I2 f = w1 f (x1 ) + w2 f (x2 )
I2 (1) = w1 + w2 = 2
I2 (x) = w1 x1 + w2 x2 = 0
I2 (x2 ) = w1 x21 + w2 x22 = 23
I2 (x3 ) = w1 x31 + w2 x32 = 0
Este sistema no lineal resulta√tener solución única. Ésta verifica
w1 = w2 = 1 y x1 = −x2 = − 3/3. Ası́
√ √
3 3
I2 (f ) = f (− ) + f( ).
3 3
En general y por el mismo procedimiento, utilizando n nodos pode-
mos integrar exactamente todos los polinomios de grado ≤ 2n − 1.
Para obtener los nodos y los pesos de In debemos resolver el sistema
no lineal
2 = w1 + · · · + wn
0 = w1 x1 + · · · + wn xn
2
3
= w1 x21 + · · · + wn x2n
(21.1)
... ... ... ...
2
2n−1
= w1 x12n−2 + · · · + wn xn2n−2
0 = w1 x12n−1 + · · · + wn xn2n−1
La resolución de este sistema no lineal no es en general sencilla, de
hecho no está claro a priori que el sistema tenga solución o que, en
caso de existir, ésta sea única.
Abordamos el problema de su resolución por otros medios. Su-
pongamos primeramente que existen los xi y que son distintos y
están en el intervalo [0, 1]. El polinomio Ln (x) = (x − x1 )(x −
x2 ) · · · (x − xn ) debe tener integral exacta por medio de la regla
de Gauss y por tanto esta debe ser cero, ya que Ln (xi ) = 0. Si
Ln (x) = xn + a1 xn−1 + · · · + an−1 x + an podemos determinar los
coeficientes ai por medio del sistema lineal de ecuaciones
Z 1
0= xk Ln (x)dx k = 1, . . . , n.
−1
Cálculo Numérico I
Derivación Numérica
La definición de la derivada de una función como un lı́mite lleva
implı́cito un método de aproximación numérica:
f (x + h) − f (x)
f ′ (x) ≈ ≡ Dh f (x);
h
diremos que esta última cantidad es una derivada numérica de f
con paso h.
Ejemplo 21.1. Si calculamos la derivada numérica de f (x) = x2 en
x = 1,
h Dh f Error
0’1 2’1 0’1
0’05 2’05 0’05
0’025 2’025 0’025
Utilizando la fórmula de Taylor,
ası́
Es decir,
f (x1 + h) − f (x1 − h)
f ′ (x1 ) ≈ .
2h
que representa una especie de media entre la derivada ≪hacia ade-
lante≫ (h > 0) y la derivada ≪hacia atrás≫ (h < 0) de la anterior.
¿Cómo estimar el error en P′n (x)?
Teorema 5. Sea f ∈ C n+2 ([a, b]) y sea Pn (t) el polinomio interpo-
lador de f con nodos x0 , . . . , xn ∈ [a, b]; ∀t ∈ [a, b], ∃ξ1 , ξ2 ∈ [a, b]
tales que
f (n+2) (ξ1 ) f (n+1) (ξ2 )
f ′ (t) − P′n (t) = Ln (t) + L′n (t)
(n + 2)! (n + 1)!
donde Ln (t) = (t − x0 )(t − x1 ) · · · (t − xn ).
23 Coeficientes indeterminados
El procedimiento descrito produce fórmulas de derivación numérica
del tipo:
n
X
(k)
f (x) = wi f (xi )
i=1
1
cuya solución es A = −C = − 2h , B = 0; por tanto
f (x + h) − f (x − h)
f ′ (x) ≈ = Dh f (x);
2h
h3
f ′ (x) − Dh f (x) = [f ıv (ξ− ) + f ıv (ξ+ )]
48
24 Estabilidad Numérica
Si observamos todas las reglas de derivación numérica que hemos
deducido, veremos que consisten en un cociente de dos números
que cuando h (distancia entre nodos) tiende a cero es de la forma
0
0
. De ello resulta que cuando h es muy pequeño vamos a tener una
pérdida de significación en el numerador amplificada por la división
por hk . Esto hace que, dada una cierta precisión en los cálculos,
habrá un h óptimo que nos dará la precisión máxima en el cálculo
de la derivada numérica.
Supongamos que ε es la precisión relativa de nuestros cálculos (di-
gamos ε ≈ 10−16 , como ocurre con Matlab). Vamos a estudiar
qué sucede con la derivada numérica
f (x + h) − f (x − h)
Dh f (x) = .
2h
En su cálculo con la máquina tenemos
f˜(x + h) − f˜(x − h)
D̃h f (x) = ,
2h
donde f˜(x − h) = (1 + ε2 )f (x − h); f˜(x + h) = (1 + ε1 )f (x + h);
(|εi | ≤ ε, i = 1, 2), por tanto
ε1 f (x + h) − ε2 f (x − h)
D̃h f (x) − f ′ (x) = + Dh f (x) − f ′ (x);
2h
dado que |Dh f (x) − f ′ (x)| ≤ 61 h2 sup |f ′′ | resulta
ε
D̃h f (x) − f ′ (x) ≤ sup |f | + sup |f ′′ |
h
es decir
ε
E(h) = |D̃h f (x) − f ′ (x)| ≤ C1 + C2 h2
h
para buscar el E mı́nimo hacemos E ′ (h)
q = 0, es decir 2C2 h −
C1
C1 εh−2 = 0, que tiene solución h = 3 2C ε. Como esperamos
2
√
que tanto C1 como C2 tengan un valor ≪moderado≫, h ≈ C 3 ε (si
trabajamos con Matlab, h ≈ 10−5 ).
h Df error
--------- --------------- --------------
1.00e-001 32.080000000000 0.080000000000
1.00e-002 32.000800000000 0.000800000000
1.00e-003 32.000007999996 0.000007999996
1.00e-004 32.000000080030 0.000000080030
1.00e-005 32.000000001009 0.000000001009
1.00e-006 32.000000000032 0.000000000032
1.00e-007 31.999999992038 0.000000007962
1.00e-008 31.999999894339 0.000000105661
1.00e-009 32.000002647692 0.000002647692
1.00e-010 32.000002647692 0.000002647692
1.00e-011 32.000002647692 0.000002647692
1.00e-012 32.002844818635 0.002844818635
1.00e-013 31.974423109205 0.025576890795
1.00e-014 32.329694477085 0.329694477085
1.00e-015 31.974423109205 0.025576890795
1.00e-016 0.000000000000 32.000000000000
1.00e-017 0.000000000000 32.000000000000
1.00e-018 0.000000000000 32.000000000000
1.00e-019 0.000000000000 32.000000000000
1.00e-020 0.000000000000 32.000000000000
10−16
C1 + C2 (10−6 )2 ≈ C·10−10 .
10−6
Sistemas Lineales
En el curso de Álgebra Lineal hemos estudiado métodos exactos
para resolver sistemas de ecuaciones lineales. Sin embargo hay dos
razones para analizar numéricamente las soluciones. La primera
de ellas es puramente calculı́stica: el número de operaciones y la
precisión de los cálculos acumulan errores que debemos tratar de
minimizar. La segunda es intrı́nseca de cada sistema: las solu-
ciones de algunos sistemas lineales varı́an considerablemente para
pequeñas variaciones en los datos. Esta segunda caracterı́stica tiene
gran importancia cuando los datos del sistema proceden de medi-
ciones fı́sicas, y por tanto llevan implı́cito un cierto grado de incer-
tidumbre. Será por tanto importante el conocer la sensibilidad de
la solución respecto de los datos en cada problema.
Ejemplo 17. Consideremos el sistema lineal
7′ 231x+ 0′ 9936y = 1′ 12
. ! . !
99′ 87 12′ 35 .. 2′ 35 99′ 87 12′ 35 .. 2′ 35
. .
7′ 231 0′ 9936 .. 1′ 12 0 0′ 0994 .. 0′ 9499
. !
99′ 87 0 .. −115′ 7
.
0 0′ 0994 .. 0′ 9499
Obtenemos como solución: x = −1′ 16, y = 9′ 56.
Supongamos que los datos anteriores no se han medido con precisión
y se ha obtenido el sistema
100x+ 12y = 2′ 3
7x+ y = 1′ 1.
La solución es entonces x = −0′ 68, y = 5′ 87; muy diferente de la
anterior.
Vemos en este ejemplo los dos problemas con los que nos vamos
a enfrentar. Primeramente la inestabilidad de los cálculos. En
segundo lugar la dependencia de los datos. Ambos problemas suelen
aparecer juntos y dependen principalmente del sistema dado.
Ejemplo 18. Veamos ahora el otro problema que puede aparecer en
la resolución de sistemas lineales: cómo los errores de redondeo son
distintos según el orden de las operaciones. Los sistemas
′
0 57x+ 0′ 31y = 0′ 12
57x+ 31y = 12
y
27x+ 16y = 21 27x+ 16y = 21
o bien Ax = b.
El que el sistema tenga solución y que ésta sea única depende de
los rangos de las matrices A y ampliada A|b: Teorema de Rouché–Frobenius
x = 12 − 21 y − 12 z
x = −1
y = 4 − 2y y = 2
z = 1 z = 1.
26 Pivote parcial
Si en la aplicación del método de Gauss se utiliza un pivote muy
pequeño los errores de redondeo influyen en gran manera en el re-
sultado final.
Ejemplo 20. El sistema
2x + 31 y + 3z = 4
x + 16 y − 2z = 1
2x + 3y − z = 6
27 Sensibilidad
Ejemplo 21.
1 1 x 1 x=1
=
1 1′ 1 y 1 y=0
1′ 1 x = 3′ 1
1 1 x
=
1 1′ 1 y 0′ 9 y = −2
0′ 9 x = −1′ 1
1 1 x
=
1 1′ 1 y 1′ 1 y = 2.
En el ejemplo anterior vemos que pequeñas variaciones en los datos
producen grandes variaciones en la solución. Queremos estudiar
métodos que nos permitan detectar a priori sistemas que presentan
estos problemas. Haremos el estudio cuando las variaciones ocurren
en el término independiente, como en el ejemplo.
Si Ax = b y A(x + δu) = b + εv entonces Aδu = εv es decir
δu = A−1 εv, donde u, v son vectores unitarios. Un cambio pequeño
de longitud ε en el dato b puede producir un cambio de longitud δ
en la solución cuyo tamaño depende de la matriz A−1 . Supongamos
que A tiene autovalores λ1 y λ2 (0 < λ1 < λ2 ), con autovectores
v1 , v2 . Entonces A−1 tiene autovalores 1/λ1 , 1/λ2 , con los mismos
autovectores. Por tanto, si v = v1 y δu1 = A−1 εv1 = ε λ11 v1 , el
cambio en la longitud de la solución será de λε1 .
Si la matriz A es simétrica sus autovalores son reales. Supongamos
que verifican 0 < |λ1 | ≤ |λ2 | ≤ · · · ≤ |λn |. Entonces kAxk ≤
|λn |kxk, donde kuk representa la longitud del vector u.
Por otra parte, si resolvemos Ay = b+εv, obtendremos y = x+δw
y por tanto A(δw) = εv o bien δw = εA−1 v.
Si A es simétrica, también lo será A−1 que tendrá por autovalores
1 1 1
, ,...,
λ1 λ2 λn
por tanto
1
kδwk = |ε|kA−1 vk ≤ |ε| kvk
|λ|
Entonces el error relativo será
|δ| |ε| |λn | |λn | |ε|
≤ = .
kxk |λ1 | kbk |λ1 | kbk
La acotación del error relativo en x por medio del error relativo
|λn |
en b viene multiplicada por el factor . Este número se deno-
|λ1 |
mina número de condición de la matriz A. Esta desviación en el número de condición
error relativo se alcanza cuando el vector b está en la dirección
del autoespacio correspondiente a λn y v está en la dirección del
autoespacio correspondiente a λ1 .
Si la matriz A no es simétrica el problema es más complicado.
Ejemplo 22.
1 10
A= tiene autovalor 1 doble sin embargo
0 1
1 10 x 10 x 0
= tiene por solución =
0 1 y 1 y 1
1 10 x 10 x 10
= tiene por solución =
0 1 y 0 y 0
El error relativo en b es
k(0, 1)k 1 1
=√ ≈
k(10, 1)k 101 10
mientras que el error relativo en (x, y) es
k(10, −1)k √
= 101 ≈ 10
k(0, 1)k
es decir, el error relativo se multiplica por 100.
Para analizar este tipo de problemas tenemos que comparar kAxk
con kxk. Denominamos norma de la matriz A al número norma
kAxk
kAk = sup ; donde o es el vector de longitud cero.
x6=o kxk
2 kAxk2 xT AT Ax
kAk = sup 2
= sup T
= λmax (AT A)
kxk x x
Resulta que los autovalores de AAT son los mismos que los de AT A Si λ es un autovalor de AT A y x
es un autovector asociado a él,
y por tanto el número de condición buscado es entonces AAT (Ax) = A(AT Ax) =
s A(λx) = λAx, por tanto λ es un
autovalor de AAT y Ax es un au-
λmax (AAT )
kAkkA−1 k = tovector asociado a él.
λmin (AAT )
kδvk kBk
≤ kA−1 k kBk = kA−1 k kAk .
kx + δvk kAk
kδvk |δ|
donde ≈ , error relativo en kx + δvk (recuérdese que
kx + δvk kxk
u y v son unitarios).
¿Cómo puede el cálculo estropear el número de condición de una
matriz?
Si tratamos de resolver el problema Ax = b por medio de la des-
composición A = LU de la matriz A en producto de una matriz
L, triangular inferior, y una matriz U , triangular superior, que se
28 Métodos iterativos
La dificultad de resolver un sistema lineal radica en que, esencial-
mente, tenemos que invertir una matriz. Una posible estrategia
para simplificar los cálculos consiste en sustituir la matriz a inver-
tir A por otra de fácil inversión y reescribir un sistema equivalente
que se resuelve de forma aproximada basándose en una solución
aproximada del sistema. El esquema es el siguiente:
Dado el sistema Ax = b escribimos la matriz A en la forma A =
S − P , donde la matriz S es de fácil inversión. Entonces podemos
reescribir el sistema como Sx = b + P x. Si x0 es una solución
aproximada buscamos la solución del sistema Sx = b + P x0 , de
fácil cálculo:
x = S −1 (b + P x0 ).
xk+1 = S −1 (b + P xk ).
y por tanto
Método de Gauss–Jacobi
0 41 0
x 1 x
y = 1 − 1 0 1 y
2 4 4
z 1 0 14 0 z
Si arrancamos el método con el vector x0 = (0, 0, 0) sucesivas itera-
ciones nos dan
3 7 63
1 4
1 8 64
1
1 0 1 0 0 que convergen a 0 .
2 4
3 7 63
1 4
1 8 64
1
Método de Gauss–Seidel
(28.4)
a11 xk+1
1 = b1 − (a12 xk2 + a13 xk3 · · · + a1n xkn )
a21 xk+1
1 + a22 xk+1
2 = b2 − (a23 xk3 + · · · + a2n xkn )
a31 xk+1
1 + a32 xk+1
2 + a33 xk+1
3 = b3 − (a34 xk4 + · · · + a3n xkn )
... ...
an1 xk+1
1 + an2 xk+1 k2 + · · · + ann−1 xk+1 k+1
n−1 + ann xn = bn .
10
8 0 0 x 8 0 2 0 x
2 8 0 y = 4 − 0 0 2 y
0 2 8 z 8 0 0 0 z
es decir
0 41 0
x 1 x
y = 41 − 0 − 1 1 y
16 4
15 1 1
z 16 0 64 − 16 z
11