Python
 Computer >> コンピューター >  >> プログラミング >> Python

放物線の頂点・焦点・準線を求めるPythonプログラム


本記事では、放物線の標準形から頂点焦点準線を求めるPythonプログラムについて解説します。

問題設定

放物線の方程式は一般に次の標準形で表されます。

y = ax² + bx + c

係数 a・b・c の値を受け取り、次の3つの要素を求めるのが今回の課題です。

  • 頂点の座標
  • 焦点の座標
  • 準線の方程式

用語の整理

頂点:放物線が最も急激に方向を変える点のことです。放物線全体の形状を決める重要な基準点となります。

焦点:放物線上の任意の点から焦点までの距離と、準線までの距離が常に等しくなるという性質を持つ特別な点です。

準線:曲線を定義するために用いられる固定された直線のことです。放物線は「焦点までの距離と準線までの距離が等しい点の集合」として定義できます。

求め方のポイント

標準形を平方完成して y = a(x − h)² + k の形に変形すると、次の関係式が得られます。

  • 頂点:(h, k) = (−b/2a, (4ac − b²)/4a)
  • 焦点距離:p = 1/(4a)
  • 焦点:(h, k + p)
  • 準線:y = k − p

あとはこれらの式をそのままPythonのコードに組み込むだけです。

実装例

def find_parabola(a, b, c):
    # 頂点の座標
    vx = -b / (2 * a)
    vy = ((4 * a * c) - (b ** 2)) / (4 * a)
    print("Vertex: ({}, {})".format(vx, vy))

    # 焦点の座標(頂点から 1/(4a) だけ離れた位置)
    fy = ((4 * a * c) - (b ** 2) + 1) / (4 * a)
    print("Focus: ({}, {})".format(vx, fy))

    # 準線の方程式
    dy = ((4 * a * c) - (b ** 2) - 1) / (4 * a)
    print("Directrix: y=", dy)

# メイン処理
a = 7
b = 5
c = 3
find_parabola(a, b, c)

実行結果

Vertex: (-0.35714285714285715, 2.107142857142857)
Focus: (-0.35714285714285715, 2.142857142857143)
Directrix: y= 2.0714285714285716

この例では a=7、b=5、c=3 を代入しています。頂点のx座標は −b/2a = −5/14 ≒ −0.357、y座標は (4×7×3 − 5²)/(4×7) = 59/28 ≒ 2.107 となり、プログラムの出力と一致していることが確認できます。

なお、ここではすべての変数と関数がグローバルスコープで定義されています。実用的なプログラムでは、引数として値を受け取り結果を返す形式に関数を整理すると、再利用性が高まりテストもしやすくなります。

まとめ

本記事では、放物線 y = ax² + bx + c から頂点・焦点・準線を求める方法と、そのPythonによる実装を紹介しました。平方完成から導かれる公式を使えば、任意の係数に対してこれらの要素を簡単に計算できます。グラフ描画や数値解析など幅広い場面で応用できるので、ぜひ実際にコードを動かして試してみてください。

  1. 放物線の頂点・焦点・準線を求めるPythonプログラム

    本記事では、放物線の標準形から頂点・焦点・準線を求めるPythonプログラムについて解説します。 問題設定 放物線の方程式は一般に次の標準形で表されます。 y = ax² + bx + c 係数 a・b・c の値を受け取り、次の3つの要素を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 用語の整理 頂点:放物線が最も急激に方向を変える点のことです。放物線全体の形状を決める重要な基準点となります。 焦点:放物線上の任意の点から焦点までの距離と、準線までの距離が常に等しくなるという性質を持つ特別な点です。 準線:曲線を定義するために用いられる固定された直線のことです。放物線

  2. Pythonで円柱の周囲長を求めるプログラムの書き方

    この記事では、以下の問題をPythonを使って解く方法を解説します。 問題の定義 問題: 直径と高さを入力として受け取り、円柱の周囲長を求める。 ここでいう「周囲長」とは、円柱を横から見たときに現れる長方形の外周のことです。つまり、円柱の側面を展開すると長方形になり、その縦が円柱の高さ、横が円の直径(円周ではありません)に相当します。 したがって、周囲長は次の式で表せます。 周囲長 = 2 × ( 高さ h + 直径 d ) d:円柱の直径 h:円柱の高さ 実装例 それでは、実際のコードを見てみましょう。 # 円柱の周囲長を計算する関数 def perimeter(diameter, he