# =================================================================
# 台形公式(数値積分の概念)
# =================================================================

# 積分計算用の関数
def integral(a,b,n): # # a, b = 積分範囲, n = 分割数 (nが多いほど重いが正確)

    # Δx = h (高さに相当)
    h = ( b - a ) / n

    # Sの初期化
    S = 0

    # 面積の増分計算
    for k in range(1, n, 1):

        # 上底
        p = a + k * h
        # 下底
        q = a + (k + 1) * h

        # 求める曲線の関数. 今回は二次関数とした.
        def f(x):
             y = x **2
             return y

        # 面積増分 ΔS = 高さ×（上底＋下底）/ 2
        d = h * (f(p) + f(q)) / 2 

        # ΔS = d として，S = S + ΔS で繰り返し足す
        S = S + d
    
    return S

# 積分範囲と分割数の値を代入
S = integral(0, 1, 500)

# Sの最終的な合計が総和面積となる
print(S)
