Intro a Metodos Numericos

51
Metodos Numericos

Transcript of Intro a Metodos Numericos

Page 1: Intro a Metodos Numericos

Metodos Numericos

Page 2: Intro a Metodos Numericos

• Metodos Numericos = Analisis Numerico = Algoritmos numéricos.• Reflexion entre cálculos, algebra lineal y ecuaciones diferenciales.• Remix entre análisis matemático cualitativo y cuantitativo.• Cualitativo: Nos dice que existe, que es único (teoría de conjuntos, etc).• Cuantitativo: Nos permite determinar aproximadamente la cantidad de

aquello que existe (es complementario al análisis cualitativo).

Page 3: Intro a Metodos Numericos

Algoritmos Numericos• Métodos que a partir de un numero finito de pasos obtiene

Resultados Numéricos de Problemas matemáticos a partir de números.• Esta materia se dedicara a estudiar esos algoritmos.• Los algoritmos numéricos son parte del diseño de nuestro software,

sirven para resolver o procesar nuestro modelo matemático del problema.

Page 4: Intro a Metodos Numericos

Modelo Matemático???Al desarrollar una solución para un problema, tenemos varias etapas:• Determinar el Problema: Definimos el problema brevemente.• Análisis: Establecemos un modelo matemático que represente nuestro

problema, los resultados esperados y el objetivo. Es decir mapeamos, transformamos, convertimos nuestro modelo en términos matemáticos.• Diseño: Establecemos los métodos numéricos (algoritmos) para resolver el

modelo matemático planteado (el problema).• Instrumentación: Es la elección de la plataforma que usaremos para calcular

nuestra solución. La computadora. Aquí programamos.• Resultados: Verificamos los resultados.• Retroalimentación: Existe en todas las etapas, sirve para ajustar los modelos, los

métodos y la instrumentación para lograr resultados correctos.

Page 5: Intro a Metodos Numericos

Resolviendo Problemas con Matematicas

Problema• Determina

r problema y objetivos

Analisis• Modelo

Matematico

Diseño• Metodos

numericos (Algoritmos)

Instrumentacion• Programar

Resultado• Revisar

resultados y objetivos

Retroalimentación

Page 6: Intro a Metodos Numericos

3 ideas Basicas• Punto Fijo• Eliminación de Gauss• Aproximación a funciones

Page 7: Intro a Metodos Numericos

ErroresObjetivos de AprendizajeEntender de donde vienen los errores de calculo en las computadoras.Comprender como se propagan los errores y sus implicaciones.

Page 8: Intro a Metodos Numericos

Errores en el Proceso• Errores en el Análisis (Inherentes): Nos equivocamos en el modelo

matemático. Sobre simplificaciones, supuestos equivocados, omisiones.• Errores en el Diseño (Truncamiento): Errores en los métodos

numéricos utilizados. Malas formulas, sobresimplificaciones del proceso. Errores iterativos.• Errores en la Instrumentacion (Redondeo): Errores en la

representación finita de numeros reales en dispositivos de almacenamiento (casi siempre binarios, veremos mas adelante).

Page 9: Intro a Metodos Numericos

Importancia del manejo de errores – Ariane 5

Page 10: Intro a Metodos Numericos

Falla de software• El error se dio al tratar de convertir un numero flotante de 64 bits a

un numero entero con signo de 16 bits, lo que produjo un overflow (el numero inicial era demasiado grande y hubo desbordamiento).• El numero a transformar representaba la velocidad horizontal.• No se manejo el error adecuadamente con excepciones y se uso el

manejo de errores por defecto, el cual termino la ejecución del programa.

Page 11: Intro a Metodos Numericos

Lecciones Aprendidas• No correr software innecesario en sistemas críticos cuando no se

necesitan (la parte que provoco la explosión era software legado del Ariane 4, pero se dejo intacta en el Ariane 5 a pesar de que no se estaba usando).• Ademas de correr pruebas de lo que el sistema debe hacer, también

