Capitulo 2
Capitulo 2
Capitulo 2
1
Pasando al lı́mite (que es uniforme sobre compactos) obtenemos que
X∞
x2k+1
y(x) = y 1 (x) = (−1)k = sen x,
k=0
(2k + 1)!
X ∞
x2k
y 0 (x) = y 2 (x) = (−1)k = cos x,
k=0
(2k)!
y (4) (x) = −2y(x)y 000 (x) − 6y 0 (x)y 00 (x), y (4) (0) = 4!,
y (5) (x) = −2y(x)y (4) (x) − 8y 0 (x)y 000 (x) − 6(y 00 (x))2 , y (5) (0) = −5!.
2
dada por
∞
X 1
y(x) = (−x)k = .
k=0
1+x
p
X
El error cometido al aproximar por yp (x) = (−x)k es
k=0
¯ ¯ ¯¯ ∞ ¯
¯ ∞ ∞
¯ 1 ¯ ¯X k¯
X X 1 1
¯
error = ¯ ¯
− yp (x)¯ = ¯ (−x) ¯ ≤ k
|x| ≤ = p.
1+x ¯ ¯ 2k 2
k=p+1 k=p+1 k=p+1
∞
X ∞
X
00 n−2
y (x) = n(n − 1)an x = (n + 2)(n + 1)an+2 xn .
n=2 n=0
(n + 2)(n + 1)an+2 + an = 0.
2
Este método, introducido por Newton en su “Methodus Fluxionum et Serierum Infin-
itorum” (1671), es el primero que se usó para resolver ecuaciones diferenciales ordinarias.
3
Ahora es fácil ver que
(−1)k a0 (−1)k a1
a2k = , a2k+1 = .
(2k)! (2k + 1)!
0 = y(0) = a0 , 1 = y 0 (0) = a1 .
(a) yn+1 − yn = 2n + 3, y0 = 1;
(b) yn+1 − yn = 3n2 − n, y0 = 3;
(c) yn+1 − 2yn = 5, y0 = 1;
(d) yn+1 − 2yn = 2n , y0 = 1;
(e) yn+2 + 3yn+1 + 2yn = 3n , y0 = 0, y1 = 1;
(f) yn+2 + 4yn+1 + 4yn = 7, y0 = 1, y1 = 2;
(g) yn+2 − 6yn+1 + 9yn = 3 · 2n + 7 · 3n , y0 = 1, y1 = 4.
3
Para repasar todo lo que tiene que ver con este tema recomiendo leer el capı́tulo 8 del
libro “Diez lecciones de cálculo numérico”, J. M. Sanz-Serna, Universidad de Valladolid.
Secretariado de publicaciones e intercambio cientı́fico, 2010 (segunda edición).
4
Solución. En todos los casos se trata de una recurrencia lineal no
homogénea con coeficientes constantes. La solución general vendrá dada
como la solución general de la recurrencia homogénea asociada, más una
solución particular de la recurrencia completa.
(a) La recurrencia homogénea asociada, yn+1 − yn = 0, tiene como
polinomio caracterı́stico λ − 1, cuya raı́z es λ = 1. Las soluciones de
la homogénea son por lo tanto las constantes. En cuanto a la solución
particular de la recurrencia completa, intentamos una solución de la
forma ynp = n2 + bn (no tiene sentido añadir un término de orden
0, ya que las constantes son soluciones de la ecuación homogénea).
Imponiendo que sea solución obtenemos que
p
2n + 3 = yn+1 − ynp = (n + 1)2 + b(n + 1) − (n2 + bn) = 2n + (1 + b),
yn = 1 + n2 + 2n = (n + 1)2 .
yn = c + n3 − n2 .
5
Para determinar la constante c usamos el valor de arranque, 3 = y0 = c.
En resumen, la solución pedida es
yn = 3 + n3 − n2 .
6
Usando los valores de arranque,
1 3
0 = y0 = a + b + , 1 = y1 = −a − 2b + ,
20 20
concluimos que a = 3/4, b = −4/5.
(f) El polinomio caracterı́stico de la recurrencia homogénea asociada
es λ2 + 4λ + 4, cuya única raı́z (doble) es −4. La solución general de la
homogénea es por tanto (−4)n (a + bn). Como solución particular de la
completa ensayamos ynp = C. Imponiendo que sea solución,
p p
7 = yn+2 + 4yn+1 + 4ynp = 9C,
= c2n + 18d3n ,
7
Usando los valores de arranque,
7
1 = y0 = a + 3, 4 = y1 = 3(a + b + ) + 6,
18
concluimos que a = −2, b = 17/18.
an = 5n + 2.
8
Sección 2.2
Se tiene que
¯ ¯
¯ nh2 ¯ nh2
|y(xn ) − yn | = |enh
−e n log(1+h)
|=e nh ¯1 − e− 2(1+ξ)2 ¯ = enh e−η .
¯ ¯ 2(1 + ξ)2
Dado que nh ≤ N h = 1, concluimos que |y(xn ) − yn | ≤ eh/2.
9
La solución por el método de Euler satisface la recurrencia un+1 =
(I +hA)un , cuya solución es un = (I +hA)n u0 . Para calcular la potencia
n-ésima de I +hA conviene diagonalizar esta matriz. Un sencillo cálculo
muestra que los autovalores son λ± = 1±ih, con autovectores asociados
v± = (1, ±i)T . Por consiguiente,
µ ¶ µ ¶
λ+ 0 −1 1 1
I + hA = P P , P = .
0 λ− i −i
Ası́ pues, µ ¶
λn+ 0
un = P P −1 u0 .
0 λn−
µ ¶
1
Tomando valores de arranque exactos, u0 = , obtenemos final-
0
mente que
µ ¶µ ¶ µ ¶µ ¶
1 1 (1 + ih)n 0 1 1 −i 1
un =
i −i 0 (1 − ih)n 2 1 i 0
(1 + ih)n + (1 − ih)n
2
= (1 + ih)n − (1 − ih)n .
i
2
Ası́,
(1 + ih)n + (1 − ih)n
yn = u1n = .
2
En cuanto a la solución teórica, es fácil ver que y(x) = cos(x), y por
tanto que y(xn ) = cos(nh) = (einh + e−inh )/2. Por consiguiente,
¯ inh ¯
¯ e + e−inh (1 + ih)n + (1 − ih)n ¯
|y(xn ) − yn | = ¯¯ − ¯
2 2 ¯
¯ inh ¯ ¯ ¯
¯ e − en log(1+ih) ¯ ¯ e−inh − en log(1−ih) ¯
≤ ¯¯ ¯+¯
¯ ¯
¯.
¯
2 2
10
Ası́ pues,
∞
X (−1)j+1 (±ih)j
log(1 ± ih) = ±ih + g± (h), g± (h) = si h < 1.
j=2
j
Nótese que
∞
X X∞
hj 2 hj0
|g± (h)| ≤ ≤h = Ch2 para todo h ≤ h0 < 1.
j=2
j j=0
j + 2
11
(b) Demostrar que las soluciones obtenidas al aplicar el método de
Euler a este PVI también satisfacen la misma ley de conservación
lineal, cT yn = cT y0 , n = 0, . . . , N .
d T
(c y)(x) = cT y 0 (x) = cT f (x, y(x)) = 0.
dx
Ası́ pues, cT y(x) = cT y(a) = cT η para todo x ∈ [a, b].
(b) Usando la recurrencia de Euler obtenemos que
12
Sección 2.3
13
Utilizamos esto ahora para estimar el error en la resolución del PVI.
Se tiene que
máx ky(x) − y I (x)k∞ ≤ máx |E(x)| + máx |R(x)| =
x∈[xn ,xn+1 ] x∈[xn ,xn+1 ] x∈[xn ,xn+1 ]
h2
≤ máx ky 00 (x)k + máx{ky(xn ) − yn k, ky(xn+1 ) − yn+1 k}.
2 x∈[xn ,xn+1 ]
Concluimos que
I h2
máx ky(x) − y (x)k∞ ≤ máx ky 00 (x)k + máx ky(xn ) − yn k.
a≤x≤b 2 x∈[a,b] 0≤n≤N
kRn k
≤ eLh+L(xn −x0 ) ky(x0 ) − y0 k + eL(xn+1 −x0 ) (h + xn − x0 ) máx
0≤n≤N −1 h
kRn k
= eL(xn+1 −x0 ) ky(x0 ) − y0 k + eL(xn+1 −x0 ) (xn+1 − x0 ) máx ,
0≤n≤N −1 h
es decir, se tiene la estimación para n + 1.
14
3. Demostrar que la convergencia del método de Euler, aplicado a un
0
problema “de cuadratura”,
PN −1 y (x) = f (x), implica la convergencia de las
sumas de Riemann n=0 hf (a + nh) cuando h tiende a cero al valor
Rb
de la integral a f (x) dx.
Rx
Solución. La función A(x) = a f (s) ds es solución del PVI de cuadratu-
ra A0 (x) = f (x), A(a) = 0. El método de Euler aplicado a este proble-
ma con malla xn = a + nh, n = 0, . . . , N , h = (b − a)/N , produce la
recurrencia
An+1 = An + hf (xn ), n = 0, . . . , N, A0 = 0,
P
cuya solución es An = h n−1 j=0 f (xj ). Usando ahora la convergencia del
método de Euler concluimos que la cantidad
¯Z ¯
¯ b N
X −1 ¯
¯ ¯
¯ f (s) ds − h f (a + jh)¯ = |A(xN ) − AN |
¯ a ¯
j=0
15
Sección 2.4
y0
Solución. Derivando la ecuación obtenemos que y 00 = 1+y 2
. Ası́ pues,
|y 00 | ≤ |y 0 | ≤ | arctan y| ≤ π/2.
Para estimar y 000 , derivamos nuevamente la ecuación. Se obtiene que
2y(y 0 )2 y 00
y 000 = − + .
(1 + y 2 )2 1 + y 2
2|y|(y 0 )2 |y 00 | (y 0 )2 + |y 00 | ³ π ´2 π
|y 000 | = + ≤ ≤ (y 0 2
) + |y 00
| ≤ + .
(1 + y 2 )2 1 + y 2 1 + y2 2 2
16
(b) Queremos ver que si |f1 (h)| ≤ C1 hk para todo h < h1 y |f2 (h)| ≤
C2 hk para todo h < h2 , entonces existen constantes C y h0 tales que
|(f1 ± f2 )(h)| ≤ Chk para todo h < h0 . Esto se demuestra trivialmente
usando la desigualdad triangular y tomando C = C1 + C2 y h0 =
mı́n{h1 , h2 }.
(c) Podemos suponer que h < 1, lo que implica que hk , hm ≤ hmı́n(k,m) .
Por consiguiente, si |f1 (h)| ≤ C1 hk para todo h < h1 y |f2 (h)| ≤ C2 hm
para todo h < h2 , se tiene que para todo h < mı́n{h1 , h2 , 1} se verifica
que
|(f1 + f2 )(h)| ≤ |f1 (h)| + |f2 (h)| ≤ (C1 + C2 )hmı́n(k,m) .
|(f1 f2 )(h)| = |f1 (h)| · |f2 (h)| ≤ C1 C2 hk+m para todo h < mı́n{h1 , h2 }.
(e) Suponemos que |f (h)| ≤ Chk para todo h < h0 . Por lo tanto
¯Z h ¯ Z h Z h
¯ ¯ hk+1
¯ f (t) dt ¯ ≤ |f (t)| dt ≤ C tk
dt = C .
¯ ¯ k+1
0 0 0
(f) Suponemos una vez más que |f (h)| ≤ Chk para todo h < h0 .
k
Podemos suponer también que h¯ 0 es tal que ¯ Ch0 ≤ 1/2, de tal forma
que |f (h)| ≤ 1/2 y |1 + f (h)| ≥ ¯1 − |f (h)|¯ ≥ 1/2. Ahora bien,
1 1 + f (h) f (h)
= − ,
1 + f (h) 1 + f (h) 1 + f (h)
y por otra parte
¯ ¯
¯ f (h) ¯
¯ ¯ = |f (h)| ≤ 2Chk ,
¯ 1 + f (h) ¯ |1 + f (h)|
17
Solución. Se tiene que
g1 (h)g2 (h)
Por lo tanto, g1 (h)g2 (h)−3 = O(h), pero no es cierto que g1 (h)·g2 (h)−
3 = O(hk ) para ningún k entero mayor que 1.
18
El lado derecho de la ecuación, f (x, y) = máx{y, 2}, es continuo y Lip-
schitz con respecto a y. Por tanto sabemos que las soluciones numéricas
convergen a la teórica. Sin embargo, f no es C 1 , por lo que no tenemos
garantizado que la convergencia sea de orden 1. Sin embargo, veremos
que si tiene este orden.
Si n < n̄ y xn ≤ log 2, la acotación deseada es consecuencia de la
convergencia de orden 1 del método de Euler para el problema y 0 = y,
y(0) = 1.
Para tratar los casos restantes observamos en primer lugar que
µ» ¼ ¶
h log 2 log 2
n̄h = log 2 +h −
log(1 + h) log(1 + h) log(1 + h)
= log 2 + g(h),
con 0 < g(h) ≤ Ch para una cierta constante C > 0. Esto es conse-
cuencia directa de los desarrollos de Taylor de log(1 + h) hasta segundo
orden y de 1/(1 − x) hasta primer orden.
Para n ≥ n̄, se tiene que xn = nh ≥ n̄h > log2, y por tanto
19
lo que demuestra que xn = log 2 + O(h). Razonando como en el caso
anterior, se tiene que (1 + h)n = 2 + O(h), y obtenemos finalmente que
también en este caso y(xn ) − yn = O(h).
Podemos ilustrar este resultado con el siguiente diagrama de eficiencia
para el método de Euler aplicado a este problema.
0
10
−1
10
error
−2
10
−3
10
−4
10
1 2 3 4 5
10 10 10 10 10
evaluaciones de funcion
20
Comenzamos obteniendo una cota para la constante C. Por un lado
tenemos que |y 0 (x)| ≤ |x| ≤ 1 para x ∈ [0, 1]. Por otra parte, derivando
la ecuación obtenemos que
e2 3
|y(xn ) − yn | ≤ h.
2
Para garantizar un error menor que 10−3 basta por tanto con tomar
2 · 10−3
h≤ .
3e2
21
Sección 2.5
1 function problema2 5 1
2
3 n = 16;
4 xpts = linspace(0,3,n); ypts = linspace(−1,1,n);
5 [x,y] = meshgrid(xpts,ypts);
6 px = ones(size(y)); py=−y−5∗exp(−x).∗sin(5∗x);
7 quiver(x,y,px,py);
8 title(’dy/dx = -y-5e^{-x}sin(5x)’,’FontSize’,14)
9 xlabel(’x’), ylabel(’y’,’Rotation’,0)
10 xlim([0 3]), ylim([−1 1]) % Ajuste de los limites de los ejes
11
12 hold on
13
14 x=linspace(0,3,3001);
15 plot(x,solee(x),’b’)
16
17 x=linspace(0,3,16);
18 y=euler(@ejescalar,x,1);
19 plot(x,y,’r*-’)
20
21 legend(’Campo de direcciones’,’Solucion teorica’,’Solucion numerica por
Euler’)
22
23 hold off
24
25 function sol = solee(x)
26
27 sol = exp(−x).∗cos(5∗x);
22
El resultado de su ejecución se muestra en la siguiente figura.
dy/dx = −y−5e−xsin(5x)
1
Campo de direcciones
Solución teórica
0.8 Solución numérica por Euler
0.6
0.4
0.2
y
0
−0.2
−0.4
−0.6
−0.8
−1
0 0.5 1 1.5 2 2.5 3
x
23
Solución. (c) Si calculamos la derivada de la energı́a obtenemos
dE
(t) = y 2 (t)(y 2 )0 (t) + sen(y 1 (t))(y 1 )0 (t).
dt
Usando la EDO tenemos entonces que
dE
(t) = −y 2 (t) sen(y 1 (t)) + sen(y 1 (t))y 2 (t) = 0,
dt
es decir, la energı́a se conserva.
El siguiente programa hace las cosas solicitadas en los apartados (a),
(b) y (d). En particular se calcula la diferencia de la energı́a con la
energı́a inicial en los tiempos de la malla numérica. Sólo se hace el
cálculo para las curvas solucion correspondientes a los datos iniciales
(1, 1)T y (−5, 2)T . La solución yc con dato (5, −2) es simplemente −yb,
donde yb es la solución con dato inicial (−5, 2)T , y tiene por tanto la
misma energı́a para cada tiempo que yb.
1 function problema2 5 2
2
3 figure(1)
4
5 [y1,y2] = meshgrid(−5:.5:5,−3:.5:3);
6 Dy1Dt = y2; Dy2Dt = −sin(y1);
7 quiver(y1,y2,Dy1Dt,Dy2Dt), hold on
8
9 t = 0:.0005:10;
10 ya0 = [1; 1]; yb0 = [−5; 2]; yc0 = [5; −2];
11 ya = euler(@pend,t,ya0);
12 yb = euler(@pend,t,yb0);
13 yc = euler(@pend,t,yc0);
14 plot(ya(1,:),ya(2,:),yb(1,:),yb(2,:),yc(1,:),yc(2,:))
15 axis equal, axis([−5 5 −3 3])
16 title(’Plano de fases del problema del pendulo’)
17 xlabel y 1(t), ylabel(’y_2(t)’,’Rotation’,0), hold off
18
19 figure(2)
20 title(’Evolucion de la energia’)
21 Ea=ya(2,:).ˆ2/2−cos(ya(1,:));
22 Eb=yb(2,:).ˆ2/2−cos(yb(1,:));
23 plot(t,Ea−Ea(1),t,Eb−Eb(1))
24 legend(’Dato inicial [1;1]’,’Dato inicial [-5;2]’,’Location’,’Best’)
25 hold off
26
27 function yprima = pend(t,y)
28 %PEND Pendulo simple
29
30 yprima = [y(2); −sin(y(1))];
24
El resultado de su ejecución se muestra en la siguientes figuras.
Plano de fases del problema del péndulo
3
y (t)
2
0
−1
−2
−3
−5 −4 −3 −2 −1 0 1 2 3 4 5
y1(t)
−3
x 10
3.5
2.5
1.5
0.5
0
Dato inicial [1;1]
Dato inicial [−5;2]
−0.5
0 1 2 3 4 5 6 7 8 9 10
25
Usar el método de Euler con longitud de paso h = 0, 01 para resolver
esta ecuación diferencial en el intervalo [0, 2]. Comparar los resultados
con los valores proporcionados por la función de Matlab erf.
1 function problema2 5 3
2
3 x=linspace(0,2,201);
4 y=euler(@funcionerror,x,0);
5 plot(x,y−erf(x))
6 title(’Aproximacion de la funcion error’,’FontSize’,12)
7 xlabel(’x’), ylabel(’Error de la aproximacion’)
8
9 function yprima=funcionerror(x,y)
10
11 yprima=2∗exp(−xˆ2)/sqrt(pi);
x 10
−3 Aproximación de la función error
6
4
Error de la aproximación
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
x
26
4. Estimar, a partir del diagrama de eficiencia de la figura 2.2, qué longitud
de paso hay que tomar para conseguir que el máximo error cometido al
aplicar el método de Euler al problema (2.8) sea 0,002. Comprobar que
la cota (2.7) sobreestima el error para esta longitud de paso en varios
órdenes de magnitud.
−1
10
error
−2
10
−3
10
−4
10
1 2 3 4 5
10 10 10 10 10
evaluaciones de funcion
27
5. Consideramos un método de orden p que, para funciones f suficiente-
mente regulares, admite un desarrollo asintótico para el error global,
log(error(h)) − log(error(h0 ))
p≈ .
log h − log h0
Esto da una forma de determinar empı́ricamente el orden de un méto-
do. Como aplicación, determinar el orden empı́rico de un método que
aplicado con longitudes de paso h = 0, 001 y h = 0, 003 produce errores
1, 011 · 10−8 y 2, 699 · 10−7 respectivamente.
Por consiguiente,
error(h) hp
≈ 0 p.
error(h0 ) (h )
Tomando logaritmos,
28
6. Elaborar un diagrama de eficiencia para el método de Euler aplicado
al PVI
xy(x)
y 0 (x) = − , x ∈ [0, 1], y(0) = 1,
1 − x2
√
cuya solución exacta es y(x) = 1 − x2 . ¿Qué orden empı́rico se obser-
va?
1 function problema2 5 6
2
3 % Diagramas de eficiencia para Euler aplicado al ejemplo escalar
4
5 eeuler=[];
6 feuler=[];
7
8 N=20;
9 for i=1:12
10 x=linspace(0,1,N+1);
11 y=euler(@ldproblema2 5 6,x,1);
12 eeuler=[eeuler,max(abs(solproblema2 5 6(x)−y))];
13 feuler=[feuler,N];
14 N=2∗N;
15 end
16 figure(1)
17 loglog(feuler,eeuler,’-o’)
18 grid
19 xlabel(’evaluaciones de funcion’), ylabel(’error’)
20
21 function yprima=ldproblema2 5 6(x,y)
22
23 yprima=−x∗y/(1−xˆ2);
24
25 function sol = solproblema2 5 6(x)
26
27 sol=sqrt(1−x.ˆ2);
29
−3
x 10
3.5
2.5
1.5
0.5
0
Dato inicial [1;1]
Dato inicial [−5;2]
−0.5
0 1 2 3 4 5 6 7 8 9 10
30