• まとめ
  • 表紙
  • ①世の中
  • ②理解
  • ③コード

「放物線」とは

物を放り投げたときの軌道が描く曲線のこと。

定義

ある点とある直線からの距離が等しい点の集まりを放物線という.

数式

焦点を $\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())