13
Capítulo 1. Preliminares matemá4cos Métodos Numéricos Carlos Beltrán Álvarez Departamento de Matemá.cas, Estadís.ca y Computación Este tema se publica bajo Licencia: Crea.ve Commons BYNCSA 4.0

Métodos)Numéricos)€¦ · 1.2. LA INTEGRAL DE UNA FUNCION DE UNA VARIABLE REAL 7 Teorema 1.1.6 Supongamos que f: X!Rmcon Xabierto es tal que existen todas las derivadas parciales

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Capítulo  1.  Preliminares  matemá4cos  

Métodos  Numéricos  

Carlos  Beltrán  Álvarez  

Departamento  de  Matemá.cas,  Estadís.ca  y  Computación  

Este  tema  se  publica  bajo  Licencia:  Crea.ve  Commons  BY-­‐NC-­‐SA  4.0  

FACULTAD DE CIENCIAS

UNIVERSIDAD DE CANTABRIA

APUNTES PARA LA ASIGNATURA:

Metodos NumericosTercero de Grado en Fısica

Carlos BeltranProfesor Titular de Analisis Matematico

Departamento de Matematicas, Estadıstica y ComputacionUniversidad de Cantabria

2

Indice general

1. Preliminares matematicos 51.1. Lımites de funciones y sucesiones, continuidad y derivabilidad . . . . . . . . . . . . . . . . . . . . 51.2. La integral de una funcion de una variable real . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3. El teorema de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4. Algunos comentarios genericos sobre aritmetica computacional . . . . . . . . . . . . . . . . . . . 91.5. Exercises. Computer arithmetic: representation and errors . . . . . . . . . . . . . . . . . . . . . . 12

2. Interpolacion y aproximacion de funciones 132.1. Interpolacion polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.1. Un comentario sobre el Teorema de aproximacion de Weierstrass y los polinomios de Taylor 142.1.2. Polinomios interpolantes de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.3. Polinomios interpolantes y funciones derivables . . . . . . . . . . . . . . . . . . . . . . . . 182.1.4. Diferencias divididas de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.5. La eleccion de los nodos y los polinomios de Chebyshev . . . . . . . . . . . . . . . . . . . 22

2.2. Interpolacion polinomial a trozos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.1. Interpolacion lineal a trozos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.2. Trazadores o “splines” cubicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3. El metodo de mınimos cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4. Exercises. Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3. Derivacion e integracion numerica aproximada de funciones 393.1. Calculo aproximado de derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.1. Formulas para la primera derivada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.1.2. Formulas para la segunda derivada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.1.3. Adivinando el futuro sin saber casi nada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.1.4. Calculo de derivadas en presencia de errores de medicion . . . . . . . . . . . . . . . . . . 473.1.5. Derivadas de orden superior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.1.6. Calculo de matrices Jacobianas, gradientes, divergencias y Laplacianos . . . . . . . . . . . 48

3.2. Exercises. Numerical differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.3. Integrales definidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.3.1. Metodos basados en la interpolacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3.2. Metodos de cuadratura Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3.3. Integrales multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.4. Exercises. Numerical integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3

4 INDICE GENERAL

4. La resolucion de ecuaciones y de sistemas de ecuaciones 694.1. Ecuaciones de una variable real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.1.1. El metodo de biseccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.1.2. Metodos de punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.1.3. Metodos de Newton y de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.2. La resolucion de sistemas de ecuaciones no–lineales . . . . . . . . . . . . . . . . . . . . . . . . . . 794.2.1. El metodo de Newton para varias variables . . . . . . . . . . . . . . . . . . . . . . . . . . 794.2.2. Metodo del gradiente o del descenso mas rapido . . . . . . . . . . . . . . . . . . . . . . . . 81

4.3. Exercises. Solving f(x) = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5. Resolucion de problemas de valores iniciales 875.1. Teorıa elemental de los problemas de valor inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.2. Reduccion al caso de problemas de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.3. Metodos basados en la expansion de Taylor: Euler y Euler modificado. . . . . . . . . . . . . . . . 90

5.3.1. Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905.3.2. Metodo de Euler modificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

