integral
должен иметь одну из подписей, описанных в документации scipy .В вашем случае функция, принимающая аргумент double и возвращающая double, кажется подходящей.
self
используется только для функций-членов класса.Это не имеет смысла вне определения класса.Замените его на простое имя, скажем x
, которое будет входным аргументом интегрируемой функции.
Функция должна возвращать double
.Поскольку E
является массивом, и вы, похоже, выполняете с ним вычисления, то вычисленное возвращаемое значение, вероятно, также будет массивом.Это должен быть скаляр.Исправьте это, и это будет работать.Когда вы заменяете свою функцию чем-то вроде:
def integral(x):
return x * x
, тогда это работает.Конечно, это не то, что вам нужно, но это тот тип аргументов и возвращаемых значений, которые необходимы для работы quad()
.
Возможно, вы захотите поискать здесь пример использования quad()
.
Некоторые рекомендации:
- использовать четыре пробела для отступа (не 5, как в примере)
- круглые скобки вокругрезультат не обязателен.Удалить для большей ясности.