Exercício resolvido
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
#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");
}