• 表紙
  • まとめ
  • 世の中
  • 2次関数
  • コード

数学のまとめノート

「放物線」とは

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

定義

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

A. 左右方向の放物線

  1. y2=4px
  2. 焦点: (p,0), 準線: x=p

B. 上下方向の放物線

  1. x2=4py
  2. 焦点: (0,p), 準線: y=p

B. 2次関数のグラフの形状

y=ax2 のグラフの焦点は (0,14a), 準線は y=14a の放物線である.

一般の2次関数 y=ax2+bx+c の焦点と準線は, この結果を平行移動して得る.

離心率

放物線の離心率 e は, e=1 である.

ポイント解説

イメージ

放物運動のシミュレーション

定義

焦点を F, 動点 P から準線におろした垂線の足を H とすると, 定義は PF=PH とかける.

イメージ

放物線は自然に現れる。

世の中にある放物線

問い

放物線は、建築物を支えています。また、塩を振りかけてもできます。

東京タワー

東京タワーやエッフェル塔の下の構造は放物線らしいです。

※撮影:2024年8月6日

塩山の放物線

パラボナアンテナ

噴水

2次関数のグラフ

2次関数のグラフは放物線と言われます。

今回は、放物線の定義に合致しているかを検証します!

2次関数のグラフは放物線

2次関数 y=ax2+bx+c(a0) のグラフは放物線である.

例えば, y=ax2 のグラフの焦点と準線は次の通りである:

  1. 焦点: (0,14a)
  2. 準線: y=14a

2次関数のグラフは放物線

放物線かどうかを検証するためには運動方程式を利用することが必要です。

ただ、今回は数学的に、2次関数のグラフが放物線の定義を満たすかどうかを検証します。

2次関数のグラフ

2次関数は、y=ax2+bx+c(a0) で表される関数です。

a>0 のときは下に凸の丸い曲線、a<0 のときは上に凸の丸い曲線になります。

グラフの形状だけ考えると、y=ax2 と同じであるので、このグラフが放物線であることを示せば元々のグラフが放物線であることも分かる。

放物線の定義

数学的には放物線は次のように定義します。

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

証明で確かめる

証明すること→放物線があったとしたら、ある点と直線があって、そこからの距離が等しい点の集まりに本当になっているのか?

証明.2次関数 y=ax2 について考える.

ある点と直線の候補

F:(0,14a) と 直線 :y=14a が, 放物線の定義を満たすか確かめる.

※焦点 (p,0) で準線 x=p である放物線の方程式が y2=4px であることから推測した.

確認事項の確認

2次関数上の動点 P から直線 におろした垂線の足を Hとする.

このとき, 次の式が成り立てば, 2次関数のグラフは放物線である:

PF=PH

距離の座標表示

2次関数 y=ax2 上の点 P(t,at2) とおく.

線分 PFPH の距離を座標表示する;

PF=t2+(at214a)2PH=|at2(14a)|

線分 PF の距離の計算

線分 PF の距離の式を計算する.

PF=t2+(at214a)2=t2+(a2t412t2+116a2)=a2t4+12t2+116a2=(at2+14a)2=|at2+14a|

結論

以上により, PF=PH が得られた.

したがって, 2次関数 y=ax2 のグラフは放物線の定義を満たす. ■

このようにして、次のことを導くことができました。

2次関数のグラフは放物線

2次関数 y=ax2+bx+c(a0) のグラフは放物線である.

例えば, y=ax2 のグラフの焦点と準線は次の通りである:

  1. 焦点: (0,14a)
  2. 準線: y=14a

Python

Pythonで放物線のアニメーション

放物運動の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())

入力パラメータのところの数値を変えれば、他のシミュレーションができます。

放物運動のアニメーション

実際に作成されるアニメーションです!

コメントを残す