Você está na página 1de 58

Ministério da Educação

Universidade Federal Rural da Amazônia

Cálculo Numérico

Módulo 01: Representação de Números e Erros

Belém-Pa
Conteúdo Programático

1. Resolução de problemas
2. Representação de números
3. Sistemas decimal e binário
4. Representação e conversão de números inteiros
5. Representação e conversão de números fracionários
6. Representação em ponto flutuante
7. Tipos de Erros
8. Erros absolutos e relativos
9. Erros de arredondamento
10. Erros de truncamento
Resolução de Problemas

Problema Levantamento
real de dados

Implementação
Construção do Escolha do Método Computacional
Modelo Matemático Numérico Adequado do Método

Se necessário:
Análise dos reformular o Modelo Matemático
resultados obtidos e/ou
escolher novo Método Numérico
Resolução de Problemas

 Não é raro acontecer que os resultados finais estejam distantes do que se esperaria obter,
ainda que todas as fases de resolução tenham sido realizadas corretamente.
 Os resultados obtidos dependem também:
 da precisão dos dados de entrada;
 da forma como estes dados são representados no computador; e
 das operações numéricas efetuadas.
 Os dados de entrada contêm uma imprecisão inerente, isto é não há como evitar que
ocorram, uma vez que representam medidas obtidas usando equipamentos específicos ou
podem ser dados resultantes de pesquisas e levantamentos.
Representação de Números

Exemplo 1: Calcular a área de uma circunferência de raio 100 metros.

𝐴 = 𝜋𝑟 2 = 𝜋1002 = 𝜋10000, π=3,1415926535897932384626433832795...


 Resultados obtidos:
 𝐴 = 31400 𝑚2
 𝐴 = 31416 𝑚2
 𝐴 = 31415,92654 𝑚2

Como justificar as diferenças entre os resultados?


É possível obter “exatamente” esta área?
Representação de Números

Exemplo 2: Efetuar o somatório em uma calculadora e em um computador.


30000
𝑆= 𝑖=1 𝑥𝑖 , para 𝑥𝑖 = 0,5 e para 𝑥𝑖 = 0,11.

Resultados Obtidos
Máquina S para xi = 0,5 S para xi = 0,11
Calculadora 15000 3300
Computador 15000 3299,99691

Como justificar a diferença entre os resultados obtidos pela calculadora e pelo computador
para 𝑥𝑖 = 0,11?
Representação de Números

 Os erros ocorridos nos dois problemas dependem da representação dos números na


máquina utilizada.
 A representação de um número depende: da base escolhida ou disponível na máquina em
uso; e do número máximo de dígitos usados na sua representação.
 Em uma interação entre usuário e o computador:
- Os dados de entrada são enviados ao computador pelo usuário no sistema decimal;
- Toda essa informação é convertida para o sistema binário e as operações todas serão
efetuadas nesse sistema;
- Os resultados finais serão convertidos para o sistema decimal e, finalmente, serão
apresentados aos usuários.
Sistemas de Numeração Decimal e Binário
 O conjunto dos números representados em qualquer máquina é finito, e portanto, discreto, ou seja
não é possível representar em uma máquina todos os números de um intervalo [a, b]. A
representação de um número depende da BASE escolhida e do número máximo de dígitos usados na
sua representação.

 Embora a escolha da base adotada em um sistema de numeração posicional seja em princípio


arbitrária, de alguma forma (e muitas vezes), ocorre de acordo com o que se pode denominar de
“escolha natural”.

 Serão apresentadas os dois sistemas principais de numeração posicional:


 O sistema decimal (base dez), muito provavelmente originário da contagem comum usando-se
os dedos das mãos estendidos; e
 O sistema binário (base dois), usado pelos computadores, criado pela facilidade de
representação de dois estados opostos.
Representação de Números Inteiros
 No sistema de numeração posicional decimal, utilizam-se agrupamentos feitos de 10 em 10
