errores, optimización y resolución numérica de sistemas … · errores, optimización y...

18
Errores, optimización y resolución numérica de sistemas EDITORIAL UNIVERSITAT POLITÈCNICA DE VALÈNCIA Valentín Gregori Gregori Bernardino Roig Sala

Upload: others

Post on 21-Jul-2020

3 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

EDITORIAL

Errores, optimización y resolución numérica de sistemasValentín Gregori GregoriBernardino Roig Sala

El presente libro es un texto autocontenido sobre la resolución numérica de proble-mas esenciales para alumnos de ingeniería, como el control del error, la optimización y resolución de ecuaciones y sistemas de ecuaciones. Este texto encuentra un hueco entre los textos matemáticos de investigación numérica en los que se estudia la teoría con detalle y se realizan algunas aplicaciones, y aquellos otros más centrados en la ingeniería que sin apenas justi� cación alguna se dedican a enfatizar las apli-caciones. Todos los requisitos teóricos utilizados se han explicitado previamente de forma breve. Los algoritmos o comandos presentados se han escrito de la forma que se ha creído más sencilla en la versión actual de Matlab.

Errores, optimización y resolución numérica de sistemas

Erro

res,

optim

izaci

ón y

reso

luci

ón nu

mér

ica

de si

stem

as

EDITORIALUNIVERSITAT POLITÈCNICA DE VALÈNCIA

Bernardino Roig Sala, actualmente profesor titu-lar en la Escuela Politécnica Superior de Gandia de la Universidad Politécnica de Valencia, también lo ha sido en otras universidades presenciales y no presen-ciales impartiendo asignaturas matemáticas. Es autor de libros y publicaciones docentes y especialista en mecánica computacional y otras aplicaciones numé-ricas de la matemática en donde es autor de publica-ciones de investigación.

Valentín Gregori Gregori es catedrático de univer-sidad que ejerce su docencia como profesor de mate-máticas en la Escuela Politécnica Superior de Gandia de la Universidad Politécnica de Valencia. Ha dirigido varias tesis doctorales y ha publicado algunos libros docentes y un gran número de artículos de investi-gación sobre topología general y métrica fuzzy en revistas internacionales.

Valentín Gregori GregoriBernardino Roig Sala

UPVUPV

ISBN 978-84-9048-318-3

0246P04

Page 2: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente
Page 3: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente
Page 4: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

Errores, optimización y resolución numérica de sistemas

Valentín Gregori Gregori Bernardino Roig Sala

EDITORIALUNIVERSITAT POLITÈCNICA DE VALÈNCIA

Page 5: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

Los contenidos de esta publicación han sido revisados por el Departamento de Matemática Aplicada de la UPV Colección Académica Para referenciar esta publicación utilice la siguiente cita: GREGORI GREGORI, V; ROIG SALA, B. (2015) Errores, optimización y resolución numérica de sistemas. Valencia: Universitat Politècnica Primera edición, 2015 (versión impresa) Primera edición, 2015 (versión electrónica) © Valentín Gregori Gregori

Bernardino Roig Sala

© de la presente edición: Editorial Universitat Politècnica de València Distribución: Telf. 963 877 012 / www.lalibreria.upv.es / Ref.: 6210_01_01_01 ISBN: 978-84-9048-318-3 (versión impresa) ISBN: 978-84-9048-321-3 (versión electrónica) Queda prohibida la reproducción, la distribución, la comercialización, la transformación y, en general, cualquier otra forma de explotación, por cualquier procedimiento, de la totalidad o de cualquier parte de esta obra sin autorización expresa y por escrito de los autores.

Page 6: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

Presentacion

La Universidad Espanola ha emprendido una etapa inedita con el denominadoPlan Bolonia. En el nuevo plan el tiempo del que dispone el profesorado para laimparticion de la docencia matematica se ha reducido drasticamente. De esta manerala clasica clase magistral del siglo anterior se vuelve, en ocasiones, menos expositiva ymas orientada hacia la busqueda de conocimientos en los que el universitario deberainvolucrarse de una manera mas activa.

Este texto encuentra un hueco entre los textos matematicos de investigacionnumerica en los que se estudia la teorıa con detalle y se realizan algunas aplicaciones,y aquellos otros mas centrados en la ingenierıa que sin apenas justificacion alguna sededican a enfatizar las aplicaciones.

