• No se han encontrado resultados

1. Introducción 1. Julio C. Carrillo E. Escuela de Matemáticas, UIS

N/A
N/A
Protected

Academic year: 2021

Share "1. Introducción 1. Julio C. Carrillo E. Escuela de Matemáticas, UIS"

Copied!
24
0
0

Texto completo

(1)

An´

alisis Num´

erico

Julio C. Carrillo E.

(2)

Ser capaz de automatizar los c´alculos con una computadora es una habilidad esencial para los ingenieros, matem´aticos y cient´ıficos. Aun-que hay una amplia variedad de problemas pr´acticos en cuya solu-ci´on las computadoras se utilizan, tambi´en hay un n´ucleo de ideas comunes a muchos c´alculos con computadoras y muchas disciplinas profesionales.

1.

Terminolog´ıa

La terminolog´ıa que a continuaci´on se define, busca servir de gu´ıa, m´as que ser un ejercicio de pureza sem´antica. Esta terminolog´ıa ser-vir´a adem´as para establecer el contexto en el cual se utilizaran las definiciones de t´erminos en el resto del curso.

(3)

1.1. C´alculo num´erico y simb´olico

Un c´alculo num´erico involucra n´umeros, a diferencia de los s´ımbolos para los cuales los n´umeros son representados en una ecuaci´on. En c´alculo num´erico, por lo tanto, se produce un resultado num´erico y no una expresi´on matem´atica. Cuando se eval´ua una expresi´on num´erica, se realizan c´alculos num´ericos. En contraste, un c´alculo simb´olico involucra la manipulaci´on de s´ımbolos matem´aticos sin que necesariamente ellos hagan referencia a los valores num´ericos que tales s´ımbolos puedan tomar. As´ı,

1,862 − 1

1,86 − 1 = 2,86 es un c´alculo num´erico y

x2 − 1

x − 1 = x + 1

(4)

Un aspecto importante del c´alculo num´erico es el uso de aproxima-ciones en lugar de valores num´ericos exactos. De hecho, parte im-portante del c´alculo num´erico consiste en obtener la aproximaci´on de cantidades que no se pueden calcular exactamente mediante un n´umero finito de d´ıgitos. Por ejemplo, la fracci´on 1/3 es una expre-si´on simb´olica que representa la diviexpre-si´on del entero 1 por el entero 3. Cuando se eval´ua esta expresi´on a mano, o mediante una compu-tadora, se obtiene como resultado una expresi´on num´erica truncada, la cual depende de cuantos d´ıgitos decimales se permiten en la re-presentaci´on de tal resultado. As´ı, el resultado puede ser 0,333333, 0,33333333 o alg´un otro valor. Igualmente, el valor de π utilizado en un programa de computadora ser´a una aproximaci´on truncada del valor simb´olico exacto. Cuando un humano o una computadora rea-liza operaciones matem´aticas con cantidades num´ericas, tales como 0,33333 en lugar de 1/3, el proceso es llamado c´alculo num´erico. El c´alculo simb´olico puede involucrar s´ımbolos, como x, n´umeros

(5)

racio-nales, como 1/3, o n´umeros trascendentes, como π, sin que exista restricci´on alguna sobre el n´umero de d´ıgitos asociados con estos s´ımbolos.

Los c´alculos num´ericos son realizables con lenguajes de programaci´on tales como Fortran, Basic, Pascal, C, C++ y Java. La representaci´on de los c´alculos num´ericos en las computadoras se realizan mediante una representaci´on binaria (i.e., mediante 0 y 1). As´ı, cuando a una variable se le asigna un valor num´erico, la computadora lo convierte a un n´umero binario y de esta manera lo almacena en su memo-ria. Como no todos los n´umeros decimales pueden ser representados exactamente en base 2, el hecho de asignarle un valor num´erico a una variable introduce una aproximaci´on. El error en esta aproximaci´on contribuye a subsecuentes errores en la evaluaci´on de formulas que utilizan esta variable. Los valores que surgen al trabajar con valo-res num´ericos son usualmente peque˜nos. En algunos casos, errores num´ericos peque˜nos pueden ser significativos.

(6)

Los c´alculos simb´olicos pueden ser realizados por programas de compu-tadora (software) tales como Reduce R, Derive R, Macsyma R, y Mathe-matica R. Tales c´alculos pueden realizarse sin las aproximaciones que son necesarias para el c´alculo num´erico. En general, esto hace que los resultados num´ericos sean obtenidos m´as r´apidamente con un c´alculo num´erico que con la evaluaci´on num´erica de un c´alculo simb´olico. El c´alculo simb´olico es un aspecto complementario e importante de la inform´atica, sin embargo, los c´alculos simb´olicos son utiliza-dos ´unicamente para resaltar el comportamiento fundamental de los c´alculos num´ericos.

1.2. M´etodos num´ericos y algoritmos

Aunque “m´etodo num´erico” suele considerarse como sin´onimo de “al-goritmo num´erico”, no es as´ı. Un m´etodo num´erico es una descrip-ci´on matem´atica de los c´alculos a realizar; un algoritmo num´erico es

(7)

una sucesi´on precisa de acciones para obtener un resultado que se desea obtener. La distinci´on entre ellos reconoce impl´ıcitamente que un buen m´etodo (i.e., uno que tiene unas propiedades matem´aticas convenientes) puede ser implementado con diferentes algoritmos, es posible que un algoritmo sea mejor, por alguna raz´on, que otro al-goritmo que involucra el mismo m´etodo.

Muchas de las empresas humanas involucran algoritmos. Un prop´osito espec´ıfico puede ser obtenido mediante diferentes m´etodos, y cada m´etodo puede realizarse con diferentes algoritmos. Por ejemplo, exis-ten varias formas de obexis-tener una taza de cafe. Podr´ıa utilizarse una cafetera de filtro, una m´aquina de caf´e expreso, o cualquier otro dis-positivo. Una vez el “m´etodo mec´anico” es elegido, uno puede utilizar m´as de un algoritmo para elaborar el caf´e. Por ejemplo, puede utili-zar granos de caf´e y otro caf´e molido.

El que un algoritmo de elaboraci´on del caf´e haga o no una diferencia significativa depende de la precisi´on y la exactitud del paladar. La

(8)

elecci´on del algoritmo puede ser tambi´en influenciada por el uso que se le de a la taza de caf´e. As´ı, es posible que un algoritmo para obtener un capuchino sea m´as apropiado para obtener una taza de caf´e cuando se consume un postre muy fino o un desayuno elegante, mientras que un algoritmo para obtener una taza de caf´e mediante una cafetera de filtro es m´as apropiado cuando se estudia tarde en la noche.

En general, la elecci´on de un algoritmo la determina el balance al-tamente subjetivo de tres criterios: f´acil de entender, exactitud en el logro del objetivo propuesto, y eficiencia en el uso de recursos inform´aticos.

Una vez el algoritmo es escogido, debe ser implementado en un c´odigo de computadora, o simplemente, c´odigo. Un c´odigo es la traducci´on de un algoritmo es una sucesi´on de declaraciones en un lenguaje de computadora (o lenguaje de programaci´on) en particular. Al igual que un m´etodo puede ser implementado por diferentes algoritmos,

(9)

tambi´en un algoritmo puede ser implementado mediante diferentes c´odigos. La forma de obtener un c´odigo en un lenguaje de progra-maci´on que sea eficaz, es un asunto que se debe discutir despu´es.

1.3. M´etodos num´ericos y an´alisis numerico

El an´alisis num´erico es el estudio de los m´etodos num´ericos. Es po-sible realizar el an´alisis num´erico sin utilizar una computadora. De hecho, muchas de las t´ecnicas utilizadas hoy d´ıa fueron desarrolladas mucho antes de la presente era digital. Cuando los matem´aticos, inge-nieros y cient´ıficos no pueden encontrar una soluci´on anal´ıtica exacta de un problema pr´actico, ellos desarrollan procedimientos secuen-ciales para calcular aproximaciones de tal soluci´on anal´ıtica. En la ´epoca en que los c´alculos se realizaban manualmente, la importancia de minimizar esfuerzos mientras se maximiza la precis´on permiti´o el desarrollo del an´alisis num´erico como una rama de las matem´aticas.

(10)

El ´enfasis de an´alisis num´erico es mas acerca de entender el com-portamiento general de los m´etodos num´ericos y menso sobre como aplicar estos m´etodos a la soluci´on de un problema en particular. La invenci´on de los computadores digitales modernos y sus aplicaciones a todos los aspectos de las ciencias y la industria a aumentado la importancia del an´alisis num´erico.

Los resultados del an´alisis num´erico ayudan a elegir un m´etodo apro-piado y el algoritmo. Ellos tambi´en dan informaci´on a priori impor-tante sombre las limiimpor-tantes del m´etodo y una estimaci´on de la pre-cisi´on (accuracy) del resultado obtenido. Al usar los resultados del an´alisis num´erico, un programador pude incrementar la probabilidad que el resultado obtenido este m´as cercano de la soluci´on “verdade-ra”. Sin el an´alisis num´erico, los programadores podr´an descubrir los m´eritos de cada m´etodo por experimentaci´on (ensayo y error), pero tambi´en, el puede suceder que sea dif´ıcil generalizar el conocimiento ganado durante el desarrollo de cualquier otro programa.

(11)

De acuerdo con esta perspectiva, este curso de an´alisis num´erico bus-ca ser intermedio entre el an´alisis num´erico y la implementaci´on de t´ecnicas num´ericas. Por esto, los resultado del an´alisis num´erico ser´an utilizados para anticipar el desempe˜no de los m´etodos num´ericos y para explicar la diferencia entre los correspondiente m´etodos. Aun-que la experimentaci´on puede ser usada para motivar la comprensi´on, esta nunca podr´a ser un substituto del an´alisis.

2.

Sistemas num´

ericos y errores de c´

alculo

Es necesario considerar los m´etodos para representar n´umeros en un computador y los errores que se generan por esta representaci´on. Tambi´en es necesario considerar las fuentes de los diferentes tipos de errores computaciones y su subsecuente propagaci´on.

(12)

2.1. Fuentes de error

Desde el punto de vista de los m´etodos num´ericos, usualmente in-teresa considerar las fuentes de error que puedan surgir debido a:

1. Errores de c´omputo por hardware (misiles patriot, guerra del Golfo P´ersico). Anterior a la era de los computadores estos errores proven´ıan de los c´alculos num´ericos realizados a mano; en la actualidad, se refiere en especial al error que es producto del dise˜no en la l´ogica de los procesadores de los computadores. 2. Datos cr´ıticos incorrectos.

3. Errores en el software (M´etodos num´ericos y algorit-mos) (bugs).

(13)

4. Errores debido al c´alculo num´erico o errores de m´aquina (chopping and rounding errors): dado que la aritm´etica que rea-liza una calculadora o una computadora (rep. decimal finita) es distinta de la aritm´etica de los n´umeros reales con la cual esta-mos acostumbrados a trabajar (rep. decimal finita o infinita). Desde el punto de vista del an´alisis num´erico, a parte de lo anterior, tambi´en interesan las fuentes de error ocasionadas por,

1. Modelado de un problema f´ısico.

2. Errores de programaci´on (An´alisis num´erico) (blunder ) 3. Incertidumbre de los datos (inestabilidad num´erica, ill

con-ditioned problems)

(14)

3.

Representaci´

on de n´

umeros en

compu-tadoras

En general, los computadores tienen un modo entero y un modo de punto flotante para representar los n´umeros. El primero modo es uti-lizado para representar n´umeros enteros y el segundo para represen-tar n´umeros reales. La representaci´on de punto flotante de n´umeros reales es muy cercana a lo que es llamada la notaci´on cient´ıfica.

Sea β que denota la base del n´umero a ser usado en la computadoraa

Entonces un n´umero no nulo x es almacenado en la computadora esencialmente de la forma

x = σ · (.a1a2 · · · an)β · βe, (1)

a

Los n´umeros utilizados por computadoras son decimales. Muchos compu-tadores utilizan base 2 (binaria), o alguna de sus variantes como en base 8 (octal) o base 16 (hexadecimal).

(15)

con σ = ±, 0 ≤ ai ≤ β − 1, e is an integer, and (.a1a2 · · · an)β = a1 β1 + a2 β2 + · · · + an βn .

El t´ermino σ es llamado el signo, e es llamado el exponente, y e es llamado el exponente, o caracter´ıstica, y (.a1a2 · · · an)β es llamada

la mantisa del n´umero de punto flotante x. El n´umero β es llama-do tambi´en radix y el punto precedienllama-do a1 es el punto radix, por

ejemplo, el punto decimal cuando β = 10 y el punto binario cuando β = 2. El entero n da el n´umero de d´ıgitos base β en la representa-ci´on. Siempre asumimos

a1 6= 0

dando la que es llamada la representaci´on de punto flotante norma-lizada. Tambi´en asumimos que

(16)

lo cual limita el posible tama˜no de x.

M´aquina S/D R/C β n L U δ M

IBM 3033 S C 16 6 −64 63 9.5E-7 1.66E7

IBM 3033 D C 16 6 −64 63 2.22.5E-16 9.01E15

S/D: precisi´on simple o doble, R/C: redondeo o recorte, δ: unidad de redondeo, M : cota exacta para enteros.

3.1. Recorte y redondeo

Muchos n´umeros reales x no pueden ser representados exactamente mediante la representaci´on de punto flotante definida anteriormente, y por ello deben ser aproximados por un n´umero representable en la m´aquina, si es posible. Dado un n´umero real arbitrario x, f l(x) denotar´a su aproximaci´on en la m´aquina, si esta existe. Existen dos formas de obtener f l(x) a partir de x: recortando o redondeando.

(17)

Sea x un n´umero real escrito de la forma

x = σ · (.a1a2 · · · anan+1 · · · )β · βe

con a1 6= 0 y asumimos que e satisface (2). La representaci´on de

m´aquina recortada de x es

f l(x) = σ · (.a1a2 · · · an)β · βe.

La raz´on de introducir recorte es porque muchos computadores utili-zan m´as recorte que redondeo despu´es de cada operaci´on aritm´etica.

Ejemplo 1. El n´umero π tiene una representaci´on decimal infinita de la forma π = 3,14159265 · · · . Escrito en forma decimal normalizada es

π = 0.314159265 · · · × 101.

La forma de punto flotante de π usando recorte a 5 d´ıgitos es f l(π) = 0.31415 × 101 = 3.1415,

(18)

y usando redondeo a 5 d´ıgitos es

f l(π) = 0.31416 × 101 = 3.1416.

La representaci´on redondeada de x es dada como f l(x) =    σ · (.a1a2 · · · an)β · βe si 0 ≤ an+1 < β2 σ · [(.a1a2 · · · an)β + (.0 · · · 01)β] · βe, si β2 ≤ an+1 < β, donde (.0 · · · 01)β = β−n.

(19)

3.2. Almacenamiento

Los computadores almacenan un n´umero no con precisi´on infinita sino m´as bien de una manera aproximada que le permita empaquetarlo en un n´umero fijo de bits (d´ıgitos binarios) o bytes (grupos de 8 bites). Casi todos los computadores le permiten al programador elegir entre diferentes representaciones o tipos de datos. El tipo de datos puede diferir en el n´umero de bits utilizados (longitud de la palabra), pero tambi´en en si el n´umero almacenado es representado en formato de punto fijo (int o long) o en formato de punto flotante (float o double).

Un n´umero entero tiene representaci´on exacta. La aritm´etica de n´umeros en representaci´on entera exacta es tambi´en exacta, con la aclaraci´on de que (i) la respuesta no puede estar por fuera del rango de enteros (usual-mente con signo) que puedan ser representados, y (ii) que la divisi´on es representada mediante un resultado entero, sin considerar cualquier residuo entero.

En representaci´on de punto flotante, un n´umero es representado inter-namente por un bit con signo s (interpretado como mas o menos) , un exponente entero exacto e, y una mantisa entera positiva exacta M .

(20)

Juntas representan el n´umero

s · M · βe−E (3)

donde nuevamente β es la base de la representaci´on (usualmente es β = 2, pero algunas veces β = 16), y E es el sesgo del exponente (para la repre-sentaci´on adecuada de n´umeros con magnitud peque˜na), una constante entera fija para cualquier m´aquina y representaci´on dada. Como ejem-plo, ver la siguiente tabla. Por ejemejem-plo, la representaci´on de 1/2 en un formato de t´ıpico de 32 bits (4 bytes), o de precisi´on simple, se escribe de la forma 1 2 = s z}|{ 0 e z }| { 1 0 0 0 0 0 0 0 M z }| { 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . En representaci´on binaria, este sistema de representaci´on da un n´umero de punto flotante de la forma

(21)

donde 1023 = 2 − 1 es la magnitud del mayor n´umero de 10 bits que se puede representar en base 2. As´ı, la mayor magnitud del n´umero en base 10 que se puede expresar en doble precisi´on es

21023 ∼ 9 × 10307

Tipo de dato Fortan Rango

Entero −32768 ≤ I ≤ 32767 −3,40 × 1038 ≤ x ≤ −1,18 × 10−38 Simple precisi´on o 1,18 × 10−38 ≤ x ≤ 3,40 × 1038 −1,8 × 10308 ≤ x ≤ −2,23 × 10−308 Doble precisi´on o 2,23 × 10−308 ≤ x ≤ 1,80 × 10308

Complejo a + bi, donde i = √−1 y

(22)

Para la mayor´ıa de n´umeros reales x, se tiene que f l(x) 6= x. En este caso puede demostrarse que

x − fl(x) x = −ǫ (error relative) donde −β−n+1 ≤ ǫ ≤ 0 f l(x) recortado (4) −12β−n+1 ≤ ǫ ≤ 1 2β−n+1 f l(x) redondeado (5)

Esta f´ormula es escrita de la forma equivalente f l(x) = (1 + ǫ)x

con ǫ dado por (4) y (5). En consecuencia, f l(x) se puede considerar como una peque˜na perturbaci´on de x. Esta f´ormula de f l(x) tambi´en permite tratar precisamente con los efectos de error por recorte o redondeo en operaciones aritm´eticas en computadoras. La definici´on de f l(x) se debe a Wilkinson, y es ampliamente usada en el an´alisis de los efectos de error por redondeo.

(23)

3.3. Exactitud (accuracy ) de la representaci´on de punto

flotan-te

(24)

Tipo bit del signo bits del exponente bits de la mantisa Total de bits sesgo del exponente Media1 1 5 10 16 15 Simple 1 8 23 32 127 Doble 1 11 52 64 1023 Extendida 1 15 112 128 16383

Referencias

Documento similar

Sanz (Universidad Carlos III-IUNE): &#34;El papel de las fuentes de datos en los ranking nacionales de universidades&#34;.. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de

A ello cabría afladir las intensas precipitaciones, generalizadas en todo el antiguo reino valenciano, del año 1756 que provocaron notables inundaciones y, como guinda final,

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de