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

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13347정성태5/10/20233936.NET Framework: 2118. C# - Semantic Kernel의 Prompt chaining 예제파일 다운로드1
13346정성태5/10/20233781오류 유형: 858. RDP 원격 환경과 로컬 PC 간의 Ctrl+C, Ctrl+V 복사가 안 되는 문제
13345정성태5/9/20235083.NET Framework: 2117. C# - (OpenAI 기반의) Microsoft Semantic Kernel을 이용한 자연어 처리 [1]파일 다운로드1
13344정성태5/9/20236334.NET Framework: 2116. C# - OpenAI API 사용 - 지원 모델 목록 [1]파일 다운로드1
13343정성태5/9/20234202디버깅 기술: 192. Windbg - Hyper-V VM으로 이더넷 원격 디버깅 연결하는 방법
13342정성태5/8/20234140.NET Framework: 2115. System.Text.Json의 역직렬화 시 필드/속성 주의
13341정성태5/8/20233914닷넷: 2114. C# 12 - 모든 형식의 별칭(Using aliases for any type)
13340정성태5/8/20233951오류 유형: 857. Microsoft.Data.SqlClient.SqlException - 0x80131904
13339정성태5/6/20234636닷넷: 2113. C# 12 - 기본 생성자(Primary Constructors)
13338정성태5/6/20234125닷넷: 2112. C# 12 - 기본 람다 매개 변수파일 다운로드1
13337정성태5/5/20234632Linux: 59. dockerfile - docker exec로 container에 접속 시 자동으로 실행되는 코드 적용
13336정성태5/4/20234397.NET Framework: 2111. C# - 바이너리 출력 디렉터리와 연관된 csproj 설정
13335정성태4/30/20234516.NET Framework: 2110. C# - FFmpeg.AutoGen 라이브러리를 이용한 기본 프로젝트 구성 - Windows Forms파일 다운로드1
13334정성태4/29/20234170Windows: 250. Win32 C/C++ - Modal 메시지 루프 내에서 SetWindowsHookEx를 이용한 Thread 메시지 처리 방법
13333정성태4/28/20233626Windows: 249. Win32 C/C++ - 대화창 템플릿을 런타임에 코딩해서 사용파일 다운로드1
13332정성태4/27/20233721Windows: 248. Win32 C/C++ - 대화창을 위한 메시지 루프 사용자 정의파일 다운로드1
13331정성태4/27/20233744오류 유형: 856. dockerfile - 구 버전의 .NET Core 이미지 사용 시 apt update 오류
13330정성태4/26/20233414Windows: 247. Win32 C/C++ - CS_GLOBALCLASS 설명
13329정성태4/24/20233622Windows: 246. Win32 C/C++ - 직접 띄운 대화창 템플릿을 위한 Modal 메시지 루프 생성파일 다운로드1
13328정성태4/19/20233261VS.NET IDE: 184. Visual Studio - Fine Code Coverage에서 동작하지 않는 Fake/Shim 테스트
13327정성태4/19/20233686VS.NET IDE: 183. C# - .NET Core/5+ 환경에서 Fakes를 이용한 단위 테스트 방법
13326정성태4/18/20235059.NET Framework: 2109. C# - 닷넷 응용 프로그램에서 SQLite 사용 (System.Data.SQLite) [1]파일 다운로드1
13325정성태4/18/20234407스크립트: 48. 파이썬 - PostgreSQL의 with 문을 사용한 경우 연결 개체 누수
13324정성태4/17/20234239.NET Framework: 2108. C# - Octave의 "save -binary ..."로 생성한 바이너리 파일 분석파일 다운로드1
13323정성태4/16/20234140개발 환경 구성: 677. Octave에서 Excel read/write를 위한 io 패키지 설치
13322정성태4/15/20234943VS.NET IDE: 182. Visual Studio - 32비트로만 빌드된 ActiveX와 작업해야 한다면?
1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...