Você está na página 1de 44

Disciplina: Cálculo numérico e

computacional
Temática: Matemática Numérica
e Análise de Erro - Parte 2
Professor: Vinícius da Rocha Motta
vinicius.motta@uvv.br
Representação e Aritmética de Ponto Flutuante

O número de bits geralmente é fixo para qualquer


computador.
Usar a representação binária nos dá uma faixa e precisão
de números insuficientes para realizar cálculos relevantes
de engenharia.
Para alcançar a faixa de valores necessários com o mesmo
número de bits, usamos números de ponto flutuante, ou
floats, abreviadamente.
Representação e Aritmética de Ponto Flutuante

A faixa de números que podem ser


representados em ponto fixo é insuficiente
para a maioria das aplicações científicas, onde
existe a necessidade de representar números
muito grandes e/ou números muito
pequenos.
Representação e Aritmética de Ponto Flutuante

Para contornar este problema, desenvolveu-se a


notação científica, na qual um quintilhão é
representado por 1,0 × 1018, em vez de
escrevê-lo por extenso:
– 1 000 000 000 000 000 000.

http://www.cpgg.ufba.br/pessoal/reynam/Curso_HPC_2016_1/3-P
onto_Fixo_e_Ponto_Flutuante.pdf
Representação e Aritmética de Ponto Flutuante

● A representação de números em ponto flutuante é basicamente


a versão binária da notação científica.

● A cada número em ponto flutuante estão associados, na


realidade, três outros números: mantissa m, expoente e, base
b.

● No caso dos computadores atuais, a base utilizada é a binária,


ou seja, b = 2.
Representação e Aritmética de Ponto Flutuante

O número em ponto flutuante é então calculado por:

A base b é uma constante para um determinado sistema, no exemplo


do binário é 2.
O número em ponto flutuante é então representado por um par (m, e),
onde m é uma fração ou um inteiro, e e é o expoente (sempre inteiro).
- Note que ambos, mantissa ou expoente, podem ser positivos ou
negativos.
Representação e Aritmética de Ponto Flutuante

O número em ponto flutuante é então calculado por:

A base b é uma constante para um determinado sistema, no exemplo


do binário é 2.
O número em ponto flutuante é então representado por um par (m, e),
onde m é uma fração ou um inteiro, e e é o expoente (sempre inteiro).
- Note que ambos, mantissa ou expoente, podem ser positivos ou
negativos.
Representação e Aritmética de Ponto Flutuante
A representação de um sistema de ponto flutuante é::

Onde b é a base, n é o número de dígitos da mantissa (precisão do


sistema), e1 e e2 são o menor e o maior expoente.
Representação e Aritmética de Ponto Flutuante

● Representação de uma máquina hipotética que:


○ Representa os números na base 10;
○ Memória:
■ Uma posição para o sinal;
■ Duas posições para os dígitos;
■ Uma posição para o expoente n, que pode ser {-1,0, 1}
Representação e Aritmética de Ponto Flutuante

Configuração da máquina hipotética:

Sinal 0, D1 D2 X 10n

Posição dos dois


+ ou - dígitos (mantissa)
n é a potência onde
Base: 10 onde, a base 10 será
elevada.
dj ={0,1,2,3,4,5,6,7,8,9}
Posição do ponto
flutuante e d1 diferente de zero
Representação e Aritmética de Ponto Flutuante

Qual é o conjunto numérico que essa máquina consegue representar?

D2
D1
0
1
1
2
2
3 e
3
4 x 10-1
4
5 x 100
5
6 x 101
6
7
7
8
8
9
9
Representação e Aritmética de Ponto Flutuante

Exercícios:
Represente os números abaixo na máquina mostrada anteriormente:
1
12
123
0,123
0,0123
Representação e Aritmética de Ponto Flutuante

A representação de ponto flutuante em uma máquina de 64 bits (ou 8


bytes) tem esse espaço de armazenamento para representar números
reais com alta precisão.
A representação de ponto flutuante em uma máquina de 64 bits segue o
padrão IEEE 754, que é um conjunto de normas para aritmética de ponto
flutuante em computadores.
Representação e Aritmética de Ponto Flutuante