5.4. Metodos de Runge–Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965.5. Exercises. ODEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6. Problemas resueltos 1036.1. Un globo sumergido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036.2. Una pelota flotando en una piscina grande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056.3. Un planeta en un sistema estelar multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6.3.1. Un planeta como Jupiter orbitando uno y dos soles como el nuestro . . . . . . . . . . . . 1086.3.2. Un planeta como Jupiter orbitando dos soles como el nuestro muy separados . . . . . . . 111

6.4. Puntos de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116.5. Altura del impacto de una bala en un muro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176.6. Exercises: More proposed problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

7. Algunos temas mas alla del alcance de este curso 1217.1. Analisis del error para los metodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217.2. El metodo de Broyden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237.3. Metodos de homotopıa o de continuacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247.4. Metodos de Taylor de orden superior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

1

Capıtulo 1

Preliminares matematicos

Una de las afirmaciones mas famosas de la Historia, tanto por su lucidez como por su fundamental aportacional cambio de paradigma en el conocimiento humano, se la debemos al padre de la Ciencia moderna, GalileoGalilei, en su obra maestra “Il Saggiatore”:

La filosofia e scritta in questo grandissimo libro che continuamente ci sta aperto innanzi a gli occhi(io dico l’universo), ma non si puo intendere se prima non s’impara a intender la lingua, e conosceri caratteri, ne’ qua li e scritto. Egli e scritto in lingua matematica, e i caratteri son triangoli, cerchi,ed altre figure geometriche, senza i quali mezi e impossibile a intenderne umanamente parola; senzaquesti e un aggirarsi vanamente per un oscuro laberinto.

Siguiendo el consejo de este sabio, para evitar perdernos en el oscuro laberinto en el que vivimos, comenzamosestos apuntes con un repaso de algunos resultados (mas o menos) elementales de calculo y analisis numerico.

1.1. Lımites de funciones y sucesiones, continuidad y derivabilidad

Comenzamos recordando la definicion de lımite. Para ello es util recordar que un numero real x0 se dice que esun punto de acumulacion de un conjunto X ⊆ Rn si para cada ε > 0 existe un x ∈ X \{x0} tal que ‖x−x0‖ < ε.Esto es, si uno puede acercarse a x0 arbitrariamente “pisando” solo en puntos de X.

Definicion 1.1.1 Dada una funcion f : X → Rm con X ⊆ Rn, y dado x0 ∈ Rn un punto de acumulacion deX, decimos que f tiene lımite L ∈ Rm en x0 cuando para todo ε > 0 existe δ > 0 tal que 0 < ‖x − x0‖ < δjunto con x ∈ X implica ‖f(x)− L‖ < ε. Escribimos esta propiedad de varias maneras equivalentes:

lımx→x0

f(x) = L, f(x) →x→x0

L, f(x)→ L cuando x→ x0.

Definicion 1.1.2 Dada una funcion f : X → Rm con X ⊆ Rn, y dado x0 ∈ X un punto de acumulacion deX, decimos que f es continua en x0 si lımx→x0

f(x) = f(x0). Decimos que la funcion es continua en A ⊆ X silo es en cada punto de A. Si f es continua en todo su dominio, decimos simplemente que f es continua.

Definicion 1.1.3 Sea {xk}1≤k≤∞ ⊆ Rn una sucesion infinita de vectores reales o complejos. Decimos que lasucesion converge a x si para todo ε > 0 existe algun k0 ≥ 1 tal que k ≥ k0 implica ‖xk − x‖ < ε. Escribimosesta propiedad de varias maneras equivalentes:

lımk→∞

xk = x, xk →k→∞

x, xk →kx, xk → x cuando k →∞.

5

6 CAPITULO 1. PRELIMINARES MATEMATICOS

Las dos definiciones vistas de lımite (para funciones y para sucesiones) se relacionan con el siguiente resultado.

Teorema 1.1.4 Dada una funcion f : X → Rm con X ⊆ Rn, y dado un punto de acumulacion x0 ∈ Rn de X,son equivalentes:

i) lımx→x0f(x) = L

ii) Para cualquier sucesion de vectores {xk}1≤k≤∞ que converja a x0, la sucesion {f(xk)}1≤k≤∞ converge aL.

El conjunto de las funciones continuas definidas en un conjunto X se denota por C(X), aunque si X es unintervalo se abusa ligeramente de la notacion y se denota C[a, b] o C(a, b], etc.

