Buscar

Roteiro 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
UNIVERSIDADE FEDERAL DA GRANDE DOURADOS 
FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA 
Profª.: Dra. Selma Helena Marchiori Hashimoto 
 
Aritmética Computacional e Erro de Arredondamento 
1. Introdução 
O Cálculo Numérico ou Análise Numérica é um conjunto de métodos usados para se 
obter a solução de problemas matemáticos de forma aproximada. Esses métodos se aplicam 
principalmente a problemas que não apresentam uma solução exata. 
Ao resolver um problema matemático numericamente, o mais comum é a utilização 
um pacote computacional. Porém, é preciso ter conhecimento de métodos numéricos, pois 
será necessário tomar algumas decisões: 
 Pela utilização ou não de um método numérico; 
 Escolher o método a ser utilizado, o mais adequado para o problema, sabendo 
quais vantagens e quais limitações de cada método; 
 Saber avaliar a qualidade da solução obtida. Para isso, é necessário saber como 
determinado método é aplicado. 
 
2. Representação Numérica 
Para calcular o valor da expressão 
12 
, precisa-se escrever o número 
2
 de 
alguma outra forma, senão não é possível realizar essa operação. 
Uma solução é escrevê-lo na base decimal (base mais usada no dia a dia), o valor de 
2
 na base decimal pode ser representado por 1,41 ou 1,4142 ou ainda 1,41421356237, além 
de outras. A diferença entre essas várias formas de representar 
2
 é a quantidade de 
algarismos significativos usados em cada representação. Assim a expressão 
12 
 será 
igual 0.41 ou 0.4142 ou ainda 0.41421356237, conforme o número de algarismos 
significativos adotados na representação. 
Isto mostra que o conjunto dos números representáveis em qualquer máquina digital, 
calculadora ou computador, é finito, ou seja, não é possível representar em uma máquina 
todos os números de um dado intervalo [a, b]. A implicação imediata desse fato é que o 
 2 
resultado de uma simples operação aritmética pode conter erros, os quais serão discutidos 
mais a frente. 
Inicialmente, têm-se como os números são representados num computador. Para tanto, 
deve-se entender que um número pode ser representado em várias bases, um exemplo é a base 
binária, ou seja, usando o número 2 como base ao invés do número 10. Como na base decimal 
existem 10 algarismos diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), na base binária existem somente 2 
números: 0 e 1 (a base binária é muito usada porque as máquinas utilizam-se de sinais 
elétricos, sendo o 0 correspondente a ausência de sinal e o número 1 a presença do sinal 
elétrico). 
A princípio, toda vez que se escreve um número, dever-se-ia mencionar a base 
numérica a qual esta se referindo. Obviamente, isso não se faz necessário na prática, pois 
sempre se representa os números na base decimal, portanto sabe-se exatamente o seu 
significado. 
 
Representação de um número inteiro 
Essa ideia que está por trás da representação dos números em bases numéricas é 
utilizada para representar números no computador. Em princípio, a representação de um 
número inteiro no computador não apresenta nenhuma dificuldade. Qualquer computador 
trabalha internamente com uma base fixa 𝛽, em que 𝛽 é um inteiro ≥ 2, e é escolhido como 
uma potência de 2. Assim, dado um número inteiro 𝑛 ≠ 0, ele possui uma única 
representação: 
𝑛 = ±(𝑛−𝑘𝑛−𝑘+1 … 𝑛−1𝑛0)𝛽 = 𝑛0𝛽
0 + 𝑛−1𝛽
1 + ⋯ + 𝑛−𝑘𝛽
𝑘 
Em que os 𝑛𝑖, 𝑖 = 0, −1, −2, … , −𝑘 são inteiros satisfazendo 0 ≤ 𝑛𝑖 < 𝛽 e 𝑛−𝑘 ≠ 0 
 
Exemplos: 
a) Quando se escreve o número 1532, o que realmente quer se dizer? 
Esse número está na base 10 representa uma quantidade equivalente a 
11000 + 5100 + 310 + 2 ou 1103 + 5102 + 3101 + 2100. 
Logo (1532)10 = 2 × 10
0 + 3 × 101 + 5 × 102 + 1 × 103 
E é armazenado como +(𝑛−3𝑛−2𝑛−1𝑛0)10 
 
