Seja uma máquina que realiza operações em ponto flutuante normalizado com 3 algarismos, usando a estratégia de truncamento. Considere que um algoritmo seja implementado em tal máquina para solucionar a seguinte soma:
S=\sum_{i=1}^{100} \frac{1}{i^{2}}
Existiria diferença matemática quando comparamos a resolução desta soma em ordem crescente com aquela realizada em ordem decrescente? E do ponto de vista numérico? Justifique sua resposta.

Passo 1

O enunciado dá uma máquina de ponto flutuante normalizada com 3 algarismos significativos e estrategia de truncamento. Pede-se para comparar a soma
S=\sum_{i=1}^{100}\frac{1}{i^{2}}
quando executada em duas ordens: ordem crescente (vou entender como somar i=1,2,\dots,100, ou seja, do termo maior para o menor) e ordem decrescente (somar i=100,99,\dots,1, do termo menor para o maior). As perguntas são: (1) existe diferença matemática entre as duas versões? (2) existe diferença do ponto de vista numérico (na máquina descrita)? Justificar.
Informações relevantes dadas: máquina com t=3 dígitos significativos, truncamento (chop), e os termos a_i=\frac{1}{i^{2}} (com a_1=1, a_{100}=10^{-4}).

Passo 2

Conceitos essenciais de ponto flutuante (explicação didática):
  • Um número na máquina normalizada com t=3 é escrito como
x = \pm (d_1.d_2d_3)\times 10^{e},
onde d_1 é não nulo e há exatamente 3 dígitos significativos. Ex.: 1{,}6349 fica armazenado como 1{,}63\times 10^{0} se truncado.
  • Truncamento (chop): ao representar ou ao somar dois números, qualquer dígito além dos 3 primeiros é simplesmente cortado (não arredondado). Isso gera erro de representação e de operação com magnitude até aproximadamente 10^{1-t} na escala adequada.
  • Efeito prático em soma: se A é um número já representado (por exemplo A\approx 1{,}63) e b é um número muito menor (por exemplo b=10^{-4}), ao somar \operatorname{fl}(A+b) pode dar exatamente \operatorname{fl}(A) — o b “desaparece” — porque, ao alinhar casas decimais, os dígitos extras de b caem além dos 3 dígitos e são truncados.
  • Regra prática: ao redor de um número com expoente e (por exemplo A=m\times 10^{e} com m entre 0{,}1 e 1), o espaçamento entre representáveis é aproximadamente 10^{e-3}. Para A\approx 1 (expoente e=0), o menor incremento representável é \approx 10^{-3}=0{,}001. Assim, qualquer b<0{,}001 adicionado a um A da ordem de 1 será perdido (com truncamento).

Passo 3

Resposta matemática (exata): em aritmética real exata a adição é comutativa e associativa (na soma finita), logo
\sum_{i=1}^{100}\frac{1}{i^{2}}
é a mesma independentemente da ordem em que os termos são somados. Portanto, matematicamente, não existe diferença entre ordem crescente e decrescente — o valor exato S é único.

Passo 4

Argumento numérico qualitativo: na máquina dada a soma não é necessariamente associativa nem comutativa devido a erros de arredondamento/truncamento. Por isso a ordem de soma importa numericamente. Intuição: somar do maior para o menor (ordem crescente de i — começando por 1) faz com que, cedo, o acumulador esteja da ordem de 1; então termos muito pequenos (por exemplo 1/32^{2}=0{,}0009765625) são menores que o passo mínimo 0{,}001 e serão descartados quando somados ao acumulador. Somar do menor para o maior permite acumular os pequenos entre si antes que o acumulador cresça demais, preservando assim mais dos seus efeitos.

Passo 5

