Capitulo 2

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

Sección 2.

1. Utilizar los iterantes de Picard para construir una aproximación numéri-


ca de la solución del problema de valor inicial

y 00 + y = 0, 0 ≤ x ≤ 2π, y(0) = 0, y 0 (0) = 1. (2.2)

Solución. Lo primero que hacemos es escribir el problema como un PVI


para una EDO de primer orden en forma estándar. Para ello definimos
y 1 = y, y 2 = y 0 , y se tiene que
µ 1 ¶0 µ 2 ¶ µ 1¶ µ ¶
y 1 2 y y 0
= f (x, y , y ) = , (0) = η = .
y2 −y 1 y2 1

Al aplicar el método de Euler a este problema obtenemos


µ ¶
0
y0 (x) = η = ,
1
Z x Z xµ 2 ¶
1 2 y0 (s)
y1 (x) = η + f (s, y0 (s), y0 (s)) ds = η + ds
0 0 −y01 (s)
µ ¶ Z xµ ¶ µ ¶ µ ¶ µ ¶
0 1 0 x x
= + ds = + = ,
1 0 0 1 0 1
Z x Z xµ 2 ¶
1 2 y1 (s)
y2 (x) = η + f (s, y1 (s), y1 (s)) ds = η + ds
0 0 −y11 (s)
µ ¶ Z xµ ¶ µ ¶
0 1 x
= + ds = 2 .
1 0 −s 1 − x2

Iterando el argumento llegamos a


 n−1   n 
X x 2k+1 X x 2k+1
k
 (−1)k   (−1) 
 (2k + 1)!   (2k + 1)! 
 k=0
y2n (x) =  n   k=0 .
X x 2k  , y2n+1 (x) =  X n
x 2k 
 (−1)k   (−1)k . 
(2k)! k=0
(2k)!
k=0

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)!

que es, efectivamente, la solución de nuestro problema.

2. Si f ∈ C p ([a, b] × Rd ), podemos encontrar una solución aproximada


del problema de valor inicial (PVI) utilizando la fórmula de Taylor de
P p j
orden p alrededor de x = a, y(x) ≈ y (j) (a) (x−a)
j!
. Los valores de
j=0
(j)
las derivadas y (a) se pueden calcular derivando la EDO y usando la
condición inicial. Utilizar este procedimiento para aproximar la solución
del problema

y 0 (x) = −y 2 (x), 0 ≤ x ≤ 1/2, y(0) = 1,

por un polinomio de orden p y estimar el error cometido.

Solución. Usando la EDO y la condición inicial obtenemos


y 0 (x) = −y 2 (x), y 0 (0) = −1!,

y 00 (x) = −2y(x)y 0 (x), y 00 (0) = 2!,

y 000 (x) = −2y(x)y 00 (x) − 2(y 0 (x))2 , y 000 (0) = −3!,

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!.

Si continuamos derivando, observaremos que y (k) (0) = (−1)k k!1 . Por


consiguiente, este método dice, acertadamente, que la solución viene
1
Ejercicio: demostrarlo por inducción. Sugerencia. Usar la fórmula de Leibniz para la
derivación de un producto.

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

3. Método de las series de potencias2 . Si la solución Py de una EDO se


puede escribir como una serie de potencias, y(x) = ∞ a
n=0 n x n
, se puede
intentar usar la ecuación para obtener cada valor an a partir de los an-
teriores, a0 , . . . , an−1 . Los primeros valores, necesarios para arrancar el
procedimiento, se extraen de las condiciones iniciales. Usar este método
para resolver el problema (2.2).

Solución. Supongamos que la solución se puede escribir como y(x) =


P ∞ n
n=0 an x . Si se pudiera derivar término a término dos veces, entonces


X ∞
X
00 n−2
y (x) = n(n − 1)an x = (n + 2)(n + 1)an+2 xn .
n=2 n=0

Usando la ecuación tenemos que



X ¡ ¢
0 = y 00 (x) + y(x) = (n + 2)(n + 1)an+2 + an xn ,
n=0

de donde se obtiene la recurrencia

(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)!

De aquı́ deducimos que



X ∞
X ∞
X
n 2k
y(x) = an x = a2k x + a2k+1 x2k+1
n=0 k=0 k=0