El presente libro es un texto sobre la resolucion numerica de problemas esen-ciales para los alumnos de ingenierıa que se graduaran en estos nuevos planes. Ba-sicamente el contenido corresponde a un curso que los autores han impartido enla Escuela Politecnica Superior de Gandia en anteriores anos academicos. El pocotiempo de que se dispone para su imparticion queda patente, en cierta manera, enla ausencia de demostraciones que solo aparecen esporadicamente en letra pequenasi estas permiten entender mejor el capıtulo. Ello, sin embargo, permite una lecturamas fluida del texto.

Este libro sirve de base para primeros cursos de grado enfatizando la partealgorıtmica y computacional y para cursos superiores en donde ya es posible incidircon detalle en todo el contenido del libro.

Para la comprension del texto solo se requieren nociones del analisis matematicoy matricial, ası como una base de algorıtmica y programacion. Todos los requisitosteoricos utilizados se han explicitado previamente de forma breve. Los algoritmoso comandos presentados se han escrito de la forma que se ha creıdo mas sencilla ycompacta en la version actual de Matlab. Obviamente dichos algoritmos se puedenescribir de forma mas general y abarcando mas casuısticas, ahora bien, ello desvıa elenfoque de este libro que incide mas en la comprension de los metodos y conceptostratados. En http://personales.upv.es/˜broig/ se puede encontrar un fichero con to-dos los comandos Matlab incluidos en el texto. Se han recuadrado las ecuaciones masesenciales desde la perspectiva numerica sobre todo para facilitar su uso a estudiantesde primeros cursos.

Los autores agradeceran cualquier sugerencia tendente a mejorar el presentetexto en ediciones sucesivas.

Los autores.

Page 7: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

NOTACION:

En este texto se ha evitado un lenguaje excesivamente simbolico.No obstante, el lector debe conocer la siguiente terminologıa basica que seusa en matematicas y ciencias tecnologicas:

∀ Cuantificador universal. Se lee “para todo” o “para cada”∃ Cuantificador existencial. Se lee “existe”

⇐⇒ Equivalencia proposicional. Se lee “si y solo si”sii Abreviatura de “si y solo si”⇒ Implicacion proposicional. La proposicion de la izquierda

implica la de la derecha. Se lee “implica”| Se lee “tal (tales) que”: Se lee “tal (tales) que”i.e. En latın id est y se lee “es decir”∈ Sımbolo de pertenencia⊂ Sımbolo de inclusion∪ Sımbolo de union∩ Sımbolo de interseccionN Conjunto de los numeros naturales (incluye al cero)N∗ El conjunto N sin el ceroZ El anillo de los numeros enterosQ El cuerpo de los numeros racionalesR El cuerpo de los numeros realesC El cuerpo de los numeros complejos

Page 8: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

Sumario 5

Sumario

1 REPRESENTACION NUMERICA Y TEORIA DE ERRORES 9

1.1 INTRODUCCION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2 REPRESENTACION DE NUMEROS AL ORDENADOR . . . . . . . . . . . 10

1.2.1 El sistema decimal y el binario . . . . . . . . . . . . . . . . . . . . . . 11

1.2.2 Numeros naturales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.3 Numeros enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2.4 Numeros reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2.5 Ejemplo con 4 decimales en binario . . . . . . . . . . . . . . . . . . . . 17

1.2.6 El formato en punto flotante IEEE-754 . . . . . . . . . . . . . . . . . 18

1.2.7 El formato punto flotante de precision doble . . . . . . . . . . . . . . . 19

1.3 CALCULO APROXIMADO DE FUNCIONES . . . . . . . . . . . . . . . . . 22

1.3.1 Teorema de Rolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.3.2 Teorema del valor medio (de Lagrange) . . . . . . . . . . . . . . . . . 22

1.3.3 Teorema de Taylor (formula de Taylor) . . . . . . . . . . . . . . . . . 22

1.3.4 Teorema de Taylor en funciones de varias variables . . . . . . . . . . . 28

1.3.5 Aproximaciones de primer y segundo orden de una funcion de unavariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.3.6 Aproximaciones de primer y segundo orden de una funcion de variasvariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.3.7 Aproximacion de primer orden de un campo vectorial . . . . . . . . . 37

1.4 ERRORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1.4.1 Definiciones de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1.4.2 Observacion sobre el error maximo de truncamiento o redondeo . . . . 40