O bit mais significativo (bit 63) é usado para representar o sinal do


número: 0 para positivo e 1 para negativo.
Os próximos 11 bits (bits 52 a 62) representam o expoente do número,
que é um número inteiro que determina o valor absoluto do número
representado.
Os últimos 52 bits (bits 0 a 51) representam a mantissa do número,
que é uma fração entre 0 e 1 que multiplica o valor absoluto
determinado pelo expoente.
Representação e Aritmética de Ponto Flutuante

A aritmética de ponto flutuante em uma máquina de 64 bits segue as


operações básicas da aritmética comum, como adição, subtração,
multiplicação e divisão.
No entanto, é importante observar que essas operações podem resultar
em erros de arredondamento devido à representação finita de
números em ponto flutuante.
Por isso, é necessário considerar as limitações da aritmética de ponto
flutuante ao lidar com números reais em uma máquina de 64 bits.
Representação e Aritmética de Ponto Flutuante
Um exemplo de número real representado em ponto flutuante em uma máquina de 64 bits seria o
número -1234,56789. Para representar esse número, precisamos seguir os seguintes passos:

1. Identificar o sinal: O número é negativo, então o bit de sinal é 1.


2. Converter o valor absoluto para binário: 1234 em binário é 10011010010 e 0,56789 em binário
é 0,10010011101000100011.
3. Normalizar o valor absoluto: Deslocamos a vírgula para a esquerda até que reste apenas
um bit 1 à esquerda da vírgula, obtendo 1,0011010010 x 2^10.
4. Obter o expoente: O expoente é dado pelo valor do deslocamento feito na normalização
mais o bias, que é 1023 para um número em dupla precisão (64 bits). Nesse caso, o
deslocamento foi de 10 bits, então o expoente é 10 + 1023 = 1033, que em binário é
10000001001.
Representação e Aritmética de Ponto Flutuante
Um exemplo de número real representado em ponto flutuante em uma máquina de 64 bits seria o número -1234,56789.
Para representar esse número, precisamos seguir os seguintes passos:

1. Combinar o sinal, o expoente e a mantissa em um único número de 64 bits:


a. Bit de sinal: 1
b. Bits de expoente: 10000001001
c. Bits de mantissa: 0011010010000000000000000000000000000000000000000000
d. Combinando os três grupos de bits, obtemos o número real em ponto flutuante:

1 10000001001 0011010010000000000000000000000000000000000000000000

2. Converter o número de volta para decimal: Para converter o número de volta para decimal, usamos a fórmula:
a. (-1)^s x (1 + mantissa) x 2^(expoente-bias)
b. No caso do nosso exemplo, temos:
c. (-1)^1 x (1 + 0,0011010010) x 2^(1033-1023) = -1234,5678863525391

Esse resultado é uma aproximação do número original, devido às limitações da aritmética de ponto flutuante em representar
números reais com precisão infinita.
Representação e Aritmética de Ponto Flutuante
Imagine que você está brincando de calcular números em um papel, como 1+1=2, 2+3=5, e
assim por diante. Quando você calcula um número muito grande, como 999.999 + 1, você
pode perceber que o resultado é maior do que você consegue escrever no papel. Isso é um
exemplo de overflow, que acontece quando o número que você quer calcular é maior do
que o espaço disponível para escrever o resultado.

Da mesma forma, quando você calcula um número muito pequeno, como 0,0001 - 0,0002,
você pode perceber que o resultado é menor do que você consegue escrever no papel. Isso
é um exemplo de underflow, que acontece quando o número que você quer calcular é
menor do que o espaço disponível para escrever o resultado.
Erros

“Engenheiros e cientistas constantemente têm de


trabalhar e alcançar objetivos com base em
informações incertas, mas ainda que a perfeição
seja uma meta louvável, ela raramente é atingida (se
alguma vez já foi).” (CHAPRA, 2013)
Erros

● Existem vários erros que podem ocorrer ao resolver um


problema real usando computação:
○ interpretação do problema
○ obtenção do resultado.