elementos.
 Os símbolos básicos deste sistema são os dez algarismos (dígitos): 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.
 A significância (peso) de cada símbolo depende da posição que este ocupa no número
formado (potência: base e expoente). Por exemplo:
456 = 400 + 50 + 6 = 4 × 102 + 5 × 101 + 6 × 100
 Indexando cada um dos dígitos (dn), obtém-se a seguinte representação:
Onde: dn: é o dígito de índice n.
𝑑2 𝑑1 𝑑0 𝑑𝑒𝑧 = 𝑑2 × 102 + 𝑑1 × 101 + 𝑑0 × 100
 Isto é, cada índice do dígito está em correspondência com os expoentes da base 10.
Obs.: Índice é o nome da posição em ordem decrescente da esquerda para direita (𝑛 ∈ ℕ).
O primeiro índice (posição) é zero e está localizado à direita do número.
*** Representação de um número é o somatório do produto digito pelo peso ***
Representação de Números Inteiros

Na representação:
Posição 2 Posição 1 Posição 0 (direita)

456 = 400 + 50 + 6 = 4 × 102 + 5 × 101 + 6 × 100


Dígitos ou algarismos (dn): 4, 5 e 6
Pesos ou significância (10n): 102, 101 e 100

𝟒𝟓𝟔 = 𝒅𝒏 𝟏𝟎𝒏 4x102 5x101 6x100


𝒏=𝟐
n: Índice (Posição) 2 1 0
Representação ∑(dn10n) Digito d2 Peso Digito d1 Peso Digito do Peso
∑(dn10n) 4 102 5 101 6 100
Representação de Números Inteiros

 Generalizando, pode-se representar um número inteiro na base dez, usando:

𝑑𝑛 𝑑𝑛−1 … 𝑑1 𝑑0 𝑑𝑒𝑧 = 𝑑𝑛 × 10𝑛 + 𝑑𝑛−1 × 10𝑛−1 + ⋯ + 𝑑1 × 101 + 𝑑0 × 100


Onde n: índice (posição) máximo.
Cada termo da soma representa o valor do dígito participante, em função da posição
por ele ocupada na formação do número.
 A representação posicional binária assemelha-se à decimal, necessitando de dois símbolos:
0 e 1. Por exemplo:
1101 𝑑𝑜𝑖𝑠 = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20
Genericamente:
𝑏𝑛 𝑏𝑛−1 … 𝑏1 𝑏0 𝑑𝑜𝑖𝑠 = 𝑏𝑛 × 2𝑛 + 𝑏𝑛−1 × 2𝑛−1 + ⋯ + 𝑏1 × 21 + 𝑏0 × 20
Representação de Números Inteiros
 Deve-se notar que um sistema de numeração posicional de base 𝛽 ≤ 10, constitui-se de
símbolos 𝛼𝑘 (algarismos indo-arábicos), sendo:
0 ≤ 𝛼𝑘 ≤ 𝛽 − 1 , 𝑘 = 0,1, … , 𝑛
Onde k: índice do dígito .
O que leva à seguinte representação:

𝛼𝑛 𝛼𝑛−1 … 𝛼1 𝛼0 𝛽 = 𝛼𝑛 × 𝛽𝑛 + 𝛼𝑛−1 × 𝛽𝑛−1 + ⋯ + 𝛼1 × 𝛽1 + 𝛼0 × 𝛽0

 Para 𝛽 > 10, devem ser acrescentados ao conjunto de símbolos numéricos outros símbolos
básicos, até que se atinja o total de 𝛽 símbolos constituintes da base do sistema.
 Por exemplo, o sistema hexadecimal é formado pelos seguintes símbolos:
0,1,2,3,4,5,6,7,8,9, 𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹 .
Conversão de Outras Bases (Binário) para Decimal – Inteiro

 Somar o valor do dígito de cada temo (termos das potências de base 2).

Exemplo: Converter o número binário 11011 𝑑𝑜𝑖𝑠 em número decimal.