Cálculo do limiar que define “perda” de termos: queremos 1/i^{2}\ge 0{,}001 para que um termo possa alterar uma soma da ordem de 1. Resolva
\frac{1}{i^{2}}\ge 0{,}001 \quad\Longrightarrow\quad i^{2}\le 1000 \quad\Longrightarrow\quad i\le \sqrt{1000}\approx 31{,}62.
Logo, para i\ge 32 temos 1/i^{2}<0{,}001. Conclusão prática: se o acumulador já estiver da ordem de 1 (o que acontece logo que se soma os primeiros termos grandes), então todos os termos com i\ge 32 serão perdidos ao serem somados isoladamente (pois são inferiores ao passo representável 10^{-3}). Isso sugere que, somando em ordem crescente i=1,2,\dots,100 (maior para menor), a máquina efetivamente vai obter (aproximadamente) a soma dos primeiros 31 termos — os termos i\ge 32 não contribuem porque são truncados ao serem adicionados.

Passo 6

Estimativa numérica dos resultados (com explicação de como obtive os números):
  • Valor real conhecido (para referência): a soma infinita é \sum_{i=1}^{\infty}1/i^{2}=\pi^{2}/6\approx 1{,}644934. A soma até 100 é um pouco menor; um valor conhecido é
S_{100}=\sum_{i=1}^{100}\frac{1}{i^{2}}\approx 1{,}634984\quad(\text{valor real com alta precisão}).ã
  • Ordem crescente (somar i=1 a 100, maior para menor): como expliquei, termos com i\ge 32 têm 1/i^{2}<0{,}001 e serão desperdiçados quando somados ao acumulador da ordem de 1. Assim o resultado prático ficará próximo de
\sum_{i=1}^{31}\frac{1}{i^{2}}\equiv S_{31}.
Podemos estimar S_{31} subtraindo do S_{100} a contribuição dos termos 32 a 100. Uma boa aproximação da cauda é pela integral, ou simplesmente subtrair valores conhecidos: usando S_{100}\approx 1{,}634984 e uma estimativa da cauda \sum_{i=32}^{100}1/i^{2}\approx 0{,}021747, obtemos
S_{31}\approx 1{,}634984-0{,}021747\approx 1{,}613237.
Com truncamento para 3 dígitos significativos o número final armazenado será \operatorname{fl}(S_{31})\approx 1{,}61 (porque truncamos 1{,}613237 para 1{,}61). Então a soma em ordem crescente na máquina fica aproximadamente
\text{(crescente)}\;\approx 1{,}61.
  • Ordem decrescente (somar i=100 a 1, menor para maior): aqui os termos pequenos são somados primeiro — eles se acumulam e só depois se somam os grandes. Os termos i=32 a 100 somados juntos dão cerca de 0{,}021747; esse subtotal é da ordem de 10^{-2} e é representável na máquina (truncado para três dígitos: 0{,}0217). Quando esses subtotais maiores são depois somados com os termos maiores, a contribuição global dos pequenos tende a ser preservada melhor. Assim o resultado final na máquina ficará muito mais próximo de S_{100}. Após as várias truncaturas intermédias espera-se um valor final próximo de 1{,}63 (truncando S_{100}\approx 1{,}634984 para 3 dígitos dá 1{,}63). Portanto
\text{(decrescente)}\;\approx 1{,}63.

Passo 7

Comparação de erros e conclusão numérica:
  • Valor real S_{100}\approx 1{,}634984.
  • Ordem crescente (maior → menor): resultado na máquina \approx 1{,}61. Erro absoluto \approx 0{,}02498, erro relativo \approx 1{,}53\%.
  • Ordem decrescente (menor → maior): resultado na máquina \approx 1{,}63. Erro absoluto \approx 0{,}00498, erro relativo \approx 0{,}305\%.
    Portanto há diferença numérica significativa: somar do menor para o maior preserva melhor os termos pequenos e dá aproximação bem mais acurada nesta máquina com truncamento a 3 dígitos.

Resposta

Matematicamente: não — em aritmética exata a soma é a mesma independentemente da ordem.
Numericamente: sim — na máquina de 3 dígitos com truncamento a soma em ordem crescente ( i=1 a 100, maior→menor) perde muitos termos pequenos e dá aproximadamente 1{,}61; em ordem decrescente ( i=100 a 1, menor→maior) preserva melhor as contribuições pequenas e dá aproximadamente 1{,}63.

Exercícios relacionados