【Python】分数関数(反比例)をグラフで図示

■分数関数

反比例のグラフ(y = a/x, a ≠ 0)を分数関数という。

▼y = 1 / x

▼y = – 1 / x

■分数関数の一般形

以下の式が分数関数の一般形である。

このとき、
漸近線:x= p 、y = q
点(p, q)に関して対称の双曲線を描く

■例題

以下の分数関数を図示する。

■サンプルコード

# -*- Coding:UTF-8 -*-
import numpy as np
from matplotlib import pyplot as plt


def MakeGraph(a:int, p:int, q:int) -> None:
    ########## グラフにx軸,y軸(0)を図示 ##########
    # 補助線(0)を作成 [axhline:水平 axvline:垂直]
    plt.axhline(y = 0, color = "gray")
    plt.axvline(x = 0, color = "gray")
    ############################################

    ########## グラフに漸近線を点線で図示 ##########
    # 補助線(0)を作成 [axhline:水平 axvline:垂直]
    plt.axhline(y = q, color = "gray", linestyle='dashed')
    plt.axvline(x = p, color = "gray", linestyle='dashed')
    ############################################

    ########## 分数関数をグラフに図示 ##########
    """
    分数関数のxを漸近線 x = p について、
    0.1間隔でそれぞれ
    双曲線①:(p + 0.1)     < x < (p + 0.1) + 5
    双曲線②:(p - 0.1) - 5 < x < (p - 0.1)
    の範囲を指定
    """

    # 双曲線共通の設定(xの値を0.1の間隔で設定するための変数)
    xinterval = 0.1

    # 双曲線①
    xmin_1 = p + 0.1
    xmax_1 = xmin_1 + 5
    x1 = np.arange(xmin_1, xmax_1, xinterval)

    # yを算出
    y1 = a/(x1 - p) + q

    # グラフを作成
    plt.plot(x1,y1,color = "blue")

    # 双曲線②
    xmax_2 = p - 0.1
    xmin_2 = xmax_2 - 5
    x2 = np.arange(xmin_2, xmax_2, xinterval)

    y2 = a/(x2 - p) + q

    # グラフを作成
    plt.plot(x2,y2,color = "blue")

    ########################################


    # グラフを表示
    plt.show()


# メイン処理
if __name__ == '__main__':
    # y = 1/(x - 2) + 1
    a = 1
    p = 2
    q = 1
    MakeGraph(a, p, q)

■実行結果

タイトルとURLをコピーしました