11011 𝑑𝑜𝑖𝑠 = 1 × 24 + 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
= 16 + 8 + 0 + 2 + 1 = 27 𝑑𝑒𝑧

11011 𝑑𝑜𝑖𝑠 = 27 𝑑𝑒𝑧


Conversão de Binário para Decimal – Inteiro
%{
Programa que converte um número inteiro (>=0)
na base binária para a base decimal
%}

% Configurações do ambiente de trabalho


clear all;
clc;

disp('Conversão de número inteiro na base binária para base decimal');


disp('Forma direta');
NumBin=input('Entre com um número na base binária (0''s e 1''s) => ','s');

NumDec = 0;

for i = 1 : length(NumBin)
NumDec = NumDec + str2num(NumBin(i)) * 2^(length(NumBin) - i);
end

disp(['O número binário ', NumBin, ' na base decimal é ', num2str(NumDec)]);
Conversão de Binário para Decimal – Inteiro

bin2dec(‘número binário’)
Conversão de Binário para Decimal – Inteiro
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* Programa que converte um número na base binária para a base decimal */
int bin_to_dec(long long numbin){
int total = 0;
int expoente = 0;
while(numbin > 0) {
total = total + (numbin % 10)*pow(2,expoente);
numbin = numbin / 10;
expoente++;
}
return total;
}
int main(int argc, char** argv) {
long long bin; int dec;
printf("Entre com um número na base binária (0's e 1's): "); scanf("%lld", &bin);
dec = bin_to_dec(bin);
printf("O número binário %lld na base decimal é = %d\n", bin, dec);
return (EXIT_SUCCESS);
}
Conversão de Binário para Decimal – Inteiro
Conversão de Decimal para Outras Bases (Binário) – Inteiro

D d D: dividendo
Método das Divisões Sucessivas r q d: divisor
q: quociente
r: resto
- Dividir sucessivamente o número decimal (D) pela base desejada (d).
- Os dígitos binários são os Restos (r) gerados em cada divisão em ordem inversa.
- Parar quando a parte inteira do Quociente (q) for zero.

O primeiro resto gerado é o bit menos significativo (LSB) do número binário (menor peso)
O último resto gerado é o bit mais significativo (MSB) do número binário (maior peso).
Conversão de Decimal para Binário – Inteiro

Exemplo: Converter o número decimal 12 𝑑𝑒𝑧 em número binário.

𝟏𝟐 𝒅𝒆𝒛 = 𝟏𝟏𝟎𝟎 𝒅𝒐𝒊𝒔


12 2
12 2

Menos Significativo
Mais Significativo
Menos Significativo 0 6 2
6 0
0 3 2
3 0
1 1 2
1 1
1 0
0 1
Mais Significativo

Ordem inversa: de baixo para cima


Critério de parada: parte inteira quociente igual a zero
Conversão de Decimal para Binário – Inteiro
%{
Programa que converte um número inteiro >= 0
na base decimal para a base binária
Método das Divisões Sucessivas (Forma direta)
%}

% Configurações do ambiente de trabalho


clear all;
clc;

disp('Conversão de número inteiro (>=0) na base decimal para binária');


disp('Método das Divisões das Sucessivas (Forma direta)');

n=1;
a=input('Entre com um número na base decimal => ');
NumDec=a; % variável auxiliar para exibição

while (a>0)
b(n)= rem(a,2);
a=floor(a/2);
n=n+1;
end
b=fliplr(b);
disp(['O número decimal ', num2str(NumDec), ' na base binária é: ', num2str(b)]);
Conversão de Decimal para Binário – Inteiro

dec2bin (número decimal)


