我正在尝试使用Python集成一个函数scipy.integrate.quad.这个特殊的函数有两个参数.我想要整合一个论点.一个例子如下所示.
from scipy import integrate as integrate
def f(x,a): #a is a parameter, x is the variable I want to integrate over
return a*x
result = integrate.quad(f,0,1)
Run Code Online (Sandbox Code Playgroud)
这个例子不起作用(你可能很清楚),因为Python在我尝试时提醒我:
TypeError: f() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
我想知道integrate.quad()当给定的函数通常是多变量函数时,如何使用集成在单个变量意义中,额外的变量为函数提供参数.
Neu*_*tar 10
在scipy文档中找到了答案.
您可以执行以下操作:
from scipy import integrate as integrate
def f(x,a): #a is a parameter, x is the variable I want to integrate over
return a*x
result = integrate.quad(f,0,1,args=(1,))
Run Code Online (Sandbox Code Playgroud)
方法中的args=(1,)参数quad将a=1用于整体评估.
这也可以用于具有两个以上变量的函数:
from scipy import integrate as integrate
def f(x,a,b,c): #a is a parameter, x is the variable I want to integrate over
return a*x + b + c
result = integrate.quad(f,0,1,args=(1,2,3))
Run Code Online (Sandbox Code Playgroud)
这将进行a=1, b=2, c=3整体评估.
要以这种方式集成的函数要记住的重要事项是将要集成的变量放在函数的第一个参数上.
使用args参数(请参阅scipy 文档):
result = integrate.quad(f,0,1, args=(a,))
Run Code Online (Sandbox Code Playgroud)
逗号 inargs=(a,)是必需的,因为必须传递一个元组。
| 归档时间: |
|
| 查看次数: |
10758 次 |
| 最近记录: |