Introdução aos métodos numéricos Representação Numérica e Erros Motivação Foguete Ariane 5 explode segundos depois de seu lançamento em 1996 O foguete transportava um satélite de comunicações A causa do acidente foi um erro numérico (overflow) no cálculo da velocidade horizontal do foguete Motivação Qual foi o prejuízo? 500 milhões de Dólares (preço do satélite) 7 bilhões de Dólares foram gastos no projeto do foguete Soluções numéricas para problemas físicos Problema Físico Modelagem Modelo Matemático Resolução Solução Erros na Modelagem Suponha uma queda livre de um prédio d = d0 +vot +1/2at2 Suponha os dados: d= 0 + 0x3 + 1/2x9.8x9 d = 44,1 Este resultado é coerente? Representação Numérica Computadores possuem memória finita O conjunto de números que os computadores podem representar é finito Erros na Resolução Fortemente influenciados pela precisão Relacionados à Representação numérica Erro do Foguete (máquinas com precisão diferente com mesmo software) Representação numérica Cada computador possui uma precisão numérica diferente Esta precisão é dependente do hardware, sistema operacional, compilador, etc Representação Numérica O sistema convencional é o de base 10 (dígitos de 0 a 9) Computadores modernos usam a base numérica 2 (dígitos 0 e 1) Mudança de Bases 510 = 1012 5/2 = 2 resto 1 2/2 = 1 resto 0 510 = 1012 Mudança de Base 5,25 = 5 + 0,25 5 sabemos como resolver Mas e a parte decimal? Mudança de base Método das multiplicações sucessivas 0,25 x 2 = 0,5 0,5 x 2 = 1,0 Logo 0,2510 = 0,012 Mudança de Base Conversão de base 2 para base 10 1002 = 410 1002 = 1x22 + 0x21 + 0x20 =4+0+0 = 410 1012 = 1x22 + 0x21 + 1x20 =4+0+1 = 510 100,12 = 1x22 + 0x21 + 0x20+1x2-1 = = 4+0+0+0,5 = 4,510 Representação Numérica Computadores usam o Sistema de Ponto Flutuante Normalizado ±0,c1c2c3…cn x be cn – digito entre 0 e b-1 (mantissa) b – número natural (base) e – número Inteiro (expoente) Representação Numérica Devido à questão da memória finita, os sistemas de ponto flutuante normalizados possuem parâmetros bem definidos durante o projeto Número de caracteres da mantissa (n) Valor da base (b) Valor e1 menor e e2 maior expoentes do sistema e1 < 0 e e2 > 0 Representação Numérica Menor número positivo: x1=+0,10...0xbe1 Maior número: x2 = +0,c1c2...cnxbe2 Quantidade de números: 2x(b-1)x b(n-1)x (e2-e1+1)+1 Representação Numérica -x2 -x1 x1 x2 Representação Numérica underflow overflow -x2 -x1 x1 x2 overflow Representação Binárias 0 sinal 1 1 1 0 0 mantissa 0 0 0 0 0 0 0 0 1 0 Sinal do expoente expoente Representação Binárias 0 sinal 1 1 1 0 0 mantissa 0 0 0 0 0 0 0 0 1 0 Sinal do expoente expoente Sinal 0 = positivo, 1 = negativo Representação Numérica A distribuição dos números na reta real não é uniforme Há concentração de números em trechos da reta Representação Numérica B=2, n=3, e =-1 e e =2 1 2 Representação Numérica Resultados de operações aritméticas em sistemas de ponto flutuante nem sempre estão corretos Representação Numérica B=2, n=3, e =-1 e e =2 1 2 Representação Numérica Propriedades aritméticas nem sempre são verificadas Suponha x1=0,3491x104, x2=0,2345x100 (x2+x1)-x1 = x2 + (x1-x1) A propriedade só se mantém com maquinas de precisão maior do que 7 digitos com truncamento Representação Numérica Para somar x1 e x2 precisamos coloca-los na mesma base decimal x1=0,3491x104 x2=0,2345x100=0,00002345x104 Máquinas com precisão 7 ou menos não são capazes de representar x2 Representação Numérica (x2+x1)-x1 =(0,0000234x104+0,3491x104) 0,3491x104 = (0,3491234x104) 0,3491x104 = (0,0000234x104) = 0,234x10 x2+(x1-x1)=0,2345x10+(0,3491x104 0,3491x104) = 0,2345x10 + 0 = 0,2345x10 Tipos de Erro por Precisão Arredondamento - para Cima Truncamento – para baixo Para o Número de máquina mais próximo Erro por Truncamento São erros decorridos de processos que deveriam ser infinitos Calculo de séries infinitas Sen(x) =x - x3/3! + x5/5! – x7/7!... Erro por truncamento Dizimas periódicas binárias 0,110 = 0,0001100110011...2 Calculadora do Windows - sqrt(2) Erros Sendo x o valor real e x’ o valor representado Absoluto: |x – x’| Relativos: |x - x’|/ |x’| Revisão Consequências dos erros Sistema de Ponto Flutuante Representação numérica em computadores Erros Conclusão Erros devem ser evitados quando possível Quando não for possível evita-los: Não devem ser ignorados Devem ser reduzidos