Essa é a chamada representação posicional de números. 
 
 3 
b) Na base binária, o mecanismo é o mesmo, porém, ao invés de potências de 10, 
utiliza-se potências de 2. Portanto, um número binário como 1011 (base binária só 
existem os algarismos 0 e 1) significa 
(1011)2 = 12
3
 + 022 + 121 + 120 
Que na base 10 seria 8+2+1=11. Ou seja, (1011)2 = (11)10 
 
Representação de um Número Real 
A representação de um número real no computador pode ser feita de duas maneiras: 
 
a) Representação de ponto fixo 
Este foi o sistema usado, no passado, em muitos computadores. Assim, dado um 
número real, 𝑥 ≠ 0, ele será representado em ponto fixo por: 
𝑥 = ± ∑ 𝑥𝑖𝛽
−𝑖
𝑛
𝑖=𝑘
 
 
Em que k e n são inteiros satisfazendo 𝑘 < 𝑛 e, usualmente, 𝑘 ≤ 𝑛 e 𝑛 > 0, 
𝑥𝑖 são inteiros satisfazendo 0 ≤ 𝑥𝑖 < 𝛽 
 
Exemplos: 
O número 1997,16, na base 10, é representado por: 
(1997,16)10 = + ∑ 𝑥𝑖𝛽
−𝑖
2
𝑖=−3
 
= 1 × 103 + 9 × 102 + 9 × 101 + 7 × 100 + 1 × 10−1 + 6 × 10−2 
 
b) Representação de ponto flutuante 
Esta representação é mais flexível que a representação em ponto fixo, é 
universalmente utilizada nos dias atuais. 
Dado um número real 𝑥 ≠ 0, ele será representado em ponto flutuante por: 
𝑥 = ±𝑑 × 𝛽𝑒 
em que 𝛽 é a base do sistema de numeração, d é a mantissa e 𝑒 é o expoente. A 
mantissa é um número em ponto fixo, isto é: 
𝑑 = ± ∑ 𝑑𝑖𝛽
−𝑖
𝑛
𝑖=𝑘
 
 4 
Em que: d é uma fração na base 𝛽 
𝑘 = 1 (frequentemente), 
0 ≤ 𝑑𝑖 < 𝛽, 𝑖 = 1, 2 , … , 𝑡 com t a quantidade de dígitos significativos da mantissa ou 
precisão do sistema, 
e é um expoente que varia em um intervalo dado pelos limites da máquina utilizada 
(𝑚 ≤ 𝑒 ≤ 𝑀). 
 
Observações: 
1. 𝑑1 ≠ 0 caracteriza o sistema de números em ponto flutuante normalizado; 
2. O número zero pertence a qualquer sistema e é representado com mantissa igual a 
zero e 𝑒 = 𝑚. 
3. Esse tipo de representação é chamada de ponto flutuante pois o ponto da fração 
“flutua” conforme o número a ser representado e sua posição é expressa pelo 
expoente e. 
 
Um sistema de números em ponto flutuante normalizado, na base 𝛽, com t dígitos 
significativos e com limites dos expoentes m e M, tem a seguinte notação 𝐹(𝛽, 𝑡, 𝑚, 𝑀) e será 
representado por: 
 (0. 𝑑1𝑑2𝑑3 … 𝑑𝑡)β
𝑒 
em que 𝑑1 ≠ 0. 
 
Exemplo 1: 
Número na base decimal Representação em ponto flutuante mantissa base Expoente 
1532 0.1532104 0.1532 10 4 
15.32 0.1532102 0.1532 10 2 
0.00255 0.25510-2 0.255 10 -2 
10 0.10102 0.10 10 1 
10 0.101024 0.1010 2 4 
 
Exemplo 2: Escrever os números a seguir, onde todos estão na base β = 10, em ponto 
flutuante na forma normalizada: 
a) 0,35 
b) −5,172 
c) 0,0123 
d) 5391,3 
e) 0,0003 
 5 
Exemplo 3: Considere o sistema 𝐹(10,3, −2,2). Represente neste sistema os números do 
exemplo anterior 
 