X ∞
X
(−1)k x2k (−1)k x2k+1
= a0 + a1
k=0
(2k)! k=0
(2k + 1)!
= a0 cos x + a1 sen x.

Si ahora imponemos las condiciones iniciales obtenemos

0 = y(0) = a0 , 1 = y 0 (0) = a1 .

Concluimos por tanto que la solución es y(x) = sen x.

4. Resolver las siguientes relaciones de recurrencia3 , definidas todas ellas


para n ≥ 0:

(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),

y por tanto b = 2. Ası́ pues, la solución general de la recurrencia com-


pleta es
yn = c + n2 + 2n.
La constante c se determina ahora usando el valor de arranque, 1 =
y0 = c. En resumen, la solución pedida es

yn = 1 + n2 + 2n = (n + 1)2 .

(b) La recurrencia homogénea asociada es la misma que la del aparta-


do (a), y sus soluciones son las constantes. Para la solución particular
de la recurrencia completa ensayamos ynp = n3 +an2 +bn. Si es solución,
p
3n2 − n = yn+1 − ynp

= (n + 1)3 + a(n + 1)2 + b(n + 1) − (n3 + an2 + bn)

= 3n2 + (3 + 2a)n + (1 + a + b),

y por tanto 3 + 2a = 1 y 1 + a + b = 0. Por consiguiente, a = −1 y


b = 0, y la solución general de la recurrencia completa es

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 .

(c) En este caso el polinomio caracterı́stico de la recurrencia homogénea


asociada, λ − 2, tiene raı́z λ = 2. La solución general de la homogénea
es por tanto c · 2n . En cuanto a la solución particular de la recurrencia
completa, intentamos ynp = C. Se tiene que
p
5 = yn+1 − 2ynp = C − 2C = −C.
Concluimos que la solución general de la recurrencia completa es yn =
c · 2n − 5. Usando ahora el valor de arranque, 1 = y0 = c − 5, llegamos
finalmente a la solución pedida,
yn = 6 · 2n − 5.

(d) La recurrencia homogénea asociada es la misma que la del aparta-


do (c). En cuanto a la solución particular de la recurrencia completa,
ensayamos ynp = Cn2n (nótese que 2n es solución de la ecuación ho-
mogénea). Se tiene que
p
2n = yn+1 − 2ynp = C(n + 1)2n+1 − 2Cn2n = 2C2n ,
de donde C = 1/2. La solución general de la recurrencia completa
es entonces yn = c · 2n + n2n−1 . Usando el dato inicial, 1 = y0 = c,
obtenemos finalmente que la solución pedida es
yn = 2n + n2n−1 .

(e) El polinomio caracterı́stico de la recurrencia homogénea asociada


es λ2 + 3λ + 2, cuyas raı́ces son −1 y −2. La solución general de la
homogénea es por tanto a(−1)n + b(−2)n . En cuanto a una solución
particular de la completa, ensayamos ynp = C3n . Imponiendo que sea
solución,
p p
3n = yn+2 + 3yn+1 + 2ynp = C3n (9 + 9 + 2),
de donde C = 1/20. La solución general de la recurrencia completa es
entonces
3n
yn = a(−1)n + b(−2)n + .
20

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,

y por tanto C = 7/9. La solución general de la recurrencia completa es


entonces
7
yn = (−4)n (a + bn) + .
9
Usando los valores de arranque,
7 7
1 = y0 = a + , 2 = y1 = −4(a + b) + ,
9 9
concluimos que a = 2/9, b = −13/18.
(g) El polinomio caracterı́stico de la recurrencia homogénea asociada
es λ2 − 6λ + 9, cuya única raı́z (doble) es 3. La solución general de
la homogénea es por tanto 3n (a + bn). Como solución particular de
la completa ensayamos ynp = c2n + dn2 3n (nótese que 3n y n3n son
soluciones de la recurrencia homogénea asociada). Imponiendo que sea
solución,
p p
3 · 2n + 7 · 3n = yn+2 − 6yn+1 + 9ynp
¡ ¢
= c2n (4 − 12 + 9) + d3n 9(n + 2)2 − 18(n + 1)2 + 9n2

= c2n + 18d3n ,

de donde c = 3, d = 7/18. La solución general de la recurrencia com-


pleta es entonces
7 2
yn = 3n (a + bn + n ) + 3 · 2n .
18

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.

5. El número an de euros de activo de una compañı́a se incrementa cada


año cinco veces lo que se incrementó el año anterior. Si a0 = 3 y a1 = 7,
calcular an .

Solución. De acuerdo con el enunciado, se tiene que

an+1 − an = 5(an − an−1 ),

es decir, an es solución de la recurrencia lineal, homogénea, con coefi-


cientes constantes
an+1 − 6an + 5an−1 = 0.
El polinomio caracterı́stico de la recurrencia es λ2 − 6λ + 5, cuyas raı́ces
son λ1 = 1, λ2 = 5. Por consiguiente, la solución general de la recurren-
cia es an = a · 5n + b. Para determinar las constantes usamos los valores
de arranque que nos han proporcionado, gracias a los cuales obtenemos
que
3 = a0 = a + b, 7 = a1 = 5a + b.
Por lo tanto, a = 1 y b = 2, y llegamos finalmente a la fórmula

an = 5n + 2.

8
Sección 2.2

1. Aplicamos el método de Euler con paso fijo h = 1/N al PVI y 0 = y en


[0, 1], y(0) = 1. Como valor de arranque tomamos y0 = 1. Calcular la
solución numérica, {yn }N
n=0 y demostrar que existe una constante C tal
que |y(xn ) − yn | ≤ Ch.

Solución. La solución del problema es y(x) = ex , y la solución numérica


yn = (1 + h)n . Para estimar la diferencia en los puntos de la malla
usaremos los desarrollos de Taylor
h2
log(1 + h) = h − , 0 < ξ < h ≤ 1,
2(1 + ξ)2
e−x = 1 − e−η x, 0 < η < x.

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.

2. Consideramos el PVI y 00 + y = 0, x ∈ [0, 1], y(0) = 1, y 0 (0) = 0.


Escribirlo como un problema de primer orden, y aplicarle entonces el
método de Euler con paso fijo h = 1/N , suponiendo que no se comete
ningún error en los valores de arranque. Demostrar que el máximo error
cometido, máx |y(xn ) − yn |, es menor o igual que Ch para alguna
n=0,...,N
constante C.

Solución. Sea u = (u1 , u2 )T , con u1 = y, u2 = y. Se tiene que u es


solución del PVI
µ ¶ µ ¶
0 0 1 1
u = u, x ∈ [0, 1], u(0) = .
−1 0 0
| {z }
A

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

Llegados a este punto, usamos que



X (−1)j+1 z j
log(1 + z) = para todo z ∈ C tal que |z| < 1.
j=1
j

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

Se tiene ası́ que


¯ inh ¯ ¯ ¯
¯e ¯ ¯ ¯ ¯e−inh ¯ ¯ ¯
|y(xn ) − yn | = ¯1 − e + ¯ +
ng (h) ¯1 − eng− (h) ¯
2 2
¯ ¯ ¯ ¯
¯
= 1−e ng+ (h) ¯ ¯
+ 1−e ng− (h) ¯
.
Tomando en cuenta ahora que

X
z zj
e −1= para todo z ∈ C,
j=1
j!

tenemos que, para todo h ≤ h0 < 1,


X∞ X∞ ∞
¯ ¯
¯1 − eng± (h) ¯ ≤ |ng± (h)|j |nCh2 |j X |Ch|
b j
≤ =
j=1
j! j=1
j! j=1
j!

X |Ch b 0 |j
b
≤ Ch e
= Ch,
j=0
(j + 1)!

llegando finalmente al resultado deseado,


|y(xn ) − yn | ≤ Ch para todo h ≤ h0 < 1.

3. Consideramos el problema de valor inicial y 0 (x) = f (x, y(x)), x ∈ [a, b],


y(a) = η.
(a) Supongamos que existe un vector columna c tal que cT f (x, y) = 0.
Demostrar que la solución del problema satisface la ley de conser-
vación lineal cT y(x) = cT η para todo x ∈ [a, b].

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 .

Solución. (a) Usando la EDO se tiene que

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

cT yn+1 = cT yn + hcT f (xn , yn ) = cT yn , n = 0, . . . , N − 1,

de donde se deduce inmediatamente el resultado.

12
Sección 2.3

