---
jupytext:
  formats: md:myst
  text_representation:
    extension: .md
    format_name: myst
    format_version: 0.13
kernelspec:
  display_name: Python 3
  language: python
  name: python3
---

# 6회 실험 · 넓이 공리

```{admonition} 이 실험
:class: seealso

| | |
|---|---|
| **짝 서술** | {doc}`L06` |
| **실험 목록** | 실험 1 (1층) — 사이에 낀 집합 / 실험 2 (3층) — 정다각형으로 차이를 줄인다 |
```

이번 회차의 실험은 둘 다 넓이 공리 A6을 다룬다. A6은 안쪽 도형과 바깥쪽 도형의 넓이가 **같을 때만** 사이에 낀 집합의 넓이를 확정해 준다. 실험 1은 두 값이 다르면 아무것도 말할 수 없다는 것을, 실험 2는 두 값의 차이를 줄일 수 있다는 것을 보인다.

```{code-cell} ipython3
:tags: [hide-input]

# 공통 준비 — 색 규약과 한글 글꼴을 맞춘다
import numpy as np
import matplotlib.pyplot as plt
import sympy as sp

from calc_viz import 색, 칸
from calc_style import 한글글꼴설정

글꼴 = 한글글꼴설정()   # 돌려주는 값은 실제로 선택된 글꼴 이름이다
```

## 실험 1 (1층) — 사이에 낀 집합

반지름 $1.5$인 원을 대상 $Q$로 두고, 그 안에 들어가는 정사각형 $S$와 그것을 덮는 정사각형 $T$를 그린다. 세 집합은 $S \subseteq Q \subseteq T$를 만족한다.

이 시점에서 우리는 원의 넓이를 모른다. 아는 것은 A5로 계산되는 두 정사각형의 넓이뿐이다.

```{code-cell} ipython3
# [6회] 사이에 낀 집합
# 목적 : S ⊆ Q ⊆ T 이고 a(S) = a(T) 이면 a(Q) 도 확정된다는 공리를 확인한다
# 층  : 1층
# 주의 : 이 그림에서는 두 값이 같지 않다. 따라서 A6 을 쓸 수 없다

반지름 = 1.5
내접변 = 반지름 * np.sqrt(2)          # 원에 내접하는 정사각형의 한 변
바깥변 = 2 * 반지름                    # 원을 덮는 정사각형의 한 변

그림, 축 = plt.subplots(figsize=(5.6, 5.6))
축.add_patch(plt.Rectangle((0, 0), 바깥변, 바깥변,
                          facecolor=색["상합"], alpha=0.35, label="T (바깥쪽)"))
축.add_patch(plt.Rectangle(((바깥변 - 내접변) / 2, (바깥변 - 내접변) / 2), 내접변, 내접변,
                          facecolor=색["하합"], alpha=0.75, label="S (안쪽)"))
축.add_patch(plt.Circle((반지름, 반지름), 반지름, facecolor="none",
                        edgecolor=색["함수"], linewidth=2.2, label="Q (대상)"))
축.set_xlim(-0.3, 바깥변 + 0.3); 축.set_ylim(-0.3, 바깥변 + 0.3)
축.set_aspect("equal"); 축.legend(loc="upper right")
plt.tight_layout()
plt.show()

안 = 내접변 ** 2
밖 = 바깥변 ** 2
print(f"a(S) = {안:.6f}")
print(f"a(T) = {밖:.6f}")
print(f"차이  = {밖 - 안:.6f}")
print(f"a(S) = a(T) 인가 : {안 == 밖}")
print("\n두 값이 같지 않으므로 A6 을 쓸 수 없다. a(Q) 는 아직 확정되지 않는다.")
```

```{admonition} 확인할 것
:class: tip
1. $a(S)$와 $a(T)$ 사이에 어떤 값들이 있는지 확인하자. 원의 넓이가 그 안에 있다는 것 말고 더 말할 수 있는 것이 있는가.
2. 정사각형 대신 변이 더 많은 도형을 쓰면 차이가 줄어들지 생각해 보자.
3. A6을 쓰려면 두 값이 어떤 관계여야 하는가.
```

## 실험 2 (3층) — 정다각형으로 차이를 줄인다

