Tema 0: Introducción al Cálculo Numérico

Anuncio
Tema 0: Introducción al Cálculo Numérico
Tema 0: Introducción al Cálculo Numérico
Cálculos exactos versus cálculos aproximados
Representaciones exactas y métodos exactos:
√
3; resolver x 2 − x − 4 = 0
Representaciones aproximadas y métodos aproximados:
√
3 ≈ 1.732050808; resolver x 7 − x 4 + 2x 2 − x + 2 = 0
Tema 0: Introducción al Cálculo Numérico
Cálculos exactos versus cálculos aproximados
Rep. exacta
Libre de errores
Produce cantidades exactas
Lento, consume memoria
Poco realista en contextos aplicados
No siempre podemos producirla
Rep. aproximada
Conlleva un cierto error
Propagación del error
Rápido, consume poca memoria
Realista
Cálculo numérico: parte de las Matemáticas que se encarga de
desarrollar métodos aproximados para resolver problemas matemáticos, y
de analizar el error cometido.
Tema 0: Introducción al Cálculo Numérico
Errores. Notación en Coma Flotante
Definition
Sea z la solución exacta a un problema, y sea z̃ la solución aproximada.
Se define el error absoluto como
kz − z̃k
(donde k · k representa el valor absoluto, cuando z, z̃ son números reales,
o el módulo cuando se trate de cantidades vectoriales) Se define el error
relativo como
kz − z̃k
kzk
Esta última cantidad puede darse también en porcentaje (multiplicando
por 100 la cantidad de arriba).
Obs.: Si z = 0, sólo se trabaja con errores absolutos.
Tema 0: Introducción al Cálculo Numérico
Errores. Notación en Coma Flotante
Definition
Sea z la solución exacta a un problema, y sea z̃ la solución aproximada.
Se define el error absoluto como
kz − z̃k
(donde k · k representa el valor absoluto, cuando z, z̃ son números reales,
o el módulo cuando se trate de cantidades vectoriales) Se define el error
relativo como
kz − z̃k
kzk
Esta última cantidad puede darse también en porcentaje (multiplicando
por 100 la cantidad de arriba).
Ejemplo 1: (a) z = 631 y z̃ = 630; (b) z = 11 y z̃ = 10.
Tema 0: Introducción al Cálculo Numérico
Errores. Notación en Coma Flotante
Definition
Decimos que el número p ? aproxima a p con t cifras significativas si t es
el mayor entero no negativo para el cuál
kp − p ? k
< 5 · 10−t
kpk
Ejemplo 2: p = 0.54617 y p ? = 0.54610.
Tema 0: Introducción al Cálculo Numérico
Errores. Notación en Coma Flotante
Representación de un número en coma flotante:
± 0.d1 d2 . . . dk × 10n ,
donde 1 ≤ d1 ≤ 9, 0 ≤ di ≤ 9 con i = 2, . . . , k.
La primera posición corresponde al signo.
La parte 0.d1 d2 . . . dk recibe el nombre de mantisa.
El exponente n puede ser positivo o negativo, y está acotado en
valor absoluto.
Tema 0: Introducción al Cálculo Numérico
Errores. Notación en Coma Flotante
Consecuencias de la representación en coma flotante:
Todas las cantidades irracionales tienen que ser aproximadas!!!
No podemos representar todas las cantidades, sólo algunas en un
intervalo [a, b]: usualmente,
[10−78 , 1076 ]
Por debajo, underflow error; por encima, overflow error.
Si tenemos un número de la forma
± 0.d1 d2 . . . dk dk+1 dk+2 . . . × 10n ,
necesitamos reducir el número de dı́gitos en la mantisa a k. El (los)
método(s), en la siguiente diapositiva.
Tema 0: Introducción al Cálculo Numérico
Errores. Notación en Coma Flotante
A partir del número
y = 0.d1 d2 . . . dk dk+1 dk+2 . . . × 10n ,
Truncamiento:
fl(y ) = 0.d1 d2 . . . dk × 10n
Redondeo: si dk+1 ≥ 5, sumamos 1 a dk , y truncamos el desarrollo
en el decimal k-ésimo; si dk+1 < 5, truncamos el desarrollo en el
decimal k-ésimo sin sumar nada.
El error que resulta al sustituir un número por su representación en coma
flotante (ya sea por truncamiento o por redondeo) se llama error de
redondeo.
Tema 0: Introducción al Cálculo Numérico
Errores. Notación en Coma Flotante
Ejemplo 3: Sea
π = 3.14159265 . . .
Indı́quese cuál es su representación en coma flotante, considerando una
mantisa de 5 dı́gitos, utilizando tanto truncamiento, como redondeo.
Indı́quese el error de redondeo en ambos casos.
Tema 0: Introducción al Cálculo Numérico
Problemas numéricos.
Algunos efectos “dramáticos” cuando trabajamos numéricamente:
1. Efecto de los errores de redondeo.
2. Problemas mal condicionados.
Tema 0: Introducción al Cálculo Numérico
Problemas numéricos.
Efecto de los errores de redondeo: debemos tener cuidado con las
cantidades muy pequeñas. Por ejemplo, consideremos la ecuación
a·x =b
Supongamos que a = 10−7 , b = 10−6 . Indı́quese qué sucede, cuando
consideramos mantisas de 7, 6 y 5 dı́gitos, respectivamente.
Tema 0: Introducción al Cálculo Numérico
Problemas numéricos.
Efecto de los errores de redondeo: en el caso anterior, resulta fácil
predecir el problema de antemano. Lo delicado es que este tipo de
situaciones pueden aparecer como etapas intermedias en la ejecución de
algoritmos más largos...
Tema 0: Introducción al Cálculo Numérico
Problemas numéricos.
Problemas mal condicionados:
Consideremos los siguientes sistemas lineales