necesitamos probar lo que el software no debe hacer.• No tener manejo de excepciones por defecto que provoquen

terminación del software en sistemas que no tienen un modo de fallos seguro.

Page 12: Intro a Metodos Numericos

Sistemas de numeración• Decimal• Hexadecimal• Octal• Binario

• En los sistemas posicionales la posición de los dígitos indica su valor.• También debemos conocer acerca del error de Redondeo y el uso de

números de doble precisión.• Debemos ya conocer acerca de los sistemas de numeración y la conversión

antes de empezar esta clase. Revisar Introducción a la computación.

Page 13: Intro a Metodos Numericos

Error y Error Absoluto• El error es la diferencia entre el resultado esperado (o resultado a

aproximar) y el valor obtenido o valor aproximado.

• Si p* es una aproximación a p, el error se define como:• E = p* - p

• Para facilitar las cosas usamos el error absoluto (el valor absoluto del Error).• EA = | p* - p |

Page 14: Intro a Metodos Numericos

Error Relativo y Porcentaje de Error• Es el error relativo al valor a aproximar.• ER = | p* - p |/p , si p ≠ 0

• Podemos expresar el error relativo como porcentaje de Error• ERP = ER * 100

Page 15: Intro a Metodos Numericos

Ejemplo• El valor para un calculo deberia ser p = 0.10 x 10^2 pero obtuvimos p*

= 0.08 x 10^2• Calculemos el Error Absoluto, el Error relativo y el Porcentaje de Error• EA = | 0.08 x 10^2 – 0.10 x 10^2| = 0.2 x 10• ER = |0.2 x 10|/(0.10 x 10^2) = 0.2• ERP = ER * 100 = 20%

Page 16: Intro a Metodos Numericos

Que tipo de Error Usar?• Por lo general nos interesa el error absoluto (la cantidad que nos

desviamos de lo que queríamos calcular).• Cuando son números muy grandes o muy pequeños, el error absoluto

es pequeño también. Entonces nos interesa conocer mas en que porcentaje nos hemos desviado del valor a estimar. Allí usamos error Relativo. ER.

Page 17: Intro a Metodos Numericos

Ejemplo• Tenemos que p = 0.24 x 10^-4 y p* = 0.12 x 10^-4• Entonces EA = |0.12 X 10^-4 – 0.24 x 10^-4| = 0.12 x 10^-4• El error absoluto parece muy pequeño, si aceptamos a p* como

aproximación de p, estaremos cometiendo un grave error (adiós cohete, pum!)• Calculando el error relativo vemos:• ER = |0.12 X 10^-4|/0.24 x 10^-4 = 0.5• ERP = 50%

Page 18: Intro a Metodos Numericos

Advertencia – Warning – Achtung - 共發現•Cuando se manejan cantidades muy grandes o muy pequeñas, el error absoluto puede ser engañoso. •El error relativo es mejor indicador en esos casos!

Page 19: Intro a Metodos Numericos

Ahora si pudimos causar una catástrofe de dimensiones apocalípticas, no hagamos eso!

Software de programador

descuidado, que no sabe métodos numéricos. AKA:

Pendejo.

Page 20: Intro a Metodos Numericos

Numeros en Computadora• Las computadoras solo pueden manejar una cantidad finita de bits

para representar cada numero.• La cantidad de bits asignados para cada numero depende de cada

arquitectura (32 bits vs 64 bits).• Es bueno trabajar con muchos bits para aplicaciones de ingeniería o

ciencia.• Para aplicaciones administrativas (la “ciencia” de contabilidad jajaja),

se pueden usar menos bits (no desperdiciemos bits).

Page 21: Intro a Metodos Numericos

La Palabra• Y esta es mi palabra les digo, y es palabra que deben seguir. Es de 64

bits.• La palabra es el numero de bits que una arquitectura puede manejar.