Conversão de Binário para Decimal – Inteiro
#include <stdio.h>
#include <stdlib.h>
/* Programa que converte um número na base decimal para a base binária */
long long dec_to_bin(int numdec){
int resto, i = 1; long long bin;
int j = numdec;
while (j!=0) {
resto = j % 2;
j = j/2;
bin = bin + resto * i;
i = i*10;
}
return bin;
}
int main(int argc, char** argv) {
int dec; long long bin;
printf("Entre com um número na base decimal (até 1023):");
scanf("%d", &dec);
bin = dec_to_bin(dec);
printf("O número decimal %d na base binaria é = %lld\n", dec, bin);
return (EXIT_SUCCESS);
}
Conversão de Binário para Decimal – Inteiro Alto
#include <stdio.h>
#include <stdlib.h>
/* Programa que converte um número na base decimal para a base binária */
void dec_to_bin(int numdec, int vetor[]){
int resto, i;
int j = numdec; i = 0;
while (j!=0) {
resto = j % 2;
vetor[i] = resto;
i++;
j = j/2;
}
printf("O número decimal %d na base binaria é = ", numdec);
for (int k=i-1;k>=0;k--) printf("%d",vetor[k]);
}
int main(int argc, char** argv) {
int dec; int vet[30];
printf("Entre com um número na base decimal:");
scanf("%d", &dec);
dec_to_bin(dec, vet);
return (EXIT_SUCCESS);
}
Conversão de Binário para Decimal – Inteiro
Representação de Números Fracionários

 A representação de números fracionários se assemelha àquela usada para números


inteiros, entretanto sendo constituída por uma série de potências negativas da base adotada.

 O número fracionário 0, 𝑑1 𝑑2 … 𝑑𝑛 𝑑𝑒𝑧 , tem representação decimal finita e


corresponde a:
𝑛

𝑟= 𝑑𝑘 × 10−𝑘 = 𝑑1 × 10−1 + 𝑑2 × 10−2 + ⋯ + 𝑑𝑛 × 10−𝑛


𝑘=1

Lembrando que 𝑑𝑘 = 0, ∀𝑘 > 𝑛.


 Exemplo: a fração finita 1 4 = 0,25 = 2 × 10−1 + 5 × 10−2 .
Representação de Números Fracionários
 Se o número fracionário tiver representação decimal infinita, isto é,
0, 𝑑1 𝑑2 … 𝑑𝑛 … 𝑑𝑒𝑧 , temos:

𝑟= 𝑑𝑘 × 10−𝑘 = 𝑑1 × 10−1 + 𝑑2 × 10−2 + ⋯ + 𝑑𝑛 × 10−𝑛 + ⋯


𝑘=1

 Exemplo: a fração infinita 1 3 = 0,333 … = 3 × 10−1 + 3 × 10−2 + ⋯

 Da mesma forma, se for uma representação binária finita de número fracionário,


0, 𝑏1 𝑏2 … 𝑏𝑛 𝑑𝑜𝑖𝑠 , temos:
𝑛

𝑟= 𝑏𝑘 × 2−𝑘 = 𝑏1 × 2−1 + 𝑏2 × 2−2 + ⋯ + 𝑏𝑛 × 2−𝑛


𝑘=1
Sendo 𝑏𝑘 = 0, ∀𝑘 > 𝑛.
Representação de Números Fracionários
1
 Exemplo: 0,001 𝑑𝑜𝑖𝑠 =0× 2−1 +0× 2−2 +1× 2−3 = = 0,125 𝑑𝑒𝑧 .
8
 Se o número fracionário tiver representação binária infinita, isto é, 0, 𝑏1 𝑏2 … 𝑏𝑛 … 𝑑𝑜𝑖𝑠 ,
temos:

𝑟= 𝑏𝑘 × 2−𝑘 = 𝑏1 × 2−1 + 𝑏2 × 2−2 + ⋯ + 𝑏𝑛 × 2−𝑛 + ⋯


𝑘=1

 Exemplo: Conversão de 0,1001110 … 𝑑𝑜𝑖𝑠 para a base 10.


