Хорошо, позвольте мне написать вашу функцию в обычной математической записи (я не могу думать в Python).Мне не нравится **
, так как это сбивает с толку:
(2**(1/2)*y**(1/2)/2)**2 =>
(2^(1/2) * (1/2) * y^(1/2))^2 =>
2 * (1/4) * y =>
y / 2
Итак, интегрировать, антидифференцировать (я просто думаю вслух):
antidifferentiate(y / 2) = y^2 / 4
Поэтому
integral('y / 2', 0, 5) =
5^2 / 4 - 0^2 / 4 =
25 / 4 =
6.25
Верно.Вы пытались заменить 1/2
на 0.5
?Его можно интерпретировать как отношение двух целых чисел, которое округляется в большую сторону.
Попробуйте это (как предложили другие):
func = lambda y: (2**(0.5) * y**(0.5) / 2.0)**2.0 & a == 0 & b == 5
from scipy import integrate
integrate.quad(func, a b) # What's 'a b'? Maybe 'a, b' would work?
Удачи!