On Fri, May 26, 2006 at 07:00:22PM -0000, [EMAIL PROTECTED] wrote: > On Fri, Maio 26, 2006, "Nicolau C. Saldanha" <[EMAIL PROTECTED]> > said: > > > Talvez voc� goste de saber que cos(7 graus) � a segunda mair raiz de > > > > 48 46 44 > > 281474976710656 z - 3377699720527872 z + 18999560927969280 z > > > > 42 40 > > 38 > > - 66568831992070144 z + 162828875980603392 z - 295364007592722432 z > > > > 36 34 > > + 411985976135516160 z - 452180272956309504 z > > > > 32 30 > > + 396366279591591936 z - 280058255978266624 z > > > > 28 26 > > 24 > > + 160303703377575936 z - 74448984852135936 z + 28011510450094080 z > > > > 22 20 18 > > - 8500299631165440 z + 2064791072931840 z - 397107008634880 z > > > > 16 14 12 > > + 59570604933120 z - 6832518856704 z + 583456329728 z > > > > 10 8 6 4 2 > > - 35782471680 z + 1497954816 z - 39625728 z + 579456 z - 3456 z > > + 1 > > > > > > As ra�zes s�o +-cos(k graus) e +-sen(k graus) para > > k = 1, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43. > > > Magn�fico. Onde ser� que eu posso achar algo que explique como > construir esse polin�mio ... Acredito que n�o deva ser nada simples.
Se a pergunta � como eu fiz para obter estes coeficientes todos, eu usei o maple: > Digits := 40: > ppc := 1: > for i to 89 do if ( igcd(i,180) = 1 ) \ > then ppc := ppc * ( x^2 - evalf(2*cos(Pi*i/180))^2 ) : fi: od: At� aqui eu montei o polin�mio com as ra�zes +-2cos(k graus) e +-2sen(k graus). Note que estou fazendo contas aproximadas, ent�o os coeficientes tamb�m estar�o aproximados. Mas eu sei que eles deveriam ser inteiros ent�o um arredondamento deve obter os coeficientes corretos. > ppcs := sort(expand(ppc)): > ppct := sort(add(round(coeff(ppcs,x,i))*x^i,i=0..48)); 48 46 44 42 40 38 ppct := x - 48 x + 1080 x - 15136 x + 148092 x - 1074528 x 36 34 32 30 + 5995185 x - 26320356 x + 92286216 x - 260824576 x 28 26 24 22 + 597177831 x - 1109376324 x + 1669616130 x - 2026629360 x 20 18 16 14 + 1969138215 x - 1514843020 x + 908975295 x - 417023856 x 12 10 8 6 4 + 142445393 x - 34943820 x + 5851386 x - 619152 x + 36216 x 2 - 864 x + 1 Eu quero verificar se os arredondamentos foram confi�veis, ent�o eu fa�o: > sort(ppcs-ppct); -37 46 -35 44 -34 42 -33 40 -32 38 -0.1 10 x + 0.1 10 x - 0.1 10 x + 0.1 10 x - 0.1 10 x -32 36 -31 34 -30 32 -30 30 + 0.7 10 x - 0.2 10 x + 0.14 10 x - 0.5 10 x -29 28 -29 26 -29 24 -29 22 + 0.13 10 x - 0.2 10 x + 0.6 10 x - 0.9 10 x -29 20 -29 18 -29 16 -29 14 + 0.9 10 x - 0.8 10 x + 0.51 10 x - 0.26 10 x -30 12 -30 10 -31 8 -32 6 + 0.9 10 x - 0.27 10 x + 0.53 10 x - 0.66 10 x -33 4 -34 2 -37 + 0.46 10 x - 0.143 10 x + 0.34 10 Os maiores erros s�o da ordem de 10^(-29), ent�o parece estar tudo bem. Mais um teste: vamos achar algumas ra�zes: > fsolve(ppct,x=1.9..2.0); 1.912609511926070962677301633236837924019, 1.948740129570470457079388960176537666010, 1.963254366895327906993009799636281638637, 1.985092303282644069960123178661168218087, 1.999695390312782478314023117627829703385 A maior de todas (a �ltima) deve ser 2*cos(1 grau), a anterior deve ser 2*cos(7 graus). Vamos verificar. > evalf(2*cos(7*Pi/180)); 1.985092303282644069960123178661168218087 Tudo bem. Agora para termos um polin�mio com ra�zes iguais aos pr�prios cos e sen, basta substituir x por 2z: > sort(subs(x=2*z,ppct)); 48 46 44 281474976710656 z - 3377699720527872 z + 18999560927969280 z 42 40 38 - 66568831992070144 z + 162828875980603392 z - 295364007592722432 z 36 34 + 411985976135516160 z - 452180272956309504 z 32 30 + 396366279591591936 z - 280058255978266624 z 28 26 24 + 160303703377575936 z - 74448984852135936 z + 28011510450094080 z 22 20 18 - 8500299631165440 z + 2064791072931840 z - 397107008634880 z 16 14 12 + 59570604933120 z - 6832518856704 z + 583456329728 z 10 8 6 4 2 - 35782471680 z + 1497954816 z - 39625728 z + 579456 z - 3456 z + 1 []s, N. ========================================================================= Instru��es para entrar na lista, sair da lista e usar a lista em http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html =========================================================================