Desde 8 bits hasta 64 bits.• Las palabras se pueden dividir en bytes (8 bits).• 64 bits : 8 bytes• 32 bits : 4 bytes

Page 22: Intro a Metodos Numericos

Bits en las consolas

8 bits

16 bits 64 bits

128 bits Ya no importa

Page 23: Intro a Metodos Numericos

Números en Palabras• Toda la información se guarda en palabras en la computadora, estas

palabras vienen definidas por la arquitectura.• Pero no palabra en el sentido gramatical, palabra en el sentido de

arquitectura computacional (Word size – en función de numero de bits).• En algunas situaciones se usan varias palabras para almacenar bits.

Page 24: Intro a Metodos Numericos

Números en Palabras• Para nosotros numeros en palabras refiere a palabras como concepto

de arquitectura computacional.• Numeros en palabras no es esto:• 100 = CIEN

• Es esto:• 100 = 0b1100100• En palabras de 8 bits (el primero es el bit de signo).

Page 25: Intro a Metodos Numericos

Numeros en Palabras• El bit mas significativo (primer bit, hey! El bit de mas a la izquierda) en

la mayoría de arquitecturas suele ser el bit de signo.• Si el bit de signo esta apagado 0, significa que no lleva signo

(negativo). Es decir: bit de signo en 0 es un signo positivo (+)• Si el bit de signo esta prendido 1, significa que si lleva signo

(negativo). Es decir: bit de signo en 1 es un signo negativo (-).• El resto de bits se usa para representar el numero.

Page 26: Intro a Metodos Numericos

Números en Palabras• Una palabra de 16 bits puede guardar• 2^15 – 1 números = 327671.• Es decir el intervalo entre 32768 a -32767 (el cero ocupa un espacio).

Page 27: Intro a Metodos Numericos