10x1 + 7x2 + 8x3 + 7.2x4



7.08x1 + 5.04x2 + 6x3 + 5x4
?1 ≡
8x1 + 5.98x2 + 9.89x3 + 9x4



6.99x1 + 4.99x2 + 9x3 + 9.98x4

10x1 + 7x2 + 8x3 + 7.2x4



7x1 + 5x2 + 6x3 + 5x4
?2 ≡
 8x1 + 6x2 + 10x3 + 9x4


7x1 + 5x2 + 9x3 + 10x4
= 32
= 23
= 33
= 31
= 32
= 22.9
= 32.98
= 31.2
Tema 0: Introducción al Cálculo Numérico
Problemas numéricos.
Problemas mal condicionados:
Solución de ?1 :
x1 = −81, x2 = 137, x3 = −34, x4 = 22
Solución de ?2 :
x1 = 7.28, x2 = −9.36, x3 = 3.54, x4 = −0.5
Tema 0: Introducción al Cálculo Numérico
Problemas numéricos.
Problemas mal condicionados:
Cuando en un problema pequeños cambios en los datos (input) dan
lugar a grandes diferencias en las respuestas (output), decimos que
el problema está mal condicionado.
Es intrı́nseco al problema, no al método matemático.
Dificultad real en la práctica, debido a errores de redondeo.
Suponen desafı́os a la hora de mejorar los métodos numéricos
existentes.
Posibilidad de ser detectados a priori: cálculo del condicionamiento
de un problema.
Tema 0: Introducción al Cálculo Numérico
Tema 0: Introducción al Cálculo Numérico.
1.
Cálculos exactos versus cálculos aproximados
Decimos que un número
√ está representado de forma exacta, si en dicha representación
no hay error: por ejemplo, 3, π, e, 23 son representaciones exactas de distintos números. En
cambio, una aproximación
√ conlleva necesariamente un cierto error: por ejemplo, 1,732050808
es una aproximación de 3, y 0,666666 es una aproximación de 23 . Si bien las representaciones
exactas son clásicas en Matemáticas, y tienen indudables ventajas, cuando queremos trabajar con
calculadoras y herramientas informáticas (salvo que utilicemos software especializado) en general
es necesario aproximar. Esto tiene ventajas y desventajas: por una parte, cuando aproximamos
podemos realizar cálculos de manera rápida, sin consumir excesiva memoria en nuestros aparatos;
sin embargo, el error crece conforme vamos operando con cantidades que inicialmente ya tenı́an
un cierto error. A cambio, los cálculos realizados con cantidades exactas producen a su vez
resultados exactos, pero al precio de generar expresiones progresivamente más complicadas, y
costosas de almacenar y manejar. Por ejemplo, si evaluamos el polinomio f (x) = x2 − x − 2 en
x = π obtenemos f (π) = π 2 − π + 2, que es una expresión más complicada que la inicial (π); sin
embargo, si aproximamos x ≈ 3,141592654 se tiene que f (π) ≈ 4,728011750, que es del mismo
tamaño que la expresión inicial. Asimismo, decimos que un método de resolución de un problema
es exacto si produce soluciones exactas; por ejemplo, para resolver la ecuación x2 − x − 4 = 0
podemos aplicar la fórmula usual, que nos devuelve como soluciones (exactas):
√
√
1 ± 17
1
17
x=
= ±
2
2
2
A cambio, decimos que un método es aproximado si proporciona una aproximación de la solución. Los métodos exactos tienen la indudable ventaja de producir resultados libres de errores.
Sin embargo, por un lado no siempre es posible aplicar este tipo de métodos. Por ejemplo, no
existe ninguna fórmula general que permita calcular las soluciones de una ecuación polinómica de
grado superior a 4, o de ecuaciones que no son polinómicas: si queremos resolver x2 + ln(x) = 0,
no existen métodos exactos que proporcionen la solución; sin embargo, un método aproximado,
aplicado a esta ecuación, arroja la solución 0,652919. Por otra parte, cuando el problema incorpora datos que tienen que ver con procesos de medida (y que en consecuencia están afectados
de un cierto error), pierde sentido abordar su resolución de manera exacta. Podemos resumir
del siguiente modo las caracterı́sticas de las representaciones y métodos exactos/aproximados:
Rep. exacta
Rep. aproximada
Libre de errores
Conlleva un cierto error
Produce cantidades exactas
Propagación del error
Lento, consume memoria
Rápido, consume poca memoria
Poco realista en contextos aplicados
Realista
No siempre podemos producirla
Podemos definir el Cálculo Numérico como la parte de las Matemáticas que se encarga de
desarrollar métodos aproximados para resolver problemas matemáticos, y de estudiar
1
el error cometido. Las caracterı́sticas de los métodos numéricos son, esencialmente, las que
constan en la columna de la derecha del cuadro anterior.
2.
Errores. Notación en Coma Flotante.
Cuando realizamos cálculos aproximados, o con cantidades aproximadas, es importante medir
el error que estamos cometiendo. En este sentido, consideramos la siguiente definición.
Definición: Sea z la solución exacta a un problema, y sea z̃ la solución aproximada. Se define
el error absoluto como
kz − z̃k
(donde k · k representa el valor absoluto, cuando z, z̃ son números reales, o el módulo cuando se
trate de cantidades vectoriales) Se define el error relativo como
kz − z̃k
kzk
Esta última cantidad puede darse también en porcentaje (multiplicando por 100 la cantidad de
arriba).1
1
Ejemplo 1: Si z = 631 y z̃ = 630, se tiene un error absoluto de 1, y un error relativo de 631
; en
porcentaje, 0,1585 % (es decir, muy bajo). Sin embargo, si z = 11 y z̃ = 10, se tiene también un
1
error absoluto de 1, pero en cambio un error relativo de 11
, en porcentaje, 9 %.
Definición: Decimos que el número p? aproxima a p con t cifras significativas si t es el mayor
entero no negativo para el cuál
kp − p? k
< 5 · 10−t
kpk
Ejemplo 2: Si p = 0,54617 y p? = 0,54610, se tiene que
kp − p? k
= 0,0001281652233 < 0,0005 = 5 · 10−4
kpk
Por lo tanto, p? es una aproximación de p con cuatro cifras significativas.
En buena medida, la importancia del Cálculo Numérico tiene que ver con la utilización
masiva de ordenadores para realizar cálculos. En este sentido, en un ordenador los números se
almacenan y manipulan mediante su representación en coma flotante: utilizando la notación
decimal, ésta es2
± 0.d1 d2 . . . dk × 10n , 1 ≤ d1 ≤ 9, 0 ≤ di ≤ 9 para i = 2, . . . , k
donde:
1
Si z = 0, sólo se trabaja con errores absolutos.
En realidad, lo que damos aquı́ es lo que se llama la “forma normalizada”. Hay otras formas equivalentes, si no
exigimos que la mantisa esté comprendida entre 0 y 1. Observemos también que aquı́ utilizamos notación decimal,
aunque en los ordenadores se utiliza no el sistema decimal, sino el binario, donde cada número se representa
mediante una secuencia de 1 y 0.
2
2
la primera posición corresponde al signo.
la parte 0.d1 d2 . . . dk recibe el nombre de mantisa.
el exponente n puede ser positivo o negativo, y está acotado en valor absoluto.
Como consecuencia, para cada número sólo podemos almacenar una cantidad finita de dı́gitos.
Esto supone un problema, con respecto a la concepción habitual de las Matemáticas. En concreto,
buena parte de las Matemáticas que manejamos operan sobre el conjunto
de los números reales,
√
R. Sin embargo, en este conjunto todas las cantidades irracionales ( 3, π, e, etc.) tienen infinitas
cifras decimales que no se repiten. En consecuencia, cuando trabajamos con ellas en un ordenador
(salvo que se utilicen paquetes de software apropiado, llamados de çálculo simbólico“) no tenemos
más remedio que aproximarlas. En concreto, para representar un número en coma flotante
tenemos que producir una mantisa con k dı́gitos; si el número es
y = 0.d1 d2 . . . dk dk+1 dk+2 . . . × 10n ,
tenemos dos opciones:
Truncamiento:
fl(y) = 0.d1 d2 . . . dk × 10n
Redondeo: si dk+1 ≥ 5, sumamos 1 a dk , y truncamos el desarrollo en el decimal k-ésimo;
si dk+1 < 5, truncamos el desarrollo en el decimal k-ésimo sin sumar nada.
El error que resulta al sustituir un número por su representación en coma flotante (ya sea por
truncamiento o por redondeo) se llama error de redondeo. Observemos que en coma flotante
podemos representar números positivos (resp. negativos) en un intervalo [a, b]; por ejemplo, bajo
determinadas condiciones este intervalo es [10−78 , 1076 ]. Por lo tanto, para el ordenador cualquier
número por debajo del extremo de la izquierda, es 0 (esto se conoce como underflow error); si en
los cálculos aparecen cantidades por encima del extremo de la derecha, el ordenador no puede
representarlo y produce un mensaje de error (overflow error).
Ejemplo 3: Consideremos el número π, que puede escribirse, en forma decimal, como
π = 3,14159265 . . .
Si consideramos una mantisa de cinco dı́gitos, entonces el truncamiento a cinco decimales producirı́a 3,1415, que en forma normalizada darı́a
0,31415 × 101
Si aplicamos el redondeo, puesto que el último decimal (5) está seguido por un número mayor o
igual que cinco (9), se tendrı́a
0,31416 × 101
El error de redondeo, en el primer caso, es del orden de 10−5 ; en el segundo caso, el error es del
orden de 10−6 .
3
3.
Problemas numéricos.
El hecho de trabajar con cantidades aproximadas es generalmente inevitable en Matemática
Aplicada. Esto no siempre es problemático, pero en determinados casos puede ocasionar efectos
dramáticos. Aquı́ veremos dos ejemplos de este tipo. En primer lugar, veamos el efecto que puede
llegar a tener el error de redondeo. Es necesario tener cuidado cuando por efecto de dicho error,
acabamos trabajando con cantidades muy pequeñas. Por ejemplo, supongamos que tenemos que
resolver la ecuación
a·x=b
donde a, b son dos números que conocemos, y x es la incógnita que deseamos determinar. Supongamos ahora que a = 10−7 , b = 10−6 . Veamos entonces la respuesta que obtenemos, según el
número de dı́gitos que consideremos en la mantisa:
Si utilizamos 7 dı́gitos, obtenemos la respuesta exacta: x = 10.
Si utilizamos 6 dı́gitos, para el ordenador a = 0. Por lo tanto, obtendrı́amos como respuesta:
la ecuación no tiene solución (ya que corresponderı́a a 0 · x = 10−6 ).
Si utilizamos 5 dı́gitos, tendriamos que a = b = 0. Por lo tanto, obtendrı́amos como
respuesta: la ecuación tiene infinitas soluciones (ya que corresponderı́a a 0 · x =
0).
Como segundo ejemplo, consideremos el siguiente sistema lineal:

