Enunciado

Seja um sistema em aritmética de ponto flutuante de quatro dígitos, base decimal e com acumulador de precisão dupla. Dados os números: x = 0.7237 × 1 0 4 , y = 0.2145 × 1 0 - 3 e z = 0.2585 × 1 0 1

Efetue as seguintes operações e obtenha o erro relativo no resultado, supondo que x, y e z estão exatamente representados:

  1. x+y+z
  2. x-y-z
  3. x y
  4. ( x y ) / z
  5. x ( y z )

Passo 1

letra a:

A primeira coisa que a gente faz na adição da aritmética de ponto flutuante é alinhar os pontos decimais de todos os números envolvidos na operação.

Existem duas operações, então faremos na ordem dada!

x + y = 0.7237 × 1 0 4 + 0.2145 × 1 0 - 3

Alinhando fica assim:

x + y = 0.7237 × 1 0 4 + 0.00000002145 × 1 0 4 = 0.72370002145 × 1 0 4

Arredondando, fica assim:

x + y = 0.7237 × 1 0 4

Agora vamos fazer o resto da operação, já vamos alinhar os pontos decimais também:

x + y + z = 0.7237 × 1 0 4 + 0.0002585 × 1 0 4 = 0,7239585

Arredondando, fica assim:

x + y + z = 0.7239585 × 1 0 4 = 0.7240 × 1 0 4

Para calcular o erro, nós temos que pensar como se fossemos a máquina.

Se a máquina soubesse o valor exato dessa soma, ela não usaria o valor aproximado, então a máquina nunca vai saber o erro exato de arredondamento!

O que podemos fazer é estimar um erro máximo para a operação.

Repare que o erro relativo numa soma é dado dessa forma:

E R x + y = E R x ( x x + y ) + E R y ( y x + y ) + E R a r ,   o n d e   E R a r   é   o   e r r o   d e   a r r e d o n d a m e n t o

Como os números são representados com exatidão, E R x = E R y = E R z = 0 , logo:

E R x + y = E R a r

Mas agora precisamos somar x + y com z , então o erro vai ser dado assim:

E R x + y + z = E R x + y ( x + y x + y + z ) + E R z ( z x + y + z ) + E R a r

E R x + y + z = E R a r ( x + y x + y + z ) + E R a r

Como, x + y x + y + z ≈ 1 :

E R x + y + z = 2 E R a r

Mas a gente sabe que | E R a r | < 1 2 1 0 - t + 1 = 1 2 1 0 - 3 , logo:

| E R x + y + z | = 2 | E R a r | < 2 × 1 2 1 0 - 3

| E R x + y + z | < 1 0 - 3

Passo 2

letra b:

A primeira coisa que a gente faz na em operações de aritmética de ponto flutuante é alinhar os pontos decimais de todos os números envolvidos na operação.

Existem duas operações, então faremos na ordem dada!

x - y = 0.7237 × 1 0 4 - 0.2145 × 1 0 - 3

Alinhando fica assim:

x - y = 0.7237 × 1 0 4 - 0.00000002145 × 1 0 4 = 0.72369997855 × 1 0 4

Arredondando, fica assim:

x - y = 0.7237 × 1 0 4

Agora vamos fazer o resto da operação, já vamos alinhar os pontos decimais também:

x - y - z = 0.7237 × 1 0 4 - 0.0002585 × 1 0 4 = 0,7234415 × 1 0 4

Arredondando, fica assim:

x - y - z = 0.7234 × 1 0 4

Para calcular o erro, nós temos que pensar como se fossemos a máquina.

Se a máquina soubesse o valor exato dessa soma, ela não usaria o valor aproximado, então a máquina nunca vai saber o erro exato de arredondamento!

O que podemos fazer é estimar um erro máximo para a operação.

Repare que o erro relativo numa subtração é dado dessa forma:

E R x - y = E R x ( x x - y ) - E R y ( y x - y ) + E R a r ,   o n d e   E R a r   é   o   e r r o   d e   a r r e d o n d a m e n t o

Como os números são representados com exatidão, E R x = E R y = E R z = 0 , logo:

E R x - y = E R a r

