- 表紙
- まとめ
- ①世の中
- ②理解
- ③コード
「放物線」とは
物を放り投げたときの軌道が描く曲線のこと。
定義
ある点とある直線からの距離が等しい点の集まりを放物線という.
数式
焦点を $\mathrm{F}$, 動点 $\mathrm{P}$ から準線におろした垂線の足を $\mathrm{H}$ とすると, 定義は $\mathrm{PF} = \mathrm{PH}$ とかける.
A. 標準的な方程式
焦点 $(p,0)$ で, 準線 $x=-p$ のとき,
$$y^2 = 4px$$
B. 2次関数のグラフの形状
2次関数 $y=ax^2$ のグラフは, 焦点 $\left( 0, \, \frac{1}{4a} \right)$ で 準線 $y = -\frac{1}{4a}$ の放物線の形状をしている。
ポイント解説
イメージ
放物運動のシミュレーション。
A
定義式を座標で計算して導きます。
B
一般の2次関数 $y = ax^2 + bx+c$ の焦点と準線は, Bの結果を平行移動すれば得られます。
世の中にある放物線
問い
放物線は、建築物を支えています。また、塩を振りかけてもできます。
東京タワー
東京タワーやエッフェル塔の下の構造は放物線らしいです。
※撮影:2024年8月6日
塩山の放物線
パラボナアンテナ
噴水
放物線の理解
2次関数のグラフは放物線か?
問い
放物線があったとしたら、ある点と直線があって、そこからの距離が等しい点の集まりに本当になっているのか?
$y = ax^2$ について
2次関数のグラフの焦点と準線
$y = ax^2$ のグラフについて
・焦点 $\displaystyle \left(0, \frac{1}{4a} \right)$
・準線 $\displaystyle y=-\frac{1}{4a}$
※ $y^2= 4px$ の焦点が $(p,0)$, 準線が $x=-p$ であることを参考にした。
焦点と準線であることの確かめ.
$y =ax^2$ について, 点 $\displaystyle F : \left(0, \frac{1}{4a} \right)$ と 直線 $\displaystyle \ell : y=-\frac{1}{4a}$ が, 放物線の定義を満たすか確かめます。動点 P から直線 $\ell$ におろした垂線の足をHとします。
確かめること. $\displaystyle \mathrm{PF} = \mathrm{PH}$
・・・
[1]距離を測ってみる
2次関数 $y = ax^2$ 上の点Pを $(t, at^2)$ とおく。
点Hを,点Pから直線 $\ell$ におろした垂線の足とする。
$\displaystyle \begin{aligned}
\mathrm{PF} &= \sqrt{t^2 + \left(at^2 - \frac{1}{4a} \right)^2} \\
\mathrm{PH} &= \left| at^2 - \left( -\frac{1}{4a} \right) \right|
\end{aligned}$
[2]$\mathrm{PF}$ を計算する
$\displaystyle \begin{aligned}
\mathrm{PF} &= \sqrt{t^2 + \left(at^2 - \frac{1}{4a} \right)^2} \\
&= \sqrt{t^2 + \left(a^2t^4 - \frac{1}{2}t^2 + \frac{1}{16a^2} \right)} \\
&= \sqrt{a^2t^4 + \frac{1}{2}t^2 + \frac{1}{16a^2} } \\
&= \sqrt{\left(at^2 + \frac{1}{4a} \right)^2} \\
&= \left| at^2 + \frac{1}{4a} \right|
\end{aligned}$
したがって,
$\displaystyle \mathrm{PF} = \mathrm{PH}$
が成り立つ。
放物線のPythonコード
放物運動のシミュレーション
放物運動をシミュレーションするコードを作ってもらいました。
import math
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 放物運動をシミュレートする関数
def 放物運動(v, theta, g):
theta_rad = math.radians(theta)
vx = v * math.cos(theta_rad)
vy = v * math.sin(theta_rad)
t_flight = (2 * vy) / g
dt = 0.01
t = np.arange(0, t_flight, dt)
x = vx * t
y = vy * t - 0.5 * g * t ** 2
return x, y
# 入力パラメータ
v0 = 20 # 初速度(m/s)
角度 = 45 # 射角(度)
g = 9.81 # 重力加速度(m/s^2)
# 放物運動をシミュレート
x, y = 放物運動(v0, 角度, g)
# グラフと軸を作成
fig, ax = plt.subplots()
ax.set_xlim(0, max(x) + 5)
ax.set_ylim(0, max(y) + 5)
line, = ax.plot([], [], lw=2)
# アニメーション関数
def アニメーション(i):
line.set_data(x[:i], y[:i])
return line,
# アニメーションを作成
ani = animation.FuncAnimation(fig, アニメーション, frames=len(x), interval=10, blit=True)
# アニメーションをHTML5ビデオとして保存して表示
HTML(ani.to_html5_video())