● É importante estar ciente desses erros, incluindo aqueles


causados por operações aritméticas, que podem levar a
um resultado impreciso e ser descartado.
Acurácia e precisão
A acurácia e a precisão são dois termos usados para descrever a qualidade de
uma medida ou resultado obtido.

A acurácia é uma medida de quão perto o resultado obtido está do valor real ou
esperado.

Por exemplo, se você está medindo a temperatura do ar em um dia quente de


verão, e seu termômetro diz que a temperatura é de 30 graus Celsius, mas o
valor real é de 32 graus Celsius, então o seu termômetro não é muito acurado.
Acurácia e precisão
Já a precisão é uma medida de quão bem uma medida pode ser repetida várias
vezes.
Por exemplo, se você usa o mesmo termômetro para medir a temperatura do ar várias
vezes em um dia quente de verão, e obtém resultados muito próximos um do outro,
então o seu termômetro é preciso.
Em outras palavras:
● a acurácia é o quão perto o resultado está do valor correto
● precisão é o quão consistente são os resultados obtidos.
Obs.: É importante lembrar que a acurácia e a precisão podem ser afetadas por vários
fatores, como a qualidade dos instrumentos de medição, o método de medição
utilizado, e até mesmo o erro humano.
Acurácia e precisão
Erro na modelagem
Erro na modelagem em cálculo numérico ocorre quando o modelo
matemático utilizado para resolver um problema real não é adequado ou não
representa fielmente o problema em questão.

Por exemplo, se você está tentando prever o tempo que levará para percorrer
uma distância de 100 km em um carro, e usa um modelo matemático que
assume que o carro sempre viaja a uma velocidade constante, você pode
obter um resultado que não corresponde à realidade, pois existem fatores
que podem influenciar a velocidade do carro, como trânsito, condições
climáticas e características da estrada.
Erro na modelagem

Esse tipo de erro pode ser minimizado fazendo uma análise


cuidadosa do problema em questão e escolhendo o modelo
matemático mais apropriado para resolvê-lo.
É importante lembrar que o cálculo numérico não é apenas
sobre a aplicação de fórmulas matemáticas, mas também
sobre entender o problema em questão e modelá-lo da
melhor maneira possível.
Erro absoluto e erro relativo
● O erro absoluto é uma medida de quão longe um valor obtido está do
valor correto ou esperado.
○ Por exemplo, se você medir o comprimento de uma mesa usando uma
régua e obtiver um valor de 105 cm, mas o valor correto é 100 cm, o erro
absoluto é de 5 cm.

● Já o erro relativo é uma medida de quão grande é o erro em relação ao


valor correto ou esperado.
○ Este erro é calculado dividindo o erro absoluto pelo valor correto ou
esperado. Por exemplo, no exemplo acima, o erro relativo seria de 5% (5
cm dividido por 100 cm).
Erro absoluto e erro relativo
As fórmulas para calcular o erro absoluto e o erro relativo são:

Erro Absoluto = |Valor Obtido - Valor Correto|

Erro Relativo = (Erro Absoluto - Valor Correto) / Valor Correto

Onde:

O valor obtido é o valor medido ou calculado;

O valor correto é o valor esperado ou teórico.


Abordagem iterativa no cálculo de uma solução

A abordagem iterativa é uma técnica de solução de problemas


em cálculo numérico que envolve a repetição de um processo
para se chegar a uma resposta aproximada.
Em outras palavras, em vez de encontrar uma solução exata
para um problema matemático, a abordagem iterativa é utilizada
para se aproximar da solução através de um processo que é
repetido várias vezes.
Abordagem iterativa no cálculo de uma solução

Uma maneira de realizar a parada da abordagem iterativa seria


utilizando o cálculo do erro abaixo:
Abordagem iterativa no cálculo de uma solução

A tolerância é um parâmetro importante no critério de


parada da abordagem iterativa no cálculo numérico.

Ela é utilizada para determinar quando o processo


iterativo deve ser interrompido, ou seja, quando a
solução aproximada encontrada é suficientemente
precisa.
Erros de arredondamento

Erros de arredondamento são erros que ocorrem quando os