Representación de números de punto Flotante• Se acuerdan de los Floats en programación.• Esos son números de punto flotante.• Todos los números se normalizan a una representación decimal.• Hay bits de mantisa (para la parte decimal.• Hay bits de exponente (para mover el punto, por eso es flotante). Estos bits

incluyen el símbolo del exponente.• Tenemos el bit signo para todo el numero.

Page 28: Intro a Metodos Numericos

Errores Graves en Computación• Supongamos una palabra de 7 bits en una

arquitectura imaginaria.• 4 dígitos decimales de mantisa• 2 dígitos decimales de característica• 1 bit para el signo del numero• Tenemos una palabra de 7 bits

• Los números se deben guardar en la forma normalizada!• Ejemplos: 3.0 = .3000 x 10^1• 7956000 = .7956 x 10^7• -0.0000025211 = -.2521 x 10^-5

Page 29: Intro a Metodos Numericos

Errores Graves en Computación: Suma

• Suma de números muy distintos en Magnitud• Intentemos sumar 0.002 a 600 en nuestra compu imaginaria.0.002 = .2000 x 10^-2600 = .6000 x 10^3 Los números normalizados no pueden sumarse directamente por lo que deben desnormalizarse antes de la suma.000002 x 10^3 + .600000 x 10^3 = .600002 x 10^3Como solo puede manejar 4 dígitos, los 2 últimos son eliminados y la respuesta es .6000 x 10^3.Como que la operación de suma jamás se haya realizado!

Page 30: Intro a Metodos Numericos

Errores Graves en Computación: Resta

• Resta de números casi iguales• Ejemplo: .2145 x 10^0 – 0.2144 x 10^0 = .0001 x 10^0• Normalizado .1000 x 10^-3Aun no hay error, pero solo hay un digito significativo en la respuesta. Un pequeño error puede propagarse de forma catastrófica.Supongamos la operación X = (A – B) x CLos valores son A = .2145 x 10^0 , B = .2144 x 10^0 , C = .1000 x 10^5Al efectuarse la operación obtenemos X = 1. No hay error.Sin embargo, si hay un error en A al calcular al inicio, y este valor fuese A = .2146 x 10^0. Error absoluto 0.0001, Error Relativo 0.00046, ERP = 0.046%Si usamos ese valor para calcular X, tendremos un resultado de 2. Un error de 0.046% se convierte en un error de 100%. Y si este error pasa desapercibido. BOOM!

Page 31: Intro a Metodos Numericos

Calculando…

Page 32: Intro a Metodos Numericos

Mas Errores: Overflow y Underflow•Cuando ejecutamos una

operación aritmética con 2 números valido pero el resultado es muy grande o pequeño que la computadora no puede representarlo.

Page 33: Intro a Metodos Numericos

Overflow (Rebosado)Ejemplo: Multiplicar .5000 x 10^8 por .2000 x 10^9 = .1000 x 10^27Los operandos se pueden guardar, pero el resultado no porque la característica (exponente) requiere 3 dígitos y hay 2

Page 34: Intro a Metodos Numericos

Mas Overflow• Ejemplo: 2000000/0.000005

El computador

xq tiene OverFlow!

Page 35: Intro a Metodos Numericos

Underflow• El underflow puede aparecer en operaciones de multiplicación y

división, no es tan serio como el Overflow! • Las computadoras casi nunca notifican del underflow(0.3000 x 10^-5) x (0.02000 x 10^-3) = 0.006 x 10^-8 = 0.6000 x 10^-10

• Como el exponente -10 tiene 2 dígitos no puede expresarse. El resultado se guarda como 0.• Como el error relativo es muy pequeño, el problema no es muy serio.

Page 36: Intro a Metodos Numericos

Mas Underflow• Si se desea calcular X = A * B * C• Donde A = 0.3000 x 10^-5 , B = 0.0200 x 10^-3 , C = 0.4000 x 10^7• Si se multiplican primero A * B, entonces tenemos un resultado de 0.• Si esto multiplicamos por C, tenemos CERO!• Pero si reordenamos los términos para que X = A * C * B, entonces si

obtenemos 0.1200 x 10^2, el cual es el resultado correcto.• Así mismo un arreglo en la división puede evitar un underflow.

Page 37: Intro a Metodos Numericos

Error de Discretizacion• El error de discretizacion es aquel que se da porque no se puede

almacenar un numero especifico exactamente como un numero binario de punto flotante.• Error de discretizacion = Error de cuantificación• Ya que los numeros no pueden ser expresados exactamente por la

maquina (numeros maquina), estos numeros no forman un conjunto continuo se dice que forman un conjunto Discreto (de allí discretizacion).• Discreto significa no continuo.

Page 38: Intro a Metodos Numericos

Error de Discretizacion

Page 39: Intro a Metodos Numericos

Errores de Salida• Aunque las operaciones se realicen correctamente, se debe

considerar los formatos de salida.• Una operación bien relizada con un formato de salida incorrecto

puede traer problemas• Ejemplo:• La respuesta de un calculo es 0.015625• Si la respuesta se imprime en el formato F10.6 (fortran), la repuesta mostrada

es la correcta.• Si la respuesta se imprime en el formato F8.3, se imprimirá 0.016 (si la

computadora redondea), o 0.015 si la computadora trunca.

Page 40: Intro a Metodos Numericos

Propagación de Errores• En cada operación hay (o puede haber)

un error. En cada paso, los resultados de las operaciones anteriores van acarreando ese error!• Es como el juego del teléfono. El error se

propaga. • Cada jugador es una operación.• El resultado final puede ser muy diferente

al esperado.

Page 41: Intro a Metodos Numericos

Propagación de Errores: Suma• Queremos calcular c = a + b• Si de entrada para la computadora el valor de a es inexacto, representado

por a’, tenemos que :• a’ = a + Ɛa

donde Ɛa es el error de a* al representar a.

• De igual forma para b’ = b + Ɛb• Se tiene que si no hay error en la suma, igual hay un error en el resultado

final. Es la consecuencia del error de representación que se propaga.• Error = (a’ + b’) – (a + b) = (a + Ɛa + b + Ɛb) – (a + b) = Ɛa + Ɛb = Ɛc

Page 42: Intro a Metodos Numericos

Propagación de Errores: Suma• Continua….• Ahora c’ = c + Ɛc

• El error absoluto es: |(a’ + b’) – (a + b)| = |Ɛa + Ɛb| ≤ |Ɛa| + |Ɛb|• Entonces |Ɛc| ≤ |Ɛa| + |Ɛb|

• Vemos que los errores Ɛa y Ɛb se han propagado a c. • Ɛc es el error de propagación.• Si continuamos realizando operaciones, estos errores se seguirán propangando.

Page 43: Intro a Metodos Numericos

Error en Evaluación de Funciones.• Asi mismo se propagan errores cuando se evalúan funciones. Como a’

es aun una aproximación de a, tenemos que la evaluación de una función f(x) con x = a tendrá un error.• Error resultante: Ɛf = f(a’) – f(a)• Si Ɛa es pequeño, puede aproximarse la curva f(x) por su tangente

cuando x = a. La pendiente de esta tangente es la derivada de la función, esto es f’(a), la cual es aproximadamente igual a Ɛf/ Ɛa.• Ɛf ≈ Ɛa f(a) ≈ Ɛa f’(a’)• En valor absoluto |Ɛf | ≈ |Ɛa f’(a’)| ≈ |Ɛa| |f’(a’)|

Page 44: Intro a Metodos Numericos

Error en Evaluación de Funciones.

Page 45: Intro a Metodos Numericos

Algoritmos en Métodos numéricos• Son las secuencias de operaciones algebraicas y lógicas que se utilizan

para obtener una solución a un problema.• En general existen varios algoritmos para resolver un problema.• Preferimos los algoritmos estables• A pequeños errores en los valores manejados, pequeños errores en los

resultados.

Page 46: Intro a Metodos Numericos

Algoritmos y Estabilidad• Supongamos que un error Ɛ se introduce en algún paso en los

cálculos.• El error de propagación de las n operaciones siguientes se denota por

Ɛn.• En la practica suceden 2 casos:• |Ɛn| ≈ n c Ɛ, donde c es una constante independiente de n. Aquí la

propagación del error es linear.• |Ɛn| ≈ Kn Ɛ, para k > 1; se dice entonces que la propagación del error es

exponencial.

Page 47: Intro a Metodos Numericos

Error Lineal vs Exponencial

Page 48: Intro a Metodos Numericos

Error Lineal vs Exponencial• La propagación lineal de los errores suele ser inevitable.

• Cuando c y Ɛ son pequeños, es aceptable.

• La propagación exponencial es mortal y debe evitarse.• Sabemos que el termino Kn crece muy rápido, incluso con valores pequeños de n.• Los errores exponenciales hacen de los resultados poco fiables, con mucho error

independiente de Ɛ.

• Estabilidad:• Estables: Algoritmos con error Lineal.• Inestables: Algoritmos con error Exponencial

Page 49: Intro a Metodos Numericos

COMPUTING

Page 50: Intro a Metodos Numericos

Daft Punk Dice• Cuidado con los Overflows• Recuerda que las representaciones binarias no son exactas con

respecto a los números decimales• Los errores se propagan, y se propagaran en tu nota final si no los

tomas en cuenta.• Ese numerito chiquito al que no trataste bien, crecerá para joderte la

vida y hará que se explote un cohete, te despidan, te metan preso y acabes como Sadam Hussein.

Page 51: Intro a Metodos Numericos

Bibliografia• Nieves Hurtado, A. (2012). Métodos numéricos aplicados a la ingeniería. Grupo Editorial Patria.• Rodriguez Ojeda, L. (2015). Analisis Numerico Basico. Guayaquil:

ESCUELA POLITECNICA DEL LITORAL (ESPOL).