Definicion 1.1.5 (Derivada Direccional, Diferencial, Matriz Jacobiana) Sea f : X → Rm una funciondefinida en un conjunto X ⊆ Rn y sea x0 ∈ X tal que hay un entorno abierto que contiene a x0 y esta contenidoen X. La funcion es diferenciable (o derivable) en x0 si existe una aplicacion lineal L tal que

lımv→0

‖f(x0 + v)− f(x0)− Lv‖‖v‖

= 0.

En este caso, la aplicacion L se llama derivada o diferencial de f en x0 y se denota por Df(x0) con lo quetenemos

Df(x0) : Rn → Rm

v 7→ lımt→0f(x0+tv)−f(x0)

t

Notese que esta aplicacion manda cada vector v a la derivada direccional de f en el punto x0 en la direccion dev. Si f es diferenciable en x0 entonces la aplicacion Df(x) en bases canonicas de Rn y Rm es simplemente lamatriz Jacobiana Jf(x0) cuya entrada (i, j) es ∂fi/∂xj.Decimos que la funcion es derivable en A ⊆ X si lo es en cada punto de A. Si f es derivable en todo su dominio,decimos simplemente que f es derivable. En dicho caso (que tecnicamente solo es posible si el dominio de fes abierto) la funcion x → Df(x) esta definida en el mismo dominio, se llama la derivada de f , y a veces ladenotamos simplemente por f ′. Notese que f ′ va de X al conjunto de aplicaciones lineales de Rn a Rm, esto es,eligiendo bases canonicas, f ′ va de X al conjunto de matrices Rm×n ≡ Rmn. Si m = n = 1, la derivada usuales f ′(x0) = Jf(x0). Si X = [a, b] ⊆ R, en los extremos a, b hablamos de derivadas laterales, no estrictamentede derivadas.

Si Df es derivable, podemos considerar su derivada D(Df) que se denota D2f y se llama segunda derivada, ysiguiendo este mismo metodo las derivadas sucesivas. A veces se usa la notacion:

f (0) = f = D0(f), f (1) = f ′ = D(f), f (2) = f ′′ = D2(f), . . .

El conjunto de funciones k veces diferenciables (esto es, tales que esta bien definida Dk(f)) en un conjuntoX con dichas k derivadas continuas se denota Ck(X,Rm), de forma que se tiene C(X,Rm) ≡ C0(X,Rm) ⊇C1(X,Rm) ⊇ C2(X,Rm) ⊇ · · · . La interseccion de todos esos conjuntos (a veces llamado como el conjunto defunciones infinitamente diferenciables, smooth functions en ingles) se denota C∞(X,Rm). Si m = 1 es habitualescribir Ck(X) en lugar de Ck(X,R).Por el momento, esta definicion tiene sentido solo cuando X es un conjunto abierto. Sin embargo, frecuentementeutilizaremos la notacion f ∈ Ck[a, b] que no esta incluida en la discusion anterior por no ser [a, b] abierto.Extendemos pues la definicion para cualquier X ⊆ Rn: dado X ⊆ Rn, definimos Ck(X,Rm) como el conjuntode funciones definidas en X que pueden extenderse a algun conjunto abierto U ⊇ X de forma que la extensionesta en Ck(U,Rm).

1.2. LA INTEGRAL DE UNA FUNCION DE UNA VARIABLE REAL 7

Teorema 1.1.6 Supongamos que f : X → Rm con X abierto es tal que existen todas las derivadas parciales deorden k y que son continuas con respecto a x. Entonces, f ∈ Ck(X,Rm).

En virtud del Teorema 1.1.6, la gran mayorıa de las funciones con las que trabajaremos son de tipo C∞,esto es infinitamente diferenciables. Entran en esta categorıa los polinomios, las funciones trigonometricas ehiperbolicas, la exponencial, el logaritmo (definido en (0,∞)), la raız cuadrada (que pertenece a C∞(0,∞) y aC[0,∞)), etc.Tres de los resultados basicos mas importantes del calculo son el Teorema de los Valores Intermedios (TVI),el Teorema de los Valores Extremos (TVE) y el Teorema del Valor Medio (TVM), que resulta imprescindibleconocer y diferenciar. El primero y el tercero de ellos son validos para funciones de varias variables (el segundo,no) y los dos primeros tienen corolarios bien conocidos.

