函数内部的 Python 集成

问题描述 投票:0回答:1

我有一个与

scipy.integrate.quad
方法相关的问题:假设我有一个基函数,其中使用四元方法包含两个嵌套函数,并且我需要其中的两个输出值。但是你必须定义大函数的变量才能输出值。

例如,我想要这样的东西:

from scipy.integrate import quad

def myfunction(x):
    function_0 = 1.25 * x ** 2
    function_1 = function_0 * 9.81 + 2 * x
    myreturn1 = function_1 * np.pi
    myreturn2 = function_1 * np.pi ** 2
    return quad(myreturn1, 0, np.inf)[0], quad(myreturn2, 0, np.inf)[0]

val1, val2 = myfunction(x)

当我调用这个函数时,你必须定义一个变量“x”,否则会输出错误。 有更好的方法吗?

python math scipy integrate
1个回答
0
投票

quad
期望一个函数作为第一个参数,但是
function_0
function_1
,以及因此的
myreturn1
myreturn2
只是表达式(如果您提供一个数字作为
x
,最有可能评估为数字) .

您也应该将它们全部定义为函数。您可以通过在内部调用另一个函数来定义一个函数:

from scipy.integrate import quad

def function_0(x):
    return 1.25 * x ** 2

def function_1(x):
    return function_0(x) * 9.81 + 2 * x

def myreturn1(x):
    return function_1(x) * np.pi

def myreturn2(x):
    return function_1(x) * np.pi ** 2

def myfunction():
    return quad(myreturn1, 0, np.inf)[0], quad(myreturn2, 0, np.inf)[0]

val1, val2 = myfunction()
© www.soinside.com 2019 - 2024. All rights reserved.