números usados em um cálculo numérico são arredondados ou
truncados para um número finito de dígitos.
Por exemplo, suponha que queremos calcular a raiz quadrada de 2
usando um computador que armazena números com 4 dígitos
decimais. O valor exato de raiz quadrada de 2 é aproximadamente
1,41421356. No entanto, como nosso computador só pode armazenar
4 dígitos decimais, ele arredondará esse número para 1,4142.
Erros de arredondamento
Esse erro de arredondamento pode se acumular à medida que realizamos
mais cálculos com esse número arredondado.

Por exemplo, se quisermos calcular a diferença entre a raiz quadrada de 2 e


o número 1,4142, o resultado seria 0,00001356.

Erros de arredondamento podem causar problemas em cálculos numéricos e


podem levar a respostas imprecisas ou mesmo erradas.

Por isso, é importante estar ciente desses erros e tomar medidas para
minimizá-los, como aumentar o número de dígitos utilizados na
representação numérica ou usar técnicas de arredondamento mais
precisas.
Erros de truncamento
Erros de truncamento são erros que ocorrem quando um cálculo numérico
é aproximado ou simplificado para torná-lo mais fácil de lidar,
resultando em uma resposta imprecisa.

Por exemplo, suponha que queiramos calcular a área de um círculo com um


raio de 5 metros usando uma aproximação do valor de pi como 3,14.

A fórmula para a área de um círculo é A = pir^2, onde r é o raio do círculo.


Substituindo os valores, obtemos A = 3,145^2 = 78,5 metros quadrados.
Erros de truncamento
No entanto, sabemos que o valor exato de pi é infinito e é aproximadamente igual a
3,14159265359.
Usando este valor mais preciso, a área do círculo seria A = 3,14159265359*5^2 =
78,5398163397 metros quadrados. Podemos ver que a aproximação para pi causou
um erro de truncamento na resposta, resultando em uma área ligeiramente diferente.

Erros de truncamento podem ocorrer em vários cálculos numéricos, como em


integração numérica, diferenciação numérica, aproximações polinomiais, entre
outros.
Para minimizar esses erros, é importante usar métodos mais precisos e
aproximações mais adequadas aos dados ou funções em questão.
Propagação do erro
Propagação do erro é o termo usado para descrever como um erro em
uma medição ou cálculo pode afetar o resultado final de um processo ou
experimento. O erro pode ser causado por vários fatores, como erros de
arredondamento, erros de truncamento ou erros experimentais.

Por exemplo, suponha que queremos calcular a área de um retângulo,


e medimos o comprimento e a largura do retângulo com uma régua
que tem uma precisão de 1 mm. Se o comprimento medido for 30,5 cm e
a largura medido for 20,0 cm, então a área do retângulo seria calculada
como 610 cm².
Propagação do erro
No entanto, como a medida da largura foi arredondada para 20,0 cm, podemos
considerar que há uma incerteza de 0,05 cm na medida da largura. Isso pode
afetar a precisão do cálculo da área e introduzir um erro na resposta final.

A propagação do erro é importante para entender a precisão e a confiabilidade dos


resultados de experimentos ou cálculos numéricos, e é uma consideração fundamental
em muitos campos, como física, química, engenharia e ciência dos dados. Para
minimizar a propagação do erro, é importante medir com precisão e usar técnicas
estatísticas adequadas para estimar e minimizar os erros.
Mal condicionamento
Mal condicionamento é um termo usado em cálculo numérico para descrever uma
situação em que pequenas alterações nos dados de entrada de um problema
resultam em grandes alterações na solução do problema. Isso significa que um
problema é mal condicionado se pequenos erros nos dados de entrada
produzem grandes erros na resposta.

Por exemplo, suponha que queremos resolver o sistema de equações lineares:

x+y=5

1.01x + y = 5.02
Mal condicionamento
Se resolvermos esse sistema usando um método numérico, podemos obter uma
solução aproximada de x = 2 e y = 3. No entanto, se os dados de entrada fossem
ligeiramente diferentes, como:

x+y=5

1.02x + y = 5.04

