Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
(연관된 글이 1개 있습니다.)

GeoGebra 기하 (11) - 3대 작도 불능 문제의 하나인 임의 각의 3등분

지오지브라 수학 앱을 이용해,

GeoGebra 기하 - 컴퍼스와 자를 이용한 작도 프로그램
; https://www.sysnet.pe.kr/2/0/11568

컴퍼스와 자를 이용한 작도를 실습할 수 있습니다. 이미 증명된 바에 의해, 임의 각의 3등분은 불가능합니다. 찬찬히 지난 글을 한번 읽어 보면,

GeoGebra 기하 (7) - 각의 이등분
; https://www.sysnet.pe.kr/2/0/11577

GeoGebra 기하 (8) - 호(Arc)의 이등분
; https://www.sysnet.pe.kr/2/0/11578

결국 "각의 3등분"이란, "호의 3등분"을 할 수 있다면 "각의 3등분"도 할 수 있는 것입니다. 그렇다고 모든 각에 대한 3등분을 할 수 없는 것은 아닙니다. 그나마 해당 각이 알려져 있다면 지난 글에서처럼,

GeoGebra 기하 (10) - 직각의 3등분
; https://www.sysnet.pe.kr/2/0/11580

작도 가능한 도형들 중에서 뽑아낼 수 있는 각도를 이용해 3등분 하는 것이 가능합니다. 예를 들어, 정삼각형으로 만든 60도는 절반씩 나누다 보면 30, 15, 7.5, 3.75, 1.875 등의 각도를 작도할 수 있고 따라서 그것들의 3배 각들은 3등분이 가능합니다. 이런 식으로 정사각형의 90도에서 45, 22.5, 11.25, 5.625, 2.8125, 1.40625 등의 각도와 정오각형을 작도한다면 108도에서 54, 27, 13.5, 6.75, 3.375, 1.6875 등의 각도를 3등분 작도에 사용할 수 있습니다. 게다가 정오각형의 54도와 정사각형의 11.25도를 빼면 42.75도를 작도하는 것도 가능하니 이런 식으로 하다 보면 알려진 각에 대해서는 꽤나 많이 3등분 할 수 있는 조합이 나옵니다.

문제는, 그냥 다음과 같이 임의로 주어진 각입니다.

trisector_1.png

이것은 말 그대로 "호의 3등분"을 할 수 있어야만 합니다.




선형 보간법을 한다면, 그나마 다음과 같은 정도로 근삿값을 구할 수 있습니다.

trisector_2.png

혹은 아래의 책에서 소개하고 있는,

수학이란 무엇인가
; http://www.yes24.com/24/goods/274701?scode=032

"자의 다른 기능을 허용한다면 작도 가능한 것은 엄청나게 확장될 수 있다"고 하면서 아르키메데스의 저술에서 발견된 각의 삼등분 작도 방법이 있습니다.

trisector_3.png

위의 그림은, 각 EAC에 대한 3등분을 하는 것으로 선분 DA와 동일한 길이의 점을 선분 AC의 연장선 위에 (F의 위치를 잡아) "찍는" 것입니다. 이게 왜 3등분인지 증명은 다음과 같이 보조 선을 그어 보면 확실히 알 수 있습니다.

trisector_4.png

이를 기반으로 다음과 같은 증명을 할 수 있습니다.

새롭게 "교점을 맞춰 찍은" 점 F를 기반으로 각 DFG를 x로 둡니다. DFG가 x각이므로 DAG도 x각임.

그럼 각 HDA는 2x가 됩니다. (현 HA에 대한 중심각 HDA는 원주각 HFA의 2배이기 때문임)

각 HDA == 각 HEA이므로, 따라서 각 EAD에 대해 다음의 공식이 성립합니다.
각 EAD = 삼각형 내각의 합 180 - (각 HDA + 각 HEA)
각 EAD = 180 - (2x + 2x)
       = 180 - 4x

선분 CAG는 일직선으로 180도이므로 이제 알려진 각들을 이용해 정리하면,
180 = 각 DAG + 각 EAD + 각 EAC
    = x + (180 - 4x) + 각 EAC
    = x + 180 - 4x + 각 EAC
    = -3x + 180 + 각 EAC

