Используя правило трапеции для вычисления функции ошибки, erf(x)

#python #geometry

Вопрос:

Попытка написать функцию, которая использует правило трапеции для оценки интеграла функции ошибок, где мы хотели бы, чтобы значение функции ошибок и num_traps-это количество трапеций, на которые должен быть разделен интервал интегрирования. Используя численное интегрирование и не импортируя из библиотек. В тестовом коде должно быть выведено: 0,835

 import numpy as np
def f(t):
"""The function"""
return np.exp(-t**2)

def trapezium_erf(x, num_traps):
    """Calc error func"""

    d_t = x / num_traps
    area = 0

    for i in range(num_traps):
        trap_start = x
        trap_end = x   d_t
        start_height = f(trap_start)
        end_height = f(trap_end)

        trap_area = ((start_height   end_height) / 2) * d_t 
        area  = trap_area
        x = x   d_t
    
    return (2/np.sqrt(np.pi) * area)

#Test code
x = 1.0
area = trapezium_erf(x, 3)
print(f"{area:.3f}")