변의 개수를 늘린다. 반지름 $R$인 원에 내접하는 정 $m$각형과 외접하는 정 $m$각형의 넓이를 $m$의 식으로 구한다.

두 다각형은 삼각형으로 나눌 수 있고, 삼각형의 넓이는 6회 4절에서 넓이 공리로부터 얻었다. 즉 이 계산에 새로 가정한 것이 없다.

```{code-cell} ipython3
# [6회] 내접·외접 정다각형의 넓이
# 목적 : 안쪽과 바깥쪽의 차이를 줄일 수 있다는 것을 기호로 확인한다
# 층  : 3층
# 주의 : 극한을 취하지 않는다. 유한한 변의 개수 m 에 대한 식만 구한다

m, R = sp.symbols("m R", positive=True)

내접 = sp.simplify(sp.Rational(1, 2) * m * R**2 * sp.sin(2 * sp.pi / m))
외접 = sp.simplify(m * R**2 * sp.tan(sp.pi / m))

print("내접 정 m 각형의 넓이 :"); sp.pprint(내접)
print("\n외접 정 m 각형의 넓이 :"); sp.pprint(외접)
print("\n두 넓이의 차 :"); sp.pprint(sp.simplify(외접 - 내접))
```

$R = 1$로 두고 변의 개수를 늘려 가며 값을 본다.

```{code-cell} ipython3
# [6회] 변의 개수를 늘린다
# 목적 : 차이가 얼마나 작아지는지 수치로 확인한다
# 층  : 3층에서 얻은 식에 값을 넣는다
# 주의 : m 은 모두 유한한 값이다. m = ∞ 를 넣지 않는다

머리 = ["m", "내접 a(S)", "외접 a(T)", "차이", "같은가"]
폭 = [7, 18, 18, 18, 8]
print(" ".join(칸(글, w) for 글, w in zip(머리, 폭)))

for 값 in (4, 6, 12, 24, 96, 384):
    안 = float(내접.subs({m: 값, R: 1}))
    밖 = float(외접.subs({m: 값, R: 1}))
    줄 = [값, f"{안:.10f}", f"{밖:.10f}", f"{밖 - 안:.10f}", 안 == 밖]
    print(" ".join(칸(항목, w) for 항목, w in zip(줄, 폭)))
```

$m = 96$은 아르키메데스가 실제로 사용한 변의 개수이다. 그때 차이는 약 $0.0034$이다.

`같은가` 열이 모든 줄에서 `False`라는 점에 유의한다. **어느 유한한 $m$에서도 두 넓이는 같아지지 않는다.** 따라서 A6의 조건이 갖추어지지 않으며, 이 표만으로는 원의 넓이가 확정되지 않는다.

그렇다면 이 계산으로 무엇을 말할 수 있는가. 1회 3절과 같은 형태의 논증이다. 원의 넓이를 $A$라 하면 모든 $m$에 대하여

$$
a(S_m) \le A \le a(T_m)
$$

이고, 차이 $a(T_m) - a(S_m)$을 원하는 만큼 작게 만들 수 있다. 이 상황에서 $A$의 후보를 하나씩 배제하는 것이 1회에서 본 방법이다.

```{admonition} 확인할 것
:class: tip
1. $m=96$일 때 두 넓이의 차이가 얼마인지 확인하자. 아르키메데스가 사용한 변의 개수이다.
2. 두 값 사이에 어떤 수가 있는지 확인하자.
3. 이 계산에서 극한을 취했는가. 취하지 않고도 무엇을 말할 수 있는가.
```

```{admonition} A6 은 언제 쓰이는가
:class: warning

실험 1과 실험 2 어느 쪽에서도 A6을 쓰지 못하였다. 두 실험 모두에서 $a(S) \ne a(T)$였기 때문이다.

A6이 쓰이는 자리는 다르다. 유한한 $m$마다 얻은 부등식 전체를 모아 **후보를 배제하는 논증을 끝낸 뒤에**, 그 결과로 안쪽과 바깥쪽의 넓이가 같아지는 상황을 만들었을 때 쓰인다.

즉 공리는 계산의 출발점이 아니라 논증의 마지막 단계에 놓인다. 이 순서는 뒤에서 적분을 정의할 때 그대로 반복된다.
```

```{admonition} 짝이 되는 서술
:class: note
{doc}`L06`
```
