티스토리 뷰

아르키메데스 계산법 개요


아르키메데스는 아래의 그림과 같이 원의 둘레길이 원주는 내접하는 다각형의 변의 길이와 외접하는 다각형의 변의 길이 사이에 존재한다는 사실을 발견하고 이 다각형을 100각형 가까이 만들어 원주 길이의 근사값을 기원전에 구했다.

이 아르키메데스의 원주 계산법은 우리가 를 손으로 계산할 때 쓰는 방식과 다르지 않다. 놀랍게도 오버 슈트, 언더 슈트를 반복하며 일정 값에 수렴하는 이런 시스템은 현대 공학의 핵심 도구이다. 예를 들어 우주로 쏘아 올리는 로켓은 일정 자세를 유지해야 하는데 이를 위해 끊임없이 피드백과 자세 제어를 한다. 하지만 자연계 시스템에서는 한번의 출력으로 원하는 자세를 잡을 수 없다. 따라서 로켓은 자신이 원하는 자세에서 오버 슈트, 언더 슈트를 반복하면 근접한 자세를 유지한다. 이를 그래프로 그리면 아래의 그림과 유사하다.

목표 값 위의 값을 오버 슈트, 아래 값을 언더 슈트라고 부른다. 

아르키메스 계산법의 흥미로운 점 중 하나는 기원 전에 이미 무한대의 개념을 생각했다는 것이다.  무한대는 적분과 미분을 위한 중요한 개념인데 기원 전에 이런 아이디어를 떠올렸다는 것 자체가 놀랍다.

내접 다각형과 외접 다각형의 관계


본격적으로 원주를 계산하기 전에 위의 그림을 어떻게 그렸는지 생각해 보는 것은 외접하는 다각형의 변의 길이 계산을 이해하는데 도움이 된다. 원의 내접하는 다각형은 컴퓨터로 쉽게 그릴 수 있다. 이미 존재하는 다각형의 꼭지점의 수로 π 를 나눠 단위 각을 구한 다음, 단위 각 단위로 점차 증가 시켜가며 원의 방정식에 넣어 좌표 값을 구하면 된다. 하지만 외접하는 다각형은 이야기가 좀 다르다. 꼭지점의 좌표를 구할 수 있는 방정식이 없기 때문이다. 외접하는 다각형을 그리기 위해서는 닮은 꼴 삼각형의 선분의 비를 이용해야 한다.

ABD A'B'D'는 닮은 꼴 삼각형이다.

따라서의 관계가 성립한다.  의 길이를 구하면 위의 그림의 원이 단이 원으로 그려 있으므로 의 비율을 쉽게 구할 수 있다. B'의 좌표는 손쉽게 이 비율을 이미 구한 점 B의 좌표 값에 곱하기만 하면 된다. 유사하게 외접하는  의 길이는 따로 계산할 필요가 없이  길이를 구한 다음 비율을 곱하여 쉽게 얻을 수 있다

파이 값 계산


▵ ABD의 두 변의 길이가 동일하므로 ▵ ABD는 이등변 삼각형이다. 따라서 꼭지점 A에서 에 수직으로 선을 그으면 동일한 직각 삼각형 ABC ADC가 만들어진다. BAC는 다각형의 단위 각의 1/2이다. 따라서  의 길이는

반지름 r의 길이는 1이므로 

의 길이는

와 (=1) 의 길이의 비율은 이다.

내접한 다각형이 변의 개수가 n이라고 하면 다각형 변의 길이는 

외접하는 다각형의 변의 길이는

원주의 길이는 

따라서 파이의 값은

모든 크기의 원은 동일한 파이 값을 가진다. 


우리는 원의 크기에 관계없이 동일한 파이 값을 가지는 것을 당연하게 생각한다. 하지만 수학자들은 당연해 보이는 것들도 증명을 해야 잠이 오는 모양이다. 유명한 파르마의 정리가 그 한 예인데 오랫동안 모두가 사실인 줄 알고 있었지만 오랜 세월을 거쳐 끝내는 증명을 이끌어 냈다. 모든 크기의 원이 동일한 파이 값을 가진다는 증명은 비교적 단순하기 때문에 여기서 정리해 둔다.

모든 원의 크기에 관계 없이 동일한 파이 값이 존재함을 증명하기 위해 동일한 점을 원점으로 하고 반지름이 다른 두 원을 그린다.

외곽의 원의 원주를이라 하고 내부의 원의 원주를 라고 하면 각각의 원주의 길이는

두 원의 파이는 파이의 정의에 따라

닮은 꼴 삼각형의 성질에 따라

그러므로

모든 크기의 원에 대해 동일한 파이 값이 존재함이 증명되었다.

GNU-Octave 를 이용해 원과 내접 및 외접한 다각형 그리기


위에서 원과 다각형을 그리는데 MATLAB 언어와 호환성이 있는 GNU-Octave 프로그램을 사용했다. 삼각형의 닮은 꼴 성질을 이용하여 외접한 다각형을 그렸다. 아래는 그래프를 그리는데 사용한 GNU-octave 코드이다.

clear

%단위 길이 1의 원을 그린다.
angle=linspace(0, 2.*pi, 360);
x=cos(angle);
y=sin(angle);
plot(x,y);
hold on;

%내접한 다각형을 그린다.
divider=12;
angle=linspace(0, 2.*pi, divider+1);

x=cos(angle);
y=sin(angle);
plot(x,y);

%원점에서 다각형의 꼭지점으로 선을 긋는다.
for i = 1:divider
px=[0, x(1,i)];
py=[0, y(1,i)];
plot(px, py);
end;

%외접한 다각형을 그린다.
scale= 1./cos(pi./divider);
x=scale.*x;
y=scale.*y;
plot(x,y,'r');

hold off;

axis('equal');



댓글
공지사항
최근에 올라온 글
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함