Uma aplicação computacional para teorema Fundamental da Álgebra

Uma aplicação computacional para teorema Fundamental da Álgebra

O teorema fundamental da Álgebra
estabelece que um polinômio
do grau $n$ tem exatamente $n$ raízes sobre o corpo dos números complexos.
Sobre o corpo dos reais tem no máximo $n$ raízes. Ele é facilmente
provado como um resultado de variáveis complexas então eu não vou
fazer sua demonstração aqui. Bem interessante mesmo é dar alguns exemplos
de aplicação deste teorema e mostrar como ele é útil em diversos contextos.
Eu vou mostrar como usar este importante teorema em lugar duma demonstração
por indução finita quando a expressão envolvida é polinomial.

Verificação de expressões algébricas

Aplicação muito comum deste teorema
é afirmação bem conhecida da geometria euclidiana
de que dois pontos determinam uma reta. A equação da reta é um polinômio do
primeiro grau tem uma única raiz, um ponto sobre o eixo $OX$, então, se
ela não se confundir com o eixo $OX$, basta encontrar um ponto fora
deste eixo para determinar o gráfico desta reta ou sua equação. Um
polinômio do primeiro grau precisa de duas condições para que ele fique
determinado. Um polinômio do grau $n$ fica determinado por
$n+1$ condições, é uma outra forma do teorema fundamental da Álgebra.

Uma outra aplicação simples e bem efetiva do
teorema Fundamental da Álgebra
e que me é particularmente
agradável porque eu faço uso dela com frequeência,

pode ser a verificação de
expressões algébricas usando uma linguagem de computação. Confira o
seguinte exemplo.

Suponha que você deseje provar a fórmula da soma das terceiras potências
dos $n$ primeiros números naturais:

$ \sum\limits_{k=1}^{n} k^{3}= (1+2+\cdots + n)^{2}; $

Aqui tenho duas expressões, à esquerda uma soma, e à direita a expressão
dum polinômio do quarto grau, porque dentro dos parenteses se
encontra um polinômio do segundo grau: a soma dos termos duma
progressão aritmética que vale $ \frac{(n+1)n}{2}$. Então, pelo
teorema fundamental da Álgebra basta que eu exiba cinco
exemplos em que a expressão se mostre verdadeira para provar que
ela é sempre verdadeira: basta que eu mostre que ela vale para as cinco
somas:

$
\sum\limits_{k=1}^{n} k^{3}; n \in \{ 1, 2, 3, 4, 5 \}
$

Você lembra de quantos pontos preciso para determinar uma reta, o que significa
verificar se uma equação determina uma reta, dois, certo, porque a equação da
reta é do primeiro grau então eu preciso de dois testes. Neste caso,
como se trata dum polinômio do quarto grau eu preciso de 5 cinco testes.

Usando um programa de computador eu posso rapidamente experimentar
as cinco somas e compará-las com o valor da expressão algébrica
à direita comprovando que identidade é verdadeira. Tudo isto pode ser
feito em questão de alguns minutos inclusive produzir o programa de
computador ao passo que a demonstração por indução é, algumas vezes, bem mais penosa
e eu vou dar-lhe mais a frente um outro exeplo.

Vou usar a linguagem calc porque ela facilmente pode ser instalada
numa distribuição LinuX sem nenhum custo, é distribuída segundo
a licença GPL. Também a sintaxe desta
linguagem é bem semelhante a da linguagem C que é praticamente
um padrão universal para sintaxe de linguagens computacionais. Este exemplo
pode ser facilmente alterado para substituir calc por
python porque esta
úlitima é também uma linguagem funcional em que os menores módulos são
funções como ocorre com calc. Faço referência a python porque
é uma linguagem de computação bem conhecida e utilizada.

Num terminal do calc, ou com um editor de textos, defina:

define f(n) {

return power(n*(n+1)/2.0, 2);

}

mas você pode raspar e colar…

A segunda potência aparece porque a fórmula para
calcular a soma dos cubos é o quadrado da fórmula para somar a progressão
aritmética dos números naturais até $n$ resultando assim num polinômio do grau quatro

Agora você pode calcular $ f(1), f(2), f(3), f(4), f(5)$ que “devem” ser,
respectivamente:

  1. a soma do primeiro número natural ao cubo: $ 1^{3}$;
  2. a soma dos 2 primeiros números naturais ao cubo: $ 1^{3}+2^{3}$;
  3. a soma dos 3 primeiros números naturais ao cubo:
    $ 1^{3}+2^{3}+3^{3}$;

  4. a soma dos 4 primeiros números naturais ao cubo:
    $1^{3}+2^{3}+3^{3}+ 4^{3}$;

  5. a soma dos 5 primeiros números naturais ao cubo:
    $1^{3}+2^{3}+3^{3}+ 4^{3}+ 5^{3}$;

