Я пытаюсь интегрировать какую-то функцию с библиотекой vegas , простой инструмент, который объединяет f(x) = lambda x: x ** 2.0
:
import vegas
f = lambda x: x ** 2.0
integrator = vegas.Integrator([[0.0, 1.0]])
result = integrator(f, nitn = 10, neval = 10000)
print result
, который выводит [0.33333389(69)]
и является правильным.Однако, если бы я хотел иметь возможность изменить значение мощности функции f
, но добавив входной параметр, подобный следующему
def f(x, p):
return x ** p
Метод Integrator
будет жаловаться на следующее
SyntaxError: invalid syntax
Использование переменной global
для передачи p
испортит код, потому что на практике у меня есть много параметров для передачи на f
.Использование следующего альтернативного определения будет связано с изменением фактического определения функции и не является предпочтительным решением
def f(x, p = 2.0):
return x ** p
Так что же я могу сделать, чтобы передать параметр в f
, который вызывается в методе Integrator
?Заранее спасибо!