使用 SciPy 四元函数进行积分(定积分)

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

我一直在尝试使用 SciPy 将 2x dx 从 3 积分到 4,但它返回了错误的值。

from scipy.integrate import quad

def g(x):
  return (2*(x**2))/2

quad(g,3,4)

返回的结果应该是 7,但我得到的结果是 12.3333

scipy integration quad
1个回答
0
投票

您正在提供要积分的函数的反导数,但

scipy.integrate.quad()
期望函数本身。

换句话说,如果你想积分 2*x,那么你应该提供 2*x。

但是,由于您确实有反导数,因此根本不需要

quad()
。您可以在积分界限的开始和结束处评估您的反导数。当积分没有已知解析解时,
quad()
函数最有用。

这里是如何求解此积分的示例,有或没有

quad()

from scipy.integrate import quad


def g(x):
    return 2 * x


def g_integral(x):
    return (2 * (x**2))/2


print("Integral via numeric integration", quad(g, 3, 4))
print("Integral via analytic solution", g_integral(4) - g_integral(3))
© www.soinside.com 2019 - 2024. All rights reserved.