Teorema 1.1.7 (Teorema de los Valores Intermedios) Sea f ∈ C(X) con X ⊆ Rn conexo por caminos(por ejemplo, X un intervalo). Si y1, y2 estan en la imagen de f entonces todo numero entre y1 e y2 esta tambienen la imagen de f . Mas generalmente, la imagen de conjunto conexo por una funcion continua es siempre unconjunto conexo.

Corolario 1.1.8 (Teorema de Bolzano) Sea f ∈ C(X) con X ⊆ Rn conexo por caminos (por ejemplo, Xun intervalo). Si f(a) y f(b) tienen distinto signo, entonces existe al menos un c en X tal que f(c) = 0.

Teorema 1.1.9 (Teorema del Valor Medio) Sea f ∈ C[a, b] y f derivable en (a, b). Entonces, existe unnumero c ∈ (a, b) tal que

f ′(c) =f(b)− f(a)

b− a.

Corolario 1.1.10 (Teorema de Rolle) Sea f ∈ C[a, b] y f derivable en (a, b). Si f(a) = f(b) entonces existec ∈ (a, b) tal que f ′(c) = 0.

El Teorema de Rolle tiene una version mas fuerte que no es habitual encontrar en textos basicos de calculo, yque se obitene aplicando el resultado basico a f , a f ′, y ası sucesivamente hasta llegar a f (k):

Corolario 1.1.11 (Teorema de Rolle Generalizado) Sea f ∈ C[a, b] y f k veces derivable en (a, b). Si falcanza el mismo valor en k + 1 puntos distintos de [a, b] entonces existe c ∈ (a, b) tal que f (k)(c) = 0.

Teorema 1.1.12 (Teorema de los Valores Extremos) Sea f ∈ C(X) con X ⊆ Rn compacto (esto es,cerrado y acotado). Entonces, existen c1, c2 ∈ X tales que f(c1) ≤ f(x) ≤ f(c2) para todo x ∈ X.

En las condiciones del Teorema 1.1.12, es un resultado elemental estudiado en los primeros cursos de calculoque si f es derivable en (a, b) entonces c1 y c2 solo pueden ser puntos en los que la derivada se anula, o bien losextremos del intervalo. Esto se demuestra facilmente utilizando los teoremas 1.1.9 y 1.1.12.De forma similar, si f : X → R con X ⊆ Rn es diferenciable y si f alcanza su maximo o su mınimo en x ∈ Xentonces o bien x esta en la frontera de X o bien todas las derivadas parciales se anulan en x, esto es, el gradientede f en x es 0.

1.2. La integral de una funcion de una variable real

No trataremos de exponer aquı toda la teorıa que lleva a la definicion de la integral de una variable real (cuestionque merecerıa todo un curso tratandolo con rigor, y que solo llego a ser entendida correctamente a partir demediados del Siglo XX con la aparicion de la Integral de Lebesgue). En su lugar consideraremos una definicionsimplificada valida unicamente para funciones continuas en [a, b]:

8 CAPITULO 1. PRELIMINARES MATEMATICOS

Definicion 1.2.1 Dada f ∈ C[a, b], definimos su integral como∫ b

a

f(x) dx = lımn→∞

b− an+ 1

n∑i=0

f

(a+ i

b− an

).

Esto es, dado n tomamos la media ponderada de los valores de f en los n+ 1 puntos que se obtienen al dividir[a, b] en n partes iguales, y tomamos entonces el lımite de esa cantidad.

Pertenece al ambito de los cursos de integracion ver que la definicion que hemos dado coincide con la definicionde la integral definida (de Riemann y de Lebesgue) para el caso de f ∈ C[a, b].Un resultado que no se suele contar en los libros de texto basicos pero que es muy util conocer es el Teoremadel Valor Medio Ponderado para Integrales (TVMPI):

Teorema 1.2.2 (Teorema del Valor Medio Ponderado para Integrales) Sean f, g ∈ C[a, b].Supongamosque g no cambia se signo en [a, b]. Entonces, existe c ∈ (a, b) tal que∫ b

a

f(x)g(x) dx = f(c)

∫ b

a

g(x) dx.

