Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

反比例。(Python 3, matplotlib, NumPy)

使用するライブラリ

matplotlib

NumPy

Python 3 コード

inverse_propotion1.py

#!/usr/bin/env python3


"""(docstring)
"""


import matplotlib.pyplot as plt
import numpy as np


def print_math_problems():
    """(docstring)
    """
    print("""問題:

24L 入る水槽に一定の割合で水を入れたときの 1 分間に入れる水の量 xL と
水槽をいっぱいにするのにかかる時間 y 分との関係。

1 分間に入れる水の量 x (L): 2, 4, 6, 8
時間               y (分): 12, 6, 4, 3

(1) x と y の関係を式にせよ。

(2) x と y の関係を表す簡単なグラフを作成せよ。

(3) 1 分間に入れる水の量が 3L のとき、
    水槽をいっぱいにするには何分かかるか求めよ。

(4) 2 分で水槽をいっぱいにするには、
    1 分間に入れる水の量を何 L にすればよいか求めよ。
""")


def solutions():
    """(docstring)
    """
    print('解答例:\n')

    x1 = np.array([i for i in range(2, 9, 2)])

    y1 = np.array([12, 6, 4, 3])

    print('(1)')
    x1_mul_by_y1 = x1 * y1
    print('x * y: ', x1_mul_by_y1)
    y2 = 24 / x1
    print('y = 24 / x: ', y2)
    print('')

    # (2)
    # (与えられているデータのまま matplotlib で plot すると、なめらかな曲線にはならない)。
    plt.plot(x1, y1, marker='o')
    plt.title('(2)')
    plt.grid()
    plt.show()

    print('(3)')
    y3 = 24 / 3
    print('y = 24 / 3 =', y3)
    print(y3, '分')
    print('')

    print('(4)')
    x2 = 24 / 2
    print('2 = 24 / x, x = 24 / 2 =', x2)
    print(x2, 'L')


if __name__ == '__main__':
    print_math_problems()
    print('-'*79)
    solutions()

出力

$ python3 inverse_propotion1.py

グラフのスクリーンショット:

f:id:my_notes:20180517095006p:plain

ターミナル:

問題:

24L 入る水槽に一定の割合で水を入れたときの 1 分間に入れる水の量 xL と
水槽をいっぱいにするのにかかる時間 y 分との関係。

1 分間に入れる水の量 x (L): 2, 4, 6, 8
時間               y (分): 12, 6, 4, 3

(1) x と y の関係を式にせよ。

(2) x と y の関係を表す簡単なグラフを作成せよ。

(3) 1 分間に入れる水の量が 3L のとき、
    水槽をいっぱいにするには何分かかるか求めよ。

(4) 2 分で水槽をいっぱいにするには、
    1 分間に入れる水の量を何 L にすればよいか求めよ。

-------------------------------------------------------------------------------
解答例:

(1)
x * y:  [24 24 24 24]
y = 24 / x:  [12.  6.  4.  3.]

(3)
y = 24 / 3 = 8.0
8.0 分

(4)
2 = 24 / x, x = 24 / 2 = 12.0
12.0 L

参考文献 (数式等を参考)

小学総合的研究わかる算数

小学総合的研究わかる算数