Raiz enésima Iterativa Programada

Este artigo apresenta conceitos e código de demonstração de um  programa escrito em linguagem C++ que calcula e exibe no ecrã de forma iterativa o resultado de uma raiz enésima com base e índice informados para o cálculo.

Introdução

Um facto a ser considerado é que as ciências relacionadas a Matemática e a Computação andam juntas. Neste sentido, vem a mente como soluções matemáticas simples são implementadas na arquitetura de um computador. A questão não se refere a soluções relacionadas a parte eletrônica do computador, mas como são realizadas tais operações a luz da base Matemática.

As operações básicas de adição, subtração, multiplicação e divisão são de fácil dedução a partir de seus algoritmos funcionais que são ensinados nas escolas, aprende-se a realizar essas operações a partir de diversos e sucessivos exercícios para fixá-los, desde o nível aritmético até o nível algébrico.

No estudo da álgebra é feito o contacto com equações, inequações, exponenciações, radiciações e diversas outras ferramentas e elementos matemáticos.

A operação de exponenciação é facilmente percebida a partir de um algoritmo iterativo de multiplicação sucessiva da base em relação ao número de vezes indicado no índice definido, facilmente aplicado em um programa de computador. No entanto, a operação de radiciação iterativa não se mostra tão simples.

A partir do interesse sobre tal operação veio uma longa pesquisa sobre este facto, onde alguns professores da área Matemática não souberam responder sobre a existência de tal algoritmo e parte dos interpelados até criticaram jocosamente tal curiosidade e demonstraram estarem ofendidos.

Dentre as diversas fontes pesquisadas uma trouxe resposta clara a questão. Um livro intitulado Manual de Fórmulas Técnicas do autor Kurt Gieck publicado no Brasil pela editora Hemus e em Portugal pela editora Dinalivro em seu primeiro volume.

Fundamentação Matemática

A solução de uma raiz enésima (ou n-ésima) pode ser obtida a partir da exponenciação da base elevando-se esta ao valor inverso do índice de radiciação como apresentado na Figura 1.

raizensima1

Figura 1

No entanto, o que mostra a Figura 1 não é a fórmula pretendida, pois a solução iterativa do cálculo ocorre a partir do exposto junto a Figura 2.

raizensima2

Figura 2

A equação indicada na Figura 2 caracteriza-se a partir da definição dos valores da base (b), do índice (n) e de x0 como resultado sucessivo inicialmente definido com valor 1 para obter iterativamente o resultado de x.

A partir deste estágio pega-se o valor da incógnita x e efetua-se a substituição na equação junto ao valor da incógnita x0 e calcula-se um novo valor para a incógnita x. A partir deste passo efetua-se a repetição da substituição do novo valor da incógnita x pelo valor da incógnita x0 até que os valores das incógnitas x e x0 sejam iguais quando se terá o resultado efetivo da raiz calculada.

O Programa

O código C++ seguinte aplica o algoritmo apresentado com o uso do cálculo iterativo de raiz enésima.

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

int main(void)
{

  char LETRA;
  double B, N, X, XZero;
  cout << setprecision(16);
  cout << setiosflags(ios::fixed);
  cout << endl;
  cout << "Informe a base ...: ";
  cin >> B;
  cout << "Informe o indice .: ";
  cin >> N;
  X = 1;
  do
    {
      XZero = X;
      X = (1/N) * ((N-1) * XZero +
        (B / pow(XZero, N-1)));
    }
  while (X != XZero);
  cout << "Resultado ........: ";
  cout << setw(16) << X << endl;
  return 0;
}

Considerando o cálculo da raiz quadrada de base 5 ter-se-á calculado o resultado da raiz como: 2.2360679774997898.

Conclusão

O encontro da equação para cálculo de raiz enésima publicado pelo autor Gieck trouxe luz a questão de uma maneira impar, além de ser um procedimento operacional muito simples e ter respondido a uma pergunta, que até então, parecia insolúvel.

Um ponto que chamou a atenção dentro da curiosidade manifestada e que levou a esta breve pesquisa foi não ter encontrado resposta condizente. Foi o fato de alguns professores não estarem preparados para responder perguntas que fogem do padrão acadêmico de referência das suas aulas, preparadas. Desconhecer um tema que foge do escopo da aula planejada é natural, pois não é necessário que se saiba tudo sobre certo tema. O que fica a se refletir é o descaso ou desinteresse em buscar responder certa pergunta mesmo com uma resposta do tipo “eu não sei, vamos pesquisar sobre este fato”. O que, de fato, movimenta o conhecimento no mundo não são as respostas dadas, mas as perguntas realizadas.

Publicado na edição 49 (PDF) da Revista PROGRAMAR.