Exemplo 4: Seja 𝑓(𝑥) uma função contínua real definida no intervalo [𝑎, 𝑏], 𝑎 < 𝑏, e sejam 
𝑓(𝑎) < 0 e 𝑓(𝑏) > 0. Então, de acordo com o teorema do valor intermediário (do cálculo 
diferencial e integral), existe x, 𝑎 < 𝑥 < 𝑏, tal que 𝑓(𝑥) = 0. Seja 𝑓(𝑥) = 𝑥3 − 3, determinar 
x tal que 𝑓(𝑥) = 0. Considerar 𝑡 = 10 e 𝛽 = 10. 
 
3. Mudança de Base 
 Como já foi dito antes, um número pode ser representado em mais de uma base e, 
através de uma mudança de base, é sempre possível determinar a representação em uma nova 
base. A seguir tem-se como se faz mudança de base: 
 
De uma base qualquer para a base 10: o procedimento consiste em multiplicar cada 
algarismo da parte inteira do número por potências crescentes da base, da direita para a 
esquerda, e multiplicar cada algarismo do número após a vírgula por potências decrescentes 
da base, da esquerda para a direita, e, por fim, somar todas as parcelas. 
Exemplo: Dado o número 1101,11 na base 2, encontrarseu valor correspondente na base 10 
(1101,11)2 = 1 × 2
0 + 0 × 21 + 1 × 22 + 1 × 23 + 1 × 2−1 + 1 × 2−2
= 1 + 0 + 4 + 8 +
1
2
+
1
4
= 13,75 
 
Da base 10 para uma base qualquer: O procedimento consiste em dividir a parte inteira do 
número pela nova base e continuar dividindo o quociente pela base até que o último quociente 
seja menor que o divisor (ou seja, a base). A parte inteira do número nessa base será obtido 
tomando-se o último quociente e todos os restos das divisões anteriores. O número após a 
vírgula deve ser multiplicado pela base e continua multiplicando a parte decimal do resultado 
obtido pela base. A parte decimal do número será então obtida tomando-se a parte inteira do 
resultado de cada multiplicação. 
Exemplo: Dado o número 13,75 na base 10, encontrar seu valor correspondente na base 2 
13 2 
 1 6 2 
 0 3 2 
 1 1 
0,75 × 2 = 𝟏, 5 
0,5 × 2 = 𝟏, 0 
Logo (13,75)10 = (1101,11)2 
 6 
4. Erros Numéricos 
Como foi visto anteriormente, não existe uma forma de representar um número 
irracional em uma máquina, pois a mesma só consegue representar números com uma 
quantidade finita de algarismos. Portanto, o número apresentado pela calculadora ou 
computador é uma aproximação do valor real. E quão próximo do valor real está o resultado 
mostrado? A diferença entre o valor real e o valor aproximado que efetivamente foi calculado 
é definido como erro, ou seja: 
 
Erro = (valor real) – (valor aproximado) 
 
 Quanto menor for esse erro, mais preciso será o resultado da operação. Essa definição 
corresponde ao erro absoluto de um cálculo. 
Porém, se os números trabalhados forem muito grandes, o erro pode ser grande em 
termos absolutos, mas o resultado ainda será preciso. E o caso inverso também pode ocorrer: 
um erro absoluto pequeno, mas um resultado impreciso. 
Exemplos: 
1. Seja o resultado de uma operação o valor 2.123.542,7 enquanto que o valor real 
deveria ser 2.123.544,5. O erro absoluto neste caso é 1,8. Comparada com o valor 
real, essa diferença (o erro) é bem pequena, portanto, podemos considerar o resultado 
preciso. 
2. Seja o resultado de uma operação o valor 0,234 enquanto que o resultado esperado era 
0,128. O erro absoluto será igual a 0,106, porém o resultado é bastante impreciso. 
 
A fim de evitar esse tipo de ambiguidade, pode-se criar uma nova definição: o erro 
relativo, que corresponde ao quociente entre o erro absoluto e o valor real da grandeza a ser 
calculada, ou seja: 
 