Então a solução seria x = 0 e y = 5, o que é uma resposta completamente diferente da


solução anterior.
Mal condicionamento
Neste exemplo, o sistema de equações é mal condicionado porque pequenas
mudanças nas entradas resultam em grandes mudanças nas soluções. Isso pode
tornar o problema difícil de resolver com precisão, e é um desafio comum em muitos
problemas de cálculo numérico.

O mal condicionamento pode ser causado por vários fatores, como erros de
arredondamento, erros de truncamento, singularidades, equações mal
formuladas ou falta de precisão nos dados de entrada.

Para lidar com o mal condicionamento, são necessários métodos numéricos mais
avançados, como técnicas de interpolação, otimização ou análise de
sensibilidade.
Instabilidade Numérica

A instabilidade numérica ocorre quando um algoritmo ou método


numérico produz resultados imprecisos, errados ou sem
sentido devido a erros acumulados durante o processo de
cálculo.
Esses erros podem ser causados por diversos fatores, como
erros de arredondamento, erros de truncamento, mal
condicionamento ou instabilidade inerentes ao método.
Instabilidade Numérica

Um exemplo de instabilidade numérica é o problema de calcular a


função f(x) = 1/x para valores próximos de zero.
Quando x se aproxima de zero, a função f(x) se torna muito grande
em magnitude, e se x se torna menor que a precisão da máquina,
a função é representada por um número próximo a zero, mas
diferente de zero.
Isso pode levar a erros de arredondamento e truncamento, que se
acumulam à medida que o cálculo é repetido, produzindo
resultados instáveis e inconsistentes.
Instabilidade Numérica

A instabilidade numérica é um problema comum em cálculo


numérico e pode levar a resultados incorretos e sem sentido.
Para lidar com a instabilidade numérica, são necessárias técnicas
avançadas de análise numérica, como estabilidade de
algoritmos, escolha adequada de parâmetros e métodos
numéricos alternativos.
Além disso, é importante usar uma precisão adequada, evitar erros
de arredondamento e truncamento, e validar os resultados
obtidos para garantir sua precisão e consistência.
Exercícios
1. Faça um programa em python que converta o número decimal 15,25 para sua representação em ponto flutuante
com base 2.
2. Faça uma função em python que calcule o erro absoluto e o erro relativo. Em seguida, obtenha as seguintes
respostas usando python:
a. Calcule o erro absoluto e o erro relativo de uma medição de 10 cm, sabendo que o valor verdadeiro é 9,8 cm.
b. Uma pessoa caminhou 5 km e mediu o tempo gasto em 30 minutos. Qual é a velocidade média em m/s com
o erro máximo de 5%?
c. Uma medida de temperatura é feita e o resultado é 23,6°C, com um erro absoluto máximo de 0,2°C. Qual é o
erro relativo ao percentual?
d. Calcule o erro absoluto e o erro relativo de uma medição de 20 kg, sabendo que o valor verdadeiro é 19,5 kg.
e. Um estudante realizou uma experiência e obteve um valor de 1,73 m/s para a velocidade média. Sabendo
que o valor verdadeiro é de 1,65 m/s, calcule o erro absoluto e o erro relativo.
f. Um laboratório realiza medições de pH em soluções e obtém um valor de 3,8, com um erro absoluto de 0,1.
Qual é o erro relativo ao percentual?
g. Uma pessoa realiza uma medição de tempo e obtém um valor de 15,2 segundos. Sabendo que o valor
verdadeiro é de 15,0 segundos, calcule o erro absoluto e o erro relativo.
h. Uma empresa de produção de automóveis relata que a velocidade média de um carro é de 90 km/h, com um
desvio padrão de 5 km/h. Qual é a probabilidade de um carro escolhido ao acaso ter uma velocidade de pelo
menos 95 km/h?
i. Uma pessoa realiza uma medição de volume e obtém um valor de 250 mL, com um erro absoluto de 5 mL.
Sabendo que o valor verdadeiro é de 240 mL, calcule o erro relativo ao percentual.
Dúvidas?
vinicius.motta@uvv.br

Você também pode gostar