|
|
Uma t�cnica muito simples (desconsiderando a dificuldade de se resolver um sistema linear) para se computar ``formas fechadas'' polinomiais de s�ries, � montar (e resolver) um sistema linear associado � s�rie, de modo que o valor do polin�mio no ponto k coincida com a s�rie calculada at� o inteiro k.
[ Isto pode ser generalizado usando fun��es quaisquer (al�m das fun��es polinomiais k). Por exemplo, se sabemos que a ``formas fechadas'' da s�rie at� o inteiro k � 0 + a1ek + a2 seno(k) + ... + aL k cos( k ), podemos escrever L+1 equa��es igualando a s�rie e sua suposta ``formas fechadas''.]
Vamos examinar com um pouco mais de cuidado esta t�cnica, apenas no caso de
``formas fechadas'' polinomiais. Seja
Se
para computarmos os coeficientes de P(.), basta escrevermos L+1
equa��es, impondo identidades do tipo
. Por raz�es de
simplicidade, tomaremos estas L+1 equa��es a partir de 0, ou seja,
faremos,
, para k
entre 0 e L. Como, neste exemplo,
0=0,
devemos procurar apenas os valores para os coeficientes
0, a1 at�
L.
Observa��o: Se desconhecemos o valor L, devemos superestim�-lo, isto � tentar com valores grandes para L, de modo que os coeficientes de pot�ncia maior que o grau do polin�mio efetivo ser�o 0.
Passo 0
Compute
,
para
(L � qualquer ``chute grande'')
Passo 1 Resolva o sistema linear, (aqui vale 0=0 sempre)
Para se resolver este sistema, pode-se usar qualquer programa computacional adequado, em particular, poder�amos nos utilizarmos de PARI-GP. A seguir s�o apresentados dois exemplos de utiliza��o deste pacote, que dever�o ser bem entendidos para se poder fazer o exerc�cio proposto ao final.
Matrizes no Pari-GP:
Digite o exemplo abaixo no diret�rio
C:\TRAB
com o nome sist-l.txt
.
\\ --------------------------------------------------------------------\\ \\ EXEMPLO: uso de matrizes, vetores e resolucao de sistemas lineares no \\ PARI-GP \\ Modo de usar este programa (sist-l.txt no diretorio C:\TRAB): \\ F:\LABMAT\GP\> gp < c:\trab\sist-l.txt \\ --------------------------------------------------------------------\\ \\ define matriz A e matriz coluna b A=[1,-1,3; 0,1,2; 2,3,7]; b=[6;0;3]; print( Gauss(A,b) ); \\ define vetor solucao, e confere resultado! x=Gauss( A,b ); print("A x = b ?"); print("A x = ",A*x); print("b =",b); \q
Sistemas Lineares no PARI-GP:
Digite o exemplo abaixo no diret�rio C:\TRAB
com o nome
pol2.txt
.
\\ --------------------------------------------------------------------\\ \\ EXEMPLO: como listar os valores de um polin�mio aplicado aos primeiros \\ naturais no PARI-GP \\ Modo de usar este programa (pol2.txt no diretorio C:\TRAB): \\ F:\LABMAT\GP\> gp < c:\trab\pol2.txt \\ --------------------------------------------------------------------\\ Ng=4; x=[0,0,0,0,1]; for (j=1,10, aux=0;for(k=0,Ng,aux=aux+x[k+1]*j^k);print("p(",j,")=",aux)); \q
Exerc�cio: Tente obter as ``formas fechadas'' para as s�ries abaixo apresentadas, fazendo quatro arquivos .txt (um para cada s�rie), com comando PARI-GP (vide os exemplos), que fa�am:
...confere resultado!
)
for( j=0,15, calcule_s�rie_at�_j_para_S; calcule_pol_em_j_para_aux; print1(j," Serie=",S,"P(",j,")=",aux))
As s�ries s�o:
Observa��o:
Se chegou a conclus�o que alguma das s�ries n�o pode
ser escrita como um polin�mio, apresente um
CONTRA-EXEMPLO, isto �, SE o polin�mio foi computado corretamente
(para valores muito grande de L - indique o �ltimo que computou) e
existe algum ponto
,
,
apresente estes valores.
Solu��o:
\\ Exemplo de program Pari-GP: 25/08/1997 \\ -------------------------------------- \\ Encontra "formas fechadas" para series que tenham "solucao" polinomial \\ Usa sistemas lineares \\ Se S(k):=f(0)+f(1)+ ... +f(k) e \\ existem L e P(j):=a_0 + a_1 j + a_2 j^2 +...+ a_L j^L, \\ tais que S(j)=P(j), para todo j natural \\ \\ Entao A x = b, onde x[i]=a_i, b[i]=S(i) e \\ _ _ _ _ _ _ \\ |1 0 0 ... 0 | | a_0 | | b_0 | \\ |1 1 1 ... 1 | | a_1 | | b_1 | \\ |1 2 2^2 ... 2^L | | a_2 | = | b_2 | \\ |. . . | | ... | | ... | \\ |1 L L^2 ... L^L | | a_L | | b_L | \\ - - - - - - \\ Define a serie S(k) [ f(n) = n^2 ]: \\ "Chute" para o valor L => constroe matriz A[.,.] L = 10 \\print(A): \\ No GP: 0^0=1 \\ A=[ 1,0,0, ...,0 ; \\ 1,1,1, ...,1 ; \\ 1,2,2^2,...,2^L; \\ ... \\ 1,L,L^2,...,L^L]: \\ Constroe vetor b => b[i] = f(0) + f(1) + ... + f(i) b = vector( L+1, x, sum(0, n=0, x-1, f(n) ) ): \\print(b): \\ Encontra os coeficientes do polinomio P(.) x=gauss(A,b): print(): print("Coeficientes:",x): \\ Confere se a solucao encontrada coincide com os valores da serie print("Para conferir Resultado: Serie efetiva x Pol. Calculado "): print(" Serie Polinomio"): s=0: for(j=1,10, s=s+f(j): print1("j=",j," | S=",s," "): aux=0: for(k=1,L+1, aux=0: for(k=1,L+1, aux=aux+x[k]*j^(k-1) ): print(aux) ) ): \q