10x1 + 7x2 + 8x3 + 7,2x4 =



7,08x1 + 5,04x2 + 6x3 + 5x4 =
8x

1 + 5,98x2 + 9,89x3 + 9x4 =


6,99x1 + 4,99x2 + 9x3 + 9,98x4 =
32
23
33
31
La solución del sistema es
x1 = −81, x2 = 137, x3 = −34, x4 = 22
Si ahora consideramos el siguiente sistema, cuyos coeficientes están muy próximos al anterior,

10x1 + 7x2 + 8x3 + 7,2x4 = 32



7x1 + 5x2 + 6x3 + 5x4 = 22,9
8x

1 + 6x2 + 10x3 + 9x4 = 32,98


7x1 + 5x2 + 9x3 + 10x4 = 31,2
La solución de este sistema es
x1 = 7,28, x2 = −9,36, x3 = 3,54, x4 = −0,5,
muy diferente de la anterior!! Este fenómeno no sucede habitualmente, sino únicamente para
determinados ejemplos (problemas). En ese caso se dice que se trata de un problema mal
condicionado: es decir, decimos que un problema está mal condicionado cuando pequeños
cambios en los datos (input) dan lugar a grandes diferencias en las respuestas (output). Este
tipo de problemas suponen una complicación real cuando aplicamos métodos numéricos, puesto
que sólo con errores de redondeo ya se introducen pequeñas diferencias. También en el caso en
4
que los coeficientes de nuestro problema provienen de un proceso de medida, ya que todos los
procesos de medida introducen pequeños errores.
Los problemas mal condicionados tienen una dificultad intrı́nseca debida al problema en sı́,
y no tanto al método matemático que estemos utilizando. Sin embargo, suponen un desafı́o
a la hora de desarrollar métodos mejores, ya que un método mejor tı́picamente manejará esos
casos de manera más eficiente. Los problemas mal condicionados no siempre pueden solucionarse
satisfactoriamente, pero en determinados casos pueden detectarse a priori; para ello se puede
calcular el condicionamiento o número de condición del problema, que es un parámetro que
mide hasta qué punto el problema está o no mal condicionado. El cálculo efectivo de este tipo
de números está más allá de los objetivos de este curso.
Cuestiones:
(1) Calcula el error absoluto y el relativo que se produce cuando redondeamos el valor de
2/3 a la quinta cifra decimal. Indica el número de dı́gitos significativos que tendrı́a la
aproximación considerada.
√
(2) Escribe el valor en coma flotante de 3 cuando utilizamos una mantisa de: (a) cinco
dı́gitos; (b) siete dı́gitos. Idem para el valor de − π12 .
(3) Describe el problema que plantea el tratamiento de números irracionales en una computadora.
(4) Define el concepto de condicionamiento de un problema, y las consecuencias del mismo;
proporciona ejemplos.
5
Descargar