= 1 × 2−1 + 0 × 2−2 + 0 × 2−3 + 1 × 2−4 + 1 × 2−5 + 1 × 2−6 + 0 × 2−7 + ⋯
1 1 1 1
= + + + +⋯
2 16 32 64
= 0,5 + 0,0625 + 0,03125 + 0,015625 + ⋯
= 0,609375 … 𝑑𝑒𝑧 .
Conversão de Binário para Decimal – Fracionário

 Exemplo, o número 0,101101 𝑑𝑜𝑖𝑠 tem sua conversão para a base 10 através dos
seguintes cálculos:

0,101101 𝑑𝑜𝑖𝑠 = 1 × 2−1 + 0 × 2−2 + 1 × 2−3 + 1 × 2−4 + 0 × 2−5 + 1 × 2−6


1 1 1 1 45
= + + + =
2 8 16 64 64
= 0,5 + 0,125 + 0,0625 + 0,015625 = 0,703125 𝑑𝑒𝑧

0,101101 𝑑𝑜𝑖𝑠 = 0,703125 𝑑𝑒𝑧


Conversão de Binário para Decimal - Fracionário
Conversão de Binário para Decimal - Fracionário
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
/* Programa que converte um número fracionário na base binária para a base decimal */

int main(int argc, char** argv) {


char bin[20];
float dec;
printf("Entre com um número fracionário na base binária (0.xxxx), max. 12 casas
decimais: ");
scanf("%s",bin);
int tam = strlen(bin)-2;
if (tam <=12){
printf("Tamanho = %d\n",tam);
dec = bin_to_dec_frac(bin, tam);
printf("O número binário %s na base decimal é = %.10f\n", bin, dec);
}
else printf("Número máximo de casas decimais foi atingido!!!\n");
return (EXIT_SUCCESS);
}
Conversão de Binário para Decimal - Fracionário
float bin_to_dec_frac (char bin[], int tamanho){
char vetdec[tamanho+1];
int vetint[tamanho+1];
float total = 0;

for (int i=0; i<tamanho; i++){


vetdec[i] = bin[i+2];
}

for (int i=0; i<tamanho; i++){


vetint[i] = vetdec[i] - '0';
//printf("vetor[%d] = %d\n",i,vetint[i]);
}

for (int i=0; i<tamanho; i++){


total = total + vetint[i]/(pow(2,i+1));
printf("Total dígito %d = %.10f\n",i+1,total);
}
return total;
}
Conversão de Binário para Decimal - Fracionário
Conversão de Decimal para Binário - Fracionário
Método da Multiplicação Sucessivas por 2
- Multiplicar o número decimal fracionário por 2
- Multiplicar por 2 cada parte fracionária resultante do produto
- Para quando a parte fracionária for zero ou o número desejado de casas decimais atingido.
- As partes inteiras (dígitos de carry ou carries), geradas pela multiplicação formam o número binário.
- O primeiro carry gerado é o MSB e o último é o LSB
Exemplo: converter o número decimal fracionário 0,3125 para binário
Conversão de Binário para Decimal - Fracionário
Conversão de Binário para Decimal - Fracionário
Conversão de Binário para Decimal - Fracionário
Conversão de Número Decimal com Parte Inteira e Fracionária para Binário
Para um número decimal que possui parte inteira e parte fracionária, a conversão é feita
separadamente e os resultados combinados.

Exemplo: Conversão do número decimal 12,3125 em número binário.

Parte inteira: 12 Parte fracionária: 0,3125


12/2=6 → resto = 0 (LSB) 0,3125 x 2 = 0,6250 → carry = 0 (MSB)
6/2=3 → resto = 0 0,6250 x 2 = 1,250 → carry = 1
3/2=1 → resto = 1 0,250 x 2 = 0,500 → carry = 0
1/2=0 → resto = 1 (MSB) 0,500 x 2 = 1,000 → carry = 1 (LSB)
12,3125 = 1100,0101
Conversão de Número Decimal com Parte Inteira e Fracionária para Binário
Exemplo: Conversão do número decimal 20,8 em número binário

Parte inteira: 20 Parte fracionária: 0,8


20/2=10 → resto = 0 (LSB) 0,8 x 2 = 1,6 → carry = 1 (MSB)
10/2=5 → resto = 0 0,6 x 2 = 1,2 → carry = 1
5/2=2 → resto = 1 0,2 x 2 = 0,4 → carry = 0
2/2=1 → resto = 0 0,4 x 2 = 0,8 → carry = 0 (LSB)
1/2=0 → resto = 1 (MSB) *** Parte fracionária (0,8) se repete  Dízima periódica
20,8 = 10100,1100
Conversão de Número Decimal com Parte Inteira e Fracionária para Binário
Conversão de Número Binário com Parte Inteira e Fracionária para Decimal

Exemplo: Conversão do número binário 1101,11 em número decimal

1101,11 = 1𝑥23 + 1𝑥22 + 0𝑥21 + 1𝑥20 + 1𝑥2−1 + 1𝑥2−2


=8 +4 +0 +1 +1 2 +1 4
=8 +4 +0 +1 + 0,5 + 0,25
= 13,75

1101,11 = 13,75
Conversão de Número Binário com Parte Inteira e Fracionária para Decimal
Representação em Ponto Flutuante
 A computação numérica atual se vale de uma representação em que cada número apresenta
uma quantidade fixa e finita de dígitos.
 Portanto, muitos cálculos são realizados com apenas representações aproximadas dos
números que as originaram.
 Na notação científica a representação decimal se faz pela normalização do número por um
fator de escala.
Exemplos: 𝑟1 = 0,00000493 = 4,93 × 10−6 e 𝑟2 = 78920,65 = 7,892065 × 104 .
 O expoente da representação indica a ordem de grandeza do número, desde que a parte
inteira seja inferior a 5 (inferior a metade da base). Caso contrário, a ordem de grandeza do
número é acrescida de uma unidade.
 Assim, as ordens de grandeza de 𝑟1 e 𝑟2 são respectivamente 10−6 e 105 .
 A representação em ponto (ou vírgula) flutuante se assemelha à notação científica.
Representação em Ponto Flutuante
A representação em ponto (vírgula) flutuante de um número real x tem a forma:

𝑥 = ±(𝑑1 , 𝑑2 … 𝑑𝑡 )𝑏 𝑎 𝑥 = ±(0, 𝑑1 𝑑2 … 𝑑𝑡 )𝑏 𝑎 , forma normalizada


0, 𝑑1 𝑑2 … 𝑑𝑡 : dígitos (mantissa do número na forma normalizada)
t – número de dígitos (precisão da representação)
b: base do sistema de numeração
a: expoente do número (faixa de valores)
Condições:
(1) 0 ≤ 𝑑𝑖 ≤ 𝑏 − 1, ∀ 𝑖 𝜖 1, … , 𝑡
(2) 𝑑1 ≠ 0
(3) 𝑎 ∈ 𝑙, 𝑢
l: expoente mínimo (proximidade do zero)
u: expoente máximo (amplitude)
Representação em Ponto Flutuante

Notação: Aritmética (Sistema) de Ponto Flutuante, especifica a capacidade de uma


máquina.

𝐹(𝑏, 𝑡, 𝑙, 𝑢)

NaN 0 NaN
−∞ +∞
-u l u

b: base do sistema de numeração


t – número de dígitos, precisão da representação
l: expoente mínimo, proximidade do zero
u: expoente máximo, capacidade máxima da máquina (amplitude)
NaN: erro não é um número (Not a Number)
Representação em Ponto Flutuante
Exemplo: F(10,4,-5,5)
1) Qual o maior número representado?
M=9,999x105
2) Qual o menor número em módulo representado?
m=0,100x10-5

