Exercício resolvido

16/08/2013 08:20

Dados números reais x ≥ 0 e epsilon > 0, calcular uma aproximação da raiz quadrada de x através da seqüência de números abaixo. Tome r₀ = x e rn+1 = 1/2 (rn+ x/rn). Exemplos:

Para x = 3, r₀ = 3, r₁ = 2, r₂ = 1.75, r₃ = 1.732143, r₄ = 1.732051
Para x = 4, r₀ = 4, r₁ = 2.5, r₂ = 2.05, r₃ = 2.000610, r₄ = 2.000000
Para x = 5, r₀ = 5, r₁ = 3, r₂ = 2.33, r₃ = 2.238095, r₄ = 2.236068
Para x = 0.81, r₀  = 0.81, r₁ = 0.905, r₂ = 0.9000138122, r₃ = 0.9000000001

A aproximação será o primeiro valor rn₊₁ tal que |rn₊₁ − rn| < e.

Solução:
//Erick Cursino Vivan
#include <stdio.h>
#include <stdlib.h>
float r, r1, valor_abs, x, epsilon;
main()
{
      printf("Programa para calcular uma aproximacao da raiz quadrada de x.\n\n");
      printf("Digite um valor para x: ");
      scanf("%f", &x);
      printf("\nDigite uma valor para epsilon (precisao): ");
      scanf("%f", &epsilon);
      r = x;
      valor_abs = (epsilon + 1);
      while (valor_abs >= epsilon)
      {
            r1 = (r + x/r)/2;
            valor_abs = (r1 - r);
            if (valor_abs < 0)
            {
                   valor_abs = -valor_abs;
            }
            r = r1;
      }
      printf("\nRaiz quadrada de %f = %f\n\n", x, r1);
      system("pause");
}