from scipy.integrate import quad
def integrand(a, b):
return a * x ** 2 + b
a = 2
b = 1
I = quad(integrand, 0, 1, args=(a,b))
I
Run Code Online (Sandbox Code Playgroud)
这是我的计划.当我试图运行它时,它显示错误:
integrand () takes 2 positional arguments but 3 were given ....
Run Code Online (Sandbox Code Playgroud)
当只有两个变量时,我不明白为什么要求3个参数,即a和b.
谁能帮我?任何人都可以澄清我的怀疑吗?
只需更换
def integrand(a, b):
Run Code Online (Sandbox Code Playgroud)
经过
def integrand(x, a, b):
Run Code Online (Sandbox Code Playgroud)
问题在于,在函数中,您使用了变量x,但没有将该变量x作为参数传递给函数。0并1充当积分的限制,但由于您正在对 wrt 进行积分x,因此您会收到此错误。
输出
(1.6666666666666667, 1.8503717077085944e-14)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |