Está en la página 1de 9

Universidad Nacional de Colombia

Análisis Numérico
Tarea 1
Carlos E. Isaza Carvajal
Lenin D. Angarita Rivera
Hernán S. Angarita Garcı́a
Nicolás Castaño Cañas
2018

1. (a) Sea f ∈ C 3 [a, b]. La formula a la hay que llegar tiene la resta f (x0 + h) − f (x0 − h),
note que a cada termino de la resta se le puede aplicar el teorema de Taylor para
encontrar una equivalencia a dicha resta. Sea entonces x0 ∈ (a, b) y h > 0 talque
x0 + h, x0 − h ∈ (a, b). Tenemos que,

f (2) (x0 ) 2 f (3) (d1 ) 3


f (x + h) = f (x0 ) + f (1) (x0 )h + 2
h + 6
h, para algún d1 ∈ (x0 , x0 + h)

y,

f (2) (x0 ) 2 f (3) (d1 ) 3


f (x − h) = f (x + (−h)) = f (x0 ) − f (1) (x0 )h + 2
h − 6
h, para algún
d2 ∈ (x0 − h, x0 ).

Luego,

f (3) (d1 )+f (3) (d2 ) 3


f (x0 + h) − f (x0 − h) = 2hf (1) (x0 ) + 6
h

Como el termino 2h esta dividiendo en la formula buscada, podemos factorizarlo del


lado derecho de la anterior igualdad de la siguiente forma,

f (3) (d1 )+f (3) (d2 ) 2


f (x0 + h) − f (x0 − h) = 2h(f (1) (x0 ) + (2)6
h)

Luego, la despejar f (1) (x0 ) se tiene,

f (x0 +h)−f (x0 −h) f (3) (d1 )+f (3) (d2 ) 2


f (1) (x0 ) = 2h
− (2)6
h

f (x0 +h)−f (x0 −h)


Es decir que 2h
es una aproximación de f (1) (x0 ) y que el error, |f (1) (x0 ) −
f (x0 +h)−f (x0 −h) f (d1 )+f (3) (d2 ) 2
(3)

2h
| = |− (2)6
h | = O(h2 ), es de grado 2 como se querı́a llegar.

1
3 (x 3
Solo falta probar que el primer termino del error es − f 6
0 )h
. Para esto basta probar
(3) )+f (3) (d2 ) 2 (3)
que − f (d1(2)6 h = − f 6(d) h2 con d ∈ (x0 − h, x0 + h). Notese que f 3 es continua
(3) (3)
en [a, b]; además d1 , d2 ∈ (x1 − h, x1 + h), d1 < d2 y f (d1 )+f
2
(d2 )
esta entre f (3) (d1 )
y f (3) (d2 ). Por tanto, se tiene todas condiciones para que por el teorema del valor
intermedio dicho d existe. Luego,

f (3) (d1 )+f (3) (d2 ) f (x0 +h)−f (x0 −h) (3) (d)

2
= f 3 (d) y por tanto |f (1) (x0 ) − 2h
| = |− f 6
h2 | = O(h2 ),
que era el resultado buscado.
(b) El código que hicimos en clase fue:

IMAGENES/codigopunto1miprof.png

El cuál generaba el siguiente gráfico:

IMAGENES/Graficadelpunto1prof.jpg

Hemos modificado el código con la aproximación del punto anterior para visualizar el
comportamiento del error de aproximación a medida que h decrece.

2
IMAGENES/codigopunto1mio.png

Note que hemos cambiado el coeficiente derr pues en la nueva aproximación cambia el
término del error. Sabemos que el error de discretización debe ser teorı́camnte cercano
(”’) 2
a |f (x 6
0 )|h
y vemos que ese comportamiento se mantiene hasta cuando h es aproxi-
madamente 10−5 , mientras que en la aproximación de clase permite un h todavı́a más
pequeño. Otra cosa a notar es que el error en ambos casos se hace muy grande cuando
el h tiende a 0

IMAGENES/Graficadelpunto1.jpg

2. (a) Sea (β, t, L, U ) un sistema de punto flotante. Para calcular cuántos valores diferentes
no negativos se pueden representar por medio de este sistema, se pude razonar de la
siguiente manera:

Cualquier número positivo que se pueda representar con este sistema es de la forma
(a0 .a1 a2 a3 .....at−1 )β e con ai ∈ {0, 1, 2, ...., β − 1} y a0 6= 0. Por tanto a0 puede tomar
β − 1 valores diferentes y ai con i 6= 0 puede tomar β valores diferentes. Por otra parte,
como e puede variar desde L hasta U con incrementos de 1, el número total de valores
diferentes que puede tomar es |L − U | + 1 (|L − U | da el número de unidades entre L
y U para contar cuantos números enteros hay entre U y L incluyendo L y U hace falta
sumar 1). Luego, por principio fundamental del conteo, el número de valores normal-
izados diferentes es (β − 1)β t−1 (|L − U | + 1). Sumando el valor 0, concluimos que el
numero de valores no negativos diferentes que puede representar el sistema (β, t, L, U )

3
es (β − 1)β t−1 (|L − U | + 1) + 1.

(b) Si (β, t, L, U ) = (8, 5, −100, 100) entonces el numero de valores no negativos diferentes
que se pueden representar es (β − 1)β t−1 (|L − U | + 1) + 1 = (8 − 1)85−1 (|−100 − 100| +
1) + 1 = (7)84 (201) + 1 = 5763073.

(c) De forma general para un sistema (β, t, L, U ) de punto flotante la mı́nima mantisa
normalizada que se puede representar es 1 y el mı́nimo exponente es β L por tanto el
xmin = 1(β 0 )(β L ) = β L .

Para encontrar el máximo hay que observar que el valor más grande que se puede
representar es (d0 .d1 d2 d3 .....dt−1 )β U con di = β − 1, al pasarlo a la base 10 tenemos que,

t−1
X t−1
X
−j U
xmax = (β − 1)β β = (β − 1)β U
β −j
j=0 j=0

Utilizando la identidad,
q
X cp (1 − cq−p+1 )
cj =
j=p
1−c
tenemos que,

t−1
X (β −1 )0 (1 − (β −1 )(t−1)−0+1 ) −t
U (1 − (β )
(β − 1)β U β −j = (β − 1)β U ( ) = (β − 1)β ( )
j=0
1 − β −1 1 − β −1
.
Si (β, t, L, U ) = (8, 5, −100, 100) tenemos que,

xmin = β L = 8−100 ≈ 4.9091(10−91 )


y

(1 − (β −t ) −5
100 (1 − (8 )
xmax = (β − 1)β U ( ) = (7)(8 )( ) ≈ 1.6296(1091 )
1 − β −1 1 − 8−1

El siguiente código verifica lo dicho en los ı́tem anteriores,

4
IMAGENES/puntoflotante.png

Al correr el código en Matlab con (β, t, L, U ) = (8, 5, −100, 100) se obtiene,

IMAGENES/matpuntoflotante.PNG

(d) Dado cualquier número x := (a0 .a1 ...)(β e ) normalizado en la base β (sin perdida de
generalidad se pude asumir x no negativo). Al hacer el redondeo, por definición ten-
emos que:

Sı́ at < β2 ,

|f l(x)−x| = |(a0 .a1 ...at−1 )(β e )−(a0 .a1 ...)(β e )| = |(at .at+1 ...)(β e−t )| = |(0.at at+1 ...)(β e−t+1 )|

Como at < β2 , entonces 0.at < β2 (β −1 ) = 12 . Aun más, tenemos que (0.at at+1 ...) < 12 ,
por tanto (0.at at+1 ...)(β e−t+1 ) < 21 (β e−t+1 ).

Sı́ at > β2 ,

|f l(x) − x| = |(a0 .a1 ...at−1 + β 1−t )(β e ) − (a0 .a1 ...)(β e )| = |(a0 .a1 ...at−1 )(β e ) + β e−t+1 −
(a0 .a1 ...)(β e )| = |β e−t+1 − (at .at+1 ...)(β e−t )| = |β e−t+1 − (0.at at+1 ...)(β e−t+1 )| = (1 −

5
0.at at+1 ...)(β e−t+1 )

Como at > β2 tenemos que (0.at at+1 ...) > β2 (β −1 ) = 21 , luego 1 − (0.at at+1 ...) < 1 − 12 = 1
2
por tanto (1 − 0.at at+1 ...)(β e−t+1 ) < 12 (β e−t+1 ).

Sı́ at = β2 , por definición at−1 se redondea al par más cercano. Como at−1 debe ser un
entero, pude ser para o impar. En cualquier caso se tiene que |f l(x) − x| < 12 (β e−t+1 ),
ya que si at−1 es par se harı́a lo mismo que en el caso at < β2 . Si at−1 es impar y se
redondea por encima se procederı́a como en el caso at > β2 , si se redondea por debajo
se procederı́a como en el caso at < β2 .

Ası́, |f l(x) − x| < 12 (β e−t+1 ).

Por otra parte como a0 ≥ 1 se tiene que x ≥ 1(β e ), luego,

|f l(x)−x| e−t+1

|x|
≤ 12 ( β βe
) = 21 (β 1−t ).

Al hacer truncamiento tenemos que:

|f l(x)−x| = |(a0 .a1 ...at−1 )(β e )−(a0 .a1 ...)(β e )| = |(at .at+1 ...)(β e−t )| = |(0.at at+1 ...)(β e−t+1 )| <
β e−t+1 . Razonando como antes, se tiene que x ≥ 1(β e ). Luego,

|f l(x)−x| e−t+1

|x|
≤ (β βe
) = (β 1−t ).

Es claro que la igualdad no siempre se da. Por ejemplo, para el caso de redondeo
si se toma x = 1.23543 y (β, t, L, U ) = (10, 5, −1023, 1024), se tiene que 12 (β 1−t ) =
1
2
(101−5 ) = 5(10−5 ) > 2.42829(10−5 ) = |1.2354−1.23543|
|1.23543|
= |f l(1.23543)−1.23543|
|1.23543|
= |f l(x)−x|
|x|
.

3. (a) El siguiente código es un programa en Matlab que incializa 50.000 cuentas con saldos
entre $100 y $100000, calcula el 5% de interés repartido diariamente y trunca los saldos
en las dos primeras cifras decimales para desviar el resto a una cuenta ilegal que va
guardando esos dineros diariamente y además va ganando interés como una cuenta
cualquiera sobre esos dineros ilegales.

6
IMAGENES/codigopunto3.png

(b) En promedio ¿ alrededor de cuanto dinero espera usted se agregue a la cuenta ilegal di-
ariamente? Como el mı́nimo saldo que puede tener una cuenta son $100 y el máximo son
$100000, entonces lo que hago es calcular e interés diario de cada extremo,que para $100
son $5/365 y para $100000 son $5000/365, luego agrego eso a sus respectivas cuentas y
trunco en las 2 primeras cifras decimales, ası́ $100,0136986301 y $ 100013,6986301369
aproximadamente, por lo que cuando trunco serán para la cuenta ilegal $0,0036986301
y $0,0086301369 respectivamente y aproximadamente. Ası́ pues sumando éstas dos
últimas cantidades y dividiendo en 2 , se tendrá lo que en promedio se le ganará a cada
cuenta de las 50000 cuentas, hablamos de $0,00616438356 aproximadamente, lo que
para 50000 cuentas serán aproximadamente $308 diarios más el incremento de interés
correspondiente para nuestra cuenta ilegal, serán cerca de $310 diarios, esto implica
que aproximadamente tardarı́amos 3225 dı́as en llegar a 1 millón.
(c) Suponga que usted tiene acceso a 100.000 cuentas, cada una inicialmente con un saldo
de $5000. ? Alrededor de cuánto dinero se adicionara a la cuenta ilegal diariamente
en este caso? Para este caso es más fácil, pues sabemos que el 5% de $5000 repartido
diariamente serán $0,684931506849315068 aproximadamente, por lo que al truncar nos
llevarı́amos por cada cuenta cerca de $0,004931506849315068, y como son 100000 cuen-
tas tendrı́as diariamente cerca de $493 y esto implica que tardarı́amos cerca de 2028
dı́as en llegar a nuestro primer millón.

4. Definamos f (π, r) = 43 πr3 y sean π


b y rb aproximaciones. Expandiendo f a través de serie de
Taylor y truncado en el orden lineal obtenemos:

π , rb) − f (π, r) ' f (π, r) + Eπ ∂π f (π, r) + Er ∂r f (π, r)


f (b
Luego, podemos obtener una expresión para el error relativo basándonos en la expansión de
Taylor obtenida anteriormente, es decir:

π , rb) − f (π, r)
f (b Eπ ∂π f (π, r) Er ∂r f (π, r)
' +
f (π, r) f (π, r) f (π, r)

Ahora, remplazamos f y desarrollamos los cálculos correspondientes:

7
π , rb) − f (π, r)
f (b Eπ ∂π 43 πr3 Er ∂r 43 πr3
= 4 + 4 3
f (π, r) 3
πr3 3
πr
Eπ 43 r3 Er 34 3πr2
= 4 3 + 4 3
3
πr 3
πr
Eπ Er
= +3
π r

Como Eππ y Err son los errores relativos de π y r respectivamente, entonces basta con que

π
+ 3 Err < 0, 00001. De la anterior desigualdad, podemos deducir, que existen muchas
combinaciones posibles de tal manera que se satisfaga la inecuación.

Sabiendo esto, fijemos a Eππ = 0, 5 × 10−5 es decir, le damos una precisión a π 5 cifras
significativas correctas. Luego, Err < 0, 16̄ × 10−5 . Cabe resaltar que a medida que se cambia
la precisión de π se obtiene una nueva condición para la exactitud de r.

5. (a) Veamos que la solución del siguiente sistema matricial está mal condiconado, cuando
a ≈ b:
    
a b x 1
= (1)
b a y 0
Sea A la matriz de la ecuación (1), tenemos que:
   
x −1 1
=A
y 0

Por lo que vimos en algebra lineal sabemos que A−1 = 1


det(A)
Adj(A), donde Adj(A) es
 
a −b
la adjunta de la matriz A, por lo tanto tenemos que A−1 = 1
a2 −b2
con esto
−b a
tenemos que:
      
x 1 a −b 1 1 a
= 2 = 2
y a − b2 −b a 0 a − b2 −b

a b
Ası́ tenemos que x = a2 −b2 y y = − a2 −b2 , por lo menos aquı́ ya tenemos un problema,

porque cuando a ≈ b, tenemos que a2 ≈ b2 , por lo tanto a2 − b2 ≈ 0. Por lo tanto


x, y →+ − ∞ dependiendo de la comparación entre a y b, entonces cuando a ≈ b el
sistema matricial esta mal condicionado.
(b) Veamos que para a, b > 0, con a, b ∈ R podemos darle una fórmula estable a z = x + y.
Dado el sistema matricial anterior, vamos a hallar cuanto vale x + y.
El sistema matricial anterior se puede ver como el siguiente sistema de ecuaciones lin-
eales 2 × 2.

8
ax + by = 1 (2)
bx + ay = 0 (3)
Si sumamos las ecuaciones (2) y (3) tenemos que:
ax + bx + ay + by = 1, por lo tanto tenemos que (a + b)(x + y) = 1, como a, b > 0
entonces a + b > 0 y tenemos que:
1
x+y =
a+b
(c) Analizando los puntos (a) y (b) del punto 5, podemos concluir que el enunciado es
verdadero y cita ası́:

”Cuando a ≈ b el problema de resolver el sistema lineal es mal condicionado pero el


problema de calcular x + y está bien condicionado”
El enunciado es verdadero ya que en el sistema matricial, x, y → + − ∞ cuando a ≈ b.
1
En cambio para hallar x + y por el punto anterior tenemos que x + y = a+b , si a ≈ b
1 1
se tiene que x + y ≈ 2a o x + y ≈ 2b , como a, b están fijos, x + y siempre va a tener un
resultado exacto, por lo tanto x + y está bien condicionado.