Cuando g ≡ 1 obtenemos el conocido resultado que nos dice que si f ∈ C[a, b] entonces f alcanza su valorpromedio de f , esto es que existe c ∈ (a, b) tal que

f(c) =1

b− a

∫ b

a

f(x) dx.

Recordemos asımismo otro de los pilares fundamentales del analisis matematico:

Teorema 1.2.3 (Teorema Fundamental del Calculo) Sea f : [a, b]→ R continua. Entonces,

F (x) =

∫ x

a

f(t) dt

es una primitiva de f , en el sentido de que F ′(x) = f(x) para todo x ∈ (a, b), y de la misma manera en a, butilizando las derivadas laterales. Es mas, sea G cualquier primitiva de f en ese mismo sentido. Entonces, F (x)y G(x) difieren a lo mas en una constante, y se tiene∫ x

a

f(t) dt = G(x)−G(a), esto es G(x) = G(a) +

∫ x

a

f(t) dt.

La ultima afirmacion del Teorema Fundamental del Calculo suele llamarse Regla de Barrow.

1.3. El teorema de Taylor

Los polinomios de Taylor son una de las herramientas fundamentales para el estudio de los metodos numericos.Recordemos el siguiente resultado.

Teorema 1.3.1 (Teorema de Taylor con Resto de Lagrange y de Cauchy) Supongamos que f ∈ Cn[a, b],que fn+1 existe en (a, b) y que x0 ∈ [a, b]. Entonces, para cada x ∈ [a, b] existe ζx ∈ (x0, x) tal que

f(x) = Pn(x) +Rn(x),

1.4. ALGUNOS COMENTARIOS GENERICOS SOBRE ARITMETICA COMPUTACIONAL 9

donde

Pn(x) = f(x0) + f ′(x0)(x− x0) +f ′′(x0)

2!(x− x0)2 + · · ·+ f (n)(x0)

n!(x− x0)n =

n∑k=0

f (k)(x0)

k!(x− x0)k

es el n–esimo polinomio de Taylor para f respecto a x0 y Rn(x) (llamado error de truncamiento) es

Rn(x) =f (n+1)(ζx)

(n+ 1)!(x− x0)n+1,

que se suele llamar resto de Lagrange. Es mas, si f ∈ Cn+1[a, b], podemos escribir f(x) = Pn(x) +Sn(x) donde

Sn(x) =

∫ x

x0

fn+1(t)

n!(t− x0)n dt,

que se suele llamar resto de Cauchy.

Si dejamos tender n a infinito en el teorema 1.3.1, suponiendo que f es de tipo C∞, obtenemos una expresionllamada serie de Taylor:

∞∑k=0

f (k)(x0)

k!(x− x0)k.

