COMPUTAÇÕES NUMÉRICAS. 1.0 Representação



Documentos relacionados
Erros. Número Aproximado. Erros Absolutos erelativos. Erro Absoluto

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Capítulo 1. Introdução. 1.1 Sistemas numéricos

2. Representação Numérica

Aritmética Binária e. Bernardo Nunes Gonçalves

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

Representação de Dados

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

1. Sistemas de numeração

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos.

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Codificação 1. Introdução. C 2 R r {! + codificação

Capítulo UM Bases Numéricas

Sistemas Numéricos e a Representação Interna dos Dados no Computador

Erros. Cálculo Numérico

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Exemplo de Subtração Binária

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Sistemas de Numerações.

Sistemas de Numeração. Introdução ao Computador 2010/1 Renan Manola

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Aula 6 Aritmética Computacional

Como aparecem os erros? Quais os seus efeitos? Como controlar esses efeitos?

Sistemas de Numeração

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

CAPÍTULO 6 ARITMÉTICA DIGITAL

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

SISTEMAS DE NUMERAÇÃO

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Análise de Arredondamento em Ponto Flutuante

Tópico 2. Conversão de Unidades e Notação Científica

Introdução à Engenharia de

Capítulo 1 Erros e representação numérica

Conversão de Bases e Aritmética Binária

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Universidade do Minho Departamento de Electrónica Industrial. Sistemas Digitais. Exercícios de Apoio - I. Sistemas de Numeração

Licenciatura em Engenharia Electrotécnica e de Computadores 1998/99. Erros

Arquitetura de Computadores

Aula 1 Representação e Operações Aritméticas em Ponto Flutuante.

Métodos Numéricos e Estatísticos Parte I-Métodos Numéricos Teoria de Erros

Sistemas de numeração

Representação de Dados e Sistemas de Numeração

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula

Medidas e Incertezas

CAP. I ERROS EM CÁLCULO NUMÉRICO

Aula 2 Modelo Simplificado de Computador

Aula 3 - Sistemas de Numeração

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Unidade 3: Sistemas de Numeração Conversões Entre Quaisquer Bases e Aritmética em Bases Alternativas Prof. Daniel Caetano

ARQUITETURA DE COMPUTADORES

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

Aula 9. Introdução à Computação. ADS IFBA

Arquitetura de Rede de Computadores

13 Números Reais - Tipo float

Índice de conteúdos. Índice de conteúdos. Capítulo 2. Representação de Números e Erros Representação de números em diferentes bases...

Cálculo Numérico. ECA / 4 créditos / 60 h Introdução, Erros e Matlab. Ricardo Antonello.

Universidade Federal de São João Del Rei - UFSJ

Sistemas de Numeração

Prof. Luís Caldas Sistemas de Numeração e Transformação de Base NUMERAÇÃO, BASE NUMÉRICA E TRANSFORMAÇÃO DE UMA BASE

Sistemas de Numeração

Conversões em Sistemas de Numeração. José Gustavo de Souza Paiva

Todos os exercícios sugeridos nesta apostila se referem ao volume 1. MATEMÁTICA I 1 FUNÇÃO DO 1º GRAU

3 Sistemas de Numeração:

Sistemas de Numeração

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

Representação de Dados

Cálculo numérico. ln 1 = 0. Representação numérica. Exemplo. Exemplos. Professor Walter Cunha. ln 1. I s

2aula TEORIA DE ERROS I: ALGARISMOS SIGNIFICATIVOS, ARREDONDAMENTOS E INCERTEZAS. 2.1 Algarismos Corretos e Avaliados

Deste modo, por razões tecnológicas e conceituais, os números binários e a álgebra boole-ana formam a base de operação dos computadores atuais.

Sistema de Numeração e Códigos. Sistemas de Informação CPCX UFMS Prof. Renato F. dos Santos

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Conversão de Bases Numéricas

Notas de Cálculo Numérico

Sistemas de Numeração

Sumário. Arquitetura do Universo

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I Juliana F. Camapum Wanderley

ELETRÔNICA. Changed with the DEMO VERSION of CAD-KAS PDF-Editor ( INTRODUÇÃO

1. Introdução 2. Representação de números 2.1. Conversão Numérica 2.2. Aritmética de ponto flutuante 3. Erros 3.1 Erros Absolutos e Relativos

Sistemas de Numeração e Conversão de Base

Potenciação no Conjunto dos Números Inteiros - Z

MATEMÁTICA BÁSICA E CALCULADORA

MATERIAL MATEMÁTICA I

Vamos exemplificar o conceito de sistema posicional. Seja o número 1303, representado na base 10, escrito da seguinte forma:

Sistemas de Numeração

Hardware de Computadores

Representação Binária de Números

Unidade 5: Sistemas de Representação

Notas de aula #1 SISTEMAS NUMÉRICOS

Introdução à Informática Aulas 9 e 10

O número é algo abstrato que representa a idéia de quantidade, expressos através de símbolos previamente acordados.

Transcrição:

COMPUTAÇÕES NUMÉRICAS.0 Representação O sistema de numeração decimal é o mais usado pelo homem nos dias de hoje. O número 0 tem papel fundamental, é chamado de base do sistema. Os símbolos 0,,, 3, 4, 5, 6, 7, 8, 9, são usados para representar qualquer grandeza. O fato de o sistema decimal ser largamente utilizado tem evidentemente razões históricas, pois na realidade qualquer número inteiro maior que poderia ter sido escolhido. De fato, no mundo dos computadores digitais o sistema binário é o utilizado. O número é a base do sistema e os símbolos 0 e servem para representar uma grandeza qualquer. Ao lado do sistema binário, os sistemas octal, headecimal, base 8 e 6 respectivamente, são também utilizados. Isto ocorre pelo fato de que cada símbolo octal e headecimal representa um equivalente a três e quatro símbolos no sistema binário e vice-versa. -- Conversão Dado um número representado na base N, isto é, na N-representação, e nós queremos saber como representa-lo na base M, isso é, na M-representação. Temos então a equação: = a m N m + a m- N m- +... = b n M n + b n- M n- +... onde os coeficientes a m,a m-,... são conhecidos e os coeficientes b n, b n-,... devem ser determinados. Observe que b n, b n-,... devem ser epressos com símbolos de dígitos da N-representação. Para realizar a conversão dividiremos em uma parte inteira i e uma parte fracionária f. Nós temos i = b n M n + b n- M n- +... + b M + b 0, e dividindo i por M nós obtemos um quociente q e um resto r = b 0. Continuando, dividiremos q por M, nós conseguiremos q e o resto r = b, e, obviamente, b 0, b, b,... são os restos consecutivos quando i é dividido repetitivamente por M. De forma semelhante nós encontramos a parte fracionária como as partes inteiras consecutivas quando f é multiplicado repetitivamente por M e a parte inteira é removida. Os cálculos devem ser feitos na N-representação e M deve ser também dado nesta representação. Eemplo: Converta o número decimal 6,359 para a representação binária, ternária e octal. Conversão: Decimal para binário Inteira: Divisão sucessiva do número decimal por Divisão Resto 6: 30: 0 65: 3: 0 6: 0 8: 0 4: 0 : 0

: O número inteiro binário é obtido através dos restos das divisões escritos na ordem inversa da sua obtenção. Então (6) 0 = (.0000.00). Fração: Multiplicação sucessiva da fração decimal por Multiplicação Sobra 0,359 0 0,78 0,436 0 0,87 0,774 0,488 0 0,976 0,95 0,904 A fração binária é obtida través das sobras, parte inteira, das multiplicações escritas na ordem direta de sus obtenção. Então (0,359) 0 = (0,00.0....). Somando-se as partes inteiras e fracionárias dos binários obtidos têm-se (6,359) 0 = (.0000.00, 00.0....) Conversão: Decimal para ternário Inteira: Divisão sucessiva do número decimal por 3 Divisão Resto 6:3 0 87:3 0 9:3 9:3 0 3:3 0 :3 O número inteiro ternário é obtido através dos restos das divisões escritos na ordem inversa da sua obtenção. Então (6) 0 = (00.00) 3. Fração: Multiplicação sucessiva da fração decimal por 3 Multiplicação Sobra 0,3593 0,0773 0 0,33 0

0,6933 0,0793 0 0,733 0 0,73 0,333 0 0,3993 A fração ternária é obtida través das sobras, parte inteira, das multiplicações escritas na ordem direta de sus obtenção. Então (0,359) 0 = (0,00.00.0...) 3. Somando-se as partes inteiras e fracionárias dos binários obtidos têm-se (6,359) 0 = (00.00, 00.00.0...) 3 Conversão: Decimal para headecimal Inteira: Divisão sucessiva do número decimal por 6 Divisão Resto 6:6 5 6:6 0 :6 O número inteiro headecimal é obtido através dos restos das divisões escritos na ordem inversa da sua obtenção. Então (6) 0 = (05) 6. Fração: Multiplicação sucessiva da fração decimal por 6 Multiplicação Sobra 0,3596 5 0,7446 0,9046 4 0,4646 7 0,446 6 0,7846 0,5446 8 0,7046 0,646 4 A fração headecimal é obtida través das sobras, parte inteira, das multiplicações escritas na ordem direta de sus obtenção. Então (0,359) 0 = (0,5 4 7 6 8 4...) 6 ou utilizando-se os símbolos headecimais (tabela.) 3

(0,359) 0 = (0,5BE.76C.8B4...) 6 Somando-se as partes inteiras e fracionárias dos binários obtidos têm-se (6,359) 0 = (05, 5BE.76C.8B4...) 6 Tabela. Símbolos Headecimais Grandeza Decimal Símbolo headecimal 0 0 3 3 4 4 5 5 6 6 7 7 8 8 9 9 0 A B C 3 D 4 E 5 F Programa. Conversão de Inteiros na Base 0 para base qualquer IDec( N, b) := VS "" i 0 while V i N > 0 N trunc i i + n i V for VS mod( N, b) reverse ( V) i 0.. n N b VS concat VS, numstr V i ( ( )) VS concat ( VS, "." ) 4

Eemplos: IDec( 6, ) = ".0.0.0.0.0..0.." IDec( 6, 3) = ".0.0..0.0." IDec( 6, 6) = ".0.5." Programa. Conversão de Fracionários na Base 0 para base qualquer FDec( F, b, n) := VS "0," i 0 while VS V F > 0 trunc( F b) VS concat ( VS, numstr( V) ) VS concat ( VS, "." ) F V F b i i + break if i n Eemplos: FDec( 0.359,, 9) = "0,0..0...0..." FDec( 0.359, 3, 9) = "0,.0.0..0.0..0.." FDec( 0.359, 6, 9) = "0,5..4.7.6..8..4." Programa.3 Conversão da Base 0 para base qualquer 5

XDec( X, b, n) := N trunc( X) if N > 0 VS "" i 0 while V i N > 0 N trunc i i + n i V for VS "0" mod( N, b) reverse ( V) i 0.. n N b VS concat VS, numstr V i ( ( )) VS concat ( VS, "." ) otherwise F X trunc( X) if VS F > 0 VS concat ( VS, "," ) i 0 while V F > 0 trunc( F b) VS concat ( VS, numstr( V) ) VS concat ( VS, "." ) F V F b i i + break if i n Eemplos: XDec( 6,, 9) = ".0.0.0.0.0..0.." XDec( 0.359,, 9) = "0,0..0...0..." XDec( 6.359,, 9) = ".0.0.0.0.0..0..,0..0...0..." XDec( 6, 6, 9) = ".0.5." XDec( 0.359, 6, 9) = "0,5..4.7.6..8..4." XDec( 6.359, 6, 9) = ".0.5.,5..4.7.6..8..4." --- Conversão de uma base qualquer para base 0 Para obter-se o número decimal equivalente a um número escrito em qualquer base é só multiplicar cada dígito por sua potência: Eemplos: 6

(6,359) 0 = (.0000.00, 00.0....) Parte Inteira 8 + 0 7 + 0 6 + 0 5 + 0 4 + 0 3 + + 0 + 0 = 6 Parte fracionária 0 + + 0 3 + 4 + 5 + 0 6 + 7 + 8 + 9 = 0.3574 Erro := 6.359 6.3574 Erro = 0.006 (6,359) 0 = (00.00, 00.00.0...) 3 Parte Inteira 3 5 + 0 3 4 + 0 3 3 + 3 + 0 3 + 0 3 0 = 6 Parte fracionária 3 + 0 3 + 0 3 3 + 3 4 + 0 3 5 + 0 3 6 + 3 7 + 0 3 8 + 3 9 = 0.35899 Erro := 6.359 6.35899 Erro = 0.0000 (6,359) 0 = (05,5 4 7 6 8 4...) 6 ou seja, (6,359) 0 = (0,5BE.76C.8B4...) 6 Parte Inteira 6 + 0 6 + 5 6 0 = 6 Parte fracionária 5 6 + 6 + 4 6 3 + 7 6 4 + 6 6 5 + 6 6 + 8 6 7 + 6 8 + 4 = 0.35899999999674 6 9 Erro := 6.359 6.35899999999674 Erro = 3.4 0 - Representação do virgula-flutuante Em geral, um número N ponto-flutuante tem a forma seguinte: onde N = M β K 7

M = mantissa, um valor que deve ser entre e +; β = base, se o sistemas de numeração for binário, 0 se o sistema de numeração for decimal, etc.; K = epoente, um inteiro. Eemplo: N = 9, 0 8 6 Reescrevendo o número para a forma N = 0,9 0, o número fica na representação da virgula-flutuante, o epoente é igual a 6, a mantissa é igual a 0,9 e a base é 0. Se além da limitação < M <, M também satisfaz uma das condições seguintes: β M < significa que devemos ter um digito não nulo após a virgula ou M = 0 nós podemos dizer que normalizada. Eemplo: N β K = M é um número escrito na notação de virgula-flutuante 0,74347. 0 7-0,704347. 0 7 0,00070. 0 7 Vemos que a diferença entre estes dois números virgula-flutuante normalizados, resulta num número em virgula-flutuante não normalizado. Podemos, entretanto, normaliza-lo se deslocarmos a virgula três lugares à direita e somar 3 ao epoente, obtendo-se 0,70000. 0 4 normalizado. -3 - Armazenamento na memória Para começar vamos representar o número 0,00053474839 num computador decimal. A notação virgula-flutuante normalizada dês número é 0,53474839.0-3. Par evitar epoente negativo, nós adicionamos, arbitrariamente, 50 ao epoente e o número agora é 0,53474839. 0 47. O epoente somado a uma constante arbitrária é chamado de característica. O número pode ser representado, unicamente, através da normalização da notação virgula-flutuante, na memória do computado utilizando o esquema seguinte: - 5 3 4 7 4 8 3 9 4 7 sinal característica = epoente + 50 8

Deve ser observado que a característica coloca o epoente limitado a epressão seguinte: 50 k 49. O número tem o máimo de oito dígitos de precisão e a representação falha quando temos números muito grande ou muito pequeno. De modo análogo, um número binário em virgula-flutuante também pode ser armazenado na memória de um computador digital. Uma palavra armazenada tendo um bit de sinal e 35 bits regulares pode representar um número binário virgula-flutuante na forma seguinte Onde 0 8 9 35 sinal característica mantissa normalizada sinal = sinal do número codificado, 0 se positivo e se negativo; característica = 8 + epoente (resultado escrito em binário); mantissa = fração binária normalizada. Eemplo: Represente o número,65 numa palavra de 36 bits conforma acima. Divisão Resto : 0 6: 0 3: : Multiplicação Sobra 0,65 0,5 0 0,5,65 0 = 00,0 = 0,000 4 Ajustando a característica: 4+ 8 = 3 Divisão Resto 3: 0 66: 0 33: 6: 0 8: 0 4: 0 : 0 : 3 0 = 000000 0 3 4 5 6 7 8 9 35 0 0 0 0 0 0 0 0 0 0 0...0-4 - Armazenamento na memória Os princípios das operações aritméticas básicas de um computador serão discutidos agora. Para isto iremos considerar que estamos trabalhando num computador decimal com uma palavra de 0 dígitos de comprimento. Princípios semelhantes são utilizados em computadores binários (digitais). Na adição ou subtração de dois números o computador eamina a característica ajustada dos dois números. Os seguintes casos são possíveis: 9

- Características iguais: Adiciona-se as mantissas e mantém-se a característica. 309876 54 + 3403 54 44449999 54 - Quando eiste estouro (overflow) na adição das mantissas: O resultado será deslocado uma vez para direita estouro 539 55 + 9875643 55 50065643 55 característica Resulta em: 5006564 56 característica 3- Características distintas: Mantém-se a de maior módulo e ajusta-se a de menor valor 34 55 34 55 + 3443 53 + 003443 55 44449999 54 3534565 55 4- Resultado com zero, ou zeros, à esquerda: Normaliza-se o resultado. 34 73-34000 73 0000 73 resulta em: 0000 7 Na multiplicação e divisão as mantissas e características são tratadas separadamente. Eemplo: 3334 5 3578 65 mantissa = 0,33340,3578 = 0,038564583 característica = 5+65-50 = 66, onde 50 é o desconto para compensar o ajuste +50 em cada ajuste do epoente da representação. A resposta é 0

3334 5 3578 65 = 038564583 66 com a normalização teremos o resultado 38564583 65.5 Erros Os erros são definidos como absoluto e relativo. Se é o número eato e uma aproimação, então temos: Erro absoluto: ε =, e Erro relativo: ε = Um número decimal é arredondado na posição n desprezando-se todos dígitos à direita desta posição. O dígito na posição n é deiado inalterado ou acrescido de uma unidade se o dígito da posição n + é um número menor que 5 ou maior que 5. Se o número na posição n + for igual a 5, o digito na posição n é acrescido de uma unidade se ele for par e é deiado inalterado se for impar ( a regra pode ser o contrário: o digito na posição n é acrescido de uma unidade se ele for impar e é deiado inalterado se for par ). Freqüentemente é feito o truncamento para n decimais onde todos os dígitos além da posição n são simplesmente desprezados. Eemplo: 3,4596535 Arredondamento: 3,4 (d) 3,4 (3d) 3,46 (4d) 3,4597 (7d) onde (nd) = número de casas decimais. Nós podemos dizer de forma simplória que dígitos significativos são aqueles que têm informação sobre a dimensão do número sem contar com a parte eponencial. Naturalmente um dígito d localizado mais à esquerda tem mais informação do que um mais à direita. Quando um número é escrito com somente seus dígitos significativos estes formam uma cadeia de símbolos que começa com o primeiro dígito diferente de zero. Portanto se a parte fracionária termina com um ou vários zeros, eles são significativos por definição. Se o número é inteiro e termina com zeros, somente com o conhecimento da situação é que podemos decidir se eles são significativos ou não. Por eemplo, 8630574 escrito com 4 dígitos significativos é 8630000. Em muitos casos nós estimamos o erro de uma função f(,,..., n ) com erros individuais nas variáveis (,,..., n ) conhecidos. Nós encontramos diretamente que f f f f = + + L+ n n onde os termos de ordem superior foram desprezados. O erro máimo é dado por

f f + f + L+ f n n O limite superior do erro é geralmente bastante pessimista, em computações práticas os erros têm uma tendência a cancelar. Por eemplo, se 0.000 números são arredondados com quatro casa decimais e adicionados, o erro máimo é 4 0 0.000 = Do ponto de vista estatístico é esperado que em 99% de todos os casos o erro total não ultrapasse 0,0003 conforme mostra o resultado das simulações abaio. Soma( ) := s 0 S 0 rnd( ) for i.. 0000 rnd( ) s s + S S + round(, 4) S s MC := for i 0.. 999 Soma i i 00000 X := csort ( MC, 0) 99% de todas as somas são menores que: X = 0.000583904548 989 X = 0.00039490743876 989 X = 0.000397995439 989 X = 0.0006389577904 989 X = 0.0004306908507 989 X = 0.0008637689 989 Resultados obtido com cerca de 4 min.

MC := for i 0.. 9999 Soma i i 00000 X := csort ( MC, 0) 99% de todas as somas são menores que: X = 0.00059408983 9899 Resultado obtido com cerca de 40 min. MC := for i 0.. 99999 Soma i i 00000 X := csort ( MC, 0) 99% de todas as somas são menores que: X = 0.000634398953 98999 Normalmente nós classificamos os erros em computações numéricas para estudar suas fontes e seus crescimentos individuais. Enquanto as fontes têm uma natureza que é essencialmente estática, o crescimento é puramente dinâmico. Apesar de erros grosseiros terem freqüentemente um papel destacado em cálculo numérico, nós não trataremos dele aqui. Sendo assim, restam essencialmente três fontes de erro:. Erros iniciais;. Erros de truncamento; 3. Erros de arredondamento. Erros inicias são erros nos dados iniciais. Os erros de truncamento surgem quando um processo infinito (em algum sentido) é trocado por um finito. Erros de arredondamento surgem do fato que durante uma computação numérica os números devem ser arredondados até um certo número de dígitos. Geralmente uma computação numérica é feita com muitos passos. Cada passo nós temos as aproimações e y dos números eatos e y e nós obtemos a aproimação z de Z com o uso de uma das quatro operações aritméticas. Por eemplo, se = + δ e y = y + γ e se calcula z =, calcula-se na realidade y 3

então Eemplos: + δ z = = + ε y y + γ z z + δ γ + ε y y := 8 δ := 0.009 y := 5 γ := 0.04 X := + δ Y := y + γ =.6 y X Y =.589 y + y δ γ =.589 y := 8 δ := 0.07 y := 5 γ := 0.08 X := + δ Y := y + γ =.6 y X Y =.56 y + y δ γ =.56 y O erro em z é constituído dos erros propagados de e y e um novo erro de arredondamento. È interessante ilustrar diferentes tipos de erro mais eplicitamente. Suponha que nós queremos computar f() para um dado real. No cálculo prático é aproimado por pois o computador tem uma palavra finita. A diferença entre - é o erro inicial, enquanto ε = f( ) f() é o erro propagado correspondente. Normalmente f é trocado por uma função mais simples f (freqüentemente uma série de potência truncada). A diferença ε = f( ) f( ) é o erro de truncamento. Os cálculos são feitos por um computador, portanto não são eatos. Na realidade calculamos f ( ) no lugar de f ( ), o qual é um valor calculado errado de uma função errada com argumento errado. A diferença = f ( ) f ( ) é o erro de arredondamento propagado. O erro total é ε 3 ε f ( ) f() = ε + ε + ε 3 =. Eemplo: Calcular fazendo todos os cálculos com 4 decimais. (Obs. Os cálculos foram feitas com uma calculadora) 4

3 ε 0,3333 = e e = 0,00046596 3 e f( ) = + + + +!! 3! 4 4! para = 0,3333 ε 5 6 0,3333 0,3333 = f( ) f( ) = - + + L = 5! 6! f ( ) = + 0,3333 + 0,0555 + 0,006 + 0,0005 =,3955 f ( ) =,395596304 obtidos com 0 decimais ε 3 = 0,000096304 0,000036750 3 ε =.3955 e = ε + ε + ε = 0,000450-5 Cancelamento numérico Devido ao comprimento limitado das palavras em computadores, e em conseqüência do uso da aritmética da vírgula flutuante normalizada, as leis da aritmética elementar não são satisfeitas. Os efeitos do uso da aritmética da vírgula flutuante serão vistos em alguns eemplos que seguem. Os eemplos a seguir violam a lei associativa da adição. Eemplo : (quando usamos uma máquina com quatro dígitos decimais na representação) = 9,909 y =,000 z = -0,990 ( + y) + z = 0,90 + (-0,990) = 9,90 + (y + z) = 9,909 + (0,00) = 9,99 Eemplo : (quando usamos uma máquina com quatro dígitos decimais na representação) = 456 y = 0,347 (y + ) - = (-0,347 + 456) - 456 = 456-456 = 0,0000 y + ( - ) = 0,347 + (456 456) 5

= 0,347 + 0,0000 = 0,347 Vejamos agora um eemplo (quando usamos uma máquina com quatro dígitos decimais na representação) que viola a lei distributiva = 9909 y = -,000 z = 0,999 ( y) + ( z) = 9909 + 9899 = 0,00 ( y + z) = 9909 + ( 0,00) = 9,909 A equação do segundo grau b + ε = 0 tem duas soluções: b + b 4ε = e = b b 4ε Se b < 0 e ε << b, é epresso como a diferença de dois números praticamente iguais e poderá perder muitos dígitos significativos. Se nós reescrevemos = ε = b + ε b 4ε a raiz é aproimadamente b ε sem perda de dígitos significativos. Eemplo: (quando usamos uma máquina com quatro dígitos decimais na representação) b = 300,0 e ε =,000 90000 4,000 = 600,0,000 = = 300,0 300,0 300,0 300,0 0,000 = =,000,000 = 0,000 ε,000 usando a relação = = = 0,003 é o resultado mais preciso. 300,0 6

e - Sabe-se que para grane senh() cosh(). Se quisermos calcular e - podemos dizer que e - = cosh() senh(), o que conduz a um cancelamento perigoso. Por outro lado e = cosh() + fornece resultados mais precisos. senh() -6 Eercícios ) Converta os seguintes números decimais para sua forma binária: a) 35 b) 345 c) 0.8 d) 67,67 e) 95 f) 500 g) 000 h) 655 i) 7 j) 3,6 0 l) 3 m),50-8 ) Converta os números binários para suas formas octal, headecimal e decimal: a) 00 b) -000 c) -0.0 d) 0.0 e) 0.00000 f) 00 g) -000 h) -0.0 i) 0.0 j) 0.00000 3) Reescreva os números seguintes na forma geral da vírgula flutuante, tal que a mantissa fique entre e : a) 7,534 b) 89,90 c) 80 d),37560-7 e),0 f),00 g) 0,000 h) 000 4) Qual o valor de cada epoente se os números da questão 3 forem colocados na representação vírgula-flutuante normalizada? Qual é o valor do epoente ajustado em cada caso se nós adicionamos arbitrariamente 5 ao epoente original? 5) Seja o número seguinte em vírgula-flutuante num computador de 3 bits: 000.00.0000.000.000.00.00.0 Se o primeiro bit é o sinal do número, os oito seguintes a característica obtida com adição de 8 ao epoente do número vírgula flutuante, e os 3 restantes são a mantissa, responda às questões seguintes: a) O número está normalizado? Se não o normalize. b) Qual o sinal do número? c) O valor absoluto do número é menos que. 6) Repita a questão 5 com o número 000.0000.00.0.00.0.0.00 7) Para a representação da questão 5, quais são aproimadamente o maior e o menos número, o menor número positivo e o próimo menor número positivo. 7