0   = -3x + 각 EAC
3x = 각 EAC
x = 각 EAC / 3

그런데, 왜 이것이 자의 다른 용도를 활용한 것인지는 실제로 작도를 해보면 압니다. 아래에서 보는 바와 같이, 교점 F를 잡는 것이 정확한 작도에 의한 것이 아닌, 선분 DA의 동일한 길이를 얻기 위해 다음과 같이 "찍어야"하기 때문입니다.

trisector_5.gif

다시 말해, 위의 경우는 "자"가 "주어진 두 점을 지나는 직선"을 긋는 도구로써 사용된 것이 아니라는 것입니다.

혹시 그래도 3등분 할 수 있는 일반적인 방법이 있지 않을까 하고 고민하시는 분들은 "수학이란 무엇인가"의 책에서 위의 3등분이 불가능함을 대수 방정식을 이용해 풀어 놓은 것을 참고하시면 ... 포기하게 되실 겁니다. ^^




재미있는 것은, 이것이 가능하다고 국내에서 책까지 판매된 적이 있습니다.

각의 3등분의 정리 - 2425년만에 밝혀진 수학의 신비 (양장)
; http://www.yes24.com/24/goods/26904007

게다가 이 책을 ^^; 소개하고 있기까지 한 글도 있습니다.

각의 3등분의 정리
; http://egloos.zum.com/igenbin/v/2693745

저 글의 덧글에 보면, 해당 책의 저자가 남긴 글이 있고 그 안의 링크를 타고 들어가면 3등분에 대한 내용을 알 수 있습니다.

새로 발견한 임의각의 3등분법
; https://blog.naver.com/mgeo67/40018980301

저 글의 "그림 1"을 보자마자 알 수 있는 것은 도대체 원호 AY의 3등분 지점인 점 S를 어떻게 찍었냐는 것입니다. 그러니까, 저 그림에서는 미리부터 그 위치를 알고 찍은 걸 이용해 증명을 하고 있는 것입니다. 사실, 원호 AY의 3등분 지점인 점 S를 찍을 수 있는 "실력"이면 어렵게 거기를 찍을 것이 아니라 원호 XY의 3등분인 점 B나 점 C를 찍으면 됩니다.

좀 더 읽어보면, 글쓴이가 주장하는 것은 원의 중심 O와 점 S, 점 B가 정삼각형을 이룬다는 나름의 발견으로 그걸 이용하면 S와 B를 찍을 수 있을 것처럼 생각하는 것 같기도 합니다. 실제로 다음과 같이 쓰여 있습니다.

"
그리고 위의 그림1에서 △ BOS가 정삼각형(Regular triangle)이라는 것은 유클리드 도구로 무수히 많은 각을 3등분 할 수 있게 하는 관건이 된다.
"


그런데 이것을 GeoGebra로 실제로 재현해 볼까요? 아래와 같이 정삼각형을 그릴 수는 있지만,

trisector_6.gif

보는 바와 같이 도대체 어느 지점에서 멈춰야 원호를 3등분 할 수 있는지 알 수가 없습니다. 그냥 봐도, 말 그대로 찍기 수준일 뿐 오히려 이런 정도가 3등분에 대한 정리라면 이전에 살펴본 아르키메데스의 방법이 더 정답에 가깝습니다.

(첨부 파일은 이 글에서 소개한 3개의 ggb 작도 파일을 담고 있습니다.)




Basic Tools
    Move
    Point
    Segment
    Circle with Center through Point

Edit
    Show / Hide Label
    Show / Hide Object

Construct
    Midpoint or Center
    Perpendicular Line
    Perpendicular Bisector
    Parallel Line
    Angle Bisector

Measure
    Angle
    Distance or Length

Lines
    Segment
    Segment with Given Length
    Ray

Circles
    Circle with Center through Point
    Compass
    Circumcircular Arc

