Faça uma rotina em MatLab/Octave que soma um milhão (1000000) de vezes o número pi (pi em MatLab). Depois subtrai do resultado o valor 1000000 pi. Imprime o resultado.

Passo 1

O enunciado pede para criarmos uma rotina em MatLab/Octave que faça o seguinte:
1. Some o valor de pi exatamente 1,000,000 vezes, acumulando esse resultado em uma variável.
2. Subtraia desse acumulador o valor exato de 1,000,000 times pi.
3. Imprima o resultado dessa diferença, que vai mostrar o erro de ponto flutuante acumulado.
Para resolver isso, precisamos usar um laço de repetição que some pi 1,000,000 vezes, depois calcular a diferença e exibir na tela.

Passo 2

Implementar o código em MatLab/Octave:
  • Inicializar e o acumulador .
  • Fazer um loop for de até , somando pi em cada iteração.
  • Calcular diff \(=\) s - N*pi.
  • Imprimir diff com fprintf (ou disp).

Resposta

% \(rotina\_erro\_pi\).m
N = \(1000000\);      % número de vezes que somamos \(\pi\)
s = \(0\);            % acumulador

for k = 1:N
    s = s + \pi;   % soma repetida de \(\pi\)
end

diff = s - N*\pi;  % diferença entre soma acumulada e valor exato
fprintf('Resultado do erro: %.15g\n', diff);
Basta salvar esse código num arquivo, por exemplo .m, e executá-lo no Octave ou MatLab. Ele vai imprimir na tela o pequeno erro de ponto flutuante resultante.

Exercícios relacionados