A fórmula diz que se fizermos estas somas, o resultado será dado por
$ f(n)$, então $ f(5) = 1^{3}+2^{3}+3^{3}+ 4^{3}+ 5^{3}$.

<!–
saída de dados do programa –>

saída de dados do programa

Para testar o resultado, de acordo com o teorema Fundamental da Álgebra
prová-lo, basta que eu defina a soma usando a linguagem
de programação, e neste caso específico faça 5 testes porque
se trata duma expressão do quarto grau (lembre-se, a reta
é do primeiro grau, preciso de dois testes, dois pontos,
para verificar a equação da reta).

Se estes 5 testes
se revelarem positivos, está provada a fórmula
pelo teorema Fundamental da Álgebra.

Prosseguindo com o exemplo, defina agora em calc
uma função

em calc
os módulos são
funções, como em C.

para calcular a soma dos cubos.


define Somaf(n) {

local k=1, soma = 0;
for(k=1; k<=n; k++) soma += power(k,3);
return(soma);

}

Duas funções não compõem um programa em calc e existem pelo menos
duas maneiras de terminar este programa.
Uma maneira elegante consiste em
tomar emprestado o método do C ou C++ e criar uma
função principal que chama as outras de forma adequada e eu vou usar
este metodologia agora. Em C ou C++ esta
função sempre se chama main, a administradora.

Vou definir uma função que vou chamar de
adminisrtradora, a terminologia da linguagem C, a palavra “main”
em inglês, significa principal ela é a
administradora do programa, terminamos sempre caindo nas mãos
de algum administrador

A função printf() da linguagem C também existe em
calc e possivelmente é o único comando menos compreensível
no programa administradora(). Esta função tem uma capacidade
imensa de formatação da impressão e basta uma rápida explanação
para que você entenda como funciona, porque é bem algébrica. Eu quero
que seja impressa a frase

"f(k) =", f(k), "comparando, Somaf(k) = ",Somaf(k)

Nesta frase o $k$ varia e o método para o programa atualize o seu valor consiste
em colocar um símbolo em seu lugar dentro da frase, e vai ser o mesmo símbolo
para todas as trocas, apenas elas acontecem de forma ordenada. Veja como!

O que tem de poderoso na função printf() é que eu posso escrever a frase
exatamente como ela vai ser apresentada para ser lida, mas como tem variáveis, então,
no local de cada variável vou usar o símbolo %f em que f significa
para calc um número, depois, na mesma ordem, vou passar-lhe como parâmetros
os números que desejo que apareçam. Os valores serão atualizados a cada “rodada” do
laço e tudo ficará impresso como eu espero. Verifique a figura em que aparece o resultado do
programa. Em python a função print tem sintaxe semelhante,
sem usar parenteses, entretanto.

Eis a função administradora():


define administradora(n) {

local k=1;
for(k=1;k<= n; k++)

printf("f(%f) = %f, comparando, Somaf(%f) = %f \n",

k,f(k),k,Somaf(k));

}

O resultado ao rodar esta função se encontra na figura.

a saída de dados do programa

a saída de dados do programa

Para terminar o programa
digite como última linha:

administradora(5);

Depois, num terminal, digite:

calc < AlgebraFundamental.calc

cujo significado é “passar para calc o arquivo AlgebraFundamental.calc
e calc irá produzir o resultado que você vê na figura.

Estou supondo que você
baixou o programa da página

http://www.calculo.sobralmatematica.org/programas/AlgebraFundamental.calc

e que o gravou no arquivo com o nome AlgebraFundamental.calc.

De acordo com teorema Fundamental da Álgebra, se você quiser comprovar
uma fórmula expressa por um polinômio do grau $n$ basta-lhe fazer
$n+1$ testes que sendo positivos provam que a formula é verdadeira.

O programa ainda pode ser mais inteligente! É divertido fazer coisas
mais inteligentes: não precisa imprimir os testes, pode verificá-los,
contá-los e se atingir $n+1$ testes verdadeiros dar o veredicto: a
fórmula é verdadeira!

Tente fazê-lo e me envie que eu publico dando-lhe
o devido crédito. O programa como aparece
aqui se encontra na página, citada acima
de onde você pode baixá-lo.

Esta é a capa do meu livro “Prisioneiros da Terceira Dimensão” que se encontra a venda no http://www.mercadolivre.com.br – procure pelo título.

Atualizado, e corrigido, no sábado, dia 10 de março, 22:00

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s