"quasi" <qu...@null.set> wrote in message
news:qvhj78p26714ni4tb...@4ax.com...
> James Van Buskirk wrote:
>>I posted p = 19 yesterday:
>>
https://groups.google.com/d/msg/sci.math/M81uSlWJjMU/oRZqclg9DewJ
> Thanks -- I'll take a closer look.
>>If you just go over the technique I believe you will come to the
>>conclusion that all regular p-gons with prime p = 3**m*2**n+1
>>are tri-constructible. Think about how the theory of cyclotomic
>>equations applies here. Try p = 37 (hence tri-construct the
>>beastagon) yourself, and you'll see how it works.
> Ok, I was skeptical, but when I get a chance, I'll try to
> work it out.
Here is p = 37:
C:\gfortran\clf\nonadecagon>type p37.f90
program p37
implicit none
integer, parameter :: dp = selected_real_kind(15,30)
real(dp), parameter :: pi = 4*atan(1.0_dp)
real(dp), parameter :: theta = 2*pi/37
real(dp), parameter :: x0 = &
sum(2*cos([1,8,27,31,26,23]*theta))
real(dp), parameter :: x1 = &
sum(2*cos([2,16,17,25,15,9]*theta))
real(dp), parameter :: x2 = &
sum(2*cos([4,32,34,13,30,18]*theta))
real(dp), parameter :: x00 = sum(2*cos([1,31]*theta))
real(dp), parameter :: x01 = sum(2*cos([8,26]*theta))
real(dp), parameter :: x02 = sum(2*cos([27,23]*theta))
real(dp), parameter :: x10 = sum(2*cos([2,25]*theta))
real(dp), parameter :: x11 = sum(2*cos([16,15]*theta))
real(dp), parameter :: x12 = sum(2*cos([17,9]*theta))
real(dp), parameter :: x20 = sum(2*cos([4,13]*theta))
real(dp), parameter :: x21 = sum(2*cos([32,30]*theta))
real(dp), parameter :: x22 = sum(2*cos([34,18]*theta))
real(dp), parameter :: x000 = 2*cos(theta)
real(dp), parameter :: x001 = 2*cos(31*theta)
real(dp), parameter :: y2 = (sqrt(148.0_dp)*cos( &
acos(-11/sqrt(148.0_dp))/3)-1)/3
real(dp), parameter :: y1 = (sqrt(148.0_dp)*cos( &
acos(-11/sqrt(148.0_dp))/3+2*pi/3)-1)/3
real(dp), parameter :: y0 = (sqrt(148.0_dp)*cos( &
acos(-11/sqrt(148.0_dp))/3-2*pi/3)-1)/3
real(dp), parameter :: u0 = 2*sqrt(-13*y0-13*y1-11*y2)/3
real(dp), parameter :: c3phi0 = -(115*y0+120*y1+111*y2)/(93*u0)
real(dp), parameter :: y00 = u0*cos(acos(c3phi0)/3)+y0/3
real(dp), parameter :: y02 = u0*cos(acos(c3phi0)/3+2*pi/3)+y0/3
real(dp), parameter :: y01 = u0*cos(acos(c3phi0)/3-2*pi/3)+y0/3
real(dp), parameter :: u1 = 2*sqrt(-11*y0-13*y1-13*y2)/3
real(dp), parameter :: c3phi1 = -(111*y0+115*y1+120*y2)/(93*u1)
real(dp), parameter :: y10 = u1*cos(acos(c3phi1)/3)+y1/3
real(dp), parameter :: y11 = u1*cos(acos(c3phi1)/3+2*pi/3)+y1/3
real(dp), parameter :: y12 = u1*cos(acos(c3phi1)/3-2*pi/3)+y1/3
real(dp), parameter :: u2 = 2*sqrt(-13*y0-11*y1-13*y2)/3
real(dp), parameter :: c3phi2 = -(120*y0+111*y1+115*y2)/(93*u2)
real(dp), parameter :: y21 = u2*cos(acos(c3phi2)/3)+y2/3
real(dp), parameter :: y22 = u2*cos(acos(c3phi2)/3+2*pi/3)+y2/3
real(dp), parameter :: y20 = u2*cos(acos(c3phi2)/3-2*pi/3)+y2/3
real(dp), parameter :: y000 = (y00+sqrt(y00**2-4*y21))/2
real(dp), parameter :: y001 = (y00-sqrt(y00**2-4*y21))/2
write(*,*) 'Error in coefficients of first cubic:'
write(*,*) 1+(x0+x1+x2)
write(*,*) -12-(x0*x1+x1*x2+x2*x0)
write(*,*) 11+x0*x1*x2
write(*,*) 'Error in first cubic:'
write(*,*) x0**3+x0**2-12*x0+11
write(*,*) x1**3+x1**2-12*x1+11
write(*,*) x2**3+x2**2-12*x2+11
write(*,*) 'Error in roots of first cubic:'
write(*,*) y0-x0
write(*,*) y1-x1
write(*,*) y2-x2
write(*,*) 'Error in coefficients of second cubic[0]:'
write(*,*) -y0+(x00+x01+x02)
write(*,*) (y1-1)-(x00*x01+x01*x02+x02*x00)
write(*,*) (y0-2)+x00*x01*x02
write(*,*) 'Error in second cubic[0]:'
write(*,*) x00**3-y0*x00**2+(y1-1)*x00+(y0-2)
write(*,*) x01**3-y0*x01**2+(y1-1)*x01+(y0-2)
write(*,*) x02**3-y0*x02**2+(y1-1)*x02+(y0-2)
write(*,*) 'Error in roots of second cubic[0]:'
write(*,*) y00-x00
write(*,*) y01-x01
write(*,*) y02-x02
write(*,*) 'Error in coefficients of second cubic[1]:'
write(*,*) -y1+(x10+x11+x12)
write(*,*) (y2-1)-(x10*x11+x11*x12+x12*x10)
write(*,*) (y1-2)+x10*x11*x12
write(*,*) 'Error in second cubic[1]:'
write(*,*) x10**3-y1*x10**2+(y2-1)*x10+(y1-2)
write(*,*) x11**3-y1*x11**2+(y2-1)*x11+(y1-2)
write(*,*) x12**3-y1*x12**2+(y2-1)*x12+(y1-2)
write(*,*) 'Error in roots of second cubic[1]:'
write(*,*) y10-x10
write(*,*) y11-x11
write(*,*) y12-x12
write(*,*) 'Error in coefficients of second cubic[2]:'
write(*,*) -y2+(x20+x21+x22)
write(*,*) (y0-1)-(x20*x21+x21*x22+x22*x20)
write(*,*) (y2-2)+x20*x21*x22
write(*,*) 'Error in second cubic[2]:'
write(*,*) x20**3-y2*x20**2+(y0-1)*x20+(y2-2)
write(*,*) x21**3-y2*x21**2+(y0-1)*x21+(y2-2)
write(*,*) x22**3-y2*x22**2+(y0-1)*x22+(y2-2)
write(*,*) 'Error in roots of second cubic[2]:'
write(*,*) y20-x20
write(*,*) y21-x21
write(*,*) y22-x22
write(*,*) 'Error in coefficients of quadratic[00]:'
write(*,*) -y00+(x000+x001)
write(*,*) y21-x000*x001
write(*,*) 'Error in quadratic[00]:'
write(*,*) x000**2-y00*x000+y21
write(*,*) x001**2-y00*x001+y21
write(*,*) 'Error in roots of quadratic:'
write(*,*) y000-x000
write(*,*) y001-x001
end program p37
C:\gfortran\clf\nonadecagon>gfortran p37.f90 -op37
C:\gfortran\clf\nonadecagon>p37
Error in coefficients of first cubic:
-3.1086244689504383E-015
-1.0658141036401503E-014
2.8421709430404007E-014
Error in first cubic:
1.0658141036401503E-014
2.8421709430404007E-014
-1.0658141036401503E-014
Error in roots of first cubic:
2.4424906541753444E-015
0.0000000000000000
1.3322676295501878E-015
Error in coefficients of second cubic[0]:
-2.4424906541753444E-015
1.7763568394002505E-015
-8.8817841970012523E-016
Error in second cubic[0]:
-2.2870594307278225E-014
-1.2212453270876722E-015
-1.0436096431476471E-014
Error in roots of second cubic[0]:
8.8817841970012523E-016
1.2212453270876722E-015
2.2204460492503131E-015
Error in coefficients of second cubic[1]:
0.0000000000000000
-1.7763568394002505E-015
-5.3290705182007514E-015
Error in second cubic[1]:
-7.9936057773011271E-015
1.7763568394002505E-015
-2.6645352591003757E-015
Error in roots of second cubic[1]:
5.5511151231257827E-016
0.0000000000000000
6.6613381477509392E-016
Error in coefficients of second cubic[2]:
-4.4408920985006262E-016
1.6375789613221059E-015
-6.3837823915946501E-016
Error in second cubic[2]:
-1.6653345369377348E-016
-1.6653345369377348E-016
-1.0824674490095276E-015
Error in roots of second cubic[2]:
3.3306690738754696E-016
-4.4408920985006262E-016
1.5543122344752192E-015
Error in coefficients of quadratic[00]:
-8.8817841970012523E-016
8.8817841970012523E-016
Error in quadratic[00]:
-4.4408920985006262E-016
0.0000000000000000
Error in roots of quadratic:
6.6613381477509392E-016
2.2204460492503131E-016
From the above program you should be able to see the arithmetic
used to get to 2*cos(2*pi/37) via tri-construction. The program
outputs are just to guard against gross errors in the derivation,
of which there were many before I got it right.