Devido a (justas) reclamações sobre o perímetro da elipse, o Zé Oliveira corrigiu o programa Geometry.
Os utilizadores do fórum da página Spectrum Computing estão muito atentos ao que se passa no blogue Planeta Sinclair e detectaram um erro no programa.
O Zé Oliveira cometeu o erro de pegar em 2*pi*sqrt((R^2+r^2)/2) e simplificar para pi*sqrt(R^2+r^2). Visto de longe parece certo, mas se examinarmos ao microscópio vemos que aparece um grande e feio bug.
Lembramos que não existe uma fórmula simples para o perímetro da elipse. Para os curiosos, eis algumas aproximações (desde a menos precisa até à mais precisa):
Aproximação 1:P1 = pi*(R+r)
P1 = pi*(34+12) = 144.5
Aproximação 2:
P2 = 2*pi*sqrt((R^2+r^2)/2)
P2 = 2*pi*sqrt((34^2+12^2)/2) = 160.19
Aproximação 3:
P3 = (P1+P2)/2
P3 = (144.5+160.19) = 152.345
Esta já é uma aproximação razoável. Mas existem melhores aproximações...
Aproximação 4:P4 = pi*(3*(R+r)−sqrt((3*R+r)*(R+3*r)))
P4 = pi*(3*(34+12)−sqrt((3*34+12)*(34+3*12))) = 152.8987
Aproximação 5:
L = (R-r)/(R+r)
P5 = pi*(R+r)*(1+(3*L^2)/(10+sqrt(4-3*L^2)))
P5 = pi*(34+12)*(1+(3*((34-12)/(34+12))^2)/(10+sqrt(4-3*((34-12)/(34+12))^2))) = 152.9026
P4 = pi*(3*(34+12)−sqrt((3*34+12)*(34+3*12))) = 152.8987
Aproximação 5:
L = (R-r)/(R+r)
P5 = pi*(R+r)*(1+(3*L^2)/(10+sqrt(4-3*L^2)))
P5 = pi*(34+12)*(1+(3*((34-12)/(34+12))^2)/(10+sqrt(4-3*((34-12)/(34+12))^2))) = 152.9026
Poderão aqui ver online o programa.
Se preferirem, podem aqui descarregá-lo.
Sem comentários:
Enviar um comentário