realvalor
aproximadovalorrealvalor
relativoerro
)()(
 


 
 
 O erro relativo é uma forma mais interessante de se avaliar a precisão de um cálculo 
efetuado. 
Exemplo: Calcule os erros relativos dos exemplos anteriores. 
 7 
3.1 Tipos de Erros 
O erro cometido ao se calcular o valor de 
2
, por exemplo, é apenas um tipo de erro 
que pode surgir ao se resolver um problema real. Outros tipos de erros também podem 
aparecer devido a outros tipos de problemas ou limitações. 
 A solução matemática de um determinado problema envolve diversas etapas. A 
solução do problema se inicia com a criação de um modelo matemático do sistema em 
questão. Esse modelo sempre apresentará aproximações e limitações. Além disso, na grande 
maioria das vezes, dados experimentais serão utilizados para se obter a solução. Como toda 
medida experimental apresenta uma incerteza, a solução do problema será influenciada pelas 
mesmas. Portanto, logo de início, existem diversos fatores que introduzem incertezas na 
solução numérica do problema. Esse tipo de erro é chamado de erro inicial. 
 O problema para o cálculo de 
2
, que se refere a inevitável limitação na 
representação de números irracionais (por exemplo), introduz erros no resultado. Esse tipo de 
erro é chamado de erro de arredondamento. 
 Tem-se ainda um outro tipo de problema prático que pode surgir ao se realizar 
determinadas operações, como calcular o valor de e
x
. Ao utilizar uma máquina digital 
(calculadora ou computador), como esse equipamento irá realizar essa operação? Sabe-se que 
a exponencial é uma função que pode ser representada por uma série infinita dada por: 
 
!!3!2
1
32
n
xxx
xe
n
x
 
e na prática é impossível calcular seu valor exato. Neste caso, faremos um truncamento 
dessa série, e o erro gerado no valor de e
x
 é chamado de erro de truncamento. 
 
3.2 Propagação e Condicionamento de Erros Numéricos 
Seja a expressão 
32 e
. Ao se calcular o valor de 
2
, tem-se que realizar um 
arredondamento, que leva ao um resultado aproximado de 
2
, ou seja, existe um erro de 
arredondamento associado ao resultado. Para se calcular o valor de e
3
 tem-se que fazer um 
truncamento, que também irá gerar um erro no resultado obtido. Portanto, o resultado da 
operação de subtração entre 
2
 e e
3
 apresentará um erro que é proveniente dos erros nos 
valores de 
2
 e e
3
 separadamente. Em outras palavras, os erros nos valores de 
2
 e e
3
 se 
propagam para o resultado de 
32 e
. Pode-se concluir então que, ao se resolver um 
problema numericamente, a cada etapa e a cada operação realizada, deve surgir diferentes 
 8 
tipos de erros gerados das mais variadas maneiras, e estes erros se propagam e determinam o 
erro no resultado final obtido. 
 A propagação de erros é muito importante pois, além de determinar o erro final de 
uma operação numérica, ela também determina a sensibilidade de um determinado problema 
ou método numérico. Se uma pequena variação nos dados de entrada de um problema levar a 
uma grande diferença no resultado final, considera-se que essa operação é mal-condicionada, 
ou seja, existe uma grande propagação de erros nessa operação. Por outro lado, se uma 
pequena variação nos dados de entrada leva a apenas uma pequena diferença no resultado 
final, então essa operação é bem-condicionada. 
 
3.3 Erros na Aritmética de Ponto Flutuante 
 O primeiro tipo de erro que está presente na forma como computadores trabalham com 
números corresponde aos erros de arredondamento e truncamento. Como citado 
anteriormente, esses erros estão presentes pois os computadores precisam representar os 
números com uma quantidade finita de algarismos. 
Vamos supor, para simplificação, um computador com uma representação de ponto 
flutuante na base decimal e uma mantissa de 4 algarismos (𝑡 = 4). A fim de representar em 
ponto flutuante nesse computador, por exemplo, o número 734,68, tem-se que truncá-lo para 
0,7346103 ou arredonda-lo para 0,7347103. Portanto, no truncamento, estaríamos 
cometendo um erro absoluto 0,810-1 e no arredondamento, um erro de 0,210-1. Podemos 
generalizar esse exemplo e dizer que, em uma representação de ponto flutuante na base β e 
mantissa de 𝑡 algarismos, os erros de truncamento serão dados por: 
teerro  
 
onde o número em questão pertence ao sistema 𝐹(𝛽, 𝑡, 𝑚, 𝑀). E os erros de arredondamento 
serão dados por: 
teerro  
2
1
 
 Portanto, para uma representação numérica com 𝑡 = 24 ou 𝑡 = 53 (como no caso da 
maioria dos computadores) esse erro é muito pequeno. 
 Apesar de pequeno, é importante lembrar que ele se propagará nas operações 
aritméticas realizadas pelo computador. Como exemplo, ao se realizar a soma dos números 
6563 (= 0,6563104) e 3,375 (= 0,3375101) obtém-se 6566,375. Em um computador fictício 
de mantissa com 4 algarismos, o resultado dessa operação será 0,6566104 = 6566. Ou seja, 
 9 
apesar de partirmos de dois números exatos, o resultado da soma não será exata. Mais uma 
vez, para um computador real, esse erro será pequeno, porém, se um número muito grande de 
operações for realizado e se existira necessidade de se obter um resultado bastante preciso, 
será necessário se levar em consideração esse tipo de erro para avaliar o resultado obtido. 
 Existe mais um tipo de erro que aparece quando computadores manipulam números. 
Esse erro se refere à conversão de números de uma base para a outra. O tipo de conversão 
mais comum é da base decimal (usada por humanos) para a base binária (usada por 
computadores) e vice-versa. Um exemplo bastante peculiar é o número 0,1. Ao se converter 
esse número da base decimal para a base binária (existem diversos algoritmos para se realizar 
essa conversão), obtém-se como resposta: 
(0,1)10 = (0,0001100110011. . . )2 
 Portanto, nota-se que, ao se converter o número 0,1 da base decimal para a base 
binária, obtem-se um número com infinitos algarismos! Como esse número não pode ser 
representado pelo computador, ele será truncado, introduzindo um erro na sua representação. 
Uma forma interessante de constatar esse problema é escrevendo um pequeno programa que 
calcule o valor de 


1000
1
1,0
i
. Você verá que esse número não é igual a 100! 
 
 
 10 
 
 
Exercícios 
1. Considere o sistema 𝐹(10,4, −4,4). Represente neste sistema os números: 
a) 4321,4 
b) −0,0013523 
c) 125,64 
d) 57481,23 
e) 0,00034 
 
 
2. Considere os seguintes números que estão na base 10. Escreva-os na base 2: 
a) 34 b) 0,125 c) 33,023 
 