Mas agora precisamos somar x + y com z , então o erro vai ser dado assim:

E R x - y - z = E R x - y ( x - y x - y - z ) - E R z ( z x - y - z ) + E R a r

E R x - y - z = E R a r ( x - y x - y - z ) + E R a r

Como, x - y x - y - z ≈   1.0004 :

E R x - y - z = 2.0004   E R a r

Mas a gente sabe que | E R a r | < 1 2 1 0 - t + 1 = 1 2 1 0 - 3 , logo:

| E R x - y - z | = 2.0004 | E R a r | < 2.0004 × 1 2 1 0 - 3

| E R x - y - z | < 1.0002 × 1 0 - 3

Passo 3

letra c:

A primeira coisa que a gente faz na adição da aritmética de ponto flutuante é alinhar os pontos decimais de todos os números envolvidos na operação.

Como só tem uma operação, começaremos por ela!

x y = 0.7237 × 1 0 4 0.2145 × 1 0 - 3

Alinhando fica assim:

x y = 0.7237 × 1 0 4 0.00000002145 × 1 0 4 = 0.3373892773892774 × 1 0 8

Arredondando, fica assim:

x y = 0.3374 × 1 0 8

Para calcular o erro, nós temos que pensar como se fossemos a máquina.

Se a máquina soubesse o valor exato dessa soma, ela não usaria o valor aproximado, então a máquina nunca vai saber o erro exato de arredondamento!

O que podemos fazer é estimar um erro máximo para a operação.

Repare que o erro relativo numa divisão é dado dessa forma:

E R x y = E R x - E R y + E R a r ,   o n d e   E R a r   é   o   e r r o   d e   a r r e d o n d a m e n t o

Como os números são representados com exatidão, E R x = E R y = E R z = 0 , logo:

E R x y = E R a r

Mas a gente sabe que | E R a r | < 1 2 1 0 - t + 1 = 1 2 1 0 - 3 , logo:

| E R x y | = | E R a r | < 1 2 1 0 - 3

| E R x y | < 1 2 1 0 - 3

Passo 4

letra d:

A primeira coisa que a gente faz em operações de aritmética de ponto flutuante é alinhar os pontos decimais de todos os números envolvidos na operação.

Existem duas operações, então faremos na ordem dada!

( x y ) = 0.7237 × 1 0 4 × 0.2145 × 1 0 - 3

Alinhando fica assim:

( x y ) = 0.7237 × 1 0 4 × 0.00000002145 × 1 0 4 = 0.15523365 × 1 0 1

Arredondando, fica assim:

( x y ) = 0.1552 × 1 0 1

Agora vamos fazer o resto da operação, já vamos alinhar os pontos decimais também:

( x y ) z = 0.1552 × 1 0 1 0.2585 × 1 0 1 = 0,6003868471953578

Arredondando, fica assim:

( x y ) z = 0.6004

Para calcular o erro, nós temos que pensar como se fossemos a máquina.

Se a máquina soubesse o valor exato dessa soma, ela não usaria o valor aproximado, então a máquina nunca vai saber o erro exato de arredondamento!

O que podemos fazer é estimar um erro máximo para a operação.

Repare que o erro relativo numa multiplicação é dado dessa forma:

E R x y = E R x + E R y + E R a r ,   o n d e   E R a r   é   o   e r r o   d e   a r r e d o n d a m e n t o

Repare também que o erro relativo numa divisão é dado dessa forma:

E R x y = E R x - E R y + E R a r ,   o n d e   E R a r   é   o   e r r o   d e   a r r e d o n d a m e n t o

Como os números são representados com exatidão, E R x = E R y = E R z = 0 , logo:

E R x y = E R x y = E R a r

Mas agora precisamos dividir x y por z , então o erro vai ser dado assim:

E R ( x y ) z = E R x y - E R z + E R a r

E R ( x y ) z = E R a r + E R a r

Então:

E R x + y + z = 2 E R a r

Mas a gente sabe que | E R a r | < 1 2 1 0 - t + 1 = 1 2 1 0 - 3 , logo:

| E R ( x y ) z | = 2 | E R a r | < 2 × 1 2 1 0 - 3