1. Sea y la solución del problema (PVI) y sea y I la función continua lineal


a trozos que pasa por los puntos (xn , yn ), n = 0, . . . , N , donde {yn } es
una solución numérica del problema. Una medida alternativa del error
cometido viene dada por máx ky(x) − y I (x)k∞ . Hallar una cota para
a≤x≤b
esta cantidad en términos de máx ky(xn ) − yn k y de h, suponiendo
0≤n≤N
1 d
que f ∈ C ([a, b] × R ).

Solución. Antes de empezar, conviene que repasemos la fórmula para


el error de interpolación lineal con datos aproximados.
Supongamos que no conocemos f (x0 ) y f (x1 ) exactamente, sino sólo
de forma aproximada, f (x0 ) = f0 + ε0 , f (x1 ) = f1 + ε1 . El error que se
comete al aproximar f (x) por la recta que interpola los datos aproxi-
mados f0 , f1 , es

(x1 − x)f0 + (x − x0 )f1


E(x) = f (x) −
x1 − x0
(x1 − x)f (x0 ) + (x − x0 )f (x1 ) (x1 − x)ε0 + (x − x0 )ε1
= f (x) − + .
x1 − x0 x1 − x0
| {z } | {z }
E(x) R(x)

Si x ∈ [x0 , x1 ], el error de interpolación con datos exactos viene dado


por
(x − x0 )(x − x1 ) 00
E(x) = f (ξ), ξ ∈ [x0 , x1 ].
2
En cuanto al “error de redondeo”,

(x1 − x)ε0 + (x − x0 )ε1


R(x) = ,
x1 − x0
se trata de una función lineal, que alcanza su máximo en [x0 , x1 ] en uno
de los extremos. Por consiguiente,

máx |R(x)| = máx{|ε0 |, |ε1 |}.


x∈[x0 ,x1 ]

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

2. Demostrar la fórmula (2.8).

Solución. La demostramos por inducción.


Para n = 0 la fórmula dice simplemente que ky(x0 )−y0 k ≤ ky(x0 )−y0 k,
lo que es trivialmente cierto.
Supongamos que la fórmula es cierta para n. Queremos ver que en-
tonces también es cierta para n + 1. Para comprobarlo, partimos de la
desigualdad ya demostrada
ky(xn+1 ) − yn+1 k ≤ (1 + Lh)ky(xn ) − yn k + máx kRn k.
0≤n≤N −1

Dado que 1 + Lh ≤ eLh y que 1 ≤ eL(xn+1 −x0 ) , se tiene entonces que


kRn k
ky(xn+1 ) − yn+1 k ≤ eLh ky(xn ) − yn k + eL(xn+1 −x0 ) h máx .
0≤n≤N −1 h
Usando la hipótesis de inducción se tiene entonces que
ky(xn+1 ) − yn+1 k

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

tiende a 0 cuando h tiende a cero.

15
Sección 2.4

1. Consideramos la ecuación escalar y 0 = arctan y. Encontrar una cota


para y 00 e y 000 en el intervalo [0, 1] sin hallar y explı́citamente.

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

Usamos ahora que 2|y| ≤ 1 + y 2 para llegar a

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

2. Demostrar las siguientes identidades:

(a) C · O(hk ) = O(hk ) para cualquier constante C;


(b) O(hk ) ± O(hk ) = O(hk );
(c) O(hk ) + O(hm ) = O(hmı́n(k,m) );
(d) O(hk ) · O(hm ) = O(hk+m );
Rh
(e) 0 O(tk ) dt = O(hk+1 );
1
(f) k
= 1 + O(hk ).
1 + O(h )

Solución. (a) Se trata de ver que si f (h) = O(hk ), entonces Cf (h) =


O(hk ). En efecto, por ser f (h) = O(hk ), se tiene que existen constantes
K y h0 tales que |f (h)| ≤ Khk para todo h < h0 . Por consiguiente,
|Cf (h)| ≤ CKhk = Kh e k parat todo h < h0 , y por tanto Cf (h) =
O(hk ).

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) .

(d) Nuevamente suponemos que |f1 (h)| ≤ C1 hk para todo h < h1 y


|f2 (h)| ≤ C2 hm para todo h < h2 . Se tiene entonces que

|(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)|

con lo que se tiene el resultado deseado.