Se 𝑥 ∈ ℝ é representado, então 𝑚 ≪ |𝑥| ≪ 𝑀


Seja 𝑥 = 53841 = 5,3841𝑥104 → 𝑥 = 5,384𝑥104 , arredondamento para 4 dígitos
Seja y = 53839 = 5,3839𝑥104 → 𝑦 = 5,384𝑥104 , arredondamento para 4 dígitos
Números diferentes com a mesma representação: 5,384x104

Algarismos significativos Algarismo duvidoso


Representação em Ponto Flutuante
F(10,4,-5,5), m=0,100x10-5, M=9,999x105

Se |𝑥|<m
Seja 𝑥 = 2,223𝑥10−6 → 𝑈𝑁𝐷𝐸𝑅𝐹𝐿𝑂𝑊 (𝑒𝑟𝑟𝑜 𝑐𝑜𝑚𝑝𝑢𝑡𝑎𝑐𝑖𝑛𝑎𝑙)

Se 𝑥 > 𝑀,
Seja 𝑥 = 9,732𝑥108 → 𝑂𝑉𝐸𝑅𝐹𝐿𝑂𝑊 (𝑒𝑟𝑟𝑜 𝑐𝑜𝑚𝑝𝑢𝑡𝑎𝑐𝑖𝑜𝑛𝑎𝑙)