Polygons
    Regular Polygon




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 7/5/2018]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 121  122  123  124  125  126  127  128  129  130  [131]  132  133  134  135  ...
NoWriterDateCnt.TitleFile(s)
1780정성태10/15/201424133오류 유형: 249. The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
1779정성태10/15/201419651오류 유형: 248. Active Directory에서 OU가 지워지지 않는 경우
1778정성태10/10/201418086오류 유형: 247. The Netlogon service could not create server share C:\Windows\SYSVOL\sysvol\[도메인명]\SCRIPTS.
1777정성태10/10/201421199오류 유형: 246. The processing of Group Policy failed. Windows attempted to read the file \\[도메인]\sysvol\[도메인]\Policies\{...GUID...}\gpt.ini
1776정성태10/10/201418200오류 유형: 245. 이벤트 로그 - Name resolution for the name _ldap._tcp.dc._msdcs.[도메인명]. timed out after none of the configured DNS servers responded.
1775정성태10/9/201419324오류 유형: 244. Visual Studio 디버깅 (2) - Unable to break execution. This process is not currently executing the type of code that you selected to debug.
1774정성태10/9/201426553개발 환경 구성: 246. IIS 작업자 프로세스의 20분 자동 재생(Recycle)을 끄는 방법
1773정성태10/8/201429738.NET Framework: 471. 웹 브라우저로 다운로드가 되는 파일을 왜 C# 코드로 하면 안되는 걸까요? [1]
1772정성태10/3/201418496.NET Framework: 470. C# 3.0의 기본 인자(default parameter)가 .NET 1.1/2.0에서도 실행될까? [3]
1771정성태10/2/201428018개발 환경 구성: 245. 실행된 프로세스(EXE)의 명령행 인자를 확인하고 싶다면 - Sysmon [4]
1770정성태10/2/201421630개발 환경 구성: 244. 매크로 정의를 이용해 파일 하나로 C++과 C#에서 공유하는 방법 [1]파일 다운로드1
1769정성태10/1/201424046개발 환경 구성: 243. Scala 개발 환경 구성(JVM, 닷넷) [1]
1768정성태10/1/201419436개발 환경 구성: 242. 배치 파일에서 Thread.Sleep 효과를 주는 방법 [5]
1767정성태10/1/201424593VS.NET IDE: 94. Visual Studio 2012/2013에서의 매크로 구현 - Visual Commander [2]
1766정성태10/1/201422409개발 환경 구성: 241. 책 "프로그래밍 클로저: Lisp"을 읽고 나서. [1]
1765정성태9/30/201425978.NET Framework: 469. Unity3d에서 transform을 변수에 할당해 사용하는 특별한 이유가 있을까요?
1764정성태9/30/201422222오류 유형: 243. 파일 삭제가 안 되는 경우 - The action can't be comleted because the file is open in System
1763정성태9/30/201423835.NET Framework: 468. PDB 파일을 연동해 소스 코드 라인 정보를 알아내는 방법파일 다운로드1
1762정성태9/30/201424515.NET Framework: 467. 닷넷에서 EIP/RIP 레지스터 값을 구하는 방법 [1]파일 다운로드1
1761정성태9/29/201421525.NET Framework: 466. 윈도우 운영체제의 보안 그룹 이름 및 설명 문자열을 바꾸는 방법파일 다운로드1
1760정성태9/28/201419789.NET Framework: 465. ICorProfilerInfo::GetILToNativeMapping 메서드가 0x80131358을 반환하는 경우
1759정성태9/27/201430959개발 환경 구성: 240. Visual C++ / x64 환경에서 inline-assembly를 매크로 어셈블리로 대체하는 방법파일 다운로드1
1758정성태9/23/201437788개발 환경 구성: 239. 원격 데스크톱 접속(RDP)을 기존의 콘솔 모드처럼 사용하는 방법 [1]
1757정성태9/23/201418368오류 유형: 242. Lync로 모임 참여 시 소리만 들리지 않는 경우 - 두 번째 이야기
1756정성태9/23/201427362기타: 48. NVidia 제품의 과다한 디스크 사용 [2]
1755정성태9/22/201434158오류 유형: 241. Unity Web Player를 설치해도 여전히 설치하라는 화면이 나오는 경우 [4]
... 121  122  123  124  125  126  127  128  129  130  [131]  132  133  134  135  ...