3. Sean g1 (h) = 1 − h2 + O(h4 ) y g2 (h) = 3 + h + O(h2 ). Encontrar el


mayor entero k tal que g1 (h)g2 (h) = 3 + O(hk ).

17
Solución. Se tiene que

g1 (h)g2 (h)

= (1 − h2 )(3 + h) + (1 − h2 )O(h2 ) + O(h4 )(3 + h) + O(h4 )O(h2 )

= 3 + h − 3h2 − h3 + O(h2 ) = 3 + h + O(h2 ).

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.

4. Calcular la solución teórica del problema de valor inicial

y 0 (x) = mı́n(y(x), 2), 0 ≤ x ≤ 2, y(0) = 1,

y aproximarla mediante el método de Euler. Comprobar que la solución


numérica converge a la teórica. ¿Es la convergencia de orden 1?

Solución. Se ve fácilmente que la solución teórica es


(
ex , 0 ≤ x ≤ log 2,
y(x) =
2(x − log 2) + 2, log 2 ≤ x ≤ 2.

En cuanto a la solución numérica, está dada por


(
(1 + h)n , 0 ≤ n ≤ n̄,
yn = n̄
(1 + h) + (n − n̄)2h, n̄ ≤ n ≤ N,

siendo n̄ el primer valor de n para el cual (1 + h)n ≥ 2, es decir


» ¼
log 2
n̄ = .
log(1 + h)

A continuación se muestra un diagrama de eficiencia para las soluciones


n

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

y(xn ) − yn = 2(xn − log 2) + 2 − (1 + h)n̄ − (n − n̄)2h

= −2 log 2 + 2 − (1 + h)n̄ + n̄2h.

Usando ahora que n̄h = log 2 + O(h), y el desarrollo de log(1 + h), se


tiene que
2
(1 + h)n̄ = en̄ log(1+h) = en̄h+n̄O(h ) = elog 2+O(h)

= 2eO(h) = 2(1 + O(h)) = 2 + O(h).

Concluimos que y(xn ) − yn = O(h) también en este caso.


Nos queda comprobar aquellos casos en que n < n̄ y xn > log 2. En
esta situación,

y(xn ) − yn = 2(xn − log 2) + 2 − (1 + h)n .

Por otra parte,

log 2 < xn = nh < n̄h = log 2 + O(h),

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

Se ve claramente que el orden empı́rico es, como debe, 1.

5. Consideramos el problema de valor inicial y 0 (x) = x(sen y(x))2 , x ∈


[0, 1], y(0) = 1. Si se resuelve por el método de Euler con y0 = 1,
¿qué valor de h habrá que tomar para garantizar un error menor que
10−3 ?

Solución. La fórmula para el error en el método de Euler (2.9) nos dice


en este caso que
1
|y(xn ) − yn | ≤ eL Ch, C= máx |y 00 (x)|,
2 x∈[0,1]

siendo L una constante de Lipschitz para f (x, y) = x(sen y)2 respecto


de la variable y.

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

y 00 (x) = (sen y(x))2 + 2x sen y(x) cos y(x)y 0 (x).

Por consiguiente, |y 00 (x)| ≤ 1 + 2|x| |y 0 (x)| ≤ 3 para x ∈ [0, 1].


Pasamos ahora al cálculo de L. Por el Teorema del Valor Medio,

|f (x, y) − f (x, ŷ)| = |x| |(sen y)2 − (sen ŷ)2 |

= 2|x| | sen ξ| | cos ξ| |y − ŷ| ≤ 2|y − ŷ|.

Podemos tomar por tanto L = 2.


Juntando todo tenemos 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. La ecuación de (2.8) da para cada punto (x, y) la derivada de la solución


que pasa por ese punto. Define de esta forma un campo de pendientes.
Las soluciones tienen que ser tangentes en cada punto a este campo.
Podemos representar el campo de pendientes dibujando en cada pundo
(x, y) una flecha cuya pendiente sea f (x, y).
(a) Usar la función quiver de Matlab para dibujar el campo de pen-
dientes de la ecuación que aparece en (2.8).
(b) Superponer en el dibujo anterior la verdadera solución.
(c) Superponer también la solución numérica obtenida con el método
de Euler y longitud de paso h = 0,5, uniendo los puntos obtenidos
por medio de lı́neas rectas.

Solución. El siguiente programa hace las tres cosas solicitadas.

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

2. La ecuación del péndulo simple, θ00 + sen θ = 0, se puede escribir como


un sistema de primer orden,
(y 1 )0 = y 2 , (y 2 )0 = − sen(y 1 ),
para las variables y 1 = θ, y 2 = θ0 .
(a) Utilizar el método de Euler con longitud de paso h = 0,005 para
aproximar numéricamente en el intervalo [0, 10] a las soluciones
con datos iniciales (1, 1)T , (−5, 2)T y (5, −2)T .
(b) Dibujar en el plano y 1 –y 2 las curvas correspondientes a las solu-
ciones calculadas en el apartado anterior, y superponer el campo
de vectores asociado a la EDO. Obtendremos de esta forma un
esbozo del plano de fases asociado a la EDO.
(c) Demostrar que las soluciones de la ecuación del péndulo conservan
2
la energı́a: la cantidad E(t) = 12 (y 2 (t)) − cos y 1 (t) es constante
para todo t.
(d) Comprobar que la energı́a sólo se conserva de forma aproximada
para las soluciones numéricas obtenidas por medio del método de
Euler.

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

3. La función error, erf(x), se define usualmente por medio de una integral,


Z x
2 2
erf(x) = √ e−x dx,
π 0
pero también se puede definir como la solución de la ecuación diferencial
2 2
y 0 (x) = √ e−x , y(0) = 0.
π

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.

Solución. La diferencia entre la el valor de la función error calculado


mediante el método de Euler y el valor proporcionado por Matlab para
cada uno de los nodos de la malla se calcula por medio del siguiente
programa.

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);

El resultado de su ejecución se muestra en la siguiente figura.

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.

Solución. Mirando el diagrama de eficiencia vemos que el error 0,002


corresponde a unas 2400 evaluaciones de función. Por tanto, h ≈ 0,00125.
0
10

−1
10
error

−2
10

−3
10

−4
10
1 2 3 4 5
10 10 10 10 10
evaluaciones de funcion

El problema tiene constante de Lipschitz L = 1 (óptima) con res-


pecto a y. En cuanto a la constante C, podemos calcularla exacta-
mente, dado que conocemos y(x) = e−x cos 5x. En efecto, y 00 (x) =
e−x (10 sen 5x − 24 cos 5x). Un sencillo cálculo muestra que y 00 tiene
un único punto crı́tico en x = − 15 arctan(37/70) < 0, que está fuera
del intervalo [0, 3]. Por consiguiente, |y 00 (x)| alcanza su máximo en
uno de los extremos del intervalo, y se obtiene inmediatamente que
máxx∈[0,3] |y 00 (x)| = |y 00 (0)| = 24. Ası́, C = 12, y la cota (2.9) dice que

|y(xn ) − yn | ≤ e3 3 · 12 · 0,00125 ≈ 0,9,

una sobreestimación del error en un factor aproximadamente 450.

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,

y(xn ) − yn = d(xn )hp + O(hp+1 ), d ∈ C 2 ([a, b]).

Lo aplicamos a un problema con dos longitudes de paso distintas, h y


h0 . Demostrar que

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.

Solución. Si h ≈ 0, se tiene que

error(h) = máx ky(xn ) − yn k ≈ máx kd(xn )khp ≈ máx kd(x)khp .


0≤n≤N 0≤n≤N x∈[a,b]

Por consiguiente,
error(h) hp
≈ 0 p.
error(h0 ) (h )
Tomando logaritmos,

log(error(h)) − log(error(h0 )) ≈ p(log h − log h0 ),

de donde se deduce inmediatamente la fórmula para el orden empı́rico.


Para el ejemplo que se nos da,

log(1,011 · 10−8 ) − log(2,699 · 10−7 )


p≈ ≈ 3.
log 0,001 − log 0,003

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?

Solución. El diagrama de eficiencia se puede elaborar por medio del


siguiente programa de Matlab.

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);

El resultado de la ejecución del programa se representa a continuación.


Se observa un orden empı́rico 1/2. No hay contradicción con la teorı́a,
pues el lado derecho no es C 1 ([0, 1]). ¡Incluso es singular!

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

También podría gustarte