8) Represente os números binários da questão ) na maquina binária que utiliza o seguinte esquema de representação de ponto flutuante: Sinal da Mantissa Mantissa Sinal da Característica Característica 9) Converter para base 0 os valores representados na máquina binária: a) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b) 0 0 0 0 0 0 0 0 0 0 0 0 9) Seja um sistema de aritmética de ponto flutuante na base decimal com quatro dígitos na mantissa e dois na característica, digito de sinal da mantissa e digito sinal da característica. Dados os números: Mantissa Sinal da Mantissa Característica Sinal da Característica = 0.7737 y = 0.450-3 z = 0.5850 Efetue as seguintes operações: a) +y+z b) -y-z c) /y d) (y)/z e) (y/z) 0) Use a aritmética da vírgula-flutuante par somar e subtrair os seguintes pares de números: ) Use a aritmética da vírgula-flutuante para realizar as operações aritméticas seguintes: ) Calcular as cotas dos erros absolutos e relativos que se comete ao se tomar como valores de π: 8

a) /7 b) 333/6 c) 355/3 d) 3 + 3) Use a aritmética da vírgula-flutuante par somar e subtrair os seguintes pares de números? 4) Use a aritmética da vírgula-flutuante par somar e subtrair os seguintes pares de números? Bibliografia 9