Baixe o app para aproveitar ainda mais
Prévia do material em texto
13/03/2014 1 Cálculo Numérico Erros Definição • Cálculo Numérico – consiste na obtenção de soluções aproximadas de problemas de Álgebra Linear e Não Linear, Estatística e Análise de Dados, Cálculo Diferencial e Integral e outros métodos matemáticos, utilizando métodos numéricos. 13/03/2014 2 Conceitos Básicos Interação entre o usuário e o computador • Os dados de entrada são enviados ao computador pelo usuário no sistema decimal; toda esta informação é convertida para o sistema binário, e todas as operações serão efetuadas neste sistema. 13/03/2014 3 Representação dos Números • Decimal (0,...9) • Binário (0, 1) • Octal (0,...,7) • Hexadecimal (0, ..., 9, A, B, C, D, E, F) Representação dos Números • Podemos representar qualquer número por: N = an-1b n-1 + an-2b n-2 + ... + a2b 2 + a1b 1 + a0b 0, onde: • b: base • N: é um dado número na base b • an-1, an-2, etc.: representam os coeficientes que multiplicam as correspondentes potências de b. • 0 an (b-1) • k = 1,..., n 13/03/2014 4 Sistema de Numeração • Decimal 23.457 = 2x104 + 3x103 + 4x102 + 5x101 + 7x100 456,78 = 4x102 + 5x101 + 6x100 + 7x10-1 + 8x10-2 • Binário 110101 = 1x25 + 1x24 + 0x23 + 1x22 + 0x21 +1x20 = 53 decimal 101,101 = 1x22 + 0x21 + 1x20 + 1x2-1 +0x2-2 + 1x2-3 = 5,625 decimal Operações em Binário Adição Subtração Multiplicação Divisão 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 (vai um) 0 – 0 = 0 0 – 1 = 1 1 – 0 = 1 1 – 1 = 0 (empresta um) 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 0 / 0 = indeterminação 0 / 1 = 0 1 / 0 = indeterminação 1 / 1 = 1 13/03/2014 5 Conversão Decimal - Binário • Parte Inteira – Para transformar um número inteiro na base 10 para base 2 utiliza-se o método das divisões sucessivas, que consiste em dividir o número por 2, a seguir divide-se por 2 o quociente encontrado e assim o processo é repetido até que o último quociente seja igual a 1. – O número binário será, então, formado pela concatenação do último quociente com os restos das divisões lidos em sentido inverso ao que foram obtidos. – Caso o número decimal seja ímpar o número binário termina em 1, caso contrário terminará em 0. Conversão Decimal - Binário 23 = 10111(ímpar) 15 = 1111 (ímpar) 10 = 1010 (par) 13/03/2014 6 Conversão Decimal - Binário • Parte Fracionária – Para transformar um número fracionário na base 10 para base 2, utiliza-se o método das multiplicações sucessivas, que consiste em: • multiplicar o número fracionário por 2; • deste resultado, a parte inteira será o primeiro dígito do número na base 2 e a parte fracionária é novamente multiplicada por 2. • O processo é repetido até que a parte fracionária do último produto seja igual a zero ou atingir a precisão desejada. Conversão Decimal - Binário • 0,187510 = 0,00112 • 0,110 = 0,00011001100112 • 0,62510 = 0,1012 • 5,810 = 101,110011002 13/03/2014 7 Conversão Binário - Decimal • Parte Inteira – Multiplique, da esquerda para direita, cada número por dois (2) elevado a potência de sua posição, lembrando que a potência começa em n menos um (n–1) e some ao próximo número. – Repita o processo até que o dígito mais à direita tenha sido adicionado. Conversão Binário - Decimal • Ex.: 11001 = 1x2(5-1=4) + 1x2(4-1=3) + 0x2(3-1=2) + 0x2(2-1=1) + 1x2(1-1=0) = 16 + 8 + 1 = 25 13/03/2014 8 Conversão Binário - Decimal • Parte Fracionária – Multiplique, da esquerda para direita, cada número por dois (2) elevado a potência de sua posição, lembrando que a potência começa em menos um (–1) e some ao próximo número. – Repita o processo até que o dígito mais à direita tenha sido adicionado. Conversão Binário - Decimal • Ex.: 0,11012 = 1x2-1 + 1x2-2 + 0x2-3 + 1x2-4 = 0,5 + 0,25 + 0,0625 = 0,812510 13/03/2014 9 Ponto Fixo e Ponto Flutuante Ponto Fixo e Ponto Flutuante • Os números são classificados no computador através da sua representação em ponto fixo ou ponto flutuante. 13/03/2014 10 Ponto Fixo e Ponto Flutuante • Ponto Fixo: números inteiros limitados pelo tamanho da palavra do computador. 310 = 112 • Ponto Flutuante: números fracionários. Flutua-se a posição da vírgula e corrige-se com a potência. 45,31 corresponde a 4x101 + 5x100 + 3x10-1 +1x10-2 Representação em Sinal e Magnitude • Quando um número esta representado em Sinal-Magnitude o bit mais a esquerda é o Bit de Sinal e os outros bits representam a Magnitude do número. • Exemplo: +2510 = 000110012 -2510 = 100110012 • Note que para representar os números +25 e -25 apenas o primeiro bit foi alterado. Existem 2 representações para o zero. 13/03/2014 11 Representação em Sinal e Magnitude • Amplitude ou faixa de representação de um determinado método ou sistema é o conjunto de números que podem ser neles representados. • A amplitude para o sistema de Sinal Magnitude é –2N-1 + 1 X 2N-1 -1 – Para N = 8, -127 X 127. – Para N = 16, -32767 X 32767. Ponto Flutuante • Um computador ou calculadora representa um número real no sistema denominado Aritmética de Ponto Flutuante. 13/03/2014 12 Ponto Flutuante • Neste sistema, o número r será representado na forma: (.d1d2...dt) x e – onde: • é a base em que a máquina opera; • t é o número de dígitos na mantissa; 0 dj (-1), j = 1, ..., t, d1 0; • e é o expoente no intervalo [l, u]. Ponto Flutuante • Exemplo: = 10; t = 3; e [-5, 5] Os números serão representados por: 0.d1d2d3 x 10 e, 0 dj 9, d1 0, e [-5, 5] • Menor número, em valor absoluto: m = 0.100 x 10-5 = 10-6 • Maior número, em valor absoluto: M = 0.999 x 105 = 99900 13/03/2014 13 Ponto Flutuante • Considere o conjunto dos números reais R e o seguinte conjunto: G = {x R | m |x| M} Ponto Flutuante • Dado um número real x várias situações poderão ocorrer: – Caso 1) x G: x = 235.89 = 0.23598 x 103 • Truncamento: 0.235 x 103 • Arredondamento: 0.236 x 103 – Caso 2) |x| < m: x = 0.345 x 10-7 • underflow – Caso 3) |x| > M: x = 0.875 x 109 • overflow 13/03/2014 14 Ponto Flutuante B=2; t=3; e [-1, 2] Ponto Flutuante • Forma Normalizada – Chama-se forma normalizada aquela que apresenta um único dígito, diferente de zero, depois da vírgula. – O “1” antes da vírgula, na representação normalizada, se esta for adotada, também pode ficar implícito, economizando um bit (“bit escondido”). 13/03/2014 15 Ponto Flutuante • Conversão direta para a base: N = 407,37510 = 110010111,0112 = 110010111,011 x 20. • Mantissa normalizada: N = 0,110010111011 x 29. Ponto Flutuante • N = 0,110010111011 x 29 • N = 0,110010111011 x 21001 • Determinação dos valores: S = 0 (número positivo). E = 0001001. M = 11001011101100000000000. Sinal Expoente Sinal Mantissa 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 13/03/2014 16 Ponto Flutuante • O conjunto dos números representáveis no sistema de Ponto Flutuante é um subconjunto dos números reais, dentro do intervalo. • O número de elementos é dado por: 2(-1) (S-I+1) t-1 + 1 Ponto Flutuante 2(-1) (S-I+1) t-1 + 1 • Exemplo: =2, t=10, I=-15, S=15 2(-1) (S-I+1) t-1 + 1 2(2-1) (15 - (-15) + 1) 210-1 + 1 2 (1) (31) 512 + 1 = 31745 13/03/2014 17 Ponto Flutuante • Exemplo: =2, t=23, I=-127, S=127 2(2-1)(127 - (-127) + 1) 223-1 + 1 = 2 (254+1) 4194304+1 = 2139095040+1 = 2.139.095.041 Ponto Flutuante • A norma IEEE 754, publicada em 1985, procurou uniformizar a maneira como as diferentes máquinas representam os números em ponto flutuante, bem como devem operá-los. • Essa norma define dois formatos básicos para os números em ponto flutuante: Formato Sinal Expoente Mantissa “Bias” Simples 1 bit (31) 8 bits (30-23) 23 bits (22-0) 127 Duplo 1 bit (63) 11 bits (62-52) 52 bits (51-0) 1023 *Bias ou expoentes compensados 13/03/2014 18 Ponto Flutuante • No padrão IEEE-754 o expoente de um número (na base dois) é representado por oito bits, ou seja são 28−1 • números possíveis de zero [00000000]2=[0]10 até [11111111]2=[255]10. Ponto Flutuante • Estes números são todos positivos! Como representar também os expoentes negativos? • Basta pegar cada um destes números e subtrair a compensação (bias). • A compensação neste caso será o número b=[127]10=[01111111]2 13/03/2014 19 Ponto Flutuante • Então para descobrirmos o verdadeiro expoente de um número devemos pegar o que está representado e subtrair o número de compensação b. Ponto Flutuante • Exemplo: Se na posição do expoente está representado o número [10101011]2 = [171]10, • Para obter o real expoente devemos fazer [10101011]2−[01111111]2 = [00101100]2 = [44]10. • Neste caso os expoentes de verdade vão de −127 = [00000000]2−[01111111]2 até 128 = [11111111]2−[01111111] 2. 13/03/2014 20 Erro Absoluto Erro Relativo Erros • Erro Absoluto – diferença entre o valor de um número x e de seu valor aproximado xxEAx 13/03/2014 21 Erros • Erro Relativo – Como dependendo das grandezas envolvidas o erro absoluto pode não ser muito significativo, emprega-se o erro relativo que é o erro absoluto dividido pelo valor aproximado x xx x EAx Erros por Precisão • Arredondamento • Truncamento Para o Número de máquina mais próximo 13/03/2014 22 Exercícios x = 0,7237 x 104, y = 0,2145 x 10-3 e z = 0,2585 x 101 0,72370000000x104 + 0,00000002145x104 + 0,00025850000x104 + 0,72395852145x104 Truncamento 0,7239x104 Arredondamento 0,7240x104
Compartilhar