• 要点
  • イメージ
  • 数式
  • コード

楕円とは

学習の道標

目次
  • 要点:ポイントまとめ
  • イメージ:楕円の感触を知ります
  • 数式:定義式から数式を理解する
  • コード:Pythonコードで描きます

◆参考文献

  • 岡本健太郎,アートで魅せる数学の世界,技術評論社

楕円

2点からの距離の和が一定の点の軌跡を楕円という。

点FとF'(焦点)からの距離の和が $2a$ である点Pの軌跡は次を満たす:

$$\displaystyle \mathrm{PF} + \mathrm{PF'} = 2a$$

楕円の方程式は、次の通りです:

$$\displaystyle \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$$

チェックテスト

線分の内分点

楕円のイメージ

自然の造形

円を伸縮させた形

円を伸縮すると楕円になる。

楕円とは、円を伸縮してできる図形です。

基本の円を用意する

単位円 $x^2 + y^2 = 1$ を用意する。単位円とは中心が原点 $(0,0)$, 半径が 1 の円です。

STEP
1

①横方向に伸縮する

円を 「$x$ 軸方向に伸縮させる」ことを,$y$軸を基準に同じ比率($a>0$)で等倍すると定める。

つまり,円周上の点 $(x,y)$ を $(ax, y)$ と変形する。等倍されたあとの円周上の点の座標は、$(ax, y)$ となる。

STEP
2

②縦方向に伸縮する

円を 「$y$ 軸方向に伸縮させる」ことを,$x$軸を基準に同じ比率($b>0$)で等倍すると定める。

つまり,円周上の点 $(x,y)$ を $(x, by)$ と変形する。等倍されたあとの円周上の点の座標は、$(x, by)$ となる。

STEP
3

③伸縮後の座標

円を $x$軸と$y$軸方向にそれぞれ伸縮したあとの点$(X,Y)$ の座標は $(ax, by)$ である。

$$(X,Y) = (ax, by)$ $x = X/a$$

STEP
4

ゴール

$x = X/a$ と $y = Y/b$ を,単位円の方程式( $x^2 + y^2 = 1$ )に代入すると,$$\displaystyle \left( \frac{X}{a} \right)^2 + \left( \frac{Y}{b} \right)^2 = 1$$ となる。

STEP
5
楕円さん

イメージにピッタリだね!

楕円の数式

数学的には、2点からの距離の和が一定の点の軌跡として与えられます。

楕円の基礎

数式①

楕円の中心を原点,2つの焦点を $x$軸上に取ったときの楕円の方程式は,次の通りである:

$$\displaystyle \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$$

このとき,定数 $a$ は,楕円の横軸方向の半径であり,定数 $b$ は,楕円の縦軸方向の半径である。

楕円の長軸と短軸

$a > b$ のとき、横方向に長い楕円になります。

  • 長軸半径 $a$,短軸半径 $b$
  • 焦点:$(\sqrt{a^2 - b^2}, 0), \ (-\sqrt{a^2 - b^2}, 0)$
  • 離心率:$\displaystyle e = \frac{\sqrt{a^2 - b^2}}{a} < 1$

$a < b$ のとき、縦方向に長い楕円になります。

  • 短軸半径 $a$,長軸半径 $b$
  • 焦点:$(0, \sqrt{b^2 - a^2}), \ (0, -\sqrt{b^2 - a^2})$
  • 離心率:$\displaystyle e = \frac{\sqrt{b^2 - a^2}}{b} < 1$
楕円さん

$a=b=1$ のときは真ん丸な「円」だよ。

楕円の数式の成り立ち

$a > b$ のときの楕円の方程式を定義から構築します。

楕円の定義(スタート)

焦点FとF'からの距離の和が $2a$ である点Pの軌跡が楕円である。

$$\displaystyle \mathrm{PF} + \mathrm{PF'} = 2a$$

座標を設定する

焦点の座標を $\mathrm{F}(c, 0), \ \mathrm{F'}(-c, 0)$ とする。

点Pの座標を $(x,y)$ とする。

長軸半径を見つける

図から,$a$ が楕円の長軸方向の半径の長さと一致することが分かる。

条件から立式する

$\displaystyle \mathrm{PF} = \sqrt{(x-c)^2 + y^2}$
$\displaystyle \mathrm{PF'} = \sqrt{(x-(-c))^2 + y^2}$

これらを楕円の定義式に代入すると,次を得る:

$$\sqrt{(x-c)^2 + y^2} + \sqrt{(x-(-c))^2 + y^2} = 2a$$

計算する

$\sqrt{(x-c)^2 + y^2} + \sqrt{(x-(-c))^2 + y^2} = 2a$
$\Rightarrow$ $\sqrt{(x-c)^2 + y^2} = 2a - \sqrt{(x-(-c))^2 + y^2}$
$\Rightarrow$ $(x-c)^2 + y^2 = 4a^2 - 4a \sqrt{(x+c)^2 + y^2} + (x+c)^2 + y^2$
$\Rightarrow$ $a \sqrt{(x+c)^2 + y^2} = a^2 + cx$
$\Rightarrow$ $(a^2 - c^2)x^2 + a^2y^2 = a^2(a^2 - c^2)$

短軸半径を見つける

$a^2 - c^2$ は,図より短軸半径の $b^2$ と一致する。

$\Rightarrow$ $(a^2 - c^2)x^2 + a^2y^2 = a^2(a^2 - c^2)$
$\Rightarrow$ $b^2 x^2 + a^2y^2 = a^2b^2$

楕円の方程式

$$\displaystyle \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$$

ただし,$c^2 = a^2 + b^2$ である。■

数式②

楕円の媒介変数表示:

$\displaystyle x = a \cdot \cos \theta$
$\displaystyle y = b \cdot \sin \theta$

楕円のPythonコード

半径から楕円を導く

import matplotlib.pyplot as plt
import numpy as np

# 長軸と短軸の長さ
a = 2
b = 1

# パラメータを生成
theta = np.linspace(0, 2 * np.pi, 1000)

# 楕円の座標計算
x = a * np.cos(theta)
y = b * np.sin(theta)

# 楕円を描画
plt.plot(x, y, label=f'Major Axis = {a}, Minor Axis = {b}')
plt.title('Ellipse with Given Major and Minor Axes')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()
plt.grid(True)
plt.show()

離心率から楕円を導く

import matplotlib.pyplot as plt
import numpy as np

# 離心率
eccentricity = 0.8

# 楕円のパラメータ
a = 1  # 長軸の半径
b = a * np.sqrt(1 - eccentricity**2)  # 短軸の半径

# パラメータを生成
theta = np.linspace(0, 2 * np.pi, 100)

# 楕円の座標計算
x = a * np.cos(theta)
y = b * np.sin(theta)

# 楕円を描画
plt.plot(x, y, label=f'Eccentricity = {eccentricity}')
plt.title('Ellipse with Given Eccentricity')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()
plt.grid(True)
plt.show()

コメントをどうぞ