Observações:
(1) Zero  Menor expoente: 0,000x10-5
(2) Precisão dupla (dobro de dígitos)
- Aumenta precisão
- Diminui tempo de processamento
Representação em Ponto Flutuante
Exemplo: F(10,2,-5,5), Somar 4,32 e 0,064

4,32 + 0,064 = 0,432 𝑥 101 + 0,0064 𝑥 101


= 0,43 𝑥 101 + 0,0064 𝑥 101
= 0,4364 x 101
= 0,44 x 101 , 𝑎𝑟𝑟𝑒𝑑𝑜𝑛𝑑𝑎𝑑𝑜
= 0,43 x 101 , 𝑡𝑟𝑢𝑛𝑐𝑎𝑑𝑜
Tipos de Erros

 Surgem erros de várias fontes durante as etapas de solução de um problema.


 Esses erros podem alterar profundamente os resultados obtidos.
 É importante conhecer as causas desses erros para minimizar as suas consequências.
 Serão abordados os seguinte tipos de erros:
 Erro absoluto e erro relativo
 Erro de truncamento
 Erro de arredondamento
Erros absolutos e relativos

 Erro Absoluto é definido como:


𝑒𝑟𝑟𝑜 𝑎𝑏𝑠𝑜𝑙𝑢𝑡𝑜 = 𝑣𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙 − 𝑣𝑎𝑙𝑜𝑟 𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑑𝑜

Exemplo: Medir os comprimentos de uma ponte e um prego

Valor [cm]
Erro Absoluto
Item Real Aproximado [cm]
(verdadeiro) (Medido)
Ponte 10000 9999 1
Prego 10 9 1

 Tamanho do erro absoluto é mais grave quando o valor real for pequeno.
 Erro absoluto não leva em conta a ordem de grandeza do valor (magnitude do valor) que
está sendo examinado.
Erros absolutos e relativos
 Erro Relativo e Erro Relativo Percentual é definido como:

𝑣𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙 − 𝑣𝑎𝑙𝑜𝑟 𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑑𝑜


𝑒𝑟𝑟𝑜 𝑟𝑒𝑙𝑎𝑡𝑖𝑣𝑜 =
𝑣𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙
sendo indefinido para valor real nulo.

Exemplo: Medir os comprimentos de uma ponte e um prego

Valor [cm] Erro Erro Erro


Item Real Aproximado Absoluto Relativo Relativo
(verdadeiro) (Medido) [cm] [cm] Percentual
Ponte 10000 9999 1 0,0001 0,01%
Prego 10 9 1 0,1 10%

Vantagem do erro relativo sobre o erro absoluto: independência da magnitude dos valores.
Erros de Truncamento

 São erros devido a interrupção de processos infinitos.