3. Considere os seguintes números que estão na base 2. Escreva-os na base 10: 
a) 110111 b) 0,01011 c) 11,0101 
 
4. Considere os seguintes números que estão na base 4. Escreva-os na base 5: 
a) 33 b) 0,132 c) 32,013 
 
5. Considere o sistema 𝐹(3,3, −2,1). 
a) Quantos e quais números podem ser representados nesse sistema? 
b) Represente nesse sistema os números: 𝑥1 = (0,40)10 e 𝑥2 = (2,8)10 
 
 
11 
6. Considere o sistema 𝐹(2,5, −3,1). 
c) Quantos e quais números podem ser representados nesse sistema? 
d) Qual o maior número na base 10 que podemos representar neste sistema (sem fazer 
arredondamento). 
 
7. 
 
 
 
 
 
8. 
 
 
 
 
 
9. 
 
 
 
10. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12 
Respostas: 
7. (a) 0,001264 e 4,025.10
-4 
 
(b) 7,346.10
-6
 e 2,338.10
-4 
 (c) 2,818.10
-4
 e 1,037.10
-4
 
 (d)2,136.10
-4
 e 1,1510.10
-4 
 (e)420 e 1,042.10
-2 
 
8. (a) [3,138451061; 3,144734246] 
 (b) [1,412799349; 1,4156627776] 
 (c) [149,85; 150,15] 
 (d) [1498,5; 1501,5] 
 
9. Aproximação 2,7166667 
 Erro absoluto 0,0016152 
 Erro relativo 5,9418.10
-4 
 
10. 𝒙 = 𝟔𝟕, 𝟒𝟐 e 𝒙 = 𝟖, 𝟖𝟔𝟗

Outros materiais