CÁLCULO NUMÉRICO Profa. Dra. Yara de Souza Tadano [email protected] Aula 4 03/2014 Sistemas Numéricos Algarismos Significativos ¨ ¨ Os algarismos significativos de um número são aqueles que podem ser usados com confiança. Corresponde ao número de algarismos corretos mais um algarismo estimado. Aula 4 – Sistemas Numéricos Cálculo Numérico 3/16 Sistemas Numéricos Aula 4 – Sistemas Numéricos Cálculo Numérico 4/16 Sistema Decimal ¨ Sistema decimal (na base 10): Utiliza 10 algarismos para representar os números. Aula 4 – Sistemas Numéricos Cálculo Numérico 5/16 Sistema Binário ¨ Sistema binário (na base 2): utiliza apenas dois estados (0 ou 1). Aula 4 – Sistemas Numéricos Cálculo Numérico 6/16 Representação em ponto flutuante ¨ As quantidades fracionárias são representadas em computadores usando-se a forma de ponto flutuante, onde: ¨ A parte fracionária é chamada mantissa ou significando (m); ¨ A parte inteira é chamada expoente ou característica (e). ¨ A base do sistema numérico é dado por β . m⋅β e Aula 4 – Sistemas Numéricos Cálculo Numérico 7/16 Representação em ponto flutuante ¨ Em qualquer máquina, apenas um subconjunto dos números reais é representado exatamente e, portanto a representação de um número real será realizada através de truncamento ou arredondamento. Aula 4 – Sistemas Numéricos Cálculo Numérico 8/16 Representação em ponto flutuante ¨ No sistema decimal, teremos que qualquer número com k – dígitos decimais pode ser representado por: y = ±0, d1d2 d3 !dk ×10 com 1 ≤ d1 ≤ 9, 0 ≤ di ≤ 9 ¨ n ∀i = 2, 3,!, k Esta é a representação truncada de um número real qualquer com k dígitos. Aula 4 – Sistemas Numéricos Cálculo Numérico 9/16 Representação em ponto flutuante ¨ O arredondamento com k dígitos é dado pelo truncamento de y + 5 ×10 ¨ n−( k+1) . Desse modo, ao arredondar, se dk+1 ≥ 5 , adicionamos 1 a dk , ou seja, arredondamos para cima. ¨ Quando dk+1<5, simplesmente cortamos tudo menos os primeiros k algarismos, ou seja, arredondamos para baixo. Aula 4 – Sistemas Numéricos Cálculo Numérico 10/16 Representação em ponto flutuante ¨ Algumas linguagens de programação permitem que as variáveis sejam declaradas em precisão dupla. ¨ Neste caso, esta variável será representada no sistema de aritmética de ponto flutuante, mas com aproximadamente o dobro de dígitos disponíveis na mantissa. ¨ É importante lembrar que, nesse caso, o tempo de execução e requerimentos de memória aumentam significativamente. Aula 4 – Sistemas Numéricos Cálculo Numérico 11/16 Conversão de números decimal e binário ¨ Conversão de números inteiros: ¤ Um número na base β, a j a j−1 !a2 a1a0 ( )β , 0 ≤ a ≤ ( β −1) k k = 1,!, j pode ser escrito na forma polinomial: j a j β + a j−1β j−1 2 1 +!+ a2 β + a1β + a0 β 0 Com esta representação, podemos facilmente converter um número representado no sistema binário para o sistema decimal. Aula 4 – Sistemas Numéricos Cálculo Numérico 12/16 Conversão de números decimal e binário ¨ Processo para converter um número inteiro representado no sistema binário para o sistema decimal: ¤ A representação do número a j a j−1 !a2 a1a0 na base 10, 2 denotado por b0 , é obtido através do processo: ( ) bj = aj b j−1 = a j−1 + 2b j b j−2 = a j−2 + 2b j−1 ! b1 = ! a1 + 2b2 b0 = a0 + 2b1 Aula 4 – Sistemas Numéricos Cálculo Numérico 13/16 Conversão de números decimal e binário ¨ Processo para converter um número inteiro representado no sistema decimal para um sistema com base menor: ¤ Considere um número inteiro N na base 10 e a sua representação na base β ( qn rn rn−1 !r3r2 r1 ) β . O algoritmo a seguir é seguido para encontrar cada dígito. Até que qn < β Aula 4 – Sistemas Numéricos Cálculo Numérico 14/16 Conversão de números decimal e binário ¨ Processo para converter um número fracionário representado no sistema binário para o sistema decimal: ¤ Podemos representar um número fracionário no sistema binário por 0, d1d2 !d j ! 2 , portanto, poderá ser representado por: ( ) d1 × 2 −1 + d2 × 2 −2 +!+ d j × 2 − j +! Aula 4 – Sistemas Numéricos Cálculo Numérico 15/16 Conversão de números decimal e binário ¨ Processo para converter um número fracionário representado no sistema decimal para o sistema binário: ¤ ¤ ¤ Um número real entre 0 e 1 pode ter representação finita no sistema decimal, mas representação infinita no sistema binário. Seja r um número entre 0 e 1 no sistema decimal e 0, d1d2 !d j ! sua representação no sistema binário. ( ) Os dígitos binários d1, d2, ... , dj , ... são obtidos através do algoritmo: Aula 4 – Sistemas Numéricos Cálculo Numérico 16/16 2 Conversão de números decimal e binário ¨ Processo para converter um número fracionário representado no sistema decimal para o sistema binário: ¤ Passo 0: r1 = r ; k = 1 ¤ Passo 1: Calcule 2rk Se 2rk ≥ 1, faça: dk = 1, Caso contrário, faça: dk = 0. ¤ Passo 2: Faça rk+1 = 2rk – dk Se rk+1 = 0, PARE! Caso contrário: ¤ Passo 3: k = k+1 Volte ao Passo 1. Aula 4 – Sistemas Numéricos Cálculo Numérico 17/16