猿问

使用scipy积分方程

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

这是我的程序。当我尝试运行它时,它显示错误:


integrand () takes 2 positional arguments but 3 were given ....

我不明白为什么只有两个变量(即a和)时为什么要问3个参数b。


谁能帮我?谁能澄清我的疑惑?


芜湖不芜
浏览 300回答 2
2回答

繁花不似锦

只需更换def integrand(a, b):经过def integrand(x, a, b):问题在于,在函数中,您使用了变量,x但没有将变量x作为参数传递给函数。0并1作为积分的极限,但是由于要集成wrt x,因此会出现此错误。输出(1.6666666666666667, 1.8503717077085944e-14)

慕的地6264312

a*x**2+b您正在使用的此函数包含一个变量x,在您的情况下def integrand(a, b): 不包含变量 x,它使用您正在使用的积分的 0 到 1 限制I=quad(integrand,0,1,args=(a,b))。因此,您要做的就是添加x到您的def中。def integrand(x, a, b):        return a * x ** 2 + ba = 2    b = 1    I = quad(integrand,0,1,args=(a,b))    I
随时随地看视频慕课网APP

相关分类

Python
我要回答