| E R ( x y ) z | < 1 0 - 3

Passo 5

letra e:

A primeira coisa que a gente faz em operações de aritmética de ponto flutuante é alinhar os pontos decimais de todos os números envolvidos na operação.

Existem duas operações, então faremos na ordem dada!

( y z ) = 0.2145 × 1 0 - 3 0.2585 × 1 0 1

Alinhando fica assim:

( y z ) = 0.00002145 × 1 0 1 0.2585 × 1 0 1 = 0.8297872340425532 × 1 0 - 4

Arredondando, fica assim:

( y z ) = 0.8298 × 1 0 - 4

Agora vamos fazer o resto da operação, já vamos alinhar os pontos decimais também:

x ( y z ) = 0.7237 × 1 0 4 × 0.000000008298 × 1 0 4 = 0.60052626

Arredondando, fica assim:

x ( y z ) = 0.6005

Para calcular o erro, nós temos que pensar como se fossemos a máquina.

Se a máquina soubesse o valor exato dessa soma, ela não usaria o valor aproximado, então a máquina nunca vai saber o erro exato de arredondamento!

O que podemos fazer é estimar um erro máximo para a operação.

Repare que o erro relativo numa multiplicação é dado dessa forma:

E R x y = E R x + E R y + E R a r ,   o n d e   E R a r   é   o   e r r o   d e   a r r e d o n d a m e n t o

Repare também que o erro relativo numa divisão é dado dessa forma:

E R x y = E R x - E R y + E R a r ,   o n d e   E R a r   é   o   e r r o   d e   a r r e d o n d a m e n t o

Como os números são representados com exatidão, E R x = E R y = E R z = 0 , logo:

E R x y = E R a r

Mas agora precisamos dividir x y por z , então o erro vai ser dado assim:

E R x ( y z ) = E R x + E R y z + E R a r

E R x ( y z ) = E R a r + E R a r

Então:

E R x ( y z ) = 2 E R a r

Mas a gente sabe que | E R a r | < 1 2 1 0 - t + 1 = 1 2 1 0 - 3 , logo:

| E R x ( y z ) | = 2 | E R a r | < 2 × 1 2 1 0 - 3

| E R x ( y z ) | < 1 0 - 3

Repare também que o resultado da letra d e da letra e são diferentes, apesar do erro máximo ser o mesmo!

Isso é comum em operações de aritmética de ponto flutuante, já que as operações não são associativas, ou seja, a ordem de solução pode mudar o resultado final.

Resposta

  1. x + y + z = 0.7240 × 1 0 4                                                               | E R x + y + z | < 1 0 - 3
  2. x - y = 0.7237 × 1 0 4                                                                           | E R x - y - z | < 1.0002 × 1 0 - 3
  3. x y = 0.3374 × 1 0 8                                                                                     | E R x y | < 1 2 1 0 - 3  
  4. ( x y ) z = 0.6004                                                                                                   | E R ( x y ) z | < 1 0 - 3    
  5. x ( y z ) = 0.6005                                                                                                 | E R x ( y z ) | < 1 0 - 3
Ver Outros Exercícios desse livro

Exercícios de Livros Relacionados

Seja o sistema 𝐹 2,3 , − 1,2 . Exiba todos os números representáveis neste sistema e coloque-os sobre um eixo ordenado.
Considere o sistema 𝐹 2,8 , 4,4 e os números: 𝑥 1 = 0.10110011 × 2 2   𝑒   𝑥 2 = 0.10110010 × 2 2     . Qual dos dois representa melhor 2.8 10 ?
Usando arredondamento, a cada operação efetuada, calcule: ∑ 𝑖 = 1 𝑛 𝑖 2 −   ∑ 𝑖 = 2 𝑛 𝑖 2 = 1   ,Somando os termos em:a) Ordem crescenteConsidere n = 100.
Usando arredondamento, a cada operação efetuada, calcule: ∑ 𝑖 = 1 𝑛 𝑖 2 −   ∑ 𝑖 = 2 𝑛 𝑖 2 = 1   ,Somando os termos em:a) Ordem decrescenteConsidere n = 100. Os valores obtidos são iguais?