如何在python中说明Simpson / Trapezoidal规则?

时间:2015-05-29 12:51:20

标签: python scipy

我想用一个图来说明一个简单函数(y = x ^ 2)的Simpson / Trapezoidal积分公式。 scipy中的simps和trapz函数有助于计算面积,但我还想在原始曲线上绘制梯形图/抛物线。我想知道是否有任何现有的例行程序,如果没有,对于如何制作这些图表有所帮助。

   import numpy as np
   from scipy.integrate import simps, trapz

   x=np.arange(9)
   y=x**2

   area=simps(y,x)
   print area

   area=trapz(y,x)
   print area

   plot(y,x)

1 个答案:

答案 0 :(得分:1)

我建议使用matplotlib,功能如fill_between

import numpy as np
from scipy.integrate import simps, trapz
import matplotlib.pyplot as plt

def f(x):
    return x**2

fig, ax = plt.subplots(1,1)

#Continous curve
x=np.arange(0,9,0.01)
y=f(x)
ax.plot(y,x, 'k-')

#Trapizium
xstep = np.arange(0,10,3)
area=trapz(y,x)
print area
ax.fill_between(f(xstep), 0, xstep)

#Simpsons
area=simps(y,x)
print area
#etc etc

plt.show()

在我只进行陷阱近似的情况下,您需要定义一个函数来绘制simpsons规则近似值之间的填充