Para muchas de las funciones habituales y para todos los x0 en su dominio, se tiene que esta serie formal coincidepunto a punto con la funcion original, en un intervalo abierto que contiene a x0. Sin embargo, no siempre escierta esta igualdad. Cuando se cumple decimos que tenemos una funcion analıtica (o Cω), una propiedad masrestrictiva que ser C∞, esto es Cω(X) ( C∞(X).En el caso particular x0 = 0 los polinomios de Taylor se suelen llamar polinomios de Maclaurin y las series deTaylor, las series de Maclaurin.El siguiente resultado sera util en varias ocasiones.

Teorema 1.3.2 Sean g, u dos funciones continuas en x0 de forma que u es derivable en x = x0 y u(x0) = 0.Entonces, f(x) = g(x)u(x) es derivable en x = x0 y f ′(x0) = g(x0)u′(x0).

Demostracion. Usamos la definicion de la derivada como lımite:

lımx→x0

f(x)− f(x0)

x− x0= lımx→x0

g(x)u(x)

x− x0= g(x0)u′(x0),

luego el lımite existe y vale lo que afirma el teorema.�

1.4. Algunos comentarios genericos sobre aritmetica computacional

Estamos acostumbrados a operar utilizando las reglas habituales que hacen conmutativos a la suma y al pro-ducto, que permiten el uso de las propiedades asociativa y distributiva, que proporcionan igualdades muy utilescomo (

√2)2 = 2 o log(2/3) = log 2 − log 3, y desigualdades tambien utiles como a > b, c > d ⇒ a + c > b + d

teniendo muchas de estas propiedades un efecto importantısimo en nuestra capacidad de comprension del mundo.Estas propiedades son ciertas para los numeros reales (muchas de ellas, tambien para los complejos), perolamentablemente pueden fallar cuando utilizamos numeros en la calculadora o el ordenador. Por ejemplo, si

10 CAPITULO 1. PRELIMINARES MATEMATICOS

dividimos 1 por 2, el resultado lo dividimos por 2 y ası sucesivamente, en un numero finito de pasos el ordenadornos dara el resultado 0.Este problema es inevitable, dado que por muy potente que sea un ordenador solo contendra una cantidad finitade informacion y es imposible poder representar en el de forma general un numero con una cantidad de cifrasarbitrariamente grande en su expansion decimal o binaria. Por ejemplo, no existe ni existira jamas un ordenadoren el que podamos escribir el numero π con toda su precision. ¿Que podemos esperar entonces?El problema de como representar numeros en ordenadores y calculadoras de una forma lo mas eficaz posible(esto es, de forma que las dificultades expresadas mas arriba pasen desapercibidas en la mayorıa de aplicaciones)ha sido discutido durante decenas de anos, y cuando los ordenadores adquirieron una importancia fundamentalen el desarrollo de la ciencia y en el mantenimiento de la paz mundial se hizo necesario alcanzar un estandarque pudiese ser utilizado por todos a la vez, de modo que, aunque nadie pudiese representar por ejemplo π conexactitud, sı que estuviese garantizado que todo el mundo lo representase de la misma manera, evitando asımuchos errores en la comunicacion y en el calculo de resultados.La importancia de los ordenadores es anterior al establecimiento de este estandar (¿Habrıa observado YuriGagarin nuestro planeta desde ahı arriba, existirıa el seguro mundial contra ambiciones llamado “destruccionmutua total y asegurada”, sin los ordenadores primigenios? Estos sucesos son anteriores al estandar de repre-sentacion actual.) pero la aritmetica computacional es mucho mejor comprendida desde que en 1985 el Institutefor Electrical and Electronic Engineers, IEEE, de los Estados Unidos, publico el estandar que se utiliza hoy endıa. Hay, esencialmente, una unica variacion de un procesador a otro, a saber, el numero de bits. Antiguamentelos procesadores de 32 bits eran los mas habituales, a fecha de hoy (julio de 2017) son los de 64 bits los quetienen la mayorıa de los PCs de sobremesa, pero existen maquinas potentes con mayor precision usadas en loscalculos de las grandes companıas y de los gobiernos mas poderosos del planeta. Tarde o temprano el estandaren los ordenadores personales pasara a ser el de 128 bits y seguramente mas aun en el futuro, pero por muchoque crezca siempre sera un numero finito.Dado que hacer una exposicion general es demasiado abstracto, nos centraremos en el estandar IEEE de 64 bits,que nos permitira comprobar las afirmaciones que hagamos usando nuestros ordenadores.Los llamados “numeros en doble precision” o “numeros en coma flotante de 64 bits” o “numeros en coma flotantelargos”, se representan por 64 cifras binarias (1’s o 0’s): la cadena

s (1 bit)︸ ︷︷ ︸signo

c (11 bits)︸ ︷︷ ︸caracterıstica

m (52 bits)︸ ︷︷ ︸mantisa

representa el numero(−1)s 2c−1023 1.m,

donde hemos de entender que tanto m como c estan escritos en binario. El numero 1023 se escribe en binariocomo 01111111111 (el primer 0 lo podemos quitar, pero ası tiene 11 cifras). Por lo tanto el numero

0 01111111111 0000000000000000000000000000000000000000000000000000

representa a:(−1)0 20 1,0 = 1,

y es facil generar mas ejemplos usando esta regla. Algunas excepciones a la regla son:

Cuando la caracterıstica es 00000000000 la formula para representar el numero se convierte en

(−1)s 2−1023 0.m,

de forma que puede codificar el numero 0 (que puede tener signo, notese).

1.4. ALGUNOS COMENTARIOS GENERICOS SOBRE ARITMETICA COMPUTACIONAL 11

Cuando la caracterıstica es 11111111111, si la mantisa es todo ceros el numero es +∞ o −∞ dependiendode si s = 0 o s = 1. Si la mantisa no es todo ceros, el numero es NaN (“not a number”), por ejemplo elprocesador devuelve este valor si le preguntamos cuanto vale 0/0, ∞−∞, u otras indeterminadas.

Si bien el detalle tecnico de estas consideraciones es muy farragoso, podemos extraer algunas verdades practicasque son las que mas nos interesan en este curso:

En nuestros ordenadores se puede representar un subconjunto finito de los numeros reales, siendo elcardinal de este conjunto menor que 264.

Todos los numeros (senalamos que ±∞ y NaN no son numeros propiamente dichos) representables en elestandar IEEE de 64 bits son racionales. En particular, no podemos escribir exactamente

√2, π, e, 1/3, ni

ningun otro numero con infinitas cifras binarias.

Algunos numeros que se pueden escribir facilmente en notacion decimal, por ejemplo 1/5, no tienenrepresentacion finita en binario, luego no se pueden representar exactamente en nuestros ordenadores conel estandar de IEEE (obviamente, podemos representarlo de otras maneras).

El numero mas grande que podemos escribir es 21023(2 − 2−52), y el mas pequeno pero mayor que 0 es2−1074.

Al escribir un numero en el ordenador, el procesador toma el numero representable en coma flotante mascercano al que le damos, tomando en caso de que haya dos a la misma distancia el mas cercano a 0.

Al operar con numeros, los procesadores supuestamente devuelven el numero representable mas cercanoal resultado verdadero de la operacion (operacion que recibe como input numeros en coma flotante).

Estas aproximaciones (en el input y en la operacion) hacen que en cada operacion computacional se genereun (normalmente muy pequeno) error de redondeo.

El numero mas grande tal que al anadirlo a 1 sigue siendo 1 se llama “unidad de redondeo”, vale ε = 2−53,y nos da la precision relativa esperada en los calculos. Por ejemplo, al sumar dos numeros a, b podemosesperar que el resultado sea (a + b)(1 + δ) donde 0 ≤ |δ| ≤ ε. Lo mismo para la resta, el producto y ladivision.

Hay unas pocas operaciones no recomendables, que deberıamos evitar en la medida de lo posible porfavorecer la aparicion de errores de redondeo (¡en ocasiones, seran inevitables! Lo veremos en el capıtulo3): restar dos numeros muy parecidos entre sı, dividir por un numero muy pequeno, multiplicar un numeromuy pequeno por otro muy grande, o sacar la raız cuadrada de un numero muy pequeno.

Las propiedad conmutativa de la suma y el producto sı se mantiene, pero no ası la asociativa ni ladistributiva. Probemos por ejemplo a escribir (253 + 1)− 253 frente a (253− 253) + 1. ¡Notese que estamosusando una de las operaciones poco recomendables!

12 CAPITULO 1. PRELIMINARES MATEMATICOS

1.5. Exercises. Computer arithmetic: representation and errors

Exercise 1.1

Let M ,m,δ be respectively the largest number, the smallest nonzero and the smallest but greater than 1 IEEE64 bits number. Check the result of computing the following operations:

M+1, M+M, 3∗M, m/2, m−m/2, (m+m)/3, 1+δ/2, (2+δ)/2,M−M+1, M+1−M, ,m+1−m.

Do the usual associative and conmutative rules apply to this representation of numbers?

Exercise 1.2

Assume that we attempt to compute the harmonic series∑n≥1

1n using Matlab by simply adding one term after

another. What would be the result? Try to deduce a theoretic estimate. How long would it take to check thecomputation with Matlab?

Exercise 1.3

Same question as above but with∑n≥1

12n and

∑n≥1

1n! .

Exercise 1.4

Write down a program that causes an overflow error, and a program that causes an underflow error.

Exercise 1.5

Write down a program that computes exactly n! where n is a positive integer. Which is the largest n that theprogram can work for?

Exercise 1.6

Same question as before but with n2 and nn.

Exercise 1.7

Write down a program that finds the greatest integer n with the property that all integers up to n are representedexactly in IEEE 64 bits (of course you can figure out this number from the theory!). Which is the largest integeractually representable in this notation?

Exercise 1.8

Write down a program that writes the number “99999...” until it becomes infinity. Which is the largest non–infinity number obtained this way?

Exercise 1.9

Same as above but with “0.000....001” (until it becomes equal to 0).