`import numpy as np
import scipy.interpolate as spi
import scipy.integrate as spi_integrate
定义函数 g(x)
def g(x):
return ((3x**2 + 4x + 6) * np.sin(x)) / (x**2 + 8*x + 6)
在区间 [0, 10] 上等间距取 1000 个点
x = np.linspace(0, 10, 1000)
计算这些点处的函数值
y = g(x)
使用三次样条插值
tck = spi.CubicSpline(x, y)
定义插值函数 g'(x)
def g_prime(x):
return tck(x)
计算 g(x) 在 [0, 10] 上的定积分(使用 scipy.integrate.quad)
def integrand_g(x):
return g(x)
integral_g, _ = spi_integrate.quad(integrand_g, 0, 10)
计算 g'(x) 在 [0, 10] 上的定积分(使用插值函数)
integral_g_prime = spi_integrate.quad(g_prime, 0, 10)[0]
输出结果
print(f"g(x) 在 [0, 10] 上的定积分: {integral_g}")
print(f"g'(x) 在 [0, 10] 上的定积分: {integral_g_prime}")
print("3005")`