+∞ 1
Exemplo: Número de Euler (e=2,7182...) pode ser obtido pela série infinita 𝑘=0 𝑘!

Termos 1 2 3 4 5 6 7 8
e 1 2 2,5000 2,6667 2,7083 2,7167 2,7181 2,7182
Erro % 100 50 20 6,2 1,5 0,3 0,05 0,003

 Quanto mais termos, maior a quantidade de dígitos “corretos”.


Erros de Arredondamento

 São erros que aparecem ao se trabalhar com máquinas (computadores) , na representação de


números e nos cálculos de operações.

 Para analisar as causas e consequências desse tipo de erro precisa-se conhecer aritmética de
ponto flutuante.
Erros de Arredondamento

Arredondamento Norma ABNT/NBR 5891/2014 - (metade da base)

Referência: Número de casas decimais “|”


Algarismo Anterior
Algarismo Seguinte

Exemplos:
0,3|452342 (1 casa decimal)
0,34|52342 (2 casas decimais)
0,345|2342 (3 casas decimais)
0,3452|342 (4 casas decimais)
0,34523|42 (5 casas decimais)
Erros de Arredondamento

Arredondamento ABNT (metade da base)

Exemplo: (2 casa decimal)


Referência: Número de casas decimais “|”
Valor ABNT Regra
Algarismo Anterior 0,342 0,34 A
Algarismo Seguinte 0,346 0,35 D
0,3452 0,35 C
0,3450 0,34 B par
Regra Algarismo Seguinte Algarismo Anterior
0,332 0,33 A
A <5 Permanece
0,336 0,34 D
Par: Permanece
B = 5 todos nulos 0,3352 0,34 C
Ímpar: Soma 1
0,3350 0,34 B impar
C = 5 não nulos Soma 1
0,305 0,30 B par
D >5 Soma 1
0,315 0,32 B impar
Erros de Arredondamento

Arredondamento ABNT (metade da base)

Referência: Número de casas decimais “|” Exemplo


Algarismo Anterior Valor Casas ABNT Regra

Algarismo Seguinte 3,1268 3 3,127 D


2,136 2 2,14 D
1,2796 3 1,28 D
Regra Algarismo Seguinte Algarismo Anterior 45,128 1 45,1 A
A <5 Permanece 1,23458 2 1,23 A
Par: Permanece 1,25021 1 1,3 C
B = 5 todos nulos
Ímpar: Soma 1 4,6253 2 4,63 C
C = 5 não nulos Soma 1 1,375000 2 1,38 B impar
D >5 Soma 1 3,145 2 3,14 B par
Erros de Arredondamento

Arredondamento ABNT (metade da base)

Observação:
Em software como o Excel se o algarismo seguinte é 5, o algarismo anterior é adicionado de
uma unidade.
Exercícios

1. Converta o número binário 1011101 para o formato decimal.


2. Converta o número binário 11000101,101 para o formato decimal.
3. Converta o número binário 10010101110001,01110101 para o formato decimal.
4. Escreva o número 81 nos seguintes formatos: (a) Formato binário; (b) Representação em ponto
flutuante na base 2.
5. Escreva o número 66,25 nos seguintes formatos: (a) Formato binário; (b) Representação em ponto
flutuante na base 2.
6. Escreva o número –0,625 nos seguintes formatos: (a) Formato binário; (b) Representação em ponto
flutuante na base 2.
7. Escreva o número 0,533203125 nos seguintes formatos : (a) Formato binário; (b) Representação em
ponto flutuante na base 2.
Exercícios - Respostas
1. 93
2. 197,625
3. 9585,45703125
4.
a) 1010001
b) 1,265625 × 26
5.
a) 1000010,01
b) 1,03515625 × 26
6.
a) −0,101
b) 1,25 × 2−1
7.
a) 0,100010001
b) 1,06640625 × 2−1

Você também pode gostar