Вычисление интеграла по Риману означает, что вы вычисляете предел суммы Римана, делая внутренние разбиения ( Wikipedia ).
Для этого ваша функция может иметь новый параметр interval: dx
или, может быть, вы можете просто угадать интервал, разделив полный диапазон на N
интервалы одинакового размера.Вот пример, запрашивающий dx
в качестве аргумента.
Тогда ваша функция должна быть:
def riemann(fun, xmin, xmax, dx):
total = 0
a = xmin
while a < xmax:
total += fun(a + dx/2)*dx
a += dx
return total
Пример выходных данных
print(riemann(xsquared, 0, 4, 0.1))
> 21.330000000000013
print(riemann(xsquared, 0, 4, 0.25))
> 21.3125
print(riemann(xsquared, 0, 4, 0.5))
> 21.25
Аналитическое разрешение дает: 64/3 ~ 21.33333
Вы аппроксимируете интеграл, вычисляя площадь прямоугольника, имеющую:
- высота : значение функции всредняя точка интервала
fun(a + dx/2)
- ширина : длина интервала (
dx
)
Примечание: если xmax < xmin
, следует проверить, что dx < 0
.