1.4.3 Definiciones de precision . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1.4.4 Cifras exactas de un decimal . . . . . . . . . . . . . . . . . . . . . . . 41

1.4.5 Cotas del error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

1.5 PROPAGACION DE ERRORES . . . . . . . . . . . . . . . . . . . . . . . . . 42

1.5.1 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

1.5.2 Propagacion del error en operaciones aritmeticas . . . . . . . . . . . . 44

1.5.3 Problemas por cancelaciones . . . . . . . . . . . . . . . . . . . . . . . 45

Page 9: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

6 Sumario

1.5.4 La diferencial de una funcion . . . . . . . . . . . . . . . . . . . . . . . 48

1.5.5 Propagacion del error en funciones . . . . . . . . . . . . . . . . . . . . 49

1.5.6 Propagacion del error en funciones de varias variables . . . . . . . . . 53

1.5.7 Propagacion del error en campos vectoriales . . . . . . . . . . . . . . . 57

1.6 ALGUNAS INDICACIONES PARA LA COMPUTACION . . . . . . . . . . 61

1.7 EJERCICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

1.8 MAPA CONCEPTUAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

2 RESOLUCION DE ECUACIONES 67

2.1 ELEMENTOS DE ANALISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

2.1.1 Teorema de Bolzano . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

2.1.2 Minimizacion de funciones . . . . . . . . . . . . . . . . . . . . . . . . . 68

2.1.3 Convergencia de una sucesion . . . . . . . . . . . . . . . . . . . . . . . 69

2.1.4 Orden de convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

2.1.5 Teorema de completitud de R . . . . . . . . . . . . . . . . . . . . . . . 71

2.2 RESOLUCION DE ECUACIONES NO LINEALES . . . . . . . . . . . . . . 72

2.2.1 Criterios de finalizacion . . . . . . . . . . . . . . . . . . . . . . . . . . 73

2.2.2 Metodo de biseccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

2.2.3 Metodo de regula-falsi . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

2.3 NUEVOS ELEMENTOS DEL ANALISIS . . . . . . . . . . . . . . . . . . . . 81

2.3.1 Funciones contractivas . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

2.3.2 Teorema. Condicion suficiente de contractividad . . . . . . . . . . . . 82

2.3.3 Teorema del punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

2.3.4 Cotas del error en el metodo iterativo del punto fijo . . . . . . . . . . 83

2.3.5 Teorema sobre el orden del metodo iterativo . . . . . . . . . . . . . . . 85

2.4 METODOS ITERATIVOS DE RESOLUCION DE ECUACIONES . . . . . . 85

2.4.1 Metodo iterativo del punto fijo . . . . . . . . . . . . . . . . . . . . . . 85

2.4.2 Metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

2.4.3 Metodo de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

2.4.4 Estudio del caso de raıces multiples en el metodo de Newton . . . . . 96

2.4.5 Aceleracion de la convergencia . . . . . . . . . . . . . . . . . . . . . . 98

2.4.6 Notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

2.4.7 Extension a C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

2.4.8 El comando fzero de Matlab . . . . . . . . . . . . . . . . . . . . . . . 103

2.5 EJERCICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.6 MAPA CONCEPTUAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3 RESOLUCION DE SISTEMAS DE ECUACIONES LINEALES 113

3.1 ELEMENTOS DE ALGEBRA . . . . . . . . . . . . . . . . . . . . . . . . . . 114

3.1.1 Producto escalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

3.1.2 Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Page 10: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

Sumario 7

3.1.3 Angulo entre dos vectores . . . . . . . . . . . . . . . . . . . . . . . . . 118

3.1.4 Aproximaciones del error en un algoritmo iterativo . . . . . . . . . . . 119

3.1.5 Norma matricial, numero de condicion y cotas del error . . . . . . . . 119

3.1.6 Estudio del error en sistemas de ecuaciones lineales . . . . . . . . . . . 122

3.1.7 Ejemplo de propagacion del error en sistemas . . . . . . . . . . . . . . 126

3.1.8 Precondicionado en sistemas lineales . . . . . . . . . . . . . . . . . . . 128

3.1.9 Observacion sobre los numeros complejos . . . . . . . . . . . . . . . . 130

3.2 METODOS DIRECTOS DE RESOLUCION DE SISTEMAS LINEALES . . 131

3.2.1 Resolucion de sistemas simples . . . . . . . . . . . . . . . . . . . . . . 131

3.2.2 Metodo de Gauss y descomposicion LU . . . . . . . . . . . . . . . . . 132

3.2.3 Metodo de Gauss y descomposicion LU con pivotaje . . . . . . . . . . 135

3.3 METODOS ITERATIVOS DE RESOLUCION DE SISTEMAS LINEALES . 140

3.3.1 Convergencia de metodos iterativos matriciales . . . . . . . . . . . . . 141

3.3.2 Criterios de finalizacion . . . . . . . . . . . . . . . . . . . . . . . . . . 143

3.3.3 Metodo Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

3.3.4 Metodo Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

3.3.5 Metodos de sobrerrelajacion . . . . . . . . . . . . . . . . . . . . . . . . 147

3.3.6 Observaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

3.4 EJERCICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

3.5 MAPA CONCEPTUAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

4 OPTIMIZACION Y RESOLUCION DE SISTEMAS DE ECUACIONESNO LINEALES 165

4.1 ELEMENTOS DEL ALGEBRA Y DEL ANALISIS . . . . . . . . . . . . . . 166

4.1.1 Direcciones conjugadas. Ortogonalidad . . . . . . . . . . . . . . . . . . 166

4.1.2 Curvas de nivel y direccion de maximo descenso . . . . . . . . . . . . 168

4.1.3 Clasificacion de puntos crıticos en un campo escalar . . . . . . . . . . 169

4.1.4 Campo vectorial contractivo y teorema del punto fijo . . . . . . . . . . 170

4.2 RESOLUCION DE SISTEMAS POR MINIMOS CUADRADOS . . . . . . . 171

4.2.1 Ejemplo de ajuste polinomico . . . . . . . . . . . . . . . . . . . . . . . 172

4.2.2 Extension a los complejos . . . . . . . . . . . . . . . . . . . . . . . . . 173

4.3 RESOLUCION DE SISTEMAS DE ECUACIONES NO LINEALES . . . . . 174

4.3.1 Criterios de finalizacion de un esquema iterativo . . . . . . . . . . . . 174

4.3.2 Metodo iterativo en varias variables . . . . . . . . . . . . . . . . . . . 175

4.3.3 Metodo de Newton multivariable . . . . . . . . . . . . . . . . . . . . . 177

4.3.4 Metodos cuasi-Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

4.3.5 Observaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

4.4 METODOS DE OPTIMIZACION . . . . . . . . . . . . . . . . . . . . . . . . 185

4.4.1 Criterios de finalizacion de un esquema iterativo de minimizacion . . . 185

4.4.2 Metodo del maximo descenso . . . . . . . . . . . . . . . . . . . . . . . 186

4.4.3 Metodo del gradiente conjugado . . . . . . . . . . . . . . . . . . . . . 191

Page 11: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

8 Sumario

4.4.4 Metodo de minimizacion de Newton . . . . . . . . . . . . . . . . . . . 194

4.4.5 Metodos de minimizacion cuasi-Newton . . . . . . . . . . . . . . . . . 199

4.4.6 La funcion fminunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

4.4.7 Resolucion de sistemas mediante metodos de minimizacion . . . . . . 205

4.5 EJERCICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

4.6 MAPA CONCEPTUAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

BIBLIOGRAFIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Page 12: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

9

Capıtulo 1

REPRESENTACIONNUMERICA Y TEORIA DEERRORES

1.1 INTRODUCCION

Los ordenadores no pueden representar todos los numeros reales deforma exacta con un numero finito de bits, en particular si tienen infinitosdecimales no nulos como ocurre con los numeros irracionales (π,

√2, etc.) o

los periodicos (1/3, 1/11, ...). Ello obliga a limitar la precision numerica enla representacion. Generalmente, en un ordenador se asigna un numero fijode bits para representar un numero. Esta limitacion tambien define el rangode representacion, o sea, el maximo y mınimo numero representable.

La anterior consideracion implica un error de representacion que seanade a otros posibles errores de medida o de cualquier otro origen. Con-forme se realizan operaciones el error se propaga, se acumula y en algunoscasos puede llegar a crecer exponencialmente, provocando grandes errores enel resultado final.

Por ejemplo, el 25 de febrero de 1991, durante la guerra del Golfo, unabaterıa de misiles Patriot americanos en Dharan (Arabia Saudı) no logro in-terceptar un misil Scud iraquı y murieron 28 soldados. La causa fue debidaa los errores numericos provenientes de utilizar truncamiento en lugar de re-dondeo en el sistema que calcula el momento exacto en que debe ser lanzadoel misil [4]. Los ordenadores de los Patriot que han de seguir la trayectoriadel misil Scud, la predicen punto a punto en funcion de su velocidad conociday del momento en que fue detectado por ultima vez en el radar. La veloci-

Page 13: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

10 1. REPRESENTACION NUMERICA Y TEORIA DE ERRORES

dad es un numero real. El tiempo es una magnitud real pero el sistema lacalculaba mediante un reloj interno que contaba decimas de segundo, por loque representaban el tiempo como una variable entera. Cuanto mas tiempolleva el sistema funcionando mas grande es el entero que representa el tiempo.Los ordenadores del Patriot almacenan los numeros reales representados enpunto flotante con una mantisa de 24 bits. Para convertir el tiempo enteroen un numero real se multiplica este por 1/10 y se trunca el resultado (enlugar de redondearlo). El numero 1/10 se almacenaba truncado a 24 bits. Elpequeno error debido al truncamiento se hace grande cuando se multiplicapor un numero (entero) grande, y puede conducir a un error significativo. Labaterıa de los Patriot llevaba en funcionamiento mas de 100 horas, por lo queel tiempo entero era un numero muy grande y el numero real resultante tenıaun error cercano a 0.34 segundos.

Otro ejemplo ocurrio el 4 de junio de 1996 cuando el cohete Ariane 5de la Agencia Europea del Espacio (ESA) exploto 40 segundos despues desu despegue a una altura de 3.7 kilometros tras desviarse de la trayectoriaprevista [5]. Era su primer viaje tras una decada de investigacion que costomas de 7000 millones de euros. El cohete y su carga estaban valorados enmas de 500 millones de euros. La causa del error fue un fallo en el sistemade guiado de la trayectoria provocado 37 segundos despues del despegue.Este error se produjo en el software que controlaba el sistema de referenciainercial (SRI). En concreto, se produjo una excepcion de software debido alintento de convertir un numero en punto flotante de 64 bits, relacionado con lavelocidad horizontal del cohete respecto de la plataforma de lanzamiento, enun entero con signo de 16 bits. El numero mas grande que se puede representarde esta forma es 32768. El intento de convertir un numero mayor causo laexcepcion que provoco que el software de seguimiento de la trayectoria dejarade funcionar y en ultima instancia el accidente.

En este capıtulo se ofrece una introduccion a la representacion computa-cional de numeros, a la precision y al estudio de errores y su propagacion.

1.2 REPRESENTACION DE NUMEROS AL OR-

DENADOR

Para que un ordenador pueda manejar numeros naturales, enteros,racionales, reales o, incluso, complejos, es necesario representar estos numerosen memoria en un formato bien definido y suficientemente flexible. La imple-mentacion fısica (o hardware) mediante circuitos electronicos de estos disposi-tivos requiere una representacion numerica adecuada. Normalmente se utilizauna representacion estatica, que utiliza una cantidad fija de memoria, siempre

Page 14: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

1.2. REPRESENTACION DE NUMEROS AL ORDENADOR 11

la misma, para representar cada tipo de numero. Esta representacion facilitael diseno electronico de estos circuitos. Los lenguajes de programacion de altonivel, como Fortran o C, y la mayorıa de los paquetes matematicos, comoMatlab y Mathematica, utilizan este sistema de representacion de numeros.

Aunque se vera mas adelante (en la seccion 1.4.1) con mas detalle, serecuerda ahora que el error absoluto de aproximar un numero x por otro xes Ea = |x− x|, mientras que el error relativo es Er =

Ea|x| . Habitualmente

se trabaja con cotas de estos errores que son lımites superiores del valorque estos pueden tomar (en la seccion 1.4.5 se vera con mas detalle).

1.2.1 El sistema decimal y el binario

Aunque no es interes de este libro estudiar con detalle los sistemas derepresentacion numerica y, aunque el lector ya sabra transformar de una rep-resentacion decimal a binaria y viceversa, aquı se presenta de modo sucintodichos algoritmos para una presentacion autocontenida de los conceptos nece-sarios en este capıtulo.

Sea x un numero natural representado en el sistema decimal por losdıgitos dmdm−1 . . . d2d1d0 con di ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} i = 0, . . . ,m, yque denotaremos x = (dmdm−1 . . . d2d1d0)10. A d0 se le llama unidades, a d1decenas, a d2 centenas,. . . y el valor de x es x = dm 10m+dm−1 10m−1+ · · ·+d2 102 + d1 101 + d0 100.

Se considera ahora x representado en el sistema binario por los dıgitosrnrn−1 . . . r2r1r0 con ri ∈ {0, 1} i = 0, . . . , n, y que denotaremos x = (rnrn−1 . . . r2r1r0)2. El valor de x en el sistema decimal es x = rn 2n+rn−1 2

n−1+· · ·+ r2 22 + r1 21 + r0 20.

Para pasar del sistema decimal al binario se presenta a continuacion elmetodo de las divisiones euclıdeas enteras sucesivas. Sea x un numero naturalen el sistema decimal. Se divide x entre 2 y se obtiene un cociente c0 y unresto r0. Seguidamente se toma el cociente como dividendo y se vuelve adividir entre 2 obteniendo un nuevo cociente c1 y un nuevo resto r1. Se repiteel proceso anterior hasta que el cociente es 0. En resumen, el algoritmo es:

x = 2 · c0 + r0, 0 ≤ r0 < 2c0 = 2 · c1 + r1, 0 ≤ r1 < 2c1 = 2 · c2 + r2, 0 ≤ r2 < 2

...cn−2 = 2 · cn−1 + rn−1, 0 ≤ rn−1 < 2cn−1 = 2 · 0 + rn, 0 ≤ rn < 2

⇒ x = (rnrn−1 . . . r2r1r0)2 .

Page 15: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

12 1. REPRESENTACION NUMERICA Y TEORIA DE ERRORES

Con una argumentacion que omitimos se puede sistematizar la con-version de un decimal menor que uno a un numero binario como se describe acontinuacion. Si x es un numero decimal menor que 1, entonces x admite laescritura obvia x = 0.d donde d es la parte decimal de x. Se halla el producto(decimal) 2x cuyo resultado se puede escribir como 2x = 2·0.d = a1.d1, dondea1 es entero y d1 la parte decimal del producto obtenido. Se halla ahora elproducto 2 · 0.d1 que se podra escribir, al igual que antes, como a2.d2 dondea2 es un entero y d2 la parte decimal del producto obtenido. Se halla ahorael producto 2 · 0.d2 que se escribira como a3.d3 como antes y ası se va repi-tiendo el proceso. La expresion de x en binario es entonces 0.a1a2a3 . . . . Estaexpresion se termina obteniendo una representacion finita cuando aparece undi nulo o cuando se alcanza el maximo numero de dıgitos representables.

Ejemplo

Escribamos en binario 14.375 y 14.5627.

El algoritmo anterior permite obtener la expresion binaria del entero 14como 1110. Su parte decimal 0.375 se convierte en binario como sigue:

2 · 0.375 = 0.75 por lo que a1 = 0, d1 = 75,2 · 0.75 = 1.5 por lo que a2 = 1, d2 = 5,2 · 0.5 = 1 por lo que a3 = 1, d3 = 0.

Por tanto 0.375 se representa de forma exacta en binario como 0.011. Enconsecuencia, el numero decimal 14.375 en binario se escribe como 1110.011.

La parte decimal 0.5627 del segundo numero se convierte en binariocomo sigue:

2 · 0.5627 = 1.1254 por lo que a1 = 1, d1 = 1254,2 · 0.1254 = 0.2508 por lo que a2 = 0, d2 = 2508,2 · 0.2508 = 0.5016 por lo que a3 = 0, d3 = 5016,2 · 0.5016 = 1.0032 por lo que a4 = 1, d4 = 0032

y ası sucesivamente. Por tanto, 0.5627 es 0.1001 . . . en binario. En conse-cuencia el numero decimal 14.5627 se escribe en binario como 1110.1001 . . .

1.2.2 Numeros naturales

Los numeros se almacenan en variables. Una variable representa untrozo de la memoria del computador. La memoria esta formada por unagran cantidad de bytes y cada byte esta constituido por 8 bits. Un bit puedealmacenar un 1 o un 0. Si un computador tiene, por ejemplo, 32 mega bytes de

Page 16: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

1.2. REPRESENTACION DE NUMEROS AL ORDENADOR 13

memoria (MB) esto significa que tiene 32 ·1024 ·1024 bytes (o 32 ·1024 ·1024 ·8bits).

Una variable x natural o entera positiva (uint -unsigned integer-) estaformada por 4 bytes, es decir 32 bits que denotaremos x31, x30, ... , x2, x1 yx0. El valor numerico decimal representado por la variable x en binario vienedeterminado por:

valor(x) = x31 · 231 + x30 · 230 + ...+ x2 · 22 + x1 · 21 + x0 · 20.

1.2.3 Numeros enteros

Una variable x entera (int -integer-) esta formada por 4 bytes, es decir32 bits que denotaremos x31, x30, ... , x2, x1 y x0 pero en este caso el bit demas a la izquierda se utiliza para indicar el signo. Por tanto, el valor maximorepresentable ahora es inferior al caso anterior (uint). El valor numericodecimal representado por la variable x en binario viene determinado por:

• Si x31 es 0, el valor es positivo o cero y se calcula como:

valor(x) = x30 · 230 + ...+ x2 · 22 + x1 · 21 + x0 · 20.

• Si x31 es 1, entonces x representa un entero negativo y se calcula cons-truyendo una nueva variable y, tal que yi = 1 si xi = 0 e yi = 0 si xi = 1para i = 0, . . . , 31. Se dice que y es el complemento de x respecto 232.De este modo,

valor(x) = −(valor(y) + 1).

Ejemplo

• valor(000...001001) = 1 · 23 + 1 · 20 = 9.

• valor(111...111010) = −(valor(000...000101) + 1) = −(5 + 1) = −6.

Una variable entera (int) siempre utiliza 32 bits, aun cuando el numerosea pequeno. Por otra parte, no es capaz de almacenar numeros demasiadograndes en valor absoluto. El valor maximo y mınimo representable por estetipo de variable es:

Maximo valor = valor(011...111111) = 231 − 1.

Mınimo valor = valor(100...000000) = −231.

Por lo tanto, con una variable entera (int) se pueden almacenar numeros de9 dıgitos aproximadamente.

Page 17: Errores, optimización y resolución numérica de sistemas … · Errores, optimización y resolución numérica de sistemas Valentín Gregori Gregori Bernardino Roig Sala El presente

14 1. REPRESENTACION NUMERICA Y TEORIA DE ERRORES

Observacion

Usualmente se usa el tipo int para almacenar numeros enteros, perotambien existen otros tipos. La Tabla 1.1 muestra los tipos enteros habitua-les y su rango de representacion, es decir, los valores mınimo y maximorepresentables.

Tipo Bits Rango

int 32 [−231, 231 − 1]

short 16 [−215, 215 − 1]

long 64 [−263, 263 − 1]

Tabla 1.1: Tipos de representacion habituales de numeros enteros

El rango de representacion de los enteros es limitado. Si el resultado deuna operacion aritmetica (como la multiplicacion) excede el rango de repre-sentacion se producira un error en la magnitud del valor almacenado.

1.2.4 Numeros reales

Una variable real normal (float) esta formada por 8 bytes, es decir eldoble de un entero. En ella se almacenan numeros reales en formato binario.Por ejemplo, el numero binario 1101.1010 representa en decimal al numero

1·23+1·22+0·21+1·20+1·2−1+0·2−2+1·2−3+0·2−4 = 8+4+1+0.5+0.125 .

Los primeros ordenadores almacenaban los numeros reales en una for-mato llamada representacion en punto fijo, en donde se destinaba unacantidad fija de bits para la parte entera (por ejemplo 32 bits) y el resto a laparte fraccionaria. Por lo tanto, el numero anterior serıa representado en 64bits como:

00000000000000000000000000001101.10100000000000000000000000000000

En esta representacion, el punto que separa la parte entera de la partefraccionaria siempre se ubica en una posicion fija y de ahı su nombre. Elproblema de esta representacion es que el rango de valores representables esel mismo de los numeros enteros. Hace falta un mecanismo que aumente elrango de numeros representables. Para ello se destino una parte de los bits aindicar la posicion del punto, y este formato paso a llamarse representacion